diff --git a/src/harness/compilerRunner.ts b/src/harness/compilerRunner.ts index d4dd8e312588f..d796ef23328d2 100644 --- a/src/harness/compilerRunner.ts +++ b/src/harness/compilerRunner.ts @@ -270,29 +270,53 @@ class CompilerBaselineRunner extends RunnerBase { // These types are equivalent, but depend on what order the compiler observed // certain parts of the program. - var fullWalker = new TypeWriterWalker(program, /*fullTypeCheck:*/ true); - var pullWalker = new TypeWriterWalker(program, /*fullTypeCheck:*/ false); + let allFiles = toBeCompiled.concat(otherFiles).filter(file => !!program.getSourceFile(file.unitName)); - var fullTypes = generateTypes(fullWalker); - var pullTypes = generateTypes(pullWalker); + let fullWalker = new TypeWriterWalker(program, /*fullTypeCheck:*/ true); + let pullWalker = new TypeWriterWalker(program, /*fullTypeCheck:*/ false); - if (fullTypes !== pullTypes) { - Harness.Baseline.runBaseline('Correct full expression types for ' + fileName, justName.replace(/\.ts/, '.types'), () => fullTypes); - Harness.Baseline.runBaseline('Correct pull expression types for ' + fileName, justName.replace(/\.ts/, '.types.pull'), () => pullTypes); + let fullResults: ts.Map = {}; + let pullResults: ts.Map = {}; + + for (let sourceFile of allFiles) { + fullResults[sourceFile.unitName] = fullWalker.getTypeAndSymbols(sourceFile.unitName); + pullResults[sourceFile.unitName] = fullWalker.getTypeAndSymbols(sourceFile.unitName); } - else { - Harness.Baseline.runBaseline('Correct expression types for ' + fileName, justName.replace(/\.ts/, '.types'), () => fullTypes); + + // Produce baselines. The first gives the types for all expressions. + // The second gives symbols for all identifiers. + checkBaseLines(/*isSymbolBaseLine:*/ false); + checkBaseLines(/*isSymbolBaseLine:*/ true); + + function checkBaseLines(isSymbolBaseLine: boolean) { + let fullBaseLine = generateBaseLine(fullResults, isSymbolBaseLine); + let pullBaseLine = generateBaseLine(pullResults, isSymbolBaseLine); + + let fullExtension = isSymbolBaseLine ? '.symbols' : '.types'; + let pullExtension = isSymbolBaseLine ? '.symbols.pull' : '.types.pull'; + + if (fullBaseLine !== pullBaseLine) { + Harness.Baseline.runBaseline('Correct full information for ' + fileName, justName.replace(/\.ts/, fullExtension), () => fullBaseLine); + Harness.Baseline.runBaseline('Correct pull information for ' + fileName, justName.replace(/\.ts/, pullExtension), () => pullBaseLine); + } + else { + Harness.Baseline.runBaseline('Correct information for ' + fileName, justName.replace(/\.ts/, fullExtension), () => fullBaseLine); + } } - function generateTypes(walker: TypeWriterWalker): string { - var allFiles = toBeCompiled.concat(otherFiles).filter(file => !!program.getSourceFile(file.unitName)); - var typeLines: string[] = []; - var typeMap: { [fileName: string]: { [lineNum: number]: string[]; } } = {}; + function generateBaseLine(typeWriterResults: ts.Map, isSymbolBaseline: boolean): string { + let typeLines: string[] = []; + let typeMap: { [fileName: string]: { [lineNum: number]: string[]; } } = {}; allFiles.forEach(file => { var codeLines = file.content.split('\n'); - walker.getTypes(file.unitName).forEach(result => { - var formattedLine = result.sourceText.replace(/\r?\n/g, "") + " : " + result.type; + typeWriterResults[file.unitName].forEach(result => { + if (isSymbolBaseline && !result.symbol) { + return; + } + + var typeOrSymbolString = isSymbolBaseline ? result.symbol : result.type; + var formattedLine = result.sourceText.replace(/\r?\n/g, "") + " : " + typeOrSymbolString; if (!typeMap[file.unitName]) { typeMap[file.unitName] = {}; } @@ -316,11 +340,13 @@ class CompilerBaselineRunner extends RunnerBase { typeLines.push('>' + ty + '\r\n'); }); if (i + 1 < codeLines.length && (codeLines[i + 1].match(/^\s*[{|}]\s*$/) || codeLines[i + 1].trim() === '')) { - } else { + } + else { typeLines.push('\r\n'); } } - } else { + } + else { typeLines.push('No type information for this code.'); } } diff --git a/src/harness/typeWriter.ts b/src/harness/typeWriter.ts index 736974c49a1e1..533f90a2d8393 100644 --- a/src/harness/typeWriter.ts +++ b/src/harness/typeWriter.ts @@ -3,6 +3,7 @@ interface TypeWriterResult { syntaxKind: number; sourceText: string; type: string; + symbol: string; } class TypeWriterWalker { @@ -19,7 +20,7 @@ class TypeWriterWalker { : program.getTypeChecker(); } - public getTypes(fileName: string): TypeWriterResult[] { + public getTypeAndSymbols(fileName: string): TypeWriterResult[] { var sourceFile = this.program.getSourceFile(fileName); this.currentSourceFile = sourceFile; this.results = []; @@ -45,8 +46,9 @@ class TypeWriterWalker { var symbol = this.checker.getSymbolAtLocation(node); var typeString = this.checker.typeToString(type, node.parent, ts.TypeFormatFlags.NoTruncation); + var symbolString: string; if (symbol) { - var symbolString = "Symbol(" + this.checker.symbolToString(symbol, node.parent); + symbolString = "Symbol(" + this.checker.symbolToString(symbol, node.parent); if (symbol.declarations) { for (let declaration of symbol.declarations) { symbolString += ", "; @@ -56,15 +58,14 @@ class TypeWriterWalker { } } symbolString += ")"; - - typeString += ", " + symbolString; } this.results.push({ line: lineAndCharacter.line, syntaxKind: node.kind, sourceText: sourceText, - type: typeString + type: typeString, + symbol: symbolString }); } } diff --git a/tests/baselines/reference/2dArrays.symbols b/tests/baselines/reference/2dArrays.symbols new file mode 100644 index 0000000000000..c069f2dae8c9d --- /dev/null +++ b/tests/baselines/reference/2dArrays.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/2dArrays.ts === +class Cell { +>Cell : Symbol(Cell, Decl(2dArrays.ts, 0, 0)) +} + +class Ship { +>Ship : Symbol(Ship, Decl(2dArrays.ts, 1, 1)) + + isSunk: boolean; +>isSunk : Symbol(isSunk, Decl(2dArrays.ts, 3, 12)) +} + +class Board { +>Board : Symbol(Board, Decl(2dArrays.ts, 5, 1)) + + ships: Ship[]; +>ships : Symbol(ships, Decl(2dArrays.ts, 7, 13)) +>Ship : Symbol(Ship, Decl(2dArrays.ts, 1, 1)) + + cells: Cell[]; +>cells : Symbol(cells, Decl(2dArrays.ts, 8, 18)) +>Cell : Symbol(Cell, Decl(2dArrays.ts, 0, 0)) + + private allShipsSunk() { +>allShipsSunk : Symbol(allShipsSunk, Decl(2dArrays.ts, 9, 18)) + + return this.ships.every(function (val) { return val.isSunk; }); +>this.ships.every : Symbol(Array.every, Decl(lib.d.ts, 1094, 62)) +>this.ships : Symbol(ships, Decl(2dArrays.ts, 7, 13)) +>this : Symbol(Board, Decl(2dArrays.ts, 5, 1)) +>ships : Symbol(ships, Decl(2dArrays.ts, 7, 13)) +>every : Symbol(Array.every, Decl(lib.d.ts, 1094, 62)) +>val : Symbol(val, Decl(2dArrays.ts, 12, 42)) +>val.isSunk : Symbol(Ship.isSunk, Decl(2dArrays.ts, 3, 12)) +>val : Symbol(val, Decl(2dArrays.ts, 12, 42)) +>isSunk : Symbol(Ship.isSunk, Decl(2dArrays.ts, 3, 12)) + } +} diff --git a/tests/baselines/reference/2dArrays.types b/tests/baselines/reference/2dArrays.types index cb6c2a3a723b4..b113ccdce7b62 100644 --- a/tests/baselines/reference/2dArrays.types +++ b/tests/baselines/reference/2dArrays.types @@ -1,40 +1,40 @@ === tests/cases/compiler/2dArrays.ts === class Cell { ->Cell : Cell, Symbol(Cell, Decl(2dArrays.ts, 0, 0)) +>Cell : Cell } class Ship { ->Ship : Ship, Symbol(Ship, Decl(2dArrays.ts, 1, 1)) +>Ship : Ship isSunk: boolean; ->isSunk : boolean, Symbol(isSunk, Decl(2dArrays.ts, 3, 12)) +>isSunk : boolean } class Board { ->Board : Board, Symbol(Board, Decl(2dArrays.ts, 5, 1)) +>Board : Board ships: Ship[]; ->ships : Ship[], Symbol(ships, Decl(2dArrays.ts, 7, 13)) ->Ship : Ship, Symbol(Ship, Decl(2dArrays.ts, 1, 1)) +>ships : Ship[] +>Ship : Ship cells: Cell[]; ->cells : Cell[], Symbol(cells, Decl(2dArrays.ts, 8, 18)) ->Cell : Cell, Symbol(Cell, Decl(2dArrays.ts, 0, 0)) +>cells : Cell[] +>Cell : Cell private allShipsSunk() { ->allShipsSunk : () => boolean, Symbol(allShipsSunk, Decl(2dArrays.ts, 9, 18)) +>allShipsSunk : () => boolean return this.ships.every(function (val) { return val.isSunk; }); >this.ships.every(function (val) { return val.isSunk; }) : boolean ->this.ships.every : (callbackfn: (value: Ship, index: number, array: Ship[]) => boolean, thisArg?: any) => boolean, Symbol(Array.every, Decl(lib.d.ts, 1094, 62)) ->this.ships : Ship[], Symbol(ships, Decl(2dArrays.ts, 7, 13)) ->this : Board, Symbol(Board, Decl(2dArrays.ts, 5, 1)) ->ships : Ship[], Symbol(ships, Decl(2dArrays.ts, 7, 13)) ->every : (callbackfn: (value: Ship, index: number, array: Ship[]) => boolean, thisArg?: any) => boolean, Symbol(Array.every, Decl(lib.d.ts, 1094, 62)) +>this.ships.every : (callbackfn: (value: Ship, index: number, array: Ship[]) => boolean, thisArg?: any) => boolean +>this.ships : Ship[] +>this : Board +>ships : Ship[] +>every : (callbackfn: (value: Ship, index: number, array: Ship[]) => boolean, thisArg?: any) => boolean >function (val) { return val.isSunk; } : (val: Ship) => boolean ->val : Ship, Symbol(val, Decl(2dArrays.ts, 12, 42)) ->val.isSunk : boolean, Symbol(Ship.isSunk, Decl(2dArrays.ts, 3, 12)) ->val : Ship, Symbol(val, Decl(2dArrays.ts, 12, 42)) ->isSunk : boolean, Symbol(Ship.isSunk, Decl(2dArrays.ts, 3, 12)) +>val : Ship +>val.isSunk : boolean +>val : Ship +>isSunk : boolean } } diff --git a/tests/baselines/reference/APISample_compile.symbols b/tests/baselines/reference/APISample_compile.symbols new file mode 100644 index 0000000000000..5ff913f0a8d39 --- /dev/null +++ b/tests/baselines/reference/APISample_compile.symbols @@ -0,0 +1,131 @@ +=== tests/cases/compiler/APISample_compile.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-minimal-compiler + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : Symbol(process, Decl(APISample_compile.ts, 7, 11)) + +declare var console: any; +>console : Symbol(console, Decl(APISample_compile.ts, 8, 11)) + +declare var os: any; +>os : Symbol(os, Decl(APISample_compile.ts, 9, 11)) + +import ts = require("typescript"); +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) + +export function compile(fileNames: string[], options: ts.CompilerOptions): void { +>compile : Symbol(compile, Decl(APISample_compile.ts, 11, 34)) +>fileNames : Symbol(fileNames, Decl(APISample_compile.ts, 13, 24)) +>options : Symbol(options, Decl(APISample_compile.ts, 13, 44)) +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>CompilerOptions : Symbol(ts.CompilerOptions, Decl(typescript.d.ts, 1074, 5)) + + var program = ts.createProgram(fileNames, options); +>program : Symbol(program, Decl(APISample_compile.ts, 14, 7)) +>ts.createProgram : Symbol(ts.createProgram, Decl(typescript.d.ts, 1225, 113)) +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>createProgram : Symbol(ts.createProgram, Decl(typescript.d.ts, 1225, 113)) +>fileNames : Symbol(fileNames, Decl(APISample_compile.ts, 13, 24)) +>options : Symbol(options, Decl(APISample_compile.ts, 13, 44)) + + var emitResult = program.emit(); +>emitResult : Symbol(emitResult, Decl(APISample_compile.ts, 15, 7)) +>program.emit : Symbol(ts.Program.emit, Decl(typescript.d.ts, 767, 39)) +>program : Symbol(program, Decl(APISample_compile.ts, 14, 7)) +>emit : Symbol(ts.Program.emit, Decl(typescript.d.ts, 767, 39)) + + var allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics); +>allDiagnostics : Symbol(allDiagnostics, Decl(APISample_compile.ts, 17, 7)) +>ts.getPreEmitDiagnostics(program).concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>ts.getPreEmitDiagnostics : Symbol(ts.getPreEmitDiagnostics, Decl(typescript.d.ts, 1223, 98)) +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>getPreEmitDiagnostics : Symbol(ts.getPreEmitDiagnostics, Decl(typescript.d.ts, 1223, 98)) +>program : Symbol(program, Decl(APISample_compile.ts, 14, 7)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>emitResult.diagnostics : Symbol(ts.EmitResult.diagnostics, Decl(typescript.d.ts, 820, 29)) +>emitResult : Symbol(emitResult, Decl(APISample_compile.ts, 15, 7)) +>diagnostics : Symbol(ts.EmitResult.diagnostics, Decl(typescript.d.ts, 820, 29)) + + allDiagnostics.forEach(diagnostic => { +>allDiagnostics.forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>allDiagnostics : Symbol(allDiagnostics, Decl(APISample_compile.ts, 17, 7)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>diagnostic : Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) + + var { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); +>line : Symbol(line, Decl(APISample_compile.ts, 20, 13)) +>character : Symbol(character, Decl(APISample_compile.ts, 20, 19)) +>diagnostic.file.getLineAndCharacterOfPosition : Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>diagnostic.file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>diagnostic : Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) +>file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>getLineAndCharacterOfPosition : Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>diagnostic.start : Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) +>diagnostic : Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) +>start : Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) + + var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); +>message : Symbol(message, Decl(APISample_compile.ts, 21, 11)) +>ts.flattenDiagnosticMessageText : Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>flattenDiagnosticMessageText : Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) +>diagnostic.messageText : Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) +>diagnostic : Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) +>messageText : Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) + + console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); +>console : Symbol(console, Decl(APISample_compile.ts, 8, 11)) +>diagnostic.file.fileName : Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>diagnostic.file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>diagnostic : Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) +>file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>fileName : Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>line : Symbol(line, Decl(APISample_compile.ts, 20, 13)) +>character : Symbol(character, Decl(APISample_compile.ts, 20, 19)) +>message : Symbol(message, Decl(APISample_compile.ts, 21, 11)) + + }); + + var exitCode = emitResult.emitSkipped ? 1 : 0; +>exitCode : Symbol(exitCode, Decl(APISample_compile.ts, 25, 7)) +>emitResult.emitSkipped : Symbol(ts.EmitResult.emitSkipped, Decl(typescript.d.ts, 819, 26)) +>emitResult : Symbol(emitResult, Decl(APISample_compile.ts, 15, 7)) +>emitSkipped : Symbol(ts.EmitResult.emitSkipped, Decl(typescript.d.ts, 819, 26)) + + console.log(`Process exiting with code '${exitCode}'.`); +>console : Symbol(console, Decl(APISample_compile.ts, 8, 11)) +>exitCode : Symbol(exitCode, Decl(APISample_compile.ts, 25, 7)) + + process.exit(exitCode); +>process : Symbol(process, Decl(APISample_compile.ts, 7, 11)) +>exitCode : Symbol(exitCode, Decl(APISample_compile.ts, 25, 7)) +} + +compile(process.argv.slice(2), { +>compile : Symbol(compile, Decl(APISample_compile.ts, 11, 34)) +>process : Symbol(process, Decl(APISample_compile.ts, 7, 11)) + + noEmitOnError: true, noImplicitAny: true, +>noEmitOnError : Symbol(noEmitOnError, Decl(APISample_compile.ts, 30, 32)) +>noImplicitAny : Symbol(noImplicitAny, Decl(APISample_compile.ts, 31, 24)) + + target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS +>target : Symbol(target, Decl(APISample_compile.ts, 31, 45)) +>ts.ScriptTarget.ES5 : Symbol(ts.ScriptTarget.ES5, Decl(typescript.d.ts, 1117, 16)) +>ts.ScriptTarget : Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>ScriptTarget : Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) +>ES5 : Symbol(ts.ScriptTarget.ES5, Decl(typescript.d.ts, 1117, 16)) +>module : Symbol(module, Decl(APISample_compile.ts, 32, 32)) +>ts.ModuleKind.CommonJS : Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) +>ts.ModuleKind : Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) +>ts : Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>ModuleKind : Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) +>CommonJS : Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) + +}); diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index f5ad75b8bcb4b..2e40e805fdae8 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -7,162 +7,162 @@ */ declare var process: any; ->process : any, Symbol(process, Decl(APISample_compile.ts, 7, 11)) +>process : any declare var console: any; ->console : any, Symbol(console, Decl(APISample_compile.ts, 8, 11)) +>console : any declare var os: any; ->os : any, Symbol(os, Decl(APISample_compile.ts, 9, 11)) +>os : any import ts = require("typescript"); ->ts : typeof ts, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) +>ts : typeof ts export function compile(fileNames: string[], options: ts.CompilerOptions): void { ->compile : (fileNames: string[], options: ts.CompilerOptions) => void, Symbol(compile, Decl(APISample_compile.ts, 11, 34)) ->fileNames : string[], Symbol(fileNames, Decl(APISample_compile.ts, 13, 24)) ->options : ts.CompilerOptions, Symbol(options, Decl(APISample_compile.ts, 13, 44)) ->ts : any, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) ->CompilerOptions : ts.CompilerOptions, Symbol(ts.CompilerOptions, Decl(typescript.d.ts, 1074, 5)) +>compile : (fileNames: string[], options: ts.CompilerOptions) => void +>fileNames : string[] +>options : ts.CompilerOptions +>ts : any +>CompilerOptions : ts.CompilerOptions var program = ts.createProgram(fileNames, options); ->program : ts.Program, Symbol(program, Decl(APISample_compile.ts, 14, 7)) +>program : ts.Program >ts.createProgram(fileNames, options) : ts.Program ->ts.createProgram : (rootNames: string[], options: ts.CompilerOptions, host?: ts.CompilerHost) => ts.Program, Symbol(ts.createProgram, Decl(typescript.d.ts, 1225, 113)) ->ts : typeof ts, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) ->createProgram : (rootNames: string[], options: ts.CompilerOptions, host?: ts.CompilerHost) => ts.Program, Symbol(ts.createProgram, Decl(typescript.d.ts, 1225, 113)) ->fileNames : string[], Symbol(fileNames, Decl(APISample_compile.ts, 13, 24)) ->options : ts.CompilerOptions, Symbol(options, Decl(APISample_compile.ts, 13, 44)) +>ts.createProgram : (rootNames: string[], options: ts.CompilerOptions, host?: ts.CompilerHost) => ts.Program +>ts : typeof ts +>createProgram : (rootNames: string[], options: ts.CompilerOptions, host?: ts.CompilerHost) => ts.Program +>fileNames : string[] +>options : ts.CompilerOptions var emitResult = program.emit(); ->emitResult : ts.EmitResult, Symbol(emitResult, Decl(APISample_compile.ts, 15, 7)) +>emitResult : ts.EmitResult >program.emit() : ts.EmitResult ->program.emit : (targetSourceFile?: ts.SourceFile, writeFile?: ts.WriteFileCallback) => ts.EmitResult, Symbol(ts.Program.emit, Decl(typescript.d.ts, 767, 39)) ->program : ts.Program, Symbol(program, Decl(APISample_compile.ts, 14, 7)) ->emit : (targetSourceFile?: ts.SourceFile, writeFile?: ts.WriteFileCallback) => ts.EmitResult, Symbol(ts.Program.emit, Decl(typescript.d.ts, 767, 39)) +>program.emit : (targetSourceFile?: ts.SourceFile, writeFile?: ts.WriteFileCallback) => ts.EmitResult +>program : ts.Program +>emit : (targetSourceFile?: ts.SourceFile, writeFile?: ts.WriteFileCallback) => ts.EmitResult var allDiagnostics = ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics); ->allDiagnostics : ts.Diagnostic[], Symbol(allDiagnostics, Decl(APISample_compile.ts, 17, 7)) +>allDiagnostics : ts.Diagnostic[] >ts.getPreEmitDiagnostics(program).concat(emitResult.diagnostics) : ts.Diagnostic[] ->ts.getPreEmitDiagnostics(program).concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>ts.getPreEmitDiagnostics(program).concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } >ts.getPreEmitDiagnostics(program) : ts.Diagnostic[] ->ts.getPreEmitDiagnostics : (program: ts.Program) => ts.Diagnostic[], Symbol(ts.getPreEmitDiagnostics, Decl(typescript.d.ts, 1223, 98)) ->ts : typeof ts, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) ->getPreEmitDiagnostics : (program: ts.Program) => ts.Diagnostic[], Symbol(ts.getPreEmitDiagnostics, Decl(typescript.d.ts, 1223, 98)) ->program : ts.Program, Symbol(program, Decl(APISample_compile.ts, 14, 7)) ->concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->emitResult.diagnostics : ts.Diagnostic[], Symbol(ts.EmitResult.diagnostics, Decl(typescript.d.ts, 820, 29)) ->emitResult : ts.EmitResult, Symbol(emitResult, Decl(APISample_compile.ts, 15, 7)) ->diagnostics : ts.Diagnostic[], Symbol(ts.EmitResult.diagnostics, Decl(typescript.d.ts, 820, 29)) +>ts.getPreEmitDiagnostics : (program: ts.Program) => ts.Diagnostic[] +>ts : typeof ts +>getPreEmitDiagnostics : (program: ts.Program) => ts.Diagnostic[] +>program : ts.Program +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } +>emitResult.diagnostics : ts.Diagnostic[] +>emitResult : ts.EmitResult +>diagnostics : ts.Diagnostic[] allDiagnostics.forEach(diagnostic => { >allDiagnostics.forEach(diagnostic => { var { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); }) : void ->allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) ->allDiagnostics : ts.Diagnostic[], Symbol(allDiagnostics, Decl(APISample_compile.ts, 17, 7)) ->forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void +>allDiagnostics : ts.Diagnostic[] +>forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void >diagnostic => { var { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); } : (diagnostic: ts.Diagnostic) => void ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) +>diagnostic : ts.Diagnostic var { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); ->line : number, Symbol(line, Decl(APISample_compile.ts, 20, 13)) ->character : number, Symbol(character, Decl(APISample_compile.ts, 20, 19)) +>line : number +>character : number >diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start) : ts.LineAndCharacter ->diagnostic.file.getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter, Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) ->diagnostic.file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) ->file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter, Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) ->diagnostic.start : number, Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) ->start : number, Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) +>diagnostic.file.getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter +>diagnostic.start : number +>diagnostic : ts.Diagnostic +>start : number var message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); ->message : string, Symbol(message, Decl(APISample_compile.ts, 21, 11)) +>message : string >ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n') : string ->ts.flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string, Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) ->ts : typeof ts, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) ->flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string, Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) ->diagnostic.messageText : string | ts.DiagnosticMessageChain, Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) ->messageText : string | ts.DiagnosticMessageChain, Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) +>ts.flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string +>ts : typeof ts +>flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string +>diagnostic.messageText : string | ts.DiagnosticMessageChain +>diagnostic : ts.Diagnostic +>messageText : string | ts.DiagnosticMessageChain >'\n' : string console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); >console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_compile.ts, 8, 11)) +>console : any >log : any >`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}` : string ->diagnostic.file.fileName : string, Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) ->diagnostic.file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_compile.ts, 19, 27)) ->file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->fileName : string, Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>diagnostic.file.fileName : string +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>fileName : string >line + 1 : number ->line : number, Symbol(line, Decl(APISample_compile.ts, 20, 13)) +>line : number >1 : number >character + 1 : number ->character : number, Symbol(character, Decl(APISample_compile.ts, 20, 19)) +>character : number >1 : number ->message : string, Symbol(message, Decl(APISample_compile.ts, 21, 11)) +>message : string }); var exitCode = emitResult.emitSkipped ? 1 : 0; ->exitCode : number, Symbol(exitCode, Decl(APISample_compile.ts, 25, 7)) +>exitCode : number >emitResult.emitSkipped ? 1 : 0 : number ->emitResult.emitSkipped : boolean, Symbol(ts.EmitResult.emitSkipped, Decl(typescript.d.ts, 819, 26)) ->emitResult : ts.EmitResult, Symbol(emitResult, Decl(APISample_compile.ts, 15, 7)) ->emitSkipped : boolean, Symbol(ts.EmitResult.emitSkipped, Decl(typescript.d.ts, 819, 26)) +>emitResult.emitSkipped : boolean +>emitResult : ts.EmitResult +>emitSkipped : boolean >1 : number >0 : number console.log(`Process exiting with code '${exitCode}'.`); >console.log(`Process exiting with code '${exitCode}'.`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_compile.ts, 8, 11)) +>console : any >log : any >`Process exiting with code '${exitCode}'.` : string ->exitCode : number, Symbol(exitCode, Decl(APISample_compile.ts, 25, 7)) +>exitCode : number process.exit(exitCode); >process.exit(exitCode) : any >process.exit : any ->process : any, Symbol(process, Decl(APISample_compile.ts, 7, 11)) +>process : any >exit : any ->exitCode : number, Symbol(exitCode, Decl(APISample_compile.ts, 25, 7)) +>exitCode : number } compile(process.argv.slice(2), { >compile(process.argv.slice(2), { noEmitOnError: true, noImplicitAny: true, target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS}) : void ->compile : (fileNames: string[], options: ts.CompilerOptions) => void, Symbol(compile, Decl(APISample_compile.ts, 11, 34)) +>compile : (fileNames: string[], options: ts.CompilerOptions) => void >process.argv.slice(2) : any >process.argv.slice : any >process.argv : any ->process : any, Symbol(process, Decl(APISample_compile.ts, 7, 11)) +>process : any >argv : any >slice : any >2 : number >{ noEmitOnError: true, noImplicitAny: true, target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS} : { [x: string]: boolean | ts.ScriptTarget | ts.ModuleKind; noEmitOnError: boolean; noImplicitAny: boolean; target: ts.ScriptTarget; module: ts.ModuleKind; } noEmitOnError: true, noImplicitAny: true, ->noEmitOnError : boolean, Symbol(noEmitOnError, Decl(APISample_compile.ts, 30, 32)) +>noEmitOnError : boolean >true : boolean ->noImplicitAny : boolean, Symbol(noImplicitAny, Decl(APISample_compile.ts, 31, 24)) +>noImplicitAny : boolean >true : boolean target: ts.ScriptTarget.ES5, module: ts.ModuleKind.CommonJS ->target : ts.ScriptTarget, Symbol(target, Decl(APISample_compile.ts, 31, 45)) ->ts.ScriptTarget.ES5 : ts.ScriptTarget, Symbol(ts.ScriptTarget.ES5, Decl(typescript.d.ts, 1117, 16)) ->ts.ScriptTarget : typeof ts.ScriptTarget, Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) ->ScriptTarget : typeof ts.ScriptTarget, Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) ->ES5 : ts.ScriptTarget, Symbol(ts.ScriptTarget.ES5, Decl(typescript.d.ts, 1117, 16)) ->module : ts.ModuleKind, Symbol(module, Decl(APISample_compile.ts, 32, 32)) ->ts.ModuleKind.CommonJS : ts.ModuleKind, Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) ->ts.ModuleKind : typeof ts.ModuleKind, Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_compile.ts, 9, 20)) ->ModuleKind : typeof ts.ModuleKind, Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) ->CommonJS : ts.ModuleKind, Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) +>target : ts.ScriptTarget +>ts.ScriptTarget.ES5 : ts.ScriptTarget +>ts.ScriptTarget : typeof ts.ScriptTarget +>ts : typeof ts +>ScriptTarget : typeof ts.ScriptTarget +>ES5 : ts.ScriptTarget +>module : ts.ModuleKind +>ts.ModuleKind.CommonJS : ts.ModuleKind +>ts.ModuleKind : typeof ts.ModuleKind +>ts : typeof ts +>ModuleKind : typeof ts.ModuleKind +>CommonJS : ts.ModuleKind }); diff --git a/tests/baselines/reference/APISample_linter.symbols b/tests/baselines/reference/APISample_linter.symbols new file mode 100644 index 0000000000000..a094165d24fe0 --- /dev/null +++ b/tests/baselines/reference/APISample_linter.symbols @@ -0,0 +1,260 @@ +=== tests/cases/compiler/APISample_linter.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#traversing-the-ast-with-a-little-linter + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : Symbol(process, Decl(APISample_linter.ts, 7, 11)) + +declare var console: any; +>console : Symbol(console, Decl(APISample_linter.ts, 8, 11)) + +declare var readFileSync: any; +>readFileSync : Symbol(readFileSync, Decl(APISample_linter.ts, 9, 11)) + +import * as ts from "typescript"; +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) + +export function delint(sourceFile: ts.SourceFile) { +>delint : Symbol(delint, Decl(APISample_linter.ts, 11, 33)) +>sourceFile : Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SourceFile : Symbol(ts.SourceFile, Decl(typescript.d.ts, 740, 5), Decl(typescript.d.ts, 1285, 5)) + + delintNode(sourceFile); +>delintNode : Symbol(delintNode, Decl(APISample_linter.ts, 14, 27)) +>sourceFile : Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) + + function delintNode(node: ts.Node) { +>delintNode : Symbol(delintNode, Decl(APISample_linter.ts, 14, 27)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>Node : Symbol(ts.Node, Decl(typescript.d.ts, 296, 5), Decl(typescript.d.ts, 1245, 32)) + + switch (node.kind) { +>node.kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) + + case ts.SyntaxKind.ForStatement: +>ts.SyntaxKind.ForStatement : Symbol(ts.SyntaxKind.ForStatement, Decl(typescript.d.ts, 209, 29)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ForStatement : Symbol(ts.SyntaxKind.ForStatement, Decl(typescript.d.ts, 209, 29)) + + case ts.SyntaxKind.ForInStatement: +>ts.SyntaxKind.ForInStatement : Symbol(ts.SyntaxKind.ForInStatement, Decl(typescript.d.ts, 210, 27)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ForInStatement : Symbol(ts.SyntaxKind.ForInStatement, Decl(typescript.d.ts, 210, 27)) + + case ts.SyntaxKind.WhileStatement: +>ts.SyntaxKind.WhileStatement : Symbol(ts.SyntaxKind.WhileStatement, Decl(typescript.d.ts, 208, 26)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>WhileStatement : Symbol(ts.SyntaxKind.WhileStatement, Decl(typescript.d.ts, 208, 26)) + + case ts.SyntaxKind.DoStatement: +>ts.SyntaxKind.DoStatement : Symbol(ts.SyntaxKind.DoStatement, Decl(typescript.d.ts, 207, 26)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>DoStatement : Symbol(ts.SyntaxKind.DoStatement, Decl(typescript.d.ts, 207, 26)) + + if ((node).statement.kind !== ts.SyntaxKind.Block) { +>(node).statement.kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>(node).statement : Symbol(ts.IterationStatement.statement, Decl(typescript.d.ts, 589, 52)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>IterationStatement : Symbol(ts.IterationStatement, Decl(typescript.d.ts, 588, 5)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>statement : Symbol(ts.IterationStatement.statement, Decl(typescript.d.ts, 589, 52)) +>kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ts.SyntaxKind.Block : Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>Block : Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) + + report(node, "A looping statement's contents should be wrapped in a block body."); +>report : Symbol(report, Decl(APISample_linter.ts, 48, 5)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) + } + break; + + case ts.SyntaxKind.IfStatement: +>ts.SyntaxKind.IfStatement : Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>IfStatement : Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) + + let ifStatement = (node); +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>IfStatement : Symbol(ts.IfStatement, Decl(typescript.d.ts, 583, 5)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) + + if (ifStatement.thenStatement.kind !== ts.SyntaxKind.Block) { +>ifStatement.thenStatement.kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ifStatement.thenStatement : Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>thenStatement : Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) +>kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ts.SyntaxKind.Block : Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>Block : Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) + + report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); +>report : Symbol(report, Decl(APISample_linter.ts, 48, 5)) +>ifStatement.thenStatement : Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>thenStatement : Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) + } + if (ifStatement.elseStatement && +>ifStatement.elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) + + ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && +>ifStatement.elseStatement.kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ifStatement.elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ts.SyntaxKind.Block : Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>Block : Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) + + ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement) { +>ifStatement.elseStatement.kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ifStatement.elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ts.SyntaxKind.IfStatement : Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>IfStatement : Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) + + report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body."); +>report : Symbol(report, Decl(APISample_linter.ts, 48, 5)) +>ifStatement.elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>ifStatement : Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>elseStatement : Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) + } + break; + + case ts.SyntaxKind.BinaryExpression: +>ts.SyntaxKind.BinaryExpression : Symbol(ts.SyntaxKind.BinaryExpression, Decl(typescript.d.ts, 192, 37)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>BinaryExpression : Symbol(ts.SyntaxKind.BinaryExpression, Decl(typescript.d.ts, 192, 37)) + + let op = (node).operatorToken.kind; +>op : Symbol(op, Decl(APISample_linter.ts, 40, 19)) +>(node).operatorToken.kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>(node).operatorToken : Symbol(ts.BinaryExpression.operatorToken, Decl(typescript.d.ts, 497, 25)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>BinaryExpression : Symbol(ts.BinaryExpression, Decl(typescript.d.ts, 495, 5)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>operatorToken : Symbol(ts.BinaryExpression.operatorToken, Decl(typescript.d.ts, 497, 25)) +>kind : Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) + + if (op === ts.SyntaxKind.EqualsEqualsToken || op == ts.SyntaxKind.ExclamationEqualsToken) { +>op : Symbol(op, Decl(APISample_linter.ts, 40, 19)) +>ts.SyntaxKind.EqualsEqualsToken : Symbol(ts.SyntaxKind.EqualsEqualsToken, Decl(typescript.d.ts, 51, 36)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>EqualsEqualsToken : Symbol(ts.SyntaxKind.EqualsEqualsToken, Decl(typescript.d.ts, 51, 36)) +>op : Symbol(op, Decl(APISample_linter.ts, 40, 19)) +>ts.SyntaxKind.ExclamationEqualsToken : Symbol(ts.SyntaxKind.ExclamationEqualsToken, Decl(typescript.d.ts, 52, 31)) +>ts.SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>SyntaxKind : Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) +>ExclamationEqualsToken : Symbol(ts.SyntaxKind.ExclamationEqualsToken, Decl(typescript.d.ts, 52, 31)) + + report(node, "Use '===' and '!=='.") +>report : Symbol(report, Decl(APISample_linter.ts, 48, 5)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) + } + break; + } + + ts.forEachChild(node, delintNode); +>ts.forEachChild : Symbol(ts.forEachChild, Decl(typescript.d.ts, 1214, 48)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>forEachChild : Symbol(ts.forEachChild, Decl(typescript.d.ts, 1214, 48)) +>node : Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>delintNode : Symbol(delintNode, Decl(APISample_linter.ts, 14, 27)) + } + + function report(node: ts.Node, message: string) { +>report : Symbol(report, Decl(APISample_linter.ts, 48, 5)) +>node : Symbol(node, Decl(APISample_linter.ts, 50, 20)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>Node : Symbol(ts.Node, Decl(typescript.d.ts, 296, 5), Decl(typescript.d.ts, 1245, 32)) +>message : Symbol(message, Decl(APISample_linter.ts, 50, 34)) + + let { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart()); +>line : Symbol(line, Decl(APISample_linter.ts, 51, 13)) +>character : Symbol(character, Decl(APISample_linter.ts, 51, 19)) +>sourceFile.getLineAndCharacterOfPosition : Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>sourceFile : Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) +>getLineAndCharacterOfPosition : Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>node.getStart : Symbol(ts.Node.getStart, Decl(typescript.d.ts, 1250, 53)) +>node : Symbol(node, Decl(APISample_linter.ts, 50, 20)) +>getStart : Symbol(ts.Node.getStart, Decl(typescript.d.ts, 1250, 53)) + + console.log(`${sourceFile.fileName} (${line + 1},${character + 1}): ${message}`); +>console : Symbol(console, Decl(APISample_linter.ts, 8, 11)) +>sourceFile.fileName : Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>sourceFile : Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) +>fileName : Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>line : Symbol(line, Decl(APISample_linter.ts, 51, 13)) +>character : Symbol(character, Decl(APISample_linter.ts, 51, 19)) +>message : Symbol(message, Decl(APISample_linter.ts, 50, 34)) + } +} + +const fileNames = process.argv.slice(2); +>fileNames : Symbol(fileNames, Decl(APISample_linter.ts, 56, 5)) +>process : Symbol(process, Decl(APISample_linter.ts, 7, 11)) + +fileNames.forEach(fileName => { +>fileNames : Symbol(fileNames, Decl(APISample_linter.ts, 56, 5)) +>fileName : Symbol(fileName, Decl(APISample_linter.ts, 57, 18)) + + // Parse a file + let sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); +>sourceFile : Symbol(sourceFile, Decl(APISample_linter.ts, 59, 7)) +>ts.createSourceFile : Symbol(ts.createSourceFile, Decl(typescript.d.ts, 1215, 107)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>createSourceFile : Symbol(ts.createSourceFile, Decl(typescript.d.ts, 1215, 107)) +>fileName : Symbol(fileName, Decl(APISample_linter.ts, 57, 18)) +>readFileSync : Symbol(readFileSync, Decl(APISample_linter.ts, 9, 11)) +>fileName : Symbol(fileName, Decl(APISample_linter.ts, 57, 18)) +>ts.ScriptTarget.ES6 : Symbol(ts.ScriptTarget.ES6, Decl(typescript.d.ts, 1118, 16)) +>ts.ScriptTarget : Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) +>ts : Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>ScriptTarget : Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) +>ES6 : Symbol(ts.ScriptTarget.ES6, Decl(typescript.d.ts, 1118, 16)) + + // delint it + delint(sourceFile); +>delint : Symbol(delint, Decl(APISample_linter.ts, 11, 33)) +>sourceFile : Symbol(sourceFile, Decl(APISample_linter.ts, 59, 7)) + +}); diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index e566af8cfa644..15f5a25fd4367 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -7,211 +7,211 @@ */ declare var process: any; ->process : any, Symbol(process, Decl(APISample_linter.ts, 7, 11)) +>process : any declare var console: any; ->console : any, Symbol(console, Decl(APISample_linter.ts, 8, 11)) +>console : any declare var readFileSync: any; ->readFileSync : any, Symbol(readFileSync, Decl(APISample_linter.ts, 9, 11)) +>readFileSync : any import * as ts from "typescript"; ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) +>ts : typeof ts export function delint(sourceFile: ts.SourceFile) { ->delint : (sourceFile: ts.SourceFile) => void, Symbol(delint, Decl(APISample_linter.ts, 11, 33)) ->sourceFile : ts.SourceFile, Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) ->ts : any, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SourceFile : ts.SourceFile, Symbol(ts.SourceFile, Decl(typescript.d.ts, 740, 5), Decl(typescript.d.ts, 1285, 5)) +>delint : (sourceFile: ts.SourceFile) => void +>sourceFile : ts.SourceFile +>ts : any +>SourceFile : ts.SourceFile delintNode(sourceFile); >delintNode(sourceFile) : void ->delintNode : (node: ts.Node) => void, Symbol(delintNode, Decl(APISample_linter.ts, 14, 27)) ->sourceFile : ts.SourceFile, Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) +>delintNode : (node: ts.Node) => void +>sourceFile : ts.SourceFile function delintNode(node: ts.Node) { ->delintNode : (node: ts.Node) => void, Symbol(delintNode, Decl(APISample_linter.ts, 14, 27)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) ->ts : any, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->Node : ts.Node, Symbol(ts.Node, Decl(typescript.d.ts, 296, 5), Decl(typescript.d.ts, 1245, 32)) +>delintNode : (node: ts.Node) => void +>node : ts.Node +>ts : any +>Node : ts.Node switch (node.kind) { ->node.kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) ->kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>node.kind : ts.SyntaxKind +>node : ts.Node +>kind : ts.SyntaxKind case ts.SyntaxKind.ForStatement: ->ts.SyntaxKind.ForStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.ForStatement, Decl(typescript.d.ts, 209, 29)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ForStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.ForStatement, Decl(typescript.d.ts, 209, 29)) +>ts.SyntaxKind.ForStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>ForStatement : ts.SyntaxKind case ts.SyntaxKind.ForInStatement: ->ts.SyntaxKind.ForInStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.ForInStatement, Decl(typescript.d.ts, 210, 27)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ForInStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.ForInStatement, Decl(typescript.d.ts, 210, 27)) +>ts.SyntaxKind.ForInStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>ForInStatement : ts.SyntaxKind case ts.SyntaxKind.WhileStatement: ->ts.SyntaxKind.WhileStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.WhileStatement, Decl(typescript.d.ts, 208, 26)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->WhileStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.WhileStatement, Decl(typescript.d.ts, 208, 26)) +>ts.SyntaxKind.WhileStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>WhileStatement : ts.SyntaxKind case ts.SyntaxKind.DoStatement: ->ts.SyntaxKind.DoStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.DoStatement, Decl(typescript.d.ts, 207, 26)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->DoStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.DoStatement, Decl(typescript.d.ts, 207, 26)) +>ts.SyntaxKind.DoStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>DoStatement : ts.SyntaxKind if ((node).statement.kind !== ts.SyntaxKind.Block) { >(node).statement.kind !== ts.SyntaxKind.Block : boolean ->(node).statement.kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->(node).statement : ts.Statement, Symbol(ts.IterationStatement.statement, Decl(typescript.d.ts, 589, 52)) +>(node).statement.kind : ts.SyntaxKind +>(node).statement : ts.Statement >(node) : ts.IterationStatement >node : ts.IterationStatement ->ts : any, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->IterationStatement : ts.IterationStatement, Symbol(ts.IterationStatement, Decl(typescript.d.ts, 588, 5)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) ->statement : ts.Statement, Symbol(ts.IterationStatement.statement, Decl(typescript.d.ts, 589, 52)) ->kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ts.SyntaxKind.Block : ts.SyntaxKind, Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->Block : ts.SyntaxKind, Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) +>ts : any +>IterationStatement : ts.IterationStatement +>node : ts.Node +>statement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.Block : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>Block : ts.SyntaxKind report(node, "A looping statement's contents should be wrapped in a block body."); >report(node, "A looping statement's contents should be wrapped in a block body.") : void ->report : (node: ts.Node, message: string) => void, Symbol(report, Decl(APISample_linter.ts, 48, 5)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>report : (node: ts.Node, message: string) => void +>node : ts.Node >"A looping statement's contents should be wrapped in a block body." : string } break; case ts.SyntaxKind.IfStatement: ->ts.SyntaxKind.IfStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->IfStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) +>ts.SyntaxKind.IfStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>IfStatement : ts.SyntaxKind let ifStatement = (node); ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) +>ifStatement : ts.IfStatement >(node) : ts.IfStatement >node : ts.IfStatement ->ts : any, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->IfStatement : ts.IfStatement, Symbol(ts.IfStatement, Decl(typescript.d.ts, 583, 5)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>ts : any +>IfStatement : ts.IfStatement +>node : ts.Node if (ifStatement.thenStatement.kind !== ts.SyntaxKind.Block) { >ifStatement.thenStatement.kind !== ts.SyntaxKind.Block : boolean ->ifStatement.thenStatement.kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ifStatement.thenStatement : ts.Statement, Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) ->thenStatement : ts.Statement, Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) ->kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ts.SyntaxKind.Block : ts.SyntaxKind, Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->Block : ts.SyntaxKind, Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) +>ifStatement.thenStatement.kind : ts.SyntaxKind +>ifStatement.thenStatement : ts.Statement +>ifStatement : ts.IfStatement +>thenStatement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.Block : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>Block : ts.SyntaxKind report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body."); >report(ifStatement.thenStatement, "An if statement's contents should be wrapped in a block body.") : void ->report : (node: ts.Node, message: string) => void, Symbol(report, Decl(APISample_linter.ts, 48, 5)) ->ifStatement.thenStatement : ts.Statement, Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) ->thenStatement : ts.Statement, Symbol(ts.IfStatement.thenStatement, Decl(typescript.d.ts, 585, 31)) +>report : (node: ts.Node, message: string) => void +>ifStatement.thenStatement : ts.Statement +>ifStatement : ts.IfStatement +>thenStatement : ts.Statement >"An if statement's contents should be wrapped in a block body." : string } if (ifStatement.elseStatement && >ifStatement.elseStatement && ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement : boolean >ifStatement.elseStatement && ifStatement.elseStatement.kind !== ts.SyntaxKind.Block : boolean ->ifStatement.elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) ->elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement ifStatement.elseStatement.kind !== ts.SyntaxKind.Block && >ifStatement.elseStatement.kind !== ts.SyntaxKind.Block : boolean ->ifStatement.elseStatement.kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ifStatement.elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) ->elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) ->kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ts.SyntaxKind.Block : ts.SyntaxKind, Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->Block : ts.SyntaxKind, Symbol(ts.SyntaxKind.Block, Decl(typescript.d.ts, 202, 36)) +>ifStatement.elseStatement.kind : ts.SyntaxKind +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.Block : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>Block : ts.SyntaxKind ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement) { >ifStatement.elseStatement.kind !== ts.SyntaxKind.IfStatement : boolean ->ifStatement.elseStatement.kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ifStatement.elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) ->elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) ->kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->ts.SyntaxKind.IfStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->IfStatement : ts.SyntaxKind, Symbol(ts.SyntaxKind.IfStatement, Decl(typescript.d.ts, 206, 34)) +>ifStatement.elseStatement.kind : ts.SyntaxKind +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement +>kind : ts.SyntaxKind +>ts.SyntaxKind.IfStatement : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>IfStatement : ts.SyntaxKind report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body."); >report(ifStatement.elseStatement, "An else statement's contents should be wrapped in a block body.") : void ->report : (node: ts.Node, message: string) => void, Symbol(report, Decl(APISample_linter.ts, 48, 5)) ->ifStatement.elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) ->ifStatement : ts.IfStatement, Symbol(ifStatement, Decl(APISample_linter.ts, 28, 19)) ->elseStatement : ts.Statement, Symbol(ts.IfStatement.elseStatement, Decl(typescript.d.ts, 586, 33)) +>report : (node: ts.Node, message: string) => void +>ifStatement.elseStatement : ts.Statement +>ifStatement : ts.IfStatement +>elseStatement : ts.Statement >"An else statement's contents should be wrapped in a block body." : string } break; case ts.SyntaxKind.BinaryExpression: ->ts.SyntaxKind.BinaryExpression : ts.SyntaxKind, Symbol(ts.SyntaxKind.BinaryExpression, Decl(typescript.d.ts, 192, 37)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->BinaryExpression : ts.SyntaxKind, Symbol(ts.SyntaxKind.BinaryExpression, Decl(typescript.d.ts, 192, 37)) +>ts.SyntaxKind.BinaryExpression : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>BinaryExpression : ts.SyntaxKind let op = (node).operatorToken.kind; ->op : ts.SyntaxKind, Symbol(op, Decl(APISample_linter.ts, 40, 19)) ->(node).operatorToken.kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) ->(node).operatorToken : ts.Node, Symbol(ts.BinaryExpression.operatorToken, Decl(typescript.d.ts, 497, 25)) +>op : ts.SyntaxKind +>(node).operatorToken.kind : ts.SyntaxKind +>(node).operatorToken : ts.Node >(node) : ts.BinaryExpression >node : ts.BinaryExpression ->ts : any, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->BinaryExpression : ts.BinaryExpression, Symbol(ts.BinaryExpression, Decl(typescript.d.ts, 495, 5)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) ->operatorToken : ts.Node, Symbol(ts.BinaryExpression.operatorToken, Decl(typescript.d.ts, 497, 25)) ->kind : ts.SyntaxKind, Symbol(ts.Node.kind, Decl(typescript.d.ts, 297, 38)) +>ts : any +>BinaryExpression : ts.BinaryExpression +>node : ts.Node +>operatorToken : ts.Node +>kind : ts.SyntaxKind if (op === ts.SyntaxKind.EqualsEqualsToken || op == ts.SyntaxKind.ExclamationEqualsToken) { >op === ts.SyntaxKind.EqualsEqualsToken || op == ts.SyntaxKind.ExclamationEqualsToken : boolean >op === ts.SyntaxKind.EqualsEqualsToken : boolean ->op : ts.SyntaxKind, Symbol(op, Decl(APISample_linter.ts, 40, 19)) ->ts.SyntaxKind.EqualsEqualsToken : ts.SyntaxKind, Symbol(ts.SyntaxKind.EqualsEqualsToken, Decl(typescript.d.ts, 51, 36)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->EqualsEqualsToken : ts.SyntaxKind, Symbol(ts.SyntaxKind.EqualsEqualsToken, Decl(typescript.d.ts, 51, 36)) +>op : ts.SyntaxKind +>ts.SyntaxKind.EqualsEqualsToken : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>EqualsEqualsToken : ts.SyntaxKind >op == ts.SyntaxKind.ExclamationEqualsToken : boolean ->op : ts.SyntaxKind, Symbol(op, Decl(APISample_linter.ts, 40, 19)) ->ts.SyntaxKind.ExclamationEqualsToken : ts.SyntaxKind, Symbol(ts.SyntaxKind.ExclamationEqualsToken, Decl(typescript.d.ts, 52, 31)) ->ts.SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->SyntaxKind : typeof ts.SyntaxKind, Symbol(ts.SyntaxKind, Decl(typescript.d.ts, 22, 5)) ->ExclamationEqualsToken : ts.SyntaxKind, Symbol(ts.SyntaxKind.ExclamationEqualsToken, Decl(typescript.d.ts, 52, 31)) +>op : ts.SyntaxKind +>ts.SyntaxKind.ExclamationEqualsToken : ts.SyntaxKind +>ts.SyntaxKind : typeof ts.SyntaxKind +>ts : typeof ts +>SyntaxKind : typeof ts.SyntaxKind +>ExclamationEqualsToken : ts.SyntaxKind report(node, "Use '===' and '!=='.") >report(node, "Use '===' and '!=='.") : void ->report : (node: ts.Node, message: string) => void, Symbol(report, Decl(APISample_linter.ts, 48, 5)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) +>report : (node: ts.Node, message: string) => void +>node : ts.Node >"Use '===' and '!=='." : string } break; @@ -219,57 +219,57 @@ export function delint(sourceFile: ts.SourceFile) { ts.forEachChild(node, delintNode); >ts.forEachChild(node, delintNode) : void ->ts.forEachChild : (node: ts.Node, cbNode: (node: ts.Node) => T, cbNodeArray?: (nodes: ts.Node[]) => T) => T, Symbol(ts.forEachChild, Decl(typescript.d.ts, 1214, 48)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->forEachChild : (node: ts.Node, cbNode: (node: ts.Node) => T, cbNodeArray?: (nodes: ts.Node[]) => T) => T, Symbol(ts.forEachChild, Decl(typescript.d.ts, 1214, 48)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 16, 24)) ->delintNode : (node: ts.Node) => void, Symbol(delintNode, Decl(APISample_linter.ts, 14, 27)) +>ts.forEachChild : (node: ts.Node, cbNode: (node: ts.Node) => T, cbNodeArray?: (nodes: ts.Node[]) => T) => T +>ts : typeof ts +>forEachChild : (node: ts.Node, cbNode: (node: ts.Node) => T, cbNodeArray?: (nodes: ts.Node[]) => T) => T +>node : ts.Node +>delintNode : (node: ts.Node) => void } function report(node: ts.Node, message: string) { ->report : (node: ts.Node, message: string) => void, Symbol(report, Decl(APISample_linter.ts, 48, 5)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 50, 20)) ->ts : any, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->Node : ts.Node, Symbol(ts.Node, Decl(typescript.d.ts, 296, 5), Decl(typescript.d.ts, 1245, 32)) ->message : string, Symbol(message, Decl(APISample_linter.ts, 50, 34)) +>report : (node: ts.Node, message: string) => void +>node : ts.Node +>ts : any +>Node : ts.Node +>message : string let { line, character } = sourceFile.getLineAndCharacterOfPosition(node.getStart()); ->line : number, Symbol(line, Decl(APISample_linter.ts, 51, 13)) ->character : number, Symbol(character, Decl(APISample_linter.ts, 51, 19)) +>line : number +>character : number >sourceFile.getLineAndCharacterOfPosition(node.getStart()) : ts.LineAndCharacter ->sourceFile.getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter, Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) ->sourceFile : ts.SourceFile, Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) ->getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter, Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>sourceFile.getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter +>sourceFile : ts.SourceFile +>getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter >node.getStart() : number ->node.getStart : (sourceFile?: ts.SourceFile) => number, Symbol(ts.Node.getStart, Decl(typescript.d.ts, 1250, 53)) ->node : ts.Node, Symbol(node, Decl(APISample_linter.ts, 50, 20)) ->getStart : (sourceFile?: ts.SourceFile) => number, Symbol(ts.Node.getStart, Decl(typescript.d.ts, 1250, 53)) +>node.getStart : (sourceFile?: ts.SourceFile) => number +>node : ts.Node +>getStart : (sourceFile?: ts.SourceFile) => number console.log(`${sourceFile.fileName} (${line + 1},${character + 1}): ${message}`); >console.log(`${sourceFile.fileName} (${line + 1},${character + 1}): ${message}`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_linter.ts, 8, 11)) +>console : any >log : any >`${sourceFile.fileName} (${line + 1},${character + 1}): ${message}` : string ->sourceFile.fileName : string, Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) ->sourceFile : ts.SourceFile, Symbol(sourceFile, Decl(APISample_linter.ts, 13, 23)) ->fileName : string, Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>sourceFile.fileName : string +>sourceFile : ts.SourceFile +>fileName : string >line + 1 : number ->line : number, Symbol(line, Decl(APISample_linter.ts, 51, 13)) +>line : number >1 : number >character + 1 : number ->character : number, Symbol(character, Decl(APISample_linter.ts, 51, 19)) +>character : number >1 : number ->message : string, Symbol(message, Decl(APISample_linter.ts, 50, 34)) +>message : string } } const fileNames = process.argv.slice(2); ->fileNames : any, Symbol(fileNames, Decl(APISample_linter.ts, 56, 5)) +>fileNames : any >process.argv.slice(2) : any >process.argv.slice : any >process.argv : any ->process : any, Symbol(process, Decl(APISample_linter.ts, 7, 11)) +>process : any >argv : any >slice : any >2 : number @@ -277,36 +277,36 @@ const fileNames = process.argv.slice(2); fileNames.forEach(fileName => { >fileNames.forEach(fileName => { // Parse a file let sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); // delint it delint(sourceFile);}) : any >fileNames.forEach : any ->fileNames : any, Symbol(fileNames, Decl(APISample_linter.ts, 56, 5)) +>fileNames : any >forEach : any >fileName => { // Parse a file let sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); // delint it delint(sourceFile);} : (fileName: any) => void ->fileName : any, Symbol(fileName, Decl(APISample_linter.ts, 57, 18)) +>fileName : any // Parse a file let sourceFile = ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true); ->sourceFile : ts.SourceFile, Symbol(sourceFile, Decl(APISample_linter.ts, 59, 7)) +>sourceFile : ts.SourceFile >ts.createSourceFile(fileName, readFileSync(fileName).toString(), ts.ScriptTarget.ES6, /*setParentNodes */ true) : ts.SourceFile ->ts.createSourceFile : (fileName: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile, Symbol(ts.createSourceFile, Decl(typescript.d.ts, 1215, 107)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->createSourceFile : (fileName: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile, Symbol(ts.createSourceFile, Decl(typescript.d.ts, 1215, 107)) ->fileName : any, Symbol(fileName, Decl(APISample_linter.ts, 57, 18)) +>ts.createSourceFile : (fileName: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile +>ts : typeof ts +>createSourceFile : (fileName: string, sourceText: string, languageVersion: ts.ScriptTarget, setParentNodes?: boolean) => ts.SourceFile +>fileName : any >readFileSync(fileName).toString() : any >readFileSync(fileName).toString : any >readFileSync(fileName) : any ->readFileSync : any, Symbol(readFileSync, Decl(APISample_linter.ts, 9, 11)) ->fileName : any, Symbol(fileName, Decl(APISample_linter.ts, 57, 18)) +>readFileSync : any +>fileName : any >toString : any ->ts.ScriptTarget.ES6 : ts.ScriptTarget, Symbol(ts.ScriptTarget.ES6, Decl(typescript.d.ts, 1118, 16)) ->ts.ScriptTarget : typeof ts.ScriptTarget, Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_linter.ts, 11, 6)) ->ScriptTarget : typeof ts.ScriptTarget, Symbol(ts.ScriptTarget, Decl(typescript.d.ts, 1115, 5)) ->ES6 : ts.ScriptTarget, Symbol(ts.ScriptTarget.ES6, Decl(typescript.d.ts, 1118, 16)) +>ts.ScriptTarget.ES6 : ts.ScriptTarget +>ts.ScriptTarget : typeof ts.ScriptTarget +>ts : typeof ts +>ScriptTarget : typeof ts.ScriptTarget +>ES6 : ts.ScriptTarget >true : boolean // delint it delint(sourceFile); >delint(sourceFile) : void ->delint : (sourceFile: ts.SourceFile) => void, Symbol(delint, Decl(APISample_linter.ts, 11, 33)) ->sourceFile : ts.SourceFile, Symbol(sourceFile, Decl(APISample_linter.ts, 59, 7)) +>delint : (sourceFile: ts.SourceFile) => void +>sourceFile : ts.SourceFile }); diff --git a/tests/baselines/reference/APISample_transform.symbols b/tests/baselines/reference/APISample_transform.symbols new file mode 100644 index 0000000000000..af35dd5dbb767 --- /dev/null +++ b/tests/baselines/reference/APISample_transform.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/APISample_transform.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#a-simple-transform-function + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var console: any; +>console : Symbol(console, Decl(APISample_transform.ts, 7, 11)) + +import * as ts from "typescript"; +>ts : Symbol(ts, Decl(APISample_transform.ts, 9, 6)) + +const source = "let x: string = 'string'"; +>source : Symbol(source, Decl(APISample_transform.ts, 11, 5)) + +let result = ts.transpile(source, { module: ts.ModuleKind.CommonJS }); +>result : Symbol(result, Decl(APISample_transform.ts, 13, 3)) +>ts.transpile : Symbol(ts.transpile, Decl(typescript.d.ts, 1752, 5)) +>ts : Symbol(ts, Decl(APISample_transform.ts, 9, 6)) +>transpile : Symbol(ts.transpile, Decl(typescript.d.ts, 1752, 5)) +>source : Symbol(source, Decl(APISample_transform.ts, 11, 5)) +>module : Symbol(module, Decl(APISample_transform.ts, 13, 35)) +>ts.ModuleKind.CommonJS : Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) +>ts.ModuleKind : Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) +>ts : Symbol(ts, Decl(APISample_transform.ts, 9, 6)) +>ModuleKind : Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) +>CommonJS : Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) + +console.log(JSON.stringify(result)); +>console : Symbol(console, Decl(APISample_transform.ts, 7, 11)) +>JSON.stringify : Symbol(JSON.stringify, Decl(lib.d.ts, 964, 70), Decl(lib.d.ts, 969, 34), Decl(lib.d.ts, 975, 78), Decl(lib.d.ts, 981, 51), Decl(lib.d.ts, 988, 90)) +>JSON : Symbol(JSON, Decl(lib.d.ts, 955, 42), Decl(lib.d.ts, 1000, 11)) +>stringify : Symbol(JSON.stringify, Decl(lib.d.ts, 964, 70), Decl(lib.d.ts, 969, 34), Decl(lib.d.ts, 975, 78), Decl(lib.d.ts, 981, 51), Decl(lib.d.ts, 988, 90)) +>result : Symbol(result, Decl(APISample_transform.ts, 13, 3)) + diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index 524d7c274268c..43470a7835a7c 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -7,38 +7,38 @@ */ declare var console: any; ->console : any, Symbol(console, Decl(APISample_transform.ts, 7, 11)) +>console : any import * as ts from "typescript"; ->ts : typeof ts, Symbol(ts, Decl(APISample_transform.ts, 9, 6)) +>ts : typeof ts const source = "let x: string = 'string'"; ->source : string, Symbol(source, Decl(APISample_transform.ts, 11, 5)) +>source : string >"let x: string = 'string'" : string let result = ts.transpile(source, { module: ts.ModuleKind.CommonJS }); ->result : string, Symbol(result, Decl(APISample_transform.ts, 13, 3)) +>result : string >ts.transpile(source, { module: ts.ModuleKind.CommonJS }) : string ->ts.transpile : (input: string, compilerOptions?: ts.CompilerOptions, fileName?: string, diagnostics?: ts.Diagnostic[]) => string, Symbol(ts.transpile, Decl(typescript.d.ts, 1752, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_transform.ts, 9, 6)) ->transpile : (input: string, compilerOptions?: ts.CompilerOptions, fileName?: string, diagnostics?: ts.Diagnostic[]) => string, Symbol(ts.transpile, Decl(typescript.d.ts, 1752, 5)) ->source : string, Symbol(source, Decl(APISample_transform.ts, 11, 5)) +>ts.transpile : (input: string, compilerOptions?: ts.CompilerOptions, fileName?: string, diagnostics?: ts.Diagnostic[]) => string +>ts : typeof ts +>transpile : (input: string, compilerOptions?: ts.CompilerOptions, fileName?: string, diagnostics?: ts.Diagnostic[]) => string +>source : string >{ module: ts.ModuleKind.CommonJS } : { [x: string]: ts.ModuleKind; module: ts.ModuleKind; } ->module : ts.ModuleKind, Symbol(module, Decl(APISample_transform.ts, 13, 35)) ->ts.ModuleKind.CommonJS : ts.ModuleKind, Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) ->ts.ModuleKind : typeof ts.ModuleKind, Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_transform.ts, 9, 6)) ->ModuleKind : typeof ts.ModuleKind, Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) ->CommonJS : ts.ModuleKind, Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) +>module : ts.ModuleKind +>ts.ModuleKind.CommonJS : ts.ModuleKind +>ts.ModuleKind : typeof ts.ModuleKind +>ts : typeof ts +>ModuleKind : typeof ts.ModuleKind +>CommonJS : ts.ModuleKind console.log(JSON.stringify(result)); >console.log(JSON.stringify(result)) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_transform.ts, 7, 11)) +>console : any >log : any >JSON.stringify(result) : string ->JSON.stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: any): string; (value: any, replacer: any[], space: any): string; }, Symbol(JSON.stringify, Decl(lib.d.ts, 964, 70), Decl(lib.d.ts, 969, 34), Decl(lib.d.ts, 975, 78), Decl(lib.d.ts, 981, 51), Decl(lib.d.ts, 988, 90)) ->JSON : JSON, Symbol(JSON, Decl(lib.d.ts, 955, 42), Decl(lib.d.ts, 1000, 11)) ->stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: any): string; (value: any, replacer: any[], space: any): string; }, Symbol(JSON.stringify, Decl(lib.d.ts, 964, 70), Decl(lib.d.ts, 969, 34), Decl(lib.d.ts, 975, 78), Decl(lib.d.ts, 981, 51), Decl(lib.d.ts, 988, 90)) ->result : string, Symbol(result, Decl(APISample_transform.ts, 13, 3)) +>JSON.stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: any): string; (value: any, replacer: any[], space: any): string; } +>JSON : JSON +>stringify : { (value: any): string; (value: any, replacer: (key: string, value: any) => any): string; (value: any, replacer: any[]): string; (value: any, replacer: (key: string, value: any) => any, space: any): string; (value: any, replacer: any[], space: any): string; } +>result : string diff --git a/tests/baselines/reference/APISample_watcher.symbols b/tests/baselines/reference/APISample_watcher.symbols new file mode 100644 index 0000000000000..4510dd10356a2 --- /dev/null +++ b/tests/baselines/reference/APISample_watcher.symbols @@ -0,0 +1,322 @@ +=== tests/cases/compiler/APISample_watcher.ts === + +/* + * Note: This test is a public API sample. The sample sources can be found + at: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API#incremental-build-support-using-the-language-services + * Please log a "breaking change" issue for any API breaking change affecting this issue + */ + +declare var process: any; +>process : Symbol(process, Decl(APISample_watcher.ts, 7, 11)) + +declare var console: any; +>console : Symbol(console, Decl(APISample_watcher.ts, 8, 11)) + +declare var fs: any; +>fs : Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) + +declare var path: any; +>path : Symbol(path, Decl(APISample_watcher.ts, 10, 11)) + +import * as ts from "typescript"; +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) + +function watch(rootFileNames: string[], options: ts.CompilerOptions) { +>watch : Symbol(watch, Decl(APISample_watcher.ts, 12, 33)) +>rootFileNames : Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) +>options : Symbol(options, Decl(APISample_watcher.ts, 14, 39)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>CompilerOptions : Symbol(ts.CompilerOptions, Decl(typescript.d.ts, 1074, 5)) + + const files: ts.Map<{ version: number }> = {}; +>files : Symbol(files, Decl(APISample_watcher.ts, 15, 9)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>Map : Symbol(ts.Map, Decl(typescript.d.ts, 15, 29)) +>version : Symbol(version, Decl(APISample_watcher.ts, 15, 25)) + + // initialize the list of files + rootFileNames.forEach(fileName => { +>rootFileNames.forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>rootFileNames : Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 18, 26)) + + files[fileName] = { version: 0 }; +>files : Symbol(files, Decl(APISample_watcher.ts, 15, 9)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 18, 26)) +>version : Symbol(version, Decl(APISample_watcher.ts, 19, 27)) + + }); + + // Create the language service host to allow the LS to communicate with the host + const servicesHost: ts.LanguageServiceHost = { +>servicesHost : Symbol(servicesHost, Decl(APISample_watcher.ts, 23, 9)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>LanguageServiceHost : Symbol(ts.LanguageServiceHost, Decl(typescript.d.ts, 1318, 5)) + + getScriptFileNames: () => rootFileNames, +>getScriptFileNames : Symbol(getScriptFileNames, Decl(APISample_watcher.ts, 23, 50)) +>rootFileNames : Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) + + getScriptVersion: (fileName) => files[fileName] && files[fileName].version.toString(), +>getScriptVersion : Symbol(getScriptVersion, Decl(APISample_watcher.ts, 24, 48)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 25, 27)) +>files : Symbol(files, Decl(APISample_watcher.ts, 15, 9)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 25, 27)) +>files[fileName].version.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>files[fileName].version : Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>files : Symbol(files, Decl(APISample_watcher.ts, 15, 9)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 25, 27)) +>version : Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + + getScriptSnapshot: (fileName) => { +>getScriptSnapshot : Symbol(getScriptSnapshot, Decl(APISample_watcher.ts, 25, 94)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 26, 28)) + + if (!fs.existsSync(fileName)) { +>fs : Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 26, 28)) + + return undefined; +>undefined : Symbol(undefined) + } + + return ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()); +>ts.ScriptSnapshot.fromString : Symbol(ts.ScriptSnapshot.fromString, Decl(typescript.d.ts, 1311, 27)) +>ts.ScriptSnapshot : Symbol(ts.ScriptSnapshot, Decl(typescript.d.ts, 1310, 5)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>ScriptSnapshot : Symbol(ts.ScriptSnapshot, Decl(typescript.d.ts, 1310, 5)) +>fromString : Symbol(ts.ScriptSnapshot.fromString, Decl(typescript.d.ts, 1311, 27)) +>fs : Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 26, 28)) + + }, + getCurrentDirectory: () => process.cwd(), +>getCurrentDirectory : Symbol(getCurrentDirectory, Decl(APISample_watcher.ts, 32, 10)) +>process : Symbol(process, Decl(APISample_watcher.ts, 7, 11)) + + getCompilationSettings: () => options, +>getCompilationSettings : Symbol(getCompilationSettings, Decl(APISample_watcher.ts, 33, 49)) +>options : Symbol(options, Decl(APISample_watcher.ts, 14, 39)) + + getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), +>getDefaultLibFileName : Symbol(getDefaultLibFileName, Decl(APISample_watcher.ts, 34, 46)) +>options : Symbol(options, Decl(APISample_watcher.ts, 35, 32)) +>ts.getDefaultLibFilePath : Symbol(ts.getDefaultLibFilePath, Decl(typescript.d.ts, 1760, 44)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>getDefaultLibFilePath : Symbol(ts.getDefaultLibFilePath, Decl(typescript.d.ts, 1760, 44)) +>options : Symbol(options, Decl(APISample_watcher.ts, 35, 32)) + + }; + + // Create the language service files + const services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) +>services : Symbol(services, Decl(APISample_watcher.ts, 39, 9)) +>ts.createLanguageService : Symbol(ts.createLanguageService, Decl(typescript.d.ts, 1758, 97)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>createLanguageService : Symbol(ts.createLanguageService, Decl(typescript.d.ts, 1758, 97)) +>servicesHost : Symbol(servicesHost, Decl(APISample_watcher.ts, 23, 9)) +>ts.createDocumentRegistry : Symbol(ts.createDocumentRegistry, Decl(typescript.d.ts, 1756, 193)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>createDocumentRegistry : Symbol(ts.createDocumentRegistry, Decl(typescript.d.ts, 1756, 193)) + + // Now let's watch the files + rootFileNames.forEach(fileName => { +>rootFileNames.forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>rootFileNames : Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) + + // First time around, emit all files + emitFile(fileName); +>emitFile : Symbol(emitFile, Decl(APISample_watcher.ts, 61, 7)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) + + // Add a watch on the file to handle next change + fs.watchFile(fileName, +>fs : Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) + + { persistent: true, interval: 250 }, +>persistent : Symbol(persistent, Decl(APISample_watcher.ts, 48, 13)) +>interval : Symbol(interval, Decl(APISample_watcher.ts, 48, 31)) + + (curr, prev) => { +>curr : Symbol(curr, Decl(APISample_watcher.ts, 49, 13)) +>prev : Symbol(prev, Decl(APISample_watcher.ts, 49, 18)) + + // Check timestamp + if (+curr.mtime <= +prev.mtime) { +>curr : Symbol(curr, Decl(APISample_watcher.ts, 49, 13)) +>prev : Symbol(prev, Decl(APISample_watcher.ts, 49, 18)) + + return; + } + + // Update the version to signal a change in the file + files[fileName].version++; +>files[fileName].version : Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>files : Symbol(files, Decl(APISample_watcher.ts, 15, 9)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) +>version : Symbol(version, Decl(APISample_watcher.ts, 15, 25)) + + // write the changes to disk + emitFile(fileName); +>emitFile : Symbol(emitFile, Decl(APISample_watcher.ts, 61, 7)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) + + }); + }); + + function emitFile(fileName: string) { +>emitFile : Symbol(emitFile, Decl(APISample_watcher.ts, 61, 7)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) + + let output = services.getEmitOutput(fileName); +>output : Symbol(output, Decl(APISample_watcher.ts, 64, 11)) +>services.getEmitOutput : Symbol(ts.LanguageService.getEmitOutput, Decl(typescript.d.ts, 1362, 132)) +>services : Symbol(services, Decl(APISample_watcher.ts, 39, 9)) +>getEmitOutput : Symbol(ts.LanguageService.getEmitOutput, Decl(typescript.d.ts, 1362, 132)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) + + if (!output.emitSkipped) { +>output.emitSkipped : Symbol(ts.EmitOutput.emitSkipped, Decl(typescript.d.ts, 1565, 34)) +>output : Symbol(output, Decl(APISample_watcher.ts, 64, 11)) +>emitSkipped : Symbol(ts.EmitOutput.emitSkipped, Decl(typescript.d.ts, 1565, 34)) + + console.log(`Emitting ${fileName}`); +>console : Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) + } + else { + console.log(`Emitting ${fileName} failed`); +>console : Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) + + logErrors(fileName); +>logErrors : Symbol(logErrors, Decl(APISample_watcher.ts, 77, 5)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) + } + + output.outputFiles.forEach(o => { +>output.outputFiles.forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>output.outputFiles : Symbol(ts.EmitOutput.outputFiles, Decl(typescript.d.ts, 1564, 26)) +>output : Symbol(output, Decl(APISample_watcher.ts, 64, 11)) +>outputFiles : Symbol(ts.EmitOutput.outputFiles, Decl(typescript.d.ts, 1564, 26)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>o : Symbol(o, Decl(APISample_watcher.ts, 74, 35)) + + fs.writeFileSync(o.name, o.text, "utf8"); +>fs : Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>o.name : Symbol(ts.OutputFile.name, Decl(typescript.d.ts, 1573, 26)) +>o : Symbol(o, Decl(APISample_watcher.ts, 74, 35)) +>name : Symbol(ts.OutputFile.name, Decl(typescript.d.ts, 1573, 26)) +>o.text : Symbol(ts.OutputFile.text, Decl(typescript.d.ts, 1575, 36)) +>o : Symbol(o, Decl(APISample_watcher.ts, 74, 35)) +>text : Symbol(ts.OutputFile.text, Decl(typescript.d.ts, 1575, 36)) + + }); + } + + function logErrors(fileName: string) { +>logErrors : Symbol(logErrors, Decl(APISample_watcher.ts, 77, 5)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 79, 23)) + + let allDiagnostics = services.getCompilerOptionsDiagnostics() +>allDiagnostics : Symbol(allDiagnostics, Decl(APISample_watcher.ts, 80, 11)) +>services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(fileName)) .concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>services.getCompilerOptionsDiagnostics() .concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>services.getCompilerOptionsDiagnostics : Symbol(ts.LanguageService.getCompilerOptionsDiagnostics, Decl(typescript.d.ts, 1336, 63)) +>services : Symbol(services, Decl(APISample_watcher.ts, 39, 9)) +>getCompilerOptionsDiagnostics : Symbol(ts.LanguageService.getCompilerOptionsDiagnostics, Decl(typescript.d.ts, 1336, 63)) + + .concat(services.getSyntacticDiagnostics(fileName)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>services.getSyntacticDiagnostics : Symbol(ts.LanguageService.getSyntacticDiagnostics, Decl(typescript.d.ts, 1334, 37)) +>services : Symbol(services, Decl(APISample_watcher.ts, 39, 9)) +>getSyntacticDiagnostics : Symbol(ts.LanguageService.getSyntacticDiagnostics, Decl(typescript.d.ts, 1334, 37)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 79, 23)) + + .concat(services.getSemanticDiagnostics(fileName)); +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>services.getSemanticDiagnostics : Symbol(ts.LanguageService.getSemanticDiagnostics, Decl(typescript.d.ts, 1335, 64)) +>services : Symbol(services, Decl(APISample_watcher.ts, 39, 9)) +>getSemanticDiagnostics : Symbol(ts.LanguageService.getSemanticDiagnostics, Decl(typescript.d.ts, 1335, 64)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 79, 23)) + + allDiagnostics.forEach(diagnostic => { +>allDiagnostics.forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>allDiagnostics : Symbol(allDiagnostics, Decl(APISample_watcher.ts, 80, 11)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>diagnostic : Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) + + let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); +>message : Symbol(message, Decl(APISample_watcher.ts, 85, 15)) +>ts.flattenDiagnosticMessageText : Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>flattenDiagnosticMessageText : Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) +>diagnostic.messageText : Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) +>diagnostic : Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) +>messageText : Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) + + if (diagnostic.file) { +>diagnostic.file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>diagnostic : Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) +>file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) + + let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); +>line : Symbol(line, Decl(APISample_watcher.ts, 87, 21)) +>character : Symbol(character, Decl(APISample_watcher.ts, 87, 27)) +>diagnostic.file.getLineAndCharacterOfPosition : Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>diagnostic.file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>diagnostic : Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) +>file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>getLineAndCharacterOfPosition : Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) +>diagnostic.start : Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) +>diagnostic : Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) +>start : Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) + + console.log(` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); +>console : Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>diagnostic.file.fileName : Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>diagnostic.file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>diagnostic : Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) +>file : Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>fileName : Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>line : Symbol(line, Decl(APISample_watcher.ts, 87, 21)) +>character : Symbol(character, Decl(APISample_watcher.ts, 87, 27)) +>message : Symbol(message, Decl(APISample_watcher.ts, 85, 15)) + } + else { + console.log(` Error: ${message}`); +>console : Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>message : Symbol(message, Decl(APISample_watcher.ts, 85, 15)) + } + }); + } +} + +// Initialize files constituting the program as all .ts files in the current directory +const currentDirectoryFiles = fs.readdirSync(process.cwd()). +>currentDirectoryFiles : Symbol(currentDirectoryFiles, Decl(APISample_watcher.ts, 98, 5)) +>fs : Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>process : Symbol(process, Decl(APISample_watcher.ts, 7, 11)) + + filter(fileName=> fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts"); +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) + +// Start the watcher +watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }); +>watch : Symbol(watch, Decl(APISample_watcher.ts, 12, 33)) +>currentDirectoryFiles : Symbol(currentDirectoryFiles, Decl(APISample_watcher.ts, 98, 5)) +>module : Symbol(module, Decl(APISample_watcher.ts, 102, 30)) +>ts.ModuleKind.CommonJS : Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) +>ts.ModuleKind : Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) +>ts : Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>ModuleKind : Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) +>CommonJS : Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) + diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 5fb394e641808..6277f6ce94c34 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -7,200 +7,200 @@ */ declare var process: any; ->process : any, Symbol(process, Decl(APISample_watcher.ts, 7, 11)) +>process : any declare var console: any; ->console : any, Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>console : any declare var fs: any; ->fs : any, Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fs : any declare var path: any; ->path : any, Symbol(path, Decl(APISample_watcher.ts, 10, 11)) +>path : any import * as ts from "typescript"; ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) +>ts : typeof ts function watch(rootFileNames: string[], options: ts.CompilerOptions) { ->watch : (rootFileNames: string[], options: ts.CompilerOptions) => void, Symbol(watch, Decl(APISample_watcher.ts, 12, 33)) ->rootFileNames : string[], Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) ->options : ts.CompilerOptions, Symbol(options, Decl(APISample_watcher.ts, 14, 39)) ->ts : any, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->CompilerOptions : ts.CompilerOptions, Symbol(ts.CompilerOptions, Decl(typescript.d.ts, 1074, 5)) +>watch : (rootFileNames: string[], options: ts.CompilerOptions) => void +>rootFileNames : string[] +>options : ts.CompilerOptions +>ts : any +>CompilerOptions : ts.CompilerOptions const files: ts.Map<{ version: number }> = {}; ->files : ts.Map<{ version: number; }>, Symbol(files, Decl(APISample_watcher.ts, 15, 9)) ->ts : any, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->Map : ts.Map, Symbol(ts.Map, Decl(typescript.d.ts, 15, 29)) ->version : number, Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>files : ts.Map<{ version: number; }> +>ts : any +>Map : ts.Map +>version : number >{} : { [x: string]: undefined; } // initialize the list of files rootFileNames.forEach(fileName => { >rootFileNames.forEach(fileName => { files[fileName] = { version: 0 }; }) : void ->rootFileNames.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) ->rootFileNames : string[], Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) ->forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>rootFileNames.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>rootFileNames : string[] +>forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void >fileName => { files[fileName] = { version: 0 }; } : (fileName: string) => void ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 18, 26)) +>fileName : string files[fileName] = { version: 0 }; >files[fileName] = { version: 0 } : { version: number; } >files[fileName] : { version: number; } ->files : ts.Map<{ version: number; }>, Symbol(files, Decl(APISample_watcher.ts, 15, 9)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 18, 26)) +>files : ts.Map<{ version: number; }> +>fileName : string >{ version: 0 } : { version: number; } ->version : number, Symbol(version, Decl(APISample_watcher.ts, 19, 27)) +>version : number >0 : number }); // Create the language service host to allow the LS to communicate with the host const servicesHost: ts.LanguageServiceHost = { ->servicesHost : ts.LanguageServiceHost, Symbol(servicesHost, Decl(APISample_watcher.ts, 23, 9)) ->ts : any, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->LanguageServiceHost : ts.LanguageServiceHost, Symbol(ts.LanguageServiceHost, Decl(typescript.d.ts, 1318, 5)) +>servicesHost : ts.LanguageServiceHost +>ts : any +>LanguageServiceHost : ts.LanguageServiceHost >{ getScriptFileNames: () => rootFileNames, getScriptVersion: (fileName) => files[fileName] && files[fileName].version.toString(), getScriptSnapshot: (fileName) => { if (!fs.existsSync(fileName)) { return undefined; } return ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()); }, getCurrentDirectory: () => process.cwd(), getCompilationSettings: () => options, getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), } : { getScriptFileNames: () => string[]; getScriptVersion: (fileName: string) => string; getScriptSnapshot: (fileName: string) => ts.IScriptSnapshot; getCurrentDirectory: () => any; getCompilationSettings: () => ts.CompilerOptions; getDefaultLibFileName: (options: ts.CompilerOptions) => string; } getScriptFileNames: () => rootFileNames, ->getScriptFileNames : () => string[], Symbol(getScriptFileNames, Decl(APISample_watcher.ts, 23, 50)) +>getScriptFileNames : () => string[] >() => rootFileNames : () => string[] ->rootFileNames : string[], Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) +>rootFileNames : string[] getScriptVersion: (fileName) => files[fileName] && files[fileName].version.toString(), ->getScriptVersion : (fileName: string) => string, Symbol(getScriptVersion, Decl(APISample_watcher.ts, 24, 48)) +>getScriptVersion : (fileName: string) => string >(fileName) => files[fileName] && files[fileName].version.toString() : (fileName: string) => string ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 25, 27)) +>fileName : string >files[fileName] && files[fileName].version.toString() : string >files[fileName] : { version: number; } ->files : ts.Map<{ version: number; }>, Symbol(files, Decl(APISample_watcher.ts, 15, 9)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 25, 27)) +>files : ts.Map<{ version: number; }> +>fileName : string >files[fileName].version.toString() : string ->files[fileName].version.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->files[fileName].version : number, Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>files[fileName].version.toString : (radix?: number) => string +>files[fileName].version : number >files[fileName] : { version: number; } ->files : ts.Map<{ version: number; }>, Symbol(files, Decl(APISample_watcher.ts, 15, 9)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 25, 27)) ->version : number, Symbol(version, Decl(APISample_watcher.ts, 15, 25)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>files : ts.Map<{ version: number; }> +>fileName : string +>version : number +>toString : (radix?: number) => string getScriptSnapshot: (fileName) => { ->getScriptSnapshot : (fileName: string) => ts.IScriptSnapshot, Symbol(getScriptSnapshot, Decl(APISample_watcher.ts, 25, 94)) +>getScriptSnapshot : (fileName: string) => ts.IScriptSnapshot >(fileName) => { if (!fs.existsSync(fileName)) { return undefined; } return ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()); } : (fileName: string) => ts.IScriptSnapshot ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 26, 28)) +>fileName : string if (!fs.existsSync(fileName)) { >!fs.existsSync(fileName) : boolean >fs.existsSync(fileName) : any >fs.existsSync : any ->fs : any, Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fs : any >existsSync : any ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 26, 28)) +>fileName : string return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } return ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()); >ts.ScriptSnapshot.fromString(fs.readFileSync(fileName).toString()) : ts.IScriptSnapshot ->ts.ScriptSnapshot.fromString : (text: string) => ts.IScriptSnapshot, Symbol(ts.ScriptSnapshot.fromString, Decl(typescript.d.ts, 1311, 27)) ->ts.ScriptSnapshot : typeof ts.ScriptSnapshot, Symbol(ts.ScriptSnapshot, Decl(typescript.d.ts, 1310, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->ScriptSnapshot : typeof ts.ScriptSnapshot, Symbol(ts.ScriptSnapshot, Decl(typescript.d.ts, 1310, 5)) ->fromString : (text: string) => ts.IScriptSnapshot, Symbol(ts.ScriptSnapshot.fromString, Decl(typescript.d.ts, 1311, 27)) +>ts.ScriptSnapshot.fromString : (text: string) => ts.IScriptSnapshot +>ts.ScriptSnapshot : typeof ts.ScriptSnapshot +>ts : typeof ts +>ScriptSnapshot : typeof ts.ScriptSnapshot +>fromString : (text: string) => ts.IScriptSnapshot >fs.readFileSync(fileName).toString() : any >fs.readFileSync(fileName).toString : any >fs.readFileSync(fileName) : any >fs.readFileSync : any ->fs : any, Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fs : any >readFileSync : any ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 26, 28)) +>fileName : string >toString : any }, getCurrentDirectory: () => process.cwd(), ->getCurrentDirectory : () => any, Symbol(getCurrentDirectory, Decl(APISample_watcher.ts, 32, 10)) +>getCurrentDirectory : () => any >() => process.cwd() : () => any >process.cwd() : any >process.cwd : any ->process : any, Symbol(process, Decl(APISample_watcher.ts, 7, 11)) +>process : any >cwd : any getCompilationSettings: () => options, ->getCompilationSettings : () => ts.CompilerOptions, Symbol(getCompilationSettings, Decl(APISample_watcher.ts, 33, 49)) +>getCompilationSettings : () => ts.CompilerOptions >() => options : () => ts.CompilerOptions ->options : ts.CompilerOptions, Symbol(options, Decl(APISample_watcher.ts, 14, 39)) +>options : ts.CompilerOptions getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), ->getDefaultLibFileName : (options: ts.CompilerOptions) => string, Symbol(getDefaultLibFileName, Decl(APISample_watcher.ts, 34, 46)) +>getDefaultLibFileName : (options: ts.CompilerOptions) => string >(options) => ts.getDefaultLibFilePath(options) : (options: ts.CompilerOptions) => string ->options : ts.CompilerOptions, Symbol(options, Decl(APISample_watcher.ts, 35, 32)) +>options : ts.CompilerOptions >ts.getDefaultLibFilePath(options) : string ->ts.getDefaultLibFilePath : (options: ts.CompilerOptions) => string, Symbol(ts.getDefaultLibFilePath, Decl(typescript.d.ts, 1760, 44)) ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->getDefaultLibFilePath : (options: ts.CompilerOptions) => string, Symbol(ts.getDefaultLibFilePath, Decl(typescript.d.ts, 1760, 44)) ->options : ts.CompilerOptions, Symbol(options, Decl(APISample_watcher.ts, 35, 32)) +>ts.getDefaultLibFilePath : (options: ts.CompilerOptions) => string +>ts : typeof ts +>getDefaultLibFilePath : (options: ts.CompilerOptions) => string +>options : ts.CompilerOptions }; // Create the language service files const services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) ->services : ts.LanguageService, Symbol(services, Decl(APISample_watcher.ts, 39, 9)) +>services : ts.LanguageService >ts.createLanguageService(servicesHost, ts.createDocumentRegistry()) : ts.LanguageService ->ts.createLanguageService : (host: ts.LanguageServiceHost, documentRegistry?: ts.DocumentRegistry) => ts.LanguageService, Symbol(ts.createLanguageService, Decl(typescript.d.ts, 1758, 97)) ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->createLanguageService : (host: ts.LanguageServiceHost, documentRegistry?: ts.DocumentRegistry) => ts.LanguageService, Symbol(ts.createLanguageService, Decl(typescript.d.ts, 1758, 97)) ->servicesHost : ts.LanguageServiceHost, Symbol(servicesHost, Decl(APISample_watcher.ts, 23, 9)) +>ts.createLanguageService : (host: ts.LanguageServiceHost, documentRegistry?: ts.DocumentRegistry) => ts.LanguageService +>ts : typeof ts +>createLanguageService : (host: ts.LanguageServiceHost, documentRegistry?: ts.DocumentRegistry) => ts.LanguageService +>servicesHost : ts.LanguageServiceHost >ts.createDocumentRegistry() : ts.DocumentRegistry ->ts.createDocumentRegistry : () => ts.DocumentRegistry, Symbol(ts.createDocumentRegistry, Decl(typescript.d.ts, 1756, 193)) ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->createDocumentRegistry : () => ts.DocumentRegistry, Symbol(ts.createDocumentRegistry, Decl(typescript.d.ts, 1756, 193)) +>ts.createDocumentRegistry : () => ts.DocumentRegistry +>ts : typeof ts +>createDocumentRegistry : () => ts.DocumentRegistry // Now let's watch the files rootFileNames.forEach(fileName => { >rootFileNames.forEach(fileName => { // First time around, emit all files emitFile(fileName); // Add a watch on the file to handle next change fs.watchFile(fileName, { persistent: true, interval: 250 }, (curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[fileName].version++; // write the changes to disk emitFile(fileName); }); }) : void ->rootFileNames.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) ->rootFileNames : string[], Symbol(rootFileNames, Decl(APISample_watcher.ts, 14, 15)) ->forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>rootFileNames.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>rootFileNames : string[] +>forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void >fileName => { // First time around, emit all files emitFile(fileName); // Add a watch on the file to handle next change fs.watchFile(fileName, { persistent: true, interval: 250 }, (curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[fileName].version++; // write the changes to disk emitFile(fileName); }); } : (fileName: string) => void ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) +>fileName : string // First time around, emit all files emitFile(fileName); >emitFile(fileName) : void ->emitFile : (fileName: string) => void, Symbol(emitFile, Decl(APISample_watcher.ts, 61, 7)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) +>emitFile : (fileName: string) => void +>fileName : string // Add a watch on the file to handle next change fs.watchFile(fileName, >fs.watchFile(fileName, { persistent: true, interval: 250 }, (curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[fileName].version++; // write the changes to disk emitFile(fileName); }) : any >fs.watchFile : any ->fs : any, Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fs : any >watchFile : any ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) +>fileName : string { persistent: true, interval: 250 }, >{ persistent: true, interval: 250 } : { persistent: boolean; interval: number; } ->persistent : boolean, Symbol(persistent, Decl(APISample_watcher.ts, 48, 13)) +>persistent : boolean >true : boolean ->interval : number, Symbol(interval, Decl(APISample_watcher.ts, 48, 31)) +>interval : number >250 : number (curr, prev) => { >(curr, prev) => { // Check timestamp if (+curr.mtime <= +prev.mtime) { return; } // Update the version to signal a change in the file files[fileName].version++; // write the changes to disk emitFile(fileName); } : (curr: any, prev: any) => void ->curr : any, Symbol(curr, Decl(APISample_watcher.ts, 49, 13)) ->prev : any, Symbol(prev, Decl(APISample_watcher.ts, 49, 18)) +>curr : any +>prev : any // Check timestamp if (+curr.mtime <= +prev.mtime) { >+curr.mtime <= +prev.mtime : boolean >+curr.mtime : number >curr.mtime : any ->curr : any, Symbol(curr, Decl(APISample_watcher.ts, 49, 13)) +>curr : any >mtime : any >+prev.mtime : number >prev.mtime : any ->prev : any, Symbol(prev, Decl(APISample_watcher.ts, 49, 18)) +>prev : any >mtime : any return; @@ -209,183 +209,183 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { // Update the version to signal a change in the file files[fileName].version++; >files[fileName].version++ : number ->files[fileName].version : number, Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>files[fileName].version : number >files[fileName] : { version: number; } ->files : ts.Map<{ version: number; }>, Symbol(files, Decl(APISample_watcher.ts, 15, 9)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) ->version : number, Symbol(version, Decl(APISample_watcher.ts, 15, 25)) +>files : ts.Map<{ version: number; }> +>fileName : string +>version : number // write the changes to disk emitFile(fileName); >emitFile(fileName) : void ->emitFile : (fileName: string) => void, Symbol(emitFile, Decl(APISample_watcher.ts, 61, 7)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 42, 26)) +>emitFile : (fileName: string) => void +>fileName : string }); }); function emitFile(fileName: string) { ->emitFile : (fileName: string) => void, Symbol(emitFile, Decl(APISample_watcher.ts, 61, 7)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) +>emitFile : (fileName: string) => void +>fileName : string let output = services.getEmitOutput(fileName); ->output : ts.EmitOutput, Symbol(output, Decl(APISample_watcher.ts, 64, 11)) +>output : ts.EmitOutput >services.getEmitOutput(fileName) : ts.EmitOutput ->services.getEmitOutput : (fileName: string) => ts.EmitOutput, Symbol(ts.LanguageService.getEmitOutput, Decl(typescript.d.ts, 1362, 132)) ->services : ts.LanguageService, Symbol(services, Decl(APISample_watcher.ts, 39, 9)) ->getEmitOutput : (fileName: string) => ts.EmitOutput, Symbol(ts.LanguageService.getEmitOutput, Decl(typescript.d.ts, 1362, 132)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) +>services.getEmitOutput : (fileName: string) => ts.EmitOutput +>services : ts.LanguageService +>getEmitOutput : (fileName: string) => ts.EmitOutput +>fileName : string if (!output.emitSkipped) { >!output.emitSkipped : boolean ->output.emitSkipped : boolean, Symbol(ts.EmitOutput.emitSkipped, Decl(typescript.d.ts, 1565, 34)) ->output : ts.EmitOutput, Symbol(output, Decl(APISample_watcher.ts, 64, 11)) ->emitSkipped : boolean, Symbol(ts.EmitOutput.emitSkipped, Decl(typescript.d.ts, 1565, 34)) +>output.emitSkipped : boolean +>output : ts.EmitOutput +>emitSkipped : boolean console.log(`Emitting ${fileName}`); >console.log(`Emitting ${fileName}`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>console : any >log : any >`Emitting ${fileName}` : string ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) +>fileName : string } else { console.log(`Emitting ${fileName} failed`); >console.log(`Emitting ${fileName} failed`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>console : any >log : any >`Emitting ${fileName} failed` : string ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) +>fileName : string logErrors(fileName); >logErrors(fileName) : void ->logErrors : (fileName: string) => void, Symbol(logErrors, Decl(APISample_watcher.ts, 77, 5)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 63, 22)) +>logErrors : (fileName: string) => void +>fileName : string } output.outputFiles.forEach(o => { >output.outputFiles.forEach(o => { fs.writeFileSync(o.name, o.text, "utf8"); }) : void ->output.outputFiles.forEach : (callbackfn: (value: ts.OutputFile, index: number, array: ts.OutputFile[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) ->output.outputFiles : ts.OutputFile[], Symbol(ts.EmitOutput.outputFiles, Decl(typescript.d.ts, 1564, 26)) ->output : ts.EmitOutput, Symbol(output, Decl(APISample_watcher.ts, 64, 11)) ->outputFiles : ts.OutputFile[], Symbol(ts.EmitOutput.outputFiles, Decl(typescript.d.ts, 1564, 26)) ->forEach : (callbackfn: (value: ts.OutputFile, index: number, array: ts.OutputFile[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>output.outputFiles.forEach : (callbackfn: (value: ts.OutputFile, index: number, array: ts.OutputFile[]) => void, thisArg?: any) => void +>output.outputFiles : ts.OutputFile[] +>output : ts.EmitOutput +>outputFiles : ts.OutputFile[] +>forEach : (callbackfn: (value: ts.OutputFile, index: number, array: ts.OutputFile[]) => void, thisArg?: any) => void >o => { fs.writeFileSync(o.name, o.text, "utf8"); } : (o: ts.OutputFile) => void ->o : ts.OutputFile, Symbol(o, Decl(APISample_watcher.ts, 74, 35)) +>o : ts.OutputFile fs.writeFileSync(o.name, o.text, "utf8"); >fs.writeFileSync(o.name, o.text, "utf8") : any >fs.writeFileSync : any ->fs : any, Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fs : any >writeFileSync : any ->o.name : string, Symbol(ts.OutputFile.name, Decl(typescript.d.ts, 1573, 26)) ->o : ts.OutputFile, Symbol(o, Decl(APISample_watcher.ts, 74, 35)) ->name : string, Symbol(ts.OutputFile.name, Decl(typescript.d.ts, 1573, 26)) ->o.text : string, Symbol(ts.OutputFile.text, Decl(typescript.d.ts, 1575, 36)) ->o : ts.OutputFile, Symbol(o, Decl(APISample_watcher.ts, 74, 35)) ->text : string, Symbol(ts.OutputFile.text, Decl(typescript.d.ts, 1575, 36)) +>o.name : string +>o : ts.OutputFile +>name : string +>o.text : string +>o : ts.OutputFile +>text : string >"utf8" : string }); } function logErrors(fileName: string) { ->logErrors : (fileName: string) => void, Symbol(logErrors, Decl(APISample_watcher.ts, 77, 5)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 79, 23)) +>logErrors : (fileName: string) => void +>fileName : string let allDiagnostics = services.getCompilerOptionsDiagnostics() ->allDiagnostics : ts.Diagnostic[], Symbol(allDiagnostics, Decl(APISample_watcher.ts, 80, 11)) +>allDiagnostics : ts.Diagnostic[] >services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(fileName)) .concat(services.getSemanticDiagnostics(fileName)) : ts.Diagnostic[] ->services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(fileName)) .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(fileName)) .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } >services.getCompilerOptionsDiagnostics() .concat(services.getSyntacticDiagnostics(fileName)) : ts.Diagnostic[] ->services.getCompilerOptionsDiagnostics() .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>services.getCompilerOptionsDiagnostics() .concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } >services.getCompilerOptionsDiagnostics() : ts.Diagnostic[] ->services.getCompilerOptionsDiagnostics : () => ts.Diagnostic[], Symbol(ts.LanguageService.getCompilerOptionsDiagnostics, Decl(typescript.d.ts, 1336, 63)) ->services : ts.LanguageService, Symbol(services, Decl(APISample_watcher.ts, 39, 9)) ->getCompilerOptionsDiagnostics : () => ts.Diagnostic[], Symbol(ts.LanguageService.getCompilerOptionsDiagnostics, Decl(typescript.d.ts, 1336, 63)) +>services.getCompilerOptionsDiagnostics : () => ts.Diagnostic[] +>services : ts.LanguageService +>getCompilerOptionsDiagnostics : () => ts.Diagnostic[] .concat(services.getSyntacticDiagnostics(fileName)) ->concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } >services.getSyntacticDiagnostics(fileName) : ts.Diagnostic[] ->services.getSyntacticDiagnostics : (fileName: string) => ts.Diagnostic[], Symbol(ts.LanguageService.getSyntacticDiagnostics, Decl(typescript.d.ts, 1334, 37)) ->services : ts.LanguageService, Symbol(services, Decl(APISample_watcher.ts, 39, 9)) ->getSyntacticDiagnostics : (fileName: string) => ts.Diagnostic[], Symbol(ts.LanguageService.getSyntacticDiagnostics, Decl(typescript.d.ts, 1334, 37)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 79, 23)) +>services.getSyntacticDiagnostics : (fileName: string) => ts.Diagnostic[] +>services : ts.LanguageService +>getSyntacticDiagnostics : (fileName: string) => ts.Diagnostic[] +>fileName : string .concat(services.getSemanticDiagnostics(fileName)); ->concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>concat : { (...items: U[]): ts.Diagnostic[]; (...items: ts.Diagnostic[]): ts.Diagnostic[]; } >services.getSemanticDiagnostics(fileName) : ts.Diagnostic[] ->services.getSemanticDiagnostics : (fileName: string) => ts.Diagnostic[], Symbol(ts.LanguageService.getSemanticDiagnostics, Decl(typescript.d.ts, 1335, 64)) ->services : ts.LanguageService, Symbol(services, Decl(APISample_watcher.ts, 39, 9)) ->getSemanticDiagnostics : (fileName: string) => ts.Diagnostic[], Symbol(ts.LanguageService.getSemanticDiagnostics, Decl(typescript.d.ts, 1335, 64)) ->fileName : string, Symbol(fileName, Decl(APISample_watcher.ts, 79, 23)) +>services.getSemanticDiagnostics : (fileName: string) => ts.Diagnostic[] +>services : ts.LanguageService +>getSemanticDiagnostics : (fileName: string) => ts.Diagnostic[] +>fileName : string allDiagnostics.forEach(diagnostic => { >allDiagnostics.forEach(diagnostic => { let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); if (diagnostic.file) { let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); console.log(` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); } else { console.log(` Error: ${message}`); } }) : void ->allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) ->allDiagnostics : ts.Diagnostic[], Symbol(allDiagnostics, Decl(APISample_watcher.ts, 80, 11)) ->forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void +>allDiagnostics : ts.Diagnostic[] +>forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void >diagnostic => { let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); if (diagnostic.file) { let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); console.log(` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); } else { console.log(` Error: ${message}`); } } : (diagnostic: ts.Diagnostic) => void ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) +>diagnostic : ts.Diagnostic let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"); ->message : string, Symbol(message, Decl(APISample_watcher.ts, 85, 15)) +>message : string >ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n") : string ->ts.flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string, Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string, Symbol(ts.flattenDiagnosticMessageText, Decl(typescript.d.ts, 1224, 67)) ->diagnostic.messageText : string | ts.DiagnosticMessageChain, Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) ->messageText : string | ts.DiagnosticMessageChain, Symbol(ts.Diagnostic.messageText, Decl(typescript.d.ts, 1065, 23)) +>ts.flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string +>ts : typeof ts +>flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string +>diagnostic.messageText : string | ts.DiagnosticMessageChain +>diagnostic : ts.Diagnostic +>messageText : string | ts.DiagnosticMessageChain >"\n" : string if (diagnostic.file) { ->diagnostic.file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) ->file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); ->line : number, Symbol(line, Decl(APISample_watcher.ts, 87, 21)) ->character : number, Symbol(character, Decl(APISample_watcher.ts, 87, 27)) +>line : number +>character : number >diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start) : ts.LineAndCharacter ->diagnostic.file.getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter, Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) ->diagnostic.file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) ->file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter, Symbol(ts.SourceFile.getLineAndCharacterOfPosition, Decl(typescript.d.ts, 1286, 26)) ->diagnostic.start : number, Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) ->start : number, Symbol(ts.Diagnostic.start, Decl(typescript.d.ts, 1063, 25)) +>diagnostic.file.getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>getLineAndCharacterOfPosition : (pos: number) => ts.LineAndCharacter +>diagnostic.start : number +>diagnostic : ts.Diagnostic +>start : number console.log(` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`); >console.log(` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>console : any >log : any >` Error ${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}` : string ->diagnostic.file.fileName : string, Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) ->diagnostic.file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->diagnostic : ts.Diagnostic, Symbol(diagnostic, Decl(APISample_watcher.ts, 84, 31)) ->file : ts.SourceFile, Symbol(ts.Diagnostic.file, Decl(typescript.d.ts, 1062, 26)) ->fileName : string, Symbol(ts.SourceFile.fileName, Decl(typescript.d.ts, 743, 29)) +>diagnostic.file.fileName : string +>diagnostic.file : ts.SourceFile +>diagnostic : ts.Diagnostic +>file : ts.SourceFile +>fileName : string >line + 1 : number ->line : number, Symbol(line, Decl(APISample_watcher.ts, 87, 21)) +>line : number >1 : number >character + 1 : number ->character : number, Symbol(character, Decl(APISample_watcher.ts, 87, 27)) +>character : number >1 : number ->message : string, Symbol(message, Decl(APISample_watcher.ts, 85, 15)) +>message : string } else { console.log(` Error: ${message}`); >console.log(` Error: ${message}`) : any >console.log : any ->console : any, Symbol(console, Decl(APISample_watcher.ts, 8, 11)) +>console : any >log : any >` Error: ${message}` : string ->message : string, Symbol(message, Decl(APISample_watcher.ts, 85, 15)) +>message : string } }); } @@ -393,36 +393,36 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { // Initialize files constituting the program as all .ts files in the current directory const currentDirectoryFiles = fs.readdirSync(process.cwd()). ->currentDirectoryFiles : any, Symbol(currentDirectoryFiles, Decl(APISample_watcher.ts, 98, 5)) +>currentDirectoryFiles : any >fs.readdirSync(process.cwd()). filter(fileName=> fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts") : any >fs.readdirSync(process.cwd()). filter : any >fs.readdirSync(process.cwd()) : any >fs.readdirSync : any ->fs : any, Symbol(fs, Decl(APISample_watcher.ts, 9, 11)) +>fs : any >readdirSync : any >process.cwd() : any >process.cwd : any ->process : any, Symbol(process, Decl(APISample_watcher.ts, 7, 11)) +>process : any >cwd : any filter(fileName=> fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts"); >filter : any >fileName=> fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts" : (fileName: any) => boolean ->fileName : any, Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : any >fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === ".ts" : boolean >fileName.length >= 3 : boolean >fileName.length : any ->fileName : any, Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : any >length : any >3 : number >fileName.substr(fileName.length - 3, 3) === ".ts" : boolean >fileName.substr(fileName.length - 3, 3) : any >fileName.substr : any ->fileName : any, Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : any >substr : any >fileName.length - 3 : number >fileName.length : any ->fileName : any, Symbol(fileName, Decl(APISample_watcher.ts, 99, 11)) +>fileName : any >length : any >3 : number >3 : number @@ -431,13 +431,13 @@ const currentDirectoryFiles = fs.readdirSync(process.cwd()). // Start the watcher watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }); >watch(currentDirectoryFiles, { module: ts.ModuleKind.CommonJS }) : void ->watch : (rootFileNames: string[], options: ts.CompilerOptions) => void, Symbol(watch, Decl(APISample_watcher.ts, 12, 33)) ->currentDirectoryFiles : any, Symbol(currentDirectoryFiles, Decl(APISample_watcher.ts, 98, 5)) +>watch : (rootFileNames: string[], options: ts.CompilerOptions) => void +>currentDirectoryFiles : any >{ module: ts.ModuleKind.CommonJS } : { [x: string]: ts.ModuleKind; module: ts.ModuleKind; } ->module : ts.ModuleKind, Symbol(module, Decl(APISample_watcher.ts, 102, 30)) ->ts.ModuleKind.CommonJS : ts.ModuleKind, Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) ->ts.ModuleKind : typeof ts.ModuleKind, Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) ->ts : typeof ts, Symbol(ts, Decl(APISample_watcher.ts, 12, 6)) ->ModuleKind : typeof ts.ModuleKind, Symbol(ts.ModuleKind, Decl(typescript.d.ts, 1106, 5)) ->CommonJS : ts.ModuleKind, Symbol(ts.ModuleKind.CommonJS, Decl(typescript.d.ts, 1108, 17)) +>module : ts.ModuleKind +>ts.ModuleKind.CommonJS : ts.ModuleKind +>ts.ModuleKind : typeof ts.ModuleKind +>ts : typeof ts +>ModuleKind : typeof ts.ModuleKind +>CommonJS : ts.ModuleKind diff --git a/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.symbols b/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.symbols new file mode 100644 index 0000000000000..cc0e8c5e74632 --- /dev/null +++ b/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === +declare module Point { +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) + + export var Origin: { x: number; y: number; } +>Origin : Symbol(Origin, Decl(module.d.ts, 1, 14)) +>x : Symbol(x, Decl(module.d.ts, 1, 24)) +>y : Symbol(y, Decl(module.d.ts, 1, 35)) +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/function.d.ts === +declare function Point(): { x: number; y: number; } +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) +>x : Symbol(x, Decl(function.d.ts, 0, 27)) +>y : Symbol(y, Decl(function.d.ts, 0, 38)) + +=== tests/cases/conformance/internalModules/DeclarationMerging/test.ts === +var cl: { x: number; y: number; } +>cl : Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>x : Symbol(x, Decl(test.ts, 0, 9)) +>y : Symbol(y, Decl(test.ts, 0, 20)) + +var cl = Point(); +>cl : Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) + +var cl = Point.Origin; +>cl : Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>Point.Origin : Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) +>Origin : Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) + diff --git a/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.types b/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.types index 974e500d341df..da82a2ff6621a 100644 --- a/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.types +++ b/tests/baselines/reference/AmbientModuleAndAmbientFunctionWithTheSameNameAndCommonRoot.types @@ -1,33 +1,33 @@ === tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === declare module Point { ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) +>Point : typeof Point export var Origin: { x: number; y: number; } ->Origin : { x: number; y: number; }, Symbol(Origin, Decl(module.d.ts, 1, 14)) ->x : number, Symbol(x, Decl(module.d.ts, 1, 24)) ->y : number, Symbol(y, Decl(module.d.ts, 1, 35)) +>Origin : { x: number; y: number; } +>x : number +>y : number } === tests/cases/conformance/internalModules/DeclarationMerging/function.d.ts === declare function Point(): { x: number; y: number; } ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) ->x : number, Symbol(x, Decl(function.d.ts, 0, 27)) ->y : number, Symbol(y, Decl(function.d.ts, 0, 38)) +>Point : typeof Point +>x : number +>y : number === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var cl: { x: number; y: number; } ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->x : number, Symbol(x, Decl(test.ts, 0, 9)) ->y : number, Symbol(y, Decl(test.ts, 0, 20)) +>cl : { x: number; y: number; } +>x : number +>y : number var cl = Point(); ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>cl : { x: number; y: number; } >Point() : { x: number; y: number; } ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) +>Point : typeof Point var cl = Point.Origin; ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->Point.Origin : { x: number; y: number; }, Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.d.ts, 0, 0)) ->Origin : { x: number; y: number; }, Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) +>cl : { x: number; y: number; } +>Point.Origin : { x: number; y: number; } +>Point : typeof Point +>Origin : { x: number; y: number; } diff --git a/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.symbols b/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.symbols new file mode 100644 index 0000000000000..2a24e5df9194e --- /dev/null +++ b/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.symbols @@ -0,0 +1,58 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === +declare module A { +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) + + export module Point { +>Point : Symbol(Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) + + export var Origin: { +>Origin : Symbol(Origin, Decl(module.d.ts, 2, 18)) + + x: number; +>x : Symbol(x, Decl(module.d.ts, 2, 28)) + + y: number; +>y : Symbol(y, Decl(module.d.ts, 3, 22)) + } + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/class.d.ts === +declare module A { +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) + + constructor(x: number, y: number); +>x : Symbol(x, Decl(class.d.ts, 2, 20)) +>y : Symbol(y, Decl(class.d.ts, 2, 30)) + + x: number; +>x : Symbol(x, Decl(class.d.ts, 2, 42)) + + y: number; +>y : Symbol(y, Decl(class.d.ts, 3, 18)) + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/test.ts === +var p: { x: number; y: number; } +>p : Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>x : Symbol(x, Decl(test.ts, 0, 8)) +>y : Symbol(y, Decl(test.ts, 0, 19)) + +var p = A.Point.Origin; +>p : Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>A.Point.Origin : Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) +>A.Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) +>Origin : Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) + +var p = new A.Point(0, 0); // unexpected error here, bug 840000 +>p : Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>A.Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) + diff --git a/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.types b/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.types index 1bdabc46ee88d..fec7593a993eb 100644 --- a/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.types +++ b/tests/baselines/reference/AmbientModuleAndAmbientWithSameNameAndCommonRoot.types @@ -1,61 +1,61 @@ === tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === declare module A { ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) +>A : typeof A export module Point { ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) +>Point : typeof Point export var Origin: { ->Origin : { x: number; y: number; }, Symbol(Origin, Decl(module.d.ts, 2, 18)) +>Origin : { x: number; y: number; } x: number; ->x : number, Symbol(x, Decl(module.d.ts, 2, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(module.d.ts, 3, 22)) +>y : number } } } === tests/cases/conformance/internalModules/DeclarationMerging/class.d.ts === declare module A { ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) +>Point : Point constructor(x: number, y: number); ->x : number, Symbol(x, Decl(class.d.ts, 2, 20)) ->y : number, Symbol(y, Decl(class.d.ts, 2, 30)) +>x : number +>y : number x: number; ->x : number, Symbol(x, Decl(class.d.ts, 2, 42)) +>x : number y: number; ->y : number, Symbol(y, Decl(class.d.ts, 3, 18)) +>y : number } } === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var p: { x: number; y: number; } ->p : { x: number; y: number; }, Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->x : number, Symbol(x, Decl(test.ts, 0, 8)) ->y : number, Symbol(y, Decl(test.ts, 0, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p = A.Point.Origin; ->p : { x: number; y: number; }, Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->A.Point.Origin : { x: number; y: number; }, Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) ->A.Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) ->Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) ->Origin : { x: number; y: number; }, Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) +>p : { x: number; y: number; } +>A.Point.Origin : { x: number; y: number; } +>A.Point : typeof A.Point +>A : typeof A +>Point : typeof A.Point +>Origin : { x: number; y: number; } var p = new A.Point(0, 0); // unexpected error here, bug 840000 ->p : { x: number; y: number; }, Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>p : { x: number; y: number; } >new A.Point(0, 0) : A.Point ->A.Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(class.d.ts, 0, 0)) ->Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(class.d.ts, 0, 18)) +>A.Point : typeof A.Point +>A : typeof A +>Point : typeof A.Point >0 : number >0 : number diff --git a/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.symbols b/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.symbols new file mode 100644 index 0000000000000..09762fd140671 --- /dev/null +++ b/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.symbols @@ -0,0 +1,52 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === +declare module A { +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) + + export module Point { +>Point : Symbol(Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) + + export var Origin: { +>Origin : Symbol(Origin, Decl(module.d.ts, 2, 18)) + + x: number; +>x : Symbol(x, Decl(module.d.ts, 2, 28)) + + y: number; +>y : Symbol(y, Decl(module.d.ts, 3, 22)) + } + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/classPoint.ts === +module A { +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(classPoint.ts, 2, 20)) +>y : Symbol(y, Decl(classPoint.ts, 2, 37)) + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/test.ts === +var p: { x: number; y: number; } +>p : Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>x : Symbol(x, Decl(test.ts, 0, 8)) +>y : Symbol(y, Decl(test.ts, 0, 19)) + +var p = A.Point.Origin; +>p : Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>A.Point.Origin : Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) +>A.Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) +>Origin : Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) + +var p = new A.Point(0, 0); // unexpected error here, bug 840000 +>p : Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>A.Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) +>A : Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) + diff --git a/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.types b/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.types index 9d90bf94449a3..cd57c0c503dd2 100644 --- a/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.types +++ b/tests/baselines/reference/AmbientModuleAndNonAmbientClassWithSameNameAndCommonRoot.types @@ -1,55 +1,55 @@ === tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === declare module A { ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) +>A : typeof A export module Point { ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) +>Point : typeof Point export var Origin: { ->Origin : { x: number; y: number; }, Symbol(Origin, Decl(module.d.ts, 2, 18)) +>Origin : { x: number; y: number; } x: number; ->x : number, Symbol(x, Decl(module.d.ts, 2, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(module.d.ts, 3, 22)) +>y : number } } } === tests/cases/conformance/internalModules/DeclarationMerging/classPoint.ts === module A { ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(classPoint.ts, 2, 20)) ->y : number, Symbol(y, Decl(classPoint.ts, 2, 37)) +>x : number +>y : number } } === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var p: { x: number; y: number; } ->p : { x: number; y: number; }, Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->x : number, Symbol(x, Decl(test.ts, 0, 8)) ->y : number, Symbol(y, Decl(test.ts, 0, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p = A.Point.Origin; ->p : { x: number; y: number; }, Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->A.Point.Origin : { x: number; y: number; }, Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) ->A.Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) ->Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) ->Origin : { x: number; y: number; }, Symbol(A.Point.Origin, Decl(module.d.ts, 2, 18)) +>p : { x: number; y: number; } +>A.Point.Origin : { x: number; y: number; } +>A.Point : typeof A.Point +>A : typeof A +>Point : typeof A.Point +>Origin : { x: number; y: number; } var p = new A.Point(0, 0); // unexpected error here, bug 840000 ->p : { x: number; y: number; }, Symbol(p, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>p : { x: number; y: number; } >new A.Point(0, 0) : A.Point ->A.Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) ->A : typeof A, Symbol(A, Decl(module.d.ts, 0, 0), Decl(classPoint.ts, 0, 0)) ->Point : typeof A.Point, Symbol(A.Point, Decl(module.d.ts, 0, 18), Decl(classPoint.ts, 0, 10)) +>A.Point : typeof A.Point +>A : typeof A +>Point : typeof A.Point >0 : number >0 : number diff --git a/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.symbols b/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.symbols new file mode 100644 index 0000000000000..ccb8662712faa --- /dev/null +++ b/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.symbols @@ -0,0 +1,35 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === +declare module Point { +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) + + export var Origin: { x: number; y: number; } +>Origin : Symbol(Origin, Decl(module.d.ts, 1, 14)) +>x : Symbol(x, Decl(module.d.ts, 1, 24)) +>y : Symbol(y, Decl(module.d.ts, 1, 35)) +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/function.ts === +function Point() { +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) + + return { x: 0, y: 0 }; +>x : Symbol(x, Decl(function.ts, 1, 12)) +>y : Symbol(y, Decl(function.ts, 1, 18)) +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/test.ts === +var cl: { x: number; y: number; } +>cl : Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>x : Symbol(x, Decl(test.ts, 0, 9)) +>y : Symbol(y, Decl(test.ts, 0, 20)) + +var cl = Point(); +>cl : Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) + +var cl = Point.Origin; +>cl : Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>Point.Origin : Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) +>Point : Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) +>Origin : Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) + diff --git a/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.types b/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.types index 1384b65b02922..035f2a50c3793 100644 --- a/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.types +++ b/tests/baselines/reference/AmbientModuleAndNonAmbientFunctionWithTheSameNameAndCommonRoot.types @@ -1,39 +1,39 @@ === tests/cases/conformance/internalModules/DeclarationMerging/module.d.ts === declare module Point { ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) +>Point : typeof Point export var Origin: { x: number; y: number; } ->Origin : { x: number; y: number; }, Symbol(Origin, Decl(module.d.ts, 1, 14)) ->x : number, Symbol(x, Decl(module.d.ts, 1, 24)) ->y : number, Symbol(y, Decl(module.d.ts, 1, 35)) +>Origin : { x: number; y: number; } +>x : number +>y : number } === tests/cases/conformance/internalModules/DeclarationMerging/function.ts === function Point() { ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) +>Point : typeof Point return { x: 0, y: 0 }; >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(function.ts, 1, 12)) +>x : number >0 : number ->y : number, Symbol(y, Decl(function.ts, 1, 18)) +>y : number >0 : number } === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var cl: { x: number; y: number; } ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->x : number, Symbol(x, Decl(test.ts, 0, 9)) ->y : number, Symbol(y, Decl(test.ts, 0, 20)) +>cl : { x: number; y: number; } +>x : number +>y : number var cl = Point(); ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) +>cl : { x: number; y: number; } >Point() : { x: number; y: number; } ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) +>Point : typeof Point var cl = Point.Origin; ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3), Decl(test.ts, 2, 3)) ->Point.Origin : { x: number; y: number; }, Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) ->Point : typeof Point, Symbol(Point, Decl(module.d.ts, 0, 0), Decl(function.ts, 0, 0)) ->Origin : { x: number; y: number; }, Symbol(Point.Origin, Decl(module.d.ts, 1, 14)) +>cl : { x: number; y: number; } +>Point.Origin : { x: number; y: number; } +>Point : typeof Point +>Origin : { x: number; y: number; } diff --git a/tests/baselines/reference/ArrowFunction4.symbols b/tests/baselines/reference/ArrowFunction4.symbols new file mode 100644 index 0000000000000..cd19b8cdac9d1 --- /dev/null +++ b/tests/baselines/reference/ArrowFunction4.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction4.ts === +var v = (a, b) => { +>v : Symbol(v, Decl(ArrowFunction4.ts, 0, 3)) +>a : Symbol(a, Decl(ArrowFunction4.ts, 0, 9)) +>b : Symbol(b, Decl(ArrowFunction4.ts, 0, 11)) + +}; diff --git a/tests/baselines/reference/ArrowFunction4.types b/tests/baselines/reference/ArrowFunction4.types index 0472aba3d6c6a..1d049f193e63e 100644 --- a/tests/baselines/reference/ArrowFunction4.types +++ b/tests/baselines/reference/ArrowFunction4.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction4.ts === var v = (a, b) => { ->v : (a: any, b: any) => void, Symbol(v, Decl(ArrowFunction4.ts, 0, 3)) +>v : (a: any, b: any) => void >(a, b) => { } : (a: any, b: any) => void ->a : any, Symbol(a, Decl(ArrowFunction4.ts, 0, 9)) ->b : any, Symbol(b, Decl(ArrowFunction4.ts, 0, 11)) +>a : any +>b : any }; diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.symbols b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.symbols new file mode 100644 index 0000000000000..1c75c33a278ff --- /dev/null +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts === +class Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 4, 1)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 1, 16)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 1, 33)) + + static Origin(): Point { return { x: 0, y: 0 }; } +>Origin : Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 1, 55)) +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 4, 1)) +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 3, 37)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 3, 43)) +} + +module Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 4, 1)) + + function Origin() { return ""; }// not an error, since not exported +>Origin : Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 6, 14)) +} + + +module A { +>A : Symbol(A, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 8, 1)) + + export class Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 16, 5)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 13, 20)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 13, 37)) + + static Origin(): Point { return { x: 0, y: 0 }; } +>Origin : Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 13, 59)) +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 16, 5)) +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 15, 41)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 15, 47)) + } + + export module Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 16, 5)) + + function Origin() { return ""; }// not an error since not exported +>Origin : Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 18, 25)) + } +} diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.types b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.types index e3b806d38d5e7..9d943ab354c23 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.types +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.types @@ -1,55 +1,55 @@ === tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts === class Point { ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 4, 1)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 1, 16)) ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 1, 33)) +>x : number +>y : number static Origin(): Point { return { x: 0, y: 0 }; } ->Origin : () => Point, Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 1, 55)) ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 4, 1)) +>Origin : () => Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 3, 37)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 3, 43)) +>y : number >0 : number } module Point { ->Point : typeof Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 4, 1)) +>Point : typeof Point function Origin() { return ""; }// not an error, since not exported ->Origin : () => string, Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 6, 14)) +>Origin : () => string >"" : string } module A { ->A : typeof A, Symbol(A, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 8, 1)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 16, 5)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 13, 20)) ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 13, 37)) +>x : number +>y : number static Origin(): Point { return { x: 0, y: 0 }; } ->Origin : () => Point, Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 13, 59)) ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 16, 5)) +>Origin : () => Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 15, 41)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 15, 47)) +>y : number >0 : number } export module Point { ->Point : typeof Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 16, 5)) +>Point : typeof Point function Origin() { return ""; }// not an error since not exported ->Origin : () => string, Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticFunctionAndNonExportedFunctionThatShareAName.ts, 18, 25)) +>Origin : () => string >"" : string } } diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.symbols b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.symbols new file mode 100644 index 0000000000000..046b92fd6eed6 --- /dev/null +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts === +class Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 4, 1)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 1, 16)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 1, 33)) + + static Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 1, 55)) +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 4, 1)) +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 3, 28)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 3, 34)) +} + +module Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 4, 1)) + + var Origin = ""; // not an error, since not exported +>Origin : Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 7, 7)) +} + + +module A { +>A : Symbol(A, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 8, 1)) + + export class Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 16, 5)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 13, 20)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 13, 37)) + + static Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 13, 59)) +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 16, 5)) +>x : Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 15, 32)) +>y : Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 15, 38)) + } + + export module Point { +>Point : Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 16, 5)) + + var Origin = ""; // not an error since not exported +>Origin : Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 19, 11)) + } +} diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.types b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.types index 961e8c1bfd29a..8f8ffc8839f48 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.types +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.types @@ -1,55 +1,55 @@ === tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts === class Point { ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 4, 1)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 1, 16)) ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 1, 33)) +>x : number +>y : number static Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 1, 55)) ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 4, 1)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 3, 28)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 3, 34)) +>y : number >0 : number } module Point { ->Point : typeof Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 0, 0), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 4, 1)) +>Point : typeof Point var Origin = ""; // not an error, since not exported ->Origin : string, Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 7, 7)) +>Origin : string >"" : string } module A { ->A : typeof A, Symbol(A, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 8, 1)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 16, 5)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 13, 20)) ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 13, 37)) +>x : number +>y : number static Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Point.Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 13, 59)) ->Point : Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 16, 5)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 15, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 15, 38)) +>y : number >0 : number } export module Point { ->Point : typeof Point, Symbol(Point, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 11, 10), Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 16, 5)) +>Point : typeof Point var Origin = ""; // not an error since not exported ->Origin : string, Symbol(Origin, Decl(ClassAndModuleThatMergeWithStaticVariableAndNonExportedVarThatShareAName.ts, 19, 11)) +>Origin : string >"" : string } } diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithStringIndexerAndExportedFunctionWithTypeIncompatibleWithIndexer.symbols b/tests/baselines/reference/ClassAndModuleThatMergeWithStringIndexerAndExportedFunctionWithTypeIncompatibleWithIndexer.symbols new file mode 100644 index 0000000000000..4375eaa3ffbf2 --- /dev/null +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithStringIndexerAndExportedFunctionWithTypeIncompatibleWithIndexer.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/ClassAndModuleThatMergeWithStringIndexerAndExportedFunctionWithTypeIncompatibleWithIndexer.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/ES3For-ofTypeCheck2.symbols b/tests/baselines/reference/ES3For-ofTypeCheck2.symbols new file mode 100644 index 0000000000000..607c404682b3b --- /dev/null +++ b/tests/baselines/reference/ES3For-ofTypeCheck2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES3For-ofTypeCheck2.ts === +for (var v of [true]) { } +>v : Symbol(v, Decl(ES3For-ofTypeCheck2.ts, 0, 8)) + diff --git a/tests/baselines/reference/ES3For-ofTypeCheck2.types b/tests/baselines/reference/ES3For-ofTypeCheck2.types index 34e736892153e..81230c9cea451 100644 --- a/tests/baselines/reference/ES3For-ofTypeCheck2.types +++ b/tests/baselines/reference/ES3For-ofTypeCheck2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/statements/for-ofStatements/ES3For-ofTypeCheck2.ts === for (var v of [true]) { } ->v : boolean, Symbol(v, Decl(ES3For-ofTypeCheck2.ts, 0, 8)) +>v : boolean >[true] : boolean[] >true : boolean diff --git a/tests/baselines/reference/ES3For-ofTypeCheck6.symbols b/tests/baselines/reference/ES3For-ofTypeCheck6.symbols new file mode 100644 index 0000000000000..f42b8e87f35a2 --- /dev/null +++ b/tests/baselines/reference/ES3For-ofTypeCheck6.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES3For-ofTypeCheck6.ts === +var union: string[] | number[]; +>union : Symbol(union, Decl(ES3For-ofTypeCheck6.ts, 0, 3)) + +for (var v of union) { } +>v : Symbol(v, Decl(ES3For-ofTypeCheck6.ts, 1, 8)) +>union : Symbol(union, Decl(ES3For-ofTypeCheck6.ts, 0, 3)) + diff --git a/tests/baselines/reference/ES3For-ofTypeCheck6.types b/tests/baselines/reference/ES3For-ofTypeCheck6.types index 0945c7b079570..d7e6045b02954 100644 --- a/tests/baselines/reference/ES3For-ofTypeCheck6.types +++ b/tests/baselines/reference/ES3For-ofTypeCheck6.types @@ -1,8 +1,8 @@ === tests/cases/conformance/statements/for-ofStatements/ES3For-ofTypeCheck6.ts === var union: string[] | number[]; ->union : string[] | number[], Symbol(union, Decl(ES3For-ofTypeCheck6.ts, 0, 3)) +>union : string[] | number[] for (var v of union) { } ->v : string | number, Symbol(v, Decl(ES3For-ofTypeCheck6.ts, 1, 8)) ->union : string[] | number[], Symbol(union, Decl(ES3For-ofTypeCheck6.ts, 0, 3)) +>v : string | number +>union : string[] | number[] diff --git a/tests/baselines/reference/ES5For-of10.symbols b/tests/baselines/reference/ES5For-of10.symbols new file mode 100644 index 0000000000000..302db0a5ec7a6 --- /dev/null +++ b/tests/baselines/reference/ES5For-of10.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of10.ts === +function foo() { +>foo : Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) + + return { x: 0 }; +>x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +} +for (foo().x of []) { +>foo().x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo : Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) +>x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) + + for (foo().x of []) +>foo().x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo : Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) +>x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) + + var p = foo().x; +>p : Symbol(p, Decl(ES5For-of10.ts, 5, 11)) +>foo().x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo : Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) +>x : Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +} diff --git a/tests/baselines/reference/ES5For-of10.types b/tests/baselines/reference/ES5For-of10.types index 1f84648a76e1d..d31f89720387b 100644 --- a/tests/baselines/reference/ES5For-of10.types +++ b/tests/baselines/reference/ES5For-of10.types @@ -1,30 +1,30 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of10.ts === function foo() { ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) +>foo : () => { x: number; } return { x: 0 }; >{ x: 0 } : { x: number; } ->x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>x : number >0 : number } for (foo().x of []) { ->foo().x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo().x : number >foo() : { x: number; } ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) ->x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo : () => { x: number; } +>x : number >[] : undefined[] for (foo().x of []) ->foo().x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo().x : number >foo() : { x: number; } ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) ->x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo : () => { x: number; } +>x : number >[] : undefined[] var p = foo().x; ->p : number, Symbol(p, Decl(ES5For-of10.ts, 5, 11)) ->foo().x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>p : number +>foo().x : number >foo() : { x: number; } ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of10.ts, 0, 0)) ->x : number, Symbol(x, Decl(ES5For-of10.ts, 1, 12)) +>foo : () => { x: number; } +>x : number } diff --git a/tests/baselines/reference/ES5For-of11.symbols b/tests/baselines/reference/ES5For-of11.symbols new file mode 100644 index 0000000000000..7d80e3ab27120 --- /dev/null +++ b/tests/baselines/reference/ES5For-of11.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of11.ts === +var v; +>v : Symbol(v, Decl(ES5For-of11.ts, 0, 3)) + +for (v of []) { } +>v : Symbol(v, Decl(ES5For-of11.ts, 0, 3)) + diff --git a/tests/baselines/reference/ES5For-of11.types b/tests/baselines/reference/ES5For-of11.types index b609424fb75f9..e51bc46f1572c 100644 --- a/tests/baselines/reference/ES5For-of11.types +++ b/tests/baselines/reference/ES5For-of11.types @@ -1,8 +1,8 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of11.ts === var v; ->v : any, Symbol(v, Decl(ES5For-of11.ts, 0, 3)) +>v : any for (v of []) { } ->v : any, Symbol(v, Decl(ES5For-of11.ts, 0, 3)) +>v : any >[] : undefined[] diff --git a/tests/baselines/reference/ES5For-of13.symbols b/tests/baselines/reference/ES5For-of13.symbols new file mode 100644 index 0000000000000..2dcfe344cf4ef --- /dev/null +++ b/tests/baselines/reference/ES5For-of13.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of13.ts === +for (let v of ['a', 'b', 'c']) { +>v : Symbol(v, Decl(ES5For-of13.ts, 0, 8)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of13.ts, 1, 7)) +>v : Symbol(v, Decl(ES5For-of13.ts, 0, 8)) +} diff --git a/tests/baselines/reference/ES5For-of13.types b/tests/baselines/reference/ES5For-of13.types index 7f131241081af..46125af551e41 100644 --- a/tests/baselines/reference/ES5For-of13.types +++ b/tests/baselines/reference/ES5For-of13.types @@ -1,12 +1,12 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of13.ts === for (let v of ['a', 'b', 'c']) { ->v : string, Symbol(v, Decl(ES5For-of13.ts, 0, 8)) +>v : string >['a', 'b', 'c'] : string[] >'a' : string >'b' : string >'c' : string var x = v; ->x : string, Symbol(x, Decl(ES5For-of13.ts, 1, 7)) ->v : string, Symbol(v, Decl(ES5For-of13.ts, 0, 8)) +>x : string +>v : string } diff --git a/tests/baselines/reference/ES5For-of14.symbols b/tests/baselines/reference/ES5For-of14.symbols new file mode 100644 index 0000000000000..771a088f8dc91 --- /dev/null +++ b/tests/baselines/reference/ES5For-of14.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of14.ts === +for (const v of []) { +>v : Symbol(v, Decl(ES5For-of14.ts, 0, 10)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of14.ts, 1, 7)) +>v : Symbol(v, Decl(ES5For-of14.ts, 0, 10)) +} diff --git a/tests/baselines/reference/ES5For-of14.types b/tests/baselines/reference/ES5For-of14.types index 3ca30c7f3dc03..0a4f9a78453a5 100644 --- a/tests/baselines/reference/ES5For-of14.types +++ b/tests/baselines/reference/ES5For-of14.types @@ -1,9 +1,9 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of14.ts === for (const v of []) { ->v : any, Symbol(v, Decl(ES5For-of14.ts, 0, 10)) +>v : any >[] : undefined[] var x = v; ->x : any, Symbol(x, Decl(ES5For-of14.ts, 1, 7)) ->v : any, Symbol(v, Decl(ES5For-of14.ts, 0, 10)) +>x : any +>v : any } diff --git a/tests/baselines/reference/ES5For-of15.symbols b/tests/baselines/reference/ES5For-of15.symbols new file mode 100644 index 0000000000000..ea769ccfac911 --- /dev/null +++ b/tests/baselines/reference/ES5For-of15.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of15.ts === +for (let v of []) { +>v : Symbol(v, Decl(ES5For-of15.ts, 0, 8)) + + v; +>v : Symbol(v, Decl(ES5For-of15.ts, 0, 8)) + + for (const v of []) { +>v : Symbol(v, Decl(ES5For-of15.ts, 2, 14)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of15.ts, 3, 11)) +>v : Symbol(v, Decl(ES5For-of15.ts, 2, 14)) + } +} diff --git a/tests/baselines/reference/ES5For-of15.types b/tests/baselines/reference/ES5For-of15.types index a587ad7dcd1a1..90409b8b16768 100644 --- a/tests/baselines/reference/ES5For-of15.types +++ b/tests/baselines/reference/ES5For-of15.types @@ -1,17 +1,17 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of15.ts === for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of15.ts, 0, 8)) +>v : any >[] : undefined[] v; ->v : any, Symbol(v, Decl(ES5For-of15.ts, 0, 8)) +>v : any for (const v of []) { ->v : any, Symbol(v, Decl(ES5For-of15.ts, 2, 14)) +>v : any >[] : undefined[] var x = v; ->x : any, Symbol(x, Decl(ES5For-of15.ts, 3, 11)) ->v : any, Symbol(v, Decl(ES5For-of15.ts, 2, 14)) +>x : any +>v : any } } diff --git a/tests/baselines/reference/ES5For-of16.symbols b/tests/baselines/reference/ES5For-of16.symbols new file mode 100644 index 0000000000000..f603cb05450d3 --- /dev/null +++ b/tests/baselines/reference/ES5For-of16.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of16.ts === +for (let v of []) { +>v : Symbol(v, Decl(ES5For-of16.ts, 0, 8)) + + v; +>v : Symbol(v, Decl(ES5For-of16.ts, 0, 8)) + + for (let v of []) { +>v : Symbol(v, Decl(ES5For-of16.ts, 2, 12)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of16.ts, 3, 11)) +>v : Symbol(v, Decl(ES5For-of16.ts, 2, 12)) + + v++; +>v : Symbol(v, Decl(ES5For-of16.ts, 2, 12)) + } +} diff --git a/tests/baselines/reference/ES5For-of16.types b/tests/baselines/reference/ES5For-of16.types index 03b110edcf300..94f015097118c 100644 --- a/tests/baselines/reference/ES5For-of16.types +++ b/tests/baselines/reference/ES5For-of16.types @@ -1,21 +1,21 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of16.ts === for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of16.ts, 0, 8)) +>v : any >[] : undefined[] v; ->v : any, Symbol(v, Decl(ES5For-of16.ts, 0, 8)) +>v : any for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of16.ts, 2, 12)) +>v : any >[] : undefined[] var x = v; ->x : any, Symbol(x, Decl(ES5For-of16.ts, 3, 11)) ->v : any, Symbol(v, Decl(ES5For-of16.ts, 2, 12)) +>x : any +>v : any v++; >v++ : number ->v : any, Symbol(v, Decl(ES5For-of16.ts, 2, 12)) +>v : any } } diff --git a/tests/baselines/reference/ES5For-of18.symbols b/tests/baselines/reference/ES5For-of18.symbols new file mode 100644 index 0000000000000..f564c4d5aaae0 --- /dev/null +++ b/tests/baselines/reference/ES5For-of18.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of18.ts === +for (let v of []) { +>v : Symbol(v, Decl(ES5For-of18.ts, 0, 8)) + + v; +>v : Symbol(v, Decl(ES5For-of18.ts, 0, 8)) +} +for (let v of []) { +>v : Symbol(v, Decl(ES5For-of18.ts, 3, 8)) + + v; +>v : Symbol(v, Decl(ES5For-of18.ts, 3, 8)) +} + diff --git a/tests/baselines/reference/ES5For-of18.types b/tests/baselines/reference/ES5For-of18.types index 8c659e2028643..e78bc846df6c9 100644 --- a/tests/baselines/reference/ES5For-of18.types +++ b/tests/baselines/reference/ES5For-of18.types @@ -1,16 +1,16 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of18.ts === for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of18.ts, 0, 8)) +>v : any >[] : undefined[] v; ->v : any, Symbol(v, Decl(ES5For-of18.ts, 0, 8)) +>v : any } for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of18.ts, 3, 8)) +>v : any >[] : undefined[] v; ->v : any, Symbol(v, Decl(ES5For-of18.ts, 3, 8)) +>v : any } diff --git a/tests/baselines/reference/ES5For-of19.symbols b/tests/baselines/reference/ES5For-of19.symbols new file mode 100644 index 0000000000000..93133c2ec4920 --- /dev/null +++ b/tests/baselines/reference/ES5For-of19.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of19.ts === +for (let v of []) { +>v : Symbol(v, Decl(ES5For-of19.ts, 0, 8)) + + v; +>v : Symbol(v, Decl(ES5For-of19.ts, 0, 8)) + + function foo() { +>foo : Symbol(foo, Decl(ES5For-of19.ts, 1, 6)) + + for (const v of []) { +>v : Symbol(v, Decl(ES5For-of19.ts, 3, 18)) + + v; +>v : Symbol(v, Decl(ES5For-of19.ts, 3, 18)) + } + } +} + diff --git a/tests/baselines/reference/ES5For-of19.types b/tests/baselines/reference/ES5For-of19.types index ba55400c858d2..d95dc63d2626b 100644 --- a/tests/baselines/reference/ES5For-of19.types +++ b/tests/baselines/reference/ES5For-of19.types @@ -1,20 +1,20 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of19.ts === for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of19.ts, 0, 8)) +>v : any >[] : undefined[] v; ->v : any, Symbol(v, Decl(ES5For-of19.ts, 0, 8)) +>v : any function foo() { ->foo : () => void, Symbol(foo, Decl(ES5For-of19.ts, 1, 6)) +>foo : () => void for (const v of []) { ->v : any, Symbol(v, Decl(ES5For-of19.ts, 3, 18)) +>v : any >[] : undefined[] v; ->v : any, Symbol(v, Decl(ES5For-of19.ts, 3, 18)) +>v : any } } } diff --git a/tests/baselines/reference/ES5For-of2.symbols b/tests/baselines/reference/ES5For-of2.symbols new file mode 100644 index 0000000000000..250429031c50c --- /dev/null +++ b/tests/baselines/reference/ES5For-of2.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of2.ts === +for (var v of []) { +>v : Symbol(v, Decl(ES5For-of2.ts, 0, 8)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of2.ts, 1, 7)) +>v : Symbol(v, Decl(ES5For-of2.ts, 0, 8)) +} diff --git a/tests/baselines/reference/ES5For-of2.types b/tests/baselines/reference/ES5For-of2.types index 7e3f096d9f6f1..3e680c44bc8aa 100644 --- a/tests/baselines/reference/ES5For-of2.types +++ b/tests/baselines/reference/ES5For-of2.types @@ -1,9 +1,9 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of2.ts === for (var v of []) { ->v : any, Symbol(v, Decl(ES5For-of2.ts, 0, 8)) +>v : any >[] : undefined[] var x = v; ->x : any, Symbol(x, Decl(ES5For-of2.ts, 1, 7)) ->v : any, Symbol(v, Decl(ES5For-of2.ts, 0, 8)) +>x : any +>v : any } diff --git a/tests/baselines/reference/ES5For-of21.symbols b/tests/baselines/reference/ES5For-of21.symbols new file mode 100644 index 0000000000000..9cbecdb20baa4 --- /dev/null +++ b/tests/baselines/reference/ES5For-of21.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of21.ts === +for (let v of []) { +>v : Symbol(v, Decl(ES5For-of21.ts, 0, 8)) + + for (let _i of []) { } +>_i : Symbol(_i, Decl(ES5For-of21.ts, 1, 12)) +} diff --git a/tests/baselines/reference/ES5For-of21.types b/tests/baselines/reference/ES5For-of21.types index 67280f1ae330f..a15942fd0134e 100644 --- a/tests/baselines/reference/ES5For-of21.types +++ b/tests/baselines/reference/ES5For-of21.types @@ -1,9 +1,9 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of21.ts === for (let v of []) { ->v : any, Symbol(v, Decl(ES5For-of21.ts, 0, 8)) +>v : any >[] : undefined[] for (let _i of []) { } ->_i : any, Symbol(_i, Decl(ES5For-of21.ts, 1, 12)) +>_i : any >[] : undefined[] } diff --git a/tests/baselines/reference/ES5For-of24.symbols b/tests/baselines/reference/ES5For-of24.symbols new file mode 100644 index 0000000000000..9a9a98660dc01 --- /dev/null +++ b/tests/baselines/reference/ES5For-of24.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of24.ts === +var a = [1, 2, 3]; +>a : Symbol(a, Decl(ES5For-of24.ts, 0, 3)) + +for (var v of a) { +>v : Symbol(v, Decl(ES5For-of24.ts, 1, 8)) +>a : Symbol(a, Decl(ES5For-of24.ts, 0, 3)) + + let a = 0; +>a : Symbol(a, Decl(ES5For-of24.ts, 2, 7)) +} diff --git a/tests/baselines/reference/ES5For-of24.types b/tests/baselines/reference/ES5For-of24.types index 948a02d211111..c0c4666fbf5d5 100644 --- a/tests/baselines/reference/ES5For-of24.types +++ b/tests/baselines/reference/ES5For-of24.types @@ -1,16 +1,16 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of24.ts === var a = [1, 2, 3]; ->a : number[], Symbol(a, Decl(ES5For-of24.ts, 0, 3)) +>a : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number for (var v of a) { ->v : number, Symbol(v, Decl(ES5For-of24.ts, 1, 8)) ->a : number[], Symbol(a, Decl(ES5For-of24.ts, 0, 3)) +>v : number +>a : number[] let a = 0; ->a : number, Symbol(a, Decl(ES5For-of24.ts, 2, 7)) +>a : number >0 : number } diff --git a/tests/baselines/reference/ES5For-of25.symbols b/tests/baselines/reference/ES5For-of25.symbols new file mode 100644 index 0000000000000..22f04d9ae28c8 --- /dev/null +++ b/tests/baselines/reference/ES5For-of25.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of25.ts === +var a = [1, 2, 3]; +>a : Symbol(a, Decl(ES5For-of25.ts, 0, 3)) + +for (var v of a) { +>v : Symbol(v, Decl(ES5For-of25.ts, 1, 8)) +>a : Symbol(a, Decl(ES5For-of25.ts, 0, 3)) + + v; +>v : Symbol(v, Decl(ES5For-of25.ts, 1, 8)) + + a; +>a : Symbol(a, Decl(ES5For-of25.ts, 0, 3)) +} diff --git a/tests/baselines/reference/ES5For-of25.types b/tests/baselines/reference/ES5For-of25.types index ffecb93363af1..4650e3244d370 100644 --- a/tests/baselines/reference/ES5For-of25.types +++ b/tests/baselines/reference/ES5For-of25.types @@ -1,18 +1,18 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of25.ts === var a = [1, 2, 3]; ->a : number[], Symbol(a, Decl(ES5For-of25.ts, 0, 3)) +>a : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number for (var v of a) { ->v : number, Symbol(v, Decl(ES5For-of25.ts, 1, 8)) ->a : number[], Symbol(a, Decl(ES5For-of25.ts, 0, 3)) +>v : number +>a : number[] v; ->v : number, Symbol(v, Decl(ES5For-of25.ts, 1, 8)) +>v : number a; ->a : number[], Symbol(a, Decl(ES5For-of25.ts, 0, 3)) +>a : number[] } diff --git a/tests/baselines/reference/ES5For-of3.symbols b/tests/baselines/reference/ES5For-of3.symbols new file mode 100644 index 0000000000000..452b2224aea58 --- /dev/null +++ b/tests/baselines/reference/ES5For-of3.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of3.ts === +for (var v of ['a', 'b', 'c']) +>v : Symbol(v, Decl(ES5For-of3.ts, 0, 8)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of3.ts, 1, 7)) +>v : Symbol(v, Decl(ES5For-of3.ts, 0, 8)) + diff --git a/tests/baselines/reference/ES5For-of3.types b/tests/baselines/reference/ES5For-of3.types index fd01faa3e1297..65267fe3f7055 100644 --- a/tests/baselines/reference/ES5For-of3.types +++ b/tests/baselines/reference/ES5For-of3.types @@ -1,12 +1,12 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of3.ts === for (var v of ['a', 'b', 'c']) ->v : string, Symbol(v, Decl(ES5For-of3.ts, 0, 8)) +>v : string >['a', 'b', 'c'] : string[] >'a' : string >'b' : string >'c' : string var x = v; ->x : string, Symbol(x, Decl(ES5For-of3.ts, 1, 7)) ->v : string, Symbol(v, Decl(ES5For-of3.ts, 0, 8)) +>x : string +>v : string diff --git a/tests/baselines/reference/ES5For-of4.symbols b/tests/baselines/reference/ES5For-of4.symbols new file mode 100644 index 0000000000000..f79e09b366f34 --- /dev/null +++ b/tests/baselines/reference/ES5For-of4.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of4.ts === +for (var v of []) +>v : Symbol(v, Decl(ES5For-of4.ts, 0, 8)) + + var x = v; +>x : Symbol(x, Decl(ES5For-of4.ts, 1, 7)) +>v : Symbol(v, Decl(ES5For-of4.ts, 0, 8)) + +var y = v; +>y : Symbol(y, Decl(ES5For-of4.ts, 2, 3)) +>v : Symbol(v, Decl(ES5For-of4.ts, 0, 8)) + diff --git a/tests/baselines/reference/ES5For-of4.types b/tests/baselines/reference/ES5For-of4.types index ee756b0e60f23..9396096746c2f 100644 --- a/tests/baselines/reference/ES5For-of4.types +++ b/tests/baselines/reference/ES5For-of4.types @@ -1,13 +1,13 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of4.ts === for (var v of []) ->v : any, Symbol(v, Decl(ES5For-of4.ts, 0, 8)) +>v : any >[] : undefined[] var x = v; ->x : any, Symbol(x, Decl(ES5For-of4.ts, 1, 7)) ->v : any, Symbol(v, Decl(ES5For-of4.ts, 0, 8)) +>x : any +>v : any var y = v; ->y : any, Symbol(y, Decl(ES5For-of4.ts, 2, 3)) ->v : any, Symbol(v, Decl(ES5For-of4.ts, 0, 8)) +>y : any +>v : any diff --git a/tests/baselines/reference/ES5For-of5.symbols b/tests/baselines/reference/ES5For-of5.symbols new file mode 100644 index 0000000000000..9cf59c68c2bbb --- /dev/null +++ b/tests/baselines/reference/ES5For-of5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of5.ts === +for (var _a of []) { +>_a : Symbol(_a, Decl(ES5For-of5.ts, 0, 8)) + + var x = _a; +>x : Symbol(x, Decl(ES5For-of5.ts, 1, 7)) +>_a : Symbol(_a, Decl(ES5For-of5.ts, 0, 8)) +} diff --git a/tests/baselines/reference/ES5For-of5.types b/tests/baselines/reference/ES5For-of5.types index 23bd15a88f400..dd9aa285edba0 100644 --- a/tests/baselines/reference/ES5For-of5.types +++ b/tests/baselines/reference/ES5For-of5.types @@ -1,9 +1,9 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of5.ts === for (var _a of []) { ->_a : any, Symbol(_a, Decl(ES5For-of5.ts, 0, 8)) +>_a : any >[] : undefined[] var x = _a; ->x : any, Symbol(x, Decl(ES5For-of5.ts, 1, 7)) ->_a : any, Symbol(_a, Decl(ES5For-of5.ts, 0, 8)) +>x : any +>_a : any } diff --git a/tests/baselines/reference/ES5For-of6.symbols b/tests/baselines/reference/ES5For-of6.symbols new file mode 100644 index 0000000000000..3bdae94703856 --- /dev/null +++ b/tests/baselines/reference/ES5For-of6.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of6.ts === +for (var w of []) { +>w : Symbol(w, Decl(ES5For-of6.ts, 0, 8)) + + for (var v of []) { +>v : Symbol(v, Decl(ES5For-of6.ts, 1, 12)) + + var x = [w, v]; +>x : Symbol(x, Decl(ES5For-of6.ts, 2, 11)) +>w : Symbol(w, Decl(ES5For-of6.ts, 0, 8)) +>v : Symbol(v, Decl(ES5For-of6.ts, 1, 12)) + } +} diff --git a/tests/baselines/reference/ES5For-of6.types b/tests/baselines/reference/ES5For-of6.types index 2381b519bd720..e2d2f872809d4 100644 --- a/tests/baselines/reference/ES5For-of6.types +++ b/tests/baselines/reference/ES5For-of6.types @@ -1,16 +1,16 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of6.ts === for (var w of []) { ->w : any, Symbol(w, Decl(ES5For-of6.ts, 0, 8)) +>w : any >[] : undefined[] for (var v of []) { ->v : any, Symbol(v, Decl(ES5For-of6.ts, 1, 12)) +>v : any >[] : undefined[] var x = [w, v]; ->x : any[], Symbol(x, Decl(ES5For-of6.ts, 2, 11)) +>x : any[] >[w, v] : any[] ->w : any, Symbol(w, Decl(ES5For-of6.ts, 0, 8)) ->v : any, Symbol(v, Decl(ES5For-of6.ts, 1, 12)) +>w : any +>v : any } } diff --git a/tests/baselines/reference/ES5For-of9.symbols b/tests/baselines/reference/ES5For-of9.symbols new file mode 100644 index 0000000000000..426a5442ecbd5 --- /dev/null +++ b/tests/baselines/reference/ES5For-of9.symbols @@ -0,0 +1,24 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-of9.ts === +function foo() { +>foo : Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) + + return { x: 0 }; +>x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +} +for (foo().x of []) { +>foo().x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo : Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) +>x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) + + for (foo().x of []) { +>foo().x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo : Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) +>x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) + + var p = foo().x; +>p : Symbol(p, Decl(ES5For-of9.ts, 5, 11)) +>foo().x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo : Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) +>x : Symbol(x, Decl(ES5For-of9.ts, 1, 12)) + } +} diff --git a/tests/baselines/reference/ES5For-of9.types b/tests/baselines/reference/ES5For-of9.types index c8af00534133a..ec41df704c6b9 100644 --- a/tests/baselines/reference/ES5For-of9.types +++ b/tests/baselines/reference/ES5For-of9.types @@ -1,31 +1,31 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-of9.ts === function foo() { ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) +>foo : () => { x: number; } return { x: 0 }; >{ x: 0 } : { x: number; } ->x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>x : number >0 : number } for (foo().x of []) { ->foo().x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo().x : number >foo() : { x: number; } ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) ->x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo : () => { x: number; } +>x : number >[] : undefined[] for (foo().x of []) { ->foo().x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo().x : number >foo() : { x: number; } ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) ->x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo : () => { x: number; } +>x : number >[] : undefined[] var p = foo().x; ->p : number, Symbol(p, Decl(ES5For-of9.ts, 5, 11)) ->foo().x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>p : number +>foo().x : number >foo() : { x: number; } ->foo : () => { x: number; }, Symbol(foo, Decl(ES5For-of9.ts, 0, 0)) ->x : number, Symbol(x, Decl(ES5For-of9.ts, 1, 12)) +>foo : () => { x: number; } +>x : number } } diff --git a/tests/baselines/reference/ES5For-ofTypeCheck1.symbols b/tests/baselines/reference/ES5For-ofTypeCheck1.symbols new file mode 100644 index 0000000000000..83b7fbd0d2cc8 --- /dev/null +++ b/tests/baselines/reference/ES5For-ofTypeCheck1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck1.ts === +for (var v of "") { } +>v : Symbol(v, Decl(ES5For-ofTypeCheck1.ts, 0, 8)) + diff --git a/tests/baselines/reference/ES5For-ofTypeCheck1.types b/tests/baselines/reference/ES5For-ofTypeCheck1.types index 001cd343edd63..395900d683b12 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck1.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck1.types @@ -1,5 +1,5 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck1.ts === for (var v of "") { } ->v : string, Symbol(v, Decl(ES5For-ofTypeCheck1.ts, 0, 8)) +>v : string >"" : string diff --git a/tests/baselines/reference/ES5For-ofTypeCheck2.symbols b/tests/baselines/reference/ES5For-ofTypeCheck2.symbols new file mode 100644 index 0000000000000..cd1d3f346e837 --- /dev/null +++ b/tests/baselines/reference/ES5For-ofTypeCheck2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck2.ts === +for (var v of [true]) { } +>v : Symbol(v, Decl(ES5For-ofTypeCheck2.ts, 0, 8)) + diff --git a/tests/baselines/reference/ES5For-ofTypeCheck2.types b/tests/baselines/reference/ES5For-ofTypeCheck2.types index 5dd5c58bf5069..d28a2803216d4 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck2.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck2.ts === for (var v of [true]) { } ->v : boolean, Symbol(v, Decl(ES5For-ofTypeCheck2.ts, 0, 8)) +>v : boolean >[true] : boolean[] >true : boolean diff --git a/tests/baselines/reference/ES5For-ofTypeCheck3.symbols b/tests/baselines/reference/ES5For-ofTypeCheck3.symbols new file mode 100644 index 0000000000000..82196315ca628 --- /dev/null +++ b/tests/baselines/reference/ES5For-ofTypeCheck3.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck3.ts === +var tuple: [string, number] = ["", 0]; +>tuple : Symbol(tuple, Decl(ES5For-ofTypeCheck3.ts, 0, 3)) + +for (var v of tuple) { } +>v : Symbol(v, Decl(ES5For-ofTypeCheck3.ts, 1, 8)) +>tuple : Symbol(tuple, Decl(ES5For-ofTypeCheck3.ts, 0, 3)) + diff --git a/tests/baselines/reference/ES5For-ofTypeCheck3.types b/tests/baselines/reference/ES5For-ofTypeCheck3.types index 9c5e81a4a3e56..a62dcc94f989f 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck3.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck3.types @@ -1,11 +1,11 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck3.ts === var tuple: [string, number] = ["", 0]; ->tuple : [string, number], Symbol(tuple, Decl(ES5For-ofTypeCheck3.ts, 0, 3)) +>tuple : [string, number] >["", 0] : [string, number] >"" : string >0 : number for (var v of tuple) { } ->v : string | number, Symbol(v, Decl(ES5For-ofTypeCheck3.ts, 1, 8)) ->tuple : [string, number], Symbol(tuple, Decl(ES5For-ofTypeCheck3.ts, 0, 3)) +>v : string | number +>tuple : [string, number] diff --git a/tests/baselines/reference/ES5For-ofTypeCheck4.symbols b/tests/baselines/reference/ES5For-ofTypeCheck4.symbols new file mode 100644 index 0000000000000..7d3dac4ef81f0 --- /dev/null +++ b/tests/baselines/reference/ES5For-ofTypeCheck4.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck4.ts === +var union: string | string[]; +>union : Symbol(union, Decl(ES5For-ofTypeCheck4.ts, 0, 3)) + +for (const v of union) { } +>v : Symbol(v, Decl(ES5For-ofTypeCheck4.ts, 1, 10)) +>union : Symbol(union, Decl(ES5For-ofTypeCheck4.ts, 0, 3)) + diff --git a/tests/baselines/reference/ES5For-ofTypeCheck4.types b/tests/baselines/reference/ES5For-ofTypeCheck4.types index 37d75b8865e2a..4f5721a06045c 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck4.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck4.types @@ -1,8 +1,8 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck4.ts === var union: string | string[]; ->union : string | string[], Symbol(union, Decl(ES5For-ofTypeCheck4.ts, 0, 3)) +>union : string | string[] for (const v of union) { } ->v : string, Symbol(v, Decl(ES5For-ofTypeCheck4.ts, 1, 10)) ->union : string | string[], Symbol(union, Decl(ES5For-ofTypeCheck4.ts, 0, 3)) +>v : string +>union : string | string[] diff --git a/tests/baselines/reference/ES5For-ofTypeCheck5.symbols b/tests/baselines/reference/ES5For-ofTypeCheck5.symbols new file mode 100644 index 0000000000000..41f80949e52e5 --- /dev/null +++ b/tests/baselines/reference/ES5For-ofTypeCheck5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck5.ts === +var union: string | number[]; +>union : Symbol(union, Decl(ES5For-ofTypeCheck5.ts, 0, 3)) + +for (var v of union) { } +>v : Symbol(v, Decl(ES5For-ofTypeCheck5.ts, 1, 8)) +>union : Symbol(union, Decl(ES5For-ofTypeCheck5.ts, 0, 3)) + diff --git a/tests/baselines/reference/ES5For-ofTypeCheck5.types b/tests/baselines/reference/ES5For-ofTypeCheck5.types index 35487b4927d60..ed3d13f3918a7 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck5.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck5.types @@ -1,8 +1,8 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck5.ts === var union: string | number[]; ->union : string | number[], Symbol(union, Decl(ES5For-ofTypeCheck5.ts, 0, 3)) +>union : string | number[] for (var v of union) { } ->v : string | number, Symbol(v, Decl(ES5For-ofTypeCheck5.ts, 1, 8)) ->union : string | number[], Symbol(union, Decl(ES5For-ofTypeCheck5.ts, 0, 3)) +>v : string | number +>union : string | number[] diff --git a/tests/baselines/reference/ES5For-ofTypeCheck6.symbols b/tests/baselines/reference/ES5For-ofTypeCheck6.symbols new file mode 100644 index 0000000000000..4c362bf9bc7e2 --- /dev/null +++ b/tests/baselines/reference/ES5For-ofTypeCheck6.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck6.ts === +var union: string[] | number[]; +>union : Symbol(union, Decl(ES5For-ofTypeCheck6.ts, 0, 3)) + +for (var v of union) { } +>v : Symbol(v, Decl(ES5For-ofTypeCheck6.ts, 1, 8)) +>union : Symbol(union, Decl(ES5For-ofTypeCheck6.ts, 0, 3)) + diff --git a/tests/baselines/reference/ES5For-ofTypeCheck6.types b/tests/baselines/reference/ES5For-ofTypeCheck6.types index 74752ea71143b..87999d9b0ca2e 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck6.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck6.types @@ -1,8 +1,8 @@ === tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck6.ts === var union: string[] | number[]; ->union : string[] | number[], Symbol(union, Decl(ES5For-ofTypeCheck6.ts, 0, 3)) +>union : string[] | number[] for (var v of union) { } ->v : string | number, Symbol(v, Decl(ES5For-ofTypeCheck6.ts, 1, 8)) ->union : string[] | number[], Symbol(union, Decl(ES5For-ofTypeCheck6.ts, 0, 3)) +>v : string | number +>union : string[] | number[] diff --git a/tests/baselines/reference/ES5SymbolType1.symbols b/tests/baselines/reference/ES5SymbolType1.symbols new file mode 100644 index 0000000000000..ea6c9084046d6 --- /dev/null +++ b/tests/baselines/reference/ES5SymbolType1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/Symbols/ES5SymbolType1.ts === +var s: symbol; +>s : Symbol(s, Decl(ES5SymbolType1.ts, 0, 3)) + +s.toString(); +>s.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>s : Symbol(s, Decl(ES5SymbolType1.ts, 0, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + diff --git a/tests/baselines/reference/ES5SymbolType1.types b/tests/baselines/reference/ES5SymbolType1.types index 8b88bbf4da563..79d93902fd6a2 100644 --- a/tests/baselines/reference/ES5SymbolType1.types +++ b/tests/baselines/reference/ES5SymbolType1.types @@ -1,10 +1,10 @@ === tests/cases/conformance/Symbols/ES5SymbolType1.ts === var s: symbol; ->s : symbol, Symbol(s, Decl(ES5SymbolType1.ts, 0, 3)) +>s : symbol s.toString(); >s.toString() : string ->s.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->s : symbol, Symbol(s, Decl(ES5SymbolType1.ts, 0, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>s.toString : () => string +>s : symbol +>toString : () => string diff --git a/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.symbols b/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.symbols new file mode 100644 index 0000000000000..dc97960f71e16 --- /dev/null +++ b/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/EnumAndModuleWithSameNameAndCommonRoot.ts === +enum enumdule { +>enumdule : Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) + + Red, Blue +>Red : Symbol(enumdule.Red, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 15)) +>Blue : Symbol(enumdule.Blue, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 1, 8)) +} + +module enumdule { +>enumdule : Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) + + export class Point { +>Point : Symbol(Point, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 4, 17)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 7, 20)) +>y : Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 7, 37)) + } +} + +var x: enumdule; +>x : Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 11, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 12, 3)) +>enumdule : Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) + +var x = enumdule.Red; +>x : Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 11, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 12, 3)) +>enumdule.Red : Symbol(enumdule.Red, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 15)) +>enumdule : Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) +>Red : Symbol(enumdule.Red, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 15)) + +var y: { x: number; y: number }; +>y : Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 15, 3)) +>x : Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 8)) +>y : Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 19)) + +var y = new enumdule.Point(0, 0); +>y : Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 15, 3)) +>enumdule.Point : Symbol(enumdule.Point, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 4, 17)) +>enumdule : Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) +>Point : Symbol(enumdule.Point, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 4, 17)) + diff --git a/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.types b/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.types index b2e11aa63aec3..205335c7eb644 100644 --- a/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.types +++ b/tests/baselines/reference/EnumAndModuleWithSameNameAndCommonRoot.types @@ -1,45 +1,45 @@ === tests/cases/conformance/internalModules/DeclarationMerging/EnumAndModuleWithSameNameAndCommonRoot.ts === enum enumdule { ->enumdule : enumdule, Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) +>enumdule : enumdule Red, Blue ->Red : enumdule, Symbol(enumdule.Red, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 15)) ->Blue : enumdule, Symbol(enumdule.Blue, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 1, 8)) +>Red : enumdule +>Blue : enumdule } module enumdule { ->enumdule : typeof enumdule, Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) +>enumdule : typeof enumdule export class Point { ->Point : Point, Symbol(Point, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 4, 17)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 7, 20)) ->y : number, Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 7, 37)) +>x : number +>y : number } } var x: enumdule; ->x : enumdule, Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 11, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 12, 3)) ->enumdule : enumdule, Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) +>x : enumdule +>enumdule : enumdule var x = enumdule.Red; ->x : enumdule, Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 11, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 12, 3)) ->enumdule.Red : enumdule, Symbol(enumdule.Red, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 15)) ->enumdule : typeof enumdule, Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) ->Red : enumdule, Symbol(enumdule.Red, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 15)) +>x : enumdule +>enumdule.Red : enumdule +>enumdule : typeof enumdule +>Red : enumdule var y: { x: number; y: number }; ->y : { x: number; y: number; }, Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 15, 3)) ->x : number, Symbol(x, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 8)) ->y : number, Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 19)) +>y : { x: number; y: number; } +>x : number +>y : number var y = new enumdule.Point(0, 0); ->y : { x: number; y: number; }, Symbol(y, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 14, 3), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 15, 3)) +>y : { x: number; y: number; } >new enumdule.Point(0, 0) : enumdule.Point ->enumdule.Point : typeof enumdule.Point, Symbol(enumdule.Point, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 4, 17)) ->enumdule : typeof enumdule, Symbol(enumdule, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 0, 0), Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 2, 1)) ->Point : typeof enumdule.Point, Symbol(enumdule.Point, Decl(EnumAndModuleWithSameNameAndCommonRoot.ts, 4, 17)) +>enumdule.Point : typeof enumdule.Point +>enumdule : typeof enumdule +>Point : typeof enumdule.Point >0 : number >0 : number diff --git a/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.symbols b/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.symbols new file mode 100644 index 0000000000000..8346888d81f9a --- /dev/null +++ b/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportClassWhichExtendsInterfaceWithInaccessibleType.ts === +module A { +>A : Symbol(A, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 0)) + + interface Point { +>Point : Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 2, 21)) + + y: number; +>y : Symbol(y, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 3, 18)) + + fromOrigin(p: Point): number; +>fromOrigin : Symbol(fromOrigin, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 4, 18)) +>p : Symbol(p, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 6, 19)) +>Point : Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) + } + + export class Point2d implements Point { +>Point2d : Symbol(Point2d, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 7, 5)) +>Point : Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 10, 20)) +>y : Symbol(y, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 10, 37)) + + fromOrigin(p: Point) { +>fromOrigin : Symbol(fromOrigin, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 10, 59)) +>p : Symbol(p, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 12, 19)) +>Point : Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) + + return 1; + } + } +} + + diff --git a/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.types b/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.types index 90d8bf5fbe786..e47b38a0b61e5 100644 --- a/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.types +++ b/tests/baselines/reference/ExportClassWhichExtendsInterfaceWithInaccessibleType.types @@ -1,34 +1,34 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportClassWhichExtendsInterfaceWithInaccessibleType.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 0)) +>A : typeof A interface Point { ->Point : Point, Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 2, 21)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 3, 18)) +>y : number fromOrigin(p: Point): number; ->fromOrigin : (p: Point) => number, Symbol(fromOrigin, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 4, 18)) ->p : Point, Symbol(p, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 6, 19)) ->Point : Point, Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) +>fromOrigin : (p: Point) => number +>p : Point +>Point : Point } export class Point2d implements Point { ->Point2d : Point2d, Symbol(Point2d, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 7, 5)) ->Point : Point, Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) +>Point2d : Point2d +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 10, 20)) ->y : number, Symbol(y, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 10, 37)) +>x : number +>y : number fromOrigin(p: Point) { ->fromOrigin : (p: Point) => number, Symbol(fromOrigin, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 10, 59)) ->p : Point, Symbol(p, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 12, 19)) ->Point : Point, Symbol(Point, Decl(ExportClassWhichExtendsInterfaceWithInaccessibleType.ts, 0, 10)) +>fromOrigin : (p: Point) => number +>p : Point +>Point : Point return 1; >1 : number diff --git a/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.symbols b/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.symbols new file mode 100644 index 0000000000000..2802e6aa3921e --- /dev/null +++ b/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.symbols @@ -0,0 +1,48 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts === +module A { +>A : Symbol(A, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 2, 24)) + + y: number; +>y : Symbol(y, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 3, 18)) + } + + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 14)) +>Point : Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>x : Symbol(x, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 32)) +>y : Symbol(y, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 38)) + + export class Point3d extends Point { +>Point3d : Symbol(Point3d, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) +>Point : Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) + + z: number; +>z : Symbol(z, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 9, 40)) + } + + export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; +>Origin3d : Symbol(Origin3d, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 14)) +>Point3d : Symbol(Point3d, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) +>x : Symbol(x, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 36)) +>y : Symbol(y, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 42)) +>z : Symbol(z, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 48)) + + export class Line{ +>Line : Symbol(Line, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 56)) +>TPoint : Symbol(TPoint, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 22)) +>Point : Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) + + constructor(public start: TPoint, public end: TPoint) { } +>start : Symbol(start, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 20)) +>TPoint : Symbol(TPoint, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 22)) +>end : Symbol(end, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 41)) +>TPoint : Symbol(TPoint, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 22)) + } +} + diff --git a/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types b/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types index 71ddde1965c72..a5cefcc521ebf 100644 --- a/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types @@ -1,55 +1,55 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 2, 24)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 3, 18)) +>y : number } export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 14)) ->Point : Point, Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 38)) +>y : number >0 : number export class Point3d extends Point { ->Point3d : Point3d, Symbol(Point3d, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) ->Point : Point, Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Point3d : Point3d +>Point : Point z: number; ->z : number, Symbol(z, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 9, 40)) +>z : number } export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; ->Origin3d : Point3d, Symbol(Origin3d, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 14)) ->Point3d : Point3d, Symbol(Point3d, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) +>Origin3d : Point3d +>Point3d : Point3d >{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } ->x : number, Symbol(x, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 36)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 42)) +>y : number >0 : number ->z : number, Symbol(z, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 48)) +>z : number >0 : number export class Line{ ->Line : Line, Symbol(Line, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 56)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 22)) ->Point : Point, Symbol(Point, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Line : Line +>TPoint : TPoint +>Point : Point constructor(public start: TPoint, public end: TPoint) { } ->start : TPoint, Symbol(start, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 20)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 22)) ->end : TPoint, Symbol(end, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 41)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportClassWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 22)) +>start : TPoint +>TPoint : TPoint +>end : TPoint +>TPoint : TPoint } } diff --git a/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.symbols b/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.symbols new file mode 100644 index 0000000000000..e1e433a892107 --- /dev/null +++ b/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts === +module A { +>A : Symbol(A, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 0)) + + class Point { +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 2, 17)) + + y: number; +>y : Symbol(y, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 3, 18)) + } + + export class points { +>points : Symbol(points, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 5, 5)) + + [idx: number]: Point; +>idx : Symbol(idx, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 9, 9)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) + + [idx: string]: Point; +>idx : Symbol(idx, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 10, 9)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) + } +} + + diff --git a/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.types b/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.types index cf6bcd1316c82..451db7f92a8ff 100644 --- a/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.types +++ b/tests/baselines/reference/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.types @@ -1,27 +1,27 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 0)) +>A : typeof A class Point { ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 2, 17)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 3, 18)) +>y : number } export class points { ->points : points, Symbol(points, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 5, 5)) +>points : points [idx: number]: Point; ->idx : number, Symbol(idx, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 9, 9)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) +>idx : number +>Point : Point [idx: string]: Point; ->idx : string, Symbol(idx, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 10, 9)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) +>idx : string +>Point : Point } } diff --git a/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.symbols b/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.symbols new file mode 100644 index 0000000000000..e1044bd2442d9 --- /dev/null +++ b/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.symbols @@ -0,0 +1,58 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts === +module A { +>A : Symbol(A, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 0)) + + class Point { +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 2, 17)) + + y: number; +>y : Symbol(y, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 3, 18)) + } + + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 14)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>x : Symbol(x, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 32)) +>y : Symbol(y, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 38)) + + export class Point3d extends Point { +>Point3d : Symbol(Point3d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + z: number; +>z : Symbol(z, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 9, 40)) + } + + export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; +>Origin3d : Symbol(Origin3d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 14)) +>Point3d : Symbol(Point3d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) +>x : Symbol(x, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 36)) +>y : Symbol(y, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 42)) +>z : Symbol(z, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 48)) + + export class Line{ +>Line : Symbol(Line, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 56)) +>TPoint : Symbol(TPoint, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 22)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + constructor(public start: TPoint, public end: TPoint) { } +>start : Symbol(start, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 20)) +>TPoint : Symbol(TPoint, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 22)) +>end : Symbol(end, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 41)) +>TPoint : Symbol(TPoint, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 22)) + + static fromorigin2d(p: Point): Line{ +>fromorigin2d : Symbol(Line.fromorigin2d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 65)) +>p : Symbol(p, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 18, 28)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Line : Symbol(Line, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 56)) +>Point : Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + return null; + } + } +} + diff --git a/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types b/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types index 1f3b2e17305bd..ba174d9bbba55 100644 --- a/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types +++ b/tests/baselines/reference/ExportClassWithInaccessibleTypeInTypeParameterConstraint.types @@ -1,62 +1,62 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 0)) +>A : typeof A class Point { ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 2, 17)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 3, 18)) +>y : number } export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 14)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 38)) +>y : number >0 : number export class Point3d extends Point { ->Point3d : Point3d, Symbol(Point3d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Point3d : Point3d +>Point : Point z: number; ->z : number, Symbol(z, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 9, 40)) +>z : number } export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; ->Origin3d : Point3d, Symbol(Origin3d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 14)) ->Point3d : Point3d, Symbol(Point3d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) +>Origin3d : Point3d +>Point3d : Point3d >{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } ->x : number, Symbol(x, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 36)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 42)) +>y : number >0 : number ->z : number, Symbol(z, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 48)) +>z : number >0 : number export class Line{ ->Line : Line, Symbol(Line, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 56)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 22)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Line : Line +>TPoint : TPoint +>Point : Point constructor(public start: TPoint, public end: TPoint) { } ->start : TPoint, Symbol(start, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 20)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 22)) ->end : TPoint, Symbol(end, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 41)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 22)) +>start : TPoint +>TPoint : TPoint +>end : TPoint +>TPoint : TPoint static fromorigin2d(p: Point): Line{ ->fromorigin2d : (p: Point) => Line, Symbol(Line.fromorigin2d, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 65)) ->p : Point, Symbol(p, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 18, 28)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) ->Line : Line, Symbol(Line, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 56)) ->Point : Point, Symbol(Point, Decl(ExportClassWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>fromorigin2d : (p: Point) => Line +>p : Point +>Point : Point +>Line : Line +>Point : Point return null; >null : null diff --git a/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.symbols b/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.symbols new file mode 100644 index 0000000000000..37b6da18c375c --- /dev/null +++ b/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts === +module A { +>A : Symbol(A, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 2, 24)) + + y: number; +>y : Symbol(y, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 3, 18)) + } + + export class Line { +>Line : Symbol(Line, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 5, 5)) + + constructor(public start: Point, public end: Point) { } +>start : Symbol(start, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 8, 20)) +>Point : Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) +>end : Symbol(end, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 8, 40)) +>Point : Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) + } + + export function fromOrigin(p: Point): Line { +>fromOrigin : Symbol(fromOrigin, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 9, 5)) +>p : Symbol(p, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 11, 31)) +>Point : Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) +>Line : Symbol(Line, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 5, 5)) + + return new Line({ x: 0, y: 0 }, p); +>Line : Symbol(Line, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 5, 5)) +>x : Symbol(x, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 12, 25)) +>y : Symbol(y, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 12, 31)) +>p : Symbol(p, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 11, 31)) + } +} diff --git a/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.types b/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.types index e9817cb6e5c02..60a6e122a78d3 100644 --- a/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.types +++ b/tests/baselines/reference/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.types @@ -1,41 +1,41 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 2, 24)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 3, 18)) +>y : number } export class Line { ->Line : Line, Symbol(Line, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 5, 5)) +>Line : Line constructor(public start: Point, public end: Point) { } ->start : Point, Symbol(start, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 8, 20)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) ->end : Point, Symbol(end, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 8, 40)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) +>start : Point +>Point : Point +>end : Point +>Point : Point } export function fromOrigin(p: Point): Line { ->fromOrigin : (p: Point) => Line, Symbol(fromOrigin, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 9, 5)) ->p : Point, Symbol(p, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 11, 31)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 0, 10)) ->Line : Line, Symbol(Line, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 5, 5)) +>fromOrigin : (p: Point) => Line +>p : Point +>Point : Point +>Line : Line return new Line({ x: 0, y: 0 }, p); >new Line({ x: 0, y: 0 }, p) : Line ->Line : typeof Line, Symbol(Line, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 5, 5)) +>Line : typeof Line >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 12, 25)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 12, 31)) +>y : number >0 : number ->p : Point, Symbol(p, Decl(ExportFunctionWithAccessibleTypesInParameterAndReturnTypeAnnotation.ts, 11, 31)) +>p : Point } } diff --git a/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.symbols b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.symbols new file mode 100644 index 0000000000000..41993ebf48fef --- /dev/null +++ b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts === +module A { +>A : Symbol(A, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 0)) + + class Point { +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 2, 17)) + + y: number; +>y : Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 3, 18)) + } + + export class Line { +>Line : Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 5, 5)) + + constructor(public start: Point, public end: Point) { } +>start : Symbol(start, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 8, 20)) +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) +>end : Symbol(end, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 8, 40)) +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) + } + + export function fromOrigin(p: Point): Line { +>fromOrigin : Symbol(fromOrigin, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 9, 5)) +>p : Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 11, 31)) +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) +>Line : Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 5, 5)) + + return new Line({ x: 0, y: 0 }, p); +>Line : Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 5, 5)) +>x : Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 12, 25)) +>y : Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 12, 31)) +>p : Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 11, 31)) + } +} diff --git a/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.types b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.types index bec6d3816bfdb..ba862ad77cf83 100644 --- a/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.types +++ b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.types @@ -1,41 +1,41 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 0)) +>A : typeof A class Point { ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 2, 17)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 3, 18)) +>y : number } export class Line { ->Line : Line, Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 5, 5)) +>Line : Line constructor(public start: Point, public end: Point) { } ->start : Point, Symbol(start, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 8, 20)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) ->end : Point, Symbol(end, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 8, 40)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) +>start : Point +>Point : Point +>end : Point +>Point : Point } export function fromOrigin(p: Point): Line { ->fromOrigin : (p: Point) => Line, Symbol(fromOrigin, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 9, 5)) ->p : Point, Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 11, 31)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 0, 10)) ->Line : Line, Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 5, 5)) +>fromOrigin : (p: Point) => Line +>p : Point +>Point : Point +>Line : Line return new Line({ x: 0, y: 0 }, p); >new Line({ x: 0, y: 0 }, p) : Line ->Line : typeof Line, Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 5, 5)) +>Line : typeof Line >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 12, 25)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 12, 31)) +>y : number >0 : number ->p : Point, Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInParameterTypeAnnotation.ts, 11, 31)) +>p : Point } } diff --git a/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.symbols b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.symbols new file mode 100644 index 0000000000000..77d5721579515 --- /dev/null +++ b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts === +module A { +>A : Symbol(A, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 2, 24)) + + y: number; +>y : Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 3, 18)) + } + + class Line { +>Line : Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 5, 5)) + + constructor(public start: Point, public end: Point) { } +>start : Symbol(start, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 8, 20)) +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) +>end : Symbol(end, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 8, 40)) +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) + } + + export function fromOrigin(p: Point): Line { +>fromOrigin : Symbol(fromOrigin, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 9, 5)) +>p : Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 11, 31)) +>Point : Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) +>Line : Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 5, 5)) + + return new Line({ x: 0, y: 0 }, p); +>Line : Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 5, 5)) +>x : Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 12, 25)) +>y : Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 12, 31)) +>p : Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 11, 31)) + } +} diff --git a/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.types b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.types index 09e28159ee6db..ef72f80ffde49 100644 --- a/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.types +++ b/tests/baselines/reference/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.types @@ -1,41 +1,41 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 2, 24)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 3, 18)) +>y : number } class Line { ->Line : Line, Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 5, 5)) +>Line : Line constructor(public start: Point, public end: Point) { } ->start : Point, Symbol(start, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 8, 20)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) ->end : Point, Symbol(end, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 8, 40)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) +>start : Point +>Point : Point +>end : Point +>Point : Point } export function fromOrigin(p: Point): Line { ->fromOrigin : (p: Point) => Line, Symbol(fromOrigin, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 9, 5)) ->p : Point, Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 11, 31)) ->Point : Point, Symbol(Point, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 0, 10)) ->Line : Line, Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 5, 5)) +>fromOrigin : (p: Point) => Line +>p : Point +>Point : Point +>Line : Line return new Line({ x: 0, y: 0 }, p); >new Line({ x: 0, y: 0 }, p) : Line ->Line : typeof Line, Symbol(Line, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 5, 5)) +>Line : typeof Line >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 12, 25)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 12, 31)) +>y : number >0 : number ->p : Point, Symbol(p, Decl(ExportFunctionWithInaccessibleTypesInReturnTypeAnnotation.ts, 11, 31)) +>p : Point } } diff --git a/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.symbols b/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.symbols new file mode 100644 index 0000000000000..31b978c85f934 --- /dev/null +++ b/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.symbols @@ -0,0 +1,56 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts === +module A { +>A : Symbol(A, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 0)) + + export interface Point { +>Point : Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 2, 28)) + + y: number; +>y : Symbol(y, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 3, 18)) + } + + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 14)) +>Point : Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>x : Symbol(x, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 32)) +>y : Symbol(y, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 38)) + + export interface Point3d extends Point { +>Point3d : Symbol(Point3d, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) +>Point : Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) + + z: number; +>z : Symbol(z, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 9, 44)) + } + + export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; +>Origin3d : Symbol(Origin3d, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 14)) +>Point3d : Symbol(Point3d, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) +>x : Symbol(x, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 36)) +>y : Symbol(y, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 42)) +>z : Symbol(z, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 48)) + + export interface Line{ +>Line : Symbol(Line, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 56)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) +>Point : Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) + + new (start: TPoint, end: TPoint); +>start : Symbol(start, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 13)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) +>end : Symbol(end, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 27)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) + + start: TPoint; +>start : Symbol(start, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 41)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) + + end: TPoint; +>end : Symbol(end, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 17, 22)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) + } +} + diff --git a/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types b/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types index 4c4866609c463..b4a331b9140e6 100644 --- a/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.types @@ -1,63 +1,63 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 0)) +>A : typeof A export interface Point { ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 2, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 3, 18)) +>y : number } export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 14)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 38)) +>y : number >0 : number export interface Point3d extends Point { ->Point3d : Point3d, Symbol(Point3d, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Point3d : Point3d +>Point : Point z: number; ->z : number, Symbol(z, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 9, 44)) +>z : number } export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; ->Origin3d : Point3d, Symbol(Origin3d, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 14)) ->Point3d : Point3d, Symbol(Point3d, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 7, 46)) +>Origin3d : Point3d +>Point3d : Point3d >{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } ->x : number, Symbol(x, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 36)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 42)) +>y : number >0 : number ->z : number, Symbol(z, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 48)) +>z : number >0 : number export interface Line{ ->Line : Line, Symbol(Line, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 13, 56)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 0, 10)) +>Line : Line +>TPoint : TPoint +>Point : Point new (start: TPoint, end: TPoint); ->start : TPoint, Symbol(start, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 13)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) ->end : TPoint, Symbol(end, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 27)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) +>start : TPoint +>TPoint : TPoint +>end : TPoint +>TPoint : TPoint start: TPoint; ->start : TPoint, Symbol(start, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 16, 41)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) +>start : TPoint +>TPoint : TPoint end: TPoint; ->end : TPoint, Symbol(end, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 17, 22)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithAccessibleTypesInTypeParameterConstraintsClassHeritageListMemberTypeAnnotations.ts, 15, 26)) +>end : TPoint +>TPoint : TPoint } } diff --git a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.symbols b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.symbols new file mode 100644 index 0000000000000..00f9025aa8ca0 --- /dev/null +++ b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts === +module A { +>A : Symbol(A, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 0)) + + interface Point { +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 2, 21)) + + y: number; +>y : Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 3, 18)) + } + + export interface points { +>points : Symbol(points, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 5, 5)) + + [idx: number]: Point; +>idx : Symbol(idx, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 9, 9)) +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) + + [idx: string]: Point; +>idx : Symbol(idx, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 10, 9)) +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) + } +} + + diff --git a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.types b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.types index 28d3b5f463c21..8be90b5946e5f 100644 --- a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.types +++ b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.types @@ -1,27 +1,27 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts === module A { ->A : any, Symbol(A, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 0)) +>A : any interface Point { ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 2, 21)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 3, 18)) +>y : number } export interface points { ->points : points, Symbol(points, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 5, 5)) +>points : points [idx: number]: Point; ->idx : number, Symbol(idx, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 9, 9)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) +>idx : number +>Point : Point [idx: string]: Point; ->idx : string, Symbol(idx, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 10, 9)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInIndexerTypeAnnotations.ts, 0, 10)) +>idx : string +>Point : Point } } diff --git a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.symbols b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.symbols new file mode 100644 index 0000000000000..7ee70a0c77bbe --- /dev/null +++ b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.symbols @@ -0,0 +1,56 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts === +module A { +>A : Symbol(A, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 0)) + + interface Point { +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 2, 21)) + + y: number; +>y : Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 3, 18)) + } + + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 14)) +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>x : Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 32)) +>y : Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 38)) + + export interface Point3d extends Point { +>Point3d : Symbol(Point3d, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + z: number; +>z : Symbol(z, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 9, 44)) + } + + export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; +>Origin3d : Symbol(Origin3d, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 14)) +>Point3d : Symbol(Point3d, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) +>x : Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 36)) +>y : Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 42)) +>z : Symbol(z, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 48)) + + export interface Line{ +>Line : Symbol(Line, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 56)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) +>Point : Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) + + new (start: TPoint, end: TPoint); +>start : Symbol(start, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 13)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) +>end : Symbol(end, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 27)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) + + start: TPoint; +>start : Symbol(start, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 41)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) + + end: TPoint; +>end : Symbol(end, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 18, 22)) +>TPoint : Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) + } +} + diff --git a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types index ca5a98c713d88..366e21b6472a5 100644 --- a/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types +++ b/tests/baselines/reference/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.types @@ -1,63 +1,63 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 0)) +>A : typeof A interface Point { ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 2, 21)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 3, 18)) +>y : number } export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 14)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 38)) +>y : number >0 : number export interface Point3d extends Point { ->Point3d : Point3d, Symbol(Point3d, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Point3d : Point3d +>Point : Point z: number; ->z : number, Symbol(z, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 9, 44)) +>z : number } export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; ->Origin3d : Point3d, Symbol(Origin3d, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 14)) ->Point3d : Point3d, Symbol(Point3d, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 7, 46)) +>Origin3d : Point3d +>Point3d : Point3d >{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } ->x : number, Symbol(x, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 36)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 42)) +>y : number >0 : number ->z : number, Symbol(z, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 48)) +>z : number >0 : number export interface Line{ ->Line : Line, Symbol(Line, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 13, 56)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) ->Point : Point, Symbol(Point, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 0, 10)) +>Line : Line +>TPoint : TPoint +>Point : Point new (start: TPoint, end: TPoint); ->start : TPoint, Symbol(start, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 13)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) ->end : TPoint, Symbol(end, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 27)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) +>start : TPoint +>TPoint : TPoint +>end : TPoint +>TPoint : TPoint start: TPoint; ->start : TPoint, Symbol(start, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 16, 41)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) +>start : TPoint +>TPoint : TPoint end: TPoint; ->end : TPoint, Symbol(end, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 18, 22)) ->TPoint : TPoint, Symbol(TPoint, Decl(ExportInterfaceWithInaccessibleTypeInTypeParameterConstraint.ts, 15, 26)) +>end : TPoint +>TPoint : TPoint } } diff --git a/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.symbols b/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.symbols new file mode 100644 index 0000000000000..acf6a1caef4c8 --- /dev/null +++ b/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.symbols @@ -0,0 +1,45 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportModuleWithAccessibleTypesOnItsExportedMembers.ts === +module A { +>A : Symbol(A, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 3, 20)) +>y : Symbol(y, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 3, 37)) + } + + export module B { +>B : Symbol(B, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 4, 5)) + + export var Origin: Point = new Point(0, 0); +>Origin : Symbol(Origin, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 7, 18)) +>Point : Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>Point : Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) + + export class Line { +>Line : Symbol(Line, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 7, 51)) + + constructor(start: Point, end: Point) { +>start : Symbol(start, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 10, 24)) +>Point : Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>end : Symbol(end, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 10, 37)) +>Point : Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) + + } + + static fromOrigin(p: Point) { +>fromOrigin : Symbol(Line.fromOrigin, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 12, 13)) +>p : Symbol(p, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 14, 30)) +>Point : Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) + + return new Line({ x: 0, y: 0 }, p); +>Line : Symbol(Line, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 7, 51)) +>x : Symbol(x, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 15, 33)) +>y : Symbol(y, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 15, 39)) +>p : Symbol(p, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 14, 30)) + } + } + } +} diff --git a/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.types b/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.types index 14c97fb092092..cd8526242faa3 100644 --- a/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.types +++ b/tests/baselines/reference/ExportModuleWithAccessibleTypesOnItsExportedMembers.types @@ -1,51 +1,51 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportModuleWithAccessibleTypesOnItsExportedMembers.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 3, 20)) ->y : number, Symbol(y, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 3, 37)) +>x : number +>y : number } export module B { ->B : typeof B, Symbol(B, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 4, 5)) +>B : typeof B export var Origin: Point = new Point(0, 0); ->Origin : Point, Symbol(Origin, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 7, 18)) ->Point : Point, Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>Origin : Point +>Point : Point >new Point(0, 0) : Point ->Point : typeof Point, Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>Point : typeof Point >0 : number >0 : number export class Line { ->Line : Line, Symbol(Line, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 7, 51)) +>Line : Line constructor(start: Point, end: Point) { ->start : Point, Symbol(start, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 10, 24)) ->Point : Point, Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) ->end : Point, Symbol(end, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 10, 37)) ->Point : Point, Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>start : Point +>Point : Point +>end : Point +>Point : Point } static fromOrigin(p: Point) { ->fromOrigin : (p: Point) => Line, Symbol(Line.fromOrigin, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 12, 13)) ->p : Point, Symbol(p, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 14, 30)) ->Point : Point, Symbol(Point, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 0, 10)) +>fromOrigin : (p: Point) => Line +>p : Point +>Point : Point return new Line({ x: 0, y: 0 }, p); >new Line({ x: 0, y: 0 }, p) : Line ->Line : typeof Line, Symbol(Line, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 7, 51)) +>Line : typeof Line >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 15, 33)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 15, 39)) +>y : number >0 : number ->p : Point, Symbol(p, Decl(ExportModuleWithAccessibleTypesOnItsExportedMembers.ts, 14, 30)) +>p : Point } } } diff --git a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.symbols b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.symbols new file mode 100644 index 0000000000000..dccc613aca931 --- /dev/null +++ b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts === +module A { +>A : Symbol(A, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 0)) + + class Point { +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 3, 20)) +>y : Symbol(y, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 3, 37)) + } + + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 6, 14)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +>x : Symbol(x, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 6, 32)) +>y : Symbol(y, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 6, 38)) + + export var Unity = { start: new Point(0, 0), end: new Point(1, 0) }; +>Unity : Symbol(Unity, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 8, 14)) +>start : Symbol(start, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 8, 24)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +>end : Symbol(end, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 8, 48)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +} + diff --git a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types index 7ae575da27b63..e08a4345a95ad 100644 --- a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.types @@ -1,35 +1,35 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 0)) +>A : typeof A class Point { ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 3, 20)) ->y : number, Symbol(y, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 3, 37)) +>x : number +>y : number } export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 6, 14)) ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 6, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 6, 38)) +>y : number >0 : number export var Unity = { start: new Point(0, 0), end: new Point(1, 0) }; ->Unity : { start: Point; end: Point; }, Symbol(Unity, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 8, 14)) +>Unity : { start: Point; end: Point; } >{ start: new Point(0, 0), end: new Point(1, 0) } : { start: Point; end: Point; } ->start : Point, Symbol(start, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 8, 24)) +>start : Point >new Point(0, 0) : Point ->Point : typeof Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +>Point : typeof Point >0 : number >0 : number ->end : Point, Symbol(end, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 8, 48)) +>end : Point >new Point(1, 0) : Point ->Point : typeof Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInMemberTypeAnnotations.ts, 0, 10)) +>Point : typeof Point >1 : number >0 : number } diff --git a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.symbols b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.symbols new file mode 100644 index 0000000000000..3c1ca13b61631 --- /dev/null +++ b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts === +module A { +>A : Symbol(A, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 0)) + + class Point { +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 3, 20)) +>y : Symbol(y, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 3, 37)) + } + + export var UnitSquare : { +>UnitSquare : Symbol(UnitSquare, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 6, 14)) + + top: { left: Point, right: Point }, +>top : Symbol(top, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 6, 29)) +>left : Symbol(left, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 7, 14)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) +>right : Symbol(right, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 7, 27)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) + + bottom: { left: Point, right: Point } +>bottom : Symbol(bottom, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 7, 43)) +>left : Symbol(left, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 8, 17)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) +>right : Symbol(right, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 8, 30)) +>Point : Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) + + } = null; +} diff --git a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types index 9cc12dc057daa..12a8cd974ad5b 100644 --- a/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types +++ b/tests/baselines/reference/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.types @@ -1,31 +1,31 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 0)) +>A : typeof A class Point { ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 3, 20)) ->y : number, Symbol(y, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 3, 37)) +>x : number +>y : number } export var UnitSquare : { ->UnitSquare : { top: { left: Point; right: Point; }; bottom: { left: Point; right: Point; }; }, Symbol(UnitSquare, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 6, 14)) +>UnitSquare : { top: { left: Point; right: Point; }; bottom: { left: Point; right: Point; }; } top: { left: Point, right: Point }, ->top : { left: Point; right: Point; }, Symbol(top, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 6, 29)) ->left : Point, Symbol(left, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 7, 14)) ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) ->right : Point, Symbol(right, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 7, 27)) ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) +>top : { left: Point; right: Point; } +>left : Point +>Point : Point +>right : Point +>Point : Point bottom: { left: Point, right: Point } ->bottom : { left: Point; right: Point; }, Symbol(bottom, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 7, 43)) ->left : Point, Symbol(left, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 8, 17)) ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) ->right : Point, Symbol(right, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 8, 30)) ->Point : Point, Symbol(Point, Decl(ExportObjectLiteralAndObjectTypeLiteralWithAccessibleTypesInNestedMemberTypeAnnotations.ts, 0, 10)) +>bottom : { left: Point; right: Point; } +>left : Point +>Point : Point +>right : Point +>Point : Point } = null; >null : null diff --git a/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.symbols b/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.symbols new file mode 100644 index 0000000000000..f56b2f526d45b --- /dev/null +++ b/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts === +module A { +>A : Symbol(A, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 0)) + + class B { +>B : Symbol(B, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 10)) + + id: number; +>id : Symbol(id, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 1, 13)) + } + + export var beez: Array; +>beez : Symbol(beez, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 5, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>B : Symbol(B, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 10)) + + export var beez2 = new Array(); +>beez2 : Symbol(beez2, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 6, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>B : Symbol(B, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 10)) +} diff --git a/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types b/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types index 961adc893d5f3..ba24bf9344217 100644 --- a/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types +++ b/tests/baselines/reference/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.types @@ -1,22 +1,22 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 0)) +>A : typeof A class B { ->B : B, Symbol(B, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 10)) +>B : B id: number; ->id : number, Symbol(id, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 1, 13)) +>id : number } export var beez: Array; ->beez : B[], Symbol(beez, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 5, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->B : B, Symbol(B, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 10)) +>beez : B[] +>Array : T[] +>B : B export var beez2 = new Array(); ->beez2 : B[], Symbol(beez2, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 6, 14)) +>beez2 : B[] >new Array() : B[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->B : B, Symbol(B, Decl(ExportVariableOfGenericTypeWithInaccessibleTypeAsTypeArgument.ts, 0, 10)) +>Array : ArrayConstructor +>B : B } diff --git a/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.symbols b/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.symbols new file mode 100644 index 0000000000000..55ba5fd0cf348 --- /dev/null +++ b/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.symbols @@ -0,0 +1,22 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportVariableWithAccessibleTypeInTypeAnnotation.ts === +module A { +>A : Symbol(A, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 0, 0)) + + export interface Point { +>Point : Symbol(Point, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 2, 28)) + + y: number; +>y : Symbol(y, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 3, 18)) + } + + // valid since Point is exported + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 8, 14)) +>Point : Symbol(Point, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 0, 10)) +>x : Symbol(x, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 8, 32)) +>y : Symbol(y, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 8, 38)) +} + diff --git a/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types b/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types index a0836493e3352..faf86ea698268 100644 --- a/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types +++ b/tests/baselines/reference/ExportVariableWithAccessibleTypeInTypeAnnotation.types @@ -1,25 +1,25 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportVariableWithAccessibleTypeInTypeAnnotation.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 0, 0)) +>A : typeof A export interface Point { ->Point : Point, Symbol(Point, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 2, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 3, 18)) +>y : number } // valid since Point is exported export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 8, 14)) ->Point : Point, Symbol(Point, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 8, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportVariableWithAccessibleTypeInTypeAnnotation.ts, 8, 38)) +>y : number >0 : number } diff --git a/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.symbols b/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.symbols new file mode 100644 index 0000000000000..ac43ccea789a3 --- /dev/null +++ b/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/internalModules/exportDeclarations/ExportVariableWithInaccessibleTypeInTypeAnnotation.ts === +module A { +>A : Symbol(A, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 0)) + + export interface Point { +>Point : Symbol(Point, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 2, 28)) + + y: number; +>y : Symbol(y, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 3, 18)) + } + + // valid since Point is exported + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 14)) +>Point : Symbol(Point, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 10)) +>x : Symbol(x, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 32)) +>y : Symbol(y, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 38)) + + interface Point3d extends Point { +>Point3d : Symbol(Point3d, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 46)) +>Point : Symbol(Point, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 10)) + + z: number; +>z : Symbol(z, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 10, 37)) + } + + // invalid Point3d is not exported + export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; +>Origin3d : Symbol(Origin3d, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 14)) +>Point3d : Symbol(Point3d, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 46)) +>x : Symbol(x, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 36)) +>y : Symbol(y, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 42)) +>z : Symbol(z, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 48)) +} + diff --git a/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types b/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types index aa245e4e578be..4ce1912d4411c 100644 --- a/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types +++ b/tests/baselines/reference/ExportVariableWithInaccessibleTypeInTypeAnnotation.types @@ -1,45 +1,45 @@ === tests/cases/conformance/internalModules/exportDeclarations/ExportVariableWithInaccessibleTypeInTypeAnnotation.ts === module A { ->A : typeof A, Symbol(A, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 0)) +>A : typeof A export interface Point { ->Point : Point, Symbol(Point, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 2, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 3, 18)) +>y : number } // valid since Point is exported export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 14)) ->Point : Point, Symbol(Point, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 38)) +>y : number >0 : number interface Point3d extends Point { ->Point3d : Point3d, Symbol(Point3d, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 46)) ->Point : Point, Symbol(Point, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 0, 10)) +>Point3d : Point3d +>Point : Point z: number; ->z : number, Symbol(z, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 10, 37)) +>z : number } // invalid Point3d is not exported export var Origin3d: Point3d = { x: 0, y: 0, z: 0 }; ->Origin3d : Point3d, Symbol(Origin3d, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 14)) ->Point3d : Point3d, Symbol(Point3d, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 8, 46)) +>Origin3d : Point3d +>Point3d : Point3d >{ x: 0, y: 0, z: 0 } : { x: number; y: number; z: number; } ->x : number, Symbol(x, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 36)) +>x : number >0 : number ->y : number, Symbol(y, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 42)) +>y : number >0 : number ->z : number, Symbol(z, Decl(ExportVariableWithInaccessibleTypeInTypeAnnotation.ts, 15, 48)) +>z : number >0 : number } diff --git a/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.symbols b/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.symbols new file mode 100644 index 0000000000000..96963246d26d9 --- /dev/null +++ b/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.symbols @@ -0,0 +1,52 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/function.ts === +module A { +>A : Symbol(A, Decl(function.ts, 0, 0)) + + export function Point() { +>Point : Symbol(Point, Decl(function.ts, 0, 10)) + + return { x: 0, y: 0 }; +>x : Symbol(x, Decl(function.ts, 2, 16)) +>y : Symbol(y, Decl(function.ts, 2, 22)) + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/module.ts === +module B { +>B : Symbol(B, Decl(module.ts, 0, 0)) + + export module Point { +>Point : Symbol(Point, Decl(module.ts, 0, 10)) + + export var Origin = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(module.ts, 2, 18)) +>x : Symbol(x, Decl(module.ts, 2, 29)) +>y : Symbol(y, Decl(module.ts, 2, 35)) + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/test.ts === +var fn: () => { x: number; y: number }; +>fn : Symbol(fn, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3)) +>x : Symbol(x, Decl(test.ts, 0, 15)) +>y : Symbol(y, Decl(test.ts, 0, 26)) + +var fn = A.Point; +>fn : Symbol(fn, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3)) +>A.Point : Symbol(A.Point, Decl(function.ts, 0, 10)) +>A : Symbol(A, Decl(function.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(function.ts, 0, 10)) + +var cl: { x: number; y: number; } +>cl : Symbol(cl, Decl(test.ts, 3, 3), Decl(test.ts, 4, 3)) +>x : Symbol(x, Decl(test.ts, 3, 9)) +>y : Symbol(y, Decl(test.ts, 3, 20)) + +var cl = B.Point.Origin; +>cl : Symbol(cl, Decl(test.ts, 3, 3), Decl(test.ts, 4, 3)) +>B.Point.Origin : Symbol(B.Point.Origin, Decl(module.ts, 2, 18)) +>B.Point : Symbol(B.Point, Decl(module.ts, 0, 10)) +>B : Symbol(B, Decl(module.ts, 0, 0)) +>Point : Symbol(B.Point, Decl(module.ts, 0, 10)) +>Origin : Symbol(B.Point.Origin, Decl(module.ts, 2, 18)) + diff --git a/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types b/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types index e63275fe58ff8..fe976cd0a3b68 100644 --- a/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types +++ b/tests/baselines/reference/FunctionAndModuleWithSameNameAndDifferentCommonRoot.types @@ -1,58 +1,58 @@ === tests/cases/conformance/internalModules/DeclarationMerging/function.ts === module A { ->A : typeof A, Symbol(A, Decl(function.ts, 0, 0)) +>A : typeof A export function Point() { ->Point : () => { x: number; y: number; }, Symbol(Point, Decl(function.ts, 0, 10)) +>Point : () => { x: number; y: number; } return { x: 0, y: 0 }; >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(function.ts, 2, 16)) +>x : number >0 : number ->y : number, Symbol(y, Decl(function.ts, 2, 22)) +>y : number >0 : number } } === tests/cases/conformance/internalModules/DeclarationMerging/module.ts === module B { ->B : typeof B, Symbol(B, Decl(module.ts, 0, 0)) +>B : typeof B export module Point { ->Point : typeof Point, Symbol(Point, Decl(module.ts, 0, 10)) +>Point : typeof Point export var Origin = { x: 0, y: 0 }; ->Origin : { x: number; y: number; }, Symbol(Origin, Decl(module.ts, 2, 18)) +>Origin : { x: number; y: number; } >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(module.ts, 2, 29)) +>x : number >0 : number ->y : number, Symbol(y, Decl(module.ts, 2, 35)) +>y : number >0 : number } } === tests/cases/conformance/internalModules/DeclarationMerging/test.ts === var fn: () => { x: number; y: number }; ->fn : () => { x: number; y: number; }, Symbol(fn, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3)) ->x : number, Symbol(x, Decl(test.ts, 0, 15)) ->y : number, Symbol(y, Decl(test.ts, 0, 26)) +>fn : () => { x: number; y: number; } +>x : number +>y : number var fn = A.Point; ->fn : () => { x: number; y: number; }, Symbol(fn, Decl(test.ts, 0, 3), Decl(test.ts, 1, 3)) ->A.Point : () => { x: number; y: number; }, Symbol(A.Point, Decl(function.ts, 0, 10)) ->A : typeof A, Symbol(A, Decl(function.ts, 0, 0)) ->Point : () => { x: number; y: number; }, Symbol(A.Point, Decl(function.ts, 0, 10)) +>fn : () => { x: number; y: number; } +>A.Point : () => { x: number; y: number; } +>A : typeof A +>Point : () => { x: number; y: number; } var cl: { x: number; y: number; } ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 3, 3), Decl(test.ts, 4, 3)) ->x : number, Symbol(x, Decl(test.ts, 3, 9)) ->y : number, Symbol(y, Decl(test.ts, 3, 20)) +>cl : { x: number; y: number; } +>x : number +>y : number var cl = B.Point.Origin; ->cl : { x: number; y: number; }, Symbol(cl, Decl(test.ts, 3, 3), Decl(test.ts, 4, 3)) ->B.Point.Origin : { x: number; y: number; }, Symbol(B.Point.Origin, Decl(module.ts, 2, 18)) ->B.Point : typeof B.Point, Symbol(B.Point, Decl(module.ts, 0, 10)) ->B : typeof B, Symbol(B, Decl(module.ts, 0, 0)) ->Point : typeof B.Point, Symbol(B.Point, Decl(module.ts, 0, 10)) ->Origin : { x: number; y: number; }, Symbol(B.Point.Origin, Decl(module.ts, 2, 18)) +>cl : { x: number; y: number; } +>B.Point.Origin : { x: number; y: number; } +>B.Point : typeof B.Point +>B : typeof B +>Point : typeof B.Point +>Origin : { x: number; y: number; } diff --git a/tests/baselines/reference/FunctionDeclaration2_es6.symbols b/tests/baselines/reference/FunctionDeclaration2_es6.symbols new file mode 100644 index 0000000000000..ad9241abaf1b3 --- /dev/null +++ b/tests/baselines/reference/FunctionDeclaration2_es6.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration2_es6.ts === +function f(yield) { +>f : Symbol(f, Decl(FunctionDeclaration2_es6.ts, 0, 0)) +>yield : Symbol(yield, Decl(FunctionDeclaration2_es6.ts, 0, 11)) +} diff --git a/tests/baselines/reference/FunctionDeclaration2_es6.types b/tests/baselines/reference/FunctionDeclaration2_es6.types index eefe4de1464cf..f23d9cf6840eb 100644 --- a/tests/baselines/reference/FunctionDeclaration2_es6.types +++ b/tests/baselines/reference/FunctionDeclaration2_es6.types @@ -1,5 +1,5 @@ === tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration2_es6.ts === function f(yield) { ->f : (yield: any) => void, Symbol(f, Decl(FunctionDeclaration2_es6.ts, 0, 0)) ->yield : any, Symbol(yield, Decl(FunctionDeclaration2_es6.ts, 0, 11)) +>f : (yield: any) => void +>yield : any } diff --git a/tests/baselines/reference/FunctionDeclaration4_es6.symbols b/tests/baselines/reference/FunctionDeclaration4_es6.symbols new file mode 100644 index 0000000000000..badb1695cdcb9 --- /dev/null +++ b/tests/baselines/reference/FunctionDeclaration4_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration4_es6.ts === +function yield() { +>yield : Symbol(yield, Decl(FunctionDeclaration4_es6.ts, 0, 0)) +} diff --git a/tests/baselines/reference/FunctionDeclaration4_es6.types b/tests/baselines/reference/FunctionDeclaration4_es6.types index 9cf71703bc8a9..e4f102a8f706a 100644 --- a/tests/baselines/reference/FunctionDeclaration4_es6.types +++ b/tests/baselines/reference/FunctionDeclaration4_es6.types @@ -1,4 +1,4 @@ === tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration4_es6.ts === function yield() { ->yield : () => void, Symbol(yield, Decl(FunctionDeclaration4_es6.ts, 0, 0)) +>yield : () => void } diff --git a/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.symbols b/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.symbols new file mode 100644 index 0000000000000..72eb0340eb201 --- /dev/null +++ b/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/ModuleAndEnumWithSameNameAndCommonRoot.ts === +module enumdule { +>enumdule : Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) + + export class Point { +>Point : Symbol(Point, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 17)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 3, 20)) +>y : Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 3, 37)) + } +} + +enum enumdule { +>enumdule : Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) + + Red, Blue +>Red : Symbol(enumdule.Red, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 7, 15)) +>Blue : Symbol(enumdule.Blue, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 8, 8)) +} + +var x: enumdule; +>x : Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 11, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 12, 3)) +>enumdule : Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) + +var x = enumdule.Red; +>x : Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 11, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 12, 3)) +>enumdule.Red : Symbol(enumdule.Red, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 7, 15)) +>enumdule : Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) +>Red : Symbol(enumdule.Red, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 7, 15)) + +var y: { x: number; y: number }; +>y : Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 15, 3)) +>x : Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 8)) +>y : Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 19)) + +var y = new enumdule.Point(0, 0); +>y : Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 15, 3)) +>enumdule.Point : Symbol(enumdule.Point, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 17)) +>enumdule : Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) +>Point : Symbol(enumdule.Point, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 17)) + diff --git a/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.types b/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.types index 4c5d815dfcf49..343b69954b025 100644 --- a/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.types +++ b/tests/baselines/reference/ModuleAndEnumWithSameNameAndCommonRoot.types @@ -1,45 +1,45 @@ === tests/cases/conformance/internalModules/DeclarationMerging/ModuleAndEnumWithSameNameAndCommonRoot.ts === module enumdule { ->enumdule : typeof enumdule, Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) +>enumdule : typeof enumdule export class Point { ->Point : Point, Symbol(Point, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 17)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 3, 20)) ->y : number, Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 3, 37)) +>x : number +>y : number } } enum enumdule { ->enumdule : enumdule, Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) +>enumdule : enumdule Red, Blue ->Red : enumdule, Symbol(enumdule.Red, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 7, 15)) ->Blue : enumdule, Symbol(enumdule.Blue, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 8, 8)) +>Red : enumdule +>Blue : enumdule } var x: enumdule; ->x : enumdule, Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 11, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 12, 3)) ->enumdule : enumdule, Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) +>x : enumdule +>enumdule : enumdule var x = enumdule.Red; ->x : enumdule, Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 11, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 12, 3)) ->enumdule.Red : enumdule, Symbol(enumdule.Red, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 7, 15)) ->enumdule : typeof enumdule, Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) ->Red : enumdule, Symbol(enumdule.Red, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 7, 15)) +>x : enumdule +>enumdule.Red : enumdule +>enumdule : typeof enumdule +>Red : enumdule var y: { x: number; y: number }; ->y : { x: number; y: number; }, Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 15, 3)) ->x : number, Symbol(x, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 8)) ->y : number, Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 19)) +>y : { x: number; y: number; } +>x : number +>y : number var y = new enumdule.Point(0, 0); ->y : { x: number; y: number; }, Symbol(y, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 14, 3), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 15, 3)) +>y : { x: number; y: number; } >new enumdule.Point(0, 0) : enumdule.Point ->enumdule.Point : typeof enumdule.Point, Symbol(enumdule.Point, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 17)) ->enumdule : typeof enumdule, Symbol(enumdule, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 0), Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 5, 1)) ->Point : typeof enumdule.Point, Symbol(enumdule.Point, Decl(ModuleAndEnumWithSameNameAndCommonRoot.ts, 0, 17)) +>enumdule.Point : typeof enumdule.Point +>enumdule : typeof enumdule +>Point : typeof enumdule.Point >0 : number >0 : number diff --git a/tests/baselines/reference/Protected5.symbols b/tests/baselines/reference/Protected5.symbols new file mode 100644 index 0000000000000..a4c91729ed345 --- /dev/null +++ b/tests/baselines/reference/Protected5.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts === +class C { +>C : Symbol(C, Decl(Protected5.ts, 0, 0)) + + protected static m() { } +>m : Symbol(C.m, Decl(Protected5.ts, 0, 9)) +} diff --git a/tests/baselines/reference/Protected5.types b/tests/baselines/reference/Protected5.types index f6586a5b81c06..7ef0be949a7c5 100644 --- a/tests/baselines/reference/Protected5.types +++ b/tests/baselines/reference/Protected5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/Protected/Protected5.ts === class C { ->C : C, Symbol(C, Decl(Protected5.ts, 0, 0)) +>C : C protected static m() { } ->m : () => void, Symbol(C.m, Decl(Protected5.ts, 0, 9)) +>m : () => void } diff --git a/tests/baselines/reference/Protected8.symbols b/tests/baselines/reference/Protected8.symbols new file mode 100644 index 0000000000000..502e68bb9c226 --- /dev/null +++ b/tests/baselines/reference/Protected8.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts === +interface I { +>I : Symbol(I, Decl(Protected8.ts, 0, 0)) + + protected +>protected : Symbol(protected, Decl(Protected8.ts, 0, 13)) + + p +>p : Symbol(p, Decl(Protected8.ts, 1, 12)) +} diff --git a/tests/baselines/reference/Protected8.types b/tests/baselines/reference/Protected8.types index 25b9ee44b8b80..f29be486eec25 100644 --- a/tests/baselines/reference/Protected8.types +++ b/tests/baselines/reference/Protected8.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript5/Protected/Protected8.ts === interface I { ->I : I, Symbol(I, Decl(Protected8.ts, 0, 0)) +>I : I protected ->protected : any, Symbol(protected, Decl(Protected8.ts, 0, 13)) +>protected : any p ->p : any, Symbol(p, Decl(Protected8.ts, 1, 12)) +>p : any } diff --git a/tests/baselines/reference/Protected9.symbols b/tests/baselines/reference/Protected9.symbols new file mode 100644 index 0000000000000..27ce91344e492 --- /dev/null +++ b/tests/baselines/reference/Protected9.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts === +class C { +>C : Symbol(C, Decl(Protected9.ts, 0, 0)) + + constructor(protected p) { } +>p : Symbol(p, Decl(Protected9.ts, 1, 15)) +} diff --git a/tests/baselines/reference/Protected9.types b/tests/baselines/reference/Protected9.types index d3dd2f46e65f5..d4b6e2fff824a 100644 --- a/tests/baselines/reference/Protected9.types +++ b/tests/baselines/reference/Protected9.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/Protected/Protected9.ts === class C { ->C : C, Symbol(C, Decl(Protected9.ts, 0, 0)) +>C : C constructor(protected p) { } ->p : any, Symbol(p, Decl(Protected9.ts, 1, 15)) +>p : any } diff --git a/tests/baselines/reference/TupleType1.symbols b/tests/baselines/reference/TupleType1.symbols new file mode 100644 index 0000000000000..9f4b2c78a8e44 --- /dev/null +++ b/tests/baselines/reference/TupleType1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts === +var v: [number] +>v : Symbol(v, Decl(TupleType1.ts, 0, 3)) + diff --git a/tests/baselines/reference/TupleType1.types b/tests/baselines/reference/TupleType1.types index 83e6711e2e5de..39fa32d5dcac9 100644 --- a/tests/baselines/reference/TupleType1.types +++ b/tests/baselines/reference/TupleType1.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType1.ts === var v: [number] ->v : [number], Symbol(v, Decl(TupleType1.ts, 0, 3)) +>v : [number] diff --git a/tests/baselines/reference/TupleType2.symbols b/tests/baselines/reference/TupleType2.symbols new file mode 100644 index 0000000000000..5ef9209147aa0 --- /dev/null +++ b/tests/baselines/reference/TupleType2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts === +var v: [number, string] +>v : Symbol(v, Decl(TupleType2.ts, 0, 3)) + diff --git a/tests/baselines/reference/TupleType2.types b/tests/baselines/reference/TupleType2.types index 5691baadd0694..0f35f60786ce2 100644 --- a/tests/baselines/reference/TupleType2.types +++ b/tests/baselines/reference/TupleType2.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/TupleTypes/TupleType2.ts === var v: [number, string] ->v : [number, string], Symbol(v, Decl(TupleType2.ts, 0, 3)) +>v : [number, string] diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.symbols b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.symbols new file mode 100644 index 0000000000000..c9e2c124e9d0a --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.symbols @@ -0,0 +1,96 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts === +module A { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) + + export class Point { +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 1, 24)) + + y: number; +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 2, 18)) + } +} + +module A { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) + + class Point { +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 7, 10)) + + fromCarthesian(p: A.Point) { +>fromCarthesian : Symbol(fromCarthesian, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 8, 17)) +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 9, 23)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 10)) + + return { x: p.x, y: p.y }; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 10, 20)) +>p.x : Symbol(Point.x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 1, 24)) +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 9, 23)) +>x : Symbol(Point.x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 1, 24)) +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 10, 28)) +>p.y : Symbol(Point.y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 2, 18)) +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 9, 23)) +>y : Symbol(Point.y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 2, 18)) + } + } +} + +// ensure merges as expected +var p: { x: number; y: number; }; +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 3)) +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 8)) +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 19)) + +var p: A.Point; +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 3)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 10)) + +module X.Y.Z { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 23, 1)) +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 25, 10)) +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 26, 21)) + + export class Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 14)) + + length: number; +>length : Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 20, 23)) + } +} + +module X { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 23, 1)) + + export module Y { +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 25, 10)) + + export module Z { +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 26, 21)) + + class Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 27, 25)) + + name: string; +>name : Symbol(name, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 28, 24)) + } + } + } +} + +// ensure merges as expected +var l: { length: number; } +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 36, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 37, 3)) +>length : Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 36, 8)) + +var l: X.Y.Z.Line; +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 36, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 37, 3)) +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 23, 1)) +>Y : Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 25, 10)) +>Z : Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 26, 21)) +>Line : Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 14)) + + diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.types index f253f897382ad..25c23b8327347 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.types @@ -1,82 +1,82 @@ === tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts === module A { ->A : typeof A, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 1, 24)) +>x : number y: number; ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 2, 18)) +>y : number } } module A { ->A : typeof A, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) +>A : typeof A class Point { ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 7, 10)) +>Point : Point fromCarthesian(p: A.Point) { ->fromCarthesian : (p: A.Point) => { x: number; y: number; }, Symbol(fromCarthesian, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 8, 17)) ->p : A.Point, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 9, 23)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) ->Point : A.Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 10)) +>fromCarthesian : (p: A.Point) => { x: number; y: number; } +>p : A.Point +>A : any +>Point : A.Point return { x: p.x, y: p.y }; >{ x: p.x, y: p.y } : { x: number; y: number; } ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 10, 20)) ->p.x : number, Symbol(Point.x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 1, 24)) ->p : A.Point, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 9, 23)) ->x : number, Symbol(Point.x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 1, 24)) ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 10, 28)) ->p.y : number, Symbol(Point.y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 2, 18)) ->p : A.Point, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 9, 23)) ->y : number, Symbol(Point.y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 2, 18)) +>x : number +>p.x : number +>p : A.Point +>x : number +>y : number +>p.y : number +>p : A.Point +>y : number } } } // ensure merges as expected var p: { x: number; y: number; }; ->p : { x: number; y: number; }, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 3)) ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 8)) ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p: A.Point; ->p : { x: number; y: number; }, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 16, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 3)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 5, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 0, 10)) +>p : { x: number; y: number; } +>A : any +>Point : A.Point module X.Y.Z { ->X : typeof X, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 23, 1)) ->Y : typeof Y, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 25, 10)) ->Z : typeof Z, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 26, 21)) +>X : typeof X +>Y : typeof Y +>Z : typeof Z export class Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 14)) +>Line : Line length: number; ->length : number, Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 20, 23)) +>length : number } } module X { ->X : typeof X, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 23, 1)) +>X : typeof X export module Y { ->Y : typeof Y, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 25, 10)) +>Y : typeof Y export module Z { ->Z : typeof Z, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 26, 21)) +>Z : typeof Z class Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 27, 25)) +>Line : Line name: string; ->name : string, Symbol(name, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 28, 24)) +>name : string } } } @@ -84,14 +84,14 @@ module X { // ensure merges as expected var l: { length: number; } ->l : { length: number; }, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 36, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 37, 3)) ->length : number, Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 36, 8)) +>l : { length: number; } +>length : number var l: X.Y.Z.Line; ->l : { length: number; }, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 36, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 37, 3)) ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 17, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 23, 1)) ->Y : any, Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 25, 10)) ->Z : any, Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 26, 21)) ->Line : X.Y.Z.Line, Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedClassesOfTheSameName.ts, 19, 14)) +>l : { length: number; } +>X : any +>Y : any +>Z : any +>Line : X.Y.Z.Line diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.symbols b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.symbols new file mode 100644 index 0000000000000..2fcf3c4b09ecd --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.symbols @@ -0,0 +1,103 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts === +module A { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) + + export interface Point { +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 1, 28)) + + y: number; +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 2, 18)) + + toCarth(): Point; +>toCarth : Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 3, 18)) +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + } +} + +module A { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) + + interface Point { +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 8, 10)) + + fromCarth(): Point; +>fromCarth : Symbol(fromCarth, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 9, 21)) +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 8, 10)) + } +} + +// ensure merges as expected +var p: { x: number; y: number; toCarth(): A.Point; }; +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 3)) +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 8)) +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 19)) +>toCarth : Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 30)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + +var p: A.Point; +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 3)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + +module X.Y.Z { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 22, 1)) +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 24, 10)) +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 20)) + + export interface Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 14)) + + new (start: A.Point, end: A.Point); +>start : Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 20, 13)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>end : Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 20, 28)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + } +} + +module X { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 22, 1)) + + export module Y.Z { +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 24, 10)) +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 20)) + + interface Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 23)) + + start: A.Point; +>start : Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 26, 24)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + + end: A.Point; +>end : Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 27, 27)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + } + } +} + +// ensure merges as expected +var l: { new (s: A.Point, e: A.Point); } +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 35, 3)) +>s : Symbol(s, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 14)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>e : Symbol(e, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 25)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) + +var l: X.Y.Z.Line; +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 35, 3)) +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 22, 1)) +>Y : Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 24, 10)) +>Z : Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 20)) +>Line : Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 14)) + diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.types index d16e446a0822e..309ad35d54f92 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.types @@ -1,103 +1,103 @@ === tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts === module A { ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>A : any export interface Point { ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 1, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 2, 18)) +>y : number toCarth(): Point; ->toCarth : () => Point, Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 3, 18)) ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>toCarth : () => Point +>Point : Point } } module A { ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) +>A : any interface Point { ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 8, 10)) +>Point : Point fromCarth(): Point; ->fromCarth : () => Point, Symbol(fromCarth, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 9, 21)) ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 8, 10)) +>fromCarth : () => Point +>Point : Point } } // ensure merges as expected var p: { x: number; y: number; toCarth(): A.Point; }; ->p : { x: number; y: number; toCarth(): A.Point; }, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 3)) ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 8)) ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 19)) ->toCarth : () => A.Point, Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 30)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>p : { x: number; y: number; toCarth(): A.Point; } +>x : number +>y : number +>toCarth : () => A.Point +>A : any +>Point : A.Point var p: A.Point; ->p : { x: number; y: number; toCarth(): A.Point; }, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 3)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>p : { x: number; y: number; toCarth(): A.Point; } +>A : any +>Point : A.Point module X.Y.Z { ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 22, 1)) ->Y : any, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 24, 10)) ->Z : any, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 20)) +>X : any +>Y : any +>Z : any export interface Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 14)) +>Line : Line new (start: A.Point, end: A.Point); ->start : A.Point, Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 20, 13)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) ->end : A.Point, Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 20, 28)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>start : A.Point +>A : any +>Point : A.Point +>end : A.Point +>A : any +>Point : A.Point } } module X { ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 22, 1)) +>X : any export module Y.Z { ->Y : any, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 24, 10)) ->Z : any, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 20)) +>Y : any +>Z : any interface Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 23)) +>Line : Line start: A.Point; ->start : A.Point, Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 26, 24)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>start : A.Point +>A : any +>Point : A.Point end: A.Point; ->end : A.Point, Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 27, 27)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>end : A.Point +>A : any +>Point : A.Point } } } // ensure merges as expected var l: { new (s: A.Point, e: A.Point); } ->l : new (s: A.Point, e: A.Point) => any, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 35, 3)) ->s : A.Point, Symbol(s, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 14)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) ->e : A.Point, Symbol(e, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 25)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 0, 10)) +>l : new (s: A.Point, e: A.Point) => any +>s : A.Point +>A : any +>Point : A.Point +>e : A.Point +>A : any +>Point : A.Point var l: X.Y.Z.Line; ->l : new (s: A.Point, e: A.Point) => any, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 35, 3)) ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 22, 1)) ->Y : any, Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 24, 10)) ->Z : any, Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 25, 20)) ->Line : X.Y.Z.Line, Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedAndNonExportedInterfacesOfTheSameName.ts, 18, 14)) +>l : new (s: A.Point, e: A.Point) => any +>X : any +>Y : any +>Z : any +>Line : X.Y.Z.Line diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.symbols b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.symbols new file mode 100644 index 0000000000000..b7402952dff61 --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.symbols @@ -0,0 +1,120 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/part1.ts === +module A { +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) + + export interface Point { +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(part1.ts, 1, 28)) + + y: number; +>y : Symbol(y, Decl(part1.ts, 2, 18)) + } + + export module Utils { +>Utils : Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) + + export function mirror(p: T) { +>mirror : Symbol(mirror, Decl(part1.ts, 6, 25)) +>T : Symbol(T, Decl(part1.ts, 7, 31)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) +>p : Symbol(p, Decl(part1.ts, 7, 48)) +>T : Symbol(T, Decl(part1.ts, 7, 31)) + + return { x: p.y, y: p.x }; +>x : Symbol(x, Decl(part1.ts, 8, 20)) +>p.y : Symbol(Point.y, Decl(part1.ts, 2, 18)) +>p : Symbol(p, Decl(part1.ts, 7, 48)) +>y : Symbol(Point.y, Decl(part1.ts, 2, 18)) +>y : Symbol(y, Decl(part1.ts, 8, 28)) +>p.x : Symbol(Point.x, Decl(part1.ts, 1, 28)) +>p : Symbol(p, Decl(part1.ts, 7, 48)) +>x : Symbol(Point.x, Decl(part1.ts, 1, 28)) + } + } + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(part1.ts, 11, 14)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) +>x : Symbol(x, Decl(part1.ts, 11, 32)) +>y : Symbol(y, Decl(part1.ts, 11, 38)) +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/part2.ts === +module A { +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) + + // not a collision, since we don't export + var Origin: string = "0,0"; +>Origin : Symbol(Origin, Decl(part2.ts, 2, 7)) + + export module Utils { +>Utils : Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) + + export class Plane { +>Plane : Symbol(Plane, Decl(part2.ts, 4, 25)) + + constructor(public tl: Point, public br: Point) { } +>tl : Symbol(tl, Decl(part2.ts, 6, 24)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) +>br : Symbol(br, Decl(part2.ts, 6, 41)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) + } + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/part3.ts === +// test the merging actually worked + +var o: { x: number; y: number }; +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>x : Symbol(x, Decl(part3.ts, 2, 8)) +>y : Symbol(y, Decl(part3.ts, 2, 19)) + +var o: A.Point; +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(part1.ts, 0, 10)) + +var o = A.Origin; +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Origin : Symbol(A.Origin, Decl(part1.ts, 11, 14)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Origin : Symbol(A.Origin, Decl(part1.ts, 11, 14)) + +var o = A.Utils.mirror(o); +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Utils.mirror : Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) +>A.Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>mirror : Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) + +var p: { tl: A.Point; br: A.Point }; +>p : Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>tl : Symbol(tl, Decl(part3.ts, 7, 8)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(part1.ts, 0, 10)) +>br : Symbol(br, Decl(part3.ts, 7, 21)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(part1.ts, 0, 10)) + +var p: A.Utils.Plane; +>p : Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>Plane : Symbol(A.Utils.Plane, Decl(part2.ts, 4, 25)) + +var p = new A.Utils.Plane(o, { x: 1, y: 1 }); +>p : Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>A.Utils.Plane : Symbol(A.Utils.Plane, Decl(part2.ts, 4, 25)) +>A.Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>Plane : Symbol(A.Utils.Plane, Decl(part2.ts, 4, 25)) +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>x : Symbol(x, Decl(part3.ts, 9, 30)) +>y : Symbol(y, Decl(part3.ts, 9, 36)) + + diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types index e09d6fd52b2c0..af3c0776b56f7 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types @@ -1,69 +1,69 @@ === tests/cases/conformance/internalModules/DeclarationMerging/part1.ts === module A { ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>A : typeof A export interface Point { ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(part1.ts, 1, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(part1.ts, 2, 18)) +>y : number } export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>Utils : typeof Utils export function mirror(p: T) { ->mirror : (p: T) => { x: number; y: number; }, Symbol(mirror, Decl(part1.ts, 6, 25)) ->T : T, Symbol(T, Decl(part1.ts, 7, 31)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) ->p : T, Symbol(p, Decl(part1.ts, 7, 48)) ->T : T, Symbol(T, Decl(part1.ts, 7, 31)) +>mirror : (p: T) => { x: number; y: number; } +>T : T +>Point : Point +>p : T +>T : T return { x: p.y, y: p.x }; >{ x: p.y, y: p.x } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part1.ts, 8, 20)) ->p.y : number, Symbol(Point.y, Decl(part1.ts, 2, 18)) ->p : T, Symbol(p, Decl(part1.ts, 7, 48)) ->y : number, Symbol(Point.y, Decl(part1.ts, 2, 18)) ->y : number, Symbol(y, Decl(part1.ts, 8, 28)) ->p.x : number, Symbol(Point.x, Decl(part1.ts, 1, 28)) ->p : T, Symbol(p, Decl(part1.ts, 7, 48)) ->x : number, Symbol(Point.x, Decl(part1.ts, 1, 28)) +>x : number +>p.y : number +>p : T +>y : number +>y : number +>p.x : number +>p : T +>x : number } } export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(part1.ts, 11, 14)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part1.ts, 11, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(part1.ts, 11, 38)) +>y : number >0 : number } === tests/cases/conformance/internalModules/DeclarationMerging/part2.ts === module A { ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>A : typeof A // not a collision, since we don't export var Origin: string = "0,0"; ->Origin : string, Symbol(Origin, Decl(part2.ts, 2, 7)) +>Origin : string >"0,0" : string export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) +>Utils : typeof Utils export class Plane { ->Plane : Plane, Symbol(Plane, Decl(part2.ts, 4, 25)) +>Plane : Plane constructor(public tl: Point, public br: Point) { } ->tl : Point, Symbol(tl, Decl(part2.ts, 6, 24)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) ->br : Point, Symbol(br, Decl(part2.ts, 6, 41)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) +>tl : Point +>Point : Point +>br : Point +>Point : Point } } } @@ -72,59 +72,59 @@ module A { // test the merging actually worked var o: { x: number; y: number }; ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) ->x : number, Symbol(x, Decl(part3.ts, 2, 8)) ->y : number, Symbol(y, Decl(part3.ts, 2, 19)) +>o : { x: number; y: number; } +>x : number +>y : number var o: A.Point; ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Point : A.Point, Symbol(A.Point, Decl(part1.ts, 0, 10)) +>o : { x: number; y: number; } +>A : any +>Point : A.Point var o = A.Origin; ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) ->A.Origin : A.Point, Symbol(A.Origin, Decl(part1.ts, 11, 14)) ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Origin : A.Point, Symbol(A.Origin, Decl(part1.ts, 11, 14)) +>o : { x: number; y: number; } +>A.Origin : A.Point +>A : typeof A +>Origin : A.Point var o = A.Utils.mirror(o); ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>o : { x: number; y: number; } >A.Utils.mirror(o) : { x: number; y: number; } ->A.Utils.mirror : (p: T) => { x: number; y: number; }, Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) ->A.Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) ->mirror : (p: T) => { x: number; y: number; }, Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Utils.mirror : (p: T) => { x: number; y: number; } +>A.Utils : typeof A.Utils +>A : typeof A +>Utils : typeof A.Utils +>mirror : (p: T) => { x: number; y: number; } +>o : { x: number; y: number; } var p: { tl: A.Point; br: A.Point }; ->p : { tl: A.Point; br: A.Point; }, Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) ->tl : A.Point, Symbol(tl, Decl(part3.ts, 7, 8)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Point : A.Point, Symbol(A.Point, Decl(part1.ts, 0, 10)) ->br : A.Point, Symbol(br, Decl(part3.ts, 7, 21)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Point : A.Point, Symbol(A.Point, Decl(part1.ts, 0, 10)) +>p : { tl: A.Point; br: A.Point; } +>tl : A.Point +>A : any +>Point : A.Point +>br : A.Point +>A : any +>Point : A.Point var p: A.Utils.Plane; ->p : { tl: A.Point; br: A.Point; }, Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Utils : any, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) ->Plane : A.Utils.Plane, Symbol(A.Utils.Plane, Decl(part2.ts, 4, 25)) +>p : { tl: A.Point; br: A.Point; } +>A : any +>Utils : any +>Plane : A.Utils.Plane var p = new A.Utils.Plane(o, { x: 1, y: 1 }); ->p : { tl: A.Point; br: A.Point; }, Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>p : { tl: A.Point; br: A.Point; } >new A.Utils.Plane(o, { x: 1, y: 1 }) : A.Utils.Plane ->A.Utils.Plane : typeof A.Utils.Plane, Symbol(A.Utils.Plane, Decl(part2.ts, 4, 25)) ->A.Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 2, 31)) ->Plane : typeof A.Utils.Plane, Symbol(A.Utils.Plane, Decl(part2.ts, 4, 25)) ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Utils.Plane : typeof A.Utils.Plane +>A.Utils : typeof A.Utils +>A : typeof A +>Utils : typeof A.Utils +>Plane : typeof A.Utils.Plane +>o : { x: number; y: number; } >{ x: 1, y: 1 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part3.ts, 9, 30)) +>x : number >1 : number ->y : number, Symbol(y, Decl(part3.ts, 9, 36)) +>y : number >1 : number diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.symbols b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.symbols new file mode 100644 index 0000000000000..3e8fa64501fc3 --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.symbols @@ -0,0 +1,112 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts === +module A { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) + + export interface Point { +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + + x: number; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 1, 28)) + + y: number; +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 2, 18)) + + toCarth(): Point; +>toCarth : Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 3, 18)) +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + } +} + +module A { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) + + export interface Point { +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + + fromCarth(): Point; +>fromCarth : Symbol(fromCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 9, 28)) +>Point : Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + } +} + +// ensure merges as expected +var p: { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; }; +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 3)) +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 8)) +>y : Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 19)) +>toCarth : Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 30)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>fromCarth : Symbol(fromCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 50)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + +var p: A.Point; +>p : Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 3)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + +module X.Y.Z { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 22, 1)) +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 24, 10)) +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 20)) + + export interface Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 14), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 23)) + + new (start: A.Point, end: A.Point); +>start : Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 20, 13)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>end : Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 20, 28)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + } +} + +module X { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 22, 1)) + + export module Y.Z { +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 24, 10)) +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 20)) + + export interface Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 14), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 23)) + + start: A.Point; +>start : Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 26, 31)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + + end: A.Point; +>end : Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 27, 27)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + } + } +} + +// ensure merges as expected +var l: { start: A.Point; end: A.Point; new (s: A.Point, e: A.Point); } +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 35, 3)) +>start : Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 8)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>end : Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 24)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>s : Symbol(s, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 44)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>e : Symbol(e, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 55)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>Point : Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) + +var l: X.Y.Z.Line; +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 35, 3)) +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 22, 1)) +>Y : Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 24, 10)) +>Z : Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 20)) +>Line : Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 14), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 23)) + diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.types index d75f723068fdf..5795beda4a93a 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.types @@ -1,112 +1,112 @@ === tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts === module A { ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>A : any export interface Point { ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 1, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 2, 18)) +>y : number toCarth(): Point; ->toCarth : () => Point, Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 3, 18)) ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>toCarth : () => Point +>Point : Point } } module A { ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) +>A : any export interface Point { ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>Point : Point fromCarth(): Point; ->fromCarth : () => Point, Symbol(fromCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 9, 28)) ->Point : Point, Symbol(Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>fromCarth : () => Point +>Point : Point } } // ensure merges as expected var p: { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; }; ->p : { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; }, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 3)) ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 8)) ->y : number, Symbol(y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 19)) ->toCarth : () => A.Point, Symbol(toCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 30)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) ->fromCarth : () => A.Point, Symbol(fromCarth, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 50)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>p : { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; } +>x : number +>y : number +>toCarth : () => A.Point +>A : any +>Point : A.Point +>fromCarth : () => A.Point +>A : any +>Point : A.Point var p: A.Point; ->p : { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; }, Symbol(p, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 15, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 3)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>p : { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; } +>A : any +>Point : A.Point module X.Y.Z { ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 22, 1)) ->Y : any, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 24, 10)) ->Z : any, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 20)) +>X : any +>Y : any +>Z : any export interface Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 14), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 23)) +>Line : Line new (start: A.Point, end: A.Point); ->start : A.Point, Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 20, 13)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) ->end : A.Point, Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 20, 28)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>start : A.Point +>A : any +>Point : A.Point +>end : A.Point +>A : any +>Point : A.Point } } module X { ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 22, 1)) +>X : any export module Y.Z { ->Y : any, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 24, 10)) ->Z : any, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 20)) +>Y : any +>Z : any export interface Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 14), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 23)) +>Line : Line start: A.Point; ->start : A.Point, Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 26, 31)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>start : A.Point +>A : any +>Point : A.Point end: A.Point; ->end : A.Point, Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 27, 27)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>end : A.Point +>A : any +>Point : A.Point } } } // ensure merges as expected var l: { start: A.Point; end: A.Point; new (s: A.Point, e: A.Point); } ->l : { new (s: A.Point, e: A.Point): any; start: A.Point; end: A.Point; }, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 35, 3)) ->start : A.Point, Symbol(start, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 8)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) ->end : A.Point, Symbol(end, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 24)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) ->s : A.Point, Symbol(s, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 44)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) ->e : A.Point, Symbol(e, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 55)) ->A : any, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 6, 1)) ->Point : A.Point, Symbol(A.Point, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 0, 10), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 8, 10)) +>l : { new (s: A.Point, e: A.Point): any; start: A.Point; end: A.Point; } +>start : A.Point +>A : any +>Point : A.Point +>end : A.Point +>A : any +>Point : A.Point +>s : A.Point +>A : any +>Point : A.Point +>e : A.Point +>A : any +>Point : A.Point var l: X.Y.Z.Line; ->l : { new (s: A.Point, e: A.Point): any; start: A.Point; end: A.Point; }, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 34, 3), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 35, 3)) ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 16, 15), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 22, 1)) ->Y : any, Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 9), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 24, 10)) ->Z : any, Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 11), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 20)) ->Line : X.Y.Z.Line, Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 18, 14), Decl(TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts, 25, 23)) +>l : { new (s: A.Point, e: A.Point): any; start: A.Point; end: A.Point; } +>X : any +>Y : any +>Z : any +>Line : X.Y.Z.Line diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.symbols b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.symbols new file mode 100644 index 0000000000000..e8187771695ab --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.symbols @@ -0,0 +1,76 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts === +module A.B { +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 2, 1)) +>B : Symbol(B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 9)) + + export var x: number; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 1, 14)) +} + +module A{ +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 2, 1)) + + module B { +>B : Symbol(B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 4, 9)) + + export var x: string; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 6, 18)) + } +} + +// ensure the right var decl is exported +var x: number; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 11, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 3)) + +var x = A.B.x; +>x : Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 11, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 3)) +>A.B.x : Symbol(A.B.x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 1, 14)) +>A.B : Symbol(A.B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 9)) +>A : Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 2, 1)) +>B : Symbol(A.B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 9)) +>x : Symbol(A.B.x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 1, 14)) + +module X.Y.Z { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 14), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 18, 1)) +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 9), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 20, 10)) +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 11)) + + export class Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 14)) + + length: number; +>length : Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 15, 23)) + } +} + +module X { +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 14), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 18, 1)) + + export module Y { +>Y : Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 9), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 20, 10)) + + module Z { +>Z : Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 21, 21)) + + export class Line { +>Line : Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 22, 18)) + + name: string; +>name : Symbol(name, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 23, 31)) + } + } + } +} + +// make sure merging works as expected +var l: { length: number }; +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 31, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 32, 3)) +>length : Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 31, 8)) + +var l: X.Y.Z.Line; +>l : Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 31, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 32, 3)) +>X : Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 14), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 18, 1)) +>Y : Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 9), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 20, 10)) +>Z : Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 11)) +>Line : Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 14)) + diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.types index 33b28ffbacd6d..a19e083990141 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.types @@ -1,62 +1,62 @@ === tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts === module A.B { ->A : typeof A, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 2, 1)) ->B : typeof B, Symbol(B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 9)) +>A : typeof A +>B : typeof B export var x: number; ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 1, 14)) +>x : number } module A{ ->A : typeof A, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 2, 1)) +>A : typeof A module B { ->B : typeof B, Symbol(B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 4, 9)) +>B : typeof B export var x: string; ->x : string, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 6, 18)) +>x : string } } // ensure the right var decl is exported var x: number; ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 11, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 3)) +>x : number var x = A.B.x; ->x : number, Symbol(x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 11, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 3)) ->A.B.x : number, Symbol(A.B.x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 1, 14)) ->A.B : typeof A.B, Symbol(A.B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 9)) ->A : typeof A, Symbol(A, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 0), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 2, 1)) ->B : typeof A.B, Symbol(A.B, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 0, 9)) ->x : number, Symbol(A.B.x, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 1, 14)) +>x : number +>A.B.x : number +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>x : number module X.Y.Z { ->X : typeof X, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 14), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 18, 1)) ->Y : typeof Y, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 9), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 20, 10)) ->Z : typeof Z, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 11)) +>X : typeof X +>Y : typeof Y +>Z : typeof Z export class Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 14)) +>Line : Line length: number; ->length : number, Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 15, 23)) +>length : number } } module X { ->X : typeof X, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 14), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 18, 1)) +>X : typeof X export module Y { ->Y : typeof Y, Symbol(Y, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 9), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 20, 10)) +>Y : typeof Y module Z { ->Z : typeof Z, Symbol(Z, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 21, 21)) +>Z : typeof Z export class Line { ->Line : Line, Symbol(Line, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 22, 18)) +>Line : Line name: string; ->name : string, Symbol(name, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 23, 31)) +>name : string } } } @@ -64,13 +64,13 @@ module X { // make sure merging works as expected var l: { length: number }; ->l : { length: number; }, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 31, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 32, 3)) ->length : number, Symbol(length, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 31, 8)) +>l : { length: number; } +>length : number var l: X.Y.Z.Line; ->l : { length: number; }, Symbol(l, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 31, 3), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 32, 3)) ->X : any, Symbol(X, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 12, 14), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 18, 1)) ->Y : any, Symbol(X.Y, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 9), Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 20, 10)) ->Z : any, Symbol(X.Y.Z, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 11)) ->Line : X.Y.Z.Line, Symbol(X.Y.Z.Line, Decl(TwoInternalModulesThatMergeEachWithExportedModulesOfTheSameName.ts, 14, 14)) +>l : { length: number; } +>X : any +>Y : any +>Z : any +>Line : X.Y.Z.Line diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.symbols b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.symbols new file mode 100644 index 0000000000000..5c533273fa68e --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.symbols @@ -0,0 +1,76 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/part1.ts === +module Root { +>Root : Symbol(Root, Decl(part1.ts, 0, 0)) + + export module A { +>A : Symbol(A, Decl(part1.ts, 0, 13)) + + export interface Point { +>Point : Symbol(Point, Decl(part1.ts, 1, 21)) + + x: number; +>x : Symbol(x, Decl(part1.ts, 2, 32)) + + y: number; +>y : Symbol(y, Decl(part1.ts, 3, 22)) + } + + export module Utils { +>Utils : Symbol(Utils, Decl(part1.ts, 5, 9)) + + export function mirror(p: T) { +>mirror : Symbol(mirror, Decl(part1.ts, 7, 29)) +>T : Symbol(T, Decl(part1.ts, 8, 35)) +>Point : Symbol(Point, Decl(part1.ts, 1, 21)) +>p : Symbol(p, Decl(part1.ts, 8, 52)) +>T : Symbol(T, Decl(part1.ts, 8, 35)) + + return { x: p.y, y: p.x }; +>x : Symbol(x, Decl(part1.ts, 9, 24)) +>p.y : Symbol(Point.y, Decl(part1.ts, 3, 22)) +>p : Symbol(p, Decl(part1.ts, 8, 52)) +>y : Symbol(Point.y, Decl(part1.ts, 3, 22)) +>y : Symbol(y, Decl(part1.ts, 9, 32)) +>p.x : Symbol(Point.x, Decl(part1.ts, 2, 32)) +>p : Symbol(p, Decl(part1.ts, 8, 52)) +>x : Symbol(Point.x, Decl(part1.ts, 2, 32)) + } + } + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/part2.ts === +module otherRoot { +>otherRoot : Symbol(otherRoot, Decl(part2.ts, 0, 0)) + + export module A { +>A : Symbol(A, Decl(part2.ts, 0, 18)) + + // have to be fully qualified since in different root + export var Origin: Root.A.Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(part2.ts, 3, 18)) +>Root : Symbol(Root, Decl(part1.ts, 0, 0)) +>A : Symbol(Root.A, Decl(part1.ts, 0, 13)) +>Point : Symbol(Root.A.Point, Decl(part1.ts, 1, 21)) +>x : Symbol(x, Decl(part2.ts, 3, 43)) +>y : Symbol(y, Decl(part2.ts, 3, 49)) + + export module Utils { +>Utils : Symbol(Utils, Decl(part2.ts, 3, 57)) + + export class Plane { +>Plane : Symbol(Plane, Decl(part2.ts, 5, 29)) + + constructor(public tl: Root.A.Point, public br: Root.A.Point) { } +>tl : Symbol(tl, Decl(part2.ts, 7, 28)) +>Root : Symbol(Root, Decl(part1.ts, 0, 0)) +>A : Symbol(Root.A, Decl(part1.ts, 0, 13)) +>Point : Symbol(Root.A.Point, Decl(part1.ts, 1, 21)) +>br : Symbol(br, Decl(part2.ts, 7, 52)) +>Root : Symbol(Root, Decl(part1.ts, 0, 0)) +>A : Symbol(Root.A, Decl(part1.ts, 0, 13)) +>Point : Symbol(Root.A.Point, Decl(part1.ts, 1, 21)) + } + } + } +} diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types index 53f0982a91cd7..e005522ddfc45 100644 --- a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types @@ -1,40 +1,40 @@ === tests/cases/conformance/internalModules/DeclarationMerging/part1.ts === module Root { ->Root : typeof Root, Symbol(Root, Decl(part1.ts, 0, 0)) +>Root : typeof Root export module A { ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 13)) +>A : typeof A export interface Point { ->Point : Point, Symbol(Point, Decl(part1.ts, 1, 21)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(part1.ts, 2, 32)) +>x : number y: number; ->y : number, Symbol(y, Decl(part1.ts, 3, 22)) +>y : number } export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(part1.ts, 5, 9)) +>Utils : typeof Utils export function mirror(p: T) { ->mirror : (p: T) => { x: number; y: number; }, Symbol(mirror, Decl(part1.ts, 7, 29)) ->T : T, Symbol(T, Decl(part1.ts, 8, 35)) ->Point : Point, Symbol(Point, Decl(part1.ts, 1, 21)) ->p : T, Symbol(p, Decl(part1.ts, 8, 52)) ->T : T, Symbol(T, Decl(part1.ts, 8, 35)) +>mirror : (p: T) => { x: number; y: number; } +>T : T +>Point : Point +>p : T +>T : T return { x: p.y, y: p.x }; >{ x: p.y, y: p.x } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part1.ts, 9, 24)) ->p.y : number, Symbol(Point.y, Decl(part1.ts, 3, 22)) ->p : T, Symbol(p, Decl(part1.ts, 8, 52)) ->y : number, Symbol(Point.y, Decl(part1.ts, 3, 22)) ->y : number, Symbol(y, Decl(part1.ts, 9, 32)) ->p.x : number, Symbol(Point.x, Decl(part1.ts, 2, 32)) ->p : T, Symbol(p, Decl(part1.ts, 8, 52)) ->x : number, Symbol(Point.x, Decl(part1.ts, 2, 32)) +>x : number +>p.y : number +>p : T +>y : number +>y : number +>p.x : number +>p : T +>x : number } } } @@ -42,38 +42,38 @@ module Root { === tests/cases/conformance/internalModules/DeclarationMerging/part2.ts === module otherRoot { ->otherRoot : typeof otherRoot, Symbol(otherRoot, Decl(part2.ts, 0, 0)) +>otherRoot : typeof otherRoot export module A { ->A : typeof A, Symbol(A, Decl(part2.ts, 0, 18)) +>A : typeof A // have to be fully qualified since in different root export var Origin: Root.A.Point = { x: 0, y: 0 }; ->Origin : Root.A.Point, Symbol(Origin, Decl(part2.ts, 3, 18)) ->Root : any, Symbol(Root, Decl(part1.ts, 0, 0)) ->A : any, Symbol(Root.A, Decl(part1.ts, 0, 13)) ->Point : Root.A.Point, Symbol(Root.A.Point, Decl(part1.ts, 1, 21)) +>Origin : Root.A.Point +>Root : any +>A : any +>Point : Root.A.Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part2.ts, 3, 43)) +>x : number >0 : number ->y : number, Symbol(y, Decl(part2.ts, 3, 49)) +>y : number >0 : number export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(part2.ts, 3, 57)) +>Utils : typeof Utils export class Plane { ->Plane : Plane, Symbol(Plane, Decl(part2.ts, 5, 29)) +>Plane : Plane constructor(public tl: Root.A.Point, public br: Root.A.Point) { } ->tl : Root.A.Point, Symbol(tl, Decl(part2.ts, 7, 28)) ->Root : any, Symbol(Root, Decl(part1.ts, 0, 0)) ->A : any, Symbol(Root.A, Decl(part1.ts, 0, 13)) ->Point : Root.A.Point, Symbol(Root.A.Point, Decl(part1.ts, 1, 21)) ->br : Root.A.Point, Symbol(br, Decl(part2.ts, 7, 52)) ->Root : any, Symbol(Root, Decl(part1.ts, 0, 0)) ->A : any, Symbol(Root.A, Decl(part1.ts, 0, 13)) ->Point : Root.A.Point, Symbol(Root.A.Point, Decl(part1.ts, 1, 21)) +>tl : Root.A.Point +>Root : any +>A : any +>Point : Root.A.Point +>br : Root.A.Point +>Root : any +>A : any +>Point : Root.A.Point } } } diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.symbols b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.symbols new file mode 100644 index 0000000000000..34abd4ecd65d5 --- /dev/null +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.symbols @@ -0,0 +1,117 @@ +=== tests/cases/conformance/internalModules/DeclarationMerging/part1.ts === +module A { +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) + + export interface Point { +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) + + x: number; +>x : Symbol(x, Decl(part1.ts, 1, 28)) + + y: number; +>y : Symbol(y, Decl(part1.ts, 2, 18)) + } + + export module Utils { +>Utils : Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) + + export function mirror(p: T) { +>mirror : Symbol(mirror, Decl(part1.ts, 6, 25)) +>T : Symbol(T, Decl(part1.ts, 7, 31)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) +>p : Symbol(p, Decl(part1.ts, 7, 48)) +>T : Symbol(T, Decl(part1.ts, 7, 31)) + + return { x: p.y, y: p.x }; +>x : Symbol(x, Decl(part1.ts, 8, 20)) +>p.y : Symbol(Point.y, Decl(part1.ts, 2, 18)) +>p : Symbol(p, Decl(part1.ts, 7, 48)) +>y : Symbol(Point.y, Decl(part1.ts, 2, 18)) +>y : Symbol(y, Decl(part1.ts, 8, 28)) +>p.x : Symbol(Point.x, Decl(part1.ts, 1, 28)) +>p : Symbol(p, Decl(part1.ts, 7, 48)) +>x : Symbol(Point.x, Decl(part1.ts, 1, 28)) + } + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/part2.ts === +module A { +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) + + export var Origin: Point = { x: 0, y: 0 }; +>Origin : Symbol(Origin, Decl(part2.ts, 1, 14)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) +>x : Symbol(x, Decl(part2.ts, 1, 32)) +>y : Symbol(y, Decl(part2.ts, 1, 38)) + + export module Utils { +>Utils : Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) + + export class Plane { +>Plane : Symbol(Plane, Decl(part2.ts, 3, 25)) + + constructor(public tl: Point, public br: Point) { } +>tl : Symbol(tl, Decl(part2.ts, 5, 24)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) +>br : Symbol(br, Decl(part2.ts, 5, 41)) +>Point : Symbol(Point, Decl(part1.ts, 0, 10)) + } + } +} + +=== tests/cases/conformance/internalModules/DeclarationMerging/part3.ts === +// test the merging actually worked + +var o: { x: number; y: number }; +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>x : Symbol(x, Decl(part3.ts, 2, 8)) +>y : Symbol(y, Decl(part3.ts, 2, 19)) + +var o: A.Point; +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(part1.ts, 0, 10)) + +var o = A.Origin; +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Origin : Symbol(A.Origin, Decl(part2.ts, 1, 14)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Origin : Symbol(A.Origin, Decl(part2.ts, 1, 14)) + +var o = A.Utils.mirror(o); +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Utils.mirror : Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) +>A.Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>mirror : Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) + +var p: { tl: A.Point; br: A.Point }; +>p : Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>tl : Symbol(tl, Decl(part3.ts, 7, 8)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(part1.ts, 0, 10)) +>br : Symbol(br, Decl(part3.ts, 7, 21)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Point : Symbol(A.Point, Decl(part1.ts, 0, 10)) + +var p: A.Utils.Plane; +>p : Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>Plane : Symbol(A.Utils.Plane, Decl(part2.ts, 3, 25)) + +var p = new A.Utils.Plane(o, { x: 1, y: 1 }); +>p : Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>A.Utils.Plane : Symbol(A.Utils.Plane, Decl(part2.ts, 3, 25)) +>A.Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>A : Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>Utils : Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>Plane : Symbol(A.Utils.Plane, Decl(part2.ts, 3, 25)) +>o : Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>x : Symbol(x, Decl(part3.ts, 9, 30)) +>y : Symbol(y, Decl(part3.ts, 9, 36)) + + diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types index 09092db9829c2..e2dd1f400f4d8 100644 --- a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types @@ -1,65 +1,65 @@ === tests/cases/conformance/internalModules/DeclarationMerging/part1.ts === module A { ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>A : typeof A export interface Point { ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(part1.ts, 1, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(part1.ts, 2, 18)) +>y : number } export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>Utils : typeof Utils export function mirror(p: T) { ->mirror : (p: T) => { x: number; y: number; }, Symbol(mirror, Decl(part1.ts, 6, 25)) ->T : T, Symbol(T, Decl(part1.ts, 7, 31)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) ->p : T, Symbol(p, Decl(part1.ts, 7, 48)) ->T : T, Symbol(T, Decl(part1.ts, 7, 31)) +>mirror : (p: T) => { x: number; y: number; } +>T : T +>Point : Point +>p : T +>T : T return { x: p.y, y: p.x }; >{ x: p.y, y: p.x } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part1.ts, 8, 20)) ->p.y : number, Symbol(Point.y, Decl(part1.ts, 2, 18)) ->p : T, Symbol(p, Decl(part1.ts, 7, 48)) ->y : number, Symbol(Point.y, Decl(part1.ts, 2, 18)) ->y : number, Symbol(y, Decl(part1.ts, 8, 28)) ->p.x : number, Symbol(Point.x, Decl(part1.ts, 1, 28)) ->p : T, Symbol(p, Decl(part1.ts, 7, 48)) ->x : number, Symbol(Point.x, Decl(part1.ts, 1, 28)) +>x : number +>p.y : number +>p : T +>y : number +>y : number +>p.x : number +>p : T +>x : number } } } === tests/cases/conformance/internalModules/DeclarationMerging/part2.ts === module A { ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) +>A : typeof A export var Origin: Point = { x: 0, y: 0 }; ->Origin : Point, Symbol(Origin, Decl(part2.ts, 1, 14)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) +>Origin : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part2.ts, 1, 32)) +>x : number >0 : number ->y : number, Symbol(y, Decl(part2.ts, 1, 38)) +>y : number >0 : number export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) +>Utils : typeof Utils export class Plane { ->Plane : Plane, Symbol(Plane, Decl(part2.ts, 3, 25)) +>Plane : Plane constructor(public tl: Point, public br: Point) { } ->tl : Point, Symbol(tl, Decl(part2.ts, 5, 24)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) ->br : Point, Symbol(br, Decl(part2.ts, 5, 41)) ->Point : Point, Symbol(Point, Decl(part1.ts, 0, 10)) +>tl : Point +>Point : Point +>br : Point +>Point : Point } } } @@ -68,59 +68,59 @@ module A { // test the merging actually worked var o: { x: number; y: number }; ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) ->x : number, Symbol(x, Decl(part3.ts, 2, 8)) ->y : number, Symbol(y, Decl(part3.ts, 2, 19)) +>o : { x: number; y: number; } +>x : number +>y : number var o: A.Point; ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Point : A.Point, Symbol(A.Point, Decl(part1.ts, 0, 10)) +>o : { x: number; y: number; } +>A : any +>Point : A.Point var o = A.Origin; ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) ->A.Origin : A.Point, Symbol(A.Origin, Decl(part2.ts, 1, 14)) ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Origin : A.Point, Symbol(A.Origin, Decl(part2.ts, 1, 14)) +>o : { x: number; y: number; } +>A.Origin : A.Point +>A : typeof A +>Origin : A.Point var o = A.Utils.mirror(o); ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>o : { x: number; y: number; } >A.Utils.mirror(o) : { x: number; y: number; } ->A.Utils.mirror : (p: T) => { x: number; y: number; }, Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) ->A.Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) ->mirror : (p: T) => { x: number; y: number; }, Symbol(A.Utils.mirror, Decl(part1.ts, 6, 25)) ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Utils.mirror : (p: T) => { x: number; y: number; } +>A.Utils : typeof A.Utils +>A : typeof A +>Utils : typeof A.Utils +>mirror : (p: T) => { x: number; y: number; } +>o : { x: number; y: number; } var p: { tl: A.Point; br: A.Point }; ->p : { tl: A.Point; br: A.Point; }, Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) ->tl : A.Point, Symbol(tl, Decl(part3.ts, 7, 8)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Point : A.Point, Symbol(A.Point, Decl(part1.ts, 0, 10)) ->br : A.Point, Symbol(br, Decl(part3.ts, 7, 21)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Point : A.Point, Symbol(A.Point, Decl(part1.ts, 0, 10)) +>p : { tl: A.Point; br: A.Point; } +>tl : A.Point +>A : any +>Point : A.Point +>br : A.Point +>A : any +>Point : A.Point var p: A.Utils.Plane; ->p : { tl: A.Point; br: A.Point; }, Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) ->A : any, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Utils : any, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) ->Plane : A.Utils.Plane, Symbol(A.Utils.Plane, Decl(part2.ts, 3, 25)) +>p : { tl: A.Point; br: A.Point; } +>A : any +>Utils : any +>Plane : A.Utils.Plane var p = new A.Utils.Plane(o, { x: 1, y: 1 }); ->p : { tl: A.Point; br: A.Point; }, Symbol(p, Decl(part3.ts, 7, 3), Decl(part3.ts, 8, 3), Decl(part3.ts, 9, 3)) +>p : { tl: A.Point; br: A.Point; } >new A.Utils.Plane(o, { x: 1, y: 1 }) : A.Utils.Plane ->A.Utils.Plane : typeof A.Utils.Plane, Symbol(A.Utils.Plane, Decl(part2.ts, 3, 25)) ->A.Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) ->A : typeof A, Symbol(A, Decl(part1.ts, 0, 0), Decl(part2.ts, 0, 0)) ->Utils : typeof A.Utils, Symbol(A.Utils, Decl(part1.ts, 4, 5), Decl(part2.ts, 1, 46)) ->Plane : typeof A.Utils.Plane, Symbol(A.Utils.Plane, Decl(part2.ts, 3, 25)) ->o : { x: number; y: number; }, Symbol(o, Decl(part3.ts, 2, 3), Decl(part3.ts, 3, 3), Decl(part3.ts, 4, 3), Decl(part3.ts, 5, 3)) +>A.Utils.Plane : typeof A.Utils.Plane +>A.Utils : typeof A.Utils +>A : typeof A +>Utils : typeof A.Utils +>Plane : typeof A.Utils.Plane +>o : { x: number; y: number; } >{ x: 1, y: 1 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(part3.ts, 9, 30)) +>x : number >1 : number ->y : number, Symbol(y, Decl(part3.ts, 9, 36)) +>y : number >1 : number diff --git a/tests/baselines/reference/TypeGuardWithArrayUnion.symbols b/tests/baselines/reference/TypeGuardWithArrayUnion.symbols new file mode 100644 index 0000000000000..57bcdf70e795f --- /dev/null +++ b/tests/baselines/reference/TypeGuardWithArrayUnion.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts === +class Message { +>Message : Symbol(Message, Decl(TypeGuardWithArrayUnion.ts, 0, 0)) + + value: string; +>value : Symbol(value, Decl(TypeGuardWithArrayUnion.ts, 0, 15)) +} + +function saySize(message: Message | Message[]) { +>saySize : Symbol(saySize, Decl(TypeGuardWithArrayUnion.ts, 2, 1)) +>message : Symbol(message, Decl(TypeGuardWithArrayUnion.ts, 4, 17)) +>Message : Symbol(Message, Decl(TypeGuardWithArrayUnion.ts, 0, 0)) +>Message : Symbol(Message, Decl(TypeGuardWithArrayUnion.ts, 0, 0)) + + if (message instanceof Array) { +>message : Symbol(message, Decl(TypeGuardWithArrayUnion.ts, 4, 17)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + + return message.length; // Should have type Message[] here +>message.length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>message : Symbol(message, Decl(TypeGuardWithArrayUnion.ts, 4, 17)) +>length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) + } +} + diff --git a/tests/baselines/reference/TypeGuardWithArrayUnion.types b/tests/baselines/reference/TypeGuardWithArrayUnion.types index 8a81a762fd783..557e305ef74d0 100644 --- a/tests/baselines/reference/TypeGuardWithArrayUnion.types +++ b/tests/baselines/reference/TypeGuardWithArrayUnion.types @@ -1,26 +1,26 @@ === tests/cases/conformance/expressions/typeGuards/TypeGuardWithArrayUnion.ts === class Message { ->Message : Message, Symbol(Message, Decl(TypeGuardWithArrayUnion.ts, 0, 0)) +>Message : Message value: string; ->value : string, Symbol(value, Decl(TypeGuardWithArrayUnion.ts, 0, 15)) +>value : string } function saySize(message: Message | Message[]) { ->saySize : (message: Message | Message[]) => number, Symbol(saySize, Decl(TypeGuardWithArrayUnion.ts, 2, 1)) ->message : Message | Message[], Symbol(message, Decl(TypeGuardWithArrayUnion.ts, 4, 17)) ->Message : Message, Symbol(Message, Decl(TypeGuardWithArrayUnion.ts, 0, 0)) ->Message : Message, Symbol(Message, Decl(TypeGuardWithArrayUnion.ts, 0, 0)) +>saySize : (message: Message | Message[]) => number +>message : Message | Message[] +>Message : Message +>Message : Message if (message instanceof Array) { >message instanceof Array : boolean ->message : Message | Message[], Symbol(message, Decl(TypeGuardWithArrayUnion.ts, 4, 17)) ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>message : Message | Message[] +>Array : ArrayConstructor return message.length; // Should have type Message[] here ->message.length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) ->message : Message[], Symbol(message, Decl(TypeGuardWithArrayUnion.ts, 4, 17)) ->length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>message.length : number +>message : Message[] +>length : number } } diff --git a/tests/baselines/reference/TypeGuardWithEnumUnion.symbols b/tests/baselines/reference/TypeGuardWithEnumUnion.symbols new file mode 100644 index 0000000000000..92b83f3c56da0 --- /dev/null +++ b/tests/baselines/reference/TypeGuardWithEnumUnion.symbols @@ -0,0 +1,88 @@ +=== tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts === +enum Color { R, G, B } +>Color : Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) +>R : Symbol(Color.R, Decl(TypeGuardWithEnumUnion.ts, 0, 12)) +>G : Symbol(Color.G, Decl(TypeGuardWithEnumUnion.ts, 0, 15)) +>B : Symbol(Color.B, Decl(TypeGuardWithEnumUnion.ts, 0, 18)) + +function f1(x: Color | string) { +>f1 : Symbol(f1, Decl(TypeGuardWithEnumUnion.ts, 0, 22)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) +>Color : Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) + + if (typeof x === "number") { +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) + + var y = x; +>y : Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 4, 11), Decl(TypeGuardWithEnumUnion.ts, 5, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) + + var y: Color; +>y : Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 4, 11), Decl(TypeGuardWithEnumUnion.ts, 5, 11)) +>Color : Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) + } + else { + var z = x; +>z : Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 8, 11), Decl(TypeGuardWithEnumUnion.ts, 9, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) + + var z: string; +>z : Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 8, 11), Decl(TypeGuardWithEnumUnion.ts, 9, 11)) + } +} + +function f2(x: Color | string | string[]) { +>f2 : Symbol(f2, Decl(TypeGuardWithEnumUnion.ts, 11, 1)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>Color : Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) + + if (typeof x === "object") { +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var y = x; +>y : Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 15, 11), Decl(TypeGuardWithEnumUnion.ts, 16, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var y: string[]; +>y : Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 15, 11), Decl(TypeGuardWithEnumUnion.ts, 16, 11)) + } + if (typeof x === "number") { +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var z = x; +>z : Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 19, 11), Decl(TypeGuardWithEnumUnion.ts, 20, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var z: Color; +>z : Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 19, 11), Decl(TypeGuardWithEnumUnion.ts, 20, 11)) +>Color : Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) + } + else { + var w = x; +>w : Symbol(w, Decl(TypeGuardWithEnumUnion.ts, 23, 11), Decl(TypeGuardWithEnumUnion.ts, 24, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var w: string | string[]; +>w : Symbol(w, Decl(TypeGuardWithEnumUnion.ts, 23, 11), Decl(TypeGuardWithEnumUnion.ts, 24, 11)) + } + if (typeof x === "string") { +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var a = x; +>a : Symbol(a, Decl(TypeGuardWithEnumUnion.ts, 27, 11), Decl(TypeGuardWithEnumUnion.ts, 28, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var a: string; +>a : Symbol(a, Decl(TypeGuardWithEnumUnion.ts, 27, 11), Decl(TypeGuardWithEnumUnion.ts, 28, 11)) + } + else { + var b = x; +>b : Symbol(b, Decl(TypeGuardWithEnumUnion.ts, 31, 11), Decl(TypeGuardWithEnumUnion.ts, 32, 11)) +>x : Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) + + var b: Color | string[]; +>b : Symbol(b, Decl(TypeGuardWithEnumUnion.ts, 31, 11), Decl(TypeGuardWithEnumUnion.ts, 32, 11)) +>Color : Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/TypeGuardWithEnumUnion.types b/tests/baselines/reference/TypeGuardWithEnumUnion.types index 293b4c431c724..16d999e46f2c0 100644 --- a/tests/baselines/reference/TypeGuardWithEnumUnion.types +++ b/tests/baselines/reference/TypeGuardWithEnumUnion.types @@ -1,100 +1,100 @@ === tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts === enum Color { R, G, B } ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) ->R : Color, Symbol(Color.R, Decl(TypeGuardWithEnumUnion.ts, 0, 12)) ->G : Color, Symbol(Color.G, Decl(TypeGuardWithEnumUnion.ts, 0, 15)) ->B : Color, Symbol(Color.B, Decl(TypeGuardWithEnumUnion.ts, 0, 18)) +>Color : Color +>R : Color +>G : Color +>B : Color function f1(x: Color | string) { ->f1 : (x: string | Color) => void, Symbol(f1, Decl(TypeGuardWithEnumUnion.ts, 0, 22)) ->x : string | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) +>f1 : (x: string | Color) => void +>x : string | Color +>Color : Color if (typeof x === "number") { >typeof x === "number" : boolean >typeof x : string ->x : string | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) +>x : string | Color >"number" : string var y = x; ->y : Color, Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 4, 11), Decl(TypeGuardWithEnumUnion.ts, 5, 11)) ->x : Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) +>y : Color +>x : Color var y: Color; ->y : Color, Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 4, 11), Decl(TypeGuardWithEnumUnion.ts, 5, 11)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) +>y : Color +>Color : Color } else { var z = x; ->z : string, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 8, 11), Decl(TypeGuardWithEnumUnion.ts, 9, 11)) ->x : string, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) +>z : string +>x : string var z: string; ->z : string, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 8, 11), Decl(TypeGuardWithEnumUnion.ts, 9, 11)) +>z : string } } function f2(x: Color | string | string[]) { ->f2 : (x: string | string[] | Color) => void, Symbol(f2, Decl(TypeGuardWithEnumUnion.ts, 11, 1)) ->x : string | string[] | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) +>f2 : (x: string | string[] | Color) => void +>x : string | string[] | Color +>Color : Color if (typeof x === "object") { >typeof x === "object" : boolean >typeof x : string ->x : string | string[] | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>x : string | string[] | Color >"object" : string var y = x; ->y : string[], Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 15, 11), Decl(TypeGuardWithEnumUnion.ts, 16, 11)) ->x : string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>y : string[] +>x : string[] var y: string[]; ->y : string[], Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 15, 11), Decl(TypeGuardWithEnumUnion.ts, 16, 11)) +>y : string[] } if (typeof x === "number") { >typeof x === "number" : boolean >typeof x : string ->x : string | string[] | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>x : string | string[] | Color >"number" : string var z = x; ->z : Color, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 19, 11), Decl(TypeGuardWithEnumUnion.ts, 20, 11)) ->x : Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>z : Color +>x : Color var z: Color; ->z : Color, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 19, 11), Decl(TypeGuardWithEnumUnion.ts, 20, 11)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) +>z : Color +>Color : Color } else { var w = x; ->w : string | string[], Symbol(w, Decl(TypeGuardWithEnumUnion.ts, 23, 11), Decl(TypeGuardWithEnumUnion.ts, 24, 11)) ->x : string | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>w : string | string[] +>x : string | string[] var w: string | string[]; ->w : string | string[], Symbol(w, Decl(TypeGuardWithEnumUnion.ts, 23, 11), Decl(TypeGuardWithEnumUnion.ts, 24, 11)) +>w : string | string[] } if (typeof x === "string") { >typeof x === "string" : boolean >typeof x : string ->x : string | string[] | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>x : string | string[] | Color >"string" : string var a = x; ->a : string, Symbol(a, Decl(TypeGuardWithEnumUnion.ts, 27, 11), Decl(TypeGuardWithEnumUnion.ts, 28, 11)) ->x : string, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>a : string +>x : string var a: string; ->a : string, Symbol(a, Decl(TypeGuardWithEnumUnion.ts, 27, 11), Decl(TypeGuardWithEnumUnion.ts, 28, 11)) +>a : string } else { var b = x; ->b : string[] | Color, Symbol(b, Decl(TypeGuardWithEnumUnion.ts, 31, 11), Decl(TypeGuardWithEnumUnion.ts, 32, 11)) ->x : string[] | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) +>b : string[] | Color +>x : string[] | Color var b: Color | string[]; ->b : string[] | Color, Symbol(b, Decl(TypeGuardWithEnumUnion.ts, 31, 11), Decl(TypeGuardWithEnumUnion.ts, 32, 11)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) +>b : string[] | Color +>Color : Color } } diff --git a/tests/baselines/reference/TypeGuardWithEnumUnion.types.pull b/tests/baselines/reference/TypeGuardWithEnumUnion.types.pull deleted file mode 100644 index d98eaa1319285..0000000000000 --- a/tests/baselines/reference/TypeGuardWithEnumUnion.types.pull +++ /dev/null @@ -1,100 +0,0 @@ -=== tests/cases/conformance/expressions/typeGuards/TypeGuardWithEnumUnion.ts === -enum Color { R, G, B } ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) ->R : Color, Symbol(Color.R, Decl(TypeGuardWithEnumUnion.ts, 0, 12)) ->G : Color, Symbol(Color.G, Decl(TypeGuardWithEnumUnion.ts, 0, 15)) ->B : Color, Symbol(Color.B, Decl(TypeGuardWithEnumUnion.ts, 0, 18)) - -function f1(x: Color | string) { ->f1 : (x: string | Color) => void, Symbol(f1, Decl(TypeGuardWithEnumUnion.ts, 0, 22)) ->x : string | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) - - if (typeof x === "number") { ->typeof x === "number" : boolean ->typeof x : string ->x : string | Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) ->"number" : string - - var y = x; ->y : Color, Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 4, 11), Decl(TypeGuardWithEnumUnion.ts, 5, 11)) ->x : Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) - - var y: Color; ->y : Color, Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 4, 11), Decl(TypeGuardWithEnumUnion.ts, 5, 11)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) - } - else { - var z = x; ->z : string, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 8, 11), Decl(TypeGuardWithEnumUnion.ts, 9, 11)) ->x : string, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 2, 12)) - - var z: string; ->z : string, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 8, 11), Decl(TypeGuardWithEnumUnion.ts, 9, 11)) - } -} - -function f2(x: Color | string | string[]) { ->f2 : (x: string | Color | string[]) => void, Symbol(f2, Decl(TypeGuardWithEnumUnion.ts, 11, 1)) ->x : string | Color | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) - - if (typeof x === "object") { ->typeof x === "object" : boolean ->typeof x : string ->x : string | Color | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) ->"object" : string - - var y = x; ->y : string[], Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 15, 11), Decl(TypeGuardWithEnumUnion.ts, 16, 11)) ->x : string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) - - var y: string[]; ->y : string[], Symbol(y, Decl(TypeGuardWithEnumUnion.ts, 15, 11), Decl(TypeGuardWithEnumUnion.ts, 16, 11)) - } - if (typeof x === "number") { ->typeof x === "number" : boolean ->typeof x : string ->x : string | Color | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) ->"number" : string - - var z = x; ->z : Color, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 19, 11), Decl(TypeGuardWithEnumUnion.ts, 20, 11)) ->x : Color, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) - - var z: Color; ->z : Color, Symbol(z, Decl(TypeGuardWithEnumUnion.ts, 19, 11), Decl(TypeGuardWithEnumUnion.ts, 20, 11)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) - } - else { - var w = x; ->w : string | string[], Symbol(w, Decl(TypeGuardWithEnumUnion.ts, 23, 11), Decl(TypeGuardWithEnumUnion.ts, 24, 11)) ->x : string | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) - - var w: string | string[]; ->w : string | string[], Symbol(w, Decl(TypeGuardWithEnumUnion.ts, 23, 11), Decl(TypeGuardWithEnumUnion.ts, 24, 11)) - } - if (typeof x === "string") { ->typeof x === "string" : boolean ->typeof x : string ->x : string | Color | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) ->"string" : string - - var a = x; ->a : string, Symbol(a, Decl(TypeGuardWithEnumUnion.ts, 27, 11), Decl(TypeGuardWithEnumUnion.ts, 28, 11)) ->x : string, Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) - - var a: string; ->a : string, Symbol(a, Decl(TypeGuardWithEnumUnion.ts, 27, 11), Decl(TypeGuardWithEnumUnion.ts, 28, 11)) - } - else { - var b = x; ->b : Color | string[], Symbol(b, Decl(TypeGuardWithEnumUnion.ts, 31, 11), Decl(TypeGuardWithEnumUnion.ts, 32, 11)) ->x : Color | string[], Symbol(x, Decl(TypeGuardWithEnumUnion.ts, 13, 12)) - - var b: Color | string[]; ->b : Color | string[], Symbol(b, Decl(TypeGuardWithEnumUnion.ts, 31, 11), Decl(TypeGuardWithEnumUnion.ts, 32, 11)) ->Color : Color, Symbol(Color, Decl(TypeGuardWithEnumUnion.ts, 0, 0)) - } -} - diff --git a/tests/baselines/reference/VariableDeclaration10_es6.symbols b/tests/baselines/reference/VariableDeclaration10_es6.symbols new file mode 100644 index 0000000000000..ce37f77ed6d30 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration10_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts === +let a: number = 1 +>a : Symbol(a, Decl(VariableDeclaration10_es6.ts, 0, 3)) + diff --git a/tests/baselines/reference/VariableDeclaration10_es6.types b/tests/baselines/reference/VariableDeclaration10_es6.types index dc61a2a543120..717de7ed0fff5 100644 --- a/tests/baselines/reference/VariableDeclaration10_es6.types +++ b/tests/baselines/reference/VariableDeclaration10_es6.types @@ -1,5 +1,5 @@ === tests/cases/conformance/es6/variableDeclarations/VariableDeclaration10_es6.ts === let a: number = 1 ->a : number, Symbol(a, Decl(VariableDeclaration10_es6.ts, 0, 3)) +>a : number >1 : number diff --git a/tests/baselines/reference/VariableDeclaration3_es6.symbols b/tests/baselines/reference/VariableDeclaration3_es6.symbols new file mode 100644 index 0000000000000..431e15aa60ee6 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration3_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts === +const a = 1 +>a : Symbol(a, Decl(VariableDeclaration3_es6.ts, 0, 5)) + diff --git a/tests/baselines/reference/VariableDeclaration3_es6.types b/tests/baselines/reference/VariableDeclaration3_es6.types index dd0bdfc8cc214..1b5bbdb4ea704 100644 --- a/tests/baselines/reference/VariableDeclaration3_es6.types +++ b/tests/baselines/reference/VariableDeclaration3_es6.types @@ -1,5 +1,5 @@ === tests/cases/conformance/es6/variableDeclarations/VariableDeclaration3_es6.ts === const a = 1 ->a : number, Symbol(a, Decl(VariableDeclaration3_es6.ts, 0, 5)) +>a : number >1 : number diff --git a/tests/baselines/reference/VariableDeclaration5_es6.symbols b/tests/baselines/reference/VariableDeclaration5_es6.symbols new file mode 100644 index 0000000000000..e187f78e4d7d8 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration5_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts === +const a: number = 1 +>a : Symbol(a, Decl(VariableDeclaration5_es6.ts, 0, 5)) + diff --git a/tests/baselines/reference/VariableDeclaration5_es6.types b/tests/baselines/reference/VariableDeclaration5_es6.types index d063fc53a1207..0dce532be51c1 100644 --- a/tests/baselines/reference/VariableDeclaration5_es6.types +++ b/tests/baselines/reference/VariableDeclaration5_es6.types @@ -1,5 +1,5 @@ === tests/cases/conformance/es6/variableDeclarations/VariableDeclaration5_es6.ts === const a: number = 1 ->a : number, Symbol(a, Decl(VariableDeclaration5_es6.ts, 0, 5)) +>a : number >1 : number diff --git a/tests/baselines/reference/VariableDeclaration7_es6.symbols b/tests/baselines/reference/VariableDeclaration7_es6.symbols new file mode 100644 index 0000000000000..033e10978a3ba --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration7_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts === +let a +>a : Symbol(a, Decl(VariableDeclaration7_es6.ts, 0, 3)) + diff --git a/tests/baselines/reference/VariableDeclaration7_es6.types b/tests/baselines/reference/VariableDeclaration7_es6.types index 00aabe32e65a4..321c1b07bbcdd 100644 --- a/tests/baselines/reference/VariableDeclaration7_es6.types +++ b/tests/baselines/reference/VariableDeclaration7_es6.types @@ -1,4 +1,4 @@ === tests/cases/conformance/es6/variableDeclarations/VariableDeclaration7_es6.ts === let a ->a : any, Symbol(a, Decl(VariableDeclaration7_es6.ts, 0, 3)) +>a : any diff --git a/tests/baselines/reference/VariableDeclaration8_es6.symbols b/tests/baselines/reference/VariableDeclaration8_es6.symbols new file mode 100644 index 0000000000000..9dcd7c4b26037 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration8_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts === +let a = 1 +>a : Symbol(a, Decl(VariableDeclaration8_es6.ts, 0, 3)) + diff --git a/tests/baselines/reference/VariableDeclaration8_es6.types b/tests/baselines/reference/VariableDeclaration8_es6.types index ce6bb6f9bb7bd..24a3cd85383fe 100644 --- a/tests/baselines/reference/VariableDeclaration8_es6.types +++ b/tests/baselines/reference/VariableDeclaration8_es6.types @@ -1,5 +1,5 @@ === tests/cases/conformance/es6/variableDeclarations/VariableDeclaration8_es6.ts === let a = 1 ->a : number, Symbol(a, Decl(VariableDeclaration8_es6.ts, 0, 3)) +>a : number >1 : number diff --git a/tests/baselines/reference/VariableDeclaration9_es6.symbols b/tests/baselines/reference/VariableDeclaration9_es6.symbols new file mode 100644 index 0000000000000..a92d00f7fbd63 --- /dev/null +++ b/tests/baselines/reference/VariableDeclaration9_es6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts === +let a: number +>a : Symbol(a, Decl(VariableDeclaration9_es6.ts, 0, 3)) + diff --git a/tests/baselines/reference/VariableDeclaration9_es6.types b/tests/baselines/reference/VariableDeclaration9_es6.types index e51fc72eece5c..6b29a04281b58 100644 --- a/tests/baselines/reference/VariableDeclaration9_es6.types +++ b/tests/baselines/reference/VariableDeclaration9_es6.types @@ -1,4 +1,4 @@ === tests/cases/conformance/es6/variableDeclarations/VariableDeclaration9_es6.ts === let a: number ->a : number, Symbol(a, Decl(VariableDeclaration9_es6.ts, 0, 3)) +>a : number diff --git a/tests/baselines/reference/acceptableAlias1.symbols b/tests/baselines/reference/acceptableAlias1.symbols new file mode 100644 index 0000000000000..cffbc70290fe8 --- /dev/null +++ b/tests/baselines/reference/acceptableAlias1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/acceptableAlias1.ts === +module M { +>M : Symbol(M, Decl(acceptableAlias1.ts, 0, 0)) + + export module N { +>N : Symbol(N, Decl(acceptableAlias1.ts, 0, 10)) + } + export import X = N; +>X : Symbol(X, Decl(acceptableAlias1.ts, 2, 5)) +>N : Symbol(N, Decl(acceptableAlias1.ts, 0, 10)) +} + +import r = M.X; +>r : Symbol(r, Decl(acceptableAlias1.ts, 4, 1)) +>M : Symbol(M, Decl(acceptableAlias1.ts, 0, 0)) +>X : Symbol(r, Decl(acceptableAlias1.ts, 0, 10)) + diff --git a/tests/baselines/reference/acceptableAlias1.types b/tests/baselines/reference/acceptableAlias1.types index 7aae99a57b29f..ccf766d8f2fed 100644 --- a/tests/baselines/reference/acceptableAlias1.types +++ b/tests/baselines/reference/acceptableAlias1.types @@ -1,17 +1,17 @@ === tests/cases/compiler/acceptableAlias1.ts === module M { ->M : typeof M, Symbol(M, Decl(acceptableAlias1.ts, 0, 0)) +>M : typeof M export module N { ->N : any, Symbol(N, Decl(acceptableAlias1.ts, 0, 10)) +>N : any } export import X = N; ->X : any, Symbol(X, Decl(acceptableAlias1.ts, 2, 5)) ->N : any, Symbol(N, Decl(acceptableAlias1.ts, 0, 10)) +>X : any +>N : any } import r = M.X; ->r : any, Symbol(r, Decl(acceptableAlias1.ts, 4, 1)) ->M : typeof M, Symbol(M, Decl(acceptableAlias1.ts, 0, 0)) ->X : any, Symbol(r, Decl(acceptableAlias1.ts, 0, 10)) +>r : any +>M : typeof M +>X : any diff --git a/tests/baselines/reference/accessOverriddenBaseClassMember1.symbols b/tests/baselines/reference/accessOverriddenBaseClassMember1.symbols new file mode 100644 index 0000000000000..e5e19030afaa1 --- /dev/null +++ b/tests/baselines/reference/accessOverriddenBaseClassMember1.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/accessOverriddenBaseClassMember1.ts === +class Point { +>Point : Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 1, 16)) +>y : Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 1, 33)) + + public toString() { +>toString : Symbol(toString, Decl(accessOverriddenBaseClassMember1.ts, 1, 55)) + + return "x=" + this.x + " y=" + this.y; +>this.x : Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 1, 16)) +>this : Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) +>x : Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 1, 16)) +>this.y : Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 1, 33)) +>this : Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) +>y : Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 1, 33)) + } +} +class ColoredPoint extends Point { +>ColoredPoint : Symbol(ColoredPoint, Decl(accessOverriddenBaseClassMember1.ts, 5, 1)) +>Point : Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) + + constructor(x: number, y: number, public color: string) { +>x : Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 7, 16)) +>y : Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 7, 26)) +>color : Symbol(color, Decl(accessOverriddenBaseClassMember1.ts, 7, 37)) + + super(x, y); +>super : Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) +>x : Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 7, 16)) +>y : Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 7, 26)) + } + public toString() { +>toString : Symbol(toString, Decl(accessOverriddenBaseClassMember1.ts, 9, 5)) + + return super.toString() + " color=" + this.color; +>super.toString : Symbol(Point.toString, Decl(accessOverriddenBaseClassMember1.ts, 1, 55)) +>super : Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) +>toString : Symbol(Point.toString, Decl(accessOverriddenBaseClassMember1.ts, 1, 55)) +>this.color : Symbol(color, Decl(accessOverriddenBaseClassMember1.ts, 7, 37)) +>this : Symbol(ColoredPoint, Decl(accessOverriddenBaseClassMember1.ts, 5, 1)) +>color : Symbol(color, Decl(accessOverriddenBaseClassMember1.ts, 7, 37)) + } +} + diff --git a/tests/baselines/reference/accessOverriddenBaseClassMember1.types b/tests/baselines/reference/accessOverriddenBaseClassMember1.types index 4ba32e3ff6516..2aeb541d7239d 100644 --- a/tests/baselines/reference/accessOverriddenBaseClassMember1.types +++ b/tests/baselines/reference/accessOverriddenBaseClassMember1.types @@ -1,57 +1,57 @@ === tests/cases/compiler/accessOverriddenBaseClassMember1.ts === class Point { ->Point : Point, Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 1, 16)) ->y : number, Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 1, 33)) +>x : number +>y : number public toString() { ->toString : () => string, Symbol(toString, Decl(accessOverriddenBaseClassMember1.ts, 1, 55)) +>toString : () => string return "x=" + this.x + " y=" + this.y; >"x=" + this.x + " y=" + this.y : string >"x=" + this.x + " y=" : string >"x=" + this.x : string >"x=" : string ->this.x : number, Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 1, 16)) ->this : Point, Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) ->x : number, Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 1, 16)) +>this.x : number +>this : Point +>x : number >" y=" : string ->this.y : number, Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 1, 33)) ->this : Point, Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) ->y : number, Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 1, 33)) +>this.y : number +>this : Point +>y : number } } class ColoredPoint extends Point { ->ColoredPoint : ColoredPoint, Symbol(ColoredPoint, Decl(accessOverriddenBaseClassMember1.ts, 5, 1)) ->Point : Point, Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) +>ColoredPoint : ColoredPoint +>Point : Point constructor(x: number, y: number, public color: string) { ->x : number, Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 7, 16)) ->y : number, Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 7, 26)) ->color : string, Symbol(color, Decl(accessOverriddenBaseClassMember1.ts, 7, 37)) +>x : number +>y : number +>color : string super(x, y); >super(x, y) : void ->super : typeof Point, Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) ->x : number, Symbol(x, Decl(accessOverriddenBaseClassMember1.ts, 7, 16)) ->y : number, Symbol(y, Decl(accessOverriddenBaseClassMember1.ts, 7, 26)) +>super : typeof Point +>x : number +>y : number } public toString() { ->toString : () => string, Symbol(toString, Decl(accessOverriddenBaseClassMember1.ts, 9, 5)) +>toString : () => string return super.toString() + " color=" + this.color; >super.toString() + " color=" + this.color : string >super.toString() + " color=" : string >super.toString() : string ->super.toString : () => string, Symbol(Point.toString, Decl(accessOverriddenBaseClassMember1.ts, 1, 55)) ->super : Point, Symbol(Point, Decl(accessOverriddenBaseClassMember1.ts, 0, 0)) ->toString : () => string, Symbol(Point.toString, Decl(accessOverriddenBaseClassMember1.ts, 1, 55)) +>super.toString : () => string +>super : Point +>toString : () => string >" color=" : string ->this.color : string, Symbol(color, Decl(accessOverriddenBaseClassMember1.ts, 7, 37)) ->this : ColoredPoint, Symbol(ColoredPoint, Decl(accessOverriddenBaseClassMember1.ts, 5, 1)) ->color : string, Symbol(color, Decl(accessOverriddenBaseClassMember1.ts, 7, 37)) +>this.color : string +>this : ColoredPoint +>color : string } } diff --git a/tests/baselines/reference/accessorWithES5.symbols b/tests/baselines/reference/accessorWithES5.symbols new file mode 100644 index 0000000000000..dccbd8180bb5d --- /dev/null +++ b/tests/baselines/reference/accessorWithES5.symbols @@ -0,0 +1,35 @@ +=== tests/cases/conformance/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorWithES5.ts === + +class C { +>C : Symbol(C, Decl(accessorWithES5.ts, 0, 0)) + + get x() { +>x : Symbol(x, Decl(accessorWithES5.ts, 1, 9)) + + return 1; + } +} + +class D { +>D : Symbol(D, Decl(accessorWithES5.ts, 5, 1)) + + set x(v) { +>x : Symbol(x, Decl(accessorWithES5.ts, 7, 9)) +>v : Symbol(v, Decl(accessorWithES5.ts, 8, 10)) + } +} + +var x = { +>x : Symbol(x, Decl(accessorWithES5.ts, 12, 3)) + + get a() { return 1 } +>a : Symbol(a, Decl(accessorWithES5.ts, 12, 9)) +} + +var y = { +>y : Symbol(y, Decl(accessorWithES5.ts, 16, 3)) + + set b(v) { } +>b : Symbol(b, Decl(accessorWithES5.ts, 16, 9)) +>v : Symbol(v, Decl(accessorWithES5.ts, 17, 10)) +} diff --git a/tests/baselines/reference/accessorWithES5.types b/tests/baselines/reference/accessorWithES5.types index 9bbfadce48c4c..cb54e92b1847d 100644 --- a/tests/baselines/reference/accessorWithES5.types +++ b/tests/baselines/reference/accessorWithES5.types @@ -1,10 +1,10 @@ === tests/cases/conformance/classes/propertyMemberDeclarations/memberAccessorDeclarations/accessorWithES5.ts === class C { ->C : C, Symbol(C, Decl(accessorWithES5.ts, 0, 0)) +>C : C get x() { ->x : number, Symbol(x, Decl(accessorWithES5.ts, 1, 9)) +>x : number return 1; >1 : number @@ -12,28 +12,28 @@ class C { } class D { ->D : D, Symbol(D, Decl(accessorWithES5.ts, 5, 1)) +>D : D set x(v) { ->x : any, Symbol(x, Decl(accessorWithES5.ts, 7, 9)) ->v : any, Symbol(v, Decl(accessorWithES5.ts, 8, 10)) +>x : any +>v : any } } var x = { ->x : { a: number; }, Symbol(x, Decl(accessorWithES5.ts, 12, 3)) +>x : { a: number; } >{ get a() { return 1 }} : { a: number; } get a() { return 1 } ->a : number, Symbol(a, Decl(accessorWithES5.ts, 12, 9)) +>a : number >1 : number } var y = { ->y : { b: any; }, Symbol(y, Decl(accessorWithES5.ts, 16, 3)) +>y : { b: any; } >{ set b(v) { }} : { b: any; } set b(v) { } ->b : any, Symbol(b, Decl(accessorWithES5.ts, 16, 9)) ->v : any, Symbol(v, Decl(accessorWithES5.ts, 17, 10)) +>b : any +>v : any } diff --git a/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.symbols b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.symbols new file mode 100644 index 0000000000000..339f419f5cc22 --- /dev/null +++ b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/addMoreCallSignaturesToBaseSignature.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature.ts, 0, 0)) + + (): string; +} + +interface Bar extends Foo { +>Bar : Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature.ts, 0, 0)) + + (key: string): string; +>key : Symbol(key, Decl(addMoreCallSignaturesToBaseSignature.ts, 5, 5)) +} + +var a: Bar; +>a : Symbol(a, Decl(addMoreCallSignaturesToBaseSignature.ts, 8, 3)) +>Bar : Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature.ts, 2, 1)) + +var kitty = a(); +>kitty : Symbol(kitty, Decl(addMoreCallSignaturesToBaseSignature.ts, 9, 3)) +>a : Symbol(a, Decl(addMoreCallSignaturesToBaseSignature.ts, 8, 3)) + diff --git a/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.types b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.types index da8dcb4d0bebb..212186ace770b 100644 --- a/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.types +++ b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature.types @@ -1,24 +1,24 @@ === tests/cases/compiler/addMoreCallSignaturesToBaseSignature.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature.ts, 0, 0)) +>Foo : Foo (): string; } interface Bar extends Foo { ->Bar : Bar, Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature.ts, 0, 0)) +>Bar : Bar +>Foo : Foo (key: string): string; ->key : string, Symbol(key, Decl(addMoreCallSignaturesToBaseSignature.ts, 5, 5)) +>key : string } var a: Bar; ->a : Bar, Symbol(a, Decl(addMoreCallSignaturesToBaseSignature.ts, 8, 3)) ->Bar : Bar, Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature.ts, 2, 1)) +>a : Bar +>Bar : Bar var kitty = a(); ->kitty : string, Symbol(kitty, Decl(addMoreCallSignaturesToBaseSignature.ts, 9, 3)) +>kitty : string >a() : string ->a : Bar, Symbol(a, Decl(addMoreCallSignaturesToBaseSignature.ts, 8, 3)) +>a : Bar diff --git a/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.symbols b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.symbols new file mode 100644 index 0000000000000..e8185780dcf44 --- /dev/null +++ b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/addMoreCallSignaturesToBaseSignature2.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature2.ts, 0, 0)) + + (bar:number): string; +>bar : Symbol(bar, Decl(addMoreCallSignaturesToBaseSignature2.ts, 1, 5)) +} + +interface Bar extends Foo { +>Bar : Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature2.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature2.ts, 0, 0)) + + (key: string): string; +>key : Symbol(key, Decl(addMoreCallSignaturesToBaseSignature2.ts, 5, 5)) +} + +var a: Bar; +>a : Symbol(a, Decl(addMoreCallSignaturesToBaseSignature2.ts, 8, 3)) +>Bar : Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature2.ts, 2, 1)) + +var kitty = a(1); +>kitty : Symbol(kitty, Decl(addMoreCallSignaturesToBaseSignature2.ts, 9, 3)) +>a : Symbol(a, Decl(addMoreCallSignaturesToBaseSignature2.ts, 8, 3)) + diff --git a/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.types b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.types index ed187a820cc40..98bd191024140 100644 --- a/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.types +++ b/tests/baselines/reference/addMoreCallSignaturesToBaseSignature2.types @@ -1,26 +1,26 @@ === tests/cases/compiler/addMoreCallSignaturesToBaseSignature2.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature2.ts, 0, 0)) +>Foo : Foo (bar:number): string; ->bar : number, Symbol(bar, Decl(addMoreCallSignaturesToBaseSignature2.ts, 1, 5)) +>bar : number } interface Bar extends Foo { ->Bar : Bar, Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature2.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(addMoreCallSignaturesToBaseSignature2.ts, 0, 0)) +>Bar : Bar +>Foo : Foo (key: string): string; ->key : string, Symbol(key, Decl(addMoreCallSignaturesToBaseSignature2.ts, 5, 5)) +>key : string } var a: Bar; ->a : Bar, Symbol(a, Decl(addMoreCallSignaturesToBaseSignature2.ts, 8, 3)) ->Bar : Bar, Symbol(Bar, Decl(addMoreCallSignaturesToBaseSignature2.ts, 2, 1)) +>a : Bar +>Bar : Bar var kitty = a(1); ->kitty : string, Symbol(kitty, Decl(addMoreCallSignaturesToBaseSignature2.ts, 9, 3)) +>kitty : string >a(1) : string ->a : Bar, Symbol(a, Decl(addMoreCallSignaturesToBaseSignature2.ts, 8, 3)) +>a : Bar >1 : number diff --git a/tests/baselines/reference/additionOperatorWithAnyAndEveryType.symbols b/tests/baselines/reference/additionOperatorWithAnyAndEveryType.symbols new file mode 100644 index 0000000000000..eff45630aae8e --- /dev/null +++ b/tests/baselines/reference/additionOperatorWithAnyAndEveryType.symbols @@ -0,0 +1,143 @@ +=== tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithAnyAndEveryType.ts === +function foo() { } +>foo : Symbol(foo, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 0)) + +class C { +>C : Symbol(C, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 18)) + + public a: string; +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 1, 9)) + + static foo() { } +>foo : Symbol(C.foo, Decl(additionOperatorWithAnyAndEveryType.ts, 2, 21)) +} +enum E { a, b, c } +>E : Symbol(E, Decl(additionOperatorWithAnyAndEveryType.ts, 4, 1)) +>a : Symbol(E.a, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 8)) +>b : Symbol(E.b, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 11)) +>c : Symbol(E.c, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 14)) + +module M { export var a } +>M : Symbol(M, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 18)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 6, 21)) + +var a: any; +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var b: boolean; +>b : Symbol(b, Decl(additionOperatorWithAnyAndEveryType.ts, 9, 3)) + +var c: number; +>c : Symbol(c, Decl(additionOperatorWithAnyAndEveryType.ts, 10, 3)) + +var d: string; +>d : Symbol(d, Decl(additionOperatorWithAnyAndEveryType.ts, 11, 3)) + +var e: Object; +>e : Symbol(e, Decl(additionOperatorWithAnyAndEveryType.ts, 12, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +// any as left operand, result is type Any except plusing string +var r1 = a + a; +>r1 : Symbol(r1, Decl(additionOperatorWithAnyAndEveryType.ts, 15, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var r2 = a + b; +>r2 : Symbol(r2, Decl(additionOperatorWithAnyAndEveryType.ts, 16, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>b : Symbol(b, Decl(additionOperatorWithAnyAndEveryType.ts, 9, 3)) + +var r3 = a + c; +>r3 : Symbol(r3, Decl(additionOperatorWithAnyAndEveryType.ts, 17, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>c : Symbol(c, Decl(additionOperatorWithAnyAndEveryType.ts, 10, 3)) + +var r4 = a + d; +>r4 : Symbol(r4, Decl(additionOperatorWithAnyAndEveryType.ts, 18, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>d : Symbol(d, Decl(additionOperatorWithAnyAndEveryType.ts, 11, 3)) + +var r5 = a + e; +>r5 : Symbol(r5, Decl(additionOperatorWithAnyAndEveryType.ts, 19, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>e : Symbol(e, Decl(additionOperatorWithAnyAndEveryType.ts, 12, 3)) + +// any as right operand, result is type Any except plusing string +var r6 = b + a; +>r6 : Symbol(r6, Decl(additionOperatorWithAnyAndEveryType.ts, 22, 3)) +>b : Symbol(b, Decl(additionOperatorWithAnyAndEveryType.ts, 9, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var r7 = c + a; +>r7 : Symbol(r7, Decl(additionOperatorWithAnyAndEveryType.ts, 23, 3)) +>c : Symbol(c, Decl(additionOperatorWithAnyAndEveryType.ts, 10, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var r8 = d + a; +>r8 : Symbol(r8, Decl(additionOperatorWithAnyAndEveryType.ts, 24, 3)) +>d : Symbol(d, Decl(additionOperatorWithAnyAndEveryType.ts, 11, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var r9 = e + a; +>r9 : Symbol(r9, Decl(additionOperatorWithAnyAndEveryType.ts, 25, 3)) +>e : Symbol(e, Decl(additionOperatorWithAnyAndEveryType.ts, 12, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +// other cases +var r10 = a + foo; +>r10 : Symbol(r10, Decl(additionOperatorWithAnyAndEveryType.ts, 28, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>foo : Symbol(foo, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 0)) + +var r11 = a + foo(); +>r11 : Symbol(r11, Decl(additionOperatorWithAnyAndEveryType.ts, 29, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>foo : Symbol(foo, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 0)) + +var r12 = a + C; +>r12 : Symbol(r12, Decl(additionOperatorWithAnyAndEveryType.ts, 30, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>C : Symbol(C, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 18)) + +var r13 = a + new C(); +>r13 : Symbol(r13, Decl(additionOperatorWithAnyAndEveryType.ts, 31, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>C : Symbol(C, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 18)) + +var r14 = a + E; +>r14 : Symbol(r14, Decl(additionOperatorWithAnyAndEveryType.ts, 32, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>E : Symbol(E, Decl(additionOperatorWithAnyAndEveryType.ts, 4, 1)) + +var r15 = a + E.a; +>r15 : Symbol(r15, Decl(additionOperatorWithAnyAndEveryType.ts, 33, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 8)) +>E : Symbol(E, Decl(additionOperatorWithAnyAndEveryType.ts, 4, 1)) +>a : Symbol(E.a, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 8)) + +var r16 = a + M; +>r16 : Symbol(r16, Decl(additionOperatorWithAnyAndEveryType.ts, 34, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>M : Symbol(M, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 18)) + +var r17 = a + ''; +>r17 : Symbol(r17, Decl(additionOperatorWithAnyAndEveryType.ts, 35, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var r18 = a + 123; +>r18 : Symbol(r18, Decl(additionOperatorWithAnyAndEveryType.ts, 36, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) + +var r19 = a + { a: '' }; +>r19 : Symbol(r19, Decl(additionOperatorWithAnyAndEveryType.ts, 37, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 37, 15)) + +var r20 = a + ((a: string) => { return a }); +>r20 : Symbol(r20, Decl(additionOperatorWithAnyAndEveryType.ts, 38, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 38, 16)) +>a : Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 38, 16)) + diff --git a/tests/baselines/reference/additionOperatorWithAnyAndEveryType.types b/tests/baselines/reference/additionOperatorWithAnyAndEveryType.types index e4571680a9b3d..9f1a9f03898ef 100644 --- a/tests/baselines/reference/additionOperatorWithAnyAndEveryType.types +++ b/tests/baselines/reference/additionOperatorWithAnyAndEveryType.types @@ -1,171 +1,171 @@ === tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithAnyAndEveryType.ts === function foo() { } ->foo : () => void, Symbol(foo, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 0)) +>foo : () => void class C { ->C : C, Symbol(C, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 18)) +>C : C public a: string; ->a : string, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 1, 9)) +>a : string static foo() { } ->foo : () => void, Symbol(C.foo, Decl(additionOperatorWithAnyAndEveryType.ts, 2, 21)) +>foo : () => void } enum E { a, b, c } ->E : E, Symbol(E, Decl(additionOperatorWithAnyAndEveryType.ts, 4, 1)) ->a : E, Symbol(E.a, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 8)) ->b : E, Symbol(E.b, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 11)) ->c : E, Symbol(E.c, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 14)) +>E : E +>a : E +>b : E +>c : E module M { export var a } ->M : typeof M, Symbol(M, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 18)) ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 6, 21)) +>M : typeof M +>a : any var a: any; ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any var b: boolean; ->b : boolean, Symbol(b, Decl(additionOperatorWithAnyAndEveryType.ts, 9, 3)) +>b : boolean var c: number; ->c : number, Symbol(c, Decl(additionOperatorWithAnyAndEveryType.ts, 10, 3)) +>c : number var d: string; ->d : string, Symbol(d, Decl(additionOperatorWithAnyAndEveryType.ts, 11, 3)) +>d : string var e: Object; ->e : Object, Symbol(e, Decl(additionOperatorWithAnyAndEveryType.ts, 12, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>e : Object +>Object : Object // any as left operand, result is type Any except plusing string var r1 = a + a; ->r1 : any, Symbol(r1, Decl(additionOperatorWithAnyAndEveryType.ts, 15, 3)) +>r1 : any >a + a : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any +>a : any var r2 = a + b; ->r2 : any, Symbol(r2, Decl(additionOperatorWithAnyAndEveryType.ts, 16, 3)) +>r2 : any >a + b : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->b : boolean, Symbol(b, Decl(additionOperatorWithAnyAndEveryType.ts, 9, 3)) +>a : any +>b : boolean var r3 = a + c; ->r3 : any, Symbol(r3, Decl(additionOperatorWithAnyAndEveryType.ts, 17, 3)) +>r3 : any >a + c : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->c : number, Symbol(c, Decl(additionOperatorWithAnyAndEveryType.ts, 10, 3)) +>a : any +>c : number var r4 = a + d; ->r4 : string, Symbol(r4, Decl(additionOperatorWithAnyAndEveryType.ts, 18, 3)) +>r4 : string >a + d : string ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->d : string, Symbol(d, Decl(additionOperatorWithAnyAndEveryType.ts, 11, 3)) +>a : any +>d : string var r5 = a + e; ->r5 : any, Symbol(r5, Decl(additionOperatorWithAnyAndEveryType.ts, 19, 3)) +>r5 : any >a + e : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->e : Object, Symbol(e, Decl(additionOperatorWithAnyAndEveryType.ts, 12, 3)) +>a : any +>e : Object // any as right operand, result is type Any except plusing string var r6 = b + a; ->r6 : any, Symbol(r6, Decl(additionOperatorWithAnyAndEveryType.ts, 22, 3)) +>r6 : any >b + a : any ->b : boolean, Symbol(b, Decl(additionOperatorWithAnyAndEveryType.ts, 9, 3)) ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>b : boolean +>a : any var r7 = c + a; ->r7 : any, Symbol(r7, Decl(additionOperatorWithAnyAndEveryType.ts, 23, 3)) +>r7 : any >c + a : any ->c : number, Symbol(c, Decl(additionOperatorWithAnyAndEveryType.ts, 10, 3)) ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>c : number +>a : any var r8 = d + a; ->r8 : string, Symbol(r8, Decl(additionOperatorWithAnyAndEveryType.ts, 24, 3)) +>r8 : string >d + a : string ->d : string, Symbol(d, Decl(additionOperatorWithAnyAndEveryType.ts, 11, 3)) ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>d : string +>a : any var r9 = e + a; ->r9 : any, Symbol(r9, Decl(additionOperatorWithAnyAndEveryType.ts, 25, 3)) +>r9 : any >e + a : any ->e : Object, Symbol(e, Decl(additionOperatorWithAnyAndEveryType.ts, 12, 3)) ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>e : Object +>a : any // other cases var r10 = a + foo; ->r10 : any, Symbol(r10, Decl(additionOperatorWithAnyAndEveryType.ts, 28, 3)) +>r10 : any >a + foo : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->foo : () => void, Symbol(foo, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 0)) +>a : any +>foo : () => void var r11 = a + foo(); ->r11 : any, Symbol(r11, Decl(additionOperatorWithAnyAndEveryType.ts, 29, 3)) +>r11 : any >a + foo() : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any >foo() : void ->foo : () => void, Symbol(foo, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 0)) +>foo : () => void var r12 = a + C; ->r12 : any, Symbol(r12, Decl(additionOperatorWithAnyAndEveryType.ts, 30, 3)) +>r12 : any >a + C : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->C : typeof C, Symbol(C, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 18)) +>a : any +>C : typeof C var r13 = a + new C(); ->r13 : any, Symbol(r13, Decl(additionOperatorWithAnyAndEveryType.ts, 31, 3)) +>r13 : any >a + new C() : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any >new C() : C ->C : typeof C, Symbol(C, Decl(additionOperatorWithAnyAndEveryType.ts, 0, 18)) +>C : typeof C var r14 = a + E; ->r14 : any, Symbol(r14, Decl(additionOperatorWithAnyAndEveryType.ts, 32, 3)) +>r14 : any >a + E : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithAnyAndEveryType.ts, 4, 1)) +>a : any +>E : typeof E var r15 = a + E.a; ->r15 : any, Symbol(r15, Decl(additionOperatorWithAnyAndEveryType.ts, 33, 3)) +>r15 : any >a + E.a : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->E.a : E, Symbol(E.a, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithAnyAndEveryType.ts, 4, 1)) ->a : E, Symbol(E.a, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 8)) +>a : any +>E.a : E +>E : typeof E +>a : E var r16 = a + M; ->r16 : any, Symbol(r16, Decl(additionOperatorWithAnyAndEveryType.ts, 34, 3)) +>r16 : any >a + M : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) ->M : typeof M, Symbol(M, Decl(additionOperatorWithAnyAndEveryType.ts, 5, 18)) +>a : any +>M : typeof M var r17 = a + ''; ->r17 : string, Symbol(r17, Decl(additionOperatorWithAnyAndEveryType.ts, 35, 3)) +>r17 : string >a + '' : string ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any >'' : string var r18 = a + 123; ->r18 : any, Symbol(r18, Decl(additionOperatorWithAnyAndEveryType.ts, 36, 3)) +>r18 : any >a + 123 : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any >123 : number var r19 = a + { a: '' }; ->r19 : any, Symbol(r19, Decl(additionOperatorWithAnyAndEveryType.ts, 37, 3)) +>r19 : any >a + { a: '' } : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any >{ a: '' } : { a: string; } ->a : string, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 37, 15)) +>a : string >'' : string var r20 = a + ((a: string) => { return a }); ->r20 : any, Symbol(r20, Decl(additionOperatorWithAnyAndEveryType.ts, 38, 3)) +>r20 : any >a + ((a: string) => { return a }) : any ->a : any, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 8, 3)) +>a : any >((a: string) => { return a }) : (a: string) => string >(a: string) => { return a } : (a: string) => string ->a : string, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 38, 16)) ->a : string, Symbol(a, Decl(additionOperatorWithAnyAndEveryType.ts, 38, 16)) +>a : string +>a : string diff --git a/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.symbols b/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.symbols new file mode 100644 index 0000000000000..ccb53ab5ef112 --- /dev/null +++ b/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.symbols @@ -0,0 +1,91 @@ +=== tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithNullValueAndValidOperator.ts === +// If one operand is the null or undefined value, it is treated as having the type of the other operand. + +enum E { a, b, c } +>E : Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>b : Symbol(E.b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 11)) +>c : Symbol(E.c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 14)) + +var a: any; +>a : Symbol(a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 4, 3)) + +var b: number; +>b : Symbol(b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 5, 3)) + +var c: E; +>c : Symbol(c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 6, 3)) +>E : Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) + +var d: string; +>d : Symbol(d, Decl(additionOperatorWithNullValueAndValidOperator.ts, 7, 3)) + +// null + any +var r1: any = null + a; +>r1 : Symbol(r1, Decl(additionOperatorWithNullValueAndValidOperator.ts, 10, 3)) +>a : Symbol(a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 4, 3)) + +var r2: any = a + null; +>r2 : Symbol(r2, Decl(additionOperatorWithNullValueAndValidOperator.ts, 11, 3)) +>a : Symbol(a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 4, 3)) + +// null + number/enum +var r3 = null + b; +>r3 : Symbol(r3, Decl(additionOperatorWithNullValueAndValidOperator.ts, 14, 3)) +>b : Symbol(b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 5, 3)) + +var r4 = null + 1; +>r4 : Symbol(r4, Decl(additionOperatorWithNullValueAndValidOperator.ts, 15, 3)) + +var r5 = null + c; +>r5 : Symbol(r5, Decl(additionOperatorWithNullValueAndValidOperator.ts, 16, 3)) +>c : Symbol(c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 6, 3)) + +var r6 = null + E.a; +>r6 : Symbol(r6, Decl(additionOperatorWithNullValueAndValidOperator.ts, 17, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>E : Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) + +var r7 = null + E['a']; +>r7 : Symbol(r7, Decl(additionOperatorWithNullValueAndValidOperator.ts, 18, 3)) +>E : Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) +>'a' : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) + +var r8 = b + null; +>r8 : Symbol(r8, Decl(additionOperatorWithNullValueAndValidOperator.ts, 19, 3)) +>b : Symbol(b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 5, 3)) + +var r9 = 1 + null; +>r9 : Symbol(r9, Decl(additionOperatorWithNullValueAndValidOperator.ts, 20, 3)) + +var r10 = c + null +>r10 : Symbol(r10, Decl(additionOperatorWithNullValueAndValidOperator.ts, 21, 3)) +>c : Symbol(c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 6, 3)) + +var r11 = E.a + null; +>r11 : Symbol(r11, Decl(additionOperatorWithNullValueAndValidOperator.ts, 22, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>E : Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) + +var r12 = E['a'] + null; +>r12 : Symbol(r12, Decl(additionOperatorWithNullValueAndValidOperator.ts, 23, 3)) +>E : Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) +>'a' : Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) + +// null + string +var r13 = null + d; +>r13 : Symbol(r13, Decl(additionOperatorWithNullValueAndValidOperator.ts, 26, 3)) +>d : Symbol(d, Decl(additionOperatorWithNullValueAndValidOperator.ts, 7, 3)) + +var r14 = null + ''; +>r14 : Symbol(r14, Decl(additionOperatorWithNullValueAndValidOperator.ts, 27, 3)) + +var r15 = d + null; +>r15 : Symbol(r15, Decl(additionOperatorWithNullValueAndValidOperator.ts, 28, 3)) +>d : Symbol(d, Decl(additionOperatorWithNullValueAndValidOperator.ts, 7, 3)) + +var r16 = '' + null; +>r16 : Symbol(r16, Decl(additionOperatorWithNullValueAndValidOperator.ts, 29, 3)) + diff --git a/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.types b/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.types index 62db775555a93..f4ea168ee0df8 100644 --- a/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.types +++ b/tests/baselines/reference/additionOperatorWithNullValueAndValidOperator.types @@ -2,127 +2,127 @@ // If one operand is the null or undefined value, it is treated as having the type of the other operand. enum E { a, b, c } ->E : E, Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) ->b : E, Symbol(E.b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 11)) ->c : E, Symbol(E.c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 14)) +>E : E +>a : E +>b : E +>c : E var a: any; ->a : any, Symbol(a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 4, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 5, 3)) +>b : number var c: E; ->c : E, Symbol(c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 6, 3)) ->E : E, Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) +>c : E +>E : E var d: string; ->d : string, Symbol(d, Decl(additionOperatorWithNullValueAndValidOperator.ts, 7, 3)) +>d : string // null + any var r1: any = null + a; ->r1 : any, Symbol(r1, Decl(additionOperatorWithNullValueAndValidOperator.ts, 10, 3)) +>r1 : any >null + a : any >null : null ->a : any, Symbol(a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 4, 3)) +>a : any var r2: any = a + null; ->r2 : any, Symbol(r2, Decl(additionOperatorWithNullValueAndValidOperator.ts, 11, 3)) +>r2 : any >a + null : any ->a : any, Symbol(a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 4, 3)) +>a : any >null : null // null + number/enum var r3 = null + b; ->r3 : number, Symbol(r3, Decl(additionOperatorWithNullValueAndValidOperator.ts, 14, 3)) +>r3 : number >null + b : number >null : null ->b : number, Symbol(b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 5, 3)) +>b : number var r4 = null + 1; ->r4 : number, Symbol(r4, Decl(additionOperatorWithNullValueAndValidOperator.ts, 15, 3)) +>r4 : number >null + 1 : number >null : null >1 : number var r5 = null + c; ->r5 : number, Symbol(r5, Decl(additionOperatorWithNullValueAndValidOperator.ts, 16, 3)) +>r5 : number >null + c : number >null : null ->c : E, Symbol(c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 6, 3)) +>c : E var r6 = null + E.a; ->r6 : number, Symbol(r6, Decl(additionOperatorWithNullValueAndValidOperator.ts, 17, 3)) +>r6 : number >null + E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E var r7 = null + E['a']; ->r7 : number, Symbol(r7, Decl(additionOperatorWithNullValueAndValidOperator.ts, 18, 3)) +>r7 : number >null + E['a'] : number >null : null >E['a'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) ->'a' : string, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>E : typeof E +>'a' : string var r8 = b + null; ->r8 : number, Symbol(r8, Decl(additionOperatorWithNullValueAndValidOperator.ts, 19, 3)) +>r8 : number >b + null : number ->b : number, Symbol(b, Decl(additionOperatorWithNullValueAndValidOperator.ts, 5, 3)) +>b : number >null : null var r9 = 1 + null; ->r9 : number, Symbol(r9, Decl(additionOperatorWithNullValueAndValidOperator.ts, 20, 3)) +>r9 : number >1 + null : number >1 : number >null : null var r10 = c + null ->r10 : number, Symbol(r10, Decl(additionOperatorWithNullValueAndValidOperator.ts, 21, 3)) +>r10 : number >c + null : number ->c : E, Symbol(c, Decl(additionOperatorWithNullValueAndValidOperator.ts, 6, 3)) +>c : E >null : null var r11 = E.a + null; ->r11 : number, Symbol(r11, Decl(additionOperatorWithNullValueAndValidOperator.ts, 22, 3)) +>r11 : number >E.a + null : number ->E.a : E, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >null : null var r12 = E['a'] + null; ->r12 : number, Symbol(r12, Decl(additionOperatorWithNullValueAndValidOperator.ts, 23, 3)) +>r12 : number >E['a'] + null : number >E['a'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithNullValueAndValidOperator.ts, 0, 0)) ->'a' : string, Symbol(E.a, Decl(additionOperatorWithNullValueAndValidOperator.ts, 2, 8)) +>E : typeof E +>'a' : string >null : null // null + string var r13 = null + d; ->r13 : string, Symbol(r13, Decl(additionOperatorWithNullValueAndValidOperator.ts, 26, 3)) +>r13 : string >null + d : string >null : null ->d : string, Symbol(d, Decl(additionOperatorWithNullValueAndValidOperator.ts, 7, 3)) +>d : string var r14 = null + ''; ->r14 : string, Symbol(r14, Decl(additionOperatorWithNullValueAndValidOperator.ts, 27, 3)) +>r14 : string >null + '' : string >null : null >'' : string var r15 = d + null; ->r15 : string, Symbol(r15, Decl(additionOperatorWithNullValueAndValidOperator.ts, 28, 3)) +>r15 : string >d + null : string ->d : string, Symbol(d, Decl(additionOperatorWithNullValueAndValidOperator.ts, 7, 3)) +>d : string >null : null var r16 = '' + null; ->r16 : string, Symbol(r16, Decl(additionOperatorWithNullValueAndValidOperator.ts, 29, 3)) +>r16 : string >'' + null : string >'' : string >null : null diff --git a/tests/baselines/reference/additionOperatorWithNumberAndEnum.symbols b/tests/baselines/reference/additionOperatorWithNumberAndEnum.symbols new file mode 100644 index 0000000000000..835bdbe3a65d3 --- /dev/null +++ b/tests/baselines/reference/additionOperatorWithNumberAndEnum.symbols @@ -0,0 +1,101 @@ +=== tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithNumberAndEnum.ts === +enum E { a, b } +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>b : Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) + +enum F { c, d } +>F : Symbol(F, Decl(additionOperatorWithNumberAndEnum.ts, 0, 15)) +>c : Symbol(F.c, Decl(additionOperatorWithNumberAndEnum.ts, 1, 8)) +>d : Symbol(F.d, Decl(additionOperatorWithNumberAndEnum.ts, 1, 11)) + +var a: number; +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) + +var b: E; +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) + +var c: E | F; +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>F : Symbol(F, Decl(additionOperatorWithNumberAndEnum.ts, 0, 15)) + +var r1 = a + a; +>r1 : Symbol(r1, Decl(additionOperatorWithNumberAndEnum.ts, 7, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) + +var r2 = a + b; +>r2 : Symbol(r2, Decl(additionOperatorWithNumberAndEnum.ts, 8, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) + +var r3 = b + a; +>r3 : Symbol(r3, Decl(additionOperatorWithNumberAndEnum.ts, 9, 3)) +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) + +var r4 = b + b; +>r4 : Symbol(r4, Decl(additionOperatorWithNumberAndEnum.ts, 10, 3)) +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) + +var r5 = 0 + a; +>r5 : Symbol(r5, Decl(additionOperatorWithNumberAndEnum.ts, 12, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) + +var r6 = E.a + 0; +>r6 : Symbol(r6, Decl(additionOperatorWithNumberAndEnum.ts, 13, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) + +var r7 = E.a + E.b; +>r7 : Symbol(r7, Decl(additionOperatorWithNumberAndEnum.ts, 14, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E.b : Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) + +var r8 = E['a'] + E['b']; +>r8 : Symbol(r8, Decl(additionOperatorWithNumberAndEnum.ts, 15, 3)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>'a' : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>'b' : Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) + +var r9 = E['a'] + F['c']; +>r9 : Symbol(r9, Decl(additionOperatorWithNumberAndEnum.ts, 16, 3)) +>E : Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>'a' : Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>F : Symbol(F, Decl(additionOperatorWithNumberAndEnum.ts, 0, 15)) +>'c' : Symbol(F.c, Decl(additionOperatorWithNumberAndEnum.ts, 1, 8)) + +var r10 = a + c; +>r10 : Symbol(r10, Decl(additionOperatorWithNumberAndEnum.ts, 18, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) + +var r11 = c + a; +>r11 : Symbol(r11, Decl(additionOperatorWithNumberAndEnum.ts, 19, 3)) +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>a : Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) + +var r12 = b + c; +>r12 : Symbol(r12, Decl(additionOperatorWithNumberAndEnum.ts, 20, 3)) +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) + +var r13 = c + b; +>r13 : Symbol(r13, Decl(additionOperatorWithNumberAndEnum.ts, 21, 3)) +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>b : Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) + +var r14 = c + c; +>r14 : Symbol(r14, Decl(additionOperatorWithNumberAndEnum.ts, 22, 3)) +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>c : Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) + diff --git a/tests/baselines/reference/additionOperatorWithNumberAndEnum.types b/tests/baselines/reference/additionOperatorWithNumberAndEnum.types index ffca2d5d5cd54..2b1c27940653d 100644 --- a/tests/baselines/reference/additionOperatorWithNumberAndEnum.types +++ b/tests/baselines/reference/additionOperatorWithNumberAndEnum.types @@ -1,121 +1,121 @@ === tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithNumberAndEnum.ts === enum E { a, b } ->E : E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) +>E : E +>a : E +>b : E enum F { c, d } ->F : F, Symbol(F, Decl(additionOperatorWithNumberAndEnum.ts, 0, 15)) ->c : F, Symbol(F.c, Decl(additionOperatorWithNumberAndEnum.ts, 1, 8)) ->d : F, Symbol(F.d, Decl(additionOperatorWithNumberAndEnum.ts, 1, 11)) +>F : F +>c : F +>d : F var a: number; ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>a : number var b: E; ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) ->E : E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) +>b : E +>E : E var c: E | F; ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) ->E : E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->F : F, Symbol(F, Decl(additionOperatorWithNumberAndEnum.ts, 0, 15)) +>c : E | F +>E : E +>F : F var r1 = a + a; ->r1 : number, Symbol(r1, Decl(additionOperatorWithNumberAndEnum.ts, 7, 3)) +>r1 : number >a + a : number ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>a : number +>a : number var r2 = a + b; ->r2 : number, Symbol(r2, Decl(additionOperatorWithNumberAndEnum.ts, 8, 3)) +>r2 : number >a + b : number ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>a : number +>b : E var r3 = b + a; ->r3 : number, Symbol(r3, Decl(additionOperatorWithNumberAndEnum.ts, 9, 3)) +>r3 : number >b + a : number ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>b : E +>a : number var r4 = b + b; ->r4 : number, Symbol(r4, Decl(additionOperatorWithNumberAndEnum.ts, 10, 3)) +>r4 : number >b + b : number ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>b : E +>b : E var r5 = 0 + a; ->r5 : number, Symbol(r5, Decl(additionOperatorWithNumberAndEnum.ts, 12, 3)) +>r5 : number >0 + a : number >0 : number ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>a : number var r6 = E.a + 0; ->r6 : number, Symbol(r6, Decl(additionOperatorWithNumberAndEnum.ts, 13, 3)) +>r6 : number >E.a + 0 : number ->E.a : E, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var r7 = E.a + E.b; ->r7 : number, Symbol(r7, Decl(additionOperatorWithNumberAndEnum.ts, 14, 3)) +>r7 : number >E.a + E.b : number ->E.a : E, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) ->E.b : E, Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var r8 = E['a'] + E['b']; ->r8 : number, Symbol(r8, Decl(additionOperatorWithNumberAndEnum.ts, 15, 3)) +>r8 : number >E['a'] + E['b'] : number >E['a'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->'a' : string, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E : typeof E +>'a' : string >E['b'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->'b' : string, Symbol(E.b, Decl(additionOperatorWithNumberAndEnum.ts, 0, 11)) +>E : typeof E +>'b' : string var r9 = E['a'] + F['c']; ->r9 : number, Symbol(r9, Decl(additionOperatorWithNumberAndEnum.ts, 16, 3)) +>r9 : number >E['a'] + F['c'] : number >E['a'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithNumberAndEnum.ts, 0, 0)) ->'a' : string, Symbol(E.a, Decl(additionOperatorWithNumberAndEnum.ts, 0, 8)) +>E : typeof E +>'a' : string >F['c'] : F ->F : typeof F, Symbol(F, Decl(additionOperatorWithNumberAndEnum.ts, 0, 15)) ->'c' : string, Symbol(F.c, Decl(additionOperatorWithNumberAndEnum.ts, 1, 8)) +>F : typeof F +>'c' : string var r10 = a + c; ->r10 : number, Symbol(r10, Decl(additionOperatorWithNumberAndEnum.ts, 18, 3)) +>r10 : number >a + c : number ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>a : number +>c : E | F var r11 = c + a; ->r11 : number, Symbol(r11, Decl(additionOperatorWithNumberAndEnum.ts, 19, 3)) +>r11 : number >c + a : number ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) ->a : number, Symbol(a, Decl(additionOperatorWithNumberAndEnum.ts, 3, 3)) +>c : E | F +>a : number var r12 = b + c; ->r12 : number, Symbol(r12, Decl(additionOperatorWithNumberAndEnum.ts, 20, 3)) +>r12 : number >b + c : number ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>b : E +>c : E | F var r13 = c + b; ->r13 : number, Symbol(r13, Decl(additionOperatorWithNumberAndEnum.ts, 21, 3)) +>r13 : number >c + b : number ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) ->b : E, Symbol(b, Decl(additionOperatorWithNumberAndEnum.ts, 4, 3)) +>c : E | F +>b : E var r14 = c + c; ->r14 : number, Symbol(r14, Decl(additionOperatorWithNumberAndEnum.ts, 22, 3)) +>r14 : number >c + c : number ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) ->c : E | F, Symbol(c, Decl(additionOperatorWithNumberAndEnum.ts, 5, 3)) +>c : E | F +>c : E | F diff --git a/tests/baselines/reference/additionOperatorWithStringAndEveryType.symbols b/tests/baselines/reference/additionOperatorWithStringAndEveryType.symbols new file mode 100644 index 0000000000000..0fb0f428716b4 --- /dev/null +++ b/tests/baselines/reference/additionOperatorWithStringAndEveryType.symbols @@ -0,0 +1,136 @@ +=== tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithStringAndEveryType.ts === +enum E { a, b, c } +>E : Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithStringAndEveryType.ts, 0, 8)) +>b : Symbol(E.b, Decl(additionOperatorWithStringAndEveryType.ts, 0, 11)) +>c : Symbol(E.c, Decl(additionOperatorWithStringAndEveryType.ts, 0, 14)) + +var a: any; +>a : Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 2, 3)) + +var b: boolean; +>b : Symbol(b, Decl(additionOperatorWithStringAndEveryType.ts, 3, 3)) + +var c: number; +>c : Symbol(c, Decl(additionOperatorWithStringAndEveryType.ts, 4, 3)) + +var d: string; +>d : Symbol(d, Decl(additionOperatorWithStringAndEveryType.ts, 5, 3)) + +var e: Object; +>e : Symbol(e, Decl(additionOperatorWithStringAndEveryType.ts, 6, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var f: void; +>f : Symbol(f, Decl(additionOperatorWithStringAndEveryType.ts, 7, 3)) + +var g: E; +>g : Symbol(g, Decl(additionOperatorWithStringAndEveryType.ts, 8, 3)) +>E : Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) + +var x: string; +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +// string could plus every type, and the result is always string +// string as left operand +var r1 = x + a; +>r1 : Symbol(r1, Decl(additionOperatorWithStringAndEveryType.ts, 14, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>a : Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 2, 3)) + +var r2 = x + b; +>r2 : Symbol(r2, Decl(additionOperatorWithStringAndEveryType.ts, 15, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>b : Symbol(b, Decl(additionOperatorWithStringAndEveryType.ts, 3, 3)) + +var r3 = x + c; +>r3 : Symbol(r3, Decl(additionOperatorWithStringAndEveryType.ts, 16, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>c : Symbol(c, Decl(additionOperatorWithStringAndEveryType.ts, 4, 3)) + +var r4 = x + d; +>r4 : Symbol(r4, Decl(additionOperatorWithStringAndEveryType.ts, 17, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>d : Symbol(d, Decl(additionOperatorWithStringAndEveryType.ts, 5, 3)) + +var r5 = x + e; +>r5 : Symbol(r5, Decl(additionOperatorWithStringAndEveryType.ts, 18, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>e : Symbol(e, Decl(additionOperatorWithStringAndEveryType.ts, 6, 3)) + +var r6 = x + f; +>r6 : Symbol(r6, Decl(additionOperatorWithStringAndEveryType.ts, 19, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>f : Symbol(f, Decl(additionOperatorWithStringAndEveryType.ts, 7, 3)) + +var r7 = x + g; +>r7 : Symbol(r7, Decl(additionOperatorWithStringAndEveryType.ts, 20, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>g : Symbol(g, Decl(additionOperatorWithStringAndEveryType.ts, 8, 3)) + +// string as right operand +var r8 = a + x; +>r8 : Symbol(r8, Decl(additionOperatorWithStringAndEveryType.ts, 23, 3)) +>a : Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 2, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r9 = b + x; +>r9 : Symbol(r9, Decl(additionOperatorWithStringAndEveryType.ts, 24, 3)) +>b : Symbol(b, Decl(additionOperatorWithStringAndEveryType.ts, 3, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r10 = c + x; +>r10 : Symbol(r10, Decl(additionOperatorWithStringAndEveryType.ts, 25, 3)) +>c : Symbol(c, Decl(additionOperatorWithStringAndEveryType.ts, 4, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r11 = d + x; +>r11 : Symbol(r11, Decl(additionOperatorWithStringAndEveryType.ts, 26, 3)) +>d : Symbol(d, Decl(additionOperatorWithStringAndEveryType.ts, 5, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r12 = e + x; +>r12 : Symbol(r12, Decl(additionOperatorWithStringAndEveryType.ts, 27, 3)) +>e : Symbol(e, Decl(additionOperatorWithStringAndEveryType.ts, 6, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r13 = f + x; +>r13 : Symbol(r13, Decl(additionOperatorWithStringAndEveryType.ts, 28, 3)) +>f : Symbol(f, Decl(additionOperatorWithStringAndEveryType.ts, 7, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r14 = g + x; +>r14 : Symbol(r14, Decl(additionOperatorWithStringAndEveryType.ts, 29, 3)) +>g : Symbol(g, Decl(additionOperatorWithStringAndEveryType.ts, 8, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +// other cases +var r15 = x + E; +>r15 : Symbol(r15, Decl(additionOperatorWithStringAndEveryType.ts, 32, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>E : Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) + +var r16 = x + E.a; +>r16 : Symbol(r16, Decl(additionOperatorWithStringAndEveryType.ts, 33, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithStringAndEveryType.ts, 0, 8)) +>E : Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithStringAndEveryType.ts, 0, 8)) + +var r17 = x + ''; +>r17 : Symbol(r17, Decl(additionOperatorWithStringAndEveryType.ts, 34, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r18 = x + 0; +>r18 : Symbol(r18, Decl(additionOperatorWithStringAndEveryType.ts, 35, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + +var r19 = x + { a: '' }; +>r19 : Symbol(r19, Decl(additionOperatorWithStringAndEveryType.ts, 36, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>a : Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 36, 15)) + +var r20 = x + []; +>r20 : Symbol(r20, Decl(additionOperatorWithStringAndEveryType.ts, 37, 3)) +>x : Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) + diff --git a/tests/baselines/reference/additionOperatorWithStringAndEveryType.types b/tests/baselines/reference/additionOperatorWithStringAndEveryType.types index 31fa60a2562d4..5413f5f5bdfb4 100644 --- a/tests/baselines/reference/additionOperatorWithStringAndEveryType.types +++ b/tests/baselines/reference/additionOperatorWithStringAndEveryType.types @@ -1,161 +1,161 @@ === tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithStringAndEveryType.ts === enum E { a, b, c } ->E : E, Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithStringAndEveryType.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(additionOperatorWithStringAndEveryType.ts, 0, 11)) ->c : E, Symbol(E.c, Decl(additionOperatorWithStringAndEveryType.ts, 0, 14)) +>E : E +>a : E +>b : E +>c : E var a: any; ->a : any, Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 2, 3)) +>a : any var b: boolean; ->b : boolean, Symbol(b, Decl(additionOperatorWithStringAndEveryType.ts, 3, 3)) +>b : boolean var c: number; ->c : number, Symbol(c, Decl(additionOperatorWithStringAndEveryType.ts, 4, 3)) +>c : number var d: string; ->d : string, Symbol(d, Decl(additionOperatorWithStringAndEveryType.ts, 5, 3)) +>d : string var e: Object; ->e : Object, Symbol(e, Decl(additionOperatorWithStringAndEveryType.ts, 6, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>e : Object +>Object : Object var f: void; ->f : void, Symbol(f, Decl(additionOperatorWithStringAndEveryType.ts, 7, 3)) +>f : void var g: E; ->g : E, Symbol(g, Decl(additionOperatorWithStringAndEveryType.ts, 8, 3)) ->E : E, Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) +>g : E +>E : E var x: string; ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>x : string // string could plus every type, and the result is always string // string as left operand var r1 = x + a; ->r1 : string, Symbol(r1, Decl(additionOperatorWithStringAndEveryType.ts, 14, 3)) +>r1 : string >x + a : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->a : any, Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 2, 3)) +>x : string +>a : any var r2 = x + b; ->r2 : string, Symbol(r2, Decl(additionOperatorWithStringAndEveryType.ts, 15, 3)) +>r2 : string >x + b : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->b : boolean, Symbol(b, Decl(additionOperatorWithStringAndEveryType.ts, 3, 3)) +>x : string +>b : boolean var r3 = x + c; ->r3 : string, Symbol(r3, Decl(additionOperatorWithStringAndEveryType.ts, 16, 3)) +>r3 : string >x + c : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->c : number, Symbol(c, Decl(additionOperatorWithStringAndEveryType.ts, 4, 3)) +>x : string +>c : number var r4 = x + d; ->r4 : string, Symbol(r4, Decl(additionOperatorWithStringAndEveryType.ts, 17, 3)) +>r4 : string >x + d : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->d : string, Symbol(d, Decl(additionOperatorWithStringAndEveryType.ts, 5, 3)) +>x : string +>d : string var r5 = x + e; ->r5 : string, Symbol(r5, Decl(additionOperatorWithStringAndEveryType.ts, 18, 3)) +>r5 : string >x + e : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->e : Object, Symbol(e, Decl(additionOperatorWithStringAndEveryType.ts, 6, 3)) +>x : string +>e : Object var r6 = x + f; ->r6 : string, Symbol(r6, Decl(additionOperatorWithStringAndEveryType.ts, 19, 3)) +>r6 : string >x + f : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->f : void, Symbol(f, Decl(additionOperatorWithStringAndEveryType.ts, 7, 3)) +>x : string +>f : void var r7 = x + g; ->r7 : string, Symbol(r7, Decl(additionOperatorWithStringAndEveryType.ts, 20, 3)) +>r7 : string >x + g : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->g : E, Symbol(g, Decl(additionOperatorWithStringAndEveryType.ts, 8, 3)) +>x : string +>g : E // string as right operand var r8 = a + x; ->r8 : string, Symbol(r8, Decl(additionOperatorWithStringAndEveryType.ts, 23, 3)) +>r8 : string >a + x : string ->a : any, Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 2, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>a : any +>x : string var r9 = b + x; ->r9 : string, Symbol(r9, Decl(additionOperatorWithStringAndEveryType.ts, 24, 3)) +>r9 : string >b + x : string ->b : boolean, Symbol(b, Decl(additionOperatorWithStringAndEveryType.ts, 3, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>b : boolean +>x : string var r10 = c + x; ->r10 : string, Symbol(r10, Decl(additionOperatorWithStringAndEveryType.ts, 25, 3)) +>r10 : string >c + x : string ->c : number, Symbol(c, Decl(additionOperatorWithStringAndEveryType.ts, 4, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>c : number +>x : string var r11 = d + x; ->r11 : string, Symbol(r11, Decl(additionOperatorWithStringAndEveryType.ts, 26, 3)) +>r11 : string >d + x : string ->d : string, Symbol(d, Decl(additionOperatorWithStringAndEveryType.ts, 5, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>d : string +>x : string var r12 = e + x; ->r12 : string, Symbol(r12, Decl(additionOperatorWithStringAndEveryType.ts, 27, 3)) +>r12 : string >e + x : string ->e : Object, Symbol(e, Decl(additionOperatorWithStringAndEveryType.ts, 6, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>e : Object +>x : string var r13 = f + x; ->r13 : string, Symbol(r13, Decl(additionOperatorWithStringAndEveryType.ts, 28, 3)) +>r13 : string >f + x : string ->f : void, Symbol(f, Decl(additionOperatorWithStringAndEveryType.ts, 7, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>f : void +>x : string var r14 = g + x; ->r14 : string, Symbol(r14, Decl(additionOperatorWithStringAndEveryType.ts, 29, 3)) +>r14 : string >g + x : string ->g : E, Symbol(g, Decl(additionOperatorWithStringAndEveryType.ts, 8, 3)) ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>g : E +>x : string // other cases var r15 = x + E; ->r15 : string, Symbol(r15, Decl(additionOperatorWithStringAndEveryType.ts, 32, 3)) +>r15 : string >x + E : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) +>x : string +>E : typeof E var r16 = x + E.a; ->r16 : string, Symbol(r16, Decl(additionOperatorWithStringAndEveryType.ts, 33, 3)) +>r16 : string >x + E.a : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) ->E.a : E, Symbol(E.a, Decl(additionOperatorWithStringAndEveryType.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithStringAndEveryType.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithStringAndEveryType.ts, 0, 8)) +>x : string +>E.a : E +>E : typeof E +>a : E var r17 = x + ''; ->r17 : string, Symbol(r17, Decl(additionOperatorWithStringAndEveryType.ts, 34, 3)) +>r17 : string >x + '' : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>x : string >'' : string var r18 = x + 0; ->r18 : string, Symbol(r18, Decl(additionOperatorWithStringAndEveryType.ts, 35, 3)) +>r18 : string >x + 0 : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>x : string >0 : number var r19 = x + { a: '' }; ->r19 : string, Symbol(r19, Decl(additionOperatorWithStringAndEveryType.ts, 36, 3)) +>r19 : string >x + { a: '' } : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>x : string >{ a: '' } : { a: string; } ->a : string, Symbol(a, Decl(additionOperatorWithStringAndEveryType.ts, 36, 15)) +>a : string >'' : string var r20 = x + []; ->r20 : string, Symbol(r20, Decl(additionOperatorWithStringAndEveryType.ts, 37, 3)) +>r20 : string >x + [] : string ->x : string, Symbol(x, Decl(additionOperatorWithStringAndEveryType.ts, 10, 3)) +>x : string >[] : undefined[] diff --git a/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.symbols b/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.symbols new file mode 100644 index 0000000000000..d91dd946c83b6 --- /dev/null +++ b/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.symbols @@ -0,0 +1,107 @@ +=== tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithUndefinedValueAndValidOperator.ts === +// If one operand is the null or undefined value, it is treated as having the type of the other operand. + +enum E { a, b, c } +>E : Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>b : Symbol(E.b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 11)) +>c : Symbol(E.c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 14)) + +var a: any; +>a : Symbol(a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 4, 3)) + +var b: number; +>b : Symbol(b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 5, 3)) + +var c: E; +>c : Symbol(c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 6, 3)) +>E : Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) + +var d: string; +>d : Symbol(d, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 7, 3)) + +// undefined + any +var r1: any = undefined + a; +>r1 : Symbol(r1, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 10, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 4, 3)) + +var r2: any = a + undefined; +>r2 : Symbol(r2, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 11, 3)) +>a : Symbol(a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 4, 3)) +>undefined : Symbol(undefined) + +// undefined + number/enum +var r3 = undefined + b; +>r3 : Symbol(r3, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 14, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 5, 3)) + +var r4 = undefined + 1; +>r4 : Symbol(r4, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 15, 3)) +>undefined : Symbol(undefined) + +var r5 = undefined + c; +>r5 : Symbol(r5, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 16, 3)) +>undefined : Symbol(undefined) +>c : Symbol(c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 6, 3)) + +var r6 = undefined + E.a; +>r6 : Symbol(r6, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 17, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>E : Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) + +var r7 = undefined + E['a']; +>r7 : Symbol(r7, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 18, 3)) +>undefined : Symbol(undefined) +>E : Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) +>'a' : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) + +var r8 = b + undefined; +>r8 : Symbol(r8, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 19, 3)) +>b : Symbol(b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 5, 3)) +>undefined : Symbol(undefined) + +var r9 = 1 + undefined; +>r9 : Symbol(r9, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 20, 3)) +>undefined : Symbol(undefined) + +var r10 = c + undefined +>r10 : Symbol(r10, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 21, 3)) +>c : Symbol(c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 6, 3)) +>undefined : Symbol(undefined) + +var r11 = E.a + undefined; +>r11 : Symbol(r11, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 22, 3)) +>E.a : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>E : Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) +>a : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>undefined : Symbol(undefined) + +var r12 = E['a'] + undefined; +>r12 : Symbol(r12, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 23, 3)) +>E : Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) +>'a' : Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>undefined : Symbol(undefined) + +// undefined + string +var r13 = undefined + d; +>r13 : Symbol(r13, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 26, 3)) +>undefined : Symbol(undefined) +>d : Symbol(d, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 7, 3)) + +var r14 = undefined + ''; +>r14 : Symbol(r14, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 27, 3)) +>undefined : Symbol(undefined) + +var r15 = d + undefined; +>r15 : Symbol(r15, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 28, 3)) +>d : Symbol(d, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 7, 3)) +>undefined : Symbol(undefined) + +var r16 = '' + undefined; +>r16 : Symbol(r16, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 29, 3)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.types b/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.types index 966c19aa8c4e0..16f0a4dfa8433 100644 --- a/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.types +++ b/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.types @@ -2,128 +2,128 @@ // If one operand is the null or undefined value, it is treated as having the type of the other operand. enum E { a, b, c } ->E : E, Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) ->b : E, Symbol(E.b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 11)) ->c : E, Symbol(E.c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 14)) +>E : E +>a : E +>b : E +>c : E var a: any; ->a : any, Symbol(a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 4, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 5, 3)) +>b : number var c: E; ->c : E, Symbol(c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 6, 3)) ->E : E, Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) +>c : E +>E : E var d: string; ->d : string, Symbol(d, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 7, 3)) +>d : string // undefined + any var r1: any = undefined + a; ->r1 : any, Symbol(r1, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 10, 3)) +>r1 : any >undefined + a : any ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 4, 3)) +>undefined : undefined +>a : any var r2: any = a + undefined; ->r2 : any, Symbol(r2, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 11, 3)) +>r2 : any >a + undefined : any ->a : any, Symbol(a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 4, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined // undefined + number/enum var r3 = undefined + b; ->r3 : number, Symbol(r3, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 14, 3)) +>r3 : number >undefined + b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 5, 3)) +>undefined : undefined +>b : number var r4 = undefined + 1; ->r4 : number, Symbol(r4, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 15, 3)) +>r4 : number >undefined + 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var r5 = undefined + c; ->r5 : number, Symbol(r5, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 16, 3)) +>r5 : number >undefined + c : number ->undefined : undefined, Symbol(undefined) ->c : E, Symbol(c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 6, 3)) +>undefined : undefined +>c : E var r6 = undefined + E.a; ->r6 : number, Symbol(r6, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 17, 3)) +>r6 : number >undefined + E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var r7 = undefined + E['a']; ->r7 : number, Symbol(r7, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 18, 3)) +>r7 : number >undefined + E['a'] : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >E['a'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) ->'a' : string, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) +>E : typeof E +>'a' : string var r8 = b + undefined; ->r8 : number, Symbol(r8, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 19, 3)) +>r8 : number >b + undefined : number ->b : number, Symbol(b, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 5, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var r9 = 1 + undefined; ->r9 : number, Symbol(r9, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 20, 3)) +>r9 : number >1 + undefined : number >1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var r10 = c + undefined ->r10 : number, Symbol(r10, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 21, 3)) +>r10 : number >c + undefined : number ->c : E, Symbol(c, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 6, 3)) ->undefined : undefined, Symbol(undefined) +>c : E +>undefined : undefined var r11 = E.a + undefined; ->r11 : number, Symbol(r11, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 22, 3)) +>r11 : number >E.a + undefined : number ->E.a : E, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) ->undefined : undefined, Symbol(undefined) +>E.a : E +>E : typeof E +>a : E +>undefined : undefined var r12 = E['a'] + undefined; ->r12 : number, Symbol(r12, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 23, 3)) +>r12 : number >E['a'] + undefined : number >E['a'] : E ->E : typeof E, Symbol(E, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 0, 0)) ->'a' : string, Symbol(E.a, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 2, 8)) ->undefined : undefined, Symbol(undefined) +>E : typeof E +>'a' : string +>undefined : undefined // undefined + string var r13 = undefined + d; ->r13 : string, Symbol(r13, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 26, 3)) +>r13 : string >undefined + d : string ->undefined : undefined, Symbol(undefined) ->d : string, Symbol(d, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 7, 3)) +>undefined : undefined +>d : string var r14 = undefined + ''; ->r14 : string, Symbol(r14, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 27, 3)) +>r14 : string >undefined + '' : string ->undefined : undefined, Symbol(undefined) +>undefined : undefined >'' : string var r15 = d + undefined; ->r15 : string, Symbol(r15, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 28, 3)) +>r15 : string >d + undefined : string ->d : string, Symbol(d, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 7, 3)) ->undefined : undefined, Symbol(undefined) +>d : string +>undefined : undefined var r16 = '' + undefined; ->r16 : string, Symbol(r16, Decl(additionOperatorWithUndefinedValueAndValidOperator.ts, 29, 3)) +>r16 : string >'' + undefined : string >'' : string ->undefined : undefined, Symbol(undefined) +>undefined : undefined diff --git a/tests/baselines/reference/aliasUsageInAccessorsOfClass.symbols b/tests/baselines/reference/aliasUsageInAccessorsOfClass.symbols new file mode 100644 index 0000000000000..3524b1ce31e4f --- /dev/null +++ b/tests/baselines/reference/aliasUsageInAccessorsOfClass.symbols @@ -0,0 +1,61 @@ +=== tests/cases/compiler/aliasUsage1_main.ts === +import Backbone = require("aliasUsage1_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsage1_main.ts, 0, 0)) + +import moduleA = require("aliasUsage1_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsage1_main.ts, 0, 50)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsage1_main.ts, 1, 48)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsage1_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsage1_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) +} +class C2 { +>C2 : Symbol(C2, Decl(aliasUsage1_main.ts, 4, 1)) + + x: IHasVisualizationModel; +>x : Symbol(x, Decl(aliasUsage1_main.ts, 5, 10)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsage1_main.ts, 1, 48)) + + get A() { +>A : Symbol(A, Decl(aliasUsage1_main.ts, 6, 30), Decl(aliasUsage1_main.ts, 9, 5)) + + return this.x; +>this.x : Symbol(x, Decl(aliasUsage1_main.ts, 5, 10)) +>this : Symbol(C2, Decl(aliasUsage1_main.ts, 4, 1)) +>x : Symbol(x, Decl(aliasUsage1_main.ts, 5, 10)) + } + set A(x) { +>A : Symbol(A, Decl(aliasUsage1_main.ts, 6, 30), Decl(aliasUsage1_main.ts, 9, 5)) +>x : Symbol(x, Decl(aliasUsage1_main.ts, 10, 10)) + + x = moduleA; +>x : Symbol(x, Decl(aliasUsage1_main.ts, 10, 10)) +>moduleA : Symbol(moduleA, Decl(aliasUsage1_main.ts, 0, 50)) + } +} +=== tests/cases/compiler/aliasUsage1_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsage1_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsage1_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsage1_moduleA.ts === +import Backbone = require("aliasUsage1_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsage1_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsage1_moduleA.ts, 0, 50)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsage1_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInAccessorsOfClass.types b/tests/baselines/reference/aliasUsageInAccessorsOfClass.types index 0a580a47b16e1..eccdbc8528cda 100644 --- a/tests/baselines/reference/aliasUsageInAccessorsOfClass.types +++ b/tests/baselines/reference/aliasUsageInAccessorsOfClass.types @@ -1,61 +1,61 @@ === tests/cases/compiler/aliasUsage1_main.ts === import Backbone = require("aliasUsage1_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsage1_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsage1_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsage1_main.ts, 0, 50)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsage1_main.ts, 1, 48)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsage1_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsage1_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } class C2 { ->C2 : C2, Symbol(C2, Decl(aliasUsage1_main.ts, 4, 1)) +>C2 : C2 x: IHasVisualizationModel; ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsage1_main.ts, 5, 10)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsage1_main.ts, 1, 48)) +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel get A() { ->A : IHasVisualizationModel, Symbol(A, Decl(aliasUsage1_main.ts, 6, 30), Decl(aliasUsage1_main.ts, 9, 5)) +>A : IHasVisualizationModel return this.x; ->this.x : IHasVisualizationModel, Symbol(x, Decl(aliasUsage1_main.ts, 5, 10)) ->this : C2, Symbol(C2, Decl(aliasUsage1_main.ts, 4, 1)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsage1_main.ts, 5, 10)) +>this.x : IHasVisualizationModel +>this : C2 +>x : IHasVisualizationModel } set A(x) { ->A : IHasVisualizationModel, Symbol(A, Decl(aliasUsage1_main.ts, 6, 30), Decl(aliasUsage1_main.ts, 9, 5)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsage1_main.ts, 10, 10)) +>A : IHasVisualizationModel +>x : IHasVisualizationModel x = moduleA; >x = moduleA : typeof moduleA ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsage1_main.ts, 10, 10)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsage1_main.ts, 0, 50)) +>x : IHasVisualizationModel +>moduleA : typeof moduleA } } === tests/cases/compiler/aliasUsage1_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsage1_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsage1_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsage1_moduleA.ts === import Backbone = require("aliasUsage1_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsage1_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsage1_moduleA.ts, 0, 50)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsage1_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsage1_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInArray.symbols b/tests/baselines/reference/aliasUsageInArray.symbols new file mode 100644 index 0000000000000..7f1e31d227701 --- /dev/null +++ b/tests/baselines/reference/aliasUsageInArray.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/aliasUsageInArray_main.ts === +import Backbone = require("aliasUsageInArray_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInArray_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInArray_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInArray_main.ts, 1, 54)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInArray_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInArray_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) +} + +var xs: IHasVisualizationModel[] = [moduleA]; +>xs : Symbol(xs, Decl(aliasUsageInArray_main.ts, 6, 3)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInArray_main.ts, 1, 54)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) + +var xs2: typeof moduleA[] = [moduleA]; +>xs2 : Symbol(xs2, Decl(aliasUsageInArray_main.ts, 7, 3)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) + +=== tests/cases/compiler/aliasUsageInArray_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInArray_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInArray_moduleA.ts === +import Backbone = require("aliasUsageInArray_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInArray_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInArray_moduleA.ts, 0, 56)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInArray_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInArray.types b/tests/baselines/reference/aliasUsageInArray.types index b7ff2670cd215..ee54300e7d959 100644 --- a/tests/baselines/reference/aliasUsageInArray.types +++ b/tests/baselines/reference/aliasUsageInArray.types @@ -1,49 +1,49 @@ === tests/cases/compiler/aliasUsageInArray_main.ts === import Backbone = require("aliasUsageInArray_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInArray_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInArray_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInArray_main.ts, 1, 54)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInArray_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInArray_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } var xs: IHasVisualizationModel[] = [moduleA]; ->xs : IHasVisualizationModel[], Symbol(xs, Decl(aliasUsageInArray_main.ts, 6, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInArray_main.ts, 1, 54)) +>xs : IHasVisualizationModel[] +>IHasVisualizationModel : IHasVisualizationModel >[moduleA] : typeof moduleA[] ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) +>moduleA : typeof moduleA var xs2: typeof moduleA[] = [moduleA]; ->xs2 : typeof moduleA[], Symbol(xs2, Decl(aliasUsageInArray_main.ts, 7, 3)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) +>xs2 : typeof moduleA[] +>moduleA : typeof moduleA >[moduleA] : typeof moduleA[] ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInArray_main.ts, 0, 56)) +>moduleA : typeof moduleA === tests/cases/compiler/aliasUsageInArray_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInArray_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInArray_moduleA.ts === import Backbone = require("aliasUsageInArray_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInArray_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInArray_moduleA.ts, 0, 56)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInArray_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInArray_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInFunctionExpression.symbols b/tests/baselines/reference/aliasUsageInFunctionExpression.symbols new file mode 100644 index 0000000000000..2afb6be55c557 --- /dev/null +++ b/tests/baselines/reference/aliasUsageInFunctionExpression.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/aliasUsageInFunctionExpression_main.ts === +import Backbone = require("aliasUsageInFunctionExpression_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInFunctionExpression_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInFunctionExpression_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInFunctionExpression_main.ts, 0, 69)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInFunctionExpression_main.ts, 1, 67)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInFunctionExpression_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInFunctionExpression_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) +} +var f = (x: IHasVisualizationModel) => x; +>f : Symbol(f, Decl(aliasUsageInFunctionExpression_main.ts, 5, 3)) +>x : Symbol(x, Decl(aliasUsageInFunctionExpression_main.ts, 5, 9)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInFunctionExpression_main.ts, 1, 67)) +>x : Symbol(x, Decl(aliasUsageInFunctionExpression_main.ts, 5, 9)) + +f = (x) => moduleA; +>f : Symbol(f, Decl(aliasUsageInFunctionExpression_main.ts, 5, 3)) +>x : Symbol(x, Decl(aliasUsageInFunctionExpression_main.ts, 6, 5)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInFunctionExpression_main.ts, 0, 69)) + +=== tests/cases/compiler/aliasUsageInFunctionExpression_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInFunctionExpression_moduleA.ts === +import Backbone = require("aliasUsageInFunctionExpression_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInFunctionExpression_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInFunctionExpression_moduleA.ts, 0, 69)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInFunctionExpression_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInFunctionExpression.types b/tests/baselines/reference/aliasUsageInFunctionExpression.types index 46ca7a9a76c7c..17994dcab52ab 100644 --- a/tests/baselines/reference/aliasUsageInFunctionExpression.types +++ b/tests/baselines/reference/aliasUsageInFunctionExpression.types @@ -1,50 +1,50 @@ === tests/cases/compiler/aliasUsageInFunctionExpression_main.ts === import Backbone = require("aliasUsageInFunctionExpression_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInFunctionExpression_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInFunctionExpression_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInFunctionExpression_main.ts, 0, 69)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInFunctionExpression_main.ts, 1, 67)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInFunctionExpression_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInFunctionExpression_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } var f = (x: IHasVisualizationModel) => x; ->f : (x: IHasVisualizationModel) => IHasVisualizationModel, Symbol(f, Decl(aliasUsageInFunctionExpression_main.ts, 5, 3)) +>f : (x: IHasVisualizationModel) => IHasVisualizationModel >(x: IHasVisualizationModel) => x : (x: IHasVisualizationModel) => IHasVisualizationModel ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInFunctionExpression_main.ts, 5, 9)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInFunctionExpression_main.ts, 1, 67)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInFunctionExpression_main.ts, 5, 9)) +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel +>x : IHasVisualizationModel f = (x) => moduleA; >f = (x) => moduleA : (x: IHasVisualizationModel) => typeof moduleA ->f : (x: IHasVisualizationModel) => IHasVisualizationModel, Symbol(f, Decl(aliasUsageInFunctionExpression_main.ts, 5, 3)) +>f : (x: IHasVisualizationModel) => IHasVisualizationModel >(x) => moduleA : (x: IHasVisualizationModel) => typeof moduleA ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInFunctionExpression_main.ts, 6, 5)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInFunctionExpression_main.ts, 0, 69)) +>x : IHasVisualizationModel +>moduleA : typeof moduleA === tests/cases/compiler/aliasUsageInFunctionExpression_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInFunctionExpression_moduleA.ts === import Backbone = require("aliasUsageInFunctionExpression_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInFunctionExpression_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInFunctionExpression_moduleA.ts, 0, 69)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInFunctionExpression_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInFunctionExpression_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInGenericFunction.symbols b/tests/baselines/reference/aliasUsageInGenericFunction.symbols new file mode 100644 index 0000000000000..3f001e8bd1a98 --- /dev/null +++ b/tests/baselines/reference/aliasUsageInGenericFunction.symbols @@ -0,0 +1,60 @@ +=== tests/cases/compiler/aliasUsageInGenericFunction_main.ts === +import Backbone = require("aliasUsageInGenericFunction_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInGenericFunction_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInGenericFunction_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInGenericFunction_main.ts, 0, 66)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 1, 64)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInGenericFunction_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) +} +function foo(x: T) { +>foo : Symbol(foo, Decl(aliasUsageInGenericFunction_main.ts, 4, 1)) +>T : Symbol(T, Decl(aliasUsageInGenericFunction_main.ts, 5, 13)) +>a : Symbol(a, Decl(aliasUsageInGenericFunction_main.ts, 5, 24)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 1, 64)) +>x : Symbol(x, Decl(aliasUsageInGenericFunction_main.ts, 5, 54)) +>T : Symbol(T, Decl(aliasUsageInGenericFunction_main.ts, 5, 13)) + + return x; +>x : Symbol(x, Decl(aliasUsageInGenericFunction_main.ts, 5, 54)) +} +var r = foo({ a: moduleA }); +>r : Symbol(r, Decl(aliasUsageInGenericFunction_main.ts, 8, 3)) +>foo : Symbol(foo, Decl(aliasUsageInGenericFunction_main.ts, 4, 1)) +>a : Symbol(a, Decl(aliasUsageInGenericFunction_main.ts, 8, 13)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInGenericFunction_main.ts, 0, 66)) + +var r2 = foo({ a: null }); +>r2 : Symbol(r2, Decl(aliasUsageInGenericFunction_main.ts, 9, 3)) +>foo : Symbol(foo, Decl(aliasUsageInGenericFunction_main.ts, 4, 1)) +>a : Symbol(a, Decl(aliasUsageInGenericFunction_main.ts, 9, 14)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 1, 64)) + +=== tests/cases/compiler/aliasUsageInGenericFunction_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInGenericFunction_moduleA.ts === +import Backbone = require("aliasUsageInGenericFunction_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInGenericFunction_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInGenericFunction_moduleA.ts, 0, 66)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInGenericFunction_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInGenericFunction.types b/tests/baselines/reference/aliasUsageInGenericFunction.types index b32eb87fb1954..0821732f5fcf4 100644 --- a/tests/baselines/reference/aliasUsageInGenericFunction.types +++ b/tests/baselines/reference/aliasUsageInGenericFunction.types @@ -1,65 +1,65 @@ === tests/cases/compiler/aliasUsageInGenericFunction_main.ts === import Backbone = require("aliasUsageInGenericFunction_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInGenericFunction_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInGenericFunction_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInGenericFunction_main.ts, 0, 66)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 1, 64)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInGenericFunction_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } function foo(x: T) { ->foo : (x: T) => T, Symbol(foo, Decl(aliasUsageInGenericFunction_main.ts, 4, 1)) ->T : T, Symbol(T, Decl(aliasUsageInGenericFunction_main.ts, 5, 13)) ->a : IHasVisualizationModel, Symbol(a, Decl(aliasUsageInGenericFunction_main.ts, 5, 24)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 1, 64)) ->x : T, Symbol(x, Decl(aliasUsageInGenericFunction_main.ts, 5, 54)) ->T : T, Symbol(T, Decl(aliasUsageInGenericFunction_main.ts, 5, 13)) +>foo : (x: T) => T +>T : T +>a : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(aliasUsageInGenericFunction_main.ts, 5, 54)) +>x : T } var r = foo({ a: moduleA }); ->r : { a: typeof moduleA; }, Symbol(r, Decl(aliasUsageInGenericFunction_main.ts, 8, 3)) +>r : { a: typeof moduleA; } >foo({ a: moduleA }) : { a: typeof moduleA; } ->foo : (x: T) => T, Symbol(foo, Decl(aliasUsageInGenericFunction_main.ts, 4, 1)) +>foo : (x: T) => T >{ a: moduleA } : { a: typeof moduleA; } ->a : typeof moduleA, Symbol(a, Decl(aliasUsageInGenericFunction_main.ts, 8, 13)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInGenericFunction_main.ts, 0, 66)) +>a : typeof moduleA +>moduleA : typeof moduleA var r2 = foo({ a: null }); ->r2 : { a: IHasVisualizationModel; }, Symbol(r2, Decl(aliasUsageInGenericFunction_main.ts, 9, 3)) +>r2 : { a: IHasVisualizationModel; } >foo({ a: null }) : { a: IHasVisualizationModel; } ->foo : (x: T) => T, Symbol(foo, Decl(aliasUsageInGenericFunction_main.ts, 4, 1)) +>foo : (x: T) => T >{ a: null } : { a: IHasVisualizationModel; } ->a : IHasVisualizationModel, Symbol(a, Decl(aliasUsageInGenericFunction_main.ts, 9, 14)) +>a : IHasVisualizationModel >null : IHasVisualizationModel ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInGenericFunction_main.ts, 1, 64)) +>IHasVisualizationModel : IHasVisualizationModel >null : null === tests/cases/compiler/aliasUsageInGenericFunction_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInGenericFunction_moduleA.ts === import Backbone = require("aliasUsageInGenericFunction_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInGenericFunction_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInGenericFunction_moduleA.ts, 0, 66)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInGenericFunction_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInGenericFunction_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInIndexerOfClass.symbols b/tests/baselines/reference/aliasUsageInIndexerOfClass.symbols new file mode 100644 index 0000000000000..900653c7fd1c4 --- /dev/null +++ b/tests/baselines/reference/aliasUsageInIndexerOfClass.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/aliasUsageInIndexerOfClass_main.ts === +import Backbone = require("aliasUsageInIndexerOfClass_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInIndexerOfClass_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 65)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 1, 63)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) +} +class N { +>N : Symbol(N, Decl(aliasUsageInIndexerOfClass_main.ts, 4, 1)) + + [idx: string]: IHasVisualizationModel +>idx : Symbol(idx, Decl(aliasUsageInIndexerOfClass_main.ts, 6, 5)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 1, 63)) + + x = moduleA; +>x : Symbol(x, Decl(aliasUsageInIndexerOfClass_main.ts, 6, 41)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 65)) +} +class N2 { +>N2 : Symbol(N2, Decl(aliasUsageInIndexerOfClass_main.ts, 8, 1)) + + [idx: string]: typeof moduleA +>idx : Symbol(idx, Decl(aliasUsageInIndexerOfClass_main.ts, 10, 5)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 65)) + + x: IHasVisualizationModel; +>x : Symbol(x, Decl(aliasUsageInIndexerOfClass_main.ts, 10, 33)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 1, 63)) +} +=== tests/cases/compiler/aliasUsageInIndexerOfClass_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInIndexerOfClass_moduleA.ts === +import Backbone = require("aliasUsageInIndexerOfClass_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInIndexerOfClass_moduleA.ts, 0, 65)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInIndexerOfClass.types b/tests/baselines/reference/aliasUsageInIndexerOfClass.types index af3a88e9762b1..fe67655d4f56a 100644 --- a/tests/baselines/reference/aliasUsageInIndexerOfClass.types +++ b/tests/baselines/reference/aliasUsageInIndexerOfClass.types @@ -1,58 +1,58 @@ === tests/cases/compiler/aliasUsageInIndexerOfClass_main.ts === import Backbone = require("aliasUsageInIndexerOfClass_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInIndexerOfClass_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 65)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 1, 63)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } class N { ->N : N, Symbol(N, Decl(aliasUsageInIndexerOfClass_main.ts, 4, 1)) +>N : N [idx: string]: IHasVisualizationModel ->idx : string, Symbol(idx, Decl(aliasUsageInIndexerOfClass_main.ts, 6, 5)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 1, 63)) +>idx : string +>IHasVisualizationModel : IHasVisualizationModel x = moduleA; ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInIndexerOfClass_main.ts, 6, 41)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 65)) +>x : typeof moduleA +>moduleA : typeof moduleA } class N2 { ->N2 : N2, Symbol(N2, Decl(aliasUsageInIndexerOfClass_main.ts, 8, 1)) +>N2 : N2 [idx: string]: typeof moduleA ->idx : string, Symbol(idx, Decl(aliasUsageInIndexerOfClass_main.ts, 10, 5)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInIndexerOfClass_main.ts, 0, 65)) +>idx : string +>moduleA : typeof moduleA x: IHasVisualizationModel; ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInIndexerOfClass_main.ts, 10, 33)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInIndexerOfClass_main.ts, 1, 63)) +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel } === tests/cases/compiler/aliasUsageInIndexerOfClass_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInIndexerOfClass_moduleA.ts === import Backbone = require("aliasUsageInIndexerOfClass_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInIndexerOfClass_moduleA.ts, 0, 65)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInIndexerOfClass_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInIndexerOfClass_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInObjectLiteral.symbols b/tests/baselines/reference/aliasUsageInObjectLiteral.symbols new file mode 100644 index 0000000000000..a508e9fafc173 --- /dev/null +++ b/tests/baselines/reference/aliasUsageInObjectLiteral.symbols @@ -0,0 +1,60 @@ +=== tests/cases/compiler/aliasUsageInObjectLiteral_main.ts === +import Backbone = require("aliasUsageInObjectLiteral_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInObjectLiteral_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInObjectLiteral_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 1, 62)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInObjectLiteral_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) +} +var a: { x: typeof moduleA } = { x: moduleA }; +>a : Symbol(a, Decl(aliasUsageInObjectLiteral_main.ts, 5, 3)) +>x : Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 5, 8)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) +>x : Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 5, 32)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) + +var b: { x: IHasVisualizationModel } = { x: moduleA }; +>b : Symbol(b, Decl(aliasUsageInObjectLiteral_main.ts, 6, 3)) +>x : Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 6, 8)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 1, 62)) +>x : Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 6, 40)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) + +var c: { y: { z: IHasVisualizationModel } } = { y: { z: moduleA } }; +>c : Symbol(c, Decl(aliasUsageInObjectLiteral_main.ts, 7, 3)) +>y : Symbol(y, Decl(aliasUsageInObjectLiteral_main.ts, 7, 8)) +>z : Symbol(z, Decl(aliasUsageInObjectLiteral_main.ts, 7, 13)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 1, 62)) +>y : Symbol(y, Decl(aliasUsageInObjectLiteral_main.ts, 7, 47)) +>z : Symbol(z, Decl(aliasUsageInObjectLiteral_main.ts, 7, 52)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) + +=== tests/cases/compiler/aliasUsageInObjectLiteral_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInObjectLiteral_moduleA.ts === +import Backbone = require("aliasUsageInObjectLiteral_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInObjectLiteral_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInObjectLiteral_moduleA.ts, 0, 64)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInObjectLiteral_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInObjectLiteral.types b/tests/baselines/reference/aliasUsageInObjectLiteral.types index 8d5eed3ca7b5f..32a78d555b122 100644 --- a/tests/baselines/reference/aliasUsageInObjectLiteral.types +++ b/tests/baselines/reference/aliasUsageInObjectLiteral.types @@ -1,63 +1,63 @@ === tests/cases/compiler/aliasUsageInObjectLiteral_main.ts === import Backbone = require("aliasUsageInObjectLiteral_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInObjectLiteral_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInObjectLiteral_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 1, 62)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInObjectLiteral_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } var a: { x: typeof moduleA } = { x: moduleA }; ->a : { x: typeof moduleA; }, Symbol(a, Decl(aliasUsageInObjectLiteral_main.ts, 5, 3)) ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 5, 8)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) +>a : { x: typeof moduleA; } +>x : typeof moduleA +>moduleA : typeof moduleA >{ x: moduleA } : { x: typeof moduleA; } ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 5, 32)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) +>x : typeof moduleA +>moduleA : typeof moduleA var b: { x: IHasVisualizationModel } = { x: moduleA }; ->b : { x: IHasVisualizationModel; }, Symbol(b, Decl(aliasUsageInObjectLiteral_main.ts, 6, 3)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 6, 8)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 1, 62)) +>b : { x: IHasVisualizationModel; } +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel >{ x: moduleA } : { x: typeof moduleA; } ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInObjectLiteral_main.ts, 6, 40)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) +>x : typeof moduleA +>moduleA : typeof moduleA var c: { y: { z: IHasVisualizationModel } } = { y: { z: moduleA } }; ->c : { y: { z: IHasVisualizationModel; }; }, Symbol(c, Decl(aliasUsageInObjectLiteral_main.ts, 7, 3)) ->y : { z: IHasVisualizationModel; }, Symbol(y, Decl(aliasUsageInObjectLiteral_main.ts, 7, 8)) ->z : IHasVisualizationModel, Symbol(z, Decl(aliasUsageInObjectLiteral_main.ts, 7, 13)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInObjectLiteral_main.ts, 1, 62)) +>c : { y: { z: IHasVisualizationModel; }; } +>y : { z: IHasVisualizationModel; } +>z : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel >{ y: { z: moduleA } } : { y: { z: typeof moduleA; }; } ->y : { z: typeof moduleA; }, Symbol(y, Decl(aliasUsageInObjectLiteral_main.ts, 7, 47)) +>y : { z: typeof moduleA; } >{ z: moduleA } : { z: typeof moduleA; } ->z : typeof moduleA, Symbol(z, Decl(aliasUsageInObjectLiteral_main.ts, 7, 52)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInObjectLiteral_main.ts, 0, 64)) +>z : typeof moduleA +>moduleA : typeof moduleA === tests/cases/compiler/aliasUsageInObjectLiteral_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInObjectLiteral_moduleA.ts === import Backbone = require("aliasUsageInObjectLiteral_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInObjectLiteral_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInObjectLiteral_moduleA.ts, 0, 64)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInObjectLiteral_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInObjectLiteral_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInOrExpression.symbols b/tests/baselines/reference/aliasUsageInOrExpression.symbols new file mode 100644 index 0000000000000..adfba01a1190c --- /dev/null +++ b/tests/baselines/reference/aliasUsageInOrExpression.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/aliasUsageInOrExpression_main.ts === +import Backbone = require("aliasUsageInOrExpression_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInOrExpression_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInOrExpression_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInOrExpression_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) +} +var i: IHasVisualizationModel; +>i : Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) + +var d1 = i || moduleA; +>d1 : Symbol(d1, Decl(aliasUsageInOrExpression_main.ts, 6, 3)) +>i : Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) + +var d2: IHasVisualizationModel = i || moduleA; +>d2 : Symbol(d2, Decl(aliasUsageInOrExpression_main.ts, 7, 3), Decl(aliasUsageInOrExpression_main.ts, 8, 3)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>i : Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) + +var d2: IHasVisualizationModel = moduleA || i; +>d2 : Symbol(d2, Decl(aliasUsageInOrExpression_main.ts, 7, 3), Decl(aliasUsageInOrExpression_main.ts, 8, 3)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) +>i : Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) + +var e: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null || { x: moduleA }; +>e : Symbol(e, Decl(aliasUsageInOrExpression_main.ts, 9, 3)) +>x : Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 8)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>x : Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 41)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>x : Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 79)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) + +var f: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null ? { x: moduleA } : null; +>f : Symbol(f, Decl(aliasUsageInOrExpression_main.ts, 10, 3)) +>x : Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 8)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>x : Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 41)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>x : Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 78)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) + +=== tests/cases/compiler/aliasUsageInOrExpression_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInOrExpression_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInOrExpression_moduleA.ts === +import Backbone = require("aliasUsageInOrExpression_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 63)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInOrExpression.types b/tests/baselines/reference/aliasUsageInOrExpression.types index dace1e1f7fa56..8d3163d481b17 100644 --- a/tests/baselines/reference/aliasUsageInOrExpression.types +++ b/tests/baselines/reference/aliasUsageInOrExpression.types @@ -1,87 +1,87 @@ === tests/cases/compiler/aliasUsageInOrExpression_main.ts === import Backbone = require("aliasUsageInOrExpression_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInOrExpression_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } var i: IHasVisualizationModel; ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>i : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel var d1 = i || moduleA; ->d1 : IHasVisualizationModel, Symbol(d1, Decl(aliasUsageInOrExpression_main.ts, 6, 3)) +>d1 : IHasVisualizationModel >i || moduleA : IHasVisualizationModel ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) +>i : IHasVisualizationModel +>moduleA : typeof moduleA var d2: IHasVisualizationModel = i || moduleA; ->d2 : IHasVisualizationModel, Symbol(d2, Decl(aliasUsageInOrExpression_main.ts, 7, 3), Decl(aliasUsageInOrExpression_main.ts, 8, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>d2 : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel >i || moduleA : IHasVisualizationModel ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) +>i : IHasVisualizationModel +>moduleA : typeof moduleA var d2: IHasVisualizationModel = moduleA || i; ->d2 : IHasVisualizationModel, Symbol(d2, Decl(aliasUsageInOrExpression_main.ts, 7, 3), Decl(aliasUsageInOrExpression_main.ts, 8, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>d2 : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel >moduleA || i : IHasVisualizationModel ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) +>moduleA : typeof moduleA +>i : IHasVisualizationModel var e: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null || { x: moduleA }; ->e : { x: IHasVisualizationModel; }, Symbol(e, Decl(aliasUsageInOrExpression_main.ts, 9, 3)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 8)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>e : { x: IHasVisualizationModel; } +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel ><{ x: IHasVisualizationModel }>null || { x: moduleA } : { x: IHasVisualizationModel; } ><{ x: IHasVisualizationModel }>null : { x: IHasVisualizationModel; } ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 41)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel >null : null >{ x: moduleA } : { x: typeof moduleA; } ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 79)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) +>x : typeof moduleA +>moduleA : typeof moduleA var f: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null ? { x: moduleA } : null; ->f : { x: IHasVisualizationModel; }, Symbol(f, Decl(aliasUsageInOrExpression_main.ts, 10, 3)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 8)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>f : { x: IHasVisualizationModel; } +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel ><{ x: IHasVisualizationModel }>null ? { x: moduleA } : null : { x: typeof moduleA; } ><{ x: IHasVisualizationModel }>null : { x: IHasVisualizationModel; } ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 41)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) +>x : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel >null : null >{ x: moduleA } : { x: typeof moduleA; } ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 78)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) +>x : typeof moduleA +>moduleA : typeof moduleA >null : null === tests/cases/compiler/aliasUsageInOrExpression_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInOrExpression_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInOrExpression_moduleA.ts === import Backbone = require("aliasUsageInOrExpression_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 63)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInOrExpression.types.pull b/tests/baselines/reference/aliasUsageInOrExpression.types.pull deleted file mode 100644 index 37fc6d54f339c..0000000000000 --- a/tests/baselines/reference/aliasUsageInOrExpression.types.pull +++ /dev/null @@ -1,88 +0,0 @@ -=== tests/cases/compiler/aliasUsageInOrExpression_main.ts === -import Backbone = require("aliasUsageInOrExpression_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_main.ts, 0, 0)) - -import moduleA = require("aliasUsageInOrExpression_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) - -interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) - - VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) -} -var i: IHasVisualizationModel; ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) - -var d1 = i || moduleA; ->d1 : typeof moduleA, Symbol(d1, Decl(aliasUsageInOrExpression_main.ts, 6, 3)) ->i || moduleA : typeof moduleA ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) - -var d2: IHasVisualizationModel = i || moduleA; ->d2 : IHasVisualizationModel, Symbol(d2, Decl(aliasUsageInOrExpression_main.ts, 7, 3), Decl(aliasUsageInOrExpression_main.ts, 8, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) ->i || moduleA : typeof moduleA ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) - -var d2: IHasVisualizationModel = moduleA || i; ->d2 : IHasVisualizationModel, Symbol(d2, Decl(aliasUsageInOrExpression_main.ts, 7, 3), Decl(aliasUsageInOrExpression_main.ts, 8, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) ->moduleA || i : typeof moduleA ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInOrExpression_main.ts, 5, 3)) - -var e: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null || { x: moduleA }; ->e : { x: IHasVisualizationModel; }, Symbol(e, Decl(aliasUsageInOrExpression_main.ts, 9, 3)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 8)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) -><{ x: IHasVisualizationModel }>null || { x: moduleA } : { x: IHasVisualizationModel; } -><{ x: IHasVisualizationModel }>null : { x: IHasVisualizationModel; } ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 41)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) ->null : null ->{ x: moduleA } : { x: typeof moduleA; } ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 9, 79)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) - -var f: { x: IHasVisualizationModel } = <{ x: IHasVisualizationModel }>null ? { x: moduleA } : null; ->f : { x: IHasVisualizationModel; }, Symbol(f, Decl(aliasUsageInOrExpression_main.ts, 10, 3)) ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 8)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) -><{ x: IHasVisualizationModel }>null ? { x: moduleA } : null : { x: typeof moduleA; } -><{ x: IHasVisualizationModel }>null : { x: IHasVisualizationModel; } ->x : IHasVisualizationModel, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 41)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInOrExpression_main.ts, 1, 61)) ->null : null ->{ x: moduleA } : { x: typeof moduleA; } ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInOrExpression_main.ts, 10, 78)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInOrExpression_main.ts, 0, 63)) ->null : null - -=== tests/cases/compiler/aliasUsageInOrExpression_backbone.ts === -export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) - - public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInOrExpression_backbone.ts, 0, 20)) -} - -=== tests/cases/compiler/aliasUsageInOrExpression_moduleA.ts === -import Backbone = require("aliasUsageInOrExpression_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 0)) - -export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 63)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInOrExpression_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInOrExpression_backbone.ts, 0, 0)) - - // interesting stuff here -} - diff --git a/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.symbols b/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.symbols new file mode 100644 index 0000000000000..f3ca1f7ec37f9 --- /dev/null +++ b/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.symbols @@ -0,0 +1,55 @@ +=== tests/cases/compiler/aliasUsageInTypeArgumentOfExtendsClause_main.ts === +import Backbone = require("aliasUsageInTypeArgumentOfExtendsClause_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInTypeArgumentOfExtendsClause_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 78)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 1, 76)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) +} +class C { +>C : Symbol(C, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 4, 1)) +>T : Symbol(T, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 5, 8)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 1, 76)) + + x: T; +>x : Symbol(x, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 5, 43)) +>T : Symbol(T, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 5, 8)) +} +class D extends C { +>D : Symbol(D, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 7, 1)) +>C : Symbol(C, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 4, 1)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 1, 76)) + + x = moduleA; +>x : Symbol(x, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 8, 43)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 78)) +} +=== tests/cases/compiler/aliasUsageInTypeArgumentOfExtendsClause_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts === +import Backbone = require("aliasUsageInTypeArgumentOfExtendsClause_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts, 0, 78)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.types b/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.types index aef12f4fb23e8..460b422a2a411 100644 --- a/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.types +++ b/tests/baselines/reference/aliasUsageInTypeArgumentOfExtendsClause.types @@ -1,54 +1,54 @@ === tests/cases/compiler/aliasUsageInTypeArgumentOfExtendsClause_main.ts === import Backbone = require("aliasUsageInTypeArgumentOfExtendsClause_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInTypeArgumentOfExtendsClause_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 78)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 1, 76)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } class C { ->C : C, Symbol(C, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 4, 1)) ->T : T, Symbol(T, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 5, 8)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 1, 76)) +>C : C +>T : T +>IHasVisualizationModel : IHasVisualizationModel x: T; ->x : T, Symbol(x, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 5, 43)) ->T : T, Symbol(T, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 5, 8)) +>x : T +>T : T } class D extends C { ->D : D, Symbol(D, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 7, 1)) ->C : C, Symbol(C, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 4, 1)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 1, 76)) +>D : D +>C : C +>IHasVisualizationModel : IHasVisualizationModel x = moduleA; ->x : typeof moduleA, Symbol(x, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 8, 43)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInTypeArgumentOfExtendsClause_main.ts, 0, 78)) +>x : typeof moduleA +>moduleA : typeof moduleA } === tests/cases/compiler/aliasUsageInTypeArgumentOfExtendsClause_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts === import Backbone = require("aliasUsageInTypeArgumentOfExtendsClause_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts, 0, 78)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInTypeArgumentOfExtendsClause_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInTypeArgumentOfExtendsClause_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsageInVarAssignment.symbols b/tests/baselines/reference/aliasUsageInVarAssignment.symbols new file mode 100644 index 0000000000000..d1996fe8ecb8a --- /dev/null +++ b/tests/baselines/reference/aliasUsageInVarAssignment.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/aliasUsageInVarAssignment_main.ts === +import Backbone = require("aliasUsageInVarAssignment_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInVarAssignment_main.ts, 0, 0)) + +import moduleA = require("aliasUsageInVarAssignment_moduleA"); +>moduleA : Symbol(moduleA, Decl(aliasUsageInVarAssignment_main.ts, 0, 64)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInVarAssignment_main.ts, 1, 62)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInVarAssignment_main.ts, 2, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInVarAssignment_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) +} +var i: IHasVisualizationModel; +>i : Symbol(i, Decl(aliasUsageInVarAssignment_main.ts, 5, 3)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(aliasUsageInVarAssignment_main.ts, 1, 62)) + +var m: typeof moduleA = i; +>m : Symbol(m, Decl(aliasUsageInVarAssignment_main.ts, 6, 3)) +>moduleA : Symbol(moduleA, Decl(aliasUsageInVarAssignment_main.ts, 0, 64)) +>i : Symbol(i, Decl(aliasUsageInVarAssignment_main.ts, 5, 3)) + +=== tests/cases/compiler/aliasUsageInVarAssignment_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/aliasUsageInVarAssignment_moduleA.ts === +import Backbone = require("aliasUsageInVarAssignment_backbone"); +>Backbone : Symbol(Backbone, Decl(aliasUsageInVarAssignment_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(aliasUsageInVarAssignment_moduleA.ts, 0, 64)) +>Backbone.Model : Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(aliasUsageInVarAssignment_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) + + // interesting stuff here +} + diff --git a/tests/baselines/reference/aliasUsageInVarAssignment.types b/tests/baselines/reference/aliasUsageInVarAssignment.types index b31cd5229789d..b5d20a1b37228 100644 --- a/tests/baselines/reference/aliasUsageInVarAssignment.types +++ b/tests/baselines/reference/aliasUsageInVarAssignment.types @@ -1,45 +1,45 @@ === tests/cases/compiler/aliasUsageInVarAssignment_main.ts === import Backbone = require("aliasUsageInVarAssignment_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInVarAssignment_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("aliasUsageInVarAssignment_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInVarAssignment_main.ts, 0, 64)) +>moduleA : typeof moduleA interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInVarAssignment_main.ts, 1, 62)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(aliasUsageInVarAssignment_main.ts, 2, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInVarAssignment_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } var i: IHasVisualizationModel; ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInVarAssignment_main.ts, 5, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(aliasUsageInVarAssignment_main.ts, 1, 62)) +>i : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel var m: typeof moduleA = i; ->m : typeof moduleA, Symbol(m, Decl(aliasUsageInVarAssignment_main.ts, 6, 3)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(aliasUsageInVarAssignment_main.ts, 0, 64)) ->i : IHasVisualizationModel, Symbol(i, Decl(aliasUsageInVarAssignment_main.ts, 5, 3)) +>m : typeof moduleA +>moduleA : typeof moduleA +>i : IHasVisualizationModel === tests/cases/compiler/aliasUsageInVarAssignment_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/aliasUsageInVarAssignment_moduleA.ts === import Backbone = require("aliasUsageInVarAssignment_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInVarAssignment_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(aliasUsageInVarAssignment_moduleA.ts, 0, 64)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(aliasUsageInVarAssignment_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(aliasUsageInVarAssignment_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } diff --git a/tests/baselines/reference/aliasUsedAsNameValue.symbols b/tests/baselines/reference/aliasUsedAsNameValue.symbols new file mode 100644 index 0000000000000..a816e2b2c63e6 --- /dev/null +++ b/tests/baselines/reference/aliasUsedAsNameValue.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/aliasUsedAsNameValue_2.ts === +/// +/// +import mod = require("aliasUsedAsNameValue_0"); +>mod : Symbol(mod, Decl(aliasUsedAsNameValue_2.ts, 0, 0)) + +import b = require("aliasUsedAsNameValue_1"); +>b : Symbol(b, Decl(aliasUsedAsNameValue_2.ts, 2, 47)) + +export var a = function () { +>a : Symbol(a, Decl(aliasUsedAsNameValue_2.ts, 5, 10)) + + //var x = mod.id; // TODO needed hack that mod is loaded + b.b(mod); +>b.b : Symbol(b.b, Decl(aliasUsedAsNameValue_1.ts, 0, 0)) +>b : Symbol(b, Decl(aliasUsedAsNameValue_2.ts, 2, 47)) +>b : Symbol(b.b, Decl(aliasUsedAsNameValue_1.ts, 0, 0)) +>mod : Symbol(mod, Decl(aliasUsedAsNameValue_2.ts, 0, 0)) +} + +=== tests/cases/compiler/aliasUsedAsNameValue_0.ts === +export var id: number; +>id : Symbol(id, Decl(aliasUsedAsNameValue_0.ts, 0, 10)) + +=== tests/cases/compiler/aliasUsedAsNameValue_1.ts === +export function b(a: any): any { return null; } +>b : Symbol(b, Decl(aliasUsedAsNameValue_1.ts, 0, 0)) +>a : Symbol(a, Decl(aliasUsedAsNameValue_1.ts, 0, 18)) + diff --git a/tests/baselines/reference/aliasUsedAsNameValue.types b/tests/baselines/reference/aliasUsedAsNameValue.types index fc006f03a1bb8..9c519786c7684 100644 --- a/tests/baselines/reference/aliasUsedAsNameValue.types +++ b/tests/baselines/reference/aliasUsedAsNameValue.types @@ -2,31 +2,31 @@ /// /// import mod = require("aliasUsedAsNameValue_0"); ->mod : typeof mod, Symbol(mod, Decl(aliasUsedAsNameValue_2.ts, 0, 0)) +>mod : typeof mod import b = require("aliasUsedAsNameValue_1"); ->b : typeof b, Symbol(b, Decl(aliasUsedAsNameValue_2.ts, 2, 47)) +>b : typeof b export var a = function () { ->a : () => void, Symbol(a, Decl(aliasUsedAsNameValue_2.ts, 5, 10)) +>a : () => void >function () { //var x = mod.id; // TODO needed hack that mod is loaded b.b(mod);} : () => void //var x = mod.id; // TODO needed hack that mod is loaded b.b(mod); >b.b(mod) : any ->b.b : (a: any) => any, Symbol(b.b, Decl(aliasUsedAsNameValue_1.ts, 0, 0)) ->b : typeof b, Symbol(b, Decl(aliasUsedAsNameValue_2.ts, 2, 47)) ->b : (a: any) => any, Symbol(b.b, Decl(aliasUsedAsNameValue_1.ts, 0, 0)) ->mod : typeof mod, Symbol(mod, Decl(aliasUsedAsNameValue_2.ts, 0, 0)) +>b.b : (a: any) => any +>b : typeof b +>b : (a: any) => any +>mod : typeof mod } === tests/cases/compiler/aliasUsedAsNameValue_0.ts === export var id: number; ->id : number, Symbol(id, Decl(aliasUsedAsNameValue_0.ts, 0, 10)) +>id : number === tests/cases/compiler/aliasUsedAsNameValue_1.ts === export function b(a: any): any { return null; } ->b : (a: any) => any, Symbol(b, Decl(aliasUsedAsNameValue_1.ts, 0, 0)) ->a : any, Symbol(a, Decl(aliasUsedAsNameValue_1.ts, 0, 18)) +>b : (a: any) => any +>a : any >null : null diff --git a/tests/baselines/reference/ambientClassDeclarationWithExtends.symbols b/tests/baselines/reference/ambientClassDeclarationWithExtends.symbols new file mode 100644 index 0000000000000..71d1e1a66d832 --- /dev/null +++ b/tests/baselines/reference/ambientClassDeclarationWithExtends.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/ambientClassDeclarationWithExtends.ts === +declare class A { } +>A : Symbol(A, Decl(ambientClassDeclarationWithExtends.ts, 0, 0)) + +declare class B extends A { } +>B : Symbol(B, Decl(ambientClassDeclarationWithExtends.ts, 0, 19)) +>A : Symbol(A, Decl(ambientClassDeclarationWithExtends.ts, 0, 0)) + diff --git a/tests/baselines/reference/ambientClassDeclarationWithExtends.types b/tests/baselines/reference/ambientClassDeclarationWithExtends.types index b8d3df42f2bdf..7609856882bed 100644 --- a/tests/baselines/reference/ambientClassDeclarationWithExtends.types +++ b/tests/baselines/reference/ambientClassDeclarationWithExtends.types @@ -1,8 +1,8 @@ === tests/cases/compiler/ambientClassDeclarationWithExtends.ts === declare class A { } ->A : A, Symbol(A, Decl(ambientClassDeclarationWithExtends.ts, 0, 0)) +>A : A declare class B extends A { } ->B : B, Symbol(B, Decl(ambientClassDeclarationWithExtends.ts, 0, 19)) ->A : A, Symbol(A, Decl(ambientClassDeclarationWithExtends.ts, 0, 0)) +>B : B +>A : A diff --git a/tests/baselines/reference/ambientDeclarations.symbols b/tests/baselines/reference/ambientDeclarations.symbols new file mode 100644 index 0000000000000..e5b85ae7c2cf7 --- /dev/null +++ b/tests/baselines/reference/ambientDeclarations.symbols @@ -0,0 +1,167 @@ +=== tests/cases/conformance/ambient/ambientDeclarations.ts === +// Ambient variable without type annotation +declare var n; +>n : Symbol(n, Decl(ambientDeclarations.ts, 1, 11)) + +// Ambient variable with type annotation +declare var m: string; +>m : Symbol(m, Decl(ambientDeclarations.ts, 4, 11)) + +// Ambient function with no type annotations +declare function fn1(); +>fn1 : Symbol(fn1, Decl(ambientDeclarations.ts, 4, 22)) + +// Ambient function with type annotations +declare function fn2(n: string): number; +>fn2 : Symbol(fn2, Decl(ambientDeclarations.ts, 7, 23)) +>n : Symbol(n, Decl(ambientDeclarations.ts, 10, 21)) + +// Ambient function with valid overloads +declare function fn3(n: string): number; +>fn3 : Symbol(fn3, Decl(ambientDeclarations.ts, 10, 40)) +>n : Symbol(n, Decl(ambientDeclarations.ts, 13, 21)) + +declare function fn4(n: number, y: number): string; +>fn4 : Symbol(fn4, Decl(ambientDeclarations.ts, 13, 40)) +>n : Symbol(n, Decl(ambientDeclarations.ts, 14, 21)) +>y : Symbol(y, Decl(ambientDeclarations.ts, 14, 31)) + +// Ambient function with optional parameters +declare function fn5(x, y?); +>fn5 : Symbol(fn5, Decl(ambientDeclarations.ts, 14, 51)) +>x : Symbol(x, Decl(ambientDeclarations.ts, 17, 21)) +>y : Symbol(y, Decl(ambientDeclarations.ts, 17, 23)) + +declare function fn6(e?); +>fn6 : Symbol(fn6, Decl(ambientDeclarations.ts, 17, 28)) +>e : Symbol(e, Decl(ambientDeclarations.ts, 18, 21)) + +declare function fn7(x, y?, ...z); +>fn7 : Symbol(fn7, Decl(ambientDeclarations.ts, 18, 25)) +>x : Symbol(x, Decl(ambientDeclarations.ts, 19, 21)) +>y : Symbol(y, Decl(ambientDeclarations.ts, 19, 23)) +>z : Symbol(z, Decl(ambientDeclarations.ts, 19, 27)) + +declare function fn8(y?, ...z: number[]); +>fn8 : Symbol(fn8, Decl(ambientDeclarations.ts, 19, 34)) +>y : Symbol(y, Decl(ambientDeclarations.ts, 20, 21)) +>z : Symbol(z, Decl(ambientDeclarations.ts, 20, 24)) + +declare function fn9(...q: {}[]); +>fn9 : Symbol(fn9, Decl(ambientDeclarations.ts, 20, 41)) +>q : Symbol(q, Decl(ambientDeclarations.ts, 21, 21)) + +declare function fn10(...q: T[]); +>fn10 : Symbol(fn10, Decl(ambientDeclarations.ts, 21, 33)) +>T : Symbol(T, Decl(ambientDeclarations.ts, 22, 22)) +>q : Symbol(q, Decl(ambientDeclarations.ts, 22, 25)) +>T : Symbol(T, Decl(ambientDeclarations.ts, 22, 22)) + +// Ambient class +declare class cls { +>cls : Symbol(cls, Decl(ambientDeclarations.ts, 22, 36)) + + constructor(); + method(): cls; +>method : Symbol(method, Decl(ambientDeclarations.ts, 26, 18)) +>cls : Symbol(cls, Decl(ambientDeclarations.ts, 22, 36)) + + static static(p): number; +>static : Symbol(cls.static, Decl(ambientDeclarations.ts, 27, 18)) +>p : Symbol(p, Decl(ambientDeclarations.ts, 28, 18)) + + static q; +>q : Symbol(cls.q, Decl(ambientDeclarations.ts, 28, 29)) + + private fn(); +>fn : Symbol(fn, Decl(ambientDeclarations.ts, 29, 13)) + + private static fns(); +>fns : Symbol(cls.fns, Decl(ambientDeclarations.ts, 30, 17)) +} + +// Ambient enum +declare enum E1 { +>E1 : Symbol(E1, Decl(ambientDeclarations.ts, 32, 1)) + + x, +>x : Symbol(E1.x, Decl(ambientDeclarations.ts, 35, 17)) + + y, +>y : Symbol(E1.y, Decl(ambientDeclarations.ts, 36, 6)) + + z +>z : Symbol(E1.z, Decl(ambientDeclarations.ts, 37, 6)) +} + +// Ambient enum with integer literal initializer +declare enum E2 { +>E2 : Symbol(E2, Decl(ambientDeclarations.ts, 39, 1)) + + q, +>q : Symbol(E2.q, Decl(ambientDeclarations.ts, 42, 17)) + + a = 1, +>a : Symbol(E2.a, Decl(ambientDeclarations.ts, 43, 6)) + + b, +>b : Symbol(E2.b, Decl(ambientDeclarations.ts, 44, 10)) + + c = 2, +>c : Symbol(E2.c, Decl(ambientDeclarations.ts, 45, 6)) + + d +>d : Symbol(E2.d, Decl(ambientDeclarations.ts, 46, 10)) +} + +// Ambient enum members are always exported with or without export keyword +declare enum E3 { +>E3 : Symbol(E3, Decl(ambientDeclarations.ts, 48, 1), Decl(ambientDeclarations.ts, 53, 1)) + + A +>A : Symbol(E3.A, Decl(ambientDeclarations.ts, 51, 17)) +} +declare module E3 { +>E3 : Symbol(E3, Decl(ambientDeclarations.ts, 48, 1), Decl(ambientDeclarations.ts, 53, 1)) + + var B; +>B : Symbol(B, Decl(ambientDeclarations.ts, 55, 7)) +} +var x = E3.B; +>x : Symbol(x, Decl(ambientDeclarations.ts, 57, 3)) +>E3.B : Symbol(E3.B, Decl(ambientDeclarations.ts, 55, 7)) +>E3 : Symbol(E3, Decl(ambientDeclarations.ts, 48, 1), Decl(ambientDeclarations.ts, 53, 1)) +>B : Symbol(E3.B, Decl(ambientDeclarations.ts, 55, 7)) + +// Ambient module +declare module M1 { +>M1 : Symbol(M1, Decl(ambientDeclarations.ts, 57, 13)) + + var x; +>x : Symbol(x, Decl(ambientDeclarations.ts, 61, 7)) + + function fn(): number; +>fn : Symbol(fn, Decl(ambientDeclarations.ts, 61, 10)) +} + +// Ambient module members are always exported with or without export keyword +var p = M1.x; +>p : Symbol(p, Decl(ambientDeclarations.ts, 66, 3)) +>M1.x : Symbol(M1.x, Decl(ambientDeclarations.ts, 61, 7)) +>M1 : Symbol(M1, Decl(ambientDeclarations.ts, 57, 13)) +>x : Symbol(M1.x, Decl(ambientDeclarations.ts, 61, 7)) + +var q = M1.fn(); +>q : Symbol(q, Decl(ambientDeclarations.ts, 67, 3)) +>M1.fn : Symbol(M1.fn, Decl(ambientDeclarations.ts, 61, 10)) +>M1 : Symbol(M1, Decl(ambientDeclarations.ts, 57, 13)) +>fn : Symbol(M1.fn, Decl(ambientDeclarations.ts, 61, 10)) + +// Ambient external module in the global module +// Ambient external module with a string literal name that is a top level external module name +declare module 'external1' { + var q; +>q : Symbol(q, Decl(ambientDeclarations.ts, 72, 7)) +} + + diff --git a/tests/baselines/reference/ambientDeclarations.types b/tests/baselines/reference/ambientDeclarations.types index 0bc407c7ef48e..f44d49cfc5783 100644 --- a/tests/baselines/reference/ambientDeclarations.types +++ b/tests/baselines/reference/ambientDeclarations.types @@ -1,170 +1,170 @@ === tests/cases/conformance/ambient/ambientDeclarations.ts === // Ambient variable without type annotation declare var n; ->n : any, Symbol(n, Decl(ambientDeclarations.ts, 1, 11)) +>n : any // Ambient variable with type annotation declare var m: string; ->m : string, Symbol(m, Decl(ambientDeclarations.ts, 4, 11)) +>m : string // Ambient function with no type annotations declare function fn1(); ->fn1 : () => any, Symbol(fn1, Decl(ambientDeclarations.ts, 4, 22)) +>fn1 : () => any // Ambient function with type annotations declare function fn2(n: string): number; ->fn2 : (n: string) => number, Symbol(fn2, Decl(ambientDeclarations.ts, 7, 23)) ->n : string, Symbol(n, Decl(ambientDeclarations.ts, 10, 21)) +>fn2 : (n: string) => number +>n : string // Ambient function with valid overloads declare function fn3(n: string): number; ->fn3 : (n: string) => number, Symbol(fn3, Decl(ambientDeclarations.ts, 10, 40)) ->n : string, Symbol(n, Decl(ambientDeclarations.ts, 13, 21)) +>fn3 : (n: string) => number +>n : string declare function fn4(n: number, y: number): string; ->fn4 : (n: number, y: number) => string, Symbol(fn4, Decl(ambientDeclarations.ts, 13, 40)) ->n : number, Symbol(n, Decl(ambientDeclarations.ts, 14, 21)) ->y : number, Symbol(y, Decl(ambientDeclarations.ts, 14, 31)) +>fn4 : (n: number, y: number) => string +>n : number +>y : number // Ambient function with optional parameters declare function fn5(x, y?); ->fn5 : (x: any, y?: any) => any, Symbol(fn5, Decl(ambientDeclarations.ts, 14, 51)) ->x : any, Symbol(x, Decl(ambientDeclarations.ts, 17, 21)) ->y : any, Symbol(y, Decl(ambientDeclarations.ts, 17, 23)) +>fn5 : (x: any, y?: any) => any +>x : any +>y : any declare function fn6(e?); ->fn6 : (e?: any) => any, Symbol(fn6, Decl(ambientDeclarations.ts, 17, 28)) ->e : any, Symbol(e, Decl(ambientDeclarations.ts, 18, 21)) +>fn6 : (e?: any) => any +>e : any declare function fn7(x, y?, ...z); ->fn7 : (x: any, y?: any, ...z: any[]) => any, Symbol(fn7, Decl(ambientDeclarations.ts, 18, 25)) ->x : any, Symbol(x, Decl(ambientDeclarations.ts, 19, 21)) ->y : any, Symbol(y, Decl(ambientDeclarations.ts, 19, 23)) ->z : any[], Symbol(z, Decl(ambientDeclarations.ts, 19, 27)) +>fn7 : (x: any, y?: any, ...z: any[]) => any +>x : any +>y : any +>z : any[] declare function fn8(y?, ...z: number[]); ->fn8 : (y?: any, ...z: number[]) => any, Symbol(fn8, Decl(ambientDeclarations.ts, 19, 34)) ->y : any, Symbol(y, Decl(ambientDeclarations.ts, 20, 21)) ->z : number[], Symbol(z, Decl(ambientDeclarations.ts, 20, 24)) +>fn8 : (y?: any, ...z: number[]) => any +>y : any +>z : number[] declare function fn9(...q: {}[]); ->fn9 : (...q: {}[]) => any, Symbol(fn9, Decl(ambientDeclarations.ts, 20, 41)) ->q : {}[], Symbol(q, Decl(ambientDeclarations.ts, 21, 21)) +>fn9 : (...q: {}[]) => any +>q : {}[] declare function fn10(...q: T[]); ->fn10 : (...q: T[]) => any, Symbol(fn10, Decl(ambientDeclarations.ts, 21, 33)) ->T : T, Symbol(T, Decl(ambientDeclarations.ts, 22, 22)) ->q : T[], Symbol(q, Decl(ambientDeclarations.ts, 22, 25)) ->T : T, Symbol(T, Decl(ambientDeclarations.ts, 22, 22)) +>fn10 : (...q: T[]) => any +>T : T +>q : T[] +>T : T // Ambient class declare class cls { ->cls : cls, Symbol(cls, Decl(ambientDeclarations.ts, 22, 36)) +>cls : cls constructor(); method(): cls; ->method : () => cls, Symbol(method, Decl(ambientDeclarations.ts, 26, 18)) ->cls : cls, Symbol(cls, Decl(ambientDeclarations.ts, 22, 36)) +>method : () => cls +>cls : cls static static(p): number; ->static : (p: any) => number, Symbol(cls.static, Decl(ambientDeclarations.ts, 27, 18)) ->p : any, Symbol(p, Decl(ambientDeclarations.ts, 28, 18)) +>static : (p: any) => number +>p : any static q; ->q : any, Symbol(cls.q, Decl(ambientDeclarations.ts, 28, 29)) +>q : any private fn(); ->fn : () => any, Symbol(fn, Decl(ambientDeclarations.ts, 29, 13)) +>fn : () => any private static fns(); ->fns : () => any, Symbol(cls.fns, Decl(ambientDeclarations.ts, 30, 17)) +>fns : () => any } // Ambient enum declare enum E1 { ->E1 : E1, Symbol(E1, Decl(ambientDeclarations.ts, 32, 1)) +>E1 : E1 x, ->x : E1, Symbol(E1.x, Decl(ambientDeclarations.ts, 35, 17)) +>x : E1 y, ->y : E1, Symbol(E1.y, Decl(ambientDeclarations.ts, 36, 6)) +>y : E1 z ->z : E1, Symbol(E1.z, Decl(ambientDeclarations.ts, 37, 6)) +>z : E1 } // Ambient enum with integer literal initializer declare enum E2 { ->E2 : E2, Symbol(E2, Decl(ambientDeclarations.ts, 39, 1)) +>E2 : E2 q, ->q : E2, Symbol(E2.q, Decl(ambientDeclarations.ts, 42, 17)) +>q : E2 a = 1, ->a : E2, Symbol(E2.a, Decl(ambientDeclarations.ts, 43, 6)) +>a : E2 >1 : number b, ->b : E2, Symbol(E2.b, Decl(ambientDeclarations.ts, 44, 10)) +>b : E2 c = 2, ->c : E2, Symbol(E2.c, Decl(ambientDeclarations.ts, 45, 6)) +>c : E2 >2 : number d ->d : E2, Symbol(E2.d, Decl(ambientDeclarations.ts, 46, 10)) +>d : E2 } // Ambient enum members are always exported with or without export keyword declare enum E3 { ->E3 : E3, Symbol(E3, Decl(ambientDeclarations.ts, 48, 1), Decl(ambientDeclarations.ts, 53, 1)) +>E3 : E3 A ->A : E3, Symbol(E3.A, Decl(ambientDeclarations.ts, 51, 17)) +>A : E3 } declare module E3 { ->E3 : typeof E3, Symbol(E3, Decl(ambientDeclarations.ts, 48, 1), Decl(ambientDeclarations.ts, 53, 1)) +>E3 : typeof E3 var B; ->B : any, Symbol(B, Decl(ambientDeclarations.ts, 55, 7)) +>B : any } var x = E3.B; ->x : any, Symbol(x, Decl(ambientDeclarations.ts, 57, 3)) ->E3.B : any, Symbol(E3.B, Decl(ambientDeclarations.ts, 55, 7)) ->E3 : typeof E3, Symbol(E3, Decl(ambientDeclarations.ts, 48, 1), Decl(ambientDeclarations.ts, 53, 1)) ->B : any, Symbol(E3.B, Decl(ambientDeclarations.ts, 55, 7)) +>x : any +>E3.B : any +>E3 : typeof E3 +>B : any // Ambient module declare module M1 { ->M1 : typeof M1, Symbol(M1, Decl(ambientDeclarations.ts, 57, 13)) +>M1 : typeof M1 var x; ->x : any, Symbol(x, Decl(ambientDeclarations.ts, 61, 7)) +>x : any function fn(): number; ->fn : () => number, Symbol(fn, Decl(ambientDeclarations.ts, 61, 10)) +>fn : () => number } // Ambient module members are always exported with or without export keyword var p = M1.x; ->p : any, Symbol(p, Decl(ambientDeclarations.ts, 66, 3)) ->M1.x : any, Symbol(M1.x, Decl(ambientDeclarations.ts, 61, 7)) ->M1 : typeof M1, Symbol(M1, Decl(ambientDeclarations.ts, 57, 13)) ->x : any, Symbol(M1.x, Decl(ambientDeclarations.ts, 61, 7)) +>p : any +>M1.x : any +>M1 : typeof M1 +>x : any var q = M1.fn(); ->q : number, Symbol(q, Decl(ambientDeclarations.ts, 67, 3)) +>q : number >M1.fn() : number ->M1.fn : () => number, Symbol(M1.fn, Decl(ambientDeclarations.ts, 61, 10)) ->M1 : typeof M1, Symbol(M1, Decl(ambientDeclarations.ts, 57, 13)) ->fn : () => number, Symbol(M1.fn, Decl(ambientDeclarations.ts, 61, 10)) +>M1.fn : () => number +>M1 : typeof M1 +>fn : () => number // Ambient external module in the global module // Ambient external module with a string literal name that is a top level external module name declare module 'external1' { var q; ->q : any, Symbol(q, Decl(ambientDeclarations.ts, 72, 7)) +>q : any } diff --git a/tests/baselines/reference/ambientEnumElementInitializer1.symbols b/tests/baselines/reference/ambientEnumElementInitializer1.symbols new file mode 100644 index 0000000000000..84eb56abcbce9 --- /dev/null +++ b/tests/baselines/reference/ambientEnumElementInitializer1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/ambientEnumElementInitializer1.ts === +declare enum E { +>E : Symbol(E, Decl(ambientEnumElementInitializer1.ts, 0, 0)) + + e = 3 +>e : Symbol(E.e, Decl(ambientEnumElementInitializer1.ts, 0, 16)) +} diff --git a/tests/baselines/reference/ambientEnumElementInitializer1.types b/tests/baselines/reference/ambientEnumElementInitializer1.types index 7239ccac24615..97db9f199d38c 100644 --- a/tests/baselines/reference/ambientEnumElementInitializer1.types +++ b/tests/baselines/reference/ambientEnumElementInitializer1.types @@ -1,8 +1,8 @@ === tests/cases/compiler/ambientEnumElementInitializer1.ts === declare enum E { ->E : E, Symbol(E, Decl(ambientEnumElementInitializer1.ts, 0, 0)) +>E : E e = 3 ->e : E, Symbol(E.e, Decl(ambientEnumElementInitializer1.ts, 0, 16)) +>e : E >3 : number } diff --git a/tests/baselines/reference/ambientEnumElementInitializer2.symbols b/tests/baselines/reference/ambientEnumElementInitializer2.symbols new file mode 100644 index 0000000000000..04939d3389615 --- /dev/null +++ b/tests/baselines/reference/ambientEnumElementInitializer2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/ambientEnumElementInitializer2.ts === +declare enum E { +>E : Symbol(E, Decl(ambientEnumElementInitializer2.ts, 0, 0)) + + e = -3 // Negative +>e : Symbol(E.e, Decl(ambientEnumElementInitializer2.ts, 0, 16)) +} diff --git a/tests/baselines/reference/ambientEnumElementInitializer2.types b/tests/baselines/reference/ambientEnumElementInitializer2.types index 61ef74cb6bfdd..7217bc8e6fdb0 100644 --- a/tests/baselines/reference/ambientEnumElementInitializer2.types +++ b/tests/baselines/reference/ambientEnumElementInitializer2.types @@ -1,9 +1,9 @@ === tests/cases/compiler/ambientEnumElementInitializer2.ts === declare enum E { ->E : E, Symbol(E, Decl(ambientEnumElementInitializer2.ts, 0, 0)) +>E : E e = -3 // Negative ->e : E, Symbol(E.e, Decl(ambientEnumElementInitializer2.ts, 0, 16)) +>e : E >-3 : number >3 : number } diff --git a/tests/baselines/reference/ambientEnumElementInitializer4.symbols b/tests/baselines/reference/ambientEnumElementInitializer4.symbols new file mode 100644 index 0000000000000..de17c6702bbe0 --- /dev/null +++ b/tests/baselines/reference/ambientEnumElementInitializer4.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/ambientEnumElementInitializer4.ts === +declare enum E { +>E : Symbol(E, Decl(ambientEnumElementInitializer4.ts, 0, 0)) + + e = 0xA +>e : Symbol(E.e, Decl(ambientEnumElementInitializer4.ts, 0, 16)) +} diff --git a/tests/baselines/reference/ambientEnumElementInitializer4.types b/tests/baselines/reference/ambientEnumElementInitializer4.types index ea7664ae6c603..b85649d654d16 100644 --- a/tests/baselines/reference/ambientEnumElementInitializer4.types +++ b/tests/baselines/reference/ambientEnumElementInitializer4.types @@ -1,8 +1,8 @@ === tests/cases/compiler/ambientEnumElementInitializer4.ts === declare enum E { ->E : E, Symbol(E, Decl(ambientEnumElementInitializer4.ts, 0, 0)) +>E : E e = 0xA ->e : E, Symbol(E.e, Decl(ambientEnumElementInitializer4.ts, 0, 16)) +>e : E >0xA : number } diff --git a/tests/baselines/reference/ambientEnumElementInitializer5.symbols b/tests/baselines/reference/ambientEnumElementInitializer5.symbols new file mode 100644 index 0000000000000..9c58db811f4db --- /dev/null +++ b/tests/baselines/reference/ambientEnumElementInitializer5.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/ambientEnumElementInitializer5.ts === +declare enum E { +>E : Symbol(E, Decl(ambientEnumElementInitializer5.ts, 0, 0)) + + e = -0xA +>e : Symbol(E.e, Decl(ambientEnumElementInitializer5.ts, 0, 16)) +} diff --git a/tests/baselines/reference/ambientEnumElementInitializer5.types b/tests/baselines/reference/ambientEnumElementInitializer5.types index cb6fdc29fc124..1c5ea0ecdd3e6 100644 --- a/tests/baselines/reference/ambientEnumElementInitializer5.types +++ b/tests/baselines/reference/ambientEnumElementInitializer5.types @@ -1,9 +1,9 @@ === tests/cases/compiler/ambientEnumElementInitializer5.ts === declare enum E { ->E : E, Symbol(E, Decl(ambientEnumElementInitializer5.ts, 0, 0)) +>E : E e = -0xA ->e : E, Symbol(E.e, Decl(ambientEnumElementInitializer5.ts, 0, 16)) +>e : E >-0xA : number >0xA : number } diff --git a/tests/baselines/reference/ambientEnumElementInitializer6.symbols b/tests/baselines/reference/ambientEnumElementInitializer6.symbols new file mode 100644 index 0000000000000..3b0b6283ec9f5 --- /dev/null +++ b/tests/baselines/reference/ambientEnumElementInitializer6.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/ambientEnumElementInitializer6.ts === +declare module M { +>M : Symbol(M, Decl(ambientEnumElementInitializer6.ts, 0, 0)) + + enum E { +>E : Symbol(E, Decl(ambientEnumElementInitializer6.ts, 0, 18)) + + e = 3 +>e : Symbol(E.e, Decl(ambientEnumElementInitializer6.ts, 1, 12)) + } +} diff --git a/tests/baselines/reference/ambientEnumElementInitializer6.types b/tests/baselines/reference/ambientEnumElementInitializer6.types index 1756629e4f2bb..015d3f4e146ef 100644 --- a/tests/baselines/reference/ambientEnumElementInitializer6.types +++ b/tests/baselines/reference/ambientEnumElementInitializer6.types @@ -1,12 +1,12 @@ === tests/cases/compiler/ambientEnumElementInitializer6.ts === declare module M { ->M : typeof M, Symbol(M, Decl(ambientEnumElementInitializer6.ts, 0, 0)) +>M : typeof M enum E { ->E : E, Symbol(E, Decl(ambientEnumElementInitializer6.ts, 0, 18)) +>E : E e = 3 ->e : E, Symbol(E.e, Decl(ambientEnumElementInitializer6.ts, 1, 12)) +>e : E >3 : number } } diff --git a/tests/baselines/reference/ambientExternalModuleMerging.symbols b/tests/baselines/reference/ambientExternalModuleMerging.symbols new file mode 100644 index 0000000000000..7fea7fea89fbd --- /dev/null +++ b/tests/baselines/reference/ambientExternalModuleMerging.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/ambient/ambientExternalModuleMerging_use.ts === +import M = require("M"); +>M : Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) + +// Should be strings +var x = M.x; +>x : Symbol(x, Decl(ambientExternalModuleMerging_use.ts, 2, 3)) +>M.x : Symbol(M.x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) +>M : Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) +>x : Symbol(M.x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) + +var y = M.y; +>y : Symbol(y, Decl(ambientExternalModuleMerging_use.ts, 3, 3)) +>M.y : Symbol(M.y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) +>M : Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) +>y : Symbol(M.y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) + +=== tests/cases/conformance/ambient/ambientExternalModuleMerging_declare.ts === +declare module "M" { + export var x: string; +>x : Symbol(x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) +} + +// Merge +declare module "M" { + export var y: string; +>y : Symbol(y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) +} diff --git a/tests/baselines/reference/ambientExternalModuleMerging.types b/tests/baselines/reference/ambientExternalModuleMerging.types index 716cc64f2484f..1c1be0fd25665 100644 --- a/tests/baselines/reference/ambientExternalModuleMerging.types +++ b/tests/baselines/reference/ambientExternalModuleMerging.types @@ -1,28 +1,28 @@ === tests/cases/conformance/ambient/ambientExternalModuleMerging_use.ts === import M = require("M"); ->M : typeof M, Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) +>M : typeof M // Should be strings var x = M.x; ->x : string, Symbol(x, Decl(ambientExternalModuleMerging_use.ts, 2, 3)) ->M.x : string, Symbol(M.x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) ->M : typeof M, Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) ->x : string, Symbol(M.x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) +>x : string +>M.x : string +>M : typeof M +>x : string var y = M.y; ->y : string, Symbol(y, Decl(ambientExternalModuleMerging_use.ts, 3, 3)) ->M.y : string, Symbol(M.y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) ->M : typeof M, Symbol(M, Decl(ambientExternalModuleMerging_use.ts, 0, 0)) ->y : string, Symbol(M.y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) +>y : string +>M.y : string +>M : typeof M +>y : string === tests/cases/conformance/ambient/ambientExternalModuleMerging_declare.ts === declare module "M" { export var x: string; ->x : string, Symbol(x, Decl(ambientExternalModuleMerging_declare.ts, 1, 14)) +>x : string } // Merge declare module "M" { export var y: string; ->y : string, Symbol(y, Decl(ambientExternalModuleMerging_declare.ts, 6, 14)) +>y : string } diff --git a/tests/baselines/reference/ambientExternalModuleReopen.symbols b/tests/baselines/reference/ambientExternalModuleReopen.symbols new file mode 100644 index 0000000000000..a2a1ba72fab62 --- /dev/null +++ b/tests/baselines/reference/ambientExternalModuleReopen.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/ambientExternalModuleReopen.ts === +declare module "fs" { + var x: string; +>x : Symbol(x, Decl(ambientExternalModuleReopen.ts, 1, 7)) +} +declare module 'fs' { + var y: number; +>y : Symbol(y, Decl(ambientExternalModuleReopen.ts, 4, 7)) +} diff --git a/tests/baselines/reference/ambientExternalModuleReopen.types b/tests/baselines/reference/ambientExternalModuleReopen.types index fdc40f4cd4bad..842d634344cdc 100644 --- a/tests/baselines/reference/ambientExternalModuleReopen.types +++ b/tests/baselines/reference/ambientExternalModuleReopen.types @@ -1,9 +1,9 @@ === tests/cases/compiler/ambientExternalModuleReopen.ts === declare module "fs" { var x: string; ->x : string, Symbol(x, Decl(ambientExternalModuleReopen.ts, 1, 7)) +>x : string } declare module 'fs' { var y: number; ->y : number, Symbol(y, Decl(ambientExternalModuleReopen.ts, 4, 7)) +>y : number } diff --git a/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.symbols b/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.symbols new file mode 100644 index 0000000000000..3af41f909574a --- /dev/null +++ b/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration_1.ts === +/// +import A = require('M'); +>A : Symbol(A, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 0, 0)) + +var c = new A(); +>c : Symbol(c, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 2, 3)) +>A : Symbol(A, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 0, 0)) + +=== tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration_0.ts === +declare module 'M' { + module C { +>C : Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) + + export var f: number; +>f : Symbol(f, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 2, 18)) + } + class C { +>C : Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) + + foo(): void; +>foo : Symbol(foo, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 4, 13)) + } + import X = C; +>X : Symbol(X, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 6, 5)) +>C : Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) + + export = X; +>X : Symbol(X, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 6, 5)) + +} + diff --git a/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.types b/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.types index 2bd3929e2867c..4e9043d1b75f8 100644 --- a/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.types +++ b/tests/baselines/reference/ambientExternalModuleWithInternalImportDeclaration.types @@ -1,33 +1,33 @@ === tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration_1.ts === /// import A = require('M'); ->A : typeof A, Symbol(A, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 0, 0)) +>A : typeof A var c = new A(); ->c : A, Symbol(c, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 2, 3)) +>c : A >new A() : A ->A : typeof A, Symbol(A, Decl(ambientExternalModuleWithInternalImportDeclaration_1.ts, 0, 0)) +>A : typeof A === tests/cases/compiler/ambientExternalModuleWithInternalImportDeclaration_0.ts === declare module 'M' { module C { ->C : typeof C, Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) +>C : typeof C export var f: number; ->f : number, Symbol(f, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 2, 18)) +>f : number } class C { ->C : C, Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) +>C : C foo(): void; ->foo : () => void, Symbol(foo, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 4, 13)) +>foo : () => void } import X = C; ->X : typeof C, Symbol(X, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 6, 5)) ->C : C, Symbol(C, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 3, 5)) +>X : typeof C +>C : C export = X; ->X : C, Symbol(X, Decl(ambientExternalModuleWithInternalImportDeclaration_0.ts, 6, 5)) +>X : C } diff --git a/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.symbols b/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.symbols new file mode 100644 index 0000000000000..baf15f22a4ae5 --- /dev/null +++ b/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration_1.ts === +/// +import A = require('M'); +>A : Symbol(A, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 0, 0)) + +var c = new A(); +>c : Symbol(c, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 2, 3)) +>A : Symbol(A, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 0, 0)) + +=== tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration_0.ts === +declare module 'M' { + module C { +>C : Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) + + export var f: number; +>f : Symbol(f, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 2, 18)) + } + class C { +>C : Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) + + foo(): void; +>foo : Symbol(foo, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 4, 13)) + } + export = C; +>C : Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) + +} + diff --git a/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.types b/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.types index 7131f7bbe8b71..0029817400bc5 100644 --- a/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.types +++ b/tests/baselines/reference/ambientExternalModuleWithoutInternalImportDeclaration.types @@ -1,29 +1,29 @@ === tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration_1.ts === /// import A = require('M'); ->A : typeof A, Symbol(A, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 0, 0)) +>A : typeof A var c = new A(); ->c : A, Symbol(c, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 2, 3)) +>c : A >new A() : A ->A : typeof A, Symbol(A, Decl(ambientExternalModuleWithoutInternalImportDeclaration_1.ts, 0, 0)) +>A : typeof A === tests/cases/compiler/ambientExternalModuleWithoutInternalImportDeclaration_0.ts === declare module 'M' { module C { ->C : typeof C, Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) +>C : typeof C export var f: number; ->f : number, Symbol(f, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 2, 18)) +>f : number } class C { ->C : C, Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) +>C : C foo(): void; ->foo : () => void, Symbol(foo, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 4, 13)) +>foo : () => void } export = C; ->C : C, Symbol(C, Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 0, 20), Decl(ambientExternalModuleWithoutInternalImportDeclaration_0.ts, 3, 5)) +>C : C } diff --git a/tests/baselines/reference/ambientFundule.symbols b/tests/baselines/reference/ambientFundule.symbols new file mode 100644 index 0000000000000..e7e2c5a4a4d98 --- /dev/null +++ b/tests/baselines/reference/ambientFundule.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/ambientFundule.ts === +declare function f(); +>f : Symbol(f, Decl(ambientFundule.ts, 0, 0), Decl(ambientFundule.ts, 0, 21), Decl(ambientFundule.ts, 1, 26)) + +declare module f { var x } +>f : Symbol(f, Decl(ambientFundule.ts, 0, 0), Decl(ambientFundule.ts, 0, 21), Decl(ambientFundule.ts, 1, 26)) +>x : Symbol(x, Decl(ambientFundule.ts, 1, 22)) + +declare function f(x); +>f : Symbol(f, Decl(ambientFundule.ts, 0, 0), Decl(ambientFundule.ts, 0, 21), Decl(ambientFundule.ts, 1, 26)) +>x : Symbol(x, Decl(ambientFundule.ts, 2, 19)) + diff --git a/tests/baselines/reference/ambientFundule.types b/tests/baselines/reference/ambientFundule.types index 686c7c6fb8501..edd2290859c27 100644 --- a/tests/baselines/reference/ambientFundule.types +++ b/tests/baselines/reference/ambientFundule.types @@ -1,12 +1,12 @@ === tests/cases/compiler/ambientFundule.ts === declare function f(); ->f : typeof f, Symbol(f, Decl(ambientFundule.ts, 0, 0), Decl(ambientFundule.ts, 0, 21), Decl(ambientFundule.ts, 1, 26)) +>f : typeof f declare module f { var x } ->f : typeof f, Symbol(f, Decl(ambientFundule.ts, 0, 0), Decl(ambientFundule.ts, 0, 21), Decl(ambientFundule.ts, 1, 26)) ->x : any, Symbol(x, Decl(ambientFundule.ts, 1, 22)) +>f : typeof f +>x : any declare function f(x); ->f : typeof f, Symbol(f, Decl(ambientFundule.ts, 0, 0), Decl(ambientFundule.ts, 0, 21), Decl(ambientFundule.ts, 1, 26)) ->x : any, Symbol(x, Decl(ambientFundule.ts, 2, 19)) +>f : typeof f +>x : any diff --git a/tests/baselines/reference/ambientInsideNonAmbient.symbols b/tests/baselines/reference/ambientInsideNonAmbient.symbols new file mode 100644 index 0000000000000..5a668ca9e43d5 --- /dev/null +++ b/tests/baselines/reference/ambientInsideNonAmbient.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/ambient/ambientInsideNonAmbient.ts === +module M { +>M : Symbol(M, Decl(ambientInsideNonAmbient.ts, 0, 0)) + + export declare var x; +>x : Symbol(x, Decl(ambientInsideNonAmbient.ts, 1, 22)) + + export declare function f(); +>f : Symbol(f, Decl(ambientInsideNonAmbient.ts, 1, 25)) + + export declare class C { } +>C : Symbol(C, Decl(ambientInsideNonAmbient.ts, 2, 32)) + + export declare enum E { } +>E : Symbol(E, Decl(ambientInsideNonAmbient.ts, 3, 30)) + + export declare module M { } +>M : Symbol(M, Decl(ambientInsideNonAmbient.ts, 4, 29)) +} + +module M2 { +>M2 : Symbol(M2, Decl(ambientInsideNonAmbient.ts, 6, 1)) + + declare var x; +>x : Symbol(x, Decl(ambientInsideNonAmbient.ts, 9, 15)) + + declare function f(); +>f : Symbol(f, Decl(ambientInsideNonAmbient.ts, 9, 18)) + + declare class C { } +>C : Symbol(C, Decl(ambientInsideNonAmbient.ts, 10, 25)) + + declare enum E { } +>E : Symbol(E, Decl(ambientInsideNonAmbient.ts, 11, 23)) + + declare module M { } +>M : Symbol(M, Decl(ambientInsideNonAmbient.ts, 12, 22)) +} diff --git a/tests/baselines/reference/ambientInsideNonAmbient.types b/tests/baselines/reference/ambientInsideNonAmbient.types index 6ccc20aba93a8..ae593ab422592 100644 --- a/tests/baselines/reference/ambientInsideNonAmbient.types +++ b/tests/baselines/reference/ambientInsideNonAmbient.types @@ -1,38 +1,38 @@ === tests/cases/conformance/ambient/ambientInsideNonAmbient.ts === module M { ->M : typeof M, Symbol(M, Decl(ambientInsideNonAmbient.ts, 0, 0)) +>M : typeof M export declare var x; ->x : any, Symbol(x, Decl(ambientInsideNonAmbient.ts, 1, 22)) +>x : any export declare function f(); ->f : () => any, Symbol(f, Decl(ambientInsideNonAmbient.ts, 1, 25)) +>f : () => any export declare class C { } ->C : C, Symbol(C, Decl(ambientInsideNonAmbient.ts, 2, 32)) +>C : C export declare enum E { } ->E : E, Symbol(E, Decl(ambientInsideNonAmbient.ts, 3, 30)) +>E : E export declare module M { } ->M : any, Symbol(M, Decl(ambientInsideNonAmbient.ts, 4, 29)) +>M : any } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(ambientInsideNonAmbient.ts, 6, 1)) +>M2 : typeof M2 declare var x; ->x : any, Symbol(x, Decl(ambientInsideNonAmbient.ts, 9, 15)) +>x : any declare function f(); ->f : () => any, Symbol(f, Decl(ambientInsideNonAmbient.ts, 9, 18)) +>f : () => any declare class C { } ->C : C, Symbol(C, Decl(ambientInsideNonAmbient.ts, 10, 25)) +>C : C declare enum E { } ->E : E, Symbol(E, Decl(ambientInsideNonAmbient.ts, 11, 23)) +>E : E declare module M { } ->M : any, Symbol(M, Decl(ambientInsideNonAmbient.ts, 12, 22)) +>M : any } diff --git a/tests/baselines/reference/ambientInsideNonAmbientExternalModule.symbols b/tests/baselines/reference/ambientInsideNonAmbientExternalModule.symbols new file mode 100644 index 0000000000000..268aeab917142 --- /dev/null +++ b/tests/baselines/reference/ambientInsideNonAmbientExternalModule.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts === +export declare var x; +>x : Symbol(x, Decl(ambientInsideNonAmbientExternalModule.ts, 0, 18)) + +export declare function f(); +>f : Symbol(f, Decl(ambientInsideNonAmbientExternalModule.ts, 0, 21)) + +export declare class C { } +>C : Symbol(C, Decl(ambientInsideNonAmbientExternalModule.ts, 1, 28)) + +export declare enum E { } +>E : Symbol(E, Decl(ambientInsideNonAmbientExternalModule.ts, 2, 26)) + +export declare module M { } +>M : Symbol(M, Decl(ambientInsideNonAmbientExternalModule.ts, 3, 25)) + diff --git a/tests/baselines/reference/ambientInsideNonAmbientExternalModule.types b/tests/baselines/reference/ambientInsideNonAmbientExternalModule.types index 698b963c78db5..a8fb61f4280a7 100644 --- a/tests/baselines/reference/ambientInsideNonAmbientExternalModule.types +++ b/tests/baselines/reference/ambientInsideNonAmbientExternalModule.types @@ -1,16 +1,16 @@ === tests/cases/conformance/ambient/ambientInsideNonAmbientExternalModule.ts === export declare var x; ->x : any, Symbol(x, Decl(ambientInsideNonAmbientExternalModule.ts, 0, 18)) +>x : any export declare function f(); ->f : () => any, Symbol(f, Decl(ambientInsideNonAmbientExternalModule.ts, 0, 21)) +>f : () => any export declare class C { } ->C : C, Symbol(C, Decl(ambientInsideNonAmbientExternalModule.ts, 1, 28)) +>C : C export declare enum E { } ->E : E, Symbol(E, Decl(ambientInsideNonAmbientExternalModule.ts, 2, 26)) +>E : E export declare module M { } ->M : any, Symbol(M, Decl(ambientInsideNonAmbientExternalModule.ts, 3, 25)) +>M : any diff --git a/tests/baselines/reference/ambientModuleExports.symbols b/tests/baselines/reference/ambientModuleExports.symbols new file mode 100644 index 0000000000000..6af5b669cc96c --- /dev/null +++ b/tests/baselines/reference/ambientModuleExports.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/ambientModuleExports.ts === +declare module Foo { +>Foo : Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) + + function a():void; +>a : Symbol(a, Decl(ambientModuleExports.ts, 0, 20)) + + var b:number; +>b : Symbol(b, Decl(ambientModuleExports.ts, 2, 4)) + + class C {} +>C : Symbol(C, Decl(ambientModuleExports.ts, 2, 14)) +} + +Foo.a(); +>Foo.a : Symbol(Foo.a, Decl(ambientModuleExports.ts, 0, 20)) +>Foo : Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) +>a : Symbol(Foo.a, Decl(ambientModuleExports.ts, 0, 20)) + +Foo.b; +>Foo.b : Symbol(Foo.b, Decl(ambientModuleExports.ts, 2, 4)) +>Foo : Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) +>b : Symbol(Foo.b, Decl(ambientModuleExports.ts, 2, 4)) + +var c = new Foo.C(); +>c : Symbol(c, Decl(ambientModuleExports.ts, 8, 3)) +>Foo.C : Symbol(Foo.C, Decl(ambientModuleExports.ts, 2, 14)) +>Foo : Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) +>C : Symbol(Foo.C, Decl(ambientModuleExports.ts, 2, 14)) + +declare module Foo2 { +>Foo2 : Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) + + export function a(): void; +>a : Symbol(a, Decl(ambientModuleExports.ts, 10, 21)) + + export var b: number; +>b : Symbol(b, Decl(ambientModuleExports.ts, 12, 14)) + + export class C { } +>C : Symbol(C, Decl(ambientModuleExports.ts, 12, 25)) +} + +Foo2.a(); +>Foo2.a : Symbol(Foo2.a, Decl(ambientModuleExports.ts, 10, 21)) +>Foo2 : Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) +>a : Symbol(Foo2.a, Decl(ambientModuleExports.ts, 10, 21)) + +Foo2.b; +>Foo2.b : Symbol(Foo2.b, Decl(ambientModuleExports.ts, 12, 14)) +>Foo2 : Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) +>b : Symbol(Foo2.b, Decl(ambientModuleExports.ts, 12, 14)) + +var c2 = new Foo2.C(); +>c2 : Symbol(c2, Decl(ambientModuleExports.ts, 18, 3)) +>Foo2.C : Symbol(Foo2.C, Decl(ambientModuleExports.ts, 12, 25)) +>Foo2 : Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) +>C : Symbol(Foo2.C, Decl(ambientModuleExports.ts, 12, 25)) + diff --git a/tests/baselines/reference/ambientModuleExports.types b/tests/baselines/reference/ambientModuleExports.types index 8149ab0c5f9cd..3f096afa8381e 100644 --- a/tests/baselines/reference/ambientModuleExports.types +++ b/tests/baselines/reference/ambientModuleExports.types @@ -1,63 +1,63 @@ === tests/cases/compiler/ambientModuleExports.ts === declare module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) +>Foo : typeof Foo function a():void; ->a : () => void, Symbol(a, Decl(ambientModuleExports.ts, 0, 20)) +>a : () => void var b:number; ->b : number, Symbol(b, Decl(ambientModuleExports.ts, 2, 4)) +>b : number class C {} ->C : C, Symbol(C, Decl(ambientModuleExports.ts, 2, 14)) +>C : C } Foo.a(); >Foo.a() : void ->Foo.a : () => void, Symbol(Foo.a, Decl(ambientModuleExports.ts, 0, 20)) ->Foo : typeof Foo, Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) ->a : () => void, Symbol(Foo.a, Decl(ambientModuleExports.ts, 0, 20)) +>Foo.a : () => void +>Foo : typeof Foo +>a : () => void Foo.b; ->Foo.b : number, Symbol(Foo.b, Decl(ambientModuleExports.ts, 2, 4)) ->Foo : typeof Foo, Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) ->b : number, Symbol(Foo.b, Decl(ambientModuleExports.ts, 2, 4)) +>Foo.b : number +>Foo : typeof Foo +>b : number var c = new Foo.C(); ->c : Foo.C, Symbol(c, Decl(ambientModuleExports.ts, 8, 3)) +>c : Foo.C >new Foo.C() : Foo.C ->Foo.C : typeof Foo.C, Symbol(Foo.C, Decl(ambientModuleExports.ts, 2, 14)) ->Foo : typeof Foo, Symbol(Foo, Decl(ambientModuleExports.ts, 0, 0)) ->C : typeof Foo.C, Symbol(Foo.C, Decl(ambientModuleExports.ts, 2, 14)) +>Foo.C : typeof Foo.C +>Foo : typeof Foo +>C : typeof Foo.C declare module Foo2 { ->Foo2 : typeof Foo2, Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) +>Foo2 : typeof Foo2 export function a(): void; ->a : () => void, Symbol(a, Decl(ambientModuleExports.ts, 10, 21)) +>a : () => void export var b: number; ->b : number, Symbol(b, Decl(ambientModuleExports.ts, 12, 14)) +>b : number export class C { } ->C : C, Symbol(C, Decl(ambientModuleExports.ts, 12, 25)) +>C : C } Foo2.a(); >Foo2.a() : void ->Foo2.a : () => void, Symbol(Foo2.a, Decl(ambientModuleExports.ts, 10, 21)) ->Foo2 : typeof Foo2, Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) ->a : () => void, Symbol(Foo2.a, Decl(ambientModuleExports.ts, 10, 21)) +>Foo2.a : () => void +>Foo2 : typeof Foo2 +>a : () => void Foo2.b; ->Foo2.b : number, Symbol(Foo2.b, Decl(ambientModuleExports.ts, 12, 14)) ->Foo2 : typeof Foo2, Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) ->b : number, Symbol(Foo2.b, Decl(ambientModuleExports.ts, 12, 14)) +>Foo2.b : number +>Foo2 : typeof Foo2 +>b : number var c2 = new Foo2.C(); ->c2 : Foo2.C, Symbol(c2, Decl(ambientModuleExports.ts, 18, 3)) +>c2 : Foo2.C >new Foo2.C() : Foo2.C ->Foo2.C : typeof Foo2.C, Symbol(Foo2.C, Decl(ambientModuleExports.ts, 12, 25)) ->Foo2 : typeof Foo2, Symbol(Foo2, Decl(ambientModuleExports.ts, 8, 20)) ->C : typeof Foo2.C, Symbol(Foo2.C, Decl(ambientModuleExports.ts, 12, 25)) +>Foo2.C : typeof Foo2.C +>Foo2 : typeof Foo2 +>C : typeof Foo2.C diff --git a/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.symbols b/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.symbols new file mode 100644 index 0000000000000..f24d3a102d523 --- /dev/null +++ b/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/ambientModuleWithClassDeclarationWithExtends.ts === +declare module foo { +>foo : Symbol(foo, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 0, 0)) + + class A { } +>A : Symbol(A, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 0, 20)) + + class B extends A { } +>B : Symbol(B, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 1, 15)) +>A : Symbol(A, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 0, 20)) +} diff --git a/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.types b/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.types index c2036fd70ae3b..2708946518f58 100644 --- a/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.types +++ b/tests/baselines/reference/ambientModuleWithClassDeclarationWithExtends.types @@ -1,11 +1,11 @@ === tests/cases/compiler/ambientModuleWithClassDeclarationWithExtends.ts === declare module foo { ->foo : typeof foo, Symbol(foo, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 0, 0)) +>foo : typeof foo class A { } ->A : A, Symbol(A, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 0, 20)) +>A : A class B extends A { } ->B : B, Symbol(B, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 1, 15)) ->A : A, Symbol(A, Decl(ambientModuleWithClassDeclarationWithExtends.ts, 0, 20)) +>B : B +>A : A } diff --git a/tests/baselines/reference/ambientModules.symbols b/tests/baselines/reference/ambientModules.symbols new file mode 100644 index 0000000000000..776e36fa93302 --- /dev/null +++ b/tests/baselines/reference/ambientModules.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/ambientModules.ts === +declare module Foo.Bar { export var foo; }; +>Foo : Symbol(Foo, Decl(ambientModules.ts, 0, 0)) +>Bar : Symbol(Bar, Decl(ambientModules.ts, 0, 19)) +>foo : Symbol(foo, Decl(ambientModules.ts, 0, 35)) + +Foo.Bar.foo = 5; +>Foo.Bar.foo : Symbol(Foo.Bar.foo, Decl(ambientModules.ts, 0, 35)) +>Foo.Bar : Symbol(Foo.Bar, Decl(ambientModules.ts, 0, 19)) +>Foo : Symbol(Foo, Decl(ambientModules.ts, 0, 0)) +>Bar : Symbol(Foo.Bar, Decl(ambientModules.ts, 0, 19)) +>foo : Symbol(Foo.Bar.foo, Decl(ambientModules.ts, 0, 35)) + diff --git a/tests/baselines/reference/ambientModules.types b/tests/baselines/reference/ambientModules.types index 1484888e14ea0..15e6d51b457af 100644 --- a/tests/baselines/reference/ambientModules.types +++ b/tests/baselines/reference/ambientModules.types @@ -1,15 +1,15 @@ === tests/cases/compiler/ambientModules.ts === declare module Foo.Bar { export var foo; }; ->Foo : typeof Foo, Symbol(Foo, Decl(ambientModules.ts, 0, 0)) ->Bar : typeof Bar, Symbol(Bar, Decl(ambientModules.ts, 0, 19)) ->foo : any, Symbol(foo, Decl(ambientModules.ts, 0, 35)) +>Foo : typeof Foo +>Bar : typeof Bar +>foo : any Foo.Bar.foo = 5; >Foo.Bar.foo = 5 : number ->Foo.Bar.foo : any, Symbol(Foo.Bar.foo, Decl(ambientModules.ts, 0, 35)) ->Foo.Bar : typeof Foo.Bar, Symbol(Foo.Bar, Decl(ambientModules.ts, 0, 19)) ->Foo : typeof Foo, Symbol(Foo, Decl(ambientModules.ts, 0, 0)) ->Bar : typeof Foo.Bar, Symbol(Foo.Bar, Decl(ambientModules.ts, 0, 19)) ->foo : any, Symbol(Foo.Bar.foo, Decl(ambientModules.ts, 0, 35)) +>Foo.Bar.foo : any +>Foo.Bar : typeof Foo.Bar +>Foo : typeof Foo +>Bar : typeof Foo.Bar +>foo : any >5 : number diff --git a/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.symbols b/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.symbols new file mode 100644 index 0000000000000..5d6c34f4d683c --- /dev/null +++ b/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/ambiguousCallsWhereReturnTypesAgree.ts === +class TestClass { +>TestClass : Symbol(TestClass, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 0)) + + public bar(x: string): void; +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 15)) + + public bar(x: string[]): void; +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 15)) + + public bar(x: any): void { +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 3, 15)) + + } + + public foo(x: string): void; +>foo : Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 5, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 15)) + + public foo(x: string[]): void; +>foo : Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 5, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 15)) + + public foo(x: any): void { +>foo : Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 5, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 9, 15)) + + this.bar(x); // should not error +>this.bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) +>this : Symbol(TestClass, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 0)) +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 9, 15)) + } +} + +class TestClass2 { +>TestClass2 : Symbol(TestClass2, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 12, 1)) + + public bar(x: string): number; +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 15)) + + public bar(x: string[]): number; +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 15)) + + public bar(x: any): number { +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 17, 15)) + + return 0; + } + + public foo(x: string): number; +>foo : Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 19, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 15)) + + public foo(x: string[]): number; +>foo : Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 19, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 15)) + + public foo(x: any): number { +>foo : Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 19, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 23, 15)) + + return this.bar(x); // should not error +>this.bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) +>this : Symbol(TestClass2, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 12, 1)) +>bar : Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) +>x : Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 23, 15)) + } +} + diff --git a/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.types b/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.types index 16d4d6f7d40a6..d4df0f75d16b7 100644 --- a/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.types +++ b/tests/baselines/reference/ambiguousCallsWhereReturnTypesAgree.types @@ -1,79 +1,79 @@ === tests/cases/compiler/ambiguousCallsWhereReturnTypesAgree.ts === class TestClass { ->TestClass : TestClass, Symbol(TestClass, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 0)) +>TestClass : TestClass public bar(x: string): void; ->bar : { (x: string): void; (x: string[]): void; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) ->x : string, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 15)) +>bar : { (x: string): void; (x: string[]): void; } +>x : string public bar(x: string[]): void; ->bar : { (x: string): void; (x: string[]): void; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) ->x : string[], Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 15)) +>bar : { (x: string): void; (x: string[]): void; } +>x : string[] public bar(x: any): void { ->bar : { (x: string): void; (x: string[]): void; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) ->x : any, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 3, 15)) +>bar : { (x: string): void; (x: string[]): void; } +>x : any } public foo(x: string): void; ->foo : { (x: string): void; (x: string[]): void; }, Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 5, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 34)) ->x : string, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 15)) +>foo : { (x: string): void; (x: string[]): void; } +>x : string public foo(x: string[]): void; ->foo : { (x: string): void; (x: string[]): void; }, Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 5, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 34)) ->x : string[], Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 15)) +>foo : { (x: string): void; (x: string[]): void; } +>x : string[] public foo(x: any): void { ->foo : { (x: string): void; (x: string[]): void; }, Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 5, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 7, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 8, 34)) ->x : any, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 9, 15)) +>foo : { (x: string): void; (x: string[]): void; } +>x : any this.bar(x); // should not error >this.bar(x) : void ->this.bar : { (x: string): void; (x: string[]): void; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) ->this : TestClass, Symbol(TestClass, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 0)) ->bar : { (x: string): void; (x: string[]): void; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 0, 17), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 1, 32), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 2, 34)) ->x : any, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 9, 15)) +>this.bar : { (x: string): void; (x: string[]): void; } +>this : TestClass +>bar : { (x: string): void; (x: string[]): void; } +>x : any } } class TestClass2 { ->TestClass2 : TestClass2, Symbol(TestClass2, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 12, 1)) +>TestClass2 : TestClass2 public bar(x: string): number; ->bar : { (x: string): number; (x: string[]): number; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) ->x : string, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 15)) +>bar : { (x: string): number; (x: string[]): number; } +>x : string public bar(x: string[]): number; ->bar : { (x: string): number; (x: string[]): number; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) ->x : string[], Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 15)) +>bar : { (x: string): number; (x: string[]): number; } +>x : string[] public bar(x: any): number { ->bar : { (x: string): number; (x: string[]): number; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) ->x : any, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 17, 15)) +>bar : { (x: string): number; (x: string[]): number; } +>x : any return 0; >0 : number } public foo(x: string): number; ->foo : { (x: string): number; (x: string[]): number; }, Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 19, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 36)) ->x : string, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 15)) +>foo : { (x: string): number; (x: string[]): number; } +>x : string public foo(x: string[]): number; ->foo : { (x: string): number; (x: string[]): number; }, Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 19, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 36)) ->x : string[], Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 15)) +>foo : { (x: string): number; (x: string[]): number; } +>x : string[] public foo(x: any): number { ->foo : { (x: string): number; (x: string[]): number; }, Symbol(foo, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 19, 5), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 21, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 22, 36)) ->x : any, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 23, 15)) +>foo : { (x: string): number; (x: string[]): number; } +>x : any return this.bar(x); // should not error >this.bar(x) : number ->this.bar : { (x: string): number; (x: string[]): number; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) ->this : TestClass2, Symbol(TestClass2, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 12, 1)) ->bar : { (x: string): number; (x: string[]): number; }, Symbol(bar, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 14, 18), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 15, 34), Decl(ambiguousCallsWhereReturnTypesAgree.ts, 16, 36)) ->x : any, Symbol(x, Decl(ambiguousCallsWhereReturnTypesAgree.ts, 23, 15)) +>this.bar : { (x: string): number; (x: string[]): number; } +>this : TestClass2 +>bar : { (x: string): number; (x: string[]): number; } +>x : any } } diff --git a/tests/baselines/reference/ambiguousOverloadResolution.symbols b/tests/baselines/reference/ambiguousOverloadResolution.symbols new file mode 100644 index 0000000000000..1d848d707dea5 --- /dev/null +++ b/tests/baselines/reference/ambiguousOverloadResolution.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/ambiguousOverloadResolution.ts === +class A { } +>A : Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) + +class B extends A { x: number; } +>B : Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) +>A : Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) +>x : Symbol(x, Decl(ambiguousOverloadResolution.ts, 1, 19)) + +declare function f(p: A, q: B): number; +>f : Symbol(f, Decl(ambiguousOverloadResolution.ts, 1, 32), Decl(ambiguousOverloadResolution.ts, 3, 39)) +>p : Symbol(p, Decl(ambiguousOverloadResolution.ts, 3, 19)) +>A : Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) +>q : Symbol(q, Decl(ambiguousOverloadResolution.ts, 3, 24)) +>B : Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) + +declare function f(p: B, q: A): string; +>f : Symbol(f, Decl(ambiguousOverloadResolution.ts, 1, 32), Decl(ambiguousOverloadResolution.ts, 3, 39)) +>p : Symbol(p, Decl(ambiguousOverloadResolution.ts, 4, 19)) +>B : Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) +>q : Symbol(q, Decl(ambiguousOverloadResolution.ts, 4, 24)) +>A : Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) + +var x: B; +>x : Symbol(x, Decl(ambiguousOverloadResolution.ts, 6, 3)) +>B : Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) + +var t: number = f(x, x); // Not an error +>t : Symbol(t, Decl(ambiguousOverloadResolution.ts, 7, 3)) +>f : Symbol(f, Decl(ambiguousOverloadResolution.ts, 1, 32), Decl(ambiguousOverloadResolution.ts, 3, 39)) +>x : Symbol(x, Decl(ambiguousOverloadResolution.ts, 6, 3)) +>x : Symbol(x, Decl(ambiguousOverloadResolution.ts, 6, 3)) + diff --git a/tests/baselines/reference/ambiguousOverloadResolution.types b/tests/baselines/reference/ambiguousOverloadResolution.types index 94d8a59015575..dd42b44d7c302 100644 --- a/tests/baselines/reference/ambiguousOverloadResolution.types +++ b/tests/baselines/reference/ambiguousOverloadResolution.types @@ -1,34 +1,34 @@ === tests/cases/compiler/ambiguousOverloadResolution.ts === class A { } ->A : A, Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) +>A : A class B extends A { x: number; } ->B : B, Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) ->A : A, Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) ->x : number, Symbol(x, Decl(ambiguousOverloadResolution.ts, 1, 19)) +>B : B +>A : A +>x : number declare function f(p: A, q: B): number; ->f : { (p: A, q: B): number; (p: B, q: A): string; }, Symbol(f, Decl(ambiguousOverloadResolution.ts, 1, 32), Decl(ambiguousOverloadResolution.ts, 3, 39)) ->p : A, Symbol(p, Decl(ambiguousOverloadResolution.ts, 3, 19)) ->A : A, Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) ->q : B, Symbol(q, Decl(ambiguousOverloadResolution.ts, 3, 24)) ->B : B, Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) +>f : { (p: A, q: B): number; (p: B, q: A): string; } +>p : A +>A : A +>q : B +>B : B declare function f(p: B, q: A): string; ->f : { (p: A, q: B): number; (p: B, q: A): string; }, Symbol(f, Decl(ambiguousOverloadResolution.ts, 1, 32), Decl(ambiguousOverloadResolution.ts, 3, 39)) ->p : B, Symbol(p, Decl(ambiguousOverloadResolution.ts, 4, 19)) ->B : B, Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) ->q : A, Symbol(q, Decl(ambiguousOverloadResolution.ts, 4, 24)) ->A : A, Symbol(A, Decl(ambiguousOverloadResolution.ts, 0, 0)) +>f : { (p: A, q: B): number; (p: B, q: A): string; } +>p : B +>B : B +>q : A +>A : A var x: B; ->x : B, Symbol(x, Decl(ambiguousOverloadResolution.ts, 6, 3)) ->B : B, Symbol(B, Decl(ambiguousOverloadResolution.ts, 0, 11)) +>x : B +>B : B var t: number = f(x, x); // Not an error ->t : number, Symbol(t, Decl(ambiguousOverloadResolution.ts, 7, 3)) +>t : number >f(x, x) : number ->f : { (p: A, q: B): number; (p: B, q: A): string; }, Symbol(f, Decl(ambiguousOverloadResolution.ts, 1, 32), Decl(ambiguousOverloadResolution.ts, 3, 39)) ->x : B, Symbol(x, Decl(ambiguousOverloadResolution.ts, 6, 3)) ->x : B, Symbol(x, Decl(ambiguousOverloadResolution.ts, 6, 3)) +>f : { (p: A, q: B): number; (p: B, q: A): string; } +>x : B +>x : B diff --git a/tests/baselines/reference/amdImportAsPrimaryExpression.symbols b/tests/baselines/reference/amdImportAsPrimaryExpression.symbols new file mode 100644 index 0000000000000..9ab71defd863d --- /dev/null +++ b/tests/baselines/reference/amdImportAsPrimaryExpression.symbols @@ -0,0 +1,24 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.E1.A === 0){ +>foo.E1.A : Symbol(foo.E1.A, Decl(foo_0.ts, 0, 16)) +>foo.E1 : Symbol(foo.E1, Decl(foo_0.ts, 0, 0)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>E1 : Symbol(foo.E1, Decl(foo_0.ts, 0, 0)) +>A : Symbol(foo.E1.A, Decl(foo_0.ts, 0, 16)) + + // Should cause runtime import - interesting optimization possibility, as gets inlined to 0. +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +export enum E1 { +>E1 : Symbol(E1, Decl(foo_0.ts, 0, 0)) + + A,B,C +>A : Symbol(E1.A, Decl(foo_0.ts, 0, 16)) +>B : Symbol(E1.B, Decl(foo_0.ts, 1, 3)) +>C : Symbol(E1.C, Decl(foo_0.ts, 1, 5)) +} + diff --git a/tests/baselines/reference/amdImportAsPrimaryExpression.types b/tests/baselines/reference/amdImportAsPrimaryExpression.types index f055c162d090e..eab0b168f445e 100644 --- a/tests/baselines/reference/amdImportAsPrimaryExpression.types +++ b/tests/baselines/reference/amdImportAsPrimaryExpression.types @@ -1,14 +1,14 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo if(foo.E1.A === 0){ >foo.E1.A === 0 : boolean ->foo.E1.A : foo.E1, Symbol(foo.E1.A, Decl(foo_0.ts, 0, 16)) ->foo.E1 : typeof foo.E1, Symbol(foo.E1, Decl(foo_0.ts, 0, 0)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->E1 : typeof foo.E1, Symbol(foo.E1, Decl(foo_0.ts, 0, 0)) ->A : foo.E1, Symbol(foo.E1.A, Decl(foo_0.ts, 0, 16)) +>foo.E1.A : foo.E1 +>foo.E1 : typeof foo.E1 +>foo : typeof foo +>E1 : typeof foo.E1 +>A : foo.E1 >0 : number // Should cause runtime import - interesting optimization possibility, as gets inlined to 0. @@ -16,11 +16,11 @@ if(foo.E1.A === 0){ === tests/cases/conformance/externalModules/foo_0.ts === export enum E1 { ->E1 : E1, Symbol(E1, Decl(foo_0.ts, 0, 0)) +>E1 : E1 A,B,C ->A : E1, Symbol(E1.A, Decl(foo_0.ts, 0, 16)) ->B : E1, Symbol(E1.B, Decl(foo_0.ts, 1, 3)) ->C : E1, Symbol(E1.C, Decl(foo_0.ts, 1, 5)) +>A : E1 +>B : E1 +>C : E1 } diff --git a/tests/baselines/reference/amdImportNotAsPrimaryExpression.symbols b/tests/baselines/reference/amdImportNotAsPrimaryExpression.symbols new file mode 100644 index 0000000000000..68a852c6165aa --- /dev/null +++ b/tests/baselines/reference/amdImportNotAsPrimaryExpression.symbols @@ -0,0 +1,81 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +// None of the below should cause a runtime dependency on foo_0 +import f = foo.M1; +>f : Symbol(f, Decl(foo_1.ts, 0, 32)) +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0)) +>M1 : Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) + +var i: f.I2; +>i : Symbol(i, Decl(foo_1.ts, 3, 3)) +>f : Symbol(f, Decl(foo_1.ts, 0, 32)) +>I2 : Symbol(f.I2, Decl(foo_0.ts, 10, 18)) + +var x: foo.C1 = <{m1: number}>{}; +>x : Symbol(x, Decl(foo_1.ts, 4, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>m1 : Symbol(m1, Decl(foo_1.ts, 4, 18)) + +var y: typeof foo.C1.s1 = false; +>y : Symbol(y, Decl(foo_1.ts, 5, 3)) +>foo.C1.s1 : Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) +>foo.C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>s1 : Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) + +var z: foo.M1.I2; +>z : Symbol(z, Decl(foo_1.ts, 6, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>M1 : Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) +>I2 : Symbol(f.I2, Decl(foo_0.ts, 10, 18)) + +var e: number = 0; +>e : Symbol(e, Decl(foo_1.ts, 7, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>E1 : Symbol(foo.E1, Decl(foo_0.ts, 14, 1)) + +=== tests/cases/conformance/externalModules/foo_0.ts === +export class C1 { +>C1 : Symbol(C1, Decl(foo_0.ts, 0, 0)) + + m1 = 42; +>m1 : Symbol(m1, Decl(foo_0.ts, 0, 17)) + + static s1 = true; +>s1 : Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +} + +export interface I1 { +>I1 : Symbol(I1, Decl(foo_0.ts, 3, 1)) + + name: string; +>name : Symbol(name, Decl(foo_0.ts, 5, 21)) + + age: number; +>age : Symbol(age, Decl(foo_0.ts, 6, 14)) +} + +export module M1 { +>M1 : Symbol(M1, Decl(foo_0.ts, 8, 1)) + + export interface I2 { +>I2 : Symbol(I2, Decl(foo_0.ts, 10, 18)) + + foo: string; +>foo : Symbol(foo, Decl(foo_0.ts, 11, 22)) + } +} + +export enum E1 { +>E1 : Symbol(E1, Decl(foo_0.ts, 14, 1)) + + A,B,C +>A : Symbol(E1.A, Decl(foo_0.ts, 16, 16)) +>B : Symbol(E1.B, Decl(foo_0.ts, 17, 3)) +>C : Symbol(E1.C, Decl(foo_0.ts, 17, 5)) +} + diff --git a/tests/baselines/reference/amdImportNotAsPrimaryExpression.types b/tests/baselines/reference/amdImportNotAsPrimaryExpression.types index 61a55d73b0ca8..6c3978d93aa1d 100644 --- a/tests/baselines/reference/amdImportNotAsPrimaryExpression.types +++ b/tests/baselines/reference/amdImportNotAsPrimaryExpression.types @@ -1,88 +1,88 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo // None of the below should cause a runtime dependency on foo_0 import f = foo.M1; ->f : any, Symbol(f, Decl(foo_1.ts, 0, 32)) ->foo : typeof foo, Symbol(foo, Decl(foo_0.ts, 0, 0)) ->M1 : any, Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) +>f : any +>foo : typeof foo +>M1 : any var i: f.I2; ->i : f.I2, Symbol(i, Decl(foo_1.ts, 3, 3)) ->f : any, Symbol(f, Decl(foo_1.ts, 0, 32)) ->I2 : f.I2, Symbol(f.I2, Decl(foo_0.ts, 10, 18)) +>i : f.I2 +>f : any +>I2 : f.I2 var x: foo.C1 = <{m1: number}>{}; ->x : foo.C1, Symbol(x, Decl(foo_1.ts, 4, 3)) ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->C1 : foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>x : foo.C1 +>foo : any +>C1 : foo.C1 ><{m1: number}>{} : { m1: number; } ->m1 : number, Symbol(m1, Decl(foo_1.ts, 4, 18)) +>m1 : number >{} : {} var y: typeof foo.C1.s1 = false; ->y : boolean, Symbol(y, Decl(foo_1.ts, 5, 3)) ->foo.C1.s1 : boolean, Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) ->foo.C1 : typeof foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->C1 : typeof foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) ->s1 : boolean, Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) +>y : boolean +>foo.C1.s1 : boolean +>foo.C1 : typeof foo.C1 +>foo : typeof foo +>C1 : typeof foo.C1 +>s1 : boolean >false : boolean var z: foo.M1.I2; ->z : f.I2, Symbol(z, Decl(foo_1.ts, 6, 3)) ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->M1 : any, Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) ->I2 : f.I2, Symbol(f.I2, Decl(foo_0.ts, 10, 18)) +>z : f.I2 +>foo : any +>M1 : any +>I2 : f.I2 var e: number = 0; ->e : number, Symbol(e, Decl(foo_1.ts, 7, 3)) +>e : number >0 : foo.E1 ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->E1 : foo.E1, Symbol(foo.E1, Decl(foo_0.ts, 14, 1)) +>foo : any +>E1 : foo.E1 >0 : number === tests/cases/conformance/externalModules/foo_0.ts === export class C1 { ->C1 : C1, Symbol(C1, Decl(foo_0.ts, 0, 0)) +>C1 : C1 m1 = 42; ->m1 : number, Symbol(m1, Decl(foo_0.ts, 0, 17)) +>m1 : number >42 : number static s1 = true; ->s1 : boolean, Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +>s1 : boolean >true : boolean } export interface I1 { ->I1 : I1, Symbol(I1, Decl(foo_0.ts, 3, 1)) +>I1 : I1 name: string; ->name : string, Symbol(name, Decl(foo_0.ts, 5, 21)) +>name : string age: number; ->age : number, Symbol(age, Decl(foo_0.ts, 6, 14)) +>age : number } export module M1 { ->M1 : any, Symbol(M1, Decl(foo_0.ts, 8, 1)) +>M1 : any export interface I2 { ->I2 : I2, Symbol(I2, Decl(foo_0.ts, 10, 18)) +>I2 : I2 foo: string; ->foo : string, Symbol(foo, Decl(foo_0.ts, 11, 22)) +>foo : string } } export enum E1 { ->E1 : E1, Symbol(E1, Decl(foo_0.ts, 14, 1)) +>E1 : E1 A,B,C ->A : E1, Symbol(E1.A, Decl(foo_0.ts, 16, 16)) ->B : E1, Symbol(E1.B, Decl(foo_0.ts, 17, 3)) ->C : E1, Symbol(E1.C, Decl(foo_0.ts, 17, 5)) +>A : E1 +>B : E1 +>C : E1 } diff --git a/tests/baselines/reference/amdModuleName1.symbols b/tests/baselines/reference/amdModuleName1.symbols new file mode 100644 index 0000000000000..04f471dc2ad60 --- /dev/null +++ b/tests/baselines/reference/amdModuleName1.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/amdModuleName1.ts === +/// +class Foo { +>Foo : Symbol(Foo, Decl(amdModuleName1.ts, 0, 0)) + + x: number; +>x : Symbol(x, Decl(amdModuleName1.ts, 1, 11)) + + constructor() { + this.x = 5; +>this.x : Symbol(x, Decl(amdModuleName1.ts, 1, 11)) +>this : Symbol(Foo, Decl(amdModuleName1.ts, 0, 0)) +>x : Symbol(x, Decl(amdModuleName1.ts, 1, 11)) + } +} +export = Foo; +>Foo : Symbol(Foo, Decl(amdModuleName1.ts, 0, 0)) + diff --git a/tests/baselines/reference/amdModuleName1.types b/tests/baselines/reference/amdModuleName1.types index 90fdfcc9aa856..64bc7842451fe 100644 --- a/tests/baselines/reference/amdModuleName1.types +++ b/tests/baselines/reference/amdModuleName1.types @@ -1,20 +1,20 @@ === tests/cases/compiler/amdModuleName1.ts === /// class Foo { ->Foo : Foo, Symbol(Foo, Decl(amdModuleName1.ts, 0, 0)) +>Foo : Foo x: number; ->x : number, Symbol(x, Decl(amdModuleName1.ts, 1, 11)) +>x : number constructor() { this.x = 5; >this.x = 5 : number ->this.x : number, Symbol(x, Decl(amdModuleName1.ts, 1, 11)) ->this : Foo, Symbol(Foo, Decl(amdModuleName1.ts, 0, 0)) ->x : number, Symbol(x, Decl(amdModuleName1.ts, 1, 11)) +>this.x : number +>this : Foo +>x : number >5 : number } } export = Foo; ->Foo : Foo, Symbol(Foo, Decl(amdModuleName1.ts, 0, 0)) +>Foo : Foo diff --git a/tests/baselines/reference/anonterface.symbols b/tests/baselines/reference/anonterface.symbols new file mode 100644 index 0000000000000..fccd48043cf01 --- /dev/null +++ b/tests/baselines/reference/anonterface.symbols @@ -0,0 +1,36 @@ +=== tests/cases/compiler/anonterface.ts === +module M { +>M : Symbol(M, Decl(anonterface.ts, 0, 0)) + + export class C { +>C : Symbol(C, Decl(anonterface.ts, 0, 10)) + + m(fn:{ (n:number):string; },n2:number):string { +>m : Symbol(m, Decl(anonterface.ts, 1, 20)) +>fn : Symbol(fn, Decl(anonterface.ts, 2, 10)) +>n : Symbol(n, Decl(anonterface.ts, 2, 16)) +>n2 : Symbol(n2, Decl(anonterface.ts, 2, 36)) + + return fn(n2); +>fn : Symbol(fn, Decl(anonterface.ts, 2, 10)) +>n2 : Symbol(n2, Decl(anonterface.ts, 2, 36)) + } + } +} + +var c=new M.C(); +>c : Symbol(c, Decl(anonterface.ts, 8, 3)) +>M.C : Symbol(M.C, Decl(anonterface.ts, 0, 10)) +>M : Symbol(M, Decl(anonterface.ts, 0, 0)) +>C : Symbol(M.C, Decl(anonterface.ts, 0, 10)) + +c.m(function(n) { return "hello: "+n; },18); +>c.m : Symbol(M.C.m, Decl(anonterface.ts, 1, 20)) +>c : Symbol(c, Decl(anonterface.ts, 8, 3)) +>m : Symbol(M.C.m, Decl(anonterface.ts, 1, 20)) +>n : Symbol(n, Decl(anonterface.ts, 9, 13)) +>n : Symbol(n, Decl(anonterface.ts, 9, 13)) + + + + diff --git a/tests/baselines/reference/anonterface.types b/tests/baselines/reference/anonterface.types index 1d84fe8f8e0e2..b152ce79a1df0 100644 --- a/tests/baselines/reference/anonterface.types +++ b/tests/baselines/reference/anonterface.types @@ -1,41 +1,41 @@ === tests/cases/compiler/anonterface.ts === module M { ->M : typeof M, Symbol(M, Decl(anonterface.ts, 0, 0)) +>M : typeof M export class C { ->C : C, Symbol(C, Decl(anonterface.ts, 0, 10)) +>C : C m(fn:{ (n:number):string; },n2:number):string { ->m : (fn: (n: number) => string, n2: number) => string, Symbol(m, Decl(anonterface.ts, 1, 20)) ->fn : (n: number) => string, Symbol(fn, Decl(anonterface.ts, 2, 10)) ->n : number, Symbol(n, Decl(anonterface.ts, 2, 16)) ->n2 : number, Symbol(n2, Decl(anonterface.ts, 2, 36)) +>m : (fn: (n: number) => string, n2: number) => string +>fn : (n: number) => string +>n : number +>n2 : number return fn(n2); >fn(n2) : string ->fn : (n: number) => string, Symbol(fn, Decl(anonterface.ts, 2, 10)) ->n2 : number, Symbol(n2, Decl(anonterface.ts, 2, 36)) +>fn : (n: number) => string +>n2 : number } } } var c=new M.C(); ->c : M.C, Symbol(c, Decl(anonterface.ts, 8, 3)) +>c : M.C >new M.C() : M.C ->M.C : typeof M.C, Symbol(M.C, Decl(anonterface.ts, 0, 10)) ->M : typeof M, Symbol(M, Decl(anonterface.ts, 0, 0)) ->C : typeof M.C, Symbol(M.C, Decl(anonterface.ts, 0, 10)) +>M.C : typeof M.C +>M : typeof M +>C : typeof M.C c.m(function(n) { return "hello: "+n; },18); >c.m(function(n) { return "hello: "+n; },18) : string ->c.m : (fn: (n: number) => string, n2: number) => string, Symbol(M.C.m, Decl(anonterface.ts, 1, 20)) ->c : M.C, Symbol(c, Decl(anonterface.ts, 8, 3)) ->m : (fn: (n: number) => string, n2: number) => string, Symbol(M.C.m, Decl(anonterface.ts, 1, 20)) +>c.m : (fn: (n: number) => string, n2: number) => string +>c : M.C +>m : (fn: (n: number) => string, n2: number) => string >function(n) { return "hello: "+n; } : (n: number) => string ->n : number, Symbol(n, Decl(anonterface.ts, 9, 13)) +>n : number >"hello: "+n : string >"hello: " : string ->n : number, Symbol(n, Decl(anonterface.ts, 9, 13)) +>n : number >18 : number diff --git a/tests/baselines/reference/anyAsFunctionCall.symbols b/tests/baselines/reference/anyAsFunctionCall.symbols new file mode 100644 index 0000000000000..14aeb993a6d64 --- /dev/null +++ b/tests/baselines/reference/anyAsFunctionCall.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/types/any/anyAsFunctionCall.ts === +// any is considered an untyped function call +// can be called except with type arguments which is an error + +var x: any; +>x : Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) + +var a = x(); +>a : Symbol(a, Decl(anyAsFunctionCall.ts, 4, 3)) +>x : Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) + +var b = x('hello'); +>b : Symbol(b, Decl(anyAsFunctionCall.ts, 5, 3)) +>x : Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) + +var c = x(x); +>c : Symbol(c, Decl(anyAsFunctionCall.ts, 6, 3)) +>x : Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) +>x : Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) + diff --git a/tests/baselines/reference/anyAsFunctionCall.types b/tests/baselines/reference/anyAsFunctionCall.types index 80e039f76dd0f..340ccac463fdd 100644 --- a/tests/baselines/reference/anyAsFunctionCall.types +++ b/tests/baselines/reference/anyAsFunctionCall.types @@ -3,22 +3,22 @@ // can be called except with type arguments which is an error var x: any; ->x : any, Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) +>x : any var a = x(); ->a : any, Symbol(a, Decl(anyAsFunctionCall.ts, 4, 3)) +>a : any >x() : any ->x : any, Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) +>x : any var b = x('hello'); ->b : any, Symbol(b, Decl(anyAsFunctionCall.ts, 5, 3)) +>b : any >x('hello') : any ->x : any, Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) +>x : any >'hello' : string var c = x(x); ->c : any, Symbol(c, Decl(anyAsFunctionCall.ts, 6, 3)) +>c : any >x(x) : any ->x : any, Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) ->x : any, Symbol(x, Decl(anyAsFunctionCall.ts, 3, 3)) +>x : any +>x : any diff --git a/tests/baselines/reference/anyAsReturnTypeForNewOnCall.symbols b/tests/baselines/reference/anyAsReturnTypeForNewOnCall.symbols new file mode 100644 index 0000000000000..d6d6719240d44 --- /dev/null +++ b/tests/baselines/reference/anyAsReturnTypeForNewOnCall.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/anyAsReturnTypeForNewOnCall.ts === +function Point(x, y) { +>Point : Symbol(Point, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 0)) +>x : Symbol(x, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 15)) +>y : Symbol(y, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 17)) + + this.x = x; +>x : Symbol(x, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 15)) + + this.y = y; +>y : Symbol(y, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 17)) + +} + +var o = new Point(3, 4); +>o : Symbol(o, Decl(anyAsReturnTypeForNewOnCall.ts, 8, 3)) +>Point : Symbol(Point, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 0)) + +var xx = o.x; +>xx : Symbol(xx, Decl(anyAsReturnTypeForNewOnCall.ts, 10, 3)) +>o : Symbol(o, Decl(anyAsReturnTypeForNewOnCall.ts, 8, 3)) + + + diff --git a/tests/baselines/reference/anyAsReturnTypeForNewOnCall.types b/tests/baselines/reference/anyAsReturnTypeForNewOnCall.types index 2abdb1cbeda22..bd0d9a9a09227 100644 --- a/tests/baselines/reference/anyAsReturnTypeForNewOnCall.types +++ b/tests/baselines/reference/anyAsReturnTypeForNewOnCall.types @@ -1,36 +1,36 @@ === tests/cases/compiler/anyAsReturnTypeForNewOnCall.ts === function Point(x, y) { ->Point : (x: any, y: any) => void, Symbol(Point, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 0)) ->x : any, Symbol(x, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 15)) ->y : any, Symbol(y, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 17)) +>Point : (x: any, y: any) => void +>x : any +>y : any this.x = x; >this.x = x : any >this.x : any >this : any >x : any ->x : any, Symbol(x, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 15)) +>x : any this.y = y; >this.y = y : any >this.y : any >this : any >y : any ->y : any, Symbol(y, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 17)) +>y : any } var o = new Point(3, 4); ->o : any, Symbol(o, Decl(anyAsReturnTypeForNewOnCall.ts, 8, 3)) +>o : any >new Point(3, 4) : any ->Point : (x: any, y: any) => void, Symbol(Point, Decl(anyAsReturnTypeForNewOnCall.ts, 0, 0)) +>Point : (x: any, y: any) => void >3 : number >4 : number var xx = o.x; ->xx : any, Symbol(xx, Decl(anyAsReturnTypeForNewOnCall.ts, 10, 3)) +>xx : any >o.x : any ->o : any, Symbol(o, Decl(anyAsReturnTypeForNewOnCall.ts, 8, 3)) +>o : any >x : any diff --git a/tests/baselines/reference/anyAssignabilityInInheritance.symbols b/tests/baselines/reference/anyAssignabilityInInheritance.symbols new file mode 100644 index 0000000000000..0f659dddd2185 --- /dev/null +++ b/tests/baselines/reference/anyAssignabilityInInheritance.symbols @@ -0,0 +1,304 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignabilityInInheritance.ts === +// any is not a subtype of any other types, errors expected on all the below derived classes unless otherwise noted + +interface I { +>I : Symbol(I, Decl(anyAssignabilityInInheritance.ts, 0, 0)) + + [x: string]: any; +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 3, 5)) + + foo: any; // ok, any identical to itself +>foo : Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 3, 21)) +} + +var a: any; +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo2(x: number): number; +>foo2 : Symbol(foo2, Decl(anyAssignabilityInInheritance.ts, 7, 11), Decl(anyAssignabilityInInheritance.ts, 9, 41)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 9, 22)) + +declare function foo2(x: any): any; +>foo2 : Symbol(foo2, Decl(anyAssignabilityInInheritance.ts, 7, 11), Decl(anyAssignabilityInInheritance.ts, 9, 41)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 10, 22)) + +var r3 = foo2(a); // any, not a subtype of number so it skips that overload, is a subtype of itself so it picks second (if truly ambiguous it would pick first overload) +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo2 : Symbol(foo2, Decl(anyAssignabilityInInheritance.ts, 7, 11), Decl(anyAssignabilityInInheritance.ts, 9, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo3(x: string): string; +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 13, 22)) + +declare function foo3(x: any): any; +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 14, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo4(x: boolean): boolean; +>foo4 : Symbol(foo4, Decl(anyAssignabilityInInheritance.ts, 15, 17), Decl(anyAssignabilityInInheritance.ts, 17, 43)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 17, 22)) + +declare function foo4(x: any): any; +>foo4 : Symbol(foo4, Decl(anyAssignabilityInInheritance.ts, 15, 17), Decl(anyAssignabilityInInheritance.ts, 17, 43)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 18, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo5(x: Date): Date; +>foo5 : Symbol(foo5, Decl(anyAssignabilityInInheritance.ts, 19, 17), Decl(anyAssignabilityInInheritance.ts, 21, 37)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 21, 22)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +declare function foo5(x: any): any; +>foo5 : Symbol(foo5, Decl(anyAssignabilityInInheritance.ts, 19, 17), Decl(anyAssignabilityInInheritance.ts, 21, 37)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 22, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo6(x: RegExp): RegExp; +>foo6 : Symbol(foo6, Decl(anyAssignabilityInInheritance.ts, 23, 17), Decl(anyAssignabilityInInheritance.ts, 25, 41)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 25, 22)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +declare function foo6(x: any): any; +>foo6 : Symbol(foo6, Decl(anyAssignabilityInInheritance.ts, 23, 17), Decl(anyAssignabilityInInheritance.ts, 25, 41)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 26, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo7(x: { bar: number }): { bar: number }; +>foo7 : Symbol(foo7, Decl(anyAssignabilityInInheritance.ts, 27, 17), Decl(anyAssignabilityInInheritance.ts, 29, 59)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 29, 22)) +>bar : Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 29, 26)) +>bar : Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 29, 44)) + +declare function foo7(x: any): any; +>foo7 : Symbol(foo7, Decl(anyAssignabilityInInheritance.ts, 27, 17), Decl(anyAssignabilityInInheritance.ts, 29, 59)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 30, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo8(x: number[]): number[]; +>foo8 : Symbol(foo8, Decl(anyAssignabilityInInheritance.ts, 31, 17), Decl(anyAssignabilityInInheritance.ts, 33, 45)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 33, 22)) + +declare function foo8(x: any): any; +>foo8 : Symbol(foo8, Decl(anyAssignabilityInInheritance.ts, 31, 17), Decl(anyAssignabilityInInheritance.ts, 33, 45)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 34, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +interface I8 { foo: string } +>I8 : Symbol(I8, Decl(anyAssignabilityInInheritance.ts, 35, 17)) +>foo : Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 37, 14)) + +declare function foo9(x: I8): I8; +>foo9 : Symbol(foo9, Decl(anyAssignabilityInInheritance.ts, 37, 28), Decl(anyAssignabilityInInheritance.ts, 38, 33)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 38, 22)) +>I8 : Symbol(I8, Decl(anyAssignabilityInInheritance.ts, 35, 17)) +>I8 : Symbol(I8, Decl(anyAssignabilityInInheritance.ts, 35, 17)) + +declare function foo9(x: any): any; +>foo9 : Symbol(foo9, Decl(anyAssignabilityInInheritance.ts, 37, 28), Decl(anyAssignabilityInInheritance.ts, 38, 33)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 39, 22)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +class A { foo: number; } +>A : Symbol(A, Decl(anyAssignabilityInInheritance.ts, 40, 17)) +>foo : Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 42, 9)) + +declare function foo10(x: A): A; +>foo10 : Symbol(foo10, Decl(anyAssignabilityInInheritance.ts, 42, 24), Decl(anyAssignabilityInInheritance.ts, 43, 32)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 43, 23)) +>A : Symbol(A, Decl(anyAssignabilityInInheritance.ts, 40, 17)) +>A : Symbol(A, Decl(anyAssignabilityInInheritance.ts, 40, 17)) + +declare function foo10(x: any): any; +>foo10 : Symbol(foo10, Decl(anyAssignabilityInInheritance.ts, 42, 24), Decl(anyAssignabilityInInheritance.ts, 43, 32)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 44, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +class A2 { foo: T; } +>A2 : Symbol(A2, Decl(anyAssignabilityInInheritance.ts, 45, 17)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 47, 9)) +>foo : Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 47, 13)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 47, 9)) + +declare function foo11(x: A2): A2; +>foo11 : Symbol(foo11, Decl(anyAssignabilityInInheritance.ts, 47, 23), Decl(anyAssignabilityInInheritance.ts, 48, 50)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 48, 23)) +>A2 : Symbol(A2, Decl(anyAssignabilityInInheritance.ts, 45, 17)) +>A2 : Symbol(A2, Decl(anyAssignabilityInInheritance.ts, 45, 17)) + +declare function foo11(x: any): any; +>foo11 : Symbol(foo11, Decl(anyAssignabilityInInheritance.ts, 47, 23), Decl(anyAssignabilityInInheritance.ts, 48, 50)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 49, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo12(x: (x) => number): (x) => number; +>foo12 : Symbol(foo12, Decl(anyAssignabilityInInheritance.ts, 50, 17), Decl(anyAssignabilityInInheritance.ts, 52, 56)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 52, 23)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 52, 27)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 52, 43)) + +declare function foo12(x: any): any; +>foo12 : Symbol(foo12, Decl(anyAssignabilityInInheritance.ts, 50, 17), Decl(anyAssignabilityInInheritance.ts, 52, 56)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 53, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo13(x: (x: T) => T): (x: T) => T; +>foo13 : Symbol(foo13, Decl(anyAssignabilityInInheritance.ts, 54, 17), Decl(anyAssignabilityInInheritance.ts, 56, 58)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 56, 23)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 27)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 56, 30)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 27)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 27)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 44)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 56, 47)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 44)) +>T : Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 44)) + +declare function foo13(x: any): any; +>foo13 : Symbol(foo13, Decl(anyAssignabilityInInheritance.ts, 54, 17), Decl(anyAssignabilityInInheritance.ts, 56, 58)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 57, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +enum E { A } +>E : Symbol(E, Decl(anyAssignabilityInInheritance.ts, 58, 17)) +>A : Symbol(E.A, Decl(anyAssignabilityInInheritance.ts, 60, 8)) + +declare function foo14(x: E): E; +>foo14 : Symbol(foo14, Decl(anyAssignabilityInInheritance.ts, 60, 12), Decl(anyAssignabilityInInheritance.ts, 61, 32)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 61, 23)) +>E : Symbol(E, Decl(anyAssignabilityInInheritance.ts, 58, 17)) +>E : Symbol(E, Decl(anyAssignabilityInInheritance.ts, 58, 17)) + +declare function foo14(x: any): any; +>foo14 : Symbol(foo14, Decl(anyAssignabilityInInheritance.ts, 60, 12), Decl(anyAssignabilityInInheritance.ts, 61, 32)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 62, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +function f() { } +>f : Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) + +module f { +>f : Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) + + export var bar = 1; +>bar : Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 67, 14)) +} +declare function foo15(x: typeof f): typeof f; +>foo15 : Symbol(foo15, Decl(anyAssignabilityInInheritance.ts, 68, 1), Decl(anyAssignabilityInInheritance.ts, 69, 46)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 69, 23)) +>f : Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) +>f : Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) + +declare function foo15(x: any): any; +>foo15 : Symbol(foo15, Decl(anyAssignabilityInInheritance.ts, 68, 1), Decl(anyAssignabilityInInheritance.ts, 69, 46)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 70, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +class CC { baz: string } +>CC : Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) +>baz : Symbol(baz, Decl(anyAssignabilityInInheritance.ts, 73, 10)) + +module CC { +>CC : Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) + + export var bar = 1; +>bar : Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 75, 14)) +} +declare function foo16(x: CC): CC; +>foo16 : Symbol(foo16, Decl(anyAssignabilityInInheritance.ts, 76, 1), Decl(anyAssignabilityInInheritance.ts, 77, 34)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 77, 23)) +>CC : Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) +>CC : Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) + +declare function foo16(x: any): any; +>foo16 : Symbol(foo16, Decl(anyAssignabilityInInheritance.ts, 76, 1), Decl(anyAssignabilityInInheritance.ts, 77, 34)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 78, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo17(x: Object): Object; +>foo17 : Symbol(foo17, Decl(anyAssignabilityInInheritance.ts, 79, 17), Decl(anyAssignabilityInInheritance.ts, 81, 42)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 81, 23)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +declare function foo17(x: any): any; +>foo17 : Symbol(foo17, Decl(anyAssignabilityInInheritance.ts, 79, 17), Decl(anyAssignabilityInInheritance.ts, 81, 42)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 82, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + +declare function foo18(x: {}): {}; +>foo18 : Symbol(foo18, Decl(anyAssignabilityInInheritance.ts, 83, 17), Decl(anyAssignabilityInInheritance.ts, 85, 34)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 85, 23)) + +declare function foo18(x: any): any; +>foo18 : Symbol(foo18, Decl(anyAssignabilityInInheritance.ts, 83, 17), Decl(anyAssignabilityInInheritance.ts, 85, 34)) +>x : Symbol(x, Decl(anyAssignabilityInInheritance.ts, 86, 23)) + +var r3 = foo3(a); // any +>r3 : Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>foo3 : Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) +>a : Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) + diff --git a/tests/baselines/reference/anyAssignabilityInInheritance.types b/tests/baselines/reference/anyAssignabilityInInheritance.types index 8f54b6761c8c8..b8575e8edb26d 100644 --- a/tests/baselines/reference/anyAssignabilityInInheritance.types +++ b/tests/baselines/reference/anyAssignabilityInInheritance.types @@ -2,322 +2,322 @@ // any is not a subtype of any other types, errors expected on all the below derived classes unless otherwise noted interface I { ->I : I, Symbol(I, Decl(anyAssignabilityInInheritance.ts, 0, 0)) +>I : I [x: string]: any; ->x : string, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 3, 5)) +>x : string foo: any; // ok, any identical to itself ->foo : any, Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 3, 21)) +>foo : any } var a: any; ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>a : any declare function foo2(x: number): number; ->foo2 : { (x: number): number; (x: any): any; }, Symbol(foo2, Decl(anyAssignabilityInInheritance.ts, 7, 11), Decl(anyAssignabilityInInheritance.ts, 9, 41)) ->x : number, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 9, 22)) +>foo2 : { (x: number): number; (x: any): any; } +>x : number declare function foo2(x: any): any; ->foo2 : { (x: number): number; (x: any): any; }, Symbol(foo2, Decl(anyAssignabilityInInheritance.ts, 7, 11), Decl(anyAssignabilityInInheritance.ts, 9, 41)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 10, 22)) +>foo2 : { (x: number): number; (x: any): any; } +>x : any var r3 = foo2(a); // any, not a subtype of number so it skips that overload, is a subtype of itself so it picks second (if truly ambiguous it would pick first overload) ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo2(a) : any ->foo2 : { (x: number): number; (x: any): any; }, Symbol(foo2, Decl(anyAssignabilityInInheritance.ts, 7, 11), Decl(anyAssignabilityInInheritance.ts, 9, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo2 : { (x: number): number; (x: any): any; } +>a : any declare function foo3(x: string): string; ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->x : string, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 13, 22)) +>foo3 : { (x: string): string; (x: any): any; } +>x : string declare function foo3(x: any): any; ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 14, 22)) +>foo3 : { (x: string): string; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo4(x: boolean): boolean; ->foo4 : { (x: boolean): boolean; (x: any): any; }, Symbol(foo4, Decl(anyAssignabilityInInheritance.ts, 15, 17), Decl(anyAssignabilityInInheritance.ts, 17, 43)) ->x : boolean, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 17, 22)) +>foo4 : { (x: boolean): boolean; (x: any): any; } +>x : boolean declare function foo4(x: any): any; ->foo4 : { (x: boolean): boolean; (x: any): any; }, Symbol(foo4, Decl(anyAssignabilityInInheritance.ts, 15, 17), Decl(anyAssignabilityInInheritance.ts, 17, 43)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 18, 22)) +>foo4 : { (x: boolean): boolean; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo5(x: Date): Date; ->foo5 : { (x: Date): Date; (x: any): any; }, Symbol(foo5, Decl(anyAssignabilityInInheritance.ts, 19, 17), Decl(anyAssignabilityInInheritance.ts, 21, 37)) ->x : Date, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 21, 22)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo5 : { (x: Date): Date; (x: any): any; } +>x : Date +>Date : Date +>Date : Date declare function foo5(x: any): any; ->foo5 : { (x: Date): Date; (x: any): any; }, Symbol(foo5, Decl(anyAssignabilityInInheritance.ts, 19, 17), Decl(anyAssignabilityInInheritance.ts, 21, 37)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 22, 22)) +>foo5 : { (x: Date): Date; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo6(x: RegExp): RegExp; ->foo6 : { (x: RegExp): RegExp; (x: any): any; }, Symbol(foo6, Decl(anyAssignabilityInInheritance.ts, 23, 17), Decl(anyAssignabilityInInheritance.ts, 25, 41)) ->x : RegExp, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 25, 22)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>foo6 : { (x: RegExp): RegExp; (x: any): any; } +>x : RegExp +>RegExp : RegExp +>RegExp : RegExp declare function foo6(x: any): any; ->foo6 : { (x: RegExp): RegExp; (x: any): any; }, Symbol(foo6, Decl(anyAssignabilityInInheritance.ts, 23, 17), Decl(anyAssignabilityInInheritance.ts, 25, 41)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 26, 22)) +>foo6 : { (x: RegExp): RegExp; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo7(x: { bar: number }): { bar: number }; ->foo7 : { (x: { bar: number; }): { bar: number; }; (x: any): any; }, Symbol(foo7, Decl(anyAssignabilityInInheritance.ts, 27, 17), Decl(anyAssignabilityInInheritance.ts, 29, 59)) ->x : { bar: number; }, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 29, 22)) ->bar : number, Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 29, 26)) ->bar : number, Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 29, 44)) +>foo7 : { (x: { bar: number; }): { bar: number; }; (x: any): any; } +>x : { bar: number; } +>bar : number +>bar : number declare function foo7(x: any): any; ->foo7 : { (x: { bar: number; }): { bar: number; }; (x: any): any; }, Symbol(foo7, Decl(anyAssignabilityInInheritance.ts, 27, 17), Decl(anyAssignabilityInInheritance.ts, 29, 59)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 30, 22)) +>foo7 : { (x: { bar: number; }): { bar: number; }; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo8(x: number[]): number[]; ->foo8 : { (x: number[]): number[]; (x: any): any; }, Symbol(foo8, Decl(anyAssignabilityInInheritance.ts, 31, 17), Decl(anyAssignabilityInInheritance.ts, 33, 45)) ->x : number[], Symbol(x, Decl(anyAssignabilityInInheritance.ts, 33, 22)) +>foo8 : { (x: number[]): number[]; (x: any): any; } +>x : number[] declare function foo8(x: any): any; ->foo8 : { (x: number[]): number[]; (x: any): any; }, Symbol(foo8, Decl(anyAssignabilityInInheritance.ts, 31, 17), Decl(anyAssignabilityInInheritance.ts, 33, 45)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 34, 22)) +>foo8 : { (x: number[]): number[]; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any interface I8 { foo: string } ->I8 : I8, Symbol(I8, Decl(anyAssignabilityInInheritance.ts, 35, 17)) ->foo : string, Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 37, 14)) +>I8 : I8 +>foo : string declare function foo9(x: I8): I8; ->foo9 : { (x: I8): I8; (x: any): any; }, Symbol(foo9, Decl(anyAssignabilityInInheritance.ts, 37, 28), Decl(anyAssignabilityInInheritance.ts, 38, 33)) ->x : I8, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 38, 22)) ->I8 : I8, Symbol(I8, Decl(anyAssignabilityInInheritance.ts, 35, 17)) ->I8 : I8, Symbol(I8, Decl(anyAssignabilityInInheritance.ts, 35, 17)) +>foo9 : { (x: I8): I8; (x: any): any; } +>x : I8 +>I8 : I8 +>I8 : I8 declare function foo9(x: any): any; ->foo9 : { (x: I8): I8; (x: any): any; }, Symbol(foo9, Decl(anyAssignabilityInInheritance.ts, 37, 28), Decl(anyAssignabilityInInheritance.ts, 38, 33)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 39, 22)) +>foo9 : { (x: I8): I8; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any class A { foo: number; } ->A : A, Symbol(A, Decl(anyAssignabilityInInheritance.ts, 40, 17)) ->foo : number, Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 42, 9)) +>A : A +>foo : number declare function foo10(x: A): A; ->foo10 : { (x: A): A; (x: any): any; }, Symbol(foo10, Decl(anyAssignabilityInInheritance.ts, 42, 24), Decl(anyAssignabilityInInheritance.ts, 43, 32)) ->x : A, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 43, 23)) ->A : A, Symbol(A, Decl(anyAssignabilityInInheritance.ts, 40, 17)) ->A : A, Symbol(A, Decl(anyAssignabilityInInheritance.ts, 40, 17)) +>foo10 : { (x: A): A; (x: any): any; } +>x : A +>A : A +>A : A declare function foo10(x: any): any; ->foo10 : { (x: A): A; (x: any): any; }, Symbol(foo10, Decl(anyAssignabilityInInheritance.ts, 42, 24), Decl(anyAssignabilityInInheritance.ts, 43, 32)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 44, 23)) +>foo10 : { (x: A): A; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any class A2 { foo: T; } ->A2 : A2, Symbol(A2, Decl(anyAssignabilityInInheritance.ts, 45, 17)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 47, 9)) ->foo : T, Symbol(foo, Decl(anyAssignabilityInInheritance.ts, 47, 13)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 47, 9)) +>A2 : A2 +>T : T +>foo : T +>T : T declare function foo11(x: A2): A2; ->foo11 : { (x: A2): A2; (x: any): any; }, Symbol(foo11, Decl(anyAssignabilityInInheritance.ts, 47, 23), Decl(anyAssignabilityInInheritance.ts, 48, 50)) ->x : A2, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 48, 23)) ->A2 : A2, Symbol(A2, Decl(anyAssignabilityInInheritance.ts, 45, 17)) ->A2 : A2, Symbol(A2, Decl(anyAssignabilityInInheritance.ts, 45, 17)) +>foo11 : { (x: A2): A2; (x: any): any; } +>x : A2 +>A2 : A2 +>A2 : A2 declare function foo11(x: any): any; ->foo11 : { (x: A2): A2; (x: any): any; }, Symbol(foo11, Decl(anyAssignabilityInInheritance.ts, 47, 23), Decl(anyAssignabilityInInheritance.ts, 48, 50)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 49, 23)) +>foo11 : { (x: A2): A2; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo12(x: (x) => number): (x) => number; ->foo12 : { (x: (x: any) => number): (x: any) => number; (x: any): any; }, Symbol(foo12, Decl(anyAssignabilityInInheritance.ts, 50, 17), Decl(anyAssignabilityInInheritance.ts, 52, 56)) ->x : (x: any) => number, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 52, 23)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 52, 27)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 52, 43)) +>foo12 : { (x: (x: any) => number): (x: any) => number; (x: any): any; } +>x : (x: any) => number +>x : any +>x : any declare function foo12(x: any): any; ->foo12 : { (x: (x: any) => number): (x: any) => number; (x: any): any; }, Symbol(foo12, Decl(anyAssignabilityInInheritance.ts, 50, 17), Decl(anyAssignabilityInInheritance.ts, 52, 56)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 53, 23)) +>foo12 : { (x: (x: any) => number): (x: any) => number; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo13(x: (x: T) => T): (x: T) => T; ->foo13 : { (x: (x: T) => T): (x: T) => T; (x: any): any; }, Symbol(foo13, Decl(anyAssignabilityInInheritance.ts, 54, 17), Decl(anyAssignabilityInInheritance.ts, 56, 58)) ->x : (x: T) => T, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 56, 23)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 27)) ->x : T, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 56, 30)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 27)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 27)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 44)) ->x : T, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 56, 47)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 44)) ->T : T, Symbol(T, Decl(anyAssignabilityInInheritance.ts, 56, 44)) +>foo13 : { (x: (x: T) => T): (x: T) => T; (x: any): any; } +>x : (x: T) => T +>T : T +>x : T +>T : T +>T : T +>T : T +>x : T +>T : T +>T : T declare function foo13(x: any): any; ->foo13 : { (x: (x: T) => T): (x: T) => T; (x: any): any; }, Symbol(foo13, Decl(anyAssignabilityInInheritance.ts, 54, 17), Decl(anyAssignabilityInInheritance.ts, 56, 58)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 57, 23)) +>foo13 : { (x: (x: T) => T): (x: T) => T; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any enum E { A } ->E : E, Symbol(E, Decl(anyAssignabilityInInheritance.ts, 58, 17)) ->A : E, Symbol(E.A, Decl(anyAssignabilityInInheritance.ts, 60, 8)) +>E : E +>A : E declare function foo14(x: E): E; ->foo14 : { (x: E): E; (x: any): any; }, Symbol(foo14, Decl(anyAssignabilityInInheritance.ts, 60, 12), Decl(anyAssignabilityInInheritance.ts, 61, 32)) ->x : E, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 61, 23)) ->E : E, Symbol(E, Decl(anyAssignabilityInInheritance.ts, 58, 17)) ->E : E, Symbol(E, Decl(anyAssignabilityInInheritance.ts, 58, 17)) +>foo14 : { (x: E): E; (x: any): any; } +>x : E +>E : E +>E : E declare function foo14(x: any): any; ->foo14 : { (x: E): E; (x: any): any; }, Symbol(foo14, Decl(anyAssignabilityInInheritance.ts, 60, 12), Decl(anyAssignabilityInInheritance.ts, 61, 32)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 62, 23)) +>foo14 : { (x: E): E; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any function f() { } ->f : typeof f, Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) +>f : typeof f module f { ->f : typeof f, Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) +>f : typeof f export var bar = 1; ->bar : number, Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 67, 14)) +>bar : number >1 : number } declare function foo15(x: typeof f): typeof f; ->foo15 : { (x: typeof f): typeof f; (x: any): any; }, Symbol(foo15, Decl(anyAssignabilityInInheritance.ts, 68, 1), Decl(anyAssignabilityInInheritance.ts, 69, 46)) ->x : typeof f, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 69, 23)) ->f : typeof f, Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) ->f : typeof f, Symbol(f, Decl(anyAssignabilityInInheritance.ts, 63, 17), Decl(anyAssignabilityInInheritance.ts, 65, 16)) +>foo15 : { (x: typeof f): typeof f; (x: any): any; } +>x : typeof f +>f : typeof f +>f : typeof f declare function foo15(x: any): any; ->foo15 : { (x: typeof f): typeof f; (x: any): any; }, Symbol(foo15, Decl(anyAssignabilityInInheritance.ts, 68, 1), Decl(anyAssignabilityInInheritance.ts, 69, 46)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 70, 23)) +>foo15 : { (x: typeof f): typeof f; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any class CC { baz: string } ->CC : CC, Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) ->baz : string, Symbol(baz, Decl(anyAssignabilityInInheritance.ts, 73, 10)) +>CC : CC +>baz : string module CC { ->CC : typeof CC, Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) +>CC : typeof CC export var bar = 1; ->bar : number, Symbol(bar, Decl(anyAssignabilityInInheritance.ts, 75, 14)) +>bar : number >1 : number } declare function foo16(x: CC): CC; ->foo16 : { (x: CC): CC; (x: any): any; }, Symbol(foo16, Decl(anyAssignabilityInInheritance.ts, 76, 1), Decl(anyAssignabilityInInheritance.ts, 77, 34)) ->x : CC, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 77, 23)) ->CC : CC, Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) ->CC : CC, Symbol(CC, Decl(anyAssignabilityInInheritance.ts, 71, 17), Decl(anyAssignabilityInInheritance.ts, 73, 24)) +>foo16 : { (x: CC): CC; (x: any): any; } +>x : CC +>CC : CC +>CC : CC declare function foo16(x: any): any; ->foo16 : { (x: CC): CC; (x: any): any; }, Symbol(foo16, Decl(anyAssignabilityInInheritance.ts, 76, 1), Decl(anyAssignabilityInInheritance.ts, 77, 34)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 78, 23)) +>foo16 : { (x: CC): CC; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo17(x: Object): Object; ->foo17 : { (x: Object): Object; (x: any): any; }, Symbol(foo17, Decl(anyAssignabilityInInheritance.ts, 79, 17), Decl(anyAssignabilityInInheritance.ts, 81, 42)) ->x : Object, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 81, 23)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>foo17 : { (x: Object): Object; (x: any): any; } +>x : Object +>Object : Object +>Object : Object declare function foo17(x: any): any; ->foo17 : { (x: Object): Object; (x: any): any; }, Symbol(foo17, Decl(anyAssignabilityInInheritance.ts, 79, 17), Decl(anyAssignabilityInInheritance.ts, 81, 42)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 82, 23)) +>foo17 : { (x: Object): Object; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any declare function foo18(x: {}): {}; ->foo18 : { (x: {}): {}; (x: any): any; }, Symbol(foo18, Decl(anyAssignabilityInInheritance.ts, 83, 17), Decl(anyAssignabilityInInheritance.ts, 85, 34)) ->x : {}, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 85, 23)) +>foo18 : { (x: {}): {}; (x: any): any; } +>x : {} declare function foo18(x: any): any; ->foo18 : { (x: {}): {}; (x: any): any; }, Symbol(foo18, Decl(anyAssignabilityInInheritance.ts, 83, 17), Decl(anyAssignabilityInInheritance.ts, 85, 34)) ->x : any, Symbol(x, Decl(anyAssignabilityInInheritance.ts, 86, 23)) +>foo18 : { (x: {}): {}; (x: any): any; } +>x : any var r3 = foo3(a); // any ->r3 : any, Symbol(r3, Decl(anyAssignabilityInInheritance.ts, 11, 3), Decl(anyAssignabilityInInheritance.ts, 15, 3), Decl(anyAssignabilityInInheritance.ts, 19, 3), Decl(anyAssignabilityInInheritance.ts, 23, 3), Decl(anyAssignabilityInInheritance.ts, 27, 3), Decl(anyAssignabilityInInheritance.ts, 31, 3), Decl(anyAssignabilityInInheritance.ts, 35, 3), Decl(anyAssignabilityInInheritance.ts, 40, 3), Decl(anyAssignabilityInInheritance.ts, 45, 3), Decl(anyAssignabilityInInheritance.ts, 50, 3), Decl(anyAssignabilityInInheritance.ts, 54, 3), Decl(anyAssignabilityInInheritance.ts, 58, 3), Decl(anyAssignabilityInInheritance.ts, 63, 3), Decl(anyAssignabilityInInheritance.ts, 71, 3), Decl(anyAssignabilityInInheritance.ts, 79, 3), Decl(anyAssignabilityInInheritance.ts, 83, 3), Decl(anyAssignabilityInInheritance.ts, 87, 3)) +>r3 : any >foo3(a) : any ->foo3 : { (x: string): string; (x: any): any; }, Symbol(foo3, Decl(anyAssignabilityInInheritance.ts, 11, 17), Decl(anyAssignabilityInInheritance.ts, 13, 41)) ->a : any, Symbol(a, Decl(anyAssignabilityInInheritance.ts, 7, 3)) +>foo3 : { (x: string): string; (x: any): any; } +>a : any diff --git a/tests/baselines/reference/anyAssignableToEveryType.symbols b/tests/baselines/reference/anyAssignableToEveryType.symbols new file mode 100644 index 0000000000000..19dc94c7a43e1 --- /dev/null +++ b/tests/baselines/reference/anyAssignableToEveryType.symbols @@ -0,0 +1,150 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts === +var a: any; +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +class C { +>C : Symbol(C, Decl(anyAssignableToEveryType.ts, 0, 11)) + + foo: string; +>foo : Symbol(foo, Decl(anyAssignableToEveryType.ts, 2, 9)) +} +var ac: C; +>ac : Symbol(ac, Decl(anyAssignableToEveryType.ts, 5, 3)) +>C : Symbol(C, Decl(anyAssignableToEveryType.ts, 0, 11)) + +interface I { +>I : Symbol(I, Decl(anyAssignableToEveryType.ts, 5, 10)) + + foo: string; +>foo : Symbol(foo, Decl(anyAssignableToEveryType.ts, 6, 13)) +} +var ai: I; +>ai : Symbol(ai, Decl(anyAssignableToEveryType.ts, 9, 3)) +>I : Symbol(I, Decl(anyAssignableToEveryType.ts, 5, 10)) + +enum E { A } +>E : Symbol(E, Decl(anyAssignableToEveryType.ts, 9, 10)) +>A : Symbol(E.A, Decl(anyAssignableToEveryType.ts, 11, 8)) + +var ae: E; +>ae : Symbol(ae, Decl(anyAssignableToEveryType.ts, 12, 3)) +>E : Symbol(E, Decl(anyAssignableToEveryType.ts, 9, 10)) + +var b: number = a; +>b : Symbol(b, Decl(anyAssignableToEveryType.ts, 14, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var c: string = a; +>c : Symbol(c, Decl(anyAssignableToEveryType.ts, 15, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var d: boolean = a; +>d : Symbol(d, Decl(anyAssignableToEveryType.ts, 16, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var e: Date = a; +>e : Symbol(e, Decl(anyAssignableToEveryType.ts, 17, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var f: any = a; +>f : Symbol(f, Decl(anyAssignableToEveryType.ts, 18, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var g: void = a; +>g : Symbol(g, Decl(anyAssignableToEveryType.ts, 19, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var h: Object = a; +>h : Symbol(h, Decl(anyAssignableToEveryType.ts, 20, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var i: {} = a; +>i : Symbol(i, Decl(anyAssignableToEveryType.ts, 21, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var j: () => {} = a; +>j : Symbol(j, Decl(anyAssignableToEveryType.ts, 22, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var k: Function = a; +>k : Symbol(k, Decl(anyAssignableToEveryType.ts, 23, 3)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var l: (x: number) => string = a; +>l : Symbol(l, Decl(anyAssignableToEveryType.ts, 24, 3)) +>x : Symbol(x, Decl(anyAssignableToEveryType.ts, 24, 8)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +ac = a; +>ac : Symbol(ac, Decl(anyAssignableToEveryType.ts, 5, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +ai = a; +>ai : Symbol(ai, Decl(anyAssignableToEveryType.ts, 9, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +ae = a; +>ae : Symbol(ae, Decl(anyAssignableToEveryType.ts, 12, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var m: number[] = a; +>m : Symbol(m, Decl(anyAssignableToEveryType.ts, 28, 3)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var n: { foo: string } = a; +>n : Symbol(n, Decl(anyAssignableToEveryType.ts, 29, 3)) +>foo : Symbol(foo, Decl(anyAssignableToEveryType.ts, 29, 8)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var o: (x: T) => T = a; +>o : Symbol(o, Decl(anyAssignableToEveryType.ts, 30, 3)) +>T : Symbol(T, Decl(anyAssignableToEveryType.ts, 30, 8)) +>x : Symbol(x, Decl(anyAssignableToEveryType.ts, 30, 11)) +>T : Symbol(T, Decl(anyAssignableToEveryType.ts, 30, 8)) +>T : Symbol(T, Decl(anyAssignableToEveryType.ts, 30, 8)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var p: Number = a; +>p : Symbol(p, Decl(anyAssignableToEveryType.ts, 31, 3)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +var q: String = a; +>q : Symbol(q, Decl(anyAssignableToEveryType.ts, 32, 3)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + +function foo(x: T, y: U, z: V) { +>foo : Symbol(foo, Decl(anyAssignableToEveryType.ts, 32, 18)) +>T : Symbol(T, Decl(anyAssignableToEveryType.ts, 34, 13)) +>U : Symbol(U, Decl(anyAssignableToEveryType.ts, 34, 15)) +>V : Symbol(V, Decl(anyAssignableToEveryType.ts, 34, 32)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(anyAssignableToEveryType.ts, 34, 49)) +>T : Symbol(T, Decl(anyAssignableToEveryType.ts, 34, 13)) +>y : Symbol(y, Decl(anyAssignableToEveryType.ts, 34, 54)) +>U : Symbol(U, Decl(anyAssignableToEveryType.ts, 34, 15)) +>z : Symbol(z, Decl(anyAssignableToEveryType.ts, 34, 60)) +>V : Symbol(V, Decl(anyAssignableToEveryType.ts, 34, 32)) + + x = a; +>x : Symbol(x, Decl(anyAssignableToEveryType.ts, 34, 49)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + + y = a; +>y : Symbol(y, Decl(anyAssignableToEveryType.ts, 34, 54)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) + + z = a; +>z : Symbol(z, Decl(anyAssignableToEveryType.ts, 34, 60)) +>a : Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +} + +//function foo(x: T, y: U, z: V) { +// x = a; +// y = a; +// z = a; +//} diff --git a/tests/baselines/reference/anyAssignableToEveryType.types b/tests/baselines/reference/anyAssignableToEveryType.types index b6e420facb2ef..c2a9b324d9618 100644 --- a/tests/baselines/reference/anyAssignableToEveryType.types +++ b/tests/baselines/reference/anyAssignableToEveryType.types @@ -1,152 +1,152 @@ === tests/cases/conformance/types/typeRelationships/assignmentCompatibility/anyAssignableToEveryType.ts === var a: any; ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>a : any class C { ->C : C, Symbol(C, Decl(anyAssignableToEveryType.ts, 0, 11)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(anyAssignableToEveryType.ts, 2, 9)) +>foo : string } var ac: C; ->ac : C, Symbol(ac, Decl(anyAssignableToEveryType.ts, 5, 3)) ->C : C, Symbol(C, Decl(anyAssignableToEveryType.ts, 0, 11)) +>ac : C +>C : C interface I { ->I : I, Symbol(I, Decl(anyAssignableToEveryType.ts, 5, 10)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(anyAssignableToEveryType.ts, 6, 13)) +>foo : string } var ai: I; ->ai : I, Symbol(ai, Decl(anyAssignableToEveryType.ts, 9, 3)) ->I : I, Symbol(I, Decl(anyAssignableToEveryType.ts, 5, 10)) +>ai : I +>I : I enum E { A } ->E : E, Symbol(E, Decl(anyAssignableToEveryType.ts, 9, 10)) ->A : E, Symbol(E.A, Decl(anyAssignableToEveryType.ts, 11, 8)) +>E : E +>A : E var ae: E; ->ae : E, Symbol(ae, Decl(anyAssignableToEveryType.ts, 12, 3)) ->E : E, Symbol(E, Decl(anyAssignableToEveryType.ts, 9, 10)) +>ae : E +>E : E var b: number = a; ->b : number, Symbol(b, Decl(anyAssignableToEveryType.ts, 14, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>b : number +>a : any var c: string = a; ->c : string, Symbol(c, Decl(anyAssignableToEveryType.ts, 15, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>c : string +>a : any var d: boolean = a; ->d : boolean, Symbol(d, Decl(anyAssignableToEveryType.ts, 16, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>d : boolean +>a : any var e: Date = a; ->e : Date, Symbol(e, Decl(anyAssignableToEveryType.ts, 17, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>e : Date +>Date : Date +>a : any var f: any = a; ->f : any, Symbol(f, Decl(anyAssignableToEveryType.ts, 18, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>f : any +>a : any var g: void = a; ->g : void, Symbol(g, Decl(anyAssignableToEveryType.ts, 19, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>g : void +>a : any var h: Object = a; ->h : Object, Symbol(h, Decl(anyAssignableToEveryType.ts, 20, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>h : Object +>Object : Object +>a : any var i: {} = a; ->i : {}, Symbol(i, Decl(anyAssignableToEveryType.ts, 21, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>i : {} +>a : any var j: () => {} = a; ->j : () => {}, Symbol(j, Decl(anyAssignableToEveryType.ts, 22, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>j : () => {} +>a : any var k: Function = a; ->k : Function, Symbol(k, Decl(anyAssignableToEveryType.ts, 23, 3)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>k : Function +>Function : Function +>a : any var l: (x: number) => string = a; ->l : (x: number) => string, Symbol(l, Decl(anyAssignableToEveryType.ts, 24, 3)) ->x : number, Symbol(x, Decl(anyAssignableToEveryType.ts, 24, 8)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>l : (x: number) => string +>x : number +>a : any ac = a; >ac = a : any ->ac : C, Symbol(ac, Decl(anyAssignableToEveryType.ts, 5, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>ac : C +>a : any ai = a; >ai = a : any ->ai : I, Symbol(ai, Decl(anyAssignableToEveryType.ts, 9, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>ai : I +>a : any ae = a; >ae = a : any ->ae : E, Symbol(ae, Decl(anyAssignableToEveryType.ts, 12, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>ae : E +>a : any var m: number[] = a; ->m : number[], Symbol(m, Decl(anyAssignableToEveryType.ts, 28, 3)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>m : number[] +>a : any var n: { foo: string } = a; ->n : { foo: string; }, Symbol(n, Decl(anyAssignableToEveryType.ts, 29, 3)) ->foo : string, Symbol(foo, Decl(anyAssignableToEveryType.ts, 29, 8)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>n : { foo: string; } +>foo : string +>a : any var o: (x: T) => T = a; ->o : (x: T) => T, Symbol(o, Decl(anyAssignableToEveryType.ts, 30, 3)) ->T : T, Symbol(T, Decl(anyAssignableToEveryType.ts, 30, 8)) ->x : T, Symbol(x, Decl(anyAssignableToEveryType.ts, 30, 11)) ->T : T, Symbol(T, Decl(anyAssignableToEveryType.ts, 30, 8)) ->T : T, Symbol(T, Decl(anyAssignableToEveryType.ts, 30, 8)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>o : (x: T) => T +>T : T +>x : T +>T : T +>T : T +>a : any var p: Number = a; ->p : Number, Symbol(p, Decl(anyAssignableToEveryType.ts, 31, 3)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>p : Number +>Number : Number +>a : any var q: String = a; ->q : String, Symbol(q, Decl(anyAssignableToEveryType.ts, 32, 3)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>q : String +>String : String +>a : any function foo(x: T, y: U, z: V) { ->foo : (x: T, y: U, z: V) => void, Symbol(foo, Decl(anyAssignableToEveryType.ts, 32, 18)) ->T : T, Symbol(T, Decl(anyAssignableToEveryType.ts, 34, 13)) ->U : U, Symbol(U, Decl(anyAssignableToEveryType.ts, 34, 15)) ->V : V, Symbol(V, Decl(anyAssignableToEveryType.ts, 34, 32)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(anyAssignableToEveryType.ts, 34, 49)) ->T : T, Symbol(T, Decl(anyAssignableToEveryType.ts, 34, 13)) ->y : U, Symbol(y, Decl(anyAssignableToEveryType.ts, 34, 54)) ->U : U, Symbol(U, Decl(anyAssignableToEveryType.ts, 34, 15)) ->z : V, Symbol(z, Decl(anyAssignableToEveryType.ts, 34, 60)) ->V : V, Symbol(V, Decl(anyAssignableToEveryType.ts, 34, 32)) +>foo : (x: T, y: U, z: V) => void +>T : T +>U : U +>V : V +>Date : Date +>x : T +>T : T +>y : U +>U : U +>z : V +>V : V x = a; >x = a : any ->x : T, Symbol(x, Decl(anyAssignableToEveryType.ts, 34, 49)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>x : T +>a : any y = a; >y = a : any ->y : U, Symbol(y, Decl(anyAssignableToEveryType.ts, 34, 54)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>y : U +>a : any z = a; >z = a : any ->z : V, Symbol(z, Decl(anyAssignableToEveryType.ts, 34, 60)) ->a : any, Symbol(a, Decl(anyAssignableToEveryType.ts, 0, 3)) +>z : V +>a : any } //function foo(x: T, y: U, z: V) { diff --git a/tests/baselines/reference/anyInferenceAnonymousFunctions.symbols b/tests/baselines/reference/anyInferenceAnonymousFunctions.symbols new file mode 100644 index 0000000000000..daf7947e69437 --- /dev/null +++ b/tests/baselines/reference/anyInferenceAnonymousFunctions.symbols @@ -0,0 +1,50 @@ +=== tests/cases/compiler/anyInferenceAnonymousFunctions.ts === +var paired: any[]; +>paired : Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) + +paired.reduce(function (a1, a2) { +>paired.reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>paired : Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) +>reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>a1 : Symbol(a1, Decl(anyInferenceAnonymousFunctions.ts, 2, 24)) +>a2 : Symbol(a2, Decl(anyInferenceAnonymousFunctions.ts, 2, 27)) + + return a1.concat({}); +>a1 : Symbol(a1, Decl(anyInferenceAnonymousFunctions.ts, 2, 24)) + +} , []); + +paired.reduce((b1, b2) => { +>paired.reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>paired : Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) +>reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>b1 : Symbol(b1, Decl(anyInferenceAnonymousFunctions.ts, 8, 15)) +>b2 : Symbol(b2, Decl(anyInferenceAnonymousFunctions.ts, 8, 18)) + + return b1.concat({}); +>b1 : Symbol(b1, Decl(anyInferenceAnonymousFunctions.ts, 8, 15)) + +} , []); + +paired.reduce((b3, b4) => b3.concat({}), []); +>paired.reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>paired : Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) +>reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>b3 : Symbol(b3, Decl(anyInferenceAnonymousFunctions.ts, 13, 15)) +>b4 : Symbol(b4, Decl(anyInferenceAnonymousFunctions.ts, 13, 18)) +>b3 : Symbol(b3, Decl(anyInferenceAnonymousFunctions.ts, 13, 15)) + +paired.map((c1) => c1.count); +>paired.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>paired : Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>c1 : Symbol(c1, Decl(anyInferenceAnonymousFunctions.ts, 15, 12)) +>c1 : Symbol(c1, Decl(anyInferenceAnonymousFunctions.ts, 15, 12)) + +paired.map(function (c2) { return c2.count; }); +>paired.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>paired : Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>c2 : Symbol(c2, Decl(anyInferenceAnonymousFunctions.ts, 16, 21)) +>c2 : Symbol(c2, Decl(anyInferenceAnonymousFunctions.ts, 16, 21)) + diff --git a/tests/baselines/reference/anyInferenceAnonymousFunctions.types b/tests/baselines/reference/anyInferenceAnonymousFunctions.types index f434d14799069..8dc7fdcb90f1d 100644 --- a/tests/baselines/reference/anyInferenceAnonymousFunctions.types +++ b/tests/baselines/reference/anyInferenceAnonymousFunctions.types @@ -1,20 +1,20 @@ === tests/cases/compiler/anyInferenceAnonymousFunctions.ts === var paired: any[]; ->paired : any[], Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) +>paired : any[] paired.reduce(function (a1, a2) { >paired.reduce(function (a1, a2) { return a1.concat({});} , []) : any ->paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) ->paired : any[], Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) ->reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } +>paired : any[] +>reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } >function (a1, a2) { return a1.concat({});} : (a1: any, a2: any) => any ->a1 : any, Symbol(a1, Decl(anyInferenceAnonymousFunctions.ts, 2, 24)) ->a2 : any, Symbol(a2, Decl(anyInferenceAnonymousFunctions.ts, 2, 27)) +>a1 : any +>a2 : any return a1.concat({}); >a1.concat({}) : any >a1.concat : any ->a1 : any, Symbol(a1, Decl(anyInferenceAnonymousFunctions.ts, 2, 24)) +>a1 : any >concat : any >{} : {} @@ -23,17 +23,17 @@ paired.reduce(function (a1, a2) { paired.reduce((b1, b2) => { >paired.reduce((b1, b2) => { return b1.concat({});} , []) : any ->paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) ->paired : any[], Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) ->reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } +>paired : any[] +>reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } >(b1, b2) => { return b1.concat({});} : (b1: any, b2: any) => any ->b1 : any, Symbol(b1, Decl(anyInferenceAnonymousFunctions.ts, 8, 15)) ->b2 : any, Symbol(b2, Decl(anyInferenceAnonymousFunctions.ts, 8, 18)) +>b1 : any +>b2 : any return b1.concat({}); >b1.concat({}) : any >b1.concat : any ->b1 : any, Symbol(b1, Decl(anyInferenceAnonymousFunctions.ts, 8, 15)) +>b1 : any >concat : any >{} : {} @@ -42,38 +42,38 @@ paired.reduce((b1, b2) => { paired.reduce((b3, b4) => b3.concat({}), []); >paired.reduce((b3, b4) => b3.concat({}), []) : any ->paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) ->paired : any[], Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) ->reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } +>paired : any[] +>reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } >(b3, b4) => b3.concat({}) : (b3: any, b4: any) => any ->b3 : any, Symbol(b3, Decl(anyInferenceAnonymousFunctions.ts, 13, 15)) ->b4 : any, Symbol(b4, Decl(anyInferenceAnonymousFunctions.ts, 13, 18)) +>b3 : any +>b4 : any >b3.concat({}) : any >b3.concat : any ->b3 : any, Symbol(b3, Decl(anyInferenceAnonymousFunctions.ts, 13, 15)) +>b3 : any >concat : any >{} : {} >[] : undefined[] paired.map((c1) => c1.count); >paired.map((c1) => c1.count) : any[] ->paired.map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->paired : any[], Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) ->map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>paired.map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] +>paired : any[] +>map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] >(c1) => c1.count : (c1: any) => any ->c1 : any, Symbol(c1, Decl(anyInferenceAnonymousFunctions.ts, 15, 12)) +>c1 : any >c1.count : any ->c1 : any, Symbol(c1, Decl(anyInferenceAnonymousFunctions.ts, 15, 12)) +>c1 : any >count : any paired.map(function (c2) { return c2.count; }); >paired.map(function (c2) { return c2.count; }) : any[] ->paired.map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->paired : any[], Symbol(paired, Decl(anyInferenceAnonymousFunctions.ts, 0, 3)) ->map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>paired.map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] +>paired : any[] +>map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] >function (c2) { return c2.count; } : (c2: any) => any ->c2 : any, Symbol(c2, Decl(anyInferenceAnonymousFunctions.ts, 16, 21)) +>c2 : any >c2.count : any ->c2 : any, Symbol(c2, Decl(anyInferenceAnonymousFunctions.ts, 16, 21)) +>c2 : any >count : any diff --git a/tests/baselines/reference/anyIsAssignableToObject.symbols b/tests/baselines/reference/anyIsAssignableToObject.symbols new file mode 100644 index 0000000000000..a9650fa58b8da --- /dev/null +++ b/tests/baselines/reference/anyIsAssignableToObject.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/anyIsAssignableToObject.ts === +interface P { +>P : Symbol(P, Decl(anyIsAssignableToObject.ts, 0, 0)) + + p: {}; +>p : Symbol(p, Decl(anyIsAssignableToObject.ts, 0, 13)) +} + +interface Q extends P { // Check assignability here. Any is assignable to {} +>Q : Symbol(Q, Decl(anyIsAssignableToObject.ts, 2, 1)) +>P : Symbol(P, Decl(anyIsAssignableToObject.ts, 0, 0)) + + p: any; +>p : Symbol(p, Decl(anyIsAssignableToObject.ts, 4, 23)) +} diff --git a/tests/baselines/reference/anyIsAssignableToObject.types b/tests/baselines/reference/anyIsAssignableToObject.types index 73e1ef8b8dc1c..5df5d3b345f11 100644 --- a/tests/baselines/reference/anyIsAssignableToObject.types +++ b/tests/baselines/reference/anyIsAssignableToObject.types @@ -1,15 +1,15 @@ === tests/cases/compiler/anyIsAssignableToObject.ts === interface P { ->P : P, Symbol(P, Decl(anyIsAssignableToObject.ts, 0, 0)) +>P : P p: {}; ->p : {}, Symbol(p, Decl(anyIsAssignableToObject.ts, 0, 13)) +>p : {} } interface Q extends P { // Check assignability here. Any is assignable to {} ->Q : Q, Symbol(Q, Decl(anyIsAssignableToObject.ts, 2, 1)) ->P : P, Symbol(P, Decl(anyIsAssignableToObject.ts, 0, 0)) +>Q : Q +>P : P p: any; ->p : any, Symbol(p, Decl(anyIsAssignableToObject.ts, 4, 23)) +>p : any } diff --git a/tests/baselines/reference/anyIsAssignableToVoid.symbols b/tests/baselines/reference/anyIsAssignableToVoid.symbols new file mode 100644 index 0000000000000..f5ee5ce7b23d9 --- /dev/null +++ b/tests/baselines/reference/anyIsAssignableToVoid.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/anyIsAssignableToVoid.ts === +interface P { +>P : Symbol(P, Decl(anyIsAssignableToVoid.ts, 0, 0)) + + p: void; +>p : Symbol(p, Decl(anyIsAssignableToVoid.ts, 0, 13)) +} + +interface Q extends P { // check assignability here. any is assignable to void. +>Q : Symbol(Q, Decl(anyIsAssignableToVoid.ts, 2, 1)) +>P : Symbol(P, Decl(anyIsAssignableToVoid.ts, 0, 0)) + + p: any; +>p : Symbol(p, Decl(anyIsAssignableToVoid.ts, 4, 23)) +} diff --git a/tests/baselines/reference/anyIsAssignableToVoid.types b/tests/baselines/reference/anyIsAssignableToVoid.types index 33d2b35bef204..0e1af90971f2f 100644 --- a/tests/baselines/reference/anyIsAssignableToVoid.types +++ b/tests/baselines/reference/anyIsAssignableToVoid.types @@ -1,15 +1,15 @@ === tests/cases/compiler/anyIsAssignableToVoid.ts === interface P { ->P : P, Symbol(P, Decl(anyIsAssignableToVoid.ts, 0, 0)) +>P : P p: void; ->p : void, Symbol(p, Decl(anyIsAssignableToVoid.ts, 0, 13)) +>p : void } interface Q extends P { // check assignability here. any is assignable to void. ->Q : Q, Symbol(Q, Decl(anyIsAssignableToVoid.ts, 2, 1)) ->P : P, Symbol(P, Decl(anyIsAssignableToVoid.ts, 0, 0)) +>Q : Q +>P : P p: any; ->p : any, Symbol(p, Decl(anyIsAssignableToVoid.ts, 4, 23)) +>p : any } diff --git a/tests/baselines/reference/anyPlusAny1.symbols b/tests/baselines/reference/anyPlusAny1.symbols new file mode 100644 index 0000000000000..e0552e4541f53 --- /dev/null +++ b/tests/baselines/reference/anyPlusAny1.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/anyPlusAny1.ts === +var x; +>x : Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) + +x.name = "hello"; +>x : Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) + +var z = x + x; +>z : Symbol(z, Decl(anyPlusAny1.ts, 2, 3)) +>x : Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) +>x : Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) + diff --git a/tests/baselines/reference/anyPlusAny1.types b/tests/baselines/reference/anyPlusAny1.types index 003781fb0f43c..406d432f06ed0 100644 --- a/tests/baselines/reference/anyPlusAny1.types +++ b/tests/baselines/reference/anyPlusAny1.types @@ -1,17 +1,17 @@ === tests/cases/compiler/anyPlusAny1.ts === var x; ->x : any, Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) +>x : any x.name = "hello"; >x.name = "hello" : string >x.name : any ->x : any, Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) +>x : any >name : any >"hello" : string var z = x + x; ->z : any, Symbol(z, Decl(anyPlusAny1.ts, 2, 3)) +>z : any >x + x : any ->x : any, Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) ->x : any, Symbol(x, Decl(anyPlusAny1.ts, 0, 3)) +>x : any +>x : any diff --git a/tests/baselines/reference/anyPropertyAccess.symbols b/tests/baselines/reference/anyPropertyAccess.symbols new file mode 100644 index 0000000000000..e99b494853ef4 --- /dev/null +++ b/tests/baselines/reference/anyPropertyAccess.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/types/any/anyPropertyAccess.ts === +var x: any; +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + +var a = x.foo; +>a : Symbol(a, Decl(anyPropertyAccess.ts, 1, 3)) +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + +var b = x['foo']; +>b : Symbol(b, Decl(anyPropertyAccess.ts, 2, 3)) +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + +var c = x['fn'](); +>c : Symbol(c, Decl(anyPropertyAccess.ts, 3, 3)) +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + +var d = x.bar.baz; +>d : Symbol(d, Decl(anyPropertyAccess.ts, 4, 3)) +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + +var e = x[0].foo; +>e : Symbol(e, Decl(anyPropertyAccess.ts, 5, 3)) +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + +var f = x['0'].bar; +>f : Symbol(f, Decl(anyPropertyAccess.ts, 6, 3)) +>x : Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) + diff --git a/tests/baselines/reference/anyPropertyAccess.types b/tests/baselines/reference/anyPropertyAccess.types index 20ceabe687b41..13eec6b53b23a 100644 --- a/tests/baselines/reference/anyPropertyAccess.types +++ b/tests/baselines/reference/anyPropertyAccess.types @@ -1,47 +1,47 @@ === tests/cases/conformance/types/any/anyPropertyAccess.ts === var x: any; ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any var a = x.foo; ->a : any, Symbol(a, Decl(anyPropertyAccess.ts, 1, 3)) +>a : any >x.foo : any ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any >foo : any var b = x['foo']; ->b : any, Symbol(b, Decl(anyPropertyAccess.ts, 2, 3)) +>b : any >x['foo'] : any ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any >'foo' : string var c = x['fn'](); ->c : any, Symbol(c, Decl(anyPropertyAccess.ts, 3, 3)) +>c : any >x['fn']() : any >x['fn'] : any ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any >'fn' : string var d = x.bar.baz; ->d : any, Symbol(d, Decl(anyPropertyAccess.ts, 4, 3)) +>d : any >x.bar.baz : any >x.bar : any ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any >bar : any >baz : any var e = x[0].foo; ->e : any, Symbol(e, Decl(anyPropertyAccess.ts, 5, 3)) +>e : any >x[0].foo : any >x[0] : any ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any >0 : number >foo : any var f = x['0'].bar; ->f : any, Symbol(f, Decl(anyPropertyAccess.ts, 6, 3)) +>f : any >x['0'].bar : any >x['0'] : any ->x : any, Symbol(x, Decl(anyPropertyAccess.ts, 0, 3)) +>x : any >'0' : string >bar : any diff --git a/tests/baselines/reference/argsInScope.symbols b/tests/baselines/reference/argsInScope.symbols new file mode 100644 index 0000000000000..7ea039819aa11 --- /dev/null +++ b/tests/baselines/reference/argsInScope.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/argsInScope.ts === +class C { +>C : Symbol(C, Decl(argsInScope.ts, 0, 0)) + + P(ii:number, j:number, k:number) { +>P : Symbol(P, Decl(argsInScope.ts, 0, 9)) +>ii : Symbol(ii, Decl(argsInScope.ts, 1, 6)) +>j : Symbol(j, Decl(argsInScope.ts, 1, 16)) +>k : Symbol(k, Decl(argsInScope.ts, 1, 26)) + + for (var i = 0; i < arguments.length; i++) { +>i : Symbol(i, Decl(argsInScope.ts, 2, 15)) +>i : Symbol(i, Decl(argsInScope.ts, 2, 15)) +>arguments.length : Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) +>arguments : Symbol(arguments) +>length : Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) +>i : Symbol(i, Decl(argsInScope.ts, 2, 15)) + + // WScript.Echo("param: " + arguments[i]); + } + } +} + +var c = new C(); +>c : Symbol(c, Decl(argsInScope.ts, 8, 3)) +>C : Symbol(C, Decl(argsInScope.ts, 0, 0)) + +c.P(1,2,3); +>c.P : Symbol(C.P, Decl(argsInScope.ts, 0, 9)) +>c : Symbol(c, Decl(argsInScope.ts, 8, 3)) +>P : Symbol(C.P, Decl(argsInScope.ts, 0, 9)) + diff --git a/tests/baselines/reference/argsInScope.types b/tests/baselines/reference/argsInScope.types index 52f474c11c97b..745ae2493595b 100644 --- a/tests/baselines/reference/argsInScope.types +++ b/tests/baselines/reference/argsInScope.types @@ -1,23 +1,23 @@ === tests/cases/compiler/argsInScope.ts === class C { ->C : C, Symbol(C, Decl(argsInScope.ts, 0, 0)) +>C : C P(ii:number, j:number, k:number) { ->P : (ii: number, j: number, k: number) => void, Symbol(P, Decl(argsInScope.ts, 0, 9)) ->ii : number, Symbol(ii, Decl(argsInScope.ts, 1, 6)) ->j : number, Symbol(j, Decl(argsInScope.ts, 1, 16)) ->k : number, Symbol(k, Decl(argsInScope.ts, 1, 26)) +>P : (ii: number, j: number, k: number) => void +>ii : number +>j : number +>k : number for (var i = 0; i < arguments.length; i++) { ->i : number, Symbol(i, Decl(argsInScope.ts, 2, 15)) +>i : number >0 : number >i < arguments.length : boolean ->i : number, Symbol(i, Decl(argsInScope.ts, 2, 15)) ->arguments.length : number, Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) ->arguments : IArguments, Symbol(arguments) ->length : number, Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) +>i : number +>arguments.length : number +>arguments : IArguments +>length : number >i++ : number ->i : number, Symbol(i, Decl(argsInScope.ts, 2, 15)) +>i : number // WScript.Echo("param: " + arguments[i]); } @@ -25,15 +25,15 @@ class C { } var c = new C(); ->c : C, Symbol(c, Decl(argsInScope.ts, 8, 3)) +>c : C >new C() : C ->C : typeof C, Symbol(C, Decl(argsInScope.ts, 0, 0)) +>C : typeof C c.P(1,2,3); >c.P(1,2,3) : void ->c.P : (ii: number, j: number, k: number) => void, Symbol(C.P, Decl(argsInScope.ts, 0, 9)) ->c : C, Symbol(c, Decl(argsInScope.ts, 8, 3)) ->P : (ii: number, j: number, k: number) => void, Symbol(C.P, Decl(argsInScope.ts, 0, 9)) +>c.P : (ii: number, j: number, k: number) => void +>c : C +>P : (ii: number, j: number, k: number) => void >1 : number >2 : number >3 : number diff --git a/tests/baselines/reference/arguments.symbols b/tests/baselines/reference/arguments.symbols new file mode 100644 index 0000000000000..2825d7927150a --- /dev/null +++ b/tests/baselines/reference/arguments.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/arguments.ts === +function f() { +>f : Symbol(f, Decl(arguments.ts, 0, 0)) + + var x=arguments[12]; +>x : Symbol(x, Decl(arguments.ts, 1, 7)) +>arguments : Symbol(arguments) +} diff --git a/tests/baselines/reference/arguments.types b/tests/baselines/reference/arguments.types index c1d618e99b306..4699d463b3434 100644 --- a/tests/baselines/reference/arguments.types +++ b/tests/baselines/reference/arguments.types @@ -1,10 +1,10 @@ === tests/cases/compiler/arguments.ts === function f() { ->f : () => void, Symbol(f, Decl(arguments.ts, 0, 0)) +>f : () => void var x=arguments[12]; ->x : any, Symbol(x, Decl(arguments.ts, 1, 7)) +>x : any >arguments[12] : any ->arguments : IArguments, Symbol(arguments) +>arguments : IArguments >12 : number } diff --git a/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.symbols b/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.symbols new file mode 100644 index 0000000000000..1c3b54ef427e2 --- /dev/null +++ b/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/argumentsUsedInObjectLiteralProperty.ts === +class A { +>A : Symbol(A, Decl(argumentsUsedInObjectLiteralProperty.ts, 0, 0)) + + public static createSelectableViewModel(initialState?: any, selectedValue?: any) { +>createSelectableViewModel : Symbol(A.createSelectableViewModel, Decl(argumentsUsedInObjectLiteralProperty.ts, 0, 9)) +>initialState : Symbol(initialState, Decl(argumentsUsedInObjectLiteralProperty.ts, 1, 44)) +>selectedValue : Symbol(selectedValue, Decl(argumentsUsedInObjectLiteralProperty.ts, 1, 63)) + + return { + selectedValue: arguments.length +>selectedValue : Symbol(selectedValue, Decl(argumentsUsedInObjectLiteralProperty.ts, 2, 16)) +>arguments.length : Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) +>arguments : Symbol(arguments) +>length : Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) + + }; + } +} diff --git a/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.types b/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.types index a2f20b8c2fd33..697858534db5a 100644 --- a/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.types +++ b/tests/baselines/reference/argumentsUsedInObjectLiteralProperty.types @@ -1,20 +1,20 @@ === tests/cases/compiler/argumentsUsedInObjectLiteralProperty.ts === class A { ->A : A, Symbol(A, Decl(argumentsUsedInObjectLiteralProperty.ts, 0, 0)) +>A : A public static createSelectableViewModel(initialState?: any, selectedValue?: any) { ->createSelectableViewModel : (initialState?: any, selectedValue?: any) => { selectedValue: number; }, Symbol(A.createSelectableViewModel, Decl(argumentsUsedInObjectLiteralProperty.ts, 0, 9)) ->initialState : any, Symbol(initialState, Decl(argumentsUsedInObjectLiteralProperty.ts, 1, 44)) ->selectedValue : any, Symbol(selectedValue, Decl(argumentsUsedInObjectLiteralProperty.ts, 1, 63)) +>createSelectableViewModel : (initialState?: any, selectedValue?: any) => { selectedValue: number; } +>initialState : any +>selectedValue : any return { >{ selectedValue: arguments.length } : { selectedValue: number; } selectedValue: arguments.length ->selectedValue : number, Symbol(selectedValue, Decl(argumentsUsedInObjectLiteralProperty.ts, 2, 16)) ->arguments.length : number, Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) ->arguments : IArguments, Symbol(arguments) ->length : number, Symbol(IArguments.length, Decl(lib.d.ts, 272, 25)) +>selectedValue : number +>arguments.length : number +>arguments : IArguments +>length : number }; } diff --git a/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.symbols b/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.symbols new file mode 100644 index 0000000000000..e45db3637f0ce --- /dev/null +++ b/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.symbols @@ -0,0 +1,357 @@ +=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithAnyAndNumber.ts === +var a: any; +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var b: number; +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator * +var ra1 = a * a; +>ra1 : Symbol(ra1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 4, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var ra2 = a * b; +>ra2 : Symbol(ra2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 5, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var ra3 = a * 0; +>ra3 : Symbol(ra3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 6, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var ra4 = 0 * a; +>ra4 : Symbol(ra4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 7, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var ra5 = 0 * 0; +>ra5 : Symbol(ra5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 8, 3)) + +var ra6 = b * 0; +>ra6 : Symbol(ra6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var ra7 = 0 * b; +>ra7 : Symbol(ra7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 10, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var ra8 = b * b; +>ra8 : Symbol(ra8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 11, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator / +var rb1 = a / a; +>rb1 : Symbol(rb1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 14, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rb2 = a / b; +>rb2 : Symbol(rb2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 15, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rb3 = a / 0; +>rb3 : Symbol(rb3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 16, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rb4 = 0 / a; +>rb4 : Symbol(rb4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 17, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rb5 = 0 / 0; +>rb5 : Symbol(rb5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 18, 3)) + +var rb6 = b / 0; +>rb6 : Symbol(rb6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 19, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rb7 = 0 / b; +>rb7 : Symbol(rb7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 20, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rb8 = b / b; +>rb8 : Symbol(rb8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 21, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator % +var rc1 = a % a; +>rc1 : Symbol(rc1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 24, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rc2 = a % b; +>rc2 : Symbol(rc2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 25, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rc3 = a % 0; +>rc3 : Symbol(rc3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 26, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rc4 = 0 % a; +>rc4 : Symbol(rc4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 27, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rc5 = 0 % 0; +>rc5 : Symbol(rc5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 28, 3)) + +var rc6 = b % 0; +>rc6 : Symbol(rc6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 29, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rc7 = 0 % b; +>rc7 : Symbol(rc7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 30, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rc8 = b % b; +>rc8 : Symbol(rc8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 31, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator - +var rd1 = a - a; +>rd1 : Symbol(rd1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 34, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rd2 = a - b; +>rd2 : Symbol(rd2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 35, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rd3 = a - 0; +>rd3 : Symbol(rd3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 36, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rd4 = 0 - a; +>rd4 : Symbol(rd4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 37, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rd5 = 0 - 0; +>rd5 : Symbol(rd5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 38, 3)) + +var rd6 = b - 0; +>rd6 : Symbol(rd6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 39, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rd7 = 0 - b; +>rd7 : Symbol(rd7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 40, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rd8 = b - b; +>rd8 : Symbol(rd8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 41, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator << +var re1 = a << a; +>re1 : Symbol(re1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 44, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var re2 = a << b; +>re2 : Symbol(re2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 45, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var re3 = a << 0; +>re3 : Symbol(re3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 46, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var re4 = 0 << a; +>re4 : Symbol(re4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 47, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var re5 = 0 << 0; +>re5 : Symbol(re5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 48, 3)) + +var re6 = b << 0; +>re6 : Symbol(re6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 49, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var re7 = 0 << b; +>re7 : Symbol(re7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 50, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var re8 = b << b; +>re8 : Symbol(re8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 51, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator >> +var rf1 = a >> a; +>rf1 : Symbol(rf1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 54, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rf2 = a >> b; +>rf2 : Symbol(rf2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 55, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rf3 = a >> 0; +>rf3 : Symbol(rf3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 56, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rf4 = 0 >> a; +>rf4 : Symbol(rf4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 57, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rf5 = 0 >> 0; +>rf5 : Symbol(rf5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 58, 3)) + +var rf6 = b >> 0; +>rf6 : Symbol(rf6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 59, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rf7 = 0 >> b; +>rf7 : Symbol(rf7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 60, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rf8 = b >> b; +>rf8 : Symbol(rf8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 61, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator >>> +var rg1 = a >>> a; +>rg1 : Symbol(rg1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 64, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rg2 = a >>> b; +>rg2 : Symbol(rg2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 65, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rg3 = a >>> 0; +>rg3 : Symbol(rg3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 66, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rg4 = 0 >>> a; +>rg4 : Symbol(rg4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 67, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rg5 = 0 >>> 0; +>rg5 : Symbol(rg5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 68, 3)) + +var rg6 = b >>> 0; +>rg6 : Symbol(rg6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 69, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rg7 = 0 >>> b; +>rg7 : Symbol(rg7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 70, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rg8 = b >>> b; +>rg8 : Symbol(rg8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 71, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator & +var rh1 = a & a; +>rh1 : Symbol(rh1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 74, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rh2 = a & b; +>rh2 : Symbol(rh2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 75, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rh3 = a & 0; +>rh3 : Symbol(rh3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 76, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rh4 = 0 & a; +>rh4 : Symbol(rh4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 77, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rh5 = 0 & 0; +>rh5 : Symbol(rh5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 78, 3)) + +var rh6 = b & 0; +>rh6 : Symbol(rh6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 79, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rh7 = 0 & b; +>rh7 : Symbol(rh7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 80, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rh8 = b & b; +>rh8 : Symbol(rh8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 81, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator ^ +var ri1 = a ^ a; +>ri1 : Symbol(ri1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 84, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var ri2 = a ^ b; +>ri2 : Symbol(ri2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 85, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var ri3 = a ^ 0; +>ri3 : Symbol(ri3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 86, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var ri4 = 0 ^ a; +>ri4 : Symbol(ri4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 87, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var ri5 = 0 ^ 0; +>ri5 : Symbol(ri5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 88, 3)) + +var ri6 = b ^ 0; +>ri6 : Symbol(ri6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 89, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var ri7 = 0 ^ b; +>ri7 : Symbol(ri7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 90, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var ri8 = b ^ b; +>ri8 : Symbol(ri8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 91, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +// operator | +var rj1 = a | a; +>rj1 : Symbol(rj1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 94, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rj2 = a | b; +>rj2 : Symbol(rj2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 95, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rj3 = a | 0; +>rj3 : Symbol(rj3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 96, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rj4 = 0 | a; +>rj4 : Symbol(rj4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 97, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) + +var rj5 = 0 | 0; +>rj5 : Symbol(rj5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 98, 3)) + +var rj6 = b | 0; +>rj6 : Symbol(rj6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 99, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rj7 = 0 | b; +>rj7 : Symbol(rj7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 100, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + +var rj8 = b | b; +>rj8 : Symbol(rj8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 101, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) + diff --git a/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.types b/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.types index 2eea022296995..8845a52760d36 100644 --- a/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.types +++ b/tests/baselines/reference/arithmeticOperatorWithAnyAndNumber.types @@ -1,497 +1,497 @@ === tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithAnyAndNumber.ts === var a: any; ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number // operator * var ra1 = a * a; ->ra1 : number, Symbol(ra1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 4, 3)) +>ra1 : number >a * a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var ra2 = a * b; ->ra2 : number, Symbol(ra2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 5, 3)) +>ra2 : number >a * b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var ra3 = a * 0; ->ra3 : number, Symbol(ra3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 6, 3)) +>ra3 : number >a * 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var ra4 = 0 * a; ->ra4 : number, Symbol(ra4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 7, 3)) +>ra4 : number >0 * a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var ra5 = 0 * 0; ->ra5 : number, Symbol(ra5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 8, 3)) +>ra5 : number >0 * 0 : number >0 : number >0 : number var ra6 = b * 0; ->ra6 : number, Symbol(ra6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 9, 3)) +>ra6 : number >b * 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var ra7 = 0 * b; ->ra7 : number, Symbol(ra7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 10, 3)) +>ra7 : number >0 * b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var ra8 = b * b; ->ra8 : number, Symbol(ra8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 11, 3)) +>ra8 : number >b * b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator / var rb1 = a / a; ->rb1 : number, Symbol(rb1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 14, 3)) +>rb1 : number >a / a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rb2 = a / b; ->rb2 : number, Symbol(rb2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 15, 3)) +>rb2 : number >a / b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rb3 = a / 0; ->rb3 : number, Symbol(rb3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 16, 3)) +>rb3 : number >a / 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rb4 = 0 / a; ->rb4 : number, Symbol(rb4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 17, 3)) +>rb4 : number >0 / a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rb5 = 0 / 0; ->rb5 : number, Symbol(rb5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 18, 3)) +>rb5 : number >0 / 0 : number >0 : number >0 : number var rb6 = b / 0; ->rb6 : number, Symbol(rb6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 19, 3)) +>rb6 : number >b / 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rb7 = 0 / b; ->rb7 : number, Symbol(rb7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 20, 3)) +>rb7 : number >0 / b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rb8 = b / b; ->rb8 : number, Symbol(rb8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 21, 3)) +>rb8 : number >b / b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator % var rc1 = a % a; ->rc1 : number, Symbol(rc1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 24, 3)) +>rc1 : number >a % a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rc2 = a % b; ->rc2 : number, Symbol(rc2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 25, 3)) +>rc2 : number >a % b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rc3 = a % 0; ->rc3 : number, Symbol(rc3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 26, 3)) +>rc3 : number >a % 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rc4 = 0 % a; ->rc4 : number, Symbol(rc4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 27, 3)) +>rc4 : number >0 % a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rc5 = 0 % 0; ->rc5 : number, Symbol(rc5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 28, 3)) +>rc5 : number >0 % 0 : number >0 : number >0 : number var rc6 = b % 0; ->rc6 : number, Symbol(rc6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 29, 3)) +>rc6 : number >b % 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rc7 = 0 % b; ->rc7 : number, Symbol(rc7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 30, 3)) +>rc7 : number >0 % b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rc8 = b % b; ->rc8 : number, Symbol(rc8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 31, 3)) +>rc8 : number >b % b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator - var rd1 = a - a; ->rd1 : number, Symbol(rd1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 34, 3)) +>rd1 : number >a - a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rd2 = a - b; ->rd2 : number, Symbol(rd2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 35, 3)) +>rd2 : number >a - b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rd3 = a - 0; ->rd3 : number, Symbol(rd3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 36, 3)) +>rd3 : number >a - 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rd4 = 0 - a; ->rd4 : number, Symbol(rd4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 37, 3)) +>rd4 : number >0 - a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rd5 = 0 - 0; ->rd5 : number, Symbol(rd5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 38, 3)) +>rd5 : number >0 - 0 : number >0 : number >0 : number var rd6 = b - 0; ->rd6 : number, Symbol(rd6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 39, 3)) +>rd6 : number >b - 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rd7 = 0 - b; ->rd7 : number, Symbol(rd7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 40, 3)) +>rd7 : number >0 - b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rd8 = b - b; ->rd8 : number, Symbol(rd8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 41, 3)) +>rd8 : number >b - b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator << var re1 = a << a; ->re1 : number, Symbol(re1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 44, 3)) +>re1 : number >a << a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var re2 = a << b; ->re2 : number, Symbol(re2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 45, 3)) +>re2 : number >a << b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var re3 = a << 0; ->re3 : number, Symbol(re3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 46, 3)) +>re3 : number >a << 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var re4 = 0 << a; ->re4 : number, Symbol(re4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 47, 3)) +>re4 : number >0 << a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var re5 = 0 << 0; ->re5 : number, Symbol(re5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 48, 3)) +>re5 : number >0 << 0 : number >0 : number >0 : number var re6 = b << 0; ->re6 : number, Symbol(re6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 49, 3)) +>re6 : number >b << 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var re7 = 0 << b; ->re7 : number, Symbol(re7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 50, 3)) +>re7 : number >0 << b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var re8 = b << b; ->re8 : number, Symbol(re8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 51, 3)) +>re8 : number >b << b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator >> var rf1 = a >> a; ->rf1 : number, Symbol(rf1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 54, 3)) +>rf1 : number >a >> a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rf2 = a >> b; ->rf2 : number, Symbol(rf2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 55, 3)) +>rf2 : number >a >> b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rf3 = a >> 0; ->rf3 : number, Symbol(rf3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 56, 3)) +>rf3 : number >a >> 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rf4 = 0 >> a; ->rf4 : number, Symbol(rf4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 57, 3)) +>rf4 : number >0 >> a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rf5 = 0 >> 0; ->rf5 : number, Symbol(rf5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 58, 3)) +>rf5 : number >0 >> 0 : number >0 : number >0 : number var rf6 = b >> 0; ->rf6 : number, Symbol(rf6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 59, 3)) +>rf6 : number >b >> 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rf7 = 0 >> b; ->rf7 : number, Symbol(rf7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 60, 3)) +>rf7 : number >0 >> b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rf8 = b >> b; ->rf8 : number, Symbol(rf8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 61, 3)) +>rf8 : number >b >> b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator >>> var rg1 = a >>> a; ->rg1 : number, Symbol(rg1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 64, 3)) +>rg1 : number >a >>> a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rg2 = a >>> b; ->rg2 : number, Symbol(rg2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 65, 3)) +>rg2 : number >a >>> b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rg3 = a >>> 0; ->rg3 : number, Symbol(rg3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 66, 3)) +>rg3 : number >a >>> 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rg4 = 0 >>> a; ->rg4 : number, Symbol(rg4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 67, 3)) +>rg4 : number >0 >>> a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rg5 = 0 >>> 0; ->rg5 : number, Symbol(rg5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 68, 3)) +>rg5 : number >0 >>> 0 : number >0 : number >0 : number var rg6 = b >>> 0; ->rg6 : number, Symbol(rg6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 69, 3)) +>rg6 : number >b >>> 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rg7 = 0 >>> b; ->rg7 : number, Symbol(rg7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 70, 3)) +>rg7 : number >0 >>> b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rg8 = b >>> b; ->rg8 : number, Symbol(rg8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 71, 3)) +>rg8 : number >b >>> b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator & var rh1 = a & a; ->rh1 : number, Symbol(rh1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 74, 3)) +>rh1 : number >a & a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rh2 = a & b; ->rh2 : number, Symbol(rh2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 75, 3)) +>rh2 : number >a & b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rh3 = a & 0; ->rh3 : number, Symbol(rh3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 76, 3)) +>rh3 : number >a & 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rh4 = 0 & a; ->rh4 : number, Symbol(rh4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 77, 3)) +>rh4 : number >0 & a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rh5 = 0 & 0; ->rh5 : number, Symbol(rh5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 78, 3)) +>rh5 : number >0 & 0 : number >0 : number >0 : number var rh6 = b & 0; ->rh6 : number, Symbol(rh6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 79, 3)) +>rh6 : number >b & 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rh7 = 0 & b; ->rh7 : number, Symbol(rh7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 80, 3)) +>rh7 : number >0 & b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rh8 = b & b; ->rh8 : number, Symbol(rh8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 81, 3)) +>rh8 : number >b & b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator ^ var ri1 = a ^ a; ->ri1 : number, Symbol(ri1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 84, 3)) +>ri1 : number >a ^ a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var ri2 = a ^ b; ->ri2 : number, Symbol(ri2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 85, 3)) +>ri2 : number >a ^ b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var ri3 = a ^ 0; ->ri3 : number, Symbol(ri3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 86, 3)) +>ri3 : number >a ^ 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var ri4 = 0 ^ a; ->ri4 : number, Symbol(ri4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 87, 3)) +>ri4 : number >0 ^ a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var ri5 = 0 ^ 0; ->ri5 : number, Symbol(ri5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 88, 3)) +>ri5 : number >0 ^ 0 : number >0 : number >0 : number var ri6 = b ^ 0; ->ri6 : number, Symbol(ri6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 89, 3)) +>ri6 : number >b ^ 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var ri7 = 0 ^ b; ->ri7 : number, Symbol(ri7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 90, 3)) +>ri7 : number >0 ^ b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var ri8 = b ^ b; ->ri8 : number, Symbol(ri8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 91, 3)) +>ri8 : number >b ^ b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number // operator | var rj1 = a | a; ->rj1 : number, Symbol(rj1, Decl(arithmeticOperatorWithAnyAndNumber.ts, 94, 3)) +>rj1 : number >a | a : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any +>a : any var rj2 = a | b; ->rj2 : number, Symbol(rj2, Decl(arithmeticOperatorWithAnyAndNumber.ts, 95, 3)) +>rj2 : number >a | b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>a : any +>b : number var rj3 = a | 0; ->rj3 : number, Symbol(rj3, Decl(arithmeticOperatorWithAnyAndNumber.ts, 96, 3)) +>rj3 : number >a | 0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any >0 : number var rj4 = 0 | a; ->rj4 : number, Symbol(rj4, Decl(arithmeticOperatorWithAnyAndNumber.ts, 97, 3)) +>rj4 : number >0 | a : number >0 : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithAnyAndNumber.ts, 0, 3)) +>a : any var rj5 = 0 | 0; ->rj5 : number, Symbol(rj5, Decl(arithmeticOperatorWithAnyAndNumber.ts, 98, 3)) +>rj5 : number >0 | 0 : number >0 : number >0 : number var rj6 = b | 0; ->rj6 : number, Symbol(rj6, Decl(arithmeticOperatorWithAnyAndNumber.ts, 99, 3)) +>rj6 : number >b | 0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number >0 : number var rj7 = 0 | b; ->rj7 : number, Symbol(rj7, Decl(arithmeticOperatorWithAnyAndNumber.ts, 100, 3)) +>rj7 : number >0 | b : number >0 : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number var rj8 = b | b; ->rj8 : number, Symbol(rj8, Decl(arithmeticOperatorWithAnyAndNumber.ts, 101, 3)) +>rj8 : number >b | b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithAnyAndNumber.ts, 1, 3)) +>b : number +>b : number diff --git a/tests/baselines/reference/arithmeticOperatorWithEnum.symbols b/tests/baselines/reference/arithmeticOperatorWithEnum.symbols new file mode 100644 index 0000000000000..066f429a181bc --- /dev/null +++ b/tests/baselines/reference/arithmeticOperatorWithEnum.symbols @@ -0,0 +1,773 @@ +=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithEnum.ts === +// operands of an enum type are treated as having the primitive type Number. + +enum E { +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) + + a, +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + + b +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +} + +var a: any; +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var b: number; +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var c: E; +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) + +// operator * +var ra1 = c * a; +>ra1 : Symbol(ra1, Decl(arithmeticOperatorWithEnum.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var ra2 = c * b; +>ra2 : Symbol(ra2, Decl(arithmeticOperatorWithEnum.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var ra3 = c * c; +>ra3 : Symbol(ra3, Decl(arithmeticOperatorWithEnum.ts, 14, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var ra4 = a * c; +>ra4 : Symbol(ra4, Decl(arithmeticOperatorWithEnum.ts, 15, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var ra5 = b * c; +>ra5 : Symbol(ra5, Decl(arithmeticOperatorWithEnum.ts, 16, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var ra6 = E.a * a; +>ra6 : Symbol(ra6, Decl(arithmeticOperatorWithEnum.ts, 17, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var ra7 = E.a * b; +>ra7 : Symbol(ra7, Decl(arithmeticOperatorWithEnum.ts, 18, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var ra8 = E.a * E.b; +>ra8 : Symbol(ra8, Decl(arithmeticOperatorWithEnum.ts, 19, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var ra9 = E.a * 1; +>ra9 : Symbol(ra9, Decl(arithmeticOperatorWithEnum.ts, 20, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var ra10 = a * E.b; +>ra10 : Symbol(ra10, Decl(arithmeticOperatorWithEnum.ts, 21, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var ra11 = b * E.b; +>ra11 : Symbol(ra11, Decl(arithmeticOperatorWithEnum.ts, 22, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var ra12 = 1 * E.b; +>ra12 : Symbol(ra12, Decl(arithmeticOperatorWithEnum.ts, 23, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator / +var rb1 = c / a; +>rb1 : Symbol(rb1, Decl(arithmeticOperatorWithEnum.ts, 26, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rb2 = c / b; +>rb2 : Symbol(rb2, Decl(arithmeticOperatorWithEnum.ts, 27, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rb3 = c / c; +>rb3 : Symbol(rb3, Decl(arithmeticOperatorWithEnum.ts, 28, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rb4 = a / c; +>rb4 : Symbol(rb4, Decl(arithmeticOperatorWithEnum.ts, 29, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rb5 = b / c; +>rb5 : Symbol(rb5, Decl(arithmeticOperatorWithEnum.ts, 30, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rb6 = E.a / a; +>rb6 : Symbol(rb6, Decl(arithmeticOperatorWithEnum.ts, 31, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rb7 = E.a / b; +>rb7 : Symbol(rb7, Decl(arithmeticOperatorWithEnum.ts, 32, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rb8 = E.a / E.b; +>rb8 : Symbol(rb8, Decl(arithmeticOperatorWithEnum.ts, 33, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rb9 = E.a / 1; +>rb9 : Symbol(rb9, Decl(arithmeticOperatorWithEnum.ts, 34, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rb10 = a / E.b; +>rb10 : Symbol(rb10, Decl(arithmeticOperatorWithEnum.ts, 35, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rb11 = b / E.b; +>rb11 : Symbol(rb11, Decl(arithmeticOperatorWithEnum.ts, 36, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rb12 = 1 / E.b; +>rb12 : Symbol(rb12, Decl(arithmeticOperatorWithEnum.ts, 37, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator % +var rc1 = c % a; +>rc1 : Symbol(rc1, Decl(arithmeticOperatorWithEnum.ts, 40, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rc2 = c % b; +>rc2 : Symbol(rc2, Decl(arithmeticOperatorWithEnum.ts, 41, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rc3 = c % c; +>rc3 : Symbol(rc3, Decl(arithmeticOperatorWithEnum.ts, 42, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rc4 = a % c; +>rc4 : Symbol(rc4, Decl(arithmeticOperatorWithEnum.ts, 43, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rc5 = b % c; +>rc5 : Symbol(rc5, Decl(arithmeticOperatorWithEnum.ts, 44, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rc6 = E.a % a; +>rc6 : Symbol(rc6, Decl(arithmeticOperatorWithEnum.ts, 45, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rc7 = E.a % b; +>rc7 : Symbol(rc7, Decl(arithmeticOperatorWithEnum.ts, 46, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rc8 = E.a % E.b; +>rc8 : Symbol(rc8, Decl(arithmeticOperatorWithEnum.ts, 47, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rc9 = E.a % 1; +>rc9 : Symbol(rc9, Decl(arithmeticOperatorWithEnum.ts, 48, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rc10 = a % E.b; +>rc10 : Symbol(rc10, Decl(arithmeticOperatorWithEnum.ts, 49, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rc11 = b % E.b; +>rc11 : Symbol(rc11, Decl(arithmeticOperatorWithEnum.ts, 50, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rc12 = 1 % E.b; +>rc12 : Symbol(rc12, Decl(arithmeticOperatorWithEnum.ts, 51, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator - +var rd1 = c - a; +>rd1 : Symbol(rd1, Decl(arithmeticOperatorWithEnum.ts, 54, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rd2 = c - b; +>rd2 : Symbol(rd2, Decl(arithmeticOperatorWithEnum.ts, 55, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rd3 = c - c; +>rd3 : Symbol(rd3, Decl(arithmeticOperatorWithEnum.ts, 56, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rd4 = a - c; +>rd4 : Symbol(rd4, Decl(arithmeticOperatorWithEnum.ts, 57, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rd5 = b - c; +>rd5 : Symbol(rd5, Decl(arithmeticOperatorWithEnum.ts, 58, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rd6 = E.a - a; +>rd6 : Symbol(rd6, Decl(arithmeticOperatorWithEnum.ts, 59, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rd7 = E.a - b; +>rd7 : Symbol(rd7, Decl(arithmeticOperatorWithEnum.ts, 60, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rd8 = E.a - E.b; +>rd8 : Symbol(rd8, Decl(arithmeticOperatorWithEnum.ts, 61, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rd9 = E.a - 1; +>rd9 : Symbol(rd9, Decl(arithmeticOperatorWithEnum.ts, 62, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rd10 = a - E.b; +>rd10 : Symbol(rd10, Decl(arithmeticOperatorWithEnum.ts, 63, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rd11 = b - E.b; +>rd11 : Symbol(rd11, Decl(arithmeticOperatorWithEnum.ts, 64, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rd12 = 1 - E.b; +>rd12 : Symbol(rd12, Decl(arithmeticOperatorWithEnum.ts, 65, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator << +var re1 = c << a; +>re1 : Symbol(re1, Decl(arithmeticOperatorWithEnum.ts, 68, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var re2 = c << b; +>re2 : Symbol(re2, Decl(arithmeticOperatorWithEnum.ts, 69, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var re3 = c << c; +>re3 : Symbol(re3, Decl(arithmeticOperatorWithEnum.ts, 70, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var re4 = a << c; +>re4 : Symbol(re4, Decl(arithmeticOperatorWithEnum.ts, 71, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var re5 = b << c; +>re5 : Symbol(re5, Decl(arithmeticOperatorWithEnum.ts, 72, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var re6 = E.a << a; +>re6 : Symbol(re6, Decl(arithmeticOperatorWithEnum.ts, 73, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var re7 = E.a << b; +>re7 : Symbol(re7, Decl(arithmeticOperatorWithEnum.ts, 74, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var re8 = E.a << E.b; +>re8 : Symbol(re8, Decl(arithmeticOperatorWithEnum.ts, 75, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var re9 = E.a << 1; +>re9 : Symbol(re9, Decl(arithmeticOperatorWithEnum.ts, 76, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var re10 = a << E.b; +>re10 : Symbol(re10, Decl(arithmeticOperatorWithEnum.ts, 77, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var re11 = b << E.b; +>re11 : Symbol(re11, Decl(arithmeticOperatorWithEnum.ts, 78, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var re12 = 1 << E.b; +>re12 : Symbol(re12, Decl(arithmeticOperatorWithEnum.ts, 79, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator >> +var rf1 = c >> a; +>rf1 : Symbol(rf1, Decl(arithmeticOperatorWithEnum.ts, 82, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rf2 = c >> b; +>rf2 : Symbol(rf2, Decl(arithmeticOperatorWithEnum.ts, 83, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rf3 = c >> c; +>rf3 : Symbol(rf3, Decl(arithmeticOperatorWithEnum.ts, 84, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rf4 = a >> c; +>rf4 : Symbol(rf4, Decl(arithmeticOperatorWithEnum.ts, 85, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rf5 = b >> c; +>rf5 : Symbol(rf5, Decl(arithmeticOperatorWithEnum.ts, 86, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rf6 = E.a >> a; +>rf6 : Symbol(rf6, Decl(arithmeticOperatorWithEnum.ts, 87, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rf7 = E.a >> b; +>rf7 : Symbol(rf7, Decl(arithmeticOperatorWithEnum.ts, 88, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rf8 = E.a >> E.b; +>rf8 : Symbol(rf8, Decl(arithmeticOperatorWithEnum.ts, 89, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rf9 = E.a >> 1; +>rf9 : Symbol(rf9, Decl(arithmeticOperatorWithEnum.ts, 90, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rf10 = a >> E.b; +>rf10 : Symbol(rf10, Decl(arithmeticOperatorWithEnum.ts, 91, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rf11 = b >> E.b; +>rf11 : Symbol(rf11, Decl(arithmeticOperatorWithEnum.ts, 92, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rf12 = 1 >> E.b; +>rf12 : Symbol(rf12, Decl(arithmeticOperatorWithEnum.ts, 93, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator >>> +var rg1 = c >>> a; +>rg1 : Symbol(rg1, Decl(arithmeticOperatorWithEnum.ts, 96, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rg2 = c >>> b; +>rg2 : Symbol(rg2, Decl(arithmeticOperatorWithEnum.ts, 97, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rg3 = c >>> c; +>rg3 : Symbol(rg3, Decl(arithmeticOperatorWithEnum.ts, 98, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rg4 = a >>> c; +>rg4 : Symbol(rg4, Decl(arithmeticOperatorWithEnum.ts, 99, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rg5 = b >>> c; +>rg5 : Symbol(rg5, Decl(arithmeticOperatorWithEnum.ts, 100, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rg6 = E.a >>> a; +>rg6 : Symbol(rg6, Decl(arithmeticOperatorWithEnum.ts, 101, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rg7 = E.a >>> b; +>rg7 : Symbol(rg7, Decl(arithmeticOperatorWithEnum.ts, 102, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rg8 = E.a >>> E.b; +>rg8 : Symbol(rg8, Decl(arithmeticOperatorWithEnum.ts, 103, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rg9 = E.a >>> 1; +>rg9 : Symbol(rg9, Decl(arithmeticOperatorWithEnum.ts, 104, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rg10 = a >>> E.b; +>rg10 : Symbol(rg10, Decl(arithmeticOperatorWithEnum.ts, 105, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rg11 = b >>> E.b; +>rg11 : Symbol(rg11, Decl(arithmeticOperatorWithEnum.ts, 106, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rg12 = 1 >>> E.b; +>rg12 : Symbol(rg12, Decl(arithmeticOperatorWithEnum.ts, 107, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator & +var rh1 = c & a; +>rh1 : Symbol(rh1, Decl(arithmeticOperatorWithEnum.ts, 110, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rh2 = c & b; +>rh2 : Symbol(rh2, Decl(arithmeticOperatorWithEnum.ts, 111, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rh3 = c & c; +>rh3 : Symbol(rh3, Decl(arithmeticOperatorWithEnum.ts, 112, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rh4 = a & c; +>rh4 : Symbol(rh4, Decl(arithmeticOperatorWithEnum.ts, 113, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rh5 = b & c; +>rh5 : Symbol(rh5, Decl(arithmeticOperatorWithEnum.ts, 114, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rh6 = E.a & a; +>rh6 : Symbol(rh6, Decl(arithmeticOperatorWithEnum.ts, 115, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rh7 = E.a & b; +>rh7 : Symbol(rh7, Decl(arithmeticOperatorWithEnum.ts, 116, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rh8 = E.a & E.b; +>rh8 : Symbol(rh8, Decl(arithmeticOperatorWithEnum.ts, 117, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rh9 = E.a & 1; +>rh9 : Symbol(rh9, Decl(arithmeticOperatorWithEnum.ts, 118, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rh10 = a & E.b; +>rh10 : Symbol(rh10, Decl(arithmeticOperatorWithEnum.ts, 119, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rh11 = b & E.b; +>rh11 : Symbol(rh11, Decl(arithmeticOperatorWithEnum.ts, 120, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rh12 = 1 & E.b; +>rh12 : Symbol(rh12, Decl(arithmeticOperatorWithEnum.ts, 121, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator ^ +var ri1 = c ^ a; +>ri1 : Symbol(ri1, Decl(arithmeticOperatorWithEnum.ts, 124, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var ri2 = c ^ b; +>ri2 : Symbol(ri2, Decl(arithmeticOperatorWithEnum.ts, 125, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var ri3 = c ^ c; +>ri3 : Symbol(ri3, Decl(arithmeticOperatorWithEnum.ts, 126, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var ri4 = a ^ c; +>ri4 : Symbol(ri4, Decl(arithmeticOperatorWithEnum.ts, 127, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var ri5 = b ^ c; +>ri5 : Symbol(ri5, Decl(arithmeticOperatorWithEnum.ts, 128, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var ri6 = E.a ^ a; +>ri6 : Symbol(ri6, Decl(arithmeticOperatorWithEnum.ts, 129, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var ri7 = E.a ^ b; +>ri7 : Symbol(ri7, Decl(arithmeticOperatorWithEnum.ts, 130, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var ri8 = E.a ^ E.b; +>ri8 : Symbol(ri8, Decl(arithmeticOperatorWithEnum.ts, 131, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var ri9 = E.a ^ 1; +>ri9 : Symbol(ri9, Decl(arithmeticOperatorWithEnum.ts, 132, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var ri10 = a ^ E.b; +>ri10 : Symbol(ri10, Decl(arithmeticOperatorWithEnum.ts, 133, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var ri11 = b ^ E.b; +>ri11 : Symbol(ri11, Decl(arithmeticOperatorWithEnum.ts, 134, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var ri12 = 1 ^ E.b; +>ri12 : Symbol(ri12, Decl(arithmeticOperatorWithEnum.ts, 135, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +// operator | +var rj1 = c | a; +>rj1 : Symbol(rj1, Decl(arithmeticOperatorWithEnum.ts, 138, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rj2 = c | b; +>rj2 : Symbol(rj2, Decl(arithmeticOperatorWithEnum.ts, 139, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rj3 = c | c; +>rj3 : Symbol(rj3, Decl(arithmeticOperatorWithEnum.ts, 140, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rj4 = a | c; +>rj4 : Symbol(rj4, Decl(arithmeticOperatorWithEnum.ts, 141, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rj5 = b | c; +>rj5 : Symbol(rj5, Decl(arithmeticOperatorWithEnum.ts, 142, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) + +var rj6 = E.a | a; +>rj6 : Symbol(rj6, Decl(arithmeticOperatorWithEnum.ts, 143, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) + +var rj7 = E.a | b; +>rj7 : Symbol(rj7, Decl(arithmeticOperatorWithEnum.ts, 144, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) + +var rj8 = E.a | E.b; +>rj8 : Symbol(rj8, Decl(arithmeticOperatorWithEnum.ts, 145, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rj9 = E.a | 1; +>rj9 : Symbol(rj9, Decl(arithmeticOperatorWithEnum.ts, 146, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) + +var rj10 = a | E.b; +>rj10 : Symbol(rj10, Decl(arithmeticOperatorWithEnum.ts, 147, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rj11 = b | E.b; +>rj11 : Symbol(rj11, Decl(arithmeticOperatorWithEnum.ts, 148, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + +var rj12 = 1 | E.b; +>rj12 : Symbol(rj12, Decl(arithmeticOperatorWithEnum.ts, 149, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) + diff --git a/tests/baselines/reference/arithmeticOperatorWithEnum.types b/tests/baselines/reference/arithmeticOperatorWithEnum.types index 923163200d5b3..3aca5c31798c1 100644 --- a/tests/baselines/reference/arithmeticOperatorWithEnum.types +++ b/tests/baselines/reference/arithmeticOperatorWithEnum.types @@ -2,912 +2,912 @@ // operands of an enum type are treated as having the primitive type Number. enum E { ->E : E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>E : E a, ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>a : E b ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : E } var a: any; ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>b : number var c: E; ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->E : E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) +>c : E +>E : E // operator * var ra1 = c * a; ->ra1 : number, Symbol(ra1, Decl(arithmeticOperatorWithEnum.ts, 12, 3)) +>ra1 : number >c * a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var ra2 = c * b; ->ra2 : number, Symbol(ra2, Decl(arithmeticOperatorWithEnum.ts, 13, 3)) +>ra2 : number >c * b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var ra3 = c * c; ->ra3 : number, Symbol(ra3, Decl(arithmeticOperatorWithEnum.ts, 14, 3)) +>ra3 : number >c * c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var ra4 = a * c; ->ra4 : number, Symbol(ra4, Decl(arithmeticOperatorWithEnum.ts, 15, 3)) +>ra4 : number >a * c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var ra5 = b * c; ->ra5 : number, Symbol(ra5, Decl(arithmeticOperatorWithEnum.ts, 16, 3)) +>ra5 : number >b * c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var ra6 = E.a * a; ->ra6 : number, Symbol(ra6, Decl(arithmeticOperatorWithEnum.ts, 17, 3)) +>ra6 : number >E.a * a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var ra7 = E.a * b; ->ra7 : number, Symbol(ra7, Decl(arithmeticOperatorWithEnum.ts, 18, 3)) +>ra7 : number >E.a * b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var ra8 = E.a * E.b; ->ra8 : number, Symbol(ra8, Decl(arithmeticOperatorWithEnum.ts, 19, 3)) +>ra8 : number >E.a * E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var ra9 = E.a * 1; ->ra9 : number, Symbol(ra9, Decl(arithmeticOperatorWithEnum.ts, 20, 3)) +>ra9 : number >E.a * 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var ra10 = a * E.b; ->ra10 : number, Symbol(ra10, Decl(arithmeticOperatorWithEnum.ts, 21, 3)) +>ra10 : number >a * E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var ra11 = b * E.b; ->ra11 : number, Symbol(ra11, Decl(arithmeticOperatorWithEnum.ts, 22, 3)) +>ra11 : number >b * E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var ra12 = 1 * E.b; ->ra12 : number, Symbol(ra12, Decl(arithmeticOperatorWithEnum.ts, 23, 3)) +>ra12 : number >1 * E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator / var rb1 = c / a; ->rb1 : number, Symbol(rb1, Decl(arithmeticOperatorWithEnum.ts, 26, 3)) +>rb1 : number >c / a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rb2 = c / b; ->rb2 : number, Symbol(rb2, Decl(arithmeticOperatorWithEnum.ts, 27, 3)) +>rb2 : number >c / b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rb3 = c / c; ->rb3 : number, Symbol(rb3, Decl(arithmeticOperatorWithEnum.ts, 28, 3)) +>rb3 : number >c / c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rb4 = a / c; ->rb4 : number, Symbol(rb4, Decl(arithmeticOperatorWithEnum.ts, 29, 3)) +>rb4 : number >a / c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rb5 = b / c; ->rb5 : number, Symbol(rb5, Decl(arithmeticOperatorWithEnum.ts, 30, 3)) +>rb5 : number >b / c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rb6 = E.a / a; ->rb6 : number, Symbol(rb6, Decl(arithmeticOperatorWithEnum.ts, 31, 3)) +>rb6 : number >E.a / a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rb7 = E.a / b; ->rb7 : number, Symbol(rb7, Decl(arithmeticOperatorWithEnum.ts, 32, 3)) +>rb7 : number >E.a / b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rb8 = E.a / E.b; ->rb8 : number, Symbol(rb8, Decl(arithmeticOperatorWithEnum.ts, 33, 3)) +>rb8 : number >E.a / E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rb9 = E.a / 1; ->rb9 : number, Symbol(rb9, Decl(arithmeticOperatorWithEnum.ts, 34, 3)) +>rb9 : number >E.a / 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rb10 = a / E.b; ->rb10 : number, Symbol(rb10, Decl(arithmeticOperatorWithEnum.ts, 35, 3)) +>rb10 : number >a / E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rb11 = b / E.b; ->rb11 : number, Symbol(rb11, Decl(arithmeticOperatorWithEnum.ts, 36, 3)) +>rb11 : number >b / E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rb12 = 1 / E.b; ->rb12 : number, Symbol(rb12, Decl(arithmeticOperatorWithEnum.ts, 37, 3)) +>rb12 : number >1 / E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator % var rc1 = c % a; ->rc1 : number, Symbol(rc1, Decl(arithmeticOperatorWithEnum.ts, 40, 3)) +>rc1 : number >c % a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rc2 = c % b; ->rc2 : number, Symbol(rc2, Decl(arithmeticOperatorWithEnum.ts, 41, 3)) +>rc2 : number >c % b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rc3 = c % c; ->rc3 : number, Symbol(rc3, Decl(arithmeticOperatorWithEnum.ts, 42, 3)) +>rc3 : number >c % c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rc4 = a % c; ->rc4 : number, Symbol(rc4, Decl(arithmeticOperatorWithEnum.ts, 43, 3)) +>rc4 : number >a % c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rc5 = b % c; ->rc5 : number, Symbol(rc5, Decl(arithmeticOperatorWithEnum.ts, 44, 3)) +>rc5 : number >b % c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rc6 = E.a % a; ->rc6 : number, Symbol(rc6, Decl(arithmeticOperatorWithEnum.ts, 45, 3)) +>rc6 : number >E.a % a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rc7 = E.a % b; ->rc7 : number, Symbol(rc7, Decl(arithmeticOperatorWithEnum.ts, 46, 3)) +>rc7 : number >E.a % b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rc8 = E.a % E.b; ->rc8 : number, Symbol(rc8, Decl(arithmeticOperatorWithEnum.ts, 47, 3)) +>rc8 : number >E.a % E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rc9 = E.a % 1; ->rc9 : number, Symbol(rc9, Decl(arithmeticOperatorWithEnum.ts, 48, 3)) +>rc9 : number >E.a % 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rc10 = a % E.b; ->rc10 : number, Symbol(rc10, Decl(arithmeticOperatorWithEnum.ts, 49, 3)) +>rc10 : number >a % E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rc11 = b % E.b; ->rc11 : number, Symbol(rc11, Decl(arithmeticOperatorWithEnum.ts, 50, 3)) +>rc11 : number >b % E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rc12 = 1 % E.b; ->rc12 : number, Symbol(rc12, Decl(arithmeticOperatorWithEnum.ts, 51, 3)) +>rc12 : number >1 % E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator - var rd1 = c - a; ->rd1 : number, Symbol(rd1, Decl(arithmeticOperatorWithEnum.ts, 54, 3)) +>rd1 : number >c - a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rd2 = c - b; ->rd2 : number, Symbol(rd2, Decl(arithmeticOperatorWithEnum.ts, 55, 3)) +>rd2 : number >c - b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rd3 = c - c; ->rd3 : number, Symbol(rd3, Decl(arithmeticOperatorWithEnum.ts, 56, 3)) +>rd3 : number >c - c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rd4 = a - c; ->rd4 : number, Symbol(rd4, Decl(arithmeticOperatorWithEnum.ts, 57, 3)) +>rd4 : number >a - c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rd5 = b - c; ->rd5 : number, Symbol(rd5, Decl(arithmeticOperatorWithEnum.ts, 58, 3)) +>rd5 : number >b - c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rd6 = E.a - a; ->rd6 : number, Symbol(rd6, Decl(arithmeticOperatorWithEnum.ts, 59, 3)) +>rd6 : number >E.a - a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rd7 = E.a - b; ->rd7 : number, Symbol(rd7, Decl(arithmeticOperatorWithEnum.ts, 60, 3)) +>rd7 : number >E.a - b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rd8 = E.a - E.b; ->rd8 : number, Symbol(rd8, Decl(arithmeticOperatorWithEnum.ts, 61, 3)) +>rd8 : number >E.a - E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rd9 = E.a - 1; ->rd9 : number, Symbol(rd9, Decl(arithmeticOperatorWithEnum.ts, 62, 3)) +>rd9 : number >E.a - 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rd10 = a - E.b; ->rd10 : number, Symbol(rd10, Decl(arithmeticOperatorWithEnum.ts, 63, 3)) +>rd10 : number >a - E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rd11 = b - E.b; ->rd11 : number, Symbol(rd11, Decl(arithmeticOperatorWithEnum.ts, 64, 3)) +>rd11 : number >b - E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rd12 = 1 - E.b; ->rd12 : number, Symbol(rd12, Decl(arithmeticOperatorWithEnum.ts, 65, 3)) +>rd12 : number >1 - E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator << var re1 = c << a; ->re1 : number, Symbol(re1, Decl(arithmeticOperatorWithEnum.ts, 68, 3)) +>re1 : number >c << a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var re2 = c << b; ->re2 : number, Symbol(re2, Decl(arithmeticOperatorWithEnum.ts, 69, 3)) +>re2 : number >c << b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var re3 = c << c; ->re3 : number, Symbol(re3, Decl(arithmeticOperatorWithEnum.ts, 70, 3)) +>re3 : number >c << c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var re4 = a << c; ->re4 : number, Symbol(re4, Decl(arithmeticOperatorWithEnum.ts, 71, 3)) +>re4 : number >a << c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var re5 = b << c; ->re5 : number, Symbol(re5, Decl(arithmeticOperatorWithEnum.ts, 72, 3)) +>re5 : number >b << c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var re6 = E.a << a; ->re6 : number, Symbol(re6, Decl(arithmeticOperatorWithEnum.ts, 73, 3)) +>re6 : number >E.a << a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var re7 = E.a << b; ->re7 : number, Symbol(re7, Decl(arithmeticOperatorWithEnum.ts, 74, 3)) +>re7 : number >E.a << b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var re8 = E.a << E.b; ->re8 : number, Symbol(re8, Decl(arithmeticOperatorWithEnum.ts, 75, 3)) +>re8 : number >E.a << E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var re9 = E.a << 1; ->re9 : number, Symbol(re9, Decl(arithmeticOperatorWithEnum.ts, 76, 3)) +>re9 : number >E.a << 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var re10 = a << E.b; ->re10 : number, Symbol(re10, Decl(arithmeticOperatorWithEnum.ts, 77, 3)) +>re10 : number >a << E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var re11 = b << E.b; ->re11 : number, Symbol(re11, Decl(arithmeticOperatorWithEnum.ts, 78, 3)) +>re11 : number >b << E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var re12 = 1 << E.b; ->re12 : number, Symbol(re12, Decl(arithmeticOperatorWithEnum.ts, 79, 3)) +>re12 : number >1 << E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator >> var rf1 = c >> a; ->rf1 : number, Symbol(rf1, Decl(arithmeticOperatorWithEnum.ts, 82, 3)) +>rf1 : number >c >> a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rf2 = c >> b; ->rf2 : number, Symbol(rf2, Decl(arithmeticOperatorWithEnum.ts, 83, 3)) +>rf2 : number >c >> b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rf3 = c >> c; ->rf3 : number, Symbol(rf3, Decl(arithmeticOperatorWithEnum.ts, 84, 3)) +>rf3 : number >c >> c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rf4 = a >> c; ->rf4 : number, Symbol(rf4, Decl(arithmeticOperatorWithEnum.ts, 85, 3)) +>rf4 : number >a >> c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rf5 = b >> c; ->rf5 : number, Symbol(rf5, Decl(arithmeticOperatorWithEnum.ts, 86, 3)) +>rf5 : number >b >> c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rf6 = E.a >> a; ->rf6 : number, Symbol(rf6, Decl(arithmeticOperatorWithEnum.ts, 87, 3)) +>rf6 : number >E.a >> a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rf7 = E.a >> b; ->rf7 : number, Symbol(rf7, Decl(arithmeticOperatorWithEnum.ts, 88, 3)) +>rf7 : number >E.a >> b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rf8 = E.a >> E.b; ->rf8 : number, Symbol(rf8, Decl(arithmeticOperatorWithEnum.ts, 89, 3)) +>rf8 : number >E.a >> E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rf9 = E.a >> 1; ->rf9 : number, Symbol(rf9, Decl(arithmeticOperatorWithEnum.ts, 90, 3)) +>rf9 : number >E.a >> 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rf10 = a >> E.b; ->rf10 : number, Symbol(rf10, Decl(arithmeticOperatorWithEnum.ts, 91, 3)) +>rf10 : number >a >> E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rf11 = b >> E.b; ->rf11 : number, Symbol(rf11, Decl(arithmeticOperatorWithEnum.ts, 92, 3)) +>rf11 : number >b >> E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rf12 = 1 >> E.b; ->rf12 : number, Symbol(rf12, Decl(arithmeticOperatorWithEnum.ts, 93, 3)) +>rf12 : number >1 >> E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator >>> var rg1 = c >>> a; ->rg1 : number, Symbol(rg1, Decl(arithmeticOperatorWithEnum.ts, 96, 3)) +>rg1 : number >c >>> a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rg2 = c >>> b; ->rg2 : number, Symbol(rg2, Decl(arithmeticOperatorWithEnum.ts, 97, 3)) +>rg2 : number >c >>> b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rg3 = c >>> c; ->rg3 : number, Symbol(rg3, Decl(arithmeticOperatorWithEnum.ts, 98, 3)) +>rg3 : number >c >>> c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rg4 = a >>> c; ->rg4 : number, Symbol(rg4, Decl(arithmeticOperatorWithEnum.ts, 99, 3)) +>rg4 : number >a >>> c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rg5 = b >>> c; ->rg5 : number, Symbol(rg5, Decl(arithmeticOperatorWithEnum.ts, 100, 3)) +>rg5 : number >b >>> c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rg6 = E.a >>> a; ->rg6 : number, Symbol(rg6, Decl(arithmeticOperatorWithEnum.ts, 101, 3)) +>rg6 : number >E.a >>> a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rg7 = E.a >>> b; ->rg7 : number, Symbol(rg7, Decl(arithmeticOperatorWithEnum.ts, 102, 3)) +>rg7 : number >E.a >>> b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rg8 = E.a >>> E.b; ->rg8 : number, Symbol(rg8, Decl(arithmeticOperatorWithEnum.ts, 103, 3)) +>rg8 : number >E.a >>> E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rg9 = E.a >>> 1; ->rg9 : number, Symbol(rg9, Decl(arithmeticOperatorWithEnum.ts, 104, 3)) +>rg9 : number >E.a >>> 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rg10 = a >>> E.b; ->rg10 : number, Symbol(rg10, Decl(arithmeticOperatorWithEnum.ts, 105, 3)) +>rg10 : number >a >>> E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rg11 = b >>> E.b; ->rg11 : number, Symbol(rg11, Decl(arithmeticOperatorWithEnum.ts, 106, 3)) +>rg11 : number >b >>> E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rg12 = 1 >>> E.b; ->rg12 : number, Symbol(rg12, Decl(arithmeticOperatorWithEnum.ts, 107, 3)) +>rg12 : number >1 >>> E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator & var rh1 = c & a; ->rh1 : number, Symbol(rh1, Decl(arithmeticOperatorWithEnum.ts, 110, 3)) +>rh1 : number >c & a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rh2 = c & b; ->rh2 : number, Symbol(rh2, Decl(arithmeticOperatorWithEnum.ts, 111, 3)) +>rh2 : number >c & b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rh3 = c & c; ->rh3 : number, Symbol(rh3, Decl(arithmeticOperatorWithEnum.ts, 112, 3)) +>rh3 : number >c & c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rh4 = a & c; ->rh4 : number, Symbol(rh4, Decl(arithmeticOperatorWithEnum.ts, 113, 3)) +>rh4 : number >a & c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rh5 = b & c; ->rh5 : number, Symbol(rh5, Decl(arithmeticOperatorWithEnum.ts, 114, 3)) +>rh5 : number >b & c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rh6 = E.a & a; ->rh6 : number, Symbol(rh6, Decl(arithmeticOperatorWithEnum.ts, 115, 3)) +>rh6 : number >E.a & a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rh7 = E.a & b; ->rh7 : number, Symbol(rh7, Decl(arithmeticOperatorWithEnum.ts, 116, 3)) +>rh7 : number >E.a & b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rh8 = E.a & E.b; ->rh8 : number, Symbol(rh8, Decl(arithmeticOperatorWithEnum.ts, 117, 3)) +>rh8 : number >E.a & E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rh9 = E.a & 1; ->rh9 : number, Symbol(rh9, Decl(arithmeticOperatorWithEnum.ts, 118, 3)) +>rh9 : number >E.a & 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rh10 = a & E.b; ->rh10 : number, Symbol(rh10, Decl(arithmeticOperatorWithEnum.ts, 119, 3)) +>rh10 : number >a & E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rh11 = b & E.b; ->rh11 : number, Symbol(rh11, Decl(arithmeticOperatorWithEnum.ts, 120, 3)) +>rh11 : number >b & E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rh12 = 1 & E.b; ->rh12 : number, Symbol(rh12, Decl(arithmeticOperatorWithEnum.ts, 121, 3)) +>rh12 : number >1 & E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator ^ var ri1 = c ^ a; ->ri1 : number, Symbol(ri1, Decl(arithmeticOperatorWithEnum.ts, 124, 3)) +>ri1 : number >c ^ a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var ri2 = c ^ b; ->ri2 : number, Symbol(ri2, Decl(arithmeticOperatorWithEnum.ts, 125, 3)) +>ri2 : number >c ^ b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var ri3 = c ^ c; ->ri3 : number, Symbol(ri3, Decl(arithmeticOperatorWithEnum.ts, 126, 3)) +>ri3 : number >c ^ c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var ri4 = a ^ c; ->ri4 : number, Symbol(ri4, Decl(arithmeticOperatorWithEnum.ts, 127, 3)) +>ri4 : number >a ^ c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var ri5 = b ^ c; ->ri5 : number, Symbol(ri5, Decl(arithmeticOperatorWithEnum.ts, 128, 3)) +>ri5 : number >b ^ c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var ri6 = E.a ^ a; ->ri6 : number, Symbol(ri6, Decl(arithmeticOperatorWithEnum.ts, 129, 3)) +>ri6 : number >E.a ^ a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var ri7 = E.a ^ b; ->ri7 : number, Symbol(ri7, Decl(arithmeticOperatorWithEnum.ts, 130, 3)) +>ri7 : number >E.a ^ b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var ri8 = E.a ^ E.b; ->ri8 : number, Symbol(ri8, Decl(arithmeticOperatorWithEnum.ts, 131, 3)) +>ri8 : number >E.a ^ E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var ri9 = E.a ^ 1; ->ri9 : number, Symbol(ri9, Decl(arithmeticOperatorWithEnum.ts, 132, 3)) +>ri9 : number >E.a ^ 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var ri10 = a ^ E.b; ->ri10 : number, Symbol(ri10, Decl(arithmeticOperatorWithEnum.ts, 133, 3)) +>ri10 : number >a ^ E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var ri11 = b ^ E.b; ->ri11 : number, Symbol(ri11, Decl(arithmeticOperatorWithEnum.ts, 134, 3)) +>ri11 : number >b ^ E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var ri12 = 1 ^ E.b; ->ri12 : number, Symbol(ri12, Decl(arithmeticOperatorWithEnum.ts, 135, 3)) +>ri12 : number >1 ^ E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator | var rj1 = c | a; ->rj1 : number, Symbol(rj1, Decl(arithmeticOperatorWithEnum.ts, 138, 3)) +>rj1 : number >c | a : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>c : E +>a : any var rj2 = c | b; ->rj2 : number, Symbol(rj2, Decl(arithmeticOperatorWithEnum.ts, 139, 3)) +>rj2 : number >c | b : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>c : E +>b : number var rj3 = c | c; ->rj3 : number, Symbol(rj3, Decl(arithmeticOperatorWithEnum.ts, 140, 3)) +>rj3 : number >c | c : number ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>c : E +>c : E var rj4 = a | c; ->rj4 : number, Symbol(rj4, Decl(arithmeticOperatorWithEnum.ts, 141, 3)) +>rj4 : number >a | c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>a : any +>c : E var rj5 = b | c; ->rj5 : number, Symbol(rj5, Decl(arithmeticOperatorWithEnum.ts, 142, 3)) +>rj5 : number >b | c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->c : E, Symbol(c, Decl(arithmeticOperatorWithEnum.ts, 9, 3)) +>b : number +>c : E var rj6 = E.a | a; ->rj6 : number, Symbol(rj6, Decl(arithmeticOperatorWithEnum.ts, 143, 3)) +>rj6 : number >E.a | a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rj7 = E.a | b; ->rj7 : number, Symbol(rj7, Decl(arithmeticOperatorWithEnum.ts, 144, 3)) +>rj7 : number >E.a | b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rj8 = E.a | E.b; ->rj8 : number, Symbol(rj8, Decl(arithmeticOperatorWithEnum.ts, 145, 3)) +>rj8 : number >E.a | E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rj9 = E.a | 1; ->rj9 : number, Symbol(rj9, Decl(arithmeticOperatorWithEnum.ts, 146, 3)) +>rj9 : number >E.a | 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnum.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rj10 = a | E.b; ->rj10 : number, Symbol(rj10, Decl(arithmeticOperatorWithEnum.ts, 147, 3)) +>rj10 : number >a | E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnum.ts, 7, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rj11 = b | E.b; ->rj11 : number, Symbol(rj11, Decl(arithmeticOperatorWithEnum.ts, 148, 3)) +>rj11 : number >b | E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnum.ts, 8, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rj12 = 1 | E.b; ->rj12 : number, Symbol(rj12, Decl(arithmeticOperatorWithEnum.ts, 149, 3)) +>rj12 : number >1 | E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnum.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnum.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E diff --git a/tests/baselines/reference/arithmeticOperatorWithEnumUnion.symbols b/tests/baselines/reference/arithmeticOperatorWithEnumUnion.symbols new file mode 100644 index 0000000000000..0fa9a5b8fe316 --- /dev/null +++ b/tests/baselines/reference/arithmeticOperatorWithEnumUnion.symbols @@ -0,0 +1,783 @@ +=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithEnumUnion.ts === +// operands of an enum type are treated as having the primitive type Number. + +enum E { +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) + + a, +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + + b +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +} +enum F { +>F : Symbol(F, Decl(arithmeticOperatorWithEnumUnion.ts, 5, 1)) + + c, +>c : Symbol(F.c, Decl(arithmeticOperatorWithEnumUnion.ts, 6, 8)) + + d +>d : Symbol(F.d, Decl(arithmeticOperatorWithEnumUnion.ts, 7, 6)) +} + +var a: any; +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var b: number; +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var c: E | F; +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>F : Symbol(F, Decl(arithmeticOperatorWithEnumUnion.ts, 5, 1)) + +// operator * +var ra1 = c * a; +>ra1 : Symbol(ra1, Decl(arithmeticOperatorWithEnumUnion.ts, 16, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var ra2 = c * b; +>ra2 : Symbol(ra2, Decl(arithmeticOperatorWithEnumUnion.ts, 17, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var ra3 = c * c; +>ra3 : Symbol(ra3, Decl(arithmeticOperatorWithEnumUnion.ts, 18, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var ra4 = a * c; +>ra4 : Symbol(ra4, Decl(arithmeticOperatorWithEnumUnion.ts, 19, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var ra5 = b * c; +>ra5 : Symbol(ra5, Decl(arithmeticOperatorWithEnumUnion.ts, 20, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var ra6 = E.a * a; +>ra6 : Symbol(ra6, Decl(arithmeticOperatorWithEnumUnion.ts, 21, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var ra7 = E.a * b; +>ra7 : Symbol(ra7, Decl(arithmeticOperatorWithEnumUnion.ts, 22, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var ra8 = E.a * E.b; +>ra8 : Symbol(ra8, Decl(arithmeticOperatorWithEnumUnion.ts, 23, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var ra9 = E.a * 1; +>ra9 : Symbol(ra9, Decl(arithmeticOperatorWithEnumUnion.ts, 24, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var ra10 = a * E.b; +>ra10 : Symbol(ra10, Decl(arithmeticOperatorWithEnumUnion.ts, 25, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var ra11 = b * E.b; +>ra11 : Symbol(ra11, Decl(arithmeticOperatorWithEnumUnion.ts, 26, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var ra12 = 1 * E.b; +>ra12 : Symbol(ra12, Decl(arithmeticOperatorWithEnumUnion.ts, 27, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator / +var rb1 = c / a; +>rb1 : Symbol(rb1, Decl(arithmeticOperatorWithEnumUnion.ts, 30, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rb2 = c / b; +>rb2 : Symbol(rb2, Decl(arithmeticOperatorWithEnumUnion.ts, 31, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rb3 = c / c; +>rb3 : Symbol(rb3, Decl(arithmeticOperatorWithEnumUnion.ts, 32, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rb4 = a / c; +>rb4 : Symbol(rb4, Decl(arithmeticOperatorWithEnumUnion.ts, 33, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rb5 = b / c; +>rb5 : Symbol(rb5, Decl(arithmeticOperatorWithEnumUnion.ts, 34, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rb6 = E.a / a; +>rb6 : Symbol(rb6, Decl(arithmeticOperatorWithEnumUnion.ts, 35, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rb7 = E.a / b; +>rb7 : Symbol(rb7, Decl(arithmeticOperatorWithEnumUnion.ts, 36, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rb8 = E.a / E.b; +>rb8 : Symbol(rb8, Decl(arithmeticOperatorWithEnumUnion.ts, 37, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rb9 = E.a / 1; +>rb9 : Symbol(rb9, Decl(arithmeticOperatorWithEnumUnion.ts, 38, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rb10 = a / E.b; +>rb10 : Symbol(rb10, Decl(arithmeticOperatorWithEnumUnion.ts, 39, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rb11 = b / E.b; +>rb11 : Symbol(rb11, Decl(arithmeticOperatorWithEnumUnion.ts, 40, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rb12 = 1 / E.b; +>rb12 : Symbol(rb12, Decl(arithmeticOperatorWithEnumUnion.ts, 41, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator % +var rc1 = c % a; +>rc1 : Symbol(rc1, Decl(arithmeticOperatorWithEnumUnion.ts, 44, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rc2 = c % b; +>rc2 : Symbol(rc2, Decl(arithmeticOperatorWithEnumUnion.ts, 45, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rc3 = c % c; +>rc3 : Symbol(rc3, Decl(arithmeticOperatorWithEnumUnion.ts, 46, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rc4 = a % c; +>rc4 : Symbol(rc4, Decl(arithmeticOperatorWithEnumUnion.ts, 47, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rc5 = b % c; +>rc5 : Symbol(rc5, Decl(arithmeticOperatorWithEnumUnion.ts, 48, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rc6 = E.a % a; +>rc6 : Symbol(rc6, Decl(arithmeticOperatorWithEnumUnion.ts, 49, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rc7 = E.a % b; +>rc7 : Symbol(rc7, Decl(arithmeticOperatorWithEnumUnion.ts, 50, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rc8 = E.a % E.b; +>rc8 : Symbol(rc8, Decl(arithmeticOperatorWithEnumUnion.ts, 51, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rc9 = E.a % 1; +>rc9 : Symbol(rc9, Decl(arithmeticOperatorWithEnumUnion.ts, 52, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rc10 = a % E.b; +>rc10 : Symbol(rc10, Decl(arithmeticOperatorWithEnumUnion.ts, 53, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rc11 = b % E.b; +>rc11 : Symbol(rc11, Decl(arithmeticOperatorWithEnumUnion.ts, 54, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rc12 = 1 % E.b; +>rc12 : Symbol(rc12, Decl(arithmeticOperatorWithEnumUnion.ts, 55, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator - +var rd1 = c - a; +>rd1 : Symbol(rd1, Decl(arithmeticOperatorWithEnumUnion.ts, 58, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rd2 = c - b; +>rd2 : Symbol(rd2, Decl(arithmeticOperatorWithEnumUnion.ts, 59, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rd3 = c - c; +>rd3 : Symbol(rd3, Decl(arithmeticOperatorWithEnumUnion.ts, 60, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rd4 = a - c; +>rd4 : Symbol(rd4, Decl(arithmeticOperatorWithEnumUnion.ts, 61, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rd5 = b - c; +>rd5 : Symbol(rd5, Decl(arithmeticOperatorWithEnumUnion.ts, 62, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rd6 = E.a - a; +>rd6 : Symbol(rd6, Decl(arithmeticOperatorWithEnumUnion.ts, 63, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rd7 = E.a - b; +>rd7 : Symbol(rd7, Decl(arithmeticOperatorWithEnumUnion.ts, 64, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rd8 = E.a - E.b; +>rd8 : Symbol(rd8, Decl(arithmeticOperatorWithEnumUnion.ts, 65, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rd9 = E.a - 1; +>rd9 : Symbol(rd9, Decl(arithmeticOperatorWithEnumUnion.ts, 66, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rd10 = a - E.b; +>rd10 : Symbol(rd10, Decl(arithmeticOperatorWithEnumUnion.ts, 67, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rd11 = b - E.b; +>rd11 : Symbol(rd11, Decl(arithmeticOperatorWithEnumUnion.ts, 68, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rd12 = 1 - E.b; +>rd12 : Symbol(rd12, Decl(arithmeticOperatorWithEnumUnion.ts, 69, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator << +var re1 = c << a; +>re1 : Symbol(re1, Decl(arithmeticOperatorWithEnumUnion.ts, 72, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var re2 = c << b; +>re2 : Symbol(re2, Decl(arithmeticOperatorWithEnumUnion.ts, 73, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var re3 = c << c; +>re3 : Symbol(re3, Decl(arithmeticOperatorWithEnumUnion.ts, 74, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var re4 = a << c; +>re4 : Symbol(re4, Decl(arithmeticOperatorWithEnumUnion.ts, 75, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var re5 = b << c; +>re5 : Symbol(re5, Decl(arithmeticOperatorWithEnumUnion.ts, 76, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var re6 = E.a << a; +>re6 : Symbol(re6, Decl(arithmeticOperatorWithEnumUnion.ts, 77, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var re7 = E.a << b; +>re7 : Symbol(re7, Decl(arithmeticOperatorWithEnumUnion.ts, 78, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var re8 = E.a << E.b; +>re8 : Symbol(re8, Decl(arithmeticOperatorWithEnumUnion.ts, 79, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var re9 = E.a << 1; +>re9 : Symbol(re9, Decl(arithmeticOperatorWithEnumUnion.ts, 80, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var re10 = a << E.b; +>re10 : Symbol(re10, Decl(arithmeticOperatorWithEnumUnion.ts, 81, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var re11 = b << E.b; +>re11 : Symbol(re11, Decl(arithmeticOperatorWithEnumUnion.ts, 82, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var re12 = 1 << E.b; +>re12 : Symbol(re12, Decl(arithmeticOperatorWithEnumUnion.ts, 83, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator >> +var rf1 = c >> a; +>rf1 : Symbol(rf1, Decl(arithmeticOperatorWithEnumUnion.ts, 86, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rf2 = c >> b; +>rf2 : Symbol(rf2, Decl(arithmeticOperatorWithEnumUnion.ts, 87, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rf3 = c >> c; +>rf3 : Symbol(rf3, Decl(arithmeticOperatorWithEnumUnion.ts, 88, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rf4 = a >> c; +>rf4 : Symbol(rf4, Decl(arithmeticOperatorWithEnumUnion.ts, 89, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rf5 = b >> c; +>rf5 : Symbol(rf5, Decl(arithmeticOperatorWithEnumUnion.ts, 90, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rf6 = E.a >> a; +>rf6 : Symbol(rf6, Decl(arithmeticOperatorWithEnumUnion.ts, 91, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rf7 = E.a >> b; +>rf7 : Symbol(rf7, Decl(arithmeticOperatorWithEnumUnion.ts, 92, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rf8 = E.a >> E.b; +>rf8 : Symbol(rf8, Decl(arithmeticOperatorWithEnumUnion.ts, 93, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rf9 = E.a >> 1; +>rf9 : Symbol(rf9, Decl(arithmeticOperatorWithEnumUnion.ts, 94, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rf10 = a >> E.b; +>rf10 : Symbol(rf10, Decl(arithmeticOperatorWithEnumUnion.ts, 95, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rf11 = b >> E.b; +>rf11 : Symbol(rf11, Decl(arithmeticOperatorWithEnumUnion.ts, 96, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rf12 = 1 >> E.b; +>rf12 : Symbol(rf12, Decl(arithmeticOperatorWithEnumUnion.ts, 97, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator >>> +var rg1 = c >>> a; +>rg1 : Symbol(rg1, Decl(arithmeticOperatorWithEnumUnion.ts, 100, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rg2 = c >>> b; +>rg2 : Symbol(rg2, Decl(arithmeticOperatorWithEnumUnion.ts, 101, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rg3 = c >>> c; +>rg3 : Symbol(rg3, Decl(arithmeticOperatorWithEnumUnion.ts, 102, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rg4 = a >>> c; +>rg4 : Symbol(rg4, Decl(arithmeticOperatorWithEnumUnion.ts, 103, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rg5 = b >>> c; +>rg5 : Symbol(rg5, Decl(arithmeticOperatorWithEnumUnion.ts, 104, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rg6 = E.a >>> a; +>rg6 : Symbol(rg6, Decl(arithmeticOperatorWithEnumUnion.ts, 105, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rg7 = E.a >>> b; +>rg7 : Symbol(rg7, Decl(arithmeticOperatorWithEnumUnion.ts, 106, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rg8 = E.a >>> E.b; +>rg8 : Symbol(rg8, Decl(arithmeticOperatorWithEnumUnion.ts, 107, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rg9 = E.a >>> 1; +>rg9 : Symbol(rg9, Decl(arithmeticOperatorWithEnumUnion.ts, 108, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rg10 = a >>> E.b; +>rg10 : Symbol(rg10, Decl(arithmeticOperatorWithEnumUnion.ts, 109, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rg11 = b >>> E.b; +>rg11 : Symbol(rg11, Decl(arithmeticOperatorWithEnumUnion.ts, 110, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rg12 = 1 >>> E.b; +>rg12 : Symbol(rg12, Decl(arithmeticOperatorWithEnumUnion.ts, 111, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator & +var rh1 = c & a; +>rh1 : Symbol(rh1, Decl(arithmeticOperatorWithEnumUnion.ts, 114, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rh2 = c & b; +>rh2 : Symbol(rh2, Decl(arithmeticOperatorWithEnumUnion.ts, 115, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rh3 = c & c; +>rh3 : Symbol(rh3, Decl(arithmeticOperatorWithEnumUnion.ts, 116, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rh4 = a & c; +>rh4 : Symbol(rh4, Decl(arithmeticOperatorWithEnumUnion.ts, 117, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rh5 = b & c; +>rh5 : Symbol(rh5, Decl(arithmeticOperatorWithEnumUnion.ts, 118, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rh6 = E.a & a; +>rh6 : Symbol(rh6, Decl(arithmeticOperatorWithEnumUnion.ts, 119, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rh7 = E.a & b; +>rh7 : Symbol(rh7, Decl(arithmeticOperatorWithEnumUnion.ts, 120, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rh8 = E.a & E.b; +>rh8 : Symbol(rh8, Decl(arithmeticOperatorWithEnumUnion.ts, 121, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rh9 = E.a & 1; +>rh9 : Symbol(rh9, Decl(arithmeticOperatorWithEnumUnion.ts, 122, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rh10 = a & E.b; +>rh10 : Symbol(rh10, Decl(arithmeticOperatorWithEnumUnion.ts, 123, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rh11 = b & E.b; +>rh11 : Symbol(rh11, Decl(arithmeticOperatorWithEnumUnion.ts, 124, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rh12 = 1 & E.b; +>rh12 : Symbol(rh12, Decl(arithmeticOperatorWithEnumUnion.ts, 125, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator ^ +var ri1 = c ^ a; +>ri1 : Symbol(ri1, Decl(arithmeticOperatorWithEnumUnion.ts, 128, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var ri2 = c ^ b; +>ri2 : Symbol(ri2, Decl(arithmeticOperatorWithEnumUnion.ts, 129, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var ri3 = c ^ c; +>ri3 : Symbol(ri3, Decl(arithmeticOperatorWithEnumUnion.ts, 130, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var ri4 = a ^ c; +>ri4 : Symbol(ri4, Decl(arithmeticOperatorWithEnumUnion.ts, 131, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var ri5 = b ^ c; +>ri5 : Symbol(ri5, Decl(arithmeticOperatorWithEnumUnion.ts, 132, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var ri6 = E.a ^ a; +>ri6 : Symbol(ri6, Decl(arithmeticOperatorWithEnumUnion.ts, 133, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var ri7 = E.a ^ b; +>ri7 : Symbol(ri7, Decl(arithmeticOperatorWithEnumUnion.ts, 134, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var ri8 = E.a ^ E.b; +>ri8 : Symbol(ri8, Decl(arithmeticOperatorWithEnumUnion.ts, 135, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var ri9 = E.a ^ 1; +>ri9 : Symbol(ri9, Decl(arithmeticOperatorWithEnumUnion.ts, 136, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var ri10 = a ^ E.b; +>ri10 : Symbol(ri10, Decl(arithmeticOperatorWithEnumUnion.ts, 137, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var ri11 = b ^ E.b; +>ri11 : Symbol(ri11, Decl(arithmeticOperatorWithEnumUnion.ts, 138, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var ri12 = 1 ^ E.b; +>ri12 : Symbol(ri12, Decl(arithmeticOperatorWithEnumUnion.ts, 139, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +// operator | +var rj1 = c | a; +>rj1 : Symbol(rj1, Decl(arithmeticOperatorWithEnumUnion.ts, 142, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rj2 = c | b; +>rj2 : Symbol(rj2, Decl(arithmeticOperatorWithEnumUnion.ts, 143, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rj3 = c | c; +>rj3 : Symbol(rj3, Decl(arithmeticOperatorWithEnumUnion.ts, 144, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rj4 = a | c; +>rj4 : Symbol(rj4, Decl(arithmeticOperatorWithEnumUnion.ts, 145, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rj5 = b | c; +>rj5 : Symbol(rj5, Decl(arithmeticOperatorWithEnumUnion.ts, 146, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) + +var rj6 = E.a | a; +>rj6 : Symbol(rj6, Decl(arithmeticOperatorWithEnumUnion.ts, 147, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) + +var rj7 = E.a | b; +>rj7 : Symbol(rj7, Decl(arithmeticOperatorWithEnumUnion.ts, 148, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) + +var rj8 = E.a | E.b; +>rj8 : Symbol(rj8, Decl(arithmeticOperatorWithEnumUnion.ts, 149, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rj9 = E.a | 1; +>rj9 : Symbol(rj9, Decl(arithmeticOperatorWithEnumUnion.ts, 150, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) + +var rj10 = a | E.b; +>rj10 : Symbol(rj10, Decl(arithmeticOperatorWithEnumUnion.ts, 151, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rj11 = b | E.b; +>rj11 : Symbol(rj11, Decl(arithmeticOperatorWithEnumUnion.ts, 152, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + +var rj12 = 1 | E.b; +>rj12 : Symbol(rj12, Decl(arithmeticOperatorWithEnumUnion.ts, 153, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) + diff --git a/tests/baselines/reference/arithmeticOperatorWithEnumUnion.types b/tests/baselines/reference/arithmeticOperatorWithEnumUnion.types index 698be4feb7fc7..cb9bf3d45b0c8 100644 --- a/tests/baselines/reference/arithmeticOperatorWithEnumUnion.types +++ b/tests/baselines/reference/arithmeticOperatorWithEnumUnion.types @@ -2,922 +2,922 @@ // operands of an enum type are treated as having the primitive type Number. enum E { ->E : E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) +>E : E a, ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>a : E b ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : E } enum F { ->F : F, Symbol(F, Decl(arithmeticOperatorWithEnumUnion.ts, 5, 1)) +>F : F c, ->c : F, Symbol(F.c, Decl(arithmeticOperatorWithEnumUnion.ts, 6, 8)) +>c : F d ->d : F, Symbol(F.d, Decl(arithmeticOperatorWithEnumUnion.ts, 7, 6)) +>d : F } var a: any; ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>b : number var c: E | F; ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->E : E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->F : F, Symbol(F, Decl(arithmeticOperatorWithEnumUnion.ts, 5, 1)) +>c : E | F +>E : E +>F : F // operator * var ra1 = c * a; ->ra1 : number, Symbol(ra1, Decl(arithmeticOperatorWithEnumUnion.ts, 16, 3)) +>ra1 : number >c * a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var ra2 = c * b; ->ra2 : number, Symbol(ra2, Decl(arithmeticOperatorWithEnumUnion.ts, 17, 3)) +>ra2 : number >c * b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var ra3 = c * c; ->ra3 : number, Symbol(ra3, Decl(arithmeticOperatorWithEnumUnion.ts, 18, 3)) +>ra3 : number >c * c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var ra4 = a * c; ->ra4 : number, Symbol(ra4, Decl(arithmeticOperatorWithEnumUnion.ts, 19, 3)) +>ra4 : number >a * c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var ra5 = b * c; ->ra5 : number, Symbol(ra5, Decl(arithmeticOperatorWithEnumUnion.ts, 20, 3)) +>ra5 : number >b * c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var ra6 = E.a * a; ->ra6 : number, Symbol(ra6, Decl(arithmeticOperatorWithEnumUnion.ts, 21, 3)) +>ra6 : number >E.a * a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var ra7 = E.a * b; ->ra7 : number, Symbol(ra7, Decl(arithmeticOperatorWithEnumUnion.ts, 22, 3)) +>ra7 : number >E.a * b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var ra8 = E.a * E.b; ->ra8 : number, Symbol(ra8, Decl(arithmeticOperatorWithEnumUnion.ts, 23, 3)) +>ra8 : number >E.a * E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var ra9 = E.a * 1; ->ra9 : number, Symbol(ra9, Decl(arithmeticOperatorWithEnumUnion.ts, 24, 3)) +>ra9 : number >E.a * 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var ra10 = a * E.b; ->ra10 : number, Symbol(ra10, Decl(arithmeticOperatorWithEnumUnion.ts, 25, 3)) +>ra10 : number >a * E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var ra11 = b * E.b; ->ra11 : number, Symbol(ra11, Decl(arithmeticOperatorWithEnumUnion.ts, 26, 3)) +>ra11 : number >b * E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var ra12 = 1 * E.b; ->ra12 : number, Symbol(ra12, Decl(arithmeticOperatorWithEnumUnion.ts, 27, 3)) +>ra12 : number >1 * E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator / var rb1 = c / a; ->rb1 : number, Symbol(rb1, Decl(arithmeticOperatorWithEnumUnion.ts, 30, 3)) +>rb1 : number >c / a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rb2 = c / b; ->rb2 : number, Symbol(rb2, Decl(arithmeticOperatorWithEnumUnion.ts, 31, 3)) +>rb2 : number >c / b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rb3 = c / c; ->rb3 : number, Symbol(rb3, Decl(arithmeticOperatorWithEnumUnion.ts, 32, 3)) +>rb3 : number >c / c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rb4 = a / c; ->rb4 : number, Symbol(rb4, Decl(arithmeticOperatorWithEnumUnion.ts, 33, 3)) +>rb4 : number >a / c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rb5 = b / c; ->rb5 : number, Symbol(rb5, Decl(arithmeticOperatorWithEnumUnion.ts, 34, 3)) +>rb5 : number >b / c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rb6 = E.a / a; ->rb6 : number, Symbol(rb6, Decl(arithmeticOperatorWithEnumUnion.ts, 35, 3)) +>rb6 : number >E.a / a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rb7 = E.a / b; ->rb7 : number, Symbol(rb7, Decl(arithmeticOperatorWithEnumUnion.ts, 36, 3)) +>rb7 : number >E.a / b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rb8 = E.a / E.b; ->rb8 : number, Symbol(rb8, Decl(arithmeticOperatorWithEnumUnion.ts, 37, 3)) +>rb8 : number >E.a / E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rb9 = E.a / 1; ->rb9 : number, Symbol(rb9, Decl(arithmeticOperatorWithEnumUnion.ts, 38, 3)) +>rb9 : number >E.a / 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rb10 = a / E.b; ->rb10 : number, Symbol(rb10, Decl(arithmeticOperatorWithEnumUnion.ts, 39, 3)) +>rb10 : number >a / E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rb11 = b / E.b; ->rb11 : number, Symbol(rb11, Decl(arithmeticOperatorWithEnumUnion.ts, 40, 3)) +>rb11 : number >b / E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rb12 = 1 / E.b; ->rb12 : number, Symbol(rb12, Decl(arithmeticOperatorWithEnumUnion.ts, 41, 3)) +>rb12 : number >1 / E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator % var rc1 = c % a; ->rc1 : number, Symbol(rc1, Decl(arithmeticOperatorWithEnumUnion.ts, 44, 3)) +>rc1 : number >c % a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rc2 = c % b; ->rc2 : number, Symbol(rc2, Decl(arithmeticOperatorWithEnumUnion.ts, 45, 3)) +>rc2 : number >c % b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rc3 = c % c; ->rc3 : number, Symbol(rc3, Decl(arithmeticOperatorWithEnumUnion.ts, 46, 3)) +>rc3 : number >c % c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rc4 = a % c; ->rc4 : number, Symbol(rc4, Decl(arithmeticOperatorWithEnumUnion.ts, 47, 3)) +>rc4 : number >a % c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rc5 = b % c; ->rc5 : number, Symbol(rc5, Decl(arithmeticOperatorWithEnumUnion.ts, 48, 3)) +>rc5 : number >b % c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rc6 = E.a % a; ->rc6 : number, Symbol(rc6, Decl(arithmeticOperatorWithEnumUnion.ts, 49, 3)) +>rc6 : number >E.a % a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rc7 = E.a % b; ->rc7 : number, Symbol(rc7, Decl(arithmeticOperatorWithEnumUnion.ts, 50, 3)) +>rc7 : number >E.a % b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rc8 = E.a % E.b; ->rc8 : number, Symbol(rc8, Decl(arithmeticOperatorWithEnumUnion.ts, 51, 3)) +>rc8 : number >E.a % E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rc9 = E.a % 1; ->rc9 : number, Symbol(rc9, Decl(arithmeticOperatorWithEnumUnion.ts, 52, 3)) +>rc9 : number >E.a % 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rc10 = a % E.b; ->rc10 : number, Symbol(rc10, Decl(arithmeticOperatorWithEnumUnion.ts, 53, 3)) +>rc10 : number >a % E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rc11 = b % E.b; ->rc11 : number, Symbol(rc11, Decl(arithmeticOperatorWithEnumUnion.ts, 54, 3)) +>rc11 : number >b % E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rc12 = 1 % E.b; ->rc12 : number, Symbol(rc12, Decl(arithmeticOperatorWithEnumUnion.ts, 55, 3)) +>rc12 : number >1 % E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator - var rd1 = c - a; ->rd1 : number, Symbol(rd1, Decl(arithmeticOperatorWithEnumUnion.ts, 58, 3)) +>rd1 : number >c - a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rd2 = c - b; ->rd2 : number, Symbol(rd2, Decl(arithmeticOperatorWithEnumUnion.ts, 59, 3)) +>rd2 : number >c - b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rd3 = c - c; ->rd3 : number, Symbol(rd3, Decl(arithmeticOperatorWithEnumUnion.ts, 60, 3)) +>rd3 : number >c - c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rd4 = a - c; ->rd4 : number, Symbol(rd4, Decl(arithmeticOperatorWithEnumUnion.ts, 61, 3)) +>rd4 : number >a - c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rd5 = b - c; ->rd5 : number, Symbol(rd5, Decl(arithmeticOperatorWithEnumUnion.ts, 62, 3)) +>rd5 : number >b - c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rd6 = E.a - a; ->rd6 : number, Symbol(rd6, Decl(arithmeticOperatorWithEnumUnion.ts, 63, 3)) +>rd6 : number >E.a - a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rd7 = E.a - b; ->rd7 : number, Symbol(rd7, Decl(arithmeticOperatorWithEnumUnion.ts, 64, 3)) +>rd7 : number >E.a - b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rd8 = E.a - E.b; ->rd8 : number, Symbol(rd8, Decl(arithmeticOperatorWithEnumUnion.ts, 65, 3)) +>rd8 : number >E.a - E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rd9 = E.a - 1; ->rd9 : number, Symbol(rd9, Decl(arithmeticOperatorWithEnumUnion.ts, 66, 3)) +>rd9 : number >E.a - 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rd10 = a - E.b; ->rd10 : number, Symbol(rd10, Decl(arithmeticOperatorWithEnumUnion.ts, 67, 3)) +>rd10 : number >a - E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rd11 = b - E.b; ->rd11 : number, Symbol(rd11, Decl(arithmeticOperatorWithEnumUnion.ts, 68, 3)) +>rd11 : number >b - E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rd12 = 1 - E.b; ->rd12 : number, Symbol(rd12, Decl(arithmeticOperatorWithEnumUnion.ts, 69, 3)) +>rd12 : number >1 - E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator << var re1 = c << a; ->re1 : number, Symbol(re1, Decl(arithmeticOperatorWithEnumUnion.ts, 72, 3)) +>re1 : number >c << a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var re2 = c << b; ->re2 : number, Symbol(re2, Decl(arithmeticOperatorWithEnumUnion.ts, 73, 3)) +>re2 : number >c << b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var re3 = c << c; ->re3 : number, Symbol(re3, Decl(arithmeticOperatorWithEnumUnion.ts, 74, 3)) +>re3 : number >c << c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var re4 = a << c; ->re4 : number, Symbol(re4, Decl(arithmeticOperatorWithEnumUnion.ts, 75, 3)) +>re4 : number >a << c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var re5 = b << c; ->re5 : number, Symbol(re5, Decl(arithmeticOperatorWithEnumUnion.ts, 76, 3)) +>re5 : number >b << c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var re6 = E.a << a; ->re6 : number, Symbol(re6, Decl(arithmeticOperatorWithEnumUnion.ts, 77, 3)) +>re6 : number >E.a << a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var re7 = E.a << b; ->re7 : number, Symbol(re7, Decl(arithmeticOperatorWithEnumUnion.ts, 78, 3)) +>re7 : number >E.a << b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var re8 = E.a << E.b; ->re8 : number, Symbol(re8, Decl(arithmeticOperatorWithEnumUnion.ts, 79, 3)) +>re8 : number >E.a << E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var re9 = E.a << 1; ->re9 : number, Symbol(re9, Decl(arithmeticOperatorWithEnumUnion.ts, 80, 3)) +>re9 : number >E.a << 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var re10 = a << E.b; ->re10 : number, Symbol(re10, Decl(arithmeticOperatorWithEnumUnion.ts, 81, 3)) +>re10 : number >a << E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var re11 = b << E.b; ->re11 : number, Symbol(re11, Decl(arithmeticOperatorWithEnumUnion.ts, 82, 3)) +>re11 : number >b << E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var re12 = 1 << E.b; ->re12 : number, Symbol(re12, Decl(arithmeticOperatorWithEnumUnion.ts, 83, 3)) +>re12 : number >1 << E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator >> var rf1 = c >> a; ->rf1 : number, Symbol(rf1, Decl(arithmeticOperatorWithEnumUnion.ts, 86, 3)) +>rf1 : number >c >> a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rf2 = c >> b; ->rf2 : number, Symbol(rf2, Decl(arithmeticOperatorWithEnumUnion.ts, 87, 3)) +>rf2 : number >c >> b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rf3 = c >> c; ->rf3 : number, Symbol(rf3, Decl(arithmeticOperatorWithEnumUnion.ts, 88, 3)) +>rf3 : number >c >> c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rf4 = a >> c; ->rf4 : number, Symbol(rf4, Decl(arithmeticOperatorWithEnumUnion.ts, 89, 3)) +>rf4 : number >a >> c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rf5 = b >> c; ->rf5 : number, Symbol(rf5, Decl(arithmeticOperatorWithEnumUnion.ts, 90, 3)) +>rf5 : number >b >> c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rf6 = E.a >> a; ->rf6 : number, Symbol(rf6, Decl(arithmeticOperatorWithEnumUnion.ts, 91, 3)) +>rf6 : number >E.a >> a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rf7 = E.a >> b; ->rf7 : number, Symbol(rf7, Decl(arithmeticOperatorWithEnumUnion.ts, 92, 3)) +>rf7 : number >E.a >> b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rf8 = E.a >> E.b; ->rf8 : number, Symbol(rf8, Decl(arithmeticOperatorWithEnumUnion.ts, 93, 3)) +>rf8 : number >E.a >> E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rf9 = E.a >> 1; ->rf9 : number, Symbol(rf9, Decl(arithmeticOperatorWithEnumUnion.ts, 94, 3)) +>rf9 : number >E.a >> 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rf10 = a >> E.b; ->rf10 : number, Symbol(rf10, Decl(arithmeticOperatorWithEnumUnion.ts, 95, 3)) +>rf10 : number >a >> E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rf11 = b >> E.b; ->rf11 : number, Symbol(rf11, Decl(arithmeticOperatorWithEnumUnion.ts, 96, 3)) +>rf11 : number >b >> E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rf12 = 1 >> E.b; ->rf12 : number, Symbol(rf12, Decl(arithmeticOperatorWithEnumUnion.ts, 97, 3)) +>rf12 : number >1 >> E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator >>> var rg1 = c >>> a; ->rg1 : number, Symbol(rg1, Decl(arithmeticOperatorWithEnumUnion.ts, 100, 3)) +>rg1 : number >c >>> a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rg2 = c >>> b; ->rg2 : number, Symbol(rg2, Decl(arithmeticOperatorWithEnumUnion.ts, 101, 3)) +>rg2 : number >c >>> b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rg3 = c >>> c; ->rg3 : number, Symbol(rg3, Decl(arithmeticOperatorWithEnumUnion.ts, 102, 3)) +>rg3 : number >c >>> c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rg4 = a >>> c; ->rg4 : number, Symbol(rg4, Decl(arithmeticOperatorWithEnumUnion.ts, 103, 3)) +>rg4 : number >a >>> c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rg5 = b >>> c; ->rg5 : number, Symbol(rg5, Decl(arithmeticOperatorWithEnumUnion.ts, 104, 3)) +>rg5 : number >b >>> c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rg6 = E.a >>> a; ->rg6 : number, Symbol(rg6, Decl(arithmeticOperatorWithEnumUnion.ts, 105, 3)) +>rg6 : number >E.a >>> a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rg7 = E.a >>> b; ->rg7 : number, Symbol(rg7, Decl(arithmeticOperatorWithEnumUnion.ts, 106, 3)) +>rg7 : number >E.a >>> b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rg8 = E.a >>> E.b; ->rg8 : number, Symbol(rg8, Decl(arithmeticOperatorWithEnumUnion.ts, 107, 3)) +>rg8 : number >E.a >>> E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rg9 = E.a >>> 1; ->rg9 : number, Symbol(rg9, Decl(arithmeticOperatorWithEnumUnion.ts, 108, 3)) +>rg9 : number >E.a >>> 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rg10 = a >>> E.b; ->rg10 : number, Symbol(rg10, Decl(arithmeticOperatorWithEnumUnion.ts, 109, 3)) +>rg10 : number >a >>> E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rg11 = b >>> E.b; ->rg11 : number, Symbol(rg11, Decl(arithmeticOperatorWithEnumUnion.ts, 110, 3)) +>rg11 : number >b >>> E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rg12 = 1 >>> E.b; ->rg12 : number, Symbol(rg12, Decl(arithmeticOperatorWithEnumUnion.ts, 111, 3)) +>rg12 : number >1 >>> E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator & var rh1 = c & a; ->rh1 : number, Symbol(rh1, Decl(arithmeticOperatorWithEnumUnion.ts, 114, 3)) +>rh1 : number >c & a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rh2 = c & b; ->rh2 : number, Symbol(rh2, Decl(arithmeticOperatorWithEnumUnion.ts, 115, 3)) +>rh2 : number >c & b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rh3 = c & c; ->rh3 : number, Symbol(rh3, Decl(arithmeticOperatorWithEnumUnion.ts, 116, 3)) +>rh3 : number >c & c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rh4 = a & c; ->rh4 : number, Symbol(rh4, Decl(arithmeticOperatorWithEnumUnion.ts, 117, 3)) +>rh4 : number >a & c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rh5 = b & c; ->rh5 : number, Symbol(rh5, Decl(arithmeticOperatorWithEnumUnion.ts, 118, 3)) +>rh5 : number >b & c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rh6 = E.a & a; ->rh6 : number, Symbol(rh6, Decl(arithmeticOperatorWithEnumUnion.ts, 119, 3)) +>rh6 : number >E.a & a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rh7 = E.a & b; ->rh7 : number, Symbol(rh7, Decl(arithmeticOperatorWithEnumUnion.ts, 120, 3)) +>rh7 : number >E.a & b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rh8 = E.a & E.b; ->rh8 : number, Symbol(rh8, Decl(arithmeticOperatorWithEnumUnion.ts, 121, 3)) +>rh8 : number >E.a & E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rh9 = E.a & 1; ->rh9 : number, Symbol(rh9, Decl(arithmeticOperatorWithEnumUnion.ts, 122, 3)) +>rh9 : number >E.a & 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rh10 = a & E.b; ->rh10 : number, Symbol(rh10, Decl(arithmeticOperatorWithEnumUnion.ts, 123, 3)) +>rh10 : number >a & E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rh11 = b & E.b; ->rh11 : number, Symbol(rh11, Decl(arithmeticOperatorWithEnumUnion.ts, 124, 3)) +>rh11 : number >b & E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rh12 = 1 & E.b; ->rh12 : number, Symbol(rh12, Decl(arithmeticOperatorWithEnumUnion.ts, 125, 3)) +>rh12 : number >1 & E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator ^ var ri1 = c ^ a; ->ri1 : number, Symbol(ri1, Decl(arithmeticOperatorWithEnumUnion.ts, 128, 3)) +>ri1 : number >c ^ a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var ri2 = c ^ b; ->ri2 : number, Symbol(ri2, Decl(arithmeticOperatorWithEnumUnion.ts, 129, 3)) +>ri2 : number >c ^ b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var ri3 = c ^ c; ->ri3 : number, Symbol(ri3, Decl(arithmeticOperatorWithEnumUnion.ts, 130, 3)) +>ri3 : number >c ^ c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var ri4 = a ^ c; ->ri4 : number, Symbol(ri4, Decl(arithmeticOperatorWithEnumUnion.ts, 131, 3)) +>ri4 : number >a ^ c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var ri5 = b ^ c; ->ri5 : number, Symbol(ri5, Decl(arithmeticOperatorWithEnumUnion.ts, 132, 3)) +>ri5 : number >b ^ c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var ri6 = E.a ^ a; ->ri6 : number, Symbol(ri6, Decl(arithmeticOperatorWithEnumUnion.ts, 133, 3)) +>ri6 : number >E.a ^ a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var ri7 = E.a ^ b; ->ri7 : number, Symbol(ri7, Decl(arithmeticOperatorWithEnumUnion.ts, 134, 3)) +>ri7 : number >E.a ^ b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var ri8 = E.a ^ E.b; ->ri8 : number, Symbol(ri8, Decl(arithmeticOperatorWithEnumUnion.ts, 135, 3)) +>ri8 : number >E.a ^ E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var ri9 = E.a ^ 1; ->ri9 : number, Symbol(ri9, Decl(arithmeticOperatorWithEnumUnion.ts, 136, 3)) +>ri9 : number >E.a ^ 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var ri10 = a ^ E.b; ->ri10 : number, Symbol(ri10, Decl(arithmeticOperatorWithEnumUnion.ts, 137, 3)) +>ri10 : number >a ^ E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var ri11 = b ^ E.b; ->ri11 : number, Symbol(ri11, Decl(arithmeticOperatorWithEnumUnion.ts, 138, 3)) +>ri11 : number >b ^ E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var ri12 = 1 ^ E.b; ->ri12 : number, Symbol(ri12, Decl(arithmeticOperatorWithEnumUnion.ts, 139, 3)) +>ri12 : number >1 ^ E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E // operator | var rj1 = c | a; ->rj1 : number, Symbol(rj1, Decl(arithmeticOperatorWithEnumUnion.ts, 142, 3)) +>rj1 : number >c | a : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>c : E | F +>a : any var rj2 = c | b; ->rj2 : number, Symbol(rj2, Decl(arithmeticOperatorWithEnumUnion.ts, 143, 3)) +>rj2 : number >c | b : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>c : E | F +>b : number var rj3 = c | c; ->rj3 : number, Symbol(rj3, Decl(arithmeticOperatorWithEnumUnion.ts, 144, 3)) +>rj3 : number >c | c : number ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>c : E | F +>c : E | F var rj4 = a | c; ->rj4 : number, Symbol(rj4, Decl(arithmeticOperatorWithEnumUnion.ts, 145, 3)) +>rj4 : number >a | c : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>a : any +>c : E | F var rj5 = b | c; ->rj5 : number, Symbol(rj5, Decl(arithmeticOperatorWithEnumUnion.ts, 146, 3)) +>rj5 : number >b | c : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->c : E | F, Symbol(c, Decl(arithmeticOperatorWithEnumUnion.ts, 13, 3)) +>b : number +>c : E | F var rj6 = E.a | a; ->rj6 : number, Symbol(rj6, Decl(arithmeticOperatorWithEnumUnion.ts, 147, 3)) +>rj6 : number >E.a | a : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) +>E.a : E +>E : typeof E +>a : E +>a : any var rj7 = E.a | b; ->rj7 : number, Symbol(rj7, Decl(arithmeticOperatorWithEnumUnion.ts, 148, 3)) +>rj7 : number >E.a | b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rj8 = E.a | E.b; ->rj8 : number, Symbol(rj8, Decl(arithmeticOperatorWithEnumUnion.ts, 149, 3)) +>rj8 : number >E.a | E.b : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.a : E +>E : typeof E +>a : E +>E.b : E +>E : typeof E +>b : E var rj9 = E.a | 1; ->rj9 : number, Symbol(rj9, Decl(arithmeticOperatorWithEnumUnion.ts, 150, 3)) +>rj9 : number >E.a | 1 : number ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithEnumUnion.ts, 2, 8)) +>E.a : E +>E : typeof E +>a : E >1 : number var rj10 = a | E.b; ->rj10 : number, Symbol(rj10, Decl(arithmeticOperatorWithEnumUnion.ts, 151, 3)) +>rj10 : number >a | E.b : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithEnumUnion.ts, 11, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>a : any +>E.b : E +>E : typeof E +>b : E var rj11 = b | E.b; ->rj11 : number, Symbol(rj11, Decl(arithmeticOperatorWithEnumUnion.ts, 152, 3)) +>rj11 : number >b | E.b : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithEnumUnion.ts, 12, 3)) ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>b : number +>E.b : E +>E : typeof E +>b : E var rj12 = 1 | E.b; ->rj12 : number, Symbol(rj12, Decl(arithmeticOperatorWithEnumUnion.ts, 153, 3)) +>rj12 : number >1 | E.b : number >1 : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithEnumUnion.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithEnumUnion.ts, 3, 6)) +>E.b : E +>E : typeof E +>b : E diff --git a/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.symbols b/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.symbols new file mode 100644 index 0000000000000..fe7e683bb8c88 --- /dev/null +++ b/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.symbols @@ -0,0 +1,370 @@ +=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithNullValueAndValidOperands.ts === +// If one operand is the null or undefined value, it is treated as having the type of the +// other operand. + +enum E { +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) + + a, +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + + b +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +} + +var a: any; +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var b: number; +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +// operator * +var ra1 = null * a; +>ra1 : Symbol(ra1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 12, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var ra2 = null * b; +>ra2 : Symbol(ra2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 13, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var ra3 = null * 1; +>ra3 : Symbol(ra3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 14, 3)) + +var ra4 = null * E.a; +>ra4 : Symbol(ra4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 15, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var ra5 = a * null; +>ra5 : Symbol(ra5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 16, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var ra6 = b * null; +>ra6 : Symbol(ra6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 17, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var ra7 = 0 * null; +>ra7 : Symbol(ra7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 18, 3)) + +var ra8 = E.b * null; +>ra8 : Symbol(ra8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 19, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator / +var rb1 = null / a; +>rb1 : Symbol(rb1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 22, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rb2 = null / b; +>rb2 : Symbol(rb2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 23, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rb3 = null / 1; +>rb3 : Symbol(rb3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 24, 3)) + +var rb4 = null / E.a; +>rb4 : Symbol(rb4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 25, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rb5 = a / null; +>rb5 : Symbol(rb5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 26, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rb6 = b / null; +>rb6 : Symbol(rb6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 27, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rb7 = 0 / null; +>rb7 : Symbol(rb7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 28, 3)) + +var rb8 = E.b / null; +>rb8 : Symbol(rb8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 29, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator % +var rc1 = null % a; +>rc1 : Symbol(rc1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 32, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rc2 = null % b; +>rc2 : Symbol(rc2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 33, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rc3 = null % 1; +>rc3 : Symbol(rc3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 34, 3)) + +var rc4 = null % E.a; +>rc4 : Symbol(rc4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 35, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rc5 = a % null; +>rc5 : Symbol(rc5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 36, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rc6 = b % null; +>rc6 : Symbol(rc6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 37, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rc7 = 0 % null; +>rc7 : Symbol(rc7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 38, 3)) + +var rc8 = E.b % null; +>rc8 : Symbol(rc8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 39, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator - +var rd1 = null - a; +>rd1 : Symbol(rd1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 42, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rd2 = null - b; +>rd2 : Symbol(rd2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 43, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rd3 = null - 1; +>rd3 : Symbol(rd3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 44, 3)) + +var rd4 = null - E.a; +>rd4 : Symbol(rd4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 45, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rd5 = a - null; +>rd5 : Symbol(rd5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 46, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rd6 = b - null; +>rd6 : Symbol(rd6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 47, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rd7 = 0 - null; +>rd7 : Symbol(rd7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 48, 3)) + +var rd8 = E.b - null; +>rd8 : Symbol(rd8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 49, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator << +var re1 = null << a; +>re1 : Symbol(re1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 52, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var re2 = null << b; +>re2 : Symbol(re2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 53, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var re3 = null << 1; +>re3 : Symbol(re3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 54, 3)) + +var re4 = null << E.a; +>re4 : Symbol(re4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 55, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var re5 = a << null; +>re5 : Symbol(re5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 56, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var re6 = b << null; +>re6 : Symbol(re6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 57, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var re7 = 0 << null; +>re7 : Symbol(re7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 58, 3)) + +var re8 = E.b << null; +>re8 : Symbol(re8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 59, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator >> +var rf1 = null >> a; +>rf1 : Symbol(rf1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 62, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rf2 = null >> b; +>rf2 : Symbol(rf2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 63, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rf3 = null >> 1; +>rf3 : Symbol(rf3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 64, 3)) + +var rf4 = null >> E.a; +>rf4 : Symbol(rf4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 65, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rf5 = a >> null; +>rf5 : Symbol(rf5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 66, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rf6 = b >> null; +>rf6 : Symbol(rf6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 67, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rf7 = 0 >> null; +>rf7 : Symbol(rf7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 68, 3)) + +var rf8 = E.b >> null; +>rf8 : Symbol(rf8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 69, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator >>> +var rg1 = null >>> a; +>rg1 : Symbol(rg1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 72, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rg2 = null >>> b; +>rg2 : Symbol(rg2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 73, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rg3 = null >>> 1; +>rg3 : Symbol(rg3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 74, 3)) + +var rg4 = null >>> E.a; +>rg4 : Symbol(rg4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 75, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rg5 = a >>> null; +>rg5 : Symbol(rg5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 76, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rg6 = b >>> null; +>rg6 : Symbol(rg6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 77, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rg7 = 0 >>> null; +>rg7 : Symbol(rg7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 78, 3)) + +var rg8 = E.b >>> null; +>rg8 : Symbol(rg8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 79, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator & +var rh1 = null & a; +>rh1 : Symbol(rh1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 82, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rh2 = null & b; +>rh2 : Symbol(rh2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 83, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rh3 = null & 1; +>rh3 : Symbol(rh3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 84, 3)) + +var rh4 = null & E.a; +>rh4 : Symbol(rh4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 85, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rh5 = a & null; +>rh5 : Symbol(rh5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 86, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rh6 = b & null; +>rh6 : Symbol(rh6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 87, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rh7 = 0 & null; +>rh7 : Symbol(rh7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 88, 3)) + +var rh8 = E.b & null; +>rh8 : Symbol(rh8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 89, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator ^ +var ri1 = null ^ a; +>ri1 : Symbol(ri1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 92, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var ri2 = null ^ b; +>ri2 : Symbol(ri2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 93, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var ri3 = null ^ 1; +>ri3 : Symbol(ri3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 94, 3)) + +var ri4 = null ^ E.a; +>ri4 : Symbol(ri4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 95, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var ri5 = a ^ null; +>ri5 : Symbol(ri5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 96, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var ri6 = b ^ null; +>ri6 : Symbol(ri6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 97, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var ri7 = 0 ^ null; +>ri7 : Symbol(ri7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 98, 3)) + +var ri8 = E.b ^ null; +>ri8 : Symbol(ri8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 99, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + +// operator | +var rj1 = null | a; +>rj1 : Symbol(rj1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 102, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rj2 = null | b; +>rj2 : Symbol(rj2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 103, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rj3 = null | 1; +>rj3 : Symbol(rj3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 104, 3)) + +var rj4 = null | E.a; +>rj4 : Symbol(rj4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 105, 3)) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) + +var rj5 = a | null; +>rj5 : Symbol(rj5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 106, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) + +var rj6 = b | null; +>rj6 : Symbol(rj6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 107, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) + +var rj7 = 0 | null; +>rj7 : Symbol(rj7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 108, 3)) + +var rj8 = E.b | null; +>rj8 : Symbol(rj8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 109, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) + diff --git a/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.types b/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.types index 120b7427453a4..521fb4d731344 100644 --- a/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.types +++ b/tests/baselines/reference/arithmeticOperatorWithNullValueAndValidOperands.types @@ -3,548 +3,548 @@ // other operand. enum E { ->E : E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) +>E : E a, ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>a : E b ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>b : E } var a: any; ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number // operator * var ra1 = null * a; ->ra1 : number, Symbol(ra1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 12, 3)) +>ra1 : number >null * a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var ra2 = null * b; ->ra2 : number, Symbol(ra2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 13, 3)) +>ra2 : number >null * b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var ra3 = null * 1; ->ra3 : number, Symbol(ra3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 14, 3)) +>ra3 : number >null * 1 : number >null : null >1 : number var ra4 = null * E.a; ->ra4 : number, Symbol(ra4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 15, 3)) +>ra4 : number >null * E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var ra5 = a * null; ->ra5 : number, Symbol(ra5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 16, 3)) +>ra5 : number >a * null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var ra6 = b * null; ->ra6 : number, Symbol(ra6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 17, 3)) +>ra6 : number >b * null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var ra7 = 0 * null; ->ra7 : number, Symbol(ra7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 18, 3)) +>ra7 : number >0 * null : number >0 : number >null : null var ra8 = E.b * null; ->ra8 : number, Symbol(ra8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 19, 3)) +>ra8 : number >E.b * null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator / var rb1 = null / a; ->rb1 : number, Symbol(rb1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 22, 3)) +>rb1 : number >null / a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rb2 = null / b; ->rb2 : number, Symbol(rb2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 23, 3)) +>rb2 : number >null / b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rb3 = null / 1; ->rb3 : number, Symbol(rb3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 24, 3)) +>rb3 : number >null / 1 : number >null : null >1 : number var rb4 = null / E.a; ->rb4 : number, Symbol(rb4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 25, 3)) +>rb4 : number >null / E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rb5 = a / null; ->rb5 : number, Symbol(rb5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 26, 3)) +>rb5 : number >a / null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rb6 = b / null; ->rb6 : number, Symbol(rb6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 27, 3)) +>rb6 : number >b / null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rb7 = 0 / null; ->rb7 : number, Symbol(rb7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 28, 3)) +>rb7 : number >0 / null : number >0 : number >null : null var rb8 = E.b / null; ->rb8 : number, Symbol(rb8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 29, 3)) +>rb8 : number >E.b / null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator % var rc1 = null % a; ->rc1 : number, Symbol(rc1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 32, 3)) +>rc1 : number >null % a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rc2 = null % b; ->rc2 : number, Symbol(rc2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 33, 3)) +>rc2 : number >null % b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rc3 = null % 1; ->rc3 : number, Symbol(rc3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 34, 3)) +>rc3 : number >null % 1 : number >null : null >1 : number var rc4 = null % E.a; ->rc4 : number, Symbol(rc4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 35, 3)) +>rc4 : number >null % E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rc5 = a % null; ->rc5 : number, Symbol(rc5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 36, 3)) +>rc5 : number >a % null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rc6 = b % null; ->rc6 : number, Symbol(rc6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 37, 3)) +>rc6 : number >b % null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rc7 = 0 % null; ->rc7 : number, Symbol(rc7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 38, 3)) +>rc7 : number >0 % null : number >0 : number >null : null var rc8 = E.b % null; ->rc8 : number, Symbol(rc8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 39, 3)) +>rc8 : number >E.b % null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator - var rd1 = null - a; ->rd1 : number, Symbol(rd1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 42, 3)) +>rd1 : number >null - a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rd2 = null - b; ->rd2 : number, Symbol(rd2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 43, 3)) +>rd2 : number >null - b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rd3 = null - 1; ->rd3 : number, Symbol(rd3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 44, 3)) +>rd3 : number >null - 1 : number >null : null >1 : number var rd4 = null - E.a; ->rd4 : number, Symbol(rd4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 45, 3)) +>rd4 : number >null - E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rd5 = a - null; ->rd5 : number, Symbol(rd5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 46, 3)) +>rd5 : number >a - null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rd6 = b - null; ->rd6 : number, Symbol(rd6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 47, 3)) +>rd6 : number >b - null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rd7 = 0 - null; ->rd7 : number, Symbol(rd7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 48, 3)) +>rd7 : number >0 - null : number >0 : number >null : null var rd8 = E.b - null; ->rd8 : number, Symbol(rd8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 49, 3)) +>rd8 : number >E.b - null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator << var re1 = null << a; ->re1 : number, Symbol(re1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 52, 3)) +>re1 : number >null << a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var re2 = null << b; ->re2 : number, Symbol(re2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 53, 3)) +>re2 : number >null << b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var re3 = null << 1; ->re3 : number, Symbol(re3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 54, 3)) +>re3 : number >null << 1 : number >null : null >1 : number var re4 = null << E.a; ->re4 : number, Symbol(re4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 55, 3)) +>re4 : number >null << E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var re5 = a << null; ->re5 : number, Symbol(re5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 56, 3)) +>re5 : number >a << null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var re6 = b << null; ->re6 : number, Symbol(re6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 57, 3)) +>re6 : number >b << null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var re7 = 0 << null; ->re7 : number, Symbol(re7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 58, 3)) +>re7 : number >0 << null : number >0 : number >null : null var re8 = E.b << null; ->re8 : number, Symbol(re8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 59, 3)) +>re8 : number >E.b << null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator >> var rf1 = null >> a; ->rf1 : number, Symbol(rf1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 62, 3)) +>rf1 : number >null >> a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rf2 = null >> b; ->rf2 : number, Symbol(rf2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 63, 3)) +>rf2 : number >null >> b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rf3 = null >> 1; ->rf3 : number, Symbol(rf3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 64, 3)) +>rf3 : number >null >> 1 : number >null : null >1 : number var rf4 = null >> E.a; ->rf4 : number, Symbol(rf4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 65, 3)) +>rf4 : number >null >> E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rf5 = a >> null; ->rf5 : number, Symbol(rf5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 66, 3)) +>rf5 : number >a >> null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rf6 = b >> null; ->rf6 : number, Symbol(rf6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 67, 3)) +>rf6 : number >b >> null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rf7 = 0 >> null; ->rf7 : number, Symbol(rf7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 68, 3)) +>rf7 : number >0 >> null : number >0 : number >null : null var rf8 = E.b >> null; ->rf8 : number, Symbol(rf8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 69, 3)) +>rf8 : number >E.b >> null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator >>> var rg1 = null >>> a; ->rg1 : number, Symbol(rg1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 72, 3)) +>rg1 : number >null >>> a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rg2 = null >>> b; ->rg2 : number, Symbol(rg2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 73, 3)) +>rg2 : number >null >>> b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rg3 = null >>> 1; ->rg3 : number, Symbol(rg3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 74, 3)) +>rg3 : number >null >>> 1 : number >null : null >1 : number var rg4 = null >>> E.a; ->rg4 : number, Symbol(rg4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 75, 3)) +>rg4 : number >null >>> E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rg5 = a >>> null; ->rg5 : number, Symbol(rg5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 76, 3)) +>rg5 : number >a >>> null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rg6 = b >>> null; ->rg6 : number, Symbol(rg6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 77, 3)) +>rg6 : number >b >>> null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rg7 = 0 >>> null; ->rg7 : number, Symbol(rg7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 78, 3)) +>rg7 : number >0 >>> null : number >0 : number >null : null var rg8 = E.b >>> null; ->rg8 : number, Symbol(rg8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 79, 3)) +>rg8 : number >E.b >>> null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator & var rh1 = null & a; ->rh1 : number, Symbol(rh1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 82, 3)) +>rh1 : number >null & a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rh2 = null & b; ->rh2 : number, Symbol(rh2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 83, 3)) +>rh2 : number >null & b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rh3 = null & 1; ->rh3 : number, Symbol(rh3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 84, 3)) +>rh3 : number >null & 1 : number >null : null >1 : number var rh4 = null & E.a; ->rh4 : number, Symbol(rh4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 85, 3)) +>rh4 : number >null & E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rh5 = a & null; ->rh5 : number, Symbol(rh5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 86, 3)) +>rh5 : number >a & null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rh6 = b & null; ->rh6 : number, Symbol(rh6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 87, 3)) +>rh6 : number >b & null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rh7 = 0 & null; ->rh7 : number, Symbol(rh7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 88, 3)) +>rh7 : number >0 & null : number >0 : number >null : null var rh8 = E.b & null; ->rh8 : number, Symbol(rh8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 89, 3)) +>rh8 : number >E.b & null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator ^ var ri1 = null ^ a; ->ri1 : number, Symbol(ri1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 92, 3)) +>ri1 : number >null ^ a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var ri2 = null ^ b; ->ri2 : number, Symbol(ri2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 93, 3)) +>ri2 : number >null ^ b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var ri3 = null ^ 1; ->ri3 : number, Symbol(ri3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 94, 3)) +>ri3 : number >null ^ 1 : number >null : null >1 : number var ri4 = null ^ E.a; ->ri4 : number, Symbol(ri4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 95, 3)) +>ri4 : number >null ^ E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var ri5 = a ^ null; ->ri5 : number, Symbol(ri5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 96, 3)) +>ri5 : number >a ^ null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var ri6 = b ^ null; ->ri6 : number, Symbol(ri6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 97, 3)) +>ri6 : number >b ^ null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var ri7 = 0 ^ null; ->ri7 : number, Symbol(ri7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 98, 3)) +>ri7 : number >0 ^ null : number >0 : number >null : null var ri8 = E.b ^ null; ->ri8 : number, Symbol(ri8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 99, 3)) +>ri8 : number >E.b ^ null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null // operator | var rj1 = null | a; ->rj1 : number, Symbol(rj1, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 102, 3)) +>rj1 : number >null | a : number >null : null ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any var rj2 = null | b; ->rj2 : number, Symbol(rj2, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 103, 3)) +>rj2 : number >null | b : number >null : null ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number var rj3 = null | 1; ->rj3 : number, Symbol(rj3, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 104, 3)) +>rj3 : number >null | 1 : number >null : null >1 : number var rj4 = null | E.a; ->rj4 : number, Symbol(rj4, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 105, 3)) +>rj4 : number >null | E.a : number >null : null ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 3, 8)) +>E.a : E +>E : typeof E +>a : E var rj5 = a | null; ->rj5 : number, Symbol(rj5, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 106, 3)) +>rj5 : number >a | null : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 8, 3)) +>a : any >null : null var rj6 = b | null; ->rj6 : number, Symbol(rj6, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 107, 3)) +>rj6 : number >b | null : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 9, 3)) +>b : number >null : null var rj7 = 0 | null; ->rj7 : number, Symbol(rj7, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 108, 3)) +>rj7 : number >0 | null : number >0 : number >null : null var rj8 = E.b | null; ->rj8 : number, Symbol(rj8, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 109, 3)) +>rj8 : number >E.b | null : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithNullValueAndValidOperands.ts, 4, 6)) +>E.b : E +>E : typeof E +>b : E >null : null diff --git a/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.symbols b/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.symbols new file mode 100644 index 0000000000000..5ba1d7f972881 --- /dev/null +++ b/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.symbols @@ -0,0 +1,450 @@ +=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithUndefinedValueAndValidOperands.ts === +// If one operand is the undefined or undefined value, it is treated as having the type of the +// other operand. + +enum E { +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) + + a, +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + + b +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +} + +var a: any; +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var b: number; +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +// operator * +var ra1 = undefined * a; +>ra1 : Symbol(ra1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 12, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var ra2 = undefined * b; +>ra2 : Symbol(ra2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 13, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var ra3 = undefined * 1; +>ra3 : Symbol(ra3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 14, 3)) +>undefined : Symbol(undefined) + +var ra4 = undefined * E.a; +>ra4 : Symbol(ra4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 15, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var ra5 = a * undefined; +>ra5 : Symbol(ra5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 16, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var ra6 = b * undefined; +>ra6 : Symbol(ra6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 17, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var ra7 = 0 * undefined; +>ra7 : Symbol(ra7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 18, 3)) +>undefined : Symbol(undefined) + +var ra8 = E.b * undefined; +>ra8 : Symbol(ra8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 19, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator / +var rb1 = undefined / a; +>rb1 : Symbol(rb1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 22, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rb2 = undefined / b; +>rb2 : Symbol(rb2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 23, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rb3 = undefined / 1; +>rb3 : Symbol(rb3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 24, 3)) +>undefined : Symbol(undefined) + +var rb4 = undefined / E.a; +>rb4 : Symbol(rb4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 25, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rb5 = a / undefined; +>rb5 : Symbol(rb5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 26, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rb6 = b / undefined; +>rb6 : Symbol(rb6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 27, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rb7 = 0 / undefined; +>rb7 : Symbol(rb7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 28, 3)) +>undefined : Symbol(undefined) + +var rb8 = E.b / undefined; +>rb8 : Symbol(rb8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 29, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator % +var rc1 = undefined % a; +>rc1 : Symbol(rc1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 32, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rc2 = undefined % b; +>rc2 : Symbol(rc2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 33, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rc3 = undefined % 1; +>rc3 : Symbol(rc3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 34, 3)) +>undefined : Symbol(undefined) + +var rc4 = undefined % E.a; +>rc4 : Symbol(rc4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 35, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rc5 = a % undefined; +>rc5 : Symbol(rc5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 36, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rc6 = b % undefined; +>rc6 : Symbol(rc6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 37, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rc7 = 0 % undefined; +>rc7 : Symbol(rc7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 38, 3)) +>undefined : Symbol(undefined) + +var rc8 = E.b % undefined; +>rc8 : Symbol(rc8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 39, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator - +var rd1 = undefined - a; +>rd1 : Symbol(rd1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 42, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rd2 = undefined - b; +>rd2 : Symbol(rd2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 43, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rd3 = undefined - 1; +>rd3 : Symbol(rd3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 44, 3)) +>undefined : Symbol(undefined) + +var rd4 = undefined - E.a; +>rd4 : Symbol(rd4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 45, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rd5 = a - undefined; +>rd5 : Symbol(rd5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 46, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rd6 = b - undefined; +>rd6 : Symbol(rd6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 47, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rd7 = 0 - undefined; +>rd7 : Symbol(rd7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 48, 3)) +>undefined : Symbol(undefined) + +var rd8 = E.b - undefined; +>rd8 : Symbol(rd8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 49, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator << +var re1 = undefined << a; +>re1 : Symbol(re1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 52, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var re2 = undefined << b; +>re2 : Symbol(re2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 53, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var re3 = undefined << 1; +>re3 : Symbol(re3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 54, 3)) +>undefined : Symbol(undefined) + +var re4 = undefined << E.a; +>re4 : Symbol(re4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 55, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var re5 = a << undefined; +>re5 : Symbol(re5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 56, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var re6 = b << undefined; +>re6 : Symbol(re6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 57, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var re7 = 0 << undefined; +>re7 : Symbol(re7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 58, 3)) +>undefined : Symbol(undefined) + +var re8 = E.b << undefined; +>re8 : Symbol(re8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 59, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator >> +var rf1 = undefined >> a; +>rf1 : Symbol(rf1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 62, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rf2 = undefined >> b; +>rf2 : Symbol(rf2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 63, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rf3 = undefined >> 1; +>rf3 : Symbol(rf3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 64, 3)) +>undefined : Symbol(undefined) + +var rf4 = undefined >> E.a; +>rf4 : Symbol(rf4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 65, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rf5 = a >> undefined; +>rf5 : Symbol(rf5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 66, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rf6 = b >> undefined; +>rf6 : Symbol(rf6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 67, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rf7 = 0 >> undefined; +>rf7 : Symbol(rf7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 68, 3)) +>undefined : Symbol(undefined) + +var rf8 = E.b >> undefined; +>rf8 : Symbol(rf8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 69, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator >>> +var rg1 = undefined >>> a; +>rg1 : Symbol(rg1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 72, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rg2 = undefined >>> b; +>rg2 : Symbol(rg2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 73, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rg3 = undefined >>> 1; +>rg3 : Symbol(rg3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 74, 3)) +>undefined : Symbol(undefined) + +var rg4 = undefined >>> E.a; +>rg4 : Symbol(rg4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 75, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rg5 = a >>> undefined; +>rg5 : Symbol(rg5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 76, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rg6 = b >>> undefined; +>rg6 : Symbol(rg6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 77, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rg7 = 0 >>> undefined; +>rg7 : Symbol(rg7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 78, 3)) +>undefined : Symbol(undefined) + +var rg8 = E.b >>> undefined; +>rg8 : Symbol(rg8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 79, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator & +var rh1 = undefined & a; +>rh1 : Symbol(rh1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 82, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rh2 = undefined & b; +>rh2 : Symbol(rh2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 83, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rh3 = undefined & 1; +>rh3 : Symbol(rh3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 84, 3)) +>undefined : Symbol(undefined) + +var rh4 = undefined & E.a; +>rh4 : Symbol(rh4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 85, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rh5 = a & undefined; +>rh5 : Symbol(rh5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 86, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rh6 = b & undefined; +>rh6 : Symbol(rh6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 87, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rh7 = 0 & undefined; +>rh7 : Symbol(rh7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 88, 3)) +>undefined : Symbol(undefined) + +var rh8 = E.b & undefined; +>rh8 : Symbol(rh8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 89, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator ^ +var ri1 = undefined ^ a; +>ri1 : Symbol(ri1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 92, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var ri2 = undefined ^ b; +>ri2 : Symbol(ri2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 93, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var ri3 = undefined ^ 1; +>ri3 : Symbol(ri3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 94, 3)) +>undefined : Symbol(undefined) + +var ri4 = undefined ^ E.a; +>ri4 : Symbol(ri4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 95, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var ri5 = a ^ undefined; +>ri5 : Symbol(ri5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 96, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var ri6 = b ^ undefined; +>ri6 : Symbol(ri6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 97, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var ri7 = 0 ^ undefined; +>ri7 : Symbol(ri7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 98, 3)) +>undefined : Symbol(undefined) + +var ri8 = E.b ^ undefined; +>ri8 : Symbol(ri8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 99, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + +// operator | +var rj1 = undefined | a; +>rj1 : Symbol(rj1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 102, 3)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) + +var rj2 = undefined | b; +>rj2 : Symbol(rj2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 103, 3)) +>undefined : Symbol(undefined) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) + +var rj3 = undefined | 1; +>rj3 : Symbol(rj3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 104, 3)) +>undefined : Symbol(undefined) + +var rj4 = undefined | E.a; +>rj4 : Symbol(rj4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 105, 3)) +>undefined : Symbol(undefined) +>E.a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>a : Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) + +var rj5 = a | undefined; +>rj5 : Symbol(rj5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 106, 3)) +>a : Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rj6 = b | undefined; +>rj6 : Symbol(rj6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 107, 3)) +>b : Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rj7 = 0 | undefined; +>rj7 : Symbol(rj7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 108, 3)) +>undefined : Symbol(undefined) + +var rj8 = E.b | undefined; +>rj8 : Symbol(rj8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 109, 3)) +>E.b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>E : Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>b : Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.types b/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.types index 9dc36bd1d9b8f..77dbe1c14418c 100644 --- a/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.types +++ b/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.types @@ -3,548 +3,548 @@ // other operand. enum E { ->E : E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) +>E : E a, ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>a : E b ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) +>b : E } var a: any; ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>b : number // operator * var ra1 = undefined * a; ->ra1 : number, Symbol(ra1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 12, 3)) +>ra1 : number >undefined * a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var ra2 = undefined * b; ->ra2 : number, Symbol(ra2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 13, 3)) +>ra2 : number >undefined * b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var ra3 = undefined * 1; ->ra3 : number, Symbol(ra3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 14, 3)) +>ra3 : number >undefined * 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var ra4 = undefined * E.a; ->ra4 : number, Symbol(ra4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 15, 3)) +>ra4 : number >undefined * E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var ra5 = a * undefined; ->ra5 : number, Symbol(ra5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 16, 3)) +>ra5 : number >a * undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var ra6 = b * undefined; ->ra6 : number, Symbol(ra6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 17, 3)) +>ra6 : number >b * undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var ra7 = 0 * undefined; ->ra7 : number, Symbol(ra7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 18, 3)) +>ra7 : number >0 * undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var ra8 = E.b * undefined; ->ra8 : number, Symbol(ra8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 19, 3)) +>ra8 : number >E.b * undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator / var rb1 = undefined / a; ->rb1 : number, Symbol(rb1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 22, 3)) +>rb1 : number >undefined / a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rb2 = undefined / b; ->rb2 : number, Symbol(rb2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 23, 3)) +>rb2 : number >undefined / b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rb3 = undefined / 1; ->rb3 : number, Symbol(rb3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 24, 3)) +>rb3 : number >undefined / 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rb4 = undefined / E.a; ->rb4 : number, Symbol(rb4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 25, 3)) +>rb4 : number >undefined / E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rb5 = a / undefined; ->rb5 : number, Symbol(rb5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 26, 3)) +>rb5 : number >a / undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rb6 = b / undefined; ->rb6 : number, Symbol(rb6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 27, 3)) +>rb6 : number >b / undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rb7 = 0 / undefined; ->rb7 : number, Symbol(rb7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 28, 3)) +>rb7 : number >0 / undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rb8 = E.b / undefined; ->rb8 : number, Symbol(rb8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 29, 3)) +>rb8 : number >E.b / undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator % var rc1 = undefined % a; ->rc1 : number, Symbol(rc1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 32, 3)) +>rc1 : number >undefined % a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rc2 = undefined % b; ->rc2 : number, Symbol(rc2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 33, 3)) +>rc2 : number >undefined % b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rc3 = undefined % 1; ->rc3 : number, Symbol(rc3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 34, 3)) +>rc3 : number >undefined % 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rc4 = undefined % E.a; ->rc4 : number, Symbol(rc4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 35, 3)) +>rc4 : number >undefined % E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rc5 = a % undefined; ->rc5 : number, Symbol(rc5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 36, 3)) +>rc5 : number >a % undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rc6 = b % undefined; ->rc6 : number, Symbol(rc6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 37, 3)) +>rc6 : number >b % undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rc7 = 0 % undefined; ->rc7 : number, Symbol(rc7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 38, 3)) +>rc7 : number >0 % undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rc8 = E.b % undefined; ->rc8 : number, Symbol(rc8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 39, 3)) +>rc8 : number >E.b % undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator - var rd1 = undefined - a; ->rd1 : number, Symbol(rd1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 42, 3)) +>rd1 : number >undefined - a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rd2 = undefined - b; ->rd2 : number, Symbol(rd2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 43, 3)) +>rd2 : number >undefined - b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rd3 = undefined - 1; ->rd3 : number, Symbol(rd3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 44, 3)) +>rd3 : number >undefined - 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rd4 = undefined - E.a; ->rd4 : number, Symbol(rd4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 45, 3)) +>rd4 : number >undefined - E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rd5 = a - undefined; ->rd5 : number, Symbol(rd5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 46, 3)) +>rd5 : number >a - undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rd6 = b - undefined; ->rd6 : number, Symbol(rd6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 47, 3)) +>rd6 : number >b - undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rd7 = 0 - undefined; ->rd7 : number, Symbol(rd7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 48, 3)) +>rd7 : number >0 - undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rd8 = E.b - undefined; ->rd8 : number, Symbol(rd8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 49, 3)) +>rd8 : number >E.b - undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator << var re1 = undefined << a; ->re1 : number, Symbol(re1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 52, 3)) +>re1 : number >undefined << a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var re2 = undefined << b; ->re2 : number, Symbol(re2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 53, 3)) +>re2 : number >undefined << b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var re3 = undefined << 1; ->re3 : number, Symbol(re3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 54, 3)) +>re3 : number >undefined << 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var re4 = undefined << E.a; ->re4 : number, Symbol(re4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 55, 3)) +>re4 : number >undefined << E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var re5 = a << undefined; ->re5 : number, Symbol(re5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 56, 3)) +>re5 : number >a << undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var re6 = b << undefined; ->re6 : number, Symbol(re6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 57, 3)) +>re6 : number >b << undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var re7 = 0 << undefined; ->re7 : number, Symbol(re7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 58, 3)) +>re7 : number >0 << undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var re8 = E.b << undefined; ->re8 : number, Symbol(re8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 59, 3)) +>re8 : number >E.b << undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator >> var rf1 = undefined >> a; ->rf1 : number, Symbol(rf1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 62, 3)) +>rf1 : number >undefined >> a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rf2 = undefined >> b; ->rf2 : number, Symbol(rf2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 63, 3)) +>rf2 : number >undefined >> b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rf3 = undefined >> 1; ->rf3 : number, Symbol(rf3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 64, 3)) +>rf3 : number >undefined >> 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rf4 = undefined >> E.a; ->rf4 : number, Symbol(rf4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 65, 3)) +>rf4 : number >undefined >> E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rf5 = a >> undefined; ->rf5 : number, Symbol(rf5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 66, 3)) +>rf5 : number >a >> undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rf6 = b >> undefined; ->rf6 : number, Symbol(rf6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 67, 3)) +>rf6 : number >b >> undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rf7 = 0 >> undefined; ->rf7 : number, Symbol(rf7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 68, 3)) +>rf7 : number >0 >> undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rf8 = E.b >> undefined; ->rf8 : number, Symbol(rf8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 69, 3)) +>rf8 : number >E.b >> undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator >>> var rg1 = undefined >>> a; ->rg1 : number, Symbol(rg1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 72, 3)) +>rg1 : number >undefined >>> a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rg2 = undefined >>> b; ->rg2 : number, Symbol(rg2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 73, 3)) +>rg2 : number >undefined >>> b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rg3 = undefined >>> 1; ->rg3 : number, Symbol(rg3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 74, 3)) +>rg3 : number >undefined >>> 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rg4 = undefined >>> E.a; ->rg4 : number, Symbol(rg4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 75, 3)) +>rg4 : number >undefined >>> E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rg5 = a >>> undefined; ->rg5 : number, Symbol(rg5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 76, 3)) +>rg5 : number >a >>> undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rg6 = b >>> undefined; ->rg6 : number, Symbol(rg6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 77, 3)) +>rg6 : number >b >>> undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rg7 = 0 >>> undefined; ->rg7 : number, Symbol(rg7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 78, 3)) +>rg7 : number >0 >>> undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rg8 = E.b >>> undefined; ->rg8 : number, Symbol(rg8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 79, 3)) +>rg8 : number >E.b >>> undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator & var rh1 = undefined & a; ->rh1 : number, Symbol(rh1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 82, 3)) +>rh1 : number >undefined & a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rh2 = undefined & b; ->rh2 : number, Symbol(rh2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 83, 3)) +>rh2 : number >undefined & b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rh3 = undefined & 1; ->rh3 : number, Symbol(rh3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 84, 3)) +>rh3 : number >undefined & 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rh4 = undefined & E.a; ->rh4 : number, Symbol(rh4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 85, 3)) +>rh4 : number >undefined & E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rh5 = a & undefined; ->rh5 : number, Symbol(rh5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 86, 3)) +>rh5 : number >a & undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rh6 = b & undefined; ->rh6 : number, Symbol(rh6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 87, 3)) +>rh6 : number >b & undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rh7 = 0 & undefined; ->rh7 : number, Symbol(rh7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 88, 3)) +>rh7 : number >0 & undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rh8 = E.b & undefined; ->rh8 : number, Symbol(rh8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 89, 3)) +>rh8 : number >E.b & undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator ^ var ri1 = undefined ^ a; ->ri1 : number, Symbol(ri1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 92, 3)) +>ri1 : number >undefined ^ a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var ri2 = undefined ^ b; ->ri2 : number, Symbol(ri2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 93, 3)) +>ri2 : number >undefined ^ b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var ri3 = undefined ^ 1; ->ri3 : number, Symbol(ri3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 94, 3)) +>ri3 : number >undefined ^ 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var ri4 = undefined ^ E.a; ->ri4 : number, Symbol(ri4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 95, 3)) +>ri4 : number >undefined ^ E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var ri5 = a ^ undefined; ->ri5 : number, Symbol(ri5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 96, 3)) +>ri5 : number >a ^ undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var ri6 = b ^ undefined; ->ri6 : number, Symbol(ri6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 97, 3)) +>ri6 : number >b ^ undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var ri7 = 0 ^ undefined; ->ri7 : number, Symbol(ri7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 98, 3)) +>ri7 : number >0 ^ undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var ri8 = E.b ^ undefined; ->ri8 : number, Symbol(ri8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 99, 3)) +>ri8 : number >E.b ^ undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined // operator | var rj1 = undefined | a; ->rj1 : number, Symbol(rj1, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 102, 3)) +>rj1 : number >undefined | a : number ->undefined : undefined, Symbol(undefined) ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) +>undefined : undefined +>a : any var rj2 = undefined | b; ->rj2 : number, Symbol(rj2, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 103, 3)) +>rj2 : number >undefined | b : number ->undefined : undefined, Symbol(undefined) ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) +>undefined : undefined +>b : number var rj3 = undefined | 1; ->rj3 : number, Symbol(rj3, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 104, 3)) +>rj3 : number >undefined | 1 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >1 : number var rj4 = undefined | E.a; ->rj4 : number, Symbol(rj4, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 105, 3)) +>rj4 : number >undefined | E.a : number ->undefined : undefined, Symbol(undefined) ->E.a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 3, 8)) +>undefined : undefined +>E.a : E +>E : typeof E +>a : E var rj5 = a | undefined; ->rj5 : number, Symbol(rj5, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 106, 3)) +>rj5 : number >a | undefined : number ->a : any, Symbol(a, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a : any +>undefined : undefined var rj6 = b | undefined; ->rj6 : number, Symbol(rj6, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 107, 3)) +>rj6 : number >b | undefined : number ->b : number, Symbol(b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>b : number +>undefined : undefined var rj7 = 0 | undefined; ->rj7 : number, Symbol(rj7, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 108, 3)) +>rj7 : number >0 | undefined : number >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rj8 = E.b | undefined; ->rj8 : number, Symbol(rj8, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 109, 3)) +>rj8 : number >E.b | undefined : number ->E.b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->E : typeof E, Symbol(E, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 0, 0)) ->b : E, Symbol(E.b, Decl(arithmeticOperatorWithUndefinedValueAndValidOperands.ts, 4, 6)) ->undefined : undefined, Symbol(undefined) +>E.b : E +>E : typeof E +>b : E +>undefined : undefined diff --git a/tests/baselines/reference/arrayAssignmentTest6.symbols b/tests/baselines/reference/arrayAssignmentTest6.symbols new file mode 100644 index 0000000000000..c4d4ba76a5f79 --- /dev/null +++ b/tests/baselines/reference/arrayAssignmentTest6.symbols @@ -0,0 +1,52 @@ +=== tests/cases/compiler/arrayAssignmentTest6.ts === +module Test { +>Test : Symbol(Test, Decl(arrayAssignmentTest6.ts, 0, 0)) + + interface IState { +>IState : Symbol(IState, Decl(arrayAssignmentTest6.ts, 0, 13)) + } + interface IToken { +>IToken : Symbol(IToken, Decl(arrayAssignmentTest6.ts, 2, 5)) + + startIndex: number; +>startIndex : Symbol(startIndex, Decl(arrayAssignmentTest6.ts, 3, 22)) + } + interface ILineTokens { +>ILineTokens : Symbol(ILineTokens, Decl(arrayAssignmentTest6.ts, 5, 5)) + + tokens: IToken[]; +>tokens : Symbol(tokens, Decl(arrayAssignmentTest6.ts, 6, 27)) +>IToken : Symbol(IToken, Decl(arrayAssignmentTest6.ts, 2, 5)) + + endState: IState; +>endState : Symbol(endState, Decl(arrayAssignmentTest6.ts, 7, 25)) +>IState : Symbol(IState, Decl(arrayAssignmentTest6.ts, 0, 13)) + } + interface IMode { +>IMode : Symbol(IMode, Decl(arrayAssignmentTest6.ts, 9, 5)) + + tokenize(line:string, state:IState, includeStates:boolean):ILineTokens; +>tokenize : Symbol(tokenize, Decl(arrayAssignmentTest6.ts, 10, 21)) +>line : Symbol(line, Decl(arrayAssignmentTest6.ts, 11, 17)) +>state : Symbol(state, Decl(arrayAssignmentTest6.ts, 11, 29)) +>IState : Symbol(IState, Decl(arrayAssignmentTest6.ts, 0, 13)) +>includeStates : Symbol(includeStates, Decl(arrayAssignmentTest6.ts, 11, 43)) +>ILineTokens : Symbol(ILineTokens, Decl(arrayAssignmentTest6.ts, 5, 5)) + } + export class Bug implements IMode { +>Bug : Symbol(Bug, Decl(arrayAssignmentTest6.ts, 12, 5)) +>IMode : Symbol(IMode, Decl(arrayAssignmentTest6.ts, 9, 5)) + + public tokenize(line:string, tokens:IToken[], includeStates:boolean):ILineTokens { +>tokenize : Symbol(tokenize, Decl(arrayAssignmentTest6.ts, 13, 39)) +>line : Symbol(line, Decl(arrayAssignmentTest6.ts, 14, 24)) +>tokens : Symbol(tokens, Decl(arrayAssignmentTest6.ts, 14, 36)) +>IToken : Symbol(IToken, Decl(arrayAssignmentTest6.ts, 2, 5)) +>includeStates : Symbol(includeStates, Decl(arrayAssignmentTest6.ts, 14, 53)) +>ILineTokens : Symbol(ILineTokens, Decl(arrayAssignmentTest6.ts, 5, 5)) + + return null; + } + } +} + diff --git a/tests/baselines/reference/arrayAssignmentTest6.types b/tests/baselines/reference/arrayAssignmentTest6.types index b9a486f103b24..411144d44267b 100644 --- a/tests/baselines/reference/arrayAssignmentTest6.types +++ b/tests/baselines/reference/arrayAssignmentTest6.types @@ -1,49 +1,49 @@ === tests/cases/compiler/arrayAssignmentTest6.ts === module Test { ->Test : typeof Test, Symbol(Test, Decl(arrayAssignmentTest6.ts, 0, 0)) +>Test : typeof Test interface IState { ->IState : IState, Symbol(IState, Decl(arrayAssignmentTest6.ts, 0, 13)) +>IState : IState } interface IToken { ->IToken : IToken, Symbol(IToken, Decl(arrayAssignmentTest6.ts, 2, 5)) +>IToken : IToken startIndex: number; ->startIndex : number, Symbol(startIndex, Decl(arrayAssignmentTest6.ts, 3, 22)) +>startIndex : number } interface ILineTokens { ->ILineTokens : ILineTokens, Symbol(ILineTokens, Decl(arrayAssignmentTest6.ts, 5, 5)) +>ILineTokens : ILineTokens tokens: IToken[]; ->tokens : IToken[], Symbol(tokens, Decl(arrayAssignmentTest6.ts, 6, 27)) ->IToken : IToken, Symbol(IToken, Decl(arrayAssignmentTest6.ts, 2, 5)) +>tokens : IToken[] +>IToken : IToken endState: IState; ->endState : IState, Symbol(endState, Decl(arrayAssignmentTest6.ts, 7, 25)) ->IState : IState, Symbol(IState, Decl(arrayAssignmentTest6.ts, 0, 13)) +>endState : IState +>IState : IState } interface IMode { ->IMode : IMode, Symbol(IMode, Decl(arrayAssignmentTest6.ts, 9, 5)) +>IMode : IMode tokenize(line:string, state:IState, includeStates:boolean):ILineTokens; ->tokenize : (line: string, state: IState, includeStates: boolean) => ILineTokens, Symbol(tokenize, Decl(arrayAssignmentTest6.ts, 10, 21)) ->line : string, Symbol(line, Decl(arrayAssignmentTest6.ts, 11, 17)) ->state : IState, Symbol(state, Decl(arrayAssignmentTest6.ts, 11, 29)) ->IState : IState, Symbol(IState, Decl(arrayAssignmentTest6.ts, 0, 13)) ->includeStates : boolean, Symbol(includeStates, Decl(arrayAssignmentTest6.ts, 11, 43)) ->ILineTokens : ILineTokens, Symbol(ILineTokens, Decl(arrayAssignmentTest6.ts, 5, 5)) +>tokenize : (line: string, state: IState, includeStates: boolean) => ILineTokens +>line : string +>state : IState +>IState : IState +>includeStates : boolean +>ILineTokens : ILineTokens } export class Bug implements IMode { ->Bug : Bug, Symbol(Bug, Decl(arrayAssignmentTest6.ts, 12, 5)) ->IMode : IMode, Symbol(IMode, Decl(arrayAssignmentTest6.ts, 9, 5)) +>Bug : Bug +>IMode : IMode public tokenize(line:string, tokens:IToken[], includeStates:boolean):ILineTokens { ->tokenize : (line: string, tokens: IToken[], includeStates: boolean) => ILineTokens, Symbol(tokenize, Decl(arrayAssignmentTest6.ts, 13, 39)) ->line : string, Symbol(line, Decl(arrayAssignmentTest6.ts, 14, 24)) ->tokens : IToken[], Symbol(tokens, Decl(arrayAssignmentTest6.ts, 14, 36)) ->IToken : IToken, Symbol(IToken, Decl(arrayAssignmentTest6.ts, 2, 5)) ->includeStates : boolean, Symbol(includeStates, Decl(arrayAssignmentTest6.ts, 14, 53)) ->ILineTokens : ILineTokens, Symbol(ILineTokens, Decl(arrayAssignmentTest6.ts, 5, 5)) +>tokenize : (line: string, tokens: IToken[], includeStates: boolean) => ILineTokens +>line : string +>tokens : IToken[] +>IToken : IToken +>includeStates : boolean +>ILineTokens : ILineTokens return null; >null : null diff --git a/tests/baselines/reference/arrayAugment.symbols b/tests/baselines/reference/arrayAugment.symbols new file mode 100644 index 0000000000000..8310729032fe8 --- /dev/null +++ b/tests/baselines/reference/arrayAugment.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/arrayAugment.ts === +interface Array { +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(arrayAugment.ts, 0, 0)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(arrayAugment.ts, 0, 16)) + + split: (parts: number) => T[][]; +>split : Symbol(split, Decl(arrayAugment.ts, 0, 20)) +>parts : Symbol(parts, Decl(arrayAugment.ts, 1, 12)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(arrayAugment.ts, 0, 16)) +} + +var x = ['']; +>x : Symbol(x, Decl(arrayAugment.ts, 4, 3)) + +var y = x.split(4); +>y : Symbol(y, Decl(arrayAugment.ts, 5, 3), Decl(arrayAugment.ts, 6, 3)) +>x.split : Symbol(Array.split, Decl(arrayAugment.ts, 0, 20)) +>x : Symbol(x, Decl(arrayAugment.ts, 4, 3)) +>split : Symbol(Array.split, Decl(arrayAugment.ts, 0, 20)) + +var y: string[][]; // Expect no error here +>y : Symbol(y, Decl(arrayAugment.ts, 5, 3), Decl(arrayAugment.ts, 6, 3)) + diff --git a/tests/baselines/reference/arrayAugment.types b/tests/baselines/reference/arrayAugment.types index e784d9cbb523c..042b7265ec849 100644 --- a/tests/baselines/reference/arrayAugment.types +++ b/tests/baselines/reference/arrayAugment.types @@ -1,27 +1,27 @@ === tests/cases/compiler/arrayAugment.ts === interface Array { ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(arrayAugment.ts, 0, 0)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(arrayAugment.ts, 0, 16)) +>Array : T[] +>T : T split: (parts: number) => T[][]; ->split : (parts: number) => T[][], Symbol(split, Decl(arrayAugment.ts, 0, 20)) ->parts : number, Symbol(parts, Decl(arrayAugment.ts, 1, 12)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(arrayAugment.ts, 0, 16)) +>split : (parts: number) => T[][] +>parts : number +>T : T } var x = ['']; ->x : string[], Symbol(x, Decl(arrayAugment.ts, 4, 3)) +>x : string[] >[''] : string[] >'' : string var y = x.split(4); ->y : string[][], Symbol(y, Decl(arrayAugment.ts, 5, 3), Decl(arrayAugment.ts, 6, 3)) +>y : string[][] >x.split(4) : string[][] ->x.split : (parts: number) => string[][], Symbol(Array.split, Decl(arrayAugment.ts, 0, 20)) ->x : string[], Symbol(x, Decl(arrayAugment.ts, 4, 3)) ->split : (parts: number) => string[][], Symbol(Array.split, Decl(arrayAugment.ts, 0, 20)) +>x.split : (parts: number) => string[][] +>x : string[] +>split : (parts: number) => string[][] >4 : number var y: string[][]; // Expect no error here ->y : string[][], Symbol(y, Decl(arrayAugment.ts, 5, 3), Decl(arrayAugment.ts, 6, 3)) +>y : string[][] diff --git a/tests/baselines/reference/arrayBestCommonTypes.symbols b/tests/baselines/reference/arrayBestCommonTypes.symbols new file mode 100644 index 0000000000000..c4b42f66991ab --- /dev/null +++ b/tests/baselines/reference/arrayBestCommonTypes.symbols @@ -0,0 +1,462 @@ +=== tests/cases/compiler/arrayBestCommonTypes.ts === +module EmptyTypes { +>EmptyTypes : Symbol(EmptyTypes, Decl(arrayBestCommonTypes.ts, 0, 0)) + + interface iface { } +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) + + class base implements iface { } +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) + + class base2 implements iface { } +>base2 : Symbol(base2, Decl(arrayBestCommonTypes.ts, 2, 35)) +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) + + class derived extends base { } +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) + + + class f { +>f : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) + + public voidIfAny(x: boolean, y?: boolean): number; +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 8, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 8, 36)) + + public voidIfAny(x: string, y?: boolean): number; +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 9, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 9, 35)) + + public voidIfAny(x: number, y?: boolean): number; +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 10, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 10, 35)) + + public voidIfAny(x: any, y = false): any { return null; } +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 11, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 11, 32)) + + public x() { +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 11, 65)) + + (this.voidIfAny([4, 2][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + (this.voidIfAny([4, 2, undefined][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([undefined, 2, 4][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([null, 2, 4][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + (this.voidIfAny([2, 4, null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + (this.voidIfAny([undefined, 4, null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny(['', "q"][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + (this.voidIfAny(['', "q", undefined][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([undefined, "q", ''][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([null, "q", ''][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + (this.voidIfAny(["q", '', null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + (this.voidIfAny([undefined, '', null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([[3, 4], [null]][0][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) + + + var t1: { x: number; y: base; }[] = [{ x: 7, y: new derived() }, { x: 5, y: new base() }]; +>t1 : Symbol(t1, Decl(arrayBestCommonTypes.ts, 31, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 31, 21)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 31, 32)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 31, 50)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 31, 56)) +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 31, 78)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 31, 84)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) + + var t2: { x: boolean; y: base; }[] = [{ x: true, y: new derived() }, { x: false, y: new base() }]; +>t2 : Symbol(t2, Decl(arrayBestCommonTypes.ts, 32, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 32, 21)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 32, 33)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 32, 51)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 32, 60)) +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 32, 82)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 32, 92)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) + + var t3: { x: string; y: base; }[] = [{ x: undefined, y: new base() }, { x: '', y: new derived() }]; +>t3 : Symbol(t3, Decl(arrayBestCommonTypes.ts, 33, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 33, 21)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 33, 32)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 33, 50)) +>undefined : Symbol(undefined) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 33, 64)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 33, 83)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 33, 90)) +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) + + var anyObj: any = null; +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) + + // Order matters here so test all the variants + var a1 = [{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }]; +>a1 : Symbol(a1, Decl(arrayBestCommonTypes.ts, 37, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 37, 23)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 37, 29)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 37, 41)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 37, 49)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 37, 61)) +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 37, 72)) + + var a2 = [{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }]; +>a2 : Symbol(a2, Decl(arrayBestCommonTypes.ts, 38, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 38, 23)) +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 38, 34)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 38, 46)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 38, 52)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 38, 64)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 38, 72)) + + var a3 = [{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }]; +>a3 : Symbol(a3, Decl(arrayBestCommonTypes.ts, 39, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 39, 23)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 39, 29)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 39, 41)) +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 39, 52)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 39, 64)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 39, 72)) + + var ifaceObj: iface = null; +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) + + var baseObj = new base(); +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) + + var base2Obj = new base2(); +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) +>base2 : Symbol(base2, Decl(arrayBestCommonTypes.ts, 2, 35)) + + var b1 = [baseObj, base2Obj, ifaceObj]; +>b1 : Symbol(b1, Decl(arrayBestCommonTypes.ts, 45, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) + + var b2 = [base2Obj, baseObj, ifaceObj]; +>b2 : Symbol(b2, Decl(arrayBestCommonTypes.ts, 46, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) + + var b3 = [baseObj, ifaceObj, base2Obj]; +>b3 : Symbol(b3, Decl(arrayBestCommonTypes.ts, 47, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) + + var b4 = [ifaceObj, baseObj, base2Obj]; +>b4 : Symbol(b4, Decl(arrayBestCommonTypes.ts, 48, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) + } + } +} + +module NonEmptyTypes { +>NonEmptyTypes : Symbol(NonEmptyTypes, Decl(arrayBestCommonTypes.ts, 51, 1)) + + interface iface { x: string; } +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 54, 21)) + + class base implements iface { x: string; y: string; } +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 55, 33)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 55, 44)) + + class base2 implements iface { x: string; z: string; } +>base2 : Symbol(base2, Decl(arrayBestCommonTypes.ts, 55, 57)) +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 56, 34)) +>z : Symbol(z, Decl(arrayBestCommonTypes.ts, 56, 45)) + + class derived extends base { a: string; } +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>a : Symbol(a, Decl(arrayBestCommonTypes.ts, 57, 32)) + + + class f { +>f : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) + + public voidIfAny(x: boolean, y?: boolean): number; +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 61, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 61, 36)) + + public voidIfAny(x: string, y?: boolean): number; +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 62, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 62, 35)) + + public voidIfAny(x: number, y?: boolean): number; +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 63, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 63, 35)) + + public voidIfAny(x: any, y = false): any { return null; } +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 64, 25)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 64, 32)) + + public x() { +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 64, 65)) + + (this.voidIfAny([4, 2][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + (this.voidIfAny([4, 2, undefined][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([undefined, 2, 4][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([null, 2, 4][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + (this.voidIfAny([2, 4, null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + (this.voidIfAny([undefined, 4, null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny(['', "q"][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + (this.voidIfAny(['', "q", undefined][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([undefined, "q", ''][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([null, "q", ''][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + (this.voidIfAny(["q", '', null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + (this.voidIfAny([undefined, '', null][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>undefined : Symbol(undefined) + + (this.voidIfAny([[3, 4], [null]][0][0])); +>this.voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this : Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>voidIfAny : Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) + + + var t1: { x: number; y: base; }[] = [{ x: 7, y: new derived() }, { x: 5, y: new base() }]; +>t1 : Symbol(t1, Decl(arrayBestCommonTypes.ts, 84, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 84, 21)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 84, 32)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 84, 50)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 84, 56)) +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 84, 78)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 84, 84)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) + + var t2: { x: boolean; y: base; }[] = [{ x: true, y: new derived() }, { x: false, y: new base() }]; +>t2 : Symbol(t2, Decl(arrayBestCommonTypes.ts, 85, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 85, 21)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 85, 33)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 85, 51)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 85, 60)) +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 85, 82)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 85, 92)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) + + var t3: { x: string; y: base; }[] = [{ x: undefined, y: new base() }, { x: '', y: new derived() }]; +>t3 : Symbol(t3, Decl(arrayBestCommonTypes.ts, 86, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 86, 21)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 86, 32)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 86, 50)) +>undefined : Symbol(undefined) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 86, 64)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 86, 83)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 86, 90)) +>derived : Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) + + var anyObj: any = null; +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) + + // Order matters here so test all the variants + var a1 = [{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }]; +>a1 : Symbol(a1, Decl(arrayBestCommonTypes.ts, 90, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 90, 23)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 90, 29)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 90, 41)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 90, 49)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 90, 61)) +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 90, 72)) + + var a2 = [{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }]; +>a2 : Symbol(a2, Decl(arrayBestCommonTypes.ts, 91, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 91, 23)) +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 91, 34)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 91, 46)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 91, 52)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 91, 64)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 91, 72)) + + var a3 = [{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }]; +>a3 : Symbol(a3, Decl(arrayBestCommonTypes.ts, 92, 15)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 92, 23)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 92, 29)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 92, 41)) +>anyObj : Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 92, 52)) +>x : Symbol(x, Decl(arrayBestCommonTypes.ts, 92, 64)) +>y : Symbol(y, Decl(arrayBestCommonTypes.ts, 92, 72)) + + var ifaceObj: iface = null; +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) +>iface : Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) + + var baseObj = new base(); +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) +>base : Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) + + var base2Obj = new base2(); +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) +>base2 : Symbol(base2, Decl(arrayBestCommonTypes.ts, 55, 57)) + + var b1 = [baseObj, base2Obj, ifaceObj]; +>b1 : Symbol(b1, Decl(arrayBestCommonTypes.ts, 98, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) + + var b2 = [base2Obj, baseObj, ifaceObj]; +>b2 : Symbol(b2, Decl(arrayBestCommonTypes.ts, 99, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) + + var b3 = [baseObj, ifaceObj, base2Obj]; +>b3 : Symbol(b3, Decl(arrayBestCommonTypes.ts, 100, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) + + var b4 = [ifaceObj, baseObj, base2Obj]; +>b4 : Symbol(b4, Decl(arrayBestCommonTypes.ts, 101, 15)) +>ifaceObj : Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) +>baseObj : Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) +>base2Obj : Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) + } + } +} + + diff --git a/tests/baselines/reference/arrayBestCommonTypes.types b/tests/baselines/reference/arrayBestCommonTypes.types index 66cf874850e38..5650efc9ae77d 100644 --- a/tests/baselines/reference/arrayBestCommonTypes.types +++ b/tests/baselines/reference/arrayBestCommonTypes.types @@ -1,58 +1,58 @@ === tests/cases/compiler/arrayBestCommonTypes.ts === module EmptyTypes { ->EmptyTypes : typeof EmptyTypes, Symbol(EmptyTypes, Decl(arrayBestCommonTypes.ts, 0, 0)) +>EmptyTypes : typeof EmptyTypes interface iface { } ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) +>iface : iface class base implements iface { } ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) +>base : base +>iface : iface class base2 implements iface { } ->base2 : base2, Symbol(base2, Decl(arrayBestCommonTypes.ts, 2, 35)) ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) +>base2 : base2 +>iface : iface class derived extends base { } ->derived : derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>derived : derived +>base : base class f { ->f : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) +>f : f public voidIfAny(x: boolean, y?: boolean): number; ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 8, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 8, 36)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : boolean +>y : boolean public voidIfAny(x: string, y?: boolean): number; ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 9, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 9, 35)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : string +>y : boolean public voidIfAny(x: number, y?: boolean): number; ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 10, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 10, 35)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : number +>y : boolean public voidIfAny(x: any, y = false): any { return null; } ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 11, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 11, 32)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : any +>y : boolean >false : boolean >null : null public x() { ->x : () => void, Symbol(x, Decl(arrayBestCommonTypes.ts, 11, 65)) +>x : () => void (this.voidIfAny([4, 2][0])); >(this.voidIfAny([4, 2][0])) : number >(this.voidIfAny([4, 2][0])) : number >this.voidIfAny([4, 2][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[4, 2][0] : number >[4, 2] : number[] >4 : number @@ -63,26 +63,26 @@ module EmptyTypes { >(this.voidIfAny([4, 2, undefined][0])) : number >(this.voidIfAny([4, 2, undefined][0])) : number >this.voidIfAny([4, 2, undefined][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[4, 2, undefined][0] : number >[4, 2, undefined] : number[] >4 : number >2 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >0 : number (this.voidIfAny([undefined, 2, 4][0])); >(this.voidIfAny([undefined, 2, 4][0])) : number >(this.voidIfAny([undefined, 2, 4][0])) : number >this.voidIfAny([undefined, 2, 4][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, 2, 4][0] : number >[undefined, 2, 4] : number[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >2 : number >4 : number >0 : number @@ -91,9 +91,9 @@ module EmptyTypes { >(this.voidIfAny([null, 2, 4][0])) : number >(this.voidIfAny([null, 2, 4][0])) : number >this.voidIfAny([null, 2, 4][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[null, 2, 4][0] : number >[null, 2, 4] : number[] >null : null @@ -105,9 +105,9 @@ module EmptyTypes { >(this.voidIfAny([2, 4, null][0])) : number >(this.voidIfAny([2, 4, null][0])) : number >this.voidIfAny([2, 4, null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[2, 4, null][0] : number >[2, 4, null] : number[] >2 : number @@ -119,12 +119,12 @@ module EmptyTypes { >(this.voidIfAny([undefined, 4, null][0])) : number >(this.voidIfAny([undefined, 4, null][0])) : number >this.voidIfAny([undefined, 4, null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, 4, null][0] : number >[undefined, 4, null] : number[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >4 : number >null : null >0 : number @@ -133,9 +133,9 @@ module EmptyTypes { >(this.voidIfAny(['', "q"][0])) : number >(this.voidIfAny(['', "q"][0])) : number >this.voidIfAny(['', "q"][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >['', "q"][0] : string >['', "q"] : string[] >'' : string @@ -146,26 +146,26 @@ module EmptyTypes { >(this.voidIfAny(['', "q", undefined][0])) : number >(this.voidIfAny(['', "q", undefined][0])) : number >this.voidIfAny(['', "q", undefined][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >['', "q", undefined][0] : string >['', "q", undefined] : string[] >'' : string >"q" : string ->undefined : undefined, Symbol(undefined) +>undefined : undefined >0 : number (this.voidIfAny([undefined, "q", ''][0])); >(this.voidIfAny([undefined, "q", ''][0])) : number >(this.voidIfAny([undefined, "q", ''][0])) : number >this.voidIfAny([undefined, "q", ''][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, "q", ''][0] : string >[undefined, "q", ''] : string[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >"q" : string >'' : string >0 : number @@ -174,9 +174,9 @@ module EmptyTypes { >(this.voidIfAny([null, "q", ''][0])) : number >(this.voidIfAny([null, "q", ''][0])) : number >this.voidIfAny([null, "q", ''][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[null, "q", ''][0] : string >[null, "q", ''] : string[] >null : null @@ -188,9 +188,9 @@ module EmptyTypes { >(this.voidIfAny(["q", '', null][0])) : number >(this.voidIfAny(["q", '', null][0])) : number >this.voidIfAny(["q", '', null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >["q", '', null][0] : string >["q", '', null] : string[] >"q" : string @@ -202,12 +202,12 @@ module EmptyTypes { >(this.voidIfAny([undefined, '', null][0])) : number >(this.voidIfAny([undefined, '', null][0])) : number >this.voidIfAny([undefined, '', null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, '', null][0] : string >[undefined, '', null] : string[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >'' : string >null : null >0 : number @@ -216,9 +216,9 @@ module EmptyTypes { >(this.voidIfAny([[3, 4], [null]][0][0])) : number >(this.voidIfAny([[3, 4], [null]][0][0])) : number >this.voidIfAny([[3, 4], [null]][0][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 4, 34)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 7, 13), Decl(arrayBestCommonTypes.ts, 8, 58), Decl(arrayBestCommonTypes.ts, 9, 57), Decl(arrayBestCommonTypes.ts, 10, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[[3, 4], [null]][0][0] : number >[[3, 4], [null]][0] : number[] >[[3, 4], [null]] : number[][] @@ -232,230 +232,230 @@ module EmptyTypes { var t1: { x: number; y: base; }[] = [{ x: 7, y: new derived() }, { x: 5, y: new base() }]; ->t1 : { x: number; y: base; }[], Symbol(t1, Decl(arrayBestCommonTypes.ts, 31, 15)) ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 31, 21)) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 31, 32)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>t1 : { x: number; y: base; }[] +>x : number +>y : base +>base : base >[{ x: 7, y: new derived() }, { x: 5, y: new base() }] : { x: number; y: derived; }[] >{ x: 7, y: new derived() } : { x: number; y: derived; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 31, 50)) +>x : number >7 : number ->y : derived, Symbol(y, Decl(arrayBestCommonTypes.ts, 31, 56)) +>y : derived >new derived() : derived ->derived : typeof derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) +>derived : typeof derived >{ x: 5, y: new base() } : { x: number; y: base; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 31, 78)) +>x : number >5 : number ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 31, 84)) +>y : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>base : typeof base var t2: { x: boolean; y: base; }[] = [{ x: true, y: new derived() }, { x: false, y: new base() }]; ->t2 : { x: boolean; y: base; }[], Symbol(t2, Decl(arrayBestCommonTypes.ts, 32, 15)) ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 32, 21)) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 32, 33)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>t2 : { x: boolean; y: base; }[] +>x : boolean +>y : base +>base : base >[{ x: true, y: new derived() }, { x: false, y: new base() }] : { x: boolean; y: derived; }[] >{ x: true, y: new derived() } : { x: boolean; y: derived; } ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 32, 51)) +>x : boolean >true : boolean ->y : derived, Symbol(y, Decl(arrayBestCommonTypes.ts, 32, 60)) +>y : derived >new derived() : derived ->derived : typeof derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) +>derived : typeof derived >{ x: false, y: new base() } : { x: boolean; y: base; } ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 32, 82)) +>x : boolean >false : boolean ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 32, 92)) +>y : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>base : typeof base var t3: { x: string; y: base; }[] = [{ x: undefined, y: new base() }, { x: '', y: new derived() }]; ->t3 : { x: string; y: base; }[], Symbol(t3, Decl(arrayBestCommonTypes.ts, 33, 15)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 33, 21)) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 33, 32)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>t3 : { x: string; y: base; }[] +>x : string +>y : base +>base : base >[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : { x: string; y: derived; }[] >{ x: undefined, y: new base() } : { x: undefined; y: base; } ->x : undefined, Symbol(x, Decl(arrayBestCommonTypes.ts, 33, 50)) ->undefined : undefined, Symbol(undefined) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 33, 64)) +>x : undefined +>undefined : undefined +>y : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>base : typeof base >{ x: '', y: new derived() } : { x: string; y: derived; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 33, 83)) +>x : string >'' : string ->y : derived, Symbol(y, Decl(arrayBestCommonTypes.ts, 33, 90)) +>y : derived >new derived() : derived ->derived : typeof derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 3, 36)) +>derived : typeof derived var anyObj: any = null; ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) +>anyObj : any >null : null // Order matters here so test all the variants var a1 = [{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }]; ->a1 : { x: any; y: string; }[], Symbol(a1, Decl(arrayBestCommonTypes.ts, 37, 15)) +>a1 : { x: any; y: string; }[] >[{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }] : { x: any; y: string; }[] >{ x: 0, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 37, 23)) +>x : number >0 : number ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 37, 29)) +>y : string >'a' : string >{ x: 'a', y: 'a' } : { x: string; y: string; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 37, 41)) +>x : string >'a' : string ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 37, 49)) +>y : string >'a' : string >{ x: anyObj, y: 'a' } : { x: any; y: string; } ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 37, 61)) ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 37, 72)) +>x : any +>anyObj : any +>y : string >'a' : string var a2 = [{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }]; ->a2 : { x: any; y: string; }[], Symbol(a2, Decl(arrayBestCommonTypes.ts, 38, 15)) +>a2 : { x: any; y: string; }[] >[{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }] : { x: any; y: string; }[] >{ x: anyObj, y: 'a' } : { x: any; y: string; } ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 38, 23)) ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 38, 34)) +>x : any +>anyObj : any +>y : string >'a' : string >{ x: 0, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 38, 46)) +>x : number >0 : number ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 38, 52)) +>y : string >'a' : string >{ x: 'a', y: 'a' } : { x: string; y: string; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 38, 64)) +>x : string >'a' : string ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 38, 72)) +>y : string >'a' : string var a3 = [{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }]; ->a3 : { x: any; y: string; }[], Symbol(a3, Decl(arrayBestCommonTypes.ts, 39, 15)) +>a3 : { x: any; y: string; }[] >[{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }] : { x: any; y: string; }[] >{ x: 0, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 39, 23)) +>x : number >0 : number ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 39, 29)) +>y : string >'a' : string >{ x: anyObj, y: 'a' } : { x: any; y: string; } ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 39, 41)) ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 35, 15)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 39, 52)) +>x : any +>anyObj : any +>y : string >'a' : string >{ x: 'a', y: 'a' } : { x: string; y: string; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 39, 64)) +>x : string >'a' : string ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 39, 72)) +>y : string >'a' : string var ifaceObj: iface = null; ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 0, 19)) +>ifaceObj : iface +>iface : iface >null : null var baseObj = new base(); ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) +>baseObj : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 1, 23)) +>base : typeof base var base2Obj = new base2(); ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) +>base2Obj : base2 >new base2() : base2 ->base2 : typeof base2, Symbol(base2, Decl(arrayBestCommonTypes.ts, 2, 35)) +>base2 : typeof base2 var b1 = [baseObj, base2Obj, ifaceObj]; ->b1 : iface[], Symbol(b1, Decl(arrayBestCommonTypes.ts, 45, 15)) +>b1 : iface[] >[baseObj, base2Obj, ifaceObj] : iface[] ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) +>baseObj : base +>base2Obj : base2 +>ifaceObj : iface var b2 = [base2Obj, baseObj, ifaceObj]; ->b2 : iface[], Symbol(b2, Decl(arrayBestCommonTypes.ts, 46, 15)) +>b2 : iface[] >[base2Obj, baseObj, ifaceObj] : iface[] ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) +>base2Obj : base2 +>baseObj : base +>ifaceObj : iface var b3 = [baseObj, ifaceObj, base2Obj]; ->b3 : iface[], Symbol(b3, Decl(arrayBestCommonTypes.ts, 47, 15)) +>b3 : iface[] >[baseObj, ifaceObj, base2Obj] : iface[] ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) +>baseObj : base +>ifaceObj : iface +>base2Obj : base2 var b4 = [ifaceObj, baseObj, base2Obj]; ->b4 : iface[], Symbol(b4, Decl(arrayBestCommonTypes.ts, 48, 15)) +>b4 : iface[] >[ifaceObj, baseObj, base2Obj] : iface[] ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 41, 15)) ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 42, 15)) ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 43, 15)) +>ifaceObj : iface +>baseObj : base +>base2Obj : base2 } } } module NonEmptyTypes { ->NonEmptyTypes : typeof NonEmptyTypes, Symbol(NonEmptyTypes, Decl(arrayBestCommonTypes.ts, 51, 1)) +>NonEmptyTypes : typeof NonEmptyTypes interface iface { x: string; } ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 54, 21)) +>iface : iface +>x : string class base implements iface { x: string; y: string; } ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 55, 33)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 55, 44)) +>base : base +>iface : iface +>x : string +>y : string class base2 implements iface { x: string; z: string; } ->base2 : base2, Symbol(base2, Decl(arrayBestCommonTypes.ts, 55, 57)) ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 56, 34)) ->z : string, Symbol(z, Decl(arrayBestCommonTypes.ts, 56, 45)) +>base2 : base2 +>iface : iface +>x : string +>z : string class derived extends base { a: string; } ->derived : derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) ->a : string, Symbol(a, Decl(arrayBestCommonTypes.ts, 57, 32)) +>derived : derived +>base : base +>a : string class f { ->f : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) +>f : f public voidIfAny(x: boolean, y?: boolean): number; ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 61, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 61, 36)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : boolean +>y : boolean public voidIfAny(x: string, y?: boolean): number; ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 62, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 62, 35)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : string +>y : boolean public voidIfAny(x: number, y?: boolean): number; ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 63, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 63, 35)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : number +>y : boolean public voidIfAny(x: any, y = false): any { return null; } ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 64, 25)) ->y : boolean, Symbol(y, Decl(arrayBestCommonTypes.ts, 64, 32)) +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>x : any +>y : boolean >false : boolean >null : null public x() { ->x : () => void, Symbol(x, Decl(arrayBestCommonTypes.ts, 64, 65)) +>x : () => void (this.voidIfAny([4, 2][0])); >(this.voidIfAny([4, 2][0])) : number >(this.voidIfAny([4, 2][0])) : number >this.voidIfAny([4, 2][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[4, 2][0] : number >[4, 2] : number[] >4 : number @@ -466,26 +466,26 @@ module NonEmptyTypes { >(this.voidIfAny([4, 2, undefined][0])) : number >(this.voidIfAny([4, 2, undefined][0])) : number >this.voidIfAny([4, 2, undefined][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[4, 2, undefined][0] : number >[4, 2, undefined] : number[] >4 : number >2 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined >0 : number (this.voidIfAny([undefined, 2, 4][0])); >(this.voidIfAny([undefined, 2, 4][0])) : number >(this.voidIfAny([undefined, 2, 4][0])) : number >this.voidIfAny([undefined, 2, 4][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, 2, 4][0] : number >[undefined, 2, 4] : number[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >2 : number >4 : number >0 : number @@ -494,9 +494,9 @@ module NonEmptyTypes { >(this.voidIfAny([null, 2, 4][0])) : number >(this.voidIfAny([null, 2, 4][0])) : number >this.voidIfAny([null, 2, 4][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[null, 2, 4][0] : number >[null, 2, 4] : number[] >null : null @@ -508,9 +508,9 @@ module NonEmptyTypes { >(this.voidIfAny([2, 4, null][0])) : number >(this.voidIfAny([2, 4, null][0])) : number >this.voidIfAny([2, 4, null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[2, 4, null][0] : number >[2, 4, null] : number[] >2 : number @@ -522,12 +522,12 @@ module NonEmptyTypes { >(this.voidIfAny([undefined, 4, null][0])) : number >(this.voidIfAny([undefined, 4, null][0])) : number >this.voidIfAny([undefined, 4, null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, 4, null][0] : number >[undefined, 4, null] : number[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >4 : number >null : null >0 : number @@ -536,9 +536,9 @@ module NonEmptyTypes { >(this.voidIfAny(['', "q"][0])) : number >(this.voidIfAny(['', "q"][0])) : number >this.voidIfAny(['', "q"][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >['', "q"][0] : string >['', "q"] : string[] >'' : string @@ -549,26 +549,26 @@ module NonEmptyTypes { >(this.voidIfAny(['', "q", undefined][0])) : number >(this.voidIfAny(['', "q", undefined][0])) : number >this.voidIfAny(['', "q", undefined][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >['', "q", undefined][0] : string >['', "q", undefined] : string[] >'' : string >"q" : string ->undefined : undefined, Symbol(undefined) +>undefined : undefined >0 : number (this.voidIfAny([undefined, "q", ''][0])); >(this.voidIfAny([undefined, "q", ''][0])) : number >(this.voidIfAny([undefined, "q", ''][0])) : number >this.voidIfAny([undefined, "q", ''][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, "q", ''][0] : string >[undefined, "q", ''] : string[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >"q" : string >'' : string >0 : number @@ -577,9 +577,9 @@ module NonEmptyTypes { >(this.voidIfAny([null, "q", ''][0])) : number >(this.voidIfAny([null, "q", ''][0])) : number >this.voidIfAny([null, "q", ''][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[null, "q", ''][0] : string >[null, "q", ''] : string[] >null : null @@ -591,9 +591,9 @@ module NonEmptyTypes { >(this.voidIfAny(["q", '', null][0])) : number >(this.voidIfAny(["q", '', null][0])) : number >this.voidIfAny(["q", '', null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >["q", '', null][0] : string >["q", '', null] : string[] >"q" : string @@ -605,12 +605,12 @@ module NonEmptyTypes { >(this.voidIfAny([undefined, '', null][0])) : number >(this.voidIfAny([undefined, '', null][0])) : number >this.voidIfAny([undefined, '', null][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[undefined, '', null][0] : string >[undefined, '', null] : string[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >'' : string >null : null >0 : number @@ -619,9 +619,9 @@ module NonEmptyTypes { >(this.voidIfAny([[3, 4], [null]][0][0])) : number >(this.voidIfAny([[3, 4], [null]][0][0])) : number >this.voidIfAny([[3, 4], [null]][0][0]) : number ->this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) ->this : f, Symbol(f, Decl(arrayBestCommonTypes.ts, 57, 45)) ->voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; }, Symbol(voidIfAny, Decl(arrayBestCommonTypes.ts, 60, 13), Decl(arrayBestCommonTypes.ts, 61, 58), Decl(arrayBestCommonTypes.ts, 62, 57), Decl(arrayBestCommonTypes.ts, 63, 57)) +>this.voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } +>this : f +>voidIfAny : { (x: boolean, y?: boolean): number; (x: string, y?: boolean): number; (x: number, y?: boolean): number; } >[[3, 4], [null]][0][0] : number >[[3, 4], [null]][0] : number[] >[[3, 4], [null]] : number[][] @@ -635,166 +635,166 @@ module NonEmptyTypes { var t1: { x: number; y: base; }[] = [{ x: 7, y: new derived() }, { x: 5, y: new base() }]; ->t1 : { x: number; y: base; }[], Symbol(t1, Decl(arrayBestCommonTypes.ts, 84, 15)) ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 84, 21)) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 84, 32)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>t1 : { x: number; y: base; }[] +>x : number +>y : base +>base : base >[{ x: 7, y: new derived() }, { x: 5, y: new base() }] : { x: number; y: base; }[] >{ x: 7, y: new derived() } : { x: number; y: derived; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 84, 50)) +>x : number >7 : number ->y : derived, Symbol(y, Decl(arrayBestCommonTypes.ts, 84, 56)) +>y : derived >new derived() : derived ->derived : typeof derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) +>derived : typeof derived >{ x: 5, y: new base() } : { x: number; y: base; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 84, 78)) +>x : number >5 : number ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 84, 84)) +>y : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>base : typeof base var t2: { x: boolean; y: base; }[] = [{ x: true, y: new derived() }, { x: false, y: new base() }]; ->t2 : { x: boolean; y: base; }[], Symbol(t2, Decl(arrayBestCommonTypes.ts, 85, 15)) ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 85, 21)) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 85, 33)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>t2 : { x: boolean; y: base; }[] +>x : boolean +>y : base +>base : base >[{ x: true, y: new derived() }, { x: false, y: new base() }] : { x: boolean; y: base; }[] >{ x: true, y: new derived() } : { x: boolean; y: derived; } ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 85, 51)) +>x : boolean >true : boolean ->y : derived, Symbol(y, Decl(arrayBestCommonTypes.ts, 85, 60)) +>y : derived >new derived() : derived ->derived : typeof derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) +>derived : typeof derived >{ x: false, y: new base() } : { x: boolean; y: base; } ->x : boolean, Symbol(x, Decl(arrayBestCommonTypes.ts, 85, 82)) +>x : boolean >false : boolean ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 85, 92)) +>y : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>base : typeof base var t3: { x: string; y: base; }[] = [{ x: undefined, y: new base() }, { x: '', y: new derived() }]; ->t3 : { x: string; y: base; }[], Symbol(t3, Decl(arrayBestCommonTypes.ts, 86, 15)) ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 86, 21)) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 86, 32)) ->base : base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>t3 : { x: string; y: base; }[] +>x : string +>y : base +>base : base >[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : ({ x: undefined; y: base; } | { x: string; y: derived; })[] >{ x: undefined, y: new base() } : { x: undefined; y: base; } ->x : undefined, Symbol(x, Decl(arrayBestCommonTypes.ts, 86, 50)) ->undefined : undefined, Symbol(undefined) ->y : base, Symbol(y, Decl(arrayBestCommonTypes.ts, 86, 64)) +>x : undefined +>undefined : undefined +>y : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>base : typeof base >{ x: '', y: new derived() } : { x: string; y: derived; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 86, 83)) +>x : string >'' : string ->y : derived, Symbol(y, Decl(arrayBestCommonTypes.ts, 86, 90)) +>y : derived >new derived() : derived ->derived : typeof derived, Symbol(derived, Decl(arrayBestCommonTypes.ts, 56, 58)) +>derived : typeof derived var anyObj: any = null; ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) +>anyObj : any >null : null // Order matters here so test all the variants var a1 = [{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }]; ->a1 : { x: any; y: string; }[], Symbol(a1, Decl(arrayBestCommonTypes.ts, 90, 15)) +>a1 : { x: any; y: string; }[] >[{ x: 0, y: 'a' }, { x: 'a', y: 'a' }, { x: anyObj, y: 'a' }] : { x: any; y: string; }[] >{ x: 0, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 90, 23)) +>x : number >0 : number ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 90, 29)) +>y : string >'a' : string >{ x: 'a', y: 'a' } : { x: string; y: string; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 90, 41)) +>x : string >'a' : string ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 90, 49)) +>y : string >'a' : string >{ x: anyObj, y: 'a' } : { x: any; y: string; } ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 90, 61)) ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 90, 72)) +>x : any +>anyObj : any +>y : string >'a' : string var a2 = [{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }]; ->a2 : { x: any; y: string; }[], Symbol(a2, Decl(arrayBestCommonTypes.ts, 91, 15)) +>a2 : { x: any; y: string; }[] >[{ x: anyObj, y: 'a' }, { x: 0, y: 'a' }, { x: 'a', y: 'a' }] : { x: any; y: string; }[] >{ x: anyObj, y: 'a' } : { x: any; y: string; } ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 91, 23)) ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 91, 34)) +>x : any +>anyObj : any +>y : string >'a' : string >{ x: 0, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 91, 46)) +>x : number >0 : number ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 91, 52)) +>y : string >'a' : string >{ x: 'a', y: 'a' } : { x: string; y: string; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 91, 64)) +>x : string >'a' : string ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 91, 72)) +>y : string >'a' : string var a3 = [{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }]; ->a3 : { x: any; y: string; }[], Symbol(a3, Decl(arrayBestCommonTypes.ts, 92, 15)) +>a3 : { x: any; y: string; }[] >[{ x: 0, y: 'a' }, { x: anyObj, y: 'a' }, { x: 'a', y: 'a' }] : { x: any; y: string; }[] >{ x: 0, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(arrayBestCommonTypes.ts, 92, 23)) +>x : number >0 : number ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 92, 29)) +>y : string >'a' : string >{ x: anyObj, y: 'a' } : { x: any; y: string; } ->x : any, Symbol(x, Decl(arrayBestCommonTypes.ts, 92, 41)) ->anyObj : any, Symbol(anyObj, Decl(arrayBestCommonTypes.ts, 88, 15)) ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 92, 52)) +>x : any +>anyObj : any +>y : string >'a' : string >{ x: 'a', y: 'a' } : { x: string; y: string; } ->x : string, Symbol(x, Decl(arrayBestCommonTypes.ts, 92, 64)) +>x : string >'a' : string ->y : string, Symbol(y, Decl(arrayBestCommonTypes.ts, 92, 72)) +>y : string >'a' : string var ifaceObj: iface = null; ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) ->iface : iface, Symbol(iface, Decl(arrayBestCommonTypes.ts, 53, 22)) +>ifaceObj : iface +>iface : iface >null : null var baseObj = new base(); ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) +>baseObj : base >new base() : base ->base : typeof base, Symbol(base, Decl(arrayBestCommonTypes.ts, 54, 34)) +>base : typeof base var base2Obj = new base2(); ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) +>base2Obj : base2 >new base2() : base2 ->base2 : typeof base2, Symbol(base2, Decl(arrayBestCommonTypes.ts, 55, 57)) +>base2 : typeof base2 var b1 = [baseObj, base2Obj, ifaceObj]; ->b1 : iface[], Symbol(b1, Decl(arrayBestCommonTypes.ts, 98, 15)) +>b1 : iface[] >[baseObj, base2Obj, ifaceObj] : iface[] ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) +>baseObj : base +>base2Obj : base2 +>ifaceObj : iface var b2 = [base2Obj, baseObj, ifaceObj]; ->b2 : iface[], Symbol(b2, Decl(arrayBestCommonTypes.ts, 99, 15)) +>b2 : iface[] >[base2Obj, baseObj, ifaceObj] : iface[] ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) +>base2Obj : base2 +>baseObj : base +>ifaceObj : iface var b3 = [baseObj, ifaceObj, base2Obj]; ->b3 : iface[], Symbol(b3, Decl(arrayBestCommonTypes.ts, 100, 15)) +>b3 : iface[] >[baseObj, ifaceObj, base2Obj] : iface[] ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) +>baseObj : base +>ifaceObj : iface +>base2Obj : base2 var b4 = [ifaceObj, baseObj, base2Obj]; ->b4 : iface[], Symbol(b4, Decl(arrayBestCommonTypes.ts, 101, 15)) +>b4 : iface[] >[ifaceObj, baseObj, base2Obj] : iface[] ->ifaceObj : iface, Symbol(ifaceObj, Decl(arrayBestCommonTypes.ts, 94, 15)) ->baseObj : base, Symbol(baseObj, Decl(arrayBestCommonTypes.ts, 95, 15)) ->base2Obj : base2, Symbol(base2Obj, Decl(arrayBestCommonTypes.ts, 96, 15)) +>ifaceObj : iface +>baseObj : base +>base2Obj : base2 } } } diff --git a/tests/baselines/reference/arrayBindingPatternOmittedExpressions.symbols b/tests/baselines/reference/arrayBindingPatternOmittedExpressions.symbols new file mode 100644 index 0000000000000..41d04ee623a05 --- /dev/null +++ b/tests/baselines/reference/arrayBindingPatternOmittedExpressions.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/arrayBindingPatternOmittedExpressions.ts === + +var results: string[]; +>results : Symbol(results, Decl(arrayBindingPatternOmittedExpressions.ts, 1, 3)) + +{ + let [, b, , a] = results; +>b : Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 4, 10)) +>a : Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 4, 15)) +>results : Symbol(results, Decl(arrayBindingPatternOmittedExpressions.ts, 1, 3)) + + let x = { +>x : Symbol(x, Decl(arrayBindingPatternOmittedExpressions.ts, 5, 7)) + + a, +>a : Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 5, 13)) + + b +>b : Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 6, 10)) + } +} + + +function f([, a, , b, , , , s, , , ] = results) { +>f : Symbol(f, Decl(arrayBindingPatternOmittedExpressions.ts, 9, 1)) +>a : Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 13)) +>b : Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 18)) +>s : Symbol(s, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 27)) +>results : Symbol(results, Decl(arrayBindingPatternOmittedExpressions.ts, 1, 3)) + + a = s[1]; +>a : Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 13)) +>s : Symbol(s, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 27)) + + b = s[2]; +>b : Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 18)) +>s : Symbol(s, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 27)) +} diff --git a/tests/baselines/reference/arrayBindingPatternOmittedExpressions.types b/tests/baselines/reference/arrayBindingPatternOmittedExpressions.types index 7acae10cffd9e..e83aa6a17deb9 100644 --- a/tests/baselines/reference/arrayBindingPatternOmittedExpressions.types +++ b/tests/baselines/reference/arrayBindingPatternOmittedExpressions.types @@ -1,54 +1,54 @@ === tests/cases/compiler/arrayBindingPatternOmittedExpressions.ts === var results: string[]; ->results : string[], Symbol(results, Decl(arrayBindingPatternOmittedExpressions.ts, 1, 3)) +>results : string[] { let [, b, , a] = results; > : undefined ->b : string, Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 4, 10)) +>b : string > : undefined ->a : string, Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 4, 15)) ->results : string[], Symbol(results, Decl(arrayBindingPatternOmittedExpressions.ts, 1, 3)) +>a : string +>results : string[] let x = { ->x : { a: string; b: string; }, Symbol(x, Decl(arrayBindingPatternOmittedExpressions.ts, 5, 7)) +>x : { a: string; b: string; } >{ a, b } : { a: string; b: string; } a, ->a : string, Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 5, 13)) +>a : string b ->b : string, Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 6, 10)) +>b : string } } function f([, a, , b, , , , s, , , ] = results) { ->f : ([, a, , b, , , , s, , , ]?: string[]) => void, Symbol(f, Decl(arrayBindingPatternOmittedExpressions.ts, 9, 1)) +>f : ([, a, , b, , , , s, , , ]?: string[]) => void > : undefined ->a : string, Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 13)) +>a : string > : undefined ->b : string, Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 18)) +>b : string > : undefined > : undefined > : undefined ->s : string, Symbol(s, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 27)) +>s : string > : undefined > : undefined ->results : string[], Symbol(results, Decl(arrayBindingPatternOmittedExpressions.ts, 1, 3)) +>results : string[] a = s[1]; >a = s[1] : string ->a : string, Symbol(a, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 13)) +>a : string >s[1] : string ->s : string, Symbol(s, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 27)) +>s : string >1 : number b = s[2]; >b = s[2] : string ->b : string, Symbol(b, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 18)) +>b : string >s[2] : string ->s : string, Symbol(s, Decl(arrayBindingPatternOmittedExpressions.ts, 12, 27)) +>s : string >2 : number } diff --git a/tests/baselines/reference/arrayConcat2.symbols b/tests/baselines/reference/arrayConcat2.symbols new file mode 100644 index 0000000000000..8c0af7be70251 --- /dev/null +++ b/tests/baselines/reference/arrayConcat2.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/arrayConcat2.ts === +var a: string[] = []; +>a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) + +a.concat("hello", 'world'); +>a.concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) + +a.concat('Hello'); +>a.concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>a : Symbol(a, Decl(arrayConcat2.ts, 0, 3)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) + +var b = new Array(); +>b : Symbol(b, Decl(arrayConcat2.ts, 5, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +b.concat('hello'); +>b.concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>b : Symbol(b, Decl(arrayConcat2.ts, 5, 3)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) + diff --git a/tests/baselines/reference/arrayConcat2.types b/tests/baselines/reference/arrayConcat2.types index 873d286f78414..a49046c871f2f 100644 --- a/tests/baselines/reference/arrayConcat2.types +++ b/tests/baselines/reference/arrayConcat2.types @@ -1,32 +1,32 @@ === tests/cases/compiler/arrayConcat2.ts === var a: string[] = []; ->a : string[], Symbol(a, Decl(arrayConcat2.ts, 0, 3)) +>a : string[] >[] : undefined[] a.concat("hello", 'world'); >a.concat("hello", 'world') : string[] ->a.concat : { (...items: U[]): string[]; (...items: string[]): string[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->a : string[], Symbol(a, Decl(arrayConcat2.ts, 0, 3)) ->concat : { (...items: U[]): string[]; (...items: string[]): string[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>a.concat : { (...items: U[]): string[]; (...items: string[]): string[]; } +>a : string[] +>concat : { (...items: U[]): string[]; (...items: string[]): string[]; } >"hello" : string >'world' : string a.concat('Hello'); >a.concat('Hello') : string[] ->a.concat : { (...items: U[]): string[]; (...items: string[]): string[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->a : string[], Symbol(a, Decl(arrayConcat2.ts, 0, 3)) ->concat : { (...items: U[]): string[]; (...items: string[]): string[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>a.concat : { (...items: U[]): string[]; (...items: string[]): string[]; } +>a : string[] +>concat : { (...items: U[]): string[]; (...items: string[]): string[]; } >'Hello' : string var b = new Array(); ->b : string[], Symbol(b, Decl(arrayConcat2.ts, 5, 3)) +>b : string[] >new Array() : string[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor b.concat('hello'); >b.concat('hello') : string[] ->b.concat : { (...items: U[]): string[]; (...items: string[]): string[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->b : string[], Symbol(b, Decl(arrayConcat2.ts, 5, 3)) ->concat : { (...items: U[]): string[]; (...items: string[]): string[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>b.concat : { (...items: U[]): string[]; (...items: string[]): string[]; } +>b : string[] +>concat : { (...items: U[]): string[]; (...items: string[]): string[]; } >'hello' : string diff --git a/tests/baselines/reference/arrayConcatMap.symbols b/tests/baselines/reference/arrayConcatMap.symbols new file mode 100644 index 0000000000000..1ff4bc3bff56c --- /dev/null +++ b/tests/baselines/reference/arrayConcatMap.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/arrayConcatMap.ts === +var x = [].concat([{ a: 1 }], [{ a: 2 }]) +>x : Symbol(x, Decl(arrayConcatMap.ts, 0, 3)) +>[].concat([{ a: 1 }], [{ a: 2 }]) .map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>[].concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>a : Symbol(a, Decl(arrayConcatMap.ts, 0, 20)) +>a : Symbol(a, Decl(arrayConcatMap.ts, 0, 32)) + + .map(b => b.a); +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>b : Symbol(b, Decl(arrayConcatMap.ts, 1, 15)) +>b : Symbol(b, Decl(arrayConcatMap.ts, 1, 15)) + diff --git a/tests/baselines/reference/arrayConcatMap.types b/tests/baselines/reference/arrayConcatMap.types index dc4aa178a6133..11342ee848a0d 100644 --- a/tests/baselines/reference/arrayConcatMap.types +++ b/tests/baselines/reference/arrayConcatMap.types @@ -1,26 +1,26 @@ === tests/cases/compiler/arrayConcatMap.ts === var x = [].concat([{ a: 1 }], [{ a: 2 }]) ->x : any[], Symbol(x, Decl(arrayConcatMap.ts, 0, 3)) +>x : any[] >[].concat([{ a: 1 }], [{ a: 2 }]) .map(b => b.a) : any[] ->[].concat([{ a: 1 }], [{ a: 2 }]) .map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>[].concat([{ a: 1 }], [{ a: 2 }]) .map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] >[].concat([{ a: 1 }], [{ a: 2 }]) : any[] ->[].concat : { (...items: U[]): any[]; (...items: any[]): any[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>[].concat : { (...items: U[]): any[]; (...items: any[]): any[]; } >[] : undefined[] ->concat : { (...items: U[]): any[]; (...items: any[]): any[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>concat : { (...items: U[]): any[]; (...items: any[]): any[]; } >[{ a: 1 }] : { a: number; }[] >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(arrayConcatMap.ts, 0, 20)) +>a : number >1 : number >[{ a: 2 }] : { a: number; }[] >{ a: 2 } : { a: number; } ->a : number, Symbol(a, Decl(arrayConcatMap.ts, 0, 32)) +>a : number >2 : number .map(b => b.a); ->map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : (callbackfn: (value: any, index: number, array: any[]) => U, thisArg?: any) => U[] >b => b.a : (b: any) => any ->b : any, Symbol(b, Decl(arrayConcatMap.ts, 1, 15)) +>b : any >b.a : any ->b : any, Symbol(b, Decl(arrayConcatMap.ts, 1, 15)) +>b : any >a : any diff --git a/tests/baselines/reference/arrayConstructors1.symbols b/tests/baselines/reference/arrayConstructors1.symbols new file mode 100644 index 0000000000000..cab2b0dc68af4 --- /dev/null +++ b/tests/baselines/reference/arrayConstructors1.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/arrayConstructors1.ts === +var x: string[]; +>x : Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) + +x = new Array(1); +>x : Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +x = new Array('hi', 'bye'); +>x : Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +x = new Array('hi', 'bye'); +>x : Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +var y: number[]; +>y : Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) + +y = new Array(1); +>y : Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +y = new Array(1,2); +>y : Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +y = new Array(1, 2); +>y : Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + diff --git a/tests/baselines/reference/arrayConstructors1.types b/tests/baselines/reference/arrayConstructors1.types index f231cd627a467..89807cd034805 100644 --- a/tests/baselines/reference/arrayConstructors1.types +++ b/tests/baselines/reference/arrayConstructors1.types @@ -1,53 +1,53 @@ === tests/cases/compiler/arrayConstructors1.ts === var x: string[]; ->x : string[], Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>x : string[] x = new Array(1); >x = new Array(1) : any[] ->x : string[], Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>x : string[] >new Array(1) : any[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >1 : number x = new Array('hi', 'bye'); >x = new Array('hi', 'bye') : string[] ->x : string[], Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>x : string[] >new Array('hi', 'bye') : string[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >'hi' : string >'bye' : string x = new Array('hi', 'bye'); >x = new Array('hi', 'bye') : string[] ->x : string[], Symbol(x, Decl(arrayConstructors1.ts, 0, 3)) +>x : string[] >new Array('hi', 'bye') : string[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >'hi' : string >'bye' : string var y: number[]; ->y : number[], Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>y : number[] y = new Array(1); >y = new Array(1) : any[] ->y : number[], Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>y : number[] >new Array(1) : any[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >1 : number y = new Array(1,2); >y = new Array(1,2) : number[] ->y : number[], Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>y : number[] >new Array(1,2) : number[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >1 : number >2 : number y = new Array(1, 2); >y = new Array(1, 2) : number[] ->y : number[], Symbol(y, Decl(arrayConstructors1.ts, 5, 3)) +>y : number[] >new Array(1, 2) : number[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >1 : number >2 : number diff --git a/tests/baselines/reference/arrayLiteral.symbols b/tests/baselines/reference/arrayLiteral.symbols new file mode 100644 index 0000000000000..77673863b64fe --- /dev/null +++ b/tests/baselines/reference/arrayLiteral.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayLiteral.ts === +// valid uses of array literals + +var x = []; +>x : Symbol(x, Decl(arrayLiteral.ts, 2, 3), Decl(arrayLiteral.ts, 3, 3)) + +var x = new Array(1); +>x : Symbol(x, Decl(arrayLiteral.ts, 2, 3), Decl(arrayLiteral.ts, 3, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +var y = [1]; +>y : Symbol(y, Decl(arrayLiteral.ts, 5, 3), Decl(arrayLiteral.ts, 6, 3), Decl(arrayLiteral.ts, 7, 3)) + +var y = [1, 2]; +>y : Symbol(y, Decl(arrayLiteral.ts, 5, 3), Decl(arrayLiteral.ts, 6, 3), Decl(arrayLiteral.ts, 7, 3)) + +var y = new Array(); +>y : Symbol(y, Decl(arrayLiteral.ts, 5, 3), Decl(arrayLiteral.ts, 6, 3), Decl(arrayLiteral.ts, 7, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +var x2: number[] = []; +>x2 : Symbol(x2, Decl(arrayLiteral.ts, 9, 3), Decl(arrayLiteral.ts, 10, 3)) + +var x2: number[] = new Array(1); +>x2 : Symbol(x2, Decl(arrayLiteral.ts, 9, 3), Decl(arrayLiteral.ts, 10, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +var y2: number[] = [1]; +>y2 : Symbol(y2, Decl(arrayLiteral.ts, 12, 3), Decl(arrayLiteral.ts, 13, 3), Decl(arrayLiteral.ts, 14, 3)) + +var y2: number[] = [1, 2]; +>y2 : Symbol(y2, Decl(arrayLiteral.ts, 12, 3), Decl(arrayLiteral.ts, 13, 3), Decl(arrayLiteral.ts, 14, 3)) + +var y2: number[] = new Array(); +>y2 : Symbol(y2, Decl(arrayLiteral.ts, 12, 3), Decl(arrayLiteral.ts, 13, 3), Decl(arrayLiteral.ts, 14, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + diff --git a/tests/baselines/reference/arrayLiteral.types b/tests/baselines/reference/arrayLiteral.types index 406ecad0e723d..a7b915de79dac 100644 --- a/tests/baselines/reference/arrayLiteral.types +++ b/tests/baselines/reference/arrayLiteral.types @@ -2,54 +2,54 @@ // valid uses of array literals var x = []; ->x : any[], Symbol(x, Decl(arrayLiteral.ts, 2, 3), Decl(arrayLiteral.ts, 3, 3)) +>x : any[] >[] : undefined[] var x = new Array(1); ->x : any[], Symbol(x, Decl(arrayLiteral.ts, 2, 3), Decl(arrayLiteral.ts, 3, 3)) +>x : any[] >new Array(1) : any[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >1 : number var y = [1]; ->y : number[], Symbol(y, Decl(arrayLiteral.ts, 5, 3), Decl(arrayLiteral.ts, 6, 3), Decl(arrayLiteral.ts, 7, 3)) +>y : number[] >[1] : number[] >1 : number var y = [1, 2]; ->y : number[], Symbol(y, Decl(arrayLiteral.ts, 5, 3), Decl(arrayLiteral.ts, 6, 3), Decl(arrayLiteral.ts, 7, 3)) +>y : number[] >[1, 2] : number[] >1 : number >2 : number var y = new Array(); ->y : number[], Symbol(y, Decl(arrayLiteral.ts, 5, 3), Decl(arrayLiteral.ts, 6, 3), Decl(arrayLiteral.ts, 7, 3)) +>y : number[] >new Array() : number[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor var x2: number[] = []; ->x2 : number[], Symbol(x2, Decl(arrayLiteral.ts, 9, 3), Decl(arrayLiteral.ts, 10, 3)) +>x2 : number[] >[] : undefined[] var x2: number[] = new Array(1); ->x2 : number[], Symbol(x2, Decl(arrayLiteral.ts, 9, 3), Decl(arrayLiteral.ts, 10, 3)) +>x2 : number[] >new Array(1) : any[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor >1 : number var y2: number[] = [1]; ->y2 : number[], Symbol(y2, Decl(arrayLiteral.ts, 12, 3), Decl(arrayLiteral.ts, 13, 3), Decl(arrayLiteral.ts, 14, 3)) +>y2 : number[] >[1] : number[] >1 : number var y2: number[] = [1, 2]; ->y2 : number[], Symbol(y2, Decl(arrayLiteral.ts, 12, 3), Decl(arrayLiteral.ts, 13, 3), Decl(arrayLiteral.ts, 14, 3)) +>y2 : number[] >[1, 2] : number[] >1 : number >2 : number var y2: number[] = new Array(); ->y2 : number[], Symbol(y2, Decl(arrayLiteral.ts, 12, 3), Decl(arrayLiteral.ts, 13, 3), Decl(arrayLiteral.ts, 14, 3)) +>y2 : number[] >new Array() : number[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor diff --git a/tests/baselines/reference/arrayLiteral1.symbols b/tests/baselines/reference/arrayLiteral1.symbols new file mode 100644 index 0000000000000..9f2e04138b72c --- /dev/null +++ b/tests/baselines/reference/arrayLiteral1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/arrayLiteral1.ts === +var v30 = [1, 2]; +>v30 : Symbol(v30, Decl(arrayLiteral1.ts, 0, 3)) + diff --git a/tests/baselines/reference/arrayLiteral1.types b/tests/baselines/reference/arrayLiteral1.types index dda1375d66d50..eb83fa87035f4 100644 --- a/tests/baselines/reference/arrayLiteral1.types +++ b/tests/baselines/reference/arrayLiteral1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/arrayLiteral1.ts === var v30 = [1, 2]; ->v30 : number[], Symbol(v30, Decl(arrayLiteral1.ts, 0, 3)) +>v30 : number[] >[1, 2] : number[] >1 : number >2 : number diff --git a/tests/baselines/reference/arrayLiteral2.symbols b/tests/baselines/reference/arrayLiteral2.symbols new file mode 100644 index 0000000000000..e06077736e572 --- /dev/null +++ b/tests/baselines/reference/arrayLiteral2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/arrayLiteral2.ts === +var v30 = [1, 2], v31; +>v30 : Symbol(v30, Decl(arrayLiteral2.ts, 0, 3)) +>v31 : Symbol(v31, Decl(arrayLiteral2.ts, 0, 17)) + diff --git a/tests/baselines/reference/arrayLiteral2.types b/tests/baselines/reference/arrayLiteral2.types index e4b8bda8794d4..1c3c81117d9d1 100644 --- a/tests/baselines/reference/arrayLiteral2.types +++ b/tests/baselines/reference/arrayLiteral2.types @@ -1,8 +1,8 @@ === tests/cases/compiler/arrayLiteral2.ts === var v30 = [1, 2], v31; ->v30 : number[], Symbol(v30, Decl(arrayLiteral2.ts, 0, 3)) +>v30 : number[] >[1, 2] : number[] >1 : number >2 : number ->v31 : any, Symbol(v31, Decl(arrayLiteral2.ts, 0, 17)) +>v31 : any diff --git a/tests/baselines/reference/arrayLiteralContextualType.symbols b/tests/baselines/reference/arrayLiteralContextualType.symbols new file mode 100644 index 0000000000000..500c1d522f6cc --- /dev/null +++ b/tests/baselines/reference/arrayLiteralContextualType.symbols @@ -0,0 +1,73 @@ +=== tests/cases/compiler/arrayLiteralContextualType.ts === +interface IAnimal { +>IAnimal : Symbol(IAnimal, Decl(arrayLiteralContextualType.ts, 0, 0)) + + name: string; +>name : Symbol(name, Decl(arrayLiteralContextualType.ts, 0, 19)) +} + +class Giraffe { +>Giraffe : Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) + + name = "Giraffe"; +>name : Symbol(name, Decl(arrayLiteralContextualType.ts, 4, 15)) + + neckLength = "3m"; +>neckLength : Symbol(neckLength, Decl(arrayLiteralContextualType.ts, 5, 21)) +} + +class Elephant { +>Elephant : Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) + + name = "Elephant"; +>name : Symbol(name, Decl(arrayLiteralContextualType.ts, 9, 16)) + + trunkDiameter = "20cm"; +>trunkDiameter : Symbol(trunkDiameter, Decl(arrayLiteralContextualType.ts, 10, 22)) +} + +function foo(animals: IAnimal[]) { } +>foo : Symbol(foo, Decl(arrayLiteralContextualType.ts, 12, 1)) +>animals : Symbol(animals, Decl(arrayLiteralContextualType.ts, 14, 13)) +>IAnimal : Symbol(IAnimal, Decl(arrayLiteralContextualType.ts, 0, 0)) + +function bar(animals: { [n: number]: IAnimal }) { } +>bar : Symbol(bar, Decl(arrayLiteralContextualType.ts, 14, 36)) +>animals : Symbol(animals, Decl(arrayLiteralContextualType.ts, 15, 13)) +>n : Symbol(n, Decl(arrayLiteralContextualType.ts, 15, 25)) +>IAnimal : Symbol(IAnimal, Decl(arrayLiteralContextualType.ts, 0, 0)) + +foo([ +>foo : Symbol(foo, Decl(arrayLiteralContextualType.ts, 12, 1)) + + new Giraffe(), +>Giraffe : Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) + + new Elephant() +>Elephant : Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) + +]); // Legal because of the contextual type IAnimal provided by the parameter +bar([ +>bar : Symbol(bar, Decl(arrayLiteralContextualType.ts, 14, 36)) + + new Giraffe(), +>Giraffe : Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) + + new Elephant() +>Elephant : Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) + +]); // Legal because of the contextual type IAnimal provided by the parameter + +var arr = [new Giraffe(), new Elephant()]; +>arr : Symbol(arr, Decl(arrayLiteralContextualType.ts, 26, 3)) +>Giraffe : Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) +>Elephant : Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) + +foo(arr); // ok because arr is Array not {}[] +>foo : Symbol(foo, Decl(arrayLiteralContextualType.ts, 12, 1)) +>arr : Symbol(arr, Decl(arrayLiteralContextualType.ts, 26, 3)) + +bar(arr); // ok because arr is Array not {}[] +>bar : Symbol(bar, Decl(arrayLiteralContextualType.ts, 14, 36)) +>arr : Symbol(arr, Decl(arrayLiteralContextualType.ts, 26, 3)) + diff --git a/tests/baselines/reference/arrayLiteralContextualType.types b/tests/baselines/reference/arrayLiteralContextualType.types index fe000a760d899..0513908929e5a 100644 --- a/tests/baselines/reference/arrayLiteralContextualType.types +++ b/tests/baselines/reference/arrayLiteralContextualType.types @@ -1,90 +1,90 @@ === tests/cases/compiler/arrayLiteralContextualType.ts === interface IAnimal { ->IAnimal : IAnimal, Symbol(IAnimal, Decl(arrayLiteralContextualType.ts, 0, 0)) +>IAnimal : IAnimal name: string; ->name : string, Symbol(name, Decl(arrayLiteralContextualType.ts, 0, 19)) +>name : string } class Giraffe { ->Giraffe : Giraffe, Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) +>Giraffe : Giraffe name = "Giraffe"; ->name : string, Symbol(name, Decl(arrayLiteralContextualType.ts, 4, 15)) +>name : string >"Giraffe" : string neckLength = "3m"; ->neckLength : string, Symbol(neckLength, Decl(arrayLiteralContextualType.ts, 5, 21)) +>neckLength : string >"3m" : string } class Elephant { ->Elephant : Elephant, Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) +>Elephant : Elephant name = "Elephant"; ->name : string, Symbol(name, Decl(arrayLiteralContextualType.ts, 9, 16)) +>name : string >"Elephant" : string trunkDiameter = "20cm"; ->trunkDiameter : string, Symbol(trunkDiameter, Decl(arrayLiteralContextualType.ts, 10, 22)) +>trunkDiameter : string >"20cm" : string } function foo(animals: IAnimal[]) { } ->foo : (animals: IAnimal[]) => void, Symbol(foo, Decl(arrayLiteralContextualType.ts, 12, 1)) ->animals : IAnimal[], Symbol(animals, Decl(arrayLiteralContextualType.ts, 14, 13)) ->IAnimal : IAnimal, Symbol(IAnimal, Decl(arrayLiteralContextualType.ts, 0, 0)) +>foo : (animals: IAnimal[]) => void +>animals : IAnimal[] +>IAnimal : IAnimal function bar(animals: { [n: number]: IAnimal }) { } ->bar : (animals: { [n: number]: IAnimal; }) => void, Symbol(bar, Decl(arrayLiteralContextualType.ts, 14, 36)) ->animals : { [n: number]: IAnimal; }, Symbol(animals, Decl(arrayLiteralContextualType.ts, 15, 13)) ->n : number, Symbol(n, Decl(arrayLiteralContextualType.ts, 15, 25)) ->IAnimal : IAnimal, Symbol(IAnimal, Decl(arrayLiteralContextualType.ts, 0, 0)) +>bar : (animals: { [n: number]: IAnimal; }) => void +>animals : { [n: number]: IAnimal; } +>n : number +>IAnimal : IAnimal foo([ >foo([ new Giraffe(), new Elephant()]) : void ->foo : (animals: IAnimal[]) => void, Symbol(foo, Decl(arrayLiteralContextualType.ts, 12, 1)) +>foo : (animals: IAnimal[]) => void >[ new Giraffe(), new Elephant()] : (Giraffe | Elephant)[] new Giraffe(), >new Giraffe() : Giraffe ->Giraffe : typeof Giraffe, Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) +>Giraffe : typeof Giraffe new Elephant() >new Elephant() : Elephant ->Elephant : typeof Elephant, Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) +>Elephant : typeof Elephant ]); // Legal because of the contextual type IAnimal provided by the parameter bar([ >bar([ new Giraffe(), new Elephant()]) : void ->bar : (animals: { [n: number]: IAnimal; }) => void, Symbol(bar, Decl(arrayLiteralContextualType.ts, 14, 36)) +>bar : (animals: { [n: number]: IAnimal; }) => void >[ new Giraffe(), new Elephant()] : (Giraffe | Elephant)[] new Giraffe(), >new Giraffe() : Giraffe ->Giraffe : typeof Giraffe, Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) +>Giraffe : typeof Giraffe new Elephant() >new Elephant() : Elephant ->Elephant : typeof Elephant, Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) +>Elephant : typeof Elephant ]); // Legal because of the contextual type IAnimal provided by the parameter var arr = [new Giraffe(), new Elephant()]; ->arr : (Giraffe | Elephant)[], Symbol(arr, Decl(arrayLiteralContextualType.ts, 26, 3)) +>arr : (Giraffe | Elephant)[] >[new Giraffe(), new Elephant()] : (Giraffe | Elephant)[] >new Giraffe() : Giraffe ->Giraffe : typeof Giraffe, Symbol(Giraffe, Decl(arrayLiteralContextualType.ts, 2, 1)) +>Giraffe : typeof Giraffe >new Elephant() : Elephant ->Elephant : typeof Elephant, Symbol(Elephant, Decl(arrayLiteralContextualType.ts, 7, 1)) +>Elephant : typeof Elephant foo(arr); // ok because arr is Array not {}[] >foo(arr) : void ->foo : (animals: IAnimal[]) => void, Symbol(foo, Decl(arrayLiteralContextualType.ts, 12, 1)) ->arr : (Giraffe | Elephant)[], Symbol(arr, Decl(arrayLiteralContextualType.ts, 26, 3)) +>foo : (animals: IAnimal[]) => void +>arr : (Giraffe | Elephant)[] bar(arr); // ok because arr is Array not {}[] >bar(arr) : void ->bar : (animals: { [n: number]: IAnimal; }) => void, Symbol(bar, Decl(arrayLiteralContextualType.ts, 14, 36)) ->arr : (Giraffe | Elephant)[], Symbol(arr, Decl(arrayLiteralContextualType.ts, 26, 3)) +>bar : (animals: { [n: number]: IAnimal; }) => void +>arr : (Giraffe | Elephant)[] diff --git a/tests/baselines/reference/arrayLiteralInNonVarArgParameter.symbols b/tests/baselines/reference/arrayLiteralInNonVarArgParameter.symbols new file mode 100644 index 0000000000000..9ce5cebf0c20d --- /dev/null +++ b/tests/baselines/reference/arrayLiteralInNonVarArgParameter.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/arrayLiteralInNonVarArgParameter.ts === +function panic(val: string[], ...opt: string[]) { } +>panic : Symbol(panic, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 0)) +>val : Symbol(val, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 15)) +>opt : Symbol(opt, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 29)) + +panic([], 'one', 'two'); +>panic : Symbol(panic, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 0)) + diff --git a/tests/baselines/reference/arrayLiteralInNonVarArgParameter.types b/tests/baselines/reference/arrayLiteralInNonVarArgParameter.types index 8b2d56bb24a15..fcbaa22bc6a03 100644 --- a/tests/baselines/reference/arrayLiteralInNonVarArgParameter.types +++ b/tests/baselines/reference/arrayLiteralInNonVarArgParameter.types @@ -1,12 +1,12 @@ === tests/cases/compiler/arrayLiteralInNonVarArgParameter.ts === function panic(val: string[], ...opt: string[]) { } ->panic : (val: string[], ...opt: string[]) => void, Symbol(panic, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 0)) ->val : string[], Symbol(val, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 15)) ->opt : string[], Symbol(opt, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 29)) +>panic : (val: string[], ...opt: string[]) => void +>val : string[] +>opt : string[] panic([], 'one', 'two'); >panic([], 'one', 'two') : void ->panic : (val: string[], ...opt: string[]) => void, Symbol(panic, Decl(arrayLiteralInNonVarArgParameter.ts, 0, 0)) +>panic : (val: string[], ...opt: string[]) => void >[] : undefined[] >'one' : string >'two' : string diff --git a/tests/baselines/reference/arrayLiteralSpread.symbols b/tests/baselines/reference/arrayLiteralSpread.symbols new file mode 100644 index 0000000000000..d7bcee44fef6e --- /dev/null +++ b/tests/baselines/reference/arrayLiteralSpread.symbols @@ -0,0 +1,67 @@ +=== tests/cases/conformance/es6/spread/arrayLiteralSpread.ts === +function f0() { +>f0 : Symbol(f0, Decl(arrayLiteralSpread.ts, 0, 0)) + + var a = [1, 2, 3]; +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a1 = [...a]; +>a1 : Symbol(a1, Decl(arrayLiteralSpread.ts, 2, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a2 = [1, ...a]; +>a2 : Symbol(a2, Decl(arrayLiteralSpread.ts, 3, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a3 = [1, 2, ...a]; +>a3 : Symbol(a3, Decl(arrayLiteralSpread.ts, 4, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a4 = [...a, 1]; +>a4 : Symbol(a4, Decl(arrayLiteralSpread.ts, 5, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a5 = [...a, 1, 2]; +>a5 : Symbol(a5, Decl(arrayLiteralSpread.ts, 6, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a6 = [1, 2, ...a, 1, 2]; +>a6 : Symbol(a6, Decl(arrayLiteralSpread.ts, 7, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a7 = [1, ...a, 2, ...a]; +>a7 : Symbol(a7, Decl(arrayLiteralSpread.ts, 8, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) + + var a8 = [...a, ...a, ...a]; +>a8 : Symbol(a8, Decl(arrayLiteralSpread.ts, 9, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +} + +function f1() { +>f1 : Symbol(f1, Decl(arrayLiteralSpread.ts, 10, 1)) + + var a = [1, 2, 3]; +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 13, 7)) + + var b = ["hello", ...a, true]; +>b : Symbol(b, Decl(arrayLiteralSpread.ts, 14, 7), Decl(arrayLiteralSpread.ts, 15, 7)) +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 13, 7)) + + var b: (string | number | boolean)[]; +>b : Symbol(b, Decl(arrayLiteralSpread.ts, 14, 7), Decl(arrayLiteralSpread.ts, 15, 7)) +} + +function f2() { +>f2 : Symbol(f2, Decl(arrayLiteralSpread.ts, 16, 1)) + + var a = [...[...[...[...[...[]]]]]]; +>a : Symbol(a, Decl(arrayLiteralSpread.ts, 19, 7)) + + var b = [...[...[...[...[...[5]]]]]]; +>b : Symbol(b, Decl(arrayLiteralSpread.ts, 20, 7)) +} + diff --git a/tests/baselines/reference/arrayLiteralSpread.types b/tests/baselines/reference/arrayLiteralSpread.types index c26e432ef5508..7b9a34c0abee0 100644 --- a/tests/baselines/reference/arrayLiteralSpread.types +++ b/tests/baselines/reference/arrayLiteralSpread.types @@ -1,108 +1,108 @@ === tests/cases/conformance/es6/spread/arrayLiteralSpread.ts === function f0() { ->f0 : () => void, Symbol(f0, Decl(arrayLiteralSpread.ts, 0, 0)) +>f0 : () => void var a = [1, 2, 3]; ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number var a1 = [...a]; ->a1 : number[], Symbol(a1, Decl(arrayLiteralSpread.ts, 2, 7)) +>a1 : number[] >[...a] : number[] >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] var a2 = [1, ...a]; ->a2 : number[], Symbol(a2, Decl(arrayLiteralSpread.ts, 3, 7)) +>a2 : number[] >[1, ...a] : number[] >1 : number >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] var a3 = [1, 2, ...a]; ->a3 : number[], Symbol(a3, Decl(arrayLiteralSpread.ts, 4, 7)) +>a3 : number[] >[1, 2, ...a] : number[] >1 : number >2 : number >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] var a4 = [...a, 1]; ->a4 : number[], Symbol(a4, Decl(arrayLiteralSpread.ts, 5, 7)) +>a4 : number[] >[...a, 1] : number[] >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >1 : number var a5 = [...a, 1, 2]; ->a5 : number[], Symbol(a5, Decl(arrayLiteralSpread.ts, 6, 7)) +>a5 : number[] >[...a, 1, 2] : number[] >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >1 : number >2 : number var a6 = [1, 2, ...a, 1, 2]; ->a6 : number[], Symbol(a6, Decl(arrayLiteralSpread.ts, 7, 7)) +>a6 : number[] >[1, 2, ...a, 1, 2] : number[] >1 : number >2 : number >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >1 : number >2 : number var a7 = [1, ...a, 2, ...a]; ->a7 : number[], Symbol(a7, Decl(arrayLiteralSpread.ts, 8, 7)) +>a7 : number[] >[1, ...a, 2, ...a] : number[] >1 : number >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >2 : number >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] var a8 = [...a, ...a, ...a]; ->a8 : number[], Symbol(a8, Decl(arrayLiteralSpread.ts, 9, 7)) +>a8 : number[] >[...a, ...a, ...a] : number[] >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 1, 7)) +>a : number[] } function f1() { ->f1 : () => void, Symbol(f1, Decl(arrayLiteralSpread.ts, 10, 1)) +>f1 : () => void var a = [1, 2, 3]; ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 13, 7)) +>a : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number var b = ["hello", ...a, true]; ->b : (string | number | boolean)[], Symbol(b, Decl(arrayLiteralSpread.ts, 14, 7), Decl(arrayLiteralSpread.ts, 15, 7)) +>b : (string | number | boolean)[] >["hello", ...a, true] : (string | number | boolean)[] >"hello" : string >...a : number ->a : number[], Symbol(a, Decl(arrayLiteralSpread.ts, 13, 7)) +>a : number[] >true : boolean var b: (string | number | boolean)[]; ->b : (string | number | boolean)[], Symbol(b, Decl(arrayLiteralSpread.ts, 14, 7), Decl(arrayLiteralSpread.ts, 15, 7)) +>b : (string | number | boolean)[] } function f2() { ->f2 : () => void, Symbol(f2, Decl(arrayLiteralSpread.ts, 16, 1)) +>f2 : () => void var a = [...[...[...[...[...[]]]]]]; ->a : any[], Symbol(a, Decl(arrayLiteralSpread.ts, 19, 7)) +>a : any[] >[...[...[...[...[...[]]]]]] : undefined[] >...[...[...[...[...[]]]]] : undefined >[...[...[...[...[]]]]] : undefined[] @@ -116,7 +116,7 @@ function f2() { >[] : undefined[] var b = [...[...[...[...[...[5]]]]]]; ->b : number[], Symbol(b, Decl(arrayLiteralSpread.ts, 20, 7)) +>b : number[] >[...[...[...[...[...[5]]]]]] : number[] >...[...[...[...[...[5]]]]] : number >[...[...[...[...[5]]]]] : number[] diff --git a/tests/baselines/reference/arrayLiteralTypeInference.symbols b/tests/baselines/reference/arrayLiteralTypeInference.symbols new file mode 100644 index 0000000000000..005cb57f6c402 --- /dev/null +++ b/tests/baselines/reference/arrayLiteralTypeInference.symbols @@ -0,0 +1,113 @@ +=== tests/cases/compiler/arrayLiteralTypeInference.ts === +class Action { +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 0, 14)) +} + +class ActionA extends Action { +>ActionA : Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + value: string; +>value : Symbol(value, Decl(arrayLiteralTypeInference.ts, 4, 30)) +} + +class ActionB extends Action { +>ActionB : Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + trueNess: boolean; +>trueNess : Symbol(trueNess, Decl(arrayLiteralTypeInference.ts, 8, 30)) +} + +var x1: Action[] = [ +>x1 : Symbol(x1, Decl(arrayLiteralTypeInference.ts, 12, 3)) +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + { id: 2, trueness: false }, +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 13, 5)) +>trueness : Symbol(trueness, Decl(arrayLiteralTypeInference.ts, 13, 12)) + + { id: 3, name: "three" } +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 14, 5)) +>name : Symbol(name, Decl(arrayLiteralTypeInference.ts, 14, 12)) + +] + +var x2: Action[] = [ +>x2 : Symbol(x2, Decl(arrayLiteralTypeInference.ts, 17, 3)) +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + new ActionA(), +>ActionA : Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) + + new ActionB() +>ActionB : Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) + +] + +var x3: Action[] = [ +>x3 : Symbol(x3, Decl(arrayLiteralTypeInference.ts, 22, 3)) +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + new Action(), +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + new ActionA(), +>ActionA : Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) + + new ActionB() +>ActionB : Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) + +] + +var z1: { id: number }[] = +>z1 : Symbol(z1, Decl(arrayLiteralTypeInference.ts, 28, 3)) +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 28, 9)) + + [ + { id: 2, trueness: false }, +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 30, 9)) +>trueness : Symbol(trueness, Decl(arrayLiteralTypeInference.ts, 30, 16)) + + { id: 3, name: "three" } +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 31, 9)) +>name : Symbol(name, Decl(arrayLiteralTypeInference.ts, 31, 16)) + + ] + +var z2: { id: number }[] = +>z2 : Symbol(z2, Decl(arrayLiteralTypeInference.ts, 34, 3)) +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 34, 9)) + + [ + new ActionA(), +>ActionA : Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) + + new ActionB() +>ActionB : Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) + + ] + +var z3: { id: number }[] = +>z3 : Symbol(z3, Decl(arrayLiteralTypeInference.ts, 40, 3)) +>id : Symbol(id, Decl(arrayLiteralTypeInference.ts, 40, 9)) + + [ + new Action(), +>Action : Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) + + new ActionA(), +>ActionA : Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) + + new ActionB() +>ActionB : Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) + + ] + + + + + diff --git a/tests/baselines/reference/arrayLiteralTypeInference.types b/tests/baselines/reference/arrayLiteralTypeInference.types index 7ad2c649e4d95..660592fceb896 100644 --- a/tests/baselines/reference/arrayLiteralTypeInference.types +++ b/tests/baselines/reference/arrayLiteralTypeInference.types @@ -1,140 +1,140 @@ === tests/cases/compiler/arrayLiteralTypeInference.ts === class Action { ->Action : Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>Action : Action id: number; ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 0, 14)) +>id : number } class ActionA extends Action { ->ActionA : ActionA, Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) ->Action : Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>ActionA : ActionA +>Action : Action value: string; ->value : string, Symbol(value, Decl(arrayLiteralTypeInference.ts, 4, 30)) +>value : string } class ActionB extends Action { ->ActionB : ActionB, Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) ->Action : Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>ActionB : ActionB +>Action : Action trueNess: boolean; ->trueNess : boolean, Symbol(trueNess, Decl(arrayLiteralTypeInference.ts, 8, 30)) +>trueNess : boolean } var x1: Action[] = [ ->x1 : Action[], Symbol(x1, Decl(arrayLiteralTypeInference.ts, 12, 3)) ->Action : Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>x1 : Action[] +>Action : Action >[ { id: 2, trueness: false }, { id: 3, name: "three" }] : ({ id: number; trueness: boolean; } | { id: number; name: string; })[] { id: 2, trueness: false }, >{ id: 2, trueness: false } : { id: number; trueness: boolean; } ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 13, 5)) +>id : number >2 : number ->trueness : boolean, Symbol(trueness, Decl(arrayLiteralTypeInference.ts, 13, 12)) +>trueness : boolean >false : boolean { id: 3, name: "three" } >{ id: 3, name: "three" } : { id: number; name: string; } ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 14, 5)) +>id : number >3 : number ->name : string, Symbol(name, Decl(arrayLiteralTypeInference.ts, 14, 12)) +>name : string >"three" : string ] var x2: Action[] = [ ->x2 : Action[], Symbol(x2, Decl(arrayLiteralTypeInference.ts, 17, 3)) ->Action : Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>x2 : Action[] +>Action : Action >[ new ActionA(), new ActionB()] : (ActionA | ActionB)[] new ActionA(), >new ActionA() : ActionA ->ActionA : typeof ActionA, Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) +>ActionA : typeof ActionA new ActionB() >new ActionB() : ActionB ->ActionB : typeof ActionB, Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) +>ActionB : typeof ActionB ] var x3: Action[] = [ ->x3 : Action[], Symbol(x3, Decl(arrayLiteralTypeInference.ts, 22, 3)) ->Action : Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>x3 : Action[] +>Action : Action >[ new Action(), new ActionA(), new ActionB()] : Action[] new Action(), >new Action() : Action ->Action : typeof Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>Action : typeof Action new ActionA(), >new ActionA() : ActionA ->ActionA : typeof ActionA, Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) +>ActionA : typeof ActionA new ActionB() >new ActionB() : ActionB ->ActionB : typeof ActionB, Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) +>ActionB : typeof ActionB ] var z1: { id: number }[] = ->z1 : { id: number; }[], Symbol(z1, Decl(arrayLiteralTypeInference.ts, 28, 3)) ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 28, 9)) +>z1 : { id: number; }[] +>id : number [ >[ { id: 2, trueness: false }, { id: 3, name: "three" } ] : ({ id: number; trueness: boolean; } | { id: number; name: string; })[] { id: 2, trueness: false }, >{ id: 2, trueness: false } : { id: number; trueness: boolean; } ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 30, 9)) +>id : number >2 : number ->trueness : boolean, Symbol(trueness, Decl(arrayLiteralTypeInference.ts, 30, 16)) +>trueness : boolean >false : boolean { id: 3, name: "three" } >{ id: 3, name: "three" } : { id: number; name: string; } ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 31, 9)) +>id : number >3 : number ->name : string, Symbol(name, Decl(arrayLiteralTypeInference.ts, 31, 16)) +>name : string >"three" : string ] var z2: { id: number }[] = ->z2 : { id: number; }[], Symbol(z2, Decl(arrayLiteralTypeInference.ts, 34, 3)) ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 34, 9)) +>z2 : { id: number; }[] +>id : number [ >[ new ActionA(), new ActionB() ] : (ActionA | ActionB)[] new ActionA(), >new ActionA() : ActionA ->ActionA : typeof ActionA, Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) +>ActionA : typeof ActionA new ActionB() >new ActionB() : ActionB ->ActionB : typeof ActionB, Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) +>ActionB : typeof ActionB ] var z3: { id: number }[] = ->z3 : { id: number; }[], Symbol(z3, Decl(arrayLiteralTypeInference.ts, 40, 3)) ->id : number, Symbol(id, Decl(arrayLiteralTypeInference.ts, 40, 9)) +>z3 : { id: number; }[] +>id : number [ >[ new Action(), new ActionA(), new ActionB() ] : Action[] new Action(), >new Action() : Action ->Action : typeof Action, Symbol(Action, Decl(arrayLiteralTypeInference.ts, 0, 0)) +>Action : typeof Action new ActionA(), >new ActionA() : ActionA ->ActionA : typeof ActionA, Symbol(ActionA, Decl(arrayLiteralTypeInference.ts, 2, 1)) +>ActionA : typeof ActionA new ActionB() >new ActionB() : ActionB ->ActionB : typeof ActionB, Symbol(ActionB, Decl(arrayLiteralTypeInference.ts, 6, 1)) +>ActionB : typeof ActionB ] diff --git a/tests/baselines/reference/arrayLiteralWidened.symbols b/tests/baselines/reference/arrayLiteralWidened.symbols new file mode 100644 index 0000000000000..ba058aeded114 --- /dev/null +++ b/tests/baselines/reference/arrayLiteralWidened.symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/types/typeRelationships/widenedTypes/arrayLiteralWidened.ts === +// array literals are widened upon assignment according to their element type + +var a = []; // any[] +>a : Symbol(a, Decl(arrayLiteralWidened.ts, 2, 3), Decl(arrayLiteralWidened.ts, 4, 3), Decl(arrayLiteralWidened.ts, 5, 3)) + +var a = [null, null]; +>a : Symbol(a, Decl(arrayLiteralWidened.ts, 2, 3), Decl(arrayLiteralWidened.ts, 4, 3), Decl(arrayLiteralWidened.ts, 5, 3)) + +var a = [undefined, undefined]; +>a : Symbol(a, Decl(arrayLiteralWidened.ts, 2, 3), Decl(arrayLiteralWidened.ts, 4, 3), Decl(arrayLiteralWidened.ts, 5, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +var b = [[], [null, null]]; // any[][] +>b : Symbol(b, Decl(arrayLiteralWidened.ts, 7, 3), Decl(arrayLiteralWidened.ts, 8, 3), Decl(arrayLiteralWidened.ts, 9, 3)) + +var b = [[], []]; +>b : Symbol(b, Decl(arrayLiteralWidened.ts, 7, 3), Decl(arrayLiteralWidened.ts, 8, 3), Decl(arrayLiteralWidened.ts, 9, 3)) + +var b = [[undefined, undefined]]; +>b : Symbol(b, Decl(arrayLiteralWidened.ts, 7, 3), Decl(arrayLiteralWidened.ts, 8, 3), Decl(arrayLiteralWidened.ts, 9, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +var c = [[[]]]; // any[][][] +>c : Symbol(c, Decl(arrayLiteralWidened.ts, 11, 3), Decl(arrayLiteralWidened.ts, 12, 3)) + +var c = [[[null]],[undefined]] +>c : Symbol(c, Decl(arrayLiteralWidened.ts, 11, 3), Decl(arrayLiteralWidened.ts, 12, 3)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/arrayLiteralWidened.types b/tests/baselines/reference/arrayLiteralWidened.types index b95f3d538f493..9599db2dff53b 100644 --- a/tests/baselines/reference/arrayLiteralWidened.types +++ b/tests/baselines/reference/arrayLiteralWidened.types @@ -2,23 +2,23 @@ // array literals are widened upon assignment according to their element type var a = []; // any[] ->a : any[], Symbol(a, Decl(arrayLiteralWidened.ts, 2, 3), Decl(arrayLiteralWidened.ts, 4, 3), Decl(arrayLiteralWidened.ts, 5, 3)) +>a : any[] >[] : undefined[] var a = [null, null]; ->a : any[], Symbol(a, Decl(arrayLiteralWidened.ts, 2, 3), Decl(arrayLiteralWidened.ts, 4, 3), Decl(arrayLiteralWidened.ts, 5, 3)) +>a : any[] >[null, null] : null[] >null : null >null : null var a = [undefined, undefined]; ->a : any[], Symbol(a, Decl(arrayLiteralWidened.ts, 2, 3), Decl(arrayLiteralWidened.ts, 4, 3), Decl(arrayLiteralWidened.ts, 5, 3)) +>a : any[] >[undefined, undefined] : undefined[] ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined var b = [[], [null, null]]; // any[][] ->b : any[][], Symbol(b, Decl(arrayLiteralWidened.ts, 7, 3), Decl(arrayLiteralWidened.ts, 8, 3), Decl(arrayLiteralWidened.ts, 9, 3)) +>b : any[][] >[[], [null, null]] : null[][] >[] : undefined[] >[null, null] : null[] @@ -26,30 +26,30 @@ var b = [[], [null, null]]; // any[][] >null : null var b = [[], []]; ->b : any[][], Symbol(b, Decl(arrayLiteralWidened.ts, 7, 3), Decl(arrayLiteralWidened.ts, 8, 3), Decl(arrayLiteralWidened.ts, 9, 3)) +>b : any[][] >[[], []] : undefined[][] >[] : undefined[] >[] : undefined[] var b = [[undefined, undefined]]; ->b : any[][], Symbol(b, Decl(arrayLiteralWidened.ts, 7, 3), Decl(arrayLiteralWidened.ts, 8, 3), Decl(arrayLiteralWidened.ts, 9, 3)) +>b : any[][] >[[undefined, undefined]] : undefined[][] >[undefined, undefined] : undefined[] ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined var c = [[[]]]; // any[][][] ->c : any[][][], Symbol(c, Decl(arrayLiteralWidened.ts, 11, 3), Decl(arrayLiteralWidened.ts, 12, 3)) +>c : any[][][] >[[[]]] : undefined[][][] >[[]] : undefined[][] >[] : undefined[] var c = [[[null]],[undefined]] ->c : any[][][], Symbol(c, Decl(arrayLiteralWidened.ts, 11, 3), Decl(arrayLiteralWidened.ts, 12, 3)) +>c : any[][][] >[[[null]],[undefined]] : null[][][] >[[null]] : null[][] >[null] : null[] >null : null >[undefined] : undefined[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined diff --git a/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.symbols b/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.symbols new file mode 100644 index 0000000000000..071596c9af1e0 --- /dev/null +++ b/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.symbols @@ -0,0 +1,64 @@ +=== tests/cases/conformance/types/typeRelationships/bestCommonType/arrayLiteralWithMultipleBestCommonTypes.ts === +// when multiple best common types exist we will choose the first candidate + +var a: { x: number; y?: number }; +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 8)) +>y : Symbol(y, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 19)) + +var b: { x: number; z?: number }; +>b : Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 8)) +>z : Symbol(z, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 19)) + +var c: { x: number; a?: number }; +>c : Symbol(c, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 3)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 8)) +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 19)) + +var as = [a, b]; // { x: number; y?: number };[] +>as : Symbol(as, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 6, 3)) +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) +>b : Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) + +var bs = [b, a]; // { x: number; z?: number };[] +>bs : Symbol(bs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 7, 3)) +>b : Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) + +var cs = [a, b, c]; // { x: number; y?: number };[] +>cs : Symbol(cs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 8, 3)) +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) +>b : Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) +>c : Symbol(c, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 3)) + +var ds = [(x: Object) => 1, (x: string) => 2]; // { (x:Object) => number }[] +>ds : Symbol(ds, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 10, 3)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 10, 11)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 10, 29)) + +var es = [(x: string) => 2, (x: Object) => 1]; // { (x:string) => number }[] +>es : Symbol(es, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 11, 3)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 11, 11)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 11, 29)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var fs = [(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2]; // (a: { x: number; y?: number }) => number[] +>fs : Symbol(fs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 3)) +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 11)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 15)) +>y : Symbol(y, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 26)) +>b : Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 48)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 52)) +>z : Symbol(z, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 63)) + +var gs = [(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1]; // (b: { x: number; z?: number }) => number[] +>gs : Symbol(gs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 3)) +>b : Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 11)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 15)) +>z : Symbol(z, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 26)) +>a : Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 48)) +>x : Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 52)) +>y : Symbol(y, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 63)) + diff --git a/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types b/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types index 5e34c3a60abe0..aad515b62ee5f 100644 --- a/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types +++ b/tests/baselines/reference/arrayLiteralWithMultipleBestCommonTypes.types @@ -2,86 +2,86 @@ // when multiple best common types exist we will choose the first candidate var a: { x: number; y?: number }; ->a : { x: number; y?: number; }, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 8)) ->y : number, Symbol(y, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 19)) +>a : { x: number; y?: number; } +>x : number +>y : number var b: { x: number; z?: number }; ->b : { x: number; z?: number; }, Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 8)) ->z : number, Symbol(z, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 19)) +>b : { x: number; z?: number; } +>x : number +>z : number var c: { x: number; a?: number }; ->c : { x: number; a?: number; }, Symbol(c, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 3)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 8)) ->a : number, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 19)) +>c : { x: number; a?: number; } +>x : number +>a : number var as = [a, b]; // { x: number; y?: number };[] ->as : ({ x: number; y?: number; } | { x: number; z?: number; })[], Symbol(as, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 6, 3)) +>as : ({ x: number; y?: number; } | { x: number; z?: number; })[] >[a, b] : ({ x: number; y?: number; } | { x: number; z?: number; })[] ->a : { x: number; y?: number; }, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) ->b : { x: number; z?: number; }, Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) +>a : { x: number; y?: number; } +>b : { x: number; z?: number; } var bs = [b, a]; // { x: number; z?: number };[] ->bs : ({ x: number; y?: number; } | { x: number; z?: number; })[], Symbol(bs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 7, 3)) +>bs : ({ x: number; y?: number; } | { x: number; z?: number; })[] >[b, a] : ({ x: number; y?: number; } | { x: number; z?: number; })[] ->b : { x: number; z?: number; }, Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) ->a : { x: number; y?: number; }, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) +>b : { x: number; z?: number; } +>a : { x: number; y?: number; } var cs = [a, b, c]; // { x: number; y?: number };[] ->cs : ({ x: number; y?: number; } | { x: number; z?: number; } | { x: number; a?: number; })[], Symbol(cs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 8, 3)) +>cs : ({ x: number; y?: number; } | { x: number; z?: number; } | { x: number; a?: number; })[] >[a, b, c] : ({ x: number; y?: number; } | { x: number; z?: number; } | { x: number; a?: number; })[] ->a : { x: number; y?: number; }, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 2, 3)) ->b : { x: number; z?: number; }, Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 3, 3)) ->c : { x: number; a?: number; }, Symbol(c, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 4, 3)) +>a : { x: number; y?: number; } +>b : { x: number; z?: number; } +>c : { x: number; a?: number; } var ds = [(x: Object) => 1, (x: string) => 2]; // { (x:Object) => number }[] ->ds : ((x: Object) => number)[], Symbol(ds, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 10, 3)) +>ds : ((x: Object) => number)[] >[(x: Object) => 1, (x: string) => 2] : ((x: Object) => number)[] >(x: Object) => 1 : (x: Object) => number ->x : Object, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 10, 11)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Object +>Object : Object >1 : number >(x: string) => 2 : (x: string) => number ->x : string, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 10, 29)) +>x : string >2 : number var es = [(x: string) => 2, (x: Object) => 1]; // { (x:string) => number }[] ->es : ((x: string) => number)[], Symbol(es, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 11, 3)) +>es : ((x: string) => number)[] >[(x: string) => 2, (x: Object) => 1] : ((x: string) => number)[] >(x: string) => 2 : (x: string) => number ->x : string, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 11, 11)) +>x : string >2 : number >(x: Object) => 1 : (x: Object) => number ->x : Object, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 11, 29)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Object +>Object : Object >1 : number var fs = [(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2]; // (a: { x: number; y?: number }) => number[] ->fs : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[], Symbol(fs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 3)) +>fs : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[] >[(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2] : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[] >(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number; }) => number ->a : { x: number; y?: number; }, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 11)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 15)) ->y : number, Symbol(y, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 26)) +>a : { x: number; y?: number; } +>x : number +>y : number >1 : number >(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number; }) => number ->b : { x: number; z?: number; }, Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 48)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 52)) ->z : number, Symbol(z, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 12, 63)) +>b : { x: number; z?: number; } +>x : number +>z : number >2 : number var gs = [(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1]; // (b: { x: number; z?: number }) => number[] ->gs : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[], Symbol(gs, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 3)) +>gs : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[] >[(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1] : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[] >(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number; }) => number ->b : { x: number; z?: number; }, Symbol(b, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 11)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 15)) ->z : number, Symbol(z, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 26)) +>b : { x: number; z?: number; } +>x : number +>z : number >2 : number >(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number; }) => number ->a : { x: number; y?: number; }, Symbol(a, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 48)) ->x : number, Symbol(x, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 52)) ->y : number, Symbol(y, Decl(arrayLiteralWithMultipleBestCommonTypes.ts, 13, 63)) +>a : { x: number; y?: number; } +>x : number +>y : number >1 : number diff --git a/tests/baselines/reference/arrayLiterals.symbols b/tests/baselines/reference/arrayLiterals.symbols new file mode 100644 index 0000000000000..b338e7ff6e6c5 --- /dev/null +++ b/tests/baselines/reference/arrayLiterals.symbols @@ -0,0 +1,94 @@ +=== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals.ts === +// Empty array literal with no contextual type has type Undefined[] + +var arr1= [[], [1], ['']]; +>arr1 : Symbol(arr1, Decl(arrayLiterals.ts, 2, 3)) + +var arr2 = [[null], [1], ['']]; +>arr2 : Symbol(arr2, Decl(arrayLiterals.ts, 4, 3)) + + +// Array literal with elements of only EveryType E has type E[] +var stringArrArr = [[''], [""]]; +>stringArrArr : Symbol(stringArrArr, Decl(arrayLiterals.ts, 8, 3)) + +var stringArr = ['', ""]; +>stringArr : Symbol(stringArr, Decl(arrayLiterals.ts, 10, 3)) + +var numberArr = [0, 0.0, 0x00, 1e1]; +>numberArr : Symbol(numberArr, Decl(arrayLiterals.ts, 12, 3)) + +var boolArr = [false, true, false, true]; +>boolArr : Symbol(boolArr, Decl(arrayLiterals.ts, 14, 3)) + +class C { private p; } +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>p : Symbol(p, Decl(arrayLiterals.ts, 16, 9)) + +var classArr = [new C(), new C()]; +>classArr : Symbol(classArr, Decl(arrayLiterals.ts, 17, 3)) +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) + +var classTypeArray = [C, C, C]; +>classTypeArray : Symbol(classTypeArray, Decl(arrayLiterals.ts, 19, 3), Decl(arrayLiterals.ts, 20, 3)) +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) + +var classTypeArray: Array; // Should OK, not be a parse error +>classTypeArray : Symbol(classTypeArray, Decl(arrayLiterals.ts, 19, 3), Decl(arrayLiterals.ts, 20, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>C : Symbol(C, Decl(arrayLiterals.ts, 14, 41)) + +// Contextual type C with numeric index signature makes array literal of EveryType E of type BCT(E,C)[] +var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; +>context1 : Symbol(context1, Decl(arrayLiterals.ts, 23, 3)) +>n : Symbol(n, Decl(arrayLiterals.ts, 23, 17)) +>a : Symbol(a, Decl(arrayLiterals.ts, 23, 30)) +>b : Symbol(b, Decl(arrayLiterals.ts, 23, 41)) +>a : Symbol(a, Decl(arrayLiterals.ts, 23, 62)) +>b : Symbol(b, Decl(arrayLiterals.ts, 23, 69)) +>c : Symbol(c, Decl(arrayLiterals.ts, 23, 75)) +>a : Symbol(a, Decl(arrayLiterals.ts, 23, 86)) +>b : Symbol(b, Decl(arrayLiterals.ts, 23, 93)) +>c : Symbol(c, Decl(arrayLiterals.ts, 23, 99)) + +var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; +>context2 : Symbol(context2, Decl(arrayLiterals.ts, 24, 3)) +>a : Symbol(a, Decl(arrayLiterals.ts, 24, 17)) +>b : Symbol(b, Decl(arrayLiterals.ts, 24, 24)) +>c : Symbol(c, Decl(arrayLiterals.ts, 24, 30)) +>a : Symbol(a, Decl(arrayLiterals.ts, 24, 41)) +>b : Symbol(b, Decl(arrayLiterals.ts, 24, 48)) +>c : Symbol(c, Decl(arrayLiterals.ts, 24, 54)) + +// Contextual type C with numeric index signature of type Base makes array literal of Derived have type Base[] +class Base { private p; } +>Base : Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>p : Symbol(p, Decl(arrayLiterals.ts, 27, 12)) + +class Derived1 extends Base { private m }; +>Derived1 : Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) +>Base : Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>m : Symbol(m, Decl(arrayLiterals.ts, 28, 29)) + +class Derived2 extends Base { private n }; +>Derived2 : Symbol(Derived2, Decl(arrayLiterals.ts, 28, 42)) +>Base : Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>n : Symbol(n, Decl(arrayLiterals.ts, 29, 29)) + +var context3: Base[] = [new Derived1(), new Derived2()]; +>context3 : Symbol(context3, Decl(arrayLiterals.ts, 30, 3)) +>Base : Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>Derived1 : Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) +>Derived2 : Symbol(Derived2, Decl(arrayLiterals.ts, 28, 42)) + +// Contextual type C with numeric index signature of type Base makes array literal of Derived1 and Derived2 have type Base[] +var context4: Base[] = [new Derived1(), new Derived1()]; +>context4 : Symbol(context4, Decl(arrayLiterals.ts, 33, 3)) +>Base : Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>Derived1 : Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) +>Derived1 : Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) + + diff --git a/tests/baselines/reference/arrayLiterals.types b/tests/baselines/reference/arrayLiterals.types index 071ce5b155df5..841de336965c9 100644 --- a/tests/baselines/reference/arrayLiterals.types +++ b/tests/baselines/reference/arrayLiterals.types @@ -2,7 +2,7 @@ // Empty array literal with no contextual type has type Undefined[] var arr1= [[], [1], ['']]; ->arr1 : (string[] | number[])[], Symbol(arr1, Decl(arrayLiterals.ts, 2, 3)) +>arr1 : (string[] | number[])[] >[[], [1], ['']] : (string[] | number[])[] >[] : undefined[] >[1] : number[] @@ -11,7 +11,7 @@ var arr1= [[], [1], ['']]; >'' : string var arr2 = [[null], [1], ['']]; ->arr2 : (string[] | number[])[], Symbol(arr2, Decl(arrayLiterals.ts, 4, 3)) +>arr2 : (string[] | number[])[] >[[null], [1], ['']] : (string[] | number[])[] >[null] : null[] >null : null @@ -23,7 +23,7 @@ var arr2 = [[null], [1], ['']]; // Array literal with elements of only EveryType E has type E[] var stringArrArr = [[''], [""]]; ->stringArrArr : string[][], Symbol(stringArrArr, Decl(arrayLiterals.ts, 8, 3)) +>stringArrArr : string[][] >[[''], [""]] : string[][] >[''] : string[] >'' : string @@ -31,13 +31,13 @@ var stringArrArr = [[''], [""]]; >"" : string var stringArr = ['', ""]; ->stringArr : string[], Symbol(stringArr, Decl(arrayLiterals.ts, 10, 3)) +>stringArr : string[] >['', ""] : string[] >'' : string >"" : string var numberArr = [0, 0.0, 0x00, 1e1]; ->numberArr : number[], Symbol(numberArr, Decl(arrayLiterals.ts, 12, 3)) +>numberArr : number[] >[0, 0.0, 0x00, 1e1] : number[] >0 : number >0.0 : number @@ -45,7 +45,7 @@ var numberArr = [0, 0.0, 0x00, 1e1]; >1e1 : number var boolArr = [false, true, false, true]; ->boolArr : boolean[], Symbol(boolArr, Decl(arrayLiterals.ts, 14, 3)) +>boolArr : boolean[] >[false, true, false, true] : boolean[] >false : boolean >true : boolean @@ -53,101 +53,101 @@ var boolArr = [false, true, false, true]; >true : boolean class C { private p; } ->C : C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->p : any, Symbol(p, Decl(arrayLiterals.ts, 16, 9)) +>C : C +>p : any var classArr = [new C(), new C()]; ->classArr : C[], Symbol(classArr, Decl(arrayLiterals.ts, 17, 3)) +>classArr : C[] >[new C(), new C()] : C[] >new C() : C ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>C : typeof C >new C() : C ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>C : typeof C var classTypeArray = [C, C, C]; ->classTypeArray : typeof C[], Symbol(classTypeArray, Decl(arrayLiterals.ts, 19, 3), Decl(arrayLiterals.ts, 20, 3)) +>classTypeArray : typeof C[] >[C, C, C] : typeof C[] ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>C : typeof C +>C : typeof C +>C : typeof C var classTypeArray: Array; // Should OK, not be a parse error ->classTypeArray : typeof C[], Symbol(classTypeArray, Decl(arrayLiterals.ts, 19, 3), Decl(arrayLiterals.ts, 20, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) +>classTypeArray : typeof C[] +>Array : T[] +>C : typeof C // Contextual type C with numeric index signature makes array literal of EveryType E of type BCT(E,C)[] var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; ->context1 : { [n: number]: { a: string; b: number; }; }, Symbol(context1, Decl(arrayLiterals.ts, 23, 3)) ->n : number, Symbol(n, Decl(arrayLiterals.ts, 23, 17)) ->a : string, Symbol(a, Decl(arrayLiterals.ts, 23, 30)) ->b : number, Symbol(b, Decl(arrayLiterals.ts, 23, 41)) +>context1 : { [n: number]: { a: string; b: number; }; } +>n : number +>a : string +>b : number >[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[] >{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 23, 62)) +>a : string >'' : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 23, 69)) +>b : number >0 : number ->c : string, Symbol(c, Decl(arrayLiterals.ts, 23, 75)) +>c : string >'' : string >{ a: "", b: 3, c: 0 } : { a: string; b: number; c: number; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 23, 86)) +>a : string >"" : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 23, 93)) +>b : number >3 : number ->c : number, Symbol(c, Decl(arrayLiterals.ts, 23, 99)) +>c : number >0 : number var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; ->context2 : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[], Symbol(context2, Decl(arrayLiterals.ts, 24, 3)) +>context2 : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[] >[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[] >{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 24, 17)) +>a : string >'' : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 24, 24)) +>b : number >0 : number ->c : string, Symbol(c, Decl(arrayLiterals.ts, 24, 30)) +>c : string >'' : string >{ a: "", b: 3, c: 0 } : { a: string; b: number; c: number; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 24, 41)) +>a : string >"" : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 24, 48)) +>b : number >3 : number ->c : number, Symbol(c, Decl(arrayLiterals.ts, 24, 54)) +>c : number >0 : number // Contextual type C with numeric index signature of type Base makes array literal of Derived have type Base[] class Base { private p; } ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->p : any, Symbol(p, Decl(arrayLiterals.ts, 27, 12)) +>Base : Base +>p : any class Derived1 extends Base { private m }; ->Derived1 : Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->m : any, Symbol(m, Decl(arrayLiterals.ts, 28, 29)) +>Derived1 : Derived1 +>Base : Base +>m : any class Derived2 extends Base { private n }; ->Derived2 : Derived2, Symbol(Derived2, Decl(arrayLiterals.ts, 28, 42)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->n : any, Symbol(n, Decl(arrayLiterals.ts, 29, 29)) +>Derived2 : Derived2 +>Base : Base +>n : any var context3: Base[] = [new Derived1(), new Derived2()]; ->context3 : Base[], Symbol(context3, Decl(arrayLiterals.ts, 30, 3)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>context3 : Base[] +>Base : Base >[new Derived1(), new Derived2()] : (Derived1 | Derived2)[] >new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) +>Derived1 : typeof Derived1 >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(arrayLiterals.ts, 28, 42)) +>Derived2 : typeof Derived2 // Contextual type C with numeric index signature of type Base makes array literal of Derived1 and Derived2 have type Base[] var context4: Base[] = [new Derived1(), new Derived1()]; ->context4 : Base[], Symbol(context4, Decl(arrayLiterals.ts, 33, 3)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) +>context4 : Base[] +>Base : Base >[new Derived1(), new Derived1()] : Derived1[] >new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) +>Derived1 : typeof Derived1 >new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) +>Derived1 : typeof Derived1 diff --git a/tests/baselines/reference/arrayLiterals.types.pull b/tests/baselines/reference/arrayLiterals.types.pull deleted file mode 100644 index e878382e6ff5e..0000000000000 --- a/tests/baselines/reference/arrayLiterals.types.pull +++ /dev/null @@ -1,153 +0,0 @@ -=== tests/cases/conformance/expressions/arrayLiterals/arrayLiterals.ts === -// Empty array literal with no contextual type has type Undefined[] - -var arr1= [[], [1], ['']]; ->arr1 : (number[] | string[])[], Symbol(arr1, Decl(arrayLiterals.ts, 2, 3)) ->[[], [1], ['']] : (number[] | string[])[] ->[] : undefined[] ->[1] : number[] ->1 : number ->[''] : string[] ->'' : string - -var arr2 = [[null], [1], ['']]; ->arr2 : (number[] | string[])[], Symbol(arr2, Decl(arrayLiterals.ts, 4, 3)) ->[[null], [1], ['']] : (number[] | string[])[] ->[null] : null[] ->null : null ->[1] : number[] ->1 : number ->[''] : string[] ->'' : string - - -// Array literal with elements of only EveryType E has type E[] -var stringArrArr = [[''], [""]]; ->stringArrArr : string[][], Symbol(stringArrArr, Decl(arrayLiterals.ts, 8, 3)) ->[[''], [""]] : string[][] ->[''] : string[] ->'' : string ->[""] : string[] ->"" : string - -var stringArr = ['', ""]; ->stringArr : string[], Symbol(stringArr, Decl(arrayLiterals.ts, 10, 3)) ->['', ""] : string[] ->'' : string ->"" : string - -var numberArr = [0, 0.0, 0x00, 1e1]; ->numberArr : number[], Symbol(numberArr, Decl(arrayLiterals.ts, 12, 3)) ->[0, 0.0, 0x00, 1e1] : number[] ->0 : number ->0.0 : number ->0x00 : number ->1e1 : number - -var boolArr = [false, true, false, true]; ->boolArr : boolean[], Symbol(boolArr, Decl(arrayLiterals.ts, 14, 3)) ->[false, true, false, true] : boolean[] ->false : boolean ->true : boolean ->false : boolean ->true : boolean - -class C { private p; } ->C : C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->p : any, Symbol(p, Decl(arrayLiterals.ts, 16, 9)) - -var classArr = [new C(), new C()]; ->classArr : C[], Symbol(classArr, Decl(arrayLiterals.ts, 17, 3)) ->[new C(), new C()] : C[] ->new C() : C ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->new C() : C ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) - -var classTypeArray = [C, C, C]; ->classTypeArray : typeof C[], Symbol(classTypeArray, Decl(arrayLiterals.ts, 19, 3), Decl(arrayLiterals.ts, 20, 3)) ->[C, C, C] : typeof C[] ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) - -var classTypeArray: Array; // Should OK, not be a parse error ->classTypeArray : typeof C[], Symbol(classTypeArray, Decl(arrayLiterals.ts, 19, 3), Decl(arrayLiterals.ts, 20, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->C : typeof C, Symbol(C, Decl(arrayLiterals.ts, 14, 41)) - -// Contextual type C with numeric index signature makes array literal of EveryType E of type BCT(E,C)[] -var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; ->context1 : { [n: number]: { a: string; b: number; }; }, Symbol(context1, Decl(arrayLiterals.ts, 23, 3)) ->n : number, Symbol(n, Decl(arrayLiterals.ts, 23, 17)) ->a : string, Symbol(a, Decl(arrayLiterals.ts, 23, 30)) ->b : number, Symbol(b, Decl(arrayLiterals.ts, 23, 41)) ->[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[] ->{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 23, 62)) ->'' : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 23, 69)) ->0 : number ->c : string, Symbol(c, Decl(arrayLiterals.ts, 23, 75)) ->'' : string ->{ a: "", b: 3, c: 0 } : { a: string; b: number; c: number; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 23, 86)) ->"" : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 23, 93)) ->3 : number ->c : number, Symbol(c, Decl(arrayLiterals.ts, 23, 99)) ->0 : number - -var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }]; ->context2 : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[], Symbol(context2, Decl(arrayLiterals.ts, 24, 3)) ->[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[] ->{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 24, 17)) ->'' : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 24, 24)) ->0 : number ->c : string, Symbol(c, Decl(arrayLiterals.ts, 24, 30)) ->'' : string ->{ a: "", b: 3, c: 0 } : { a: string; b: number; c: number; } ->a : string, Symbol(a, Decl(arrayLiterals.ts, 24, 41)) ->"" : string ->b : number, Symbol(b, Decl(arrayLiterals.ts, 24, 48)) ->3 : number ->c : number, Symbol(c, Decl(arrayLiterals.ts, 24, 54)) ->0 : number - -// Contextual type C with numeric index signature of type Base makes array literal of Derived have type Base[] -class Base { private p; } ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->p : any, Symbol(p, Decl(arrayLiterals.ts, 27, 12)) - -class Derived1 extends Base { private m }; ->Derived1 : Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->m : any, Symbol(m, Decl(arrayLiterals.ts, 28, 29)) - -class Derived2 extends Base { private n }; ->Derived2 : Derived2, Symbol(Derived2, Decl(arrayLiterals.ts, 28, 42)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->n : any, Symbol(n, Decl(arrayLiterals.ts, 29, 29)) - -var context3: Base[] = [new Derived1(), new Derived2()]; ->context3 : Base[], Symbol(context3, Decl(arrayLiterals.ts, 30, 3)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->[new Derived1(), new Derived2()] : (Derived1 | Derived2)[] ->new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) ->new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(arrayLiterals.ts, 28, 42)) - -// Contextual type C with numeric index signature of type Base makes array literal of Derived1 and Derived2 have type Base[] -var context4: Base[] = [new Derived1(), new Derived1()]; ->context4 : Base[], Symbol(context4, Decl(arrayLiterals.ts, 33, 3)) ->Base : Base, Symbol(Base, Decl(arrayLiterals.ts, 24, 63)) ->[new Derived1(), new Derived1()] : Derived1[] ->new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) ->new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(arrayLiterals.ts, 27, 25)) - - diff --git a/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.symbols b/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.symbols new file mode 100644 index 0000000000000..cd597dc2b4ebc --- /dev/null +++ b/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.symbols @@ -0,0 +1,79 @@ +=== tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts === +class List { +>List : Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) +>T : Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 11)) + + data: T; +>data : Symbol(data, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 15)) +>T : Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 11)) + + next: List>; +>next : Symbol(next, Decl(arrayLiteralsWithRecursiveGenerics.ts, 1, 12)) +>List : Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) +>List : Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) +>T : Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 11)) +} + +class DerivedList extends List { +>DerivedList : Symbol(DerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 3, 1)) +>U : Symbol(U, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 18)) +>List : Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) +>U : Symbol(U, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 18)) + + foo: U; +>foo : Symbol(foo, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 38)) +>U : Symbol(U, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 18)) + + // next: List> +} + +class MyList { +>MyList : Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) +>T : Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 13)) + + data: T; +>data : Symbol(data, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 17)) +>T : Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 13)) + + next: MyList>; +>next : Symbol(next, Decl(arrayLiteralsWithRecursiveGenerics.ts, 11, 12)) +>MyList : Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) +>MyList : Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) +>T : Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 13)) +} + +var list: List; +>list : Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) +>List : Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) + +var list2: List; +>list2 : Symbol(list2, Decl(arrayLiteralsWithRecursiveGenerics.ts, 16, 3)) +>List : Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) + +var myList: MyList; +>myList : Symbol(myList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 17, 3)) +>MyList : Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) + +var xs = [list, myList]; // {}[] +>xs : Symbol(xs, Decl(arrayLiteralsWithRecursiveGenerics.ts, 19, 3)) +>list : Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) +>myList : Symbol(myList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 17, 3)) + +var ys = [list, list2]; // {}[] +>ys : Symbol(ys, Decl(arrayLiteralsWithRecursiveGenerics.ts, 20, 3)) +>list : Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) +>list2 : Symbol(list2, Decl(arrayLiteralsWithRecursiveGenerics.ts, 16, 3)) + +var zs = [list, null]; // List[] +>zs : Symbol(zs, Decl(arrayLiteralsWithRecursiveGenerics.ts, 21, 3)) +>list : Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) + +var myDerivedList: DerivedList; +>myDerivedList : Symbol(myDerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 23, 3)) +>DerivedList : Symbol(DerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 3, 1)) + +var as = [list, myDerivedList]; // List[] +>as : Symbol(as, Decl(arrayLiteralsWithRecursiveGenerics.ts, 24, 3)) +>list : Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) +>myDerivedList : Symbol(myDerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 23, 3)) + diff --git a/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.types b/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.types index 1161dab2b5589..9b2abf25c2d82 100644 --- a/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.types +++ b/tests/baselines/reference/arrayLiteralsWithRecursiveGenerics.types @@ -1,84 +1,84 @@ === tests/cases/conformance/types/typeRelationships/recursiveTypes/arrayLiteralsWithRecursiveGenerics.ts === class List { ->List : List, Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) ->T : T, Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 11)) +>List : List +>T : T data: T; ->data : T, Symbol(data, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 15)) ->T : T, Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 11)) +>data : T +>T : T next: List>; ->next : List>, Symbol(next, Decl(arrayLiteralsWithRecursiveGenerics.ts, 1, 12)) ->List : List, Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) ->List : List, Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) ->T : T, Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 11)) +>next : List> +>List : List +>List : List +>T : T } class DerivedList extends List { ->DerivedList : DerivedList, Symbol(DerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 3, 1)) ->U : U, Symbol(U, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 18)) ->List : List, Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) ->U : U, Symbol(U, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 18)) +>DerivedList : DerivedList +>U : U +>List : List +>U : U foo: U; ->foo : U, Symbol(foo, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 38)) ->U : U, Symbol(U, Decl(arrayLiteralsWithRecursiveGenerics.ts, 5, 18)) +>foo : U +>U : U // next: List> } class MyList { ->MyList : MyList, Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) ->T : T, Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 13)) +>MyList : MyList +>T : T data: T; ->data : T, Symbol(data, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 17)) ->T : T, Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 13)) +>data : T +>T : T next: MyList>; ->next : MyList>, Symbol(next, Decl(arrayLiteralsWithRecursiveGenerics.ts, 11, 12)) ->MyList : MyList, Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) ->MyList : MyList, Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) ->T : T, Symbol(T, Decl(arrayLiteralsWithRecursiveGenerics.ts, 10, 13)) +>next : MyList> +>MyList : MyList +>MyList : MyList +>T : T } var list: List; ->list : List, Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) ->List : List, Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) +>list : List +>List : List var list2: List; ->list2 : List, Symbol(list2, Decl(arrayLiteralsWithRecursiveGenerics.ts, 16, 3)) ->List : List, Symbol(List, Decl(arrayLiteralsWithRecursiveGenerics.ts, 0, 0)) +>list2 : List +>List : List var myList: MyList; ->myList : MyList, Symbol(myList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 17, 3)) ->MyList : MyList, Symbol(MyList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 8, 1)) +>myList : MyList +>MyList : MyList var xs = [list, myList]; // {}[] ->xs : List[], Symbol(xs, Decl(arrayLiteralsWithRecursiveGenerics.ts, 19, 3)) +>xs : List[] >[list, myList] : List[] ->list : List, Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) ->myList : MyList, Symbol(myList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 17, 3)) +>list : List +>myList : MyList var ys = [list, list2]; // {}[] ->ys : (List | List)[], Symbol(ys, Decl(arrayLiteralsWithRecursiveGenerics.ts, 20, 3)) +>ys : (List | List)[] >[list, list2] : (List | List)[] ->list : List, Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) ->list2 : List, Symbol(list2, Decl(arrayLiteralsWithRecursiveGenerics.ts, 16, 3)) +>list : List +>list2 : List var zs = [list, null]; // List[] ->zs : List[], Symbol(zs, Decl(arrayLiteralsWithRecursiveGenerics.ts, 21, 3)) +>zs : List[] >[list, null] : List[] ->list : List, Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) +>list : List >null : null var myDerivedList: DerivedList; ->myDerivedList : DerivedList, Symbol(myDerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 23, 3)) ->DerivedList : DerivedList, Symbol(DerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 3, 1)) +>myDerivedList : DerivedList +>DerivedList : DerivedList var as = [list, myDerivedList]; // List[] ->as : List[], Symbol(as, Decl(arrayLiteralsWithRecursiveGenerics.ts, 24, 3)) +>as : List[] >[list, myDerivedList] : List[] ->list : List, Symbol(list, Decl(arrayLiteralsWithRecursiveGenerics.ts, 15, 3)) ->myDerivedList : DerivedList, Symbol(myDerivedList, Decl(arrayLiteralsWithRecursiveGenerics.ts, 23, 3)) +>list : List +>myDerivedList : DerivedList diff --git a/tests/baselines/reference/arrayOfExportedClass.symbols b/tests/baselines/reference/arrayOfExportedClass.symbols new file mode 100644 index 0000000000000..3d0905a1e2d74 --- /dev/null +++ b/tests/baselines/reference/arrayOfExportedClass.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/arrayOfExportedClass_1.ts === +/// +import Car = require('arrayOfExportedClass_0'); +>Car : Symbol(Car, Decl(arrayOfExportedClass_1.ts, 0, 0)) + +class Road { +>Road : Symbol(Road, Decl(arrayOfExportedClass_1.ts, 1, 47)) + + public cars: Car[]; +>cars : Symbol(cars, Decl(arrayOfExportedClass_1.ts, 3, 12)) +>Car : Symbol(Car, Decl(arrayOfExportedClass_1.ts, 0, 0)) + + public AddCars(cars: Car[]) { +>AddCars : Symbol(AddCars, Decl(arrayOfExportedClass_1.ts, 5, 23)) +>cars : Symbol(cars, Decl(arrayOfExportedClass_1.ts, 7, 19)) +>Car : Symbol(Car, Decl(arrayOfExportedClass_1.ts, 0, 0)) + + this.cars = cars; +>this.cars : Symbol(cars, Decl(arrayOfExportedClass_1.ts, 3, 12)) +>this : Symbol(Road, Decl(arrayOfExportedClass_1.ts, 1, 47)) +>cars : Symbol(cars, Decl(arrayOfExportedClass_1.ts, 3, 12)) +>cars : Symbol(cars, Decl(arrayOfExportedClass_1.ts, 7, 19)) + } +} + +export = Road; +>Road : Symbol(Road, Decl(arrayOfExportedClass_1.ts, 1, 47)) + +=== tests/cases/compiler/arrayOfExportedClass_0.ts === +class Car { +>Car : Symbol(Car, Decl(arrayOfExportedClass_0.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(arrayOfExportedClass_0.ts, 0, 11)) +} + +export = Car; +>Car : Symbol(Car, Decl(arrayOfExportedClass_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/arrayOfExportedClass.types b/tests/baselines/reference/arrayOfExportedClass.types index 4428b37f2eddd..3d542b88d80b6 100644 --- a/tests/baselines/reference/arrayOfExportedClass.types +++ b/tests/baselines/reference/arrayOfExportedClass.types @@ -1,40 +1,40 @@ === tests/cases/compiler/arrayOfExportedClass_1.ts === /// import Car = require('arrayOfExportedClass_0'); ->Car : typeof Car, Symbol(Car, Decl(arrayOfExportedClass_1.ts, 0, 0)) +>Car : typeof Car class Road { ->Road : Road, Symbol(Road, Decl(arrayOfExportedClass_1.ts, 1, 47)) +>Road : Road public cars: Car[]; ->cars : Car[], Symbol(cars, Decl(arrayOfExportedClass_1.ts, 3, 12)) ->Car : Car, Symbol(Car, Decl(arrayOfExportedClass_1.ts, 0, 0)) +>cars : Car[] +>Car : Car public AddCars(cars: Car[]) { ->AddCars : (cars: Car[]) => void, Symbol(AddCars, Decl(arrayOfExportedClass_1.ts, 5, 23)) ->cars : Car[], Symbol(cars, Decl(arrayOfExportedClass_1.ts, 7, 19)) ->Car : Car, Symbol(Car, Decl(arrayOfExportedClass_1.ts, 0, 0)) +>AddCars : (cars: Car[]) => void +>cars : Car[] +>Car : Car this.cars = cars; >this.cars = cars : Car[] ->this.cars : Car[], Symbol(cars, Decl(arrayOfExportedClass_1.ts, 3, 12)) ->this : Road, Symbol(Road, Decl(arrayOfExportedClass_1.ts, 1, 47)) ->cars : Car[], Symbol(cars, Decl(arrayOfExportedClass_1.ts, 3, 12)) ->cars : Car[], Symbol(cars, Decl(arrayOfExportedClass_1.ts, 7, 19)) +>this.cars : Car[] +>this : Road +>cars : Car[] +>cars : Car[] } } export = Road; ->Road : Road, Symbol(Road, Decl(arrayOfExportedClass_1.ts, 1, 47)) +>Road : Road === tests/cases/compiler/arrayOfExportedClass_0.ts === class Car { ->Car : Car, Symbol(Car, Decl(arrayOfExportedClass_0.ts, 0, 0)) +>Car : Car foo: string; ->foo : string, Symbol(foo, Decl(arrayOfExportedClass_0.ts, 0, 11)) +>foo : string } export = Car; ->Car : Car, Symbol(Car, Decl(arrayOfExportedClass_0.ts, 0, 0)) +>Car : Car diff --git a/tests/baselines/reference/arrayOfFunctionTypes3.symbols b/tests/baselines/reference/arrayOfFunctionTypes3.symbols new file mode 100644 index 0000000000000..d26effeb5b77b --- /dev/null +++ b/tests/baselines/reference/arrayOfFunctionTypes3.symbols @@ -0,0 +1,93 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayOfFunctionTypes3.ts === +// valid uses of arrays of function types + +var x = [() => 1, () => { }]; +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 2, 3)) + +var r2 = x[0](); +>r2 : Symbol(r2, Decl(arrayOfFunctionTypes3.ts, 3, 3)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 2, 3)) + +class C { +>C : Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16)) + + foo: string; +>foo : Symbol(foo, Decl(arrayOfFunctionTypes3.ts, 5, 9)) +} +var y = [C, C]; +>y : Symbol(y, Decl(arrayOfFunctionTypes3.ts, 8, 3)) +>C : Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16)) +>C : Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16)) + +var r3 = new y[0](); +>r3 : Symbol(r3, Decl(arrayOfFunctionTypes3.ts, 9, 3)) +>y : Symbol(y, Decl(arrayOfFunctionTypes3.ts, 8, 3)) + +var a: { (x: number): number; (x: string): string; }; +>a : Symbol(a, Decl(arrayOfFunctionTypes3.ts, 11, 3)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 11, 10)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 11, 31)) + +var b: { (x: number): number; (x: string): string; }; +>b : Symbol(b, Decl(arrayOfFunctionTypes3.ts, 12, 3)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 12, 10)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 12, 31)) + +var c: { (x: number): number; (x: any): any; }; +>c : Symbol(c, Decl(arrayOfFunctionTypes3.ts, 13, 3)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 13, 10)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 13, 31)) + +var z = [a, b, c]; +>z : Symbol(z, Decl(arrayOfFunctionTypes3.ts, 14, 3)) +>a : Symbol(a, Decl(arrayOfFunctionTypes3.ts, 11, 3)) +>b : Symbol(b, Decl(arrayOfFunctionTypes3.ts, 12, 3)) +>c : Symbol(c, Decl(arrayOfFunctionTypes3.ts, 13, 3)) + +var r4 = z[0]; +>r4 : Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3)) +>z : Symbol(z, Decl(arrayOfFunctionTypes3.ts, 14, 3)) + +var r5 = r4(''); // any not string +>r5 : Symbol(r5, Decl(arrayOfFunctionTypes3.ts, 16, 3)) +>r4 : Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3)) + +var r5b = r4(1); +>r5b : Symbol(r5b, Decl(arrayOfFunctionTypes3.ts, 17, 3)) +>r4 : Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3)) + +var a2: { (x: T): number; (x: string): string;}; +>a2 : Symbol(a2, Decl(arrayOfFunctionTypes3.ts, 19, 3)) +>T : Symbol(T, Decl(arrayOfFunctionTypes3.ts, 19, 11)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 19, 14)) +>T : Symbol(T, Decl(arrayOfFunctionTypes3.ts, 19, 11)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 19, 30)) + +var b2: { (x: T): number; (x: string): string; }; +>b2 : Symbol(b2, Decl(arrayOfFunctionTypes3.ts, 20, 3)) +>T : Symbol(T, Decl(arrayOfFunctionTypes3.ts, 20, 11)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 20, 14)) +>T : Symbol(T, Decl(arrayOfFunctionTypes3.ts, 20, 11)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 20, 30)) + +var c2: { (x: number): number; (x: T): any; }; +>c2 : Symbol(c2, Decl(arrayOfFunctionTypes3.ts, 21, 3)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 21, 11)) +>T : Symbol(T, Decl(arrayOfFunctionTypes3.ts, 21, 32)) +>x : Symbol(x, Decl(arrayOfFunctionTypes3.ts, 21, 35)) +>T : Symbol(T, Decl(arrayOfFunctionTypes3.ts, 21, 32)) + +var z2 = [a2, b2, c2]; +>z2 : Symbol(z2, Decl(arrayOfFunctionTypes3.ts, 23, 3)) +>a2 : Symbol(a2, Decl(arrayOfFunctionTypes3.ts, 19, 3)) +>b2 : Symbol(b2, Decl(arrayOfFunctionTypes3.ts, 20, 3)) +>c2 : Symbol(c2, Decl(arrayOfFunctionTypes3.ts, 21, 3)) + +var r6 = z2[0]; +>r6 : Symbol(r6, Decl(arrayOfFunctionTypes3.ts, 24, 3)) +>z2 : Symbol(z2, Decl(arrayOfFunctionTypes3.ts, 23, 3)) + +var r7 = r6(''); // any not string +>r7 : Symbol(r7, Decl(arrayOfFunctionTypes3.ts, 25, 3)) +>r6 : Symbol(r6, Decl(arrayOfFunctionTypes3.ts, 24, 3)) + diff --git a/tests/baselines/reference/arrayOfFunctionTypes3.types b/tests/baselines/reference/arrayOfFunctionTypes3.types index 048d65eeaa70e..0ed92991ed08a 100644 --- a/tests/baselines/reference/arrayOfFunctionTypes3.types +++ b/tests/baselines/reference/arrayOfFunctionTypes3.types @@ -2,115 +2,115 @@ // valid uses of arrays of function types var x = [() => 1, () => { }]; ->x : (() => void)[], Symbol(x, Decl(arrayOfFunctionTypes3.ts, 2, 3)) +>x : (() => void)[] >[() => 1, () => { }] : (() => void)[] >() => 1 : () => number >1 : number >() => { } : () => void var r2 = x[0](); ->r2 : void, Symbol(r2, Decl(arrayOfFunctionTypes3.ts, 3, 3)) +>r2 : void >x[0]() : void >x[0] : () => void ->x : (() => void)[], Symbol(x, Decl(arrayOfFunctionTypes3.ts, 2, 3)) +>x : (() => void)[] >0 : number class C { ->C : C, Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(arrayOfFunctionTypes3.ts, 5, 9)) +>foo : string } var y = [C, C]; ->y : typeof C[], Symbol(y, Decl(arrayOfFunctionTypes3.ts, 8, 3)) +>y : typeof C[] >[C, C] : typeof C[] ->C : typeof C, Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16)) ->C : typeof C, Symbol(C, Decl(arrayOfFunctionTypes3.ts, 3, 16)) +>C : typeof C +>C : typeof C var r3 = new y[0](); ->r3 : C, Symbol(r3, Decl(arrayOfFunctionTypes3.ts, 9, 3)) +>r3 : C >new y[0]() : C >y[0] : typeof C ->y : typeof C[], Symbol(y, Decl(arrayOfFunctionTypes3.ts, 8, 3)) +>y : typeof C[] >0 : number var a: { (x: number): number; (x: string): string; }; ->a : { (x: number): number; (x: string): string; }, Symbol(a, Decl(arrayOfFunctionTypes3.ts, 11, 3)) ->x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 11, 10)) ->x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 11, 31)) +>a : { (x: number): number; (x: string): string; } +>x : number +>x : string var b: { (x: number): number; (x: string): string; }; ->b : { (x: number): number; (x: string): string; }, Symbol(b, Decl(arrayOfFunctionTypes3.ts, 12, 3)) ->x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 12, 10)) ->x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 12, 31)) +>b : { (x: number): number; (x: string): string; } +>x : number +>x : string var c: { (x: number): number; (x: any): any; }; ->c : { (x: number): number; (x: any): any; }, Symbol(c, Decl(arrayOfFunctionTypes3.ts, 13, 3)) ->x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 13, 10)) ->x : any, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 13, 31)) +>c : { (x: number): number; (x: any): any; } +>x : number +>x : any var z = [a, b, c]; ->z : { (x: number): number; (x: any): any; }[], Symbol(z, Decl(arrayOfFunctionTypes3.ts, 14, 3)) +>z : { (x: number): number; (x: any): any; }[] >[a, b, c] : { (x: number): number; (x: any): any; }[] ->a : { (x: number): number; (x: string): string; }, Symbol(a, Decl(arrayOfFunctionTypes3.ts, 11, 3)) ->b : { (x: number): number; (x: string): string; }, Symbol(b, Decl(arrayOfFunctionTypes3.ts, 12, 3)) ->c : { (x: number): number; (x: any): any; }, Symbol(c, Decl(arrayOfFunctionTypes3.ts, 13, 3)) +>a : { (x: number): number; (x: string): string; } +>b : { (x: number): number; (x: string): string; } +>c : { (x: number): number; (x: any): any; } var r4 = z[0]; ->r4 : { (x: number): number; (x: any): any; }, Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3)) +>r4 : { (x: number): number; (x: any): any; } >z[0] : { (x: number): number; (x: any): any; } ->z : { (x: number): number; (x: any): any; }[], Symbol(z, Decl(arrayOfFunctionTypes3.ts, 14, 3)) +>z : { (x: number): number; (x: any): any; }[] >0 : number var r5 = r4(''); // any not string ->r5 : any, Symbol(r5, Decl(arrayOfFunctionTypes3.ts, 16, 3)) +>r5 : any >r4('') : any ->r4 : { (x: number): number; (x: any): any; }, Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3)) +>r4 : { (x: number): number; (x: any): any; } >'' : string var r5b = r4(1); ->r5b : number, Symbol(r5b, Decl(arrayOfFunctionTypes3.ts, 17, 3)) +>r5b : number >r4(1) : number ->r4 : { (x: number): number; (x: any): any; }, Symbol(r4, Decl(arrayOfFunctionTypes3.ts, 15, 3)) +>r4 : { (x: number): number; (x: any): any; } >1 : number var a2: { (x: T): number; (x: string): string;}; ->a2 : { (x: T): number; (x: string): string; }, Symbol(a2, Decl(arrayOfFunctionTypes3.ts, 19, 3)) ->T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 19, 11)) ->x : T, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 19, 14)) ->T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 19, 11)) ->x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 19, 30)) +>a2 : { (x: T): number; (x: string): string; } +>T : T +>x : T +>T : T +>x : string var b2: { (x: T): number; (x: string): string; }; ->b2 : { (x: T): number; (x: string): string; }, Symbol(b2, Decl(arrayOfFunctionTypes3.ts, 20, 3)) ->T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 20, 11)) ->x : T, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 20, 14)) ->T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 20, 11)) ->x : string, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 20, 30)) +>b2 : { (x: T): number; (x: string): string; } +>T : T +>x : T +>T : T +>x : string var c2: { (x: number): number; (x: T): any; }; ->c2 : { (x: number): number; (x: T): any; }, Symbol(c2, Decl(arrayOfFunctionTypes3.ts, 21, 3)) ->x : number, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 21, 11)) ->T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 21, 32)) ->x : T, Symbol(x, Decl(arrayOfFunctionTypes3.ts, 21, 35)) ->T : T, Symbol(T, Decl(arrayOfFunctionTypes3.ts, 21, 32)) +>c2 : { (x: number): number; (x: T): any; } +>x : number +>T : T +>x : T +>T : T var z2 = [a2, b2, c2]; ->z2 : { (x: number): number; (x: T): any; }[], Symbol(z2, Decl(arrayOfFunctionTypes3.ts, 23, 3)) +>z2 : { (x: number): number; (x: T): any; }[] >[a2, b2, c2] : { (x: number): number; (x: T): any; }[] ->a2 : { (x: T): number; (x: string): string; }, Symbol(a2, Decl(arrayOfFunctionTypes3.ts, 19, 3)) ->b2 : { (x: T): number; (x: string): string; }, Symbol(b2, Decl(arrayOfFunctionTypes3.ts, 20, 3)) ->c2 : { (x: number): number; (x: T): any; }, Symbol(c2, Decl(arrayOfFunctionTypes3.ts, 21, 3)) +>a2 : { (x: T): number; (x: string): string; } +>b2 : { (x: T): number; (x: string): string; } +>c2 : { (x: number): number; (x: T): any; } var r6 = z2[0]; ->r6 : { (x: number): number; (x: T): any; }, Symbol(r6, Decl(arrayOfFunctionTypes3.ts, 24, 3)) +>r6 : { (x: number): number; (x: T): any; } >z2[0] : { (x: number): number; (x: T): any; } ->z2 : { (x: number): number; (x: T): any; }[], Symbol(z2, Decl(arrayOfFunctionTypes3.ts, 23, 3)) +>z2 : { (x: number): number; (x: T): any; }[] >0 : number var r7 = r6(''); // any not string ->r7 : any, Symbol(r7, Decl(arrayOfFunctionTypes3.ts, 25, 3)) +>r7 : any >r6('') : any ->r6 : { (x: number): number; (x: T): any; }, Symbol(r6, Decl(arrayOfFunctionTypes3.ts, 24, 3)) +>r6 : { (x: number): number; (x: T): any; } >'' : string diff --git a/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.symbols b/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.symbols new file mode 100644 index 0000000000000..d9665e98eb5b5 --- /dev/null +++ b/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.symbols @@ -0,0 +1,89 @@ +=== tests/cases/compiler/arrayTypeInSignatureOfInterfaceAndClass.ts === +declare module WinJS { +>WinJS : Symbol(WinJS, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 0)) + + class Promise { +>Promise : Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 1, 18)) + + then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; +>then : Symbol(then, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 1, 22)) +>U : Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) +>success : Symbol(success, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 16)) +>value : Symbol(value, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 27)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 1, 18)) +>Promise : Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) +>U : Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) +>error : Symbol(error, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 51)) +>error : Symbol(error, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 61)) +>Promise : Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) +>U : Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) +>progress : Symbol(progress, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 87)) +>progress : Symbol(progress, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 100)) +>Promise : Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) +>U : Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) + } +} +declare module Data { +>Data : Symbol(Data, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 4, 1)) + + export interface IListItem { +>IListItem : Symbol(IListItem, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 5, 21)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 6, 31)) + + itemIndex: number; +>itemIndex : Symbol(itemIndex, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 6, 35)) + + key: any; +>key : Symbol(key, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 7, 26)) + + data: T; +>data : Symbol(data, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 8, 17)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 6, 31)) + + group: any; +>group : Symbol(group, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 9, 16)) + + isHeader: boolean; +>isHeader : Symbol(isHeader, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 10, 19)) + + cached: boolean; +>cached : Symbol(cached, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 11, 26)) + + isNonSourceData: boolean; +>isNonSourceData : Symbol(isNonSourceData, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 12, 24)) + + preventAugmentation: boolean; +>preventAugmentation : Symbol(preventAugmentation, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 13, 33)) + } + export interface IVirtualList { +>IVirtualList : Symbol(IVirtualList, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 15, 5)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 16, 34)) + + //removeIndices: WinJS.Promise[]>; + removeIndices(indices: number[], options?: any): WinJS.Promise[]>; +>removeIndices : Symbol(removeIndices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 16, 38)) +>indices : Symbol(indices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 18, 22)) +>options : Symbol(options, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 18, 40)) +>WinJS : Symbol(WinJS, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 0)) +>Promise : Symbol(WinJS.Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) +>IListItem : Symbol(IListItem, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 5, 21)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 16, 34)) + } + export class VirtualList implements IVirtualList { +>VirtualList : Symbol(VirtualList, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 19, 5)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 29)) +>IVirtualList : Symbol(IVirtualList, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 15, 5)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 29)) + + //removeIndices: WinJS.Promise[]>; + public removeIndices(indices: number[], options?: any): WinJS.Promise[]>; +>removeIndices : Symbol(removeIndices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 60)) +>indices : Symbol(indices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 22, 29)) +>options : Symbol(options, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 22, 47)) +>WinJS : Symbol(WinJS, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 0)) +>Promise : Symbol(WinJS.Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) +>IListItem : Symbol(IListItem, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 5, 21)) +>T : Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 29)) + } +} diff --git a/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types b/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types index 26c938a3c5d0c..57a8c73e5e661 100644 --- a/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types +++ b/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types @@ -1,89 +1,89 @@ === tests/cases/compiler/arrayTypeInSignatureOfInterfaceAndClass.ts === declare module WinJS { ->WinJS : typeof WinJS, Symbol(WinJS, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 0)) +>WinJS : typeof WinJS class Promise { ->Promise : Promise, Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 1, 18)) +>Promise : Promise +>T : T then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; ->then : (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void) => Promise, Symbol(then, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 1, 22)) ->U : U, Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) ->success : (value: T) => Promise, Symbol(success, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 16)) ->value : T, Symbol(value, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 27)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 1, 18)) ->Promise : Promise, Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) ->U : U, Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) ->error : (error: any) => Promise, Symbol(error, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 51)) ->error : any, Symbol(error, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 61)) ->Promise : Promise, Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) ->U : U, Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 87)) ->progress : any, Symbol(progress, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 100)) ->Promise : Promise, Symbol(Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) ->U : U, Symbol(U, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 2, 13)) +>then : (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void) => Promise +>U : U +>success : (value: T) => Promise +>value : T +>T : T +>Promise : Promise +>U : U +>error : (error: any) => Promise +>error : any +>Promise : Promise +>U : U +>progress : (progress: any) => void +>progress : any +>Promise : Promise +>U : U } } declare module Data { ->Data : typeof Data, Symbol(Data, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 4, 1)) +>Data : typeof Data export interface IListItem { ->IListItem : IListItem, Symbol(IListItem, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 5, 21)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 6, 31)) +>IListItem : IListItem +>T : T itemIndex: number; ->itemIndex : number, Symbol(itemIndex, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 6, 35)) +>itemIndex : number key: any; ->key : any, Symbol(key, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 7, 26)) +>key : any data: T; ->data : T, Symbol(data, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 8, 17)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 6, 31)) +>data : T +>T : T group: any; ->group : any, Symbol(group, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 9, 16)) +>group : any isHeader: boolean; ->isHeader : boolean, Symbol(isHeader, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 10, 19)) +>isHeader : boolean cached: boolean; ->cached : boolean, Symbol(cached, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 11, 26)) +>cached : boolean isNonSourceData: boolean; ->isNonSourceData : boolean, Symbol(isNonSourceData, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 12, 24)) +>isNonSourceData : boolean preventAugmentation: boolean; ->preventAugmentation : boolean, Symbol(preventAugmentation, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 13, 33)) +>preventAugmentation : boolean } export interface IVirtualList { ->IVirtualList : IVirtualList, Symbol(IVirtualList, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 15, 5)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 16, 34)) +>IVirtualList : IVirtualList +>T : T //removeIndices: WinJS.Promise[]>; removeIndices(indices: number[], options?: any): WinJS.Promise[]>; ->removeIndices : (indices: number[], options?: any) => WinJS.Promise[]>, Symbol(removeIndices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 16, 38)) ->indices : number[], Symbol(indices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 18, 22)) ->options : any, Symbol(options, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 18, 40)) ->WinJS : any, Symbol(WinJS, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 0)) ->Promise : WinJS.Promise, Symbol(WinJS.Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) ->IListItem : IListItem, Symbol(IListItem, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 5, 21)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 16, 34)) +>removeIndices : (indices: number[], options?: any) => WinJS.Promise[]> +>indices : number[] +>options : any +>WinJS : any +>Promise : WinJS.Promise +>IListItem : IListItem +>T : T } export class VirtualList implements IVirtualList { ->VirtualList : VirtualList, Symbol(VirtualList, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 19, 5)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 29)) ->IVirtualList : IVirtualList, Symbol(IVirtualList, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 15, 5)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 29)) +>VirtualList : VirtualList +>T : T +>IVirtualList : IVirtualList +>T : T //removeIndices: WinJS.Promise[]>; public removeIndices(indices: number[], options?: any): WinJS.Promise[]>; ->removeIndices : (indices: number[], options?: any) => WinJS.Promise[]>, Symbol(removeIndices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 60)) ->indices : number[], Symbol(indices, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 22, 29)) ->options : any, Symbol(options, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 22, 47)) ->WinJS : any, Symbol(WinJS, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 0)) ->Promise : WinJS.Promise, Symbol(WinJS.Promise, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 0, 22)) ->IListItem : IListItem, Symbol(IListItem, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 5, 21)) ->T : T, Symbol(T, Decl(arrayTypeInSignatureOfInterfaceAndClass.ts, 20, 29)) +>removeIndices : (indices: number[], options?: any) => WinJS.Promise[]> +>indices : number[] +>options : any +>WinJS : any +>Promise : WinJS.Promise +>IListItem : IListItem +>T : T } } diff --git a/tests/baselines/reference/arrayconcat.symbols b/tests/baselines/reference/arrayconcat.symbols new file mode 100644 index 0000000000000..64e63d7c2ecc0 --- /dev/null +++ b/tests/baselines/reference/arrayconcat.symbols @@ -0,0 +1,81 @@ +=== tests/cases/compiler/arrayconcat.ts === +interface IOptions { +>IOptions : Symbol(IOptions, Decl(arrayconcat.ts, 0, 0)) + + name?: string; +>name : Symbol(name, Decl(arrayconcat.ts, 0, 20)) + + flag?: boolean; +>flag : Symbol(flag, Decl(arrayconcat.ts, 1, 18)) + + short?: string; +>short : Symbol(short, Decl(arrayconcat.ts, 2, 19)) + + usage?: string; +>usage : Symbol(usage, Decl(arrayconcat.ts, 3, 19)) + + set?: (s: string) => void; +>set : Symbol(set, Decl(arrayconcat.ts, 4, 19)) +>s : Symbol(s, Decl(arrayconcat.ts, 5, 11)) + + type?: string; +>type : Symbol(type, Decl(arrayconcat.ts, 5, 30)) + + experimental?: boolean; +>experimental : Symbol(experimental, Decl(arrayconcat.ts, 6, 18)) +} + +class parser { +>parser : Symbol(parser, Decl(arrayconcat.ts, 8, 1)) + + public options: IOptions[]; +>options : Symbol(options, Decl(arrayconcat.ts, 10, 14)) +>IOptions : Symbol(IOptions, Decl(arrayconcat.ts, 0, 0)) + + public m() { +>m : Symbol(m, Decl(arrayconcat.ts, 11, 28)) + + this.options = this.options.sort(function(a, b) { +>this.options : Symbol(options, Decl(arrayconcat.ts, 10, 14)) +>this : Symbol(parser, Decl(arrayconcat.ts, 8, 1)) +>options : Symbol(options, Decl(arrayconcat.ts, 10, 14)) +>this.options.sort : Symbol(Array.sort, Decl(lib.d.ts, 1054, 45)) +>this.options : Symbol(options, Decl(arrayconcat.ts, 10, 14)) +>this : Symbol(parser, Decl(arrayconcat.ts, 8, 1)) +>options : Symbol(options, Decl(arrayconcat.ts, 10, 14)) +>sort : Symbol(Array.sort, Decl(lib.d.ts, 1054, 45)) +>a : Symbol(a, Decl(arrayconcat.ts, 14, 44)) +>b : Symbol(b, Decl(arrayconcat.ts, 14, 46)) + + var aName = a.name.toLowerCase(); +>aName : Symbol(aName, Decl(arrayconcat.ts, 15, 15)) +>a.name.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>a.name : Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) +>a : Symbol(a, Decl(arrayconcat.ts, 14, 44)) +>name : Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) + + var bName = b.name.toLowerCase(); +>bName : Symbol(bName, Decl(arrayconcat.ts, 16, 15)) +>b.name.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>b.name : Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) +>b : Symbol(b, Decl(arrayconcat.ts, 14, 46)) +>name : Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) + + if (aName > bName) { +>aName : Symbol(aName, Decl(arrayconcat.ts, 15, 15)) +>bName : Symbol(bName, Decl(arrayconcat.ts, 16, 15)) + + return 1; + } else if (aName < bName) { +>aName : Symbol(aName, Decl(arrayconcat.ts, 15, 15)) +>bName : Symbol(bName, Decl(arrayconcat.ts, 16, 15)) + + return -1; + } else { + return 0; + } + }); + } +} diff --git a/tests/baselines/reference/arrayconcat.types b/tests/baselines/reference/arrayconcat.types index 03cf9a7177698..3560272a363fc 100644 --- a/tests/baselines/reference/arrayconcat.types +++ b/tests/baselines/reference/arrayconcat.types @@ -1,85 +1,85 @@ === tests/cases/compiler/arrayconcat.ts === interface IOptions { ->IOptions : IOptions, Symbol(IOptions, Decl(arrayconcat.ts, 0, 0)) +>IOptions : IOptions name?: string; ->name : string, Symbol(name, Decl(arrayconcat.ts, 0, 20)) +>name : string flag?: boolean; ->flag : boolean, Symbol(flag, Decl(arrayconcat.ts, 1, 18)) +>flag : boolean short?: string; ->short : string, Symbol(short, Decl(arrayconcat.ts, 2, 19)) +>short : string usage?: string; ->usage : string, Symbol(usage, Decl(arrayconcat.ts, 3, 19)) +>usage : string set?: (s: string) => void; ->set : (s: string) => void, Symbol(set, Decl(arrayconcat.ts, 4, 19)) ->s : string, Symbol(s, Decl(arrayconcat.ts, 5, 11)) +>set : (s: string) => void +>s : string type?: string; ->type : string, Symbol(type, Decl(arrayconcat.ts, 5, 30)) +>type : string experimental?: boolean; ->experimental : boolean, Symbol(experimental, Decl(arrayconcat.ts, 6, 18)) +>experimental : boolean } class parser { ->parser : parser, Symbol(parser, Decl(arrayconcat.ts, 8, 1)) +>parser : parser public options: IOptions[]; ->options : IOptions[], Symbol(options, Decl(arrayconcat.ts, 10, 14)) ->IOptions : IOptions, Symbol(IOptions, Decl(arrayconcat.ts, 0, 0)) +>options : IOptions[] +>IOptions : IOptions public m() { ->m : () => void, Symbol(m, Decl(arrayconcat.ts, 11, 28)) +>m : () => void this.options = this.options.sort(function(a, b) { >this.options = this.options.sort(function(a, b) { var aName = a.name.toLowerCase(); var bName = b.name.toLowerCase(); if (aName > bName) { return 1; } else if (aName < bName) { return -1; } else { return 0; } }) : IOptions[] ->this.options : IOptions[], Symbol(options, Decl(arrayconcat.ts, 10, 14)) ->this : parser, Symbol(parser, Decl(arrayconcat.ts, 8, 1)) ->options : IOptions[], Symbol(options, Decl(arrayconcat.ts, 10, 14)) +>this.options : IOptions[] +>this : parser +>options : IOptions[] >this.options.sort(function(a, b) { var aName = a.name.toLowerCase(); var bName = b.name.toLowerCase(); if (aName > bName) { return 1; } else if (aName < bName) { return -1; } else { return 0; } }) : IOptions[] ->this.options.sort : (compareFn?: (a: IOptions, b: IOptions) => number) => IOptions[], Symbol(Array.sort, Decl(lib.d.ts, 1054, 45)) ->this.options : IOptions[], Symbol(options, Decl(arrayconcat.ts, 10, 14)) ->this : parser, Symbol(parser, Decl(arrayconcat.ts, 8, 1)) ->options : IOptions[], Symbol(options, Decl(arrayconcat.ts, 10, 14)) ->sort : (compareFn?: (a: IOptions, b: IOptions) => number) => IOptions[], Symbol(Array.sort, Decl(lib.d.ts, 1054, 45)) +>this.options.sort : (compareFn?: (a: IOptions, b: IOptions) => number) => IOptions[] +>this.options : IOptions[] +>this : parser +>options : IOptions[] +>sort : (compareFn?: (a: IOptions, b: IOptions) => number) => IOptions[] >function(a, b) { var aName = a.name.toLowerCase(); var bName = b.name.toLowerCase(); if (aName > bName) { return 1; } else if (aName < bName) { return -1; } else { return 0; } } : (a: IOptions, b: IOptions) => number ->a : IOptions, Symbol(a, Decl(arrayconcat.ts, 14, 44)) ->b : IOptions, Symbol(b, Decl(arrayconcat.ts, 14, 46)) +>a : IOptions +>b : IOptions var aName = a.name.toLowerCase(); ->aName : string, Symbol(aName, Decl(arrayconcat.ts, 15, 15)) +>aName : string >a.name.toLowerCase() : string ->a.name.toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) ->a.name : string, Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) ->a : IOptions, Symbol(a, Decl(arrayconcat.ts, 14, 44)) ->name : string, Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) ->toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>a.name.toLowerCase : () => string +>a.name : string +>a : IOptions +>name : string +>toLowerCase : () => string var bName = b.name.toLowerCase(); ->bName : string, Symbol(bName, Decl(arrayconcat.ts, 16, 15)) +>bName : string >b.name.toLowerCase() : string ->b.name.toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) ->b.name : string, Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) ->b : IOptions, Symbol(b, Decl(arrayconcat.ts, 14, 46)) ->name : string, Symbol(IOptions.name, Decl(arrayconcat.ts, 0, 20)) ->toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>b.name.toLowerCase : () => string +>b.name : string +>b : IOptions +>name : string +>toLowerCase : () => string if (aName > bName) { >aName > bName : boolean ->aName : string, Symbol(aName, Decl(arrayconcat.ts, 15, 15)) ->bName : string, Symbol(bName, Decl(arrayconcat.ts, 16, 15)) +>aName : string +>bName : string return 1; >1 : number } else if (aName < bName) { >aName < bName : boolean ->aName : string, Symbol(aName, Decl(arrayconcat.ts, 15, 15)) ->bName : string, Symbol(bName, Decl(arrayconcat.ts, 16, 15)) +>aName : string +>bName : string return -1; >-1 : number diff --git a/tests/baselines/reference/arrowFunctionExpressions.symbols b/tests/baselines/reference/arrowFunctionExpressions.symbols new file mode 100644 index 0000000000000..28945e1179f63 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionExpressions.symbols @@ -0,0 +1,262 @@ +=== tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts === +// ArrowFormalParameters => AssignmentExpression is equivalent to ArrowFormalParameters => { return AssignmentExpression; } +var a = (p: string) => p.length; +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 1, 3), Decl(arrowFunctionExpressions.ts, 2, 3)) +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 1, 9)) +>p.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 1, 9)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + +var a = (p: string) => { return p.length; } +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 1, 3), Decl(arrowFunctionExpressions.ts, 2, 3)) +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 2, 9)) +>p.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 2, 9)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + +// Identifier => Block is equivalent to(Identifier) => Block +var b = j => { return 0; } +>b : Symbol(b, Decl(arrowFunctionExpressions.ts, 5, 3), Decl(arrowFunctionExpressions.ts, 6, 3)) +>j : Symbol(j, Decl(arrowFunctionExpressions.ts, 5, 7)) + +var b = (j) => { return 0; } +>b : Symbol(b, Decl(arrowFunctionExpressions.ts, 5, 3), Decl(arrowFunctionExpressions.ts, 6, 3)) +>j : Symbol(j, Decl(arrowFunctionExpressions.ts, 6, 9)) + +// Identifier => AssignmentExpression is equivalent to(Identifier) => AssignmentExpression +var c: number; +>c : Symbol(c, Decl(arrowFunctionExpressions.ts, 9, 3)) + +var d = n => c = n; +>d : Symbol(d, Decl(arrowFunctionExpressions.ts, 10, 3), Decl(arrowFunctionExpressions.ts, 11, 3), Decl(arrowFunctionExpressions.ts, 12, 3)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 10, 7)) +>c : Symbol(c, Decl(arrowFunctionExpressions.ts, 9, 3)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 10, 7)) + +var d = (n) => c = n; +>d : Symbol(d, Decl(arrowFunctionExpressions.ts, 10, 3), Decl(arrowFunctionExpressions.ts, 11, 3), Decl(arrowFunctionExpressions.ts, 12, 3)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 11, 9)) +>c : Symbol(c, Decl(arrowFunctionExpressions.ts, 9, 3)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 11, 9)) + +var d: (n: any) => any; +>d : Symbol(d, Decl(arrowFunctionExpressions.ts, 10, 3), Decl(arrowFunctionExpressions.ts, 11, 3), Decl(arrowFunctionExpressions.ts, 12, 3)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 12, 8)) + +// Binding patterns in arrow functions +var p1 = ([a]) => { }; +>p1 : Symbol(p1, Decl(arrowFunctionExpressions.ts, 15, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 15, 11)) + +var p2 = ([...a]) => { }; +>p2 : Symbol(p2, Decl(arrowFunctionExpressions.ts, 16, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 16, 11)) + +var p3 = ([, a]) => { }; +>p3 : Symbol(p3, Decl(arrowFunctionExpressions.ts, 17, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 17, 12)) + +var p4 = ([, ...a]) => { }; +>p4 : Symbol(p4, Decl(arrowFunctionExpressions.ts, 18, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 18, 12)) + +var p5 = ([a = 1]) => { }; +>p5 : Symbol(p5, Decl(arrowFunctionExpressions.ts, 19, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 19, 11)) + +var p6 = ({ a }) => { }; +>p6 : Symbol(p6, Decl(arrowFunctionExpressions.ts, 20, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 20, 11)) + +var p7 = ({ a: { b } }) => { }; +>p7 : Symbol(p7, Decl(arrowFunctionExpressions.ts, 21, 3)) +>b : Symbol(b, Decl(arrowFunctionExpressions.ts, 21, 16)) + +var p8 = ({ a = 1 }) => { }; +>p8 : Symbol(p8, Decl(arrowFunctionExpressions.ts, 22, 3)) +>a : Symbol(a, Decl(arrowFunctionExpressions.ts, 22, 11)) + +var p9 = ({ a: { b = 1 } = { b: 1 } }) => { }; +>p9 : Symbol(p9, Decl(arrowFunctionExpressions.ts, 23, 3)) +>b : Symbol(b, Decl(arrowFunctionExpressions.ts, 23, 16)) +>b : Symbol(b, Decl(arrowFunctionExpressions.ts, 23, 28)) + +var p10 = ([{ value, done }]) => { }; +>p10 : Symbol(p10, Decl(arrowFunctionExpressions.ts, 24, 3)) +>value : Symbol(value, Decl(arrowFunctionExpressions.ts, 24, 13)) +>done : Symbol(done, Decl(arrowFunctionExpressions.ts, 24, 20)) + +// Arrow function used in class member initializer +// Arrow function used in class member function +class MyClass { +>MyClass : Symbol(MyClass, Decl(arrowFunctionExpressions.ts, 24, 37)) + + m = (n) => n + 1; +>m : Symbol(m, Decl(arrowFunctionExpressions.ts, 28, 15)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 29, 9)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 29, 9)) + + p = (n) => n && this; +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 29, 21)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 30, 9)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 30, 9)) +>this : Symbol(MyClass, Decl(arrowFunctionExpressions.ts, 24, 37)) + + fn() { +>fn : Symbol(fn, Decl(arrowFunctionExpressions.ts, 30, 25)) + + var m = (n) => n + 1; +>m : Symbol(m, Decl(arrowFunctionExpressions.ts, 33, 11)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 33, 17)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 33, 17)) + + var p = (n) => n && this; +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 34, 11)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 34, 17)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 34, 17)) +>this : Symbol(MyClass, Decl(arrowFunctionExpressions.ts, 24, 37)) + } +} + +// Arrow function used in arrow function +var arrrr = () => (m: number) => () => (n: number) => m + n; +>arrrr : Symbol(arrrr, Decl(arrowFunctionExpressions.ts, 39, 3)) +>m : Symbol(m, Decl(arrowFunctionExpressions.ts, 39, 19)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 39, 40)) +>m : Symbol(m, Decl(arrowFunctionExpressions.ts, 39, 19)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 39, 40)) + +var e = arrrr()(3)()(4); +>e : Symbol(e, Decl(arrowFunctionExpressions.ts, 40, 3), Decl(arrowFunctionExpressions.ts, 41, 3)) +>arrrr : Symbol(arrrr, Decl(arrowFunctionExpressions.ts, 39, 3)) + +var e: number; +>e : Symbol(e, Decl(arrowFunctionExpressions.ts, 40, 3), Decl(arrowFunctionExpressions.ts, 41, 3)) + +// Arrow function used in arrow function used in function +function someFn() { +>someFn : Symbol(someFn, Decl(arrowFunctionExpressions.ts, 41, 14)) + + var arr = (n: number) => (p: number) => p * n; +>arr : Symbol(arr, Decl(arrowFunctionExpressions.ts, 45, 7)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 45, 15)) +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 45, 30)) +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 45, 30)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 45, 15)) + + arr(3)(4).toExponential(); +>arr(3)(4).toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>arr : Symbol(arr, Decl(arrowFunctionExpressions.ts, 45, 7)) +>toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +} + +// Arrow function used in function +function someOtherFn() { +>someOtherFn : Symbol(someOtherFn, Decl(arrowFunctionExpressions.ts, 47, 1)) + + var arr = (n: number) => '' + n; +>arr : Symbol(arr, Decl(arrowFunctionExpressions.ts, 51, 7)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 51, 15)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 51, 15)) + + arr(4).charAt(0); +>arr(4).charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>arr : Symbol(arr, Decl(arrowFunctionExpressions.ts, 51, 7)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +} + +// Arrow function used in nested function in function +function outerFn() { +>outerFn : Symbol(outerFn, Decl(arrowFunctionExpressions.ts, 53, 1)) + + function innerFn() { +>innerFn : Symbol(innerFn, Decl(arrowFunctionExpressions.ts, 56, 20)) + + var arrowFn = () => { }; +>arrowFn : Symbol(arrowFn, Decl(arrowFunctionExpressions.ts, 58, 11)) + + var p = arrowFn(); +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 59, 11), Decl(arrowFunctionExpressions.ts, 60, 11)) +>arrowFn : Symbol(arrowFn, Decl(arrowFunctionExpressions.ts, 58, 11)) + + var p: void; +>p : Symbol(p, Decl(arrowFunctionExpressions.ts, 59, 11), Decl(arrowFunctionExpressions.ts, 60, 11)) + } +} + +// Arrow function used in nested function in arrow function +var f = (n: string) => { +>f : Symbol(f, Decl(arrowFunctionExpressions.ts, 65, 3)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 65, 9)) + + function fn(x: number) { +>fn : Symbol(fn, Decl(arrowFunctionExpressions.ts, 65, 24)) +>x : Symbol(x, Decl(arrowFunctionExpressions.ts, 66, 16)) + + return () => n + x; +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 65, 9)) +>x : Symbol(x, Decl(arrowFunctionExpressions.ts, 66, 16)) + } + return fn(4); +>fn : Symbol(fn, Decl(arrowFunctionExpressions.ts, 65, 24)) +} +var g = f('')(); +>g : Symbol(g, Decl(arrowFunctionExpressions.ts, 71, 3), Decl(arrowFunctionExpressions.ts, 72, 3)) +>f : Symbol(f, Decl(arrowFunctionExpressions.ts, 65, 3)) + +var g: string; +>g : Symbol(g, Decl(arrowFunctionExpressions.ts, 71, 3), Decl(arrowFunctionExpressions.ts, 72, 3)) + + +// Arrow function used in nested function in arrow function in nested function +function someOuterFn() { +>someOuterFn : Symbol(someOuterFn, Decl(arrowFunctionExpressions.ts, 72, 14)) + + var arr = (n: string) => { +>arr : Symbol(arr, Decl(arrowFunctionExpressions.ts, 77, 7)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 77, 15)) + + function innerFn() { +>innerFn : Symbol(innerFn, Decl(arrowFunctionExpressions.ts, 77, 30)) + + return () => n.length; +>n.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>n : Symbol(n, Decl(arrowFunctionExpressions.ts, 77, 15)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + } + return innerFn; +>innerFn : Symbol(innerFn, Decl(arrowFunctionExpressions.ts, 77, 30)) + } + return arr; +>arr : Symbol(arr, Decl(arrowFunctionExpressions.ts, 77, 7)) +} +var h = someOuterFn()('')()(); +>h : Symbol(h, Decl(arrowFunctionExpressions.ts, 85, 3)) +>someOuterFn : Symbol(someOuterFn, Decl(arrowFunctionExpressions.ts, 72, 14)) + +h.toExponential(); +>h.toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>h : Symbol(h, Decl(arrowFunctionExpressions.ts, 85, 3)) +>toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) + +// Arrow function used in try/catch/finally in function +function tryCatchFn() { +>tryCatchFn : Symbol(tryCatchFn, Decl(arrowFunctionExpressions.ts, 86, 18)) + + try { + var x = () => this; +>x : Symbol(x, Decl(arrowFunctionExpressions.ts, 91, 11)) + + } catch (e) { +>e : Symbol(e, Decl(arrowFunctionExpressions.ts, 92, 13)) + + var t = () => e + this; +>t : Symbol(t, Decl(arrowFunctionExpressions.ts, 93, 11)) +>e : Symbol(e, Decl(arrowFunctionExpressions.ts, 92, 13)) + + } finally { + var m = () => this + ''; +>m : Symbol(m, Decl(arrowFunctionExpressions.ts, 95, 11)) + } +} + diff --git a/tests/baselines/reference/arrowFunctionExpressions.types b/tests/baselines/reference/arrowFunctionExpressions.types index 4dd68d35f38a0..fc9fdb8a3bd30 100644 --- a/tests/baselines/reference/arrowFunctionExpressions.types +++ b/tests/baselines/reference/arrowFunctionExpressions.types @@ -1,350 +1,350 @@ === tests/cases/conformance/expressions/functions/arrowFunctionExpressions.ts === // ArrowFormalParameters => AssignmentExpression is equivalent to ArrowFormalParameters => { return AssignmentExpression; } var a = (p: string) => p.length; ->a : (p: string) => number, Symbol(a, Decl(arrowFunctionExpressions.ts, 1, 3), Decl(arrowFunctionExpressions.ts, 2, 3)) +>a : (p: string) => number >(p: string) => p.length : (p: string) => number ->p : string, Symbol(p, Decl(arrowFunctionExpressions.ts, 1, 9)) ->p.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->p : string, Symbol(p, Decl(arrowFunctionExpressions.ts, 1, 9)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>p : string +>p.length : number +>p : string +>length : number var a = (p: string) => { return p.length; } ->a : (p: string) => number, Symbol(a, Decl(arrowFunctionExpressions.ts, 1, 3), Decl(arrowFunctionExpressions.ts, 2, 3)) +>a : (p: string) => number >(p: string) => { return p.length; } : (p: string) => number ->p : string, Symbol(p, Decl(arrowFunctionExpressions.ts, 2, 9)) ->p.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->p : string, Symbol(p, Decl(arrowFunctionExpressions.ts, 2, 9)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>p : string +>p.length : number +>p : string +>length : number // Identifier => Block is equivalent to(Identifier) => Block var b = j => { return 0; } ->b : (j: any) => number, Symbol(b, Decl(arrowFunctionExpressions.ts, 5, 3), Decl(arrowFunctionExpressions.ts, 6, 3)) +>b : (j: any) => number >j => { return 0; } : (j: any) => number ->j : any, Symbol(j, Decl(arrowFunctionExpressions.ts, 5, 7)) +>j : any >0 : number var b = (j) => { return 0; } ->b : (j: any) => number, Symbol(b, Decl(arrowFunctionExpressions.ts, 5, 3), Decl(arrowFunctionExpressions.ts, 6, 3)) +>b : (j: any) => number >(j) => { return 0; } : (j: any) => number ->j : any, Symbol(j, Decl(arrowFunctionExpressions.ts, 6, 9)) +>j : any >0 : number // Identifier => AssignmentExpression is equivalent to(Identifier) => AssignmentExpression var c: number; ->c : number, Symbol(c, Decl(arrowFunctionExpressions.ts, 9, 3)) +>c : number var d = n => c = n; ->d : (n: any) => any, Symbol(d, Decl(arrowFunctionExpressions.ts, 10, 3), Decl(arrowFunctionExpressions.ts, 11, 3), Decl(arrowFunctionExpressions.ts, 12, 3)) +>d : (n: any) => any >n => c = n : (n: any) => any ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 10, 7)) +>n : any >c = n : any ->c : number, Symbol(c, Decl(arrowFunctionExpressions.ts, 9, 3)) ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 10, 7)) +>c : number +>n : any var d = (n) => c = n; ->d : (n: any) => any, Symbol(d, Decl(arrowFunctionExpressions.ts, 10, 3), Decl(arrowFunctionExpressions.ts, 11, 3), Decl(arrowFunctionExpressions.ts, 12, 3)) +>d : (n: any) => any >(n) => c = n : (n: any) => any ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 11, 9)) +>n : any >c = n : any ->c : number, Symbol(c, Decl(arrowFunctionExpressions.ts, 9, 3)) ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 11, 9)) +>c : number +>n : any var d: (n: any) => any; ->d : (n: any) => any, Symbol(d, Decl(arrowFunctionExpressions.ts, 10, 3), Decl(arrowFunctionExpressions.ts, 11, 3), Decl(arrowFunctionExpressions.ts, 12, 3)) ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 12, 8)) +>d : (n: any) => any +>n : any // Binding patterns in arrow functions var p1 = ([a]) => { }; ->p1 : ([a]: [any]) => void, Symbol(p1, Decl(arrowFunctionExpressions.ts, 15, 3)) +>p1 : ([a]: [any]) => void >([a]) => { } : ([a]: [any]) => void ->a : any, Symbol(a, Decl(arrowFunctionExpressions.ts, 15, 11)) +>a : any var p2 = ([...a]) => { }; ->p2 : ([...a]: any[]) => void, Symbol(p2, Decl(arrowFunctionExpressions.ts, 16, 3)) +>p2 : ([...a]: any[]) => void >([...a]) => { } : ([...a]: any[]) => void ->a : any[], Symbol(a, Decl(arrowFunctionExpressions.ts, 16, 11)) +>a : any[] var p3 = ([, a]) => { }; ->p3 : ([, a]: [any, any]) => void, Symbol(p3, Decl(arrowFunctionExpressions.ts, 17, 3)) +>p3 : ([, a]: [any, any]) => void >([, a]) => { } : ([, a]: [any, any]) => void > : undefined ->a : any, Symbol(a, Decl(arrowFunctionExpressions.ts, 17, 12)) +>a : any var p4 = ([, ...a]) => { }; ->p4 : ([, ...a]: any[]) => void, Symbol(p4, Decl(arrowFunctionExpressions.ts, 18, 3)) +>p4 : ([, ...a]: any[]) => void >([, ...a]) => { } : ([, ...a]: any[]) => void > : undefined ->a : any[], Symbol(a, Decl(arrowFunctionExpressions.ts, 18, 12)) +>a : any[] var p5 = ([a = 1]) => { }; ->p5 : ([a = 1]: [number]) => void, Symbol(p5, Decl(arrowFunctionExpressions.ts, 19, 3)) +>p5 : ([a = 1]: [number]) => void >([a = 1]) => { } : ([a = 1]: [number]) => void ->a : number, Symbol(a, Decl(arrowFunctionExpressions.ts, 19, 11)) +>a : number >1 : number var p6 = ({ a }) => { }; ->p6 : ({ a }: { a: any; }) => void, Symbol(p6, Decl(arrowFunctionExpressions.ts, 20, 3)) +>p6 : ({ a }: { a: any; }) => void >({ a }) => { } : ({ a }: { a: any; }) => void ->a : any, Symbol(a, Decl(arrowFunctionExpressions.ts, 20, 11)) +>a : any var p7 = ({ a: { b } }) => { }; ->p7 : ({ a: { b } }: { a: { b: any; }; }) => void, Symbol(p7, Decl(arrowFunctionExpressions.ts, 21, 3)) +>p7 : ({ a: { b } }: { a: { b: any; }; }) => void >({ a: { b } }) => { } : ({ a: { b } }: { a: { b: any; }; }) => void >a : any ->b : any, Symbol(b, Decl(arrowFunctionExpressions.ts, 21, 16)) +>b : any var p8 = ({ a = 1 }) => { }; ->p8 : ({ a = 1 }: { a?: number; }) => void, Symbol(p8, Decl(arrowFunctionExpressions.ts, 22, 3)) +>p8 : ({ a = 1 }: { a?: number; }) => void >({ a = 1 }) => { } : ({ a = 1 }: { a?: number; }) => void ->a : number, Symbol(a, Decl(arrowFunctionExpressions.ts, 22, 11)) +>a : number >1 : number var p9 = ({ a: { b = 1 } = { b: 1 } }) => { }; ->p9 : ({ a: { b = 1 } = { b: 1 } }: { a?: { b: number; }; }) => void, Symbol(p9, Decl(arrowFunctionExpressions.ts, 23, 3)) +>p9 : ({ a: { b = 1 } = { b: 1 } }: { a?: { b: number; }; }) => void >({ a: { b = 1 } = { b: 1 } }) => { } : ({ a: { b = 1 } = { b: 1 } }: { a?: { b: number; }; }) => void >a : any ->b : number, Symbol(b, Decl(arrowFunctionExpressions.ts, 23, 16)) +>b : number >1 : number >{ b: 1 } : { b: number; } ->b : number, Symbol(b, Decl(arrowFunctionExpressions.ts, 23, 28)) +>b : number >1 : number var p10 = ([{ value, done }]) => { }; ->p10 : ([{ value, done }]: [{ value: any; done: any; }]) => void, Symbol(p10, Decl(arrowFunctionExpressions.ts, 24, 3)) +>p10 : ([{ value, done }]: [{ value: any; done: any; }]) => void >([{ value, done }]) => { } : ([{ value, done }]: [{ value: any; done: any; }]) => void ->value : any, Symbol(value, Decl(arrowFunctionExpressions.ts, 24, 13)) ->done : any, Symbol(done, Decl(arrowFunctionExpressions.ts, 24, 20)) +>value : any +>done : any // Arrow function used in class member initializer // Arrow function used in class member function class MyClass { ->MyClass : MyClass, Symbol(MyClass, Decl(arrowFunctionExpressions.ts, 24, 37)) +>MyClass : MyClass m = (n) => n + 1; ->m : (n: any) => any, Symbol(m, Decl(arrowFunctionExpressions.ts, 28, 15)) +>m : (n: any) => any >(n) => n + 1 : (n: any) => any ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 29, 9)) +>n : any >n + 1 : any ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 29, 9)) +>n : any >1 : number p = (n) => n && this; ->p : (n: any) => MyClass, Symbol(p, Decl(arrowFunctionExpressions.ts, 29, 21)) +>p : (n: any) => MyClass >(n) => n && this : (n: any) => MyClass ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 30, 9)) +>n : any >n && this : MyClass ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 30, 9)) ->this : MyClass, Symbol(MyClass, Decl(arrowFunctionExpressions.ts, 24, 37)) +>n : any +>this : MyClass fn() { ->fn : () => void, Symbol(fn, Decl(arrowFunctionExpressions.ts, 30, 25)) +>fn : () => void var m = (n) => n + 1; ->m : (n: any) => any, Symbol(m, Decl(arrowFunctionExpressions.ts, 33, 11)) +>m : (n: any) => any >(n) => n + 1 : (n: any) => any ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 33, 17)) +>n : any >n + 1 : any ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 33, 17)) +>n : any >1 : number var p = (n) => n && this; ->p : (n: any) => MyClass, Symbol(p, Decl(arrowFunctionExpressions.ts, 34, 11)) +>p : (n: any) => MyClass >(n) => n && this : (n: any) => MyClass ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 34, 17)) +>n : any >n && this : MyClass ->n : any, Symbol(n, Decl(arrowFunctionExpressions.ts, 34, 17)) ->this : MyClass, Symbol(MyClass, Decl(arrowFunctionExpressions.ts, 24, 37)) +>n : any +>this : MyClass } } // Arrow function used in arrow function var arrrr = () => (m: number) => () => (n: number) => m + n; ->arrrr : () => (m: number) => () => (n: number) => number, Symbol(arrrr, Decl(arrowFunctionExpressions.ts, 39, 3)) +>arrrr : () => (m: number) => () => (n: number) => number >() => (m: number) => () => (n: number) => m + n : () => (m: number) => () => (n: number) => number >(m: number) => () => (n: number) => m + n : (m: number) => () => (n: number) => number ->m : number, Symbol(m, Decl(arrowFunctionExpressions.ts, 39, 19)) +>m : number >() => (n: number) => m + n : () => (n: number) => number >(n: number) => m + n : (n: number) => number ->n : number, Symbol(n, Decl(arrowFunctionExpressions.ts, 39, 40)) +>n : number >m + n : number ->m : number, Symbol(m, Decl(arrowFunctionExpressions.ts, 39, 19)) ->n : number, Symbol(n, Decl(arrowFunctionExpressions.ts, 39, 40)) +>m : number +>n : number var e = arrrr()(3)()(4); ->e : number, Symbol(e, Decl(arrowFunctionExpressions.ts, 40, 3), Decl(arrowFunctionExpressions.ts, 41, 3)) +>e : number >arrrr()(3)()(4) : number >arrrr()(3)() : (n: number) => number >arrrr()(3) : () => (n: number) => number >arrrr() : (m: number) => () => (n: number) => number ->arrrr : () => (m: number) => () => (n: number) => number, Symbol(arrrr, Decl(arrowFunctionExpressions.ts, 39, 3)) +>arrrr : () => (m: number) => () => (n: number) => number >3 : number >4 : number var e: number; ->e : number, Symbol(e, Decl(arrowFunctionExpressions.ts, 40, 3), Decl(arrowFunctionExpressions.ts, 41, 3)) +>e : number // Arrow function used in arrow function used in function function someFn() { ->someFn : () => void, Symbol(someFn, Decl(arrowFunctionExpressions.ts, 41, 14)) +>someFn : () => void var arr = (n: number) => (p: number) => p * n; ->arr : (n: number) => (p: number) => number, Symbol(arr, Decl(arrowFunctionExpressions.ts, 45, 7)) +>arr : (n: number) => (p: number) => number >(n: number) => (p: number) => p * n : (n: number) => (p: number) => number ->n : number, Symbol(n, Decl(arrowFunctionExpressions.ts, 45, 15)) +>n : number >(p: number) => p * n : (p: number) => number ->p : number, Symbol(p, Decl(arrowFunctionExpressions.ts, 45, 30)) +>p : number >p * n : number ->p : number, Symbol(p, Decl(arrowFunctionExpressions.ts, 45, 30)) ->n : number, Symbol(n, Decl(arrowFunctionExpressions.ts, 45, 15)) +>p : number +>n : number arr(3)(4).toExponential(); >arr(3)(4).toExponential() : string ->arr(3)(4).toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>arr(3)(4).toExponential : (fractionDigits?: number) => string >arr(3)(4) : number >arr(3) : (p: number) => number ->arr : (n: number) => (p: number) => number, Symbol(arr, Decl(arrowFunctionExpressions.ts, 45, 7)) +>arr : (n: number) => (p: number) => number >3 : number >4 : number ->toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>toExponential : (fractionDigits?: number) => string } // Arrow function used in function function someOtherFn() { ->someOtherFn : () => void, Symbol(someOtherFn, Decl(arrowFunctionExpressions.ts, 47, 1)) +>someOtherFn : () => void var arr = (n: number) => '' + n; ->arr : (n: number) => string, Symbol(arr, Decl(arrowFunctionExpressions.ts, 51, 7)) +>arr : (n: number) => string >(n: number) => '' + n : (n: number) => string ->n : number, Symbol(n, Decl(arrowFunctionExpressions.ts, 51, 15)) +>n : number >'' + n : string >'' : string ->n : number, Symbol(n, Decl(arrowFunctionExpressions.ts, 51, 15)) +>n : number arr(4).charAt(0); >arr(4).charAt(0) : string ->arr(4).charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>arr(4).charAt : (pos: number) => string >arr(4) : string ->arr : (n: number) => string, Symbol(arr, Decl(arrowFunctionExpressions.ts, 51, 7)) +>arr : (n: number) => string >4 : number ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>charAt : (pos: number) => string >0 : number } // Arrow function used in nested function in function function outerFn() { ->outerFn : () => void, Symbol(outerFn, Decl(arrowFunctionExpressions.ts, 53, 1)) +>outerFn : () => void function innerFn() { ->innerFn : () => void, Symbol(innerFn, Decl(arrowFunctionExpressions.ts, 56, 20)) +>innerFn : () => void var arrowFn = () => { }; ->arrowFn : () => void, Symbol(arrowFn, Decl(arrowFunctionExpressions.ts, 58, 11)) +>arrowFn : () => void >() => { } : () => void var p = arrowFn(); ->p : void, Symbol(p, Decl(arrowFunctionExpressions.ts, 59, 11), Decl(arrowFunctionExpressions.ts, 60, 11)) +>p : void >arrowFn() : void ->arrowFn : () => void, Symbol(arrowFn, Decl(arrowFunctionExpressions.ts, 58, 11)) +>arrowFn : () => void var p: void; ->p : void, Symbol(p, Decl(arrowFunctionExpressions.ts, 59, 11), Decl(arrowFunctionExpressions.ts, 60, 11)) +>p : void } } // Arrow function used in nested function in arrow function var f = (n: string) => { ->f : (n: string) => () => string, Symbol(f, Decl(arrowFunctionExpressions.ts, 65, 3)) +>f : (n: string) => () => string >(n: string) => { function fn(x: number) { return () => n + x; } return fn(4);} : (n: string) => () => string ->n : string, Symbol(n, Decl(arrowFunctionExpressions.ts, 65, 9)) +>n : string function fn(x: number) { ->fn : (x: number) => () => string, Symbol(fn, Decl(arrowFunctionExpressions.ts, 65, 24)) ->x : number, Symbol(x, Decl(arrowFunctionExpressions.ts, 66, 16)) +>fn : (x: number) => () => string +>x : number return () => n + x; >() => n + x : () => string >n + x : string ->n : string, Symbol(n, Decl(arrowFunctionExpressions.ts, 65, 9)) ->x : number, Symbol(x, Decl(arrowFunctionExpressions.ts, 66, 16)) +>n : string +>x : number } return fn(4); >fn(4) : () => string ->fn : (x: number) => () => string, Symbol(fn, Decl(arrowFunctionExpressions.ts, 65, 24)) +>fn : (x: number) => () => string >4 : number } var g = f('')(); ->g : string, Symbol(g, Decl(arrowFunctionExpressions.ts, 71, 3), Decl(arrowFunctionExpressions.ts, 72, 3)) +>g : string >f('')() : string >f('') : () => string ->f : (n: string) => () => string, Symbol(f, Decl(arrowFunctionExpressions.ts, 65, 3)) +>f : (n: string) => () => string >'' : string var g: string; ->g : string, Symbol(g, Decl(arrowFunctionExpressions.ts, 71, 3), Decl(arrowFunctionExpressions.ts, 72, 3)) +>g : string // Arrow function used in nested function in arrow function in nested function function someOuterFn() { ->someOuterFn : () => (n: string) => () => () => number, Symbol(someOuterFn, Decl(arrowFunctionExpressions.ts, 72, 14)) +>someOuterFn : () => (n: string) => () => () => number var arr = (n: string) => { ->arr : (n: string) => () => () => number, Symbol(arr, Decl(arrowFunctionExpressions.ts, 77, 7)) +>arr : (n: string) => () => () => number >(n: string) => { function innerFn() { return () => n.length; } return innerFn; } : (n: string) => () => () => number ->n : string, Symbol(n, Decl(arrowFunctionExpressions.ts, 77, 15)) +>n : string function innerFn() { ->innerFn : () => () => number, Symbol(innerFn, Decl(arrowFunctionExpressions.ts, 77, 30)) +>innerFn : () => () => number return () => n.length; >() => n.length : () => number ->n.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->n : string, Symbol(n, Decl(arrowFunctionExpressions.ts, 77, 15)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>n.length : number +>n : string +>length : number } return innerFn; ->innerFn : () => () => number, Symbol(innerFn, Decl(arrowFunctionExpressions.ts, 77, 30)) +>innerFn : () => () => number } return arr; ->arr : (n: string) => () => () => number, Symbol(arr, Decl(arrowFunctionExpressions.ts, 77, 7)) +>arr : (n: string) => () => () => number } var h = someOuterFn()('')()(); ->h : number, Symbol(h, Decl(arrowFunctionExpressions.ts, 85, 3)) +>h : number >someOuterFn()('')()() : number >someOuterFn()('')() : () => number >someOuterFn()('') : () => () => number >someOuterFn() : (n: string) => () => () => number ->someOuterFn : () => (n: string) => () => () => number, Symbol(someOuterFn, Decl(arrowFunctionExpressions.ts, 72, 14)) +>someOuterFn : () => (n: string) => () => () => number >'' : string h.toExponential(); >h.toExponential() : string ->h.toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) ->h : number, Symbol(h, Decl(arrowFunctionExpressions.ts, 85, 3)) ->toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>h.toExponential : (fractionDigits?: number) => string +>h : number +>toExponential : (fractionDigits?: number) => string // Arrow function used in try/catch/finally in function function tryCatchFn() { ->tryCatchFn : () => void, Symbol(tryCatchFn, Decl(arrowFunctionExpressions.ts, 86, 18)) +>tryCatchFn : () => void try { var x = () => this; ->x : () => any, Symbol(x, Decl(arrowFunctionExpressions.ts, 91, 11)) +>x : () => any >() => this : () => any >this : any } catch (e) { ->e : any, Symbol(e, Decl(arrowFunctionExpressions.ts, 92, 13)) +>e : any var t = () => e + this; ->t : () => any, Symbol(t, Decl(arrowFunctionExpressions.ts, 93, 11)) +>t : () => any >() => e + this : () => any >e + this : any ->e : any, Symbol(e, Decl(arrowFunctionExpressions.ts, 92, 13)) +>e : any >this : any } finally { var m = () => this + ''; ->m : () => string, Symbol(m, Decl(arrowFunctionExpressions.ts, 95, 11)) +>m : () => string >() => this + '' : () => string >this + '' : string >this : any diff --git a/tests/baselines/reference/arrowFunctionInExpressionStatement1.symbols b/tests/baselines/reference/arrowFunctionInExpressionStatement1.symbols new file mode 100644 index 0000000000000..690ff3500c8ee --- /dev/null +++ b/tests/baselines/reference/arrowFunctionInExpressionStatement1.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/arrowFunctionInExpressionStatement1.ts === +() => 0; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/arrowFunctionInExpressionStatement2.symbols b/tests/baselines/reference/arrowFunctionInExpressionStatement2.symbols new file mode 100644 index 0000000000000..c9bbfde997418 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionInExpressionStatement2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/arrowFunctionInExpressionStatement2.ts === +module M { +>M : Symbol(M, Decl(arrowFunctionInExpressionStatement2.ts, 0, 0)) + + () => 0; +} diff --git a/tests/baselines/reference/arrowFunctionInExpressionStatement2.types b/tests/baselines/reference/arrowFunctionInExpressionStatement2.types index 1d49b82285206..bfbd11e8c0873 100644 --- a/tests/baselines/reference/arrowFunctionInExpressionStatement2.types +++ b/tests/baselines/reference/arrowFunctionInExpressionStatement2.types @@ -1,6 +1,6 @@ === tests/cases/compiler/arrowFunctionInExpressionStatement2.ts === module M { ->M : typeof M, Symbol(M, Decl(arrowFunctionInExpressionStatement2.ts, 0, 0)) +>M : typeof M () => 0; >() => 0 : () => number diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.symbols b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.symbols new file mode 100644 index 0000000000000..b4f68e045fe54 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/arrowFunctionWithObjectLiteralBody1.ts === +var v = a => {} +>v : Symbol(v, Decl(arrowFunctionWithObjectLiteralBody1.ts, 0, 3)) +>a : Symbol(a, Decl(arrowFunctionWithObjectLiteralBody1.ts, 0, 7)) + diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.types b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.types index 8a9656dbeb0bb..2446c97d4ceaf 100644 --- a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.types +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody1.types @@ -1,8 +1,8 @@ === tests/cases/compiler/arrowFunctionWithObjectLiteralBody1.ts === var v = a => {} ->v : (a: any) => any, Symbol(v, Decl(arrowFunctionWithObjectLiteralBody1.ts, 0, 3)) +>v : (a: any) => any >a => {} : (a: any) => any ->a : any, Symbol(a, Decl(arrowFunctionWithObjectLiteralBody1.ts, 0, 7)) +>a : any >{} : any >{} : {} diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.symbols b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.symbols new file mode 100644 index 0000000000000..1f8b83a23f158 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/arrowFunctionWithObjectLiteralBody2.ts === +var v = a => {} +>v : Symbol(v, Decl(arrowFunctionWithObjectLiteralBody2.ts, 0, 3)) +>a : Symbol(a, Decl(arrowFunctionWithObjectLiteralBody2.ts, 0, 7)) + diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.types b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.types index 2094b1e7e4e8b..df8e87e82ea0a 100644 --- a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.types +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody2.types @@ -1,8 +1,8 @@ === tests/cases/compiler/arrowFunctionWithObjectLiteralBody2.ts === var v = a => {} ->v : (a: any) => any, Symbol(v, Decl(arrowFunctionWithObjectLiteralBody2.ts, 0, 3)) +>v : (a: any) => any >a => {} : (a: any) => any ->a : any, Symbol(a, Decl(arrowFunctionWithObjectLiteralBody2.ts, 0, 7)) +>a : any >{} : any >{} : any >{} : {} diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.symbols b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.symbols new file mode 100644 index 0000000000000..92122d16fc993 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/arrowFunctionWithObjectLiteralBody3.ts === +var v = a => {} +>v : Symbol(v, Decl(arrowFunctionWithObjectLiteralBody3.ts, 0, 3)) +>a : Symbol(a, Decl(arrowFunctionWithObjectLiteralBody3.ts, 0, 7)) + diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.types b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.types index 43e95f973b614..91e11ab910414 100644 --- a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.types +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody3.types @@ -1,8 +1,8 @@ === tests/cases/compiler/arrowFunctionWithObjectLiteralBody3.ts === var v = a => {} ->v : (a: any) => any, Symbol(v, Decl(arrowFunctionWithObjectLiteralBody3.ts, 0, 3)) +>v : (a: any) => any >a => {} : (a: any) => any ->a : any, Symbol(a, Decl(arrowFunctionWithObjectLiteralBody3.ts, 0, 7)) +>a : any >{} : any >{} : {} diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.symbols b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.symbols new file mode 100644 index 0000000000000..74a6b6a2b9d0e --- /dev/null +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/arrowFunctionWithObjectLiteralBody4.ts === +var v = a => {} +>v : Symbol(v, Decl(arrowFunctionWithObjectLiteralBody4.ts, 0, 3)) +>a : Symbol(a, Decl(arrowFunctionWithObjectLiteralBody4.ts, 0, 7)) + diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.types b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.types index d4ef4671fe107..400a91b459d36 100644 --- a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.types +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody4.types @@ -1,8 +1,8 @@ === tests/cases/compiler/arrowFunctionWithObjectLiteralBody4.ts === var v = a => {} ->v : (a: any) => any, Symbol(v, Decl(arrowFunctionWithObjectLiteralBody4.ts, 0, 3)) +>v : (a: any) => any >a => {} : (a: any) => any ->a : any, Symbol(a, Decl(arrowFunctionWithObjectLiteralBody4.ts, 0, 7)) +>a : any >{} : any >{} : any >{} : {} diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.symbols b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.symbols new file mode 100644 index 0000000000000..c1d1cf40d9096 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/arrowFunctionWithObjectLiteralBody5.ts === +var a = () => { name: "foo", message: "bar" }; +>a : Symbol(a, Decl(arrowFunctionWithObjectLiteralBody5.ts, 0, 3)) +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 0, 22)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 0, 35)) + +var b = () => ({ name: "foo", message: "bar" }); +>b : Symbol(b, Decl(arrowFunctionWithObjectLiteralBody5.ts, 2, 3)) +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 2, 23)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 2, 36)) + +var c = () => ({ name: "foo", message: "bar" }); +>c : Symbol(c, Decl(arrowFunctionWithObjectLiteralBody5.ts, 4, 3)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 4, 16)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 4, 29)) + +var d = () => ((({ name: "foo", message: "bar" }))); +>d : Symbol(d, Decl(arrowFunctionWithObjectLiteralBody5.ts, 6, 3)) +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 6, 25)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 6, 38)) + diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.types b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.types index e005804cc9abe..0093ace2d9caf 100644 --- a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.types +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody5.types @@ -1,48 +1,48 @@ === tests/cases/compiler/arrowFunctionWithObjectLiteralBody5.ts === var a = () => { name: "foo", message: "bar" }; ->a : () => Error, Symbol(a, Decl(arrowFunctionWithObjectLiteralBody5.ts, 0, 3)) +>a : () => Error >() => { name: "foo", message: "bar" } : () => Error >{ name: "foo", message: "bar" } : Error ->Error : Error, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : Error >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 0, 22)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 0, 35)) +>message : string >"bar" : string var b = () => ({ name: "foo", message: "bar" }); ->b : () => Error, Symbol(b, Decl(arrowFunctionWithObjectLiteralBody5.ts, 2, 3)) +>b : () => Error >() => ({ name: "foo", message: "bar" }) : () => Error >({ name: "foo", message: "bar" }) : Error >{ name: "foo", message: "bar" } : Error ->Error : Error, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : Error >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 2, 23)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 2, 36)) +>message : string >"bar" : string var c = () => ({ name: "foo", message: "bar" }); ->c : () => { name: string; message: string; }, Symbol(c, Decl(arrowFunctionWithObjectLiteralBody5.ts, 4, 3)) +>c : () => { name: string; message: string; } >() => ({ name: "foo", message: "bar" }) : () => { name: string; message: string; } >({ name: "foo", message: "bar" }) : { name: string; message: string; } >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 4, 16)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 4, 29)) +>message : string >"bar" : string var d = () => ((({ name: "foo", message: "bar" }))); ->d : () => Error, Symbol(d, Decl(arrowFunctionWithObjectLiteralBody5.ts, 6, 3)) +>d : () => Error >() => ((({ name: "foo", message: "bar" }))) : () => Error >((({ name: "foo", message: "bar" }))) : Error >(({ name: "foo", message: "bar" })) : Error >({ name: "foo", message: "bar" }) : Error ->Error : Error, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : Error >({ name: "foo", message: "bar" }) : { name: string; message: string; } >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody5.ts, 6, 25)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody5.ts, 6, 38)) +>message : string >"bar" : string diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.symbols b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.symbols new file mode 100644 index 0000000000000..80530cde01629 --- /dev/null +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/arrowFunctionWithObjectLiteralBody6.ts === +var a = () => { name: "foo", message: "bar" }; +>a : Symbol(a, Decl(arrowFunctionWithObjectLiteralBody6.ts, 0, 3)) +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 0, 22)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 0, 35)) + +var b = () => ({ name: "foo", message: "bar" }); +>b : Symbol(b, Decl(arrowFunctionWithObjectLiteralBody6.ts, 2, 3)) +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 2, 23)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 2, 36)) + +var c = () => ({ name: "foo", message: "bar" }); +>c : Symbol(c, Decl(arrowFunctionWithObjectLiteralBody6.ts, 4, 3)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 4, 16)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 4, 29)) + +var d = () => ((({ name: "foo", message: "bar" }))); +>d : Symbol(d, Decl(arrowFunctionWithObjectLiteralBody6.ts, 6, 3)) +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>name : Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 6, 25)) +>message : Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 6, 38)) + diff --git a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.types b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.types index 51b314aefbc58..31d2a63fec022 100644 --- a/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.types +++ b/tests/baselines/reference/arrowFunctionWithObjectLiteralBody6.types @@ -1,48 +1,48 @@ === tests/cases/compiler/arrowFunctionWithObjectLiteralBody6.ts === var a = () => { name: "foo", message: "bar" }; ->a : () => Error, Symbol(a, Decl(arrowFunctionWithObjectLiteralBody6.ts, 0, 3)) +>a : () => Error >() => { name: "foo", message: "bar" } : () => Error >{ name: "foo", message: "bar" } : Error ->Error : Error, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : Error >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 0, 22)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 0, 35)) +>message : string >"bar" : string var b = () => ({ name: "foo", message: "bar" }); ->b : () => Error, Symbol(b, Decl(arrowFunctionWithObjectLiteralBody6.ts, 2, 3)) +>b : () => Error >() => ({ name: "foo", message: "bar" }) : () => Error >({ name: "foo", message: "bar" }) : Error >{ name: "foo", message: "bar" } : Error ->Error : Error, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : Error >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 2, 23)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 2, 36)) +>message : string >"bar" : string var c = () => ({ name: "foo", message: "bar" }); ->c : () => { name: string; message: string; }, Symbol(c, Decl(arrowFunctionWithObjectLiteralBody6.ts, 4, 3)) +>c : () => { name: string; message: string; } >() => ({ name: "foo", message: "bar" }) : () => { name: string; message: string; } >({ name: "foo", message: "bar" }) : { name: string; message: string; } >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 4, 16)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 4, 29)) +>message : string >"bar" : string var d = () => ((({ name: "foo", message: "bar" }))); ->d : () => Error, Symbol(d, Decl(arrowFunctionWithObjectLiteralBody6.ts, 6, 3)) +>d : () => Error >() => ((({ name: "foo", message: "bar" }))) : () => Error >((({ name: "foo", message: "bar" }))) : Error >(({ name: "foo", message: "bar" })) : Error >({ name: "foo", message: "bar" }) : Error ->Error : Error, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : Error >({ name: "foo", message: "bar" }) : { name: string; message: string; } >{ name: "foo", message: "bar" } : { name: string; message: string; } ->name : string, Symbol(name, Decl(arrowFunctionWithObjectLiteralBody6.ts, 6, 25)) +>name : string >"foo" : string ->message : string, Symbol(message, Decl(arrowFunctionWithObjectLiteralBody6.ts, 6, 38)) +>message : string >"bar" : string diff --git a/tests/baselines/reference/asiAmbientFunctionDeclaration.symbols b/tests/baselines/reference/asiAmbientFunctionDeclaration.symbols new file mode 100644 index 0000000000000..d32b9a6761949 --- /dev/null +++ b/tests/baselines/reference/asiAmbientFunctionDeclaration.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/asiAmbientFunctionDeclaration.ts === +declare function foo() +>foo : Symbol(foo, Decl(asiAmbientFunctionDeclaration.ts, 0, 0)) + diff --git a/tests/baselines/reference/asiAmbientFunctionDeclaration.types b/tests/baselines/reference/asiAmbientFunctionDeclaration.types index 1a651bdb9c7e0..40ad7f2ba94eb 100644 --- a/tests/baselines/reference/asiAmbientFunctionDeclaration.types +++ b/tests/baselines/reference/asiAmbientFunctionDeclaration.types @@ -1,4 +1,4 @@ === tests/cases/compiler/asiAmbientFunctionDeclaration.ts === declare function foo() ->foo : () => any, Symbol(foo, Decl(asiAmbientFunctionDeclaration.ts, 0, 0)) +>foo : () => any diff --git a/tests/baselines/reference/asiArith.symbols b/tests/baselines/reference/asiArith.symbols new file mode 100644 index 0000000000000..40b15d0723e2d --- /dev/null +++ b/tests/baselines/reference/asiArith.symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/asiArith.ts === +var x = 1; +>x : Symbol(x, Decl(asiArith.ts, 0, 3)) + +var y = 1; +>y : Symbol(y, Decl(asiArith.ts, 2, 3)) + +var z = +>z : Symbol(z, Decl(asiArith.ts, 4, 3)) + +x +>x : Symbol(x, Decl(asiArith.ts, 0, 3)) + ++ + ++ + ++ + +y +>y : Symbol(y, Decl(asiArith.ts, 2, 3)) + + +var a = 1; +>a : Symbol(a, Decl(asiArith.ts, 17, 3)) + +var b = 1; +>b : Symbol(b, Decl(asiArith.ts, 19, 3)) + +var c = +>c : Symbol(c, Decl(asiArith.ts, 21, 3)) + +x +>x : Symbol(x, Decl(asiArith.ts, 0, 3)) + +- + +- + +- + +y +>y : Symbol(y, Decl(asiArith.ts, 2, 3)) + + diff --git a/tests/baselines/reference/asiArith.types b/tests/baselines/reference/asiArith.types index fc39fe3926eba..13394d2f1c29e 100644 --- a/tests/baselines/reference/asiArith.types +++ b/tests/baselines/reference/asiArith.types @@ -1,18 +1,18 @@ === tests/cases/compiler/asiArith.ts === var x = 1; ->x : number, Symbol(x, Decl(asiArith.ts, 0, 3)) +>x : number >1 : number var y = 1; ->y : number, Symbol(y, Decl(asiArith.ts, 2, 3)) +>y : number >1 : number var z = ->z : number, Symbol(z, Decl(asiArith.ts, 4, 3)) +>z : number x >x+++y : number ->x : number, Symbol(x, Decl(asiArith.ts, 0, 3)) +>x : number + @@ -23,23 +23,23 @@ x >+y : number y ->y : number, Symbol(y, Decl(asiArith.ts, 2, 3)) +>y : number var a = 1; ->a : number, Symbol(a, Decl(asiArith.ts, 17, 3)) +>a : number >1 : number var b = 1; ->b : number, Symbol(b, Decl(asiArith.ts, 19, 3)) +>b : number >1 : number var c = ->c : number, Symbol(c, Decl(asiArith.ts, 21, 3)) +>c : number x >x---y : number ->x : number, Symbol(x, Decl(asiArith.ts, 0, 3)) +>x : number - @@ -50,6 +50,6 @@ x >-y : number y ->y : number, Symbol(y, Decl(asiArith.ts, 2, 3)) +>y : number diff --git a/tests/baselines/reference/asiBreak.symbols b/tests/baselines/reference/asiBreak.symbols new file mode 100644 index 0000000000000..355d27f2a43a8 --- /dev/null +++ b/tests/baselines/reference/asiBreak.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/asiBreak.ts === +while (true) break +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/asiContinue.symbols b/tests/baselines/reference/asiContinue.symbols new file mode 100644 index 0000000000000..5b3f01453773f --- /dev/null +++ b/tests/baselines/reference/asiContinue.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/asiContinue.ts === +while (true) continue +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/asiInES6Classes.symbols b/tests/baselines/reference/asiInES6Classes.symbols new file mode 100644 index 0000000000000..e6af356008d0a --- /dev/null +++ b/tests/baselines/reference/asiInES6Classes.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/asiInES6Classes.ts === +class Foo { +>Foo : Symbol(Foo, Decl(asiInES6Classes.ts, 0, 0)) + + + + defaults = { +>defaults : Symbol(defaults, Decl(asiInES6Classes.ts, 0, 11)) + + done: false +>done : Symbol(done, Decl(asiInES6Classes.ts, 4, 16)) + + } + + + + bar() { +>bar : Symbol(bar, Decl(asiInES6Classes.ts, 8, 5)) + + return 3; + + } + + + +} + diff --git a/tests/baselines/reference/asiInES6Classes.types b/tests/baselines/reference/asiInES6Classes.types index 9dcff1547177b..41940a0f4772f 100644 --- a/tests/baselines/reference/asiInES6Classes.types +++ b/tests/baselines/reference/asiInES6Classes.types @@ -1,15 +1,15 @@ === tests/cases/compiler/asiInES6Classes.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(asiInES6Classes.ts, 0, 0)) +>Foo : Foo defaults = { ->defaults : { done: boolean; }, Symbol(defaults, Decl(asiInES6Classes.ts, 0, 11)) +>defaults : { done: boolean; } >{ done: false } : { done: boolean; } done: false ->done : boolean, Symbol(done, Decl(asiInES6Classes.ts, 4, 16)) +>done : boolean >false : boolean } @@ -17,7 +17,7 @@ class Foo { bar() { ->bar : () => number, Symbol(bar, Decl(asiInES6Classes.ts, 8, 5)) +>bar : () => number return 3; >3 : number diff --git a/tests/baselines/reference/assign1.symbols b/tests/baselines/reference/assign1.symbols new file mode 100644 index 0000000000000..f434da7267023 --- /dev/null +++ b/tests/baselines/reference/assign1.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/assign1.ts === +module M { +>M : Symbol(M, Decl(assign1.ts, 0, 0)) + + interface I { +>I : Symbol(I, Decl(assign1.ts, 0, 10)) + + salt:number; +>salt : Symbol(salt, Decl(assign1.ts, 1, 17)) + + pepper:number; +>pepper : Symbol(pepper, Decl(assign1.ts, 2, 20)) + } + + var x:I={salt:2,pepper:0}; +>x : Symbol(x, Decl(assign1.ts, 6, 7)) +>I : Symbol(I, Decl(assign1.ts, 0, 10)) +>salt : Symbol(salt, Decl(assign1.ts, 6, 13)) +>pepper : Symbol(pepper, Decl(assign1.ts, 6, 20)) +} + diff --git a/tests/baselines/reference/assign1.types b/tests/baselines/reference/assign1.types index d5d734c93ce36..d600c4055afc1 100644 --- a/tests/baselines/reference/assign1.types +++ b/tests/baselines/reference/assign1.types @@ -1,24 +1,24 @@ === tests/cases/compiler/assign1.ts === module M { ->M : typeof M, Symbol(M, Decl(assign1.ts, 0, 0)) +>M : typeof M interface I { ->I : I, Symbol(I, Decl(assign1.ts, 0, 10)) +>I : I salt:number; ->salt : number, Symbol(salt, Decl(assign1.ts, 1, 17)) +>salt : number pepper:number; ->pepper : number, Symbol(pepper, Decl(assign1.ts, 2, 20)) +>pepper : number } var x:I={salt:2,pepper:0}; ->x : I, Symbol(x, Decl(assign1.ts, 6, 7)) ->I : I, Symbol(I, Decl(assign1.ts, 0, 10)) +>x : I +>I : I >{salt:2,pepper:0} : { salt: number; pepper: number; } ->salt : number, Symbol(salt, Decl(assign1.ts, 6, 13)) +>salt : number >2 : number ->pepper : number, Symbol(pepper, Decl(assign1.ts, 6, 20)) +>pepper : number >0 : number } diff --git a/tests/baselines/reference/assignEveryTypeToAny.symbols b/tests/baselines/reference/assignEveryTypeToAny.symbols new file mode 100644 index 0000000000000..145e19664fd92 --- /dev/null +++ b/tests/baselines/reference/assignEveryTypeToAny.symbols @@ -0,0 +1,141 @@ +=== tests/cases/conformance/types/any/assignEveryTypeToAny.ts === +// all of these are valid + +var x: any; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) + +x = 1; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) + +var a = 2; +>a : Symbol(a, Decl(assignEveryTypeToAny.ts, 5, 3)) + +x = a; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>a : Symbol(a, Decl(assignEveryTypeToAny.ts, 5, 3)) + +x = true; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) + +var b = true; +>b : Symbol(b, Decl(assignEveryTypeToAny.ts, 9, 3)) + +x = b; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>b : Symbol(b, Decl(assignEveryTypeToAny.ts, 9, 3)) + +x = ""; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) + +var c = ""; +>c : Symbol(c, Decl(assignEveryTypeToAny.ts, 13, 3)) + +x = c; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>c : Symbol(c, Decl(assignEveryTypeToAny.ts, 13, 3)) + +var d: void; +>d : Symbol(d, Decl(assignEveryTypeToAny.ts, 16, 3)) + +x = d; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>d : Symbol(d, Decl(assignEveryTypeToAny.ts, 16, 3)) + +var e = undefined; +>e : Symbol(e, Decl(assignEveryTypeToAny.ts, 19, 3)) +>undefined : Symbol(undefined) + +x = e; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>e : Symbol(e, Decl(assignEveryTypeToAny.ts, 19, 3)) + +var e2: typeof undefined; +>e2 : Symbol(e2, Decl(assignEveryTypeToAny.ts, 22, 3)) +>undefined : Symbol(undefined) + +x = e2; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>e2 : Symbol(e2, Decl(assignEveryTypeToAny.ts, 22, 3)) + +enum E { +>E : Symbol(E, Decl(assignEveryTypeToAny.ts, 23, 7)) + + A +>A : Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) +} + +x = E.A; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>E.A : Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) +>E : Symbol(E, Decl(assignEveryTypeToAny.ts, 23, 7)) +>A : Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) + +var f = E.A; +>f : Symbol(f, Decl(assignEveryTypeToAny.ts, 30, 3)) +>E.A : Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) +>E : Symbol(E, Decl(assignEveryTypeToAny.ts, 23, 7)) +>A : Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) + +x = f; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>f : Symbol(f, Decl(assignEveryTypeToAny.ts, 30, 3)) + +interface I { +>I : Symbol(I, Decl(assignEveryTypeToAny.ts, 31, 6)) + + foo: string; +>foo : Symbol(foo, Decl(assignEveryTypeToAny.ts, 33, 13)) +} + +var g: I; +>g : Symbol(g, Decl(assignEveryTypeToAny.ts, 37, 3)) +>I : Symbol(I, Decl(assignEveryTypeToAny.ts, 31, 6)) + +x = g; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>g : Symbol(g, Decl(assignEveryTypeToAny.ts, 37, 3)) + +class C { +>C : Symbol(C, Decl(assignEveryTypeToAny.ts, 38, 6)) + + bar: string; +>bar : Symbol(bar, Decl(assignEveryTypeToAny.ts, 40, 9)) +} + +var h: C; +>h : Symbol(h, Decl(assignEveryTypeToAny.ts, 44, 3)) +>C : Symbol(C, Decl(assignEveryTypeToAny.ts, 38, 6)) + +x = h; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>h : Symbol(h, Decl(assignEveryTypeToAny.ts, 44, 3)) + +var i: { (): string }; +>i : Symbol(i, Decl(assignEveryTypeToAny.ts, 47, 3)) + +x = i; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>i : Symbol(i, Decl(assignEveryTypeToAny.ts, 47, 3)) + +x = { f() { return 1; } } +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>f : Symbol(f, Decl(assignEveryTypeToAny.ts, 49, 5)) + +x = { f(x: T) { return x; } } +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>f : Symbol(f, Decl(assignEveryTypeToAny.ts, 50, 5)) +>T : Symbol(T, Decl(assignEveryTypeToAny.ts, 50, 8)) +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 50, 11)) +>T : Symbol(T, Decl(assignEveryTypeToAny.ts, 50, 8)) +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 50, 11)) + +function j(a: T) { +>j : Symbol(j, Decl(assignEveryTypeToAny.ts, 50, 32)) +>T : Symbol(T, Decl(assignEveryTypeToAny.ts, 52, 11)) +>a : Symbol(a, Decl(assignEveryTypeToAny.ts, 52, 14)) +>T : Symbol(T, Decl(assignEveryTypeToAny.ts, 52, 11)) + + x = a; +>x : Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>a : Symbol(a, Decl(assignEveryTypeToAny.ts, 52, 14)) +} diff --git a/tests/baselines/reference/assignEveryTypeToAny.types b/tests/baselines/reference/assignEveryTypeToAny.types index 2bab3111f93d8..dfff671a875b3 100644 --- a/tests/baselines/reference/assignEveryTypeToAny.types +++ b/tests/baselines/reference/assignEveryTypeToAny.types @@ -2,166 +2,166 @@ // all of these are valid var x: any; ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>x : any x = 1; >x = 1 : number ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>x : any >1 : number var a = 2; ->a : number, Symbol(a, Decl(assignEveryTypeToAny.ts, 5, 3)) +>a : number >2 : number x = a; >x = a : number ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->a : number, Symbol(a, Decl(assignEveryTypeToAny.ts, 5, 3)) +>x : any +>a : number x = true; >x = true : boolean ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>x : any >true : boolean var b = true; ->b : boolean, Symbol(b, Decl(assignEveryTypeToAny.ts, 9, 3)) +>b : boolean >true : boolean x = b; >x = b : boolean ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->b : boolean, Symbol(b, Decl(assignEveryTypeToAny.ts, 9, 3)) +>x : any +>b : boolean x = ""; >x = "" : string ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>x : any >"" : string var c = ""; ->c : string, Symbol(c, Decl(assignEveryTypeToAny.ts, 13, 3)) +>c : string >"" : string x = c; >x = c : string ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->c : string, Symbol(c, Decl(assignEveryTypeToAny.ts, 13, 3)) +>x : any +>c : string var d: void; ->d : void, Symbol(d, Decl(assignEveryTypeToAny.ts, 16, 3)) +>d : void x = d; >x = d : void ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->d : void, Symbol(d, Decl(assignEveryTypeToAny.ts, 16, 3)) +>x : any +>d : void var e = undefined; ->e : any, Symbol(e, Decl(assignEveryTypeToAny.ts, 19, 3)) ->undefined : undefined, Symbol(undefined) +>e : any +>undefined : undefined x = e; >x = e : any ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->e : any, Symbol(e, Decl(assignEveryTypeToAny.ts, 19, 3)) +>x : any +>e : any var e2: typeof undefined; ->e2 : any, Symbol(e2, Decl(assignEveryTypeToAny.ts, 22, 3)) ->undefined : undefined, Symbol(undefined) +>e2 : any +>undefined : undefined x = e2; >x = e2 : any ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->e2 : any, Symbol(e2, Decl(assignEveryTypeToAny.ts, 22, 3)) +>x : any +>e2 : any enum E { ->E : E, Symbol(E, Decl(assignEveryTypeToAny.ts, 23, 7)) +>E : E A ->A : E, Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) +>A : E } x = E.A; >x = E.A : E ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->E.A : E, Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) ->E : typeof E, Symbol(E, Decl(assignEveryTypeToAny.ts, 23, 7)) ->A : E, Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) +>x : any +>E.A : E +>E : typeof E +>A : E var f = E.A; ->f : E, Symbol(f, Decl(assignEveryTypeToAny.ts, 30, 3)) ->E.A : E, Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) ->E : typeof E, Symbol(E, Decl(assignEveryTypeToAny.ts, 23, 7)) ->A : E, Symbol(E.A, Decl(assignEveryTypeToAny.ts, 25, 8)) +>f : E +>E.A : E +>E : typeof E +>A : E x = f; >x = f : E ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->f : E, Symbol(f, Decl(assignEveryTypeToAny.ts, 30, 3)) +>x : any +>f : E interface I { ->I : I, Symbol(I, Decl(assignEveryTypeToAny.ts, 31, 6)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(assignEveryTypeToAny.ts, 33, 13)) +>foo : string } var g: I; ->g : I, Symbol(g, Decl(assignEveryTypeToAny.ts, 37, 3)) ->I : I, Symbol(I, Decl(assignEveryTypeToAny.ts, 31, 6)) +>g : I +>I : I x = g; >x = g : I ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->g : I, Symbol(g, Decl(assignEveryTypeToAny.ts, 37, 3)) +>x : any +>g : I class C { ->C : C, Symbol(C, Decl(assignEveryTypeToAny.ts, 38, 6)) +>C : C bar: string; ->bar : string, Symbol(bar, Decl(assignEveryTypeToAny.ts, 40, 9)) +>bar : string } var h: C; ->h : C, Symbol(h, Decl(assignEveryTypeToAny.ts, 44, 3)) ->C : C, Symbol(C, Decl(assignEveryTypeToAny.ts, 38, 6)) +>h : C +>C : C x = h; >x = h : C ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->h : C, Symbol(h, Decl(assignEveryTypeToAny.ts, 44, 3)) +>x : any +>h : C var i: { (): string }; ->i : () => string, Symbol(i, Decl(assignEveryTypeToAny.ts, 47, 3)) +>i : () => string x = i; >x = i : () => string ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->i : () => string, Symbol(i, Decl(assignEveryTypeToAny.ts, 47, 3)) +>x : any +>i : () => string x = { f() { return 1; } } >x = { f() { return 1; } } : { f(): number; } ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>x : any >{ f() { return 1; } } : { f(): number; } ->f : () => number, Symbol(f, Decl(assignEveryTypeToAny.ts, 49, 5)) +>f : () => number >1 : number x = { f(x: T) { return x; } } >x = { f(x: T) { return x; } } : { f(x: T): T; } ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) +>x : any >{ f(x: T) { return x; } } : { f(x: T): T; } ->f : (x: T) => T, Symbol(f, Decl(assignEveryTypeToAny.ts, 50, 5)) ->T : T, Symbol(T, Decl(assignEveryTypeToAny.ts, 50, 8)) ->x : T, Symbol(x, Decl(assignEveryTypeToAny.ts, 50, 11)) ->T : T, Symbol(T, Decl(assignEveryTypeToAny.ts, 50, 8)) ->x : T, Symbol(x, Decl(assignEveryTypeToAny.ts, 50, 11)) +>f : (x: T) => T +>T : T +>x : T +>T : T +>x : T function j(a: T) { ->j : (a: T) => void, Symbol(j, Decl(assignEveryTypeToAny.ts, 50, 32)) ->T : T, Symbol(T, Decl(assignEveryTypeToAny.ts, 52, 11)) ->a : T, Symbol(a, Decl(assignEveryTypeToAny.ts, 52, 14)) ->T : T, Symbol(T, Decl(assignEveryTypeToAny.ts, 52, 11)) +>j : (a: T) => void +>T : T +>a : T +>T : T x = a; >x = a : T ->x : any, Symbol(x, Decl(assignEveryTypeToAny.ts, 2, 3)) ->a : T, Symbol(a, Decl(assignEveryTypeToAny.ts, 52, 14)) +>x : any +>a : T } diff --git a/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.symbols b/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.symbols new file mode 100644 index 0000000000000..730560d0d81be --- /dev/null +++ b/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/assignToObjectTypeWithPrototypeProperty.ts === +class XEvent {} +>XEvent : Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) + +var p: XEvent = XEvent.prototype; +>p : Symbol(p, Decl(assignToObjectTypeWithPrototypeProperty.ts, 1, 3)) +>XEvent : Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) +>XEvent.prototype : Symbol(XEvent.prototype) +>XEvent : Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) +>prototype : Symbol(XEvent.prototype) + +var x: {prototype: XEvent} = XEvent; +>x : Symbol(x, Decl(assignToObjectTypeWithPrototypeProperty.ts, 2, 3)) +>prototype : Symbol(prototype, Decl(assignToObjectTypeWithPrototypeProperty.ts, 2, 8)) +>XEvent : Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) +>XEvent : Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) + diff --git a/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types b/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types index a73cad61ae35f..7ea260f8c1566 100644 --- a/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types +++ b/tests/baselines/reference/assignToObjectTypeWithPrototypeProperty.types @@ -1,17 +1,17 @@ === tests/cases/compiler/assignToObjectTypeWithPrototypeProperty.ts === class XEvent {} ->XEvent : XEvent, Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) +>XEvent : XEvent var p: XEvent = XEvent.prototype; ->p : XEvent, Symbol(p, Decl(assignToObjectTypeWithPrototypeProperty.ts, 1, 3)) ->XEvent : XEvent, Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) ->XEvent.prototype : XEvent, Symbol(XEvent.prototype) ->XEvent : typeof XEvent, Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) ->prototype : XEvent, Symbol(XEvent.prototype) +>p : XEvent +>XEvent : XEvent +>XEvent.prototype : XEvent +>XEvent : typeof XEvent +>prototype : XEvent var x: {prototype: XEvent} = XEvent; ->x : { prototype: XEvent; }, Symbol(x, Decl(assignToObjectTypeWithPrototypeProperty.ts, 2, 3)) ->prototype : XEvent, Symbol(prototype, Decl(assignToObjectTypeWithPrototypeProperty.ts, 2, 8)) ->XEvent : XEvent, Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) ->XEvent : typeof XEvent, Symbol(XEvent, Decl(assignToObjectTypeWithPrototypeProperty.ts, 0, 0)) +>x : { prototype: XEvent; } +>prototype : XEvent +>XEvent : XEvent +>XEvent : typeof XEvent diff --git a/tests/baselines/reference/assignToPrototype1.symbols b/tests/baselines/reference/assignToPrototype1.symbols new file mode 100644 index 0000000000000..ddb8e915043d9 --- /dev/null +++ b/tests/baselines/reference/assignToPrototype1.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/assignToPrototype1.ts === +declare class Point { +>Point : Symbol(Point, Decl(assignToPrototype1.ts, 0, 0)) + + add(dx: number, dy: number): void; +>add : Symbol(add, Decl(assignToPrototype1.ts, 0, 21)) +>dx : Symbol(dx, Decl(assignToPrototype1.ts, 1, 6)) +>dy : Symbol(dy, Decl(assignToPrototype1.ts, 1, 17)) +} + +Point.prototype.add = function(dx, dy) { +>Point.prototype.add : Symbol(Point.add, Decl(assignToPrototype1.ts, 0, 21)) +>Point.prototype : Symbol(Point.prototype) +>Point : Symbol(Point, Decl(assignToPrototype1.ts, 0, 0)) +>prototype : Symbol(Point.prototype) +>add : Symbol(Point.add, Decl(assignToPrototype1.ts, 0, 21)) +>dx : Symbol(dx, Decl(assignToPrototype1.ts, 4, 31)) +>dy : Symbol(dy, Decl(assignToPrototype1.ts, 4, 34)) + +}; diff --git a/tests/baselines/reference/assignToPrototype1.types b/tests/baselines/reference/assignToPrototype1.types index eb1d29aad6573..f4631c89e0b3b 100644 --- a/tests/baselines/reference/assignToPrototype1.types +++ b/tests/baselines/reference/assignToPrototype1.types @@ -1,22 +1,22 @@ === tests/cases/compiler/assignToPrototype1.ts === declare class Point { ->Point : Point, Symbol(Point, Decl(assignToPrototype1.ts, 0, 0)) +>Point : Point add(dx: number, dy: number): void; ->add : (dx: number, dy: number) => void, Symbol(add, Decl(assignToPrototype1.ts, 0, 21)) ->dx : number, Symbol(dx, Decl(assignToPrototype1.ts, 1, 6)) ->dy : number, Symbol(dy, Decl(assignToPrototype1.ts, 1, 17)) +>add : (dx: number, dy: number) => void +>dx : number +>dy : number } Point.prototype.add = function(dx, dy) { >Point.prototype.add = function(dx, dy) {} : (dx: number, dy: number) => void ->Point.prototype.add : (dx: number, dy: number) => void, Symbol(Point.add, Decl(assignToPrototype1.ts, 0, 21)) ->Point.prototype : Point, Symbol(Point.prototype) ->Point : typeof Point, Symbol(Point, Decl(assignToPrototype1.ts, 0, 0)) ->prototype : Point, Symbol(Point.prototype) ->add : (dx: number, dy: number) => void, Symbol(Point.add, Decl(assignToPrototype1.ts, 0, 21)) +>Point.prototype.add : (dx: number, dy: number) => void +>Point.prototype : Point +>Point : typeof Point +>prototype : Point +>add : (dx: number, dy: number) => void >function(dx, dy) {} : (dx: number, dy: number) => void ->dx : number, Symbol(dx, Decl(assignToPrototype1.ts, 4, 31)) ->dy : number, Symbol(dy, Decl(assignToPrototype1.ts, 4, 34)) +>dx : number +>dy : number }; diff --git a/tests/baselines/reference/assignmentCompatForEnums.symbols b/tests/baselines/reference/assignmentCompatForEnums.symbols new file mode 100644 index 0000000000000..510c08e61f692 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatForEnums.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/assignmentCompatForEnums.ts === +enum TokenType { One, Two }; +>TokenType : Symbol(TokenType, Decl(assignmentCompatForEnums.ts, 0, 0)) +>One : Symbol(TokenType.One, Decl(assignmentCompatForEnums.ts, 0, 16)) +>Two : Symbol(TokenType.Two, Decl(assignmentCompatForEnums.ts, 0, 21)) + +var list = {}; +>list : Symbol(list, Decl(assignmentCompatForEnums.ts, 2, 3)) + + +function returnType(): TokenType { return null; } +>returnType : Symbol(returnType, Decl(assignmentCompatForEnums.ts, 2, 14)) +>TokenType : Symbol(TokenType, Decl(assignmentCompatForEnums.ts, 0, 0)) + +function foo() { +>foo : Symbol(foo, Decl(assignmentCompatForEnums.ts, 5, 49)) + + var x = returnType(); +>x : Symbol(x, Decl(assignmentCompatForEnums.ts, 8, 7), Decl(assignmentCompatForEnums.ts, 10, 7)) +>returnType : Symbol(returnType, Decl(assignmentCompatForEnums.ts, 2, 14)) + + var x: TokenType = list['one']; +>x : Symbol(x, Decl(assignmentCompatForEnums.ts, 8, 7), Decl(assignmentCompatForEnums.ts, 10, 7)) +>TokenType : Symbol(TokenType, Decl(assignmentCompatForEnums.ts, 0, 0)) +>list : Symbol(list, Decl(assignmentCompatForEnums.ts, 2, 3)) +} + + diff --git a/tests/baselines/reference/assignmentCompatForEnums.types b/tests/baselines/reference/assignmentCompatForEnums.types index 41ad3cea73430..e8b48bd02bd3e 100644 --- a/tests/baselines/reference/assignmentCompatForEnums.types +++ b/tests/baselines/reference/assignmentCompatForEnums.types @@ -1,32 +1,32 @@ === tests/cases/compiler/assignmentCompatForEnums.ts === enum TokenType { One, Two }; ->TokenType : TokenType, Symbol(TokenType, Decl(assignmentCompatForEnums.ts, 0, 0)) ->One : TokenType, Symbol(TokenType.One, Decl(assignmentCompatForEnums.ts, 0, 16)) ->Two : TokenType, Symbol(TokenType.Two, Decl(assignmentCompatForEnums.ts, 0, 21)) +>TokenType : TokenType +>One : TokenType +>Two : TokenType var list = {}; ->list : {}, Symbol(list, Decl(assignmentCompatForEnums.ts, 2, 3)) +>list : {} >{} : {} function returnType(): TokenType { return null; } ->returnType : () => TokenType, Symbol(returnType, Decl(assignmentCompatForEnums.ts, 2, 14)) ->TokenType : TokenType, Symbol(TokenType, Decl(assignmentCompatForEnums.ts, 0, 0)) +>returnType : () => TokenType +>TokenType : TokenType >null : null function foo() { ->foo : () => void, Symbol(foo, Decl(assignmentCompatForEnums.ts, 5, 49)) +>foo : () => void var x = returnType(); ->x : TokenType, Symbol(x, Decl(assignmentCompatForEnums.ts, 8, 7), Decl(assignmentCompatForEnums.ts, 10, 7)) +>x : TokenType >returnType() : TokenType ->returnType : () => TokenType, Symbol(returnType, Decl(assignmentCompatForEnums.ts, 2, 14)) +>returnType : () => TokenType var x: TokenType = list['one']; ->x : TokenType, Symbol(x, Decl(assignmentCompatForEnums.ts, 8, 7), Decl(assignmentCompatForEnums.ts, 10, 7)) ->TokenType : TokenType, Symbol(TokenType, Decl(assignmentCompatForEnums.ts, 0, 0)) +>x : TokenType +>TokenType : TokenType >list['one'] : any ->list : {}, Symbol(list, Decl(assignmentCompatForEnums.ts, 2, 3)) +>list : {} >'one' : string } diff --git a/tests/baselines/reference/assignmentCompatOnNew.symbols b/tests/baselines/reference/assignmentCompatOnNew.symbols new file mode 100644 index 0000000000000..524a22d2421f7 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatOnNew.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/assignmentCompatOnNew.ts === +class Foo{}; +>Foo : Symbol(Foo, Decl(assignmentCompatOnNew.ts, 0, 0)) + +function bar(x: {new(): Foo;}){} +>bar : Symbol(bar, Decl(assignmentCompatOnNew.ts, 0, 12)) +>x : Symbol(x, Decl(assignmentCompatOnNew.ts, 2, 13)) +>Foo : Symbol(Foo, Decl(assignmentCompatOnNew.ts, 0, 0)) + +bar(Foo); // Error, but should be allowed +>bar : Symbol(bar, Decl(assignmentCompatOnNew.ts, 0, 12)) +>Foo : Symbol(Foo, Decl(assignmentCompatOnNew.ts, 0, 0)) + diff --git a/tests/baselines/reference/assignmentCompatOnNew.types b/tests/baselines/reference/assignmentCompatOnNew.types index ea56af98b7bf9..19994e61df84d 100644 --- a/tests/baselines/reference/assignmentCompatOnNew.types +++ b/tests/baselines/reference/assignmentCompatOnNew.types @@ -1,14 +1,14 @@ === tests/cases/compiler/assignmentCompatOnNew.ts === class Foo{}; ->Foo : Foo, Symbol(Foo, Decl(assignmentCompatOnNew.ts, 0, 0)) +>Foo : Foo function bar(x: {new(): Foo;}){} ->bar : (x: new () => Foo) => void, Symbol(bar, Decl(assignmentCompatOnNew.ts, 0, 12)) ->x : new () => Foo, Symbol(x, Decl(assignmentCompatOnNew.ts, 2, 13)) ->Foo : Foo, Symbol(Foo, Decl(assignmentCompatOnNew.ts, 0, 0)) +>bar : (x: new () => Foo) => void +>x : new () => Foo +>Foo : Foo bar(Foo); // Error, but should be allowed >bar(Foo) : void ->bar : (x: new () => Foo) => void, Symbol(bar, Decl(assignmentCompatOnNew.ts, 0, 12)) ->Foo : typeof Foo, Symbol(Foo, Decl(assignmentCompatOnNew.ts, 0, 0)) +>bar : (x: new () => Foo) => void +>Foo : typeof Foo diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.symbols b/tests/baselines/reference/assignmentCompatWithCallSignatures3.symbols new file mode 100644 index 0000000000000..8218de9be7908 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.symbols @@ -0,0 +1,529 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures3.ts === +// these are all permitted with the current rules, since we do not do contextual signature instantiation + +class Base { foo: string; } +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures3.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithCallSignatures3.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>baz : Symbol(baz, Decl(assignmentCompatWithCallSignatures3.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures3.ts, 4, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>bing : Symbol(bing, Decl(assignmentCompatWithCallSignatures3.ts, 5, 33)) + +var a: (x: number) => number[]; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 7, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 7, 8)) + +var a2: (x: number) => string[]; +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures3.ts, 8, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 8, 9)) + +var a3: (x: number) => void; +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures3.ts, 9, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 9, 9)) + +var a4: (x: string, y: number) => string; +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures3.ts, 10, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 10, 9)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 10, 19)) + +var a5: (x: (arg: string) => number) => string; +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures3.ts, 11, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 11, 9)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 11, 13)) + +var a6: (x: (arg: Base) => Derived) => Base; +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures3.ts, 12, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 12, 9)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 12, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) + +var a7: (x: (arg: Base) => Derived) => (r: Base) => Derived; +>a7 : Symbol(a7, Decl(assignmentCompatWithCallSignatures3.ts, 13, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 13, 9)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 13, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>r : Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 13, 40)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +var a8: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a8 : Symbol(a8, Decl(assignmentCompatWithCallSignatures3.ts, 14, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 14, 9)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 14, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 14, 35)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 14, 40)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>r : Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 14, 68)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +var a9: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a9 : Symbol(a9, Decl(assignmentCompatWithCallSignatures3.ts, 15, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 15, 9)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 15, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 15, 35)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 15, 40)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>r : Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 15, 68)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +var a10: (...x: Derived[]) => Derived; +>a10 : Symbol(a10, Decl(assignmentCompatWithCallSignatures3.ts, 16, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 16, 10)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +var a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures3.ts, 17, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 17, 10)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 17, 14)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 17, 29)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 17, 34)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures3.ts, 17, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) + +var a12: (x: Array, y: Array) => Array; +>a12 : Symbol(a12, Decl(assignmentCompatWithCallSignatures3.ts, 18, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 18, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 18, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithCallSignatures3.ts, 3, 43)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +var a13: (x: Array, y: Array) => Array; +>a13 : Symbol(a13, Decl(assignmentCompatWithCallSignatures3.ts, 19, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 19, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 19, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +var a14: (x: { a: string; b: number }) => Object; +>a14 : Symbol(a14, Decl(assignmentCompatWithCallSignatures3.ts, 20, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 20, 10)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 20, 14)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 20, 25)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var a15: { +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures3.ts, 21, 3)) + + (x: number): number[]; +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 22, 5)) + + (x: string): string[]; +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 23, 5)) +} +var a16: { +>a16 : Symbol(a16, Decl(assignmentCompatWithCallSignatures3.ts, 25, 3)) + + (x: T): number[]; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 26, 5)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 26, 24)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 26, 5)) + + (x: U): number[]; +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 27, 5)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 27, 21)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 27, 5)) +} +var a17: { +>a17 : Symbol(a17, Decl(assignmentCompatWithCallSignatures3.ts, 29, 3)) + + (x: (a: number) => number): number[]; +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 30, 5)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 30, 9)) + + (x: (a: string) => string): string[]; +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 31, 5)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 31, 9)) + +}; +var a18: { +>a18 : Symbol(a18, Decl(assignmentCompatWithCallSignatures3.ts, 33, 3)) + + (x: { +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 34, 5)) + + (a: number): number; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 35, 9)) + + (a: string): string; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 36, 9)) + + }): any[]; + (x: { +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 38, 5)) + + (a: boolean): boolean; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 39, 9)) + + (a: Date): Date; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 40, 9)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + }): any[]; +} + +var b: (x: T) => T[]; +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 44, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 44, 8)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 44, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 44, 8)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 44, 8)) + +a = b; // ok +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 7, 3)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 44, 3)) + +b = a; // ok +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 44, 3)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 7, 3)) + +var b2: (x: T) => string[]; +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures3.ts, 47, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 47, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 47, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 47, 9)) + +a2 = b2; // ok +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures3.ts, 8, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures3.ts, 47, 3)) + +b2 = a2; // ok +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures3.ts, 47, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures3.ts, 8, 3)) + +var b3: (x: T) => T; +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures3.ts, 50, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 50, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 50, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 50, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 50, 9)) + +a3 = b3; // ok +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures3.ts, 9, 3)) +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures3.ts, 50, 3)) + +b3 = a3; // ok +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures3.ts, 50, 3)) +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures3.ts, 9, 3)) + +var b4: (x: T, y: U) => T; +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures3.ts, 53, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 53, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 53, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 53, 15)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 53, 9)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 53, 20)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 53, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 53, 9)) + +a4 = b4; // ok +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures3.ts, 10, 3)) +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures3.ts, 53, 3)) + +b4 = a4; // ok +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures3.ts, 53, 3)) +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures3.ts, 10, 3)) + +var b5: (x: (arg: T) => U) => T; +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures3.ts, 56, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 56, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 56, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 56, 15)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 56, 19)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 56, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 56, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 56, 9)) + +a5 = b5; // ok +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures3.ts, 11, 3)) +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures3.ts, 56, 3)) + +b5 = a5; // ok +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures3.ts, 56, 3)) +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures3.ts, 11, 3)) + +var b6: (x: (arg: T) => U) => T; +>b6 : Symbol(b6, Decl(assignmentCompatWithCallSignatures3.ts, 59, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 59, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 59, 24)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 59, 44)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 59, 48)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 59, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 59, 24)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 59, 9)) + +a6 = b6; // ok +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures3.ts, 12, 3)) +>b6 : Symbol(b6, Decl(assignmentCompatWithCallSignatures3.ts, 59, 3)) + +b6 = a6; // ok +>b6 : Symbol(b6, Decl(assignmentCompatWithCallSignatures3.ts, 59, 3)) +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures3.ts, 12, 3)) + +var b7: (x: (arg: T) => U) => (r: T) => U; +>b7 : Symbol(b7, Decl(assignmentCompatWithCallSignatures3.ts, 62, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 62, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 62, 24)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 62, 44)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 62, 48)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 62, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 62, 24)) +>r : Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 62, 66)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 62, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 62, 24)) + +a7 = b7; // ok +>a7 : Symbol(a7, Decl(assignmentCompatWithCallSignatures3.ts, 13, 3)) +>b7 : Symbol(b7, Decl(assignmentCompatWithCallSignatures3.ts, 62, 3)) + +b7 = a7; // ok +>b7 : Symbol(b7, Decl(assignmentCompatWithCallSignatures3.ts, 62, 3)) +>a7 : Symbol(a7, Decl(assignmentCompatWithCallSignatures3.ts, 13, 3)) + +var b8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; +>b8 : Symbol(b8, Decl(assignmentCompatWithCallSignatures3.ts, 65, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 65, 44)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 65, 48)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 65, 61)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 65, 66)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) +>r : Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 65, 85)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) + +a8 = b8; // ok +>a8 : Symbol(a8, Decl(assignmentCompatWithCallSignatures3.ts, 14, 3)) +>b8 : Symbol(b8, Decl(assignmentCompatWithCallSignatures3.ts, 65, 3)) + +b8 = a8; // ok +>b8 : Symbol(b8, Decl(assignmentCompatWithCallSignatures3.ts, 65, 3)) +>a8 : Symbol(a8, Decl(assignmentCompatWithCallSignatures3.ts, 14, 3)) + +var b9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; +>b9 : Symbol(b9, Decl(assignmentCompatWithCallSignatures3.ts, 68, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 68, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 68, 44)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 68, 48)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 68, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 68, 61)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 68, 66)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 68, 73)) +>bing : Symbol(bing, Decl(assignmentCompatWithCallSignatures3.ts, 68, 86)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) +>r : Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 68, 113)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 68, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) + +a9 = b9; // ok +>a9 : Symbol(a9, Decl(assignmentCompatWithCallSignatures3.ts, 15, 3)) +>b9 : Symbol(b9, Decl(assignmentCompatWithCallSignatures3.ts, 68, 3)) + +b9 = a9; // ok +>b9 : Symbol(b9, Decl(assignmentCompatWithCallSignatures3.ts, 68, 3)) +>a9 : Symbol(a9, Decl(assignmentCompatWithCallSignatures3.ts, 15, 3)) + +var b10: (...x: T[]) => T; +>b10 : Symbol(b10, Decl(assignmentCompatWithCallSignatures3.ts, 71, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 71, 10)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 71, 29)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 71, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 71, 10)) + +a10 = b10; // ok +>a10 : Symbol(a10, Decl(assignmentCompatWithCallSignatures3.ts, 16, 3)) +>b10 : Symbol(b10, Decl(assignmentCompatWithCallSignatures3.ts, 71, 3)) + +b10 = a10; // ok +>b10 : Symbol(b10, Decl(assignmentCompatWithCallSignatures3.ts, 71, 3)) +>a10 : Symbol(a10, Decl(assignmentCompatWithCallSignatures3.ts, 16, 3)) + +var b11: (x: T, y: T) => T; +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures3.ts, 74, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 74, 26)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 74, 31)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) + +a11 = b11; // ok +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures3.ts, 17, 3)) +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures3.ts, 74, 3)) + +b11 = a11; // ok +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures3.ts, 74, 3)) +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures3.ts, 17, 3)) + +var b12: >(x: Array, y: T) => Array; +>b12 : Symbol(b12, Decl(assignmentCompatWithCallSignatures3.ts, 77, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 77, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 77, 33)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 77, 48)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 77, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) + +a12 = b12; // ok +>a12 : Symbol(a12, Decl(assignmentCompatWithCallSignatures3.ts, 18, 3)) +>b12 : Symbol(b12, Decl(assignmentCompatWithCallSignatures3.ts, 77, 3)) + +b12 = a12; // ok +>b12 : Symbol(b12, Decl(assignmentCompatWithCallSignatures3.ts, 77, 3)) +>a12 : Symbol(a12, Decl(assignmentCompatWithCallSignatures3.ts, 18, 3)) + +var b13: >(x: Array, y: T) => T; +>b13 : Symbol(b13, Decl(assignmentCompatWithCallSignatures3.ts, 80, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 80, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 80, 36)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 80, 51)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 80, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 80, 10)) + +a13 = b13; // ok +>a13 : Symbol(a13, Decl(assignmentCompatWithCallSignatures3.ts, 19, 3)) +>b13 : Symbol(b13, Decl(assignmentCompatWithCallSignatures3.ts, 80, 3)) + +b13 = a13; // ok +>b13 : Symbol(b13, Decl(assignmentCompatWithCallSignatures3.ts, 80, 3)) +>a13 : Symbol(a13, Decl(assignmentCompatWithCallSignatures3.ts, 19, 3)) + +var b14: (x: { a: T; b: T }) => T; +>b14 : Symbol(b14, Decl(assignmentCompatWithCallSignatures3.ts, 83, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 83, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 83, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 83, 23)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) + +a14 = b14; // ok +>a14 : Symbol(a14, Decl(assignmentCompatWithCallSignatures3.ts, 20, 3)) +>b14 : Symbol(b14, Decl(assignmentCompatWithCallSignatures3.ts, 83, 3)) + +b14 = a14; // ok +>b14 : Symbol(b14, Decl(assignmentCompatWithCallSignatures3.ts, 83, 3)) +>a14 : Symbol(a14, Decl(assignmentCompatWithCallSignatures3.ts, 20, 3)) + +var b15: (x: T) => T[]; +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures3.ts, 86, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 86, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 86, 13)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 86, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 86, 10)) + +a15 = b15; // ok +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures3.ts, 21, 3)) +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures3.ts, 86, 3)) + +b15 = a15; // ok +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures3.ts, 86, 3)) +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures3.ts, 21, 3)) + +var b16: (x: T) => number[]; +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures3.ts, 89, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 89, 10)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 89, 26)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 89, 10)) + +a16 = b16; // ok +>a16 : Symbol(a16, Decl(assignmentCompatWithCallSignatures3.ts, 25, 3)) +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures3.ts, 89, 3)) + +b16 = a16; // ok +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures3.ts, 89, 3)) +>a16 : Symbol(a16, Decl(assignmentCompatWithCallSignatures3.ts, 25, 3)) + +var b17: (x: (a: T) => T) => T[]; // ok +>b17 : Symbol(b17, Decl(assignmentCompatWithCallSignatures3.ts, 92, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 92, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 92, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) + +a17 = b17; // ok +>a17 : Symbol(a17, Decl(assignmentCompatWithCallSignatures3.ts, 29, 3)) +>b17 : Symbol(b17, Decl(assignmentCompatWithCallSignatures3.ts, 92, 3)) + +b17 = a17; // ok +>b17 : Symbol(b17, Decl(assignmentCompatWithCallSignatures3.ts, 92, 3)) +>a17 : Symbol(a17, Decl(assignmentCompatWithCallSignatures3.ts, 29, 3)) + +var b18: (x: (a: T) => T) => T[]; +>b18 : Symbol(b18, Decl(assignmentCompatWithCallSignatures3.ts, 95, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 95, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 95, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) + +a18 = b18; // ok +>a18 : Symbol(a18, Decl(assignmentCompatWithCallSignatures3.ts, 33, 3)) +>b18 : Symbol(b18, Decl(assignmentCompatWithCallSignatures3.ts, 95, 3)) + +b18 = a18; // ok +>b18 : Symbol(b18, Decl(assignmentCompatWithCallSignatures3.ts, 95, 3)) +>a18 : Symbol(a18, Decl(assignmentCompatWithCallSignatures3.ts, 33, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types index 2d571ea599d04..72cceae84fff7 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types @@ -2,564 +2,564 @@ // these are all permitted with the current rules, since we do not do contextual signature instantiation class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithCallSignatures3.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures3.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithCallSignatures3.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures3.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(assignmentCompatWithCallSignatures3.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string var a: (x: number) => number[]; ->a : (x: number) => number[], Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 7, 3)) ->x : number, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 7, 8)) +>a : (x: number) => number[] +>x : number var a2: (x: number) => string[]; ->a2 : (x: number) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures3.ts, 8, 3)) ->x : number, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 8, 9)) +>a2 : (x: number) => string[] +>x : number var a3: (x: number) => void; ->a3 : (x: number) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures3.ts, 9, 3)) ->x : number, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 9, 9)) +>a3 : (x: number) => void +>x : number var a4: (x: string, y: number) => string; ->a4 : (x: string, y: number) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures3.ts, 10, 3)) ->x : string, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 10, 9)) ->y : number, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 10, 19)) +>a4 : (x: string, y: number) => string +>x : string +>y : number var a5: (x: (arg: string) => number) => string; ->a5 : (x: (arg: string) => number) => string, Symbol(a5, Decl(assignmentCompatWithCallSignatures3.ts, 11, 3)) ->x : (arg: string) => number, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 11, 9)) ->arg : string, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 11, 13)) +>a5 : (x: (arg: string) => number) => string +>x : (arg: string) => number +>arg : string var a6: (x: (arg: Base) => Derived) => Base; ->a6 : (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(assignmentCompatWithCallSignatures3.ts, 12, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 12, 9)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 12, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>a6 : (x: (arg: Base) => Derived) => Base +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>Base : Base var a7: (x: (arg: Base) => Derived) => (r: Base) => Derived; ->a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(assignmentCompatWithCallSignatures3.ts, 13, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 13, 9)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 13, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->r : Base, Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 13, 40)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived var a8: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(assignmentCompatWithCallSignatures3.ts, 14, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 14, 9)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 14, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 14, 35)) ->arg2 : Base, Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 14, 40)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->r : Base, Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 14, 68)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived var a9: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(assignmentCompatWithCallSignatures3.ts, 15, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 15, 9)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 15, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 15, 35)) ->arg2 : Base, Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 15, 40)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->r : Base, Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 15, 68)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived var a10: (...x: Derived[]) => Derived; ->a10 : (...x: Derived[]) => Derived, Symbol(a10, Decl(assignmentCompatWithCallSignatures3.ts, 16, 3)) ->x : Derived[], Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 16, 10)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>a10 : (...x: Derived[]) => Derived +>x : Derived[] +>Derived : Derived +>Derived : Derived var a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures3.ts, 17, 3)) ->x : { foo: string; }, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 17, 10)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 17, 14)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 17, 29)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 17, 34)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithCallSignatures3.ts, 17, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) +>a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>x : { foo: string; } +>foo : string +>y : { foo: string; bar: string; } +>foo : string +>bar : string +>Base : Base var a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(assignmentCompatWithCallSignatures3.ts, 18, 3)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 18, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->y : Derived2[], Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 18, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures3.ts, 3, 43)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>a12 : (x: Base[], y: Derived2[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived2[] +>Array : T[] +>Derived2 : Derived2 +>Array : T[] +>Derived : Derived var a13: (x: Array, y: Array) => Array; ->a13 : (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(assignmentCompatWithCallSignatures3.ts, 19, 3)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 19, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->y : Derived[], Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 19, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>a13 : (x: Base[], y: Derived[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived[] +>Array : T[] +>Derived : Derived +>Array : T[] +>Derived : Derived var a14: (x: { a: string; b: number }) => Object; ->a14 : (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(assignmentCompatWithCallSignatures3.ts, 20, 3)) ->x : { a: string; b: number; }, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 20, 10)) ->a : string, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 20, 14)) ->b : number, Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 20, 25)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a14 : (x: { a: string; b: number; }) => Object +>x : { a: string; b: number; } +>a : string +>b : number +>Object : Object var a15: { ->a15 : { (x: number): number[]; (x: string): string[]; }, Symbol(a15, Decl(assignmentCompatWithCallSignatures3.ts, 21, 3)) +>a15 : { (x: number): number[]; (x: string): string[]; } (x: number): number[]; ->x : number, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 22, 5)) +>x : number (x: string): string[]; ->x : string, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 23, 5)) +>x : string } var a16: { ->a16 : { (x: T): number[]; (x: U): number[]; }, Symbol(a16, Decl(assignmentCompatWithCallSignatures3.ts, 25, 3)) +>a16 : { (x: T): number[]; (x: U): number[]; } (x: T): number[]; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 26, 5)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 26, 24)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 26, 5)) +>T : T +>Derived : Derived +>x : T +>T : T (x: U): number[]; ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 27, 5)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->x : U, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 27, 21)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 27, 5)) +>U : U +>Base : Base +>x : U +>U : U } var a17: { ->a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures3.ts, 29, 3)) +>a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } (x: (a: number) => number): number[]; ->x : (a: number) => number, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 30, 5)) ->a : number, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 30, 9)) +>x : (a: number) => number +>a : number (x: (a: string) => string): string[]; ->x : (a: string) => string, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 31, 5)) ->a : string, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 31, 9)) +>x : (a: string) => string +>a : string }; var a18: { ->a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures3.ts, 33, 3)) +>a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } (x: { ->x : { (a: number): number; (a: string): string; }, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 34, 5)) +>x : { (a: number): number; (a: string): string; } (a: number): number; ->a : number, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 35, 9)) +>a : number (a: string): string; ->a : string, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 36, 9)) +>a : string }): any[]; (x: { ->x : { (a: boolean): boolean; (a: Date): Date; }, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 38, 5)) +>x : { (a: boolean): boolean; (a: Date): Date; } (a: boolean): boolean; ->a : boolean, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 39, 9)) +>a : boolean (a: Date): Date; ->a : Date, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 40, 9)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : Date +>Date : Date +>Date : Date }): any[]; } var b: (x: T) => T[]; ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 44, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 44, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 44, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 44, 8)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 44, 8)) +>b : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a = b; // ok >a = b : (x: T) => T[] ->a : (x: number) => number[], Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 7, 3)) ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 44, 3)) +>a : (x: number) => number[] +>b : (x: T) => T[] b = a; // ok >b = a : (x: number) => number[] ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 44, 3)) ->a : (x: number) => number[], Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 7, 3)) +>b : (x: T) => T[] +>a : (x: number) => number[] var b2: (x: T) => string[]; ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures3.ts, 47, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 47, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 47, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 47, 9)) +>b2 : (x: T) => string[] +>T : T +>x : T +>T : T a2 = b2; // ok >a2 = b2 : (x: T) => string[] ->a2 : (x: number) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures3.ts, 8, 3)) ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures3.ts, 47, 3)) +>a2 : (x: number) => string[] +>b2 : (x: T) => string[] b2 = a2; // ok >b2 = a2 : (x: number) => string[] ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures3.ts, 47, 3)) ->a2 : (x: number) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures3.ts, 8, 3)) +>b2 : (x: T) => string[] +>a2 : (x: number) => string[] var b3: (x: T) => T; ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures3.ts, 50, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 50, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 50, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 50, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 50, 9)) +>b3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T a3 = b3; // ok >a3 = b3 : (x: T) => T ->a3 : (x: number) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures3.ts, 9, 3)) ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures3.ts, 50, 3)) +>a3 : (x: number) => void +>b3 : (x: T) => T b3 = a3; // ok >b3 = a3 : (x: number) => void ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures3.ts, 50, 3)) ->a3 : (x: number) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures3.ts, 9, 3)) +>b3 : (x: T) => T +>a3 : (x: number) => void var b4: (x: T, y: U) => T; ->b4 : (x: T, y: U) => T, Symbol(b4, Decl(assignmentCompatWithCallSignatures3.ts, 53, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 53, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 53, 11)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 53, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 53, 9)) ->y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 53, 20)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 53, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 53, 9)) +>b4 : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T a4 = b4; // ok >a4 = b4 : (x: T, y: U) => T ->a4 : (x: string, y: number) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures3.ts, 10, 3)) ->b4 : (x: T, y: U) => T, Symbol(b4, Decl(assignmentCompatWithCallSignatures3.ts, 53, 3)) +>a4 : (x: string, y: number) => string +>b4 : (x: T, y: U) => T b4 = a4; // ok >b4 = a4 : (x: string, y: number) => string ->b4 : (x: T, y: U) => T, Symbol(b4, Decl(assignmentCompatWithCallSignatures3.ts, 53, 3)) ->a4 : (x: string, y: number) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures3.ts, 10, 3)) +>b4 : (x: T, y: U) => T +>a4 : (x: string, y: number) => string var b5: (x: (arg: T) => U) => T; ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures3.ts, 56, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 56, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 56, 11)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 56, 15)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 56, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 56, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 56, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 56, 9)) +>b5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a5 = b5; // ok >a5 = b5 : (x: (arg: T) => U) => T ->a5 : (x: (arg: string) => number) => string, Symbol(a5, Decl(assignmentCompatWithCallSignatures3.ts, 11, 3)) ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures3.ts, 56, 3)) +>a5 : (x: (arg: string) => number) => string +>b5 : (x: (arg: T) => U) => T b5 = a5; // ok >b5 = a5 : (x: (arg: string) => number) => string ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures3.ts, 56, 3)) ->a5 : (x: (arg: string) => number) => string, Symbol(a5, Decl(assignmentCompatWithCallSignatures3.ts, 11, 3)) +>b5 : (x: (arg: T) => U) => T +>a5 : (x: (arg: string) => number) => string var b6: (x: (arg: T) => U) => T; ->b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures3.ts, 59, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 59, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 59, 24)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 59, 44)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 59, 48)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 59, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 59, 24)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 59, 9)) +>b6 : (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6 = b6; // ok >a6 = b6 : (x: (arg: T) => U) => T ->a6 : (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(assignmentCompatWithCallSignatures3.ts, 12, 3)) ->b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures3.ts, 59, 3)) +>a6 : (x: (arg: Base) => Derived) => Base +>b6 : (x: (arg: T) => U) => T b6 = a6; // ok >b6 = a6 : (x: (arg: Base) => Derived) => Base ->b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures3.ts, 59, 3)) ->a6 : (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(assignmentCompatWithCallSignatures3.ts, 12, 3)) +>b6 : (x: (arg: T) => U) => T +>a6 : (x: (arg: Base) => Derived) => Base var b7: (x: (arg: T) => U) => (r: T) => U; ->b7 : (x: (arg: T) => U) => (r: T) => U, Symbol(b7, Decl(assignmentCompatWithCallSignatures3.ts, 62, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 62, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 62, 24)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 62, 44)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 62, 48)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 62, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 62, 24)) ->r : T, Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 62, 66)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 62, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 62, 24)) +>b7 : (x: (arg: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>r : T +>T : T +>U : U a7 = b7; // ok >a7 = b7 : (x: (arg: T) => U) => (r: T) => U ->a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(assignmentCompatWithCallSignatures3.ts, 13, 3)) ->b7 : (x: (arg: T) => U) => (r: T) => U, Symbol(b7, Decl(assignmentCompatWithCallSignatures3.ts, 62, 3)) +>a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived +>b7 : (x: (arg: T) => U) => (r: T) => U b7 = a7; // ok >b7 = a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived ->b7 : (x: (arg: T) => U) => (r: T) => U, Symbol(b7, Decl(assignmentCompatWithCallSignatures3.ts, 62, 3)) ->a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(assignmentCompatWithCallSignatures3.ts, 13, 3)) +>b7 : (x: (arg: T) => U) => (r: T) => U +>a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived var b8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; ->b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(b8, Decl(assignmentCompatWithCallSignatures3.ts, 65, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 65, 44)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 65, 48)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) ->y : (arg2: T) => U, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 65, 61)) ->arg2 : T, Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 65, 66)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) ->r : T, Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 65, 85)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 65, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 65, 24)) +>b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: T) => U +>arg2 : T +>T : T +>U : U +>r : T +>T : T +>U : U a8 = b8; // ok >a8 = b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U ->a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(assignmentCompatWithCallSignatures3.ts, 14, 3)) ->b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(b8, Decl(assignmentCompatWithCallSignatures3.ts, 65, 3)) +>a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U b8 = a8; // ok >b8 = a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived ->b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(b8, Decl(assignmentCompatWithCallSignatures3.ts, 65, 3)) ->a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(assignmentCompatWithCallSignatures3.ts, 14, 3)) +>b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived var b9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; ->b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(b9, Decl(assignmentCompatWithCallSignatures3.ts, 68, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 68, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 68, 44)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures3.ts, 68, 48)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 68, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) ->y : (arg2: { foo: string; bing: number; }) => U, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 68, 61)) ->arg2 : { foo: string; bing: number; }, Symbol(arg2, Decl(assignmentCompatWithCallSignatures3.ts, 68, 66)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures3.ts, 68, 73)) ->bing : number, Symbol(bing, Decl(assignmentCompatWithCallSignatures3.ts, 68, 86)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) ->r : T, Symbol(r, Decl(assignmentCompatWithCallSignatures3.ts, 68, 113)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 68, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures3.ts, 68, 24)) +>b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: { foo: string; bing: number; }) => U +>arg2 : { foo: string; bing: number; } +>foo : string +>bing : number +>U : U +>r : T +>T : T +>U : U a9 = b9; // ok >a9 = b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U ->a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(assignmentCompatWithCallSignatures3.ts, 15, 3)) ->b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(b9, Decl(assignmentCompatWithCallSignatures3.ts, 68, 3)) +>a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U b9 = a9; // ok >b9 = a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived ->b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(b9, Decl(assignmentCompatWithCallSignatures3.ts, 68, 3)) ->a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(assignmentCompatWithCallSignatures3.ts, 15, 3)) +>b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived var b10: (...x: T[]) => T; ->b10 : (...x: T[]) => T, Symbol(b10, Decl(assignmentCompatWithCallSignatures3.ts, 71, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 71, 10)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : T[], Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 71, 29)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 71, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 71, 10)) +>b10 : (...x: T[]) => T +>T : T +>Derived : Derived +>x : T[] +>T : T +>T : T a10 = b10; // ok >a10 = b10 : (...x: T[]) => T ->a10 : (...x: Derived[]) => Derived, Symbol(a10, Decl(assignmentCompatWithCallSignatures3.ts, 16, 3)) ->b10 : (...x: T[]) => T, Symbol(b10, Decl(assignmentCompatWithCallSignatures3.ts, 71, 3)) +>a10 : (...x: Derived[]) => Derived +>b10 : (...x: T[]) => T b10 = a10; // ok >b10 = a10 : (...x: Derived[]) => Derived ->b10 : (...x: T[]) => T, Symbol(b10, Decl(assignmentCompatWithCallSignatures3.ts, 71, 3)) ->a10 : (...x: Derived[]) => Derived, Symbol(a10, Decl(assignmentCompatWithCallSignatures3.ts, 16, 3)) +>b10 : (...x: T[]) => T +>a10 : (...x: Derived[]) => Derived var b11: (x: T, y: T) => T; ->b11 : (x: T, y: T) => T, Symbol(b11, Decl(assignmentCompatWithCallSignatures3.ts, 74, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 74, 26)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) ->y : T, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 74, 31)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 74, 10)) +>b11 : (x: T, y: T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : T +>T : T +>T : T a11 = b11; // ok >a11 = b11 : (x: T, y: T) => T ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures3.ts, 17, 3)) ->b11 : (x: T, y: T) => T, Symbol(b11, Decl(assignmentCompatWithCallSignatures3.ts, 74, 3)) +>a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>b11 : (x: T, y: T) => T b11 = a11; // ok >b11 = a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base ->b11 : (x: T, y: T) => T, Symbol(b11, Decl(assignmentCompatWithCallSignatures3.ts, 74, 3)) ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures3.ts, 17, 3)) +>b11 : (x: T, y: T) => T +>a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var b12: >(x: Array, y: T) => Array; ->b12 : (x: Base[], y: T) => Derived[], Symbol(b12, Decl(assignmentCompatWithCallSignatures3.ts, 77, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 77, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 77, 33)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->y : T, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 77, 48)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 77, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) +>b12 : (x: Base[], y: T) => Derived[] +>T : T +>Array : T[] +>Base : Base +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>Array : T[] +>Derived : Derived a12 = b12; // ok >a12 = b12 : (x: Base[], y: T) => Derived[] ->a12 : (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(assignmentCompatWithCallSignatures3.ts, 18, 3)) ->b12 : (x: Base[], y: T) => Derived[], Symbol(b12, Decl(assignmentCompatWithCallSignatures3.ts, 77, 3)) +>a12 : (x: Base[], y: Derived2[]) => Derived[] +>b12 : (x: Base[], y: T) => Derived[] b12 = a12; // ok >b12 = a12 : (x: Base[], y: Derived2[]) => Derived[] ->b12 : (x: Base[], y: T) => Derived[], Symbol(b12, Decl(assignmentCompatWithCallSignatures3.ts, 77, 3)) ->a12 : (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(assignmentCompatWithCallSignatures3.ts, 18, 3)) +>b12 : (x: Base[], y: T) => Derived[] +>a12 : (x: Base[], y: Derived2[]) => Derived[] var b13: >(x: Array, y: T) => T; ->b13 : (x: Base[], y: T) => T, Symbol(b13, Decl(assignmentCompatWithCallSignatures3.ts, 80, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 80, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures3.ts, 2, 27)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 80, 36)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->y : T, Symbol(y, Decl(assignmentCompatWithCallSignatures3.ts, 80, 51)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 80, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 80, 10)) +>b13 : (x: Base[], y: T) => T +>T : T +>Array : T[] +>Derived : Derived +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>T : T a13 = b13; // ok >a13 = b13 : (x: Base[], y: T) => T ->a13 : (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(assignmentCompatWithCallSignatures3.ts, 19, 3)) ->b13 : (x: Base[], y: T) => T, Symbol(b13, Decl(assignmentCompatWithCallSignatures3.ts, 80, 3)) +>a13 : (x: Base[], y: Derived[]) => Derived[] +>b13 : (x: Base[], y: T) => T b13 = a13; // ok >b13 = a13 : (x: Base[], y: Derived[]) => Derived[] ->b13 : (x: Base[], y: T) => T, Symbol(b13, Decl(assignmentCompatWithCallSignatures3.ts, 80, 3)) ->a13 : (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(assignmentCompatWithCallSignatures3.ts, 19, 3)) +>b13 : (x: Base[], y: T) => T +>a13 : (x: Base[], y: Derived[]) => Derived[] var b14: (x: { a: T; b: T }) => T; ->b14 : (x: { a: T; b: T; }) => T, Symbol(b14, Decl(assignmentCompatWithCallSignatures3.ts, 83, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 83, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 83, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures3.ts, 83, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 83, 10)) +>b14 : (x: { a: T; b: T; }) => T +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a14 = b14; // ok >a14 = b14 : (x: { a: T; b: T; }) => T ->a14 : (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(assignmentCompatWithCallSignatures3.ts, 20, 3)) ->b14 : (x: { a: T; b: T; }) => T, Symbol(b14, Decl(assignmentCompatWithCallSignatures3.ts, 83, 3)) +>a14 : (x: { a: string; b: number; }) => Object +>b14 : (x: { a: T; b: T; }) => T b14 = a14; // ok >b14 = a14 : (x: { a: string; b: number; }) => Object ->b14 : (x: { a: T; b: T; }) => T, Symbol(b14, Decl(assignmentCompatWithCallSignatures3.ts, 83, 3)) ->a14 : (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(assignmentCompatWithCallSignatures3.ts, 20, 3)) +>b14 : (x: { a: T; b: T; }) => T +>a14 : (x: { a: string; b: number; }) => Object var b15: (x: T) => T[]; ->b15 : (x: T) => T[], Symbol(b15, Decl(assignmentCompatWithCallSignatures3.ts, 86, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 86, 10)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 86, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 86, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 86, 10)) +>b15 : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a15 = b15; // ok >a15 = b15 : (x: T) => T[] ->a15 : { (x: number): number[]; (x: string): string[]; }, Symbol(a15, Decl(assignmentCompatWithCallSignatures3.ts, 21, 3)) ->b15 : (x: T) => T[], Symbol(b15, Decl(assignmentCompatWithCallSignatures3.ts, 86, 3)) +>a15 : { (x: number): number[]; (x: string): string[]; } +>b15 : (x: T) => T[] b15 = a15; // ok >b15 = a15 : { (x: number): number[]; (x: string): string[]; } ->b15 : (x: T) => T[], Symbol(b15, Decl(assignmentCompatWithCallSignatures3.ts, 86, 3)) ->a15 : { (x: number): number[]; (x: string): string[]; }, Symbol(a15, Decl(assignmentCompatWithCallSignatures3.ts, 21, 3)) +>b15 : (x: T) => T[] +>a15 : { (x: number): number[]; (x: string): string[]; } var b16: (x: T) => number[]; ->b16 : (x: T) => number[], Symbol(b16, Decl(assignmentCompatWithCallSignatures3.ts, 89, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 89, 10)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures3.ts, 0, 0)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 89, 26)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 89, 10)) +>b16 : (x: T) => number[] +>T : T +>Base : Base +>x : T +>T : T a16 = b16; // ok >a16 = b16 : (x: T) => number[] ->a16 : { (x: T): number[]; (x: U): number[]; }, Symbol(a16, Decl(assignmentCompatWithCallSignatures3.ts, 25, 3)) ->b16 : (x: T) => number[], Symbol(b16, Decl(assignmentCompatWithCallSignatures3.ts, 89, 3)) +>a16 : { (x: T): number[]; (x: U): number[]; } +>b16 : (x: T) => number[] b16 = a16; // ok >b16 = a16 : { (x: T): number[]; (x: U): number[]; } ->b16 : (x: T) => number[], Symbol(b16, Decl(assignmentCompatWithCallSignatures3.ts, 89, 3)) ->a16 : { (x: T): number[]; (x: U): number[]; }, Symbol(a16, Decl(assignmentCompatWithCallSignatures3.ts, 25, 3)) +>b16 : (x: T) => number[] +>a16 : { (x: T): number[]; (x: U): number[]; } var b17: (x: (a: T) => T) => T[]; // ok ->b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures3.ts, 92, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) ->x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 92, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 92, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 92, 10)) +>b17 : (x: (a: T) => T) => T[] +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T a17 = b17; // ok >a17 = b17 : (x: (a: T) => T) => T[] ->a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures3.ts, 29, 3)) ->b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures3.ts, 92, 3)) +>a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } +>b17 : (x: (a: T) => T) => T[] b17 = a17; // ok >b17 = a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } ->b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures3.ts, 92, 3)) ->a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures3.ts, 29, 3)) +>b17 : (x: (a: T) => T) => T[] +>a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } var b18: (x: (a: T) => T) => T[]; ->b18 : (x: (a: T) => T) => T[], Symbol(b18, Decl(assignmentCompatWithCallSignatures3.ts, 95, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) ->x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures3.ts, 95, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures3.ts, 95, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures3.ts, 95, 10)) +>b18 : (x: (a: T) => T) => T[] +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T a18 = b18; // ok >a18 = b18 : (x: (a: T) => T) => T[] ->a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures3.ts, 33, 3)) ->b18 : (x: (a: T) => T) => T[], Symbol(b18, Decl(assignmentCompatWithCallSignatures3.ts, 95, 3)) +>a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } +>b18 : (x: (a: T) => T) => T[] b18 = a18; // ok >b18 = a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } ->b18 : (x: (a: T) => T) => T[], Symbol(b18, Decl(assignmentCompatWithCallSignatures3.ts, 95, 3)) ->a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures3.ts, 33, 3)) +>b18 : (x: (a: T) => T) => T[] +>a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures5.symbols b/tests/baselines/reference/assignmentCompatWithCallSignatures5.symbols new file mode 100644 index 0000000000000..e26e95b0c0c82 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures5.symbols @@ -0,0 +1,358 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures5.ts === +// checking assignment compat for function types. No errors in this file + +class Base { foo: string; } +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithCallSignatures5.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) +>baz : Symbol(baz, Decl(assignmentCompatWithCallSignatures5.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures5.ts, 4, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>bing : Symbol(bing, Decl(assignmentCompatWithCallSignatures5.ts, 5, 33)) + +var a: (x: T) => T[]; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 7, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) + +var a2: (x: T) => string[]; +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 8, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 8, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 8, 9)) + +var a3: (x: T) => void; +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 9, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 9, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 9, 9)) + +var a4: (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 10, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 10, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 10, 14)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 10, 9)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 10, 19)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 10, 11)) + +var a5: (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 11, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 11, 14)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 11, 18)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 11, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) + +var a6: (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 12, 25)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 12, 29)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) + +var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 13, 13)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 13, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 13, 27)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 13, 32)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 13, 40)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) + +var a15: (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 14, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 14, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 14, 23)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) + +var a16: (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(assignmentCompatWithCallSignatures5.ts, 15, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 15, 26)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 15, 30)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 15, 36)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) + +var a17: { +>a17 : Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) + + (x: (a: T) => T): T[]; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 17, 24)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 17, 28)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) + + (x: (a: T) => T): T[]; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 18, 21)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 18, 25)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) + +}; +var a18: { +>a18 : Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) + + (x: { +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 21, 5)) + + (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 22, 28)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) + + (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 23, 25)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) + + }): any[]; + (x: { +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 25, 5)) + + (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithCallSignatures5.ts, 3, 43)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 26, 29)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) + + (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 27, 25)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) + + }): any[]; +}; + +var b: (x: T) => T[]; +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 31, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) + +a = b; // ok +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) + +b = a; // ok +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) + +var b2: (x: T) => string[]; +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 34, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 34, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 34, 9)) + +a2 = b2; // ok +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) + +b2 = a2; // ok +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) + +var b3: (x: T) => T; +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 37, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) + +a3 = b3; // ok +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) + +b3 = a3; // ok +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) + +var b4: (x: T, y: U) => string; +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 40, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 40, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 40, 15)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 40, 9)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 40, 20)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 40, 11)) + +a4 = b4; // ok +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) + +b4 = a4; // ok +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) + +var b5: (x: (arg: T) => U) => T; +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 43, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 43, 15)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 43, 19)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 43, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) + +a5 = b5; // ok +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) + +b5 = a5; // ok +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) + +var b6: (x: (arg: T) => U) => T; +>b6 : Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 46, 24)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 46, 44)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 46, 48)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 46, 24)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) + +a6 = b6; // ok +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) +>b6 : Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) + +b6 = a6; // ok +>b6 : Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) + +var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 49, 10)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 49, 16)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 49, 20)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 49, 10)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 49, 30)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 49, 35)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 49, 43)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) + +a11 = b11; // ok +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) + +b11 = a11; // ok +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) + +var b15: (x: { a: U; b: V; }) => U[]; +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) +>V : Symbol(V, Decl(assignmentCompatWithCallSignatures5.ts, 52, 12)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 52, 16)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 52, 20)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 52, 26)) +>V : Symbol(V, Decl(assignmentCompatWithCallSignatures5.ts, 52, 12)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) + +a15 = b15; // ok, T = U, T = V +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) + +b15 = a15; // ok +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) + +var b16: (x: { a: T; b: T }) => T[]; +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures5.ts, 55, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 55, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 55, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 55, 23)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) + +a15 = b16; // ok +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures5.ts, 55, 3)) + +b15 = a16; // ok +>b15 : Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) +>a16 : Symbol(a16, Decl(assignmentCompatWithCallSignatures5.ts, 15, 3)) + +var b17: (x: (a: T) => T) => T[]; +>b17 : Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 58, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 58, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) + +a17 = b17; // ok +>a17 : Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) +>b17 : Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) + +b17 = a17; // ok +>b17 : Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) +>a17 : Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) + +var b18: (x: (a: T) => T) => any[]; +>b18 : Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 61, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 61, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) + +a18 = b18; // ok +>a18 : Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) +>b18 : Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) + +b18 = a18; // ok +>b18 : Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) +>a18 : Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types index 0888e2b37e82f..2652a2a4e689d 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types @@ -2,379 +2,379 @@ // checking assignment compat for function types. No errors in this file class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures5.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithCallSignatures5.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures5.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(assignmentCompatWithCallSignatures5.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string var a: (x: T) => T[]; ->a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 7, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 7, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T var a2: (x: T) => string[]; ->a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 8, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 8, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 8, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T var a3: (x: T) => void; ->a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 9, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 9, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 9, 9)) +>a3 : (x: T) => void +>T : T +>x : T +>T : T var a4: (x: T, y: U) => string; ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 10, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 10, 11)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 10, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 10, 9)) ->y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 10, 19)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 10, 11)) +>a4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U var a5: (x: (arg: T) => U) => T; ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 11, 11)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 11, 14)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 11, 18)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 11, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 11, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T var a6: (x: (arg: T) => Derived) => T; ->a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 12, 25)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 12, 29)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 12, 9)) +>a6 : (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 13, 13)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 13, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 13, 27)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 13, 32)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) ->bar : T, Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 13, 40)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 13, 10)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base var a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 14, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 14, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 14, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 14, 10)) +>a15 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T var a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithCallSignatures5.ts, 15, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 15, 26)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 15, 30)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 15, 36)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 15, 10)) +>a16 : (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T var a17: { ->a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) +>a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } (x: (a: T) => T): T[]; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) ->x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 17, 24)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 17, 28)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 17, 5)) +>T : T +>Derived : Derived +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T (x: (a: T) => T): T[]; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 18, 21)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 18, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 18, 5)) +>T : T +>Base : Base +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T }; var a18: { ->a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) +>a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } (x: { ->x : { (a: T): T; (a: T): T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 21, 5)) +>x : { (a: T): T; (a: T): T; } (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 22, 28)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 22, 9)) +>T : T +>Derived : Derived +>a : T +>T : T +>T : T (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 23, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 23, 9)) +>T : T +>Base : Base +>a : T +>T : T +>T : T }): any[]; (x: { ->x : { (a: T): T; (a: T): T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 25, 5)) +>x : { (a: T): T; (a: T): T; } (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures5.ts, 3, 43)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 26, 29)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 26, 9)) +>T : T +>Derived2 : Derived2 +>a : T +>T : T +>T : T (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 27, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 27, 9)) +>T : T +>Base : Base +>a : T +>T : T +>T : T }): any[]; }; var b: (x: T) => T[]; ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 31, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 31, 8)) +>b : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a = b; // ok >a = b : (x: T) => T[] ->a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) +>a : (x: T) => T[] +>b : (x: T) => T[] b = a; // ok >b = a : (x: T) => T[] ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 31, 3)) ->a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 7, 3)) +>b : (x: T) => T[] +>a : (x: T) => T[] var b2: (x: T) => string[]; ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 34, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 34, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 34, 9)) +>b2 : (x: T) => string[] +>T : T +>x : T +>T : T a2 = b2; // ok >a2 = b2 : (x: T) => string[] ->a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) +>a2 : (x: T) => string[] +>b2 : (x: T) => string[] b2 = a2; // ok >b2 = a2 : (x: T) => string[] ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures5.ts, 34, 3)) ->a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures5.ts, 8, 3)) +>b2 : (x: T) => string[] +>a2 : (x: T) => string[] var b3: (x: T) => T; ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 37, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 37, 9)) +>b3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T a3 = b3; // ok >a3 = b3 : (x: T) => T ->a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) +>a3 : (x: T) => void +>b3 : (x: T) => T b3 = a3; // ok >b3 = a3 : (x: T) => void ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures5.ts, 37, 3)) ->a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures5.ts, 9, 3)) +>b3 : (x: T) => T +>a3 : (x: T) => void var b4: (x: T, y: U) => string; ->b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 40, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 40, 11)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 40, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 40, 9)) ->y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 40, 20)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 40, 11)) +>b4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a4 = b4; // ok >a4 = b4 : (x: T, y: U) => string ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) ->b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) +>a4 : (x: T, y: U) => string +>b4 : (x: T, y: U) => string b4 = a4; // ok >b4 = a4 : (x: T, y: U) => string ->b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures5.ts, 40, 3)) ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures5.ts, 10, 3)) +>b4 : (x: T, y: U) => string +>a4 : (x: T, y: U) => string var b5: (x: (arg: T) => U) => T; ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 43, 11)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 43, 15)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 43, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 43, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 43, 9)) +>b5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a5 = b5; // ok >a5 = b5 : (x: (arg: T) => U) => T ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) +>a5 : (x: (arg: T) => U) => T +>b5 : (x: (arg: T) => U) => T b5 = a5; // ok >b5 = a5 : (x: (arg: T) => U) => T ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures5.ts, 43, 3)) ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures5.ts, 11, 3)) +>b5 : (x: (arg: T) => U) => T +>a5 : (x: (arg: T) => U) => T var b6: (x: (arg: T) => U) => T; ->b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 46, 24)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures5.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 46, 44)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures5.ts, 46, 48)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 46, 24)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 46, 9)) +>b6 : (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6 = b6; // ok >a6 = b6 : (x: (arg: T) => U) => T ->a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) ->b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) +>a6 : (x: (arg: T) => Derived) => T +>b6 : (x: (arg: T) => U) => T b6 = a6; // ok >b6 = a6 : (x: (arg: T) => Derived) => T ->b6 : (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithCallSignatures5.ts, 46, 3)) ->a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures5.ts, 12, 3)) +>b6 : (x: (arg: T) => U) => T +>a6 : (x: (arg: T) => Derived) => T var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 49, 10)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 49, 16)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 49, 20)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 49, 10)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(assignmentCompatWithCallSignatures5.ts, 49, 30)) ->foo : U, Symbol(foo, Decl(assignmentCompatWithCallSignatures5.ts, 49, 35)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) ->bar : U, Symbol(bar, Decl(assignmentCompatWithCallSignatures5.ts, 49, 43)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 49, 12)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures5.ts, 0, 0)) +>b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>T : T +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base a11 = b11; // ok >a11 = b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base b11 = a11; // ok >b11 = a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures5.ts, 49, 3)) ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures5.ts, 13, 3)) +>b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b15: (x: { a: U; b: V; }) => U[]; ->b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) ->V : V, Symbol(V, Decl(assignmentCompatWithCallSignatures5.ts, 52, 12)) ->x : { a: U; b: V; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 52, 16)) ->a : U, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 52, 20)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) ->b : V, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 52, 26)) ->V : V, Symbol(V, Decl(assignmentCompatWithCallSignatures5.ts, 52, 12)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures5.ts, 52, 10)) +>b15 : (x: { a: U; b: V; }) => U[] +>U : U +>V : V +>x : { a: U; b: V; } +>a : U +>U : U +>b : V +>V : V +>U : U a15 = b15; // ok, T = U, T = V >a15 = b15 : (x: { a: U; b: V; }) => U[] ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) ->b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) +>a15 : (x: { a: T; b: T; }) => T[] +>b15 : (x: { a: U; b: V; }) => U[] b15 = a15; // ok >b15 = a15 : (x: { a: T; b: T; }) => T[] ->b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) +>b15 : (x: { a: U; b: V; }) => U[] +>a15 : (x: { a: T; b: T; }) => T[] var b16: (x: { a: T; b: T }) => T[]; ->b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures5.ts, 55, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 55, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 55, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures5.ts, 55, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 55, 10)) +>b16 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a15 = b16; // ok >a15 = b16 : (x: { a: T; b: T; }) => T[] ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures5.ts, 14, 3)) ->b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures5.ts, 55, 3)) +>a15 : (x: { a: T; b: T; }) => T[] +>b16 : (x: { a: T; b: T; }) => T[] b15 = a16; // ok >b15 = a16 : (x: { a: T; b: T; }) => T[] ->b15 : (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithCallSignatures5.ts, 52, 3)) ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithCallSignatures5.ts, 15, 3)) +>b15 : (x: { a: U; b: V; }) => U[] +>a16 : (x: { a: T; b: T; }) => T[] var b17: (x: (a: T) => T) => T[]; ->b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) ->x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 58, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 58, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 58, 10)) +>b17 : (x: (a: T) => T) => T[] +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T a17 = b17; // ok >a17 = b17 : (x: (a: T) => T) => T[] ->a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) ->b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) +>a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } +>b17 : (x: (a: T) => T) => T[] b17 = a17; // ok >b17 = a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } ->b17 : (x: (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithCallSignatures5.ts, 58, 3)) ->a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithCallSignatures5.ts, 16, 3)) +>b17 : (x: (a: T) => T) => T[] +>a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } var b18: (x: (a: T) => T) => any[]; ->b18 : (x: (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) ->x : (a: T) => T, Symbol(x, Decl(assignmentCompatWithCallSignatures5.ts, 61, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures5.ts, 61, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures5.ts, 61, 14)) +>b18 : (x: (a: T) => T) => any[] +>x : (a: T) => T +>T : T +>a : T +>T : T +>T : T a18 = b18; // ok >a18 = b18 : (x: (a: T) => T) => any[] ->a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) ->b18 : (x: (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) +>a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } +>b18 : (x: (a: T) => T) => any[] b18 = a18; // ok >b18 = a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } ->b18 : (x: (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithCallSignatures5.ts, 61, 3)) ->a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithCallSignatures5.ts, 20, 3)) +>b18 : (x: (a: T) => T) => any[] +>a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures6.symbols b/tests/baselines/reference/assignmentCompatWithCallSignatures6.symbols new file mode 100644 index 0000000000000..b7e6956ef6566 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures6.symbols @@ -0,0 +1,259 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures6.ts === +// checking assignment compatibility relations for function types. All valid + +class Base { foo: string; } +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures6.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures6.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithCallSignatures6.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures6.ts, 2, 27)) +>baz : Symbol(baz, Decl(assignmentCompatWithCallSignatures6.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures6.ts, 4, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>bing : Symbol(bing, Decl(assignmentCompatWithCallSignatures6.ts, 5, 33)) + +interface A { +>A : Symbol(A, Decl(assignmentCompatWithCallSignatures6.ts, 5, 49)) + + a: (x: T) => T[]; +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 8, 8)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 8, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 8, 8)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 8, 8)) + + a2: (x: T) => string[]; +>a2 : Symbol(a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 9, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 9, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 9, 9)) + + a3: (x: T) => void; +>a3 : Symbol(a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 10, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 10, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 10, 9)) + + a4: (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 11, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 11, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 11, 14)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 11, 9)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 11, 19)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 11, 11)) + + a5: (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 12, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 12, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 12, 14)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures6.ts, 12, 18)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 12, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 12, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 12, 9)) + + a6: (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(assignmentCompatWithCallSignatures6.ts, 12, 37)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 13, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 13, 25)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures6.ts, 13, 29)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 13, 9)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithCallSignatures6.ts, 2, 27)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 13, 9)) + + a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 14, 13)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 14, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 14, 27)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 14, 32)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures6.ts, 14, 40)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) + + a15: (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(assignmentCompatWithCallSignatures6.ts, 14, 59)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 15, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 15, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 15, 23)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) + + a16: (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 16, 26)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 16, 30)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 16, 36)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) +} + +var x: A; +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>A : Symbol(A, Decl(assignmentCompatWithCallSignatures6.ts, 5, 49)) + +var b: (x: T) => T[]; +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 21, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 21, 8)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 21, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 21, 8)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 21, 8)) + +x.a = b; +>x.a : Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a : Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 21, 3)) + +b = x.a; +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 21, 3)) +>x.a : Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a : Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) + +var b2: (x: T) => string[]; +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures6.ts, 24, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 24, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 24, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 24, 9)) + +x.a2 = b2; +>x.a2 : Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a2 : Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures6.ts, 24, 3)) + +b2 = x.a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithCallSignatures6.ts, 24, 3)) +>x.a2 : Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a2 : Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) + +var b3: (x: T) => T; +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures6.ts, 27, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 27, 9)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 27, 12)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 27, 9)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 27, 9)) + +x.a3 = b3; +>x.a3 : Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a3 : Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures6.ts, 27, 3)) + +b3 = x.a3; +>b3 : Symbol(b3, Decl(assignmentCompatWithCallSignatures6.ts, 27, 3)) +>x.a3 : Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a3 : Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) + +var b4: (x: T, y: U) => string; +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures6.ts, 30, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 30, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 30, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 30, 15)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 30, 9)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 30, 20)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 30, 11)) + +x.a4 = b4; +>x.a4 : Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a4 : Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures6.ts, 30, 3)) + +b4 = x.a4; +>b4 : Symbol(b4, Decl(assignmentCompatWithCallSignatures6.ts, 30, 3)) +>x.a4 : Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a4 : Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) + +var b5: (x: (arg: T) => U) => T; +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures6.ts, 33, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 33, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 33, 11)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 33, 15)) +>arg : Symbol(arg, Decl(assignmentCompatWithCallSignatures6.ts, 33, 19)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 33, 9)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 33, 11)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 33, 9)) + +x.a5 = b5; +>x.a5 : Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a5 : Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures6.ts, 33, 3)) + +b5 = x.a5; +>b5 : Symbol(b5, Decl(assignmentCompatWithCallSignatures6.ts, 33, 3)) +>x.a5 : Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a5 : Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) + +var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures6.ts, 36, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 36, 10)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 36, 12)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 36, 16)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 36, 20)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 36, 10)) +>y : Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 36, 30)) +>foo : Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 36, 35)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 36, 12)) +>bar : Symbol(bar, Decl(assignmentCompatWithCallSignatures6.ts, 36, 43)) +>U : Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 36, 12)) +>Base : Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) + +x.a11 = b11; +>x.a11 : Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a11 : Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures6.ts, 36, 3)) + +b11 = x.a11; +>b11 : Symbol(b11, Decl(assignmentCompatWithCallSignatures6.ts, 36, 3)) +>x.a11 : Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a11 : Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) + +var b16: (x: { a: T; b: T }) => T[]; +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures6.ts, 39, 3)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 39, 13)) +>a : Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 39, 17)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) +>b : Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 39, 23)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) +>T : Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) + +x.a16 = b16; +>x.a16 : Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a16 : Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures6.ts, 39, 3)) + +b16 = x.a16; +>b16 : Symbol(b16, Decl(assignmentCompatWithCallSignatures6.ts, 39, 3)) +>x.a16 : Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) +>x : Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) +>a16 : Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) + diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types index fcfe10039dd8b..b45f335794233 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types @@ -2,272 +2,272 @@ // checking assignment compatibility relations for function types. All valid class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures6.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithCallSignatures6.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithCallSignatures6.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures6.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithCallSignatures6.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithCallSignatures6.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(assignmentCompatWithCallSignatures6.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { ->A : A, Symbol(A, Decl(assignmentCompatWithCallSignatures6.ts, 5, 49)) +>A : A a: (x: T) => T[]; ->a : (x: T) => T[], Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 8, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 8, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 8, 8)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 8, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: (x: T) => string[]; ->a2 : (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 9, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 9, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 9, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T a3: (x: T) => void; ->a3 : (x: T) => void, Symbol(a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 10, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 10, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 10, 9)) +>a3 : (x: T) => void +>T : T +>x : T +>T : T a4: (x: T, y: U) => string; ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 11, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 11, 11)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 11, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 11, 9)) ->y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 11, 19)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 11, 11)) +>a4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: (x: (arg: T) => U) => T; ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 12, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 12, 11)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 12, 14)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures6.ts, 12, 18)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 12, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 12, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 12, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: (x: (arg: T) => Derived) => T; ->a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithCallSignatures6.ts, 12, 37)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 13, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 13, 25)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures6.ts, 13, 29)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 13, 9)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithCallSignatures6.ts, 2, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 13, 9)) +>a6 : (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 14, 13)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 14, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 14, 27)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 14, 32)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) ->bar : T, Symbol(bar, Decl(assignmentCompatWithCallSignatures6.ts, 14, 40)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 14, 10)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithCallSignatures6.ts, 14, 59)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 15, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 15, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 15, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 15, 10)) +>a15 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 16, 26)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 16, 30)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 16, 36)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 16, 10)) +>a16 : (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } var x: A; ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->A : A, Symbol(A, Decl(assignmentCompatWithCallSignatures6.ts, 5, 49)) +>x : A +>A : A var b: (x: T) => T[]; ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 21, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 21, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 21, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 21, 8)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 21, 8)) +>b : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T x.a = b; >x.a = b : (x: T) => T[] ->x.a : (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a : (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 21, 3)) +>x.a : (x: T) => T[] +>x : A +>a : (x: T) => T[] +>b : (x: T) => T[] b = x.a; >b = x.a : (x: T) => T[] ->b : (x: T) => T[], Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 21, 3)) ->x.a : (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a : (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithCallSignatures6.ts, 7, 13)) +>b : (x: T) => T[] +>x.a : (x: T) => T[] +>x : A +>a : (x: T) => T[] var b2: (x: T) => string[]; ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures6.ts, 24, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 24, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 24, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 24, 9)) +>b2 : (x: T) => string[] +>T : T +>x : T +>T : T x.a2 = b2; >x.a2 = b2 : (x: T) => string[] ->x.a2 : (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a2 : (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures6.ts, 24, 3)) +>x.a2 : (x: T) => string[] +>x : A +>a2 : (x: T) => string[] +>b2 : (x: T) => string[] b2 = x.a2; >b2 = x.a2 : (x: T) => string[] ->b2 : (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithCallSignatures6.ts, 24, 3)) ->x.a2 : (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a2 : (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithCallSignatures6.ts, 8, 24)) +>b2 : (x: T) => string[] +>x.a2 : (x: T) => string[] +>x : A +>a2 : (x: T) => string[] var b3: (x: T) => T; ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures6.ts, 27, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 27, 9)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 27, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 27, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 27, 9)) +>b3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T x.a3 = b3; >x.a3 = b3 : (x: T) => T ->x.a3 : (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a3 : (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures6.ts, 27, 3)) +>x.a3 : (x: T) => void +>x : A +>a3 : (x: T) => void +>b3 : (x: T) => T b3 = x.a3; >b3 = x.a3 : (x: T) => void ->b3 : (x: T) => T, Symbol(b3, Decl(assignmentCompatWithCallSignatures6.ts, 27, 3)) ->x.a3 : (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a3 : (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithCallSignatures6.ts, 9, 30)) +>b3 : (x: T) => T +>x.a3 : (x: T) => void +>x : A +>a3 : (x: T) => void var b4: (x: T, y: U) => string; ->b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures6.ts, 30, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 30, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 30, 11)) ->x : T, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 30, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 30, 9)) ->y : U, Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 30, 20)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 30, 11)) +>b4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U x.a4 = b4; >x.a4 = b4 : (x: T, y: U) => string ->x.a4 : (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a4 : (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) ->b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures6.ts, 30, 3)) +>x.a4 : (x: T, y: U) => string +>x : A +>a4 : (x: T, y: U) => string +>b4 : (x: T, y: U) => string b4 = x.a4; >b4 = x.a4 : (x: T, y: U) => string ->b4 : (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithCallSignatures6.ts, 30, 3)) ->x.a4 : (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a4 : (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithCallSignatures6.ts, 10, 26)) +>b4 : (x: T, y: U) => string +>x.a4 : (x: T, y: U) => string +>x : A +>a4 : (x: T, y: U) => string var b5: (x: (arg: T) => U) => T; ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures6.ts, 33, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 33, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 33, 11)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 33, 15)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithCallSignatures6.ts, 33, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 33, 9)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 33, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 33, 9)) +>b5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T x.a5 = b5; >x.a5 = b5 : (x: (arg: T) => U) => T ->x.a5 : (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a5 : (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures6.ts, 33, 3)) +>x.a5 : (x: (arg: T) => U) => T +>x : A +>a5 : (x: (arg: T) => U) => T +>b5 : (x: (arg: T) => U) => T b5 = x.a5; >b5 = x.a5 : (x: (arg: T) => U) => T ->b5 : (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithCallSignatures6.ts, 33, 3)) ->x.a5 : (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a5 : (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithCallSignatures6.ts, 11, 36)) +>b5 : (x: (arg: T) => U) => T +>x.a5 : (x: (arg: T) => U) => T +>x : A +>a5 : (x: (arg: T) => U) => T var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures6.ts, 36, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 36, 10)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 36, 12)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 36, 16)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 36, 20)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 36, 10)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(assignmentCompatWithCallSignatures6.ts, 36, 30)) ->foo : U, Symbol(foo, Decl(assignmentCompatWithCallSignatures6.ts, 36, 35)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 36, 12)) ->bar : U, Symbol(bar, Decl(assignmentCompatWithCallSignatures6.ts, 36, 43)) ->U : U, Symbol(U, Decl(assignmentCompatWithCallSignatures6.ts, 36, 12)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithCallSignatures6.ts, 0, 0)) +>b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>T : T +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base x.a11 = b11; >x.a11 = b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base ->x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures6.ts, 36, 3)) +>x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>x : A +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base b11 = x.a11; >b11 = x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithCallSignatures6.ts, 36, 3)) ->x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithCallSignatures6.ts, 13, 54)) +>b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>x : A +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b16: (x: { a: T; b: T }) => T[]; ->b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures6.ts, 39, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 39, 13)) ->a : T, Symbol(a, Decl(assignmentCompatWithCallSignatures6.ts, 39, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) ->b : T, Symbol(b, Decl(assignmentCompatWithCallSignatures6.ts, 39, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) ->T : T, Symbol(T, Decl(assignmentCompatWithCallSignatures6.ts, 39, 10)) +>b16 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T x.a16 = b16; >x.a16 = b16 : (x: { a: T; b: T; }) => T[] ->x.a16 : (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a16 : (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) ->b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures6.ts, 39, 3)) +>x.a16 : (x: { a: T; b: T; }) => T[] +>x : A +>a16 : (x: { a: T; b: T; }) => T[] +>b16 : (x: { a: T; b: T; }) => T[] b16 = x.a16; >b16 = x.a16 : (x: { a: T; b: T; }) => T[] ->b16 : (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithCallSignatures6.ts, 39, 3)) ->x.a16 : (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) ->x : A, Symbol(x, Decl(assignmentCompatWithCallSignatures6.ts, 19, 3)) ->a16 : (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithCallSignatures6.ts, 15, 39)) +>b16 : (x: { a: T; b: T; }) => T[] +>x.a16 : (x: { a: T; b: T; }) => T[] +>x : A +>a16 : (x: { a: T; b: T; }) => T[] diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.symbols b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.symbols new file mode 100644 index 0000000000000..ef02b7a08d3de --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.symbols @@ -0,0 +1,529 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures3.ts === +// checking assignment compatibility relations for function types. All of these are valid. + +class Base { foo: string; } +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures3.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures3.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>baz : Symbol(baz, Decl(assignmentCompatWithConstructSignatures3.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(assignmentCompatWithConstructSignatures3.ts, 4, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>bing : Symbol(bing, Decl(assignmentCompatWithConstructSignatures3.ts, 5, 33)) + +var a: new (x: number) => number[]; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 12)) + +var a2: new (x: number) => string[]; +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 13)) + +var a3: new (x: number) => void; +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 13)) + +var a4: new (x: string, y: number) => string; +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 13)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 23)) + +var a5: new (x: (arg: string) => number) => string; +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 13)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 17)) + +var a6: new (x: (arg: Base) => Derived) => Base; +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 13)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 17)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) + +var a7: new (x: (arg: Base) => Derived) => (r: Base) => Derived; +>a7 : Symbol(a7, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 13)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 17)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>r : Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 44)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +var a8: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a8 : Symbol(a8, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 13)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 17)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 39)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 44)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>r : Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 72)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +var a9: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a9 : Symbol(a9, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 13)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 17)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 39)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 44)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>r : Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 72)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +var a10: new (...x: Derived[]) => Derived; +>a10 : Symbol(a10, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 14)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +var a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 14)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 18)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 33)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 38)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 51)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) + +var a12: new (x: Array, y: Array) => Array; +>a12 : Symbol(a12, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 29)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures3.ts, 3, 43)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +var a13: new (x: Array, y: Array) => Array; +>a13 : Symbol(a13, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 29)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +var a14: new (x: { a: string; b: number }) => Object; +>a14 : Symbol(a14, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 14)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 18)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 29)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var a15: { +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures3.ts, 21, 3)) + + new (x: number): number[]; +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 22, 9)) + + new (x: string): string[]; +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 23, 9)) +} +var a16: { +>a16 : Symbol(a16, Decl(assignmentCompatWithConstructSignatures3.ts, 25, 3)) + + new (x: T): number[]; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 26, 9)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 26, 28)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 26, 9)) + + new (x: U): number[]; +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 27, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 27, 25)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 27, 9)) +} +var a17: { +>a17 : Symbol(a17, Decl(assignmentCompatWithConstructSignatures3.ts, 29, 3)) + + new (x: new (a: number) => number): number[]; +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 30, 9)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 30, 17)) + + new (x: new (a: string) => string): string[]; +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 31, 9)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 31, 17)) + +}; +var a18: { +>a18 : Symbol(a18, Decl(assignmentCompatWithConstructSignatures3.ts, 33, 3)) + + new (x: { +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 34, 9)) + + new (a: number): number; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 35, 13)) + + new (a: string): string; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 36, 13)) + + }): any[]; + new (x: { +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 38, 9)) + + new (a: boolean): boolean; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 39, 13)) + + new (a: Date): Date; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 40, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + }): any[]; +} + +var b: new (x: T) => T[]; +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 12)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 12)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 12)) + +a = b; // ok +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 3)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 3)) + +b = a; // ok +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 3)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 3)) + +var b2: new (x: T) => string[]; +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 13)) + +a2 = b2; // ok +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 3)) + +b2 = a2; // ok +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 3)) + +var b3: new (x: T) => T; +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 13)) + +a3 = b3; // ok +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 3)) +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 3)) + +b3 = a3; // ok +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 3)) +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 3)) + +var b4: new (x: T, y: U) => T; +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 19)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 13)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 24)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 13)) + +a4 = b4; // ok +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 3)) +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 3)) + +b4 = a4; // ok +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 3)) +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 3)) + +var b5: new (x: (arg: T) => U) => T; +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 19)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 23)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 13)) + +a5 = b5; // ok +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 3)) +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 3)) + +b5 = a5; // ok +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 3)) +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 3)) + +var b6: new (x: (arg: T) => U) => T; +>b6 : Symbol(b6, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 28)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 48)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 52)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 28)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 13)) + +a6 = b6; // ok +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 3)) +>b6 : Symbol(b6, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 3)) + +b6 = a6; // ok +>b6 : Symbol(b6, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 3)) +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 3)) + +var b7: new (x: (arg: T) => U) => (r: T) => U; +>b7 : Symbol(b7, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 28)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 48)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 52)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 28)) +>r : Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 70)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 28)) + +a7 = b7; // ok +>a7 : Symbol(a7, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 3)) +>b7 : Symbol(b7, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 3)) + +b7 = a7; // ok +>b7 : Symbol(b7, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 3)) +>a7 : Symbol(a7, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 3)) + +var b8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; +>b8 : Symbol(b8, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 48)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 52)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 65)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 70)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) +>r : Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 89)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) + +a8 = b8; // ok +>a8 : Symbol(a8, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 3)) +>b8 : Symbol(b8, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 3)) + +b8 = a8; // ok +>b8 : Symbol(b8, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 3)) +>a8 : Symbol(a8, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 3)) + +var b9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; +>b9 : Symbol(b9, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 48)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 52)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 65)) +>arg2 : Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 70)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 77)) +>bing : Symbol(bing, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 90)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) +>r : Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 117)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) + +a9 = b9; // ok +>a9 : Symbol(a9, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 3)) +>b9 : Symbol(b9, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 3)) + +b9 = a9; // ok +>b9 : Symbol(b9, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 3)) +>a9 : Symbol(a9, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 3)) + +var b10: new (...x: T[]) => T; +>b10 : Symbol(b10, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 14)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 33)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 14)) + +a10 = b10; // ok +>a10 : Symbol(a10, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 3)) +>b10 : Symbol(b10, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 3)) + +b10 = a10; // ok +>b10 : Symbol(b10, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 3)) +>a10 : Symbol(a10, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 3)) + +var b11: new (x: T, y: T) => T; +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 30)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 35)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) + +a11 = b11; // ok +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 3)) +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 3)) + +b11 = a11; // ok +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 3)) +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 3)) + +var b12: new >(x: Array, y: T) => Array; +>b12 : Symbol(b12, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 37)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 52)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) + +a12 = b12; // ok +>a12 : Symbol(a12, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 3)) +>b12 : Symbol(b12, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 3)) + +b12 = a12; // ok +>b12 : Symbol(b12, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 3)) +>a12 : Symbol(a12, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 3)) + +var b13: new >(x: Array, y: T) => T; +>b13 : Symbol(b13, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 40)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 55)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 14)) + +a13 = b13; // ok +>a13 : Symbol(a13, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 3)) +>b13 : Symbol(b13, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 3)) + +b13 = a13; // ok +>b13 : Symbol(b13, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 3)) +>a13 : Symbol(a13, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 3)) + +var b14: new (x: { a: T; b: T }) => T; +>b14 : Symbol(b14, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) + +a14 = b14; // ok +>a14 : Symbol(a14, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 3)) +>b14 : Symbol(b14, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 3)) + +b14 = a14; // ok +>b14 : Symbol(b14, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 3)) +>a14 : Symbol(a14, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 3)) + +var b15: new (x: T) => T[]; +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 17)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 14)) + +a15 = b15; // ok +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures3.ts, 21, 3)) +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 3)) + +b15 = a15; // ok +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 3)) +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures3.ts, 21, 3)) + +var b16: new (x: T) => number[]; +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 14)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 30)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 14)) + +a16 = b16; // ok +>a16 : Symbol(a16, Decl(assignmentCompatWithConstructSignatures3.ts, 25, 3)) +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 3)) + +b16 = a16; // ok +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 3)) +>a16 : Symbol(a16, Decl(assignmentCompatWithConstructSignatures3.ts, 25, 3)) + +var b17: new (x: new (a: T) => T) => T[]; // ok +>b17 : Symbol(b17, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 25)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) + +a17 = b17; // ok +>a17 : Symbol(a17, Decl(assignmentCompatWithConstructSignatures3.ts, 29, 3)) +>b17 : Symbol(b17, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 3)) + +b17 = a17; // ok +>b17 : Symbol(b17, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 3)) +>a17 : Symbol(a17, Decl(assignmentCompatWithConstructSignatures3.ts, 29, 3)) + +var b18: new (x: new (a: T) => T) => T[]; +>b18 : Symbol(b18, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 25)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) + +a18 = b18; // ok +>a18 : Symbol(a18, Decl(assignmentCompatWithConstructSignatures3.ts, 33, 3)) +>b18 : Symbol(b18, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 3)) + +b18 = a18; // ok +>b18 : Symbol(b18, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 3)) +>a18 : Symbol(a18, Decl(assignmentCompatWithConstructSignatures3.ts, 33, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types index 3ae4e4889a0df..807f31b0e6e54 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types @@ -2,564 +2,564 @@ // checking assignment compatibility relations for function types. All of these are valid. class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithConstructSignatures3.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures3.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithConstructSignatures3.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithConstructSignatures3.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(assignmentCompatWithConstructSignatures3.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string var a: new (x: number) => number[]; ->a : new (x: number) => number[], Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 3)) ->x : number, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 12)) +>a : new (x: number) => number[] +>x : number var a2: new (x: number) => string[]; ->a2 : new (x: number) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 3)) ->x : number, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 13)) +>a2 : new (x: number) => string[] +>x : number var a3: new (x: number) => void; ->a3 : new (x: number) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 3)) ->x : number, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 13)) +>a3 : new (x: number) => void +>x : number var a4: new (x: string, y: number) => string; ->a4 : new (x: string, y: number) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 3)) ->x : string, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 13)) ->y : number, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 23)) +>a4 : new (x: string, y: number) => string +>x : string +>y : number var a5: new (x: (arg: string) => number) => string; ->a5 : new (x: (arg: string) => number) => string, Symbol(a5, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 3)) ->x : (arg: string) => number, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 13)) ->arg : string, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 17)) +>a5 : new (x: (arg: string) => number) => string +>x : (arg: string) => number +>arg : string var a6: new (x: (arg: Base) => Derived) => Base; ->a6 : new (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 13)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 17)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>a6 : new (x: (arg: Base) => Derived) => Base +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>Base : Base var a7: new (x: (arg: Base) => Derived) => (r: Base) => Derived; ->a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 13)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 17)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->r : Base, Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 44)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived var a8: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 13)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 17)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 39)) ->arg2 : Base, Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 44)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->r : Base, Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 72)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived var a9: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 3)) ->x : (arg: Base) => Derived, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 13)) ->arg : Base, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 17)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 39)) ->arg2 : Base, Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 44)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->r : Base, Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 72)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived var a10: new (...x: Derived[]) => Derived; ->a10 : new (...x: Derived[]) => Derived, Symbol(a10, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 3)) ->x : Derived[], Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 14)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>a10 : new (...x: Derived[]) => Derived +>x : Derived[] +>Derived : Derived +>Derived : Derived var a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 3)) ->x : { foo: string; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 14)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 18)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 33)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 38)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 51)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) +>a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>x : { foo: string; } +>foo : string +>y : { foo: string; bar: string; } +>foo : string +>bar : string +>Base : Base var a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 3)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->y : Derived2[], Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 29)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures3.ts, 3, 43)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>a12 : new (x: Base[], y: Derived2[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived2[] +>Array : T[] +>Derived2 : Derived2 +>Array : T[] +>Derived : Derived var a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 3)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->y : Derived[], Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 29)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>a13 : new (x: Base[], y: Derived[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived[] +>Array : T[] +>Derived : Derived +>Array : T[] +>Derived : Derived var a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 3)) ->x : { a: string; b: number; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 14)) ->a : string, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 18)) ->b : number, Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 29)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a14 : new (x: { a: string; b: number; }) => Object +>x : { a: string; b: number; } +>a : string +>b : number +>Object : Object var a15: { ->a15 : { new (x: number): number[]; new (x: string): string[]; }, Symbol(a15, Decl(assignmentCompatWithConstructSignatures3.ts, 21, 3)) +>a15 : { new (x: number): number[]; new (x: string): string[]; } new (x: number): number[]; ->x : number, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 22, 9)) +>x : number new (x: string): string[]; ->x : string, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 23, 9)) +>x : string } var a16: { ->a16 : { new (x: T): number[]; new (x: U): number[]; }, Symbol(a16, Decl(assignmentCompatWithConstructSignatures3.ts, 25, 3)) +>a16 : { new (x: T): number[]; new (x: U): number[]; } new (x: T): number[]; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 26, 9)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 26, 28)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 26, 9)) +>T : T +>Derived : Derived +>x : T +>T : T new (x: U): number[]; ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 27, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->x : U, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 27, 25)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 27, 9)) +>U : U +>Base : Base +>x : U +>U : U } var a17: { ->a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; }, Symbol(a17, Decl(assignmentCompatWithConstructSignatures3.ts, 29, 3)) +>a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } new (x: new (a: number) => number): number[]; ->x : new (a: number) => number, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 30, 9)) ->a : number, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 30, 17)) +>x : new (a: number) => number +>a : number new (x: new (a: string) => string): string[]; ->x : new (a: string) => string, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 31, 9)) ->a : string, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 31, 17)) +>x : new (a: string) => string +>a : string }; var a18: { ->a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithConstructSignatures3.ts, 33, 3)) +>a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } new (x: { ->x : { new (a: number): number; new (a: string): string; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 34, 9)) +>x : { new (a: number): number; new (a: string): string; } new (a: number): number; ->a : number, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 35, 13)) +>a : number new (a: string): string; ->a : string, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 36, 13)) +>a : string }): any[]; new (x: { ->x : { new (a: boolean): boolean; new (a: Date): Date; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 38, 9)) +>x : { new (a: boolean): boolean; new (a: Date): Date; } new (a: boolean): boolean; ->a : boolean, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 39, 13)) +>a : boolean new (a: Date): Date; ->a : Date, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 40, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : Date +>Date : Date +>Date : Date }): any[]; } var b: new (x: T) => T[]; ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 12)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 12)) +>b : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a = b; // ok >a = b : new (x: T) => T[] ->a : new (x: number) => number[], Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 3)) ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 3)) +>a : new (x: number) => number[] +>b : new (x: T) => T[] b = a; // ok >b = a : new (x: number) => number[] ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 44, 3)) ->a : new (x: number) => number[], Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 7, 3)) +>b : new (x: T) => T[] +>a : new (x: number) => number[] var b2: new (x: T) => string[]; ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 13)) +>b2 : new (x: T) => string[] +>T : T +>x : T +>T : T a2 = b2; // ok >a2 = b2 : new (x: T) => string[] ->a2 : new (x: number) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 3)) ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 3)) +>a2 : new (x: number) => string[] +>b2 : new (x: T) => string[] b2 = a2; // ok >b2 = a2 : new (x: number) => string[] ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures3.ts, 47, 3)) ->a2 : new (x: number) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures3.ts, 8, 3)) +>b2 : new (x: T) => string[] +>a2 : new (x: number) => string[] var b3: new (x: T) => T; ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 13)) +>b3 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T a3 = b3; // ok >a3 = b3 : new (x: T) => T ->a3 : new (x: number) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 3)) ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 3)) +>a3 : new (x: number) => void +>b3 : new (x: T) => T b3 = a3; // ok >b3 = a3 : new (x: number) => void ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures3.ts, 50, 3)) ->a3 : new (x: number) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures3.ts, 9, 3)) +>b3 : new (x: T) => T +>a3 : new (x: number) => void var b4: new (x: T, y: U) => T; ->b4 : new (x: T, y: U) => T, Symbol(b4, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 15)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 13)) ->y : U, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 24)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 13)) +>b4 : new (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T a4 = b4; // ok >a4 = b4 : new (x: T, y: U) => T ->a4 : new (x: string, y: number) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 3)) ->b4 : new (x: T, y: U) => T, Symbol(b4, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 3)) +>a4 : new (x: string, y: number) => string +>b4 : new (x: T, y: U) => T b4 = a4; // ok >b4 = a4 : new (x: string, y: number) => string ->b4 : new (x: T, y: U) => T, Symbol(b4, Decl(assignmentCompatWithConstructSignatures3.ts, 53, 3)) ->a4 : new (x: string, y: number) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures3.ts, 10, 3)) +>b4 : new (x: T, y: U) => T +>a4 : new (x: string, y: number) => string var b5: new (x: (arg: T) => U) => T; ->b5 : new (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 15)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 19)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 13)) +>b5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a5 = b5; // ok >a5 = b5 : new (x: (arg: T) => U) => T ->a5 : new (x: (arg: string) => number) => string, Symbol(a5, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 3)) ->b5 : new (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 3)) +>a5 : new (x: (arg: string) => number) => string +>b5 : new (x: (arg: T) => U) => T b5 = a5; // ok >b5 = a5 : new (x: (arg: string) => number) => string ->b5 : new (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures3.ts, 56, 3)) ->a5 : new (x: (arg: string) => number) => string, Symbol(a5, Decl(assignmentCompatWithConstructSignatures3.ts, 11, 3)) +>b5 : new (x: (arg: T) => U) => T +>a5 : new (x: (arg: string) => number) => string var b6: new (x: (arg: T) => U) => T; ->b6 : new (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 28)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 48)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 52)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 28)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 13)) +>b6 : new (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6 = b6; // ok >a6 = b6 : new (x: (arg: T) => U) => T ->a6 : new (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 3)) ->b6 : new (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 3)) +>a6 : new (x: (arg: Base) => Derived) => Base +>b6 : new (x: (arg: T) => U) => T b6 = a6; // ok >b6 = a6 : new (x: (arg: Base) => Derived) => Base ->b6 : new (x: (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithConstructSignatures3.ts, 59, 3)) ->a6 : new (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(assignmentCompatWithConstructSignatures3.ts, 12, 3)) +>b6 : new (x: (arg: T) => U) => T +>a6 : new (x: (arg: Base) => Derived) => Base var b7: new (x: (arg: T) => U) => (r: T) => U; ->b7 : new (x: (arg: T) => U) => (r: T) => U, Symbol(b7, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 28)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 48)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 52)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 28)) ->r : T, Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 70)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 28)) +>b7 : new (x: (arg: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>r : T +>T : T +>U : U a7 = b7; // ok >a7 = b7 : new (x: (arg: T) => U) => (r: T) => U ->a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 3)) ->b7 : new (x: (arg: T) => U) => (r: T) => U, Symbol(b7, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 3)) +>a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived +>b7 : new (x: (arg: T) => U) => (r: T) => U b7 = a7; // ok >b7 = a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived ->b7 : new (x: (arg: T) => U) => (r: T) => U, Symbol(b7, Decl(assignmentCompatWithConstructSignatures3.ts, 62, 3)) ->a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(assignmentCompatWithConstructSignatures3.ts, 13, 3)) +>b7 : new (x: (arg: T) => U) => (r: T) => U +>a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived var b8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; ->b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(b8, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 48)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 52)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) ->y : (arg2: T) => U, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 65)) ->arg2 : T, Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 70)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) ->r : T, Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 89)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 28)) +>b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: T) => U +>arg2 : T +>T : T +>U : U +>r : T +>T : T +>U : U a8 = b8; // ok >a8 = b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U ->a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 3)) ->b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(b8, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 3)) +>a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U b8 = a8; // ok >b8 = a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived ->b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(b8, Decl(assignmentCompatWithConstructSignatures3.ts, 65, 3)) ->a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(assignmentCompatWithConstructSignatures3.ts, 14, 3)) +>b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived var b9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; ->b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(b9, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 48)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 52)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) ->y : (arg2: { foo: string; bing: number; }) => U, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 65)) ->arg2 : { foo: string; bing: number; }, Symbol(arg2, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 70)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 77)) ->bing : number, Symbol(bing, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 90)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) ->r : T, Symbol(r, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 117)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 28)) +>b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: { foo: string; bing: number; }) => U +>arg2 : { foo: string; bing: number; } +>foo : string +>bing : number +>U : U +>r : T +>T : T +>U : U a9 = b9; // ok >a9 = b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U ->a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 3)) ->b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(b9, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 3)) +>a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U b9 = a9; // ok >b9 = a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived ->b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(b9, Decl(assignmentCompatWithConstructSignatures3.ts, 68, 3)) ->a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(assignmentCompatWithConstructSignatures3.ts, 15, 3)) +>b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived var b10: new (...x: T[]) => T; ->b10 : new (...x: T[]) => T, Symbol(b10, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 14)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : T[], Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 33)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 14)) +>b10 : new (...x: T[]) => T +>T : T +>Derived : Derived +>x : T[] +>T : T +>T : T a10 = b10; // ok >a10 = b10 : new (...x: T[]) => T ->a10 : new (...x: Derived[]) => Derived, Symbol(a10, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 3)) ->b10 : new (...x: T[]) => T, Symbol(b10, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 3)) +>a10 : new (...x: Derived[]) => Derived +>b10 : new (...x: T[]) => T b10 = a10; // ok >b10 = a10 : new (...x: Derived[]) => Derived ->b10 : new (...x: T[]) => T, Symbol(b10, Decl(assignmentCompatWithConstructSignatures3.ts, 71, 3)) ->a10 : new (...x: Derived[]) => Derived, Symbol(a10, Decl(assignmentCompatWithConstructSignatures3.ts, 16, 3)) +>b10 : new (...x: T[]) => T +>a10 : new (...x: Derived[]) => Derived var b11: new (x: T, y: T) => T; ->b11 : new (x: T, y: T) => T, Symbol(b11, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 30)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) ->y : T, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 35)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 14)) +>b11 : new (x: T, y: T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : T +>T : T +>T : T a11 = b11; // ok >a11 = b11 : new (x: T, y: T) => T ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 3)) ->b11 : new (x: T, y: T) => T, Symbol(b11, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 3)) +>a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>b11 : new (x: T, y: T) => T b11 = a11; // ok >b11 = a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base ->b11 : new (x: T, y: T) => T, Symbol(b11, Decl(assignmentCompatWithConstructSignatures3.ts, 74, 3)) ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures3.ts, 17, 3)) +>b11 : new (x: T, y: T) => T +>a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base var b12: new >(x: Array, y: T) => Array; ->b12 : new (x: Base[], y: T) => Derived[], Symbol(b12, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 37)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->y : T, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 52)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) +>b12 : new (x: Base[], y: T) => Derived[] +>T : T +>Array : T[] +>Base : Base +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>Array : T[] +>Derived : Derived a12 = b12; // ok >a12 = b12 : new (x: Base[], y: T) => Derived[] ->a12 : new (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 3)) ->b12 : new (x: Base[], y: T) => Derived[], Symbol(b12, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 3)) +>a12 : new (x: Base[], y: Derived2[]) => Derived[] +>b12 : new (x: Base[], y: T) => Derived[] b12 = a12; // ok >b12 = a12 : new (x: Base[], y: Derived2[]) => Derived[] ->b12 : new (x: Base[], y: T) => Derived[], Symbol(b12, Decl(assignmentCompatWithConstructSignatures3.ts, 77, 3)) ->a12 : new (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(assignmentCompatWithConstructSignatures3.ts, 18, 3)) +>b12 : new (x: Base[], y: T) => Derived[] +>a12 : new (x: Base[], y: Derived2[]) => Derived[] var b13: new >(x: Array, y: T) => T; ->b13 : new (x: Base[], y: T) => T, Symbol(b13, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures3.ts, 2, 27)) ->x : Base[], Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 40)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->y : T, Symbol(y, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 55)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 14)) +>b13 : new (x: Base[], y: T) => T +>T : T +>Array : T[] +>Derived : Derived +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>T : T a13 = b13; // ok >a13 = b13 : new (x: Base[], y: T) => T ->a13 : new (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 3)) ->b13 : new (x: Base[], y: T) => T, Symbol(b13, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 3)) +>a13 : new (x: Base[], y: Derived[]) => Derived[] +>b13 : new (x: Base[], y: T) => T b13 = a13; // ok >b13 = a13 : new (x: Base[], y: Derived[]) => Derived[] ->b13 : new (x: Base[], y: T) => T, Symbol(b13, Decl(assignmentCompatWithConstructSignatures3.ts, 80, 3)) ->a13 : new (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(assignmentCompatWithConstructSignatures3.ts, 19, 3)) +>b13 : new (x: Base[], y: T) => T +>a13 : new (x: Base[], y: Derived[]) => Derived[] var b14: new (x: { a: T; b: T }) => T; ->b14 : new (x: { a: T; b: T; }) => T, Symbol(b14, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 14)) +>b14 : new (x: { a: T; b: T; }) => T +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a14 = b14; // ok >a14 = b14 : new (x: { a: T; b: T; }) => T ->a14 : new (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 3)) ->b14 : new (x: { a: T; b: T; }) => T, Symbol(b14, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 3)) +>a14 : new (x: { a: string; b: number; }) => Object +>b14 : new (x: { a: T; b: T; }) => T b14 = a14; // ok >b14 = a14 : new (x: { a: string; b: number; }) => Object ->b14 : new (x: { a: T; b: T; }) => T, Symbol(b14, Decl(assignmentCompatWithConstructSignatures3.ts, 83, 3)) ->a14 : new (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(assignmentCompatWithConstructSignatures3.ts, 20, 3)) +>b14 : new (x: { a: T; b: T; }) => T +>a14 : new (x: { a: string; b: number; }) => Object var b15: new (x: T) => T[]; ->b15 : new (x: T) => T[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 14)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 17)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 14)) +>b15 : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a15 = b15; // ok >a15 = b15 : new (x: T) => T[] ->a15 : { new (x: number): number[]; new (x: string): string[]; }, Symbol(a15, Decl(assignmentCompatWithConstructSignatures3.ts, 21, 3)) ->b15 : new (x: T) => T[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 3)) +>a15 : { new (x: number): number[]; new (x: string): string[]; } +>b15 : new (x: T) => T[] b15 = a15; // ok >b15 = a15 : { new (x: number): number[]; new (x: string): string[]; } ->b15 : new (x: T) => T[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures3.ts, 86, 3)) ->a15 : { new (x: number): number[]; new (x: string): string[]; }, Symbol(a15, Decl(assignmentCompatWithConstructSignatures3.ts, 21, 3)) +>b15 : new (x: T) => T[] +>a15 : { new (x: number): number[]; new (x: string): string[]; } var b16: new (x: T) => number[]; ->b16 : new (x: T) => number[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 14)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures3.ts, 0, 0)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 30)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 14)) +>b16 : new (x: T) => number[] +>T : T +>Base : Base +>x : T +>T : T a16 = b16; // ok >a16 = b16 : new (x: T) => number[] ->a16 : { new (x: T): number[]; new (x: U): number[]; }, Symbol(a16, Decl(assignmentCompatWithConstructSignatures3.ts, 25, 3)) ->b16 : new (x: T) => number[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 3)) +>a16 : { new (x: T): number[]; new (x: U): number[]; } +>b16 : new (x: T) => number[] b16 = a16; // ok >b16 = a16 : { new (x: T): number[]; new (x: U): number[]; } ->b16 : new (x: T) => number[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures3.ts, 89, 3)) ->a16 : { new (x: T): number[]; new (x: U): number[]; }, Symbol(a16, Decl(assignmentCompatWithConstructSignatures3.ts, 25, 3)) +>b16 : new (x: T) => number[] +>a16 : { new (x: T): number[]; new (x: U): number[]; } var b17: new (x: new (a: T) => T) => T[]; // ok ->b17 : new (x: new (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) ->x : new (a: T) => T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 14)) +>b17 : new (x: new (a: T) => T) => T[] +>T : T +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T a17 = b17; // ok >a17 = b17 : new (x: new (a: T) => T) => T[] ->a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; }, Symbol(a17, Decl(assignmentCompatWithConstructSignatures3.ts, 29, 3)) ->b17 : new (x: new (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 3)) +>a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } +>b17 : new (x: new (a: T) => T) => T[] b17 = a17; // ok >b17 = a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } ->b17 : new (x: new (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithConstructSignatures3.ts, 92, 3)) ->a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; }, Symbol(a17, Decl(assignmentCompatWithConstructSignatures3.ts, 29, 3)) +>b17 : new (x: new (a: T) => T) => T[] +>a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } var b18: new (x: new (a: T) => T) => T[]; ->b18 : new (x: new (a: T) => T) => T[], Symbol(b18, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) ->x : new (a: T) => T, Symbol(x, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 14)) +>b18 : new (x: new (a: T) => T) => T[] +>T : T +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T a18 = b18; // ok >a18 = b18 : new (x: new (a: T) => T) => T[] ->a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithConstructSignatures3.ts, 33, 3)) ->b18 : new (x: new (a: T) => T) => T[], Symbol(b18, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 3)) +>a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } +>b18 : new (x: new (a: T) => T) => T[] b18 = a18; // ok >b18 = a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } ->b18 : new (x: new (a: T) => T) => T[], Symbol(b18, Decl(assignmentCompatWithConstructSignatures3.ts, 95, 3)) ->a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithConstructSignatures3.ts, 33, 3)) +>b18 : new (x: new (a: T) => T) => T[] +>a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.symbols b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.symbols new file mode 100644 index 0000000000000..d2016b247b821 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.symbols @@ -0,0 +1,358 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures5.ts === +// checking assignment compat for function types. All valid + +class Base { foo: string; } +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures5.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures5.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) +>baz : Symbol(baz, Decl(assignmentCompatWithConstructSignatures5.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(assignmentCompatWithConstructSignatures5.ts, 4, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>bing : Symbol(bing, Decl(assignmentCompatWithConstructSignatures5.ts, 5, 33)) + +var a: new (x: T) => T[]; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 12)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 12)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 12)) + +var a2: new (x: T) => string[]; +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 13)) + +var a3: new (x: T) => void; +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 13)) + +var a4: new (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 19)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 13)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 24)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 15)) + +var a5: new (x: new (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 19)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 13)) + +var a6: new (x: new (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 29)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 37)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 13)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 13)) + +var a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 17)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 31)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 36)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 44)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) + +var a15: new (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) + +var a16: new (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 30)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 34)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 40)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) + +var a17: { +>a17 : Symbol(a17, Decl(assignmentCompatWithConstructSignatures5.ts, 16, 3)) + + new (x: new (a: T) => T): T[]; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 28)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 36)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) + + new (x: new (a: T) => T): T[]; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 25)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 33)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) + +}; +var a18: { +>a18 : Symbol(a18, Decl(assignmentCompatWithConstructSignatures5.ts, 20, 3)) + + new (x: { +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 21, 9)) + + new (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 13)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 32)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 13)) + + new (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 29)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 13)) + + }): any[]; + new (x: { +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 25, 9)) + + new (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 13)) +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures5.ts, 3, 43)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 33)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 13)) + + new (a: T): T; +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 29)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 13)) + + }): any[]; +}; + +var b: new (x: T) => T[]; +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 12)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 12)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 12)) + +a = b; // ok +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 3)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 3)) + +b = a; // ok +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 3)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 3)) + +var b2: new (x: T) => string[]; +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 13)) + +a2 = b2; // ok +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 3)) + +b2 = a2; // ok +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 3)) + +var b3: new (x: T) => T; +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 13)) + +a3 = b3; // ok +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 3)) +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 3)) + +b3 = a3; // ok +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 3)) +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 3)) + +var b4: new (x: T, y: U) => string; +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 19)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 13)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 24)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 15)) + +a4 = b4; // ok +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 3)) +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 3)) + +b4 = a4; // ok +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 3)) +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 3)) + +var b5: new (x: new (arg: T) => U) => T; +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 19)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 13)) + +a5 = b5; // ok +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 3)) +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 3)) + +b5 = a5; // ok +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 3)) +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 3)) + +var b6: new (x: new (arg: T) => U) => T; +>b6 : Symbol(b6, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 28)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 48)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 56)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 28)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 13)) + +a6 = b6; // ok +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 3)) +>b6 : Symbol(b6, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 3)) + +b6 = a6; // ok +>b6 : Symbol(b6, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 3)) +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 3)) + +var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 14)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 16)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 20)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 24)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 14)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 34)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 39)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 16)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 47)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 16)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) + +a11 = b11; // ok +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 3)) +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 3)) + +b11 = a11; // ok +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 3)) +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 3)) + +var b15: new (x: { a: U; b: V; }) => U[]; +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 14)) +>V : Symbol(V, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 16)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 20)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 24)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 30)) +>V : Symbol(V, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 16)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 14)) + +a15 = b15; // ok +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) + +b15 = a15; // ok +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) + +var b16: new (x: { a: T; b: T }) => T[]; +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) + +a15 = b16; // ok +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 3)) + +b15 = a16; // ok +>b15 : Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) +>a16 : Symbol(a16, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 3)) + +var b17: new (x: new (a: T) => T) => T[]; +>b17 : Symbol(b17, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 25)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) + +a17 = b17; // ok +>a17 : Symbol(a17, Decl(assignmentCompatWithConstructSignatures5.ts, 16, 3)) +>b17 : Symbol(b17, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 3)) + +b17 = a17; // ok +>b17 : Symbol(b17, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 3)) +>a17 : Symbol(a17, Decl(assignmentCompatWithConstructSignatures5.ts, 16, 3)) + +var b18: new (x: new (a: T) => T) => any[]; +>b18 : Symbol(b18, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 3)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 22)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 25)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 22)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 22)) + +a18 = b18; // ok +>a18 : Symbol(a18, Decl(assignmentCompatWithConstructSignatures5.ts, 20, 3)) +>b18 : Symbol(b18, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 3)) + +b18 = a18; // ok +>b18 : Symbol(b18, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 3)) +>a18 : Symbol(a18, Decl(assignmentCompatWithConstructSignatures5.ts, 20, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types index f932143574646..6e6a1457a7614 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types @@ -2,379 +2,379 @@ // checking assignment compat for function types. All valid class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithConstructSignatures5.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures5.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithConstructSignatures5.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithConstructSignatures5.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(assignmentCompatWithConstructSignatures5.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string var a: new (x: T) => T[]; ->a : new (x: T) => T[], Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 12)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T var a2: new (x: T) => string[]; ->a2 : new (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T var a3: new (x: T) => void; ->a3 : new (x: T) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 13)) +>a3 : new (x: T) => void +>T : T +>x : T +>T : T var a4: new (x: T, y: U) => string; ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 15)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 13)) ->y : U, Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 24)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 15)) +>a4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U var a5: new (x: new (arg: T) => U) => T; ->a5 : new (x: new (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 15)) ->x : new (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 19)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 13)) +>a5 : new (x: new (arg: T) => U) => T +>T : T +>U : U +>x : new (arg: T) => U +>arg : T +>T : T +>U : U +>T : T var a6: new (x: new (arg: T) => Derived) => T; ->a6 : new (x: new (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->x : new (arg: T) => Derived, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 29)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 37)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 13)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 13)) +>a6 : new (x: new (arg: T) => Derived) => T +>T : T +>Base : Base +>x : new (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T var a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 17)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 31)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 36)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) ->bar : T, Symbol(bar, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 44)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 14)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base var a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 14)) +>a15 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T var a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 30)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 34)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 40)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 14)) +>a16 : new (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T var a17: { ->a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithConstructSignatures5.ts, 16, 3)) +>a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } new (x: new (a: T) => T): T[]; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) ->x : new (a: T) => T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 28)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 36)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 17, 9)) +>T : T +>Derived : Derived +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T new (x: new (a: T) => T): T[]; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->x : new (a: T) => T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 25)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 33)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 18, 9)) +>T : T +>Base : Base +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T }; var a18: { ->a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithConstructSignatures5.ts, 20, 3)) +>a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } new (x: { ->x : { new (a: T): T; new (a: T): T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 21, 9)) +>x : { new (a: T): T; new (a: T): T; } new (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 13)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 32)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 22, 13)) +>T : T +>Derived : Derived +>a : T +>T : T +>T : T new (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 29)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 23, 13)) +>T : T +>Base : Base +>a : T +>T : T +>T : T }): any[]; new (x: { ->x : { new (a: T): T; new (a: T): T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 25, 9)) +>x : { new (a: T): T; new (a: T): T; } new (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 13)) ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures5.ts, 3, 43)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 33)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 26, 13)) +>T : T +>Derived2 : Derived2 +>a : T +>T : T +>T : T new (a: T): T; ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 29)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 27, 13)) +>T : T +>Base : Base +>a : T +>T : T +>T : T }): any[]; }; var b: new (x: T) => T[]; ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 12)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 12)) +>b : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a = b; // ok >a = b : new (x: T) => T[] ->a : new (x: T) => T[], Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 3)) ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 3)) +>a : new (x: T) => T[] +>b : new (x: T) => T[] b = a; // ok >b = a : new (x: T) => T[] ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 31, 3)) ->a : new (x: T) => T[], Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 7, 3)) +>b : new (x: T) => T[] +>a : new (x: T) => T[] var b2: new (x: T) => string[]; ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 13)) +>b2 : new (x: T) => string[] +>T : T +>x : T +>T : T a2 = b2; // ok >a2 = b2 : new (x: T) => string[] ->a2 : new (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 3)) ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 3)) +>a2 : new (x: T) => string[] +>b2 : new (x: T) => string[] b2 = a2; // ok >b2 = a2 : new (x: T) => string[] ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures5.ts, 34, 3)) ->a2 : new (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures5.ts, 8, 3)) +>b2 : new (x: T) => string[] +>a2 : new (x: T) => string[] var b3: new (x: T) => T; ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 13)) +>b3 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T a3 = b3; // ok >a3 = b3 : new (x: T) => T ->a3 : new (x: T) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 3)) ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 3)) +>a3 : new (x: T) => void +>b3 : new (x: T) => T b3 = a3; // ok >b3 = a3 : new (x: T) => void ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures5.ts, 37, 3)) ->a3 : new (x: T) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures5.ts, 9, 3)) +>b3 : new (x: T) => T +>a3 : new (x: T) => void var b4: new (x: T, y: U) => string; ->b4 : new (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 15)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 13)) ->y : U, Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 24)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 15)) +>b4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a4 = b4; // ok >a4 = b4 : new (x: T, y: U) => string ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 3)) ->b4 : new (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 3)) +>a4 : new (x: T, y: U) => string +>b4 : new (x: T, y: U) => string b4 = a4; // ok >b4 = a4 : new (x: T, y: U) => string ->b4 : new (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithConstructSignatures5.ts, 40, 3)) ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures5.ts, 10, 3)) +>b4 : new (x: T, y: U) => string +>a4 : new (x: T, y: U) => string var b5: new (x: new (arg: T) => U) => T; ->b5 : new (x: new (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 15)) ->x : new (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 19)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 13)) +>b5 : new (x: new (arg: T) => U) => T +>T : T +>U : U +>x : new (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a5 = b5; // ok >a5 = b5 : new (x: new (arg: T) => U) => T ->a5 : new (x: new (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 3)) ->b5 : new (x: new (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 3)) +>a5 : new (x: new (arg: T) => U) => T +>b5 : new (x: new (arg: T) => U) => T b5 = a5; // ok >b5 = a5 : new (x: new (arg: T) => U) => T ->b5 : new (x: new (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures5.ts, 43, 3)) ->a5 : new (x: new (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithConstructSignatures5.ts, 11, 3)) +>b5 : new (x: new (arg: T) => U) => T +>a5 : new (x: new (arg: T) => U) => T var b6: new (x: new (arg: T) => U) => T; ->b6 : new (x: new (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 28)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures5.ts, 2, 27)) ->x : new (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 48)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 56)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 28)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 13)) +>b6 : new (x: new (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : new (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6 = b6; // ok >a6 = b6 : new (x: new (arg: T) => U) => T ->a6 : new (x: new (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 3)) ->b6 : new (x: new (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 3)) +>a6 : new (x: new (arg: T) => Derived) => T +>b6 : new (x: new (arg: T) => U) => T b6 = a6; // ok >b6 = a6 : new (x: new (arg: T) => Derived) => T ->b6 : new (x: new (arg: T) => U) => T, Symbol(b6, Decl(assignmentCompatWithConstructSignatures5.ts, 46, 3)) ->a6 : new (x: new (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithConstructSignatures5.ts, 12, 3)) +>b6 : new (x: new (arg: T) => U) => T +>a6 : new (x: new (arg: T) => Derived) => T var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 14)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 16)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 20)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 24)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 14)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 34)) ->foo : U, Symbol(foo, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 39)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 16)) ->bar : U, Symbol(bar, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 47)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 16)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures5.ts, 0, 0)) +>b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>T : T +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base a11 = b11; // ok >a11 = b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 3)) ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 3)) +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base b11 = a11; // ok >b11 = a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithConstructSignatures5.ts, 49, 3)) ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures5.ts, 13, 3)) +>b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b15: new (x: { a: U; b: V; }) => U[]; ->b15 : new (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 14)) ->V : V, Symbol(V, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 16)) ->x : { a: U; b: V; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 20)) ->a : U, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 24)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 14)) ->b : V, Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 30)) ->V : V, Symbol(V, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 16)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 14)) +>b15 : new (x: { a: U; b: V; }) => U[] +>U : U +>V : V +>x : { a: U; b: V; } +>a : U +>U : U +>b : V +>V : V +>U : U a15 = b15; // ok >a15 = b15 : new (x: { a: U; b: V; }) => U[] ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) ->b15 : new (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) +>a15 : new (x: { a: T; b: T; }) => T[] +>b15 : new (x: { a: U; b: V; }) => U[] b15 = a15; // ok >b15 = a15 : new (x: { a: T; b: T; }) => T[] ->b15 : new (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) +>b15 : new (x: { a: U; b: V; }) => U[] +>a15 : new (x: { a: T; b: T; }) => T[] var b16: new (x: { a: T; b: T }) => T[]; ->b16 : new (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 14)) +>b16 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a15 = b16; // ok >a15 = b16 : new (x: { a: T; b: T; }) => T[] ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithConstructSignatures5.ts, 14, 3)) ->b16 : new (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures5.ts, 55, 3)) +>a15 : new (x: { a: T; b: T; }) => T[] +>b16 : new (x: { a: T; b: T; }) => T[] b15 = a16; // ok >b15 = a16 : new (x: { a: T; b: T; }) => T[] ->b15 : new (x: { a: U; b: V; }) => U[], Symbol(b15, Decl(assignmentCompatWithConstructSignatures5.ts, 52, 3)) ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithConstructSignatures5.ts, 15, 3)) +>b15 : new (x: { a: U; b: V; }) => U[] +>a16 : new (x: { a: T; b: T; }) => T[] var b17: new (x: new (a: T) => T) => T[]; ->b17 : new (x: new (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) ->x : new (a: T) => T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 14)) +>b17 : new (x: new (a: T) => T) => T[] +>T : T +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T a17 = b17; // ok >a17 = b17 : new (x: new (a: T) => T) => T[] ->a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithConstructSignatures5.ts, 16, 3)) ->b17 : new (x: new (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 3)) +>a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } +>b17 : new (x: new (a: T) => T) => T[] b17 = a17; // ok >b17 = a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } ->b17 : new (x: new (a: T) => T) => T[], Symbol(b17, Decl(assignmentCompatWithConstructSignatures5.ts, 58, 3)) ->a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; }, Symbol(a17, Decl(assignmentCompatWithConstructSignatures5.ts, 16, 3)) +>b17 : new (x: new (a: T) => T) => T[] +>a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } var b18: new (x: new (a: T) => T) => any[]; ->b18 : new (x: new (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 3)) ->x : new (a: T) => T, Symbol(x, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 22)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 25)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 22)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 22)) +>b18 : new (x: new (a: T) => T) => any[] +>x : new (a: T) => T +>T : T +>a : T +>T : T +>T : T a18 = b18; // ok >a18 = b18 : new (x: new (a: T) => T) => any[] ->a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithConstructSignatures5.ts, 20, 3)) ->b18 : new (x: new (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 3)) +>a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } +>b18 : new (x: new (a: T) => T) => any[] b18 = a18; // ok >b18 = a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } ->b18 : new (x: new (a: T) => T) => any[], Symbol(b18, Decl(assignmentCompatWithConstructSignatures5.ts, 61, 3)) ->a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }, Symbol(a18, Decl(assignmentCompatWithConstructSignatures5.ts, 20, 3)) +>b18 : new (x: new (a: T) => T) => any[] +>a18 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.symbols b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.symbols new file mode 100644 index 0000000000000..1850406bfa853 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.symbols @@ -0,0 +1,259 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures6.ts === +// checking assignment compatibility relations for function types. All valid. + +class Base { foo: string; } +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 27)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures6.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures6.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 27)) +>baz : Symbol(baz, Decl(assignmentCompatWithConstructSignatures6.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(assignmentCompatWithConstructSignatures6.ts, 4, 47)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>bing : Symbol(bing, Decl(assignmentCompatWithConstructSignatures6.ts, 5, 33)) + +interface A { +>A : Symbol(A, Decl(assignmentCompatWithConstructSignatures6.ts, 5, 49)) + + a: new (x: T) => T[]; +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 12)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 12)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 12)) + + a2: new (x: T) => string[]; +>a2 : Symbol(a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 13)) + + a3: new (x: T) => void; +>a3 : Symbol(a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 13)) + + a4: new (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 19)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 13)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 24)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 15)) + + a5: new (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 19)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 23)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 13)) + + a6: new (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 42)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 13)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 29)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 33)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 13)) +>Derived : Symbol(Derived, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 13)) + + a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 17)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 31)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 36)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 44)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) + + a15: new (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 63)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) + + a16: new (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 30)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 34)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 40)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) +} + +var x: A; +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>A : Symbol(A, Decl(assignmentCompatWithConstructSignatures6.ts, 5, 49)) + +var b: new (x: T) => T[]; +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 12)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 12)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 12)) + +x.a = b; +>x.a : Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a : Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 3)) + +b = x.a; +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 3)) +>x.a : Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a : Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) + +var b2: new (x: T) => string[]; +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 13)) + +x.a2 = b2; +>x.a2 : Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a2 : Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 3)) + +b2 = x.a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 3)) +>x.a2 : Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a2 : Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) + +var b3: new (x: T) => T; +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 13)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 16)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 13)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 13)) + +x.a3 = b3; +>x.a3 : Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a3 : Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 3)) + +b3 = x.a3; +>b3 : Symbol(b3, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 3)) +>x.a3 : Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a3 : Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) + +var b4: new (x: T, y: U) => string; +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 19)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 13)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 24)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 15)) + +x.a4 = b4; +>x.a4 : Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a4 : Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 3)) + +b4 = x.a4; +>b4 : Symbol(b4, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 3)) +>x.a4 : Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a4 : Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) + +var b5: new (x: (arg: T) => U) => T; +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 15)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 19)) +>arg : Symbol(arg, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 23)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 13)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 15)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 13)) + +x.a5 = b5; +>x.a5 : Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a5 : Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 3)) + +b5 = x.a5; +>b5 : Symbol(b5, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 3)) +>x.a5 : Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a5 : Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) + +var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 14)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 16)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 20)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 24)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 14)) +>y : Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 34)) +>foo : Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 39)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 16)) +>bar : Symbol(bar, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 47)) +>U : Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 16)) +>Base : Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) + +x.a11 = b11; +>x.a11 : Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a11 : Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 3)) + +b11 = x.a11; +>b11 : Symbol(b11, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 3)) +>x.a11 : Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a11 : Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) + +var b16: new (x: { a: T; b: T }) => T[]; +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 3)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 17)) +>a : Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 21)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) +>b : Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 27)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) +>T : Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) + +x.a16 = b16; +>x.a16 : Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a16 : Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 3)) + +b16 = x.a16; +>b16 : Symbol(b16, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 3)) +>x.a16 : Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) +>x : Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) +>a16 : Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) + diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types index e37bc7f0ed4e3..74a20b9b21e94 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types @@ -2,272 +2,272 @@ // checking assignment compatibility relations for function types. All valid. class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithConstructSignatures6.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(assignmentCompatWithConstructSignatures6.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithConstructSignatures6.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(assignmentCompatWithConstructSignatures6.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(assignmentCompatWithConstructSignatures6.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { ->A : A, Symbol(A, Decl(assignmentCompatWithConstructSignatures6.ts, 5, 49)) +>A : A a: new (x: T) => T[]; ->a : new (x: T) => T[], Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 12)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: new (x: T) => string[]; ->a2 : new (x: T) => string[], Symbol(a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T a3: new (x: T) => void; ->a3 : new (x: T) => void, Symbol(a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 13)) +>a3 : new (x: T) => void +>T : T +>x : T +>T : T a4: new (x: T, y: U) => string; ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 15)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 13)) ->y : U, Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 24)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 15)) +>a4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: new (x: (arg: T) => U) => T; ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 15)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 19)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 13)) +>a5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: new (x: (arg: T) => Derived) => T; ->a6 : new (x: (arg: T) => Derived) => T, Symbol(a6, Decl(assignmentCompatWithConstructSignatures6.ts, 12, 42)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 13)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 29)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 33)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 13)) ->Derived : Derived, Symbol(Derived, Decl(assignmentCompatWithConstructSignatures6.ts, 2, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 13)) +>a6 : new (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 17)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 31)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 36)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) ->bar : T, Symbol(bar, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 44)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 14)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(assignmentCompatWithConstructSignatures6.ts, 14, 63)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 14)) +>a15 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 30)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 34)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 40)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 16, 14)) +>a16 : new (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } var x: A; ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->A : A, Symbol(A, Decl(assignmentCompatWithConstructSignatures6.ts, 5, 49)) +>x : A +>A : A var b: new (x: T) => T[]; ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 12)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 12)) +>b : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T x.a = b; >x.a = b : new (x: T) => T[] ->x.a : new (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a : new (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 3)) +>x.a : new (x: T) => T[] +>x : A +>a : new (x: T) => T[] +>b : new (x: T) => T[] b = x.a; >b = x.a : new (x: T) => T[] ->b : new (x: T) => T[], Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 21, 3)) ->x.a : new (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a : new (x: T) => T[], Symbol(A.a, Decl(assignmentCompatWithConstructSignatures6.ts, 7, 13)) +>b : new (x: T) => T[] +>x.a : new (x: T) => T[] +>x : A +>a : new (x: T) => T[] var b2: new (x: T) => string[]; ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 13)) +>b2 : new (x: T) => string[] +>T : T +>x : T +>T : T x.a2 = b2; >x.a2 = b2 : new (x: T) => string[] ->x.a2 : new (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a2 : new (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 3)) +>x.a2 : new (x: T) => string[] +>x : A +>a2 : new (x: T) => string[] +>b2 : new (x: T) => string[] b2 = x.a2; >b2 = x.a2 : new (x: T) => string[] ->b2 : new (x: T) => string[], Symbol(b2, Decl(assignmentCompatWithConstructSignatures6.ts, 24, 3)) ->x.a2 : new (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a2 : new (x: T) => string[], Symbol(A.a2, Decl(assignmentCompatWithConstructSignatures6.ts, 8, 28)) +>b2 : new (x: T) => string[] +>x.a2 : new (x: T) => string[] +>x : A +>a2 : new (x: T) => string[] var b3: new (x: T) => T; ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 13)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 16)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 13)) +>b3 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T x.a3 = b3; >x.a3 = b3 : new (x: T) => T ->x.a3 : new (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a3 : new (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 3)) +>x.a3 : new (x: T) => void +>x : A +>a3 : new (x: T) => void +>b3 : new (x: T) => T b3 = x.a3; >b3 = x.a3 : new (x: T) => void ->b3 : new (x: T) => T, Symbol(b3, Decl(assignmentCompatWithConstructSignatures6.ts, 27, 3)) ->x.a3 : new (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a3 : new (x: T) => void, Symbol(A.a3, Decl(assignmentCompatWithConstructSignatures6.ts, 9, 34)) +>b3 : new (x: T) => T +>x.a3 : new (x: T) => void +>x : A +>a3 : new (x: T) => void var b4: new (x: T, y: U) => string; ->b4 : new (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 15)) ->x : T, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 19)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 13)) ->y : U, Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 24)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 15)) +>b4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U x.a4 = b4; >x.a4 = b4 : new (x: T, y: U) => string ->x.a4 : new (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a4 : new (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) ->b4 : new (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 3)) +>x.a4 : new (x: T, y: U) => string +>x : A +>a4 : new (x: T, y: U) => string +>b4 : new (x: T, y: U) => string b4 = x.a4; >b4 = x.a4 : new (x: T, y: U) => string ->b4 : new (x: T, y: U) => string, Symbol(b4, Decl(assignmentCompatWithConstructSignatures6.ts, 30, 3)) ->x.a4 : new (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a4 : new (x: T, y: U) => string, Symbol(A.a4, Decl(assignmentCompatWithConstructSignatures6.ts, 10, 30)) +>b4 : new (x: T, y: U) => string +>x.a4 : new (x: T, y: U) => string +>x : A +>a4 : new (x: T, y: U) => string var b5: new (x: (arg: T) => U) => T; ->b5 : new (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 15)) ->x : (arg: T) => U, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 19)) ->arg : T, Symbol(arg, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 23)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 13)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 15)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 13)) +>b5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T x.a5 = b5; >x.a5 = b5 : new (x: (arg: T) => U) => T ->x.a5 : new (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a5 : new (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) ->b5 : new (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 3)) +>x.a5 : new (x: (arg: T) => U) => T +>x : A +>a5 : new (x: (arg: T) => U) => T +>b5 : new (x: (arg: T) => U) => T b5 = x.a5; >b5 = x.a5 : new (x: (arg: T) => U) => T ->b5 : new (x: (arg: T) => U) => T, Symbol(b5, Decl(assignmentCompatWithConstructSignatures6.ts, 33, 3)) ->x.a5 : new (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a5 : new (x: (arg: T) => U) => T, Symbol(A.a5, Decl(assignmentCompatWithConstructSignatures6.ts, 11, 41)) +>b5 : new (x: (arg: T) => U) => T +>x.a5 : new (x: (arg: T) => U) => T +>x : A +>a5 : new (x: (arg: T) => U) => T var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 14)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 16)) ->x : { foo: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 20)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 24)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 14)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 34)) ->foo : U, Symbol(foo, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 39)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 16)) ->bar : U, Symbol(bar, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 47)) ->U : U, Symbol(U, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 16)) ->Base : Base, Symbol(Base, Decl(assignmentCompatWithConstructSignatures6.ts, 0, 0)) +>b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>T : T +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base x.a11 = b11; >x.a11 = b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base ->x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 3)) +>x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>x : A +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base b11 = x.a11; >b11 = x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(b11, Decl(assignmentCompatWithConstructSignatures6.ts, 36, 3)) ->x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(A.a11, Decl(assignmentCompatWithConstructSignatures6.ts, 13, 58)) +>b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>x : A +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b16: new (x: { a: T; b: T }) => T[]; ->b16 : new (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 17)) ->a : T, Symbol(a, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 21)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) ->b : T, Symbol(b, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 27)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) ->T : T, Symbol(T, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 14)) +>b16 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T x.a16 = b16; >x.a16 = b16 : new (x: { a: T; b: T; }) => T[] ->x.a16 : new (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) ->b16 : new (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 3)) +>x.a16 : new (x: { a: T; b: T; }) => T[] +>x : A +>a16 : new (x: { a: T; b: T; }) => T[] +>b16 : new (x: { a: T; b: T; }) => T[] b16 = x.a16; >b16 = x.a16 : new (x: { a: T; b: T; }) => T[] ->b16 : new (x: { a: T; b: T; }) => T[], Symbol(b16, Decl(assignmentCompatWithConstructSignatures6.ts, 39, 3)) ->x.a16 : new (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) ->x : A, Symbol(x, Decl(assignmentCompatWithConstructSignatures6.ts, 19, 3)) ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(A.a16, Decl(assignmentCompatWithConstructSignatures6.ts, 15, 43)) +>b16 : new (x: { a: T; b: T; }) => T[] +>x.a16 : new (x: { a: T; b: T; }) => T[] +>x : A +>a16 : new (x: { a: T; b: T; }) => T[] diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.symbols b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.symbols new file mode 100644 index 0000000000000..727e7ed911acd --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures.ts === +// some complex cases of assignment compat of generic signatures that stress contextual signature instantiation + +var f: (x: S) => void +>f : Symbol(f, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 3)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 8)) +>p : Symbol(p, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 19)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 35)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 8)) + +var g: (x: T[]) => void +>g : Symbol(g, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 3)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 8)) +>p : Symbol(p, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 19)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 33)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 8)) + +f = g; // ok +>f : Symbol(f, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 3)) +>g : Symbol(g, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 3)) + +g = f; // ok +>g : Symbol(g, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 3)) +>f : Symbol(f, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types index 0656fe1310d70..ac503fb1873d5 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types @@ -2,26 +2,26 @@ // some complex cases of assignment compat of generic signatures that stress contextual signature instantiation var f: (x: S) => void ->f : (x: S) => void, Symbol(f, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 3)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 8)) ->p : string, Symbol(p, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 19)) ->x : S, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 35)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 8)) +>f : (x: S) => void +>S : S +>p : string +>x : S +>S : S var g: (x: T[]) => void ->g : (x: T[]) => void, Symbol(g, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 8)) ->p : string, Symbol(p, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 19)) ->x : T[], Symbol(x, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 33)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 8)) +>g : (x: T[]) => void +>T : T +>p : string +>x : T[] +>T : T f = g; // ok >f = g : (x: T[]) => void ->f : (x: S) => void, Symbol(f, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 3)) ->g : (x: T[]) => void, Symbol(g, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 3)) +>f : (x: S) => void +>g : (x: T[]) => void g = f; // ok >g = f : (x: S) => void ->g : (x: T[]) => void, Symbol(g, Decl(assignmentCompatWithGenericCallSignatures.ts, 3, 3)) ->f : (x: S) => void, Symbol(f, Decl(assignmentCompatWithGenericCallSignatures.ts, 2, 3)) +>g : (x: T[]) => void +>f : (x: S) => void diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.symbols b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.symbols new file mode 100644 index 0000000000000..73991a789a2ac --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures2.ts === +// some complex cases of assignment compat of generic signatures. No contextual signature instantiation + +interface A { +>A : Symbol(A, Decl(assignmentCompatWithGenericCallSignatures2.ts, 0, 0)) + + (x: T, ...y: T[][]): void +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 5)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 8)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 5)) +>y : Symbol(y, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 13)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 5)) +} + +interface B { +>B : Symbol(B, Decl(assignmentCompatWithGenericCallSignatures2.ts, 4, 1)) + + (x: S, ...y: S[]): void +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 5)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 8)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 5)) +>y : Symbol(y, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 13)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 5)) +} + +var a: A; +>a : Symbol(a, Decl(assignmentCompatWithGenericCallSignatures2.ts, 10, 3)) +>A : Symbol(A, Decl(assignmentCompatWithGenericCallSignatures2.ts, 0, 0)) + +var b: B; +>b : Symbol(b, Decl(assignmentCompatWithGenericCallSignatures2.ts, 11, 3)) +>B : Symbol(B, Decl(assignmentCompatWithGenericCallSignatures2.ts, 4, 1)) + +// Both ok +a = b; +>a : Symbol(a, Decl(assignmentCompatWithGenericCallSignatures2.ts, 10, 3)) +>b : Symbol(b, Decl(assignmentCompatWithGenericCallSignatures2.ts, 11, 3)) + +b = a; +>b : Symbol(b, Decl(assignmentCompatWithGenericCallSignatures2.ts, 11, 3)) +>a : Symbol(a, Decl(assignmentCompatWithGenericCallSignatures2.ts, 10, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.types index 196e69f9aabdf..a5f3f06b9c80f 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures2.types @@ -2,43 +2,43 @@ // some complex cases of assignment compat of generic signatures. No contextual signature instantiation interface A { ->A : A, Symbol(A, Decl(assignmentCompatWithGenericCallSignatures2.ts, 0, 0)) +>A : A (x: T, ...y: T[][]): void ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 5)) ->x : T, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 8)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 5)) ->y : T[][], Symbol(y, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures2.ts, 3, 5)) +>T : T +>x : T +>T : T +>y : T[][] +>T : T } interface B { ->B : B, Symbol(B, Decl(assignmentCompatWithGenericCallSignatures2.ts, 4, 1)) +>B : B (x: S, ...y: S[]): void ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 5)) ->x : S, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 8)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 5)) ->y : S[], Symbol(y, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 13)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures2.ts, 7, 5)) +>S : S +>x : S +>S : S +>y : S[] +>S : S } var a: A; ->a : A, Symbol(a, Decl(assignmentCompatWithGenericCallSignatures2.ts, 10, 3)) ->A : A, Symbol(A, Decl(assignmentCompatWithGenericCallSignatures2.ts, 0, 0)) +>a : A +>A : A var b: B; ->b : B, Symbol(b, Decl(assignmentCompatWithGenericCallSignatures2.ts, 11, 3)) ->B : B, Symbol(B, Decl(assignmentCompatWithGenericCallSignatures2.ts, 4, 1)) +>b : B +>B : B // Both ok a = b; >a = b : B ->a : A, Symbol(a, Decl(assignmentCompatWithGenericCallSignatures2.ts, 10, 3)) ->b : B, Symbol(b, Decl(assignmentCompatWithGenericCallSignatures2.ts, 11, 3)) +>a : A +>b : B b = a; >b = a : A ->b : B, Symbol(b, Decl(assignmentCompatWithGenericCallSignatures2.ts, 11, 3)) ->a : A, Symbol(a, Decl(assignmentCompatWithGenericCallSignatures2.ts, 10, 3)) +>b : B +>a : A diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.symbols b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.symbols new file mode 100644 index 0000000000000..42a00f83df3ad --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.symbols @@ -0,0 +1,52 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithGenericCallSignatures3.ts === +// some complex cases of assignment compat of generic signatures that stress contextual signature instantiation + +interface I { +>I : Symbol(I, Decl(assignmentCompatWithGenericCallSignatures3.ts, 0, 0)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 12)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 14)) + + (f: (x: T) => (y: S) => U): U +>U : Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 5)) +>f : Symbol(f, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 8)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 12)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 12)) +>y : Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 22)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 14)) +>U : Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 5)) +>U : Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 5)) +} + +var g: (x: T) => (y: S) => I +>g : Symbol(g, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 3)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 8)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 11)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 8)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 21)) +>y : Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 24)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 21)) +>I : Symbol(I, Decl(assignmentCompatWithGenericCallSignatures3.ts, 0, 0)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 8)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 21)) + +var h: (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U } +>h : Symbol(h, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 3)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 8)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 11)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 8)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 21)) +>y : Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 24)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 21)) +>U : Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 36)) +>f : Symbol(f, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 39)) +>x : Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 43)) +>T : Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 8)) +>y : Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 53)) +>S : Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 21)) +>U : Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 36)) +>U : Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 36)) + +g = h // ok +>g : Symbol(g, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 3)) +>h : Symbol(h, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types index e00e62ab37e34..0e2eec9c02d31 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types @@ -2,52 +2,52 @@ // some complex cases of assignment compat of generic signatures that stress contextual signature instantiation interface I { ->I : I, Symbol(I, Decl(assignmentCompatWithGenericCallSignatures3.ts, 0, 0)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 12)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 14)) +>I : I +>T : T +>S : S (f: (x: T) => (y: S) => U): U ->U : U, Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 5)) ->f : (x: T) => (y: S) => U, Symbol(f, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 12)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 12)) ->y : S, Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 22)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 2, 14)) ->U : U, Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 5)) ->U : U, Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 3, 5)) +>U : U +>f : (x: T) => (y: S) => U +>x : T +>T : T +>y : S +>S : S +>U : U +>U : U } var g: (x: T) => (y: S) => I ->g : (x: T) => (y: S) => I, Symbol(g, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 8)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 21)) ->y : S, Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 24)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 21)) ->I : I, Symbol(I, Decl(assignmentCompatWithGenericCallSignatures3.ts, 0, 0)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 8)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 21)) +>g : (x: T) => (y: S) => I +>T : T +>x : T +>T : T +>S : S +>y : S +>S : S +>I : I +>T : T +>S : S var h: (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U } ->h : (x: T) => (y: S) => (f: (x: T) => (y: S) => U) => U, Symbol(h, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 8)) ->x : T, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 11)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 8)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 21)) ->y : S, Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 24)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 21)) ->U : U, Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 36)) ->f : (x: T) => (y: S) => U, Symbol(f, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 39)) ->x : T, Symbol(x, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 43)) ->T : T, Symbol(T, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 8)) ->y : S, Symbol(y, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 53)) ->S : S, Symbol(S, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 21)) ->U : U, Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 36)) ->U : U, Symbol(U, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 36)) +>h : (x: T) => (y: S) => (f: (x: T) => (y: S) => U) => U +>T : T +>x : T +>T : T +>S : S +>y : S +>S : S +>U : U +>f : (x: T) => (y: S) => U +>x : T +>T : T +>y : S +>S : S +>U : U +>U : U g = h // ok >g = h : (x: T) => (y: S) => (f: (x: T) => (y: S) => U) => U ->g : (x: T) => (y: S) => I, Symbol(g, Decl(assignmentCompatWithGenericCallSignatures3.ts, 6, 3)) ->h : (x: T) => (y: S) => (f: (x: T) => (y: S) => U) => U, Symbol(h, Decl(assignmentCompatWithGenericCallSignatures3.ts, 7, 3)) +>g : (x: T) => (y: S) => I +>h : (x: T) => (y: S) => (f: (x: T) => (y: S) => U) => U diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers.symbols b/tests/baselines/reference/assignmentCompatWithObjectMembers.symbols new file mode 100644 index 0000000000000..181c4db641a12 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers.symbols @@ -0,0 +1,268 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers.ts === +// members N and M of types S and T have the same name, same accessibility, same optionality, and N is assignable M +// no errors expected + +module SimpleTypes { +>SimpleTypes : Symbol(SimpleTypes, Decl(assignmentCompatWithObjectMembers.ts, 0, 0)) + + class S { foo: string; } +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 3, 20)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 4, 13)) + + class T { foo: string; } +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 4, 28)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 5, 13)) + + var s: S; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 3, 20)) + + var t: T; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 4, 28)) + + interface S2 { foo: string; } +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 7, 13)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 9, 18)) + + interface T2 { foo: string; } +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 9, 33)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 10, 18)) + + var s2: S2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 7, 13)) + + var t2: T2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 9, 33)) + + var a: { foo: string; } +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 14, 12)) + + var b: { foo: string; } +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 15, 12)) + + var a2 = { foo: '' }; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 17, 14)) + + var b2 = { foo: '' }; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 18, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 18, 14)) + + s = t; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) + + t = s; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) + + s = s2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) + + s = a2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) + + s2 = t2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) + + t2 = s2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) + + s2 = t; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) + + s2 = b; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) + + s2 = a2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) + + a = b; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) + + b = a; +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) + + a = s; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) + + a = s2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) + + a = a2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) + + a2 = b2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 18, 7)) + + b2 = a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 18, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) + + a2 = b; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) + + a2 = t2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) + + a2 = t; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) +} + +module ObjectTypes { +>ObjectTypes : Symbol(ObjectTypes, Decl(assignmentCompatWithObjectMembers.ts, 42, 1)) + + class S { foo: S; } +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 44, 20)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 45, 13)) +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 44, 20)) + + class T { foo: T; } +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 45, 23)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 46, 13)) +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 45, 23)) + + var s: S; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 44, 20)) + + var t: T; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 45, 23)) + + interface S2 { foo: S2; } +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 48, 13)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 50, 18)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 48, 13)) + + interface T2 { foo: T2; } +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 50, 29)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 51, 18)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 50, 29)) + + var s2: S2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 48, 13)) + + var t2: T2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 50, 29)) + + var a: { foo: typeof a; } +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 55, 12)) +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) + + var b: { foo: typeof b; } +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 56, 12)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) + + var a2 = { foo: a2 }; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 58, 14)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) + + var b2 = { foo: b2 }; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 59, 14)) +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) + + s = t; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) + + t = s; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) + + s = s2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) + + s = a2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) + + s2 = t2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) + + t2 = s2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) + + s2 = t; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) + + s2 = b; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) + + s2 = a2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) + + a = b; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) + + b = a; +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) + + a = s; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) + + a = s2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) + + a = a2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) + + a2 = b2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) + + b2 = a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) + + a2 = b; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) + + a2 = t2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) + + a2 = t; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) + +} diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers.types b/tests/baselines/reference/assignmentCompatWithObjectMembers.types index 2c5fa6d3dbdd6..f56b0b1dc74bc 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers.types @@ -3,310 +3,310 @@ // no errors expected module SimpleTypes { ->SimpleTypes : typeof SimpleTypes, Symbol(SimpleTypes, Decl(assignmentCompatWithObjectMembers.ts, 0, 0)) +>SimpleTypes : typeof SimpleTypes class S { foo: string; } ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 3, 20)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 4, 13)) +>S : S +>foo : string class T { foo: string; } ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 4, 28)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 5, 13)) +>T : T +>foo : string var s: S; ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 3, 20)) +>s : S +>S : S var t: T; ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 4, 28)) +>t : T +>T : T interface S2 { foo: string; } ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 7, 13)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 9, 18)) +>S2 : S2 +>foo : string interface T2 { foo: string; } ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 9, 33)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 10, 18)) +>T2 : T2 +>foo : string var s2: S2; ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 7, 13)) +>s2 : S2 +>S2 : S2 var t2: T2; ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 9, 33)) +>t2 : T2 +>T2 : T2 var a: { foo: string; } ->a : { foo: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 14, 12)) +>a : { foo: string; } +>foo : string var b: { foo: string; } ->b : { foo: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 15, 12)) +>b : { foo: string; } +>foo : string var a2 = { foo: '' }; ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>a2 : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 17, 14)) +>foo : string >'' : string var b2 = { foo: '' }; ->b2 : { foo: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 18, 7)) +>b2 : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 18, 14)) +>foo : string >'' : string s = t; >s = t : T ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) +>s : S +>t : T t = s; >t = s : S ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) +>t : T +>s : S s = s2; >s = s2 : S2 ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>s : S +>s2 : S2 s = a2; >s = a2 : { foo: string; } ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>s : S +>a2 : { foo: string; } s2 = t2; >s2 = t2 : T2 ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) +>s2 : S2 +>t2 : T2 t2 = s2; >t2 = s2 : S2 ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>t2 : T2 +>s2 : S2 s2 = t; >s2 = t : T ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) +>s2 : S2 +>t : T s2 = b; >s2 = b : { foo: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) ->b : { foo: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) +>s2 : S2 +>b : { foo: string; } s2 = a2; >s2 = a2 : { foo: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>s2 : S2 +>a2 : { foo: string; } a = b; >a = b : { foo: string; } ->a : { foo: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) ->b : { foo: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) +>a : { foo: string; } +>b : { foo: string; } b = a; >b = a : { foo: string; } ->b : { foo: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) ->a : { foo: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) +>b : { foo: string; } +>a : { foo: string; } a = s; >a = s : S ->a : { foo: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 6, 7)) +>a : { foo: string; } +>s : S a = s2; >a = s2 : S2 ->a : { foo: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 11, 7)) +>a : { foo: string; } +>s2 : S2 a = a2; >a = a2 : { foo: string; } ->a : { foo: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 14, 7)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>a : { foo: string; } +>a2 : { foo: string; } a2 = b2; >a2 = b2 : { foo: string; } ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) ->b2 : { foo: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 18, 7)) +>a2 : { foo: string; } +>b2 : { foo: string; } b2 = a2; >b2 = a2 : { foo: string; } ->b2 : { foo: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 18, 7)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) +>b2 : { foo: string; } +>a2 : { foo: string; } a2 = b; >a2 = b : { foo: string; } ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) ->b : { foo: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 15, 7)) +>a2 : { foo: string; } +>b : { foo: string; } a2 = t2; >a2 = t2 : T2 ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 12, 7)) +>a2 : { foo: string; } +>t2 : T2 a2 = t; >a2 = t : T ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 17, 7)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 7, 7)) +>a2 : { foo: string; } +>t : T } module ObjectTypes { ->ObjectTypes : typeof ObjectTypes, Symbol(ObjectTypes, Decl(assignmentCompatWithObjectMembers.ts, 42, 1)) +>ObjectTypes : typeof ObjectTypes class S { foo: S; } ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 44, 20)) ->foo : S, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 45, 13)) ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 44, 20)) +>S : S +>foo : S +>S : S class T { foo: T; } ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 45, 23)) ->foo : T, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 46, 13)) ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 45, 23)) +>T : T +>foo : T +>T : T var s: S; ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers.ts, 44, 20)) +>s : S +>S : S var t: T; ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers.ts, 45, 23)) +>t : T +>T : T interface S2 { foo: S2; } ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 48, 13)) ->foo : S2, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 50, 18)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 48, 13)) +>S2 : S2 +>foo : S2 +>S2 : S2 interface T2 { foo: T2; } ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 50, 29)) ->foo : T2, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 51, 18)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 50, 29)) +>T2 : T2 +>foo : T2 +>T2 : T2 var s2: S2; ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers.ts, 48, 13)) +>s2 : S2 +>S2 : S2 var t2: T2; ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers.ts, 50, 29)) +>t2 : T2 +>T2 : T2 var a: { foo: typeof a; } ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) ->foo : { foo: any; }, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 55, 12)) ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>a : { foo: any; } +>foo : { foo: any; } +>a : { foo: any; } var b: { foo: typeof b; } ->b : { foo: any; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) ->foo : { foo: any; }, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 56, 12)) ->b : { foo: any; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) +>b : { foo: any; } +>foo : { foo: any; } +>b : { foo: any; } var a2 = { foo: a2 }; ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>a2 : any >{ foo: a2 } : { foo: any; } ->foo : any, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 58, 14)) ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>foo : any +>a2 : any var b2 = { foo: b2 }; ->b2 : any, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) +>b2 : any >{ foo: b2 } : { foo: any; } ->foo : any, Symbol(foo, Decl(assignmentCompatWithObjectMembers.ts, 59, 14)) ->b2 : any, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) +>foo : any +>b2 : any s = t; >s = t : T ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) +>s : S +>t : T t = s; >t = s : S ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) +>t : T +>s : S s = s2; >s = s2 : S2 ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>s : S +>s2 : S2 s = a2; >s = a2 : any ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>s : S +>a2 : any s2 = t2; >s2 = t2 : T2 ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) +>s2 : S2 +>t2 : T2 t2 = s2; >t2 = s2 : S2 ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>t2 : T2 +>s2 : S2 s2 = t; >s2 = t : T ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) +>s2 : S2 +>t : T s2 = b; >s2 = b : { foo: any; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) ->b : { foo: any; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) +>s2 : S2 +>b : { foo: any; } s2 = a2; >s2 = a2 : any ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>s2 : S2 +>a2 : any a = b; >a = b : { foo: any; } ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) ->b : { foo: any; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) +>a : { foo: any; } +>b : { foo: any; } b = a; >b = a : { foo: any; } ->b : { foo: any; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) +>b : { foo: any; } +>a : { foo: any; } a = s; >a = s : S ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers.ts, 47, 7)) +>a : { foo: any; } +>s : S a = s2; >a = s2 : S2 ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers.ts, 52, 7)) +>a : { foo: any; } +>s2 : S2 a = a2; >a = a2 : any ->a : { foo: any; }, Symbol(a, Decl(assignmentCompatWithObjectMembers.ts, 55, 7)) ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>a : { foo: any; } +>a2 : any a2 = b2; >a2 = b2 : any ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) ->b2 : any, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) +>a2 : any +>b2 : any b2 = a2; >b2 = a2 : any ->b2 : any, Symbol(b2, Decl(assignmentCompatWithObjectMembers.ts, 59, 7)) ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) +>b2 : any +>a2 : any a2 = b; >a2 = b : { foo: any; } ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) ->b : { foo: any; }, Symbol(b, Decl(assignmentCompatWithObjectMembers.ts, 56, 7)) +>a2 : any +>b : { foo: any; } a2 = t2; >a2 = t2 : T2 ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers.ts, 53, 7)) +>a2 : any +>t2 : T2 a2 = t; >a2 = t : T ->a2 : any, Symbol(a2, Decl(assignmentCompatWithObjectMembers.ts, 58, 7)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers.ts, 48, 7)) +>a2 : any +>t : T } diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers2.symbols b/tests/baselines/reference/assignmentCompatWithObjectMembers2.symbols new file mode 100644 index 0000000000000..ab3301c5e93e7 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers2.symbols @@ -0,0 +1,132 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers2.ts === +// members N and M of types S and T have the same name, same accessibility, same optionality, and N is assignable M +// additional optional properties do not cause errors + +class S { foo: string; } +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers2.ts, 0, 0)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 3, 9)) + +class T { foo: string; } +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers2.ts, 3, 24)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 4, 9)) + +var s: S; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers2.ts, 0, 0)) + +var t: T; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers2.ts, 3, 24)) + +interface S2 { foo: string; bar?: string } +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers2.ts, 6, 9)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 8, 14)) +>bar : Symbol(bar, Decl(assignmentCompatWithObjectMembers2.ts, 8, 27)) + +interface T2 { foo: string; baz?: string } +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers2.ts, 8, 42)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 9, 14)) +>baz : Symbol(baz, Decl(assignmentCompatWithObjectMembers2.ts, 9, 27)) + +var s2: S2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers2.ts, 6, 9)) + +var t2: T2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers2.ts, 8, 42)) + +var a: { foo: string; bar?: string } +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 13, 8)) +>bar : Symbol(bar, Decl(assignmentCompatWithObjectMembers2.ts, 13, 21)) + +var b: { foo: string; baz?: string } +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 14, 8)) +>baz : Symbol(baz, Decl(assignmentCompatWithObjectMembers2.ts, 14, 21)) + +var a2 = { foo: '' }; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 16, 10)) + +var b2 = { foo: '' }; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers2.ts, 17, 3)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 17, 10)) + +s = t; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) + +t = s; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) + +s = s2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) + +s = a2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) + +s2 = t2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) + +t2 = s2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) + +s2 = t; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) + +s2 = b; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) + +s2 = a2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) + +a = b; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) + +b = a; +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) + +a = s; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) + +a = s2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) + +a = a2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) + +a2 = b2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers2.ts, 17, 3)) + +b2 = a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers2.ts, 17, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) + +a2 = b; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) + +a2 = t2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) + +a2 = t; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers2.types b/tests/baselines/reference/assignmentCompatWithObjectMembers2.types index 435b7eff7eeb8..560644f860e46 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers2.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers2.types @@ -3,153 +3,153 @@ // additional optional properties do not cause errors class S { foo: string; } ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers2.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 3, 9)) +>S : S +>foo : string class T { foo: string; } ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers2.ts, 3, 24)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 4, 9)) +>T : T +>foo : string var s: S; ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers2.ts, 0, 0)) +>s : S +>S : S var t: T; ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers2.ts, 3, 24)) +>t : T +>T : T interface S2 { foo: string; bar?: string } ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers2.ts, 6, 9)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 8, 14)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithObjectMembers2.ts, 8, 27)) +>S2 : S2 +>foo : string +>bar : string interface T2 { foo: string; baz?: string } ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers2.ts, 8, 42)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 9, 14)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithObjectMembers2.ts, 9, 27)) +>T2 : T2 +>foo : string +>baz : string var s2: S2; ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers2.ts, 6, 9)) +>s2 : S2 +>S2 : S2 var t2: T2; ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers2.ts, 8, 42)) +>t2 : T2 +>T2 : T2 var a: { foo: string; bar?: string } ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 13, 8)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithObjectMembers2.ts, 13, 21)) +>a : { foo: string; bar?: string; } +>foo : string +>bar : string var b: { foo: string; baz?: string } ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 14, 8)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithObjectMembers2.ts, 14, 21)) +>b : { foo: string; baz?: string; } +>foo : string +>baz : string var a2 = { foo: '' }; ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>a2 : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 16, 10)) +>foo : string >'' : string var b2 = { foo: '' }; ->b2 : { foo: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembers2.ts, 17, 3)) +>b2 : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers2.ts, 17, 10)) +>foo : string >'' : string s = t; >s = t : T ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) +>s : S +>t : T t = s; >t = s : S ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) +>t : T +>s : S s = s2; >s = s2 : S2 ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>s : S +>s2 : S2 s = a2; >s = a2 : { foo: string; } ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>s : S +>a2 : { foo: string; } s2 = t2; >s2 = t2 : T2 ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) +>s2 : S2 +>t2 : T2 t2 = s2; >t2 = s2 : S2 ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>t2 : T2 +>s2 : S2 s2 = t; >s2 = t : T ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) +>s2 : S2 +>t : T s2 = b; >s2 = b : { foo: string; baz?: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) +>s2 : S2 +>b : { foo: string; baz?: string; } s2 = a2; >s2 = a2 : { foo: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>s2 : S2 +>a2 : { foo: string; } a = b; >a = b : { foo: string; baz?: string; } ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) +>a : { foo: string; bar?: string; } +>b : { foo: string; baz?: string; } b = a; >b = a : { foo: string; bar?: string; } ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) +>b : { foo: string; baz?: string; } +>a : { foo: string; bar?: string; } a = s; >a = s : S ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers2.ts, 5, 3)) +>a : { foo: string; bar?: string; } +>s : S a = s2; >a = s2 : S2 ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers2.ts, 10, 3)) +>a : { foo: string; bar?: string; } +>s2 : S2 a = a2; >a = a2 : { foo: string; } ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers2.ts, 13, 3)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>a : { foo: string; bar?: string; } +>a2 : { foo: string; } a2 = b2; >a2 = b2 : { foo: string; } ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) ->b2 : { foo: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembers2.ts, 17, 3)) +>a2 : { foo: string; } +>b2 : { foo: string; } b2 = a2; >b2 = a2 : { foo: string; } ->b2 : { foo: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembers2.ts, 17, 3)) ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) +>b2 : { foo: string; } +>a2 : { foo: string; } a2 = b; >a2 = b : { foo: string; baz?: string; } ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers2.ts, 14, 3)) +>a2 : { foo: string; } +>b : { foo: string; baz?: string; } a2 = t2; >a2 = t2 : T2 ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers2.ts, 11, 3)) +>a2 : { foo: string; } +>t2 : T2 a2 = t; >a2 = t : T ->a2 : { foo: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembers2.ts, 16, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers2.ts, 6, 3)) +>a2 : { foo: string; } +>t : T diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers3.symbols b/tests/baselines/reference/assignmentCompatWithObjectMembers3.symbols new file mode 100644 index 0000000000000..861d38530bbbf --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers3.symbols @@ -0,0 +1,136 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembers3.ts === +// members N and M of types S and T have the same name, same accessibility, same optionality, and N is assignable M +// additional optional properties do not cause errors + +class S implements S2 { foo: string; } +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers3.ts, 0, 0)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 3, 23)) + +class T implements T2 { foo: string; } +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers3.ts, 3, 38)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 4, 23)) + +var s: S; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) +>S : Symbol(S, Decl(assignmentCompatWithObjectMembers3.ts, 0, 0)) + +var t: T; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) +>T : Symbol(T, Decl(assignmentCompatWithObjectMembers3.ts, 3, 38)) + +interface S2 { foo: string; bar?: string } +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 8, 14)) +>bar : Symbol(bar, Decl(assignmentCompatWithObjectMembers3.ts, 8, 27)) + +interface T2 { foo: string; baz?: string } +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 9, 14)) +>baz : Symbol(baz, Decl(assignmentCompatWithObjectMembers3.ts, 9, 27)) + +var s2: S2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) + +var t2: T2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) + +var a: { foo: string; bar?: string } +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 13, 8)) +>bar : Symbol(bar, Decl(assignmentCompatWithObjectMembers3.ts, 13, 21)) + +var b: { foo: string; baz?: string } +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 14, 8)) +>baz : Symbol(baz, Decl(assignmentCompatWithObjectMembers3.ts, 14, 21)) + +var a2: S2 = { foo: '' }; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 16, 14)) + +var b2: T2 = { foo: '' }; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers3.ts, 17, 3)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) +>foo : Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 17, 14)) + +s = t; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) + +t = s; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) + +s = s2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) + +s = a2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) + +s2 = t2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) + +t2 = s2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) + +s2 = t; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) + +s2 = b; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) + +s2 = a2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) + +a = b; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) + +b = a; +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) + +a = s; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) + +a = s2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) + +a = a2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) + +a2 = b2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers3.ts, 17, 3)) + +b2 = a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembers3.ts, 17, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) + +a2 = b; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) + +a2 = t2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) + +a2 = t; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembers3.types b/tests/baselines/reference/assignmentCompatWithObjectMembers3.types index e608bd0ddd414..3046c2f609d5b 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembers3.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembers3.types @@ -3,157 +3,157 @@ // additional optional properties do not cause errors class S implements S2 { foo: string; } ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers3.ts, 0, 0)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 3, 23)) +>S : S +>S2 : S2 +>foo : string class T implements T2 { foo: string; } ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers3.ts, 3, 38)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 4, 23)) +>T : T +>T2 : T2 +>foo : string var s: S; ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembers3.ts, 0, 0)) +>s : S +>S : S var t: T; ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembers3.ts, 3, 38)) +>t : T +>T : T interface S2 { foo: string; bar?: string } ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 8, 14)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithObjectMembers3.ts, 8, 27)) +>S2 : S2 +>foo : string +>bar : string interface T2 { foo: string; baz?: string } ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 9, 14)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithObjectMembers3.ts, 9, 27)) +>T2 : T2 +>foo : string +>baz : string var s2: S2; ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) +>s2 : S2 +>S2 : S2 var t2: T2; ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) +>t2 : T2 +>T2 : T2 var a: { foo: string; bar?: string } ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 13, 8)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithObjectMembers3.ts, 13, 21)) +>a : { foo: string; bar?: string; } +>foo : string +>bar : string var b: { foo: string; baz?: string } ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 14, 8)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithObjectMembers3.ts, 14, 21)) +>b : { foo: string; baz?: string; } +>foo : string +>baz : string var a2: S2 = { foo: '' }; ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembers3.ts, 6, 9)) +>a2 : S2 +>S2 : S2 >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 16, 14)) +>foo : string >'' : string var b2: T2 = { foo: '' }; ->b2 : T2, Symbol(b2, Decl(assignmentCompatWithObjectMembers3.ts, 17, 3)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembers3.ts, 8, 42)) +>b2 : T2 +>T2 : T2 >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(assignmentCompatWithObjectMembers3.ts, 17, 14)) +>foo : string >'' : string s = t; >s = t : T ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) +>s : S +>t : T t = s; >t = s : S ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) +>t : T +>s : S s = s2; >s = s2 : S2 ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>s : S +>s2 : S2 s = a2; >s = a2 : S2 ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>s : S +>a2 : S2 s2 = t2; >s2 = t2 : T2 ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) +>s2 : S2 +>t2 : T2 t2 = s2; >t2 = s2 : S2 ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>t2 : T2 +>s2 : S2 s2 = t; >s2 = t : T ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) +>s2 : S2 +>t : T s2 = b; >s2 = b : { foo: string; baz?: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) +>s2 : S2 +>b : { foo: string; baz?: string; } s2 = a2; >s2 = a2 : S2 ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>s2 : S2 +>a2 : S2 a = b; >a = b : { foo: string; baz?: string; } ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) +>a : { foo: string; bar?: string; } +>b : { foo: string; baz?: string; } b = a; >b = a : { foo: string; bar?: string; } ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) +>b : { foo: string; baz?: string; } +>a : { foo: string; bar?: string; } a = s; >a = s : S ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembers3.ts, 5, 3)) +>a : { foo: string; bar?: string; } +>s : S a = s2; >a = s2 : S2 ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembers3.ts, 10, 3)) +>a : { foo: string; bar?: string; } +>s2 : S2 a = a2; >a = a2 : S2 ->a : { foo: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembers3.ts, 13, 3)) ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>a : { foo: string; bar?: string; } +>a2 : S2 a2 = b2; >a2 = b2 : T2 ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) ->b2 : T2, Symbol(b2, Decl(assignmentCompatWithObjectMembers3.ts, 17, 3)) +>a2 : S2 +>b2 : T2 b2 = a2; >b2 = a2 : S2 ->b2 : T2, Symbol(b2, Decl(assignmentCompatWithObjectMembers3.ts, 17, 3)) ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) +>b2 : T2 +>a2 : S2 a2 = b; >a2 = b : { foo: string; baz?: string; } ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) ->b : { foo: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembers3.ts, 14, 3)) +>a2 : S2 +>b : { foo: string; baz?: string; } a2 = t2; >a2 = t2 : T2 ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembers3.ts, 11, 3)) +>a2 : S2 +>t2 : T2 a2 = t; >a2 = t : T ->a2 : S2, Symbol(a2, Decl(assignmentCompatWithObjectMembers3.ts, 16, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembers3.ts, 6, 3)) +>a2 : S2 +>t : T diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.symbols b/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.symbols new file mode 100644 index 0000000000000..e01bcee21c050 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.symbols @@ -0,0 +1,124 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithObjectMembersNumericNames.ts === +// members N and M of types S and T have the same name, same accessibility, same optionality, and N is assignable M +// numeric named properties work correctly, no errors expected + +class S { 1: string; } +>S : Symbol(S, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 0, 0)) + +class T { 1.: string; } +>T : Symbol(T, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 3, 22)) + +var s: S; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) +>S : Symbol(S, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 0, 0)) + +var t: T; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) +>T : Symbol(T, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 3, 22)) + +interface S2 { 1: string; bar?: string } +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 9)) +>bar : Symbol(bar, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 8, 25)) + +interface T2 { 1.0: string; baz?: string } +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 8, 40)) +>baz : Symbol(baz, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 9, 27)) + +var s2: S2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 9)) + +var t2: T2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) +>T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 8, 40)) + +var a: { 1.: string; bar?: string } +>a : Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) +>bar : Symbol(bar, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 20)) + +var b: { 1.0: string; baz?: string } +>b : Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) +>baz : Symbol(baz, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 21)) + +var a2 = { 1.0: '' }; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) + +var b2 = { 1: '' }; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 17, 3)) + +s = t; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) + +t = s; +>t : Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) + +s = s2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) + +s = a2; +>s : Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) + +s2 = t2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) + +t2 = s2; +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) + +s2 = t; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) + +s2 = b; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) + +s2 = a2; +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) + +a = b; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) + +b = a; +>b : Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) +>a : Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) + +a = s; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) +>s : Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) + +a = s2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) +>s2 : Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) + +a = a2; +>a : Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) + +a2 = b2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 17, 3)) + +b2 = a2; +>b2 : Symbol(b2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 17, 3)) +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) + +a2 = b; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>b : Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) + +a2 = t2; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>t2 : Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) + +a2 = t; +>a2 : Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>t : Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) + diff --git a/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.types b/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.types index 36419b60b3778..440ef006e0a67 100644 --- a/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.types +++ b/tests/baselines/reference/assignmentCompatWithObjectMembersNumericNames.types @@ -3,145 +3,145 @@ // numeric named properties work correctly, no errors expected class S { 1: string; } ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 0, 0)) +>S : S class T { 1.: string; } ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 3, 22)) +>T : T var s: S; ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) ->S : S, Symbol(S, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 0, 0)) +>s : S +>S : S var t: T; ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) ->T : T, Symbol(T, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 3, 22)) +>t : T +>T : T interface S2 { 1: string; bar?: string } ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 9)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 8, 25)) +>S2 : S2 +>bar : string interface T2 { 1.0: string; baz?: string } ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 8, 40)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 9, 27)) +>T2 : T2 +>baz : string var s2: S2; ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) ->S2 : S2, Symbol(S2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 9)) +>s2 : S2 +>S2 : S2 var t2: T2; ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) ->T2 : T2, Symbol(T2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 8, 40)) +>t2 : T2 +>T2 : T2 var a: { 1.: string; bar?: string } ->a : { 1.: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) ->bar : string, Symbol(bar, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 20)) +>a : { 1.: string; bar?: string; } +>bar : string var b: { 1.0: string; baz?: string } ->b : { 1.0: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) ->baz : string, Symbol(baz, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 21)) +>b : { 1.0: string; baz?: string; } +>baz : string var a2 = { 1.0: '' }; ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>a2 : { 1.0: string; } >{ 1.0: '' } : { 1.0: string; } >'' : string var b2 = { 1: '' }; ->b2 : { 1: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 17, 3)) +>b2 : { 1: string; } >{ 1: '' } : { 1: string; } >'' : string s = t; >s = t : T ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) +>s : S +>t : T t = s; >t = s : S ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) +>t : T +>s : S s = s2; >s = s2 : S2 ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>s : S +>s2 : S2 s = a2; >s = a2 : { 1.0: string; } ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>s : S +>a2 : { 1.0: string; } s2 = t2; >s2 = t2 : T2 ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) +>s2 : S2 +>t2 : T2 t2 = s2; >t2 = s2 : S2 ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>t2 : T2 +>s2 : S2 s2 = t; >s2 = t : T ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) +>s2 : S2 +>t : T s2 = b; >s2 = b : { 1.0: string; baz?: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) ->b : { 1.0: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) +>s2 : S2 +>b : { 1.0: string; baz?: string; } s2 = a2; >s2 = a2 : { 1.0: string; } ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>s2 : S2 +>a2 : { 1.0: string; } a = b; >a = b : { 1.0: string; baz?: string; } ->a : { 1.: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) ->b : { 1.0: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) +>a : { 1.: string; bar?: string; } +>b : { 1.0: string; baz?: string; } b = a; >b = a : { 1.: string; bar?: string; } ->b : { 1.0: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) ->a : { 1.: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) +>b : { 1.0: string; baz?: string; } +>a : { 1.: string; bar?: string; } a = s; >a = s : S ->a : { 1.: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) ->s : S, Symbol(s, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 5, 3)) +>a : { 1.: string; bar?: string; } +>s : S a = s2; >a = s2 : S2 ->a : { 1.: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) ->s2 : S2, Symbol(s2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 10, 3)) +>a : { 1.: string; bar?: string; } +>s2 : S2 a = a2; >a = a2 : { 1.0: string; } ->a : { 1.: string; bar?: string; }, Symbol(a, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 13, 3)) ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>a : { 1.: string; bar?: string; } +>a2 : { 1.0: string; } a2 = b2; >a2 = b2 : { 1: string; } ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) ->b2 : { 1: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 17, 3)) +>a2 : { 1.0: string; } +>b2 : { 1: string; } b2 = a2; >b2 = a2 : { 1.0: string; } ->b2 : { 1: string; }, Symbol(b2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 17, 3)) ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) +>b2 : { 1: string; } +>a2 : { 1.0: string; } a2 = b; >a2 = b : { 1.0: string; baz?: string; } ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) ->b : { 1.0: string; baz?: string; }, Symbol(b, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 14, 3)) +>a2 : { 1.0: string; } +>b : { 1.0: string; baz?: string; } a2 = t2; >a2 = t2 : T2 ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) ->t2 : T2, Symbol(t2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 11, 3)) +>a2 : { 1.0: string; } +>t2 : T2 a2 = t; >a2 = t : T ->a2 : { 1.0: string; }, Symbol(a2, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 16, 3)) ->t : T, Symbol(t, Decl(assignmentCompatWithObjectMembersNumericNames.ts, 6, 3)) +>a2 : { 1.0: string; } +>t : T diff --git a/tests/baselines/reference/assignmentCompatWithWithGenericConstructSignatures.symbols b/tests/baselines/reference/assignmentCompatWithWithGenericConstructSignatures.symbols new file mode 100644 index 0000000000000..e6db879f44176 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatWithWithGenericConstructSignatures.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithWithGenericConstructSignatures.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatability1.symbols b/tests/baselines/reference/assignmentCompatability1.symbols new file mode 100644 index 0000000000000..07d3cf4c0298d --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability1.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/assignmentCompatability1.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability1.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability1.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability1.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability1.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability1.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability1.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability1.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability1.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability1.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability1.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability1.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability1.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability1.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability1.ts, 3, 1)) + + export var aa = {};; +>aa : Symbol(aa, Decl(assignmentCompatability1.ts, 5, 14)) + + export var __val__aa = aa; +>__val__aa : Symbol(__val__aa, Decl(assignmentCompatability1.ts, 6, 14)) +>aa : Symbol(aa, Decl(assignmentCompatability1.ts, 5, 14)) +} +__test2__.__val__aa = __test1__.__val__obj4 +>__test2__.__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability1.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability1.ts, 3, 1)) +>__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability1.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability1.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability1.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability1.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability1.types b/tests/baselines/reference/assignmentCompatability1.types index 77534e4f011a3..66174a4036e4b 100644 --- a/tests/baselines/reference/assignmentCompatability1.types +++ b/tests/baselines/reference/assignmentCompatability1.types @@ -1,42 +1,42 @@ === tests/cases/compiler/assignmentCompatability1.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability1.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability1.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability1.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability1.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability1.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability1.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability1.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability1.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability1.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability1.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability1.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability1.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability1.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability1.ts, 3, 1)) +>__test2__ : typeof __test2__ export var aa = {};; ->aa : {}, Symbol(aa, Decl(assignmentCompatability1.ts, 5, 14)) +>aa : {} >{} : {} export var __val__aa = aa; ->__val__aa : {}, Symbol(__val__aa, Decl(assignmentCompatability1.ts, 6, 14)) ->aa : {}, Symbol(aa, Decl(assignmentCompatability1.ts, 5, 14)) +>__val__aa : {} +>aa : {} } __test2__.__val__aa = __test1__.__val__obj4 >__test2__.__val__aa = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__aa : {}, Symbol(__test2__.__val__aa, Decl(assignmentCompatability1.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability1.ts, 3, 1)) ->__val__aa : {}, Symbol(__test2__.__val__aa, Decl(assignmentCompatability1.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability1.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability1.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability1.ts, 2, 14)) +>__test2__.__val__aa : {} +>__test2__ : typeof __test2__ +>__val__aa : {} +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability2.symbols b/tests/baselines/reference/assignmentCompatability2.symbols new file mode 100644 index 0000000000000..1ed6dd3c6396a --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability2.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/assignmentCompatability2.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability2.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability2.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability2.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability2.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability2.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability2.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability2.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability2.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability2.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability2.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability2.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability2.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability2.ts, 3, 1)) + + export var aa:{};; +>aa : Symbol(aa, Decl(assignmentCompatability2.ts, 5, 14)) + + export var __val__aa = aa; +>__val__aa : Symbol(__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) +>aa : Symbol(aa, Decl(assignmentCompatability2.ts, 5, 14)) +} +__test2__.__val__aa = __test1__.__val__obj4 +>__test2__.__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability2.ts, 3, 1)) +>__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability2.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability2.types b/tests/baselines/reference/assignmentCompatability2.types index 1e69d5da5249f..f46a81cf51f96 100644 --- a/tests/baselines/reference/assignmentCompatability2.types +++ b/tests/baselines/reference/assignmentCompatability2.types @@ -1,41 +1,41 @@ === tests/cases/compiler/assignmentCompatability2.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability2.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability2.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability2.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability2.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability2.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability2.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability2.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability2.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability2.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability2.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability2.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability2.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability2.ts, 3, 1)) +>__test2__ : typeof __test2__ export var aa:{};; ->aa : {}, Symbol(aa, Decl(assignmentCompatability2.ts, 5, 14)) +>aa : {} export var __val__aa = aa; ->__val__aa : {}, Symbol(__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) ->aa : {}, Symbol(aa, Decl(assignmentCompatability2.ts, 5, 14)) +>__val__aa : {} +>aa : {} } __test2__.__val__aa = __test1__.__val__obj4 >__test2__.__val__aa = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__aa : {}, Symbol(__test2__.__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability2.ts, 3, 1)) ->__val__aa : {}, Symbol(__test2__.__val__aa, Decl(assignmentCompatability2.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability2.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability2.ts, 2, 14)) +>__test2__.__val__aa : {} +>__test2__ : typeof __test2__ +>__val__aa : {} +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability3.symbols b/tests/baselines/reference/assignmentCompatability3.symbols new file mode 100644 index 0000000000000..c31d69e2f1287 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability3.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/assignmentCompatability3.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability3.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability3.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability3.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability3.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability3.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability3.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability3.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability3.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability3.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability3.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability3.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability3.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability3.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability3.ts, 3, 1)) + + export var obj = {one: 1}; +>obj : Symbol(obj, Decl(assignmentCompatability3.ts, 5, 14)) +>one : Symbol(one, Decl(assignmentCompatability3.ts, 5, 22)) + + export var __val__obj = obj; +>__val__obj : Symbol(__val__obj, Decl(assignmentCompatability3.ts, 6, 14)) +>obj : Symbol(obj, Decl(assignmentCompatability3.ts, 5, 14)) +} +__test2__.__val__obj = __test1__.__val__obj4 +>__test2__.__val__obj : Symbol(__test2__.__val__obj, Decl(assignmentCompatability3.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability3.ts, 3, 1)) +>__val__obj : Symbol(__test2__.__val__obj, Decl(assignmentCompatability3.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability3.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability3.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability3.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability3.types b/tests/baselines/reference/assignmentCompatability3.types index 50dea2b4411ed..67e553235edcb 100644 --- a/tests/baselines/reference/assignmentCompatability3.types +++ b/tests/baselines/reference/assignmentCompatability3.types @@ -1,44 +1,44 @@ === tests/cases/compiler/assignmentCompatability3.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability3.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability3.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability3.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability3.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability3.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability3.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability3.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability3.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability3.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability3.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability3.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability3.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability3.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability3.ts, 3, 1)) +>__test2__ : typeof __test2__ export var obj = {one: 1}; ->obj : { one: number; }, Symbol(obj, Decl(assignmentCompatability3.ts, 5, 14)) +>obj : { one: number; } >{one: 1} : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability3.ts, 5, 22)) +>one : number >1 : number export var __val__obj = obj; ->__val__obj : { one: number; }, Symbol(__val__obj, Decl(assignmentCompatability3.ts, 6, 14)) ->obj : { one: number; }, Symbol(obj, Decl(assignmentCompatability3.ts, 5, 14)) +>__val__obj : { one: number; } +>obj : { one: number; } } __test2__.__val__obj = __test1__.__val__obj4 >__test2__.__val__obj = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__obj : { one: number; }, Symbol(__test2__.__val__obj, Decl(assignmentCompatability3.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability3.ts, 3, 1)) ->__val__obj : { one: number; }, Symbol(__test2__.__val__obj, Decl(assignmentCompatability3.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability3.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability3.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability3.ts, 2, 14)) +>__test2__.__val__obj : { one: number; } +>__test2__ : typeof __test2__ +>__val__obj : { one: number; } +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability4.symbols b/tests/baselines/reference/assignmentCompatability4.symbols new file mode 100644 index 0000000000000..fe5e4a32deeb4 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability4.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/assignmentCompatability4.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability4.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability4.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability4.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability4.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability4.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability4.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability4.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability4.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability4.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability4.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability4.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability4.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability4.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability4.ts, 3, 1)) + + export var aa:{one:number;};; +>aa : Symbol(aa, Decl(assignmentCompatability4.ts, 5, 14)) +>one : Symbol(one, Decl(assignmentCompatability4.ts, 5, 19)) + + export var __val__aa = aa; +>__val__aa : Symbol(__val__aa, Decl(assignmentCompatability4.ts, 6, 14)) +>aa : Symbol(aa, Decl(assignmentCompatability4.ts, 5, 14)) +} +__test2__.__val__aa = __test1__.__val__obj4 +>__test2__.__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability4.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability4.ts, 3, 1)) +>__val__aa : Symbol(__test2__.__val__aa, Decl(assignmentCompatability4.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability4.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability4.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability4.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability4.types b/tests/baselines/reference/assignmentCompatability4.types index e81d6d750116c..0cafbaa4dd724 100644 --- a/tests/baselines/reference/assignmentCompatability4.types +++ b/tests/baselines/reference/assignmentCompatability4.types @@ -1,42 +1,42 @@ === tests/cases/compiler/assignmentCompatability4.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability4.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability4.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability4.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability4.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability4.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability4.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability4.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability4.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability4.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability4.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability4.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability4.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability4.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability4.ts, 3, 1)) +>__test2__ : typeof __test2__ export var aa:{one:number;};; ->aa : { one: number; }, Symbol(aa, Decl(assignmentCompatability4.ts, 5, 14)) ->one : number, Symbol(one, Decl(assignmentCompatability4.ts, 5, 19)) +>aa : { one: number; } +>one : number export var __val__aa = aa; ->__val__aa : { one: number; }, Symbol(__val__aa, Decl(assignmentCompatability4.ts, 6, 14)) ->aa : { one: number; }, Symbol(aa, Decl(assignmentCompatability4.ts, 5, 14)) +>__val__aa : { one: number; } +>aa : { one: number; } } __test2__.__val__aa = __test1__.__val__obj4 >__test2__.__val__aa = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__aa : { one: number; }, Symbol(__test2__.__val__aa, Decl(assignmentCompatability4.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability4.ts, 3, 1)) ->__val__aa : { one: number; }, Symbol(__test2__.__val__aa, Decl(assignmentCompatability4.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability4.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability4.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability4.ts, 2, 14)) +>__test2__.__val__aa : { one: number; } +>__test2__ : typeof __test2__ +>__val__aa : { one: number; } +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability5.symbols b/tests/baselines/reference/assignmentCompatability5.symbols new file mode 100644 index 0000000000000..15885d078923e --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability5.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/assignmentCompatability5.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability5.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability5.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability5.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability5.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability5.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability5.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability5.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability5.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability5.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability5.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability5.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability5.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability5.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability5.ts, 3, 1)) + + export interface interfaceOne { one: T; }; var obj1: interfaceOne = { one: 1 };; +>interfaceOne : Symbol(interfaceOne, Decl(assignmentCompatability5.ts, 4, 18)) +>T : Symbol(T, Decl(assignmentCompatability5.ts, 5, 52)) +>one : Symbol(one, Decl(assignmentCompatability5.ts, 5, 56)) +>T : Symbol(T, Decl(assignmentCompatability5.ts, 5, 52)) +>obj1 : Symbol(obj1, Decl(assignmentCompatability5.ts, 5, 86)) +>interfaceOne : Symbol(interfaceOne, Decl(assignmentCompatability5.ts, 4, 18)) +>one : Symbol(one, Decl(assignmentCompatability5.ts, 5, 117)) + + export var __val__obj1 = obj1; +>__val__obj1 : Symbol(__val__obj1, Decl(assignmentCompatability5.ts, 6, 14)) +>obj1 : Symbol(obj1, Decl(assignmentCompatability5.ts, 5, 86)) +} +__test2__.__val__obj1 = __test1__.__val__obj4 +>__test2__.__val__obj1 : Symbol(__test2__.__val__obj1, Decl(assignmentCompatability5.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability5.ts, 3, 1)) +>__val__obj1 : Symbol(__test2__.__val__obj1, Decl(assignmentCompatability5.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability5.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability5.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability5.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability5.types b/tests/baselines/reference/assignmentCompatability5.types index d94f0d51dc6e4..8f8dbb0f64947 100644 --- a/tests/baselines/reference/assignmentCompatability5.types +++ b/tests/baselines/reference/assignmentCompatability5.types @@ -1,49 +1,49 @@ === tests/cases/compiler/assignmentCompatability5.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability5.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability5.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability5.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability5.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability5.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability5.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability5.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability5.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability5.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability5.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability5.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability5.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability5.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability5.ts, 3, 1)) +>__test2__ : typeof __test2__ export interface interfaceOne { one: T; }; var obj1: interfaceOne = { one: 1 };; ->interfaceOne : interfaceOne, Symbol(interfaceOne, Decl(assignmentCompatability5.ts, 4, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability5.ts, 5, 52)) ->one : T, Symbol(one, Decl(assignmentCompatability5.ts, 5, 56)) ->T : T, Symbol(T, Decl(assignmentCompatability5.ts, 5, 52)) ->obj1 : interfaceOne, Symbol(obj1, Decl(assignmentCompatability5.ts, 5, 86)) ->interfaceOne : interfaceOne, Symbol(interfaceOne, Decl(assignmentCompatability5.ts, 4, 18)) +>interfaceOne : interfaceOne +>T : T +>one : T +>T : T +>obj1 : interfaceOne +>interfaceOne : interfaceOne >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability5.ts, 5, 117)) +>one : number >1 : number export var __val__obj1 = obj1; ->__val__obj1 : interfaceOne, Symbol(__val__obj1, Decl(assignmentCompatability5.ts, 6, 14)) ->obj1 : interfaceOne, Symbol(obj1, Decl(assignmentCompatability5.ts, 5, 86)) +>__val__obj1 : interfaceOne +>obj1 : interfaceOne } __test2__.__val__obj1 = __test1__.__val__obj4 >__test2__.__val__obj1 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__obj1 : __test2__.interfaceOne, Symbol(__test2__.__val__obj1, Decl(assignmentCompatability5.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability5.ts, 3, 1)) ->__val__obj1 : __test2__.interfaceOne, Symbol(__test2__.__val__obj1, Decl(assignmentCompatability5.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability5.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability5.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability5.ts, 2, 14)) +>__test2__.__val__obj1 : __test2__.interfaceOne +>__test2__ : typeof __test2__ +>__val__obj1 : __test2__.interfaceOne +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability6.symbols b/tests/baselines/reference/assignmentCompatability6.symbols new file mode 100644 index 0000000000000..4ddacd5cd8c82 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability6.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/assignmentCompatability6.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability6.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability6.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability6.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability6.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability6.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability6.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability6.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability6.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability6.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability6.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability6.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability6.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability6.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability6.ts, 3, 1)) + + export interface interfaceWithOptional { one?: T; }; var obj3: interfaceWithOptional = { };; +>interfaceWithOptional : Symbol(interfaceWithOptional, Decl(assignmentCompatability6.ts, 4, 18)) +>T : Symbol(T, Decl(assignmentCompatability6.ts, 5, 52)) +>one : Symbol(one, Decl(assignmentCompatability6.ts, 5, 56)) +>T : Symbol(T, Decl(assignmentCompatability6.ts, 5, 52)) +>obj3 : Symbol(obj3, Decl(assignmentCompatability6.ts, 5, 86)) +>interfaceWithOptional : Symbol(interfaceWithOptional, Decl(assignmentCompatability6.ts, 4, 18)) + + export var __val__obj3 = obj3; +>__val__obj3 : Symbol(__val__obj3, Decl(assignmentCompatability6.ts, 6, 14)) +>obj3 : Symbol(obj3, Decl(assignmentCompatability6.ts, 5, 86)) +} +__test2__.__val__obj3 = __test1__.__val__obj4 +>__test2__.__val__obj3 : Symbol(__test2__.__val__obj3, Decl(assignmentCompatability6.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability6.ts, 3, 1)) +>__val__obj3 : Symbol(__test2__.__val__obj3, Decl(assignmentCompatability6.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability6.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability6.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability6.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability6.types b/tests/baselines/reference/assignmentCompatability6.types index 26d0d8014529d..1191ff8bc265c 100644 --- a/tests/baselines/reference/assignmentCompatability6.types +++ b/tests/baselines/reference/assignmentCompatability6.types @@ -1,47 +1,47 @@ === tests/cases/compiler/assignmentCompatability6.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability6.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability6.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability6.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability6.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability6.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability6.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability6.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability6.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability6.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability6.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability6.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability6.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability6.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability6.ts, 3, 1)) +>__test2__ : typeof __test2__ export interface interfaceWithOptional { one?: T; }; var obj3: interfaceWithOptional = { };; ->interfaceWithOptional : interfaceWithOptional, Symbol(interfaceWithOptional, Decl(assignmentCompatability6.ts, 4, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability6.ts, 5, 52)) ->one : T, Symbol(one, Decl(assignmentCompatability6.ts, 5, 56)) ->T : T, Symbol(T, Decl(assignmentCompatability6.ts, 5, 52)) ->obj3 : interfaceWithOptional, Symbol(obj3, Decl(assignmentCompatability6.ts, 5, 86)) ->interfaceWithOptional : interfaceWithOptional, Symbol(interfaceWithOptional, Decl(assignmentCompatability6.ts, 4, 18)) +>interfaceWithOptional : interfaceWithOptional +>T : T +>one : T +>T : T +>obj3 : interfaceWithOptional +>interfaceWithOptional : interfaceWithOptional >{ } : {} export var __val__obj3 = obj3; ->__val__obj3 : interfaceWithOptional, Symbol(__val__obj3, Decl(assignmentCompatability6.ts, 6, 14)) ->obj3 : interfaceWithOptional, Symbol(obj3, Decl(assignmentCompatability6.ts, 5, 86)) +>__val__obj3 : interfaceWithOptional +>obj3 : interfaceWithOptional } __test2__.__val__obj3 = __test1__.__val__obj4 >__test2__.__val__obj3 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__obj3 : __test2__.interfaceWithOptional, Symbol(__test2__.__val__obj3, Decl(assignmentCompatability6.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability6.ts, 3, 1)) ->__val__obj3 : __test2__.interfaceWithOptional, Symbol(__test2__.__val__obj3, Decl(assignmentCompatability6.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability6.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability6.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability6.ts, 2, 14)) +>__test2__.__val__obj3 : __test2__.interfaceWithOptional +>__test2__ : typeof __test2__ +>__val__obj3 : __test2__.interfaceWithOptional +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability7.symbols b/tests/baselines/reference/assignmentCompatability7.symbols new file mode 100644 index 0000000000000..32a5be9f87f9c --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability7.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/assignmentCompatability7.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability7.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability7.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability7.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability7.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability7.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability7.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability7.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability7.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability7.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability7.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability7.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability7.ts, 3, 1)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 4, 18)) +>T : Symbol(T, Decl(assignmentCompatability7.ts, 5, 52)) +>U : Symbol(U, Decl(assignmentCompatability7.ts, 5, 54)) +>one : Symbol(one, Decl(assignmentCompatability7.ts, 5, 58)) +>T : Symbol(T, Decl(assignmentCompatability7.ts, 5, 52)) +>two : Symbol(two, Decl(assignmentCompatability7.ts, 5, 66)) +>U : Symbol(U, Decl(assignmentCompatability7.ts, 5, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability7.ts, 5, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 4, 18)) +>one : Symbol(one, Decl(assignmentCompatability7.ts, 5, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability7.ts, 6, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability7.ts, 5, 83)) +} +__test2__.__val__obj4 = __test1__.__val__obj4 +>__test2__.__val__obj4 : Symbol(__test2__.__val__obj4, Decl(assignmentCompatability7.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability7.ts, 3, 1)) +>__val__obj4 : Symbol(__test2__.__val__obj4, Decl(assignmentCompatability7.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability7.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability7.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability7.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability7.types b/tests/baselines/reference/assignmentCompatability7.types index 1850305efb6cb..77b67514473e7 100644 --- a/tests/baselines/reference/assignmentCompatability7.types +++ b/tests/baselines/reference/assignmentCompatability7.types @@ -1,52 +1,52 @@ === tests/cases/compiler/assignmentCompatability7.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability7.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability7.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability7.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability7.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability7.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability7.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability7.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability7.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability7.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability7.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability7.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability7.ts, 3, 1)) +>__test2__ : typeof __test2__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 4, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability7.ts, 5, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability7.ts, 5, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability7.ts, 5, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability7.ts, 5, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability7.ts, 5, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability7.ts, 5, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability7.ts, 5, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability7.ts, 4, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability7.ts, 5, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability7.ts, 6, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability7.ts, 5, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } __test2__.__val__obj4 = __test1__.__val__obj4 >__test2__.__val__obj4 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__obj4 : __test2__.interfaceWithPublicAndOptional, Symbol(__test2__.__val__obj4, Decl(assignmentCompatability7.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability7.ts, 3, 1)) ->__val__obj4 : __test2__.interfaceWithPublicAndOptional, Symbol(__test2__.__val__obj4, Decl(assignmentCompatability7.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability7.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability7.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability7.ts, 2, 14)) +>__test2__.__val__obj4 : __test2__.interfaceWithPublicAndOptional +>__test2__ : typeof __test2__ +>__val__obj4 : __test2__.interfaceWithPublicAndOptional +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability8.symbols b/tests/baselines/reference/assignmentCompatability8.symbols new file mode 100644 index 0000000000000..ba30e4fee9415 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability8.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/assignmentCompatability8.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability8.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability8.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability8.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability8.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability8.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability8.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability8.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability8.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability8.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability8.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability8.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability8.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability8.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability8.ts, 3, 1)) + + export class classWithPublic { constructor(public one: T) {} } var x1 = new classWithPublic(1);; +>classWithPublic : Symbol(classWithPublic, Decl(assignmentCompatability8.ts, 4, 18)) +>T : Symbol(T, Decl(assignmentCompatability8.ts, 5, 44)) +>one : Symbol(one, Decl(assignmentCompatability8.ts, 5, 61)) +>T : Symbol(T, Decl(assignmentCompatability8.ts, 5, 44)) +>x1 : Symbol(x1, Decl(assignmentCompatability8.ts, 5, 107)) +>classWithPublic : Symbol(classWithPublic, Decl(assignmentCompatability8.ts, 4, 18)) + + export var __val__x1 = x1; +>__val__x1 : Symbol(__val__x1, Decl(assignmentCompatability8.ts, 6, 14)) +>x1 : Symbol(x1, Decl(assignmentCompatability8.ts, 5, 107)) +} +__test2__.__val__x1 = __test1__.__val__obj4 +>__test2__.__val__x1 : Symbol(__test2__.__val__x1, Decl(assignmentCompatability8.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability8.ts, 3, 1)) +>__val__x1 : Symbol(__test2__.__val__x1, Decl(assignmentCompatability8.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability8.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability8.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability8.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability8.types b/tests/baselines/reference/assignmentCompatability8.types index bffaf69d2f11a..554f9b3caedd9 100644 --- a/tests/baselines/reference/assignmentCompatability8.types +++ b/tests/baselines/reference/assignmentCompatability8.types @@ -1,48 +1,48 @@ === tests/cases/compiler/assignmentCompatability8.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability8.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability8.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability8.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability8.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability8.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability8.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability8.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability8.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability8.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability8.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability8.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability8.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability8.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability8.ts, 3, 1)) +>__test2__ : typeof __test2__ export class classWithPublic { constructor(public one: T) {} } var x1 = new classWithPublic(1);; ->classWithPublic : classWithPublic, Symbol(classWithPublic, Decl(assignmentCompatability8.ts, 4, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability8.ts, 5, 44)) ->one : T, Symbol(one, Decl(assignmentCompatability8.ts, 5, 61)) ->T : T, Symbol(T, Decl(assignmentCompatability8.ts, 5, 44)) ->x1 : classWithPublic, Symbol(x1, Decl(assignmentCompatability8.ts, 5, 107)) +>classWithPublic : classWithPublic +>T : T +>one : T +>T : T +>x1 : classWithPublic >new classWithPublic(1) : classWithPublic ->classWithPublic : typeof classWithPublic, Symbol(classWithPublic, Decl(assignmentCompatability8.ts, 4, 18)) +>classWithPublic : typeof classWithPublic >1 : number export var __val__x1 = x1; ->__val__x1 : classWithPublic, Symbol(__val__x1, Decl(assignmentCompatability8.ts, 6, 14)) ->x1 : classWithPublic, Symbol(x1, Decl(assignmentCompatability8.ts, 5, 107)) +>__val__x1 : classWithPublic +>x1 : classWithPublic } __test2__.__val__x1 = __test1__.__val__obj4 >__test2__.__val__x1 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__x1 : __test2__.classWithPublic, Symbol(__test2__.__val__x1, Decl(assignmentCompatability8.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability8.ts, 3, 1)) ->__val__x1 : __test2__.classWithPublic, Symbol(__test2__.__val__x1, Decl(assignmentCompatability8.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability8.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability8.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability8.ts, 2, 14)) +>__test2__.__val__x1 : __test2__.classWithPublic +>__test2__ : typeof __test2__ +>__val__x1 : __test2__.classWithPublic +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatability9.symbols b/tests/baselines/reference/assignmentCompatability9.symbols new file mode 100644 index 0000000000000..7c49da7fea2f1 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatability9.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/assignmentCompatability9.ts === +module __test1__ { +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability9.ts, 0, 0)) + + export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability9.ts, 0, 18)) +>T : Symbol(T, Decl(assignmentCompatability9.ts, 1, 52)) +>U : Symbol(U, Decl(assignmentCompatability9.ts, 1, 54)) +>one : Symbol(one, Decl(assignmentCompatability9.ts, 1, 58)) +>T : Symbol(T, Decl(assignmentCompatability9.ts, 1, 52)) +>two : Symbol(two, Decl(assignmentCompatability9.ts, 1, 66)) +>U : Symbol(U, Decl(assignmentCompatability9.ts, 1, 54)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability9.ts, 1, 83)) +>interfaceWithPublicAndOptional : Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability9.ts, 0, 18)) +>one : Symbol(one, Decl(assignmentCompatability9.ts, 1, 139)) + + export var __val__obj4 = obj4; +>__val__obj4 : Symbol(__val__obj4, Decl(assignmentCompatability9.ts, 2, 14)) +>obj4 : Symbol(obj4, Decl(assignmentCompatability9.ts, 1, 83)) +} +module __test2__ { +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability9.ts, 3, 1)) + + export class classWithOptional { constructor(public one?: T) {} } var x3 = new classWithOptional();; +>classWithOptional : Symbol(classWithOptional, Decl(assignmentCompatability9.ts, 4, 18)) +>T : Symbol(T, Decl(assignmentCompatability9.ts, 5, 44)) +>one : Symbol(one, Decl(assignmentCompatability9.ts, 5, 61)) +>T : Symbol(T, Decl(assignmentCompatability9.ts, 5, 44)) +>x3 : Symbol(x3, Decl(assignmentCompatability9.ts, 5, 107)) +>classWithOptional : Symbol(classWithOptional, Decl(assignmentCompatability9.ts, 4, 18)) + + export var __val__x3 = x3; +>__val__x3 : Symbol(__val__x3, Decl(assignmentCompatability9.ts, 6, 14)) +>x3 : Symbol(x3, Decl(assignmentCompatability9.ts, 5, 107)) +} +__test2__.__val__x3 = __test1__.__val__obj4 +>__test2__.__val__x3 : Symbol(__test2__.__val__x3, Decl(assignmentCompatability9.ts, 6, 14)) +>__test2__ : Symbol(__test2__, Decl(assignmentCompatability9.ts, 3, 1)) +>__val__x3 : Symbol(__test2__.__val__x3, Decl(assignmentCompatability9.ts, 6, 14)) +>__test1__.__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability9.ts, 2, 14)) +>__test1__ : Symbol(__test1__, Decl(assignmentCompatability9.ts, 0, 0)) +>__val__obj4 : Symbol(__test1__.__val__obj4, Decl(assignmentCompatability9.ts, 2, 14)) + diff --git a/tests/baselines/reference/assignmentCompatability9.types b/tests/baselines/reference/assignmentCompatability9.types index 508e058acce72..d8fe3a764a499 100644 --- a/tests/baselines/reference/assignmentCompatability9.types +++ b/tests/baselines/reference/assignmentCompatability9.types @@ -1,47 +1,47 @@ === tests/cases/compiler/assignmentCompatability9.ts === module __test1__ { ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability9.ts, 0, 0)) +>__test1__ : typeof __test1__ export interface interfaceWithPublicAndOptional { one: T; two?: U; }; var obj4: interfaceWithPublicAndOptional = { one: 1 };; ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability9.ts, 0, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability9.ts, 1, 52)) ->U : U, Symbol(U, Decl(assignmentCompatability9.ts, 1, 54)) ->one : T, Symbol(one, Decl(assignmentCompatability9.ts, 1, 58)) ->T : T, Symbol(T, Decl(assignmentCompatability9.ts, 1, 52)) ->two : U, Symbol(two, Decl(assignmentCompatability9.ts, 1, 66)) ->U : U, Symbol(U, Decl(assignmentCompatability9.ts, 1, 54)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability9.ts, 1, 83)) ->interfaceWithPublicAndOptional : interfaceWithPublicAndOptional, Symbol(interfaceWithPublicAndOptional, Decl(assignmentCompatability9.ts, 0, 18)) +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional +>T : T +>U : U +>one : T +>T : T +>two : U +>U : U +>obj4 : interfaceWithPublicAndOptional +>interfaceWithPublicAndOptional : interfaceWithPublicAndOptional >{ one: 1 } : { one: number; } ->one : number, Symbol(one, Decl(assignmentCompatability9.ts, 1, 139)) +>one : number >1 : number export var __val__obj4 = obj4; ->__val__obj4 : interfaceWithPublicAndOptional, Symbol(__val__obj4, Decl(assignmentCompatability9.ts, 2, 14)) ->obj4 : interfaceWithPublicAndOptional, Symbol(obj4, Decl(assignmentCompatability9.ts, 1, 83)) +>__val__obj4 : interfaceWithPublicAndOptional +>obj4 : interfaceWithPublicAndOptional } module __test2__ { ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability9.ts, 3, 1)) +>__test2__ : typeof __test2__ export class classWithOptional { constructor(public one?: T) {} } var x3 = new classWithOptional();; ->classWithOptional : classWithOptional, Symbol(classWithOptional, Decl(assignmentCompatability9.ts, 4, 18)) ->T : T, Symbol(T, Decl(assignmentCompatability9.ts, 5, 44)) ->one : T, Symbol(one, Decl(assignmentCompatability9.ts, 5, 61)) ->T : T, Symbol(T, Decl(assignmentCompatability9.ts, 5, 44)) ->x3 : classWithOptional, Symbol(x3, Decl(assignmentCompatability9.ts, 5, 107)) +>classWithOptional : classWithOptional +>T : T +>one : T +>T : T +>x3 : classWithOptional >new classWithOptional() : classWithOptional ->classWithOptional : typeof classWithOptional, Symbol(classWithOptional, Decl(assignmentCompatability9.ts, 4, 18)) +>classWithOptional : typeof classWithOptional export var __val__x3 = x3; ->__val__x3 : classWithOptional, Symbol(__val__x3, Decl(assignmentCompatability9.ts, 6, 14)) ->x3 : classWithOptional, Symbol(x3, Decl(assignmentCompatability9.ts, 5, 107)) +>__val__x3 : classWithOptional +>x3 : classWithOptional } __test2__.__val__x3 = __test1__.__val__obj4 >__test2__.__val__x3 = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional ->__test2__.__val__x3 : __test2__.classWithOptional, Symbol(__test2__.__val__x3, Decl(assignmentCompatability9.ts, 6, 14)) ->__test2__ : typeof __test2__, Symbol(__test2__, Decl(assignmentCompatability9.ts, 3, 1)) ->__val__x3 : __test2__.classWithOptional, Symbol(__test2__.__val__x3, Decl(assignmentCompatability9.ts, 6, 14)) ->__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability9.ts, 2, 14)) ->__test1__ : typeof __test1__, Symbol(__test1__, Decl(assignmentCompatability9.ts, 0, 0)) ->__val__obj4 : __test1__.interfaceWithPublicAndOptional, Symbol(__test1__.__val__obj4, Decl(assignmentCompatability9.ts, 2, 14)) +>__test2__.__val__x3 : __test2__.classWithOptional +>__test2__ : typeof __test2__ +>__val__x3 : __test2__.classWithOptional +>__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional +>__test1__ : typeof __test1__ +>__val__obj4 : __test1__.interfaceWithPublicAndOptional diff --git a/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.symbols b/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.symbols new file mode 100644 index 0000000000000..7ca09f2c77d37 --- /dev/null +++ b/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/assignmentCompatibilityForConstrainedTypeParameters.ts === +function foo() { +>foo : Symbol(foo, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 0)) +>T : Symbol(T, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 13)) +>bar : Symbol(bar, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 24)) + + function bar() { +>bar : Symbol(bar, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 43)) +>S : Symbol(S, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 1, 15)) +>T : Symbol(T, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 13)) + + var x: S; +>x : Symbol(x, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 2, 7)) +>S : Symbol(S, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 1, 15)) + + var y: T; +>y : Symbol(y, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 3, 7)) +>T : Symbol(T, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 13)) + + y = x; +>y : Symbol(y, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 3, 7)) +>x : Symbol(x, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 2, 7)) + } +} diff --git a/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types b/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types index 885d7a35fdd9b..fab8e2baae6bb 100644 --- a/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types +++ b/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types @@ -1,25 +1,25 @@ === tests/cases/compiler/assignmentCompatibilityForConstrainedTypeParameters.ts === function foo() { ->foo : () => void, Symbol(foo, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 0)) ->T : T, Symbol(T, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 13)) ->bar : string, Symbol(bar, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 24)) +>foo : () => void +>T : T +>bar : string function bar() { ->bar : () => void, Symbol(bar, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 43)) ->S : S, Symbol(S, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 1, 15)) ->T : T, Symbol(T, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 13)) +>bar : () => void +>S : S +>T : T var x: S; ->x : S, Symbol(x, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 2, 7)) ->S : S, Symbol(S, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 1, 15)) +>x : S +>S : S var y: T; ->y : T, Symbol(y, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 3, 7)) ->T : T, Symbol(T, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 0, 13)) +>y : T +>T : T y = x; >y = x : S ->y : T, Symbol(y, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 3, 7)) ->x : S, Symbol(x, Decl(assignmentCompatibilityForConstrainedTypeParameters.ts, 2, 7)) +>y : T +>x : S } } diff --git a/tests/baselines/reference/assignmentLHSIsReference.symbols b/tests/baselines/reference/assignmentLHSIsReference.symbols new file mode 100644 index 0000000000000..b551557708f8e --- /dev/null +++ b/tests/baselines/reference/assignmentLHSIsReference.symbols @@ -0,0 +1,62 @@ +=== tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsReference.ts === +var value; +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + +// identifiers: variable and parameter +var x1: number; +>x1 : Symbol(x1, Decl(assignmentLHSIsReference.ts, 3, 3)) + +x1 = value; +>x1 : Symbol(x1, Decl(assignmentLHSIsReference.ts, 3, 3)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + +function fn1(x2: number) { +>fn1 : Symbol(fn1, Decl(assignmentLHSIsReference.ts, 4, 11)) +>x2 : Symbol(x2, Decl(assignmentLHSIsReference.ts, 6, 13)) + + x2 = value; +>x2 : Symbol(x2, Decl(assignmentLHSIsReference.ts, 6, 13)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +} + +// property accesses +var x3: { a: string }; +>x3 : Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) +>a : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) + +x3.a = value; +>x3.a : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>x3 : Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) +>a : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + +x3['a'] = value; +>x3 : Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) +>'a' : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + +// parentheses, the contained expression is reference +(x1) = value; +>x1 : Symbol(x1, Decl(assignmentLHSIsReference.ts, 3, 3)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + +function fn2(x4: number) { +>fn2 : Symbol(fn2, Decl(assignmentLHSIsReference.ts, 16, 13)) +>x4 : Symbol(x4, Decl(assignmentLHSIsReference.ts, 18, 13)) + + (x4) = value; +>x4 : Symbol(x4, Decl(assignmentLHSIsReference.ts, 18, 13)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +} + +(x3.a) = value; +>x3.a : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>x3 : Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) +>a : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + +(x3['a']) = value; +>x3 : Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) +>'a' : Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>value : Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) + diff --git a/tests/baselines/reference/assignmentLHSIsReference.types b/tests/baselines/reference/assignmentLHSIsReference.types index f575392e8501d..47204740165ff 100644 --- a/tests/baselines/reference/assignmentLHSIsReference.types +++ b/tests/baselines/reference/assignmentLHSIsReference.types @@ -1,76 +1,76 @@ === tests/cases/conformance/expressions/assignmentOperator/assignmentLHSIsReference.ts === var value; ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>value : any // identifiers: variable and parameter var x1: number; ->x1 : number, Symbol(x1, Decl(assignmentLHSIsReference.ts, 3, 3)) +>x1 : number x1 = value; >x1 = value : any ->x1 : number, Symbol(x1, Decl(assignmentLHSIsReference.ts, 3, 3)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x1 : number +>value : any function fn1(x2: number) { ->fn1 : (x2: number) => void, Symbol(fn1, Decl(assignmentLHSIsReference.ts, 4, 11)) ->x2 : number, Symbol(x2, Decl(assignmentLHSIsReference.ts, 6, 13)) +>fn1 : (x2: number) => void +>x2 : number x2 = value; >x2 = value : any ->x2 : number, Symbol(x2, Decl(assignmentLHSIsReference.ts, 6, 13)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x2 : number +>value : any } // property accesses var x3: { a: string }; ->x3 : { a: string; }, Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) ->a : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) +>x3 : { a: string; } +>a : string x3.a = value; >x3.a = value : any ->x3.a : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) ->x3 : { a: string; }, Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) ->a : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x3.a : string +>x3 : { a: string; } +>a : string +>value : any x3['a'] = value; >x3['a'] = value : any >x3['a'] : string ->x3 : { a: string; }, Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) ->'a' : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x3 : { a: string; } +>'a' : string +>value : any // parentheses, the contained expression is reference (x1) = value; >(x1) = value : any >(x1) : number ->x1 : number, Symbol(x1, Decl(assignmentLHSIsReference.ts, 3, 3)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x1 : number +>value : any function fn2(x4: number) { ->fn2 : (x4: number) => void, Symbol(fn2, Decl(assignmentLHSIsReference.ts, 16, 13)) ->x4 : number, Symbol(x4, Decl(assignmentLHSIsReference.ts, 18, 13)) +>fn2 : (x4: number) => void +>x4 : number (x4) = value; >(x4) = value : any >(x4) : number ->x4 : number, Symbol(x4, Decl(assignmentLHSIsReference.ts, 18, 13)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x4 : number +>value : any } (x3.a) = value; >(x3.a) = value : any >(x3.a) : string ->x3.a : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) ->x3 : { a: string; }, Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) ->a : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x3.a : string +>x3 : { a: string; } +>a : string +>value : any (x3['a']) = value; >(x3['a']) = value : any >(x3['a']) : string >x3['a'] : string ->x3 : { a: string; }, Symbol(x3, Decl(assignmentLHSIsReference.ts, 11, 3)) ->'a' : string, Symbol(a, Decl(assignmentLHSIsReference.ts, 11, 9)) ->value : any, Symbol(value, Decl(assignmentLHSIsReference.ts, 0, 3)) +>x3 : { a: string; } +>'a' : string +>value : any diff --git a/tests/baselines/reference/augmentArray.symbols b/tests/baselines/reference/augmentArray.symbols new file mode 100644 index 0000000000000..8c52363d60164 --- /dev/null +++ b/tests/baselines/reference/augmentArray.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/augmentArray.ts === +interface Array { +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(augmentArray.ts, 0, 0)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(augmentArray.ts, 0, 16)) + + (): any[]; +} diff --git a/tests/baselines/reference/augmentArray.types b/tests/baselines/reference/augmentArray.types index c4e98927370ee..31f7e11edca55 100644 --- a/tests/baselines/reference/augmentArray.types +++ b/tests/baselines/reference/augmentArray.types @@ -1,7 +1,7 @@ === tests/cases/compiler/augmentArray.ts === interface Array { ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(augmentArray.ts, 0, 0)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(augmentArray.ts, 0, 16)) +>Array : T[] +>T : T (): any[]; } diff --git a/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.symbols b/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.symbols new file mode 100644 index 0000000000000..81c8b13d207dd --- /dev/null +++ b/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/types/members/augmentedTypeBracketAccessIndexSignature.ts === +interface Foo { a } +>Foo : Symbol(Foo, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 0)) +>a : Symbol(a, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 15)) + +interface Bar { b } +>Bar : Symbol(Bar, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 19)) +>b : Symbol(b, Decl(augmentedTypeBracketAccessIndexSignature.ts, 1, 15)) + +interface Object { +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11), Decl(augmentedTypeBracketAccessIndexSignature.ts, 1, 19)) + + [n: number]: Foo; +>n : Symbol(n, Decl(augmentedTypeBracketAccessIndexSignature.ts, 4, 5)) +>Foo : Symbol(Foo, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 0)) +} + +interface Function { +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(augmentedTypeBracketAccessIndexSignature.ts, 5, 1)) + + [n: number]: Bar; +>n : Symbol(n, Decl(augmentedTypeBracketAccessIndexSignature.ts, 8, 5)) +>Bar : Symbol(Bar, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 19)) +} + +var a = {}[0]; // Should be Foo +>a : Symbol(a, Decl(augmentedTypeBracketAccessIndexSignature.ts, 11, 3)) + +var b = (() => { })[0]; // Should be Bar +>b : Symbol(b, Decl(augmentedTypeBracketAccessIndexSignature.ts, 12, 3)) + diff --git a/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.types b/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.types index 0cc304eedb132..898da985aad88 100644 --- a/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.types +++ b/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.types @@ -1,36 +1,36 @@ === tests/cases/conformance/types/members/augmentedTypeBracketAccessIndexSignature.ts === interface Foo { a } ->Foo : Foo, Symbol(Foo, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 0)) ->a : any, Symbol(a, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 15)) +>Foo : Foo +>a : any interface Bar { b } ->Bar : Bar, Symbol(Bar, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 19)) ->b : any, Symbol(b, Decl(augmentedTypeBracketAccessIndexSignature.ts, 1, 15)) +>Bar : Bar +>b : any interface Object { ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11), Decl(augmentedTypeBracketAccessIndexSignature.ts, 1, 19)) +>Object : Object [n: number]: Foo; ->n : number, Symbol(n, Decl(augmentedTypeBracketAccessIndexSignature.ts, 4, 5)) ->Foo : Foo, Symbol(Foo, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 0)) +>n : number +>Foo : Foo } interface Function { ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(augmentedTypeBracketAccessIndexSignature.ts, 5, 1)) +>Function : Function [n: number]: Bar; ->n : number, Symbol(n, Decl(augmentedTypeBracketAccessIndexSignature.ts, 8, 5)) ->Bar : Bar, Symbol(Bar, Decl(augmentedTypeBracketAccessIndexSignature.ts, 0, 19)) +>n : number +>Bar : Bar } var a = {}[0]; // Should be Foo ->a : any, Symbol(a, Decl(augmentedTypeBracketAccessIndexSignature.ts, 11, 3)) +>a : any >{}[0] : any >{} : {} >0 : number var b = (() => { })[0]; // Should be Bar ->b : any, Symbol(b, Decl(augmentedTypeBracketAccessIndexSignature.ts, 12, 3)) +>b : any >(() => { })[0] : any >(() => { }) : () => void >() => { } : () => void diff --git a/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.symbols b/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.symbols new file mode 100644 index 0000000000000..cc9c2ba62ef3f --- /dev/null +++ b/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/augmentedTypeBracketNamedPropertyAccess.ts === +interface Object { +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11), Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 0)) + + data: number; +>data : Symbol(data, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 18)) +} +interface Function { +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(augmentedTypeBracketNamedPropertyAccess.ts, 2, 1)) + + functionData: string; +>functionData : Symbol(functionData, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 3, 20)) +} +var o = {}; +>o : Symbol(o, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 6, 3)) + +var f = function () { }; +>f : Symbol(f, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 7, 3)) + +var r1 = o['data']; // Should be number +>r1 : Symbol(r1, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 9, 3)) +>o : Symbol(o, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 6, 3)) +>'data' : Symbol(Object.data, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 18)) + +var r2 = o['functionData']; // Should be any (no property found) +>r2 : Symbol(r2, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 10, 3)) +>o : Symbol(o, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 6, 3)) + +var r3 = f['functionData']; // Should be string +>r3 : Symbol(r3, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 11, 3)) +>f : Symbol(f, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 7, 3)) +>'functionData' : Symbol(Function.functionData, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 3, 20)) + +var r4 = f['data']; // Should be number +>r4 : Symbol(r4, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 12, 3)) +>f : Symbol(f, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 7, 3)) +>'data' : Symbol(Object.data, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 18)) + diff --git a/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.types b/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.types index 24416f6691ceb..c47c98ebc9c9a 100644 --- a/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.types +++ b/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.types @@ -1,45 +1,45 @@ === tests/cases/compiler/augmentedTypeBracketNamedPropertyAccess.ts === interface Object { ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11), Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 0)) +>Object : Object data: number; ->data : number, Symbol(data, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 18)) +>data : number } interface Function { ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(augmentedTypeBracketNamedPropertyAccess.ts, 2, 1)) +>Function : Function functionData: string; ->functionData : string, Symbol(functionData, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 3, 20)) +>functionData : string } var o = {}; ->o : {}, Symbol(o, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 6, 3)) +>o : {} >{} : {} var f = function () { }; ->f : () => void, Symbol(f, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 7, 3)) +>f : () => void >function () { } : () => void var r1 = o['data']; // Should be number ->r1 : number, Symbol(r1, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 9, 3)) +>r1 : number >o['data'] : number ->o : {}, Symbol(o, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 6, 3)) ->'data' : string, Symbol(Object.data, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 18)) +>o : {} +>'data' : string var r2 = o['functionData']; // Should be any (no property found) ->r2 : any, Symbol(r2, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 10, 3)) +>r2 : any >o['functionData'] : any ->o : {}, Symbol(o, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 6, 3)) +>o : {} >'functionData' : string var r3 = f['functionData']; // Should be string ->r3 : string, Symbol(r3, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 11, 3)) +>r3 : string >f['functionData'] : string ->f : () => void, Symbol(f, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 7, 3)) ->'functionData' : string, Symbol(Function.functionData, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 3, 20)) +>f : () => void +>'functionData' : string var r4 = f['data']; // Should be number ->r4 : number, Symbol(r4, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 12, 3)) +>r4 : number >f['data'] : number ->f : () => void, Symbol(f, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 7, 3)) ->'data' : string, Symbol(Object.data, Decl(augmentedTypeBracketNamedPropertyAccess.ts, 0, 18)) +>f : () => void +>'data' : string diff --git a/tests/baselines/reference/augmentedTypesClass3.symbols b/tests/baselines/reference/augmentedTypesClass3.symbols new file mode 100644 index 0000000000000..62504a56f25aa --- /dev/null +++ b/tests/baselines/reference/augmentedTypesClass3.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/augmentedTypesClass3.ts === +// class then module +class c5 { public foo() { } } +>c5 : Symbol(c5, Decl(augmentedTypesClass3.ts, 0, 0), Decl(augmentedTypesClass3.ts, 1, 29)) +>foo : Symbol(foo, Decl(augmentedTypesClass3.ts, 1, 10)) + +module c5 { } // should be ok +>c5 : Symbol(c5, Decl(augmentedTypesClass3.ts, 0, 0), Decl(augmentedTypesClass3.ts, 1, 29)) + +class c5a { public foo() { } } +>c5a : Symbol(c5a, Decl(augmentedTypesClass3.ts, 2, 13), Decl(augmentedTypesClass3.ts, 4, 30)) +>foo : Symbol(foo, Decl(augmentedTypesClass3.ts, 4, 11)) + +module c5a { var y = 2; } // should be ok +>c5a : Symbol(c5a, Decl(augmentedTypesClass3.ts, 2, 13), Decl(augmentedTypesClass3.ts, 4, 30)) +>y : Symbol(y, Decl(augmentedTypesClass3.ts, 5, 16)) + +class c5b { public foo() { } } +>c5b : Symbol(c5b, Decl(augmentedTypesClass3.ts, 5, 25), Decl(augmentedTypesClass3.ts, 7, 30)) +>foo : Symbol(foo, Decl(augmentedTypesClass3.ts, 7, 11)) + +module c5b { export var y = 2; } // should be ok +>c5b : Symbol(c5b, Decl(augmentedTypesClass3.ts, 5, 25), Decl(augmentedTypesClass3.ts, 7, 30)) +>y : Symbol(y, Decl(augmentedTypesClass3.ts, 8, 23)) + +//// class then import +class c5c { public foo() { } } +>c5c : Symbol(c5c, Decl(augmentedTypesClass3.ts, 8, 32)) +>foo : Symbol(foo, Decl(augmentedTypesClass3.ts, 11, 11)) + +//import c5c = require(''); diff --git a/tests/baselines/reference/augmentedTypesClass3.types b/tests/baselines/reference/augmentedTypesClass3.types index 709ea5dc0f9ac..bed118b5978de 100644 --- a/tests/baselines/reference/augmentedTypesClass3.types +++ b/tests/baselines/reference/augmentedTypesClass3.types @@ -1,33 +1,33 @@ === tests/cases/compiler/augmentedTypesClass3.ts === // class then module class c5 { public foo() { } } ->c5 : c5, Symbol(c5, Decl(augmentedTypesClass3.ts, 0, 0), Decl(augmentedTypesClass3.ts, 1, 29)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesClass3.ts, 1, 10)) +>c5 : c5 +>foo : () => void module c5 { } // should be ok ->c5 : typeof c5, Symbol(c5, Decl(augmentedTypesClass3.ts, 0, 0), Decl(augmentedTypesClass3.ts, 1, 29)) +>c5 : typeof c5 class c5a { public foo() { } } ->c5a : c5a, Symbol(c5a, Decl(augmentedTypesClass3.ts, 2, 13), Decl(augmentedTypesClass3.ts, 4, 30)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesClass3.ts, 4, 11)) +>c5a : c5a +>foo : () => void module c5a { var y = 2; } // should be ok ->c5a : typeof c5a, Symbol(c5a, Decl(augmentedTypesClass3.ts, 2, 13), Decl(augmentedTypesClass3.ts, 4, 30)) ->y : number, Symbol(y, Decl(augmentedTypesClass3.ts, 5, 16)) +>c5a : typeof c5a +>y : number >2 : number class c5b { public foo() { } } ->c5b : c5b, Symbol(c5b, Decl(augmentedTypesClass3.ts, 5, 25), Decl(augmentedTypesClass3.ts, 7, 30)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesClass3.ts, 7, 11)) +>c5b : c5b +>foo : () => void module c5b { export var y = 2; } // should be ok ->c5b : typeof c5b, Symbol(c5b, Decl(augmentedTypesClass3.ts, 5, 25), Decl(augmentedTypesClass3.ts, 7, 30)) ->y : number, Symbol(y, Decl(augmentedTypesClass3.ts, 8, 23)) +>c5b : typeof c5b +>y : number >2 : number //// class then import class c5c { public foo() { } } ->c5c : c5c, Symbol(c5c, Decl(augmentedTypesClass3.ts, 8, 32)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesClass3.ts, 11, 11)) +>c5c : c5c +>foo : () => void //import c5c = require(''); diff --git a/tests/baselines/reference/augmentedTypesExternalModule1.symbols b/tests/baselines/reference/augmentedTypesExternalModule1.symbols new file mode 100644 index 0000000000000..3a909b91df52f --- /dev/null +++ b/tests/baselines/reference/augmentedTypesExternalModule1.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/augmentedTypesExternalModule1.ts === +export var a = 1; +>a : Symbol(a, Decl(augmentedTypesExternalModule1.ts, 0, 10)) + +class c5 { public foo() { } } +>c5 : Symbol(c5, Decl(augmentedTypesExternalModule1.ts, 0, 17), Decl(augmentedTypesExternalModule1.ts, 1, 29)) +>foo : Symbol(foo, Decl(augmentedTypesExternalModule1.ts, 1, 10)) + +module c5 { } // should be ok everywhere +>c5 : Symbol(c5, Decl(augmentedTypesExternalModule1.ts, 0, 17), Decl(augmentedTypesExternalModule1.ts, 1, 29)) + diff --git a/tests/baselines/reference/augmentedTypesExternalModule1.types b/tests/baselines/reference/augmentedTypesExternalModule1.types index 4b928e9238e05..e652ecb08e106 100644 --- a/tests/baselines/reference/augmentedTypesExternalModule1.types +++ b/tests/baselines/reference/augmentedTypesExternalModule1.types @@ -1,12 +1,12 @@ === tests/cases/compiler/augmentedTypesExternalModule1.ts === export var a = 1; ->a : number, Symbol(a, Decl(augmentedTypesExternalModule1.ts, 0, 10)) +>a : number >1 : number class c5 { public foo() { } } ->c5 : c5, Symbol(c5, Decl(augmentedTypesExternalModule1.ts, 0, 17), Decl(augmentedTypesExternalModule1.ts, 1, 29)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesExternalModule1.ts, 1, 10)) +>c5 : c5 +>foo : () => void module c5 { } // should be ok everywhere ->c5 : typeof c5, Symbol(c5, Decl(augmentedTypesExternalModule1.ts, 0, 17), Decl(augmentedTypesExternalModule1.ts, 1, 29)) +>c5 : typeof c5 diff --git a/tests/baselines/reference/augmentedTypesModules3b.symbols b/tests/baselines/reference/augmentedTypesModules3b.symbols new file mode 100644 index 0000000000000..dd5456e4cf2b2 --- /dev/null +++ b/tests/baselines/reference/augmentedTypesModules3b.symbols @@ -0,0 +1,51 @@ +=== tests/cases/compiler/augmentedTypesModules3b.ts === +class m3b { foo() { } } +>m3b : Symbol(m3b, Decl(augmentedTypesModules3b.ts, 0, 0), Decl(augmentedTypesModules3b.ts, 0, 23)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 0, 11)) + +module m3b { var y = 2; } +>m3b : Symbol(m3b, Decl(augmentedTypesModules3b.ts, 0, 0), Decl(augmentedTypesModules3b.ts, 0, 23)) +>y : Symbol(y, Decl(augmentedTypesModules3b.ts, 1, 16)) + +class m3c { foo() { } } +>m3c : Symbol(m3c, Decl(augmentedTypesModules3b.ts, 1, 25), Decl(augmentedTypesModules3b.ts, 3, 23)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 3, 11)) + +module m3c { export var y = 2; } +>m3c : Symbol(m3c, Decl(augmentedTypesModules3b.ts, 1, 25), Decl(augmentedTypesModules3b.ts, 3, 23)) +>y : Symbol(y, Decl(augmentedTypesModules3b.ts, 4, 23)) + +declare class m3d { foo(): void } +>m3d : Symbol(m3d, Decl(augmentedTypesModules3b.ts, 4, 32), Decl(augmentedTypesModules3b.ts, 6, 33)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 6, 19)) + +module m3d { export var y = 2; } +>m3d : Symbol(m3d, Decl(augmentedTypesModules3b.ts, 4, 32), Decl(augmentedTypesModules3b.ts, 6, 33)) +>y : Symbol(y, Decl(augmentedTypesModules3b.ts, 7, 23)) + +module m3e { export var y = 2; } +>m3e : Symbol(m3e, Decl(augmentedTypesModules3b.ts, 7, 32), Decl(augmentedTypesModules3b.ts, 9, 32)) +>y : Symbol(y, Decl(augmentedTypesModules3b.ts, 9, 23)) + +declare class m3e { foo(): void } +>m3e : Symbol(m3e, Decl(augmentedTypesModules3b.ts, 7, 32), Decl(augmentedTypesModules3b.ts, 9, 32)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 10, 19)) + +declare class m3f { foo(): void } +>m3f : Symbol(m3f, Decl(augmentedTypesModules3b.ts, 10, 33), Decl(augmentedTypesModules3b.ts, 12, 33)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 12, 19)) + +module m3f { export interface I { foo(): void } } +>m3f : Symbol(m3f, Decl(augmentedTypesModules3b.ts, 10, 33), Decl(augmentedTypesModules3b.ts, 12, 33)) +>I : Symbol(I, Decl(augmentedTypesModules3b.ts, 13, 12)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 13, 33)) + +declare class m3g { foo(): void } +>m3g : Symbol(m3g, Decl(augmentedTypesModules3b.ts, 13, 49), Decl(augmentedTypesModules3b.ts, 15, 33)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 15, 19)) + +module m3g { export class C { foo() { } } } +>m3g : Symbol(m3g, Decl(augmentedTypesModules3b.ts, 13, 49), Decl(augmentedTypesModules3b.ts, 15, 33)) +>C : Symbol(C, Decl(augmentedTypesModules3b.ts, 16, 12)) +>foo : Symbol(foo, Decl(augmentedTypesModules3b.ts, 16, 29)) + diff --git a/tests/baselines/reference/augmentedTypesModules3b.types b/tests/baselines/reference/augmentedTypesModules3b.types index 24a9fc0634a26..38134c7c1c262 100644 --- a/tests/baselines/reference/augmentedTypesModules3b.types +++ b/tests/baselines/reference/augmentedTypesModules3b.types @@ -1,55 +1,55 @@ === tests/cases/compiler/augmentedTypesModules3b.ts === class m3b { foo() { } } ->m3b : m3b, Symbol(m3b, Decl(augmentedTypesModules3b.ts, 0, 0), Decl(augmentedTypesModules3b.ts, 0, 23)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 0, 11)) +>m3b : m3b +>foo : () => void module m3b { var y = 2; } ->m3b : typeof m3b, Symbol(m3b, Decl(augmentedTypesModules3b.ts, 0, 0), Decl(augmentedTypesModules3b.ts, 0, 23)) ->y : number, Symbol(y, Decl(augmentedTypesModules3b.ts, 1, 16)) +>m3b : typeof m3b +>y : number >2 : number class m3c { foo() { } } ->m3c : m3c, Symbol(m3c, Decl(augmentedTypesModules3b.ts, 1, 25), Decl(augmentedTypesModules3b.ts, 3, 23)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 3, 11)) +>m3c : m3c +>foo : () => void module m3c { export var y = 2; } ->m3c : typeof m3c, Symbol(m3c, Decl(augmentedTypesModules3b.ts, 1, 25), Decl(augmentedTypesModules3b.ts, 3, 23)) ->y : number, Symbol(y, Decl(augmentedTypesModules3b.ts, 4, 23)) +>m3c : typeof m3c +>y : number >2 : number declare class m3d { foo(): void } ->m3d : m3d, Symbol(m3d, Decl(augmentedTypesModules3b.ts, 4, 32), Decl(augmentedTypesModules3b.ts, 6, 33)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 6, 19)) +>m3d : m3d +>foo : () => void module m3d { export var y = 2; } ->m3d : typeof m3d, Symbol(m3d, Decl(augmentedTypesModules3b.ts, 4, 32), Decl(augmentedTypesModules3b.ts, 6, 33)) ->y : number, Symbol(y, Decl(augmentedTypesModules3b.ts, 7, 23)) +>m3d : typeof m3d +>y : number >2 : number module m3e { export var y = 2; } ->m3e : typeof m3e, Symbol(m3e, Decl(augmentedTypesModules3b.ts, 7, 32), Decl(augmentedTypesModules3b.ts, 9, 32)) ->y : number, Symbol(y, Decl(augmentedTypesModules3b.ts, 9, 23)) +>m3e : typeof m3e +>y : number >2 : number declare class m3e { foo(): void } ->m3e : m3e, Symbol(m3e, Decl(augmentedTypesModules3b.ts, 7, 32), Decl(augmentedTypesModules3b.ts, 9, 32)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 10, 19)) +>m3e : m3e +>foo : () => void declare class m3f { foo(): void } ->m3f : m3f, Symbol(m3f, Decl(augmentedTypesModules3b.ts, 10, 33), Decl(augmentedTypesModules3b.ts, 12, 33)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 12, 19)) +>m3f : m3f +>foo : () => void module m3f { export interface I { foo(): void } } ->m3f : typeof m3f, Symbol(m3f, Decl(augmentedTypesModules3b.ts, 10, 33), Decl(augmentedTypesModules3b.ts, 12, 33)) ->I : I, Symbol(I, Decl(augmentedTypesModules3b.ts, 13, 12)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 13, 33)) +>m3f : typeof m3f +>I : I +>foo : () => void declare class m3g { foo(): void } ->m3g : m3g, Symbol(m3g, Decl(augmentedTypesModules3b.ts, 13, 49), Decl(augmentedTypesModules3b.ts, 15, 33)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 15, 19)) +>m3g : m3g +>foo : () => void module m3g { export class C { foo() { } } } ->m3g : typeof m3g, Symbol(m3g, Decl(augmentedTypesModules3b.ts, 13, 49), Decl(augmentedTypesModules3b.ts, 15, 33)) ->C : C, Symbol(C, Decl(augmentedTypesModules3b.ts, 16, 12)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules3b.ts, 16, 29)) +>m3g : typeof m3g +>C : C +>foo : () => void diff --git a/tests/baselines/reference/augmentedTypesModules4.symbols b/tests/baselines/reference/augmentedTypesModules4.symbols new file mode 100644 index 0000000000000..e0cee3e7c3a54 --- /dev/null +++ b/tests/baselines/reference/augmentedTypesModules4.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/augmentedTypesModules4.ts === +// module then enum +// should be errors +module m4 { } +>m4 : Symbol(m4, Decl(augmentedTypesModules4.ts, 0, 0), Decl(augmentedTypesModules4.ts, 2, 13)) + +enum m4 { } +>m4 : Symbol(m4, Decl(augmentedTypesModules4.ts, 0, 0), Decl(augmentedTypesModules4.ts, 2, 13)) + +module m4a { var y = 2; } +>m4a : Symbol(m4a, Decl(augmentedTypesModules4.ts, 3, 11), Decl(augmentedTypesModules4.ts, 5, 25)) +>y : Symbol(y, Decl(augmentedTypesModules4.ts, 5, 16)) + +enum m4a { One } +>m4a : Symbol(m4a, Decl(augmentedTypesModules4.ts, 3, 11), Decl(augmentedTypesModules4.ts, 5, 25)) +>One : Symbol(m4a.One, Decl(augmentedTypesModules4.ts, 6, 10)) + +module m4b { export var y = 2; } +>m4b : Symbol(m4b, Decl(augmentedTypesModules4.ts, 6, 16), Decl(augmentedTypesModules4.ts, 8, 32)) +>y : Symbol(y, Decl(augmentedTypesModules4.ts, 8, 23)) + +enum m4b { One } +>m4b : Symbol(m4b, Decl(augmentedTypesModules4.ts, 6, 16), Decl(augmentedTypesModules4.ts, 8, 32)) +>One : Symbol(m4b.One, Decl(augmentedTypesModules4.ts, 9, 10)) + +module m4c { interface I { foo(): void } } +>m4c : Symbol(m4c, Decl(augmentedTypesModules4.ts, 9, 16), Decl(augmentedTypesModules4.ts, 11, 42)) +>I : Symbol(I, Decl(augmentedTypesModules4.ts, 11, 12)) +>foo : Symbol(foo, Decl(augmentedTypesModules4.ts, 11, 26)) + +enum m4c { One } +>m4c : Symbol(m4c, Decl(augmentedTypesModules4.ts, 9, 16), Decl(augmentedTypesModules4.ts, 11, 42)) +>One : Symbol(m4c.One, Decl(augmentedTypesModules4.ts, 12, 10)) + +module m4d { class C { foo() { } } } +>m4d : Symbol(m4d, Decl(augmentedTypesModules4.ts, 12, 16), Decl(augmentedTypesModules4.ts, 14, 36)) +>C : Symbol(C, Decl(augmentedTypesModules4.ts, 14, 12)) +>foo : Symbol(foo, Decl(augmentedTypesModules4.ts, 14, 22)) + +enum m4d { One } +>m4d : Symbol(m4d, Decl(augmentedTypesModules4.ts, 12, 16), Decl(augmentedTypesModules4.ts, 14, 36)) +>One : Symbol(m4d.One, Decl(augmentedTypesModules4.ts, 15, 10)) + +//// module then module + +module m5 { export var y = 2; } +>m5 : Symbol(m5, Decl(augmentedTypesModules4.ts, 15, 16), Decl(augmentedTypesModules4.ts, 19, 31)) +>y : Symbol(y, Decl(augmentedTypesModules4.ts, 19, 22)) + +module m5 { export interface I { foo(): void } } // should already be reasonably well covered +>m5 : Symbol(m5, Decl(augmentedTypesModules4.ts, 15, 16), Decl(augmentedTypesModules4.ts, 19, 31)) +>I : Symbol(I, Decl(augmentedTypesModules4.ts, 20, 11)) +>foo : Symbol(foo, Decl(augmentedTypesModules4.ts, 20, 32)) + diff --git a/tests/baselines/reference/augmentedTypesModules4.types b/tests/baselines/reference/augmentedTypesModules4.types index 13180f9868857..15d7c28e1d638 100644 --- a/tests/baselines/reference/augmentedTypesModules4.types +++ b/tests/baselines/reference/augmentedTypesModules4.types @@ -2,56 +2,56 @@ // module then enum // should be errors module m4 { } ->m4 : typeof m4, Symbol(m4, Decl(augmentedTypesModules4.ts, 0, 0), Decl(augmentedTypesModules4.ts, 2, 13)) +>m4 : typeof m4 enum m4 { } ->m4 : m4, Symbol(m4, Decl(augmentedTypesModules4.ts, 0, 0), Decl(augmentedTypesModules4.ts, 2, 13)) +>m4 : m4 module m4a { var y = 2; } ->m4a : typeof m4a, Symbol(m4a, Decl(augmentedTypesModules4.ts, 3, 11), Decl(augmentedTypesModules4.ts, 5, 25)) ->y : number, Symbol(y, Decl(augmentedTypesModules4.ts, 5, 16)) +>m4a : typeof m4a +>y : number >2 : number enum m4a { One } ->m4a : m4a, Symbol(m4a, Decl(augmentedTypesModules4.ts, 3, 11), Decl(augmentedTypesModules4.ts, 5, 25)) ->One : m4a, Symbol(m4a.One, Decl(augmentedTypesModules4.ts, 6, 10)) +>m4a : m4a +>One : m4a module m4b { export var y = 2; } ->m4b : typeof m4b, Symbol(m4b, Decl(augmentedTypesModules4.ts, 6, 16), Decl(augmentedTypesModules4.ts, 8, 32)) ->y : number, Symbol(y, Decl(augmentedTypesModules4.ts, 8, 23)) +>m4b : typeof m4b +>y : number >2 : number enum m4b { One } ->m4b : m4b, Symbol(m4b, Decl(augmentedTypesModules4.ts, 6, 16), Decl(augmentedTypesModules4.ts, 8, 32)) ->One : m4b, Symbol(m4b.One, Decl(augmentedTypesModules4.ts, 9, 10)) +>m4b : m4b +>One : m4b module m4c { interface I { foo(): void } } ->m4c : typeof m4c, Symbol(m4c, Decl(augmentedTypesModules4.ts, 9, 16), Decl(augmentedTypesModules4.ts, 11, 42)) ->I : I, Symbol(I, Decl(augmentedTypesModules4.ts, 11, 12)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules4.ts, 11, 26)) +>m4c : typeof m4c +>I : I +>foo : () => void enum m4c { One } ->m4c : m4c, Symbol(m4c, Decl(augmentedTypesModules4.ts, 9, 16), Decl(augmentedTypesModules4.ts, 11, 42)) ->One : m4c, Symbol(m4c.One, Decl(augmentedTypesModules4.ts, 12, 10)) +>m4c : m4c +>One : m4c module m4d { class C { foo() { } } } ->m4d : typeof m4d, Symbol(m4d, Decl(augmentedTypesModules4.ts, 12, 16), Decl(augmentedTypesModules4.ts, 14, 36)) ->C : C, Symbol(C, Decl(augmentedTypesModules4.ts, 14, 12)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules4.ts, 14, 22)) +>m4d : typeof m4d +>C : C +>foo : () => void enum m4d { One } ->m4d : m4d, Symbol(m4d, Decl(augmentedTypesModules4.ts, 12, 16), Decl(augmentedTypesModules4.ts, 14, 36)) ->One : m4d, Symbol(m4d.One, Decl(augmentedTypesModules4.ts, 15, 10)) +>m4d : m4d +>One : m4d //// module then module module m5 { export var y = 2; } ->m5 : typeof m5, Symbol(m5, Decl(augmentedTypesModules4.ts, 15, 16), Decl(augmentedTypesModules4.ts, 19, 31)) ->y : number, Symbol(y, Decl(augmentedTypesModules4.ts, 19, 22)) +>m5 : typeof m5 +>y : number >2 : number module m5 { export interface I { foo(): void } } // should already be reasonably well covered ->m5 : typeof m5, Symbol(m5, Decl(augmentedTypesModules4.ts, 15, 16), Decl(augmentedTypesModules4.ts, 19, 31)) ->I : I, Symbol(I, Decl(augmentedTypesModules4.ts, 20, 11)) ->foo : () => void, Symbol(foo, Decl(augmentedTypesModules4.ts, 20, 32)) +>m5 : typeof m5 +>I : I +>foo : () => void diff --git a/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.symbols b/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.symbols new file mode 100644 index 0000000000000..199830dc191b1 --- /dev/null +++ b/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/autoAsiForStaticsInClassDeclaration.ts === +class C { +>C : Symbol(C, Decl(autoAsiForStaticsInClassDeclaration.ts, 0, 0)) + + static x +>x : Symbol(C.x, Decl(autoAsiForStaticsInClassDeclaration.ts, 0, 9)) + + static y +>y : Symbol(C.y, Decl(autoAsiForStaticsInClassDeclaration.ts, 1, 12)) +} diff --git a/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.types b/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.types index ac5315bbc6e79..d902f0b3eaa6b 100644 --- a/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.types +++ b/tests/baselines/reference/autoAsiForStaticsInClassDeclaration.types @@ -1,10 +1,10 @@ === tests/cases/compiler/autoAsiForStaticsInClassDeclaration.ts === class C { ->C : C, Symbol(C, Decl(autoAsiForStaticsInClassDeclaration.ts, 0, 0)) +>C : C static x ->x : any, Symbol(C.x, Decl(autoAsiForStaticsInClassDeclaration.ts, 0, 9)) +>x : any static y ->y : any, Symbol(C.y, Decl(autoAsiForStaticsInClassDeclaration.ts, 1, 12)) +>y : any } diff --git a/tests/baselines/reference/autonumberingInEnums.symbols b/tests/baselines/reference/autonumberingInEnums.symbols new file mode 100644 index 0000000000000..8cfba4d1057dc --- /dev/null +++ b/tests/baselines/reference/autonumberingInEnums.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/autonumberingInEnums.ts === +enum Foo { +>Foo : Symbol(Foo, Decl(autonumberingInEnums.ts, 0, 0), Decl(autonumberingInEnums.ts, 2, 1)) + + a = 1 +>a : Symbol(Foo.a, Decl(autonumberingInEnums.ts, 0, 10)) +} + +enum Foo { +>Foo : Symbol(Foo, Decl(autonumberingInEnums.ts, 0, 0), Decl(autonumberingInEnums.ts, 2, 1)) + + b // should work fine +>b : Symbol(Foo.b, Decl(autonumberingInEnums.ts, 4, 10)) +} diff --git a/tests/baselines/reference/autonumberingInEnums.types b/tests/baselines/reference/autonumberingInEnums.types index 43d1a332f44af..35d5a1505a532 100644 --- a/tests/baselines/reference/autonumberingInEnums.types +++ b/tests/baselines/reference/autonumberingInEnums.types @@ -1,15 +1,15 @@ === tests/cases/compiler/autonumberingInEnums.ts === enum Foo { ->Foo : Foo, Symbol(Foo, Decl(autonumberingInEnums.ts, 0, 0), Decl(autonumberingInEnums.ts, 2, 1)) +>Foo : Foo a = 1 ->a : Foo, Symbol(Foo.a, Decl(autonumberingInEnums.ts, 0, 10)) +>a : Foo >1 : number } enum Foo { ->Foo : Foo, Symbol(Foo, Decl(autonumberingInEnums.ts, 0, 0), Decl(autonumberingInEnums.ts, 2, 1)) +>Foo : Foo b // should work fine ->b : Foo, Symbol(Foo.b, Decl(autonumberingInEnums.ts, 4, 10)) +>b : Foo } diff --git a/tests/baselines/reference/avoid.symbols b/tests/baselines/reference/avoid.symbols new file mode 100644 index 0000000000000..9b9440eea65c8 --- /dev/null +++ b/tests/baselines/reference/avoid.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/avoid.ts === +function f() { +>f : Symbol(f, Decl(avoid.ts, 0, 0)) + + var x=1; +>x : Symbol(x, Decl(avoid.ts, 1, 7)) +} + +var y=f(); // error void fn +>y : Symbol(y, Decl(avoid.ts, 4, 3)) +>f : Symbol(f, Decl(avoid.ts, 0, 0)) + +var why:any=f(); // error void fn +>why : Symbol(why, Decl(avoid.ts, 5, 3)) +>f : Symbol(f, Decl(avoid.ts, 0, 0)) + +var w:any; +>w : Symbol(w, Decl(avoid.ts, 6, 3)) + +w=f(); // error void fn +>w : Symbol(w, Decl(avoid.ts, 6, 3)) +>f : Symbol(f, Decl(avoid.ts, 0, 0)) + +class C { +>C : Symbol(C, Decl(avoid.ts, 7, 6)) + + g() { +>g : Symbol(g, Decl(avoid.ts, 9, 9)) + + } +} + +var z=new C().g(); // error void fn +>z : Symbol(z, Decl(avoid.ts, 15, 3)) +>new C().g : Symbol(C.g, Decl(avoid.ts, 9, 9)) +>C : Symbol(C, Decl(avoid.ts, 7, 6)) +>g : Symbol(C.g, Decl(avoid.ts, 9, 9)) + +var N=new f(); // ok with void fn +>N : Symbol(N, Decl(avoid.ts, 16, 3)) +>f : Symbol(f, Decl(avoid.ts, 0, 0)) + + diff --git a/tests/baselines/reference/avoid.types b/tests/baselines/reference/avoid.types index 043829878e4d8..25fe27a2ea07d 100644 --- a/tests/baselines/reference/avoid.types +++ b/tests/baselines/reference/avoid.types @@ -1,51 +1,51 @@ === tests/cases/compiler/avoid.ts === function f() { ->f : () => void, Symbol(f, Decl(avoid.ts, 0, 0)) +>f : () => void var x=1; ->x : number, Symbol(x, Decl(avoid.ts, 1, 7)) +>x : number >1 : number } var y=f(); // error void fn ->y : void, Symbol(y, Decl(avoid.ts, 4, 3)) +>y : void >f() : void ->f : () => void, Symbol(f, Decl(avoid.ts, 0, 0)) +>f : () => void var why:any=f(); // error void fn ->why : any, Symbol(why, Decl(avoid.ts, 5, 3)) +>why : any >f() : void ->f : () => void, Symbol(f, Decl(avoid.ts, 0, 0)) +>f : () => void var w:any; ->w : any, Symbol(w, Decl(avoid.ts, 6, 3)) +>w : any w=f(); // error void fn >w=f() : void ->w : any, Symbol(w, Decl(avoid.ts, 6, 3)) +>w : any >f() : void ->f : () => void, Symbol(f, Decl(avoid.ts, 0, 0)) +>f : () => void class C { ->C : C, Symbol(C, Decl(avoid.ts, 7, 6)) +>C : C g() { ->g : () => void, Symbol(g, Decl(avoid.ts, 9, 9)) +>g : () => void } } var z=new C().g(); // error void fn ->z : void, Symbol(z, Decl(avoid.ts, 15, 3)) +>z : void >new C().g() : void ->new C().g : () => void, Symbol(C.g, Decl(avoid.ts, 9, 9)) +>new C().g : () => void >new C() : C ->C : typeof C, Symbol(C, Decl(avoid.ts, 7, 6)) ->g : () => void, Symbol(C.g, Decl(avoid.ts, 9, 9)) +>C : typeof C +>g : () => void var N=new f(); // ok with void fn ->N : any, Symbol(N, Decl(avoid.ts, 16, 3)) +>N : any >new f() : any ->f : () => void, Symbol(f, Decl(avoid.ts, 0, 0)) +>f : () => void diff --git a/tests/baselines/reference/badOverloadError.symbols b/tests/baselines/reference/badOverloadError.symbols new file mode 100644 index 0000000000000..86c0a332f8ff1 --- /dev/null +++ b/tests/baselines/reference/badOverloadError.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/badOverloadError.ts === +function method() { +>method : Symbol(method, Decl(badOverloadError.ts, 0, 0)) + + var dictionary = <{ [index: string]: string; }>{}; +>dictionary : Symbol(dictionary, Decl(badOverloadError.ts, 1, 7)) +>index : Symbol(index, Decl(badOverloadError.ts, 1, 25)) +} + diff --git a/tests/baselines/reference/badOverloadError.types b/tests/baselines/reference/badOverloadError.types index 8226707f39580..b8ae583a73cb8 100644 --- a/tests/baselines/reference/badOverloadError.types +++ b/tests/baselines/reference/badOverloadError.types @@ -1,11 +1,11 @@ === tests/cases/compiler/badOverloadError.ts === function method() { ->method : () => void, Symbol(method, Decl(badOverloadError.ts, 0, 0)) +>method : () => void var dictionary = <{ [index: string]: string; }>{}; ->dictionary : { [index: string]: string; }, Symbol(dictionary, Decl(badOverloadError.ts, 1, 7)) +>dictionary : { [index: string]: string; } ><{ [index: string]: string; }>{} : { [index: string]: string; } ->index : string, Symbol(index, Decl(badOverloadError.ts, 1, 25)) +>index : string >{} : { [x: string]: undefined; } } diff --git a/tests/baselines/reference/badThisBinding.symbols b/tests/baselines/reference/badThisBinding.symbols new file mode 100644 index 0000000000000..c1ca8d1f48137 --- /dev/null +++ b/tests/baselines/reference/badThisBinding.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/badThisBinding.ts === +declare function foo(a:any): any; +>foo : Symbol(foo, Decl(badThisBinding.ts, 0, 0)) +>a : Symbol(a, Decl(badThisBinding.ts, 0, 21)) + +declare function bar(a:any): any; +>bar : Symbol(bar, Decl(badThisBinding.ts, 0, 33)) +>a : Symbol(a, Decl(badThisBinding.ts, 1, 21)) + +class Greeter { +>Greeter : Symbol(Greeter, Decl(badThisBinding.ts, 1, 33)) + + constructor() { + foo(() => { +>foo : Symbol(foo, Decl(badThisBinding.ts, 0, 0)) + + bar(() => { +>bar : Symbol(bar, Decl(badThisBinding.ts, 0, 33)) + + var x = this; +>x : Symbol(x, Decl(badThisBinding.ts, 7, 19)) +>this : Symbol(Greeter, Decl(badThisBinding.ts, 1, 33)) + + }); + }); + } + +} diff --git a/tests/baselines/reference/badThisBinding.types b/tests/baselines/reference/badThisBinding.types index c4b65c281ebb8..a6b1c478d535c 100644 --- a/tests/baselines/reference/badThisBinding.types +++ b/tests/baselines/reference/badThisBinding.types @@ -1,29 +1,29 @@ === tests/cases/compiler/badThisBinding.ts === declare function foo(a:any): any; ->foo : (a: any) => any, Symbol(foo, Decl(badThisBinding.ts, 0, 0)) ->a : any, Symbol(a, Decl(badThisBinding.ts, 0, 21)) +>foo : (a: any) => any +>a : any declare function bar(a:any): any; ->bar : (a: any) => any, Symbol(bar, Decl(badThisBinding.ts, 0, 33)) ->a : any, Symbol(a, Decl(badThisBinding.ts, 1, 21)) +>bar : (a: any) => any +>a : any class Greeter { ->Greeter : Greeter, Symbol(Greeter, Decl(badThisBinding.ts, 1, 33)) +>Greeter : Greeter constructor() { foo(() => { >foo(() => { bar(() => { var x = this; }); }) : any ->foo : (a: any) => any, Symbol(foo, Decl(badThisBinding.ts, 0, 0)) +>foo : (a: any) => any >() => { bar(() => { var x = this; }); } : () => void bar(() => { >bar(() => { var x = this; }) : any ->bar : (a: any) => any, Symbol(bar, Decl(badThisBinding.ts, 0, 33)) +>bar : (a: any) => any >() => { var x = this; } : () => void var x = this; ->x : Greeter, Symbol(x, Decl(badThisBinding.ts, 7, 19)) ->this : Greeter, Symbol(Greeter, Decl(badThisBinding.ts, 1, 33)) +>x : Greeter +>this : Greeter }); }); diff --git a/tests/baselines/reference/baseIndexSignatureResolution.symbols b/tests/baselines/reference/baseIndexSignatureResolution.symbols new file mode 100644 index 0000000000000..297f6b092f3f5 --- /dev/null +++ b/tests/baselines/reference/baseIndexSignatureResolution.symbols @@ -0,0 +1,49 @@ +=== tests/cases/compiler/baseIndexSignatureResolution.ts === +class Base { private a: string; } +>Base : Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) +>a : Symbol(a, Decl(baseIndexSignatureResolution.ts, 0, 12)) + +class Derived extends Base { private b: string; } +>Derived : Symbol(Derived, Decl(baseIndexSignatureResolution.ts, 0, 33)) +>Base : Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) +>b : Symbol(b, Decl(baseIndexSignatureResolution.ts, 1, 28)) + +// Note - commmenting "extends Foo" prevents the error +interface Foo { +>Foo : Symbol(Foo, Decl(baseIndexSignatureResolution.ts, 1, 49)) + + [i: number]: Base; +>i : Symbol(i, Decl(baseIndexSignatureResolution.ts, 5, 5)) +>Base : Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) +} +interface FooOf extends Foo { +>FooOf : Symbol(FooOf, Decl(baseIndexSignatureResolution.ts, 6, 1)) +>TBase : Symbol(TBase, Decl(baseIndexSignatureResolution.ts, 7, 16)) +>Base : Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(baseIndexSignatureResolution.ts, 1, 49)) + + [i: number]: TBase; +>i : Symbol(i, Decl(baseIndexSignatureResolution.ts, 8, 5)) +>TBase : Symbol(TBase, Decl(baseIndexSignatureResolution.ts, 7, 16)) +} +var x: FooOf = null; +>x : Symbol(x, Decl(baseIndexSignatureResolution.ts, 10, 3)) +>FooOf : Symbol(FooOf, Decl(baseIndexSignatureResolution.ts, 6, 1)) +>Derived : Symbol(Derived, Decl(baseIndexSignatureResolution.ts, 0, 33)) + +var y: Derived = x[0]; +>y : Symbol(y, Decl(baseIndexSignatureResolution.ts, 11, 3)) +>Derived : Symbol(Derived, Decl(baseIndexSignatureResolution.ts, 0, 33)) +>x : Symbol(x, Decl(baseIndexSignatureResolution.ts, 10, 3)) + +/* +// Note - the equivalent for normal interface methods works fine: +interface A { + foo(): Base; +} +interface B extends A { + foo(): TBase; +} +var b: B = null; +var z: Derived = b.foo(); +*/ diff --git a/tests/baselines/reference/baseIndexSignatureResolution.types b/tests/baselines/reference/baseIndexSignatureResolution.types index 39c66d236a27b..90d143155fb28 100644 --- a/tests/baselines/reference/baseIndexSignatureResolution.types +++ b/tests/baselines/reference/baseIndexSignatureResolution.types @@ -1,42 +1,42 @@ === tests/cases/compiler/baseIndexSignatureResolution.ts === class Base { private a: string; } ->Base : Base, Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) ->a : string, Symbol(a, Decl(baseIndexSignatureResolution.ts, 0, 12)) +>Base : Base +>a : string class Derived extends Base { private b: string; } ->Derived : Derived, Symbol(Derived, Decl(baseIndexSignatureResolution.ts, 0, 33)) ->Base : Base, Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) ->b : string, Symbol(b, Decl(baseIndexSignatureResolution.ts, 1, 28)) +>Derived : Derived +>Base : Base +>b : string // Note - commmenting "extends Foo" prevents the error interface Foo { ->Foo : Foo, Symbol(Foo, Decl(baseIndexSignatureResolution.ts, 1, 49)) +>Foo : Foo [i: number]: Base; ->i : number, Symbol(i, Decl(baseIndexSignatureResolution.ts, 5, 5)) ->Base : Base, Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) +>i : number +>Base : Base } interface FooOf extends Foo { ->FooOf : FooOf, Symbol(FooOf, Decl(baseIndexSignatureResolution.ts, 6, 1)) ->TBase : TBase, Symbol(TBase, Decl(baseIndexSignatureResolution.ts, 7, 16)) ->Base : Base, Symbol(Base, Decl(baseIndexSignatureResolution.ts, 0, 0)) ->Foo : Foo, Symbol(Foo, Decl(baseIndexSignatureResolution.ts, 1, 49)) +>FooOf : FooOf +>TBase : TBase +>Base : Base +>Foo : Foo [i: number]: TBase; ->i : number, Symbol(i, Decl(baseIndexSignatureResolution.ts, 8, 5)) ->TBase : TBase, Symbol(TBase, Decl(baseIndexSignatureResolution.ts, 7, 16)) +>i : number +>TBase : TBase } var x: FooOf = null; ->x : FooOf, Symbol(x, Decl(baseIndexSignatureResolution.ts, 10, 3)) ->FooOf : FooOf, Symbol(FooOf, Decl(baseIndexSignatureResolution.ts, 6, 1)) ->Derived : Derived, Symbol(Derived, Decl(baseIndexSignatureResolution.ts, 0, 33)) +>x : FooOf +>FooOf : FooOf +>Derived : Derived >null : null var y: Derived = x[0]; ->y : Derived, Symbol(y, Decl(baseIndexSignatureResolution.ts, 11, 3)) ->Derived : Derived, Symbol(Derived, Decl(baseIndexSignatureResolution.ts, 0, 33)) +>y : Derived +>Derived : Derived >x[0] : Derived ->x : FooOf, Symbol(x, Decl(baseIndexSignatureResolution.ts, 10, 3)) +>x : FooOf >0 : number /* diff --git a/tests/baselines/reference/baseTypeAfterDerivedType.symbols b/tests/baselines/reference/baseTypeAfterDerivedType.symbols new file mode 100644 index 0000000000000..b085e0a41525a --- /dev/null +++ b/tests/baselines/reference/baseTypeAfterDerivedType.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/baseTypeAfterDerivedType.ts === +interface Derived extends Base { +>Derived : Symbol(Derived, Decl(baseTypeAfterDerivedType.ts, 0, 0)) +>Base : Symbol(Base, Decl(baseTypeAfterDerivedType.ts, 2, 1)) + + method(...args: any[]): void; +>method : Symbol(method, Decl(baseTypeAfterDerivedType.ts, 0, 32)) +>args : Symbol(args, Decl(baseTypeAfterDerivedType.ts, 1, 11)) +} + +interface Base { +>Base : Symbol(Base, Decl(baseTypeAfterDerivedType.ts, 2, 1)) + + method(...args: any[]): void; +>method : Symbol(method, Decl(baseTypeAfterDerivedType.ts, 4, 16)) +>args : Symbol(args, Decl(baseTypeAfterDerivedType.ts, 5, 11)) +} + +class Derived2 implements Base2 { +>Derived2 : Symbol(Derived2, Decl(baseTypeAfterDerivedType.ts, 6, 1)) +>Base2 : Symbol(Base2, Decl(baseTypeAfterDerivedType.ts, 10, 1)) + + method(...args: any[]): void { } +>method : Symbol(method, Decl(baseTypeAfterDerivedType.ts, 8, 33)) +>args : Symbol(args, Decl(baseTypeAfterDerivedType.ts, 9, 11)) +} + +interface Base2 { +>Base2 : Symbol(Base2, Decl(baseTypeAfterDerivedType.ts, 10, 1)) + + method(...args: any[]): void; +>method : Symbol(method, Decl(baseTypeAfterDerivedType.ts, 12, 17)) +>args : Symbol(args, Decl(baseTypeAfterDerivedType.ts, 13, 11)) +} + diff --git a/tests/baselines/reference/baseTypeAfterDerivedType.types b/tests/baselines/reference/baseTypeAfterDerivedType.types index 63bd7c09595ed..2ac50aa019ad1 100644 --- a/tests/baselines/reference/baseTypeAfterDerivedType.types +++ b/tests/baselines/reference/baseTypeAfterDerivedType.types @@ -1,35 +1,35 @@ === tests/cases/compiler/baseTypeAfterDerivedType.ts === interface Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(baseTypeAfterDerivedType.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(baseTypeAfterDerivedType.ts, 2, 1)) +>Derived : Derived +>Base : Base method(...args: any[]): void; ->method : (...args: any[]) => void, Symbol(method, Decl(baseTypeAfterDerivedType.ts, 0, 32)) ->args : any[], Symbol(args, Decl(baseTypeAfterDerivedType.ts, 1, 11)) +>method : (...args: any[]) => void +>args : any[] } interface Base { ->Base : Base, Symbol(Base, Decl(baseTypeAfterDerivedType.ts, 2, 1)) +>Base : Base method(...args: any[]): void; ->method : (...args: any[]) => void, Symbol(method, Decl(baseTypeAfterDerivedType.ts, 4, 16)) ->args : any[], Symbol(args, Decl(baseTypeAfterDerivedType.ts, 5, 11)) +>method : (...args: any[]) => void +>args : any[] } class Derived2 implements Base2 { ->Derived2 : Derived2, Symbol(Derived2, Decl(baseTypeAfterDerivedType.ts, 6, 1)) ->Base2 : Base2, Symbol(Base2, Decl(baseTypeAfterDerivedType.ts, 10, 1)) +>Derived2 : Derived2 +>Base2 : Base2 method(...args: any[]): void { } ->method : (...args: any[]) => void, Symbol(method, Decl(baseTypeAfterDerivedType.ts, 8, 33)) ->args : any[], Symbol(args, Decl(baseTypeAfterDerivedType.ts, 9, 11)) +>method : (...args: any[]) => void +>args : any[] } interface Base2 { ->Base2 : Base2, Symbol(Base2, Decl(baseTypeAfterDerivedType.ts, 10, 1)) +>Base2 : Base2 method(...args: any[]): void; ->method : (...args: any[]) => void, Symbol(method, Decl(baseTypeAfterDerivedType.ts, 12, 17)) ->args : any[], Symbol(args, Decl(baseTypeAfterDerivedType.ts, 13, 11)) +>method : (...args: any[]) => void +>args : any[] } diff --git a/tests/baselines/reference/baseTypeOrderChecking.symbols b/tests/baselines/reference/baseTypeOrderChecking.symbols new file mode 100644 index 0000000000000..05d913f481eaf --- /dev/null +++ b/tests/baselines/reference/baseTypeOrderChecking.symbols @@ -0,0 +1,51 @@ +=== tests/cases/compiler/baseTypeOrderChecking.ts === +var someVariable: Class4; +>someVariable : Symbol(someVariable, Decl(baseTypeOrderChecking.ts, 0, 3)) +>Class4 : Symbol(Class4, Decl(baseTypeOrderChecking.ts, 26, 1)) +>Class2 : Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) + + + +class Class1 +>Class1 : Symbol(Class1, Decl(baseTypeOrderChecking.ts, 0, 33)) + +{ + +} + + + +class Class2 extends Class1 +>Class2 : Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) +>Class1 : Symbol(Class1, Decl(baseTypeOrderChecking.ts, 0, 33)) + +{ + +} + + + +class Class3 +>Class3 : Symbol(Class3, Decl(baseTypeOrderChecking.ts, 16, 1)) +>T : Symbol(T, Decl(baseTypeOrderChecking.ts, 20, 13)) + +{ + + public memberVariable: Class2; +>memberVariable : Symbol(memberVariable, Decl(baseTypeOrderChecking.ts, 22, 1)) +>Class2 : Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) + +} + + + +class Class4 extends Class3 +>Class4 : Symbol(Class4, Decl(baseTypeOrderChecking.ts, 26, 1)) +>T : Symbol(T, Decl(baseTypeOrderChecking.ts, 30, 13)) +>Class3 : Symbol(Class3, Decl(baseTypeOrderChecking.ts, 16, 1)) +>T : Symbol(T, Decl(baseTypeOrderChecking.ts, 30, 13)) + +{ + +} + diff --git a/tests/baselines/reference/baseTypeOrderChecking.types b/tests/baselines/reference/baseTypeOrderChecking.types index 65805dd4b6ae8..4193f255f36c0 100644 --- a/tests/baselines/reference/baseTypeOrderChecking.types +++ b/tests/baselines/reference/baseTypeOrderChecking.types @@ -1,13 +1,13 @@ === tests/cases/compiler/baseTypeOrderChecking.ts === var someVariable: Class4; ->someVariable : Class4, Symbol(someVariable, Decl(baseTypeOrderChecking.ts, 0, 3)) ->Class4 : Class4, Symbol(Class4, Decl(baseTypeOrderChecking.ts, 26, 1)) ->Class2 : Class2, Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) +>someVariable : Class4 +>Class4 : Class4 +>Class2 : Class2 class Class1 ->Class1 : Class1, Symbol(Class1, Decl(baseTypeOrderChecking.ts, 0, 33)) +>Class1 : Class1 { @@ -16,8 +16,8 @@ class Class1 class Class2 extends Class1 ->Class2 : Class2, Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) ->Class1 : Class1, Symbol(Class1, Decl(baseTypeOrderChecking.ts, 0, 33)) +>Class2 : Class2 +>Class1 : Class1 { @@ -26,24 +26,24 @@ class Class2 extends Class1 class Class3 ->Class3 : Class3, Symbol(Class3, Decl(baseTypeOrderChecking.ts, 16, 1)) ->T : T, Symbol(T, Decl(baseTypeOrderChecking.ts, 20, 13)) +>Class3 : Class3 +>T : T { public memberVariable: Class2; ->memberVariable : Class2, Symbol(memberVariable, Decl(baseTypeOrderChecking.ts, 22, 1)) ->Class2 : Class2, Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) +>memberVariable : Class2 +>Class2 : Class2 } class Class4 extends Class3 ->Class4 : Class4, Symbol(Class4, Decl(baseTypeOrderChecking.ts, 26, 1)) ->T : T, Symbol(T, Decl(baseTypeOrderChecking.ts, 30, 13)) ->Class3 : Class3, Symbol(Class3, Decl(baseTypeOrderChecking.ts, 16, 1)) ->T : T, Symbol(T, Decl(baseTypeOrderChecking.ts, 30, 13)) +>Class4 : Class4 +>T : T +>Class3 : Class3 +>T : T { diff --git a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.symbols b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.symbols new file mode 100644 index 0000000000000..e6b6def094457 --- /dev/null +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.symbols @@ -0,0 +1,101 @@ +=== tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfConditionalExpressions.ts === +// conditional expressions return the best common type of the branches plus contextual type (using the first candidate if multiple BCTs exist) +// no errors expected here + +var a: { x: number; y?: number }; +>a : Symbol(a, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 3)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 8)) +>y : Symbol(y, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 19)) + +var b: { x: number; z?: number }; +>b : Symbol(b, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 3)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 8)) +>z : Symbol(z, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 19)) + +class Base { foo: string; } +>Base : Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) +>foo : Symbol(foo, Decl(bestCommonTypeOfConditionalExpressions.ts, 6, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 6, 27)) +>Base : Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) +>bar : Symbol(bar, Decl(bestCommonTypeOfConditionalExpressions.ts, 7, 28)) + +class Derived2 extends Base { baz: string; } +>Derived2 : Symbol(Derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 7, 43)) +>Base : Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) +>baz : Symbol(baz, Decl(bestCommonTypeOfConditionalExpressions.ts, 8, 29)) + +var base: Base; +>base : Symbol(base, Decl(bestCommonTypeOfConditionalExpressions.ts, 9, 3)) +>Base : Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) + +var derived: Derived; +>derived : Symbol(derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 10, 3)) +>Derived : Symbol(Derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 6, 27)) + +var derived2: Derived2; +>derived2 : Symbol(derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 11, 3)) +>Derived2 : Symbol(Derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 7, 43)) + +var r = true ? 1 : 2; +>r : Symbol(r, Decl(bestCommonTypeOfConditionalExpressions.ts, 13, 3)) + +var r3 = true ? 1 : {}; +>r3 : Symbol(r3, Decl(bestCommonTypeOfConditionalExpressions.ts, 14, 3)) + +var r4 = true ? a : b; // typeof a +>r4 : Symbol(r4, Decl(bestCommonTypeOfConditionalExpressions.ts, 15, 3)) +>a : Symbol(a, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 3)) +>b : Symbol(b, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 3)) + +var r5 = true ? b : a; // typeof b +>r5 : Symbol(r5, Decl(bestCommonTypeOfConditionalExpressions.ts, 16, 3)) +>b : Symbol(b, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 3)) +>a : Symbol(a, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 3)) + +var r6 = true ? (x: number) => { } : (x: Object) => { }; // returns number => void +>r6 : Symbol(r6, Decl(bestCommonTypeOfConditionalExpressions.ts, 17, 3)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 17, 17)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 17, 38)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var r7: (x: Object) => void = true ? (x: number) => { } : (x: Object) => { }; +>r7 : Symbol(r7, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 3)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 9)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 38)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 59)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var r8 = true ? (x: Object) => { } : (x: number) => { }; // returns Object => void +>r8 : Symbol(r8, Decl(bestCommonTypeOfConditionalExpressions.ts, 19, 3)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 19, 17)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 19, 38)) + +var r10: Base = true ? derived : derived2; // no error since we use the contextual type in BCT +>r10 : Symbol(r10, Decl(bestCommonTypeOfConditionalExpressions.ts, 20, 3)) +>Base : Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) +>derived : Symbol(derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 10, 3)) +>derived2 : Symbol(derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 11, 3)) + +var r11 = true ? base : derived2; +>r11 : Symbol(r11, Decl(bestCommonTypeOfConditionalExpressions.ts, 21, 3)) +>base : Symbol(base, Decl(bestCommonTypeOfConditionalExpressions.ts, 9, 3)) +>derived2 : Symbol(derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 11, 3)) + +function foo5(t: T, u: U): Object { +>foo5 : Symbol(foo5, Decl(bestCommonTypeOfConditionalExpressions.ts, 21, 33)) +>T : Symbol(T, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 14)) +>U : Symbol(U, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 16)) +>t : Symbol(t, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 20)) +>T : Symbol(T, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 14)) +>u : Symbol(u, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 25)) +>U : Symbol(U, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 16)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + return true ? t : u; // BCT is Object +>t : Symbol(t, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 20)) +>u : Symbol(u, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 25)) +} diff --git a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types index cce1eec6f8901..2a5ee6a2fe230 100644 --- a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types @@ -3,129 +3,129 @@ // no errors expected here var a: { x: number; y?: number }; ->a : { x: number; y?: number; }, Symbol(a, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 3)) ->x : number, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 8)) ->y : number, Symbol(y, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 19)) +>a : { x: number; y?: number; } +>x : number +>y : number var b: { x: number; z?: number }; ->b : { x: number; z?: number; }, Symbol(b, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 3)) ->x : number, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 8)) ->z : number, Symbol(z, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 19)) +>b : { x: number; z?: number; } +>x : number +>z : number class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) ->foo : string, Symbol(foo, Decl(bestCommonTypeOfConditionalExpressions.ts, 6, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 6, 27)) ->Base : Base, Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) ->bar : string, Symbol(bar, Decl(bestCommonTypeOfConditionalExpressions.ts, 7, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Base { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 7, 43)) ->Base : Base, Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) ->baz : string, Symbol(baz, Decl(bestCommonTypeOfConditionalExpressions.ts, 8, 29)) +>Derived2 : Derived2 +>Base : Base +>baz : string var base: Base; ->base : Base, Symbol(base, Decl(bestCommonTypeOfConditionalExpressions.ts, 9, 3)) ->Base : Base, Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) +>base : Base +>Base : Base var derived: Derived; ->derived : Derived, Symbol(derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 10, 3)) ->Derived : Derived, Symbol(Derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 6, 27)) +>derived : Derived +>Derived : Derived var derived2: Derived2; ->derived2 : Derived2, Symbol(derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 11, 3)) ->Derived2 : Derived2, Symbol(Derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 7, 43)) +>derived2 : Derived2 +>Derived2 : Derived2 var r = true ? 1 : 2; ->r : number, Symbol(r, Decl(bestCommonTypeOfConditionalExpressions.ts, 13, 3)) +>r : number >true ? 1 : 2 : number >true : boolean >1 : number >2 : number var r3 = true ? 1 : {}; ->r3 : {}, Symbol(r3, Decl(bestCommonTypeOfConditionalExpressions.ts, 14, 3)) +>r3 : {} >true ? 1 : {} : {} >true : boolean >1 : number >{} : {} var r4 = true ? a : b; // typeof a ->r4 : { x: number; y?: number; } | { x: number; z?: number; }, Symbol(r4, Decl(bestCommonTypeOfConditionalExpressions.ts, 15, 3)) +>r4 : { x: number; y?: number; } | { x: number; z?: number; } >true ? a : b : { x: number; y?: number; } | { x: number; z?: number; } >true : boolean ->a : { x: number; y?: number; }, Symbol(a, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 3)) ->b : { x: number; z?: number; }, Symbol(b, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 3)) +>a : { x: number; y?: number; } +>b : { x: number; z?: number; } var r5 = true ? b : a; // typeof b ->r5 : { x: number; y?: number; } | { x: number; z?: number; }, Symbol(r5, Decl(bestCommonTypeOfConditionalExpressions.ts, 16, 3)) +>r5 : { x: number; y?: number; } | { x: number; z?: number; } >true ? b : a : { x: number; y?: number; } | { x: number; z?: number; } >true : boolean ->b : { x: number; z?: number; }, Symbol(b, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 3)) ->a : { x: number; y?: number; }, Symbol(a, Decl(bestCommonTypeOfConditionalExpressions.ts, 3, 3)) +>b : { x: number; z?: number; } +>a : { x: number; y?: number; } var r6 = true ? (x: number) => { } : (x: Object) => { }; // returns number => void ->r6 : (x: number) => void, Symbol(r6, Decl(bestCommonTypeOfConditionalExpressions.ts, 17, 3)) +>r6 : (x: number) => void >true ? (x: number) => { } : (x: Object) => { } : (x: number) => void >true : boolean >(x: number) => { } : (x: number) => void ->x : number, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 17, 17)) +>x : number >(x: Object) => { } : (x: Object) => void ->x : Object, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 17, 38)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Object +>Object : Object var r7: (x: Object) => void = true ? (x: number) => { } : (x: Object) => { }; ->r7 : (x: Object) => void, Symbol(r7, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 3)) ->x : Object, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 9)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>r7 : (x: Object) => void +>x : Object +>Object : Object >true ? (x: number) => { } : (x: Object) => { } : (x: number) => void >true : boolean >(x: number) => { } : (x: number) => void ->x : number, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 38)) +>x : number >(x: Object) => { } : (x: Object) => void ->x : Object, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 18, 59)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Object +>Object : Object var r8 = true ? (x: Object) => { } : (x: number) => { }; // returns Object => void ->r8 : (x: Object) => void, Symbol(r8, Decl(bestCommonTypeOfConditionalExpressions.ts, 19, 3)) +>r8 : (x: Object) => void >true ? (x: Object) => { } : (x: number) => { } : (x: Object) => void >true : boolean >(x: Object) => { } : (x: Object) => void ->x : Object, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 19, 17)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Object +>Object : Object >(x: number) => { } : (x: number) => void ->x : number, Symbol(x, Decl(bestCommonTypeOfConditionalExpressions.ts, 19, 38)) +>x : number var r10: Base = true ? derived : derived2; // no error since we use the contextual type in BCT ->r10 : Base, Symbol(r10, Decl(bestCommonTypeOfConditionalExpressions.ts, 20, 3)) ->Base : Base, Symbol(Base, Decl(bestCommonTypeOfConditionalExpressions.ts, 4, 33)) +>r10 : Base +>Base : Base >true ? derived : derived2 : Derived | Derived2 >true : boolean ->derived : Derived, Symbol(derived, Decl(bestCommonTypeOfConditionalExpressions.ts, 10, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 11, 3)) +>derived : Derived +>derived2 : Derived2 var r11 = true ? base : derived2; ->r11 : Base, Symbol(r11, Decl(bestCommonTypeOfConditionalExpressions.ts, 21, 3)) +>r11 : Base >true ? base : derived2 : Base >true : boolean ->base : Base, Symbol(base, Decl(bestCommonTypeOfConditionalExpressions.ts, 9, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(bestCommonTypeOfConditionalExpressions.ts, 11, 3)) +>base : Base +>derived2 : Derived2 function foo5(t: T, u: U): Object { ->foo5 : (t: T, u: U) => Object, Symbol(foo5, Decl(bestCommonTypeOfConditionalExpressions.ts, 21, 33)) ->T : T, Symbol(T, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 14)) ->U : U, Symbol(U, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 16)) ->t : T, Symbol(t, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 20)) ->T : T, Symbol(T, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 14)) ->u : U, Symbol(u, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 25)) ->U : U, Symbol(U, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 16)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>foo5 : (t: T, u: U) => Object +>T : T +>U : U +>t : T +>T : T +>u : U +>U : U +>Object : Object return true ? t : u; // BCT is Object >true ? t : u : T | U >true : boolean ->t : T, Symbol(t, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 20)) ->u : U, Symbol(u, Decl(bestCommonTypeOfConditionalExpressions.ts, 23, 25)) +>t : T +>u : U } diff --git a/tests/baselines/reference/bestCommonTypeOfTuple.symbols b/tests/baselines/reference/bestCommonTypeOfTuple.symbols new file mode 100644 index 0000000000000..59549da0cac28 --- /dev/null +++ b/tests/baselines/reference/bestCommonTypeOfTuple.symbols @@ -0,0 +1,84 @@ +=== tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple.ts === +function f1(x: number): string { return "foo"; } +>f1 : Symbol(f1, Decl(bestCommonTypeOfTuple.ts, 0, 0)) +>x : Symbol(x, Decl(bestCommonTypeOfTuple.ts, 0, 12)) + +function f2(x: number): number { return 10; } +>f2 : Symbol(f2, Decl(bestCommonTypeOfTuple.ts, 0, 48)) +>x : Symbol(x, Decl(bestCommonTypeOfTuple.ts, 2, 12)) + +function f3(x: number): boolean { return true; } +>f3 : Symbol(f3, Decl(bestCommonTypeOfTuple.ts, 2, 45)) +>x : Symbol(x, Decl(bestCommonTypeOfTuple.ts, 4, 12)) + +enum E1 { one } +>E1 : Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) +>one : Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) + +enum E2 { two } +>E2 : Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) +>two : Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) + + +var t1: [(x: number) => string, (x: number) => number]; +>t1 : Symbol(t1, Decl(bestCommonTypeOfTuple.ts, 11, 3)) +>x : Symbol(x, Decl(bestCommonTypeOfTuple.ts, 11, 10)) +>x : Symbol(x, Decl(bestCommonTypeOfTuple.ts, 11, 33)) + +var t2: [E1, E2]; +>t2 : Symbol(t2, Decl(bestCommonTypeOfTuple.ts, 12, 3)) +>E1 : Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) +>E2 : Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) + +var t3: [number, any]; +>t3 : Symbol(t3, Decl(bestCommonTypeOfTuple.ts, 13, 3)) + +var t4: [E1, E2, number]; +>t4 : Symbol(t4, Decl(bestCommonTypeOfTuple.ts, 14, 3)) +>E1 : Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) +>E2 : Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) + +// no error +t1 = [f1, f2]; +>t1 : Symbol(t1, Decl(bestCommonTypeOfTuple.ts, 11, 3)) +>f1 : Symbol(f1, Decl(bestCommonTypeOfTuple.ts, 0, 0)) +>f2 : Symbol(f2, Decl(bestCommonTypeOfTuple.ts, 0, 48)) + +t2 = [E1.one, E2.two]; +>t2 : Symbol(t2, Decl(bestCommonTypeOfTuple.ts, 12, 3)) +>E1.one : Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) +>E1 : Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) +>one : Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) +>E2.two : Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) +>E2 : Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) +>two : Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) + +t3 = [5, undefined]; +>t3 : Symbol(t3, Decl(bestCommonTypeOfTuple.ts, 13, 3)) +>undefined : Symbol(undefined) + +t4 = [E1.one, E2.two, 20]; +>t4 : Symbol(t4, Decl(bestCommonTypeOfTuple.ts, 14, 3)) +>E1.one : Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) +>E1 : Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) +>one : Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) +>E2.two : Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) +>E2 : Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) +>two : Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) + +var e1 = t1[2]; // {} +>e1 : Symbol(e1, Decl(bestCommonTypeOfTuple.ts, 21, 3)) +>t1 : Symbol(t1, Decl(bestCommonTypeOfTuple.ts, 11, 3)) + +var e2 = t2[2]; // {} +>e2 : Symbol(e2, Decl(bestCommonTypeOfTuple.ts, 22, 3)) +>t2 : Symbol(t2, Decl(bestCommonTypeOfTuple.ts, 12, 3)) + +var e3 = t3[2]; // any +>e3 : Symbol(e3, Decl(bestCommonTypeOfTuple.ts, 23, 3)) +>t3 : Symbol(t3, Decl(bestCommonTypeOfTuple.ts, 13, 3)) + +var e4 = t4[3]; // number +>e4 : Symbol(e4, Decl(bestCommonTypeOfTuple.ts, 24, 3)) +>t4 : Symbol(t4, Decl(bestCommonTypeOfTuple.ts, 14, 3)) + diff --git a/tests/baselines/reference/bestCommonTypeOfTuple.types b/tests/baselines/reference/bestCommonTypeOfTuple.types index 318995d5aa42f..7b7302a9cc2a0 100644 --- a/tests/baselines/reference/bestCommonTypeOfTuple.types +++ b/tests/baselines/reference/bestCommonTypeOfTuple.types @@ -1,105 +1,105 @@ === tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple.ts === function f1(x: number): string { return "foo"; } ->f1 : (x: number) => string, Symbol(f1, Decl(bestCommonTypeOfTuple.ts, 0, 0)) ->x : number, Symbol(x, Decl(bestCommonTypeOfTuple.ts, 0, 12)) +>f1 : (x: number) => string +>x : number >"foo" : string function f2(x: number): number { return 10; } ->f2 : (x: number) => number, Symbol(f2, Decl(bestCommonTypeOfTuple.ts, 0, 48)) ->x : number, Symbol(x, Decl(bestCommonTypeOfTuple.ts, 2, 12)) +>f2 : (x: number) => number +>x : number >10 : number function f3(x: number): boolean { return true; } ->f3 : (x: number) => boolean, Symbol(f3, Decl(bestCommonTypeOfTuple.ts, 2, 45)) ->x : number, Symbol(x, Decl(bestCommonTypeOfTuple.ts, 4, 12)) +>f3 : (x: number) => boolean +>x : number >true : boolean enum E1 { one } ->E1 : E1, Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) ->one : E1, Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) +>E1 : E1 +>one : E1 enum E2 { two } ->E2 : E2, Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) ->two : E2, Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) +>E2 : E2 +>two : E2 var t1: [(x: number) => string, (x: number) => number]; ->t1 : [(x: number) => string, (x: number) => number], Symbol(t1, Decl(bestCommonTypeOfTuple.ts, 11, 3)) ->x : number, Symbol(x, Decl(bestCommonTypeOfTuple.ts, 11, 10)) ->x : number, Symbol(x, Decl(bestCommonTypeOfTuple.ts, 11, 33)) +>t1 : [(x: number) => string, (x: number) => number] +>x : number +>x : number var t2: [E1, E2]; ->t2 : [E1, E2], Symbol(t2, Decl(bestCommonTypeOfTuple.ts, 12, 3)) ->E1 : E1, Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) ->E2 : E2, Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) +>t2 : [E1, E2] +>E1 : E1 +>E2 : E2 var t3: [number, any]; ->t3 : [number, any], Symbol(t3, Decl(bestCommonTypeOfTuple.ts, 13, 3)) +>t3 : [number, any] var t4: [E1, E2, number]; ->t4 : [E1, E2, number], Symbol(t4, Decl(bestCommonTypeOfTuple.ts, 14, 3)) ->E1 : E1, Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) ->E2 : E2, Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) +>t4 : [E1, E2, number] +>E1 : E1 +>E2 : E2 // no error t1 = [f1, f2]; >t1 = [f1, f2] : [(x: number) => string, (x: number) => number] ->t1 : [(x: number) => string, (x: number) => number], Symbol(t1, Decl(bestCommonTypeOfTuple.ts, 11, 3)) +>t1 : [(x: number) => string, (x: number) => number] >[f1, f2] : [(x: number) => string, (x: number) => number] ->f1 : (x: number) => string, Symbol(f1, Decl(bestCommonTypeOfTuple.ts, 0, 0)) ->f2 : (x: number) => number, Symbol(f2, Decl(bestCommonTypeOfTuple.ts, 0, 48)) +>f1 : (x: number) => string +>f2 : (x: number) => number t2 = [E1.one, E2.two]; >t2 = [E1.one, E2.two] : [E1, E2] ->t2 : [E1, E2], Symbol(t2, Decl(bestCommonTypeOfTuple.ts, 12, 3)) +>t2 : [E1, E2] >[E1.one, E2.two] : [E1, E2] ->E1.one : E1, Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) ->E1 : typeof E1, Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) ->one : E1, Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) ->E2.two : E2, Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) ->E2 : typeof E2, Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) ->two : E2, Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) +>E1.one : E1 +>E1 : typeof E1 +>one : E1 +>E2.two : E2 +>E2 : typeof E2 +>two : E2 t3 = [5, undefined]; >t3 = [5, undefined] : [number, undefined] ->t3 : [number, any], Symbol(t3, Decl(bestCommonTypeOfTuple.ts, 13, 3)) +>t3 : [number, any] >[5, undefined] : [number, undefined] >5 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined t4 = [E1.one, E2.two, 20]; >t4 = [E1.one, E2.two, 20] : [E1, E2, number] ->t4 : [E1, E2, number], Symbol(t4, Decl(bestCommonTypeOfTuple.ts, 14, 3)) +>t4 : [E1, E2, number] >[E1.one, E2.two, 20] : [E1, E2, number] ->E1.one : E1, Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) ->E1 : typeof E1, Symbol(E1, Decl(bestCommonTypeOfTuple.ts, 4, 48)) ->one : E1, Symbol(E1.one, Decl(bestCommonTypeOfTuple.ts, 6, 9)) ->E2.two : E2, Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) ->E2 : typeof E2, Symbol(E2, Decl(bestCommonTypeOfTuple.ts, 6, 15)) ->two : E2, Symbol(E2.two, Decl(bestCommonTypeOfTuple.ts, 8, 9)) +>E1.one : E1 +>E1 : typeof E1 +>one : E1 +>E2.two : E2 +>E2 : typeof E2 +>two : E2 >20 : number var e1 = t1[2]; // {} ->e1 : ((x: number) => string) | ((x: number) => number), Symbol(e1, Decl(bestCommonTypeOfTuple.ts, 21, 3)) +>e1 : ((x: number) => string) | ((x: number) => number) >t1[2] : ((x: number) => string) | ((x: number) => number) ->t1 : [(x: number) => string, (x: number) => number], Symbol(t1, Decl(bestCommonTypeOfTuple.ts, 11, 3)) +>t1 : [(x: number) => string, (x: number) => number] >2 : number var e2 = t2[2]; // {} ->e2 : E1 | E2, Symbol(e2, Decl(bestCommonTypeOfTuple.ts, 22, 3)) +>e2 : E1 | E2 >t2[2] : E1 | E2 ->t2 : [E1, E2], Symbol(t2, Decl(bestCommonTypeOfTuple.ts, 12, 3)) +>t2 : [E1, E2] >2 : number var e3 = t3[2]; // any ->e3 : any, Symbol(e3, Decl(bestCommonTypeOfTuple.ts, 23, 3)) +>e3 : any >t3[2] : any ->t3 : [number, any], Symbol(t3, Decl(bestCommonTypeOfTuple.ts, 13, 3)) +>t3 : [number, any] >2 : number var e4 = t4[3]; // number ->e4 : number, Symbol(e4, Decl(bestCommonTypeOfTuple.ts, 24, 3)) +>e4 : number >t4[3] : number ->t4 : [E1, E2, number], Symbol(t4, Decl(bestCommonTypeOfTuple.ts, 14, 3)) +>t4 : [E1, E2, number] >3 : number diff --git a/tests/baselines/reference/bestCommonTypeOfTuple2.symbols b/tests/baselines/reference/bestCommonTypeOfTuple2.symbols new file mode 100644 index 0000000000000..842d07c417cf3 --- /dev/null +++ b/tests/baselines/reference/bestCommonTypeOfTuple2.symbols @@ -0,0 +1,85 @@ +=== tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple2.ts === +interface base { } +>base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) + +interface base1 { i } +>base1 : Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) +>i : Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 1, 17)) + +class C implements base { c } +>C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) +>base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) +>c : Symbol(c, Decl(bestCommonTypeOfTuple2.ts, 2, 25)) + +class D implements base { d } +>D : Symbol(D, Decl(bestCommonTypeOfTuple2.ts, 2, 29)) +>base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) +>d : Symbol(d, Decl(bestCommonTypeOfTuple2.ts, 3, 25)) + +class E implements base { e } +>E : Symbol(E, Decl(bestCommonTypeOfTuple2.ts, 3, 29)) +>base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) +>e : Symbol(e, Decl(bestCommonTypeOfTuple2.ts, 4, 25)) + +class F extends C { f } +>F : Symbol(F, Decl(bestCommonTypeOfTuple2.ts, 4, 29)) +>C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) +>f : Symbol(f, Decl(bestCommonTypeOfTuple2.ts, 5, 19)) + +class C1 implements base1 { i = "foo"; c } +>C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) +>base1 : Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) +>i : Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 7, 27)) +>c : Symbol(c, Decl(bestCommonTypeOfTuple2.ts, 7, 38)) + +class D1 extends C1 { i = "bar"; d } +>D1 : Symbol(D1, Decl(bestCommonTypeOfTuple2.ts, 7, 42)) +>C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) +>i : Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 8, 21)) +>d : Symbol(d, Decl(bestCommonTypeOfTuple2.ts, 8, 32)) + +var t1: [C, base]; +>t1 : Symbol(t1, Decl(bestCommonTypeOfTuple2.ts, 10, 3)) +>C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) +>base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) + +var t2: [C, D]; +>t2 : Symbol(t2, Decl(bestCommonTypeOfTuple2.ts, 11, 3)) +>C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) +>D : Symbol(D, Decl(bestCommonTypeOfTuple2.ts, 2, 29)) + +var t3: [C1, D1]; +>t3 : Symbol(t3, Decl(bestCommonTypeOfTuple2.ts, 12, 3)) +>C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) +>D1 : Symbol(D1, Decl(bestCommonTypeOfTuple2.ts, 7, 42)) + +var t4: [base1, C1]; +>t4 : Symbol(t4, Decl(bestCommonTypeOfTuple2.ts, 13, 3)) +>base1 : Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) +>C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) + +var t5: [C1, F] +>t5 : Symbol(t5, Decl(bestCommonTypeOfTuple2.ts, 14, 3)) +>C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) +>F : Symbol(F, Decl(bestCommonTypeOfTuple2.ts, 4, 29)) + +var e11 = t1[4]; // base +>e11 : Symbol(e11, Decl(bestCommonTypeOfTuple2.ts, 16, 3)) +>t1 : Symbol(t1, Decl(bestCommonTypeOfTuple2.ts, 10, 3)) + +var e21 = t2[4]; // {} +>e21 : Symbol(e21, Decl(bestCommonTypeOfTuple2.ts, 17, 3)) +>t2 : Symbol(t2, Decl(bestCommonTypeOfTuple2.ts, 11, 3)) + +var e31 = t3[4]; // C1 +>e31 : Symbol(e31, Decl(bestCommonTypeOfTuple2.ts, 18, 3)) +>t3 : Symbol(t3, Decl(bestCommonTypeOfTuple2.ts, 12, 3)) + +var e41 = t4[2]; // base1 +>e41 : Symbol(e41, Decl(bestCommonTypeOfTuple2.ts, 19, 3)) +>t4 : Symbol(t4, Decl(bestCommonTypeOfTuple2.ts, 13, 3)) + +var e51 = t5[2]; // {} +>e51 : Symbol(e51, Decl(bestCommonTypeOfTuple2.ts, 20, 3)) +>t5 : Symbol(t5, Decl(bestCommonTypeOfTuple2.ts, 14, 3)) + diff --git a/tests/baselines/reference/bestCommonTypeOfTuple2.types b/tests/baselines/reference/bestCommonTypeOfTuple2.types index 9f7667816c965..32196fdf66854 100644 --- a/tests/baselines/reference/bestCommonTypeOfTuple2.types +++ b/tests/baselines/reference/bestCommonTypeOfTuple2.types @@ -1,97 +1,97 @@ === tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple2.ts === interface base { } ->base : base, Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) +>base : base interface base1 { i } ->base1 : base1, Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) ->i : any, Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 1, 17)) +>base1 : base1 +>i : any class C implements base { c } ->C : C, Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) ->base : base, Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) ->c : any, Symbol(c, Decl(bestCommonTypeOfTuple2.ts, 2, 25)) +>C : C +>base : base +>c : any class D implements base { d } ->D : D, Symbol(D, Decl(bestCommonTypeOfTuple2.ts, 2, 29)) ->base : base, Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) ->d : any, Symbol(d, Decl(bestCommonTypeOfTuple2.ts, 3, 25)) +>D : D +>base : base +>d : any class E implements base { e } ->E : E, Symbol(E, Decl(bestCommonTypeOfTuple2.ts, 3, 29)) ->base : base, Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) ->e : any, Symbol(e, Decl(bestCommonTypeOfTuple2.ts, 4, 25)) +>E : E +>base : base +>e : any class F extends C { f } ->F : F, Symbol(F, Decl(bestCommonTypeOfTuple2.ts, 4, 29)) ->C : C, Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) ->f : any, Symbol(f, Decl(bestCommonTypeOfTuple2.ts, 5, 19)) +>F : F +>C : C +>f : any class C1 implements base1 { i = "foo"; c } ->C1 : C1, Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) ->base1 : base1, Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) ->i : string, Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 7, 27)) +>C1 : C1 +>base1 : base1 +>i : string >"foo" : string ->c : any, Symbol(c, Decl(bestCommonTypeOfTuple2.ts, 7, 38)) +>c : any class D1 extends C1 { i = "bar"; d } ->D1 : D1, Symbol(D1, Decl(bestCommonTypeOfTuple2.ts, 7, 42)) ->C1 : C1, Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) ->i : string, Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 8, 21)) +>D1 : D1 +>C1 : C1 +>i : string >"bar" : string ->d : any, Symbol(d, Decl(bestCommonTypeOfTuple2.ts, 8, 32)) +>d : any var t1: [C, base]; ->t1 : [C, base], Symbol(t1, Decl(bestCommonTypeOfTuple2.ts, 10, 3)) ->C : C, Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) ->base : base, Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) +>t1 : [C, base] +>C : C +>base : base var t2: [C, D]; ->t2 : [C, D], Symbol(t2, Decl(bestCommonTypeOfTuple2.ts, 11, 3)) ->C : C, Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) ->D : D, Symbol(D, Decl(bestCommonTypeOfTuple2.ts, 2, 29)) +>t2 : [C, D] +>C : C +>D : D var t3: [C1, D1]; ->t3 : [C1, D1], Symbol(t3, Decl(bestCommonTypeOfTuple2.ts, 12, 3)) ->C1 : C1, Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) ->D1 : D1, Symbol(D1, Decl(bestCommonTypeOfTuple2.ts, 7, 42)) +>t3 : [C1, D1] +>C1 : C1 +>D1 : D1 var t4: [base1, C1]; ->t4 : [base1, C1], Symbol(t4, Decl(bestCommonTypeOfTuple2.ts, 13, 3)) ->base1 : base1, Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) ->C1 : C1, Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) +>t4 : [base1, C1] +>base1 : base1 +>C1 : C1 var t5: [C1, F] ->t5 : [C1, F], Symbol(t5, Decl(bestCommonTypeOfTuple2.ts, 14, 3)) ->C1 : C1, Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) ->F : F, Symbol(F, Decl(bestCommonTypeOfTuple2.ts, 4, 29)) +>t5 : [C1, F] +>C1 : C1 +>F : F var e11 = t1[4]; // base ->e11 : base, Symbol(e11, Decl(bestCommonTypeOfTuple2.ts, 16, 3)) +>e11 : base >t1[4] : base ->t1 : [C, base], Symbol(t1, Decl(bestCommonTypeOfTuple2.ts, 10, 3)) +>t1 : [C, base] >4 : number var e21 = t2[4]; // {} ->e21 : C | D, Symbol(e21, Decl(bestCommonTypeOfTuple2.ts, 17, 3)) +>e21 : C | D >t2[4] : C | D ->t2 : [C, D], Symbol(t2, Decl(bestCommonTypeOfTuple2.ts, 11, 3)) +>t2 : [C, D] >4 : number var e31 = t3[4]; // C1 ->e31 : C1, Symbol(e31, Decl(bestCommonTypeOfTuple2.ts, 18, 3)) +>e31 : C1 >t3[4] : C1 ->t3 : [C1, D1], Symbol(t3, Decl(bestCommonTypeOfTuple2.ts, 12, 3)) +>t3 : [C1, D1] >4 : number var e41 = t4[2]; // base1 ->e41 : base1, Symbol(e41, Decl(bestCommonTypeOfTuple2.ts, 19, 3)) +>e41 : base1 >t4[2] : base1 ->t4 : [base1, C1], Symbol(t4, Decl(bestCommonTypeOfTuple2.ts, 13, 3)) +>t4 : [base1, C1] >2 : number var e51 = t5[2]; // {} ->e51 : F | C1, Symbol(e51, Decl(bestCommonTypeOfTuple2.ts, 20, 3)) +>e51 : F | C1 >t5[2] : F | C1 ->t5 : [C1, F], Symbol(t5, Decl(bestCommonTypeOfTuple2.ts, 14, 3)) +>t5 : [C1, F] >2 : number diff --git a/tests/baselines/reference/bestCommonTypeReturnStatement.symbols b/tests/baselines/reference/bestCommonTypeReturnStatement.symbols new file mode 100644 index 0000000000000..43e04ef037d60 --- /dev/null +++ b/tests/baselines/reference/bestCommonTypeReturnStatement.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/bestCommonTypeReturnStatement.ts === +interface IPromise { +>IPromise : Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) +>T : Symbol(T, Decl(bestCommonTypeReturnStatement.ts, 0, 19)) + + then(successCallback: (promiseValue: T) => any, errorCallback?: (reason: any) => any): IPromise; +>then : Symbol(then, Decl(bestCommonTypeReturnStatement.ts, 0, 23)) +>successCallback : Symbol(successCallback, Decl(bestCommonTypeReturnStatement.ts, 1, 9)) +>promiseValue : Symbol(promiseValue, Decl(bestCommonTypeReturnStatement.ts, 1, 27)) +>T : Symbol(T, Decl(bestCommonTypeReturnStatement.ts, 0, 19)) +>errorCallback : Symbol(errorCallback, Decl(bestCommonTypeReturnStatement.ts, 1, 51)) +>reason : Symbol(reason, Decl(bestCommonTypeReturnStatement.ts, 1, 69)) +>IPromise : Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) +} + +function f() { +>f : Symbol(f, Decl(bestCommonTypeReturnStatement.ts, 2, 1)) + + if (true) return b(); +>b : Symbol(b, Decl(bestCommonTypeReturnStatement.ts, 7, 1)) + + return d(); +>d : Symbol(d, Decl(bestCommonTypeReturnStatement.ts, 10, 45)) +} + + +function b(): IPromise { return null; } +>b : Symbol(b, Decl(bestCommonTypeReturnStatement.ts, 7, 1)) +>IPromise : Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) + +function d(): IPromise { return null; } +>d : Symbol(d, Decl(bestCommonTypeReturnStatement.ts, 10, 45)) +>IPromise : Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) + diff --git a/tests/baselines/reference/bestCommonTypeReturnStatement.types b/tests/baselines/reference/bestCommonTypeReturnStatement.types index 2f54897fee04c..28974f064a541 100644 --- a/tests/baselines/reference/bestCommonTypeReturnStatement.types +++ b/tests/baselines/reference/bestCommonTypeReturnStatement.types @@ -1,39 +1,39 @@ === tests/cases/compiler/bestCommonTypeReturnStatement.ts === interface IPromise { ->IPromise : IPromise, Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) ->T : T, Symbol(T, Decl(bestCommonTypeReturnStatement.ts, 0, 19)) +>IPromise : IPromise +>T : T then(successCallback: (promiseValue: T) => any, errorCallback?: (reason: any) => any): IPromise; ->then : (successCallback: (promiseValue: T) => any, errorCallback?: (reason: any) => any) => IPromise, Symbol(then, Decl(bestCommonTypeReturnStatement.ts, 0, 23)) ->successCallback : (promiseValue: T) => any, Symbol(successCallback, Decl(bestCommonTypeReturnStatement.ts, 1, 9)) ->promiseValue : T, Symbol(promiseValue, Decl(bestCommonTypeReturnStatement.ts, 1, 27)) ->T : T, Symbol(T, Decl(bestCommonTypeReturnStatement.ts, 0, 19)) ->errorCallback : (reason: any) => any, Symbol(errorCallback, Decl(bestCommonTypeReturnStatement.ts, 1, 51)) ->reason : any, Symbol(reason, Decl(bestCommonTypeReturnStatement.ts, 1, 69)) ->IPromise : IPromise, Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) +>then : (successCallback: (promiseValue: T) => any, errorCallback?: (reason: any) => any) => IPromise +>successCallback : (promiseValue: T) => any +>promiseValue : T +>T : T +>errorCallback : (reason: any) => any +>reason : any +>IPromise : IPromise } function f() { ->f : () => IPromise, Symbol(f, Decl(bestCommonTypeReturnStatement.ts, 2, 1)) +>f : () => IPromise if (true) return b(); >true : boolean >b() : IPromise ->b : () => IPromise, Symbol(b, Decl(bestCommonTypeReturnStatement.ts, 7, 1)) +>b : () => IPromise return d(); >d() : IPromise ->d : () => IPromise, Symbol(d, Decl(bestCommonTypeReturnStatement.ts, 10, 45)) +>d : () => IPromise } function b(): IPromise { return null; } ->b : () => IPromise, Symbol(b, Decl(bestCommonTypeReturnStatement.ts, 7, 1)) ->IPromise : IPromise, Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) +>b : () => IPromise +>IPromise : IPromise >null : null function d(): IPromise { return null; } ->d : () => IPromise, Symbol(d, Decl(bestCommonTypeReturnStatement.ts, 10, 45)) ->IPromise : IPromise, Symbol(IPromise, Decl(bestCommonTypeReturnStatement.ts, 0, 0)) +>d : () => IPromise +>IPromise : IPromise >null : null diff --git a/tests/baselines/reference/bestCommonTypeWithContextualTyping.symbols b/tests/baselines/reference/bestCommonTypeWithContextualTyping.symbols new file mode 100644 index 0000000000000..cfa5310bd3c97 --- /dev/null +++ b/tests/baselines/reference/bestCommonTypeWithContextualTyping.symbols @@ -0,0 +1,52 @@ +=== tests/cases/compiler/bestCommonTypeWithContextualTyping.ts === +interface Contextual { +>Contextual : Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) + + dummy; +>dummy : Symbol(dummy, Decl(bestCommonTypeWithContextualTyping.ts, 0, 22)) + + p?: number; +>p : Symbol(p, Decl(bestCommonTypeWithContextualTyping.ts, 1, 10)) +} + +interface Ellement { +>Ellement : Symbol(Ellement, Decl(bestCommonTypeWithContextualTyping.ts, 3, 1)) + + dummy; +>dummy : Symbol(dummy, Decl(bestCommonTypeWithContextualTyping.ts, 5, 20)) + + p: any; +>p : Symbol(p, Decl(bestCommonTypeWithContextualTyping.ts, 6, 10)) +} + +var e: Ellement; +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>Ellement : Symbol(Ellement, Decl(bestCommonTypeWithContextualTyping.ts, 3, 1)) + +// All of these should pass. Neither type is a supertype of the other, but the RHS should +// always use Ellement in these examples (not Contextual). Because Ellement is assignable +// to Contextual, no errors. +var arr: Contextual[] = [e]; // Ellement[] +>arr : Symbol(arr, Decl(bestCommonTypeWithContextualTyping.ts, 15, 3)) +>Contextual : Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) + +var obj: { [s: string]: Contextual } = { s: e }; // { s: Ellement; [s: string]: Ellement } +>obj : Symbol(obj, Decl(bestCommonTypeWithContextualTyping.ts, 16, 3)) +>s : Symbol(s, Decl(bestCommonTypeWithContextualTyping.ts, 16, 12)) +>Contextual : Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>s : Symbol(s, Decl(bestCommonTypeWithContextualTyping.ts, 16, 40)) +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) + +var conditional: Contextual = null ? e : e; // Ellement +>conditional : Symbol(conditional, Decl(bestCommonTypeWithContextualTyping.ts, 18, 3)) +>Contextual : Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) + +var contextualOr: Contextual = e || e; // Ellement +>contextualOr : Symbol(contextualOr, Decl(bestCommonTypeWithContextualTyping.ts, 19, 3)) +>Contextual : Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>e : Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) + diff --git a/tests/baselines/reference/bestCommonTypeWithContextualTyping.types b/tests/baselines/reference/bestCommonTypeWithContextualTyping.types index 924a8fa7a531b..628fe82012a8e 100644 --- a/tests/baselines/reference/bestCommonTypeWithContextualTyping.types +++ b/tests/baselines/reference/bestCommonTypeWithContextualTyping.types @@ -1,57 +1,57 @@ === tests/cases/compiler/bestCommonTypeWithContextualTyping.ts === interface Contextual { ->Contextual : Contextual, Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>Contextual : Contextual dummy; ->dummy : any, Symbol(dummy, Decl(bestCommonTypeWithContextualTyping.ts, 0, 22)) +>dummy : any p?: number; ->p : number, Symbol(p, Decl(bestCommonTypeWithContextualTyping.ts, 1, 10)) +>p : number } interface Ellement { ->Ellement : Ellement, Symbol(Ellement, Decl(bestCommonTypeWithContextualTyping.ts, 3, 1)) +>Ellement : Ellement dummy; ->dummy : any, Symbol(dummy, Decl(bestCommonTypeWithContextualTyping.ts, 5, 20)) +>dummy : any p: any; ->p : any, Symbol(p, Decl(bestCommonTypeWithContextualTyping.ts, 6, 10)) +>p : any } var e: Ellement; ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) ->Ellement : Ellement, Symbol(Ellement, Decl(bestCommonTypeWithContextualTyping.ts, 3, 1)) +>e : Ellement +>Ellement : Ellement // All of these should pass. Neither type is a supertype of the other, but the RHS should // always use Ellement in these examples (not Contextual). Because Ellement is assignable // to Contextual, no errors. var arr: Contextual[] = [e]; // Ellement[] ->arr : Contextual[], Symbol(arr, Decl(bestCommonTypeWithContextualTyping.ts, 15, 3)) ->Contextual : Contextual, Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>arr : Contextual[] +>Contextual : Contextual >[e] : Ellement[] ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>e : Ellement var obj: { [s: string]: Contextual } = { s: e }; // { s: Ellement; [s: string]: Ellement } ->obj : { [s: string]: Contextual; }, Symbol(obj, Decl(bestCommonTypeWithContextualTyping.ts, 16, 3)) ->s : string, Symbol(s, Decl(bestCommonTypeWithContextualTyping.ts, 16, 12)) ->Contextual : Contextual, Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>obj : { [s: string]: Contextual; } +>s : string +>Contextual : Contextual >{ s: e } : { [x: string]: Ellement; s: Ellement; } ->s : Ellement, Symbol(s, Decl(bestCommonTypeWithContextualTyping.ts, 16, 40)) ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>s : Ellement +>e : Ellement var conditional: Contextual = null ? e : e; // Ellement ->conditional : Contextual, Symbol(conditional, Decl(bestCommonTypeWithContextualTyping.ts, 18, 3)) ->Contextual : Contextual, Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>conditional : Contextual +>Contextual : Contextual >null ? e : e : Ellement >null : null ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>e : Ellement +>e : Ellement var contextualOr: Contextual = e || e; // Ellement ->contextualOr : Contextual, Symbol(contextualOr, Decl(bestCommonTypeWithContextualTyping.ts, 19, 3)) ->Contextual : Contextual, Symbol(Contextual, Decl(bestCommonTypeWithContextualTyping.ts, 0, 0)) +>contextualOr : Contextual +>Contextual : Contextual >e || e : Ellement ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) ->e : Ellement, Symbol(e, Decl(bestCommonTypeWithContextualTyping.ts, 10, 3)) +>e : Ellement +>e : Ellement diff --git a/tests/baselines/reference/bestCommonTypeWithOptionalProperties.symbols b/tests/baselines/reference/bestCommonTypeWithOptionalProperties.symbols new file mode 100644 index 0000000000000..35e9534ddb57a --- /dev/null +++ b/tests/baselines/reference/bestCommonTypeWithOptionalProperties.symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/bestCommonTypeWithOptionalProperties.ts === +interface X { foo: string } +>X : Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) +>foo : Symbol(foo, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 13)) + +interface Y extends X { bar?: number } +>Y : Symbol(Y, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 27)) +>X : Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) +>bar : Symbol(bar, Decl(bestCommonTypeWithOptionalProperties.ts, 1, 23)) + +interface Z extends X { bar: string } +>Z : Symbol(Z, Decl(bestCommonTypeWithOptionalProperties.ts, 1, 38)) +>X : Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) +>bar : Symbol(bar, Decl(bestCommonTypeWithOptionalProperties.ts, 2, 23)) + +var x: X; +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>X : Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) + +var y: Y; +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>Y : Symbol(Y, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 27)) + +var z: Z; +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>Z : Symbol(Z, Decl(bestCommonTypeWithOptionalProperties.ts, 1, 38)) + +// All these arrays should be X[] +var b1 = [x, y, z]; +>b1 : Symbol(b1, Decl(bestCommonTypeWithOptionalProperties.ts, 9, 3)) +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) + +var b2 = [x, z, y]; +>b2 : Symbol(b2, Decl(bestCommonTypeWithOptionalProperties.ts, 10, 3)) +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) + +var b3 = [y, x, z]; +>b3 : Symbol(b3, Decl(bestCommonTypeWithOptionalProperties.ts, 11, 3)) +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) + +var b4 = [y, z, x]; +>b4 : Symbol(b4, Decl(bestCommonTypeWithOptionalProperties.ts, 12, 3)) +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) + +var b5 = [z, x, y]; +>b5 : Symbol(b5, Decl(bestCommonTypeWithOptionalProperties.ts, 13, 3)) +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) + +var b6 = [z, y, x]; +>b6 : Symbol(b6, Decl(bestCommonTypeWithOptionalProperties.ts, 14, 3)) +>z : Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>y : Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>x : Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) + diff --git a/tests/baselines/reference/bestCommonTypeWithOptionalProperties.types b/tests/baselines/reference/bestCommonTypeWithOptionalProperties.types index 84a46ee9e506b..df40291b0e507 100644 --- a/tests/baselines/reference/bestCommonTypeWithOptionalProperties.types +++ b/tests/baselines/reference/bestCommonTypeWithOptionalProperties.types @@ -1,70 +1,70 @@ === tests/cases/compiler/bestCommonTypeWithOptionalProperties.ts === interface X { foo: string } ->X : X, Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 13)) +>X : X +>foo : string interface Y extends X { bar?: number } ->Y : Y, Symbol(Y, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 27)) ->X : X, Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) ->bar : number, Symbol(bar, Decl(bestCommonTypeWithOptionalProperties.ts, 1, 23)) +>Y : Y +>X : X +>bar : number interface Z extends X { bar: string } ->Z : Z, Symbol(Z, Decl(bestCommonTypeWithOptionalProperties.ts, 1, 38)) ->X : X, Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(bestCommonTypeWithOptionalProperties.ts, 2, 23)) +>Z : Z +>X : X +>bar : string var x: X; ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) ->X : X, Symbol(X, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 0)) +>x : X +>X : X var y: Y; ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) ->Y : Y, Symbol(Y, Decl(bestCommonTypeWithOptionalProperties.ts, 0, 27)) +>y : Y +>Y : Y var z: Z; ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) ->Z : Z, Symbol(Z, Decl(bestCommonTypeWithOptionalProperties.ts, 1, 38)) +>z : Z +>Z : Z // All these arrays should be X[] var b1 = [x, y, z]; ->b1 : X[], Symbol(b1, Decl(bestCommonTypeWithOptionalProperties.ts, 9, 3)) +>b1 : X[] >[x, y, z] : X[] ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>x : X +>y : Y +>z : Z var b2 = [x, z, y]; ->b2 : X[], Symbol(b2, Decl(bestCommonTypeWithOptionalProperties.ts, 10, 3)) +>b2 : X[] >[x, z, y] : X[] ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>x : X +>z : Z +>y : Y var b3 = [y, x, z]; ->b3 : X[], Symbol(b3, Decl(bestCommonTypeWithOptionalProperties.ts, 11, 3)) +>b3 : X[] >[y, x, z] : X[] ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) +>y : Y +>x : X +>z : Z var b4 = [y, z, x]; ->b4 : X[], Symbol(b4, Decl(bestCommonTypeWithOptionalProperties.ts, 12, 3)) +>b4 : X[] >[y, z, x] : X[] ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>y : Y +>z : Z +>x : X var b5 = [z, x, y]; ->b5 : X[], Symbol(b5, Decl(bestCommonTypeWithOptionalProperties.ts, 13, 3)) +>b5 : X[] >[z, x, y] : X[] ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) +>z : Z +>x : X +>y : Y var b6 = [z, y, x]; ->b6 : X[], Symbol(b6, Decl(bestCommonTypeWithOptionalProperties.ts, 14, 3)) +>b6 : X[] >[z, y, x] : X[] ->z : Z, Symbol(z, Decl(bestCommonTypeWithOptionalProperties.ts, 6, 3)) ->y : Y, Symbol(y, Decl(bestCommonTypeWithOptionalProperties.ts, 5, 3)) ->x : X, Symbol(x, Decl(bestCommonTypeWithOptionalProperties.ts, 4, 3)) +>z : Z +>y : Y +>x : X diff --git a/tests/baselines/reference/binaryArithmatic1.symbols b/tests/baselines/reference/binaryArithmatic1.symbols new file mode 100644 index 0000000000000..380a2ce95c19c --- /dev/null +++ b/tests/baselines/reference/binaryArithmatic1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/binaryArithmatic1.ts === +var v = 4 | null; +>v : Symbol(v, Decl(binaryArithmatic1.ts, 0, 3)) + diff --git a/tests/baselines/reference/binaryArithmatic1.types b/tests/baselines/reference/binaryArithmatic1.types index 413a6b4304202..43f4f26de60cc 100644 --- a/tests/baselines/reference/binaryArithmatic1.types +++ b/tests/baselines/reference/binaryArithmatic1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/binaryArithmatic1.ts === var v = 4 | null; ->v : number, Symbol(v, Decl(binaryArithmatic1.ts, 0, 3)) +>v : number >4 | null : number >4 : number >null : null diff --git a/tests/baselines/reference/binaryArithmatic2.symbols b/tests/baselines/reference/binaryArithmatic2.symbols new file mode 100644 index 0000000000000..7c2756f30f696 --- /dev/null +++ b/tests/baselines/reference/binaryArithmatic2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/binaryArithmatic2.ts === +var v = 4 | undefined; +>v : Symbol(v, Decl(binaryArithmatic2.ts, 0, 3)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/binaryArithmatic2.types b/tests/baselines/reference/binaryArithmatic2.types index a8a2e01b7ca8f..77cbce5b1e323 100644 --- a/tests/baselines/reference/binaryArithmatic2.types +++ b/tests/baselines/reference/binaryArithmatic2.types @@ -1,7 +1,7 @@ === tests/cases/compiler/binaryArithmatic2.ts === var v = 4 | undefined; ->v : number, Symbol(v, Decl(binaryArithmatic2.ts, 0, 3)) +>v : number >4 | undefined : number >4 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined diff --git a/tests/baselines/reference/binaryIntegerLiteral.symbols b/tests/baselines/reference/binaryIntegerLiteral.symbols new file mode 100644 index 0000000000000..31e28819657b0 --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteral.symbols @@ -0,0 +1,117 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts === +var bin1 = 0b11010; +>bin1 : Symbol(bin1, Decl(binaryIntegerLiteral.ts, 0, 3)) + +var bin2 = 0B11010; +>bin2 : Symbol(bin2, Decl(binaryIntegerLiteral.ts, 1, 3)) + +var bin3 = 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111; +>bin3 : Symbol(bin3, Decl(binaryIntegerLiteral.ts, 2, 3)) + +var bin4 = 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111; +>bin4 : Symbol(bin4, Decl(binaryIntegerLiteral.ts, 3, 3)) + +var obj1 = { +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) + + 0b11010: "Hello", + a: bin1, +>a : Symbol(a, Decl(binaryIntegerLiteral.ts, 6, 21)) +>bin1 : Symbol(bin1, Decl(binaryIntegerLiteral.ts, 0, 3)) + + bin1, +>bin1 : Symbol(bin1, Decl(binaryIntegerLiteral.ts, 7, 12)) + + b: 0b11010, +>b : Symbol(b, Decl(binaryIntegerLiteral.ts, 8, 9)) + + 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: true, +} + +var obj2 = { +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) + + 0B11010: "World", + a: bin2, +>a : Symbol(a, Decl(binaryIntegerLiteral.ts, 14, 21)) +>bin2 : Symbol(bin2, Decl(binaryIntegerLiteral.ts, 1, 3)) + + bin2, +>bin2 : Symbol(bin2, Decl(binaryIntegerLiteral.ts, 15, 12)) + + b: 0B11010, +>b : Symbol(b, Decl(binaryIntegerLiteral.ts, 16, 9)) + + 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: false, +} + +obj1[0b11010]; // string +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>0b11010 : Symbol(0b11010, Decl(binaryIntegerLiteral.ts, 5, 12)) + +obj1[26]; // string +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>26 : Symbol(0b11010, Decl(binaryIntegerLiteral.ts, 5, 12)) + +obj1["26"]; // string +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>"26" : Symbol(0b11010, Decl(binaryIntegerLiteral.ts, 5, 12)) + +obj1["0b11010"]; // any +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) + +obj1["a"]; // number +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>"a" : Symbol(a, Decl(binaryIntegerLiteral.ts, 6, 21)) + +obj1["b"]; // number +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>"b" : Symbol(b, Decl(binaryIntegerLiteral.ts, 8, 9)) + +obj1["bin1"]; // number +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>"bin1" : Symbol(bin1, Decl(binaryIntegerLiteral.ts, 7, 12)) + +obj1["Infinity"]; // boolean +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>"Infinity" : Symbol(0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteral.ts, 9, 15)) + +obj2[0B11010]; // string +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>0B11010 : Symbol(0B11010, Decl(binaryIntegerLiteral.ts, 13, 12)) + +obj2[26]; // string +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>26 : Symbol(0B11010, Decl(binaryIntegerLiteral.ts, 13, 12)) + +obj2["26"]; // string +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>"26" : Symbol(0B11010, Decl(binaryIntegerLiteral.ts, 13, 12)) + +obj2["0B11010"]; // any +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) + +obj2["a"]; // number +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>"a" : Symbol(a, Decl(binaryIntegerLiteral.ts, 14, 21)) + +obj2["b"]; // number +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>"b" : Symbol(b, Decl(binaryIntegerLiteral.ts, 16, 9)) + +obj2["bin2"]; // number +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>"bin2" : Symbol(bin2, Decl(binaryIntegerLiteral.ts, 15, 12)) + +obj2[9.671406556917009e+24]; // boolean +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>9.671406556917009e+24 : Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteral.ts, 17, 15)) + +obj2["9.671406556917009e+24"]; // boolean +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>"9.671406556917009e+24" : Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteral.ts, 17, 15)) + +obj2["Infinity"]; // any +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) + + diff --git a/tests/baselines/reference/binaryIntegerLiteral.types b/tests/baselines/reference/binaryIntegerLiteral.types index a2c4a5151539f..4ff3c3c28a37c 100644 --- a/tests/baselines/reference/binaryIntegerLiteral.types +++ b/tests/baselines/reference/binaryIntegerLiteral.types @@ -1,36 +1,36 @@ === tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteral.ts === var bin1 = 0b11010; ->bin1 : number, Symbol(bin1, Decl(binaryIntegerLiteral.ts, 0, 3)) +>bin1 : number >0b11010 : number var bin2 = 0B11010; ->bin2 : number, Symbol(bin2, Decl(binaryIntegerLiteral.ts, 1, 3)) +>bin2 : number >0B11010 : number var bin3 = 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111; ->bin3 : number, Symbol(bin3, Decl(binaryIntegerLiteral.ts, 2, 3)) +>bin3 : number >0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111 : number var bin4 = 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111; ->bin4 : number, Symbol(bin4, Decl(binaryIntegerLiteral.ts, 3, 3)) +>bin4 : number >0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111 : number var obj1 = { ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >{ 0b11010: "Hello", a: bin1, bin1, b: 0b11010, 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: true,} : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } 0b11010: "Hello", >"Hello" : string a: bin1, ->a : number, Symbol(a, Decl(binaryIntegerLiteral.ts, 6, 21)) ->bin1 : number, Symbol(bin1, Decl(binaryIntegerLiteral.ts, 0, 3)) +>a : number +>bin1 : number bin1, ->bin1 : number, Symbol(bin1, Decl(binaryIntegerLiteral.ts, 7, 12)) +>bin1 : number b: 0b11010, ->b : number, Symbol(b, Decl(binaryIntegerLiteral.ts, 8, 9)) +>b : number >0b11010 : number 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: true, @@ -38,21 +38,21 @@ var obj1 = { } var obj2 = { ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >{ 0B11010: "World", a: bin2, bin2, b: 0B11010, 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: false,} : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } 0B11010: "World", >"World" : string a: bin2, ->a : number, Symbol(a, Decl(binaryIntegerLiteral.ts, 14, 21)) ->bin2 : number, Symbol(bin2, Decl(binaryIntegerLiteral.ts, 1, 3)) +>a : number +>bin2 : number bin2, ->bin2 : number, Symbol(bin2, Decl(binaryIntegerLiteral.ts, 15, 12)) +>bin2 : number b: 0B11010, ->b : number, Symbol(b, Decl(binaryIntegerLiteral.ts, 16, 9)) +>b : number >0B11010 : number 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: false, @@ -61,92 +61,92 @@ var obj2 = { obj1[0b11010]; // string >obj1[0b11010] : string ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->0b11010 : number, Symbol(0b11010, Decl(binaryIntegerLiteral.ts, 5, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>0b11010 : number obj1[26]; // string >obj1[26] : string ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->26 : number, Symbol(0b11010, Decl(binaryIntegerLiteral.ts, 5, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>26 : number obj1["26"]; // string >obj1["26"] : string ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->"26" : string, Symbol(0b11010, Decl(binaryIntegerLiteral.ts, 5, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"26" : string obj1["0b11010"]; // any >obj1["0b11010"] : any ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >"0b11010" : string obj1["a"]; // number >obj1["a"] : number ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->"a" : string, Symbol(a, Decl(binaryIntegerLiteral.ts, 6, 21)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"a" : string obj1["b"]; // number >obj1["b"] : number ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->"b" : string, Symbol(b, Decl(binaryIntegerLiteral.ts, 8, 9)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"b" : string obj1["bin1"]; // number >obj1["bin1"] : number ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->"bin1" : string, Symbol(bin1, Decl(binaryIntegerLiteral.ts, 7, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"bin1" : string obj1["Infinity"]; // boolean >obj1["Infinity"] : boolean ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteral.ts, 5, 3)) ->"Infinity" : string, Symbol(0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteral.ts, 9, 15)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"Infinity" : string obj2[0B11010]; // string >obj2[0B11010] : string ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->0B11010 : number, Symbol(0B11010, Decl(binaryIntegerLiteral.ts, 13, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>0B11010 : number obj2[26]; // string >obj2[26] : string ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->26 : number, Symbol(0B11010, Decl(binaryIntegerLiteral.ts, 13, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>26 : number obj2["26"]; // string >obj2["26"] : string ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->"26" : string, Symbol(0B11010, Decl(binaryIntegerLiteral.ts, 13, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"26" : string obj2["0B11010"]; // any >obj2["0B11010"] : any ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >"0B11010" : string obj2["a"]; // number >obj2["a"] : number ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->"a" : string, Symbol(a, Decl(binaryIntegerLiteral.ts, 14, 21)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"a" : string obj2["b"]; // number >obj2["b"] : number ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->"b" : string, Symbol(b, Decl(binaryIntegerLiteral.ts, 16, 9)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"b" : string obj2["bin2"]; // number >obj2["bin2"] : number ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->"bin2" : string, Symbol(bin2, Decl(binaryIntegerLiteral.ts, 15, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"bin2" : string obj2[9.671406556917009e+24]; // boolean >obj2[9.671406556917009e+24] : boolean ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->9.671406556917009e+24 : number, Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteral.ts, 17, 15)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>9.671406556917009e+24 : number obj2["9.671406556917009e+24"]; // boolean >obj2["9.671406556917009e+24"] : boolean ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) ->"9.671406556917009e+24" : string, Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteral.ts, 17, 15)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"9.671406556917009e+24" : string obj2["Infinity"]; // any >obj2["Infinity"] : any ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteral.ts, 13, 3)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >"Infinity" : string diff --git a/tests/baselines/reference/binaryIntegerLiteralES6.symbols b/tests/baselines/reference/binaryIntegerLiteralES6.symbols new file mode 100644 index 0000000000000..4fb7aaff82dcf --- /dev/null +++ b/tests/baselines/reference/binaryIntegerLiteralES6.symbols @@ -0,0 +1,118 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts === +var bin1 = 0b11010; +>bin1 : Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 0, 3)) + +var bin2 = 0B11010; +>bin2 : Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 1, 3)) + +var bin3 = 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111; +>bin3 : Symbol(bin3, Decl(binaryIntegerLiteralES6.ts, 2, 3)) + +var bin4 = 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111; +>bin4 : Symbol(bin4, Decl(binaryIntegerLiteralES6.ts, 3, 3)) + +var obj1 = { +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) + + 0b11010: "Hello", + a: bin1, +>a : Symbol(a, Decl(binaryIntegerLiteralES6.ts, 6, 21)) +>bin1 : Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 0, 3)) + + bin1, +>bin1 : Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 7, 12)) + + b: 0b11010, +>b : Symbol(b, Decl(binaryIntegerLiteralES6.ts, 8, 9)) + + 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: true, +} + +var obj2 = { +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) + + 0B11010: "World", + a: bin2, +>a : Symbol(a, Decl(binaryIntegerLiteralES6.ts, 14, 21)) +>bin2 : Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 1, 3)) + + bin2, +>bin2 : Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 15, 12)) + + b: 0B11010, +>b : Symbol(b, Decl(binaryIntegerLiteralES6.ts, 16, 9)) + + 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: false, +} + +obj1[0b11010]; // string +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>0b11010 : Symbol(0b11010, Decl(binaryIntegerLiteralES6.ts, 5, 12)) + +obj1[26]; // string +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>26 : Symbol(0b11010, Decl(binaryIntegerLiteralES6.ts, 5, 12)) + +obj1["26"]; // string +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>"26" : Symbol(0b11010, Decl(binaryIntegerLiteralES6.ts, 5, 12)) + +obj1["0b11010"]; // any +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) + +obj1["a"]; // number +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>"a" : Symbol(a, Decl(binaryIntegerLiteralES6.ts, 6, 21)) + +obj1["b"]; // number +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>"b" : Symbol(b, Decl(binaryIntegerLiteralES6.ts, 8, 9)) + +obj1["bin1"]; // number +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>"bin1" : Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 7, 12)) + +obj1["Infinity"]; // boolean +>obj1 : Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>"Infinity" : Symbol(0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteralES6.ts, 9, 15)) + +obj2[0B11010]; // string +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>0B11010 : Symbol(0B11010, Decl(binaryIntegerLiteralES6.ts, 13, 12)) + +obj2[26]; // string +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>26 : Symbol(0B11010, Decl(binaryIntegerLiteralES6.ts, 13, 12)) + +obj2["26"]; // string +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>"26" : Symbol(0B11010, Decl(binaryIntegerLiteralES6.ts, 13, 12)) + +obj2["0B11010"]; // any +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) + +obj2["a"]; // number +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>"a" : Symbol(a, Decl(binaryIntegerLiteralES6.ts, 14, 21)) + +obj2["b"]; // number +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>"b" : Symbol(b, Decl(binaryIntegerLiteralES6.ts, 16, 9)) + +obj2["bin2"]; // number +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>"bin2" : Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 15, 12)) + +obj2[9.671406556917009e+24]; // boolean +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>9.671406556917009e+24 : Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteralES6.ts, 17, 15)) + +obj2["9.671406556917009e+24"]; // boolean +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>"9.671406556917009e+24" : Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteralES6.ts, 17, 15)) + +obj2["Infinity"]; // any +>obj2 : Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) + + + diff --git a/tests/baselines/reference/binaryIntegerLiteralES6.types b/tests/baselines/reference/binaryIntegerLiteralES6.types index 4362f781f5094..47bfe6f548d92 100644 --- a/tests/baselines/reference/binaryIntegerLiteralES6.types +++ b/tests/baselines/reference/binaryIntegerLiteralES6.types @@ -1,36 +1,36 @@ === tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/binaryIntegerLiteralES6.ts === var bin1 = 0b11010; ->bin1 : number, Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 0, 3)) +>bin1 : number >0b11010 : number var bin2 = 0B11010; ->bin2 : number, Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 1, 3)) +>bin2 : number >0B11010 : number var bin3 = 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111; ->bin3 : number, Symbol(bin3, Decl(binaryIntegerLiteralES6.ts, 2, 3)) +>bin3 : number >0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111 : number var bin4 = 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111; ->bin4 : number, Symbol(bin4, Decl(binaryIntegerLiteralES6.ts, 3, 3)) +>bin4 : number >0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111 : number var obj1 = { ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >{ 0b11010: "Hello", a: bin1, bin1, b: 0b11010, 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: true,} : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } 0b11010: "Hello", >"Hello" : string a: bin1, ->a : number, Symbol(a, Decl(binaryIntegerLiteralES6.ts, 6, 21)) ->bin1 : number, Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 0, 3)) +>a : number +>bin1 : number bin1, ->bin1 : number, Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 7, 12)) +>bin1 : number b: 0b11010, ->b : number, Symbol(b, Decl(binaryIntegerLiteralES6.ts, 8, 9)) +>b : number >0b11010 : number 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: true, @@ -38,21 +38,21 @@ var obj1 = { } var obj2 = { ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >{ 0B11010: "World", a: bin2, bin2, b: 0B11010, 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: false,} : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } 0B11010: "World", >"World" : string a: bin2, ->a : number, Symbol(a, Decl(binaryIntegerLiteralES6.ts, 14, 21)) ->bin2 : number, Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 1, 3)) +>a : number +>bin2 : number bin2, ->bin2 : number, Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 15, 12)) +>bin2 : number b: 0B11010, ->b : number, Symbol(b, Decl(binaryIntegerLiteralES6.ts, 16, 9)) +>b : number >0B11010 : number 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: false, @@ -61,92 +61,92 @@ var obj2 = { obj1[0b11010]; // string >obj1[0b11010] : string ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->0b11010 : number, Symbol(0b11010, Decl(binaryIntegerLiteralES6.ts, 5, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>0b11010 : number obj1[26]; // string >obj1[26] : string ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->26 : number, Symbol(0b11010, Decl(binaryIntegerLiteralES6.ts, 5, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>26 : number obj1["26"]; // string >obj1["26"] : string ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->"26" : string, Symbol(0b11010, Decl(binaryIntegerLiteralES6.ts, 5, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"26" : string obj1["0b11010"]; // any >obj1["0b11010"] : any ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >"0b11010" : string obj1["a"]; // number >obj1["a"] : number ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->"a" : string, Symbol(a, Decl(binaryIntegerLiteralES6.ts, 6, 21)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"a" : string obj1["b"]; // number >obj1["b"] : number ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->"b" : string, Symbol(b, Decl(binaryIntegerLiteralES6.ts, 8, 9)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"b" : string obj1["bin1"]; // number >obj1["bin1"] : number ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->"bin1" : string, Symbol(bin1, Decl(binaryIntegerLiteralES6.ts, 7, 12)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"bin1" : string obj1["Infinity"]; // boolean >obj1["Infinity"] : boolean ->obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj1, Decl(binaryIntegerLiteralES6.ts, 5, 3)) ->"Infinity" : string, Symbol(0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteralES6.ts, 9, 15)) +>obj1 : { 0b11010: string; a: number; bin1: number; b: number; 0B111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"Infinity" : string obj2[0B11010]; // string >obj2[0B11010] : string ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->0B11010 : number, Symbol(0B11010, Decl(binaryIntegerLiteralES6.ts, 13, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>0B11010 : number obj2[26]; // string >obj2[26] : string ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->26 : number, Symbol(0B11010, Decl(binaryIntegerLiteralES6.ts, 13, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>26 : number obj2["26"]; // string >obj2["26"] : string ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->"26" : string, Symbol(0B11010, Decl(binaryIntegerLiteralES6.ts, 13, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"26" : string obj2["0B11010"]; // any >obj2["0B11010"] : any ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >"0B11010" : string obj2["a"]; // number >obj2["a"] : number ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->"a" : string, Symbol(a, Decl(binaryIntegerLiteralES6.ts, 14, 21)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"a" : string obj2["b"]; // number >obj2["b"] : number ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->"b" : string, Symbol(b, Decl(binaryIntegerLiteralES6.ts, 16, 9)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"b" : string obj2["bin2"]; // number >obj2["bin2"] : number ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->"bin2" : string, Symbol(bin2, Decl(binaryIntegerLiteralES6.ts, 15, 12)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"bin2" : string obj2[9.671406556917009e+24]; // boolean >obj2[9.671406556917009e+24] : boolean ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->9.671406556917009e+24 : number, Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteralES6.ts, 17, 15)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>9.671406556917009e+24 : number obj2["9.671406556917009e+24"]; // boolean >obj2["9.671406556917009e+24"] : boolean ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) ->"9.671406556917009e+24" : string, Symbol(0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111, Decl(binaryIntegerLiteralES6.ts, 17, 15)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } +>"9.671406556917009e+24" : string obj2["Infinity"]; // any >obj2["Infinity"] : any ->obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; }, Symbol(obj2, Decl(binaryIntegerLiteralES6.ts, 13, 3)) +>obj2 : { 0B11010: string; a: number; bin2: number; b: number; 0B11111111111111111111111111111111111111111111111101001010100000010111110001111111111: boolean; } >"Infinity" : string diff --git a/tests/baselines/reference/bind2.symbols b/tests/baselines/reference/bind2.symbols new file mode 100644 index 0000000000000..f51d09abcdd97 --- /dev/null +++ b/tests/baselines/reference/bind2.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/bind2.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/binopAssignmentShouldHaveType.symbols b/tests/baselines/reference/binopAssignmentShouldHaveType.symbols new file mode 100644 index 0000000000000..d984647149e76 --- /dev/null +++ b/tests/baselines/reference/binopAssignmentShouldHaveType.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/binopAssignmentShouldHaveType.ts === +declare var console; +>console : Symbol(console, Decl(binopAssignmentShouldHaveType.ts, 0, 11)) + +"use strict"; +module Test { +>Test : Symbol(Test, Decl(binopAssignmentShouldHaveType.ts, 1, 13)) + + export class Bug { +>Bug : Symbol(Bug, Decl(binopAssignmentShouldHaveType.ts, 2, 13)) + + getName():string { +>getName : Symbol(getName, Decl(binopAssignmentShouldHaveType.ts, 3, 19)) + + return "name"; + } + bug() { +>bug : Symbol(bug, Decl(binopAssignmentShouldHaveType.ts, 6, 3)) + + var name:string= null; +>name : Symbol(name, Decl(binopAssignmentShouldHaveType.ts, 8, 6)) + + if ((name= this.getName()).length > 0) { +>(name= this.getName()).length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>name : Symbol(name, Decl(binopAssignmentShouldHaveType.ts, 8, 6)) +>this.getName : Symbol(getName, Decl(binopAssignmentShouldHaveType.ts, 3, 19)) +>this : Symbol(Bug, Decl(binopAssignmentShouldHaveType.ts, 2, 13)) +>getName : Symbol(getName, Decl(binopAssignmentShouldHaveType.ts, 3, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + console.log(name); +>console : Symbol(console, Decl(binopAssignmentShouldHaveType.ts, 0, 11)) +>name : Symbol(name, Decl(binopAssignmentShouldHaveType.ts, 8, 6)) + } + } + } +} + + + + diff --git a/tests/baselines/reference/binopAssignmentShouldHaveType.types b/tests/baselines/reference/binopAssignmentShouldHaveType.types index 0031ebfb9cf0d..fdef2fbcabdee 100644 --- a/tests/baselines/reference/binopAssignmentShouldHaveType.types +++ b/tests/baselines/reference/binopAssignmentShouldHaveType.types @@ -1,48 +1,48 @@ === tests/cases/compiler/binopAssignmentShouldHaveType.ts === declare var console; ->console : any, Symbol(console, Decl(binopAssignmentShouldHaveType.ts, 0, 11)) +>console : any "use strict"; >"use strict" : string module Test { ->Test : typeof Test, Symbol(Test, Decl(binopAssignmentShouldHaveType.ts, 1, 13)) +>Test : typeof Test export class Bug { ->Bug : Bug, Symbol(Bug, Decl(binopAssignmentShouldHaveType.ts, 2, 13)) +>Bug : Bug getName():string { ->getName : () => string, Symbol(getName, Decl(binopAssignmentShouldHaveType.ts, 3, 19)) +>getName : () => string return "name"; >"name" : string } bug() { ->bug : () => void, Symbol(bug, Decl(binopAssignmentShouldHaveType.ts, 6, 3)) +>bug : () => void var name:string= null; ->name : string, Symbol(name, Decl(binopAssignmentShouldHaveType.ts, 8, 6)) +>name : string >null : null if ((name= this.getName()).length > 0) { >(name= this.getName()).length > 0 : boolean ->(name= this.getName()).length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>(name= this.getName()).length : number >(name= this.getName()) : string >name= this.getName() : string ->name : string, Symbol(name, Decl(binopAssignmentShouldHaveType.ts, 8, 6)) +>name : string >this.getName() : string ->this.getName : () => string, Symbol(getName, Decl(binopAssignmentShouldHaveType.ts, 3, 19)) ->this : Bug, Symbol(Bug, Decl(binopAssignmentShouldHaveType.ts, 2, 13)) ->getName : () => string, Symbol(getName, Decl(binopAssignmentShouldHaveType.ts, 3, 19)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>this.getName : () => string +>this : Bug +>getName : () => string +>length : number >0 : number console.log(name); >console.log(name) : any >console.log : any ->console : any, Symbol(console, Decl(binopAssignmentShouldHaveType.ts, 0, 11)) +>console : any >log : any ->name : string, Symbol(name, Decl(binopAssignmentShouldHaveType.ts, 8, 6)) +>name : string } } } diff --git a/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.symbols b/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.symbols new file mode 100644 index 0000000000000..d6a29a11980a6 --- /dev/null +++ b/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.symbols @@ -0,0 +1,89 @@ +=== tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithBooleanType.ts === +// ~ operator on boolean type +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) + +function foo(): boolean { return true; } +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 21)) + +class A { +>A : Symbol(A, Decl(bitwiseNotOperatorWithBooleanType.ts, 3, 40)) + + public a: boolean; +>a : Symbol(a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) + + static foo() { return false; } +>foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 6, 22)) +} +module M { +>M : Symbol(M, Decl(bitwiseNotOperatorWithBooleanType.ts, 8, 1)) + + export var n: boolean; +>n : Symbol(n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithBooleanType.ts, 13, 3)) +>A : Symbol(A, Decl(bitwiseNotOperatorWithBooleanType.ts, 3, 40)) + +// boolean type var +var ResultIsNumber1 = ~BOOLEAN; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithBooleanType.ts, 16, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) + +// boolean type literal +var ResultIsNumber2 = ~true; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithBooleanType.ts, 19, 3)) + +var ResultIsNumber3 = ~{ x: true, y: false }; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithBooleanType.ts, 20, 3)) +>x : Symbol(x, Decl(bitwiseNotOperatorWithBooleanType.ts, 20, 24)) +>y : Symbol(y, Decl(bitwiseNotOperatorWithBooleanType.ts, 20, 33)) + +// boolean type expressions +var ResultIsNumber4 = ~objA.a; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithBooleanType.ts, 23, 3)) +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) + +var ResultIsNumber5 = ~M.n; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(bitwiseNotOperatorWithBooleanType.ts, 24, 3)) +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) + +var ResultIsNumber6 = ~foo(); +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(bitwiseNotOperatorWithBooleanType.ts, 25, 3)) +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 21)) + +var ResultIsNumber7 = ~A.foo(); +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(bitwiseNotOperatorWithBooleanType.ts, 26, 3)) +>A.foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 6, 22)) +>A : Symbol(A, Decl(bitwiseNotOperatorWithBooleanType.ts, 3, 40)) +>foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 6, 22)) + +// multiple ~ operators +var ResultIsNumber8 = ~~BOOLEAN; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(bitwiseNotOperatorWithBooleanType.ts, 29, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) + +// miss assignment operators +~true; +~BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) + +~foo(); +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 21)) + +~true, false; +~objA.a; +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) + +~M.n; +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) + diff --git a/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.types b/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.types index 7749b91beac41..234c01e224141 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.types +++ b/tests/baselines/reference/bitwiseNotOperatorWithBooleanType.types @@ -1,90 +1,90 @@ === tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithBooleanType.ts === // ~ operator on boolean type var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean function foo(): boolean { return true; } ->foo : () => boolean, Symbol(foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean >true : boolean class A { ->A : A, Symbol(A, Decl(bitwiseNotOperatorWithBooleanType.ts, 3, 40)) +>A : A public a: boolean; ->a : boolean, Symbol(a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) +>a : boolean static foo() { return false; } ->foo : () => boolean, Symbol(A.foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 6, 22)) +>foo : () => boolean >false : boolean } module M { ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithBooleanType.ts, 8, 1)) +>M : typeof M export var n: boolean; ->n : boolean, Symbol(n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) +>n : boolean } var objA = new A(); ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithBooleanType.ts, 13, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(bitwiseNotOperatorWithBooleanType.ts, 3, 40)) +>A : typeof A // boolean type var var ResultIsNumber1 = ~BOOLEAN; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithBooleanType.ts, 16, 3)) +>ResultIsNumber1 : number >~BOOLEAN : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // boolean type literal var ResultIsNumber2 = ~true; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithBooleanType.ts, 19, 3)) +>ResultIsNumber2 : number >~true : number >true : boolean var ResultIsNumber3 = ~{ x: true, y: false }; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithBooleanType.ts, 20, 3)) +>ResultIsNumber3 : number >~{ x: true, y: false } : number >{ x: true, y: false } : { x: boolean; y: boolean; } ->x : boolean, Symbol(x, Decl(bitwiseNotOperatorWithBooleanType.ts, 20, 24)) +>x : boolean >true : boolean ->y : boolean, Symbol(y, Decl(bitwiseNotOperatorWithBooleanType.ts, 20, 33)) +>y : boolean >false : boolean // boolean type expressions var ResultIsNumber4 = ~objA.a; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithBooleanType.ts, 23, 3)) +>ResultIsNumber4 : number >~objA.a : number ->objA.a : boolean, Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean var ResultIsNumber5 = ~M.n; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(bitwiseNotOperatorWithBooleanType.ts, 24, 3)) +>ResultIsNumber5 : number >~M.n : number ->M.n : boolean, Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean var ResultIsNumber6 = ~foo(); ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(bitwiseNotOperatorWithBooleanType.ts, 25, 3)) +>ResultIsNumber6 : number >~foo() : number >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean var ResultIsNumber7 = ~A.foo(); ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(bitwiseNotOperatorWithBooleanType.ts, 26, 3)) +>ResultIsNumber7 : number >~A.foo() : number >A.foo() : boolean ->A.foo : () => boolean, Symbol(A.foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 6, 22)) ->A : typeof A, Symbol(A, Decl(bitwiseNotOperatorWithBooleanType.ts, 3, 40)) ->foo : () => boolean, Symbol(A.foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 6, 22)) +>A.foo : () => boolean +>A : typeof A +>foo : () => boolean // multiple ~ operators var ResultIsNumber8 = ~~BOOLEAN; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(bitwiseNotOperatorWithBooleanType.ts, 29, 3)) +>ResultIsNumber8 : number >~~BOOLEAN : number >~BOOLEAN : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // miss assignment operators ~true; @@ -93,12 +93,12 @@ var ResultIsNumber8 = ~~BOOLEAN; ~BOOLEAN; >~BOOLEAN : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean ~foo(); >~foo() : number >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(bitwiseNotOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean ~true, false; >~true, false : boolean @@ -108,13 +108,13 @@ var ResultIsNumber8 = ~~BOOLEAN; ~objA.a; >~objA.a : number ->objA.a : boolean, Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(bitwiseNotOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean ~M.n; >~M.n : number ->M.n : boolean, Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(bitwiseNotOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean diff --git a/tests/baselines/reference/bitwiseNotOperatorWithEnumType.symbols b/tests/baselines/reference/bitwiseNotOperatorWithEnumType.symbols new file mode 100644 index 0000000000000..24783a153ae88 --- /dev/null +++ b/tests/baselines/reference/bitwiseNotOperatorWithEnumType.symbols @@ -0,0 +1,51 @@ +=== tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithEnumType.ts === +// ~ operator on enum type + +enum ENUM1 { A, B, "" }; +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>A : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>B : Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) + +// enum type var +var ResultIsNumber1 = ~ENUM1; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithEnumType.ts, 5, 3)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) + +// enum type expressions +var ResultIsNumber2 = ~ENUM1["A"]; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithEnumType.ts, 8, 3)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>"A" : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) + +var ResultIsNumber3 = ~(ENUM1.A + ENUM1["B"]); +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithEnumType.ts, 9, 3)) +>ENUM1.A : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>A : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>"B" : Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) + +// multiple ~ operators +var ResultIsNumber4 = ~~~(ENUM1["A"] + ENUM1.B); +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithEnumType.ts, 12, 3)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>"A" : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1.B : Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>B : Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) + +// miss assignment operators +~ENUM1; +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) + +~ENUM1["A"]; +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>"A" : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) + +~ENUM1.A, ~ENUM1["B"]; +>ENUM1.A : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>A : Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1 : Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>"B" : Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) + diff --git a/tests/baselines/reference/bitwiseNotOperatorWithEnumType.types b/tests/baselines/reference/bitwiseNotOperatorWithEnumType.types index ec3ca825ee9ca..bb8be9b3f54e3 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithEnumType.types +++ b/tests/baselines/reference/bitwiseNotOperatorWithEnumType.types @@ -2,70 +2,70 @@ // ~ operator on enum type enum ENUM1 { A, B, "" }; ->ENUM1 : ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->A : ENUM1, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) ->B : ENUM1, Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) +>ENUM1 : ENUM1 +>A : ENUM1 +>B : ENUM1 // enum type var var ResultIsNumber1 = ~ENUM1; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithEnumType.ts, 5, 3)) +>ResultIsNumber1 : number >~ENUM1 : number ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : typeof ENUM1 // enum type expressions var ResultIsNumber2 = ~ENUM1["A"]; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithEnumType.ts, 8, 3)) +>ResultIsNumber2 : number >~ENUM1["A"] : number >ENUM1["A"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->"A" : string, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1 : typeof ENUM1 +>"A" : string var ResultIsNumber3 = ~(ENUM1.A + ENUM1["B"]); ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithEnumType.ts, 9, 3)) +>ResultIsNumber3 : number >~(ENUM1.A + ENUM1["B"]) : number >(ENUM1.A + ENUM1["B"]) : number >ENUM1.A + ENUM1["B"] : number ->ENUM1.A : ENUM1, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->A : ENUM1, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1.A : ENUM1 +>ENUM1 : typeof ENUM1 +>A : ENUM1 >ENUM1["B"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->"B" : string, Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) +>ENUM1 : typeof ENUM1 +>"B" : string // multiple ~ operators var ResultIsNumber4 = ~~~(ENUM1["A"] + ENUM1.B); ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithEnumType.ts, 12, 3)) +>ResultIsNumber4 : number >~~~(ENUM1["A"] + ENUM1.B) : number >~~(ENUM1["A"] + ENUM1.B) : number >~(ENUM1["A"] + ENUM1.B) : number >(ENUM1["A"] + ENUM1.B) : number >ENUM1["A"] + ENUM1.B : number >ENUM1["A"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->"A" : string, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) ->ENUM1.B : ENUM1, Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->B : ENUM1, Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) +>ENUM1 : typeof ENUM1 +>"A" : string +>ENUM1.B : ENUM1 +>ENUM1 : typeof ENUM1 +>B : ENUM1 // miss assignment operators ~ENUM1; >~ENUM1 : number ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : typeof ENUM1 ~ENUM1["A"]; >~ENUM1["A"] : number >ENUM1["A"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->"A" : string, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1 : typeof ENUM1 +>"A" : string ~ENUM1.A, ~ENUM1["B"]; >~ENUM1.A, ~ENUM1["B"] : number >~ENUM1.A : number ->ENUM1.A : ENUM1, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->A : ENUM1, Symbol(ENUM1.A, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 12)) +>ENUM1.A : ENUM1 +>ENUM1 : typeof ENUM1 +>A : ENUM1 >~ENUM1["B"] : number >ENUM1["B"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(bitwiseNotOperatorWithEnumType.ts, 0, 0)) ->"B" : string, Symbol(ENUM1.B, Decl(bitwiseNotOperatorWithEnumType.ts, 2, 15)) +>ENUM1 : typeof ENUM1 +>"B" : string diff --git a/tests/baselines/reference/bitwiseNotOperatorWithNumberType.symbols b/tests/baselines/reference/bitwiseNotOperatorWithNumberType.symbols new file mode 100644 index 0000000000000..2cb37660135eb --- /dev/null +++ b/tests/baselines/reference/bitwiseNotOperatorWithNumberType.symbols @@ -0,0 +1,126 @@ +=== tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts === +// ~ operator on number type +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) + +var NUMBER1: number[] = [1, 2]; +>NUMBER1 : Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) + +function foo(): number { return 1; } +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 31)) + +class A { +>A : Symbol(A, Decl(bitwiseNotOperatorWithNumberType.ts, 4, 36)) + + public a: number; +>a : Symbol(a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) + + static foo() { return 1; } +>foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithNumberType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) + + export var n: number; +>n : Symbol(n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) +>A : Symbol(A, Decl(bitwiseNotOperatorWithNumberType.ts, 4, 36)) + +// number type var +var ResultIsNumber1 = ~NUMBER; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithNumberType.ts, 17, 3)) +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) + +var ResultIsNumber2 = ~NUMBER1; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithNumberType.ts, 18, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) + +// number type literal +var ResultIsNumber3 = ~1; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithNumberType.ts, 21, 3)) + +var ResultIsNumber4 = ~{ x: 1, y: 2}; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithNumberType.ts, 22, 3)) +>x : Symbol(x, Decl(bitwiseNotOperatorWithNumberType.ts, 22, 24)) +>y : Symbol(y, Decl(bitwiseNotOperatorWithNumberType.ts, 22, 30)) + +var ResultIsNumber5 = ~{ x: 1, y: (n: number) => { return n; } }; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 3)) +>x : Symbol(x, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 24)) +>y : Symbol(y, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 30)) +>n : Symbol(n, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 35)) +>n : Symbol(n, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 35)) + +// number type expressions +var ResultIsNumber6 = ~objA.a; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(bitwiseNotOperatorWithNumberType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) + +var ResultIsNumber7 = ~M.n; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(bitwiseNotOperatorWithNumberType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) + +var ResultIsNumber8 = ~NUMBER1[0]; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(bitwiseNotOperatorWithNumberType.ts, 28, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) + +var ResultIsNumber9 = ~foo(); +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(bitwiseNotOperatorWithNumberType.ts, 29, 3)) +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 31)) + +var ResultIsNumber10 = ~A.foo(); +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(bitwiseNotOperatorWithNumberType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithNumberType.ts, 7, 21)) +>A : Symbol(A, Decl(bitwiseNotOperatorWithNumberType.ts, 4, 36)) +>foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithNumberType.ts, 7, 21)) + +var ResultIsNumber11 = ~(NUMBER + NUMBER); +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(bitwiseNotOperatorWithNumberType.ts, 31, 3)) +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) + +// multiple ~ operators +var ResultIsNumber12 = ~~NUMBER; +>ResultIsNumber12 : Symbol(ResultIsNumber12, Decl(bitwiseNotOperatorWithNumberType.ts, 34, 3)) +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) + +var ResultIsNumber13 = ~~~(NUMBER + NUMBER); +>ResultIsNumber13 : Symbol(ResultIsNumber13, Decl(bitwiseNotOperatorWithNumberType.ts, 35, 3)) +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) + +// miss assignment operators +~NUMBER; +>NUMBER : Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) + +~NUMBER1; +>NUMBER1 : Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) + +~foo(); +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 31)) + +~objA.a; +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) + +~M.n; +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) + +~objA.a, M.n; +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) + diff --git a/tests/baselines/reference/bitwiseNotOperatorWithNumberType.types b/tests/baselines/reference/bitwiseNotOperatorWithNumberType.types index 6426809aecc9c..228bd43e593ed 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithNumberType.types +++ b/tests/baselines/reference/bitwiseNotOperatorWithNumberType.types @@ -1,171 +1,171 @@ === tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithNumberType.ts === // ~ operator on number type var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var NUMBER1: number[] = [1, 2]; ->NUMBER1 : number[], Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >[1, 2] : number[] >1 : number >2 : number function foo(): number { return 1; } ->foo : () => number, Symbol(foo, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 31)) +>foo : () => number >1 : number class A { ->A : A, Symbol(A, Decl(bitwiseNotOperatorWithNumberType.ts, 4, 36)) +>A : A public a: number; ->a : number, Symbol(a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>a : number static foo() { return 1; } ->foo : () => number, Symbol(A.foo, Decl(bitwiseNotOperatorWithNumberType.ts, 7, 21)) +>foo : () => number >1 : number } module M { ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) +>M : typeof M export var n: number; ->n : number, Symbol(n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>n : number } var objA = new A(); ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(bitwiseNotOperatorWithNumberType.ts, 4, 36)) +>A : typeof A // number type var var ResultIsNumber1 = ~NUMBER; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithNumberType.ts, 17, 3)) +>ResultIsNumber1 : number >~NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsNumber2 = ~NUMBER1; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithNumberType.ts, 18, 3)) +>ResultIsNumber2 : number >~NUMBER1 : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] // number type literal var ResultIsNumber3 = ~1; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithNumberType.ts, 21, 3)) +>ResultIsNumber3 : number >~1 : number >1 : number var ResultIsNumber4 = ~{ x: 1, y: 2}; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithNumberType.ts, 22, 3)) +>ResultIsNumber4 : number >~{ x: 1, y: 2} : number >{ x: 1, y: 2} : { x: number; y: number; } ->x : number, Symbol(x, Decl(bitwiseNotOperatorWithNumberType.ts, 22, 24)) +>x : number >1 : number ->y : number, Symbol(y, Decl(bitwiseNotOperatorWithNumberType.ts, 22, 30)) +>y : number >2 : number var ResultIsNumber5 = ~{ x: 1, y: (n: number) => { return n; } }; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 3)) +>ResultIsNumber5 : number >~{ x: 1, y: (n: number) => { return n; } } : number >{ x: 1, y: (n: number) => { return n; } } : { x: number; y: (n: number) => number; } ->x : number, Symbol(x, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 24)) +>x : number >1 : number ->y : (n: number) => number, Symbol(y, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 30)) +>y : (n: number) => number >(n: number) => { return n; } : (n: number) => number ->n : number, Symbol(n, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 35)) ->n : number, Symbol(n, Decl(bitwiseNotOperatorWithNumberType.ts, 23, 35)) +>n : number +>n : number // number type expressions var ResultIsNumber6 = ~objA.a; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(bitwiseNotOperatorWithNumberType.ts, 26, 3)) +>ResultIsNumber6 : number >~objA.a : number ->objA.a : number, Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsNumber7 = ~M.n; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(bitwiseNotOperatorWithNumberType.ts, 27, 3)) +>ResultIsNumber7 : number >~M.n : number ->M.n : number, Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsNumber8 = ~NUMBER1[0]; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(bitwiseNotOperatorWithNumberType.ts, 28, 3)) +>ResultIsNumber8 : number >~NUMBER1[0] : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number var ResultIsNumber9 = ~foo(); ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(bitwiseNotOperatorWithNumberType.ts, 29, 3)) +>ResultIsNumber9 : number >~foo() : number >foo() : number ->foo : () => number, Symbol(foo, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 31)) +>foo : () => number var ResultIsNumber10 = ~A.foo(); ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(bitwiseNotOperatorWithNumberType.ts, 30, 3)) +>ResultIsNumber10 : number >~A.foo() : number >A.foo() : number ->A.foo : () => number, Symbol(A.foo, Decl(bitwiseNotOperatorWithNumberType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(bitwiseNotOperatorWithNumberType.ts, 4, 36)) ->foo : () => number, Symbol(A.foo, Decl(bitwiseNotOperatorWithNumberType.ts, 7, 21)) +>A.foo : () => number +>A : typeof A +>foo : () => number var ResultIsNumber11 = ~(NUMBER + NUMBER); ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(bitwiseNotOperatorWithNumberType.ts, 31, 3)) +>ResultIsNumber11 : number >~(NUMBER + NUMBER) : number >(NUMBER + NUMBER) : number >NUMBER + NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // multiple ~ operators var ResultIsNumber12 = ~~NUMBER; ->ResultIsNumber12 : number, Symbol(ResultIsNumber12, Decl(bitwiseNotOperatorWithNumberType.ts, 34, 3)) +>ResultIsNumber12 : number >~~NUMBER : number >~NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsNumber13 = ~~~(NUMBER + NUMBER); ->ResultIsNumber13 : number, Symbol(ResultIsNumber13, Decl(bitwiseNotOperatorWithNumberType.ts, 35, 3)) +>ResultIsNumber13 : number >~~~(NUMBER + NUMBER) : number >~~(NUMBER + NUMBER) : number >~(NUMBER + NUMBER) : number >(NUMBER + NUMBER) : number >NUMBER + NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // miss assignment operators ~NUMBER; >~NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(bitwiseNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number ~NUMBER1; >~NUMBER1 : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] ~foo(); >~foo() : number >foo() : number ->foo : () => number, Symbol(foo, Decl(bitwiseNotOperatorWithNumberType.ts, 2, 31)) +>foo : () => number ~objA.a; >~objA.a : number ->objA.a : number, Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number ~M.n; >~M.n : number ->M.n : number, Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number ~objA.a, M.n; >~objA.a, M.n : number >~objA.a : number ->objA.a : number, Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(bitwiseNotOperatorWithNumberType.ts, 6, 9)) ->M.n : number, Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(bitwiseNotOperatorWithNumberType.ts, 11, 14)) +>objA.a : number +>objA : A +>a : number +>M.n : number +>M : typeof M +>n : number diff --git a/tests/baselines/reference/bitwiseNotOperatorWithStringType.symbols b/tests/baselines/reference/bitwiseNotOperatorWithStringType.symbols new file mode 100644 index 0000000000000..1e2d28f51c20d --- /dev/null +++ b/tests/baselines/reference/bitwiseNotOperatorWithStringType.symbols @@ -0,0 +1,122 @@ +=== tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts === +// ~ operator on string type +var STRING: string; +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) + +var STRING1: string[] = ["", "abc"]; +>STRING1 : Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) + +function foo(): string { return "abc"; } +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithStringType.ts, 2, 36)) + +class A { +>A : Symbol(A, Decl(bitwiseNotOperatorWithStringType.ts, 4, 40)) + + public a: string; +>a : Symbol(a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) + + static foo() { return ""; } +>foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithStringType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(bitwiseNotOperatorWithStringType.ts, 9, 1)) + + export var n: string; +>n : Symbol(n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithStringType.ts, 14, 3)) +>A : Symbol(A, Decl(bitwiseNotOperatorWithStringType.ts, 4, 40)) + +// string type var +var ResultIsNumber1 = ~STRING; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithStringType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) + +var ResultIsNumber2 = ~STRING1; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithStringType.ts, 18, 3)) +>STRING1 : Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) + +// string type literal +var ResultIsNumber3 = ~""; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithStringType.ts, 21, 3)) + +var ResultIsNumber4 = ~{ x: "", y: "" }; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithStringType.ts, 22, 3)) +>x : Symbol(x, Decl(bitwiseNotOperatorWithStringType.ts, 22, 24)) +>y : Symbol(y, Decl(bitwiseNotOperatorWithStringType.ts, 22, 31)) + +var ResultIsNumber5 = ~{ x: "", y: (s: string) => { return s; } }; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(bitwiseNotOperatorWithStringType.ts, 23, 3)) +>x : Symbol(x, Decl(bitwiseNotOperatorWithStringType.ts, 23, 24)) +>y : Symbol(y, Decl(bitwiseNotOperatorWithStringType.ts, 23, 31)) +>s : Symbol(s, Decl(bitwiseNotOperatorWithStringType.ts, 23, 36)) +>s : Symbol(s, Decl(bitwiseNotOperatorWithStringType.ts, 23, 36)) + +// string type expressions +var ResultIsNumber6 = ~objA.a; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(bitwiseNotOperatorWithStringType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) + +var ResultIsNumber7 = ~M.n; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(bitwiseNotOperatorWithStringType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) + +var ResultIsNumber8 = ~STRING1[0]; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(bitwiseNotOperatorWithStringType.ts, 28, 3)) +>STRING1 : Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) + +var ResultIsNumber9 = ~foo(); +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(bitwiseNotOperatorWithStringType.ts, 29, 3)) +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithStringType.ts, 2, 36)) + +var ResultIsNumber10 = ~A.foo(); +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(bitwiseNotOperatorWithStringType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithStringType.ts, 7, 21)) +>A : Symbol(A, Decl(bitwiseNotOperatorWithStringType.ts, 4, 40)) +>foo : Symbol(A.foo, Decl(bitwiseNotOperatorWithStringType.ts, 7, 21)) + +var ResultIsNumber11 = ~(STRING + STRING); +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(bitwiseNotOperatorWithStringType.ts, 31, 3)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) + +var ResultIsNumber12 = ~STRING.charAt(0); +>ResultIsNumber12 : Symbol(ResultIsNumber12, Decl(bitwiseNotOperatorWithStringType.ts, 32, 3)) +>STRING.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + +// multiple ~ operators +var ResultIsNumber13 = ~~STRING; +>ResultIsNumber13 : Symbol(ResultIsNumber13, Decl(bitwiseNotOperatorWithStringType.ts, 35, 3)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) + +var ResultIsNumber14 = ~~~(STRING + STRING); +>ResultIsNumber14 : Symbol(ResultIsNumber14, Decl(bitwiseNotOperatorWithStringType.ts, 36, 3)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) + +//miss assignment operators +~STRING; +>STRING : Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) + +~STRING1; +>STRING1 : Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) + +~foo(); +>foo : Symbol(foo, Decl(bitwiseNotOperatorWithStringType.ts, 2, 36)) + +~objA.a,M.n; +>objA.a : Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(bitwiseNotOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(bitwiseNotOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) + diff --git a/tests/baselines/reference/bitwiseNotOperatorWithStringType.types b/tests/baselines/reference/bitwiseNotOperatorWithStringType.types index 5f2a28761274b..4f1ca481a1f60 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithStringType.types +++ b/tests/baselines/reference/bitwiseNotOperatorWithStringType.types @@ -1,168 +1,168 @@ === tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithStringType.ts === // ~ operator on string type var STRING: string; ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : string var STRING1: string[] = ["", "abc"]; ->STRING1 : string[], Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >["", "abc"] : string[] >"" : string >"abc" : string function foo(): string { return "abc"; } ->foo : () => string, Symbol(foo, Decl(bitwiseNotOperatorWithStringType.ts, 2, 36)) +>foo : () => string >"abc" : string class A { ->A : A, Symbol(A, Decl(bitwiseNotOperatorWithStringType.ts, 4, 40)) +>A : A public a: string; ->a : string, Symbol(a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) +>a : string static foo() { return ""; } ->foo : () => string, Symbol(A.foo, Decl(bitwiseNotOperatorWithStringType.ts, 7, 21)) +>foo : () => string >"" : string } module M { ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithStringType.ts, 9, 1)) +>M : typeof M export var n: string; ->n : string, Symbol(n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) +>n : string } var objA = new A(); ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithStringType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(bitwiseNotOperatorWithStringType.ts, 4, 40)) +>A : typeof A // string type var var ResultIsNumber1 = ~STRING; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(bitwiseNotOperatorWithStringType.ts, 17, 3)) +>ResultIsNumber1 : number >~STRING : number ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsNumber2 = ~STRING1; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(bitwiseNotOperatorWithStringType.ts, 18, 3)) +>ResultIsNumber2 : number >~STRING1 : number ->STRING1 : string[], Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] // string type literal var ResultIsNumber3 = ~""; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(bitwiseNotOperatorWithStringType.ts, 21, 3)) +>ResultIsNumber3 : number >~"" : number >"" : string var ResultIsNumber4 = ~{ x: "", y: "" }; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(bitwiseNotOperatorWithStringType.ts, 22, 3)) +>ResultIsNumber4 : number >~{ x: "", y: "" } : number >{ x: "", y: "" } : { x: string; y: string; } ->x : string, Symbol(x, Decl(bitwiseNotOperatorWithStringType.ts, 22, 24)) +>x : string >"" : string ->y : string, Symbol(y, Decl(bitwiseNotOperatorWithStringType.ts, 22, 31)) +>y : string >"" : string var ResultIsNumber5 = ~{ x: "", y: (s: string) => { return s; } }; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(bitwiseNotOperatorWithStringType.ts, 23, 3)) +>ResultIsNumber5 : number >~{ x: "", y: (s: string) => { return s; } } : number >{ x: "", y: (s: string) => { return s; } } : { x: string; y: (s: string) => string; } ->x : string, Symbol(x, Decl(bitwiseNotOperatorWithStringType.ts, 23, 24)) +>x : string >"" : string ->y : (s: string) => string, Symbol(y, Decl(bitwiseNotOperatorWithStringType.ts, 23, 31)) +>y : (s: string) => string >(s: string) => { return s; } : (s: string) => string ->s : string, Symbol(s, Decl(bitwiseNotOperatorWithStringType.ts, 23, 36)) ->s : string, Symbol(s, Decl(bitwiseNotOperatorWithStringType.ts, 23, 36)) +>s : string +>s : string // string type expressions var ResultIsNumber6 = ~objA.a; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(bitwiseNotOperatorWithStringType.ts, 26, 3)) +>ResultIsNumber6 : number >~objA.a : number ->objA.a : string, Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) +>objA.a : string +>objA : A +>a : string var ResultIsNumber7 = ~M.n; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(bitwiseNotOperatorWithStringType.ts, 27, 3)) +>ResultIsNumber7 : number >~M.n : number ->M.n : string, Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) +>M.n : string +>M : typeof M +>n : string var ResultIsNumber8 = ~STRING1[0]; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(bitwiseNotOperatorWithStringType.ts, 28, 3)) +>ResultIsNumber8 : number >~STRING1[0] : number >STRING1[0] : string ->STRING1 : string[], Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >0 : number var ResultIsNumber9 = ~foo(); ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(bitwiseNotOperatorWithStringType.ts, 29, 3)) +>ResultIsNumber9 : number >~foo() : number >foo() : string ->foo : () => string, Symbol(foo, Decl(bitwiseNotOperatorWithStringType.ts, 2, 36)) +>foo : () => string var ResultIsNumber10 = ~A.foo(); ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(bitwiseNotOperatorWithStringType.ts, 30, 3)) +>ResultIsNumber10 : number >~A.foo() : number >A.foo() : string ->A.foo : () => string, Symbol(A.foo, Decl(bitwiseNotOperatorWithStringType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(bitwiseNotOperatorWithStringType.ts, 4, 40)) ->foo : () => string, Symbol(A.foo, Decl(bitwiseNotOperatorWithStringType.ts, 7, 21)) +>A.foo : () => string +>A : typeof A +>foo : () => string var ResultIsNumber11 = ~(STRING + STRING); ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(bitwiseNotOperatorWithStringType.ts, 31, 3)) +>ResultIsNumber11 : number >~(STRING + STRING) : number >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string var ResultIsNumber12 = ~STRING.charAt(0); ->ResultIsNumber12 : number, Symbol(ResultIsNumber12, Decl(bitwiseNotOperatorWithStringType.ts, 32, 3)) +>ResultIsNumber12 : number >~STRING.charAt(0) : number >STRING.charAt(0) : string ->STRING.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING.charAt : (pos: number) => string +>STRING : string +>charAt : (pos: number) => string >0 : number // multiple ~ operators var ResultIsNumber13 = ~~STRING; ->ResultIsNumber13 : number, Symbol(ResultIsNumber13, Decl(bitwiseNotOperatorWithStringType.ts, 35, 3)) +>ResultIsNumber13 : number >~~STRING : number >~STRING : number ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsNumber14 = ~~~(STRING + STRING); ->ResultIsNumber14 : number, Symbol(ResultIsNumber14, Decl(bitwiseNotOperatorWithStringType.ts, 36, 3)) +>ResultIsNumber14 : number >~~~(STRING + STRING) : number >~~(STRING + STRING) : number >~(STRING + STRING) : number >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string //miss assignment operators ~STRING; >~STRING : number ->STRING : string, Symbol(STRING, Decl(bitwiseNotOperatorWithStringType.ts, 1, 3)) +>STRING : string ~STRING1; >~STRING1 : number ->STRING1 : string[], Symbol(STRING1, Decl(bitwiseNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] ~foo(); >~foo() : number >foo() : string ->foo : () => string, Symbol(foo, Decl(bitwiseNotOperatorWithStringType.ts, 2, 36)) +>foo : () => string ~objA.a,M.n; >~objA.a,M.n : string >~objA.a : number ->objA.a : string, Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(bitwiseNotOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(bitwiseNotOperatorWithStringType.ts, 6, 9)) ->M.n : string, Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(bitwiseNotOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(bitwiseNotOperatorWithStringType.ts, 11, 14)) +>objA.a : string +>objA : A +>a : string +>M.n : string +>M : typeof M +>n : string diff --git a/tests/baselines/reference/bom-utf16be.symbols b/tests/baselines/reference/bom-utf16be.symbols new file mode 100644 index 0000000000000..e2a1f4c4c76e2 --- /dev/null +++ b/tests/baselines/reference/bom-utf16be.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/bom-utf16be.ts === +var x=10; +>x : Symbol(x, Decl(bom-utf16be.ts, 0, 3)) + diff --git a/tests/baselines/reference/bom-utf16be.types b/tests/baselines/reference/bom-utf16be.types index 42db28d9ccd0c..1787d1022451b 100644 --- a/tests/baselines/reference/bom-utf16be.types +++ b/tests/baselines/reference/bom-utf16be.types @@ -1,5 +1,5 @@ === tests/cases/compiler/bom-utf16be.ts === var x=10; ->x : number, Symbol(x, Decl(bom-utf16be.ts, 0, 3)) +>x : number >10 : number diff --git a/tests/baselines/reference/bom-utf16le.symbols b/tests/baselines/reference/bom-utf16le.symbols new file mode 100644 index 0000000000000..396e7ec0d5cec --- /dev/null +++ b/tests/baselines/reference/bom-utf16le.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/bom-utf16le.ts === +var x=10; +>x : Symbol(x, Decl(bom-utf16le.ts, 0, 3)) + diff --git a/tests/baselines/reference/bom-utf16le.types b/tests/baselines/reference/bom-utf16le.types index f5cdeb9cd8a8d..865c94eb82d07 100644 --- a/tests/baselines/reference/bom-utf16le.types +++ b/tests/baselines/reference/bom-utf16le.types @@ -1,5 +1,5 @@ === tests/cases/compiler/bom-utf16le.ts === var x=10; ->x : number, Symbol(x, Decl(bom-utf16le.ts, 0, 3)) +>x : number >10 : number diff --git a/tests/baselines/reference/bom-utf8.symbols b/tests/baselines/reference/bom-utf8.symbols new file mode 100644 index 0000000000000..e13277c895365 --- /dev/null +++ b/tests/baselines/reference/bom-utf8.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/bom-utf8.ts === +var x=10; +>x : Symbol(x, Decl(bom-utf8.ts, 0, 3)) + diff --git a/tests/baselines/reference/bom-utf8.types b/tests/baselines/reference/bom-utf8.types index bf54566554732..d96d013238317 100644 --- a/tests/baselines/reference/bom-utf8.types +++ b/tests/baselines/reference/bom-utf8.types @@ -1,5 +1,5 @@ === tests/cases/compiler/bom-utf8.ts === var x=10; ->x : number, Symbol(x, Decl(bom-utf8.ts, 0, 3)) +>x : number >10 : number diff --git a/tests/baselines/reference/booleanPropertyAccess.symbols b/tests/baselines/reference/booleanPropertyAccess.symbols new file mode 100644 index 0000000000000..c552f268d0137 --- /dev/null +++ b/tests/baselines/reference/booleanPropertyAccess.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/types/primitives/boolean/booleanPropertyAccess.ts === +var x = true; +>x : Symbol(x, Decl(booleanPropertyAccess.ts, 0, 3)) + +var a = x.toString(); +>a : Symbol(a, Decl(booleanPropertyAccess.ts, 2, 3)) +>x.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>x : Symbol(x, Decl(booleanPropertyAccess.ts, 0, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var b = x['toString'](); +>b : Symbol(b, Decl(booleanPropertyAccess.ts, 3, 3)) +>x : Symbol(x, Decl(booleanPropertyAccess.ts, 0, 3)) +>'toString' : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + diff --git a/tests/baselines/reference/booleanPropertyAccess.types b/tests/baselines/reference/booleanPropertyAccess.types index 42295c76e8690..2795b36cee525 100644 --- a/tests/baselines/reference/booleanPropertyAccess.types +++ b/tests/baselines/reference/booleanPropertyAccess.types @@ -1,19 +1,19 @@ === tests/cases/conformance/types/primitives/boolean/booleanPropertyAccess.ts === var x = true; ->x : boolean, Symbol(x, Decl(booleanPropertyAccess.ts, 0, 3)) +>x : boolean >true : boolean var a = x.toString(); ->a : string, Symbol(a, Decl(booleanPropertyAccess.ts, 2, 3)) +>a : string >x.toString() : string ->x.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->x : boolean, Symbol(x, Decl(booleanPropertyAccess.ts, 0, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>x.toString : () => string +>x : boolean +>toString : () => string var b = x['toString'](); ->b : string, Symbol(b, Decl(booleanPropertyAccess.ts, 3, 3)) +>b : string >x['toString']() : string >x['toString'] : () => string ->x : boolean, Symbol(x, Decl(booleanPropertyAccess.ts, 0, 3)) ->'toString' : string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>x : boolean +>'toString' : string diff --git a/tests/baselines/reference/breakInIterationOrSwitchStatement1.symbols b/tests/baselines/reference/breakInIterationOrSwitchStatement1.symbols new file mode 100644 index 0000000000000..6a2bae2c2c412 --- /dev/null +++ b/tests/baselines/reference/breakInIterationOrSwitchStatement1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/breakInIterationOrSwitchStatement1.ts === +while (true) { +No type information for this code. break; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/breakInIterationOrSwitchStatement2.symbols b/tests/baselines/reference/breakInIterationOrSwitchStatement2.symbols new file mode 100644 index 0000000000000..0f8928a664dcf --- /dev/null +++ b/tests/baselines/reference/breakInIterationOrSwitchStatement2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/breakInIterationOrSwitchStatement2.ts === +do { +No type information for this code. break; +No type information for this code.} +No type information for this code.while (true); +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/breakInIterationOrSwitchStatement3.symbols b/tests/baselines/reference/breakInIterationOrSwitchStatement3.symbols new file mode 100644 index 0000000000000..5676b2deccd2e --- /dev/null +++ b/tests/baselines/reference/breakInIterationOrSwitchStatement3.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/breakInIterationOrSwitchStatement3.ts === +for (;;) { +No type information for this code. break; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/breakTarget1.symbols b/tests/baselines/reference/breakTarget1.symbols new file mode 100644 index 0000000000000..eda3b1cac352f --- /dev/null +++ b/tests/baselines/reference/breakTarget1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/breakTarget1.ts === +target: +No type information for this code. break target; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/breakTarget2.symbols b/tests/baselines/reference/breakTarget2.symbols new file mode 100644 index 0000000000000..6357695785bcf --- /dev/null +++ b/tests/baselines/reference/breakTarget2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/breakTarget2.ts === +target: +No type information for this code.while (true) { +No type information for this code. break target; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/breakTarget3.symbols b/tests/baselines/reference/breakTarget3.symbols new file mode 100644 index 0000000000000..580706bbd4a46 --- /dev/null +++ b/tests/baselines/reference/breakTarget3.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/breakTarget3.ts === +target1: +No type information for this code.target2: +No type information for this code.while (true) { +No type information for this code. break target1; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/breakTarget4.symbols b/tests/baselines/reference/breakTarget4.symbols new file mode 100644 index 0000000000000..aba35ddcfdf3d --- /dev/null +++ b/tests/baselines/reference/breakTarget4.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/breakTarget4.ts === +target1: +No type information for this code.target2: +No type information for this code.while (true) { +No type information for this code. break target2; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.symbols b/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.symbols new file mode 100644 index 0000000000000..f1e724f38db88 --- /dev/null +++ b/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts === +interface I { +>I : Symbol(I, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) + + (u: U): U; +>U : Symbol(U, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 5)) +>T : Symbol(T, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) +>u : Symbol(u, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 18)) +>U : Symbol(U, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 5)) +>U : Symbol(U, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 5)) +} +var i: I; +>i : Symbol(i, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) +>I : Symbol(I, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) + +var y = i(""); // y should be string +>y : Symbol(y, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>i : Symbol(i, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) + diff --git a/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.types b/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.types index 5156a4699018f..fe7d3a6ad089c 100644 --- a/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.types +++ b/tests/baselines/reference/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.types @@ -1,22 +1,22 @@ === tests/cases/compiler/callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts === interface I { ->I : I, Symbol(I, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) +>I : I +>T : T (u: U): U; ->U : U, Symbol(U, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 5)) ->T : T, Symbol(T, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) ->u : U, Symbol(u, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 18)) ->U : U, Symbol(U, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 5)) ->U : U, Symbol(U, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 5)) +>U : U +>T : T +>u : U +>U : U +>U : U } var i: I; ->i : I, Symbol(i, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) ->I : I, Symbol(I, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) +>i : I +>I : I var y = i(""); // y should be string ->y : string, Symbol(y, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>y : string >i("") : string ->i : I, Symbol(i, Decl(callExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) +>i : I >"" : string diff --git a/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.symbols b/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.symbols new file mode 100644 index 0000000000000..107650c530eed --- /dev/null +++ b/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.symbols @@ -0,0 +1,114 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/callGenericFunctionWithZeroTypeArguments.ts === +// valid invocations of generic functions with no explicit type arguments provided + +function f(x: T): T { return null; } +>f : Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 0, 0)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 11)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 14)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 11)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 11)) + +var r = f(1); +>r : Symbol(r, Decl(callGenericFunctionWithZeroTypeArguments.ts, 3, 3)) +>f : Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 0, 0)) + +var f2 = (x: T): T => { return null; } +>f2 : Symbol(f2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 3)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 10)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 13)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 10)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 10)) + +var r2 = f2(1); +>r2 : Symbol(r2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 6, 3)) +>f2 : Symbol(f2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 3)) + +var f3: { (x: T): T; } +>f3 : Symbol(f3, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 3)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 11)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 14)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 11)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 11)) + +var r3 = f3(1); +>r3 : Symbol(r3, Decl(callGenericFunctionWithZeroTypeArguments.ts, 9, 3)) +>f3 : Symbol(f3, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 3)) + +class C { +>C : Symbol(C, Decl(callGenericFunctionWithZeroTypeArguments.ts, 9, 15)) + + f(x: T): T { +>f : Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 11, 9)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 6)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 9)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 6)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 6)) + + return null; + } +} +var r4 = (new C()).f(1); +>r4 : Symbol(r4, Decl(callGenericFunctionWithZeroTypeArguments.ts, 16, 3)) +>(new C()).f : Symbol(C.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 11, 9)) +>C : Symbol(C, Decl(callGenericFunctionWithZeroTypeArguments.ts, 9, 15)) +>f : Symbol(C.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 11, 9)) + +interface I { +>I : Symbol(I, Decl(callGenericFunctionWithZeroTypeArguments.ts, 16, 24)) + + f(x: T): T; +>f : Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 18, 13)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 6)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 9)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 6)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 6)) +} +var i: I; +>i : Symbol(i, Decl(callGenericFunctionWithZeroTypeArguments.ts, 21, 3)) +>I : Symbol(I, Decl(callGenericFunctionWithZeroTypeArguments.ts, 16, 24)) + +var r5 = i.f(1); +>r5 : Symbol(r5, Decl(callGenericFunctionWithZeroTypeArguments.ts, 22, 3)) +>i.f : Symbol(I.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 18, 13)) +>i : Symbol(i, Decl(callGenericFunctionWithZeroTypeArguments.ts, 21, 3)) +>f : Symbol(I.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 18, 13)) + +class C2 { +>C2 : Symbol(C2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 22, 16)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 9)) + + f(x: T): T { +>f : Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 13)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 25, 6)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 9)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 9)) + + return null; + } +} +var r6 = (new C2()).f(1); +>r6 : Symbol(r6, Decl(callGenericFunctionWithZeroTypeArguments.ts, 29, 3)) +>(new C2()).f : Symbol(C2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 13)) +>C2 : Symbol(C2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 22, 16)) +>f : Symbol(C2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 13)) + +interface I2 { +>I2 : Symbol(I2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 29, 25)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 13)) + + f(x: T): T; +>f : Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 17)) +>x : Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 32, 6)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 13)) +>T : Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 13)) +} +var i2: I2; +>i2 : Symbol(i2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 34, 3)) +>I2 : Symbol(I2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 29, 25)) + +var r7 = i2.f(1); +>r7 : Symbol(r7, Decl(callGenericFunctionWithZeroTypeArguments.ts, 35, 3)) +>i2.f : Symbol(I2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 17)) +>i2 : Symbol(i2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 34, 3)) +>f : Symbol(I2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 17)) + diff --git a/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types b/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types index e2af348f4a0f2..e3bcb35805fb2 100644 --- a/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types +++ b/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types @@ -2,136 +2,136 @@ // valid invocations of generic functions with no explicit type arguments provided function f(x: T): T { return null; } ->f : (x: T) => T, Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 0, 0)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 11)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 14)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 11)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 2, 11)) +>f : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null var r = f(1); ->r : number, Symbol(r, Decl(callGenericFunctionWithZeroTypeArguments.ts, 3, 3)) +>r : number >f(1) : number ->f : (x: T) => T, Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 0, 0)) +>f : (x: T) => T >1 : number var f2 = (x: T): T => { return null; } ->f2 : (x: T) => T, Symbol(f2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 3)) +>f2 : (x: T) => T >(x: T): T => { return null; } : (x: T) => T ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 10)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 13)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 10)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 10)) +>T : T +>x : T +>T : T +>T : T >null : null var r2 = f2(1); ->r2 : number, Symbol(r2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 6, 3)) +>r2 : number >f2(1) : number ->f2 : (x: T) => T, Symbol(f2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 5, 3)) +>f2 : (x: T) => T >1 : number var f3: { (x: T): T; } ->f3 : (x: T) => T, Symbol(f3, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 3)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 11)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 14)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 11)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 11)) +>f3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T var r3 = f3(1); ->r3 : number, Symbol(r3, Decl(callGenericFunctionWithZeroTypeArguments.ts, 9, 3)) +>r3 : number >f3(1) : number ->f3 : (x: T) => T, Symbol(f3, Decl(callGenericFunctionWithZeroTypeArguments.ts, 8, 3)) +>f3 : (x: T) => T >1 : number class C { ->C : C, Symbol(C, Decl(callGenericFunctionWithZeroTypeArguments.ts, 9, 15)) +>C : C f(x: T): T { ->f : (x: T) => T, Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 11, 9)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 6)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 9)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 6)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 12, 6)) +>f : (x: T) => T +>T : T +>x : T +>T : T +>T : T return null; >null : null } } var r4 = (new C()).f(1); ->r4 : number, Symbol(r4, Decl(callGenericFunctionWithZeroTypeArguments.ts, 16, 3)) +>r4 : number >(new C()).f(1) : number ->(new C()).f : (x: T) => T, Symbol(C.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 11, 9)) +>(new C()).f : (x: T) => T >(new C()) : C >new C() : C ->C : typeof C, Symbol(C, Decl(callGenericFunctionWithZeroTypeArguments.ts, 9, 15)) ->f : (x: T) => T, Symbol(C.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 11, 9)) +>C : typeof C +>f : (x: T) => T >1 : number interface I { ->I : I, Symbol(I, Decl(callGenericFunctionWithZeroTypeArguments.ts, 16, 24)) +>I : I f(x: T): T; ->f : (x: T) => T, Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 18, 13)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 6)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 9)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 6)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 19, 6)) +>f : (x: T) => T +>T : T +>x : T +>T : T +>T : T } var i: I; ->i : I, Symbol(i, Decl(callGenericFunctionWithZeroTypeArguments.ts, 21, 3)) ->I : I, Symbol(I, Decl(callGenericFunctionWithZeroTypeArguments.ts, 16, 24)) +>i : I +>I : I var r5 = i.f(1); ->r5 : number, Symbol(r5, Decl(callGenericFunctionWithZeroTypeArguments.ts, 22, 3)) +>r5 : number >i.f(1) : number ->i.f : (x: T) => T, Symbol(I.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 18, 13)) ->i : I, Symbol(i, Decl(callGenericFunctionWithZeroTypeArguments.ts, 21, 3)) ->f : (x: T) => T, Symbol(I.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 18, 13)) +>i.f : (x: T) => T +>i : I +>f : (x: T) => T >1 : number class C2 { ->C2 : C2, Symbol(C2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 22, 16)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 9)) +>C2 : C2 +>T : T f(x: T): T { ->f : (x: T) => T, Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 13)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 25, 6)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 9)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 9)) +>f : (x: T) => T +>x : T +>T : T +>T : T return null; >null : null } } var r6 = (new C2()).f(1); ->r6 : {}, Symbol(r6, Decl(callGenericFunctionWithZeroTypeArguments.ts, 29, 3)) +>r6 : {} >(new C2()).f(1) : {} ->(new C2()).f : (x: {}) => {}, Symbol(C2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 13)) +>(new C2()).f : (x: {}) => {} >(new C2()) : C2<{}> >new C2() : C2<{}> ->C2 : typeof C2, Symbol(C2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 22, 16)) ->f : (x: {}) => {}, Symbol(C2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 24, 13)) +>C2 : typeof C2 +>f : (x: {}) => {} >1 : number interface I2 { ->I2 : I2, Symbol(I2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 29, 25)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 13)) +>I2 : I2 +>T : T f(x: T): T; ->f : (x: T) => T, Symbol(f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 17)) ->x : T, Symbol(x, Decl(callGenericFunctionWithZeroTypeArguments.ts, 32, 6)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 13)) ->T : T, Symbol(T, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 13)) +>f : (x: T) => T +>x : T +>T : T +>T : T } var i2: I2; ->i2 : I2, Symbol(i2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 34, 3)) ->I2 : I2, Symbol(I2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 29, 25)) +>i2 : I2 +>I2 : I2 var r7 = i2.f(1); ->r7 : number, Symbol(r7, Decl(callGenericFunctionWithZeroTypeArguments.ts, 35, 3)) +>r7 : number >i2.f(1) : number ->i2.f : (x: number) => number, Symbol(I2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 17)) ->i2 : I2, Symbol(i2, Decl(callGenericFunctionWithZeroTypeArguments.ts, 34, 3)) ->f : (x: number) => number, Symbol(I2.f, Decl(callGenericFunctionWithZeroTypeArguments.ts, 31, 17)) +>i2.f : (x: number) => number +>i2 : I2 +>f : (x: number) => number >1 : number diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.symbols b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.symbols new file mode 100644 index 0000000000000..d0fe78cb1788f --- /dev/null +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.symbols @@ -0,0 +1,398 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance2.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation + +class Base { foo: string; } +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance2.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance2.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>baz : Symbol(baz, Decl(callSignatureAssignabilityInInheritance2.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance2.ts, 4, 47)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>bing : Symbol(bing, Decl(callSignatureAssignabilityInInheritance2.ts, 5, 33)) + +interface A { // T +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance2.ts, 5, 49)) + + // M's + a: (x: number) => number[]; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 7, 13)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 9, 8)) + + a2: (x: number) => string[]; +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance2.ts, 9, 31)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 10, 9)) + + a3: (x: number) => void; +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance2.ts, 10, 32)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 11, 9)) + + a4: (x: string, y: number) => string; +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance2.ts, 11, 28)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 12, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 12, 19)) + + a5: (x: (arg: string) => number) => string; +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance2.ts, 12, 41)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 13, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 13, 13)) + + a6: (x: (arg: Base) => Derived) => Base; +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance2.ts, 13, 47)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 14, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 14, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) + + a7: (x: (arg: Base) => Derived) => (r: Base) => Derived; +>a7 : Symbol(a7, Decl(callSignatureAssignabilityInInheritance2.ts, 14, 44)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 40)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a8: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a8 : Symbol(a8, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 60)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 35)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 40)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 68)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a9: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a9 : Symbol(a9, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 88)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 35)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 40)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 68)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a10: (...x: Derived[]) => Derived; +>a10 : Symbol(a10, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 88)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 18, 10)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance2.ts, 18, 38)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 10)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 14)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 29)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 34)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 47)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) + + a12: (x: Array, y: Array) => Array; +>a12 : Symbol(a12, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 71)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 20, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 20, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance2.ts, 3, 43)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a13: (x: Array, y: Array) => Array; +>a13 : Symbol(a13, Decl(callSignatureAssignabilityInInheritance2.ts, 20, 64)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 21, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 21, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a14: (x: { a: string; b: number }) => Object; +>a14 : Symbol(a14, Decl(callSignatureAssignabilityInInheritance2.ts, 21, 63)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 10)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 14)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 25)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + a15: { +>a15 : Symbol(a15, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 49)) + + (x: number): number[]; +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 24, 9)) + + (x: string): string[]; +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 25, 9)) + + }; + a16: { +>a16 : Symbol(a16, Decl(callSignatureAssignabilityInInheritance2.ts, 26, 6)) + + (x: T): number[]; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 28, 9)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 28, 28)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 28, 9)) + + (x: U): number[]; +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 29, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 29, 25)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 29, 9)) + + }; + a17: { +>a17 : Symbol(a17, Decl(callSignatureAssignabilityInInheritance2.ts, 30, 6)) + + (x: (a: number) => number): number[]; +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 32, 9)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 32, 13)) + + (x: (a: string) => string): string[]; +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 33, 9)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 33, 13)) + + }; + a18: { +>a18 : Symbol(a18, Decl(callSignatureAssignabilityInInheritance2.ts, 34, 6)) + + (x: { +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 36, 9)) + + (a: number): number; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 37, 13)) + + (a: string): string; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 38, 13)) + + }): any[]; + (x: { +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 40, 9)) + + (a: boolean): boolean; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 41, 13)) + + (a: Date): Date; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 42, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + }): any[]; + }; +} + +// S's +interface I extends A { +>I : Symbol(I, Decl(callSignatureAssignabilityInInheritance2.ts, 45, 1)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance2.ts, 5, 49)) + + // N's + a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 48, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 8)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 8)) + + a2: (x: T) => string[]; // ok +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 9)) + + a3: (x: T) => T; // ok since Base returns void +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 9)) + + a4: (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 15)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 20)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 9)) + + a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 32)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 15)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 19)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 9)) + + a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 38)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 9)) + + a7: (x: (arg: T) => U) => (r: T) => U; // ok +>a7 : Symbol(a7, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 67)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 24)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 66)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 24)) + + a8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok +>a8 : Symbol(a8, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 77)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 61)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 66)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 85)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) + + a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal +>a9 : Symbol(a9, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 96)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 61)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 66)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 73)) +>bing : Symbol(bing, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 86)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 113)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) + + a10: (...x: T[]) => T; // ok +>a10 : Symbol(a10, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 124)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 10)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 10)) + + a11: (x: T, y: T) => T; // ok +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 45)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 26)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 31)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) + + a12: >(x: Array, y: T) => Array; // ok, less specific parameter type +>a12 : Symbol(a12, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 43)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 33)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds +>a13 : Symbol(a13, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 73)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 36)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 51)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 10)) + + a14: (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature +>a14 : Symbol(a14, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 63)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) + + a15: (x: T) => T[]; // ok +>a15 : Symbol(a15, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 37)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 10)) + + a16: (x: T) => number[]; // ok +>a16 : Symbol(a16, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 26)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 26)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 10)) + + a17: (x: (a: T) => T) => T[]; // ok +>a17 : Symbol(a17, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 44)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) + + a18: (x: (a: T) => T) => T[]; // ok, no inferences for T but assignable to any +>a18 : Symbol(a18, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 36)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) +} diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types index 7870e4e7607b2..335413cd73ed2 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types @@ -2,201 +2,201 @@ // checking subtype relations for function types as it relates to contextual signature instantiation class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(callSignatureAssignabilityInInheritance2.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance2.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(callSignatureAssignabilityInInheritance2.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance2.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(callSignatureAssignabilityInInheritance2.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance2.ts, 5, 49)) +>A : A // M's a: (x: number) => number[]; ->a : (x: number) => number[], Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 7, 13)) ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 9, 8)) +>a : (x: number) => number[] +>x : number a2: (x: number) => string[]; ->a2 : (x: number) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance2.ts, 9, 31)) ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 10, 9)) +>a2 : (x: number) => string[] +>x : number a3: (x: number) => void; ->a3 : (x: number) => void, Symbol(a3, Decl(callSignatureAssignabilityInInheritance2.ts, 10, 32)) ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 11, 9)) +>a3 : (x: number) => void +>x : number a4: (x: string, y: number) => string; ->a4 : (x: string, y: number) => string, Symbol(a4, Decl(callSignatureAssignabilityInInheritance2.ts, 11, 28)) ->x : string, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 12, 9)) ->y : number, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 12, 19)) +>a4 : (x: string, y: number) => string +>x : string +>y : number a5: (x: (arg: string) => number) => string; ->a5 : (x: (arg: string) => number) => string, Symbol(a5, Decl(callSignatureAssignabilityInInheritance2.ts, 12, 41)) ->x : (arg: string) => number, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 13, 9)) ->arg : string, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 13, 13)) +>a5 : (x: (arg: string) => number) => string +>x : (arg: string) => number +>arg : string a6: (x: (arg: Base) => Derived) => Base; ->a6 : (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(callSignatureAssignabilityInInheritance2.ts, 13, 47)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 14, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 14, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>a6 : (x: (arg: Base) => Derived) => Base +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>Base : Base a7: (x: (arg: Base) => Derived) => (r: Base) => Derived; ->a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(callSignatureAssignabilityInInheritance2.ts, 14, 44)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->r : Base, Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 40)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a8: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(callSignatureAssignabilityInInheritance2.ts, 15, 60)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 35)) ->arg2 : Base, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 40)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->r : Base, Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 68)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a9: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(callSignatureAssignabilityInInheritance2.ts, 16, 88)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 35)) ->arg2 : Base, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 40)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->r : Base, Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 68)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a10: (...x: Derived[]) => Derived; ->a10 : (...x: Derived[]) => Derived, Symbol(a10, Decl(callSignatureAssignabilityInInheritance2.ts, 17, 88)) ->x : Derived[], Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 18, 10)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a10 : (...x: Derived[]) => Derived +>x : Derived[] +>Derived : Derived +>Derived : Derived a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(callSignatureAssignabilityInInheritance2.ts, 18, 38)) ->x : { foo: string; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 10)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 14)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 29)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 34)) ->bar : string, Symbol(bar, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 47)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) +>a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>x : { foo: string; } +>foo : string +>y : { foo: string; bar: string; } +>foo : string +>bar : string +>Base : Base a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(callSignatureAssignabilityInInheritance2.ts, 19, 71)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 20, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : Derived2[], Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 20, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance2.ts, 3, 43)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a12 : (x: Base[], y: Derived2[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived2[] +>Array : T[] +>Derived2 : Derived2 +>Array : T[] +>Derived : Derived a13: (x: Array, y: Array) => Array; ->a13 : (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(callSignatureAssignabilityInInheritance2.ts, 20, 64)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 21, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : Derived[], Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 21, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a13 : (x: Base[], y: Derived[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived[] +>Array : T[] +>Derived : Derived +>Array : T[] +>Derived : Derived a14: (x: { a: string; b: number }) => Object; ->a14 : (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(callSignatureAssignabilityInInheritance2.ts, 21, 63)) ->x : { a: string; b: number; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 10)) ->a : string, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 14)) ->b : number, Symbol(b, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 25)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a14 : (x: { a: string; b: number; }) => Object +>x : { a: string; b: number; } +>a : string +>b : number +>Object : Object a15: { ->a15 : { (x: number): number[]; (x: string): string[]; }, Symbol(a15, Decl(callSignatureAssignabilityInInheritance2.ts, 22, 49)) +>a15 : { (x: number): number[]; (x: string): string[]; } (x: number): number[]; ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 24, 9)) +>x : number (x: string): string[]; ->x : string, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 25, 9)) +>x : string }; a16: { ->a16 : { (x: T): number[]; (x: U): number[]; }, Symbol(a16, Decl(callSignatureAssignabilityInInheritance2.ts, 26, 6)) +>a16 : { (x: T): number[]; (x: U): number[]; } (x: T): number[]; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 28, 9)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 28, 28)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 28, 9)) +>T : T +>Derived : Derived +>x : T +>T : T (x: U): number[]; ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 29, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : U, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 29, 25)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 29, 9)) +>U : U +>Base : Base +>x : U +>U : U }; a17: { ->a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }, Symbol(a17, Decl(callSignatureAssignabilityInInheritance2.ts, 30, 6)) +>a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } (x: (a: number) => number): number[]; ->x : (a: number) => number, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 32, 9)) ->a : number, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 32, 13)) +>x : (a: number) => number +>a : number (x: (a: string) => string): string[]; ->x : (a: string) => string, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 33, 9)) ->a : string, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 33, 13)) +>x : (a: string) => string +>a : string }; a18: { ->a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }, Symbol(a18, Decl(callSignatureAssignabilityInInheritance2.ts, 34, 6)) +>a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } (x: { ->x : { (a: number): number; (a: string): string; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 36, 9)) +>x : { (a: number): number; (a: string): string; } (a: number): number; ->a : number, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 37, 13)) +>a : number (a: string): string; ->a : string, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 38, 13)) +>a : string }): any[]; (x: { ->x : { (a: boolean): boolean; (a: Date): Date; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 40, 9)) +>x : { (a: boolean): boolean; (a: Date): Date; } (a: boolean): boolean; ->a : boolean, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 41, 13)) +>a : boolean (a: Date): Date; ->a : Date, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 42, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : Date +>Date : Date +>Date : Date }): any[]; }; @@ -204,195 +204,195 @@ interface A { // T // S's interface I extends A { ->I : I, Symbol(I, Decl(callSignatureAssignabilityInInheritance2.ts, 45, 1)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance2.ts, 5, 49)) +>I : I +>A : A // N's a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 48, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 8)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: (x: T) => string[]; // ok ->a2 : (x: T) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance2.ts, 50, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T a3: (x: T) => T; // ok since Base returns void ->a3 : (x: T) => T, Symbol(a3, Decl(callSignatureAssignabilityInInheritance2.ts, 51, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 9)) +>a3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T a4: (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number ->a4 : (x: T, y: U) => T, Symbol(a4, Decl(callSignatureAssignabilityInInheritance2.ts, 52, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 11)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 15)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 9)) ->y : U, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 20)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 9)) +>a4 : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(callSignatureAssignabilityInInheritance2.ts, 53, 32)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 11)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 15)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 19)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy ->a6 : (x: (arg: T) => U) => T, Symbol(a6, Decl(callSignatureAssignabilityInInheritance2.ts, 54, 38)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 9)) +>a6 : (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a7: (x: (arg: T) => U) => (r: T) => U; // ok ->a7 : (x: (arg: T) => U) => (r: T) => U, Symbol(a7, Decl(callSignatureAssignabilityInInheritance2.ts, 55, 67)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 24)) ->r : T, Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 66)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 24)) +>a7 : (x: (arg: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>r : T +>T : T +>U : U a8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok ->a8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(a8, Decl(callSignatureAssignabilityInInheritance2.ts, 56, 77)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) ->y : (arg2: T) => U, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 61)) ->arg2 : T, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 66)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) ->r : T, Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 85)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 24)) +>a8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: T) => U +>arg2 : T +>T : T +>U : U +>r : T +>T : T +>U : U a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(a9, Decl(callSignatureAssignabilityInInheritance2.ts, 57, 96)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) ->y : (arg2: { foo: string; bing: number; }) => U, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 61)) ->arg2 : { foo: string; bing: number; }, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 66)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 73)) ->bing : number, Symbol(bing, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 86)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) ->r : T, Symbol(r, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 113)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 24)) +>a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: { foo: string; bing: number; }) => U +>arg2 : { foo: string; bing: number; } +>foo : string +>bing : number +>U : U +>r : T +>T : T +>U : U a10: (...x: T[]) => T; // ok ->a10 : (...x: T[]) => T, Symbol(a10, Decl(callSignatureAssignabilityInInheritance2.ts, 58, 124)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 10)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : T[], Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 10)) +>a10 : (...x: T[]) => T +>T : T +>Derived : Derived +>x : T[] +>T : T +>T : T a11: (x: T, y: T) => T; // ok ->a11 : (x: T, y: T) => T, Symbol(a11, Decl(callSignatureAssignabilityInInheritance2.ts, 59, 45)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 26)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) ->y : T, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 31)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 10)) +>a11 : (x: T, y: T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : T +>T : T +>T : T a12: >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : (x: Base[], y: T) => Derived[], Symbol(a12, Decl(callSignatureAssignabilityInInheritance2.ts, 60, 43)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 33)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : T, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a12 : (x: Base[], y: T) => Derived[] +>T : T +>Array : T[] +>Base : Base +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>Array : T[] +>Derived : Derived a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : (x: Base[], y: T) => T, Symbol(a13, Decl(callSignatureAssignabilityInInheritance2.ts, 61, 73)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 36)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : T, Symbol(y, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 51)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 10)) +>a13 : (x: Base[], y: T) => T +>T : T +>Array : T[] +>Derived : Derived +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>T : T a14: (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature ->a14 : (x: { a: T; b: T; }) => T, Symbol(a14, Decl(callSignatureAssignabilityInInheritance2.ts, 62, 63)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 10)) +>a14 : (x: { a: T; b: T; }) => T +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a15: (x: T) => T[]; // ok ->a15 : (x: T) => T[], Symbol(a15, Decl(callSignatureAssignabilityInInheritance2.ts, 63, 37)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 10)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 10)) +>a15 : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a16: (x: T) => number[]; // ok ->a16 : (x: T) => number[], Symbol(a16, Decl(callSignatureAssignabilityInInheritance2.ts, 64, 26)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 26)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 10)) +>a16 : (x: T) => number[] +>T : T +>Base : Base +>x : T +>T : T a17: (x: (a: T) => T) => T[]; // ok ->a17 : (x: (a: T) => T) => T[], Symbol(a17, Decl(callSignatureAssignabilityInInheritance2.ts, 65, 44)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) ->x : (a: T) => T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 10)) +>a17 : (x: (a: T) => T) => T[] +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T a18: (x: (a: T) => T) => T[]; // ok, no inferences for T but assignable to any ->a18 : (x: (a: T) => T) => T[], Symbol(a18, Decl(callSignatureAssignabilityInInheritance2.ts, 66, 36)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) ->x : (a: T) => T, Symbol(x, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance2.ts, 67, 10)) +>a18 : (x: (a: T) => T) => T[] +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.symbols b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.symbols new file mode 100644 index 0000000000000..f45d7f318d23e --- /dev/null +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.symbols @@ -0,0 +1,281 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance4.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation + +class Base { foo: string; } +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance4.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance4.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) +>baz : Symbol(baz, Decl(callSignatureAssignabilityInInheritance4.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance4.ts, 4, 47)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>bing : Symbol(bing, Decl(callSignatureAssignabilityInInheritance4.ts, 5, 33)) + +interface A { // T +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance4.ts, 5, 49)) + + // M's + a: (x: T) => T[]; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 7, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 8)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 8)) + + a2: (x: T) => string[]; +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 9)) + + a3: (x: T) => void; +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 9)) + + a4: (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 26)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 14)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 19)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 11)) + + a5: (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 36)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 14)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 18)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 9)) + + a6: (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 37)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 25)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 9)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 9)) + + a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 54)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 13)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 27)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 32)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 40)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) + + a15: (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 59)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) + + a16: (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 39)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 26)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 36)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) + + a17: { +>a17 : Symbol(a17, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 52)) + + (x: (a: T) => T): T[]; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 28)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 32)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) + + (x: (a: T) => T): T[]; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 25)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) + + }; + a18: { +>a18 : Symbol(a18, Decl(callSignatureAssignabilityInInheritance4.ts, 21, 6)) + + (x: { +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 23, 9)) + + (a: T): T; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 13)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 32)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 13)) + + (a: T): T; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 13)) + + }): any[]; + (x: { +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 27, 9)) + + (a: T): T; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 13)) +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance4.ts, 3, 43)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 33)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 13)) + + (a: T): T; +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 13)) + + }): any[]; + }; +} + +// S's +interface I extends A { +>I : Symbol(I, Decl(callSignatureAssignabilityInInheritance4.ts, 32, 1)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance4.ts, 5, 49)) + + // N's + a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 35, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 8)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 8)) + + a2: (x: T) => string[]; // ok +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 9)) + + a3: (x: T) => T; // ok since Base returns void +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 9)) + + a4: (x: T, y: U) => string; // ok, instantiation of N is a subtype of M, T is string, U is number +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 15)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 20)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 11)) + + a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 37)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 15)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 19)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 9)) + + a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 38)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 9)) + + a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 67)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 10)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 12)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 16)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 20)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 10)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 30)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 35)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 12)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 43)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 12)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) + + a15: (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V +>a15 : Symbol(a15, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 62)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 10)) +>V : Symbol(V, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 12)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 16)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 20)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 26)) +>V : Symbol(V, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 12)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 10)) + + a16: (x: { a: T; b: T }) => T[]; // ok, more general parameter type +>a16 : Symbol(a16, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 43)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) + + a17: (x: (a: T) => T) => T[]; // ok +>a17 : Symbol(a17, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 39)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) + + a18: (x: (a: T) => T) => any[]; // ok +>a18 : Symbol(a18, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 36)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 14)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 14)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 14)) +} diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types index d21ad142c835e..0575d1332cec0 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types @@ -2,169 +2,169 @@ // checking subtype relations for function types as it relates to contextual signature instantiation class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(callSignatureAssignabilityInInheritance4.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance4.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(callSignatureAssignabilityInInheritance4.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance4.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(callSignatureAssignabilityInInheritance4.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance4.ts, 5, 49)) +>A : A // M's a: (x: T) => T[]; ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 7, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 8)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: (x: T) => string[]; ->a2 : (x: T) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance4.ts, 9, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T a3: (x: T) => void; ->a3 : (x: T) => void, Symbol(a3, Decl(callSignatureAssignabilityInInheritance4.ts, 10, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 9)) +>a3 : (x: T) => void +>T : T +>x : T +>T : T a4: (x: T, y: U) => string; ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(callSignatureAssignabilityInInheritance4.ts, 11, 26)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 11)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 14)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 9)) ->y : U, Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 19)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 11)) +>a4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: (x: (arg: T) => U) => T; ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(callSignatureAssignabilityInInheritance4.ts, 12, 36)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 11)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 14)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 18)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: (x: (arg: T) => Derived) => T; ->a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(callSignatureAssignabilityInInheritance4.ts, 13, 37)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 25)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 9)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 9)) +>a6 : (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(callSignatureAssignabilityInInheritance4.ts, 14, 54)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) ->x : { foo: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 13)) ->foo : T, Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 27)) ->foo : T, Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 32)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) ->bar : T, Symbol(bar, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 40)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(callSignatureAssignabilityInInheritance4.ts, 15, 59)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 10)) +>a15 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(callSignatureAssignabilityInInheritance4.ts, 16, 39)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 26)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 36)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 10)) +>a16 : (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a17: { ->a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }, Symbol(a17, Decl(callSignatureAssignabilityInInheritance4.ts, 17, 52)) +>a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } (x: (a: T) => T): T[]; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) ->x : (a: T) => T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 28)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 32)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 19, 9)) +>T : T +>Derived : Derived +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T (x: (a: T) => T): T[]; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : (a: T) => T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 25)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 20, 9)) +>T : T +>Base : Base +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T }; a18: { ->a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }, Symbol(a18, Decl(callSignatureAssignabilityInInheritance4.ts, 21, 6)) +>a18 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } (x: { ->x : { (a: T): T; (a: T): T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 23, 9)) +>x : { (a: T): T; (a: T): T; } (a: T): T; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 13)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 32)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 24, 13)) +>T : T +>Derived : Derived +>a : T +>T : T +>T : T (a: T): T; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 25, 13)) +>T : T +>Base : Base +>a : T +>T : T +>T : T }): any[]; (x: { ->x : { (a: T): T; (a: T): T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 27, 9)) +>x : { (a: T): T; (a: T): T; } (a: T): T; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 13)) ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance4.ts, 3, 43)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 33)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 28, 13)) +>T : T +>Derived2 : Derived2 +>a : T +>T : T +>T : T (a: T): T; ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 29, 13)) +>T : T +>Base : Base +>a : T +>T : T +>T : T }): any[]; }; @@ -172,110 +172,110 @@ interface A { // T // S's interface I extends A { ->I : I, Symbol(I, Decl(callSignatureAssignabilityInInheritance4.ts, 32, 1)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance4.ts, 5, 49)) +>I : I +>A : A // N's a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 35, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 8)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: (x: T) => string[]; // ok ->a2 : (x: T) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance4.ts, 37, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T a3: (x: T) => T; // ok since Base returns void ->a3 : (x: T) => T, Symbol(a3, Decl(callSignatureAssignabilityInInheritance4.ts, 38, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 9)) +>a3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T a4: (x: T, y: U) => string; // ok, instantiation of N is a subtype of M, T is string, U is number ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(callSignatureAssignabilityInInheritance4.ts, 39, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 11)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 15)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 9)) ->y : U, Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 20)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 11)) +>a4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(callSignatureAssignabilityInInheritance4.ts, 40, 37)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 11)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 15)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 19)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy ->a6 : (x: (arg: T) => U) => T, Symbol(a6, Decl(callSignatureAssignabilityInInheritance4.ts, 41, 38)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance4.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 9)) +>a6 : (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok ->a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(a11, Decl(callSignatureAssignabilityInInheritance4.ts, 42, 67)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 10)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 12)) ->x : { foo: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 16)) ->foo : T, Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 20)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 10)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 30)) ->foo : U, Symbol(foo, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 35)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 12)) ->bar : U, Symbol(bar, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 43)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 12)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>T : T +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base a15: (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V ->a15 : (x: { a: U; b: V; }) => U[], Symbol(a15, Decl(callSignatureAssignabilityInInheritance4.ts, 43, 62)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 10)) ->V : V, Symbol(V, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 12)) ->x : { a: U; b: V; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 16)) ->a : U, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 20)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 10)) ->b : V, Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 26)) ->V : V, Symbol(V, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 12)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 10)) +>a15 : (x: { a: U; b: V; }) => U[] +>U : U +>V : V +>x : { a: U; b: V; } +>a : U +>U : U +>b : V +>V : V +>U : U a16: (x: { a: T; b: T }) => T[]; // ok, more general parameter type ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(callSignatureAssignabilityInInheritance4.ts, 44, 43)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 10)) +>a16 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a17: (x: (a: T) => T) => T[]; // ok ->a17 : (x: (a: T) => T) => T[], Symbol(a17, Decl(callSignatureAssignabilityInInheritance4.ts, 45, 39)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) ->x : (a: T) => T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 10)) +>a17 : (x: (a: T) => T) => T[] +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T +>T : T a18: (x: (a: T) => T) => any[]; // ok ->a18 : (x: (a: T) => T) => any[], Symbol(a18, Decl(callSignatureAssignabilityInInheritance4.ts, 46, 36)) ->x : (a: T) => T, Symbol(x, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 14)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 14)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance4.ts, 47, 14)) +>a18 : (x: (a: T) => T) => any[] +>x : (a: T) => T +>T : T +>a : T +>T : T +>T : T } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.symbols b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.symbols new file mode 100644 index 0000000000000..d5a6843088773 --- /dev/null +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.symbols @@ -0,0 +1,314 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance5.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation +// same as subtypingWithCallSignatures2 just with an extra level of indirection in the inheritance chain + +class Base { foo: string; } +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance5.ts, 4, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance5.ts, 4, 43)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>baz : Symbol(baz, Decl(callSignatureAssignabilityInInheritance5.ts, 5, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance5.ts, 5, 47)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>bing : Symbol(bing, Decl(callSignatureAssignabilityInInheritance5.ts, 6, 33)) + +interface A { // T +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance5.ts, 6, 49)) + + // M's + a: (x: number) => number[]; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 8, 13)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 10, 8)) + + a2: (x: number) => string[]; +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance5.ts, 10, 31)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 11, 9)) + + a3: (x: number) => void; +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance5.ts, 11, 32)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 12, 9)) + + a4: (x: string, y: number) => string; +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance5.ts, 12, 28)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 13, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 13, 19)) + + a5: (x: (arg: string) => number) => string; +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance5.ts, 13, 41)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 14, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 14, 13)) + + a6: (x: (arg: Base) => Derived) => Base; +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance5.ts, 14, 47)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 15, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 15, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) + + a7: (x: (arg: Base) => Derived) => (r: Base) => Derived; +>a7 : Symbol(a7, Decl(callSignatureAssignabilityInInheritance5.ts, 15, 44)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 40)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a8: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a8 : Symbol(a8, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 60)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 35)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 40)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 68)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a9: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a9 : Symbol(a9, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 88)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 9)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 13)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 35)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 40)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 68)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a10: (...x: Derived[]) => Derived; +>a10 : Symbol(a10, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 88)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 19, 10)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance5.ts, 19, 38)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 10)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 14)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 29)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 34)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 47)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) + + a12: (x: Array, y: Array) => Array; +>a12 : Symbol(a12, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 71)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 21, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 21, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance5.ts, 4, 43)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a13: (x: Array, y: Array) => Array; +>a13 : Symbol(a13, Decl(callSignatureAssignabilityInInheritance5.ts, 21, 64)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 22, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 22, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a14: (x: { a: string; b: number }) => Object; +>a14 : Symbol(a14, Decl(callSignatureAssignabilityInInheritance5.ts, 22, 63)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 23, 10)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 23, 14)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance5.ts, 23, 25)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +interface B extends A { +>B : Symbol(B, Decl(callSignatureAssignabilityInInheritance5.ts, 24, 1)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance5.ts, 6, 49)) + + a: (x: T) => T[]; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 26, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 8)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 8)) +} + +// S's +interface I extends B { +>I : Symbol(I, Decl(callSignatureAssignabilityInInheritance5.ts, 28, 1)) +>B : Symbol(B, Decl(callSignatureAssignabilityInInheritance5.ts, 24, 1)) + + // N's + a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 31, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 8)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 8)) + + a2: (x: T) => string[]; // ok +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 9)) + + a3: (x: T) => T; // ok since Base returns void +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 9)) + + a4: (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 15)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 20)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 9)) + + a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 32)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 15)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 19)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 9)) + + a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 38)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 9)) + + a7: (x: (arg: T) => U) => (r: T) => U; // ok +>a7 : Symbol(a7, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 67)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 24)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 66)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 24)) + + a8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok +>a8 : Symbol(a8, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 77)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 61)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 66)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 85)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) + + a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal +>a9 : Symbol(a9, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 96)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 44)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 61)) +>arg2 : Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 66)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 73)) +>bing : Symbol(bing, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 86)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) +>r : Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 113)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) + + a10: (...x: T[]) => T; // ok +>a10 : Symbol(a10, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 124)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 10)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 10)) + + a11: (x: T, y: T) => T; // ok +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 45)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 26)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 31)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) + + a12: >(x: Array, y: T) => Array; // ok, less specific parameter type +>a12 : Symbol(a12, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 43)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 33)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 48)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds +>a13 : Symbol(a13, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 73)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 10)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 36)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 51)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 10)) + + a14: (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature +>a14 : Symbol(a14, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 63)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) +} diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types index 74c8ddc6bd343..0ffc8257a569e 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types @@ -3,312 +3,312 @@ // same as subtypingWithCallSignatures2 just with an extra level of indirection in the inheritance chain class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(callSignatureAssignabilityInInheritance5.ts, 4, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance5.ts, 4, 43)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->baz : string, Symbol(baz, Decl(callSignatureAssignabilityInInheritance5.ts, 5, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance5.ts, 5, 47)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(callSignatureAssignabilityInInheritance5.ts, 6, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance5.ts, 6, 49)) +>A : A // M's a: (x: number) => number[]; ->a : (x: number) => number[], Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 8, 13)) ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 10, 8)) +>a : (x: number) => number[] +>x : number a2: (x: number) => string[]; ->a2 : (x: number) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance5.ts, 10, 31)) ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 11, 9)) +>a2 : (x: number) => string[] +>x : number a3: (x: number) => void; ->a3 : (x: number) => void, Symbol(a3, Decl(callSignatureAssignabilityInInheritance5.ts, 11, 32)) ->x : number, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 12, 9)) +>a3 : (x: number) => void +>x : number a4: (x: string, y: number) => string; ->a4 : (x: string, y: number) => string, Symbol(a4, Decl(callSignatureAssignabilityInInheritance5.ts, 12, 28)) ->x : string, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 13, 9)) ->y : number, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 13, 19)) +>a4 : (x: string, y: number) => string +>x : string +>y : number a5: (x: (arg: string) => number) => string; ->a5 : (x: (arg: string) => number) => string, Symbol(a5, Decl(callSignatureAssignabilityInInheritance5.ts, 13, 41)) ->x : (arg: string) => number, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 14, 9)) ->arg : string, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 14, 13)) +>a5 : (x: (arg: string) => number) => string +>x : (arg: string) => number +>arg : string a6: (x: (arg: Base) => Derived) => Base; ->a6 : (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(callSignatureAssignabilityInInheritance5.ts, 14, 47)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 15, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 15, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>a6 : (x: (arg: Base) => Derived) => Base +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>Base : Base a7: (x: (arg: Base) => Derived) => (r: Base) => Derived; ->a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(callSignatureAssignabilityInInheritance5.ts, 15, 44)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->r : Base, Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 40)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a8: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(callSignatureAssignabilityInInheritance5.ts, 16, 60)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 35)) ->arg2 : Base, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 40)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->r : Base, Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 68)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a9: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(callSignatureAssignabilityInInheritance5.ts, 17, 88)) ->x : (arg: Base) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 9)) ->arg : Base, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 13)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 35)) ->arg2 : Base, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 40)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->r : Base, Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 68)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a10: (...x: Derived[]) => Derived; ->a10 : (...x: Derived[]) => Derived, Symbol(a10, Decl(callSignatureAssignabilityInInheritance5.ts, 18, 88)) ->x : Derived[], Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 19, 10)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a10 : (...x: Derived[]) => Derived +>x : Derived[] +>Derived : Derived +>Derived : Derived a11: (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(callSignatureAssignabilityInInheritance5.ts, 19, 38)) ->x : { foo: string; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 10)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 14)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 29)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 34)) ->bar : string, Symbol(bar, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 47)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) +>a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>x : { foo: string; } +>foo : string +>y : { foo: string; bar: string; } +>foo : string +>bar : string +>Base : Base a12: (x: Array, y: Array) => Array; ->a12 : (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(callSignatureAssignabilityInInheritance5.ts, 20, 71)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 21, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : Derived2[], Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 21, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance5.ts, 4, 43)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a12 : (x: Base[], y: Derived2[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived2[] +>Array : T[] +>Derived2 : Derived2 +>Array : T[] +>Derived : Derived a13: (x: Array, y: Array) => Array; ->a13 : (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(callSignatureAssignabilityInInheritance5.ts, 21, 64)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 22, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : Derived[], Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 22, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a13 : (x: Base[], y: Derived[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived[] +>Array : T[] +>Derived : Derived +>Array : T[] +>Derived : Derived a14: (x: { a: string; b: number }) => Object; ->a14 : (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(callSignatureAssignabilityInInheritance5.ts, 22, 63)) ->x : { a: string; b: number; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 23, 10)) ->a : string, Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 23, 14)) ->b : number, Symbol(b, Decl(callSignatureAssignabilityInInheritance5.ts, 23, 25)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a14 : (x: { a: string; b: number; }) => Object +>x : { a: string; b: number; } +>a : string +>b : number +>Object : Object } interface B extends A { ->B : B, Symbol(B, Decl(callSignatureAssignabilityInInheritance5.ts, 24, 1)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance5.ts, 6, 49)) +>B : B +>A : A a: (x: T) => T[]; ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 26, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 8)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 27, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T } // S's interface I extends B { ->I : I, Symbol(I, Decl(callSignatureAssignabilityInInheritance5.ts, 28, 1)) ->B : B, Symbol(B, Decl(callSignatureAssignabilityInInheritance5.ts, 24, 1)) +>I : I +>B : B // N's a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 31, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 8)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: (x: T) => string[]; // ok ->a2 : (x: T) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance5.ts, 33, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T a3: (x: T) => T; // ok since Base returns void ->a3 : (x: T) => T, Symbol(a3, Decl(callSignatureAssignabilityInInheritance5.ts, 34, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 9)) +>a3 : (x: T) => T +>T : T +>x : T +>T : T +>T : T a4: (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number ->a4 : (x: T, y: U) => T, Symbol(a4, Decl(callSignatureAssignabilityInInheritance5.ts, 35, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 11)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 15)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 9)) ->y : U, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 20)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 9)) +>a4 : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(callSignatureAssignabilityInInheritance5.ts, 36, 32)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 11)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 15)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 19)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy ->a6 : (x: (arg: T) => U) => T, Symbol(a6, Decl(callSignatureAssignabilityInInheritance5.ts, 37, 38)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 9)) +>a6 : (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a7: (x: (arg: T) => U) => (r: T) => U; // ok ->a7 : (x: (arg: T) => U) => (r: T) => U, Symbol(a7, Decl(callSignatureAssignabilityInInheritance5.ts, 38, 67)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 24)) ->r : T, Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 66)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 24)) +>a7 : (x: (arg: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>r : T +>T : T +>U : U a8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok ->a8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(a8, Decl(callSignatureAssignabilityInInheritance5.ts, 39, 77)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) ->y : (arg2: T) => U, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 61)) ->arg2 : T, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 66)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) ->r : T, Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 85)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 24)) +>a8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: T) => U +>arg2 : T +>T : T +>U : U +>r : T +>T : T +>U : U a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(a9, Decl(callSignatureAssignabilityInInheritance5.ts, 40, 96)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 44)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) ->y : (arg2: { foo: string; bing: number; }) => U, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 61)) ->arg2 : { foo: string; bing: number; }, Symbol(arg2, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 66)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 73)) ->bing : number, Symbol(bing, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 86)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) ->r : T, Symbol(r, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 113)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 24)) +>a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: { foo: string; bing: number; }) => U +>arg2 : { foo: string; bing: number; } +>foo : string +>bing : number +>U : U +>r : T +>T : T +>U : U a10: (...x: T[]) => T; // ok ->a10 : (...x: T[]) => T, Symbol(a10, Decl(callSignatureAssignabilityInInheritance5.ts, 41, 124)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 10)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : T[], Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 10)) +>a10 : (...x: T[]) => T +>T : T +>Derived : Derived +>x : T[] +>T : T +>T : T a11: (x: T, y: T) => T; // ok ->a11 : (x: T, y: T) => T, Symbol(a11, Decl(callSignatureAssignabilityInInheritance5.ts, 42, 45)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 26)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) ->y : T, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 31)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 10)) +>a11 : (x: T, y: T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : T +>T : T +>T : T a12: >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : (x: Base[], y: T) => Derived[], Symbol(a12, Decl(callSignatureAssignabilityInInheritance5.ts, 43, 43)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 33)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : T, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 48)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a12 : (x: Base[], y: T) => Derived[] +>T : T +>Array : T[] +>Base : Base +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>Array : T[] +>Derived : Derived a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : (x: Base[], y: T) => T, Symbol(a13, Decl(callSignatureAssignabilityInInheritance5.ts, 44, 73)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 10)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : Base[], Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 36)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : T, Symbol(y, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 51)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 10)) +>a13 : (x: Base[], y: T) => T +>T : T +>Array : T[] +>Derived : Derived +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>T : T a14: (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature ->a14 : (x: { a: T; b: T; }) => T, Symbol(a14, Decl(callSignatureAssignabilityInInheritance5.ts, 45, 63)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance5.ts, 46, 10)) +>a14 : (x: { a: T; b: T; }) => T +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.symbols b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.symbols new file mode 100644 index 0000000000000..1d4c99d89db50 --- /dev/null +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.symbols @@ -0,0 +1,209 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/callSignatureAssignabilityInInheritance6.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation +// same as subtypingWithCallSignatures4 but using class type parameters instead of generic signatures +// all are errors + +class Base { foo: string; } +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 27)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance6.ts, 5, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance6.ts, 5, 43)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 27)) +>baz : Symbol(baz, Decl(callSignatureAssignabilityInInheritance6.ts, 6, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance6.ts, 6, 47)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>bing : Symbol(bing, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 33)) + +interface A { // T +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + // M's + a: (x: T) => T[]; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 9, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 8)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 8)) + + a2: (x: T) => string[]; +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 24)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 9)) + + a3: (x: T) => void; +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 9)) + + a4: (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 26)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 14)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 9)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 19)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 11)) + + a5: (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 36)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 11)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 14)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 18)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 9)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 11)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 9)) + + a6: (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 37)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 9)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 25)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 29)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 9)) +>Derived : Symbol(Derived, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 27)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 9)) + + a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 54)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 13)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 27)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 32)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 40)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) + + a15: (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 59)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 13)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 23)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) + + a16: (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 39)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 26)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 30)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 36)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) +} + +// S's +interface I extends A { +>I : Symbol(I, Decl(callSignatureAssignabilityInInheritance6.ts, 20, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 12)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a: (x: T) => T[]; +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 26)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 24, 8)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 12)) +} + +interface I2 extends A { +>I2 : Symbol(I2, Decl(callSignatureAssignabilityInInheritance6.ts, 25, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 27, 13)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a2: (x: T) => string[]; +>a2 : Symbol(a2, Decl(callSignatureAssignabilityInInheritance6.ts, 27, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 28, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 27, 13)) +} + +interface I3 extends A { +>I3 : Symbol(I3, Decl(callSignatureAssignabilityInInheritance6.ts, 29, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 13)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a3: (x: T) => T; +>a3 : Symbol(a3, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 32, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 13)) +} + +interface I4 extends A { +>I4 : Symbol(I4, Decl(callSignatureAssignabilityInInheritance6.ts, 33, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 35, 13)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a4: (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(callSignatureAssignabilityInInheritance6.ts, 35, 27)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 12)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 35, 13)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 17)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 9)) +} + +interface I5 extends A { +>I5 : Symbol(I5, Decl(callSignatureAssignabilityInInheritance6.ts, 37, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 13)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a5: (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 27)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 9)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 12)) +>arg : Symbol(arg, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 16)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 13)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 9)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 13)) +} + +interface I7 extends A { +>I7 : Symbol(I7, Decl(callSignatureAssignabilityInInheritance6.ts, 41, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 43, 13)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; +>a11 : Symbol(a11, Decl(callSignatureAssignabilityInInheritance6.ts, 43, 27)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 10)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 13)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 17)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 43, 13)) +>y : Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 27)) +>foo : Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 32)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 10)) +>bar : Symbol(bar, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 40)) +>U : Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 10)) +>Base : Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +} + +interface I9 extends A { +>I9 : Symbol(I9, Decl(callSignatureAssignabilityInInheritance6.ts, 45, 1)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) +>A : Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a16: (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 27)) +>x : Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 48, 10)) +>a : Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 48, 14)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) +>b : Symbol(b, Decl(callSignatureAssignabilityInInheritance6.ts, 48, 20)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) +>T : Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) +} diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types index de77cd5b838e3..721b691be7071 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types @@ -4,206 +4,206 @@ // all are errors class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 27)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(callSignatureAssignabilityInInheritance6.ts, 5, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(callSignatureAssignabilityInInheritance6.ts, 5, 43)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 27)) ->baz : string, Symbol(baz, Decl(callSignatureAssignabilityInInheritance6.ts, 6, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(callSignatureAssignabilityInInheritance6.ts, 6, 47)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>A : A // M's a: (x: T) => T[]; ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 9, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 8)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 8)) +>a : (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: (x: T) => string[]; ->a2 : (x: T) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance6.ts, 11, 24)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 9)) +>a2 : (x: T) => string[] +>T : T +>x : T +>T : T a3: (x: T) => void; ->a3 : (x: T) => void, Symbol(a3, Decl(callSignatureAssignabilityInInheritance6.ts, 12, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 9)) +>a3 : (x: T) => void +>T : T +>x : T +>T : T a4: (x: T, y: U) => string; ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(callSignatureAssignabilityInInheritance6.ts, 13, 26)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 11)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 14)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 9)) ->y : U, Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 19)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 11)) +>a4 : (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: (x: (arg: T) => U) => T; ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(callSignatureAssignabilityInInheritance6.ts, 14, 36)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 11)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 14)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 18)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 9)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 11)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 9)) +>a5 : (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: (x: (arg: T) => Derived) => T; ->a6 : (x: (arg: T) => Derived) => T, Symbol(a6, Decl(callSignatureAssignabilityInInheritance6.ts, 15, 37)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 9)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 25)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 29)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 9)) ->Derived : Derived, Symbol(Derived, Decl(callSignatureAssignabilityInInheritance6.ts, 4, 27)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 9)) +>a6 : (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(callSignatureAssignabilityInInheritance6.ts, 16, 54)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) ->x : { foo: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 13)) ->foo : T, Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 27)) ->foo : T, Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 32)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) ->bar : T, Symbol(bar, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 40)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(callSignatureAssignabilityInInheritance6.ts, 17, 59)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 13)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 23)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 10)) +>a15 : (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(callSignatureAssignabilityInInheritance6.ts, 18, 39)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 26)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 30)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 36)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 19, 10)) +>a16 : (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } // S's interface I extends A { ->I : I, Symbol(I, Decl(callSignatureAssignabilityInInheritance6.ts, 20, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 12)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I : I +>T : T +>A : A a: (x: T) => T[]; ->a : (x: T) => T[], Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 26)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 24, 8)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 23, 12)) +>a : (x: T) => T[] +>x : T +>T : T +>T : T } interface I2 extends A { ->I2 : I2, Symbol(I2, Decl(callSignatureAssignabilityInInheritance6.ts, 25, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 27, 13)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I2 : I2 +>T : T +>A : A a2: (x: T) => string[]; ->a2 : (x: T) => string[], Symbol(a2, Decl(callSignatureAssignabilityInInheritance6.ts, 27, 27)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 28, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 27, 13)) +>a2 : (x: T) => string[] +>x : T +>T : T } interface I3 extends A { ->I3 : I3, Symbol(I3, Decl(callSignatureAssignabilityInInheritance6.ts, 29, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 13)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I3 : I3 +>T : T +>A : A a3: (x: T) => T; ->a3 : (x: T) => T, Symbol(a3, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 27)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 32, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 31, 13)) +>a3 : (x: T) => T +>x : T +>T : T +>T : T } interface I4 extends A { ->I4 : I4, Symbol(I4, Decl(callSignatureAssignabilityInInheritance6.ts, 33, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 35, 13)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I4 : I4 +>T : T +>A : A a4: (x: T, y: U) => string; ->a4 : (x: T, y: U) => string, Symbol(a4, Decl(callSignatureAssignabilityInInheritance6.ts, 35, 27)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 9)) ->x : T, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 12)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 35, 13)) ->y : U, Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 17)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 36, 9)) +>a4 : (x: T, y: U) => string +>U : U +>x : T +>T : T +>y : U +>U : U } interface I5 extends A { ->I5 : I5, Symbol(I5, Decl(callSignatureAssignabilityInInheritance6.ts, 37, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 13)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I5 : I5 +>T : T +>A : A a5: (x: (arg: T) => U) => T; ->a5 : (x: (arg: T) => U) => T, Symbol(a5, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 27)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 9)) ->x : (arg: T) => U, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 12)) ->arg : T, Symbol(arg, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 16)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 13)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 40, 9)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 39, 13)) +>a5 : (x: (arg: T) => U) => T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T } interface I7 extends A { ->I7 : I7, Symbol(I7, Decl(callSignatureAssignabilityInInheritance6.ts, 41, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 43, 13)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I7 : I7 +>T : T +>A : A a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(a11, Decl(callSignatureAssignabilityInInheritance6.ts, 43, 27)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 10)) ->x : { foo: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 13)) ->foo : T, Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 17)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 43, 13)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 27)) ->foo : U, Symbol(foo, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 32)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 10)) ->bar : U, Symbol(bar, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 40)) ->U : U, Symbol(U, Decl(callSignatureAssignabilityInInheritance6.ts, 44, 10)) ->Base : Base, Symbol(Base, Decl(callSignatureAssignabilityInInheritance6.ts, 0, 0)) +>a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base } interface I9 extends A { ->I9 : I9, Symbol(I9, Decl(callSignatureAssignabilityInInheritance6.ts, 45, 1)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) ->A : A, Symbol(A, Decl(callSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I9 : I9 +>T : T +>A : A a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 27)) ->x : { a: T; b: T; }, Symbol(x, Decl(callSignatureAssignabilityInInheritance6.ts, 48, 10)) ->a : T, Symbol(a, Decl(callSignatureAssignabilityInInheritance6.ts, 48, 14)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) ->b : T, Symbol(b, Decl(callSignatureAssignabilityInInheritance6.ts, 48, 20)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) ->T : T, Symbol(T, Decl(callSignatureAssignabilityInInheritance6.ts, 47, 13)) +>a16 : (x: { a: T; b: T; }) => T[] +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } diff --git a/tests/baselines/reference/callSignatureFunctionOverload.symbols b/tests/baselines/reference/callSignatureFunctionOverload.symbols new file mode 100644 index 0000000000000..f0318f1a77d25 --- /dev/null +++ b/tests/baselines/reference/callSignatureFunctionOverload.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/callSignatureFunctionOverload.ts === +var foo: { +>foo : Symbol(foo, Decl(callSignatureFunctionOverload.ts, 0, 3)) + + (name: string): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 1, 5)) + + (name: 'order'): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 2, 5)) + + (name: 'content'): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 3, 5)) + + (name: 'done'): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 4, 5)) +} + +var foo2: { +>foo2 : Symbol(foo2, Decl(callSignatureFunctionOverload.ts, 7, 3)) + + (name: string): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 8, 5)) + + (name: 'order'): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 9, 5)) + + (name: 'order'): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 10, 5)) + + (name: 'done'): string; +>name : Symbol(name, Decl(callSignatureFunctionOverload.ts, 11, 5)) +} + diff --git a/tests/baselines/reference/callSignatureFunctionOverload.types b/tests/baselines/reference/callSignatureFunctionOverload.types index 885e088705792..b9788e5b143a9 100644 --- a/tests/baselines/reference/callSignatureFunctionOverload.types +++ b/tests/baselines/reference/callSignatureFunctionOverload.types @@ -1,33 +1,33 @@ === tests/cases/compiler/callSignatureFunctionOverload.ts === var foo: { ->foo : { (name: string): string; (name: 'order'): string; (name: 'content'): string; (name: 'done'): string; }, Symbol(foo, Decl(callSignatureFunctionOverload.ts, 0, 3)) +>foo : { (name: string): string; (name: 'order'): string; (name: 'content'): string; (name: 'done'): string; } (name: string): string; ->name : string, Symbol(name, Decl(callSignatureFunctionOverload.ts, 1, 5)) +>name : string (name: 'order'): string; ->name : 'order', Symbol(name, Decl(callSignatureFunctionOverload.ts, 2, 5)) +>name : 'order' (name: 'content'): string; ->name : 'content', Symbol(name, Decl(callSignatureFunctionOverload.ts, 3, 5)) +>name : 'content' (name: 'done'): string; ->name : 'done', Symbol(name, Decl(callSignatureFunctionOverload.ts, 4, 5)) +>name : 'done' } var foo2: { ->foo2 : { (name: string): string; (name: 'order'): string; (name: 'order'): string; (name: 'done'): string; }, Symbol(foo2, Decl(callSignatureFunctionOverload.ts, 7, 3)) +>foo2 : { (name: string): string; (name: 'order'): string; (name: 'order'): string; (name: 'done'): string; } (name: string): string; ->name : string, Symbol(name, Decl(callSignatureFunctionOverload.ts, 8, 5)) +>name : string (name: 'order'): string; ->name : 'order', Symbol(name, Decl(callSignatureFunctionOverload.ts, 9, 5)) +>name : 'order' (name: 'order'): string; ->name : 'order', Symbol(name, Decl(callSignatureFunctionOverload.ts, 10, 5)) +>name : 'order' (name: 'done'): string; ->name : 'done', Symbol(name, Decl(callSignatureFunctionOverload.ts, 11, 5)) +>name : 'done' } diff --git a/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.symbols b/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.symbols new file mode 100644 index 0000000000000..4b499ec26678a --- /dev/null +++ b/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.symbols @@ -0,0 +1,50 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutAnnotationsOrBody.ts === +// Call signatures without a return type annotation and function body return 'any' + +function foo(x) { } +>foo : Symbol(foo, Decl(callSignatureWithoutAnnotationsOrBody.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureWithoutAnnotationsOrBody.ts, 2, 13)) + +var r = foo(1); // void since there's a body +>r : Symbol(r, Decl(callSignatureWithoutAnnotationsOrBody.ts, 3, 3)) +>foo : Symbol(foo, Decl(callSignatureWithoutAnnotationsOrBody.ts, 0, 0)) + +interface I { +>I : Symbol(I, Decl(callSignatureWithoutAnnotationsOrBody.ts, 3, 15)) + + (); + f(); +>f : Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 6, 7)) +} +var i: I; +>i : Symbol(i, Decl(callSignatureWithoutAnnotationsOrBody.ts, 9, 3)) +>I : Symbol(I, Decl(callSignatureWithoutAnnotationsOrBody.ts, 3, 15)) + +var r2 = i(); +>r2 : Symbol(r2, Decl(callSignatureWithoutAnnotationsOrBody.ts, 10, 3)) +>i : Symbol(i, Decl(callSignatureWithoutAnnotationsOrBody.ts, 9, 3)) + +var r3 = i.f(); +>r3 : Symbol(r3, Decl(callSignatureWithoutAnnotationsOrBody.ts, 11, 3)) +>i.f : Symbol(I.f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 6, 7)) +>i : Symbol(i, Decl(callSignatureWithoutAnnotationsOrBody.ts, 9, 3)) +>f : Symbol(I.f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 6, 7)) + +var a: { +>a : Symbol(a, Decl(callSignatureWithoutAnnotationsOrBody.ts, 13, 3)) + + (); + f(); +>f : Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 14, 7)) + +}; +var r4 = a(); +>r4 : Symbol(r4, Decl(callSignatureWithoutAnnotationsOrBody.ts, 17, 3)) +>a : Symbol(a, Decl(callSignatureWithoutAnnotationsOrBody.ts, 13, 3)) + +var r5 = a.f(); +>r5 : Symbol(r5, Decl(callSignatureWithoutAnnotationsOrBody.ts, 18, 3)) +>a.f : Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 14, 7)) +>a : Symbol(a, Decl(callSignatureWithoutAnnotationsOrBody.ts, 13, 3)) +>f : Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 14, 7)) + diff --git a/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.types b/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.types index 7054a0c535e6c..062961ac09350 100644 --- a/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.types +++ b/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.types @@ -2,55 +2,55 @@ // Call signatures without a return type annotation and function body return 'any' function foo(x) { } ->foo : (x: any) => void, Symbol(foo, Decl(callSignatureWithoutAnnotationsOrBody.ts, 0, 0)) ->x : any, Symbol(x, Decl(callSignatureWithoutAnnotationsOrBody.ts, 2, 13)) +>foo : (x: any) => void +>x : any var r = foo(1); // void since there's a body ->r : void, Symbol(r, Decl(callSignatureWithoutAnnotationsOrBody.ts, 3, 3)) +>r : void >foo(1) : void ->foo : (x: any) => void, Symbol(foo, Decl(callSignatureWithoutAnnotationsOrBody.ts, 0, 0)) +>foo : (x: any) => void >1 : number interface I { ->I : I, Symbol(I, Decl(callSignatureWithoutAnnotationsOrBody.ts, 3, 15)) +>I : I (); f(); ->f : () => any, Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 6, 7)) +>f : () => any } var i: I; ->i : I, Symbol(i, Decl(callSignatureWithoutAnnotationsOrBody.ts, 9, 3)) ->I : I, Symbol(I, Decl(callSignatureWithoutAnnotationsOrBody.ts, 3, 15)) +>i : I +>I : I var r2 = i(); ->r2 : any, Symbol(r2, Decl(callSignatureWithoutAnnotationsOrBody.ts, 10, 3)) +>r2 : any >i() : any ->i : I, Symbol(i, Decl(callSignatureWithoutAnnotationsOrBody.ts, 9, 3)) +>i : I var r3 = i.f(); ->r3 : any, Symbol(r3, Decl(callSignatureWithoutAnnotationsOrBody.ts, 11, 3)) +>r3 : any >i.f() : any ->i.f : () => any, Symbol(I.f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 6, 7)) ->i : I, Symbol(i, Decl(callSignatureWithoutAnnotationsOrBody.ts, 9, 3)) ->f : () => any, Symbol(I.f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 6, 7)) +>i.f : () => any +>i : I +>f : () => any var a: { ->a : { (): any; f(): any; }, Symbol(a, Decl(callSignatureWithoutAnnotationsOrBody.ts, 13, 3)) +>a : { (): any; f(): any; } (); f(); ->f : () => any, Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 14, 7)) +>f : () => any }; var r4 = a(); ->r4 : any, Symbol(r4, Decl(callSignatureWithoutAnnotationsOrBody.ts, 17, 3)) +>r4 : any >a() : any ->a : { (): any; f(): any; }, Symbol(a, Decl(callSignatureWithoutAnnotationsOrBody.ts, 13, 3)) +>a : { (): any; f(): any; } var r5 = a.f(); ->r5 : any, Symbol(r5, Decl(callSignatureWithoutAnnotationsOrBody.ts, 18, 3)) +>r5 : any >a.f() : any ->a.f : () => any, Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 14, 7)) ->a : { (): any; f(): any; }, Symbol(a, Decl(callSignatureWithoutAnnotationsOrBody.ts, 13, 3)) ->f : () => any, Symbol(f, Decl(callSignatureWithoutAnnotationsOrBody.ts, 14, 7)) +>a.f : () => any +>a : { (): any; f(): any; } +>f : () => any diff --git a/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.symbols b/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.symbols new file mode 100644 index 0000000000000..1c5a6786ab707 --- /dev/null +++ b/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.symbols @@ -0,0 +1,255 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignatureWithoutReturnTypeAnnotationInference.ts === +// Call signatures without a return type should infer one from the function body (if present) + +// Simple types +function foo(x) { +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 3, 13)) + + return 1; +} +var r = foo(1); +>r : Symbol(r, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 6, 3)) +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 0, 0)) + +function foo2(x) { +>foo2 : Symbol(foo2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 6, 15)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 8, 14)) + + return foo(x); +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 0, 0)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 8, 14)) +} +var r2 = foo2(1); +>r2 : Symbol(r2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 3)) +>foo2 : Symbol(foo2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 6, 15)) + +function foo3() { +>foo3 : Symbol(foo3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 17)) + + return foo3(); +>foo3 : Symbol(foo3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 17)) +} +var r3 = foo3(); +>r3 : Symbol(r3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 16, 3)) +>foo3 : Symbol(foo3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 17)) + +function foo4(x: T) { +>foo4 : Symbol(foo4, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 16, 16)) +>T : Symbol(T, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 14)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 17)) +>T : Symbol(T, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 14)) + + return x; +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 17)) +} +var r4 = foo4(1); +>r4 : Symbol(r4, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 21, 3)) +>foo4 : Symbol(foo4, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 16, 16)) + +function foo5(x) { +>foo5 : Symbol(foo5, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 21, 17)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 23, 14)) + + if (true) { + return 1; + } else { + return 2; + } +} +var r5 = foo5(1); +>r5 : Symbol(r5, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 30, 3)) +>foo5 : Symbol(foo5, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 21, 17)) + +function foo6(x) { +>foo6 : Symbol(foo6, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 30, 17)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 32, 14)) + + try { + } + catch (e) { +>e : Symbol(e, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 35, 11)) + + return []; + } + finally { + return []; + } +} +var r6 = foo6(1); +>r6 : Symbol(r6, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 42, 3)) +>foo6 : Symbol(foo6, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 30, 17)) + +function foo7(x) { +>foo7 : Symbol(foo7, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 42, 17)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 44, 14)) + + return typeof x; +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 44, 14)) +} +var r7 = foo7(1); +>r7 : Symbol(r7, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 47, 3)) +>foo7 : Symbol(foo7, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 42, 17)) + +// object types +function foo8(x: number) { +>foo8 : Symbol(foo8, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 47, 17)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 50, 14)) + + return { x: x }; +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 51, 12)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 50, 14)) +} +var r8 = foo8(1); +>r8 : Symbol(r8, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 53, 3)) +>foo8 : Symbol(foo8, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 47, 17)) + +interface I { +>I : Symbol(I, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 53, 17)) + + foo: string; +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 55, 13)) +} +function foo9(x: number) { +>foo9 : Symbol(foo9, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 57, 1)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 58, 14)) + + var i: I; +>i : Symbol(i, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 59, 7)) +>I : Symbol(I, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 53, 17)) + + return i; +>i : Symbol(i, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 59, 7)) +} +var r9 = foo9(1); +>r9 : Symbol(r9, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 62, 3)) +>foo9 : Symbol(foo9, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 57, 1)) + +class C { +>C : Symbol(C, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 62, 17)) + + foo: string; +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 64, 9)) +} +function foo10(x: number) { +>foo10 : Symbol(foo10, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 66, 1)) +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 67, 15)) + + var c: C; +>c : Symbol(c, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 68, 7)) +>C : Symbol(C, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 62, 17)) + + return c; +>c : Symbol(c, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 68, 7)) +} +var r10 = foo10(1); +>r10 : Symbol(r10, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 71, 3)) +>foo10 : Symbol(foo10, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 66, 1)) + +module M { +>M : Symbol(M, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 71, 19)) + + export var x = 1; +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 74, 14)) + + export class C { foo: string } +>C : Symbol(C, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 74, 21)) +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 75, 20)) +} +function foo11() { +>foo11 : Symbol(foo11, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 76, 1)) + + return M; +>M : Symbol(M, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 71, 19)) +} +var r11 = foo11(); +>r11 : Symbol(r11, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 3)) +>foo11 : Symbol(foo11, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 76, 1)) + +// merged declarations +interface I2 { +>I2 : Symbol(I2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 85, 1)) + + x: number; +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 83, 14)) +} +interface I2 { +>I2 : Symbol(I2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 85, 1)) + + y: number; +>y : Symbol(y, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 86, 14)) +} +function foo12() { +>foo12 : Symbol(foo12, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 88, 1)) + + var i2: I2; +>i2 : Symbol(i2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 90, 7)) +>I2 : Symbol(I2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 85, 1)) + + return i2; +>i2 : Symbol(i2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 90, 7)) +} +var r12 = foo12(); +>r12 : Symbol(r12, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 3)) +>foo12 : Symbol(foo12, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 88, 1)) + +function m1() { return 1; } +>m1 : Symbol(m1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 95, 27)) + +module m1 { export var y = 2; } +>m1 : Symbol(m1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 95, 27)) +>y : Symbol(y, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 96, 22)) + +function foo13() { +>foo13 : Symbol(foo13, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 96, 31)) + + return m1; +>m1 : Symbol(m1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 95, 27)) +} +var r13 = foo13(); +>r13 : Symbol(r13, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 3)) +>foo13 : Symbol(foo13, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 96, 31)) + +class c1 { +>c1 : Symbol(c1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 105, 1)) + + foo: string; +>foo : Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 102, 10)) + + constructor(x) { } +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 104, 16)) +} +module c1 { +>c1 : Symbol(c1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 105, 1)) + + export var x = 1; +>x : Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 107, 14)) +} +function foo14() { +>foo14 : Symbol(foo14, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 108, 1)) + + return c1; +>c1 : Symbol(c1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 105, 1)) +} +var r14 = foo14(); +>r14 : Symbol(r14, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 3)) +>foo14 : Symbol(foo14, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 108, 1)) + +enum e1 { A } +>e1 : Symbol(e1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 13)) +>A : Symbol(e1.A, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 9)) + +module e1 { export var y = 1; } +>e1 : Symbol(e1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 13)) +>y : Symbol(y, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 115, 22)) + +function foo15() { +>foo15 : Symbol(foo15, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 115, 31)) + + return e1; +>e1 : Symbol(e1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 13)) +} +var r15 = foo15(); +>r15 : Symbol(r15, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 119, 3)) +>foo15 : Symbol(foo15, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 115, 31)) + diff --git a/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types b/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types index 456ce650f3c20..760451eb9c155 100644 --- a/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types +++ b/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types @@ -3,63 +3,63 @@ // Simple types function foo(x) { ->foo : (x: any) => number, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 0, 0)) ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 3, 13)) +>foo : (x: any) => number +>x : any return 1; >1 : number } var r = foo(1); ->r : number, Symbol(r, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 6, 3)) +>r : number >foo(1) : number ->foo : (x: any) => number, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 0, 0)) +>foo : (x: any) => number >1 : number function foo2(x) { ->foo2 : (x: any) => number, Symbol(foo2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 6, 15)) ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 8, 14)) +>foo2 : (x: any) => number +>x : any return foo(x); >foo(x) : number ->foo : (x: any) => number, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 0, 0)) ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 8, 14)) +>foo : (x: any) => number +>x : any } var r2 = foo2(1); ->r2 : number, Symbol(r2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 3)) +>r2 : number >foo2(1) : number ->foo2 : (x: any) => number, Symbol(foo2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 6, 15)) +>foo2 : (x: any) => number >1 : number function foo3() { ->foo3 : () => any, Symbol(foo3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 17)) +>foo3 : () => any return foo3(); >foo3() : any ->foo3 : () => any, Symbol(foo3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 17)) +>foo3 : () => any } var r3 = foo3(); ->r3 : any, Symbol(r3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 16, 3)) +>r3 : any >foo3() : any ->foo3 : () => any, Symbol(foo3, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 11, 17)) +>foo3 : () => any function foo4(x: T) { ->foo4 : (x: T) => T, Symbol(foo4, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 16, 16)) ->T : T, Symbol(T, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 14)) ->x : T, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 17)) ->T : T, Symbol(T, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 14)) +>foo4 : (x: T) => T +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 18, 17)) +>x : T } var r4 = foo4(1); ->r4 : number, Symbol(r4, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 21, 3)) +>r4 : number >foo4(1) : number ->foo4 : (x: T) => T, Symbol(foo4, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 16, 16)) +>foo4 : (x: T) => T >1 : number function foo5(x) { ->foo5 : (x: any) => number, Symbol(foo5, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 21, 17)) ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 23, 14)) +>foo5 : (x: any) => number +>x : any if (true) { >true : boolean @@ -73,19 +73,19 @@ function foo5(x) { } } var r5 = foo5(1); ->r5 : number, Symbol(r5, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 30, 3)) +>r5 : number >foo5(1) : number ->foo5 : (x: any) => number, Symbol(foo5, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 21, 17)) +>foo5 : (x: any) => number >1 : number function foo6(x) { ->foo6 : (x: any) => any[], Symbol(foo6, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 30, 17)) ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 32, 14)) +>foo6 : (x: any) => any[] +>x : any try { } catch (e) { ->e : any, Symbol(e, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 35, 11)) +>e : any return []; >[] : undefined[] @@ -96,201 +96,201 @@ function foo6(x) { } } var r6 = foo6(1); ->r6 : any[], Symbol(r6, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 42, 3)) +>r6 : any[] >foo6(1) : any[] ->foo6 : (x: any) => any[], Symbol(foo6, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 30, 17)) +>foo6 : (x: any) => any[] >1 : number function foo7(x) { ->foo7 : (x: any) => string, Symbol(foo7, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 42, 17)) ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 44, 14)) +>foo7 : (x: any) => string +>x : any return typeof x; >typeof x : string ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 44, 14)) +>x : any } var r7 = foo7(1); ->r7 : string, Symbol(r7, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 47, 3)) +>r7 : string >foo7(1) : string ->foo7 : (x: any) => string, Symbol(foo7, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 42, 17)) +>foo7 : (x: any) => string >1 : number // object types function foo8(x: number) { ->foo8 : (x: number) => { x: number; }, Symbol(foo8, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 47, 17)) ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 50, 14)) +>foo8 : (x: number) => { x: number; } +>x : number return { x: x }; >{ x: x } : { x: number; } ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 51, 12)) ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 50, 14)) +>x : number +>x : number } var r8 = foo8(1); ->r8 : { x: number; }, Symbol(r8, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 53, 3)) +>r8 : { x: number; } >foo8(1) : { x: number; } ->foo8 : (x: number) => { x: number; }, Symbol(foo8, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 47, 17)) +>foo8 : (x: number) => { x: number; } >1 : number interface I { ->I : I, Symbol(I, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 53, 17)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 55, 13)) +>foo : string } function foo9(x: number) { ->foo9 : (x: number) => I, Symbol(foo9, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 57, 1)) ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 58, 14)) +>foo9 : (x: number) => I +>x : number var i: I; ->i : I, Symbol(i, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 59, 7)) ->I : I, Symbol(I, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 53, 17)) +>i : I +>I : I return i; ->i : I, Symbol(i, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 59, 7)) +>i : I } var r9 = foo9(1); ->r9 : I, Symbol(r9, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 62, 3)) +>r9 : I >foo9(1) : I ->foo9 : (x: number) => I, Symbol(foo9, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 57, 1)) +>foo9 : (x: number) => I >1 : number class C { ->C : C, Symbol(C, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 62, 17)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 64, 9)) +>foo : string } function foo10(x: number) { ->foo10 : (x: number) => C, Symbol(foo10, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 66, 1)) ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 67, 15)) +>foo10 : (x: number) => C +>x : number var c: C; ->c : C, Symbol(c, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 68, 7)) ->C : C, Symbol(C, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 62, 17)) +>c : C +>C : C return c; ->c : C, Symbol(c, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 68, 7)) +>c : C } var r10 = foo10(1); ->r10 : C, Symbol(r10, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 71, 3)) +>r10 : C >foo10(1) : C ->foo10 : (x: number) => C, Symbol(foo10, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 66, 1)) +>foo10 : (x: number) => C >1 : number module M { ->M : typeof M, Symbol(M, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 71, 19)) +>M : typeof M export var x = 1; ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 74, 14)) +>x : number >1 : number export class C { foo: string } ->C : C, Symbol(C, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 74, 21)) ->foo : string, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 75, 20)) +>C : C +>foo : string } function foo11() { ->foo11 : () => typeof M, Symbol(foo11, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 76, 1)) +>foo11 : () => typeof M return M; ->M : typeof M, Symbol(M, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 71, 19)) +>M : typeof M } var r11 = foo11(); ->r11 : typeof M, Symbol(r11, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 3)) +>r11 : typeof M >foo11() : typeof M ->foo11 : () => typeof M, Symbol(foo11, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 76, 1)) +>foo11 : () => typeof M // merged declarations interface I2 { ->I2 : I2, Symbol(I2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 85, 1)) +>I2 : I2 x: number; ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 83, 14)) +>x : number } interface I2 { ->I2 : I2, Symbol(I2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 85, 1)) +>I2 : I2 y: number; ->y : number, Symbol(y, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 86, 14)) +>y : number } function foo12() { ->foo12 : () => I2, Symbol(foo12, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 88, 1)) +>foo12 : () => I2 var i2: I2; ->i2 : I2, Symbol(i2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 90, 7)) ->I2 : I2, Symbol(I2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 80, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 85, 1)) +>i2 : I2 +>I2 : I2 return i2; ->i2 : I2, Symbol(i2, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 90, 7)) +>i2 : I2 } var r12 = foo12(); ->r12 : I2, Symbol(r12, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 3)) +>r12 : I2 >foo12() : I2 ->foo12 : () => I2, Symbol(foo12, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 88, 1)) +>foo12 : () => I2 function m1() { return 1; } ->m1 : typeof m1, Symbol(m1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 95, 27)) +>m1 : typeof m1 >1 : number module m1 { export var y = 2; } ->m1 : typeof m1, Symbol(m1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 95, 27)) ->y : number, Symbol(y, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 96, 22)) +>m1 : typeof m1 +>y : number >2 : number function foo13() { ->foo13 : () => typeof m1, Symbol(foo13, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 96, 31)) +>foo13 : () => typeof m1 return m1; ->m1 : typeof m1, Symbol(m1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 93, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 95, 27)) +>m1 : typeof m1 } var r13 = foo13(); ->r13 : typeof m1, Symbol(r13, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 3)) +>r13 : typeof m1 >foo13() : typeof m1 ->foo13 : () => typeof m1, Symbol(foo13, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 96, 31)) +>foo13 : () => typeof m1 class c1 { ->c1 : c1, Symbol(c1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 105, 1)) +>c1 : c1 foo: string; ->foo : string, Symbol(foo, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 102, 10)) +>foo : string constructor(x) { } ->x : any, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 104, 16)) +>x : any } module c1 { ->c1 : typeof c1, Symbol(c1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 105, 1)) +>c1 : typeof c1 export var x = 1; ->x : number, Symbol(x, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 107, 14)) +>x : number >1 : number } function foo14() { ->foo14 : () => typeof c1, Symbol(foo14, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 108, 1)) +>foo14 : () => typeof c1 return c1; ->c1 : typeof c1, Symbol(c1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 100, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 105, 1)) +>c1 : typeof c1 } var r14 = foo14(); ->r14 : typeof c1, Symbol(r14, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 3)) +>r14 : typeof c1 >foo14() : typeof c1 ->foo14 : () => typeof c1, Symbol(foo14, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 108, 1)) +>foo14 : () => typeof c1 enum e1 { A } ->e1 : e1, Symbol(e1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 13)) ->A : e1, Symbol(e1.A, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 9)) +>e1 : e1 +>A : e1 module e1 { export var y = 1; } ->e1 : typeof e1, Symbol(e1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 13)) ->y : number, Symbol(y, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 115, 22)) +>e1 : typeof e1 +>y : number >1 : number function foo15() { ->foo15 : () => typeof e1, Symbol(foo15, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 115, 31)) +>foo15 : () => typeof e1 return e1; ->e1 : typeof e1, Symbol(e1, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 112, 18), Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 114, 13)) +>e1 : typeof e1 } var r15 = foo15(); ->r15 : typeof e1, Symbol(r15, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 119, 3)) +>r15 : typeof e1 >foo15() : typeof e1 ->foo15 : () => typeof e1, Symbol(foo15, Decl(callSignatureWithoutReturnTypeAnnotationInference.ts, 115, 31)) +>foo15 : () => typeof e1 diff --git a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.symbols b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.symbols new file mode 100644 index 0000000000000..f2b9de48425ce --- /dev/null +++ b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.symbols @@ -0,0 +1,76 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesThatDifferOnlyByReturnType.ts === +// Each pair of signatures in these types has a signature that should cause an error. +// Overloads, generic or not, that differ only by return type are an error. +interface I { +>I : Symbol(I, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 0, 0)) + + (x): number; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 3, 5)) + + (x): void; // error +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 4, 5)) + + (x: T): number; +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 5, 5)) +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 5, 8)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 5, 5)) + + (x: T): string; // error +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 6, 5)) +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 6, 8)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 6, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 7, 1)) + + (x: T): number; +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 10, 5)) +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 10, 8)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 10, 5)) + + (x: T): string; // error +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 11, 5)) +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 11, 8)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 11, 5)) +} + +interface I3 { +>I3 : Symbol(I3, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 12, 1)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 14, 13)) + + (x: T): number; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 15, 5)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 14, 13)) + + (x: T): string; // error +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 16, 5)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 14, 13)) +} + +var a: { +>a : Symbol(a, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 19, 3)) + + (x, y): Object; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 20, 5)) +>y : Symbol(y, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 20, 7)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + (x, y): any; // error +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 21, 5)) +>y : Symbol(y, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 21, 7)) +} + +var a2: { +>a2 : Symbol(a2, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 24, 3)) + + (x: T): number; +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 25, 5)) +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 25, 8)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 25, 5)) + + (x: T): string; // error +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 26, 5)) +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 26, 8)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 26, 5)) +} diff --git a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types index 6f17f68f6cca4..ff51a6fc60a8c 100644 --- a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types +++ b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types @@ -2,75 +2,75 @@ // Each pair of signatures in these types has a signature that should cause an error. // Overloads, generic or not, that differ only by return type are an error. interface I { ->I : I, Symbol(I, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 0, 0)) +>I : I (x): number; ->x : any, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 3, 5)) +>x : any (x): void; // error ->x : any, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 4, 5)) +>x : any (x: T): number; ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 5, 5)) ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 5, 8)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 5, 5)) +>T : T +>x : T +>T : T (x: T): string; // error ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 6, 5)) ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 6, 8)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 6, 5)) +>T : T +>x : T +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 7, 1)) +>I2 : I2 (x: T): number; ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 10, 5)) ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 10, 8)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 10, 5)) +>T : T +>x : T +>T : T (x: T): string; // error ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 11, 5)) ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 11, 8)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 11, 5)) +>T : T +>x : T +>T : T } interface I3 { ->I3 : I3, Symbol(I3, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 12, 1)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 14, 13)) +>I3 : I3 +>T : T (x: T): number; ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 15, 5)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 14, 13)) +>x : T +>T : T (x: T): string; // error ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 16, 5)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 14, 13)) +>x : T +>T : T } var a: { ->a : { (x: any, y: any): Object; (x: any, y: any): any; }, Symbol(a, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 19, 3)) +>a : { (x: any, y: any): Object; (x: any, y: any): any; } (x, y): Object; ->x : any, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 20, 5)) ->y : any, Symbol(y, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 20, 7)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : any +>y : any +>Object : Object (x, y): any; // error ->x : any, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 21, 5)) ->y : any, Symbol(y, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 21, 7)) +>x : any +>y : any } var a2: { ->a2 : { (x: T): number; (x: T): string; }, Symbol(a2, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 24, 3)) +>a2 : { (x: T): number; (x: T): string; } (x: T): number; ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 25, 5)) ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 25, 8)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 25, 5)) +>T : T +>x : T +>T : T (x: T): string; // error ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 26, 5)) ->x : T, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 26, 8)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType.ts, 26, 5)) +>T : T +>x : T +>T : T } diff --git a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.symbols b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.symbols new file mode 100644 index 0000000000000..dab2717aa0a31 --- /dev/null +++ b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesThatDifferOnlyByReturnType3.ts === +// Normally it is an error to have multiple overloads with identical signatures in a single type declaration. +// Here the multiple overloads come from multiple merged declarations. + +interface I { +>I : Symbol(I, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 0, 0), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 5, 1)) + + (x: string): string; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 4, 5)) +} + +interface I { +>I : Symbol(I, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 0, 0), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 5, 1)) + + (x: string): number; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 8, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 9, 1), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 13, 1)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 11, 13), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 15, 13)) + + (x: string): string; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 12, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 9, 1), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 13, 1)) +>T : Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 11, 13), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 15, 13)) + + (x: string): number; +>x : Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 16, 5)) +} diff --git a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.types b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.types index 9250fe8ed1d7c..3b1f2c5ca1af3 100644 --- a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.types +++ b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType3.types @@ -3,31 +3,31 @@ // Here the multiple overloads come from multiple merged declarations. interface I { ->I : I, Symbol(I, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 0, 0), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 5, 1)) +>I : I (x: string): string; ->x : string, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 4, 5)) +>x : string } interface I { ->I : I, Symbol(I, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 0, 0), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 5, 1)) +>I : I (x: string): number; ->x : string, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 8, 5)) +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 9, 1), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 13, 1)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 11, 13), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 15, 13)) +>I2 : I2 +>T : T (x: string): string; ->x : string, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 12, 5)) +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 9, 1), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 13, 1)) ->T : T, Symbol(T, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 11, 13), Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 15, 13)) +>I2 : I2 +>T : T (x: string): number; ->x : string, Symbol(x, Decl(callSignaturesThatDifferOnlyByReturnType3.ts, 16, 5)) +>x : string } diff --git a/tests/baselines/reference/callSignaturesWithOptionalParameters.symbols b/tests/baselines/reference/callSignaturesWithOptionalParameters.symbols new file mode 100644 index 0000000000000..542bd425fb121 --- /dev/null +++ b/tests/baselines/reference/callSignaturesWithOptionalParameters.symbols @@ -0,0 +1,164 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters.ts === +// Optional parameters should be valid in all the below casts + +function foo(x?: number) { } +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 0, 0)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 2, 13)) + +var f = function foo(x?: number) { } +>f : Symbol(f, Decl(callSignaturesWithOptionalParameters.ts, 3, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 3, 7)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 3, 21)) + +var f2 = (x: number, y?: number) => { } +>f2 : Symbol(f2, Decl(callSignaturesWithOptionalParameters.ts, 4, 3)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 4, 10)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters.ts, 4, 20)) + +foo(1); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 0, 0)) + +foo(); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 0, 0)) + +f(1); +>f : Symbol(f, Decl(callSignaturesWithOptionalParameters.ts, 3, 3)) + +f(); +>f : Symbol(f, Decl(callSignaturesWithOptionalParameters.ts, 3, 3)) + +f2(1); +>f2 : Symbol(f2, Decl(callSignaturesWithOptionalParameters.ts, 4, 3)) + +f2(1, 2); +>f2 : Symbol(f2, Decl(callSignaturesWithOptionalParameters.ts, 4, 3)) + +class C { +>C : Symbol(C, Decl(callSignaturesWithOptionalParameters.ts, 11, 9)) + + foo(x?: number) { } +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 14, 8)) +} + +var c: C; +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters.ts, 17, 3)) +>C : Symbol(C, Decl(callSignaturesWithOptionalParameters.ts, 11, 9)) + +c.foo(); +>c.foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters.ts, 17, 3)) +>foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) + +c.foo(1); +>c.foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters.ts, 17, 3)) +>foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) + +interface I { +>I : Symbol(I, Decl(callSignaturesWithOptionalParameters.ts, 19, 9)) + + (x?: number); +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 22, 5)) + + foo(x: number, y?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 23, 8)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters.ts, 23, 18)) +} + +var i: I; +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) +>I : Symbol(I, Decl(callSignaturesWithOptionalParameters.ts, 19, 9)) + +i(); +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) + +i(1); +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) + +i.foo(1); +>i.foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) +>foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) + +i.foo(1, 2); +>i.foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) +>foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) + +var a: { +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) + + (x?: number); +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 33, 5)) + + foo(x?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 34, 8)) +} + +a(); +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) + +a(1); +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) + +a.foo(); +>a.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) + +a.foo(1); +>a.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) + +var b = { +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) + + foo(x?: number) { }, +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 43, 8)) + + a: function foo(x: number, y?: number) { }, +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 44, 6)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 44, 20)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters.ts, 44, 30)) + + b: (x?: number) => { } +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 45, 8)) +} + +b.foo(); +>b.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) + +b.foo(1); +>b.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) + +b.a(1); +>b.a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) + +b.a(1, 2); +>b.a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) + +b.b(); +>b.b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) + +b.b(1); +>b.b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>b : Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) + diff --git a/tests/baselines/reference/callSignaturesWithOptionalParameters.types b/tests/baselines/reference/callSignaturesWithOptionalParameters.types index 87e6fca5db579..4ade0e8afe4ba 100644 --- a/tests/baselines/reference/callSignaturesWithOptionalParameters.types +++ b/tests/baselines/reference/callSignaturesWithOptionalParameters.types @@ -2,207 +2,207 @@ // Optional parameters should be valid in all the below casts function foo(x?: number) { } ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 0, 0)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 2, 13)) +>foo : (x?: number) => void +>x : number var f = function foo(x?: number) { } ->f : (x?: number) => void, Symbol(f, Decl(callSignaturesWithOptionalParameters.ts, 3, 3)) +>f : (x?: number) => void >function foo(x?: number) { } : (x?: number) => void ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 3, 7)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 3, 21)) +>foo : (x?: number) => void +>x : number var f2 = (x: number, y?: number) => { } ->f2 : (x: number, y?: number) => void, Symbol(f2, Decl(callSignaturesWithOptionalParameters.ts, 4, 3)) +>f2 : (x: number, y?: number) => void >(x: number, y?: number) => { } : (x: number, y?: number) => void ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 4, 10)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters.ts, 4, 20)) +>x : number +>y : number foo(1); >foo(1) : void ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 0, 0)) +>foo : (x?: number) => void >1 : number foo(); >foo() : void ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 0, 0)) +>foo : (x?: number) => void f(1); >f(1) : void ->f : (x?: number) => void, Symbol(f, Decl(callSignaturesWithOptionalParameters.ts, 3, 3)) +>f : (x?: number) => void >1 : number f(); >f() : void ->f : (x?: number) => void, Symbol(f, Decl(callSignaturesWithOptionalParameters.ts, 3, 3)) +>f : (x?: number) => void f2(1); >f2(1) : void ->f2 : (x: number, y?: number) => void, Symbol(f2, Decl(callSignaturesWithOptionalParameters.ts, 4, 3)) +>f2 : (x: number, y?: number) => void >1 : number f2(1, 2); >f2(1, 2) : void ->f2 : (x: number, y?: number) => void, Symbol(f2, Decl(callSignaturesWithOptionalParameters.ts, 4, 3)) +>f2 : (x: number, y?: number) => void >1 : number >2 : number class C { ->C : C, Symbol(C, Decl(callSignaturesWithOptionalParameters.ts, 11, 9)) +>C : C foo(x?: number) { } ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 14, 8)) +>foo : (x?: number) => void +>x : number } var c: C; ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters.ts, 17, 3)) ->C : C, Symbol(C, Decl(callSignaturesWithOptionalParameters.ts, 11, 9)) +>c : C +>C : C c.foo(); >c.foo() : void ->c.foo : (x?: number) => void, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters.ts, 17, 3)) ->foo : (x?: number) => void, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) +>c.foo : (x?: number) => void +>c : C +>foo : (x?: number) => void c.foo(1); >c.foo(1) : void ->c.foo : (x?: number) => void, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters.ts, 17, 3)) ->foo : (x?: number) => void, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters.ts, 13, 9)) +>c.foo : (x?: number) => void +>c : C +>foo : (x?: number) => void >1 : number interface I { ->I : I, Symbol(I, Decl(callSignaturesWithOptionalParameters.ts, 19, 9)) +>I : I (x?: number); ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 22, 5)) +>x : number foo(x: number, y?: number); ->foo : (x: number, y?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 23, 8)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters.ts, 23, 18)) +>foo : (x: number, y?: number) => any +>x : number +>y : number } var i: I; ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) ->I : I, Symbol(I, Decl(callSignaturesWithOptionalParameters.ts, 19, 9)) +>i : I +>I : I i(); >i() : any ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) +>i : I i(1); >i(1) : any ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) +>i : I >1 : number i.foo(1); >i.foo(1) : any ->i.foo : (x: number, y?: number) => any, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) ->foo : (x: number, y?: number) => any, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) +>i.foo : (x: number, y?: number) => any +>i : I +>foo : (x: number, y?: number) => any >1 : number i.foo(1, 2); >i.foo(1, 2) : any ->i.foo : (x: number, y?: number) => any, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters.ts, 26, 3)) ->foo : (x: number, y?: number) => any, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters.ts, 22, 17)) +>i.foo : (x: number, y?: number) => any +>i : I +>foo : (x: number, y?: number) => any >1 : number >2 : number var a: { ->a : { (x?: number): any; foo(x?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) +>a : { (x?: number): any; foo(x?: number): any; } (x?: number); ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 33, 5)) +>x : number foo(x?: number); ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 34, 8)) +>foo : (x?: number) => any +>x : number } a(); >a() : any ->a : { (x?: number): any; foo(x?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) +>a : { (x?: number): any; foo(x?: number): any; } a(1); >a(1) : any ->a : { (x?: number): any; foo(x?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) +>a : { (x?: number): any; foo(x?: number): any; } >1 : number a.foo(); >a.foo() : any ->a.foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) ->a : { (x?: number): any; foo(x?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) +>a.foo : (x?: number) => any +>a : { (x?: number): any; foo(x?: number): any; } +>foo : (x?: number) => any a.foo(1); >a.foo(1) : any ->a.foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) ->a : { (x?: number): any; foo(x?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 32, 3)) ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 33, 17)) +>a.foo : (x?: number) => any +>a : { (x?: number): any; foo(x?: number): any; } +>foo : (x?: number) => any >1 : number var b = { ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } >{ foo(x?: number) { }, a: function foo(x: number, y?: number) { }, b: (x?: number) => { }} : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } foo(x?: number) { }, ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 43, 8)) +>foo : (x?: number) => void +>x : number a: function foo(x: number, y?: number) { }, ->a : (x: number, y?: number) => void, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) +>a : (x: number, y?: number) => void >function foo(x: number, y?: number) { } : (x: number, y?: number) => void ->foo : (x: number, y?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 44, 6)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 44, 20)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters.ts, 44, 30)) +>foo : (x: number, y?: number) => void +>x : number +>y : number b: (x?: number) => { } ->b : (x?: number) => void, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) +>b : (x?: number) => void >(x?: number) => { } : (x?: number) => void ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters.ts, 45, 8)) +>x : number } b.foo(); >b.foo() : void ->b.foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) +>b.foo : (x?: number) => void +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } +>foo : (x?: number) => void b.foo(1); >b.foo(1) : void ->b.foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) ->foo : (x?: number) => void, Symbol(foo, Decl(callSignaturesWithOptionalParameters.ts, 42, 9)) +>b.foo : (x?: number) => void +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } +>foo : (x?: number) => void >1 : number b.a(1); >b.a(1) : void ->b.a : (x: number, y?: number) => void, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) ->a : (x: number, y?: number) => void, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) +>b.a : (x: number, y?: number) => void +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } +>a : (x: number, y?: number) => void >1 : number b.a(1, 2); >b.a(1, 2) : void ->b.a : (x: number, y?: number) => void, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) ->a : (x: number, y?: number) => void, Symbol(a, Decl(callSignaturesWithOptionalParameters.ts, 43, 24)) +>b.a : (x: number, y?: number) => void +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } +>a : (x: number, y?: number) => void >1 : number >2 : number b.b(); >b.b() : void ->b.b : (x?: number) => void, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) ->b : (x?: number) => void, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) +>b.b : (x?: number) => void +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } +>b : (x?: number) => void b.b(1); >b.b(1) : void ->b.b : (x?: number) => void, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) ->b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; }, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 42, 3)) ->b : (x?: number) => void, Symbol(b, Decl(callSignaturesWithOptionalParameters.ts, 44, 47)) +>b.b : (x?: number) => void +>b : { foo(x?: number): void; a: (x: number, y?: number) => void; b: (x?: number) => void; } +>b : (x?: number) => void >1 : number diff --git a/tests/baselines/reference/callSignaturesWithOptionalParameters2.symbols b/tests/baselines/reference/callSignaturesWithOptionalParameters2.symbols new file mode 100644 index 0000000000000..e8609d66236d2 --- /dev/null +++ b/tests/baselines/reference/callSignaturesWithOptionalParameters2.symbols @@ -0,0 +1,183 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/callSignaturesWithOptionalParameters2.ts === +// Optional parameters should be valid in all the below casts + +function foo(x?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 2, 13)) + +function foo(x?: number) { } +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 3, 13)) + +foo(1); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) + +foo(); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) + +function foo2(x: number); +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 8, 14)) + +function foo2(x: number, y?: number); +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 9, 14)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 9, 24)) + +function foo2(x: number, y?: number) { } +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 10, 14)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 10, 24)) + +foo2(1); +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) + +foo2(1, 2); +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) + +class C { +>C : Symbol(C, Decl(callSignaturesWithOptionalParameters2.ts, 13, 11)) + + foo(x?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 16, 8)) + + foo(x?: number) { } +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 17, 8)) + + foo2(x: number); +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 19, 9)) + + foo2(x: number, y?: number); +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 20, 9)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 20, 19)) + + foo2(x: number, y?: number) { } +>foo2 : Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 21, 9)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 21, 19)) +} + +var c: C; +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) +>C : Symbol(C, Decl(callSignaturesWithOptionalParameters2.ts, 13, 11)) + +c.foo(); +>c.foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) +>foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) + +c.foo(1); +>c.foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) +>foo : Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) + +c.foo2(1); +>c.foo2 : Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) +>foo2 : Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) + +c.foo2(1, 2); +>c.foo2 : Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>c : Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) +>foo2 : Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) + +interface I { +>I : Symbol(I, Decl(callSignaturesWithOptionalParameters2.ts, 29, 13)) + + (x?: number); +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 32, 5)) + + (x?: number, y?: number); +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 33, 5)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 33, 16)) + + foo(x: number, y?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 34, 8)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 34, 18)) + + foo(x: number, y?: number, z?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 35, 8)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 35, 18)) +>z : Symbol(z, Decl(callSignaturesWithOptionalParameters2.ts, 35, 30)) +} + +var i: I; +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>I : Symbol(I, Decl(callSignaturesWithOptionalParameters2.ts, 29, 13)) + +i(); +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) + +i(1); +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) + +i(1, 2); +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) + +i.foo(1); +>i.foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) + +i.foo(1, 2); +>i.foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) + +i.foo(1, 2, 3); +>i.foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>i : Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>foo : Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) + +var a: { +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) + + (x?: number); +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 47, 5)) + + (x?: number, y?: number); +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 48, 5)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 48, 16)) + + foo(x: number, y?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 49, 8)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 49, 18)) + + foo(x: number, y?: number, z?: number); +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>x : Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 50, 8)) +>y : Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 50, 18)) +>z : Symbol(z, Decl(callSignaturesWithOptionalParameters2.ts, 50, 30)) +} + +a(); +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) + +a(1); +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) + +a(1, 2); +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) + +a.foo(1); +>a.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) + +a.foo(1, 2); +>a.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) + +a.foo(1, 2, 3); +>a.foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>a : Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>foo : Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) + diff --git a/tests/baselines/reference/callSignaturesWithOptionalParameters2.types b/tests/baselines/reference/callSignaturesWithOptionalParameters2.types index 0f1ff933f1af8..f726840752eb5 100644 --- a/tests/baselines/reference/callSignaturesWithOptionalParameters2.types +++ b/tests/baselines/reference/callSignaturesWithOptionalParameters2.types @@ -2,227 +2,227 @@ // Optional parameters should be valid in all the below casts function foo(x?: number); ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 2, 13)) +>foo : (x?: number) => any +>x : number function foo(x?: number) { } ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 3, 13)) +>foo : (x?: number) => any +>x : number foo(1); >foo(1) : any ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) +>foo : (x?: number) => any >1 : number foo(); >foo() : any ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 0, 0), Decl(callSignaturesWithOptionalParameters2.ts, 2, 25)) +>foo : (x?: number) => any function foo2(x: number); ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 8, 14)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } +>x : number function foo2(x: number, y?: number); ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 9, 14)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 9, 24)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } +>x : number +>y : number function foo2(x: number, y?: number) { } ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 10, 14)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 10, 24)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } +>x : number +>y : number foo2(1); >foo2(1) : any ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } >1 : number foo2(1, 2); >foo2(1, 2) : any ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 6, 6), Decl(callSignaturesWithOptionalParameters2.ts, 8, 25), Decl(callSignaturesWithOptionalParameters2.ts, 9, 37)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } >1 : number >2 : number class C { ->C : C, Symbol(C, Decl(callSignaturesWithOptionalParameters2.ts, 13, 11)) +>C : C foo(x?: number); ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 16, 8)) +>foo : (x?: number) => any +>x : number foo(x?: number) { } ->foo : (x?: number) => any, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 17, 8)) +>foo : (x?: number) => any +>x : number foo2(x: number); ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 19, 9)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } +>x : number foo2(x: number, y?: number); ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 20, 9)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 20, 19)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } +>x : number +>y : number foo2(x: number, y?: number) { } ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 21, 9)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 21, 19)) +>foo2 : { (x: number): any; (x: number, y?: number): any; } +>x : number +>y : number } var c: C; ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) ->C : C, Symbol(C, Decl(callSignaturesWithOptionalParameters2.ts, 13, 11)) +>c : C +>C : C c.foo(); >c.foo() : any ->c.foo : (x?: number) => any, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) ->foo : (x?: number) => any, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) +>c.foo : (x?: number) => any +>c : C +>foo : (x?: number) => any c.foo(1); >c.foo(1) : any ->c.foo : (x?: number) => any, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) ->foo : (x?: number) => any, Symbol(C.foo, Decl(callSignaturesWithOptionalParameters2.ts, 15, 9), Decl(callSignaturesWithOptionalParameters2.ts, 16, 20)) +>c.foo : (x?: number) => any +>c : C +>foo : (x?: number) => any >1 : number c.foo2(1); >c.foo2(1) : any ->c.foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>c.foo2 : { (x: number): any; (x: number, y?: number): any; } +>c : C +>foo2 : { (x: number): any; (x: number, y?: number): any; } >1 : number c.foo2(1, 2); >c.foo2(1, 2) : any ->c.foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) ->c : C, Symbol(c, Decl(callSignaturesWithOptionalParameters2.ts, 24, 3)) ->foo2 : { (x: number): any; (x: number, y?: number): any; }, Symbol(C.foo2, Decl(callSignaturesWithOptionalParameters2.ts, 17, 23), Decl(callSignaturesWithOptionalParameters2.ts, 19, 20), Decl(callSignaturesWithOptionalParameters2.ts, 20, 32)) +>c.foo2 : { (x: number): any; (x: number, y?: number): any; } +>c : C +>foo2 : { (x: number): any; (x: number, y?: number): any; } >1 : number >2 : number interface I { ->I : I, Symbol(I, Decl(callSignaturesWithOptionalParameters2.ts, 29, 13)) +>I : I (x?: number); ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 32, 5)) +>x : number (x?: number, y?: number); ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 33, 5)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 33, 16)) +>x : number +>y : number foo(x: number, y?: number); ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 34, 8)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 34, 18)) +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>x : number +>y : number foo(x: number, y?: number, z?: number); ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 35, 8)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 35, 18)) ->z : number, Symbol(z, Decl(callSignaturesWithOptionalParameters2.ts, 35, 30)) +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>x : number +>y : number +>z : number } var i: I; ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) ->I : I, Symbol(I, Decl(callSignaturesWithOptionalParameters2.ts, 29, 13)) +>i : I +>I : I i(); >i() : any ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>i : I i(1); >i(1) : any ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>i : I >1 : number i(1, 2); >i(1, 2) : any ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) +>i : I >1 : number >2 : number i.foo(1); >i.foo(1) : any ->i.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>i.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>i : I +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } >1 : number i.foo(1, 2); >i.foo(1, 2) : any ->i.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>i.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>i : I +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } >1 : number >2 : number i.foo(1, 2, 3); >i.foo(1, 2, 3) : any ->i.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) ->i : I, Symbol(i, Decl(callSignaturesWithOptionalParameters2.ts, 38, 3)) ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(I.foo, Decl(callSignaturesWithOptionalParameters2.ts, 33, 29), Decl(callSignaturesWithOptionalParameters2.ts, 34, 31)) +>i.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>i : I +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } >1 : number >2 : number >3 : number var a: { ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } (x?: number); ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 47, 5)) +>x : number (x?: number, y?: number); ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 48, 5)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 48, 16)) +>x : number +>y : number foo(x: number, y?: number); ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 49, 8)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 49, 18)) +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>x : number +>y : number foo(x: number, y?: number, z?: number); ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) ->x : number, Symbol(x, Decl(callSignaturesWithOptionalParameters2.ts, 50, 8)) ->y : number, Symbol(y, Decl(callSignaturesWithOptionalParameters2.ts, 50, 18)) ->z : number, Symbol(z, Decl(callSignaturesWithOptionalParameters2.ts, 50, 30)) +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>x : number +>y : number +>z : number } a(); >a() : any ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } a(1); >a(1) : any ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } >1 : number a(1, 2); >a(1, 2) : any ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } >1 : number >2 : number a.foo(1); >a.foo(1) : any ->a.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>a.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } >1 : number a.foo(1, 2); >a.foo(1, 2) : any ->a.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>a.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } >1 : number >2 : number a.foo(1, 2, 3); >a.foo(1, 2, 3) : any ->a.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) ->a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; }, Symbol(a, Decl(callSignaturesWithOptionalParameters2.ts, 46, 3)) ->foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; }, Symbol(foo, Decl(callSignaturesWithOptionalParameters2.ts, 48, 29), Decl(callSignaturesWithOptionalParameters2.ts, 49, 31)) +>a.foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } +>a : { (x?: number): any; (x?: number, y?: number): any; foo(x: number, y?: number): any; foo(x: number, y?: number, z?: number): any; } +>foo : { (x: number, y?: number): any; (x: number, y?: number, z?: number): any; } >1 : number >2 : number >3 : number diff --git a/tests/baselines/reference/callWithSpreadES6.symbols b/tests/baselines/reference/callWithSpreadES6.symbols new file mode 100644 index 0000000000000..0dd186210b285 --- /dev/null +++ b/tests/baselines/reference/callWithSpreadES6.symbols @@ -0,0 +1,166 @@ +=== tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts === + +interface X { +>X : Symbol(X, Decl(callWithSpreadES6.ts, 0, 0)) + + foo(x: number, y: number, ...z: string[]); +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 1, 13)) +>x : Symbol(x, Decl(callWithSpreadES6.ts, 2, 8)) +>y : Symbol(y, Decl(callWithSpreadES6.ts, 2, 18)) +>z : Symbol(z, Decl(callWithSpreadES6.ts, 2, 29)) +} + +function foo(x: number, y: number, ...z: string[]) { +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) +>x : Symbol(x, Decl(callWithSpreadES6.ts, 5, 13)) +>y : Symbol(y, Decl(callWithSpreadES6.ts, 5, 23)) +>z : Symbol(z, Decl(callWithSpreadES6.ts, 5, 34)) +} + +var a: string[]; +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +var z: number[]; +>z : Symbol(z, Decl(callWithSpreadES6.ts, 9, 3)) + +var obj: X; +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>X : Symbol(X, Decl(callWithSpreadES6.ts, 0, 0)) + +var xa: X[]; +>xa : Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>X : Symbol(X, Decl(callWithSpreadES6.ts, 0, 0)) + +foo(1, 2, "abc"); +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) + +foo(1, 2, ...a); +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +foo(1, 2, ...a, "abc"); +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +obj.foo(1, 2, "abc"); +>obj.foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) + +obj.foo(1, 2, ...a); +>obj.foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +obj.foo(1, 2, ...a, "abc"); +>obj.foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +(obj.foo)(1, 2, "abc"); +>obj.foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) + +(obj.foo)(1, 2, ...a); +>obj.foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +(obj.foo)(1, 2, ...a, "abc"); +>obj.foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj : Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +xa[1].foo(1, 2, "abc"); +>xa[1].foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa : Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) + +xa[1].foo(1, 2, ...a); +>xa[1].foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa : Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +xa[1].foo(1, 2, ...a, "abc"); +>xa[1].foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa : Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + +(xa[1].foo)(...[1, 2, "abc"]); +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(lib.d.ts, 1325, 1)) +>xa[1].foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa : Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>foo : Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) + +class C { +>C : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) + + constructor(x: number, y: number, ...z: string[]) { +>x : Symbol(x, Decl(callWithSpreadES6.ts, 32, 16)) +>y : Symbol(y, Decl(callWithSpreadES6.ts, 32, 26)) +>z : Symbol(z, Decl(callWithSpreadES6.ts, 32, 37)) + + this.foo(x, y); +>this.foo : Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) +>this : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) +>x : Symbol(x, Decl(callWithSpreadES6.ts, 32, 16)) +>y : Symbol(y, Decl(callWithSpreadES6.ts, 32, 26)) + + this.foo(x, y, ...z); +>this.foo : Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) +>this : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) +>x : Symbol(x, Decl(callWithSpreadES6.ts, 32, 16)) +>y : Symbol(y, Decl(callWithSpreadES6.ts, 32, 26)) +>z : Symbol(z, Decl(callWithSpreadES6.ts, 32, 37)) + } + foo(x: number, y: number, ...z: string[]) { +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) +>x : Symbol(x, Decl(callWithSpreadES6.ts, 36, 8)) +>y : Symbol(y, Decl(callWithSpreadES6.ts, 36, 18)) +>z : Symbol(z, Decl(callWithSpreadES6.ts, 36, 29)) + } +} + +class D extends C { +>D : Symbol(D, Decl(callWithSpreadES6.ts, 38, 1)) +>C : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) + + constructor() { + super(1, 2); +>super : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) + + super(1, 2, ...a); +>super : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + } + foo() { +>foo : Symbol(foo, Decl(callWithSpreadES6.ts, 44, 5)) + + super.foo(1, 2); +>super.foo : Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) +>super : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>foo : Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) + + super.foo(1, 2, ...a); +>super.foo : Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) +>super : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>foo : Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + } +} + +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); +>c : Symbol(c, Decl(callWithSpreadES6.ts, 52, 3)) +>C : Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>a : Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) + diff --git a/tests/baselines/reference/callWithSpreadES6.types b/tests/baselines/reference/callWithSpreadES6.types index 98e1cefe5463d..71d3cf9b2df58 100644 --- a/tests/baselines/reference/callWithSpreadES6.types +++ b/tests/baselines/reference/callWithSpreadES6.types @@ -1,96 +1,96 @@ === tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts === interface X { ->X : X, Symbol(X, Decl(callWithSpreadES6.ts, 0, 0)) +>X : X foo(x: number, y: number, ...z: string[]); ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(foo, Decl(callWithSpreadES6.ts, 1, 13)) ->x : number, Symbol(x, Decl(callWithSpreadES6.ts, 2, 8)) ->y : number, Symbol(y, Decl(callWithSpreadES6.ts, 2, 18)) ->z : string[], Symbol(z, Decl(callWithSpreadES6.ts, 2, 29)) +>foo : (x: number, y: number, ...z: string[]) => any +>x : number +>y : number +>z : string[] } function foo(x: number, y: number, ...z: string[]) { ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) ->x : number, Symbol(x, Decl(callWithSpreadES6.ts, 5, 13)) ->y : number, Symbol(y, Decl(callWithSpreadES6.ts, 5, 23)) ->z : string[], Symbol(z, Decl(callWithSpreadES6.ts, 5, 34)) +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number +>z : string[] } var a: string[]; ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] var z: number[]; ->z : number[], Symbol(z, Decl(callWithSpreadES6.ts, 9, 3)) +>z : number[] var obj: X; ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->X : X, Symbol(X, Decl(callWithSpreadES6.ts, 0, 0)) +>obj : X +>X : X var xa: X[]; ->xa : X[], Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) ->X : X, Symbol(X, Decl(callWithSpreadES6.ts, 0, 0)) +>xa : X[] +>X : X foo(1, 2, "abc"); >foo(1, 2, "abc") : void ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) +>foo : (x: number, y: number, ...z: string[]) => void >1 : number >2 : number >"abc" : string foo(1, 2, ...a); >foo(1, 2, ...a) : void ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) +>foo : (x: number, y: number, ...z: string[]) => void >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] foo(1, 2, ...a, "abc"); >foo(1, 2, ...a, "abc") : void ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 3, 1)) +>foo : (x: number, y: number, ...z: string[]) => void >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] >"abc" : string obj.foo(1, 2, "abc"); >obj.foo(1, 2, "abc") : any ->obj.foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >"abc" : string obj.foo(1, 2, ...a); >obj.foo(1, 2, ...a) : any ->obj.foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] obj.foo(1, 2, ...a, "abc"); >obj.foo(1, 2, ...a, "abc") : any ->obj.foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] >"abc" : string (obj.foo)(1, 2, "abc"); >(obj.foo)(1, 2, "abc") : any >(obj.foo) : (x: number, y: number, ...z: string[]) => any ->obj.foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >"abc" : string @@ -98,72 +98,72 @@ obj.foo(1, 2, ...a, "abc"); (obj.foo)(1, 2, ...a); >(obj.foo)(1, 2, ...a) : any >(obj.foo) : (x: number, y: number, ...z: string[]) => any ->obj.foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] (obj.foo)(1, 2, ...a, "abc"); >(obj.foo)(1, 2, ...a, "abc") : any >(obj.foo) : (x: number, y: number, ...z: string[]) => any ->obj.foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) ->obj : X, Symbol(obj, Decl(callWithSpreadES6.ts, 10, 3)) ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] >"abc" : string xa[1].foo(1, 2, "abc"); >xa[1].foo(1, 2, "abc") : any ->xa[1].foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa[1].foo : (x: number, y: number, ...z: string[]) => any >xa[1] : X ->xa : X[], Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>xa : X[] >1 : number ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >"abc" : string xa[1].foo(1, 2, ...a); >xa[1].foo(1, 2, ...a) : any ->xa[1].foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa[1].foo : (x: number, y: number, ...z: string[]) => any >xa[1] : X ->xa : X[], Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>xa : X[] >1 : number ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] xa[1].foo(1, 2, ...a, "abc"); >xa[1].foo(1, 2, ...a, "abc") : any ->xa[1].foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>xa[1].foo : (x: number, y: number, ...z: string[]) => any >xa[1] : X ->xa : X[], Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>xa : X[] >1 : number ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>foo : (x: number, y: number, ...z: string[]) => any >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] >"abc" : string (xa[1].foo)(...[1, 2, "abc"]); >(xa[1].foo)(...[1, 2, "abc"]) : any >(xa[1].foo) : Function >xa[1].foo : Function ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(lib.d.ts, 1325, 1)) ->xa[1].foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>Function : Function +>xa[1].foo : (x: number, y: number, ...z: string[]) => any >xa[1] : X ->xa : X[], Symbol(xa, Decl(callWithSpreadES6.ts, 11, 3)) +>xa : X[] >1 : number ->foo : (x: number, y: number, ...z: string[]) => any, Symbol(X.foo, Decl(callWithSpreadES6.ts, 1, 13)) +>foo : (x: number, y: number, ...z: string[]) => any >...[1, 2, "abc"] : string | number >[1, 2, "abc"] : (string | number)[] >1 : number @@ -171,88 +171,88 @@ xa[1].foo(1, 2, ...a, "abc"); >"abc" : string class C { ->C : C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>C : C constructor(x: number, y: number, ...z: string[]) { ->x : number, Symbol(x, Decl(callWithSpreadES6.ts, 32, 16)) ->y : number, Symbol(y, Decl(callWithSpreadES6.ts, 32, 26)) ->z : string[], Symbol(z, Decl(callWithSpreadES6.ts, 32, 37)) +>x : number +>y : number +>z : string[] this.foo(x, y); >this.foo(x, y) : void ->this.foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) ->this : C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) ->x : number, Symbol(x, Decl(callWithSpreadES6.ts, 32, 16)) ->y : number, Symbol(y, Decl(callWithSpreadES6.ts, 32, 26)) +>this.foo : (x: number, y: number, ...z: string[]) => void +>this : C +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number this.foo(x, y, ...z); >this.foo(x, y, ...z) : void ->this.foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) ->this : C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) ->x : number, Symbol(x, Decl(callWithSpreadES6.ts, 32, 16)) ->y : number, Symbol(y, Decl(callWithSpreadES6.ts, 32, 26)) +>this.foo : (x: number, y: number, ...z: string[]) => void +>this : C +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number >...z : string ->z : string[], Symbol(z, Decl(callWithSpreadES6.ts, 32, 37)) +>z : string[] } foo(x: number, y: number, ...z: string[]) { ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(foo, Decl(callWithSpreadES6.ts, 35, 5)) ->x : number, Symbol(x, Decl(callWithSpreadES6.ts, 36, 8)) ->y : number, Symbol(y, Decl(callWithSpreadES6.ts, 36, 18)) ->z : string[], Symbol(z, Decl(callWithSpreadES6.ts, 36, 29)) +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number +>z : string[] } } class D extends C { ->D : D, Symbol(D, Decl(callWithSpreadES6.ts, 38, 1)) ->C : C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>D : D +>C : C constructor() { super(1, 2); >super(1, 2) : void ->super : typeof C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>super : typeof C >1 : number >2 : number super(1, 2, ...a); >super(1, 2, ...a) : void ->super : typeof C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>super : typeof C >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] } foo() { ->foo : () => void, Symbol(foo, Decl(callWithSpreadES6.ts, 44, 5)) +>foo : () => void super.foo(1, 2); >super.foo(1, 2) : void ->super.foo : (x: number, y: number, ...z: string[]) => void, Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) ->super : C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) +>super.foo : (x: number, y: number, ...z: string[]) => void +>super : C +>foo : (x: number, y: number, ...z: string[]) => void >1 : number >2 : number super.foo(1, 2, ...a); >super.foo(1, 2, ...a) : void ->super.foo : (x: number, y: number, ...z: string[]) => void, Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) ->super : C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) ->foo : (x: number, y: number, ...z: string[]) => void, Symbol(C.foo, Decl(callWithSpreadES6.ts, 35, 5)) +>super.foo : (x: number, y: number, ...z: string[]) => void +>super : C +>foo : (x: number, y: number, ...z: string[]) => void >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] } } // Only supported in when target is ES6 var c = new C(1, 2, ...a); ->c : C, Symbol(c, Decl(callWithSpreadES6.ts, 52, 3)) +>c : C >new C(1, 2, ...a) : C ->C : typeof C, Symbol(C, Decl(callWithSpreadES6.ts, 29, 40)) +>C : typeof C >1 : number >2 : number >...a : string ->a : string[], Symbol(a, Decl(callWithSpreadES6.ts, 8, 3)) +>a : string[] diff --git a/tests/baselines/reference/callbacksDontShareTypes.symbols b/tests/baselines/reference/callbacksDontShareTypes.symbols new file mode 100644 index 0000000000000..80a5f234d383e --- /dev/null +++ b/tests/baselines/reference/callbacksDontShareTypes.symbols @@ -0,0 +1,100 @@ +=== tests/cases/compiler/callbacksDontShareTypes.ts === +interface Collection { +>Collection : Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 0, 21)) + + length: number; +>length : Symbol(length, Decl(callbacksDontShareTypes.ts, 0, 25)) + + add(x: T): void; +>add : Symbol(add, Decl(callbacksDontShareTypes.ts, 1, 19)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 2, 8)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 0, 21)) + + remove(x: T): boolean; +>remove : Symbol(remove, Decl(callbacksDontShareTypes.ts, 2, 20)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 3, 11)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 0, 21)) +} +interface Combinators { +>Combinators : Symbol(Combinators, Decl(callbacksDontShareTypes.ts, 4, 1)) + + map(c: Collection, f: (x: T) => U): Collection; +>map : Symbol(map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 6, 8)) +>U : Symbol(U, Decl(callbacksDontShareTypes.ts, 6, 10)) +>c : Symbol(c, Decl(callbacksDontShareTypes.ts, 6, 14)) +>Collection : Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 6, 8)) +>f : Symbol(f, Decl(callbacksDontShareTypes.ts, 6, 31)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 6, 36)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 6, 8)) +>U : Symbol(U, Decl(callbacksDontShareTypes.ts, 6, 10)) +>Collection : Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +>U : Symbol(U, Decl(callbacksDontShareTypes.ts, 6, 10)) + + map(c: Collection, f: (x: T) => any): Collection; +>map : Symbol(map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 7, 8)) +>c : Symbol(c, Decl(callbacksDontShareTypes.ts, 7, 11)) +>Collection : Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 7, 8)) +>f : Symbol(f, Decl(callbacksDontShareTypes.ts, 7, 28)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 7, 33)) +>T : Symbol(T, Decl(callbacksDontShareTypes.ts, 7, 8)) +>Collection : Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +} + +var _: Combinators; +>_ : Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) +>Combinators : Symbol(Combinators, Decl(callbacksDontShareTypes.ts, 4, 1)) + +var c2: Collection; +>c2 : Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>Collection : Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) + +var rf1 = (x: number) => { return x.toFixed() }; +>rf1 : Symbol(rf1, Decl(callbacksDontShareTypes.ts, 13, 3)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 13, 11)) +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 13, 11)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + +var r1a = _.map(c2, (x) => { return x.toFixed() }); +>r1a : Symbol(r1a, Decl(callbacksDontShareTypes.ts, 14, 3)) +>_.map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>_ : Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) +>map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>c2 : Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 14, 21)) +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 14, 21)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + +var r1b = _.map(c2, rf1); // this line should not cause the following 2 to have errors +>r1b : Symbol(r1b, Decl(callbacksDontShareTypes.ts, 15, 3)) +>_.map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>_ : Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) +>map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>c2 : Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>rf1 : Symbol(rf1, Decl(callbacksDontShareTypes.ts, 13, 3)) + +var r5a = _.map(c2, (x) => { return x.toFixed() }); +>r5a : Symbol(r5a, Decl(callbacksDontShareTypes.ts, 16, 3)) +>_.map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>_ : Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) +>map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>c2 : Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 16, 37)) +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(callbacksDontShareTypes.ts, 16, 37)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + +var r5b = _.map(c2, rf1); +>r5b : Symbol(r5b, Decl(callbacksDontShareTypes.ts, 17, 3)) +>_.map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>_ : Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) +>map : Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) +>c2 : Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>rf1 : Symbol(rf1, Decl(callbacksDontShareTypes.ts, 13, 3)) + diff --git a/tests/baselines/reference/callbacksDontShareTypes.types b/tests/baselines/reference/callbacksDontShareTypes.types index a013812e4b907..39ff5d8e30613 100644 --- a/tests/baselines/reference/callbacksDontShareTypes.types +++ b/tests/baselines/reference/callbacksDontShareTypes.types @@ -1,110 +1,110 @@ === tests/cases/compiler/callbacksDontShareTypes.ts === interface Collection { ->Collection : Collection, Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 0, 21)) +>Collection : Collection +>T : T length: number; ->length : number, Symbol(length, Decl(callbacksDontShareTypes.ts, 0, 25)) +>length : number add(x: T): void; ->add : (x: T) => void, Symbol(add, Decl(callbacksDontShareTypes.ts, 1, 19)) ->x : T, Symbol(x, Decl(callbacksDontShareTypes.ts, 2, 8)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 0, 21)) +>add : (x: T) => void +>x : T +>T : T remove(x: T): boolean; ->remove : (x: T) => boolean, Symbol(remove, Decl(callbacksDontShareTypes.ts, 2, 20)) ->x : T, Symbol(x, Decl(callbacksDontShareTypes.ts, 3, 11)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 0, 21)) +>remove : (x: T) => boolean +>x : T +>T : T } interface Combinators { ->Combinators : Combinators, Symbol(Combinators, Decl(callbacksDontShareTypes.ts, 4, 1)) +>Combinators : Combinators map(c: Collection, f: (x: T) => U): Collection; ->map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 6, 8)) ->U : U, Symbol(U, Decl(callbacksDontShareTypes.ts, 6, 10)) ->c : Collection, Symbol(c, Decl(callbacksDontShareTypes.ts, 6, 14)) ->Collection : Collection, Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 6, 8)) ->f : (x: T) => U, Symbol(f, Decl(callbacksDontShareTypes.ts, 6, 31)) ->x : T, Symbol(x, Decl(callbacksDontShareTypes.ts, 6, 36)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 6, 8)) ->U : U, Symbol(U, Decl(callbacksDontShareTypes.ts, 6, 10)) ->Collection : Collection, Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) ->U : U, Symbol(U, Decl(callbacksDontShareTypes.ts, 6, 10)) +>map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>T : T +>U : U +>c : Collection +>Collection : Collection +>T : T +>f : (x: T) => U +>x : T +>T : T +>U : U +>Collection : Collection +>U : U map(c: Collection, f: (x: T) => any): Collection; ->map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 7, 8)) ->c : Collection, Symbol(c, Decl(callbacksDontShareTypes.ts, 7, 11)) ->Collection : Collection, Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 7, 8)) ->f : (x: T) => any, Symbol(f, Decl(callbacksDontShareTypes.ts, 7, 28)) ->x : T, Symbol(x, Decl(callbacksDontShareTypes.ts, 7, 33)) ->T : T, Symbol(T, Decl(callbacksDontShareTypes.ts, 7, 8)) ->Collection : Collection, Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +>map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>T : T +>c : Collection +>Collection : Collection +>T : T +>f : (x: T) => any +>x : T +>T : T +>Collection : Collection } var _: Combinators; ->_ : Combinators, Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) ->Combinators : Combinators, Symbol(Combinators, Decl(callbacksDontShareTypes.ts, 4, 1)) +>_ : Combinators +>Combinators : Combinators var c2: Collection; ->c2 : Collection, Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) ->Collection : Collection, Symbol(Collection, Decl(callbacksDontShareTypes.ts, 0, 0)) +>c2 : Collection +>Collection : Collection var rf1 = (x: number) => { return x.toFixed() }; ->rf1 : (x: number) => string, Symbol(rf1, Decl(callbacksDontShareTypes.ts, 13, 3)) +>rf1 : (x: number) => string >(x: number) => { return x.toFixed() } : (x: number) => string ->x : number, Symbol(x, Decl(callbacksDontShareTypes.ts, 13, 11)) +>x : number >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : number, Symbol(x, Decl(callbacksDontShareTypes.ts, 13, 11)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : number +>toFixed : (fractionDigits?: number) => string var r1a = _.map(c2, (x) => { return x.toFixed() }); ->r1a : Collection, Symbol(r1a, Decl(callbacksDontShareTypes.ts, 14, 3)) +>r1a : Collection >_.map(c2, (x) => { return x.toFixed() }) : Collection ->_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->_ : Combinators, Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) ->map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->c2 : Collection, Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>_ : Combinators +>map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>c2 : Collection >(x) => { return x.toFixed() } : (x: number) => string ->x : number, Symbol(x, Decl(callbacksDontShareTypes.ts, 14, 21)) +>x : number >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : number, Symbol(x, Decl(callbacksDontShareTypes.ts, 14, 21)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : number +>toFixed : (fractionDigits?: number) => string var r1b = _.map(c2, rf1); // this line should not cause the following 2 to have errors ->r1b : Collection, Symbol(r1b, Decl(callbacksDontShareTypes.ts, 15, 3)) +>r1b : Collection >_.map(c2, rf1) : Collection ->_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->_ : Combinators, Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) ->map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->c2 : Collection, Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) ->rf1 : (x: number) => string, Symbol(rf1, Decl(callbacksDontShareTypes.ts, 13, 3)) +>_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>_ : Combinators +>map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>c2 : Collection +>rf1 : (x: number) => string var r5a = _.map(c2, (x) => { return x.toFixed() }); ->r5a : Collection, Symbol(r5a, Decl(callbacksDontShareTypes.ts, 16, 3)) +>r5a : Collection >_.map(c2, (x) => { return x.toFixed() }) : Collection ->_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->_ : Combinators, Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) ->map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->c2 : Collection, Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) +>_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>_ : Combinators +>map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>c2 : Collection >(x) => { return x.toFixed() } : (x: number) => string ->x : number, Symbol(x, Decl(callbacksDontShareTypes.ts, 16, 37)) +>x : number >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : number, Symbol(x, Decl(callbacksDontShareTypes.ts, 16, 37)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : number +>toFixed : (fractionDigits?: number) => string var r5b = _.map(c2, rf1); ->r5b : Collection, Symbol(r5b, Decl(callbacksDontShareTypes.ts, 17, 3)) +>r5b : Collection >_.map(c2, rf1) : Collection ->_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->_ : Combinators, Symbol(_, Decl(callbacksDontShareTypes.ts, 10, 3)) ->map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; }, Symbol(Combinators.map, Decl(callbacksDontShareTypes.ts, 5, 23), Decl(callbacksDontShareTypes.ts, 6, 63)) ->c2 : Collection, Symbol(c2, Decl(callbacksDontShareTypes.ts, 11, 3)) ->rf1 : (x: number) => string, Symbol(rf1, Decl(callbacksDontShareTypes.ts, 13, 3)) +>_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>_ : Combinators +>map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>c2 : Collection +>rf1 : (x: number) => string diff --git a/tests/baselines/reference/captureThisInSuperCall.symbols b/tests/baselines/reference/captureThisInSuperCall.symbols new file mode 100644 index 0000000000000..bf1fd151b3c49 --- /dev/null +++ b/tests/baselines/reference/captureThisInSuperCall.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/captureThisInSuperCall.ts === +class A { +>A : Symbol(A, Decl(captureThisInSuperCall.ts, 0, 0)) + + constructor(p:any) {} +>p : Symbol(p, Decl(captureThisInSuperCall.ts, 1, 16)) +} + +class B extends A { +>B : Symbol(B, Decl(captureThisInSuperCall.ts, 2, 1)) +>A : Symbol(A, Decl(captureThisInSuperCall.ts, 0, 0)) + + constructor() { super({ test: () => this.someMethod()}); } +>super : Symbol(A, Decl(captureThisInSuperCall.ts, 0, 0)) +>test : Symbol(test, Decl(captureThisInSuperCall.ts, 5, 27)) +>this.someMethod : Symbol(someMethod, Decl(captureThisInSuperCall.ts, 5, 62)) +>this : Symbol(B, Decl(captureThisInSuperCall.ts, 2, 1)) +>someMethod : Symbol(someMethod, Decl(captureThisInSuperCall.ts, 5, 62)) + + someMethod() {} +>someMethod : Symbol(someMethod, Decl(captureThisInSuperCall.ts, 5, 62)) +} diff --git a/tests/baselines/reference/captureThisInSuperCall.types b/tests/baselines/reference/captureThisInSuperCall.types index ee31ed8aa7c37..faa7d2ad97e56 100644 --- a/tests/baselines/reference/captureThisInSuperCall.types +++ b/tests/baselines/reference/captureThisInSuperCall.types @@ -1,26 +1,26 @@ === tests/cases/compiler/captureThisInSuperCall.ts === class A { ->A : A, Symbol(A, Decl(captureThisInSuperCall.ts, 0, 0)) +>A : A constructor(p:any) {} ->p : any, Symbol(p, Decl(captureThisInSuperCall.ts, 1, 16)) +>p : any } class B extends A { ->B : B, Symbol(B, Decl(captureThisInSuperCall.ts, 2, 1)) ->A : A, Symbol(A, Decl(captureThisInSuperCall.ts, 0, 0)) +>B : B +>A : A constructor() { super({ test: () => this.someMethod()}); } >super({ test: () => this.someMethod()}) : void ->super : typeof A, Symbol(A, Decl(captureThisInSuperCall.ts, 0, 0)) +>super : typeof A >{ test: () => this.someMethod()} : { test: () => void; } ->test : () => void, Symbol(test, Decl(captureThisInSuperCall.ts, 5, 27)) +>test : () => void >() => this.someMethod() : () => void >this.someMethod() : void ->this.someMethod : () => void, Symbol(someMethod, Decl(captureThisInSuperCall.ts, 5, 62)) ->this : B, Symbol(B, Decl(captureThisInSuperCall.ts, 2, 1)) ->someMethod : () => void, Symbol(someMethod, Decl(captureThisInSuperCall.ts, 5, 62)) +>this.someMethod : () => void +>this : B +>someMethod : () => void someMethod() {} ->someMethod : () => void, Symbol(someMethod, Decl(captureThisInSuperCall.ts, 5, 62)) +>someMethod : () => void } diff --git a/tests/baselines/reference/castExpressionParentheses.symbols b/tests/baselines/reference/castExpressionParentheses.symbols new file mode 100644 index 0000000000000..7bc8169e40fe9 --- /dev/null +++ b/tests/baselines/reference/castExpressionParentheses.symbols @@ -0,0 +1,68 @@ +=== tests/cases/compiler/castExpressionParentheses.ts === +declare var a; +>a : Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) + +// parentheses should be omitted +// literals +({a:0}); +>a : Symbol(a, Decl(castExpressionParentheses.ts, 4, 7)) + +([1,3,]); +("string"); +(23.0); +(/regexp/g); +(false); +(true); +(null); +// names and dotted names +(this); +(this.x); +((a).x); +>a : Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) + +(a); +>a : Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) + +(a[0]); +>a : Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) + +(a.b["0"]); +>a : Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) + +(a()).x; +>a : Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) + +declare var A; +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +// should keep the parentheses in emit +(new A).foo; +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +(typeof A).x; +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +(-A).x; +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +new (A()); +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +(()=> {})(); +>Tany : Symbol(Tany, Decl(castExpressionParentheses.ts, 28, 2)) + +(function foo() { })(); +>foo : Symbol(foo, Decl(castExpressionParentheses.ts, 29, 6)) + +(-A).x; +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +// nested cast, should keep one pair of parenthese +((-A)).x; +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + +// nested parenthesized expression, should keep one pair of parenthese +((A)) +>A : Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) + + diff --git a/tests/baselines/reference/castExpressionParentheses.types b/tests/baselines/reference/castExpressionParentheses.types index 16f8b93aeecdd..ab563a4e8b70f 100644 --- a/tests/baselines/reference/castExpressionParentheses.types +++ b/tests/baselines/reference/castExpressionParentheses.types @@ -1,6 +1,6 @@ === tests/cases/compiler/castExpressionParentheses.ts === declare var a; ->a : any, Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) +>a : any // parentheses should be omitted // literals @@ -8,7 +8,7 @@ declare var a; >({a:0}) : any >{a:0} : any >{a:0} : { a: number; } ->a : number, Symbol(a, Decl(castExpressionParentheses.ts, 4, 7)) +>a : number >0 : number ([1,3,]); @@ -67,20 +67,20 @@ declare var a; >(a).x : any >(a) : any >a : any ->a : any, Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) +>a : any >x : any (a); >(a) : any >a : any >a : any ->a : any, Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) +>a : any (a[0]); >(a[0]) : any >a[0] : any >a[0] : any ->a : any, Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) +>a : any >0 : number (a.b["0"]); @@ -88,7 +88,7 @@ declare var a; >a.b["0"] : any >a.b["0"] : any >a.b : any ->a : any, Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) +>a : any >b : any >"0" : string @@ -97,11 +97,11 @@ declare var a; >(a()) : any >a() : any >a() : any ->a : any, Symbol(a, Decl(castExpressionParentheses.ts, 0, 11)) +>a : any >x : any declare var A; ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any // should keep the parentheses in emit (new A).foo; @@ -109,7 +109,7 @@ declare var A; >(new A) : any >new A : any >new A : any ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any >foo : any (typeof A).x; @@ -117,7 +117,7 @@ declare var A; >(typeof A) : any >typeof A : any >typeof A : string ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any >x : any (-A).x; @@ -125,7 +125,7 @@ declare var A; >(-A) : any >-A : any >-A : number ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any >x : any new (A()); @@ -133,20 +133,20 @@ new (A()); >(A()) : any >A() : any >A() : any ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any (()=> {})(); >(()=> {})() : void >(()=> {}) : () => void >()=> {} : () => void ->Tany : Tany, Symbol(Tany, Decl(castExpressionParentheses.ts, 28, 2)) +>Tany : Tany (function foo() { })(); >(function foo() { })() : any >(function foo() { }) : any >function foo() { } : any >function foo() { } : () => void ->foo : () => void, Symbol(foo, Decl(castExpressionParentheses.ts, 29, 6)) +>foo : () => void (-A).x; >(-A).x : any @@ -155,7 +155,7 @@ new (A()); >-A : number >-A : any >-A : number ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any >x : any // nested cast, should keep one pair of parenthese @@ -167,7 +167,7 @@ new (A()); >(-A) : any >-A : any >-A : number ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any >x : any // nested parenthesized expression, should keep one pair of parenthese @@ -175,6 +175,6 @@ new (A()); >((A)) : any >(A) : any >(A) : any ->A : any, Symbol(A, Decl(castExpressionParentheses.ts, 21, 11)) +>A : any diff --git a/tests/baselines/reference/castNewObjectBug.symbols b/tests/baselines/reference/castNewObjectBug.symbols new file mode 100644 index 0000000000000..3db7f7e065aee --- /dev/null +++ b/tests/baselines/reference/castNewObjectBug.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/castNewObjectBug.ts === +interface Foo { } +>Foo : Symbol(Foo, Decl(castNewObjectBug.ts, 0, 0)) + +var xx = new Object(); +>xx : Symbol(xx, Decl(castNewObjectBug.ts, 1, 3)) +>Foo : Symbol(Foo, Decl(castNewObjectBug.ts, 0, 0)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + diff --git a/tests/baselines/reference/castNewObjectBug.types b/tests/baselines/reference/castNewObjectBug.types index 011da5a6b4ef5..b98b1576061dc 100644 --- a/tests/baselines/reference/castNewObjectBug.types +++ b/tests/baselines/reference/castNewObjectBug.types @@ -1,11 +1,11 @@ === tests/cases/compiler/castNewObjectBug.ts === interface Foo { } ->Foo : Foo, Symbol(Foo, Decl(castNewObjectBug.ts, 0, 0)) +>Foo : Foo var xx = new Object(); ->xx : Foo, Symbol(xx, Decl(castNewObjectBug.ts, 1, 3)) +>xx : Foo > new Object() : Foo ->Foo : Foo, Symbol(Foo, Decl(castNewObjectBug.ts, 0, 0)) +>Foo : Foo >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor diff --git a/tests/baselines/reference/castParentheses.symbols b/tests/baselines/reference/castParentheses.symbols new file mode 100644 index 0000000000000..6447c8721e215 --- /dev/null +++ b/tests/baselines/reference/castParentheses.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/castParentheses.ts === +class a { +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) + + static b: any; +>b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +} + +var b = (a); +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) + +var b = (a).b; +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) + +var b = (a.b).c; +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a.b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) +>b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) + +var b = (a.b()).c; +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a.b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) +>b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) + +var b = (new a); +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) + +var b = (new a.b); +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a.b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) +>b : Symbol(a.b, Decl(castParentheses.ts, 0, 9)) + +var b = (new a).b +>b : Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>a : Symbol(a, Decl(castParentheses.ts, 0, 0)) + diff --git a/tests/baselines/reference/castParentheses.types b/tests/baselines/reference/castParentheses.types index 76e05c4cc88d9..f65a1d8f74813 100644 --- a/tests/baselines/reference/castParentheses.types +++ b/tests/baselines/reference/castParentheses.types @@ -1,68 +1,68 @@ === tests/cases/compiler/castParentheses.ts === class a { ->a : a, Symbol(a, Decl(castParentheses.ts, 0, 0)) +>a : a static b: any; ->b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>b : any } var b = (a); ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(a) : any >a : any ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) +>a : typeof a var b = (a).b; ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(a).b : any >(a) : any >a : any ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) +>a : typeof a >b : any var b = (a.b).c; ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(a.b).c : any >(a.b) : any >a.b : any ->a.b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) ->b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>a.b : any +>a : typeof a +>b : any >c : any var b = (a.b()).c; ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(a.b()).c : any >(a.b()) : any >a.b() : any >a.b() : any ->a.b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) ->b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>a.b : any +>a : typeof a +>b : any >c : any var b = (new a); ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(new a) : any >new a : any >new a : a ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) +>a : typeof a var b = (new a.b); ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(new a.b) : any >new a.b : any >new a.b : any ->a.b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) ->b : any, Symbol(a.b, Decl(castParentheses.ts, 0, 9)) +>a.b : any +>a : typeof a +>b : any var b = (new a).b ->b : any, Symbol(b, Decl(castParentheses.ts, 4, 3), Decl(castParentheses.ts, 5, 3), Decl(castParentheses.ts, 6, 3), Decl(castParentheses.ts, 7, 3), Decl(castParentheses.ts, 8, 3), Decl(castParentheses.ts, 9, 3), Decl(castParentheses.ts, 10, 3)) +>b : any >(new a).b : any >(new a) : any >new a : any >new a : a ->a : typeof a, Symbol(a, Decl(castParentheses.ts, 0, 0)) +>a : typeof a >b : any diff --git a/tests/baselines/reference/castTest.symbols b/tests/baselines/reference/castTest.symbols new file mode 100644 index 0000000000000..e0bf154820e52 --- /dev/null +++ b/tests/baselines/reference/castTest.symbols @@ -0,0 +1,85 @@ +=== tests/cases/compiler/castTest.ts === + +var x : any = 0; +>x : Symbol(x, Decl(castTest.ts, 1, 3)) + +var z = x; +>z : Symbol(z, Decl(castTest.ts, 2, 3)) +>x : Symbol(x, Decl(castTest.ts, 1, 3)) + +var y = x + z; +>y : Symbol(y, Decl(castTest.ts, 3, 3)) +>x : Symbol(x, Decl(castTest.ts, 1, 3)) +>z : Symbol(z, Decl(castTest.ts, 2, 3)) + +var a = 0; +>a : Symbol(a, Decl(castTest.ts, 5, 3)) + +var b = true; +>b : Symbol(b, Decl(castTest.ts, 6, 3)) + +var s = ""; +>s : Symbol(s, Decl(castTest.ts, 7, 3)) + +var ar = null; +>ar : Symbol(ar, Decl(castTest.ts, 9, 3)) + +var f = <(res : number) => void>null; +>f : Symbol(f, Decl(castTest.ts, 11, 3)) +>res : Symbol(res, Decl(castTest.ts, 11, 10)) + +declare class Point +>Point : Symbol(Point, Decl(castTest.ts, 11, 37)) +{ + x: number; +>x : Symbol(x, Decl(castTest.ts, 14, 1)) + + y: number; +>y : Symbol(y, Decl(castTest.ts, 15, 14)) + + add(dx: number, dy: number): Point; +>add : Symbol(add, Decl(castTest.ts, 16, 14)) +>dx : Symbol(dx, Decl(castTest.ts, 17, 8)) +>dy : Symbol(dy, Decl(castTest.ts, 17, 19)) +>Point : Symbol(Point, Decl(castTest.ts, 11, 37)) + + mult(p: Point): Point; +>mult : Symbol(mult, Decl(castTest.ts, 17, 39)) +>p : Symbol(p, Decl(castTest.ts, 18, 9)) +>Point : Symbol(Point, Decl(castTest.ts, 11, 37)) +>Point : Symbol(Point, Decl(castTest.ts, 11, 37)) + + constructor(x: number, y: number); +>x : Symbol(x, Decl(castTest.ts, 19, 16)) +>y : Symbol(y, Decl(castTest.ts, 19, 26)) +} + +var p_cast = ({ +>p_cast : Symbol(p_cast, Decl(castTest.ts, 22, 3)) +>Point : Symbol(Point, Decl(castTest.ts, 11, 37)) + + x: 0, +>x : Symbol(x, Decl(castTest.ts, 22, 23)) + + y: 0, +>y : Symbol(y, Decl(castTest.ts, 23, 9)) + + add: function(dx, dy) { +>add : Symbol(add, Decl(castTest.ts, 24, 9)) +>dx : Symbol(dx, Decl(castTest.ts, 25, 18)) +>dy : Symbol(dy, Decl(castTest.ts, 25, 21)) + + return new Point(this.x + dx, this.y + dy); +>Point : Symbol(Point, Decl(castTest.ts, 11, 37)) +>dx : Symbol(dx, Decl(castTest.ts, 25, 18)) +>dy : Symbol(dy, Decl(castTest.ts, 25, 21)) + + }, + mult: function(p) { return p; } +>mult : Symbol(mult, Decl(castTest.ts, 27, 6)) +>p : Symbol(p, Decl(castTest.ts, 28, 19)) +>p : Symbol(p, Decl(castTest.ts, 28, 19)) + +}) + + diff --git a/tests/baselines/reference/castTest.types b/tests/baselines/reference/castTest.types index b52e41d4c7718..35698219fd43f 100644 --- a/tests/baselines/reference/castTest.types +++ b/tests/baselines/reference/castTest.types @@ -1,113 +1,113 @@ === tests/cases/compiler/castTest.ts === var x : any = 0; ->x : any, Symbol(x, Decl(castTest.ts, 1, 3)) +>x : any >0 : number var z = x; ->z : number, Symbol(z, Decl(castTest.ts, 2, 3)) +>z : number > x : number ->x : any, Symbol(x, Decl(castTest.ts, 1, 3)) +>x : any var y = x + z; ->y : any, Symbol(y, Decl(castTest.ts, 3, 3)) +>y : any >x + z : any ->x : any, Symbol(x, Decl(castTest.ts, 1, 3)) ->z : number, Symbol(z, Decl(castTest.ts, 2, 3)) +>x : any +>z : number var a = 0; ->a : any, Symbol(a, Decl(castTest.ts, 5, 3)) +>a : any >0 : any >0 : number var b = true; ->b : boolean, Symbol(b, Decl(castTest.ts, 6, 3)) +>b : boolean >true : boolean >true : boolean var s = ""; ->s : string, Symbol(s, Decl(castTest.ts, 7, 3)) +>s : string >"" : string >"" : string var ar = null; ->ar : any[], Symbol(ar, Decl(castTest.ts, 9, 3)) +>ar : any[] >null : any[] >null : null var f = <(res : number) => void>null; ->f : (res: number) => void, Symbol(f, Decl(castTest.ts, 11, 3)) +>f : (res: number) => void ><(res : number) => void>null : (res: number) => void ->res : number, Symbol(res, Decl(castTest.ts, 11, 10)) +>res : number >null : null declare class Point ->Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) +>Point : Point { x: number; ->x : number, Symbol(x, Decl(castTest.ts, 14, 1)) +>x : number y: number; ->y : number, Symbol(y, Decl(castTest.ts, 15, 14)) +>y : number add(dx: number, dy: number): Point; ->add : (dx: number, dy: number) => Point, Symbol(add, Decl(castTest.ts, 16, 14)) ->dx : number, Symbol(dx, Decl(castTest.ts, 17, 8)) ->dy : number, Symbol(dy, Decl(castTest.ts, 17, 19)) ->Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) +>add : (dx: number, dy: number) => Point +>dx : number +>dy : number +>Point : Point mult(p: Point): Point; ->mult : (p: Point) => Point, Symbol(mult, Decl(castTest.ts, 17, 39)) ->p : Point, Symbol(p, Decl(castTest.ts, 18, 9)) ->Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) ->Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) +>mult : (p: Point) => Point +>p : Point +>Point : Point +>Point : Point constructor(x: number, y: number); ->x : number, Symbol(x, Decl(castTest.ts, 19, 16)) ->y : number, Symbol(y, Decl(castTest.ts, 19, 26)) +>x : number +>y : number } var p_cast = ({ ->p_cast : Point, Symbol(p_cast, Decl(castTest.ts, 22, 3)) +>p_cast : Point > ({ x: 0, y: 0, add: function(dx, dy) { return new Point(this.x + dx, this.y + dy); }, mult: function(p) { return p; }}) : Point ->Point : Point, Symbol(Point, Decl(castTest.ts, 11, 37)) +>Point : Point >({ x: 0, y: 0, add: function(dx, dy) { return new Point(this.x + dx, this.y + dy); }, mult: function(p) { return p; }}) : { x: number; y: number; add: (dx: number, dy: number) => Point; mult: (p: Point) => Point; } >{ x: 0, y: 0, add: function(dx, dy) { return new Point(this.x + dx, this.y + dy); }, mult: function(p) { return p; }} : { x: number; y: number; add: (dx: number, dy: number) => Point; mult: (p: Point) => Point; } x: 0, ->x : number, Symbol(x, Decl(castTest.ts, 22, 23)) +>x : number >0 : number y: 0, ->y : number, Symbol(y, Decl(castTest.ts, 23, 9)) +>y : number >0 : number add: function(dx, dy) { ->add : (dx: number, dy: number) => Point, Symbol(add, Decl(castTest.ts, 24, 9)) +>add : (dx: number, dy: number) => Point >function(dx, dy) { return new Point(this.x + dx, this.y + dy); } : (dx: number, dy: number) => Point ->dx : number, Symbol(dx, Decl(castTest.ts, 25, 18)) ->dy : number, Symbol(dy, Decl(castTest.ts, 25, 21)) +>dx : number +>dy : number return new Point(this.x + dx, this.y + dy); >new Point(this.x + dx, this.y + dy) : Point ->Point : typeof Point, Symbol(Point, Decl(castTest.ts, 11, 37)) +>Point : typeof Point >this.x + dx : any >this.x : any >this : any >x : any ->dx : number, Symbol(dx, Decl(castTest.ts, 25, 18)) +>dx : number >this.y + dy : any >this.y : any >this : any >y : any ->dy : number, Symbol(dy, Decl(castTest.ts, 25, 21)) +>dy : number }, mult: function(p) { return p; } ->mult : (p: Point) => Point, Symbol(mult, Decl(castTest.ts, 27, 6)) +>mult : (p: Point) => Point >function(p) { return p; } : (p: Point) => Point ->p : Point, Symbol(p, Decl(castTest.ts, 28, 19)) ->p : Point, Symbol(p, Decl(castTest.ts, 28, 19)) +>p : Point +>p : Point }) diff --git a/tests/baselines/reference/catch.symbols b/tests/baselines/reference/catch.symbols new file mode 100644 index 0000000000000..155d262af5889 --- /dev/null +++ b/tests/baselines/reference/catch.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/catch.ts === +function f() { +>f : Symbol(f, Decl(catch.ts, 0, 0)) + + try {} catch(e) { } +>e : Symbol(e, Decl(catch.ts, 1, 17)) + + try {} catch(e) { } +>e : Symbol(e, Decl(catch.ts, 2, 17)) +} + diff --git a/tests/baselines/reference/catch.types b/tests/baselines/reference/catch.types index 6f9cb03eabde5..bb0b2adbefebd 100644 --- a/tests/baselines/reference/catch.types +++ b/tests/baselines/reference/catch.types @@ -1,11 +1,11 @@ === tests/cases/compiler/catch.ts === function f() { ->f : () => void, Symbol(f, Decl(catch.ts, 0, 0)) +>f : () => void try {} catch(e) { } ->e : any, Symbol(e, Decl(catch.ts, 1, 17)) +>e : any try {} catch(e) { } ->e : any, Symbol(e, Decl(catch.ts, 2, 17)) +>e : any } diff --git a/tests/baselines/reference/cf.symbols b/tests/baselines/reference/cf.symbols new file mode 100644 index 0000000000000..9c2d73f513429 --- /dev/null +++ b/tests/baselines/reference/cf.symbols @@ -0,0 +1,111 @@ +=== tests/cases/compiler/cf.ts === +function f() { +>f : Symbol(f, Decl(cf.ts, 0, 0)) + + var z; +>z : Symbol(z, Decl(cf.ts, 1, 7)) + + var x=10; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + + var y=3; +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + L1: for (var i=0;i<19;i++) { +>i : Symbol(i, Decl(cf.ts, 5, 16)) +>i : Symbol(i, Decl(cf.ts, 5, 16)) +>i : Symbol(i, Decl(cf.ts, 5, 16)) + + if (y==7) { +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + continue L1; + x=11; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + } + if (y==3) { +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + y++; +>y : Symbol(y, Decl(cf.ts, 3, 7)) + } + else { + y--; +>y : Symbol(y, Decl(cf.ts, 3, 7)) + } + do { + y+=2; +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + if (y==20) { +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + break; + x=12; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + } + } while (y<41); +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + y++; +>y : Symbol(y, Decl(cf.ts, 3, 7)) + } + while (y>2) { +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + y=y>>1; +>y : Symbol(y, Decl(cf.ts, 3, 7)) +>y : Symbol(y, Decl(cf.ts, 3, 7)) + } + L2: try { + L3: if (xx : Symbol(x, Decl(cf.ts, 2, 7)) +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + break L2; + x=13; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + } + else { + break L3; + x=14; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + } + } + catch (e) { +>e : Symbol(e, Decl(cf.ts, 38, 11)) + + x++; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + } + finally { + x+=3; +>x : Symbol(x, Decl(cf.ts, 2, 7)) + } + y++; +>y : Symbol(y, Decl(cf.ts, 3, 7)) + + for (var k=0;k<10;k++) { +>k : Symbol(k, Decl(cf.ts, 45, 12)) +>k : Symbol(k, Decl(cf.ts, 45, 12)) +>k : Symbol(k, Decl(cf.ts, 45, 12)) + + z; +>z : Symbol(z, Decl(cf.ts, 1, 7)) + + break; + } + for (k=0;k<10;k++) { +>k : Symbol(k, Decl(cf.ts, 45, 12)) +>k : Symbol(k, Decl(cf.ts, 45, 12)) +>k : Symbol(k, Decl(cf.ts, 45, 12)) + + if (k==6) { +>k : Symbol(k, Decl(cf.ts, 45, 12)) + + continue; + } + break; + } +} + diff --git a/tests/baselines/reference/cf.types b/tests/baselines/reference/cf.types index 9c5efed38617c..397e3469ece2e 100644 --- a/tests/baselines/reference/cf.types +++ b/tests/baselines/reference/cf.types @@ -1,31 +1,31 @@ === tests/cases/compiler/cf.ts === function f() { ->f : () => void, Symbol(f, Decl(cf.ts, 0, 0)) +>f : () => void var z; ->z : any, Symbol(z, Decl(cf.ts, 1, 7)) +>z : any var x=10; ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number >10 : number var y=3; ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >3 : number L1: for (var i=0;i<19;i++) { >L1 : any ->i : number, Symbol(i, Decl(cf.ts, 5, 16)) +>i : number >0 : number >i<19 : boolean ->i : number, Symbol(i, Decl(cf.ts, 5, 16)) +>i : number >19 : number >i++ : number ->i : number, Symbol(i, Decl(cf.ts, 5, 16)) +>i : number if (y==7) { >y==7 : boolean ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >7 : number continue L1; @@ -33,59 +33,59 @@ function f() { x=11; >x=11 : number ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number >11 : number } if (y==3) { >y==3 : boolean ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >3 : number y++; >y++ : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number } else { y--; >y-- : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number } do { y+=2; >y+=2 : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >2 : number if (y==20) { >y==20 : boolean ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >20 : number break; x=12; >x=12 : number ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number >12 : number } } while (y<41); >y<41 : boolean ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >41 : number y++; >y++ : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number } while (y>2) { >y>2 : boolean ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >2 : number y=y>>1; >y=y>>1 : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >y>>1 : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number >1 : number } L2: try { @@ -94,15 +94,15 @@ function f() { L3: if (xL3 : any >xx : number, Symbol(x, Decl(cf.ts, 2, 7)) ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>x : number +>y : number break L2; >L2 : any x=13; >x=13 : number ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number >13 : number } else { @@ -111,54 +111,54 @@ function f() { x=14; >x=14 : number ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number >14 : number } } catch (e) { ->e : any, Symbol(e, Decl(cf.ts, 38, 11)) +>e : any x++; >x++ : number ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number } finally { x+=3; >x+=3 : number ->x : number, Symbol(x, Decl(cf.ts, 2, 7)) +>x : number >3 : number } y++; >y++ : number ->y : number, Symbol(y, Decl(cf.ts, 3, 7)) +>y : number for (var k=0;k<10;k++) { ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number >0 : number >k<10 : boolean ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number >10 : number >k++ : number ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number z; ->z : any, Symbol(z, Decl(cf.ts, 1, 7)) +>z : any break; } for (k=0;k<10;k++) { >k=0 : number ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number >0 : number >k<10 : boolean ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number >10 : number >k++ : number ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number if (k==6) { >k==6 : boolean ->k : number, Symbol(k, Decl(cf.ts, 45, 12)) +>k : number >6 : number continue; diff --git a/tests/baselines/reference/chainedAssignment2.symbols b/tests/baselines/reference/chainedAssignment2.symbols new file mode 100644 index 0000000000000..84eb8428a64f3 --- /dev/null +++ b/tests/baselines/reference/chainedAssignment2.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/chainedAssignment2.ts === +var a: string; +>a : Symbol(a, Decl(chainedAssignment2.ts, 0, 3)) + +var b: number; +>b : Symbol(b, Decl(chainedAssignment2.ts, 1, 3)) + +var c: boolean; +>c : Symbol(c, Decl(chainedAssignment2.ts, 2, 3)) + +var d: Date; +>d : Symbol(d, Decl(chainedAssignment2.ts, 3, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var e: RegExp; +>e : Symbol(e, Decl(chainedAssignment2.ts, 4, 3)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +a = b = c = d = e = null; +>a : Symbol(a, Decl(chainedAssignment2.ts, 0, 3)) +>b : Symbol(b, Decl(chainedAssignment2.ts, 1, 3)) +>c : Symbol(c, Decl(chainedAssignment2.ts, 2, 3)) +>d : Symbol(d, Decl(chainedAssignment2.ts, 3, 3)) +>e : Symbol(e, Decl(chainedAssignment2.ts, 4, 3)) + + diff --git a/tests/baselines/reference/chainedAssignment2.types b/tests/baselines/reference/chainedAssignment2.types index e1bfdd9f97d38..c53c64143d9d4 100644 --- a/tests/baselines/reference/chainedAssignment2.types +++ b/tests/baselines/reference/chainedAssignment2.types @@ -1,32 +1,32 @@ === tests/cases/compiler/chainedAssignment2.ts === var a: string; ->a : string, Symbol(a, Decl(chainedAssignment2.ts, 0, 3)) +>a : string var b: number; ->b : number, Symbol(b, Decl(chainedAssignment2.ts, 1, 3)) +>b : number var c: boolean; ->c : boolean, Symbol(c, Decl(chainedAssignment2.ts, 2, 3)) +>c : boolean var d: Date; ->d : Date, Symbol(d, Decl(chainedAssignment2.ts, 3, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>d : Date +>Date : Date var e: RegExp; ->e : RegExp, Symbol(e, Decl(chainedAssignment2.ts, 4, 3)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>e : RegExp +>RegExp : RegExp a = b = c = d = e = null; >a = b = c = d = e = null : null ->a : string, Symbol(a, Decl(chainedAssignment2.ts, 0, 3)) +>a : string >b = c = d = e = null : null ->b : number, Symbol(b, Decl(chainedAssignment2.ts, 1, 3)) +>b : number >c = d = e = null : null ->c : boolean, Symbol(c, Decl(chainedAssignment2.ts, 2, 3)) +>c : boolean >d = e = null : null ->d : Date, Symbol(d, Decl(chainedAssignment2.ts, 3, 3)) +>d : Date >e = null : null ->e : RegExp, Symbol(e, Decl(chainedAssignment2.ts, 4, 3)) +>e : RegExp >null : null diff --git a/tests/baselines/reference/chainedImportAlias.symbols b/tests/baselines/reference/chainedImportAlias.symbols new file mode 100644 index 0000000000000..3aebb4502f8f4 --- /dev/null +++ b/tests/baselines/reference/chainedImportAlias.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/chainedImportAlias_file1.ts === +import x = require('chainedImportAlias_file0'); +>x : Symbol(x, Decl(chainedImportAlias_file1.ts, 0, 0)) + +import y = x; +>y : Symbol(y, Decl(chainedImportAlias_file1.ts, 0, 47)) +>x : Symbol(x, Decl(chainedImportAlias_file0.ts, 0, 0)) + +y.m.foo(); +>y.m.foo : Symbol(x.m.foo, Decl(chainedImportAlias_file0.ts, 0, 17)) +>y.m : Symbol(x.m, Decl(chainedImportAlias_file0.ts, 0, 0)) +>y : Symbol(y, Decl(chainedImportAlias_file1.ts, 0, 47)) +>m : Symbol(x.m, Decl(chainedImportAlias_file0.ts, 0, 0)) +>foo : Symbol(x.m.foo, Decl(chainedImportAlias_file0.ts, 0, 17)) + +=== tests/cases/compiler/chainedImportAlias_file0.ts === +export module m { +>m : Symbol(m, Decl(chainedImportAlias_file0.ts, 0, 0)) + + export function foo() { } +>foo : Symbol(foo, Decl(chainedImportAlias_file0.ts, 0, 17)) +} + diff --git a/tests/baselines/reference/chainedImportAlias.types b/tests/baselines/reference/chainedImportAlias.types index 93b505c4033ec..1435776fff251 100644 --- a/tests/baselines/reference/chainedImportAlias.types +++ b/tests/baselines/reference/chainedImportAlias.types @@ -1,24 +1,24 @@ === tests/cases/compiler/chainedImportAlias_file1.ts === import x = require('chainedImportAlias_file0'); ->x : typeof x, Symbol(x, Decl(chainedImportAlias_file1.ts, 0, 0)) +>x : typeof x import y = x; ->y : typeof x, Symbol(y, Decl(chainedImportAlias_file1.ts, 0, 47)) ->x : typeof x, Symbol(x, Decl(chainedImportAlias_file0.ts, 0, 0)) +>y : typeof x +>x : typeof x y.m.foo(); >y.m.foo() : void ->y.m.foo : () => void, Symbol(x.m.foo, Decl(chainedImportAlias_file0.ts, 0, 17)) ->y.m : typeof x.m, Symbol(x.m, Decl(chainedImportAlias_file0.ts, 0, 0)) ->y : typeof x, Symbol(y, Decl(chainedImportAlias_file1.ts, 0, 47)) ->m : typeof x.m, Symbol(x.m, Decl(chainedImportAlias_file0.ts, 0, 0)) ->foo : () => void, Symbol(x.m.foo, Decl(chainedImportAlias_file0.ts, 0, 17)) +>y.m.foo : () => void +>y.m : typeof x.m +>y : typeof x +>m : typeof x.m +>foo : () => void === tests/cases/compiler/chainedImportAlias_file0.ts === export module m { ->m : typeof m, Symbol(m, Decl(chainedImportAlias_file0.ts, 0, 0)) +>m : typeof m export function foo() { } ->foo : () => void, Symbol(foo, Decl(chainedImportAlias_file0.ts, 0, 17)) +>foo : () => void } diff --git a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.symbols b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.symbols new file mode 100644 index 0000000000000..5eb563d3ef615 --- /dev/null +++ b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.symbols @@ -0,0 +1,67 @@ +=== tests/cases/compiler/chainedSpecializationToObjectTypeLiteral.ts === +interface Sequence { +>Sequence : Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) + + each(iterator: (value: T) => void): void; +>each : Symbol(each, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 23)) +>iterator : Symbol(iterator, Decl(chainedSpecializationToObjectTypeLiteral.ts, 1, 9)) +>value : Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 1, 20)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) + + map(iterator: (value: T) => U): Sequence; +>map : Symbol(map, Decl(chainedSpecializationToObjectTypeLiteral.ts, 1, 45)) +>U : Symbol(U, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 8)) +>iterator : Symbol(iterator, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 11)) +>value : Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 22)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>U : Symbol(U, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 8)) +>Sequence : Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) +>U : Symbol(U, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 8)) + + filter(iterator: (value: T) => boolean): Sequence; +>filter : Symbol(filter, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 51)) +>iterator : Symbol(iterator, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 11)) +>value : Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 22)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>Sequence : Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) + + groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: T[]; }>; +>groupBy : Symbol(groupBy, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 57)) +>K : Symbol(K, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 12)) +>keySelector : Symbol(keySelector, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 15)) +>value : Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 29)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>K : Symbol(K, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 12)) +>Sequence : Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) +>key : Symbol(key, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 56)) +>K : Symbol(K, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 12)) +>items : Symbol(items, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 64)) +>T : Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +} + +var s: Sequence; +>s : Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 7, 3)) +>Sequence : Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) + +var s2 = s.groupBy(s => s.length); +>s2 : Symbol(s2, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 3)) +>s.groupBy : Symbol(Sequence.groupBy, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 57)) +>s : Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 7, 3)) +>groupBy : Symbol(Sequence.groupBy, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 57)) +>s : Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 19)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + +var s3 = s2.each(x => { x.key /* Type is K, should be number */ }); +>s3 : Symbol(s3, Decl(chainedSpecializationToObjectTypeLiteral.ts, 9, 3)) +>s2.each : Symbol(Sequence.each, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 23)) +>s2 : Symbol(s2, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 3)) +>each : Symbol(Sequence.each, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 23)) +>x : Symbol(x, Decl(chainedSpecializationToObjectTypeLiteral.ts, 9, 17)) +>x.key : Symbol(key, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 56)) +>x : Symbol(x, Decl(chainedSpecializationToObjectTypeLiteral.ts, 9, 17)) +>key : Symbol(key, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 56)) + diff --git a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types index 249e79d19fc9e..b76b19a724d62 100644 --- a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types +++ b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types @@ -1,71 +1,71 @@ === tests/cases/compiler/chainedSpecializationToObjectTypeLiteral.ts === interface Sequence { ->Sequence : Sequence, Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>Sequence : Sequence +>T : T each(iterator: (value: T) => void): void; ->each : (iterator: (value: T) => void) => void, Symbol(each, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 23)) ->iterator : (value: T) => void, Symbol(iterator, Decl(chainedSpecializationToObjectTypeLiteral.ts, 1, 9)) ->value : T, Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 1, 20)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>each : (iterator: (value: T) => void) => void +>iterator : (value: T) => void +>value : T +>T : T map(iterator: (value: T) => U): Sequence; ->map : (iterator: (value: T) => U) => Sequence, Symbol(map, Decl(chainedSpecializationToObjectTypeLiteral.ts, 1, 45)) ->U : U, Symbol(U, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 8)) ->iterator : (value: T) => U, Symbol(iterator, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 11)) ->value : T, Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 22)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) ->U : U, Symbol(U, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 8)) ->Sequence : Sequence, Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) ->U : U, Symbol(U, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 8)) +>map : (iterator: (value: T) => U) => Sequence +>U : U +>iterator : (value: T) => U +>value : T +>T : T +>U : U +>Sequence : Sequence +>U : U filter(iterator: (value: T) => boolean): Sequence; ->filter : (iterator: (value: T) => boolean) => Sequence, Symbol(filter, Decl(chainedSpecializationToObjectTypeLiteral.ts, 2, 51)) ->iterator : (value: T) => boolean, Symbol(iterator, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 11)) ->value : T, Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 22)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) ->Sequence : Sequence, Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>filter : (iterator: (value: T) => boolean) => Sequence +>iterator : (value: T) => boolean +>value : T +>T : T +>Sequence : Sequence +>T : T groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: T[]; }>; ->groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: T[]; }>, Symbol(groupBy, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 57)) ->K : K, Symbol(K, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 12)) ->keySelector : (value: T) => K, Symbol(keySelector, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 15)) ->value : T, Symbol(value, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 29)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) ->K : K, Symbol(K, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 12)) ->Sequence : Sequence, Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) ->key : K, Symbol(key, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 56)) ->K : K, Symbol(K, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 12)) ->items : T[], Symbol(items, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 64)) ->T : T, Symbol(T, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 19)) +>groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: T[]; }> +>K : K +>keySelector : (value: T) => K +>value : T +>T : T +>K : K +>Sequence : Sequence +>key : K +>K : K +>items : T[] +>T : T } var s: Sequence; ->s : Sequence, Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 7, 3)) ->Sequence : Sequence, Symbol(Sequence, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 0)) +>s : Sequence +>Sequence : Sequence var s2 = s.groupBy(s => s.length); ->s2 : Sequence<{ key: number; items: string[]; }>, Symbol(s2, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 3)) +>s2 : Sequence<{ key: number; items: string[]; }> >s.groupBy(s => s.length) : Sequence<{ key: number; items: string[]; }> ->s.groupBy : (keySelector: (value: string) => K) => Sequence<{ key: K; items: string[]; }>, Symbol(Sequence.groupBy, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 57)) ->s : Sequence, Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 7, 3)) ->groupBy : (keySelector: (value: string) => K) => Sequence<{ key: K; items: string[]; }>, Symbol(Sequence.groupBy, Decl(chainedSpecializationToObjectTypeLiteral.ts, 3, 57)) +>s.groupBy : (keySelector: (value: string) => K) => Sequence<{ key: K; items: string[]; }> +>s : Sequence +>groupBy : (keySelector: (value: string) => K) => Sequence<{ key: K; items: string[]; }> >s => s.length : (s: string) => number ->s : string, Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 19)) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 19)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : string +>s.length : number +>s : string +>length : number var s3 = s2.each(x => { x.key /* Type is K, should be number */ }); ->s3 : void, Symbol(s3, Decl(chainedSpecializationToObjectTypeLiteral.ts, 9, 3)) +>s3 : void >s2.each(x => { x.key /* Type is K, should be number */ }) : void ->s2.each : (iterator: (value: { key: number; items: string[]; }) => void) => void, Symbol(Sequence.each, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 23)) ->s2 : Sequence<{ key: number; items: string[]; }>, Symbol(s2, Decl(chainedSpecializationToObjectTypeLiteral.ts, 8, 3)) ->each : (iterator: (value: { key: number; items: string[]; }) => void) => void, Symbol(Sequence.each, Decl(chainedSpecializationToObjectTypeLiteral.ts, 0, 23)) +>s2.each : (iterator: (value: { key: number; items: string[]; }) => void) => void +>s2 : Sequence<{ key: number; items: string[]; }> +>each : (iterator: (value: { key: number; items: string[]; }) => void) => void >x => { x.key /* Type is K, should be number */ } : (x: { key: number; items: string[]; }) => void ->x : { key: number; items: string[]; }, Symbol(x, Decl(chainedSpecializationToObjectTypeLiteral.ts, 9, 17)) ->x.key : number, Symbol(key, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 56)) ->x : { key: number; items: string[]; }, Symbol(x, Decl(chainedSpecializationToObjectTypeLiteral.ts, 9, 17)) ->key : number, Symbol(key, Decl(chainedSpecializationToObjectTypeLiteral.ts, 4, 56)) +>x : { key: number; items: string[]; } +>x.key : number +>x : { key: number; items: string[]; } +>key : number diff --git a/tests/baselines/reference/checkInfiniteExpansionTermination.symbols b/tests/baselines/reference/checkInfiniteExpansionTermination.symbols new file mode 100644 index 0000000000000..52ba8ad698e42 --- /dev/null +++ b/tests/baselines/reference/checkInfiniteExpansionTermination.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/checkInfiniteExpansionTermination.ts === +// Regression test for #1002 +// Before fix this code would cause infinite loop + +interface IObservable { +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 3, 22)) + + n: IObservable; // Needed, must be T[] +>n : Symbol(n, Decl(checkInfiniteExpansionTermination.ts, 3, 26)) +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 3, 22)) +} + +// Needed +interface ISubject extends IObservable { } +>ISubject : Symbol(ISubject, Decl(checkInfiniteExpansionTermination.ts, 5, 1)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 8, 19)) +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 8, 19)) + +interface Foo { x } +>Foo : Symbol(Foo, Decl(checkInfiniteExpansionTermination.ts, 8, 48)) +>x : Symbol(x, Decl(checkInfiniteExpansionTermination.ts, 10, 15)) + +interface Bar { y } +>Bar : Symbol(Bar, Decl(checkInfiniteExpansionTermination.ts, 10, 19)) +>y : Symbol(y, Decl(checkInfiniteExpansionTermination.ts, 11, 15)) + +var values: IObservable; +>values : Symbol(values, Decl(checkInfiniteExpansionTermination.ts, 13, 3)) +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(checkInfiniteExpansionTermination.ts, 8, 48)) + +var values2: ISubject; +>values2 : Symbol(values2, Decl(checkInfiniteExpansionTermination.ts, 14, 3)) +>ISubject : Symbol(ISubject, Decl(checkInfiniteExpansionTermination.ts, 5, 1)) +>Bar : Symbol(Bar, Decl(checkInfiniteExpansionTermination.ts, 10, 19)) + +values = values2; +>values : Symbol(values, Decl(checkInfiniteExpansionTermination.ts, 13, 3)) +>values2 : Symbol(values2, Decl(checkInfiniteExpansionTermination.ts, 14, 3)) + diff --git a/tests/baselines/reference/checkInfiniteExpansionTermination.types b/tests/baselines/reference/checkInfiniteExpansionTermination.types index d575bb37d771d..bd4858126ddb6 100644 --- a/tests/baselines/reference/checkInfiniteExpansionTermination.types +++ b/tests/baselines/reference/checkInfiniteExpansionTermination.types @@ -3,42 +3,42 @@ // Before fix this code would cause infinite loop interface IObservable { ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 3, 22)) +>IObservable : IObservable +>T : T n: IObservable; // Needed, must be T[] ->n : IObservable, Symbol(n, Decl(checkInfiniteExpansionTermination.ts, 3, 26)) ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 3, 22)) +>n : IObservable +>IObservable : IObservable +>T : T } // Needed interface ISubject extends IObservable { } ->ISubject : ISubject, Symbol(ISubject, Decl(checkInfiniteExpansionTermination.ts, 5, 1)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 8, 19)) ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 8, 19)) +>ISubject : ISubject +>T : T +>IObservable : IObservable +>T : T interface Foo { x } ->Foo : Foo, Symbol(Foo, Decl(checkInfiniteExpansionTermination.ts, 8, 48)) ->x : any, Symbol(x, Decl(checkInfiniteExpansionTermination.ts, 10, 15)) +>Foo : Foo +>x : any interface Bar { y } ->Bar : Bar, Symbol(Bar, Decl(checkInfiniteExpansionTermination.ts, 10, 19)) ->y : any, Symbol(y, Decl(checkInfiniteExpansionTermination.ts, 11, 15)) +>Bar : Bar +>y : any var values: IObservable; ->values : IObservable, Symbol(values, Decl(checkInfiniteExpansionTermination.ts, 13, 3)) ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0)) ->Foo : Foo, Symbol(Foo, Decl(checkInfiniteExpansionTermination.ts, 8, 48)) +>values : IObservable +>IObservable : IObservable +>Foo : Foo var values2: ISubject; ->values2 : ISubject, Symbol(values2, Decl(checkInfiniteExpansionTermination.ts, 14, 3)) ->ISubject : ISubject, Symbol(ISubject, Decl(checkInfiniteExpansionTermination.ts, 5, 1)) ->Bar : Bar, Symbol(Bar, Decl(checkInfiniteExpansionTermination.ts, 10, 19)) +>values2 : ISubject +>ISubject : ISubject +>Bar : Bar values = values2; >values = values2 : ISubject ->values : IObservable, Symbol(values, Decl(checkInfiniteExpansionTermination.ts, 13, 3)) ->values2 : ISubject, Symbol(values2, Decl(checkInfiniteExpansionTermination.ts, 14, 3)) +>values : IObservable +>values2 : ISubject diff --git a/tests/baselines/reference/checkInfiniteExpansionTermination2.symbols b/tests/baselines/reference/checkInfiniteExpansionTermination2.symbols new file mode 100644 index 0000000000000..c4fe17a09a648 --- /dev/null +++ b/tests/baselines/reference/checkInfiniteExpansionTermination2.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/checkInfiniteExpansionTermination2.ts === +// Regression test for #1002 +// Before fix this code would cause infinite loop + +interface IObservable { +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 3, 22)) + + n: IObservable; +>n : Symbol(n, Decl(checkInfiniteExpansionTermination2.ts, 3, 26)) +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 3, 22)) +} +interface ISubject extends IObservable { } +>ISubject : Symbol(ISubject, Decl(checkInfiniteExpansionTermination2.ts, 5, 1)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 6, 19)) +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 6, 19)) + +declare function combineLatest(x: IObservable[]): void; +>combineLatest : Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) +>TOther : Symbol(TOther, Decl(checkInfiniteExpansionTermination2.ts, 8, 31)) +>x : Symbol(x, Decl(checkInfiniteExpansionTermination2.ts, 8, 39)) +>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) +>TOther : Symbol(TOther, Decl(checkInfiniteExpansionTermination2.ts, 8, 31)) + +declare function combineLatest(): void; +>combineLatest : Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) + +function fn() { +>fn : Symbol(fn, Decl(checkInfiniteExpansionTermination2.ts, 9, 39)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 11, 12)) + + var values: ISubject[] = []; +>values : Symbol(values, Decl(checkInfiniteExpansionTermination2.ts, 12, 7)) +>ISubject : Symbol(ISubject, Decl(checkInfiniteExpansionTermination2.ts, 5, 1)) + + // Hang when using , but not + combineLatest(values); +>combineLatest : Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) +>T : Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 11, 12)) +>values : Symbol(values, Decl(checkInfiniteExpansionTermination2.ts, 12, 7)) +} + diff --git a/tests/baselines/reference/checkInfiniteExpansionTermination2.types b/tests/baselines/reference/checkInfiniteExpansionTermination2.types index ff96b8c78513b..fc81e1c9304a9 100644 --- a/tests/baselines/reference/checkInfiniteExpansionTermination2.types +++ b/tests/baselines/reference/checkInfiniteExpansionTermination2.types @@ -3,44 +3,44 @@ // Before fix this code would cause infinite loop interface IObservable { ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 3, 22)) +>IObservable : IObservable +>T : T n: IObservable; ->n : IObservable, Symbol(n, Decl(checkInfiniteExpansionTermination2.ts, 3, 26)) ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 3, 22)) +>n : IObservable +>IObservable : IObservable +>T : T } interface ISubject extends IObservable { } ->ISubject : ISubject, Symbol(ISubject, Decl(checkInfiniteExpansionTermination2.ts, 5, 1)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 6, 19)) ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 6, 19)) +>ISubject : ISubject +>T : T +>IObservable : IObservable +>T : T declare function combineLatest(x: IObservable[]): void; ->combineLatest : { (x: IObservable[]): void; (): void; }, Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) ->TOther : TOther, Symbol(TOther, Decl(checkInfiniteExpansionTermination2.ts, 8, 31)) ->x : IObservable[], Symbol(x, Decl(checkInfiniteExpansionTermination2.ts, 8, 39)) ->IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) ->TOther : TOther, Symbol(TOther, Decl(checkInfiniteExpansionTermination2.ts, 8, 31)) +>combineLatest : { (x: IObservable[]): void; (): void; } +>TOther : TOther +>x : IObservable[] +>IObservable : IObservable +>TOther : TOther declare function combineLatest(): void; ->combineLatest : { (x: IObservable[]): void; (): void; }, Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) +>combineLatest : { (x: IObservable[]): void; (): void; } function fn() { ->fn : () => void, Symbol(fn, Decl(checkInfiniteExpansionTermination2.ts, 9, 39)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 11, 12)) +>fn : () => void +>T : T var values: ISubject[] = []; ->values : ISubject[], Symbol(values, Decl(checkInfiniteExpansionTermination2.ts, 12, 7)) ->ISubject : ISubject, Symbol(ISubject, Decl(checkInfiniteExpansionTermination2.ts, 5, 1)) +>values : ISubject[] +>ISubject : ISubject >[] : undefined[] // Hang when using , but not combineLatest(values); >combineLatest(values) : void ->combineLatest : { (x: IObservable[]): void; (): void; }, Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) ->T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 11, 12)) ->values : ISubject[], Symbol(values, Decl(checkInfiniteExpansionTermination2.ts, 12, 7)) +>combineLatest : { (x: IObservable[]): void; (): void; } +>T : T +>values : ISubject[] } diff --git a/tests/baselines/reference/checkInterfaceBases.symbols b/tests/baselines/reference/checkInterfaceBases.symbols new file mode 100644 index 0000000000000..6b5f987b0bce3 --- /dev/null +++ b/tests/baselines/reference/checkInterfaceBases.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/app.ts === +/// +interface SecondEvent { +>SecondEvent : Symbol(SecondEvent, Decl(app.ts, 0, 0)) + + data: any; +>data : Symbol(data, Decl(app.ts, 1, 23)) +} +interface Third extends JQueryEventObjectTest, SecondEvent {} +>Third : Symbol(Third, Decl(app.ts, 3, 1)) +>JQueryEventObjectTest : Symbol(JQueryEventObjectTest, Decl(jquery.d.ts, 0, 0)) +>SecondEvent : Symbol(SecondEvent, Decl(app.ts, 0, 0)) + +=== tests/cases/compiler/jquery.d.ts === +interface JQueryEventObjectTest { +>JQueryEventObjectTest : Symbol(JQueryEventObjectTest, Decl(jquery.d.ts, 0, 0)) + + data: any; +>data : Symbol(data, Decl(jquery.d.ts, 0, 33)) + + which: number; +>which : Symbol(which, Decl(jquery.d.ts, 1, 14)) + + metaKey: any; +>metaKey : Symbol(metaKey, Decl(jquery.d.ts, 2, 18)) +} + diff --git a/tests/baselines/reference/checkInterfaceBases.types b/tests/baselines/reference/checkInterfaceBases.types index 46509dd206694..3e9107bbd6e11 100644 --- a/tests/baselines/reference/checkInterfaceBases.types +++ b/tests/baselines/reference/checkInterfaceBases.types @@ -1,27 +1,27 @@ === tests/cases/compiler/app.ts === /// interface SecondEvent { ->SecondEvent : SecondEvent, Symbol(SecondEvent, Decl(app.ts, 0, 0)) +>SecondEvent : SecondEvent data: any; ->data : any, Symbol(data, Decl(app.ts, 1, 23)) +>data : any } interface Third extends JQueryEventObjectTest, SecondEvent {} ->Third : Third, Symbol(Third, Decl(app.ts, 3, 1)) ->JQueryEventObjectTest : JQueryEventObjectTest, Symbol(JQueryEventObjectTest, Decl(jquery.d.ts, 0, 0)) ->SecondEvent : SecondEvent, Symbol(SecondEvent, Decl(app.ts, 0, 0)) +>Third : Third +>JQueryEventObjectTest : JQueryEventObjectTest +>SecondEvent : SecondEvent === tests/cases/compiler/jquery.d.ts === interface JQueryEventObjectTest { ->JQueryEventObjectTest : JQueryEventObjectTest, Symbol(JQueryEventObjectTest, Decl(jquery.d.ts, 0, 0)) +>JQueryEventObjectTest : JQueryEventObjectTest data: any; ->data : any, Symbol(data, Decl(jquery.d.ts, 0, 33)) +>data : any which: number; ->which : number, Symbol(which, Decl(jquery.d.ts, 1, 14)) +>which : number metaKey: any; ->metaKey : any, Symbol(metaKey, Decl(jquery.d.ts, 2, 18)) +>metaKey : any } diff --git a/tests/baselines/reference/circularImportAlias.symbols b/tests/baselines/reference/circularImportAlias.symbols new file mode 100644 index 0000000000000..6eaa4a7467e0e --- /dev/null +++ b/tests/baselines/reference/circularImportAlias.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/internalModules/importDeclarations/circularImportAlias.ts === +// expected no error + +module B { +>B : Symbol(a.b, Decl(circularImportAlias.ts, 0, 0)) + + export import a = A; +>a : Symbol(a, Decl(circularImportAlias.ts, 2, 10)) +>A : Symbol(a, Decl(circularImportAlias.ts, 7, 1)) + + export class D extends a.C { +>D : Symbol(D, Decl(circularImportAlias.ts, 3, 24)) +>a.C : Symbol(a.C, Decl(circularImportAlias.ts, 9, 10)) +>a : Symbol(a, Decl(circularImportAlias.ts, 2, 10)) +>C : Symbol(a.C, Decl(circularImportAlias.ts, 9, 10)) + + id: number; +>id : Symbol(id, Decl(circularImportAlias.ts, 4, 32)) + } +} + +module A { +>A : Symbol(b.a, Decl(circularImportAlias.ts, 7, 1)) + + export class C { name: string } +>C : Symbol(C, Decl(circularImportAlias.ts, 9, 10)) +>name : Symbol(name, Decl(circularImportAlias.ts, 10, 20)) + + export import b = B; +>b : Symbol(b, Decl(circularImportAlias.ts, 10, 35)) +>B : Symbol(b, Decl(circularImportAlias.ts, 0, 0)) +} + +var c: { name: string }; +>c : Symbol(c, Decl(circularImportAlias.ts, 14, 3), Decl(circularImportAlias.ts, 15, 3)) +>name : Symbol(name, Decl(circularImportAlias.ts, 14, 8)) + +var c = new B.a.C(); +>c : Symbol(c, Decl(circularImportAlias.ts, 14, 3), Decl(circularImportAlias.ts, 15, 3)) +>B.a.C : Symbol(A.C, Decl(circularImportAlias.ts, 9, 10)) +>B.a : Symbol(B.a, Decl(circularImportAlias.ts, 2, 10)) +>B : Symbol(B, Decl(circularImportAlias.ts, 0, 0)) +>a : Symbol(B.a, Decl(circularImportAlias.ts, 2, 10)) +>C : Symbol(A.C, Decl(circularImportAlias.ts, 9, 10)) + + + diff --git a/tests/baselines/reference/circularImportAlias.types b/tests/baselines/reference/circularImportAlias.types index 6725d1dc603c3..3ab41f6187bc9 100644 --- a/tests/baselines/reference/circularImportAlias.types +++ b/tests/baselines/reference/circularImportAlias.types @@ -2,47 +2,47 @@ // expected no error module B { ->B : typeof a.b, Symbol(a.b, Decl(circularImportAlias.ts, 0, 0)) +>B : typeof a.b export import a = A; ->a : typeof a, Symbol(a, Decl(circularImportAlias.ts, 2, 10)) ->A : typeof a, Symbol(a, Decl(circularImportAlias.ts, 7, 1)) +>a : typeof a +>A : typeof a export class D extends a.C { ->D : D, Symbol(D, Decl(circularImportAlias.ts, 3, 24)) ->a.C : any, Symbol(a.C, Decl(circularImportAlias.ts, 9, 10)) ->a : typeof a, Symbol(a, Decl(circularImportAlias.ts, 2, 10)) ->C : a.C, Symbol(a.C, Decl(circularImportAlias.ts, 9, 10)) +>D : D +>a.C : any +>a : typeof a +>C : a.C id: number; ->id : number, Symbol(id, Decl(circularImportAlias.ts, 4, 32)) +>id : number } } module A { ->A : typeof b.a, Symbol(b.a, Decl(circularImportAlias.ts, 7, 1)) +>A : typeof b.a export class C { name: string } ->C : C, Symbol(C, Decl(circularImportAlias.ts, 9, 10)) ->name : string, Symbol(name, Decl(circularImportAlias.ts, 10, 20)) +>C : C +>name : string export import b = B; ->b : typeof b, Symbol(b, Decl(circularImportAlias.ts, 10, 35)) ->B : typeof b, Symbol(b, Decl(circularImportAlias.ts, 0, 0)) +>b : typeof b +>B : typeof b } var c: { name: string }; ->c : { name: string; }, Symbol(c, Decl(circularImportAlias.ts, 14, 3), Decl(circularImportAlias.ts, 15, 3)) ->name : string, Symbol(name, Decl(circularImportAlias.ts, 14, 8)) +>c : { name: string; } +>name : string var c = new B.a.C(); ->c : { name: string; }, Symbol(c, Decl(circularImportAlias.ts, 14, 3), Decl(circularImportAlias.ts, 15, 3)) +>c : { name: string; } >new B.a.C() : A.C ->B.a.C : typeof A.C, Symbol(A.C, Decl(circularImportAlias.ts, 9, 10)) ->B.a : typeof A, Symbol(B.a, Decl(circularImportAlias.ts, 2, 10)) ->B : typeof B, Symbol(B, Decl(circularImportAlias.ts, 0, 0)) ->a : typeof A, Symbol(B.a, Decl(circularImportAlias.ts, 2, 10)) ->C : typeof A.C, Symbol(A.C, Decl(circularImportAlias.ts, 9, 10)) +>B.a.C : typeof A.C +>B.a : typeof A +>B : typeof B +>a : typeof A +>C : typeof A.C diff --git a/tests/baselines/reference/classAppearsToHaveMembersOfObject.symbols b/tests/baselines/reference/classAppearsToHaveMembersOfObject.symbols new file mode 100644 index 0000000000000..c035b17bcc66e --- /dev/null +++ b/tests/baselines/reference/classAppearsToHaveMembersOfObject.symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classAppearsToHaveMembersOfObject.ts === +class C { foo: string; } +>C : Symbol(C, Decl(classAppearsToHaveMembersOfObject.ts, 0, 0)) +>foo : Symbol(foo, Decl(classAppearsToHaveMembersOfObject.ts, 0, 9)) + +var c: C; +>c : Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) +>C : Symbol(C, Decl(classAppearsToHaveMembersOfObject.ts, 0, 0)) + +var r = c.toString(); +>r : Symbol(r, Decl(classAppearsToHaveMembersOfObject.ts, 3, 3)) +>c.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c : Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r2 = c.hasOwnProperty(''); +>r2 : Symbol(r2, Decl(classAppearsToHaveMembersOfObject.ts, 4, 3)) +>c.hasOwnProperty : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>c : Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) +>hasOwnProperty : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) + +var o: Object = c; +>o : Symbol(o, Decl(classAppearsToHaveMembersOfObject.ts, 5, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>c : Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) + +var o2: {} = c; +>o2 : Symbol(o2, Decl(classAppearsToHaveMembersOfObject.ts, 6, 3)) +>c : Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) + diff --git a/tests/baselines/reference/classAppearsToHaveMembersOfObject.types b/tests/baselines/reference/classAppearsToHaveMembersOfObject.types index 38db87360b63f..65c37e7dfeb47 100644 --- a/tests/baselines/reference/classAppearsToHaveMembersOfObject.types +++ b/tests/baselines/reference/classAppearsToHaveMembersOfObject.types @@ -1,33 +1,33 @@ === tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classAppearsToHaveMembersOfObject.ts === class C { foo: string; } ->C : C, Symbol(C, Decl(classAppearsToHaveMembersOfObject.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(classAppearsToHaveMembersOfObject.ts, 0, 9)) +>C : C +>foo : string var c: C; ->c : C, Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) ->C : C, Symbol(C, Decl(classAppearsToHaveMembersOfObject.ts, 0, 0)) +>c : C +>C : C var r = c.toString(); ->r : string, Symbol(r, Decl(classAppearsToHaveMembersOfObject.ts, 3, 3)) +>r : string >c.toString() : string ->c.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->c : C, Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c.toString : () => string +>c : C +>toString : () => string var r2 = c.hasOwnProperty(''); ->r2 : boolean, Symbol(r2, Decl(classAppearsToHaveMembersOfObject.ts, 4, 3)) +>r2 : boolean >c.hasOwnProperty('') : boolean ->c.hasOwnProperty : (v: string) => boolean, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) ->c : C, Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) ->hasOwnProperty : (v: string) => boolean, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>c.hasOwnProperty : (v: string) => boolean +>c : C +>hasOwnProperty : (v: string) => boolean >'' : string var o: Object = c; ->o : Object, Symbol(o, Decl(classAppearsToHaveMembersOfObject.ts, 5, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->c : C, Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) +>o : Object +>Object : Object +>c : C var o2: {} = c; ->o2 : {}, Symbol(o2, Decl(classAppearsToHaveMembersOfObject.ts, 6, 3)) ->c : C, Symbol(c, Decl(classAppearsToHaveMembersOfObject.ts, 2, 3)) +>o2 : {} +>c : C diff --git a/tests/baselines/reference/classConstructorParametersAccessibility3.symbols b/tests/baselines/reference/classConstructorParametersAccessibility3.symbols new file mode 100644 index 0000000000000..b2888528e7e94 --- /dev/null +++ b/tests/baselines/reference/classConstructorParametersAccessibility3.symbols @@ -0,0 +1,35 @@ +=== tests/cases/conformance/classes/constructorDeclarations/classConstructorParametersAccessibility3.ts === +class Base { +>Base : Symbol(Base, Decl(classConstructorParametersAccessibility3.ts, 0, 0)) + + constructor(protected p: number) { } +>p : Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 1, 16)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(classConstructorParametersAccessibility3.ts, 2, 1)) +>Base : Symbol(Base, Decl(classConstructorParametersAccessibility3.ts, 0, 0)) + + constructor(public p: number) { +>p : Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) + + super(p); +>super : Symbol(Base, Decl(classConstructorParametersAccessibility3.ts, 0, 0)) +>p : Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) + + this.p; // OK +>this.p : Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) +>this : Symbol(Derived, Decl(classConstructorParametersAccessibility3.ts, 2, 1)) +>p : Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) + } +} + +var d: Derived; +>d : Symbol(d, Decl(classConstructorParametersAccessibility3.ts, 11, 3)) +>Derived : Symbol(Derived, Decl(classConstructorParametersAccessibility3.ts, 2, 1)) + +d.p; // public, OK +>d.p : Symbol(Derived.p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) +>d : Symbol(d, Decl(classConstructorParametersAccessibility3.ts, 11, 3)) +>p : Symbol(Derived.p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) + diff --git a/tests/baselines/reference/classConstructorParametersAccessibility3.types b/tests/baselines/reference/classConstructorParametersAccessibility3.types index c0d94febc747b..3372044569cad 100644 --- a/tests/baselines/reference/classConstructorParametersAccessibility3.types +++ b/tests/baselines/reference/classConstructorParametersAccessibility3.types @@ -1,36 +1,36 @@ === tests/cases/conformance/classes/constructorDeclarations/classConstructorParametersAccessibility3.ts === class Base { ->Base : Base, Symbol(Base, Decl(classConstructorParametersAccessibility3.ts, 0, 0)) +>Base : Base constructor(protected p: number) { } ->p : number, Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 1, 16)) +>p : number } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(classConstructorParametersAccessibility3.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(classConstructorParametersAccessibility3.ts, 0, 0)) +>Derived : Derived +>Base : Base constructor(public p: number) { ->p : number, Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) +>p : number super(p); >super(p) : void ->super : typeof Base, Symbol(Base, Decl(classConstructorParametersAccessibility3.ts, 0, 0)) ->p : number, Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) +>super : typeof Base +>p : number this.p; // OK ->this.p : number, Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) ->this : Derived, Symbol(Derived, Decl(classConstructorParametersAccessibility3.ts, 2, 1)) ->p : number, Symbol(p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) +>this.p : number +>this : Derived +>p : number } } var d: Derived; ->d : Derived, Symbol(d, Decl(classConstructorParametersAccessibility3.ts, 11, 3)) ->Derived : Derived, Symbol(Derived, Decl(classConstructorParametersAccessibility3.ts, 2, 1)) +>d : Derived +>Derived : Derived d.p; // public, OK ->d.p : number, Symbol(Derived.p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) ->d : Derived, Symbol(d, Decl(classConstructorParametersAccessibility3.ts, 11, 3)) ->p : number, Symbol(Derived.p, Decl(classConstructorParametersAccessibility3.ts, 5, 16)) +>d.p : number +>d : Derived +>p : number diff --git a/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.symbols b/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.symbols new file mode 100644 index 0000000000000..c30ed9c674dc1 --- /dev/null +++ b/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/classDeclarationMergedInModuleWithContinuation.ts === +module M { +>M : Symbol(M, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 0), Decl(classDeclarationMergedInModuleWithContinuation.ts, 5, 1)) + + export class N { } +>N : Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) + + export module N { +>N : Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) + + export var v = 0; +>v : Symbol(v, Decl(classDeclarationMergedInModuleWithContinuation.ts, 3, 18)) + } +} + +module M { +>M : Symbol(M, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 0), Decl(classDeclarationMergedInModuleWithContinuation.ts, 5, 1)) + + export class O extends M.N { +>O : Symbol(O, Decl(classDeclarationMergedInModuleWithContinuation.ts, 7, 10)) +>M.N : Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) +>M : Symbol(M, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 0), Decl(classDeclarationMergedInModuleWithContinuation.ts, 5, 1)) +>N : Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) + } +} diff --git a/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.types b/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.types index 126f60a8b4d4e..f1be8e6d26815 100644 --- a/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.types +++ b/tests/baselines/reference/classDeclarationMergedInModuleWithContinuation.types @@ -1,26 +1,26 @@ === tests/cases/compiler/classDeclarationMergedInModuleWithContinuation.ts === module M { ->M : typeof M, Symbol(M, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 0), Decl(classDeclarationMergedInModuleWithContinuation.ts, 5, 1)) +>M : typeof M export class N { } ->N : N, Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) +>N : N export module N { ->N : typeof N, Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) +>N : typeof N export var v = 0; ->v : number, Symbol(v, Decl(classDeclarationMergedInModuleWithContinuation.ts, 3, 18)) +>v : number >0 : number } } module M { ->M : typeof M, Symbol(M, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 0), Decl(classDeclarationMergedInModuleWithContinuation.ts, 5, 1)) +>M : typeof M export class O extends M.N { ->O : O, Symbol(O, Decl(classDeclarationMergedInModuleWithContinuation.ts, 7, 10)) ->M.N : any, Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) ->M : typeof M, Symbol(M, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 0), Decl(classDeclarationMergedInModuleWithContinuation.ts, 5, 1)) ->N : N, Symbol(N, Decl(classDeclarationMergedInModuleWithContinuation.ts, 0, 10), Decl(classDeclarationMergedInModuleWithContinuation.ts, 1, 22)) +>O : O +>M.N : any +>M : typeof M +>N : N } } diff --git a/tests/baselines/reference/classDoesNotDependOnPrivateMember.symbols b/tests/baselines/reference/classDoesNotDependOnPrivateMember.symbols new file mode 100644 index 0000000000000..ca042499c05f8 --- /dev/null +++ b/tests/baselines/reference/classDoesNotDependOnPrivateMember.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/declarationEmit/classDoesNotDependOnPrivateMember.ts === +module M { +>M : Symbol(M, Decl(classDoesNotDependOnPrivateMember.ts, 0, 0)) + + interface I { } +>I : Symbol(I, Decl(classDoesNotDependOnPrivateMember.ts, 0, 10)) + + export class C { +>C : Symbol(C, Decl(classDoesNotDependOnPrivateMember.ts, 1, 19)) + + private x: I; +>x : Symbol(x, Decl(classDoesNotDependOnPrivateMember.ts, 2, 20)) +>I : Symbol(I, Decl(classDoesNotDependOnPrivateMember.ts, 0, 10)) + } +} diff --git a/tests/baselines/reference/classDoesNotDependOnPrivateMember.types b/tests/baselines/reference/classDoesNotDependOnPrivateMember.types index 2da01d7d96940..213c46ca1d584 100644 --- a/tests/baselines/reference/classDoesNotDependOnPrivateMember.types +++ b/tests/baselines/reference/classDoesNotDependOnPrivateMember.types @@ -1,15 +1,15 @@ === tests/cases/conformance/declarationEmit/classDoesNotDependOnPrivateMember.ts === module M { ->M : typeof M, Symbol(M, Decl(classDoesNotDependOnPrivateMember.ts, 0, 0)) +>M : typeof M interface I { } ->I : I, Symbol(I, Decl(classDoesNotDependOnPrivateMember.ts, 0, 10)) +>I : I export class C { ->C : C, Symbol(C, Decl(classDoesNotDependOnPrivateMember.ts, 1, 19)) +>C : C private x: I; ->x : I, Symbol(x, Decl(classDoesNotDependOnPrivateMember.ts, 2, 20)) ->I : I, Symbol(I, Decl(classDoesNotDependOnPrivateMember.ts, 0, 10)) +>x : I +>I : I } } diff --git a/tests/baselines/reference/classExtendingClass.symbols b/tests/baselines/reference/classExtendingClass.symbols new file mode 100644 index 0000000000000..3c79887d1635e --- /dev/null +++ b/tests/baselines/reference/classExtendingClass.symbols @@ -0,0 +1,108 @@ +=== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingClass.ts === +class C { +>C : Symbol(C, Decl(classExtendingClass.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(classExtendingClass.ts, 0, 9)) + + thing() { } +>thing : Symbol(thing, Decl(classExtendingClass.ts, 1, 16)) + + static other() { } +>other : Symbol(C.other, Decl(classExtendingClass.ts, 2, 15)) +} + +class D extends C { +>D : Symbol(D, Decl(classExtendingClass.ts, 4, 1)) +>C : Symbol(C, Decl(classExtendingClass.ts, 0, 0)) + + bar: string; +>bar : Symbol(bar, Decl(classExtendingClass.ts, 6, 19)) +} + +var d: D; +>d : Symbol(d, Decl(classExtendingClass.ts, 10, 3)) +>D : Symbol(D, Decl(classExtendingClass.ts, 4, 1)) + +var r = d.foo; +>r : Symbol(r, Decl(classExtendingClass.ts, 11, 3)) +>d.foo : Symbol(C.foo, Decl(classExtendingClass.ts, 0, 9)) +>d : Symbol(d, Decl(classExtendingClass.ts, 10, 3)) +>foo : Symbol(C.foo, Decl(classExtendingClass.ts, 0, 9)) + +var r2 = d.bar; +>r2 : Symbol(r2, Decl(classExtendingClass.ts, 12, 3)) +>d.bar : Symbol(D.bar, Decl(classExtendingClass.ts, 6, 19)) +>d : Symbol(d, Decl(classExtendingClass.ts, 10, 3)) +>bar : Symbol(D.bar, Decl(classExtendingClass.ts, 6, 19)) + +var r3 = d.thing(); +>r3 : Symbol(r3, Decl(classExtendingClass.ts, 13, 3)) +>d.thing : Symbol(C.thing, Decl(classExtendingClass.ts, 1, 16)) +>d : Symbol(d, Decl(classExtendingClass.ts, 10, 3)) +>thing : Symbol(C.thing, Decl(classExtendingClass.ts, 1, 16)) + +var r4 = D.other(); +>r4 : Symbol(r4, Decl(classExtendingClass.ts, 14, 3)) +>D.other : Symbol(C.other, Decl(classExtendingClass.ts, 2, 15)) +>D : Symbol(D, Decl(classExtendingClass.ts, 4, 1)) +>other : Symbol(C.other, Decl(classExtendingClass.ts, 2, 15)) + +class C2 { +>C2 : Symbol(C2, Decl(classExtendingClass.ts, 14, 19)) +>T : Symbol(T, Decl(classExtendingClass.ts, 16, 9)) + + foo: T; +>foo : Symbol(foo, Decl(classExtendingClass.ts, 16, 13)) +>T : Symbol(T, Decl(classExtendingClass.ts, 16, 9)) + + thing(x: T) { } +>thing : Symbol(thing, Decl(classExtendingClass.ts, 17, 11)) +>x : Symbol(x, Decl(classExtendingClass.ts, 18, 10)) +>T : Symbol(T, Decl(classExtendingClass.ts, 16, 9)) + + static other(x: T) { } +>other : Symbol(C2.other, Decl(classExtendingClass.ts, 18, 19)) +>T : Symbol(T, Decl(classExtendingClass.ts, 19, 17)) +>x : Symbol(x, Decl(classExtendingClass.ts, 19, 20)) +>T : Symbol(T, Decl(classExtendingClass.ts, 19, 17)) +} + +class D2 extends C2 { +>D2 : Symbol(D2, Decl(classExtendingClass.ts, 20, 1)) +>T : Symbol(T, Decl(classExtendingClass.ts, 22, 9)) +>C2 : Symbol(C2, Decl(classExtendingClass.ts, 14, 19)) +>T : Symbol(T, Decl(classExtendingClass.ts, 22, 9)) + + bar: string; +>bar : Symbol(bar, Decl(classExtendingClass.ts, 22, 27)) +} + +var d2: D2; +>d2 : Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) +>D2 : Symbol(D2, Decl(classExtendingClass.ts, 20, 1)) + +var r5 = d2.foo; +>r5 : Symbol(r5, Decl(classExtendingClass.ts, 27, 3)) +>d2.foo : Symbol(C2.foo, Decl(classExtendingClass.ts, 16, 13)) +>d2 : Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) +>foo : Symbol(C2.foo, Decl(classExtendingClass.ts, 16, 13)) + +var r6 = d2.bar; +>r6 : Symbol(r6, Decl(classExtendingClass.ts, 28, 3)) +>d2.bar : Symbol(D2.bar, Decl(classExtendingClass.ts, 22, 27)) +>d2 : Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) +>bar : Symbol(D2.bar, Decl(classExtendingClass.ts, 22, 27)) + +var r7 = d2.thing(''); +>r7 : Symbol(r7, Decl(classExtendingClass.ts, 29, 3)) +>d2.thing : Symbol(C2.thing, Decl(classExtendingClass.ts, 17, 11)) +>d2 : Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) +>thing : Symbol(C2.thing, Decl(classExtendingClass.ts, 17, 11)) + +var r8 = D2.other(1); +>r8 : Symbol(r8, Decl(classExtendingClass.ts, 30, 3)) +>D2.other : Symbol(C2.other, Decl(classExtendingClass.ts, 18, 19)) +>D2 : Symbol(D2, Decl(classExtendingClass.ts, 20, 1)) +>other : Symbol(C2.other, Decl(classExtendingClass.ts, 18, 19)) + diff --git a/tests/baselines/reference/classExtendingClass.types b/tests/baselines/reference/classExtendingClass.types index 25b4695c2411b..f91493e97fdf5 100644 --- a/tests/baselines/reference/classExtendingClass.types +++ b/tests/baselines/reference/classExtendingClass.types @@ -1,114 +1,114 @@ === tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingClass.ts === class C { ->C : C, Symbol(C, Decl(classExtendingClass.ts, 0, 0)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(classExtendingClass.ts, 0, 9)) +>foo : string thing() { } ->thing : () => void, Symbol(thing, Decl(classExtendingClass.ts, 1, 16)) +>thing : () => void static other() { } ->other : () => void, Symbol(C.other, Decl(classExtendingClass.ts, 2, 15)) +>other : () => void } class D extends C { ->D : D, Symbol(D, Decl(classExtendingClass.ts, 4, 1)) ->C : C, Symbol(C, Decl(classExtendingClass.ts, 0, 0)) +>D : D +>C : C bar: string; ->bar : string, Symbol(bar, Decl(classExtendingClass.ts, 6, 19)) +>bar : string } var d: D; ->d : D, Symbol(d, Decl(classExtendingClass.ts, 10, 3)) ->D : D, Symbol(D, Decl(classExtendingClass.ts, 4, 1)) +>d : D +>D : D var r = d.foo; ->r : string, Symbol(r, Decl(classExtendingClass.ts, 11, 3)) ->d.foo : string, Symbol(C.foo, Decl(classExtendingClass.ts, 0, 9)) ->d : D, Symbol(d, Decl(classExtendingClass.ts, 10, 3)) ->foo : string, Symbol(C.foo, Decl(classExtendingClass.ts, 0, 9)) +>r : string +>d.foo : string +>d : D +>foo : string var r2 = d.bar; ->r2 : string, Symbol(r2, Decl(classExtendingClass.ts, 12, 3)) ->d.bar : string, Symbol(D.bar, Decl(classExtendingClass.ts, 6, 19)) ->d : D, Symbol(d, Decl(classExtendingClass.ts, 10, 3)) ->bar : string, Symbol(D.bar, Decl(classExtendingClass.ts, 6, 19)) +>r2 : string +>d.bar : string +>d : D +>bar : string var r3 = d.thing(); ->r3 : void, Symbol(r3, Decl(classExtendingClass.ts, 13, 3)) +>r3 : void >d.thing() : void ->d.thing : () => void, Symbol(C.thing, Decl(classExtendingClass.ts, 1, 16)) ->d : D, Symbol(d, Decl(classExtendingClass.ts, 10, 3)) ->thing : () => void, Symbol(C.thing, Decl(classExtendingClass.ts, 1, 16)) +>d.thing : () => void +>d : D +>thing : () => void var r4 = D.other(); ->r4 : void, Symbol(r4, Decl(classExtendingClass.ts, 14, 3)) +>r4 : void >D.other() : void ->D.other : () => void, Symbol(C.other, Decl(classExtendingClass.ts, 2, 15)) ->D : typeof D, Symbol(D, Decl(classExtendingClass.ts, 4, 1)) ->other : () => void, Symbol(C.other, Decl(classExtendingClass.ts, 2, 15)) +>D.other : () => void +>D : typeof D +>other : () => void class C2 { ->C2 : C2, Symbol(C2, Decl(classExtendingClass.ts, 14, 19)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 16, 9)) +>C2 : C2 +>T : T foo: T; ->foo : T, Symbol(foo, Decl(classExtendingClass.ts, 16, 13)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 16, 9)) +>foo : T +>T : T thing(x: T) { } ->thing : (x: T) => void, Symbol(thing, Decl(classExtendingClass.ts, 17, 11)) ->x : T, Symbol(x, Decl(classExtendingClass.ts, 18, 10)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 16, 9)) +>thing : (x: T) => void +>x : T +>T : T static other(x: T) { } ->other : (x: T) => void, Symbol(C2.other, Decl(classExtendingClass.ts, 18, 19)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 19, 17)) ->x : T, Symbol(x, Decl(classExtendingClass.ts, 19, 20)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 19, 17)) +>other : (x: T) => void +>T : T +>x : T +>T : T } class D2 extends C2 { ->D2 : D2, Symbol(D2, Decl(classExtendingClass.ts, 20, 1)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 22, 9)) ->C2 : C2, Symbol(C2, Decl(classExtendingClass.ts, 14, 19)) ->T : T, Symbol(T, Decl(classExtendingClass.ts, 22, 9)) +>D2 : D2 +>T : T +>C2 : C2 +>T : T bar: string; ->bar : string, Symbol(bar, Decl(classExtendingClass.ts, 22, 27)) +>bar : string } var d2: D2; ->d2 : D2, Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) ->D2 : D2, Symbol(D2, Decl(classExtendingClass.ts, 20, 1)) +>d2 : D2 +>D2 : D2 var r5 = d2.foo; ->r5 : string, Symbol(r5, Decl(classExtendingClass.ts, 27, 3)) ->d2.foo : string, Symbol(C2.foo, Decl(classExtendingClass.ts, 16, 13)) ->d2 : D2, Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) ->foo : string, Symbol(C2.foo, Decl(classExtendingClass.ts, 16, 13)) +>r5 : string +>d2.foo : string +>d2 : D2 +>foo : string var r6 = d2.bar; ->r6 : string, Symbol(r6, Decl(classExtendingClass.ts, 28, 3)) ->d2.bar : string, Symbol(D2.bar, Decl(classExtendingClass.ts, 22, 27)) ->d2 : D2, Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) ->bar : string, Symbol(D2.bar, Decl(classExtendingClass.ts, 22, 27)) +>r6 : string +>d2.bar : string +>d2 : D2 +>bar : string var r7 = d2.thing(''); ->r7 : void, Symbol(r7, Decl(classExtendingClass.ts, 29, 3)) +>r7 : void >d2.thing('') : void ->d2.thing : (x: string) => void, Symbol(C2.thing, Decl(classExtendingClass.ts, 17, 11)) ->d2 : D2, Symbol(d2, Decl(classExtendingClass.ts, 26, 3)) ->thing : (x: string) => void, Symbol(C2.thing, Decl(classExtendingClass.ts, 17, 11)) +>d2.thing : (x: string) => void +>d2 : D2 +>thing : (x: string) => void >'' : string var r8 = D2.other(1); ->r8 : void, Symbol(r8, Decl(classExtendingClass.ts, 30, 3)) +>r8 : void >D2.other(1) : void ->D2.other : (x: T) => void, Symbol(C2.other, Decl(classExtendingClass.ts, 18, 19)) ->D2 : typeof D2, Symbol(D2, Decl(classExtendingClass.ts, 20, 1)) ->other : (x: T) => void, Symbol(C2.other, Decl(classExtendingClass.ts, 18, 19)) +>D2.other : (x: T) => void +>D2 : typeof D2 +>other : (x: T) => void >1 : number diff --git a/tests/baselines/reference/classExtendingQualifiedName2.symbols b/tests/baselines/reference/classExtendingQualifiedName2.symbols new file mode 100644 index 0000000000000..a4c335308173e --- /dev/null +++ b/tests/baselines/reference/classExtendingQualifiedName2.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/classExtendingQualifiedName2.ts === +module M { +>M : Symbol(M, Decl(classExtendingQualifiedName2.ts, 0, 0)) + + export class C { +>C : Symbol(C, Decl(classExtendingQualifiedName2.ts, 0, 10)) + } + + class D extends M.C { +>D : Symbol(D, Decl(classExtendingQualifiedName2.ts, 2, 5)) +>M.C : Symbol(C, Decl(classExtendingQualifiedName2.ts, 0, 10)) +>M : Symbol(M, Decl(classExtendingQualifiedName2.ts, 0, 0)) +>C : Symbol(C, Decl(classExtendingQualifiedName2.ts, 0, 10)) + } +} diff --git a/tests/baselines/reference/classExtendingQualifiedName2.types b/tests/baselines/reference/classExtendingQualifiedName2.types index e030aa1c5da1c..9f0c03db17d89 100644 --- a/tests/baselines/reference/classExtendingQualifiedName2.types +++ b/tests/baselines/reference/classExtendingQualifiedName2.types @@ -1,15 +1,15 @@ === tests/cases/compiler/classExtendingQualifiedName2.ts === module M { ->M : typeof M, Symbol(M, Decl(classExtendingQualifiedName2.ts, 0, 0)) +>M : typeof M export class C { ->C : C, Symbol(C, Decl(classExtendingQualifiedName2.ts, 0, 10)) +>C : C } class D extends M.C { ->D : D, Symbol(D, Decl(classExtendingQualifiedName2.ts, 2, 5)) ->M.C : any, Symbol(C, Decl(classExtendingQualifiedName2.ts, 0, 10)) ->M : typeof M, Symbol(M, Decl(classExtendingQualifiedName2.ts, 0, 0)) ->C : C, Symbol(C, Decl(classExtendingQualifiedName2.ts, 0, 10)) +>D : D +>M.C : any +>M : typeof M +>C : C } } diff --git a/tests/baselines/reference/classImplementingInterfaceIndexer.symbols b/tests/baselines/reference/classImplementingInterfaceIndexer.symbols new file mode 100644 index 0000000000000..17fb9f9734b72 --- /dev/null +++ b/tests/baselines/reference/classImplementingInterfaceIndexer.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/classImplementingInterfaceIndexer.ts === +interface I { +>I : Symbol(I, Decl(classImplementingInterfaceIndexer.ts, 0, 0)) + + [index: string]: { prop } +>index : Symbol(index, Decl(classImplementingInterfaceIndexer.ts, 1, 5)) +>prop : Symbol(prop, Decl(classImplementingInterfaceIndexer.ts, 1, 22)) +} +class A implements I { +>A : Symbol(A, Decl(classImplementingInterfaceIndexer.ts, 2, 1)) +>I : Symbol(I, Decl(classImplementingInterfaceIndexer.ts, 0, 0)) + + [index: string]: { prop } +>index : Symbol(index, Decl(classImplementingInterfaceIndexer.ts, 4, 5)) +>prop : Symbol(prop, Decl(classImplementingInterfaceIndexer.ts, 4, 22)) +} diff --git a/tests/baselines/reference/classImplementingInterfaceIndexer.types b/tests/baselines/reference/classImplementingInterfaceIndexer.types index ace7e67d2e699..58e2eb290919c 100644 --- a/tests/baselines/reference/classImplementingInterfaceIndexer.types +++ b/tests/baselines/reference/classImplementingInterfaceIndexer.types @@ -1,16 +1,16 @@ === tests/cases/compiler/classImplementingInterfaceIndexer.ts === interface I { ->I : I, Symbol(I, Decl(classImplementingInterfaceIndexer.ts, 0, 0)) +>I : I [index: string]: { prop } ->index : string, Symbol(index, Decl(classImplementingInterfaceIndexer.ts, 1, 5)) ->prop : any, Symbol(prop, Decl(classImplementingInterfaceIndexer.ts, 1, 22)) +>index : string +>prop : any } class A implements I { ->A : A, Symbol(A, Decl(classImplementingInterfaceIndexer.ts, 2, 1)) ->I : I, Symbol(I, Decl(classImplementingInterfaceIndexer.ts, 0, 0)) +>A : A +>I : I [index: string]: { prop } ->index : string, Symbol(index, Decl(classImplementingInterfaceIndexer.ts, 4, 5)) ->prop : any, Symbol(prop, Decl(classImplementingInterfaceIndexer.ts, 4, 22)) +>index : string +>prop : any } diff --git a/tests/baselines/reference/classImplementsClass1.symbols b/tests/baselines/reference/classImplementsClass1.symbols new file mode 100644 index 0000000000000..007f8b1741e9e --- /dev/null +++ b/tests/baselines/reference/classImplementsClass1.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/classImplementsClass1.ts === +class A { } +>A : Symbol(A, Decl(classImplementsClass1.ts, 0, 0)) + +class C implements A { } +>C : Symbol(C, Decl(classImplementsClass1.ts, 0, 11)) +>A : Symbol(A, Decl(classImplementsClass1.ts, 0, 0)) + diff --git a/tests/baselines/reference/classImplementsClass1.types b/tests/baselines/reference/classImplementsClass1.types index f806cd899c126..c9485a6b904f0 100644 --- a/tests/baselines/reference/classImplementsClass1.types +++ b/tests/baselines/reference/classImplementsClass1.types @@ -1,8 +1,8 @@ === tests/cases/compiler/classImplementsClass1.ts === class A { } ->A : A, Symbol(A, Decl(classImplementsClass1.ts, 0, 0)) +>A : A class C implements A { } ->C : C, Symbol(C, Decl(classImplementsClass1.ts, 0, 11)) ->A : A, Symbol(A, Decl(classImplementsClass1.ts, 0, 0)) +>C : C +>A : A diff --git a/tests/baselines/reference/classImplementsClass3.symbols b/tests/baselines/reference/classImplementsClass3.symbols new file mode 100644 index 0000000000000..a1c565c8d5329 --- /dev/null +++ b/tests/baselines/reference/classImplementsClass3.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/classImplementsClass3.ts === +class A { foo(): number { return 1; } } +>A : Symbol(A, Decl(classImplementsClass3.ts, 0, 0)) +>foo : Symbol(foo, Decl(classImplementsClass3.ts, 0, 9)) + +class C implements A { +>C : Symbol(C, Decl(classImplementsClass3.ts, 0, 39)) +>A : Symbol(A, Decl(classImplementsClass3.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(classImplementsClass3.ts, 1, 22)) + + return 1; + } +} + +class C2 extends A {} +>C2 : Symbol(C2, Decl(classImplementsClass3.ts, 5, 1)) +>A : Symbol(A, Decl(classImplementsClass3.ts, 0, 0)) + +// no errors +var c: C; +>c : Symbol(c, Decl(classImplementsClass3.ts, 10, 3)) +>C : Symbol(C, Decl(classImplementsClass3.ts, 0, 39)) + +var c2: C2; +>c2 : Symbol(c2, Decl(classImplementsClass3.ts, 11, 3)) +>C2 : Symbol(C2, Decl(classImplementsClass3.ts, 5, 1)) + +c = c2; +>c : Symbol(c, Decl(classImplementsClass3.ts, 10, 3)) +>c2 : Symbol(c2, Decl(classImplementsClass3.ts, 11, 3)) + +c2 = c; +>c2 : Symbol(c2, Decl(classImplementsClass3.ts, 11, 3)) +>c : Symbol(c, Decl(classImplementsClass3.ts, 10, 3)) + diff --git a/tests/baselines/reference/classImplementsClass3.types b/tests/baselines/reference/classImplementsClass3.types index 9115f49d44bf9..6f97a96a56e48 100644 --- a/tests/baselines/reference/classImplementsClass3.types +++ b/tests/baselines/reference/classImplementsClass3.types @@ -1,15 +1,15 @@ === tests/cases/compiler/classImplementsClass3.ts === class A { foo(): number { return 1; } } ->A : A, Symbol(A, Decl(classImplementsClass3.ts, 0, 0)) ->foo : () => number, Symbol(foo, Decl(classImplementsClass3.ts, 0, 9)) +>A : A +>foo : () => number >1 : number class C implements A { ->C : C, Symbol(C, Decl(classImplementsClass3.ts, 0, 39)) ->A : A, Symbol(A, Decl(classImplementsClass3.ts, 0, 0)) +>C : C +>A : A foo() { ->foo : () => number, Symbol(foo, Decl(classImplementsClass3.ts, 1, 22)) +>foo : () => number return 1; >1 : number @@ -17,25 +17,25 @@ class C implements A { } class C2 extends A {} ->C2 : C2, Symbol(C2, Decl(classImplementsClass3.ts, 5, 1)) ->A : A, Symbol(A, Decl(classImplementsClass3.ts, 0, 0)) +>C2 : C2 +>A : A // no errors var c: C; ->c : C, Symbol(c, Decl(classImplementsClass3.ts, 10, 3)) ->C : C, Symbol(C, Decl(classImplementsClass3.ts, 0, 39)) +>c : C +>C : C var c2: C2; ->c2 : C2, Symbol(c2, Decl(classImplementsClass3.ts, 11, 3)) ->C2 : C2, Symbol(C2, Decl(classImplementsClass3.ts, 5, 1)) +>c2 : C2 +>C2 : C2 c = c2; >c = c2 : C2 ->c : C, Symbol(c, Decl(classImplementsClass3.ts, 10, 3)) ->c2 : C2, Symbol(c2, Decl(classImplementsClass3.ts, 11, 3)) +>c : C +>c2 : C2 c2 = c; >c2 = c : C ->c2 : C2, Symbol(c2, Decl(classImplementsClass3.ts, 11, 3)) ->c : C, Symbol(c, Decl(classImplementsClass3.ts, 10, 3)) +>c2 : C2 +>c : C diff --git a/tests/baselines/reference/classImplementsImportedInterface.symbols b/tests/baselines/reference/classImplementsImportedInterface.symbols new file mode 100644 index 0000000000000..a629d3c005da1 --- /dev/null +++ b/tests/baselines/reference/classImplementsImportedInterface.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/classImplementsImportedInterface.ts === +module M1 { +>M1 : Symbol(M1, Decl(classImplementsImportedInterface.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(classImplementsImportedInterface.ts, 0, 11)) + + foo(); +>foo : Symbol(foo, Decl(classImplementsImportedInterface.ts, 1, 24)) + } +} + +module M2 { +>M2 : Symbol(M2, Decl(classImplementsImportedInterface.ts, 4, 1)) + + import T = M1.I; +>T : Symbol(T, Decl(classImplementsImportedInterface.ts, 6, 11)) +>M1 : Symbol(M1, Decl(classImplementsImportedInterface.ts, 0, 0)) +>I : Symbol(T, Decl(classImplementsImportedInterface.ts, 0, 11)) + + class C implements T { +>C : Symbol(C, Decl(classImplementsImportedInterface.ts, 7, 20)) +>T : Symbol(T, Decl(classImplementsImportedInterface.ts, 6, 11)) + + foo() {} +>foo : Symbol(foo, Decl(classImplementsImportedInterface.ts, 8, 26)) + } +} diff --git a/tests/baselines/reference/classImplementsImportedInterface.types b/tests/baselines/reference/classImplementsImportedInterface.types index 5c4a9833b6326..ce1c4e96e1806 100644 --- a/tests/baselines/reference/classImplementsImportedInterface.types +++ b/tests/baselines/reference/classImplementsImportedInterface.types @@ -1,28 +1,28 @@ === tests/cases/compiler/classImplementsImportedInterface.ts === module M1 { ->M1 : any, Symbol(M1, Decl(classImplementsImportedInterface.ts, 0, 0)) +>M1 : any export interface I { ->I : I, Symbol(I, Decl(classImplementsImportedInterface.ts, 0, 11)) +>I : I foo(); ->foo : () => any, Symbol(foo, Decl(classImplementsImportedInterface.ts, 1, 24)) +>foo : () => any } } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(classImplementsImportedInterface.ts, 4, 1)) +>M2 : typeof M2 import T = M1.I; ->T : any, Symbol(T, Decl(classImplementsImportedInterface.ts, 6, 11)) ->M1 : any, Symbol(M1, Decl(classImplementsImportedInterface.ts, 0, 0)) ->I : T, Symbol(T, Decl(classImplementsImportedInterface.ts, 0, 11)) +>T : any +>M1 : any +>I : T class C implements T { ->C : C, Symbol(C, Decl(classImplementsImportedInterface.ts, 7, 20)) ->T : T, Symbol(T, Decl(classImplementsImportedInterface.ts, 6, 11)) +>C : C +>T : T foo() {} ->foo : () => void, Symbol(foo, Decl(classImplementsImportedInterface.ts, 8, 26)) +>foo : () => void } } diff --git a/tests/baselines/reference/classIndexer.symbols b/tests/baselines/reference/classIndexer.symbols new file mode 100644 index 0000000000000..8274beda9308d --- /dev/null +++ b/tests/baselines/reference/classIndexer.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/classIndexer.ts === +class C123 { +>C123 : Symbol(C123, Decl(classIndexer.ts, 0, 0)) + + [s: string]: number; +>s : Symbol(s, Decl(classIndexer.ts, 1, 5)) + + constructor() { + } +} diff --git a/tests/baselines/reference/classIndexer.types b/tests/baselines/reference/classIndexer.types index 2804f729c5c2f..01eda961112ea 100644 --- a/tests/baselines/reference/classIndexer.types +++ b/tests/baselines/reference/classIndexer.types @@ -1,9 +1,9 @@ === tests/cases/compiler/classIndexer.ts === class C123 { ->C123 : C123, Symbol(C123, Decl(classIndexer.ts, 0, 0)) +>C123 : C123 [s: string]: number; ->s : string, Symbol(s, Decl(classIndexer.ts, 1, 5)) +>s : string constructor() { } diff --git a/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.symbols b/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.symbols new file mode 100644 index 0000000000000..585bae5b3c347 --- /dev/null +++ b/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/classMemberInitializerWithLamdaScoping5.ts === +declare var console: { +>console : Symbol(console, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 11)) + + log(message?: any, ...optionalParams: any[]): void; +>log : Symbol(log, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 22)) +>message : Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 1, 8)) +>optionalParams : Symbol(optionalParams, Decl(classMemberInitializerWithLamdaScoping5.ts, 1, 22)) + +}; +class Greeter { +>Greeter : Symbol(Greeter, Decl(classMemberInitializerWithLamdaScoping5.ts, 2, 2)) + + constructor(message: string) { +>message : Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 4, 16)) + } + + messageHandler = (message: string) => { +>messageHandler : Symbol(messageHandler, Decl(classMemberInitializerWithLamdaScoping5.ts, 5, 5)) +>message : Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 7, 22)) + + console.log(message); // This shouldnt be error +>console.log : Symbol(log, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 22)) +>console : Symbol(console, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 11)) +>log : Symbol(log, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 22)) +>message : Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 7, 22)) + } +} diff --git a/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.types b/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.types index 96826e8c0cc93..bff966e605fc3 100644 --- a/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.types +++ b/tests/baselines/reference/classMemberInitializerWithLamdaScoping5.types @@ -1,30 +1,30 @@ === tests/cases/compiler/classMemberInitializerWithLamdaScoping5.ts === declare var console: { ->console : { log(message?: any, ...optionalParams: any[]): void; }, Symbol(console, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 11)) +>console : { log(message?: any, ...optionalParams: any[]): void; } log(message?: any, ...optionalParams: any[]): void; ->log : (message?: any, ...optionalParams: any[]) => void, Symbol(log, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 22)) ->message : any, Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 1, 8)) ->optionalParams : any[], Symbol(optionalParams, Decl(classMemberInitializerWithLamdaScoping5.ts, 1, 22)) +>log : (message?: any, ...optionalParams: any[]) => void +>message : any +>optionalParams : any[] }; class Greeter { ->Greeter : Greeter, Symbol(Greeter, Decl(classMemberInitializerWithLamdaScoping5.ts, 2, 2)) +>Greeter : Greeter constructor(message: string) { ->message : string, Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 4, 16)) +>message : string } messageHandler = (message: string) => { ->messageHandler : (message: string) => void, Symbol(messageHandler, Decl(classMemberInitializerWithLamdaScoping5.ts, 5, 5)) +>messageHandler : (message: string) => void >(message: string) => { console.log(message); // This shouldnt be error } : (message: string) => void ->message : string, Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 7, 22)) +>message : string console.log(message); // This shouldnt be error >console.log(message) : void ->console.log : (message?: any, ...optionalParams: any[]) => void, Symbol(log, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 22)) ->console : { log(message?: any, ...optionalParams: any[]): void; }, Symbol(console, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 11)) ->log : (message?: any, ...optionalParams: any[]) => void, Symbol(log, Decl(classMemberInitializerWithLamdaScoping5.ts, 0, 22)) ->message : string, Symbol(message, Decl(classMemberInitializerWithLamdaScoping5.ts, 7, 22)) +>console.log : (message?: any, ...optionalParams: any[]) => void +>console : { log(message?: any, ...optionalParams: any[]): void; } +>log : (message?: any, ...optionalParams: any[]) => void +>message : string } } diff --git a/tests/baselines/reference/classMethodWithKeywordName1.symbols b/tests/baselines/reference/classMethodWithKeywordName1.symbols new file mode 100644 index 0000000000000..af280f41036c6 --- /dev/null +++ b/tests/baselines/reference/classMethodWithKeywordName1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/classMethodWithKeywordName1.ts === +class C { +>C : Symbol(C, Decl(classMethodWithKeywordName1.ts, 0, 0)) + + static try() {} +>try : Symbol(C.try, Decl(classMethodWithKeywordName1.ts, 0, 9)) +} diff --git a/tests/baselines/reference/classMethodWithKeywordName1.types b/tests/baselines/reference/classMethodWithKeywordName1.types index dadd62c4552cf..8ad128bdb002d 100644 --- a/tests/baselines/reference/classMethodWithKeywordName1.types +++ b/tests/baselines/reference/classMethodWithKeywordName1.types @@ -1,7 +1,7 @@ === tests/cases/compiler/classMethodWithKeywordName1.ts === class C { ->C : C, Symbol(C, Decl(classMethodWithKeywordName1.ts, 0, 0)) +>C : C static try() {} ->try : () => void, Symbol(C.try, Decl(classMethodWithKeywordName1.ts, 0, 9)) +>try : () => void } diff --git a/tests/baselines/reference/classOrder1.symbols b/tests/baselines/reference/classOrder1.symbols new file mode 100644 index 0000000000000..4f1541ba9cd3c --- /dev/null +++ b/tests/baselines/reference/classOrder1.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/classOrder1.ts === +class A { +>A : Symbol(A, Decl(classOrder1.ts, 0, 0)) + + public foo() { +>foo : Symbol(foo, Decl(classOrder1.ts, 0, 9)) + + /*WScript.Echo("Here!");*/ + } +} + +var a = new A(); +>a : Symbol(a, Decl(classOrder1.ts, 6, 3)) +>A : Symbol(A, Decl(classOrder1.ts, 0, 0)) + +a.foo(); +>a.foo : Symbol(A.foo, Decl(classOrder1.ts, 0, 9)) +>a : Symbol(a, Decl(classOrder1.ts, 6, 3)) +>foo : Symbol(A.foo, Decl(classOrder1.ts, 0, 9)) + + + diff --git a/tests/baselines/reference/classOrder1.types b/tests/baselines/reference/classOrder1.types index c5997c3689181..7019e53cbb7e3 100644 --- a/tests/baselines/reference/classOrder1.types +++ b/tests/baselines/reference/classOrder1.types @@ -1,24 +1,24 @@ === tests/cases/compiler/classOrder1.ts === class A { ->A : A, Symbol(A, Decl(classOrder1.ts, 0, 0)) +>A : A public foo() { ->foo : () => void, Symbol(foo, Decl(classOrder1.ts, 0, 9)) +>foo : () => void /*WScript.Echo("Here!");*/ } } var a = new A(); ->a : A, Symbol(a, Decl(classOrder1.ts, 6, 3)) +>a : A >new A() : A ->A : typeof A, Symbol(A, Decl(classOrder1.ts, 0, 0)) +>A : typeof A a.foo(); >a.foo() : void ->a.foo : () => void, Symbol(A.foo, Decl(classOrder1.ts, 0, 9)) ->a : A, Symbol(a, Decl(classOrder1.ts, 6, 3)) ->foo : () => void, Symbol(A.foo, Decl(classOrder1.ts, 0, 9)) +>a.foo : () => void +>a : A +>foo : () => void diff --git a/tests/baselines/reference/classOrder2.symbols b/tests/baselines/reference/classOrder2.symbols new file mode 100644 index 0000000000000..4ee49d269a9ef --- /dev/null +++ b/tests/baselines/reference/classOrder2.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/classOrder2.ts === + +class A extends B { +>A : Symbol(A, Decl(classOrder2.ts, 0, 0)) +>B : Symbol(B, Decl(classOrder2.ts, 5, 1)) + + foo() { this.bar(); } +>foo : Symbol(foo, Decl(classOrder2.ts, 1, 19)) +>this.bar : Symbol(B.bar, Decl(classOrder2.ts, 7, 9)) +>this : Symbol(A, Decl(classOrder2.ts, 0, 0)) +>bar : Symbol(B.bar, Decl(classOrder2.ts, 7, 9)) + +} + +class B { +>B : Symbol(B, Decl(classOrder2.ts, 5, 1)) + + bar() { } +>bar : Symbol(bar, Decl(classOrder2.ts, 7, 9)) + +} + + +var a = new A(); +>a : Symbol(a, Decl(classOrder2.ts, 14, 3)) +>A : Symbol(A, Decl(classOrder2.ts, 0, 0)) + +a.foo(); +>a.foo : Symbol(A.foo, Decl(classOrder2.ts, 1, 19)) +>a : Symbol(a, Decl(classOrder2.ts, 14, 3)) +>foo : Symbol(A.foo, Decl(classOrder2.ts, 1, 19)) + + diff --git a/tests/baselines/reference/classOrder2.types b/tests/baselines/reference/classOrder2.types index 8b17e63467fa9..07bd6ba45a571 100644 --- a/tests/baselines/reference/classOrder2.types +++ b/tests/baselines/reference/classOrder2.types @@ -1,36 +1,36 @@ === tests/cases/compiler/classOrder2.ts === class A extends B { ->A : A, Symbol(A, Decl(classOrder2.ts, 0, 0)) ->B : B, Symbol(B, Decl(classOrder2.ts, 5, 1)) +>A : A +>B : B foo() { this.bar(); } ->foo : () => void, Symbol(foo, Decl(classOrder2.ts, 1, 19)) +>foo : () => void >this.bar() : void ->this.bar : () => void, Symbol(B.bar, Decl(classOrder2.ts, 7, 9)) ->this : A, Symbol(A, Decl(classOrder2.ts, 0, 0)) ->bar : () => void, Symbol(B.bar, Decl(classOrder2.ts, 7, 9)) +>this.bar : () => void +>this : A +>bar : () => void } class B { ->B : B, Symbol(B, Decl(classOrder2.ts, 5, 1)) +>B : B bar() { } ->bar : () => void, Symbol(bar, Decl(classOrder2.ts, 7, 9)) +>bar : () => void } var a = new A(); ->a : A, Symbol(a, Decl(classOrder2.ts, 14, 3)) +>a : A >new A() : A ->A : typeof A, Symbol(A, Decl(classOrder2.ts, 0, 0)) +>A : typeof A a.foo(); >a.foo() : void ->a.foo : () => void, Symbol(A.foo, Decl(classOrder2.ts, 1, 19)) ->a : A, Symbol(a, Decl(classOrder2.ts, 14, 3)) ->foo : () => void, Symbol(A.foo, Decl(classOrder2.ts, 1, 19)) +>a.foo : () => void +>a : A +>foo : () => void diff --git a/tests/baselines/reference/classOrderBug.symbols b/tests/baselines/reference/classOrderBug.symbols new file mode 100644 index 0000000000000..9065909180b7c --- /dev/null +++ b/tests/baselines/reference/classOrderBug.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/classOrderBug.ts === +class bar { +>bar : Symbol(bar, Decl(classOrderBug.ts, 0, 0)) + + public baz: foo; +>baz : Symbol(baz, Decl(classOrderBug.ts, 0, 11)) +>foo : Symbol(foo, Decl(classOrderBug.ts, 10, 12)) + + constructor() { + + this.baz = new foo(); +>this.baz : Symbol(baz, Decl(classOrderBug.ts, 0, 11)) +>this : Symbol(bar, Decl(classOrderBug.ts, 0, 0)) +>baz : Symbol(baz, Decl(classOrderBug.ts, 0, 11)) +>foo : Symbol(foo, Decl(classOrderBug.ts, 10, 12)) + + } + +} + +class baz {} +>baz : Symbol(baz, Decl(classOrderBug.ts, 8, 1)) + +class foo extends baz {} +>foo : Symbol(foo, Decl(classOrderBug.ts, 10, 12)) +>baz : Symbol(baz, Decl(classOrderBug.ts, 8, 1)) + + + diff --git a/tests/baselines/reference/classOrderBug.types b/tests/baselines/reference/classOrderBug.types index f82534cde79a9..979b65b8008c2 100644 --- a/tests/baselines/reference/classOrderBug.types +++ b/tests/baselines/reference/classOrderBug.types @@ -1,31 +1,31 @@ === tests/cases/compiler/classOrderBug.ts === class bar { ->bar : bar, Symbol(bar, Decl(classOrderBug.ts, 0, 0)) +>bar : bar public baz: foo; ->baz : foo, Symbol(baz, Decl(classOrderBug.ts, 0, 11)) ->foo : foo, Symbol(foo, Decl(classOrderBug.ts, 10, 12)) +>baz : foo +>foo : foo constructor() { this.baz = new foo(); >this.baz = new foo() : foo ->this.baz : foo, Symbol(baz, Decl(classOrderBug.ts, 0, 11)) ->this : bar, Symbol(bar, Decl(classOrderBug.ts, 0, 0)) ->baz : foo, Symbol(baz, Decl(classOrderBug.ts, 0, 11)) +>this.baz : foo +>this : bar +>baz : foo >new foo() : foo ->foo : typeof foo, Symbol(foo, Decl(classOrderBug.ts, 10, 12)) +>foo : typeof foo } } class baz {} ->baz : baz, Symbol(baz, Decl(classOrderBug.ts, 8, 1)) +>baz : baz class foo extends baz {} ->foo : foo, Symbol(foo, Decl(classOrderBug.ts, 10, 12)) ->baz : baz, Symbol(baz, Decl(classOrderBug.ts, 8, 1)) +>foo : foo +>baz : baz diff --git a/tests/baselines/reference/classSideInheritance2.symbols b/tests/baselines/reference/classSideInheritance2.symbols new file mode 100644 index 0000000000000..697aba99832b2 --- /dev/null +++ b/tests/baselines/reference/classSideInheritance2.symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/classSideInheritance2.ts === +interface IText { +>IText : Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) + + foo: number; +>foo : Symbol(foo, Decl(classSideInheritance2.ts, 0, 17)) +} + +interface TextSpan {} +>TextSpan : Symbol(TextSpan, Decl(classSideInheritance2.ts, 2, 1)) + +class SubText extends TextBase { +>SubText : Symbol(SubText, Decl(classSideInheritance2.ts, 4, 21)) +>TextBase : Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) + + constructor(text: IText, span: TextSpan) { +>text : Symbol(text, Decl(classSideInheritance2.ts, 8, 20)) +>IText : Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) +>span : Symbol(span, Decl(classSideInheritance2.ts, 8, 32)) +>TextSpan : Symbol(TextSpan, Decl(classSideInheritance2.ts, 2, 1)) + + super(); +>super : Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) + } +} + +class TextBase implements IText { +>TextBase : Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) +>IText : Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) + + public foo: number; +>foo : Symbol(foo, Decl(classSideInheritance2.ts, 13, 33)) + + public subText(span: TextSpan): IText { +>subText : Symbol(subText, Decl(classSideInheritance2.ts, 14, 27)) +>span : Symbol(span, Decl(classSideInheritance2.ts, 15, 23)) +>TextSpan : Symbol(TextSpan, Decl(classSideInheritance2.ts, 2, 1)) +>IText : Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) + + return new SubText(this, span); +>SubText : Symbol(SubText, Decl(classSideInheritance2.ts, 4, 21)) +>this : Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) +>span : Symbol(span, Decl(classSideInheritance2.ts, 15, 23)) + } +} diff --git a/tests/baselines/reference/classSideInheritance2.types b/tests/baselines/reference/classSideInheritance2.types index f0557c0b6eb17..9c2d632ebbb18 100644 --- a/tests/baselines/reference/classSideInheritance2.types +++ b/tests/baselines/reference/classSideInheritance2.types @@ -1,47 +1,47 @@ === tests/cases/compiler/classSideInheritance2.ts === interface IText { ->IText : IText, Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) +>IText : IText foo: number; ->foo : number, Symbol(foo, Decl(classSideInheritance2.ts, 0, 17)) +>foo : number } interface TextSpan {} ->TextSpan : TextSpan, Symbol(TextSpan, Decl(classSideInheritance2.ts, 2, 1)) +>TextSpan : TextSpan class SubText extends TextBase { ->SubText : SubText, Symbol(SubText, Decl(classSideInheritance2.ts, 4, 21)) ->TextBase : TextBase, Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) +>SubText : SubText +>TextBase : TextBase constructor(text: IText, span: TextSpan) { ->text : IText, Symbol(text, Decl(classSideInheritance2.ts, 8, 20)) ->IText : IText, Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) ->span : TextSpan, Symbol(span, Decl(classSideInheritance2.ts, 8, 32)) ->TextSpan : TextSpan, Symbol(TextSpan, Decl(classSideInheritance2.ts, 2, 1)) +>text : IText +>IText : IText +>span : TextSpan +>TextSpan : TextSpan super(); >super() : void ->super : typeof TextBase, Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) +>super : typeof TextBase } } class TextBase implements IText { ->TextBase : TextBase, Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) ->IText : IText, Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) +>TextBase : TextBase +>IText : IText public foo: number; ->foo : number, Symbol(foo, Decl(classSideInheritance2.ts, 13, 33)) +>foo : number public subText(span: TextSpan): IText { ->subText : (span: TextSpan) => IText, Symbol(subText, Decl(classSideInheritance2.ts, 14, 27)) ->span : TextSpan, Symbol(span, Decl(classSideInheritance2.ts, 15, 23)) ->TextSpan : TextSpan, Symbol(TextSpan, Decl(classSideInheritance2.ts, 2, 1)) ->IText : IText, Symbol(IText, Decl(classSideInheritance2.ts, 0, 0)) +>subText : (span: TextSpan) => IText +>span : TextSpan +>TextSpan : TextSpan +>IText : IText return new SubText(this, span); >new SubText(this, span) : SubText ->SubText : typeof SubText, Symbol(SubText, Decl(classSideInheritance2.ts, 4, 21)) ->this : TextBase, Symbol(TextBase, Decl(classSideInheritance2.ts, 11, 1)) ->span : TextSpan, Symbol(span, Decl(classSideInheritance2.ts, 15, 23)) +>SubText : typeof SubText +>this : TextBase +>span : TextSpan } } diff --git a/tests/baselines/reference/classWithEmptyBody.symbols b/tests/baselines/reference/classWithEmptyBody.symbols new file mode 100644 index 0000000000000..e08b0fe03af17 --- /dev/null +++ b/tests/baselines/reference/classWithEmptyBody.symbols @@ -0,0 +1,49 @@ +=== tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts === +class C { +>C : Symbol(C, Decl(classWithEmptyBody.ts, 0, 0)) +} + +var c: C; +>c : Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) +>C : Symbol(C, Decl(classWithEmptyBody.ts, 0, 0)) + +var o: {} = c; +>o : Symbol(o, Decl(classWithEmptyBody.ts, 4, 3), Decl(classWithEmptyBody.ts, 16, 3)) +>c : Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) + +c = 1; +>c : Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) + +c = { foo: '' } +>c : Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) +>foo : Symbol(foo, Decl(classWithEmptyBody.ts, 6, 5)) + +c = () => { } +>c : Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) + +class D { +>D : Symbol(D, Decl(classWithEmptyBody.ts, 7, 13)) + + constructor() { + return 1; + } +} + +var d: D; +>d : Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) +>D : Symbol(D, Decl(classWithEmptyBody.ts, 7, 13)) + +var o: {} = d; +>o : Symbol(o, Decl(classWithEmptyBody.ts, 4, 3), Decl(classWithEmptyBody.ts, 16, 3)) +>d : Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) + +d = 1; +>d : Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) + +d = { foo: '' } +>d : Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) +>foo : Symbol(foo, Decl(classWithEmptyBody.ts, 18, 5)) + +d = () => { } +>d : Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) + diff --git a/tests/baselines/reference/classWithEmptyBody.types b/tests/baselines/reference/classWithEmptyBody.types index 6fe8ed08585e1..1ac111796e807 100644 --- a/tests/baselines/reference/classWithEmptyBody.types +++ b/tests/baselines/reference/classWithEmptyBody.types @@ -1,35 +1,35 @@ === tests/cases/conformance/classes/classDeclarations/classBody/classWithEmptyBody.ts === class C { ->C : C, Symbol(C, Decl(classWithEmptyBody.ts, 0, 0)) +>C : C } var c: C; ->c : C, Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) ->C : C, Symbol(C, Decl(classWithEmptyBody.ts, 0, 0)) +>c : C +>C : C var o: {} = c; ->o : {}, Symbol(o, Decl(classWithEmptyBody.ts, 4, 3), Decl(classWithEmptyBody.ts, 16, 3)) ->c : C, Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) +>o : {} +>c : C c = 1; >c = 1 : number ->c : C, Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) +>c : C >1 : number c = { foo: '' } >c = { foo: '' } : { foo: string; } ->c : C, Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) +>c : C >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(classWithEmptyBody.ts, 6, 5)) +>foo : string >'' : string c = () => { } >c = () => { } : () => void ->c : C, Symbol(c, Decl(classWithEmptyBody.ts, 3, 3)) +>c : C >() => { } : () => void class D { ->D : D, Symbol(D, Decl(classWithEmptyBody.ts, 7, 13)) +>D : D constructor() { return 1; @@ -38,27 +38,27 @@ class D { } var d: D; ->d : D, Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) ->D : D, Symbol(D, Decl(classWithEmptyBody.ts, 7, 13)) +>d : D +>D : D var o: {} = d; ->o : {}, Symbol(o, Decl(classWithEmptyBody.ts, 4, 3), Decl(classWithEmptyBody.ts, 16, 3)) ->d : D, Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) +>o : {} +>d : D d = 1; >d = 1 : number ->d : D, Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) +>d : D >1 : number d = { foo: '' } >d = { foo: '' } : { foo: string; } ->d : D, Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) +>d : D >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(classWithEmptyBody.ts, 18, 5)) +>foo : string >'' : string d = () => { } >d = () => { } : () => void ->d : D, Symbol(d, Decl(classWithEmptyBody.ts, 15, 3)) +>d : D >() => { } : () => void diff --git a/tests/baselines/reference/classWithNoConstructorOrBaseClass.symbols b/tests/baselines/reference/classWithNoConstructorOrBaseClass.symbols new file mode 100644 index 0000000000000..0d26f892decf1 --- /dev/null +++ b/tests/baselines/reference/classWithNoConstructorOrBaseClass.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/classes/members/constructorFunctionTypes/classWithNoConstructorOrBaseClass.ts === +class C { +>C : Symbol(C, Decl(classWithNoConstructorOrBaseClass.ts, 0, 0)) + + x: string; +>x : Symbol(x, Decl(classWithNoConstructorOrBaseClass.ts, 0, 9)) +} + +var c = new C(); +>c : Symbol(c, Decl(classWithNoConstructorOrBaseClass.ts, 4, 3)) +>C : Symbol(C, Decl(classWithNoConstructorOrBaseClass.ts, 0, 0)) + +var r = C; +>r : Symbol(r, Decl(classWithNoConstructorOrBaseClass.ts, 5, 3)) +>C : Symbol(C, Decl(classWithNoConstructorOrBaseClass.ts, 0, 0)) + +class D { +>D : Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) +>T : Symbol(T, Decl(classWithNoConstructorOrBaseClass.ts, 7, 8)) +>U : Symbol(U, Decl(classWithNoConstructorOrBaseClass.ts, 7, 10)) + + x: T; +>x : Symbol(x, Decl(classWithNoConstructorOrBaseClass.ts, 7, 14)) +>T : Symbol(T, Decl(classWithNoConstructorOrBaseClass.ts, 7, 8)) + + y: U; +>y : Symbol(y, Decl(classWithNoConstructorOrBaseClass.ts, 8, 9)) +>U : Symbol(U, Decl(classWithNoConstructorOrBaseClass.ts, 7, 10)) +} + +var d = new D(); +>d : Symbol(d, Decl(classWithNoConstructorOrBaseClass.ts, 12, 3)) +>D : Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) + +var d2 = new D(); +>d2 : Symbol(d2, Decl(classWithNoConstructorOrBaseClass.ts, 13, 3)) +>D : Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) + +var r2 = D; +>r2 : Symbol(r2, Decl(classWithNoConstructorOrBaseClass.ts, 14, 3)) +>D : Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) + diff --git a/tests/baselines/reference/classWithNoConstructorOrBaseClass.types b/tests/baselines/reference/classWithNoConstructorOrBaseClass.types index 3b94db240e1e3..9df56f81bb17c 100644 --- a/tests/baselines/reference/classWithNoConstructorOrBaseClass.types +++ b/tests/baselines/reference/classWithNoConstructorOrBaseClass.types @@ -1,45 +1,45 @@ === tests/cases/conformance/classes/members/constructorFunctionTypes/classWithNoConstructorOrBaseClass.ts === class C { ->C : C, Symbol(C, Decl(classWithNoConstructorOrBaseClass.ts, 0, 0)) +>C : C x: string; ->x : string, Symbol(x, Decl(classWithNoConstructorOrBaseClass.ts, 0, 9)) +>x : string } var c = new C(); ->c : C, Symbol(c, Decl(classWithNoConstructorOrBaseClass.ts, 4, 3)) +>c : C >new C() : C ->C : typeof C, Symbol(C, Decl(classWithNoConstructorOrBaseClass.ts, 0, 0)) +>C : typeof C var r = C; ->r : typeof C, Symbol(r, Decl(classWithNoConstructorOrBaseClass.ts, 5, 3)) ->C : typeof C, Symbol(C, Decl(classWithNoConstructorOrBaseClass.ts, 0, 0)) +>r : typeof C +>C : typeof C class D { ->D : D, Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) ->T : T, Symbol(T, Decl(classWithNoConstructorOrBaseClass.ts, 7, 8)) ->U : U, Symbol(U, Decl(classWithNoConstructorOrBaseClass.ts, 7, 10)) +>D : D +>T : T +>U : U x: T; ->x : T, Symbol(x, Decl(classWithNoConstructorOrBaseClass.ts, 7, 14)) ->T : T, Symbol(T, Decl(classWithNoConstructorOrBaseClass.ts, 7, 8)) +>x : T +>T : T y: U; ->y : U, Symbol(y, Decl(classWithNoConstructorOrBaseClass.ts, 8, 9)) ->U : U, Symbol(U, Decl(classWithNoConstructorOrBaseClass.ts, 7, 10)) +>y : U +>U : U } var d = new D(); ->d : D<{}, {}>, Symbol(d, Decl(classWithNoConstructorOrBaseClass.ts, 12, 3)) +>d : D<{}, {}> >new D() : D<{}, {}> ->D : typeof D, Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) +>D : typeof D var d2 = new D(); ->d2 : D, Symbol(d2, Decl(classWithNoConstructorOrBaseClass.ts, 13, 3)) +>d2 : D >new D() : D ->D : typeof D, Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) +>D : typeof D var r2 = D; ->r2 : typeof D, Symbol(r2, Decl(classWithNoConstructorOrBaseClass.ts, 14, 3)) ->D : typeof D, Symbol(D, Decl(classWithNoConstructorOrBaseClass.ts, 5, 10)) +>r2 : typeof D +>D : typeof D diff --git a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.symbols b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.symbols new file mode 100644 index 0000000000000..7239eac77e64f --- /dev/null +++ b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.symbols @@ -0,0 +1,71 @@ +=== tests/cases/conformance/types/namedTypes/classWithOnlyPublicMembersEquivalentToInterface.ts === +// no errors expected + +class C { +>C : Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 0, 0)) + + public x: string; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 2, 9)) + + public y(a: number): number { return null; } +>y : Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 3, 21)) +>a : Symbol(a, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 4, 13)) + + public get z() { return 1; } +>z : Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 5, 32)) + + public set z(v) { } +>z : Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 5, 32)) +>v : Symbol(v, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 6, 17)) + + [x: string]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 7, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [x: number]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 8, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + 0: number; +} + +interface I { +>I : Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 10, 1)) + + x: string; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 12, 13)) + + y(b: number): number; +>y : Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 13, 14)) +>b : Symbol(b, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 14, 6)) + + z: number; +>z : Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 14, 25)) + + [x: string]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 16, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [x: number]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 17, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + 0: number; +} + +var c: C; +>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 21, 3)) +>C : Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 0, 0)) + +var i: I; +>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 22, 3)) +>I : Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 10, 1)) + +c = i; +>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 21, 3)) +>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 22, 3)) + +i = c; +>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 22, 3)) +>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 21, 3)) + diff --git a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.types b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.types index 841def4120c60..94460dfdeaf45 100644 --- a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.types +++ b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.types @@ -2,74 +2,74 @@ // no errors expected class C { ->C : C, Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 0, 0)) +>C : C public x: string; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 2, 9)) +>x : string public y(a: number): number { return null; } ->y : (a: number) => number, Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 3, 21)) ->a : number, Symbol(a, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 4, 13)) +>y : (a: number) => number +>a : number >null : null public get z() { return 1; } ->z : number, Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 5, 32)) +>z : number >1 : number public set z(v) { } ->z : number, Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 5, 32)) ->v : number, Symbol(v, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 6, 17)) +>z : number +>v : number [x: string]: Object; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 7, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object [x: number]: Object; ->x : number, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 8, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : number +>Object : Object 0: number; } interface I { ->I : I, Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 10, 1)) +>I : I x: string; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 12, 13)) +>x : string y(b: number): number; ->y : (b: number) => number, Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 13, 14)) ->b : number, Symbol(b, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 14, 6)) +>y : (b: number) => number +>b : number z: number; ->z : number, Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 14, 25)) +>z : number [x: string]: Object; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 16, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object [x: number]: Object; ->x : number, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 17, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : number +>Object : Object 0: number; } var c: C; ->c : C, Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 21, 3)) ->C : C, Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 0, 0)) +>c : C +>C : C var i: I; ->i : I, Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 22, 3)) ->I : I, Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 10, 1)) +>i : I +>I : I c = i; >c = i : I ->c : C, Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 21, 3)) ->i : I, Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 22, 3)) +>c : C +>i : I i = c; >i = c : C ->i : I, Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 22, 3)) ->c : C, Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface.ts, 21, 3)) +>i : I +>c : C diff --git a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.symbols b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.symbols new file mode 100644 index 0000000000000..48bcbfa514994 --- /dev/null +++ b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.symbols @@ -0,0 +1,74 @@ +=== tests/cases/conformance/types/namedTypes/classWithOnlyPublicMembersEquivalentToInterface2.ts === +// no errors expected + +class C { +>C : Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 0, 0)) + + public x: string; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 2, 9)) + + public y(a: number): number { return null; } +>y : Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 3, 21)) +>a : Symbol(a, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 13)) + + public get z() { return 1; } +>z : Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 5, 32)) + + public set z(v) { } +>z : Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 5, 32)) +>v : Symbol(v, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 6, 17)) + + [x: string]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 7, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [x: number]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 8, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + 0: number; + + public static foo: string; // doesn't effect equivalence +>foo : Symbol(C.foo, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 9, 14)) +} + +interface I { +>I : Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 12, 1)) + + x: string; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 14, 13)) + + y(b: number): number; +>y : Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 15, 14)) +>b : Symbol(b, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 16, 6)) + + z: number; +>z : Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 16, 25)) + + [x: string]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 18, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [x: number]: Object; +>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 19, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + 0: number; +} + +var c: C; +>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3)) +>C : Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 0, 0)) + +var i: I; +>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3)) +>I : Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 12, 1)) + +c = i; +>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3)) +>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3)) + +i = c; +>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3)) +>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3)) + diff --git a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.types b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.types index 7de512b3549af..b359713f292ba 100644 --- a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.types +++ b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.types @@ -2,77 +2,77 @@ // no errors expected class C { ->C : C, Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 0, 0)) +>C : C public x: string; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 2, 9)) +>x : string public y(a: number): number { return null; } ->y : (a: number) => number, Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 3, 21)) ->a : number, Symbol(a, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 13)) +>y : (a: number) => number +>a : number >null : null public get z() { return 1; } ->z : number, Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 5, 32)) +>z : number >1 : number public set z(v) { } ->z : number, Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 5, 32)) ->v : number, Symbol(v, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 6, 17)) +>z : number +>v : number [x: string]: Object; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 7, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object [x: number]: Object; ->x : number, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 8, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : number +>Object : Object 0: number; public static foo: string; // doesn't effect equivalence ->foo : string, Symbol(C.foo, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 9, 14)) +>foo : string } interface I { ->I : I, Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 12, 1)) +>I : I x: string; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 14, 13)) +>x : string y(b: number): number; ->y : (b: number) => number, Symbol(y, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 15, 14)) ->b : number, Symbol(b, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 16, 6)) +>y : (b: number) => number +>b : number z: number; ->z : number, Symbol(z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 16, 25)) +>z : number [x: string]: Object; ->x : string, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 18, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object [x: number]: Object; ->x : number, Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 19, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : number +>Object : Object 0: number; } var c: C; ->c : C, Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3)) ->C : C, Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 0, 0)) +>c : C +>C : C var i: I; ->i : I, Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3)) ->I : I, Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 12, 1)) +>i : I +>I : I c = i; >c = i : I ->c : C, Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3)) ->i : I, Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3)) +>c : C +>i : I i = c; >i = c : C ->i : I, Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3)) ->c : C, Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3)) +>i : I +>c : C diff --git a/tests/baselines/reference/classWithProtectedProperty.symbols b/tests/baselines/reference/classWithProtectedProperty.symbols new file mode 100644 index 0000000000000..017233081b25c --- /dev/null +++ b/tests/baselines/reference/classWithProtectedProperty.symbols @@ -0,0 +1,92 @@ +=== tests/cases/conformance/types/members/classWithProtectedProperty.ts === +// accessing any protected outside the class is an error + +class C { +>C : Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) + + protected x; +>x : Symbol(x, Decl(classWithProtectedProperty.ts, 2, 9)) + + protected a = ''; +>a : Symbol(a, Decl(classWithProtectedProperty.ts, 3, 16)) + + protected b: string = ''; +>b : Symbol(b, Decl(classWithProtectedProperty.ts, 4, 21)) + + protected c() { return '' } +>c : Symbol(c, Decl(classWithProtectedProperty.ts, 5, 29)) + + protected d = () => ''; +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 6, 31)) + + protected static e; +>e : Symbol(C.e, Decl(classWithProtectedProperty.ts, 7, 27)) + + protected static f() { return '' } +>f : Symbol(C.f, Decl(classWithProtectedProperty.ts, 8, 23)) + + protected static g = () => ''; +>g : Symbol(C.g, Decl(classWithProtectedProperty.ts, 9, 38)) +} + +class D extends C { +>D : Symbol(D, Decl(classWithProtectedProperty.ts, 11, 1)) +>C : Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) + + method() { +>method : Symbol(method, Decl(classWithProtectedProperty.ts, 13, 19)) + + // No errors + var d = new D(); +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>D : Symbol(D, Decl(classWithProtectedProperty.ts, 11, 1)) + + var r1: string = d.x; +>r1 : Symbol(r1, Decl(classWithProtectedProperty.ts, 17, 11)) +>d.x : Symbol(C.x, Decl(classWithProtectedProperty.ts, 2, 9)) +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>x : Symbol(C.x, Decl(classWithProtectedProperty.ts, 2, 9)) + + var r2: string = d.a; +>r2 : Symbol(r2, Decl(classWithProtectedProperty.ts, 18, 11)) +>d.a : Symbol(C.a, Decl(classWithProtectedProperty.ts, 3, 16)) +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>a : Symbol(C.a, Decl(classWithProtectedProperty.ts, 3, 16)) + + var r3: string = d.b; +>r3 : Symbol(r3, Decl(classWithProtectedProperty.ts, 19, 11)) +>d.b : Symbol(C.b, Decl(classWithProtectedProperty.ts, 4, 21)) +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>b : Symbol(C.b, Decl(classWithProtectedProperty.ts, 4, 21)) + + var r4: string = d.c(); +>r4 : Symbol(r4, Decl(classWithProtectedProperty.ts, 20, 11)) +>d.c : Symbol(C.c, Decl(classWithProtectedProperty.ts, 5, 29)) +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>c : Symbol(C.c, Decl(classWithProtectedProperty.ts, 5, 29)) + + var r5: string = d.d(); +>r5 : Symbol(r5, Decl(classWithProtectedProperty.ts, 21, 11)) +>d.d : Symbol(C.d, Decl(classWithProtectedProperty.ts, 6, 31)) +>d : Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>d : Symbol(C.d, Decl(classWithProtectedProperty.ts, 6, 31)) + + var r6: string = C.e; +>r6 : Symbol(r6, Decl(classWithProtectedProperty.ts, 22, 11)) +>C.e : Symbol(C.e, Decl(classWithProtectedProperty.ts, 7, 27)) +>C : Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) +>e : Symbol(C.e, Decl(classWithProtectedProperty.ts, 7, 27)) + + var r7: string = C.f(); +>r7 : Symbol(r7, Decl(classWithProtectedProperty.ts, 23, 11)) +>C.f : Symbol(C.f, Decl(classWithProtectedProperty.ts, 8, 23)) +>C : Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) +>f : Symbol(C.f, Decl(classWithProtectedProperty.ts, 8, 23)) + + var r8: string = C.g(); +>r8 : Symbol(r8, Decl(classWithProtectedProperty.ts, 24, 11)) +>C.g : Symbol(C.g, Decl(classWithProtectedProperty.ts, 9, 38)) +>C : Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) +>g : Symbol(C.g, Decl(classWithProtectedProperty.ts, 9, 38)) + } +} diff --git a/tests/baselines/reference/classWithProtectedProperty.types b/tests/baselines/reference/classWithProtectedProperty.types index d2c469dfa2b0e..1f53ea2aad9b4 100644 --- a/tests/baselines/reference/classWithProtectedProperty.types +++ b/tests/baselines/reference/classWithProtectedProperty.types @@ -2,104 +2,104 @@ // accessing any protected outside the class is an error class C { ->C : C, Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) +>C : C protected x; ->x : any, Symbol(x, Decl(classWithProtectedProperty.ts, 2, 9)) +>x : any protected a = ''; ->a : string, Symbol(a, Decl(classWithProtectedProperty.ts, 3, 16)) +>a : string >'' : string protected b: string = ''; ->b : string, Symbol(b, Decl(classWithProtectedProperty.ts, 4, 21)) +>b : string >'' : string protected c() { return '' } ->c : () => string, Symbol(c, Decl(classWithProtectedProperty.ts, 5, 29)) +>c : () => string >'' : string protected d = () => ''; ->d : () => string, Symbol(d, Decl(classWithProtectedProperty.ts, 6, 31)) +>d : () => string >() => '' : () => string >'' : string protected static e; ->e : any, Symbol(C.e, Decl(classWithProtectedProperty.ts, 7, 27)) +>e : any protected static f() { return '' } ->f : () => string, Symbol(C.f, Decl(classWithProtectedProperty.ts, 8, 23)) +>f : () => string >'' : string protected static g = () => ''; ->g : () => string, Symbol(C.g, Decl(classWithProtectedProperty.ts, 9, 38)) +>g : () => string >() => '' : () => string >'' : string } class D extends C { ->D : D, Symbol(D, Decl(classWithProtectedProperty.ts, 11, 1)) ->C : C, Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) +>D : D +>C : C method() { ->method : () => void, Symbol(method, Decl(classWithProtectedProperty.ts, 13, 19)) +>method : () => void // No errors var d = new D(); ->d : D, Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) +>d : D >new D() : D ->D : typeof D, Symbol(D, Decl(classWithProtectedProperty.ts, 11, 1)) +>D : typeof D var r1: string = d.x; ->r1 : string, Symbol(r1, Decl(classWithProtectedProperty.ts, 17, 11)) ->d.x : any, Symbol(C.x, Decl(classWithProtectedProperty.ts, 2, 9)) ->d : D, Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) ->x : any, Symbol(C.x, Decl(classWithProtectedProperty.ts, 2, 9)) +>r1 : string +>d.x : any +>d : D +>x : any var r2: string = d.a; ->r2 : string, Symbol(r2, Decl(classWithProtectedProperty.ts, 18, 11)) ->d.a : string, Symbol(C.a, Decl(classWithProtectedProperty.ts, 3, 16)) ->d : D, Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) ->a : string, Symbol(C.a, Decl(classWithProtectedProperty.ts, 3, 16)) +>r2 : string +>d.a : string +>d : D +>a : string var r3: string = d.b; ->r3 : string, Symbol(r3, Decl(classWithProtectedProperty.ts, 19, 11)) ->d.b : string, Symbol(C.b, Decl(classWithProtectedProperty.ts, 4, 21)) ->d : D, Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) ->b : string, Symbol(C.b, Decl(classWithProtectedProperty.ts, 4, 21)) +>r3 : string +>d.b : string +>d : D +>b : string var r4: string = d.c(); ->r4 : string, Symbol(r4, Decl(classWithProtectedProperty.ts, 20, 11)) +>r4 : string >d.c() : string ->d.c : () => string, Symbol(C.c, Decl(classWithProtectedProperty.ts, 5, 29)) ->d : D, Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) ->c : () => string, Symbol(C.c, Decl(classWithProtectedProperty.ts, 5, 29)) +>d.c : () => string +>d : D +>c : () => string var r5: string = d.d(); ->r5 : string, Symbol(r5, Decl(classWithProtectedProperty.ts, 21, 11)) +>r5 : string >d.d() : string ->d.d : () => string, Symbol(C.d, Decl(classWithProtectedProperty.ts, 6, 31)) ->d : D, Symbol(d, Decl(classWithProtectedProperty.ts, 16, 11)) ->d : () => string, Symbol(C.d, Decl(classWithProtectedProperty.ts, 6, 31)) +>d.d : () => string +>d : D +>d : () => string var r6: string = C.e; ->r6 : string, Symbol(r6, Decl(classWithProtectedProperty.ts, 22, 11)) ->C.e : any, Symbol(C.e, Decl(classWithProtectedProperty.ts, 7, 27)) ->C : typeof C, Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) ->e : any, Symbol(C.e, Decl(classWithProtectedProperty.ts, 7, 27)) +>r6 : string +>C.e : any +>C : typeof C +>e : any var r7: string = C.f(); ->r7 : string, Symbol(r7, Decl(classWithProtectedProperty.ts, 23, 11)) +>r7 : string >C.f() : string ->C.f : () => string, Symbol(C.f, Decl(classWithProtectedProperty.ts, 8, 23)) ->C : typeof C, Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) ->f : () => string, Symbol(C.f, Decl(classWithProtectedProperty.ts, 8, 23)) +>C.f : () => string +>C : typeof C +>f : () => string var r8: string = C.g(); ->r8 : string, Symbol(r8, Decl(classWithProtectedProperty.ts, 24, 11)) +>r8 : string >C.g() : string ->C.g : () => string, Symbol(C.g, Decl(classWithProtectedProperty.ts, 9, 38)) ->C : typeof C, Symbol(C, Decl(classWithProtectedProperty.ts, 0, 0)) ->g : () => string, Symbol(C.g, Decl(classWithProtectedProperty.ts, 9, 38)) +>C.g : () => string +>C : typeof C +>g : () => string } } diff --git a/tests/baselines/reference/classWithPublicProperty.symbols b/tests/baselines/reference/classWithPublicProperty.symbols new file mode 100644 index 0000000000000..0e3aa272e5d3f --- /dev/null +++ b/tests/baselines/reference/classWithPublicProperty.symbols @@ -0,0 +1,82 @@ +=== tests/cases/conformance/types/members/classWithPublicProperty.ts === +class C { +>C : Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) + + public x; +>x : Symbol(x, Decl(classWithPublicProperty.ts, 0, 9)) + + public a = ''; +>a : Symbol(a, Decl(classWithPublicProperty.ts, 1, 13)) + + public b: string = ''; +>b : Symbol(b, Decl(classWithPublicProperty.ts, 2, 18)) + + public c() { return '' } +>c : Symbol(c, Decl(classWithPublicProperty.ts, 3, 26)) + + public d = () => ''; +>d : Symbol(d, Decl(classWithPublicProperty.ts, 4, 28)) + + public static e; +>e : Symbol(C.e, Decl(classWithPublicProperty.ts, 5, 24)) + + public static f() { return '' } +>f : Symbol(C.f, Decl(classWithPublicProperty.ts, 6, 20)) + + public static g = () => ''; +>g : Symbol(C.g, Decl(classWithPublicProperty.ts, 7, 35)) +} + +// all of these are valid +var c = new C(); +>c : Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>C : Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) + +var r1: string = c.x; +>r1 : Symbol(r1, Decl(classWithPublicProperty.ts, 13, 3)) +>c.x : Symbol(C.x, Decl(classWithPublicProperty.ts, 0, 9)) +>c : Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>x : Symbol(C.x, Decl(classWithPublicProperty.ts, 0, 9)) + +var r2: string = c.a; +>r2 : Symbol(r2, Decl(classWithPublicProperty.ts, 14, 3)) +>c.a : Symbol(C.a, Decl(classWithPublicProperty.ts, 1, 13)) +>c : Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>a : Symbol(C.a, Decl(classWithPublicProperty.ts, 1, 13)) + +var r3: string = c.b; +>r3 : Symbol(r3, Decl(classWithPublicProperty.ts, 15, 3)) +>c.b : Symbol(C.b, Decl(classWithPublicProperty.ts, 2, 18)) +>c : Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>b : Symbol(C.b, Decl(classWithPublicProperty.ts, 2, 18)) + +var r4: string = c.c(); +>r4 : Symbol(r4, Decl(classWithPublicProperty.ts, 16, 3)) +>c.c : Symbol(C.c, Decl(classWithPublicProperty.ts, 3, 26)) +>c : Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>c : Symbol(C.c, Decl(classWithPublicProperty.ts, 3, 26)) + +var r5: string = c.d(); +>r5 : Symbol(r5, Decl(classWithPublicProperty.ts, 17, 3)) +>c.d : Symbol(C.d, Decl(classWithPublicProperty.ts, 4, 28)) +>c : Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>d : Symbol(C.d, Decl(classWithPublicProperty.ts, 4, 28)) + +var r6: string = C.e; +>r6 : Symbol(r6, Decl(classWithPublicProperty.ts, 18, 3)) +>C.e : Symbol(C.e, Decl(classWithPublicProperty.ts, 5, 24)) +>C : Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) +>e : Symbol(C.e, Decl(classWithPublicProperty.ts, 5, 24)) + +var r7: string = C.f(); +>r7 : Symbol(r7, Decl(classWithPublicProperty.ts, 19, 3)) +>C.f : Symbol(C.f, Decl(classWithPublicProperty.ts, 6, 20)) +>C : Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) +>f : Symbol(C.f, Decl(classWithPublicProperty.ts, 6, 20)) + +var r8: string = C.g(); +>r8 : Symbol(r8, Decl(classWithPublicProperty.ts, 20, 3)) +>C.g : Symbol(C.g, Decl(classWithPublicProperty.ts, 7, 35)) +>C : Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) +>g : Symbol(C.g, Decl(classWithPublicProperty.ts, 7, 35)) + diff --git a/tests/baselines/reference/classWithPublicProperty.types b/tests/baselines/reference/classWithPublicProperty.types index 5a033a3a81c6b..09d3c0668d155 100644 --- a/tests/baselines/reference/classWithPublicProperty.types +++ b/tests/baselines/reference/classWithPublicProperty.types @@ -1,95 +1,95 @@ === tests/cases/conformance/types/members/classWithPublicProperty.ts === class C { ->C : C, Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) +>C : C public x; ->x : any, Symbol(x, Decl(classWithPublicProperty.ts, 0, 9)) +>x : any public a = ''; ->a : string, Symbol(a, Decl(classWithPublicProperty.ts, 1, 13)) +>a : string >'' : string public b: string = ''; ->b : string, Symbol(b, Decl(classWithPublicProperty.ts, 2, 18)) +>b : string >'' : string public c() { return '' } ->c : () => string, Symbol(c, Decl(classWithPublicProperty.ts, 3, 26)) +>c : () => string >'' : string public d = () => ''; ->d : () => string, Symbol(d, Decl(classWithPublicProperty.ts, 4, 28)) +>d : () => string >() => '' : () => string >'' : string public static e; ->e : any, Symbol(C.e, Decl(classWithPublicProperty.ts, 5, 24)) +>e : any public static f() { return '' } ->f : () => string, Symbol(C.f, Decl(classWithPublicProperty.ts, 6, 20)) +>f : () => string >'' : string public static g = () => ''; ->g : () => string, Symbol(C.g, Decl(classWithPublicProperty.ts, 7, 35)) +>g : () => string >() => '' : () => string >'' : string } // all of these are valid var c = new C(); ->c : C, Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) +>c : C >new C() : C ->C : typeof C, Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) +>C : typeof C var r1: string = c.x; ->r1 : string, Symbol(r1, Decl(classWithPublicProperty.ts, 13, 3)) ->c.x : any, Symbol(C.x, Decl(classWithPublicProperty.ts, 0, 9)) ->c : C, Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) ->x : any, Symbol(C.x, Decl(classWithPublicProperty.ts, 0, 9)) +>r1 : string +>c.x : any +>c : C +>x : any var r2: string = c.a; ->r2 : string, Symbol(r2, Decl(classWithPublicProperty.ts, 14, 3)) ->c.a : string, Symbol(C.a, Decl(classWithPublicProperty.ts, 1, 13)) ->c : C, Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) ->a : string, Symbol(C.a, Decl(classWithPublicProperty.ts, 1, 13)) +>r2 : string +>c.a : string +>c : C +>a : string var r3: string = c.b; ->r3 : string, Symbol(r3, Decl(classWithPublicProperty.ts, 15, 3)) ->c.b : string, Symbol(C.b, Decl(classWithPublicProperty.ts, 2, 18)) ->c : C, Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) ->b : string, Symbol(C.b, Decl(classWithPublicProperty.ts, 2, 18)) +>r3 : string +>c.b : string +>c : C +>b : string var r4: string = c.c(); ->r4 : string, Symbol(r4, Decl(classWithPublicProperty.ts, 16, 3)) +>r4 : string >c.c() : string ->c.c : () => string, Symbol(C.c, Decl(classWithPublicProperty.ts, 3, 26)) ->c : C, Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) ->c : () => string, Symbol(C.c, Decl(classWithPublicProperty.ts, 3, 26)) +>c.c : () => string +>c : C +>c : () => string var r5: string = c.d(); ->r5 : string, Symbol(r5, Decl(classWithPublicProperty.ts, 17, 3)) +>r5 : string >c.d() : string ->c.d : () => string, Symbol(C.d, Decl(classWithPublicProperty.ts, 4, 28)) ->c : C, Symbol(c, Decl(classWithPublicProperty.ts, 12, 3)) ->d : () => string, Symbol(C.d, Decl(classWithPublicProperty.ts, 4, 28)) +>c.d : () => string +>c : C +>d : () => string var r6: string = C.e; ->r6 : string, Symbol(r6, Decl(classWithPublicProperty.ts, 18, 3)) ->C.e : any, Symbol(C.e, Decl(classWithPublicProperty.ts, 5, 24)) ->C : typeof C, Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) ->e : any, Symbol(C.e, Decl(classWithPublicProperty.ts, 5, 24)) +>r6 : string +>C.e : any +>C : typeof C +>e : any var r7: string = C.f(); ->r7 : string, Symbol(r7, Decl(classWithPublicProperty.ts, 19, 3)) +>r7 : string >C.f() : string ->C.f : () => string, Symbol(C.f, Decl(classWithPublicProperty.ts, 6, 20)) ->C : typeof C, Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) ->f : () => string, Symbol(C.f, Decl(classWithPublicProperty.ts, 6, 20)) +>C.f : () => string +>C : typeof C +>f : () => string var r8: string = C.g(); ->r8 : string, Symbol(r8, Decl(classWithPublicProperty.ts, 20, 3)) +>r8 : string >C.g() : string ->C.g : () => string, Symbol(C.g, Decl(classWithPublicProperty.ts, 7, 35)) ->C : typeof C, Symbol(C, Decl(classWithPublicProperty.ts, 0, 0)) ->g : () => string, Symbol(C.g, Decl(classWithPublicProperty.ts, 7, 35)) +>C.g : () => string +>C : typeof C +>g : () => string diff --git a/tests/baselines/reference/classWithSemicolonClassElement1.symbols b/tests/baselines/reference/classWithSemicolonClassElement1.symbols new file mode 100644 index 0000000000000..6925382630ad2 --- /dev/null +++ b/tests/baselines/reference/classWithSemicolonClassElement1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts === +class C { +>C : Symbol(C, Decl(classWithSemicolonClassElement1.ts, 0, 0)) + + ; +} diff --git a/tests/baselines/reference/classWithSemicolonClassElement1.types b/tests/baselines/reference/classWithSemicolonClassElement1.types index 36e6e6eedafbd..d3315c4cd03dd 100644 --- a/tests/baselines/reference/classWithSemicolonClassElement1.types +++ b/tests/baselines/reference/classWithSemicolonClassElement1.types @@ -1,6 +1,6 @@ === tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement1.ts === class C { ->C : C, Symbol(C, Decl(classWithSemicolonClassElement1.ts, 0, 0)) +>C : C ; } diff --git a/tests/baselines/reference/classWithSemicolonClassElement2.symbols b/tests/baselines/reference/classWithSemicolonClassElement2.symbols new file mode 100644 index 0000000000000..50b79a45164db --- /dev/null +++ b/tests/baselines/reference/classWithSemicolonClassElement2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts === +class C { +>C : Symbol(C, Decl(classWithSemicolonClassElement2.ts, 0, 0)) + + ; + ; +} diff --git a/tests/baselines/reference/classWithSemicolonClassElement2.types b/tests/baselines/reference/classWithSemicolonClassElement2.types index 9e27c668c05df..ce638e79fc0ea 100644 --- a/tests/baselines/reference/classWithSemicolonClassElement2.types +++ b/tests/baselines/reference/classWithSemicolonClassElement2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/classes/classDeclarations/classWithSemicolonClassElement2.ts === class C { ->C : C, Symbol(C, Decl(classWithSemicolonClassElement2.ts, 0, 0)) +>C : C ; ; diff --git a/tests/baselines/reference/classWithSemicolonClassElementES61.symbols b/tests/baselines/reference/classWithSemicolonClassElementES61.symbols new file mode 100644 index 0000000000000..eb8e4345098f0 --- /dev/null +++ b/tests/baselines/reference/classWithSemicolonClassElementES61.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/classDeclaration/classWithSemicolonClassElementES61.ts === +class C { +>C : Symbol(C, Decl(classWithSemicolonClassElementES61.ts, 0, 0)) + + ; +} diff --git a/tests/baselines/reference/classWithSemicolonClassElementES61.types b/tests/baselines/reference/classWithSemicolonClassElementES61.types index c9c6db8e57aed..974f269d33c1e 100644 --- a/tests/baselines/reference/classWithSemicolonClassElementES61.types +++ b/tests/baselines/reference/classWithSemicolonClassElementES61.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/classDeclaration/classWithSemicolonClassElementES61.ts === class C { ->C : C, Symbol(C, Decl(classWithSemicolonClassElementES61.ts, 0, 0)) +>C : C ; } diff --git a/tests/baselines/reference/classWithSemicolonClassElementES62.symbols b/tests/baselines/reference/classWithSemicolonClassElementES62.symbols new file mode 100644 index 0000000000000..a1c69b61b77a5 --- /dev/null +++ b/tests/baselines/reference/classWithSemicolonClassElementES62.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/es6/classDeclaration/classWithSemicolonClassElementES62.ts === +class C { +>C : Symbol(C, Decl(classWithSemicolonClassElementES62.ts, 0, 0)) + + ; + ; +} diff --git a/tests/baselines/reference/classWithSemicolonClassElementES62.types b/tests/baselines/reference/classWithSemicolonClassElementES62.types index 53f9cae9975c9..9f96fbb5ebd00 100644 --- a/tests/baselines/reference/classWithSemicolonClassElementES62.types +++ b/tests/baselines/reference/classWithSemicolonClassElementES62.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/classDeclaration/classWithSemicolonClassElementES62.ts === class C { ->C : C, Symbol(C, Decl(classWithSemicolonClassElementES62.ts, 0, 0)) +>C : C ; ; diff --git a/tests/baselines/reference/cloduleAcrossModuleDefinitions.symbols b/tests/baselines/reference/cloduleAcrossModuleDefinitions.symbols new file mode 100644 index 0000000000000..7be8383355c8a --- /dev/null +++ b/tests/baselines/reference/cloduleAcrossModuleDefinitions.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/cloduleAcrossModuleDefinitions.ts === +module A { +>A : Symbol(A, Decl(cloduleAcrossModuleDefinitions.ts, 0, 0), Decl(cloduleAcrossModuleDefinitions.ts, 5, 1)) + + export class B { +>B : Symbol(B, Decl(cloduleAcrossModuleDefinitions.ts, 0, 10), Decl(cloduleAcrossModuleDefinitions.ts, 7, 10)) + + foo() { } +>foo : Symbol(foo, Decl(cloduleAcrossModuleDefinitions.ts, 1, 20)) + + static bar() { } +>bar : Symbol(B.bar, Decl(cloduleAcrossModuleDefinitions.ts, 2, 17)) + } +} + +module A { +>A : Symbol(A, Decl(cloduleAcrossModuleDefinitions.ts, 0, 0), Decl(cloduleAcrossModuleDefinitions.ts, 5, 1)) + + export module B { +>B : Symbol(B, Decl(cloduleAcrossModuleDefinitions.ts, 0, 10), Decl(cloduleAcrossModuleDefinitions.ts, 7, 10)) + + export var x = 1; +>x : Symbol(x, Decl(cloduleAcrossModuleDefinitions.ts, 9, 18)) + } +} + +var b: A.B; // ok +>b : Symbol(b, Decl(cloduleAcrossModuleDefinitions.ts, 13, 3)) +>A : Symbol(A, Decl(cloduleAcrossModuleDefinitions.ts, 0, 0), Decl(cloduleAcrossModuleDefinitions.ts, 5, 1)) +>B : Symbol(A.B, Decl(cloduleAcrossModuleDefinitions.ts, 0, 10), Decl(cloduleAcrossModuleDefinitions.ts, 7, 10)) + diff --git a/tests/baselines/reference/cloduleAcrossModuleDefinitions.types b/tests/baselines/reference/cloduleAcrossModuleDefinitions.types index 6693788051a17..53ef83927747a 100644 --- a/tests/baselines/reference/cloduleAcrossModuleDefinitions.types +++ b/tests/baselines/reference/cloduleAcrossModuleDefinitions.types @@ -1,32 +1,32 @@ === tests/cases/compiler/cloduleAcrossModuleDefinitions.ts === module A { ->A : typeof A, Symbol(A, Decl(cloduleAcrossModuleDefinitions.ts, 0, 0), Decl(cloduleAcrossModuleDefinitions.ts, 5, 1)) +>A : typeof A export class B { ->B : B, Symbol(B, Decl(cloduleAcrossModuleDefinitions.ts, 0, 10), Decl(cloduleAcrossModuleDefinitions.ts, 7, 10)) +>B : B foo() { } ->foo : () => void, Symbol(foo, Decl(cloduleAcrossModuleDefinitions.ts, 1, 20)) +>foo : () => void static bar() { } ->bar : () => void, Symbol(B.bar, Decl(cloduleAcrossModuleDefinitions.ts, 2, 17)) +>bar : () => void } } module A { ->A : typeof A, Symbol(A, Decl(cloduleAcrossModuleDefinitions.ts, 0, 0), Decl(cloduleAcrossModuleDefinitions.ts, 5, 1)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(cloduleAcrossModuleDefinitions.ts, 0, 10), Decl(cloduleAcrossModuleDefinitions.ts, 7, 10)) +>B : typeof B export var x = 1; ->x : number, Symbol(x, Decl(cloduleAcrossModuleDefinitions.ts, 9, 18)) +>x : number >1 : number } } var b: A.B; // ok ->b : A.B, Symbol(b, Decl(cloduleAcrossModuleDefinitions.ts, 13, 3)) ->A : any, Symbol(A, Decl(cloduleAcrossModuleDefinitions.ts, 0, 0), Decl(cloduleAcrossModuleDefinitions.ts, 5, 1)) ->B : A.B, Symbol(A.B, Decl(cloduleAcrossModuleDefinitions.ts, 0, 10), Decl(cloduleAcrossModuleDefinitions.ts, 7, 10)) +>b : A.B +>A : any +>B : A.B diff --git a/tests/baselines/reference/cloduleAndTypeParameters.symbols b/tests/baselines/reference/cloduleAndTypeParameters.symbols new file mode 100644 index 0000000000000..f2d963464958b --- /dev/null +++ b/tests/baselines/reference/cloduleAndTypeParameters.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/cloduleAndTypeParameters.ts === +class Foo { +>Foo : Symbol(Foo, Decl(cloduleAndTypeParameters.ts, 0, 0), Decl(cloduleAndTypeParameters.ts, 3, 1)) +>T : Symbol(T, Decl(cloduleAndTypeParameters.ts, 0, 10)) +>Foo : Symbol(Foo, Decl(cloduleAndTypeParameters.ts, 0, 0), Decl(cloduleAndTypeParameters.ts, 3, 1)) +>Bar : Symbol(Foo.Bar, Decl(cloduleAndTypeParameters.ts, 5, 12)) + + constructor() { + } +} + +module Foo { +>Foo : Symbol(Foo, Decl(cloduleAndTypeParameters.ts, 0, 0), Decl(cloduleAndTypeParameters.ts, 3, 1)) + + export interface Bar { +>Bar : Symbol(Bar, Decl(cloduleAndTypeParameters.ts, 5, 12)) + + bar(): void; +>bar : Symbol(bar, Decl(cloduleAndTypeParameters.ts, 6, 24)) + } + + export class Baz { +>Baz : Symbol(Baz, Decl(cloduleAndTypeParameters.ts, 8, 3)) + } +} diff --git a/tests/baselines/reference/cloduleAndTypeParameters.types b/tests/baselines/reference/cloduleAndTypeParameters.types index 85d31b895ced6..f7621b5d7f2bd 100644 --- a/tests/baselines/reference/cloduleAndTypeParameters.types +++ b/tests/baselines/reference/cloduleAndTypeParameters.types @@ -1,25 +1,25 @@ === tests/cases/compiler/cloduleAndTypeParameters.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(cloduleAndTypeParameters.ts, 0, 0), Decl(cloduleAndTypeParameters.ts, 3, 1)) ->T : T, Symbol(T, Decl(cloduleAndTypeParameters.ts, 0, 10)) ->Foo : any, Symbol(Foo, Decl(cloduleAndTypeParameters.ts, 0, 0), Decl(cloduleAndTypeParameters.ts, 3, 1)) ->Bar : Foo.Bar, Symbol(Foo.Bar, Decl(cloduleAndTypeParameters.ts, 5, 12)) +>Foo : Foo +>T : T +>Foo : any +>Bar : Foo.Bar constructor() { } } module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(cloduleAndTypeParameters.ts, 0, 0), Decl(cloduleAndTypeParameters.ts, 3, 1)) +>Foo : typeof Foo export interface Bar { ->Bar : Bar, Symbol(Bar, Decl(cloduleAndTypeParameters.ts, 5, 12)) +>Bar : Bar bar(): void; ->bar : () => void, Symbol(bar, Decl(cloduleAndTypeParameters.ts, 6, 24)) +>bar : () => void } export class Baz { ->Baz : Baz, Symbol(Baz, Decl(cloduleAndTypeParameters.ts, 8, 3)) +>Baz : Baz } } diff --git a/tests/baselines/reference/cloduleTest1.symbols b/tests/baselines/reference/cloduleTest1.symbols new file mode 100644 index 0000000000000..01759cfa1364a --- /dev/null +++ b/tests/baselines/reference/cloduleTest1.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/cloduleTest1.ts === + declare function $(selector: string): $; +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>selector : Symbol(selector, Decl(cloduleTest1.ts, 0, 21)) +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) + + interface $ { +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) + + addClass(className: string): $; +>addClass : Symbol(addClass, Decl(cloduleTest1.ts, 1, 15)) +>className : Symbol(className, Decl(cloduleTest1.ts, 2, 15)) +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) + } + module $ { +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) + + export interface AjaxSettings { +>AjaxSettings : Symbol(AjaxSettings, Decl(cloduleTest1.ts, 4, 12)) + } + export function ajax(options: AjaxSettings) { } +>ajax : Symbol(ajax, Decl(cloduleTest1.ts, 6, 5)) +>options : Symbol(options, Decl(cloduleTest1.ts, 7, 25)) +>AjaxSettings : Symbol(AjaxSettings, Decl(cloduleTest1.ts, 4, 12)) + } + var it: $ = $('.foo').addClass('bar'); +>it : Symbol(it, Decl(cloduleTest1.ts, 9, 5)) +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>$('.foo').addClass : Symbol($.addClass, Decl(cloduleTest1.ts, 1, 15)) +>$ : Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>addClass : Symbol($.addClass, Decl(cloduleTest1.ts, 1, 15)) + diff --git a/tests/baselines/reference/cloduleTest1.types b/tests/baselines/reference/cloduleTest1.types index 33c4d0f7b23ec..67c1fd6120fe2 100644 --- a/tests/baselines/reference/cloduleTest1.types +++ b/tests/baselines/reference/cloduleTest1.types @@ -1,36 +1,36 @@ === tests/cases/compiler/cloduleTest1.ts === declare function $(selector: string): $; ->$ : typeof $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) ->selector : string, Symbol(selector, Decl(cloduleTest1.ts, 0, 21)) ->$ : $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>$ : typeof $ +>selector : string +>$ : $ interface $ { ->$ : $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>$ : $ addClass(className: string): $; ->addClass : (className: string) => $, Symbol(addClass, Decl(cloduleTest1.ts, 1, 15)) ->className : string, Symbol(className, Decl(cloduleTest1.ts, 2, 15)) ->$ : $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>addClass : (className: string) => $ +>className : string +>$ : $ } module $ { ->$ : typeof $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>$ : typeof $ export interface AjaxSettings { ->AjaxSettings : AjaxSettings, Symbol(AjaxSettings, Decl(cloduleTest1.ts, 4, 12)) +>AjaxSettings : AjaxSettings } export function ajax(options: AjaxSettings) { } ->ajax : (options: AjaxSettings) => void, Symbol(ajax, Decl(cloduleTest1.ts, 6, 5)) ->options : AjaxSettings, Symbol(options, Decl(cloduleTest1.ts, 7, 25)) ->AjaxSettings : AjaxSettings, Symbol(AjaxSettings, Decl(cloduleTest1.ts, 4, 12)) +>ajax : (options: AjaxSettings) => void +>options : AjaxSettings +>AjaxSettings : AjaxSettings } var it: $ = $('.foo').addClass('bar'); ->it : $, Symbol(it, Decl(cloduleTest1.ts, 9, 5)) ->$ : $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>it : $ +>$ : $ >$('.foo').addClass('bar') : $ ->$('.foo').addClass : (className: string) => $, Symbol($.addClass, Decl(cloduleTest1.ts, 1, 15)) +>$('.foo').addClass : (className: string) => $ >$('.foo') : $ ->$ : typeof $, Symbol($, Decl(cloduleTest1.ts, 0, 0), Decl(cloduleTest1.ts, 0, 42), Decl(cloduleTest1.ts, 3, 3)) +>$ : typeof $ >'.foo' : string ->addClass : (className: string) => $, Symbol($.addClass, Decl(cloduleTest1.ts, 1, 15)) +>addClass : (className: string) => $ >'bar' : string diff --git a/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.symbols b/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.symbols new file mode 100644 index 0000000000000..7f93d361dd947 --- /dev/null +++ b/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/cloduleWithPriorUninstantiatedModule.ts === +// Non-ambient & uninstantiated module. +module Moclodule { +>Moclodule : Symbol(Moclodule, Decl(cloduleWithPriorUninstantiatedModule.ts, 0, 0), Decl(cloduleWithPriorUninstantiatedModule.ts, 5, 1), Decl(cloduleWithPriorUninstantiatedModule.ts, 8, 1)) + + export interface Someinterface { +>Someinterface : Symbol(Someinterface, Decl(cloduleWithPriorUninstantiatedModule.ts, 1, 18)) + + foo(): void; +>foo : Symbol(foo, Decl(cloduleWithPriorUninstantiatedModule.ts, 2, 36)) + } +} + +class Moclodule { +>Moclodule : Symbol(Moclodule, Decl(cloduleWithPriorUninstantiatedModule.ts, 0, 0), Decl(cloduleWithPriorUninstantiatedModule.ts, 5, 1), Decl(cloduleWithPriorUninstantiatedModule.ts, 8, 1)) +} + +// Instantiated module. +module Moclodule { +>Moclodule : Symbol(Moclodule, Decl(cloduleWithPriorUninstantiatedModule.ts, 0, 0), Decl(cloduleWithPriorUninstantiatedModule.ts, 5, 1), Decl(cloduleWithPriorUninstantiatedModule.ts, 8, 1)) + + export class Manager { +>Manager : Symbol(Manager, Decl(cloduleWithPriorUninstantiatedModule.ts, 11, 18)) + } +} diff --git a/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.types b/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.types index a14cc0f9f5c8d..8dc14646a6b7d 100644 --- a/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.types +++ b/tests/baselines/reference/cloduleWithPriorUninstantiatedModule.types @@ -1,25 +1,25 @@ === tests/cases/compiler/cloduleWithPriorUninstantiatedModule.ts === // Non-ambient & uninstantiated module. module Moclodule { ->Moclodule : typeof Moclodule, Symbol(Moclodule, Decl(cloduleWithPriorUninstantiatedModule.ts, 0, 0), Decl(cloduleWithPriorUninstantiatedModule.ts, 5, 1), Decl(cloduleWithPriorUninstantiatedModule.ts, 8, 1)) +>Moclodule : typeof Moclodule export interface Someinterface { ->Someinterface : Someinterface, Symbol(Someinterface, Decl(cloduleWithPriorUninstantiatedModule.ts, 1, 18)) +>Someinterface : Someinterface foo(): void; ->foo : () => void, Symbol(foo, Decl(cloduleWithPriorUninstantiatedModule.ts, 2, 36)) +>foo : () => void } } class Moclodule { ->Moclodule : Moclodule, Symbol(Moclodule, Decl(cloduleWithPriorUninstantiatedModule.ts, 0, 0), Decl(cloduleWithPriorUninstantiatedModule.ts, 5, 1), Decl(cloduleWithPriorUninstantiatedModule.ts, 8, 1)) +>Moclodule : Moclodule } // Instantiated module. module Moclodule { ->Moclodule : typeof Moclodule, Symbol(Moclodule, Decl(cloduleWithPriorUninstantiatedModule.ts, 0, 0), Decl(cloduleWithPriorUninstantiatedModule.ts, 5, 1), Decl(cloduleWithPriorUninstantiatedModule.ts, 8, 1)) +>Moclodule : typeof Moclodule export class Manager { ->Manager : Manager, Symbol(Manager, Decl(cloduleWithPriorUninstantiatedModule.ts, 11, 18)) +>Manager : Manager } } diff --git a/tests/baselines/reference/cloduleWithRecursiveReference.symbols b/tests/baselines/reference/cloduleWithRecursiveReference.symbols new file mode 100644 index 0000000000000..22d5d64f72c2a --- /dev/null +++ b/tests/baselines/reference/cloduleWithRecursiveReference.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/cloduleWithRecursiveReference.ts === +module M +>M : Symbol(M, Decl(cloduleWithRecursiveReference.ts, 0, 0)) +{ + export class C { } +>C : Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) + + export module C { +>C : Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) + + export var C = M.C +>C : Symbol(C, Decl(cloduleWithRecursiveReference.ts, 4, 14)) +>M.C : Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) +>M : Symbol(M, Decl(cloduleWithRecursiveReference.ts, 0, 0)) +>C : Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) + } +} diff --git a/tests/baselines/reference/cloduleWithRecursiveReference.types b/tests/baselines/reference/cloduleWithRecursiveReference.types index bd3e3e10e6ba7..8a5df1c5a9fe5 100644 --- a/tests/baselines/reference/cloduleWithRecursiveReference.types +++ b/tests/baselines/reference/cloduleWithRecursiveReference.types @@ -1,17 +1,17 @@ === tests/cases/compiler/cloduleWithRecursiveReference.ts === module M ->M : typeof M, Symbol(M, Decl(cloduleWithRecursiveReference.ts, 0, 0)) +>M : typeof M { export class C { } ->C : C, Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) +>C : C export module C { ->C : typeof M.C, Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) +>C : typeof M.C export var C = M.C ->C : typeof M.C, Symbol(C, Decl(cloduleWithRecursiveReference.ts, 4, 14)) ->M.C : typeof M.C, Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) ->M : typeof M, Symbol(M, Decl(cloduleWithRecursiveReference.ts, 0, 0)) ->C : typeof M.C, Symbol(C, Decl(cloduleWithRecursiveReference.ts, 1, 1), Decl(cloduleWithRecursiveReference.ts, 2, 21)) +>C : typeof M.C +>M.C : typeof M.C +>M : typeof M +>C : typeof M.C } } diff --git a/tests/baselines/reference/collisionArgumentsInType.symbols b/tests/baselines/reference/collisionArgumentsInType.symbols new file mode 100644 index 0000000000000..94c9374c7cda5 --- /dev/null +++ b/tests/baselines/reference/collisionArgumentsInType.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/collisionArgumentsInType.ts === +var v1: (i: number, ...arguments) => void; // no error - no code gen +>v1 : Symbol(v1, Decl(collisionArgumentsInType.ts, 0, 3)) +>i : Symbol(i, Decl(collisionArgumentsInType.ts, 0, 9)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 0, 19)) + +var v12: (arguments: number, ...restParameters) => void; // no error - no code gen +>v12 : Symbol(v12, Decl(collisionArgumentsInType.ts, 1, 3)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 1, 10)) +>restParameters : Symbol(restParameters, Decl(collisionArgumentsInType.ts, 1, 28)) + +var v2: { +>v2 : Symbol(v2, Decl(collisionArgumentsInType.ts, 2, 3)) + + (arguments: number, ...restParameters); // no error - no code gen +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 3, 5)) +>restParameters : Symbol(restParameters, Decl(collisionArgumentsInType.ts, 3, 23)) + + new (arguments: number, ...restParameters); // no error - no code gen +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 4, 9)) +>restParameters : Symbol(restParameters, Decl(collisionArgumentsInType.ts, 4, 27)) + + foo(arguments: number, ...restParameters); // no error - no code gen +>foo : Symbol(foo, Decl(collisionArgumentsInType.ts, 4, 47)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 5, 8)) +>restParameters : Symbol(restParameters, Decl(collisionArgumentsInType.ts, 5, 26)) + + prop: (arguments: number, ...restParameters) => void; // no error - no code gen +>prop : Symbol(prop, Decl(collisionArgumentsInType.ts, 5, 46)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 6, 11)) +>restParameters : Symbol(restParameters, Decl(collisionArgumentsInType.ts, 6, 29)) +} +var v21: { +>v21 : Symbol(v21, Decl(collisionArgumentsInType.ts, 8, 3)) + + (i: number, ...arguments); // no error - no code gen +>i : Symbol(i, Decl(collisionArgumentsInType.ts, 9, 5)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 9, 15)) + + new (i: number, ...arguments); // no error - no code gen +>i : Symbol(i, Decl(collisionArgumentsInType.ts, 10, 9)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 10, 19)) + + foo(i: number, ...arguments); // no error - no code gen +>foo : Symbol(foo, Decl(collisionArgumentsInType.ts, 10, 34)) +>i : Symbol(i, Decl(collisionArgumentsInType.ts, 11, 8)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 11, 18)) + + prop: (i: number, ...arguments) => void; // no error - no code gen +>prop : Symbol(prop, Decl(collisionArgumentsInType.ts, 11, 33)) +>i : Symbol(i, Decl(collisionArgumentsInType.ts, 12, 11)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInType.ts, 12, 21)) +} diff --git a/tests/baselines/reference/collisionArgumentsInType.types b/tests/baselines/reference/collisionArgumentsInType.types index 1aa2a07785e82..a8096e2e7f52a 100644 --- a/tests/baselines/reference/collisionArgumentsInType.types +++ b/tests/baselines/reference/collisionArgumentsInType.types @@ -1,53 +1,53 @@ === tests/cases/compiler/collisionArgumentsInType.ts === var v1: (i: number, ...arguments) => void; // no error - no code gen ->v1 : (i: number, ...arguments: any[]) => void, Symbol(v1, Decl(collisionArgumentsInType.ts, 0, 3)) ->i : number, Symbol(i, Decl(collisionArgumentsInType.ts, 0, 9)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInType.ts, 0, 19)) +>v1 : (i: number, ...arguments: any[]) => void +>i : number +>arguments : any[] var v12: (arguments: number, ...restParameters) => void; // no error - no code gen ->v12 : (arguments: number, ...restParameters: any[]) => void, Symbol(v12, Decl(collisionArgumentsInType.ts, 1, 3)) ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInType.ts, 1, 10)) ->restParameters : any[], Symbol(restParameters, Decl(collisionArgumentsInType.ts, 1, 28)) +>v12 : (arguments: number, ...restParameters: any[]) => void +>arguments : number +>restParameters : any[] var v2: { ->v2 : { (arguments: number, ...restParameters: any[]): any; new (arguments: number, ...restParameters: any[]): any; foo(arguments: number, ...restParameters: any[]): any; prop: (arguments: number, ...restParameters: any[]) => void; }, Symbol(v2, Decl(collisionArgumentsInType.ts, 2, 3)) +>v2 : { (arguments: number, ...restParameters: any[]): any; new (arguments: number, ...restParameters: any[]): any; foo(arguments: number, ...restParameters: any[]): any; prop: (arguments: number, ...restParameters: any[]) => void; } (arguments: number, ...restParameters); // no error - no code gen ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInType.ts, 3, 5)) ->restParameters : any[], Symbol(restParameters, Decl(collisionArgumentsInType.ts, 3, 23)) +>arguments : number +>restParameters : any[] new (arguments: number, ...restParameters); // no error - no code gen ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInType.ts, 4, 9)) ->restParameters : any[], Symbol(restParameters, Decl(collisionArgumentsInType.ts, 4, 27)) +>arguments : number +>restParameters : any[] foo(arguments: number, ...restParameters); // no error - no code gen ->foo : (arguments: number, ...restParameters: any[]) => any, Symbol(foo, Decl(collisionArgumentsInType.ts, 4, 47)) ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInType.ts, 5, 8)) ->restParameters : any[], Symbol(restParameters, Decl(collisionArgumentsInType.ts, 5, 26)) +>foo : (arguments: number, ...restParameters: any[]) => any +>arguments : number +>restParameters : any[] prop: (arguments: number, ...restParameters) => void; // no error - no code gen ->prop : (arguments: number, ...restParameters: any[]) => void, Symbol(prop, Decl(collisionArgumentsInType.ts, 5, 46)) ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInType.ts, 6, 11)) ->restParameters : any[], Symbol(restParameters, Decl(collisionArgumentsInType.ts, 6, 29)) +>prop : (arguments: number, ...restParameters: any[]) => void +>arguments : number +>restParameters : any[] } var v21: { ->v21 : { (i: number, ...arguments: any[]): any; new (i: number, ...arguments: any[]): any; foo(i: number, ...arguments: any[]): any; prop: (i: number, ...arguments: any[]) => void; }, Symbol(v21, Decl(collisionArgumentsInType.ts, 8, 3)) +>v21 : { (i: number, ...arguments: any[]): any; new (i: number, ...arguments: any[]): any; foo(i: number, ...arguments: any[]): any; prop: (i: number, ...arguments: any[]) => void; } (i: number, ...arguments); // no error - no code gen ->i : number, Symbol(i, Decl(collisionArgumentsInType.ts, 9, 5)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInType.ts, 9, 15)) +>i : number +>arguments : any[] new (i: number, ...arguments); // no error - no code gen ->i : number, Symbol(i, Decl(collisionArgumentsInType.ts, 10, 9)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInType.ts, 10, 19)) +>i : number +>arguments : any[] foo(i: number, ...arguments); // no error - no code gen ->foo : (i: number, ...arguments: any[]) => any, Symbol(foo, Decl(collisionArgumentsInType.ts, 10, 34)) ->i : number, Symbol(i, Decl(collisionArgumentsInType.ts, 11, 8)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInType.ts, 11, 18)) +>foo : (i: number, ...arguments: any[]) => any +>i : number +>arguments : any[] prop: (i: number, ...arguments) => void; // no error - no code gen ->prop : (i: number, ...arguments: any[]) => void, Symbol(prop, Decl(collisionArgumentsInType.ts, 11, 33)) ->i : number, Symbol(i, Decl(collisionArgumentsInType.ts, 12, 11)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInType.ts, 12, 21)) +>prop : (i: number, ...arguments: any[]) => void +>i : number +>arguments : any[] } diff --git a/tests/baselines/reference/collisionArgumentsInterfaceMembers.symbols b/tests/baselines/reference/collisionArgumentsInterfaceMembers.symbols new file mode 100644 index 0000000000000..a8856c37a4cec --- /dev/null +++ b/tests/baselines/reference/collisionArgumentsInterfaceMembers.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/collisionArgumentsInterfaceMembers.ts === +// call +interface i1 { +>i1 : Symbol(i1, Decl(collisionArgumentsInterfaceMembers.ts, 0, 0)) + + (i: number, ...arguments); // no error - no code gen +>i : Symbol(i, Decl(collisionArgumentsInterfaceMembers.ts, 2, 5)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 2, 15)) +} +interface i12 { +>i12 : Symbol(i12, Decl(collisionArgumentsInterfaceMembers.ts, 3, 1)) + + (arguments: number, ...rest); // no error - no code gen +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 5, 5)) +>rest : Symbol(rest, Decl(collisionArgumentsInterfaceMembers.ts, 5, 23)) +} +interface i1NoError { +>i1NoError : Symbol(i1NoError, Decl(collisionArgumentsInterfaceMembers.ts, 6, 1)) + + (arguments: number); // no error +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 8, 5)) +} + +// new +interface i2 { +>i2 : Symbol(i2, Decl(collisionArgumentsInterfaceMembers.ts, 9, 1)) + + new (i: number, ...arguments); // no error - no code gen +>i : Symbol(i, Decl(collisionArgumentsInterfaceMembers.ts, 13, 9)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 13, 19)) +} +interface i21 { +>i21 : Symbol(i21, Decl(collisionArgumentsInterfaceMembers.ts, 14, 1)) + + new (arguments: number, ...rest); // no error - no code gen +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 16, 9)) +>rest : Symbol(rest, Decl(collisionArgumentsInterfaceMembers.ts, 16, 27)) +} +interface i2NoError { +>i2NoError : Symbol(i2NoError, Decl(collisionArgumentsInterfaceMembers.ts, 17, 1)) + + new (arguments: number); // no error +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 19, 9)) +} + +// method +interface i3 { +>i3 : Symbol(i3, Decl(collisionArgumentsInterfaceMembers.ts, 20, 1)) + + foo(i: number, ...arguments); // no error - no code gen +>foo : Symbol(foo, Decl(collisionArgumentsInterfaceMembers.ts, 23, 14)) +>i : Symbol(i, Decl(collisionArgumentsInterfaceMembers.ts, 24, 8)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 24, 18)) + + foo1(arguments: number, ...rest); // no error - no code gen +>foo1 : Symbol(foo1, Decl(collisionArgumentsInterfaceMembers.ts, 24, 33)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 25, 9)) +>rest : Symbol(rest, Decl(collisionArgumentsInterfaceMembers.ts, 25, 27)) + + fooNoError(arguments: number); // no error +>fooNoError : Symbol(fooNoError, Decl(collisionArgumentsInterfaceMembers.ts, 25, 37)) +>arguments : Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 26, 15)) +} diff --git a/tests/baselines/reference/collisionArgumentsInterfaceMembers.types b/tests/baselines/reference/collisionArgumentsInterfaceMembers.types index ceca0c21abdd1..6edb0a7ebed3b 100644 --- a/tests/baselines/reference/collisionArgumentsInterfaceMembers.types +++ b/tests/baselines/reference/collisionArgumentsInterfaceMembers.types @@ -1,63 +1,63 @@ === tests/cases/compiler/collisionArgumentsInterfaceMembers.ts === // call interface i1 { ->i1 : i1, Symbol(i1, Decl(collisionArgumentsInterfaceMembers.ts, 0, 0)) +>i1 : i1 (i: number, ...arguments); // no error - no code gen ->i : number, Symbol(i, Decl(collisionArgumentsInterfaceMembers.ts, 2, 5)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 2, 15)) +>i : number +>arguments : any[] } interface i12 { ->i12 : i12, Symbol(i12, Decl(collisionArgumentsInterfaceMembers.ts, 3, 1)) +>i12 : i12 (arguments: number, ...rest); // no error - no code gen ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 5, 5)) ->rest : any[], Symbol(rest, Decl(collisionArgumentsInterfaceMembers.ts, 5, 23)) +>arguments : number +>rest : any[] } interface i1NoError { ->i1NoError : i1NoError, Symbol(i1NoError, Decl(collisionArgumentsInterfaceMembers.ts, 6, 1)) +>i1NoError : i1NoError (arguments: number); // no error ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 8, 5)) +>arguments : number } // new interface i2 { ->i2 : i2, Symbol(i2, Decl(collisionArgumentsInterfaceMembers.ts, 9, 1)) +>i2 : i2 new (i: number, ...arguments); // no error - no code gen ->i : number, Symbol(i, Decl(collisionArgumentsInterfaceMembers.ts, 13, 9)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 13, 19)) +>i : number +>arguments : any[] } interface i21 { ->i21 : i21, Symbol(i21, Decl(collisionArgumentsInterfaceMembers.ts, 14, 1)) +>i21 : i21 new (arguments: number, ...rest); // no error - no code gen ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 16, 9)) ->rest : any[], Symbol(rest, Decl(collisionArgumentsInterfaceMembers.ts, 16, 27)) +>arguments : number +>rest : any[] } interface i2NoError { ->i2NoError : i2NoError, Symbol(i2NoError, Decl(collisionArgumentsInterfaceMembers.ts, 17, 1)) +>i2NoError : i2NoError new (arguments: number); // no error ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 19, 9)) +>arguments : number } // method interface i3 { ->i3 : i3, Symbol(i3, Decl(collisionArgumentsInterfaceMembers.ts, 20, 1)) +>i3 : i3 foo(i: number, ...arguments); // no error - no code gen ->foo : (i: number, ...arguments: any[]) => any, Symbol(foo, Decl(collisionArgumentsInterfaceMembers.ts, 23, 14)) ->i : number, Symbol(i, Decl(collisionArgumentsInterfaceMembers.ts, 24, 8)) ->arguments : any[], Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 24, 18)) +>foo : (i: number, ...arguments: any[]) => any +>i : number +>arguments : any[] foo1(arguments: number, ...rest); // no error - no code gen ->foo1 : (arguments: number, ...rest: any[]) => any, Symbol(foo1, Decl(collisionArgumentsInterfaceMembers.ts, 24, 33)) ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 25, 9)) ->rest : any[], Symbol(rest, Decl(collisionArgumentsInterfaceMembers.ts, 25, 27)) +>foo1 : (arguments: number, ...rest: any[]) => any +>arguments : number +>rest : any[] fooNoError(arguments: number); // no error ->fooNoError : (arguments: number) => any, Symbol(fooNoError, Decl(collisionArgumentsInterfaceMembers.ts, 25, 37)) ->arguments : number, Symbol(arguments, Decl(collisionArgumentsInterfaceMembers.ts, 26, 15)) +>fooNoError : (arguments: number) => any +>arguments : number } diff --git a/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.symbols b/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.symbols new file mode 100644 index 0000000000000..9f5bfa3648516 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/collisionCodeGenEnumWithEnumMemberConflict.ts === +enum Color { +>Color : Symbol(Color, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 0, 0)) + + Color, +>Color : Symbol(Color.Color, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 0, 12)) + + Thing = Color +>Thing : Symbol(Color.Thing, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 1, 10)) +>Color : Symbol(Color.Color, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 0, 12)) +} diff --git a/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.types b/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.types index 536910818c52f..398179b5cdcf2 100644 --- a/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.types +++ b/tests/baselines/reference/collisionCodeGenEnumWithEnumMemberConflict.types @@ -1,11 +1,11 @@ === tests/cases/compiler/collisionCodeGenEnumWithEnumMemberConflict.ts === enum Color { ->Color : Color, Symbol(Color, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 0, 0)) +>Color : Color Color, ->Color : Color, Symbol(Color.Color, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 0, 12)) +>Color : Color Thing = Color ->Thing : Color, Symbol(Color.Thing, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 1, 10)) ->Color : Color, Symbol(Color.Color, Decl(collisionCodeGenEnumWithEnumMemberConflict.ts, 0, 12)) +>Thing : Color +>Color : Color } diff --git a/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.symbols b/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.symbols new file mode 100644 index 0000000000000..28665abd09843 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithConstructorChildren.ts === +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 13, 1)) + + export var x = 3; +>x : Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) + + class c { +>c : Symbol(c, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 21)) + + constructor(M, p = x) { +>M : Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 3, 20)) +>p : Symbol(p, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 3, 22)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) + } + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 13, 1)) + + class d { +>d : Symbol(d, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 8, 10)) + + constructor(private M, p = x) { +>M : Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 10, 20)) +>p : Symbol(p, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 10, 30)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) + } + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 13, 1)) + + class d2 { +>d2 : Symbol(d2, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 15, 10)) + + constructor() { + var M = 10; +>M : Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 18, 15)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 19, 15)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) + } + } +} diff --git a/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.types b/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.types index 3280204d4d648..9c6fbac15394c 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.types @@ -1,50 +1,50 @@ === tests/cases/compiler/collisionCodeGenModuleWithConstructorChildren.ts === module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 13, 1)) +>M : typeof M export var x = 3; ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) +>x : number >3 : number class c { ->c : c, Symbol(c, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 21)) +>c : c constructor(M, p = x) { ->M : any, Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 3, 20)) ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 3, 22)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) +>M : any +>p : number +>x : number } } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 13, 1)) +>M : typeof M class d { ->d : d, Symbol(d, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 8, 10)) +>d : d constructor(private M, p = x) { ->M : any, Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 10, 20)) ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 10, 30)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) +>M : any +>p : number +>x : number } } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithConstructorChildren.ts, 13, 1)) +>M : typeof M class d2 { ->d2 : d2, Symbol(d2, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 15, 10)) +>d2 : d2 constructor() { var M = 10; ->M : number, Symbol(M, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 18, 15)) +>M : number >10 : number var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 19, 15)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithConstructorChildren.ts, 1, 14)) +>p : number +>x : number } } } diff --git a/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.symbols b/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.symbols new file mode 100644 index 0000000000000..f44b0e5c11e14 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithEnumMemberConflict.ts === +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 0, 0)) + + enum e { +>e : Symbol(e, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 0, 11)) + + m1, +>m1 : Symbol(e.m1, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 1, 12)) + + m2 = m1 +>m2 : Symbol(e.m2, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 2, 11)) +>m1 : Symbol(e.m1, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 1, 12)) + } +} diff --git a/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.types b/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.types index add5b03219805..527c8930fcb64 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithEnumMemberConflict.types @@ -1,15 +1,15 @@ === tests/cases/compiler/collisionCodeGenModuleWithEnumMemberConflict.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 0, 0)) +>m1 : typeof m1 enum e { ->e : e, Symbol(e, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 0, 11)) +>e : e m1, ->m1 : e, Symbol(e.m1, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 1, 12)) +>m1 : e m2 = m1 ->m2 : e, Symbol(e.m2, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 2, 11)) ->m1 : e, Symbol(e.m1, Decl(collisionCodeGenModuleWithEnumMemberConflict.ts, 1, 12)) +>m2 : e +>m1 : e } } diff --git a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.symbols b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.symbols new file mode 100644 index 0000000000000..eeac7be0fdfa7 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithFunctionChildren.ts === +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 3, 1), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 10, 1)) + + export var x = 3; +>x : Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) + + function fn(M, p = x) { } +>fn : Symbol(fn, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 21)) +>M : Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 2, 16)) +>p : Symbol(p, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 2, 18)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 3, 1), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 10, 1)) + + function fn2() { +>fn2 : Symbol(fn2, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 5, 10)) + + var M; +>M : Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 7, 11)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 8, 11)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 3, 1), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 10, 1)) + + function fn3() { +>fn3 : Symbol(fn3, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 12, 10)) + + function M() { +>M : Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 13, 20)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 15, 15)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) + } + } +} diff --git a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.types b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.types index 7145739d366c9..5c99bc7b40bb5 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.types @@ -1,45 +1,45 @@ === tests/cases/compiler/collisionCodeGenModuleWithFunctionChildren.ts === module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 3, 1), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 10, 1)) +>M : typeof M export var x = 3; ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) +>x : number >3 : number function fn(M, p = x) { } ->fn : (M: any, p?: number) => void, Symbol(fn, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 21)) ->M : any, Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 2, 16)) ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 2, 18)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) +>fn : (M: any, p?: number) => void +>M : any +>p : number +>x : number } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 3, 1), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 10, 1)) +>M : typeof M function fn2() { ->fn2 : () => void, Symbol(fn2, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 5, 10)) +>fn2 : () => void var M; ->M : any, Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 7, 11)) +>M : any var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 8, 11)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) +>p : number +>x : number } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 3, 1), Decl(collisionCodeGenModuleWithFunctionChildren.ts, 10, 1)) +>M : typeof M function fn3() { ->fn3 : () => void, Symbol(fn3, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 12, 10)) +>fn3 : () => void function M() { ->M : () => void, Symbol(M, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 13, 20)) +>M : () => void var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 15, 15)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithFunctionChildren.ts, 1, 14)) +>p : number +>x : number } } } diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.symbols b/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.symbols new file mode 100644 index 0000000000000..dba4163f16e6c --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithMemberClassConflict.ts === +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 0)) + + export class m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 11)) + } +} +var foo = new m1.m1(); +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 13, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 14, 3)) +>m1.m1 : Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 11)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 0)) +>m1 : Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 11)) + +module m2 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 22)) + + export class m2 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 6, 11)) + } + + export class _m2 { +>_m2 : Symbol(_m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 8, 5)) + } +} +var foo = new m2.m2(); +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 13, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 14, 3)) +>m2.m2 : Symbol(m2.m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 6, 11)) +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 22)) +>m2 : Symbol(m2.m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 6, 11)) + +var foo = new m2._m2(); +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 13, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 14, 3)) +>m2._m2 : Symbol(m2._m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 8, 5)) +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 22)) +>_m2 : Symbol(m2._m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 8, 5)) + diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.types b/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.types index bc272354d6bcd..edbe25b7a7d87 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.types @@ -1,40 +1,40 @@ === tests/cases/compiler/collisionCodeGenModuleWithMemberClassConflict.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 0)) +>m1 : typeof m1 export class m1 { ->m1 : m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 11)) +>m1 : m1 } } var foo = new m1.m1(); ->foo : m1.m1, Symbol(foo, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 13, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 14, 3)) +>foo : m1.m1 >new m1.m1() : m1.m1 ->m1.m1 : typeof m1.m1, Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 11)) ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 0)) ->m1 : typeof m1.m1, Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 0, 11)) +>m1.m1 : typeof m1.m1 +>m1 : typeof m1 +>m1 : typeof m1.m1 module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 22)) +>m2 : typeof m2 export class m2 { ->m2 : m2, Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 6, 11)) +>m2 : m2 } export class _m2 { ->_m2 : _m2, Symbol(_m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 8, 5)) +>_m2 : _m2 } } var foo = new m2.m2(); ->foo : m1.m1, Symbol(foo, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 13, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 14, 3)) +>foo : m1.m1 >new m2.m2() : m2.m2 ->m2.m2 : typeof m2.m2, Symbol(m2.m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 6, 11)) ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 22)) ->m2 : typeof m2.m2, Symbol(m2.m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 6, 11)) +>m2.m2 : typeof m2.m2 +>m2 : typeof m2 +>m2 : typeof m2.m2 var foo = new m2._m2(); ->foo : m1.m1, Symbol(foo, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 13, 3), Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 14, 3)) +>foo : m1.m1 >new m2._m2() : m2._m2 ->m2._m2 : typeof m2._m2, Symbol(m2._m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 8, 5)) ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 4, 22)) ->_m2 : typeof m2._m2, Symbol(m2._m2, Decl(collisionCodeGenModuleWithMemberClassConflict.ts, 8, 5)) +>m2._m2 : typeof m2._m2 +>m2 : typeof m2 +>_m2 : typeof m2._m2 diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.symbols b/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.symbols new file mode 100644 index 0000000000000..c9fc2e8175f99 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithMemberInterfaceConflict.ts === +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 0)) + + export interface m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 11)) + } + export class m2 implements m1 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 2, 5)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 11)) + } +} +var foo = new m1.m2(); +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 6, 3)) +>m1.m2 : Symbol(m1.m2, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 2, 5)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 0)) +>m2 : Symbol(m1.m2, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 2, 5)) + diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.types b/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.types index 2fb33b67f8c7f..e2f36aeaa8fd5 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberInterfaceConflict.types @@ -1,19 +1,19 @@ === tests/cases/compiler/collisionCodeGenModuleWithMemberInterfaceConflict.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 0)) +>m1 : typeof m1 export interface m1 { ->m1 : m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 11)) +>m1 : m1 } export class m2 implements m1 { ->m2 : m2, Symbol(m2, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 2, 5)) ->m1 : m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 11)) +>m2 : m2 +>m1 : m1 } } var foo = new m1.m2(); ->foo : m1.m2, Symbol(foo, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 6, 3)) +>foo : m1.m2 >new m1.m2() : m1.m2 ->m1.m2 : typeof m1.m2, Symbol(m1.m2, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 2, 5)) ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 0, 0)) ->m2 : typeof m1.m2, Symbol(m1.m2, Decl(collisionCodeGenModuleWithMemberInterfaceConflict.ts, 2, 5)) +>m1.m2 : typeof m1.m2 +>m1 : typeof m1 +>m2 : typeof m1.m2 diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.symbols b/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.symbols new file mode 100644 index 0000000000000..b2b5cb2e45556 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithMemberVariable.ts === +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 0, 0)) + + export var m1 = 10; +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) + + var b = m1; +>b : Symbol(b, Decl(collisionCodeGenModuleWithMemberVariable.ts, 2, 7)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) +} +var foo = m1.m1; +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithMemberVariable.ts, 4, 3)) +>m1.m1 : Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 0, 0)) +>m1 : Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) + diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.types b/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.types index 452b889b62ed3..651ba5344ad49 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberVariable.types @@ -1,18 +1,18 @@ === tests/cases/compiler/collisionCodeGenModuleWithMemberVariable.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 0, 0)) +>m1 : typeof m1 export var m1 = 10; ->m1 : number, Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) +>m1 : number >10 : number var b = m1; ->b : number, Symbol(b, Decl(collisionCodeGenModuleWithMemberVariable.ts, 2, 7)) ->m1 : number, Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) +>b : number +>m1 : number } var foo = m1.m1; ->foo : number, Symbol(foo, Decl(collisionCodeGenModuleWithMemberVariable.ts, 4, 3)) ->m1.m1 : number, Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 0, 0)) ->m1 : number, Symbol(m1.m1, Decl(collisionCodeGenModuleWithMemberVariable.ts, 1, 14)) +>foo : number +>m1.m1 : number +>m1 : typeof m1 +>m1 : number diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.symbols b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.symbols new file mode 100644 index 0000000000000..02105ce42e60e --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.symbols @@ -0,0 +1,68 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithMethodChildren.ts === +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) + + export var x = 3; +>x : Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) + + class c { +>c : Symbol(c, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 21)) + + fn(M, p = x) { } +>fn : Symbol(fn, Decl(collisionCodeGenModuleWithMethodChildren.ts, 2, 13)) +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 3, 11)) +>p : Symbol(p, Decl(collisionCodeGenModuleWithMethodChildren.ts, 3, 13)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) + + class d { +>d : Symbol(d, Decl(collisionCodeGenModuleWithMethodChildren.ts, 7, 10)) + + fn2() { +>fn2 : Symbol(fn2, Decl(collisionCodeGenModuleWithMethodChildren.ts, 8, 13)) + + var M; +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 10, 15)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithMethodChildren.ts, 11, 15)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) + } + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) + + class e { +>e : Symbol(e, Decl(collisionCodeGenModuleWithMethodChildren.ts, 16, 10)) + + fn3() { +>fn3 : Symbol(fn3, Decl(collisionCodeGenModuleWithMethodChildren.ts, 17, 13)) + + function M() { +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 18, 15)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithMethodChildren.ts, 20, 19)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) + } + } + } +} + +module M { // Shouldnt bn _M +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) + + class f { +>f : Symbol(f, Decl(collisionCodeGenModuleWithMethodChildren.ts, 26, 10)) + + M() { +>M : Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 27, 13)) + } + } +} diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.types b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.types index 5c1172a62b3ac..e7c6d9021eb56 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.types @@ -1,69 +1,69 @@ === tests/cases/compiler/collisionCodeGenModuleWithMethodChildren.ts === module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) +>M : typeof M export var x = 3; ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) +>x : number >3 : number class c { ->c : c, Symbol(c, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 21)) +>c : c fn(M, p = x) { } ->fn : (M: any, p?: number) => void, Symbol(fn, Decl(collisionCodeGenModuleWithMethodChildren.ts, 2, 13)) ->M : any, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 3, 11)) ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithMethodChildren.ts, 3, 13)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) +>fn : (M: any, p?: number) => void +>M : any +>p : number +>x : number } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) +>M : typeof M class d { ->d : d, Symbol(d, Decl(collisionCodeGenModuleWithMethodChildren.ts, 7, 10)) +>d : d fn2() { ->fn2 : () => void, Symbol(fn2, Decl(collisionCodeGenModuleWithMethodChildren.ts, 8, 13)) +>fn2 : () => void var M; ->M : any, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 10, 15)) +>M : any var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithMethodChildren.ts, 11, 15)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) +>p : number +>x : number } } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) +>M : typeof M class e { ->e : e, Symbol(e, Decl(collisionCodeGenModuleWithMethodChildren.ts, 16, 10)) +>e : e fn3() { ->fn3 : () => void, Symbol(fn3, Decl(collisionCodeGenModuleWithMethodChildren.ts, 17, 13)) +>fn3 : () => void function M() { ->M : () => void, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 18, 15)) +>M : () => void var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithMethodChildren.ts, 20, 19)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithMethodChildren.ts, 1, 14)) +>p : number +>x : number } } } } module M { // Shouldnt bn _M ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithMethodChildren.ts, 5, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 14, 1), Decl(collisionCodeGenModuleWithMethodChildren.ts, 24, 1)) +>M : typeof M class f { ->f : f, Symbol(f, Decl(collisionCodeGenModuleWithMethodChildren.ts, 26, 10)) +>f : f M() { ->M : () => void, Symbol(M, Decl(collisionCodeGenModuleWithMethodChildren.ts, 27, 13)) +>M : () => void } } } diff --git a/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.symbols b/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.symbols new file mode 100644 index 0000000000000..42cc1d51007bf --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.symbols @@ -0,0 +1,91 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithModuleChildren.ts === +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) + + export var x = 3; +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) + + module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 21)) + + var M = 10; +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 3, 11)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 4, 11)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) + + module m2 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 8, 10)) + + class M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 9, 15)) + } + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 12, 11)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) + + var p2 = new M(); +>p2 : Symbol(p2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 13, 11)) +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 9, 15)) + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) + + module m3 { +>m3 : Symbol(m3, Decl(collisionCodeGenModuleWithModuleChildren.ts, 17, 10)) + + function M() { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 18, 15)) + } + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 21, 11)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) + + var p2 = M(); +>p2 : Symbol(p2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 22, 11)) +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 18, 15)) + } +} + +module M { // shouldnt be _M +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) + + module m3 { +>m3 : Symbol(m3, Decl(collisionCodeGenModuleWithModuleChildren.ts, 26, 10)) + + interface M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 27, 15)) + } + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 30, 11)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) + + var p2: M; +>p2 : Symbol(p2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 31, 11)) +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 27, 15)) + } +} + +module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) + + module m4 { +>m4 : Symbol(m4, Decl(collisionCodeGenModuleWithModuleChildren.ts, 35, 10)) + + module M { +>M : Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 36, 15)) + + var p = x; +>p : Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 38, 15)) +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) + } + } +} diff --git a/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.types b/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.types index 53b85b4475e47..4ffaf6dad0479 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.types @@ -1,95 +1,95 @@ === tests/cases/compiler/collisionCodeGenModuleWithModuleChildren.ts === module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) +>M : typeof M export var x = 3; ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) +>x : number >3 : number module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 21)) +>m1 : typeof m1 var M = 10; ->M : number, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 3, 11)) +>M : number >10 : number var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 4, 11)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) +>p : number +>x : number } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) +>M : typeof M module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 8, 10)) +>m2 : typeof m2 class M { ->M : M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 9, 15)) +>M : M } var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 12, 11)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) +>p : number +>x : number var p2 = new M(); ->p2 : M, Symbol(p2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 13, 11)) +>p2 : M >new M() : M ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 9, 15)) +>M : typeof M } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) +>M : typeof M module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionCodeGenModuleWithModuleChildren.ts, 17, 10)) +>m3 : typeof m3 function M() { ->M : () => void, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 18, 15)) +>M : () => void } var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 21, 11)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) +>p : number +>x : number var p2 = M(); ->p2 : void, Symbol(p2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 22, 11)) +>p2 : void >M() : void ->M : () => void, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 18, 15)) +>M : () => void } } module M { // shouldnt be _M ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) +>M : typeof M module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionCodeGenModuleWithModuleChildren.ts, 26, 10)) +>m3 : typeof m3 interface M { ->M : M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 27, 15)) +>M : M } var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 30, 11)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) +>p : number +>x : number var p2: M; ->p2 : M, Symbol(p2, Decl(collisionCodeGenModuleWithModuleChildren.ts, 31, 11)) ->M : M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 27, 15)) +>p2 : M +>M : M } } module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleChildren.ts, 6, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 15, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 24, 1), Decl(collisionCodeGenModuleWithModuleChildren.ts, 33, 1)) +>M : typeof M module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionCodeGenModuleWithModuleChildren.ts, 35, 10)) +>m4 : typeof m4 module M { ->M : typeof M, Symbol(M, Decl(collisionCodeGenModuleWithModuleChildren.ts, 36, 15)) +>M : typeof M var p = x; ->p : number, Symbol(p, Decl(collisionCodeGenModuleWithModuleChildren.ts, 38, 15)) ->x : number, Symbol(x, Decl(collisionCodeGenModuleWithModuleChildren.ts, 1, 14)) +>p : number +>x : number } } } diff --git a/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.symbols b/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.symbols new file mode 100644 index 0000000000000..6dfd0727a1ce0 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.symbols @@ -0,0 +1,83 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithModuleReopening.ts === +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) + + export class m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) + } +} +var foo = new m1.m1(); +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 3)) +>m1.m1 : Symbol(m1.m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) +>m1 : Symbol(m1.m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) + +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) + + export class c1 { +>c1 : Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) + } + var b = new c1(); +>b : Symbol(b, Decl(collisionCodeGenModuleWithModuleReopening.ts, 8, 7)) +>c1 : Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) + + var c = new m1(); +>c : Symbol(c, Decl(collisionCodeGenModuleWithModuleReopening.ts, 9, 7)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) +} +var foo2 = new m1.c1(); +>foo2 : Symbol(foo2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 28, 3)) +>m1.c1 : Symbol(m1.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) +>c1 : Symbol(m1.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) + +module m2 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) + + export class c1 { +>c1 : Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) + } + export var b10 = 10; +>b10 : Symbol(b10, Decl(collisionCodeGenModuleWithModuleReopening.ts, 16, 14)) + + var x = new c1(); +>x : Symbol(x, Decl(collisionCodeGenModuleWithModuleReopening.ts, 17, 7)) +>c1 : Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +} +var foo3 = new m2.c1(); +>foo3 : Symbol(foo3, Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 27, 3)) +>m2.c1 : Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) +>c1 : Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) + +module m2 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) + + export class m2 { +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) + } + var b = new m2(); +>b : Symbol(b, Decl(collisionCodeGenModuleWithModuleReopening.ts, 23, 7)) +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) + + var d = b10; +>d : Symbol(d, Decl(collisionCodeGenModuleWithModuleReopening.ts, 24, 7)) +>b10 : Symbol(b10, Decl(collisionCodeGenModuleWithModuleReopening.ts, 16, 14)) + + var c = new c1(); +>c : Symbol(c, Decl(collisionCodeGenModuleWithModuleReopening.ts, 25, 7)) +>c1 : Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +} +var foo3 = new m2.c1(); +>foo3 : Symbol(foo3, Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 27, 3)) +>m2.c1 : Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) +>c1 : Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) + +var foo2 = new m2.m2(); +>foo2 : Symbol(foo2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 28, 3)) +>m2.m2 : Symbol(m2.m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) +>m2 : Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) +>m2 : Symbol(m2.m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) + diff --git a/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.types b/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.types index 559062f707147..b71eeb621d026 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithModuleReopening.types @@ -1,94 +1,94 @@ === tests/cases/compiler/collisionCodeGenModuleWithModuleReopening.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) +>m1 : typeof m1 export class m1 { ->m1 : m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) +>m1 : m1 } } var foo = new m1.m1(); ->foo : m1.m1, Symbol(foo, Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 3)) +>foo : m1.m1 >new m1.m1() : m1.m1 ->m1.m1 : typeof m1.m1, Symbol(m1.m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) ->m1 : typeof m1.m1, Symbol(m1.m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) +>m1.m1 : typeof m1.m1 +>m1 : typeof m1 +>m1 : typeof m1.m1 module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) +>m1 : typeof m1 export class c1 { ->c1 : c1, Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) +>c1 : c1 } var b = new c1(); ->b : c1, Symbol(b, Decl(collisionCodeGenModuleWithModuleReopening.ts, 8, 7)) +>b : c1 >new c1() : c1 ->c1 : typeof c1, Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) +>c1 : typeof c1 var c = new m1(); ->c : m1, Symbol(c, Decl(collisionCodeGenModuleWithModuleReopening.ts, 9, 7)) +>c : m1 >new m1() : m1 ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 11)) +>m1 : typeof m1 } var foo2 = new m1.c1(); ->foo2 : m1.c1, Symbol(foo2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 28, 3)) +>foo2 : m1.c1 >new m1.c1() : m1.c1 ->m1.c1 : typeof m1.c1, Symbol(m1.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 0, 0), Decl(collisionCodeGenModuleWithModuleReopening.ts, 4, 22)) ->c1 : typeof m1.c1, Symbol(m1.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 5, 11)) +>m1.c1 : typeof m1.c1 +>m1 : typeof m1 +>c1 : typeof m1.c1 module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) +>m2 : typeof m2 export class c1 { ->c1 : c1, Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>c1 : c1 } export var b10 = 10; ->b10 : number, Symbol(b10, Decl(collisionCodeGenModuleWithModuleReopening.ts, 16, 14)) +>b10 : number >10 : number var x = new c1(); ->x : c1, Symbol(x, Decl(collisionCodeGenModuleWithModuleReopening.ts, 17, 7)) +>x : c1 >new c1() : c1 ->c1 : typeof c1, Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>c1 : typeof c1 } var foo3 = new m2.c1(); ->foo3 : m2.c1, Symbol(foo3, Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 27, 3)) +>foo3 : m2.c1 >new m2.c1() : m2.c1 ->m2.c1 : typeof m2.c1, Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) ->c1 : typeof m2.c1, Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>m2.c1 : typeof m2.c1 +>m2 : typeof m2 +>c1 : typeof m2.c1 module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) +>m2 : typeof m2 export class m2 { ->m2 : m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) +>m2 : m2 } var b = new m2(); ->b : m2, Symbol(b, Decl(collisionCodeGenModuleWithModuleReopening.ts, 23, 7)) +>b : m2 >new m2() : m2 ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) +>m2 : typeof m2 var d = b10; ->d : number, Symbol(d, Decl(collisionCodeGenModuleWithModuleReopening.ts, 24, 7)) ->b10 : number, Symbol(b10, Decl(collisionCodeGenModuleWithModuleReopening.ts, 16, 14)) +>d : number +>b10 : number var c = new c1(); ->c : c1, Symbol(c, Decl(collisionCodeGenModuleWithModuleReopening.ts, 25, 7)) +>c : c1 >new c1() : c1 ->c1 : typeof c1, Symbol(c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>c1 : typeof c1 } var foo3 = new m2.c1(); ->foo3 : m2.c1, Symbol(foo3, Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 27, 3)) +>foo3 : m2.c1 >new m2.c1() : m2.c1 ->m2.c1 : typeof m2.c1, Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) ->c1 : typeof m2.c1, Symbol(m2.c1, Decl(collisionCodeGenModuleWithModuleReopening.ts, 13, 11)) +>m2.c1 : typeof m2.c1 +>m2 : typeof m2 +>c1 : typeof m2.c1 var foo2 = new m2.m2(); ->foo2 : m1.c1, Symbol(foo2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 3), Decl(collisionCodeGenModuleWithModuleReopening.ts, 28, 3)) +>foo2 : m1.c1 >new m2.m2() : m2.m2 ->m2.m2 : typeof m2.m2, Symbol(m2.m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) ->m2 : typeof m2, Symbol(m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 11, 23), Decl(collisionCodeGenModuleWithModuleReopening.ts, 19, 23)) ->m2 : typeof m2.m2, Symbol(m2.m2, Decl(collisionCodeGenModuleWithModuleReopening.ts, 20, 11)) +>m2.m2 : typeof m2.m2 +>m2 : typeof m2 +>m2 : typeof m2.m2 diff --git a/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.symbols b/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.symbols new file mode 100644 index 0000000000000..dd8c8d5de3e87 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithPrivateMember.ts === +module m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 0)) + + class m1 { +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 11)) + } + var x = new m1(); +>x : Symbol(x, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 7)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 11)) + + export class c1 { +>c1 : Symbol(c1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 21)) + } +} +var foo = new m1.c1(); +>foo : Symbol(foo, Decl(collisionCodeGenModuleWithPrivateMember.ts, 7, 3)) +>m1.c1 : Symbol(m1.c1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 21)) +>m1 : Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 0)) +>c1 : Symbol(m1.c1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 21)) + diff --git a/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.types b/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.types index 69cb059269f98..a4af255dcf3a4 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithPrivateMember.types @@ -1,23 +1,23 @@ === tests/cases/compiler/collisionCodeGenModuleWithPrivateMember.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 0)) +>m1 : typeof m1 class m1 { ->m1 : m1, Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 11)) +>m1 : m1 } var x = new m1(); ->x : m1, Symbol(x, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 7)) +>x : m1 >new m1() : m1 ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 11)) +>m1 : typeof m1 export class c1 { ->c1 : c1, Symbol(c1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 21)) +>c1 : c1 } } var foo = new m1.c1(); ->foo : m1.c1, Symbol(foo, Decl(collisionCodeGenModuleWithPrivateMember.ts, 7, 3)) +>foo : m1.c1 >new m1.c1() : m1.c1 ->m1.c1 : typeof m1.c1, Symbol(m1.c1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 21)) ->m1 : typeof m1, Symbol(m1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 0, 0)) ->c1 : typeof m1.c1, Symbol(m1.c1, Decl(collisionCodeGenModuleWithPrivateMember.ts, 3, 21)) +>m1.c1 : typeof m1.c1 +>m1 : typeof m1 +>c1 : typeof m1.c1 diff --git a/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.symbols b/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.symbols new file mode 100644 index 0000000000000..d62860b50e6a3 --- /dev/null +++ b/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/collisionCodeGenModuleWithUnicodeNames.ts === +module 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 { +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 0)) + + export class 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 { +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 82)) + } +} + +var x = new 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123(); +>x : Symbol(x, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 5, 3)) +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 82)) +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 0)) +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 82)) + + + diff --git a/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.types b/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.types index 3bf3f50996e21..5d7ca71b1be36 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.types +++ b/tests/baselines/reference/collisionCodeGenModuleWithUnicodeNames.types @@ -1,18 +1,18 @@ === tests/cases/compiler/collisionCodeGenModuleWithUnicodeNames.ts === module 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 { ->才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 0)) +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 export class 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 { ->才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 82)) +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 } } var x = new 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123(); ->x : 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Symbol(x, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 5, 3)) +>x : 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 >new 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123() : 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 ->才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 82)) ->才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 0)) ->才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Symbol(才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123, Decl(collisionCodeGenModuleWithUnicodeNames.ts, 0, 82)) +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 +>才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 : typeof 才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123.才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüß才能ソЫⅨ蒤郳र्क्ड्राüışğİliيونيكودöÄüßAbcd123 diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientClass.symbols b/tests/baselines/reference/collisionExportsRequireAndAmbientClass.symbols new file mode 100644 index 0000000000000..07aaf7d6c7525 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientClass.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/collisionExportsRequireAndAmbientClass_externalmodule.ts === +export declare class require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 0, 0)) +} +export declare class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 1, 1)) +} +declare module m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 3, 1)) + + class require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 4, 19)) + } + class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 6, 5)) + } +} +module m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 9, 1)) + + export declare class require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 10, 11)) + } + export declare class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 12, 5)) + } +} + +=== tests/cases/compiler/collisionExportsRequireAndAmbientClass_globalFile.ts === +declare class require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 0, 0)) +} +declare class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 1, 1)) +} +declare module m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 3, 1)) + + class require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 4, 19)) + } + class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 6, 5)) + } +} +module m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 9, 1)) + + export declare class require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 10, 11)) + } + export declare class exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 12, 5)) + } + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 15, 7)) +} diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientClass.types b/tests/baselines/reference/collisionExportsRequireAndAmbientClass.types index 084020925fc68..0db9958d533a2 100644 --- a/tests/baselines/reference/collisionExportsRequireAndAmbientClass.types +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientClass.types @@ -1,58 +1,58 @@ === tests/cases/compiler/collisionExportsRequireAndAmbientClass_externalmodule.ts === export declare class require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 0, 0)) +>require : require } export declare class exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 1, 1)) +>exports : exports } declare module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 3, 1)) +>m1 : typeof m1 class require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 4, 19)) +>require : require } class exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 6, 5)) +>exports : exports } } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 9, 1)) +>m2 : typeof m2 export declare class require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 10, 11)) +>require : require } export declare class exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_externalmodule.ts, 12, 5)) +>exports : exports } } === tests/cases/compiler/collisionExportsRequireAndAmbientClass_globalFile.ts === declare class require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 0, 0)) +>require : require } declare class exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 1, 1)) +>exports : exports } declare module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 3, 1)) +>m3 : typeof m3 class require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 4, 19)) +>require : require } class exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 6, 5)) +>exports : exports } } module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 9, 1)) +>m4 : typeof m4 export declare class require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 10, 11)) +>require : require } export declare class exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 12, 5)) +>exports : exports } var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientClass_globalFile.ts, 15, 7)) +>a : number >10 : number } diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.symbols b/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.symbols new file mode 100644 index 0000000000000..b90dd277bb396 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.symbols @@ -0,0 +1,127 @@ +=== tests/cases/compiler/collisionExportsRequireAndAmbientEnum_externalmodule.ts === +export declare enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 0, 0)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 0, 29)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 1, 14)) +} +export declare enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 3, 1)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 4, 29)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 5, 14)) +} +declare module m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 7, 1)) + + enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 8, 19)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 9, 18)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 10, 18)) + } + enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 12, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 13, 18)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 14, 18)) + } +} +module m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 17, 1)) + + export declare enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 18, 11)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 19, 33)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 20, 18)) + } + export declare enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 22, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 23, 33)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 24, 18)) + } +} + +=== tests/cases/compiler/collisionExportsRequireAndAmbientEnum_globalFile.ts === +declare enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 0, 0)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 0, 22)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 1, 14)) +} +declare enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 3, 1)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 4, 22)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 5, 14)) +} +declare module m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 7, 1)) + + enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 8, 19)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 9, 18)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 10, 18)) + } + enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 12, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 13, 18)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 14, 18)) + } +} +module m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 17, 1)) + + export declare enum require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 18, 11)) + + _thisVal1, +>_thisVal1 : Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 19, 33)) + + _thisVal2, +>_thisVal2 : Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 20, 18)) + } + export declare enum exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 22, 5)) + + _thisVal1, +>_thisVal1 : Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 23, 33)) + + _thisVal2, +>_thisVal2 : Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 24, 18)) + } +} diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.types b/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.types index bce26b9245dcc..3bc7a00063b95 100644 --- a/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.types +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientEnum.types @@ -1,127 +1,127 @@ === tests/cases/compiler/collisionExportsRequireAndAmbientEnum_externalmodule.ts === export declare enum require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 0, 0)) +>require : require _thisVal1, ->_thisVal1 : require, Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 0, 29)) +>_thisVal1 : require _thisVal2, ->_thisVal2 : require, Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 1, 14)) +>_thisVal2 : require } export declare enum exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 3, 1)) +>exports : exports _thisVal1, ->_thisVal1 : exports, Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 4, 29)) +>_thisVal1 : exports _thisVal2, ->_thisVal2 : exports, Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 5, 14)) +>_thisVal2 : exports } declare module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 7, 1)) +>m1 : typeof m1 enum require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 8, 19)) +>require : require _thisVal1, ->_thisVal1 : require, Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 9, 18)) +>_thisVal1 : require _thisVal2, ->_thisVal2 : require, Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 10, 18)) +>_thisVal2 : require } enum exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 12, 5)) +>exports : exports _thisVal1, ->_thisVal1 : exports, Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 13, 18)) +>_thisVal1 : exports _thisVal2, ->_thisVal2 : exports, Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 14, 18)) +>_thisVal2 : exports } } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 17, 1)) +>m2 : typeof m2 export declare enum require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 18, 11)) +>require : require _thisVal1, ->_thisVal1 : require, Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 19, 33)) +>_thisVal1 : require _thisVal2, ->_thisVal2 : require, Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 20, 18)) +>_thisVal2 : require } export declare enum exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 22, 5)) +>exports : exports _thisVal1, ->_thisVal1 : exports, Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 23, 33)) +>_thisVal1 : exports _thisVal2, ->_thisVal2 : exports, Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_externalmodule.ts, 24, 18)) +>_thisVal2 : exports } } === tests/cases/compiler/collisionExportsRequireAndAmbientEnum_globalFile.ts === declare enum require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 0, 0)) +>require : require _thisVal1, ->_thisVal1 : require, Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 0, 22)) +>_thisVal1 : require _thisVal2, ->_thisVal2 : require, Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 1, 14)) +>_thisVal2 : require } declare enum exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 3, 1)) +>exports : exports _thisVal1, ->_thisVal1 : exports, Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 4, 22)) +>_thisVal1 : exports _thisVal2, ->_thisVal2 : exports, Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 5, 14)) +>_thisVal2 : exports } declare module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 7, 1)) +>m3 : typeof m3 enum require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 8, 19)) +>require : require _thisVal1, ->_thisVal1 : require, Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 9, 18)) +>_thisVal1 : require _thisVal2, ->_thisVal2 : require, Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 10, 18)) +>_thisVal2 : require } enum exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 12, 5)) +>exports : exports _thisVal1, ->_thisVal1 : exports, Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 13, 18)) +>_thisVal1 : exports _thisVal2, ->_thisVal2 : exports, Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 14, 18)) +>_thisVal2 : exports } } module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 17, 1)) +>m4 : typeof m4 export declare enum require { ->require : require, Symbol(require, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 18, 11)) +>require : require _thisVal1, ->_thisVal1 : require, Symbol(require._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 19, 33)) +>_thisVal1 : require _thisVal2, ->_thisVal2 : require, Symbol(require._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 20, 18)) +>_thisVal2 : require } export declare enum exports { ->exports : exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 22, 5)) +>exports : exports _thisVal1, ->_thisVal1 : exports, Symbol(exports._thisVal1, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 23, 33)) +>_thisVal1 : exports _thisVal2, ->_thisVal2 : exports, Symbol(exports._thisVal2, Decl(collisionExportsRequireAndAmbientEnum_globalFile.ts, 24, 18)) +>_thisVal2 : exports } } diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.symbols b/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.symbols new file mode 100644 index 0000000000000..807b9e645539d --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/collisionExportsRequireAndAmbientFunction.ts === +export declare function exports(): number; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientFunction.ts, 0, 0)) + +export declare function require(): string[]; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientFunction.ts, 0, 42)) + +declare module m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndAmbientFunction.ts, 2, 44)) + + function exports(): string; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientFunction.ts, 4, 19)) + + function require(): number; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientFunction.ts, 5, 31)) +} +module m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndAmbientFunction.ts, 7, 1)) + + export declare function exports(): string; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientFunction.ts, 8, 11)) + + export declare function require(): string[]; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientFunction.ts, 9, 46)) + + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientFunction.ts, 11, 7)) +} diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.types b/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.types index 07bc77ca404e9..76210f7dda04e 100644 --- a/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.types +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientFunction.types @@ -1,29 +1,29 @@ === tests/cases/compiler/collisionExportsRequireAndAmbientFunction.ts === export declare function exports(): number; ->exports : () => number, Symbol(exports, Decl(collisionExportsRequireAndAmbientFunction.ts, 0, 0)) +>exports : () => number export declare function require(): string[]; ->require : () => string[], Symbol(require, Decl(collisionExportsRequireAndAmbientFunction.ts, 0, 42)) +>require : () => string[] declare module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionExportsRequireAndAmbientFunction.ts, 2, 44)) +>m1 : typeof m1 function exports(): string; ->exports : () => string, Symbol(exports, Decl(collisionExportsRequireAndAmbientFunction.ts, 4, 19)) +>exports : () => string function require(): number; ->require : () => number, Symbol(require, Decl(collisionExportsRequireAndAmbientFunction.ts, 5, 31)) +>require : () => number } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionExportsRequireAndAmbientFunction.ts, 7, 1)) +>m2 : typeof m2 export declare function exports(): string; ->exports : () => string, Symbol(exports, Decl(collisionExportsRequireAndAmbientFunction.ts, 8, 11)) +>exports : () => string export declare function require(): string[]; ->require : () => string[], Symbol(require, Decl(collisionExportsRequireAndAmbientFunction.ts, 9, 46)) +>require : () => string[] var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientFunction.ts, 11, 7)) +>a : number >10 : number } diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.symbols b/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.symbols new file mode 100644 index 0000000000000..d3d8ad2befef1 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/collisionExportsRequireAndAmbientFunctionInGlobalFile.ts === +declare function exports(): number; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 0, 0)) + +declare function require(): string; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 0, 35)) + +declare module m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 1, 35)) + + function exports(): string[]; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 2, 19)) + + function require(): number[]; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 3, 33)) +} +module m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 5, 1)) + + export declare function exports(): string; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 6, 11)) + + export declare function require(): string; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 7, 46)) + + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 9, 7)) +} diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.types b/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.types index dab5078d0611e..9804380fd7a59 100644 --- a/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.types +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientFunctionInGlobalFile.types @@ -1,29 +1,29 @@ === tests/cases/compiler/collisionExportsRequireAndAmbientFunctionInGlobalFile.ts === declare function exports(): number; ->exports : () => number, Symbol(exports, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 0, 0)) +>exports : () => number declare function require(): string; ->require : () => string, Symbol(require, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 0, 35)) +>require : () => string declare module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 1, 35)) +>m3 : typeof m3 function exports(): string[]; ->exports : () => string[], Symbol(exports, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 2, 19)) +>exports : () => string[] function require(): number[]; ->require : () => number[], Symbol(require, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 3, 33)) +>require : () => number[] } module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 5, 1)) +>m4 : typeof m4 export declare function exports(): string; ->exports : () => string, Symbol(exports, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 6, 11)) +>exports : () => string export declare function require(): string; ->require : () => string, Symbol(require, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 7, 46)) +>require : () => string var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientFunctionInGlobalFile.ts, 9, 7)) +>a : number >10 : number } diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientModule.symbols b/tests/baselines/reference/collisionExportsRequireAndAmbientModule.symbols new file mode 100644 index 0000000000000..e888a419c4227 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientModule.symbols @@ -0,0 +1,159 @@ +=== tests/cases/compiler/collisionExportsRequireAndAmbientModule_externalmodule.ts === +export declare module require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 31)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 2, 5)) + } +} +export function foo(): require.I { +>foo : Symbol(foo, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 5, 1)) +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 0)) +>I : Symbol(require.I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 31)) + + return null; +} +export declare module exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 8, 1)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 9, 31)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 11, 5)) + } +} +export function foo2(): exports.I { +>foo2 : Symbol(foo2, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 14, 1)) +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 8, 1)) +>I : Symbol(exports.I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 9, 31)) + + return null; +} +declare module m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 17, 1)) + + module require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 18, 19)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 19, 20)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 21, 9)) + } + } + module exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 24, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 25, 20)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 27, 9)) + } + } +} +module m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 31, 1)) + + export declare module require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 32, 11)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 33, 35)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 35, 9)) + } + } + export declare module exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 38, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 39, 35)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 41, 9)) + } + } + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 45, 7)) +} + +=== tests/cases/compiler/collisionExportsRequireAndAmbientModule_globalFile.ts === +declare module require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 0, 24)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 2, 5)) + } +} +declare module exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 5, 1)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 6, 24)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 8, 5)) + } +} +declare module m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 11, 1)) + + module require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 12, 19)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 13, 20)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 15, 9)) + } + } + module exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 18, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 19, 20)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 21, 9)) + } + } +} +module m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 25, 1)) + + export declare module require { +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 26, 11)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 27, 35)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 29, 9)) + } + } + export declare module exports { +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 32, 5)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 33, 35)) + } + export class C { +>C : Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 35, 9)) + } + } + + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 40, 7)) +} + diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientModule.types b/tests/baselines/reference/collisionExportsRequireAndAmbientModule.types index 6952f43f617de..1c4c56de99cf2 100644 --- a/tests/baselines/reference/collisionExportsRequireAndAmbientModule.types +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientModule.types @@ -1,163 +1,163 @@ === tests/cases/compiler/collisionExportsRequireAndAmbientModule_externalmodule.ts === export declare module require { ->require : typeof require, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 0)) +>require : typeof require export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 31)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 2, 5)) +>C : C } } export function foo(): require.I { ->foo : () => require.I, Symbol(foo, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 5, 1)) ->require : any, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 0)) ->I : require.I, Symbol(require.I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 0, 31)) +>foo : () => require.I +>require : any +>I : require.I return null; >null : null } export declare module exports { ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 8, 1)) +>exports : typeof exports export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 9, 31)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 11, 5)) +>C : C } } export function foo2(): exports.I { ->foo2 : () => exports.I, Symbol(foo2, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 14, 1)) ->exports : any, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 8, 1)) ->I : exports.I, Symbol(exports.I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 9, 31)) +>foo2 : () => exports.I +>exports : any +>I : exports.I return null; >null : null } declare module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 17, 1)) +>m1 : typeof m1 module require { ->require : typeof require, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 18, 19)) +>require : typeof require export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 19, 20)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 21, 9)) +>C : C } } module exports { ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 24, 5)) +>exports : typeof exports export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 25, 20)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 27, 9)) +>C : C } } } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 31, 1)) +>m2 : typeof m2 export declare module require { ->require : typeof require, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 32, 11)) +>require : typeof require export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 33, 35)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 35, 9)) +>C : C } } export declare module exports { ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 38, 5)) +>exports : typeof exports export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 39, 35)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 41, 9)) +>C : C } } var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientModule_externalmodule.ts, 45, 7)) +>a : number >10 : number } === tests/cases/compiler/collisionExportsRequireAndAmbientModule_globalFile.ts === declare module require { ->require : typeof require, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 0, 0)) +>require : typeof require export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 0, 24)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 2, 5)) +>C : C } } declare module exports { ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 5, 1)) +>exports : typeof exports export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 6, 24)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 8, 5)) +>C : C } } declare module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 11, 1)) +>m3 : typeof m3 module require { ->require : typeof require, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 12, 19)) +>require : typeof require export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 13, 20)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 15, 9)) +>C : C } } module exports { ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 18, 5)) +>exports : typeof exports export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 19, 20)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 21, 9)) +>C : C } } } module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 25, 1)) +>m4 : typeof m4 export declare module require { ->require : typeof require, Symbol(require, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 26, 11)) +>require : typeof require export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 27, 35)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 29, 9)) +>C : C } } export declare module exports { ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 32, 5)) +>exports : typeof exports export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 33, 35)) +>I : I } export class C { ->C : C, Symbol(C, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 35, 9)) +>C : C } } var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientModule_globalFile.ts, 40, 7)) +>a : number >10 : number } diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientVar.symbols b/tests/baselines/reference/collisionExportsRequireAndAmbientVar.symbols new file mode 100644 index 0000000000000..518d9ee8b63d4 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientVar.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/collisionExportsRequireAndAmbientVar_externalmodule.ts === +export declare var exports: number; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 0, 18)) + +export declare var require: string; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 1, 18)) + +declare module m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 1, 35)) + + var exports: string; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 3, 7)) + + var require: number; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 4, 7)) +} +module m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 5, 1)) + + export declare var exports: number; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 7, 22)) + + export declare var require: string; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 8, 22)) + + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 9, 7)) +} + +=== tests/cases/compiler/collisionExportsRequireAndAmbientVar_globalFile.ts === +declare var exports: number; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 0, 11)) + +declare var require: string; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 1, 11)) + +declare module m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 1, 28)) + + var exports: string; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 3, 7)) + + var require: number; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 4, 7)) +} +module m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 5, 1)) + + export declare var exports: string; +>exports : Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 7, 22)) + + export declare var require: number; +>require : Symbol(require, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 8, 22)) + + var a = 10; +>a : Symbol(a, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 9, 7)) +} diff --git a/tests/baselines/reference/collisionExportsRequireAndAmbientVar.types b/tests/baselines/reference/collisionExportsRequireAndAmbientVar.types index 10161984cd88a..90a9b8968e5c4 100644 --- a/tests/baselines/reference/collisionExportsRequireAndAmbientVar.types +++ b/tests/baselines/reference/collisionExportsRequireAndAmbientVar.types @@ -1,59 +1,59 @@ === tests/cases/compiler/collisionExportsRequireAndAmbientVar_externalmodule.ts === export declare var exports: number; ->exports : number, Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 0, 18)) +>exports : number export declare var require: string; ->require : string, Symbol(require, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 1, 18)) +>require : string declare module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 1, 35)) +>m1 : typeof m1 var exports: string; ->exports : string, Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 3, 7)) +>exports : string var require: number; ->require : number, Symbol(require, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 4, 7)) +>require : number } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 5, 1)) +>m2 : typeof m2 export declare var exports: number; ->exports : number, Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 7, 22)) +>exports : number export declare var require: string; ->require : string, Symbol(require, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 8, 22)) +>require : string var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientVar_externalmodule.ts, 9, 7)) +>a : number >10 : number } === tests/cases/compiler/collisionExportsRequireAndAmbientVar_globalFile.ts === declare var exports: number; ->exports : number, Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 0, 11)) +>exports : number declare var require: string; ->require : string, Symbol(require, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 1, 11)) +>require : string declare module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 1, 28)) +>m3 : typeof m3 var exports: string; ->exports : string, Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 3, 7)) +>exports : string var require: number; ->require : number, Symbol(require, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 4, 7)) +>require : number } module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 5, 1)) +>m4 : typeof m4 export declare var exports: string; ->exports : string, Symbol(exports, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 7, 22)) +>exports : string export declare var require: number; ->require : number, Symbol(require, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 8, 22)) +>require : number var a = 10; ->a : number, Symbol(a, Decl(collisionExportsRequireAndAmbientVar_globalFile.ts, 9, 7)) +>a : number >10 : number } diff --git a/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.symbols b/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.symbols new file mode 100644 index 0000000000000..2fae606b76b40 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/collisionExportsRequireAndFunctionInGlobalFile.ts === +function exports() { +>exports : Symbol(exports, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 0, 0)) + + return 1; +} +function require() { +>require : Symbol(require, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 2, 1)) + + return "require"; +} +module m3 { +>m3 : Symbol(m3, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 5, 1)) + + function exports() { +>exports : Symbol(exports, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 6, 11)) + + return 1; + } + function require() { +>require : Symbol(require, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 9, 5)) + + return "require"; + } +} +module m4 { +>m4 : Symbol(m4, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 13, 1)) + + export function exports() { +>exports : Symbol(exports, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 14, 11)) + + return 1; + } + export function require() { +>require : Symbol(require, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 17, 5)) + + return "require"; + } +} diff --git a/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.types b/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.types index 9f69cdf775eca..3cc0835950811 100644 --- a/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.types +++ b/tests/baselines/reference/collisionExportsRequireAndFunctionInGlobalFile.types @@ -1,43 +1,43 @@ === tests/cases/compiler/collisionExportsRequireAndFunctionInGlobalFile.ts === function exports() { ->exports : () => number, Symbol(exports, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 0, 0)) +>exports : () => number return 1; >1 : number } function require() { ->require : () => string, Symbol(require, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 2, 1)) +>require : () => string return "require"; >"require" : string } module m3 { ->m3 : typeof m3, Symbol(m3, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 5, 1)) +>m3 : typeof m3 function exports() { ->exports : () => number, Symbol(exports, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 6, 11)) +>exports : () => number return 1; >1 : number } function require() { ->require : () => string, Symbol(require, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 9, 5)) +>require : () => string return "require"; >"require" : string } } module m4 { ->m4 : typeof m4, Symbol(m4, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 13, 1)) +>m4 : typeof m4 export function exports() { ->exports : () => number, Symbol(exports, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 14, 11)) +>exports : () => number return 1; >1 : number } export function require() { ->require : () => string, Symbol(require, Decl(collisionExportsRequireAndFunctionInGlobalFile.ts, 17, 5)) +>require : () => string return "require"; >"require" : string diff --git a/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.symbols b/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.symbols new file mode 100644 index 0000000000000..08b8cf9c6a865 --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts === +module mOfGloalFile { +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + } +} +import exports = mOfGloalFile.c; +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 3, 1)) +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + +import require = mOfGloalFile.c; +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 4, 32)) +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + +new exports(); +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 3, 1)) + +new require(); +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 4, 32)) + +module m1 { +>m1 : Symbol(m1, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 7, 14)) + + import exports = mOfGloalFile.c; +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 9, 11)) +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + + import require = mOfGloalFile.c; +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 10, 36)) +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + + new exports(); +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 9, 11)) + + new require(); +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 10, 36)) +} + +module m2 { +>m2 : Symbol(m2, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 14, 1)) + + export import exports = mOfGloalFile.c; +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 16, 11)) +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + + export import require = mOfGloalFile.c; +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 17, 43)) +>mOfGloalFile : Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>c : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) + + new exports(); +>exports : Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 16, 11)) + + new require(); +>require : Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 17, 43)) +} diff --git a/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.types b/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.types index 4fe3845c113bd..11001fe115f15 100644 --- a/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.types +++ b/tests/baselines/reference/collisionExportsRequireAndInternalModuleAliasInGlobalFile.types @@ -1,69 +1,69 @@ === tests/cases/compiler/collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts === module mOfGloalFile { ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) +>mOfGloalFile : typeof mOfGloalFile export class c { ->c : c, Symbol(c, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>c : c } } import exports = mOfGloalFile.c; ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 3, 1)) ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) ->c : exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>exports : typeof exports +>mOfGloalFile : typeof mOfGloalFile +>c : exports import require = mOfGloalFile.c; ->require : typeof exports, Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 4, 32)) ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) ->c : exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>require : typeof exports +>mOfGloalFile : typeof mOfGloalFile +>c : exports new exports(); >new exports() : exports ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 3, 1)) +>exports : typeof exports new require(); >new require() : exports ->require : typeof exports, Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 4, 32)) +>require : typeof exports module m1 { ->m1 : typeof m1, Symbol(m1, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 7, 14)) +>m1 : typeof m1 import exports = mOfGloalFile.c; ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 9, 11)) ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) ->c : exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>exports : typeof exports +>mOfGloalFile : typeof mOfGloalFile +>c : exports import require = mOfGloalFile.c; ->require : typeof exports, Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 10, 36)) ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) ->c : exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>require : typeof exports +>mOfGloalFile : typeof mOfGloalFile +>c : exports new exports(); >new exports() : exports ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 9, 11)) +>exports : typeof exports new require(); >new require() : exports ->require : typeof exports, Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 10, 36)) +>require : typeof exports } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 14, 1)) +>m2 : typeof m2 export import exports = mOfGloalFile.c; ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 16, 11)) ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) ->c : exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>exports : typeof exports +>mOfGloalFile : typeof mOfGloalFile +>c : exports export import require = mOfGloalFile.c; ->require : typeof exports, Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 17, 43)) ->mOfGloalFile : typeof mOfGloalFile, Symbol(mOfGloalFile, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 0)) ->c : exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 0, 21)) +>require : typeof exports +>mOfGloalFile : typeof mOfGloalFile +>c : exports new exports(); >new exports() : exports ->exports : typeof exports, Symbol(exports, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 16, 11)) +>exports : typeof exports new require(); >new require() : exports ->require : typeof exports, Symbol(require, Decl(collisionExportsRequireAndInternalModuleAliasInGlobalFile.ts, 17, 43)) +>require : typeof exports } diff --git a/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.symbols b/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.symbols new file mode 100644 index 0000000000000..409d12756776e --- /dev/null +++ b/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts === +export module require { // no error +>require : Symbol(require, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 23)) + } +} +export function foo(): require.I { +>foo : Symbol(foo, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 3, 1)) +>require : Symbol(require, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 0)) +>I : Symbol(require.I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 23)) + + return null; +} +export module exports { // no error +>exports : Symbol(exports, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 6, 1)) + + export interface I { +>I : Symbol(I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 7, 23)) + } +} +export function foo2(): exports.I { +>foo2 : Symbol(foo2, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 10, 1)) +>exports : Symbol(exports, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 6, 1)) +>I : Symbol(exports.I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 7, 23)) + + return null; +} diff --git a/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.types b/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.types index b3a035acaf80f..4b313bcd8498b 100644 --- a/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.types +++ b/tests/baselines/reference/collisionExportsRequireAndUninstantiatedModule.types @@ -1,30 +1,30 @@ === tests/cases/compiler/collisionExportsRequireAndUninstantiatedModule.ts === export module require { // no error ->require : any, Symbol(require, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 0)) +>require : any export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 23)) +>I : I } } export function foo(): require.I { ->foo : () => require.I, Symbol(foo, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 3, 1)) ->require : any, Symbol(require, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 0)) ->I : require.I, Symbol(require.I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 0, 23)) +>foo : () => require.I +>require : any +>I : require.I return null; >null : null } export module exports { // no error ->exports : any, Symbol(exports, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 6, 1)) +>exports : any export interface I { ->I : I, Symbol(I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 7, 23)) +>I : I } } export function foo2(): exports.I { ->foo2 : () => exports.I, Symbol(foo2, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 10, 1)) ->exports : any, Symbol(exports, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 6, 1)) ->I : exports.I, Symbol(exports.I, Decl(collisionExportsRequireAndUninstantiatedModule.ts, 7, 23)) +>foo2 : () => exports.I +>exports : any +>I : exports.I return null; >null : null diff --git a/tests/baselines/reference/collisionRestParameterArrowFunctions.symbols b/tests/baselines/reference/collisionRestParameterArrowFunctions.symbols new file mode 100644 index 0000000000000..9a44f92b1f511 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterArrowFunctions.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/collisionRestParameterArrowFunctions.ts === +var f1 = (_i: number, ...restParameters) => { //_i is error +>f1 : Symbol(f1, Decl(collisionRestParameterArrowFunctions.ts, 0, 3)) +>_i : Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 0, 10), Decl(collisionRestParameterArrowFunctions.ts, 1, 7)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterArrowFunctions.ts, 0, 21)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 0, 10), Decl(collisionRestParameterArrowFunctions.ts, 1, 7)) +} +var f1NoError = (_i: number) => { // no error +>f1NoError : Symbol(f1NoError, Decl(collisionRestParameterArrowFunctions.ts, 3, 3)) +>_i : Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 3, 17), Decl(collisionRestParameterArrowFunctions.ts, 4, 7)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 3, 17), Decl(collisionRestParameterArrowFunctions.ts, 4, 7)) +} + +var f2 = (...restParameters) => { +>f2 : Symbol(f2, Decl(collisionRestParameterArrowFunctions.ts, 7, 3)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterArrowFunctions.ts, 7, 10)) + + var _i = 10; // No Error +>_i : Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 8, 7)) +} +var f2NoError = () => { +>f2NoError : Symbol(f2NoError, Decl(collisionRestParameterArrowFunctions.ts, 10, 3)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 11, 7)) +} diff --git a/tests/baselines/reference/collisionRestParameterArrowFunctions.types b/tests/baselines/reference/collisionRestParameterArrowFunctions.types index 65fe7555cb723..dcd52e5f76637 100644 --- a/tests/baselines/reference/collisionRestParameterArrowFunctions.types +++ b/tests/baselines/reference/collisionRestParameterArrowFunctions.types @@ -1,38 +1,38 @@ === tests/cases/compiler/collisionRestParameterArrowFunctions.ts === var f1 = (_i: number, ...restParameters) => { //_i is error ->f1 : (_i: number, ...restParameters: any[]) => void, Symbol(f1, Decl(collisionRestParameterArrowFunctions.ts, 0, 3)) +>f1 : (_i: number, ...restParameters: any[]) => void >(_i: number, ...restParameters) => { //_i is error var _i = 10; // no error} : (_i: number, ...restParameters: any[]) => void ->_i : number, Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 0, 10), Decl(collisionRestParameterArrowFunctions.ts, 1, 7)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterArrowFunctions.ts, 0, 21)) +>_i : number +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 0, 10), Decl(collisionRestParameterArrowFunctions.ts, 1, 7)) +>_i : number >10 : number } var f1NoError = (_i: number) => { // no error ->f1NoError : (_i: number) => void, Symbol(f1NoError, Decl(collisionRestParameterArrowFunctions.ts, 3, 3)) +>f1NoError : (_i: number) => void >(_i: number) => { // no error var _i = 10; // no error} : (_i: number) => void ->_i : number, Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 3, 17), Decl(collisionRestParameterArrowFunctions.ts, 4, 7)) +>_i : number var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 3, 17), Decl(collisionRestParameterArrowFunctions.ts, 4, 7)) +>_i : number >10 : number } var f2 = (...restParameters) => { ->f2 : (...restParameters: any[]) => void, Symbol(f2, Decl(collisionRestParameterArrowFunctions.ts, 7, 3)) +>f2 : (...restParameters: any[]) => void >(...restParameters) => { var _i = 10; // No Error} : (...restParameters: any[]) => void ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterArrowFunctions.ts, 7, 10)) +>restParameters : any[] var _i = 10; // No Error ->_i : number, Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 8, 7)) +>_i : number >10 : number } var f2NoError = () => { ->f2NoError : () => void, Symbol(f2NoError, Decl(collisionRestParameterArrowFunctions.ts, 10, 3)) +>f2NoError : () => void >() => { var _i = 10; // no error} : () => void var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterArrowFunctions.ts, 11, 7)) +>_i : number >10 : number } diff --git a/tests/baselines/reference/collisionRestParameterClassConstructor.symbols b/tests/baselines/reference/collisionRestParameterClassConstructor.symbols new file mode 100644 index 0000000000000..895cb0f8df4a9 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterClassConstructor.symbols @@ -0,0 +1,137 @@ +=== tests/cases/compiler/collisionRestParameterClassConstructor.ts === +// Constructors +class c1 { +>c1 : Symbol(c1, Decl(collisionRestParameterClassConstructor.ts, 0, 0)) + + constructor(_i: number, ...restParameters) { //_i is error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 2, 16), Decl(collisionRestParameterClassConstructor.ts, 3, 11)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 2, 27)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 2, 16), Decl(collisionRestParameterClassConstructor.ts, 3, 11)) + } +} +class c1NoError { +>c1NoError : Symbol(c1NoError, Decl(collisionRestParameterClassConstructor.ts, 5, 1)) + + constructor(_i: number) { // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 7, 16), Decl(collisionRestParameterClassConstructor.ts, 8, 11)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 7, 16), Decl(collisionRestParameterClassConstructor.ts, 8, 11)) + } +} + +class c2 { +>c2 : Symbol(c2, Decl(collisionRestParameterClassConstructor.ts, 10, 1)) + + constructor(...restParameters) { +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 13, 16)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 14, 11)) + } +} +class c2NoError { +>c2NoError : Symbol(c2NoError, Decl(collisionRestParameterClassConstructor.ts, 16, 1)) + + constructor() { + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 19, 11)) + } +} + +class c3 { +>c3 : Symbol(c3, Decl(collisionRestParameterClassConstructor.ts, 21, 1)) + + constructor(public _i: number, ...restParameters) { //_i is error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 24, 16)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 24, 34)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 24, 16), Decl(collisionRestParameterClassConstructor.ts, 25, 11)) + } +} +class c3NoError { +>c3NoError : Symbol(c3NoError, Decl(collisionRestParameterClassConstructor.ts, 27, 1)) + + constructor(public _i: number) { // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 29, 16)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 29, 16), Decl(collisionRestParameterClassConstructor.ts, 30, 11)) + } +} + +declare class c4 { +>c4 : Symbol(c4, Decl(collisionRestParameterClassConstructor.ts, 32, 1)) + + constructor(_i: number, ...restParameters); // No error - no code gen +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 35, 16)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 35, 27)) +} +declare class c4NoError { +>c4NoError : Symbol(c4NoError, Decl(collisionRestParameterClassConstructor.ts, 36, 1)) + + constructor(_i: number); // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 38, 16)) +} + +class c5 { +>c5 : Symbol(c5, Decl(collisionRestParameterClassConstructor.ts, 39, 1)) + + constructor(_i: number, ...rest); // no codegen no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 42, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 42, 27)) + + constructor(_i: string, ...rest); // no codegen no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 43, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 43, 27)) + + constructor(_i: any, ...rest) { // error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 44, 16), Decl(collisionRestParameterClassConstructor.ts, 45, 11)) +>rest : Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 44, 24)) + + var _i: any; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 44, 16), Decl(collisionRestParameterClassConstructor.ts, 45, 11)) + } +} + +class c5NoError { +>c5NoError : Symbol(c5NoError, Decl(collisionRestParameterClassConstructor.ts, 47, 1)) + + constructor(_i: number); // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 50, 16)) + + constructor(_i: string); // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 51, 16)) + + constructor(_i: any) { // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 52, 16), Decl(collisionRestParameterClassConstructor.ts, 53, 11)) + + var _i: any; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 52, 16), Decl(collisionRestParameterClassConstructor.ts, 53, 11)) + } +} + +declare class c6 { +>c6 : Symbol(c6, Decl(collisionRestParameterClassConstructor.ts, 55, 1)) + + constructor(_i: number, ...rest); // no codegen no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 58, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 58, 27)) + + constructor(_i: string, ...rest); // no codegen no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 59, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 59, 27)) +} + +declare class c6NoError { +>c6NoError : Symbol(c6NoError, Decl(collisionRestParameterClassConstructor.ts, 60, 1)) + + constructor(_i: number); // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 63, 16)) + + constructor(_i: string); // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 64, 16)) +} diff --git a/tests/baselines/reference/collisionRestParameterClassConstructor.types b/tests/baselines/reference/collisionRestParameterClassConstructor.types index 6f43471fac202..f86d6d80d2136 100644 --- a/tests/baselines/reference/collisionRestParameterClassConstructor.types +++ b/tests/baselines/reference/collisionRestParameterClassConstructor.types @@ -1,143 +1,143 @@ === tests/cases/compiler/collisionRestParameterClassConstructor.ts === // Constructors class c1 { ->c1 : c1, Symbol(c1, Decl(collisionRestParameterClassConstructor.ts, 0, 0)) +>c1 : c1 constructor(_i: number, ...restParameters) { //_i is error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 2, 16), Decl(collisionRestParameterClassConstructor.ts, 3, 11)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 2, 27)) +>_i : number +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 2, 16), Decl(collisionRestParameterClassConstructor.ts, 3, 11)) +>_i : number >10 : number } } class c1NoError { ->c1NoError : c1NoError, Symbol(c1NoError, Decl(collisionRestParameterClassConstructor.ts, 5, 1)) +>c1NoError : c1NoError constructor(_i: number) { // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 7, 16), Decl(collisionRestParameterClassConstructor.ts, 8, 11)) +>_i : number var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 7, 16), Decl(collisionRestParameterClassConstructor.ts, 8, 11)) +>_i : number >10 : number } } class c2 { ->c2 : c2, Symbol(c2, Decl(collisionRestParameterClassConstructor.ts, 10, 1)) +>c2 : c2 constructor(...restParameters) { ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 13, 16)) +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 14, 11)) +>_i : number >10 : number } } class c2NoError { ->c2NoError : c2NoError, Symbol(c2NoError, Decl(collisionRestParameterClassConstructor.ts, 16, 1)) +>c2NoError : c2NoError constructor() { var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 19, 11)) +>_i : number >10 : number } } class c3 { ->c3 : c3, Symbol(c3, Decl(collisionRestParameterClassConstructor.ts, 21, 1)) +>c3 : c3 constructor(public _i: number, ...restParameters) { //_i is error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 24, 16)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 24, 34)) +>_i : number +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 24, 16), Decl(collisionRestParameterClassConstructor.ts, 25, 11)) +>_i : number >10 : number } } class c3NoError { ->c3NoError : c3NoError, Symbol(c3NoError, Decl(collisionRestParameterClassConstructor.ts, 27, 1)) +>c3NoError : c3NoError constructor(public _i: number) { // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 29, 16)) +>_i : number var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 29, 16), Decl(collisionRestParameterClassConstructor.ts, 30, 11)) +>_i : number >10 : number } } declare class c4 { ->c4 : c4, Symbol(c4, Decl(collisionRestParameterClassConstructor.ts, 32, 1)) +>c4 : c4 constructor(_i: number, ...restParameters); // No error - no code gen ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 35, 16)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassConstructor.ts, 35, 27)) +>_i : number +>restParameters : any[] } declare class c4NoError { ->c4NoError : c4NoError, Symbol(c4NoError, Decl(collisionRestParameterClassConstructor.ts, 36, 1)) +>c4NoError : c4NoError constructor(_i: number); // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 38, 16)) +>_i : number } class c5 { ->c5 : c5, Symbol(c5, Decl(collisionRestParameterClassConstructor.ts, 39, 1)) +>c5 : c5 constructor(_i: number, ...rest); // no codegen no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 42, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 42, 27)) +>_i : number +>rest : any[] constructor(_i: string, ...rest); // no codegen no error ->_i : string, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 43, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 43, 27)) +>_i : string +>rest : any[] constructor(_i: any, ...rest) { // error ->_i : any, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 44, 16), Decl(collisionRestParameterClassConstructor.ts, 45, 11)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 44, 24)) +>_i : any +>rest : any[] var _i: any; // no error ->_i : any, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 44, 16), Decl(collisionRestParameterClassConstructor.ts, 45, 11)) +>_i : any } } class c5NoError { ->c5NoError : c5NoError, Symbol(c5NoError, Decl(collisionRestParameterClassConstructor.ts, 47, 1)) +>c5NoError : c5NoError constructor(_i: number); // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 50, 16)) +>_i : number constructor(_i: string); // no error ->_i : string, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 51, 16)) +>_i : string constructor(_i: any) { // no error ->_i : any, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 52, 16), Decl(collisionRestParameterClassConstructor.ts, 53, 11)) +>_i : any var _i: any; // no error ->_i : any, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 52, 16), Decl(collisionRestParameterClassConstructor.ts, 53, 11)) +>_i : any } } declare class c6 { ->c6 : c6, Symbol(c6, Decl(collisionRestParameterClassConstructor.ts, 55, 1)) +>c6 : c6 constructor(_i: number, ...rest); // no codegen no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 58, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 58, 27)) +>_i : number +>rest : any[] constructor(_i: string, ...rest); // no codegen no error ->_i : string, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 59, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassConstructor.ts, 59, 27)) +>_i : string +>rest : any[] } declare class c6NoError { ->c6NoError : c6NoError, Symbol(c6NoError, Decl(collisionRestParameterClassConstructor.ts, 60, 1)) +>c6NoError : c6NoError constructor(_i: number); // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 63, 16)) +>_i : number constructor(_i: string); // no error ->_i : string, Symbol(_i, Decl(collisionRestParameterClassConstructor.ts, 64, 16)) +>_i : string } diff --git a/tests/baselines/reference/collisionRestParameterClassMethod.symbols b/tests/baselines/reference/collisionRestParameterClassMethod.symbols new file mode 100644 index 0000000000000..838736e33ce15 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterClassMethod.symbols @@ -0,0 +1,103 @@ +=== tests/cases/compiler/collisionRestParameterClassMethod.ts === +class c1 { +>c1 : Symbol(c1, Decl(collisionRestParameterClassMethod.ts, 0, 0)) + + public foo(_i: number, ...restParameters) { //_i is error +>foo : Symbol(foo, Decl(collisionRestParameterClassMethod.ts, 0, 10)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 1, 15), Decl(collisionRestParameterClassMethod.ts, 2, 11)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassMethod.ts, 1, 26)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 1, 15), Decl(collisionRestParameterClassMethod.ts, 2, 11)) + } + public fooNoError(_i: number) { // no error +>fooNoError : Symbol(fooNoError, Decl(collisionRestParameterClassMethod.ts, 3, 5)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 4, 22), Decl(collisionRestParameterClassMethod.ts, 5, 11)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 4, 22), Decl(collisionRestParameterClassMethod.ts, 5, 11)) + } + public f4(_i: number, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 6, 5), Decl(collisionRestParameterClassMethod.ts, 7, 35), Decl(collisionRestParameterClassMethod.ts, 8, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 7, 14)) +>rest : Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 7, 25)) + + public f4(_i: string, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 6, 5), Decl(collisionRestParameterClassMethod.ts, 7, 35), Decl(collisionRestParameterClassMethod.ts, 8, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 8, 14)) +>rest : Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 8, 25)) + + public f4(_i: any, ...rest) { // error +>f4 : Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 6, 5), Decl(collisionRestParameterClassMethod.ts, 7, 35), Decl(collisionRestParameterClassMethod.ts, 8, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 9, 14), Decl(collisionRestParameterClassMethod.ts, 10, 11)) +>rest : Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 9, 22)) + + var _i: any; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 9, 14), Decl(collisionRestParameterClassMethod.ts, 10, 11)) + } + + public f4NoError(_i: number); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 11, 5), Decl(collisionRestParameterClassMethod.ts, 13, 33), Decl(collisionRestParameterClassMethod.ts, 14, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 13, 21)) + + public f4NoError(_i: string); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 11, 5), Decl(collisionRestParameterClassMethod.ts, 13, 33), Decl(collisionRestParameterClassMethod.ts, 14, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 14, 21)) + + public f4NoError(_i: any) { // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 11, 5), Decl(collisionRestParameterClassMethod.ts, 13, 33), Decl(collisionRestParameterClassMethod.ts, 14, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 15, 21), Decl(collisionRestParameterClassMethod.ts, 16, 11)) + + var _i: any; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 15, 21), Decl(collisionRestParameterClassMethod.ts, 16, 11)) + } +} + +declare class c2 { +>c2 : Symbol(c2, Decl(collisionRestParameterClassMethod.ts, 18, 1)) + + public foo(_i: number, ...restParameters); // No error - no code gen +>foo : Symbol(foo, Decl(collisionRestParameterClassMethod.ts, 20, 18)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 21, 15)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassMethod.ts, 21, 26)) + + public fooNoError(_i: number); // no error +>fooNoError : Symbol(fooNoError, Decl(collisionRestParameterClassMethod.ts, 21, 46)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 22, 22)) + + public f4(_i: number, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 22, 34), Decl(collisionRestParameterClassMethod.ts, 24, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 24, 14)) +>rest : Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 24, 25)) + + public f4(_i: string, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 22, 34), Decl(collisionRestParameterClassMethod.ts, 24, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 25, 14)) +>rest : Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 25, 25)) + + public f4NoError(_i: number); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 25, 35), Decl(collisionRestParameterClassMethod.ts, 26, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 26, 21)) + + public f4NoError(_i: string); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 25, 35), Decl(collisionRestParameterClassMethod.ts, 26, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 27, 21)) +} + +class c3 { +>c3 : Symbol(c3, Decl(collisionRestParameterClassMethod.ts, 28, 1)) + + public foo(...restParameters) { +>foo : Symbol(foo, Decl(collisionRestParameterClassMethod.ts, 30, 10)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterClassMethod.ts, 31, 15)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 32, 11)) + } + public fooNoError() { +>fooNoError : Symbol(fooNoError, Decl(collisionRestParameterClassMethod.ts, 33, 5)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 35, 11)) + } +} diff --git a/tests/baselines/reference/collisionRestParameterClassMethod.types b/tests/baselines/reference/collisionRestParameterClassMethod.types index 550d451b24761..bc6b09dd795cb 100644 --- a/tests/baselines/reference/collisionRestParameterClassMethod.types +++ b/tests/baselines/reference/collisionRestParameterClassMethod.types @@ -1,107 +1,107 @@ === tests/cases/compiler/collisionRestParameterClassMethod.ts === class c1 { ->c1 : c1, Symbol(c1, Decl(collisionRestParameterClassMethod.ts, 0, 0)) +>c1 : c1 public foo(_i: number, ...restParameters) { //_i is error ->foo : (_i: number, ...restParameters: any[]) => void, Symbol(foo, Decl(collisionRestParameterClassMethod.ts, 0, 10)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 1, 15), Decl(collisionRestParameterClassMethod.ts, 2, 11)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassMethod.ts, 1, 26)) +>foo : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 1, 15), Decl(collisionRestParameterClassMethod.ts, 2, 11)) +>_i : number >10 : number } public fooNoError(_i: number) { // no error ->fooNoError : (_i: number) => void, Symbol(fooNoError, Decl(collisionRestParameterClassMethod.ts, 3, 5)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 4, 22), Decl(collisionRestParameterClassMethod.ts, 5, 11)) +>fooNoError : (_i: number) => void +>_i : number var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 4, 22), Decl(collisionRestParameterClassMethod.ts, 5, 11)) +>_i : number >10 : number } public f4(_i: number, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 6, 5), Decl(collisionRestParameterClassMethod.ts, 7, 35), Decl(collisionRestParameterClassMethod.ts, 8, 35)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 7, 14)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 7, 25)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] public f4(_i: string, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 6, 5), Decl(collisionRestParameterClassMethod.ts, 7, 35), Decl(collisionRestParameterClassMethod.ts, 8, 35)) ->_i : string, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 8, 14)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 8, 25)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] public f4(_i: any, ...rest) { // error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 6, 5), Decl(collisionRestParameterClassMethod.ts, 7, 35), Decl(collisionRestParameterClassMethod.ts, 8, 35)) ->_i : any, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 9, 14), Decl(collisionRestParameterClassMethod.ts, 10, 11)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 9, 22)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : any +>rest : any[] var _i: any; // no error ->_i : any, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 9, 14), Decl(collisionRestParameterClassMethod.ts, 10, 11)) +>_i : any } public f4NoError(_i: number); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 11, 5), Decl(collisionRestParameterClassMethod.ts, 13, 33), Decl(collisionRestParameterClassMethod.ts, 14, 33)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 13, 21)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number public f4NoError(_i: string); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 11, 5), Decl(collisionRestParameterClassMethod.ts, 13, 33), Decl(collisionRestParameterClassMethod.ts, 14, 33)) ->_i : string, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 14, 21)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string public f4NoError(_i: any) { // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 11, 5), Decl(collisionRestParameterClassMethod.ts, 13, 33), Decl(collisionRestParameterClassMethod.ts, 14, 33)) ->_i : any, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 15, 21), Decl(collisionRestParameterClassMethod.ts, 16, 11)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : any var _i: any; // no error ->_i : any, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 15, 21), Decl(collisionRestParameterClassMethod.ts, 16, 11)) +>_i : any } } declare class c2 { ->c2 : c2, Symbol(c2, Decl(collisionRestParameterClassMethod.ts, 18, 1)) +>c2 : c2 public foo(_i: number, ...restParameters); // No error - no code gen ->foo : (_i: number, ...restParameters: any[]) => any, Symbol(foo, Decl(collisionRestParameterClassMethod.ts, 20, 18)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 21, 15)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassMethod.ts, 21, 26)) +>foo : (_i: number, ...restParameters: any[]) => any +>_i : number +>restParameters : any[] public fooNoError(_i: number); // no error ->fooNoError : (_i: number) => any, Symbol(fooNoError, Decl(collisionRestParameterClassMethod.ts, 21, 46)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 22, 22)) +>fooNoError : (_i: number) => any +>_i : number public f4(_i: number, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 22, 34), Decl(collisionRestParameterClassMethod.ts, 24, 35)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 24, 14)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 24, 25)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] public f4(_i: string, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterClassMethod.ts, 22, 34), Decl(collisionRestParameterClassMethod.ts, 24, 35)) ->_i : string, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 25, 14)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterClassMethod.ts, 25, 25)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] public f4NoError(_i: number); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 25, 35), Decl(collisionRestParameterClassMethod.ts, 26, 33)) ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 26, 21)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number public f4NoError(_i: string); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterClassMethod.ts, 25, 35), Decl(collisionRestParameterClassMethod.ts, 26, 33)) ->_i : string, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 27, 21)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string } class c3 { ->c3 : c3, Symbol(c3, Decl(collisionRestParameterClassMethod.ts, 28, 1)) +>c3 : c3 public foo(...restParameters) { ->foo : (...restParameters: any[]) => void, Symbol(foo, Decl(collisionRestParameterClassMethod.ts, 30, 10)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterClassMethod.ts, 31, 15)) +>foo : (...restParameters: any[]) => void +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 32, 11)) +>_i : number >10 : number } public fooNoError() { ->fooNoError : () => void, Symbol(fooNoError, Decl(collisionRestParameterClassMethod.ts, 33, 5)) +>fooNoError : () => void var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterClassMethod.ts, 35, 11)) +>_i : number >10 : number } } diff --git a/tests/baselines/reference/collisionRestParameterFunction.symbols b/tests/baselines/reference/collisionRestParameterFunction.symbols new file mode 100644 index 0000000000000..918cc7534dd7f --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterFunction.symbols @@ -0,0 +1,88 @@ +=== tests/cases/compiler/collisionRestParameterFunction.ts === +// Functions +function f1(_i: number, ...restParameters) { //_i is error +>f1 : Symbol(f1, Decl(collisionRestParameterFunction.ts, 0, 0)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 1, 12), Decl(collisionRestParameterFunction.ts, 2, 7)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterFunction.ts, 1, 23)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 1, 12), Decl(collisionRestParameterFunction.ts, 2, 7)) +} +function f1NoError(_i: number) { // no error +>f1NoError : Symbol(f1NoError, Decl(collisionRestParameterFunction.ts, 3, 1)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 4, 19), Decl(collisionRestParameterFunction.ts, 5, 7)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 4, 19), Decl(collisionRestParameterFunction.ts, 5, 7)) +} + +declare function f2(_i: number, ...restParameters); // no error - no code gen +>f2 : Symbol(f2, Decl(collisionRestParameterFunction.ts, 6, 1)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 8, 20)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterFunction.ts, 8, 31)) + +declare function f2NoError(_i: number); // no error +>f2NoError : Symbol(f2NoError, Decl(collisionRestParameterFunction.ts, 8, 51)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 9, 27)) + +function f3(...restParameters) { +>f3 : Symbol(f3, Decl(collisionRestParameterFunction.ts, 9, 39)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterFunction.ts, 11, 12)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 12, 7)) +} +function f3NoError() { +>f3NoError : Symbol(f3NoError, Decl(collisionRestParameterFunction.ts, 13, 1)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 15, 7)) +} + +function f4(_i: number, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterFunction.ts, 16, 1), Decl(collisionRestParameterFunction.ts, 18, 33), Decl(collisionRestParameterFunction.ts, 19, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 18, 12)) +>rest : Symbol(rest, Decl(collisionRestParameterFunction.ts, 18, 23)) + +function f4(_i: string, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterFunction.ts, 16, 1), Decl(collisionRestParameterFunction.ts, 18, 33), Decl(collisionRestParameterFunction.ts, 19, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 19, 12)) +>rest : Symbol(rest, Decl(collisionRestParameterFunction.ts, 19, 23)) + +function f4(_i: any, ...rest) { // error +>f4 : Symbol(f4, Decl(collisionRestParameterFunction.ts, 16, 1), Decl(collisionRestParameterFunction.ts, 18, 33), Decl(collisionRestParameterFunction.ts, 19, 33)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 20, 12)) +>rest : Symbol(rest, Decl(collisionRestParameterFunction.ts, 20, 20)) +} + +function f4NoError(_i: number); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterFunction.ts, 21, 1), Decl(collisionRestParameterFunction.ts, 23, 31), Decl(collisionRestParameterFunction.ts, 24, 31)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 23, 19)) + +function f4NoError(_i: string); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterFunction.ts, 21, 1), Decl(collisionRestParameterFunction.ts, 23, 31), Decl(collisionRestParameterFunction.ts, 24, 31)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 24, 19)) + +function f4NoError(_i: any) { // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterFunction.ts, 21, 1), Decl(collisionRestParameterFunction.ts, 23, 31), Decl(collisionRestParameterFunction.ts, 24, 31)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 25, 19)) +} + +declare function f5(_i: number, ...rest); // no codegen no error +>f5 : Symbol(f5, Decl(collisionRestParameterFunction.ts, 26, 1), Decl(collisionRestParameterFunction.ts, 28, 41)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 28, 20)) +>rest : Symbol(rest, Decl(collisionRestParameterFunction.ts, 28, 31)) + +declare function f5(_i: string, ...rest); // no codegen no error +>f5 : Symbol(f5, Decl(collisionRestParameterFunction.ts, 26, 1), Decl(collisionRestParameterFunction.ts, 28, 41)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 29, 20)) +>rest : Symbol(rest, Decl(collisionRestParameterFunction.ts, 29, 31)) + +declare function f6(_i: number); // no codegen no error +>f6 : Symbol(f6, Decl(collisionRestParameterFunction.ts, 29, 41), Decl(collisionRestParameterFunction.ts, 31, 32)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 31, 20)) + +declare function f6(_i: string); // no codegen no error +>f6 : Symbol(f6, Decl(collisionRestParameterFunction.ts, 29, 41), Decl(collisionRestParameterFunction.ts, 31, 32)) +>_i : Symbol(_i, Decl(collisionRestParameterFunction.ts, 32, 20)) + diff --git a/tests/baselines/reference/collisionRestParameterFunction.types b/tests/baselines/reference/collisionRestParameterFunction.types index 6aab454e73425..d988f74c9284a 100644 --- a/tests/baselines/reference/collisionRestParameterFunction.types +++ b/tests/baselines/reference/collisionRestParameterFunction.types @@ -1,92 +1,92 @@ === tests/cases/compiler/collisionRestParameterFunction.ts === // Functions function f1(_i: number, ...restParameters) { //_i is error ->f1 : (_i: number, ...restParameters: any[]) => void, Symbol(f1, Decl(collisionRestParameterFunction.ts, 0, 0)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 1, 12), Decl(collisionRestParameterFunction.ts, 2, 7)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterFunction.ts, 1, 23)) +>f1 : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 1, 12), Decl(collisionRestParameterFunction.ts, 2, 7)) +>_i : number >10 : number } function f1NoError(_i: number) { // no error ->f1NoError : (_i: number) => void, Symbol(f1NoError, Decl(collisionRestParameterFunction.ts, 3, 1)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 4, 19), Decl(collisionRestParameterFunction.ts, 5, 7)) +>f1NoError : (_i: number) => void +>_i : number var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 4, 19), Decl(collisionRestParameterFunction.ts, 5, 7)) +>_i : number >10 : number } declare function f2(_i: number, ...restParameters); // no error - no code gen ->f2 : (_i: number, ...restParameters: any[]) => any, Symbol(f2, Decl(collisionRestParameterFunction.ts, 6, 1)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 8, 20)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterFunction.ts, 8, 31)) +>f2 : (_i: number, ...restParameters: any[]) => any +>_i : number +>restParameters : any[] declare function f2NoError(_i: number); // no error ->f2NoError : (_i: number) => any, Symbol(f2NoError, Decl(collisionRestParameterFunction.ts, 8, 51)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 9, 27)) +>f2NoError : (_i: number) => any +>_i : number function f3(...restParameters) { ->f3 : (...restParameters: any[]) => void, Symbol(f3, Decl(collisionRestParameterFunction.ts, 9, 39)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterFunction.ts, 11, 12)) +>f3 : (...restParameters: any[]) => void +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 12, 7)) +>_i : number >10 : number } function f3NoError() { ->f3NoError : () => void, Symbol(f3NoError, Decl(collisionRestParameterFunction.ts, 13, 1)) +>f3NoError : () => void var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 15, 7)) +>_i : number >10 : number } function f4(_i: number, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterFunction.ts, 16, 1), Decl(collisionRestParameterFunction.ts, 18, 33), Decl(collisionRestParameterFunction.ts, 19, 33)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 18, 12)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunction.ts, 18, 23)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] function f4(_i: string, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterFunction.ts, 16, 1), Decl(collisionRestParameterFunction.ts, 18, 33), Decl(collisionRestParameterFunction.ts, 19, 33)) ->_i : string, Symbol(_i, Decl(collisionRestParameterFunction.ts, 19, 12)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunction.ts, 19, 23)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] function f4(_i: any, ...rest) { // error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterFunction.ts, 16, 1), Decl(collisionRestParameterFunction.ts, 18, 33), Decl(collisionRestParameterFunction.ts, 19, 33)) ->_i : any, Symbol(_i, Decl(collisionRestParameterFunction.ts, 20, 12)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunction.ts, 20, 20)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : any +>rest : any[] } function f4NoError(_i: number); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterFunction.ts, 21, 1), Decl(collisionRestParameterFunction.ts, 23, 31), Decl(collisionRestParameterFunction.ts, 24, 31)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 23, 19)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number function f4NoError(_i: string); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterFunction.ts, 21, 1), Decl(collisionRestParameterFunction.ts, 23, 31), Decl(collisionRestParameterFunction.ts, 24, 31)) ->_i : string, Symbol(_i, Decl(collisionRestParameterFunction.ts, 24, 19)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string function f4NoError(_i: any) { // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterFunction.ts, 21, 1), Decl(collisionRestParameterFunction.ts, 23, 31), Decl(collisionRestParameterFunction.ts, 24, 31)) ->_i : any, Symbol(_i, Decl(collisionRestParameterFunction.ts, 25, 19)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : any } declare function f5(_i: number, ...rest); // no codegen no error ->f5 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f5, Decl(collisionRestParameterFunction.ts, 26, 1), Decl(collisionRestParameterFunction.ts, 28, 41)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 28, 20)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunction.ts, 28, 31)) +>f5 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] declare function f5(_i: string, ...rest); // no codegen no error ->f5 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f5, Decl(collisionRestParameterFunction.ts, 26, 1), Decl(collisionRestParameterFunction.ts, 28, 41)) ->_i : string, Symbol(_i, Decl(collisionRestParameterFunction.ts, 29, 20)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunction.ts, 29, 31)) +>f5 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] declare function f6(_i: number); // no codegen no error ->f6 : { (_i: number): any; (_i: string): any; }, Symbol(f6, Decl(collisionRestParameterFunction.ts, 29, 41), Decl(collisionRestParameterFunction.ts, 31, 32)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunction.ts, 31, 20)) +>f6 : { (_i: number): any; (_i: string): any; } +>_i : number declare function f6(_i: string); // no codegen no error ->f6 : { (_i: number): any; (_i: string): any; }, Symbol(f6, Decl(collisionRestParameterFunction.ts, 29, 41), Decl(collisionRestParameterFunction.ts, 31, 32)) ->_i : string, Symbol(_i, Decl(collisionRestParameterFunction.ts, 32, 20)) +>f6 : { (_i: number): any; (_i: string): any; } +>_i : string diff --git a/tests/baselines/reference/collisionRestParameterFunctionExpressions.symbols b/tests/baselines/reference/collisionRestParameterFunctionExpressions.symbols new file mode 100644 index 0000000000000..42339c0da9575 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterFunctionExpressions.symbols @@ -0,0 +1,62 @@ +=== tests/cases/compiler/collisionRestParameterFunctionExpressions.ts === +function foo() { +>foo : Symbol(foo, Decl(collisionRestParameterFunctionExpressions.ts, 0, 0)) + + function f1(_i: number, ...restParameters) { //_i is error +>f1 : Symbol(f1, Decl(collisionRestParameterFunctionExpressions.ts, 0, 16)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 1, 16), Decl(collisionRestParameterFunctionExpressions.ts, 2, 11)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterFunctionExpressions.ts, 1, 27)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 1, 16), Decl(collisionRestParameterFunctionExpressions.ts, 2, 11)) + } + function f1NoError(_i: number) { // no error +>f1NoError : Symbol(f1NoError, Decl(collisionRestParameterFunctionExpressions.ts, 3, 5)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 4, 23), Decl(collisionRestParameterFunctionExpressions.ts, 5, 11)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 4, 23), Decl(collisionRestParameterFunctionExpressions.ts, 5, 11)) + } + function f3(...restParameters) { +>f3 : Symbol(f3, Decl(collisionRestParameterFunctionExpressions.ts, 6, 5)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterFunctionExpressions.ts, 7, 16)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 8, 11)) + } + function f3NoError() { +>f3NoError : Symbol(f3NoError, Decl(collisionRestParameterFunctionExpressions.ts, 9, 5)) + + var _i = 10; // no error +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 11, 11)) + } + + function f4(_i: number, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterFunctionExpressions.ts, 12, 5), Decl(collisionRestParameterFunctionExpressions.ts, 14, 37), Decl(collisionRestParameterFunctionExpressions.ts, 15, 37)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 14, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterFunctionExpressions.ts, 14, 27)) + + function f4(_i: string, ...rest); // no codegen no error +>f4 : Symbol(f4, Decl(collisionRestParameterFunctionExpressions.ts, 12, 5), Decl(collisionRestParameterFunctionExpressions.ts, 14, 37), Decl(collisionRestParameterFunctionExpressions.ts, 15, 37)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 15, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterFunctionExpressions.ts, 15, 27)) + + function f4(_i: any, ...rest) { // error +>f4 : Symbol(f4, Decl(collisionRestParameterFunctionExpressions.ts, 12, 5), Decl(collisionRestParameterFunctionExpressions.ts, 14, 37), Decl(collisionRestParameterFunctionExpressions.ts, 15, 37)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 16, 16)) +>rest : Symbol(rest, Decl(collisionRestParameterFunctionExpressions.ts, 16, 24)) + } + + function f4NoError(_i: number); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterFunctionExpressions.ts, 17, 5), Decl(collisionRestParameterFunctionExpressions.ts, 19, 35), Decl(collisionRestParameterFunctionExpressions.ts, 20, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 19, 23)) + + function f4NoError(_i: string); // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterFunctionExpressions.ts, 17, 5), Decl(collisionRestParameterFunctionExpressions.ts, 19, 35), Decl(collisionRestParameterFunctionExpressions.ts, 20, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 20, 23)) + + function f4NoError(_i: any) { // no error +>f4NoError : Symbol(f4NoError, Decl(collisionRestParameterFunctionExpressions.ts, 17, 5), Decl(collisionRestParameterFunctionExpressions.ts, 19, 35), Decl(collisionRestParameterFunctionExpressions.ts, 20, 35)) +>_i : Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 21, 23)) + } +} diff --git a/tests/baselines/reference/collisionRestParameterFunctionExpressions.types b/tests/baselines/reference/collisionRestParameterFunctionExpressions.types index d20a9265b557e..f8ca0c18ed8e0 100644 --- a/tests/baselines/reference/collisionRestParameterFunctionExpressions.types +++ b/tests/baselines/reference/collisionRestParameterFunctionExpressions.types @@ -1,66 +1,66 @@ === tests/cases/compiler/collisionRestParameterFunctionExpressions.ts === function foo() { ->foo : () => void, Symbol(foo, Decl(collisionRestParameterFunctionExpressions.ts, 0, 0)) +>foo : () => void function f1(_i: number, ...restParameters) { //_i is error ->f1 : (_i: number, ...restParameters: any[]) => void, Symbol(f1, Decl(collisionRestParameterFunctionExpressions.ts, 0, 16)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 1, 16), Decl(collisionRestParameterFunctionExpressions.ts, 2, 11)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterFunctionExpressions.ts, 1, 27)) +>f1 : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 1, 16), Decl(collisionRestParameterFunctionExpressions.ts, 2, 11)) +>_i : number >10 : number } function f1NoError(_i: number) { // no error ->f1NoError : (_i: number) => void, Symbol(f1NoError, Decl(collisionRestParameterFunctionExpressions.ts, 3, 5)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 4, 23), Decl(collisionRestParameterFunctionExpressions.ts, 5, 11)) +>f1NoError : (_i: number) => void +>_i : number var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 4, 23), Decl(collisionRestParameterFunctionExpressions.ts, 5, 11)) +>_i : number >10 : number } function f3(...restParameters) { ->f3 : (...restParameters: any[]) => void, Symbol(f3, Decl(collisionRestParameterFunctionExpressions.ts, 6, 5)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterFunctionExpressions.ts, 7, 16)) +>f3 : (...restParameters: any[]) => void +>restParameters : any[] var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 8, 11)) +>_i : number >10 : number } function f3NoError() { ->f3NoError : () => void, Symbol(f3NoError, Decl(collisionRestParameterFunctionExpressions.ts, 9, 5)) +>f3NoError : () => void var _i = 10; // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 11, 11)) +>_i : number >10 : number } function f4(_i: number, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterFunctionExpressions.ts, 12, 5), Decl(collisionRestParameterFunctionExpressions.ts, 14, 37), Decl(collisionRestParameterFunctionExpressions.ts, 15, 37)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 14, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunctionExpressions.ts, 14, 27)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] function f4(_i: string, ...rest); // no codegen no error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterFunctionExpressions.ts, 12, 5), Decl(collisionRestParameterFunctionExpressions.ts, 14, 37), Decl(collisionRestParameterFunctionExpressions.ts, 15, 37)) ->_i : string, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 15, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunctionExpressions.ts, 15, 27)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] function f4(_i: any, ...rest) { // error ->f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; }, Symbol(f4, Decl(collisionRestParameterFunctionExpressions.ts, 12, 5), Decl(collisionRestParameterFunctionExpressions.ts, 14, 37), Decl(collisionRestParameterFunctionExpressions.ts, 15, 37)) ->_i : any, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 16, 16)) ->rest : any[], Symbol(rest, Decl(collisionRestParameterFunctionExpressions.ts, 16, 24)) +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : any +>rest : any[] } function f4NoError(_i: number); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterFunctionExpressions.ts, 17, 5), Decl(collisionRestParameterFunctionExpressions.ts, 19, 35), Decl(collisionRestParameterFunctionExpressions.ts, 20, 35)) ->_i : number, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 19, 23)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number function f4NoError(_i: string); // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterFunctionExpressions.ts, 17, 5), Decl(collisionRestParameterFunctionExpressions.ts, 19, 35), Decl(collisionRestParameterFunctionExpressions.ts, 20, 35)) ->_i : string, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 20, 23)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string function f4NoError(_i: any) { // no error ->f4NoError : { (_i: number): any; (_i: string): any; }, Symbol(f4NoError, Decl(collisionRestParameterFunctionExpressions.ts, 17, 5), Decl(collisionRestParameterFunctionExpressions.ts, 19, 35), Decl(collisionRestParameterFunctionExpressions.ts, 20, 35)) ->_i : any, Symbol(_i, Decl(collisionRestParameterFunctionExpressions.ts, 21, 23)) +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : any } } diff --git a/tests/baselines/reference/collisionRestParameterInType.symbols b/tests/baselines/reference/collisionRestParameterInType.symbols new file mode 100644 index 0000000000000..efe0e89ad42a5 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterInType.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/collisionRestParameterInType.ts === +var v1: (_i: number, ...restParameters) => void; // no error - no code gen +>v1 : Symbol(v1, Decl(collisionRestParameterInType.ts, 0, 3)) +>_i : Symbol(_i, Decl(collisionRestParameterInType.ts, 0, 9)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInType.ts, 0, 20)) + +var v2: { +>v2 : Symbol(v2, Decl(collisionRestParameterInType.ts, 1, 3)) + + (_i: number, ...restParameters); // no error - no code gen +>_i : Symbol(_i, Decl(collisionRestParameterInType.ts, 2, 5)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInType.ts, 2, 16)) + + new (_i: number, ...restParameters); // no error - no code gen +>_i : Symbol(_i, Decl(collisionRestParameterInType.ts, 3, 9)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInType.ts, 3, 20)) + + foo(_i: number, ...restParameters); // no error - no code gen +>foo : Symbol(foo, Decl(collisionRestParameterInType.ts, 3, 40)) +>_i : Symbol(_i, Decl(collisionRestParameterInType.ts, 4, 8)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInType.ts, 4, 19)) + + prop: (_i: number, ...restParameters) => void; // no error - no code gen +>prop : Symbol(prop, Decl(collisionRestParameterInType.ts, 4, 39)) +>_i : Symbol(_i, Decl(collisionRestParameterInType.ts, 5, 11)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInType.ts, 5, 22)) +} diff --git a/tests/baselines/reference/collisionRestParameterInType.types b/tests/baselines/reference/collisionRestParameterInType.types index 7c4342fdc2c8e..5987409407d38 100644 --- a/tests/baselines/reference/collisionRestParameterInType.types +++ b/tests/baselines/reference/collisionRestParameterInType.types @@ -1,27 +1,27 @@ === tests/cases/compiler/collisionRestParameterInType.ts === var v1: (_i: number, ...restParameters) => void; // no error - no code gen ->v1 : (_i: number, ...restParameters: any[]) => void, Symbol(v1, Decl(collisionRestParameterInType.ts, 0, 3)) ->_i : number, Symbol(_i, Decl(collisionRestParameterInType.ts, 0, 9)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInType.ts, 0, 20)) +>v1 : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] var v2: { ->v2 : { (_i: number, ...restParameters: any[]): any; new (_i: number, ...restParameters: any[]): any; foo(_i: number, ...restParameters: any[]): any; prop: (_i: number, ...restParameters: any[]) => void; }, Symbol(v2, Decl(collisionRestParameterInType.ts, 1, 3)) +>v2 : { (_i: number, ...restParameters: any[]): any; new (_i: number, ...restParameters: any[]): any; foo(_i: number, ...restParameters: any[]): any; prop: (_i: number, ...restParameters: any[]) => void; } (_i: number, ...restParameters); // no error - no code gen ->_i : number, Symbol(_i, Decl(collisionRestParameterInType.ts, 2, 5)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInType.ts, 2, 16)) +>_i : number +>restParameters : any[] new (_i: number, ...restParameters); // no error - no code gen ->_i : number, Symbol(_i, Decl(collisionRestParameterInType.ts, 3, 9)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInType.ts, 3, 20)) +>_i : number +>restParameters : any[] foo(_i: number, ...restParameters); // no error - no code gen ->foo : (_i: number, ...restParameters: any[]) => any, Symbol(foo, Decl(collisionRestParameterInType.ts, 3, 40)) ->_i : number, Symbol(_i, Decl(collisionRestParameterInType.ts, 4, 8)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInType.ts, 4, 19)) +>foo : (_i: number, ...restParameters: any[]) => any +>_i : number +>restParameters : any[] prop: (_i: number, ...restParameters) => void; // no error - no code gen ->prop : (_i: number, ...restParameters: any[]) => void, Symbol(prop, Decl(collisionRestParameterInType.ts, 4, 39)) ->_i : number, Symbol(_i, Decl(collisionRestParameterInType.ts, 5, 11)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInType.ts, 5, 22)) +>prop : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] } diff --git a/tests/baselines/reference/collisionRestParameterInterfaceMembers.symbols b/tests/baselines/reference/collisionRestParameterInterfaceMembers.symbols new file mode 100644 index 0000000000000..448346c0838be --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterInterfaceMembers.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/collisionRestParameterInterfaceMembers.ts === +// call +interface i1 { +>i1 : Symbol(i1, Decl(collisionRestParameterInterfaceMembers.ts, 0, 0)) + + (_i: number, ...restParameters); // no error - no code gen +>_i : Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 2, 5)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInterfaceMembers.ts, 2, 16)) +} +interface i1NoError { +>i1NoError : Symbol(i1NoError, Decl(collisionRestParameterInterfaceMembers.ts, 3, 1)) + + (_i: number); // no error +>_i : Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 5, 5)) +} + +// new +interface i2 { +>i2 : Symbol(i2, Decl(collisionRestParameterInterfaceMembers.ts, 6, 1)) + + new (_i: number, ...restParameters); // no error - no code gen +>_i : Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 10, 9)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInterfaceMembers.ts, 10, 20)) +} +interface i2NoError { +>i2NoError : Symbol(i2NoError, Decl(collisionRestParameterInterfaceMembers.ts, 11, 1)) + + new (_i: number); // no error +>_i : Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 13, 9)) +} + +// method +interface i3 { +>i3 : Symbol(i3, Decl(collisionRestParameterInterfaceMembers.ts, 14, 1)) + + foo (_i: number, ...restParameters); // no error - no code gen +>foo : Symbol(foo, Decl(collisionRestParameterInterfaceMembers.ts, 17, 14)) +>_i : Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 18, 9)) +>restParameters : Symbol(restParameters, Decl(collisionRestParameterInterfaceMembers.ts, 18, 20)) + + fooNoError (_i: number); // no error +>fooNoError : Symbol(fooNoError, Decl(collisionRestParameterInterfaceMembers.ts, 18, 40)) +>_i : Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 19, 16)) +} diff --git a/tests/baselines/reference/collisionRestParameterInterfaceMembers.types b/tests/baselines/reference/collisionRestParameterInterfaceMembers.types index 4244e411a06ec..f060857f2d03e 100644 --- a/tests/baselines/reference/collisionRestParameterInterfaceMembers.types +++ b/tests/baselines/reference/collisionRestParameterInterfaceMembers.types @@ -1,44 +1,44 @@ === tests/cases/compiler/collisionRestParameterInterfaceMembers.ts === // call interface i1 { ->i1 : i1, Symbol(i1, Decl(collisionRestParameterInterfaceMembers.ts, 0, 0)) +>i1 : i1 (_i: number, ...restParameters); // no error - no code gen ->_i : number, Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 2, 5)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInterfaceMembers.ts, 2, 16)) +>_i : number +>restParameters : any[] } interface i1NoError { ->i1NoError : i1NoError, Symbol(i1NoError, Decl(collisionRestParameterInterfaceMembers.ts, 3, 1)) +>i1NoError : i1NoError (_i: number); // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 5, 5)) +>_i : number } // new interface i2 { ->i2 : i2, Symbol(i2, Decl(collisionRestParameterInterfaceMembers.ts, 6, 1)) +>i2 : i2 new (_i: number, ...restParameters); // no error - no code gen ->_i : number, Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 10, 9)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInterfaceMembers.ts, 10, 20)) +>_i : number +>restParameters : any[] } interface i2NoError { ->i2NoError : i2NoError, Symbol(i2NoError, Decl(collisionRestParameterInterfaceMembers.ts, 11, 1)) +>i2NoError : i2NoError new (_i: number); // no error ->_i : number, Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 13, 9)) +>_i : number } // method interface i3 { ->i3 : i3, Symbol(i3, Decl(collisionRestParameterInterfaceMembers.ts, 14, 1)) +>i3 : i3 foo (_i: number, ...restParameters); // no error - no code gen ->foo : (_i: number, ...restParameters: any[]) => any, Symbol(foo, Decl(collisionRestParameterInterfaceMembers.ts, 17, 14)) ->_i : number, Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 18, 9)) ->restParameters : any[], Symbol(restParameters, Decl(collisionRestParameterInterfaceMembers.ts, 18, 20)) +>foo : (_i: number, ...restParameters: any[]) => any +>_i : number +>restParameters : any[] fooNoError (_i: number); // no error ->fooNoError : (_i: number) => any, Symbol(fooNoError, Decl(collisionRestParameterInterfaceMembers.ts, 18, 40)) ->_i : number, Symbol(_i, Decl(collisionRestParameterInterfaceMembers.ts, 19, 16)) +>fooNoError : (_i: number) => any +>_i : number } diff --git a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.symbols b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.symbols new file mode 100644 index 0000000000000..ef033d796e4c9 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/collisionRestParameterUnderscoreIUsage.ts === +declare var console: { log(msg?: string): void; }; +>console : Symbol(console, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 11)) +>log : Symbol(log, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 22)) +>msg : Symbol(msg, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 27)) + +var _i = "This is what I'd expect to see"; +>_i : Symbol(_i, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 3)) + +class Foo { +>Foo : Symbol(Foo, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 42)) + + constructor(...args: any[]) { +>args : Symbol(args, Decl(collisionRestParameterUnderscoreIUsage.ts, 3, 16)) + + console.log(_i); // This should result in error +>console.log : Symbol(log, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 22)) +>console : Symbol(console, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 11)) +>log : Symbol(log, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 22)) +>_i : Symbol(_i, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 3)) + } +} +new Foo(); +>Foo : Symbol(Foo, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 42)) + diff --git a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types index 28b74dc1e2de9..fadc27dfa6c4a 100644 --- a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types +++ b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types @@ -1,28 +1,28 @@ === tests/cases/compiler/collisionRestParameterUnderscoreIUsage.ts === declare var console: { log(msg?: string): void; }; ->console : { log(msg?: string): void; }, Symbol(console, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 11)) ->log : (msg?: string) => void, Symbol(log, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 22)) ->msg : string, Symbol(msg, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 27)) +>console : { log(msg?: string): void; } +>log : (msg?: string) => void +>msg : string var _i = "This is what I'd expect to see"; ->_i : string, Symbol(_i, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 3)) +>_i : string >"This is what I'd expect to see" : string class Foo { ->Foo : Foo, Symbol(Foo, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 42)) +>Foo : Foo constructor(...args: any[]) { ->args : any[], Symbol(args, Decl(collisionRestParameterUnderscoreIUsage.ts, 3, 16)) +>args : any[] console.log(_i); // This should result in error >console.log(_i) : void ->console.log : (msg?: string) => void, Symbol(log, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 22)) ->console : { log(msg?: string): void; }, Symbol(console, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 11)) ->log : (msg?: string) => void, Symbol(log, Decl(collisionRestParameterUnderscoreIUsage.ts, 0, 22)) ->_i : string, Symbol(_i, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 3)) +>console.log : (msg?: string) => void +>console : { log(msg?: string): void; } +>log : (msg?: string) => void +>_i : string } } new Foo(); >new Foo() : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(collisionRestParameterUnderscoreIUsage.ts, 1, 42)) +>Foo : typeof Foo diff --git a/tests/baselines/reference/commaOperator1.symbols b/tests/baselines/reference/commaOperator1.symbols new file mode 100644 index 0000000000000..ec4a1f6ceabd4 --- /dev/null +++ b/tests/baselines/reference/commaOperator1.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/commaOperator1.ts === +var v1 = ((1, 2, 3), 4, 5, (6, 7)); +>v1 : Symbol(v1, Decl(commaOperator1.ts, 0, 3)) + +function f1() { +>f1 : Symbol(f1, Decl(commaOperator1.ts, 0, 35)) + + var a = 1; +>a : Symbol(a, Decl(commaOperator1.ts, 2, 7)) + + return a, v1, a; +>a : Symbol(a, Decl(commaOperator1.ts, 2, 7)) +>v1 : Symbol(v1, Decl(commaOperator1.ts, 0, 3)) +>a : Symbol(a, Decl(commaOperator1.ts, 2, 7)) +} + diff --git a/tests/baselines/reference/commaOperator1.types b/tests/baselines/reference/commaOperator1.types index 7e1d290d26ef3..8116fec83284b 100644 --- a/tests/baselines/reference/commaOperator1.types +++ b/tests/baselines/reference/commaOperator1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/commaOperator1.ts === var v1 = ((1, 2, 3), 4, 5, (6, 7)); ->v1 : number, Symbol(v1, Decl(commaOperator1.ts, 0, 3)) +>v1 : number >((1, 2, 3), 4, 5, (6, 7)) : number >(1, 2, 3), 4, 5, (6, 7) : number >(1, 2, 3), 4, 5 : number @@ -19,17 +19,17 @@ var v1 = ((1, 2, 3), 4, 5, (6, 7)); >7 : number function f1() { ->f1 : () => number, Symbol(f1, Decl(commaOperator1.ts, 0, 35)) +>f1 : () => number var a = 1; ->a : number, Symbol(a, Decl(commaOperator1.ts, 2, 7)) +>a : number >1 : number return a, v1, a; >a, v1, a : number >a, v1 : number ->a : number, Symbol(a, Decl(commaOperator1.ts, 2, 7)) ->v1 : number, Symbol(v1, Decl(commaOperator1.ts, 0, 3)) ->a : number, Symbol(a, Decl(commaOperator1.ts, 2, 7)) +>a : number +>v1 : number +>a : number } diff --git a/tests/baselines/reference/commaOperatorOtherValidOperation.symbols b/tests/baselines/reference/commaOperatorOtherValidOperation.symbols new file mode 100644 index 0000000000000..da65d20fc302d --- /dev/null +++ b/tests/baselines/reference/commaOperatorOtherValidOperation.symbols @@ -0,0 +1,50 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorOtherValidOperation.ts === +//Comma operator in for loop +for (var i = 0, j = 10; i < j; i++, j--) +>i : Symbol(i, Decl(commaOperatorOtherValidOperation.ts, 1, 8)) +>j : Symbol(j, Decl(commaOperatorOtherValidOperation.ts, 1, 15)) +>i : Symbol(i, Decl(commaOperatorOtherValidOperation.ts, 1, 8)) +>j : Symbol(j, Decl(commaOperatorOtherValidOperation.ts, 1, 15)) +>i : Symbol(i, Decl(commaOperatorOtherValidOperation.ts, 1, 8)) +>j : Symbol(j, Decl(commaOperatorOtherValidOperation.ts, 1, 15)) +{ +} + +//Comma operator in fuction arguments and return +function foo(x: number, y: string) +>foo : Symbol(foo, Decl(commaOperatorOtherValidOperation.ts, 3, 1)) +>x : Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 6, 13)) +>y : Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 6, 23)) +{ + return x, y; +>x : Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 6, 13)) +>y : Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 6, 23)) +} +var resultIsString = foo(1, "123"); +>resultIsString : Symbol(resultIsString, Decl(commaOperatorOtherValidOperation.ts, 10, 3)) +>foo : Symbol(foo, Decl(commaOperatorOtherValidOperation.ts, 3, 1)) + +//TypeParameters +function foo1() +>foo1 : Symbol(foo1, Decl(commaOperatorOtherValidOperation.ts, 10, 35)) +>T1 : Symbol(T1, Decl(commaOperatorOtherValidOperation.ts, 13, 14)) +>T2 : Symbol(T2, Decl(commaOperatorOtherValidOperation.ts, 13, 17)) +{ + var x: T1; +>x : Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 15, 7)) +>T1 : Symbol(T1, Decl(commaOperatorOtherValidOperation.ts, 13, 14)) + + var y: T2; +>y : Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 16, 7)) +>T2 : Symbol(T2, Decl(commaOperatorOtherValidOperation.ts, 13, 17)) + + x, y; +>x : Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 15, 7)) +>y : Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 16, 7)) + + var resultIsT1 = (y, x); +>resultIsT1 : Symbol(resultIsT1, Decl(commaOperatorOtherValidOperation.ts, 18, 7)) +>y : Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 16, 7)) +>x : Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 15, 7)) +} + diff --git a/tests/baselines/reference/commaOperatorOtherValidOperation.types b/tests/baselines/reference/commaOperatorOtherValidOperation.types index 4770c41788ed2..bc7bdd8115701 100644 --- a/tests/baselines/reference/commaOperatorOtherValidOperation.types +++ b/tests/baselines/reference/commaOperatorOtherValidOperation.types @@ -1,63 +1,63 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorOtherValidOperation.ts === //Comma operator in for loop for (var i = 0, j = 10; i < j; i++, j--) ->i : number, Symbol(i, Decl(commaOperatorOtherValidOperation.ts, 1, 8)) +>i : number >0 : number ->j : number, Symbol(j, Decl(commaOperatorOtherValidOperation.ts, 1, 15)) +>j : number >10 : number >i < j : boolean ->i : number, Symbol(i, Decl(commaOperatorOtherValidOperation.ts, 1, 8)) ->j : number, Symbol(j, Decl(commaOperatorOtherValidOperation.ts, 1, 15)) +>i : number +>j : number >i++, j-- : number >i++ : number ->i : number, Symbol(i, Decl(commaOperatorOtherValidOperation.ts, 1, 8)) +>i : number >j-- : number ->j : number, Symbol(j, Decl(commaOperatorOtherValidOperation.ts, 1, 15)) +>j : number { } //Comma operator in fuction arguments and return function foo(x: number, y: string) ->foo : (x: number, y: string) => string, Symbol(foo, Decl(commaOperatorOtherValidOperation.ts, 3, 1)) ->x : number, Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 6, 13)) ->y : string, Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 6, 23)) +>foo : (x: number, y: string) => string +>x : number +>y : string { return x, y; >x, y : string ->x : number, Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 6, 13)) ->y : string, Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 6, 23)) +>x : number +>y : string } var resultIsString = foo(1, "123"); ->resultIsString : string, Symbol(resultIsString, Decl(commaOperatorOtherValidOperation.ts, 10, 3)) +>resultIsString : string >foo(1, "123") : string ->foo : (x: number, y: string) => string, Symbol(foo, Decl(commaOperatorOtherValidOperation.ts, 3, 1)) +>foo : (x: number, y: string) => string >1 : number >"123" : string //TypeParameters function foo1() ->foo1 : () => void, Symbol(foo1, Decl(commaOperatorOtherValidOperation.ts, 10, 35)) ->T1 : T1, Symbol(T1, Decl(commaOperatorOtherValidOperation.ts, 13, 14)) ->T2 : T2, Symbol(T2, Decl(commaOperatorOtherValidOperation.ts, 13, 17)) +>foo1 : () => void +>T1 : T1 +>T2 : T2 { var x: T1; ->x : T1, Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 15, 7)) ->T1 : T1, Symbol(T1, Decl(commaOperatorOtherValidOperation.ts, 13, 14)) +>x : T1 +>T1 : T1 var y: T2; ->y : T2, Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 16, 7)) ->T2 : T2, Symbol(T2, Decl(commaOperatorOtherValidOperation.ts, 13, 17)) +>y : T2 +>T2 : T2 x, y; >x, y : T2 ->x : T1, Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 15, 7)) ->y : T2, Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 16, 7)) +>x : T1 +>y : T2 var resultIsT1 = (y, x); ->resultIsT1 : T1, Symbol(resultIsT1, Decl(commaOperatorOtherValidOperation.ts, 18, 7)) +>resultIsT1 : T1 >(y, x) : T1 >y, x : T1 ->y : T2, Symbol(y, Decl(commaOperatorOtherValidOperation.ts, 16, 7)) ->x : T1, Symbol(x, Decl(commaOperatorOtherValidOperation.ts, 15, 7)) +>y : T2 +>x : T1 } diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.symbols b/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.symbols new file mode 100644 index 0000000000000..4b7f24a90485e --- /dev/null +++ b/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.symbols @@ -0,0 +1,114 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandAnyType.ts === +var ANY: any; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) + +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) + +var STRING: string; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandAnyType.ts, 3, 3)) + +var OBJECT: Object; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandAnyType.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//The second operand type is any +ANY, ANY; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +BOOLEAN, ANY; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +NUMBER, ANY; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +STRING, ANY; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandAnyType.ts, 3, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +OBJECT, ANY; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandAnyType.ts, 4, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +//Return type is any +var resultIsAny1 = (ANY, ANY); +>resultIsAny1 : Symbol(resultIsAny1, Decl(commaOperatorWithSecondOperandAnyType.ts, 14, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var resultIsAny2 = (BOOLEAN, ANY); +>resultIsAny2 : Symbol(resultIsAny2, Decl(commaOperatorWithSecondOperandAnyType.ts, 15, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var resultIsAny3 = (NUMBER, ANY); +>resultIsAny3 : Symbol(resultIsAny3, Decl(commaOperatorWithSecondOperandAnyType.ts, 16, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var resultIsAny4 = (STRING, ANY); +>resultIsAny4 : Symbol(resultIsAny4, Decl(commaOperatorWithSecondOperandAnyType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandAnyType.ts, 3, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var resultIsAny5 = (OBJECT, ANY); +>resultIsAny5 : Symbol(resultIsAny5, Decl(commaOperatorWithSecondOperandAnyType.ts, 18, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandAnyType.ts, 4, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +//Literal and expression +var x: any; +>x : Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) + +1, ANY; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +++NUMBER, ANY; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +"string", [null, 1]; +"string".charAt(0), [null, 1]; +>"string".charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + +true, x("any"); +>x : Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) + +!BOOLEAN, x.doSomeThing(); +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>x : Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) + +var resultIsAny6 = (1, ANY); +>resultIsAny6 : Symbol(resultIsAny6, Decl(commaOperatorWithSecondOperandAnyType.ts, 30, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var resultIsAny7 = (++NUMBER, ANY); +>resultIsAny7 : Symbol(resultIsAny7, Decl(commaOperatorWithSecondOperandAnyType.ts, 31, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) + +var resultIsAny8 = ("string", null); +>resultIsAny8 : Symbol(resultIsAny8, Decl(commaOperatorWithSecondOperandAnyType.ts, 32, 3)) + +var resultIsAny9 = ("string".charAt(0), undefined); +>resultIsAny9 : Symbol(resultIsAny9, Decl(commaOperatorWithSecondOperandAnyType.ts, 33, 3)) +>"string".charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>undefined : Symbol(undefined) + +var resultIsAny10 = (true, x("any")); +>resultIsAny10 : Symbol(resultIsAny10, Decl(commaOperatorWithSecondOperandAnyType.ts, 34, 3)) +>x : Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) + +var resultIsAny11 = (!BOOLEAN, x.doSomeThing()); +>resultIsAny11 : Symbol(resultIsAny11, Decl(commaOperatorWithSecondOperandAnyType.ts, 35, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>x : Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) + diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.types b/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.types index a57c3840984d0..a8217c2d2485d 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandAnyType.types @@ -1,96 +1,96 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandAnyType.ts === var ANY: any; ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : any var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>BOOLEAN : boolean var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) +>NUMBER : number var STRING: string; ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandAnyType.ts, 3, 3)) +>STRING : string var OBJECT: Object; ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandAnyType.ts, 4, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>OBJECT : Object +>Object : Object //The second operand type is any ANY, ANY; >ANY, ANY : any ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : any +>ANY : any BOOLEAN, ANY; >BOOLEAN, ANY : any ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>BOOLEAN : boolean +>ANY : any NUMBER, ANY; >NUMBER, ANY : any ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>NUMBER : number +>ANY : any STRING, ANY; >STRING, ANY : any ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandAnyType.ts, 3, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>STRING : string +>ANY : any OBJECT, ANY; >OBJECT, ANY : any ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandAnyType.ts, 4, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>OBJECT : Object +>ANY : any //Return type is any var resultIsAny1 = (ANY, ANY); ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(commaOperatorWithSecondOperandAnyType.ts, 14, 3)) +>resultIsAny1 : any >(ANY, ANY) : any >ANY, ANY : any ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : any +>ANY : any var resultIsAny2 = (BOOLEAN, ANY); ->resultIsAny2 : any, Symbol(resultIsAny2, Decl(commaOperatorWithSecondOperandAnyType.ts, 15, 3)) +>resultIsAny2 : any >(BOOLEAN, ANY) : any >BOOLEAN, ANY : any ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>BOOLEAN : boolean +>ANY : any var resultIsAny3 = (NUMBER, ANY); ->resultIsAny3 : any, Symbol(resultIsAny3, Decl(commaOperatorWithSecondOperandAnyType.ts, 16, 3)) +>resultIsAny3 : any >(NUMBER, ANY) : any >NUMBER, ANY : any ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>NUMBER : number +>ANY : any var resultIsAny4 = (STRING, ANY); ->resultIsAny4 : any, Symbol(resultIsAny4, Decl(commaOperatorWithSecondOperandAnyType.ts, 17, 3)) +>resultIsAny4 : any >(STRING, ANY) : any >STRING, ANY : any ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandAnyType.ts, 3, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>STRING : string +>ANY : any var resultIsAny5 = (OBJECT, ANY); ->resultIsAny5 : any, Symbol(resultIsAny5, Decl(commaOperatorWithSecondOperandAnyType.ts, 18, 3)) +>resultIsAny5 : any >(OBJECT, ANY) : any >OBJECT, ANY : any ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandAnyType.ts, 4, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>OBJECT : Object +>ANY : any //Literal and expression var x: any; ->x : any, Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) +>x : any 1, ANY; >1, ANY : any >1 : number ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : any ++NUMBER, ANY; >++NUMBER, ANY : any >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>NUMBER : number +>ANY : any "string", [null, 1]; >"string", [null, 1] : number[] @@ -102,9 +102,9 @@ var x: any; "string".charAt(0), [null, 1]; >"string".charAt(0), [null, 1] : number[] >"string".charAt(0) : string ->"string".charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>"string".charAt : (pos: number) => string >"string" : string ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>charAt : (pos: number) => string >0 : number >[null, 1] : number[] >null : null @@ -114,68 +114,68 @@ true, x("any"); >true, x("any") : any >true : boolean >x("any") : any ->x : any, Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) +>x : any >"any" : string !BOOLEAN, x.doSomeThing(); >!BOOLEAN, x.doSomeThing() : any >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>BOOLEAN : boolean >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) +>x : any >doSomeThing : any var resultIsAny6 = (1, ANY); ->resultIsAny6 : any, Symbol(resultIsAny6, Decl(commaOperatorWithSecondOperandAnyType.ts, 30, 3)) +>resultIsAny6 : any >(1, ANY) : any >1, ANY : any >1 : number ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>ANY : any var resultIsAny7 = (++NUMBER, ANY); ->resultIsAny7 : any, Symbol(resultIsAny7, Decl(commaOperatorWithSecondOperandAnyType.ts, 31, 3)) +>resultIsAny7 : any >(++NUMBER, ANY) : any >++NUMBER, ANY : any >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandAnyType.ts, 2, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandAnyType.ts, 0, 3)) +>NUMBER : number +>ANY : any var resultIsAny8 = ("string", null); ->resultIsAny8 : any, Symbol(resultIsAny8, Decl(commaOperatorWithSecondOperandAnyType.ts, 32, 3)) +>resultIsAny8 : any >("string", null) : null >"string", null : null >"string" : string >null : null var resultIsAny9 = ("string".charAt(0), undefined); ->resultIsAny9 : any, Symbol(resultIsAny9, Decl(commaOperatorWithSecondOperandAnyType.ts, 33, 3)) +>resultIsAny9 : any >("string".charAt(0), undefined) : undefined >"string".charAt(0), undefined : undefined >"string".charAt(0) : string ->"string".charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>"string".charAt : (pos: number) => string >"string" : string ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>charAt : (pos: number) => string >0 : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var resultIsAny10 = (true, x("any")); ->resultIsAny10 : any, Symbol(resultIsAny10, Decl(commaOperatorWithSecondOperandAnyType.ts, 34, 3)) +>resultIsAny10 : any >(true, x("any")) : any >true, x("any") : any >true : boolean >x("any") : any ->x : any, Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) +>x : any >"any" : string var resultIsAny11 = (!BOOLEAN, x.doSomeThing()); ->resultIsAny11 : any, Symbol(resultIsAny11, Decl(commaOperatorWithSecondOperandAnyType.ts, 35, 3)) +>resultIsAny11 : any >(!BOOLEAN, x.doSomeThing()) : any >!BOOLEAN, x.doSomeThing() : any >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandAnyType.ts, 1, 3)) +>BOOLEAN : boolean >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(commaOperatorWithSecondOperandAnyType.ts, 21, 3)) +>x : any >doSomeThing : any diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.symbols b/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.symbols new file mode 100644 index 0000000000000..bd520c1876df8 --- /dev/null +++ b/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.symbols @@ -0,0 +1,110 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandBooleanType.ts === +var ANY: any; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) + +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) + +var STRING: string; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandBooleanType.ts, 3, 3)) + +var OBJECT: Object; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//The second operand type is boolean +ANY, BOOLEAN; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +BOOLEAN, BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +NUMBER, BOOLEAN; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +STRING, BOOLEAN; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandBooleanType.ts, 3, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +OBJECT, BOOLEAN; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +//Return type is boolean +var resultIsBoolean1 = (ANY, BOOLEAN); +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(commaOperatorWithSecondOperandBooleanType.ts, 14, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean2 = (BOOLEAN, BOOLEAN); +>resultIsBoolean2 : Symbol(resultIsBoolean2, Decl(commaOperatorWithSecondOperandBooleanType.ts, 15, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean3 = (NUMBER, BOOLEAN); +>resultIsBoolean3 : Symbol(resultIsBoolean3, Decl(commaOperatorWithSecondOperandBooleanType.ts, 16, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean4 = (STRING, BOOLEAN); +>resultIsBoolean4 : Symbol(resultIsBoolean4, Decl(commaOperatorWithSecondOperandBooleanType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandBooleanType.ts, 3, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean5 = (OBJECT, BOOLEAN); +>resultIsBoolean5 : Symbol(resultIsBoolean5, Decl(commaOperatorWithSecondOperandBooleanType.ts, 18, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +//Literal and expression +null, BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +ANY = undefined, BOOLEAN; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) +>undefined : Symbol(undefined) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +1, true; +++NUMBER, true; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) + +[1, 2, 3], !BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +OBJECT = [1, 2, 3], BOOLEAN = false; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean6 = (null, BOOLEAN); +>resultIsBoolean6 : Symbol(resultIsBoolean6, Decl(commaOperatorWithSecondOperandBooleanType.ts, 28, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean7 = (ANY = undefined, BOOLEAN); +>resultIsBoolean7 : Symbol(resultIsBoolean7, Decl(commaOperatorWithSecondOperandBooleanType.ts, 29, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) +>undefined : Symbol(undefined) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean8 = (1, true); +>resultIsBoolean8 : Symbol(resultIsBoolean8, Decl(commaOperatorWithSecondOperandBooleanType.ts, 30, 3)) + +var resultIsBoolean9 = (++NUMBER, true); +>resultIsBoolean9 : Symbol(resultIsBoolean9, Decl(commaOperatorWithSecondOperandBooleanType.ts, 31, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) + +var resultIsBoolean10 = ([1, 2, 3], !BOOLEAN); +>resultIsBoolean10 : Symbol(resultIsBoolean10, Decl(commaOperatorWithSecondOperandBooleanType.ts, 32, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + +var resultIsBoolean11 = (OBJECT = [1, 2, 3], BOOLEAN = false); +>resultIsBoolean11 : Symbol(resultIsBoolean11, Decl(commaOperatorWithSecondOperandBooleanType.ts, 33, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) + diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.types b/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.types index 820c61d94b38f..dba5285d88095 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandBooleanType.types @@ -1,94 +1,94 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandBooleanType.ts === var ANY: any; ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) +>ANY : any var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) +>NUMBER : number var STRING: string; ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandBooleanType.ts, 3, 3)) +>STRING : string var OBJECT: Object; ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>OBJECT : Object +>Object : Object //The second operand type is boolean ANY, BOOLEAN; >ANY, BOOLEAN : boolean ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>ANY : any +>BOOLEAN : boolean BOOLEAN, BOOLEAN; >BOOLEAN, BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean +>BOOLEAN : boolean NUMBER, BOOLEAN; >NUMBER, BOOLEAN : boolean ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>NUMBER : number +>BOOLEAN : boolean STRING, BOOLEAN; >STRING, BOOLEAN : boolean ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandBooleanType.ts, 3, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>STRING : string +>BOOLEAN : boolean OBJECT, BOOLEAN; >OBJECT, BOOLEAN : boolean ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>OBJECT : Object +>BOOLEAN : boolean //Return type is boolean var resultIsBoolean1 = (ANY, BOOLEAN); ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(commaOperatorWithSecondOperandBooleanType.ts, 14, 3)) +>resultIsBoolean1 : boolean >(ANY, BOOLEAN) : boolean >ANY, BOOLEAN : boolean ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>ANY : any +>BOOLEAN : boolean var resultIsBoolean2 = (BOOLEAN, BOOLEAN); ->resultIsBoolean2 : boolean, Symbol(resultIsBoolean2, Decl(commaOperatorWithSecondOperandBooleanType.ts, 15, 3)) +>resultIsBoolean2 : boolean >(BOOLEAN, BOOLEAN) : boolean >BOOLEAN, BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean +>BOOLEAN : boolean var resultIsBoolean3 = (NUMBER, BOOLEAN); ->resultIsBoolean3 : boolean, Symbol(resultIsBoolean3, Decl(commaOperatorWithSecondOperandBooleanType.ts, 16, 3)) +>resultIsBoolean3 : boolean >(NUMBER, BOOLEAN) : boolean >NUMBER, BOOLEAN : boolean ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>NUMBER : number +>BOOLEAN : boolean var resultIsBoolean4 = (STRING, BOOLEAN); ->resultIsBoolean4 : boolean, Symbol(resultIsBoolean4, Decl(commaOperatorWithSecondOperandBooleanType.ts, 17, 3)) +>resultIsBoolean4 : boolean >(STRING, BOOLEAN) : boolean >STRING, BOOLEAN : boolean ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandBooleanType.ts, 3, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>STRING : string +>BOOLEAN : boolean var resultIsBoolean5 = (OBJECT, BOOLEAN); ->resultIsBoolean5 : boolean, Symbol(resultIsBoolean5, Decl(commaOperatorWithSecondOperandBooleanType.ts, 18, 3)) +>resultIsBoolean5 : boolean >(OBJECT, BOOLEAN) : boolean >OBJECT, BOOLEAN : boolean ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>OBJECT : Object +>BOOLEAN : boolean //Literal and expression null, BOOLEAN; >null, BOOLEAN : boolean >null : null ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean ANY = undefined, BOOLEAN; >ANY = undefined, BOOLEAN : boolean >ANY = undefined : undefined ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) ->undefined : undefined, Symbol(undefined) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>ANY : any +>undefined : undefined +>BOOLEAN : boolean 1, true; >1, true : boolean @@ -98,7 +98,7 @@ ANY = undefined, BOOLEAN; ++NUMBER, true; >++NUMBER, true : boolean >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) +>NUMBER : number >true : boolean [1, 2, 3], !BOOLEAN; @@ -108,53 +108,53 @@ ANY = undefined, BOOLEAN; >2 : number >3 : number >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean OBJECT = [1, 2, 3], BOOLEAN = false; >OBJECT = [1, 2, 3], BOOLEAN = false : boolean >OBJECT = [1, 2, 3] : number[] ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>OBJECT : Object >[1, 2, 3] : number[] >1 : number >2 : number >3 : number >BOOLEAN = false : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean >false : boolean var resultIsBoolean6 = (null, BOOLEAN); ->resultIsBoolean6 : boolean, Symbol(resultIsBoolean6, Decl(commaOperatorWithSecondOperandBooleanType.ts, 28, 3)) +>resultIsBoolean6 : boolean >(null, BOOLEAN) : boolean >null, BOOLEAN : boolean >null : null ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean var resultIsBoolean7 = (ANY = undefined, BOOLEAN); ->resultIsBoolean7 : boolean, Symbol(resultIsBoolean7, Decl(commaOperatorWithSecondOperandBooleanType.ts, 29, 3)) +>resultIsBoolean7 : boolean >(ANY = undefined, BOOLEAN) : boolean >ANY = undefined, BOOLEAN : boolean >ANY = undefined : undefined ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandBooleanType.ts, 0, 3)) ->undefined : undefined, Symbol(undefined) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>ANY : any +>undefined : undefined +>BOOLEAN : boolean var resultIsBoolean8 = (1, true); ->resultIsBoolean8 : boolean, Symbol(resultIsBoolean8, Decl(commaOperatorWithSecondOperandBooleanType.ts, 30, 3)) +>resultIsBoolean8 : boolean >(1, true) : boolean >1, true : boolean >1 : number >true : boolean var resultIsBoolean9 = (++NUMBER, true); ->resultIsBoolean9 : boolean, Symbol(resultIsBoolean9, Decl(commaOperatorWithSecondOperandBooleanType.ts, 31, 3)) +>resultIsBoolean9 : boolean >(++NUMBER, true) : boolean >++NUMBER, true : boolean >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandBooleanType.ts, 2, 3)) +>NUMBER : number >true : boolean var resultIsBoolean10 = ([1, 2, 3], !BOOLEAN); ->resultIsBoolean10 : boolean, Symbol(resultIsBoolean10, Decl(commaOperatorWithSecondOperandBooleanType.ts, 32, 3)) +>resultIsBoolean10 : boolean >([1, 2, 3], !BOOLEAN) : boolean >[1, 2, 3], !BOOLEAN : boolean >[1, 2, 3] : number[] @@ -162,19 +162,19 @@ var resultIsBoolean10 = ([1, 2, 3], !BOOLEAN); >2 : number >3 : number >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean var resultIsBoolean11 = (OBJECT = [1, 2, 3], BOOLEAN = false); ->resultIsBoolean11 : boolean, Symbol(resultIsBoolean11, Decl(commaOperatorWithSecondOperandBooleanType.ts, 33, 3)) +>resultIsBoolean11 : boolean >(OBJECT = [1, 2, 3], BOOLEAN = false) : boolean >OBJECT = [1, 2, 3], BOOLEAN = false : boolean >OBJECT = [1, 2, 3] : number[] ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandBooleanType.ts, 4, 3)) +>OBJECT : Object >[1, 2, 3] : number[] >1 : number >2 : number >3 : number >BOOLEAN = false : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandBooleanType.ts, 1, 3)) +>BOOLEAN : boolean >false : boolean diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.symbols b/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.symbols new file mode 100644 index 0000000000000..3da456eaa5f24 --- /dev/null +++ b/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.symbols @@ -0,0 +1,114 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandNumberType.ts === +var ANY: any; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) + +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) + +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var STRING: string; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) + +var OBJECT: Object; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandNumberType.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//The second operand type is number +ANY, NUMBER; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +BOOLEAN, NUMBER; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +NUMBER, NUMBER; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +STRING, NUMBER; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +OBJECT, NUMBER; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandNumberType.ts, 4, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +//Return type is number +var resultIsNumber1 = (ANY, NUMBER); +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(commaOperatorWithSecondOperandNumberType.ts, 14, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber2 = (BOOLEAN, NUMBER); +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(commaOperatorWithSecondOperandNumberType.ts, 15, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber3 = (NUMBER, NUMBER); +>resultIsNumber3 : Symbol(resultIsNumber3, Decl(commaOperatorWithSecondOperandNumberType.ts, 16, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber4 = (STRING, NUMBER); +>resultIsNumber4 : Symbol(resultIsNumber4, Decl(commaOperatorWithSecondOperandNumberType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber5 = (OBJECT, NUMBER); +>resultIsNumber5 : Symbol(resultIsNumber5, Decl(commaOperatorWithSecondOperandNumberType.ts, 18, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandNumberType.ts, 4, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +//Literal and expression +null, NUMBER; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +ANY = undefined, NUMBER; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) +>undefined : Symbol(undefined) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +true, 1; +BOOLEAN = false, 1; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) + +"", NUMBER = 1; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +STRING.trim(), NUMBER = 1; +>STRING.trim : Symbol(String.trim, Decl(lib.d.ts, 411, 32)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) +>trim : Symbol(String.trim, Decl(lib.d.ts, 411, 32)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber6 = (null, NUMBER); +>resultIsNumber6 : Symbol(resultIsNumber6, Decl(commaOperatorWithSecondOperandNumberType.ts, 28, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber7 = (ANY = undefined, NUMBER); +>resultIsNumber7 : Symbol(resultIsNumber7, Decl(commaOperatorWithSecondOperandNumberType.ts, 29, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) +>undefined : Symbol(undefined) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber8 = (true, 1); +>resultIsNumber8 : Symbol(resultIsNumber8, Decl(commaOperatorWithSecondOperandNumberType.ts, 30, 3)) + +var resultIsNumber9 = (BOOLEAN = false, 1); +>resultIsNumber9 : Symbol(resultIsNumber9, Decl(commaOperatorWithSecondOperandNumberType.ts, 31, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) + +var resultIsNumber10 = ("", NUMBER = 1); +>resultIsNumber10 : Symbol(resultIsNumber10, Decl(commaOperatorWithSecondOperandNumberType.ts, 32, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + +var resultIsNumber11 = (STRING.trim(), NUMBER = 1); +>resultIsNumber11 : Symbol(resultIsNumber11, Decl(commaOperatorWithSecondOperandNumberType.ts, 33, 3)) +>STRING.trim : Symbol(String.trim, Decl(lib.d.ts, 411, 32)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) +>trim : Symbol(String.trim, Decl(lib.d.ts, 411, 32)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) + diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.types b/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.types index d9c98ea7f29e8..13aae51e0cb33 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandNumberType.types @@ -1,94 +1,94 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandNumberType.ts === var ANY: any; ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) +>ANY : any var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) +>BOOLEAN : boolean var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number var STRING: string; ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) +>STRING : string var OBJECT: Object; ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandNumberType.ts, 4, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>OBJECT : Object +>Object : Object //The second operand type is number ANY, NUMBER; >ANY, NUMBER : number ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>ANY : any +>NUMBER : number BOOLEAN, NUMBER; >BOOLEAN, NUMBER : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>BOOLEAN : boolean +>NUMBER : number NUMBER, NUMBER; >NUMBER, NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number +>NUMBER : number STRING, NUMBER; >STRING, NUMBER : number ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>STRING : string +>NUMBER : number OBJECT, NUMBER; >OBJECT, NUMBER : number ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandNumberType.ts, 4, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>OBJECT : Object +>NUMBER : number //Return type is number var resultIsNumber1 = (ANY, NUMBER); ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(commaOperatorWithSecondOperandNumberType.ts, 14, 3)) +>resultIsNumber1 : number >(ANY, NUMBER) : number >ANY, NUMBER : number ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>ANY : any +>NUMBER : number var resultIsNumber2 = (BOOLEAN, NUMBER); ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(commaOperatorWithSecondOperandNumberType.ts, 15, 3)) +>resultIsNumber2 : number >(BOOLEAN, NUMBER) : number >BOOLEAN, NUMBER : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>BOOLEAN : boolean +>NUMBER : number var resultIsNumber3 = (NUMBER, NUMBER); ->resultIsNumber3 : number, Symbol(resultIsNumber3, Decl(commaOperatorWithSecondOperandNumberType.ts, 16, 3)) +>resultIsNumber3 : number >(NUMBER, NUMBER) : number >NUMBER, NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number +>NUMBER : number var resultIsNumber4 = (STRING, NUMBER); ->resultIsNumber4 : number, Symbol(resultIsNumber4, Decl(commaOperatorWithSecondOperandNumberType.ts, 17, 3)) +>resultIsNumber4 : number >(STRING, NUMBER) : number >STRING, NUMBER : number ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>STRING : string +>NUMBER : number var resultIsNumber5 = (OBJECT, NUMBER); ->resultIsNumber5 : number, Symbol(resultIsNumber5, Decl(commaOperatorWithSecondOperandNumberType.ts, 18, 3)) +>resultIsNumber5 : number >(OBJECT, NUMBER) : number >OBJECT, NUMBER : number ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandNumberType.ts, 4, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>OBJECT : Object +>NUMBER : number //Literal and expression null, NUMBER; >null, NUMBER : number >null : null ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number ANY = undefined, NUMBER; >ANY = undefined, NUMBER : number >ANY = undefined : undefined ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) ->undefined : undefined, Symbol(undefined) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>ANY : any +>undefined : undefined +>NUMBER : number true, 1; >true, 1 : number @@ -98,7 +98,7 @@ true, 1; BOOLEAN = false, 1; >BOOLEAN = false, 1 : number >BOOLEAN = false : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) +>BOOLEAN : boolean >false : boolean >1 : number @@ -106,69 +106,69 @@ BOOLEAN = false, 1; >"", NUMBER = 1 : number >"" : string >NUMBER = 1 : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number >1 : number STRING.trim(), NUMBER = 1; >STRING.trim(), NUMBER = 1 : number >STRING.trim() : string ->STRING.trim : () => string, Symbol(String.trim, Decl(lib.d.ts, 411, 32)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) ->trim : () => string, Symbol(String.trim, Decl(lib.d.ts, 411, 32)) +>STRING.trim : () => string +>STRING : string +>trim : () => string >NUMBER = 1 : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number >1 : number var resultIsNumber6 = (null, NUMBER); ->resultIsNumber6 : number, Symbol(resultIsNumber6, Decl(commaOperatorWithSecondOperandNumberType.ts, 28, 3)) +>resultIsNumber6 : number >(null, NUMBER) : number >null, NUMBER : number >null : null ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number var resultIsNumber7 = (ANY = undefined, NUMBER); ->resultIsNumber7 : number, Symbol(resultIsNumber7, Decl(commaOperatorWithSecondOperandNumberType.ts, 29, 3)) +>resultIsNumber7 : number >(ANY = undefined, NUMBER) : number >ANY = undefined, NUMBER : number >ANY = undefined : undefined ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandNumberType.ts, 0, 3)) ->undefined : undefined, Symbol(undefined) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>ANY : any +>undefined : undefined +>NUMBER : number var resultIsNumber8 = (true, 1); ->resultIsNumber8 : number, Symbol(resultIsNumber8, Decl(commaOperatorWithSecondOperandNumberType.ts, 30, 3)) +>resultIsNumber8 : number >(true, 1) : number >true, 1 : number >true : boolean >1 : number var resultIsNumber9 = (BOOLEAN = false, 1); ->resultIsNumber9 : number, Symbol(resultIsNumber9, Decl(commaOperatorWithSecondOperandNumberType.ts, 31, 3)) +>resultIsNumber9 : number >(BOOLEAN = false, 1) : number >BOOLEAN = false, 1 : number >BOOLEAN = false : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandNumberType.ts, 1, 3)) +>BOOLEAN : boolean >false : boolean >1 : number var resultIsNumber10 = ("", NUMBER = 1); ->resultIsNumber10 : number, Symbol(resultIsNumber10, Decl(commaOperatorWithSecondOperandNumberType.ts, 32, 3)) +>resultIsNumber10 : number >("", NUMBER = 1) : number >"", NUMBER = 1 : number >"" : string >NUMBER = 1 : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number >1 : number var resultIsNumber11 = (STRING.trim(), NUMBER = 1); ->resultIsNumber11 : number, Symbol(resultIsNumber11, Decl(commaOperatorWithSecondOperandNumberType.ts, 33, 3)) +>resultIsNumber11 : number >(STRING.trim(), NUMBER = 1) : number >STRING.trim(), NUMBER = 1 : number >STRING.trim() : string ->STRING.trim : () => string, Symbol(String.trim, Decl(lib.d.ts, 411, 32)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandNumberType.ts, 3, 3)) ->trim : () => string, Symbol(String.trim, Decl(lib.d.ts, 411, 32)) +>STRING.trim : () => string +>STRING : string +>trim : () => string >NUMBER = 1 : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandNumberType.ts, 2, 3)) +>NUMBER : number >1 : number diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.symbols b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.symbols new file mode 100644 index 0000000000000..42f24f77d5061 --- /dev/null +++ b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.symbols @@ -0,0 +1,121 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts === +var ANY: any; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) + +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) + +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandObjectType.ts, 2, 3)) + +var STRING: string; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) + +var OBJECT: Object; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +class CLASS { +>CLASS : Symbol(CLASS, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 19)) + + num: number; +>num : Symbol(num, Decl(commaOperatorWithSecondOperandObjectType.ts, 6, 13)) +} + +//The second operand type is Object +ANY, OBJECT; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +BOOLEAN, OBJECT; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +NUMBER, OBJECT; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandObjectType.ts, 2, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +STRING, OBJECT; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +OBJECT, OBJECT; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +//Return type is Object +var resultIsObject1 = (ANY, OBJECT); +>resultIsObject1 : Symbol(resultIsObject1, Decl(commaOperatorWithSecondOperandObjectType.ts, 18, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +var resultIsObject2 = (BOOLEAN, OBJECT); +>resultIsObject2 : Symbol(resultIsObject2, Decl(commaOperatorWithSecondOperandObjectType.ts, 19, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +var resultIsObject3 = (NUMBER, OBJECT); +>resultIsObject3 : Symbol(resultIsObject3, Decl(commaOperatorWithSecondOperandObjectType.ts, 20, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandObjectType.ts, 2, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +var resultIsObject4 = (STRING, OBJECT); +>resultIsObject4 : Symbol(resultIsObject4, Decl(commaOperatorWithSecondOperandObjectType.ts, 21, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +var resultIsObject5 = (OBJECT, OBJECT); +>resultIsObject5 : Symbol(resultIsObject5, Decl(commaOperatorWithSecondOperandObjectType.ts, 22, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +//Literal and expression +null, OBJECT +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +ANY = null, OBJECT +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +true, {} +!BOOLEAN, [] +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) + +"string", new Date() +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +STRING.toLowerCase(), new CLASS() +>STRING.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>CLASS : Symbol(CLASS, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 19)) + +var resultIsObject6 = (null, OBJECT); +>resultIsObject6 : Symbol(resultIsObject6, Decl(commaOperatorWithSecondOperandObjectType.ts, 32, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +var resultIsObject7 = (ANY = null, OBJECT); +>resultIsObject7 : Symbol(resultIsObject7, Decl(commaOperatorWithSecondOperandObjectType.ts, 33, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) + +var resultIsObject8 = (true, {}); +>resultIsObject8 : Symbol(resultIsObject8, Decl(commaOperatorWithSecondOperandObjectType.ts, 34, 3)) + +var resultIsObject9 = (!BOOLEAN, { a: 1, b: "s" }); +>resultIsObject9 : Symbol(resultIsObject9, Decl(commaOperatorWithSecondOperandObjectType.ts, 35, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) +>a : Symbol(a, Decl(commaOperatorWithSecondOperandObjectType.ts, 35, 34)) +>b : Symbol(b, Decl(commaOperatorWithSecondOperandObjectType.ts, 35, 40)) + +var resultIsObject10 = ("string", new Date()); +>resultIsObject10 : Symbol(resultIsObject10, Decl(commaOperatorWithSecondOperandObjectType.ts, 36, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var resultIsObject11 = (STRING.toLowerCase(), new CLASS()); +>resultIsObject11 : Symbol(resultIsObject11, Decl(commaOperatorWithSecondOperandObjectType.ts, 37, 3)) +>STRING.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>CLASS : Symbol(CLASS, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 19)) + diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types index d0724ba06153b..9c948da969978 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandObjectType.types @@ -1,101 +1,101 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandObjectType.ts === var ANY: any; ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>ANY : any var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) +>BOOLEAN : boolean var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandObjectType.ts, 2, 3)) +>NUMBER : number var STRING: string; ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) +>STRING : string var OBJECT: Object; ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>OBJECT : Object +>Object : Object class CLASS { ->CLASS : CLASS, Symbol(CLASS, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 19)) +>CLASS : CLASS num: number; ->num : number, Symbol(num, Decl(commaOperatorWithSecondOperandObjectType.ts, 6, 13)) +>num : number } //The second operand type is Object ANY, OBJECT; >ANY, OBJECT : Object ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>ANY : any +>OBJECT : Object BOOLEAN, OBJECT; >BOOLEAN, OBJECT : Object ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>BOOLEAN : boolean +>OBJECT : Object NUMBER, OBJECT; >NUMBER, OBJECT : Object ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandObjectType.ts, 2, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>NUMBER : number +>OBJECT : Object STRING, OBJECT; >STRING, OBJECT : Object ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>STRING : string +>OBJECT : Object OBJECT, OBJECT; >OBJECT, OBJECT : Object ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Object +>OBJECT : Object //Return type is Object var resultIsObject1 = (ANY, OBJECT); ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(commaOperatorWithSecondOperandObjectType.ts, 18, 3)) +>resultIsObject1 : Object >(ANY, OBJECT) : Object >ANY, OBJECT : Object ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>ANY : any +>OBJECT : Object var resultIsObject2 = (BOOLEAN, OBJECT); ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(commaOperatorWithSecondOperandObjectType.ts, 19, 3)) +>resultIsObject2 : Object >(BOOLEAN, OBJECT) : Object >BOOLEAN, OBJECT : Object ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>BOOLEAN : boolean +>OBJECT : Object var resultIsObject3 = (NUMBER, OBJECT); ->resultIsObject3 : Object, Symbol(resultIsObject3, Decl(commaOperatorWithSecondOperandObjectType.ts, 20, 3)) +>resultIsObject3 : Object >(NUMBER, OBJECT) : Object >NUMBER, OBJECT : Object ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandObjectType.ts, 2, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>NUMBER : number +>OBJECT : Object var resultIsObject4 = (STRING, OBJECT); ->resultIsObject4 : Object, Symbol(resultIsObject4, Decl(commaOperatorWithSecondOperandObjectType.ts, 21, 3)) +>resultIsObject4 : Object >(STRING, OBJECT) : Object >STRING, OBJECT : Object ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>STRING : string +>OBJECT : Object var resultIsObject5 = (OBJECT, OBJECT); ->resultIsObject5 : Object, Symbol(resultIsObject5, Decl(commaOperatorWithSecondOperandObjectType.ts, 22, 3)) +>resultIsObject5 : Object >(OBJECT, OBJECT) : Object >OBJECT, OBJECT : Object ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Object +>OBJECT : Object //Literal and expression null, OBJECT >null, OBJECT : Object >null : null ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Object ANY = null, OBJECT >ANY = null, OBJECT : Object >ANY = null : null ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>ANY : any >null : null ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Object true, {} >true, {} : {} @@ -105,75 +105,75 @@ true, {} !BOOLEAN, [] >!BOOLEAN, [] : undefined[] >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) +>BOOLEAN : boolean >[] : undefined[] "string", new Date() >"string", new Date() : Date >"string" : string >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor STRING.toLowerCase(), new CLASS() >STRING.toLowerCase(), new CLASS() : CLASS >STRING.toLowerCase() : string ->STRING.toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) ->toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>STRING.toLowerCase : () => string +>STRING : string +>toLowerCase : () => string >new CLASS() : CLASS ->CLASS : typeof CLASS, Symbol(CLASS, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 19)) +>CLASS : typeof CLASS var resultIsObject6 = (null, OBJECT); ->resultIsObject6 : Object, Symbol(resultIsObject6, Decl(commaOperatorWithSecondOperandObjectType.ts, 32, 3)) +>resultIsObject6 : Object >(null, OBJECT) : Object >null, OBJECT : Object >null : null ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Object var resultIsObject7 = (ANY = null, OBJECT); ->resultIsObject7 : Object, Symbol(resultIsObject7, Decl(commaOperatorWithSecondOperandObjectType.ts, 33, 3)) +>resultIsObject7 : Object >(ANY = null, OBJECT) : Object >ANY = null, OBJECT : Object >ANY = null : null ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandObjectType.ts, 0, 3)) +>ANY : any >null : null ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 3)) +>OBJECT : Object var resultIsObject8 = (true, {}); ->resultIsObject8 : {}, Symbol(resultIsObject8, Decl(commaOperatorWithSecondOperandObjectType.ts, 34, 3)) +>resultIsObject8 : {} >(true, {}) : {} >true, {} : {} >true : boolean >{} : {} var resultIsObject9 = (!BOOLEAN, { a: 1, b: "s" }); ->resultIsObject9 : { a: number; b: string; }, Symbol(resultIsObject9, Decl(commaOperatorWithSecondOperandObjectType.ts, 35, 3)) +>resultIsObject9 : { a: number; b: string; } >(!BOOLEAN, { a: 1, b: "s" }) : { a: number; b: string; } >!BOOLEAN, { a: 1, b: "s" } : { a: number; b: string; } >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandObjectType.ts, 1, 3)) +>BOOLEAN : boolean >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(commaOperatorWithSecondOperandObjectType.ts, 35, 34)) +>a : number >1 : number ->b : string, Symbol(b, Decl(commaOperatorWithSecondOperandObjectType.ts, 35, 40)) +>b : string >"s" : string var resultIsObject10 = ("string", new Date()); ->resultIsObject10 : Date, Symbol(resultIsObject10, Decl(commaOperatorWithSecondOperandObjectType.ts, 36, 3)) +>resultIsObject10 : Date >("string", new Date()) : Date >"string", new Date() : Date >"string" : string >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor var resultIsObject11 = (STRING.toLowerCase(), new CLASS()); ->resultIsObject11 : CLASS, Symbol(resultIsObject11, Decl(commaOperatorWithSecondOperandObjectType.ts, 37, 3)) +>resultIsObject11 : CLASS >(STRING.toLowerCase(), new CLASS()) : CLASS >STRING.toLowerCase(), new CLASS() : CLASS >STRING.toLowerCase() : string ->STRING.toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandObjectType.ts, 3, 3)) ->toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>STRING.toLowerCase : () => string +>STRING : string +>toLowerCase : () => string >new CLASS() : CLASS ->CLASS : typeof CLASS, Symbol(CLASS, Decl(commaOperatorWithSecondOperandObjectType.ts, 4, 19)) +>CLASS : typeof CLASS diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.symbols b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.symbols new file mode 100644 index 0000000000000..d0c800858f713 --- /dev/null +++ b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.symbols @@ -0,0 +1,120 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandStringType.ts === +var ANY: any; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) + +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) + +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) + +var STRING: string; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var OBJECT: Object; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var resultIsString: string; +>resultIsString : Symbol(resultIsString, Decl(commaOperatorWithSecondOperandStringType.ts, 6, 3)) + +//The second operand is string +ANY, STRING; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +BOOLEAN, STRING; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +NUMBER, STRING; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +STRING, STRING; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +OBJECT, STRING; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +//Return type is string +var resultIsString1 = (ANY, STRING); +>resultIsString1 : Symbol(resultIsString1, Decl(commaOperatorWithSecondOperandStringType.ts, 16, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString2 = (BOOLEAN, STRING); +>resultIsString2 : Symbol(resultIsString2, Decl(commaOperatorWithSecondOperandStringType.ts, 17, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString3 = (NUMBER, STRING); +>resultIsString3 : Symbol(resultIsString3, Decl(commaOperatorWithSecondOperandStringType.ts, 18, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString4 = (STRING, STRING); +>resultIsString4 : Symbol(resultIsString4, Decl(commaOperatorWithSecondOperandStringType.ts, 19, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString5 = (OBJECT, STRING); +>resultIsString5 : Symbol(resultIsString5, Decl(commaOperatorWithSecondOperandStringType.ts, 20, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +//Literal and expression +null, STRING; +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +ANY = new Date(), STRING; +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +true, ""; +BOOLEAN == undefined, ""; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) +>undefined : Symbol(undefined) + +["a", "b"], NUMBER.toString(); +>NUMBER.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +OBJECT = new Object, STRING + "string"; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString6 = (null, STRING); +>resultIsString6 : Symbol(resultIsString6, Decl(commaOperatorWithSecondOperandStringType.ts, 30, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString7 = (ANY = new Date(), STRING); +>resultIsString7 : Symbol(resultIsString7, Decl(commaOperatorWithSecondOperandStringType.ts, 31, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + +var resultIsString8 = (true, ""); +>resultIsString8 : Symbol(resultIsString8, Decl(commaOperatorWithSecondOperandStringType.ts, 32, 3)) + +var resultIsString9 = (BOOLEAN == undefined, ""); +>resultIsString9 : Symbol(resultIsString9, Decl(commaOperatorWithSecondOperandStringType.ts, 33, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) +>undefined : Symbol(undefined) + +var resultIsString10 = (["a", "b"], NUMBER.toString()); +>resultIsString10 : Symbol(resultIsString10, Decl(commaOperatorWithSecondOperandStringType.ts, 34, 3)) +>NUMBER.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +var resultIsString11 = (new Object, STRING + "string"); +>resultIsString11 : Symbol(resultIsString11, Decl(commaOperatorWithSecondOperandStringType.ts, 35, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>STRING : Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) + diff --git a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types index 8170a66746b27..a28202876d25e 100644 --- a/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types +++ b/tests/baselines/reference/commaOperatorWithSecondOperandStringType.types @@ -1,98 +1,98 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorWithSecondOperandStringType.ts === var ANY: any; ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>ANY : any var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) +>BOOLEAN : boolean var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) +>NUMBER : number var STRING: string; ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string var OBJECT: Object; ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>OBJECT : Object +>Object : Object var resultIsString: string; ->resultIsString : string, Symbol(resultIsString, Decl(commaOperatorWithSecondOperandStringType.ts, 6, 3)) +>resultIsString : string //The second operand is string ANY, STRING; >ANY, STRING : string ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>ANY : any +>STRING : string BOOLEAN, STRING; >BOOLEAN, STRING : string ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>BOOLEAN : boolean +>STRING : string NUMBER, STRING; >NUMBER, STRING : string ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>NUMBER : number +>STRING : string STRING, STRING; >STRING, STRING : string ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string +>STRING : string OBJECT, STRING; >OBJECT, STRING : string ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>OBJECT : Object +>STRING : string //Return type is string var resultIsString1 = (ANY, STRING); ->resultIsString1 : string, Symbol(resultIsString1, Decl(commaOperatorWithSecondOperandStringType.ts, 16, 3)) +>resultIsString1 : string >(ANY, STRING) : string >ANY, STRING : string ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>ANY : any +>STRING : string var resultIsString2 = (BOOLEAN, STRING); ->resultIsString2 : string, Symbol(resultIsString2, Decl(commaOperatorWithSecondOperandStringType.ts, 17, 3)) +>resultIsString2 : string >(BOOLEAN, STRING) : string >BOOLEAN, STRING : string ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>BOOLEAN : boolean +>STRING : string var resultIsString3 = (NUMBER, STRING); ->resultIsString3 : string, Symbol(resultIsString3, Decl(commaOperatorWithSecondOperandStringType.ts, 18, 3)) +>resultIsString3 : string >(NUMBER, STRING) : string >NUMBER, STRING : string ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>NUMBER : number +>STRING : string var resultIsString4 = (STRING, STRING); ->resultIsString4 : string, Symbol(resultIsString4, Decl(commaOperatorWithSecondOperandStringType.ts, 19, 3)) +>resultIsString4 : string >(STRING, STRING) : string >STRING, STRING : string ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string +>STRING : string var resultIsString5 = (OBJECT, STRING); ->resultIsString5 : string, Symbol(resultIsString5, Decl(commaOperatorWithSecondOperandStringType.ts, 20, 3)) +>resultIsString5 : string >(OBJECT, STRING) : string >OBJECT, STRING : string ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>OBJECT : Object +>STRING : string //Literal and expression null, STRING; >null, STRING : string >null : null ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string ANY = new Date(), STRING; >ANY = new Date(), STRING : string >ANY = new Date() : Date ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>ANY : any >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>Date : DateConstructor +>STRING : string true, ""; >true, "" : string @@ -102,8 +102,8 @@ true, ""; BOOLEAN == undefined, ""; >BOOLEAN == undefined, "" : string >BOOLEAN == undefined : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) ->undefined : undefined, Symbol(undefined) +>BOOLEAN : boolean +>undefined : undefined >"" : string ["a", "b"], NUMBER.toString(); @@ -112,72 +112,72 @@ BOOLEAN == undefined, ""; >"a" : string >"b" : string >NUMBER.toString() : string ->NUMBER.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>NUMBER.toString : (radix?: number) => string +>NUMBER : number +>toString : (radix?: number) => string OBJECT = new Object, STRING + "string"; >OBJECT = new Object, STRING + "string" : string >OBJECT = new Object : Object ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorWithSecondOperandStringType.ts, 4, 3)) +>OBJECT : Object >new Object : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor >STRING + "string" : string ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string >"string" : string var resultIsString6 = (null, STRING); ->resultIsString6 : string, Symbol(resultIsString6, Decl(commaOperatorWithSecondOperandStringType.ts, 30, 3)) +>resultIsString6 : string >(null, STRING) : string >null, STRING : string >null : null ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string var resultIsString7 = (ANY = new Date(), STRING); ->resultIsString7 : string, Symbol(resultIsString7, Decl(commaOperatorWithSecondOperandStringType.ts, 31, 3)) +>resultIsString7 : string >(ANY = new Date(), STRING) : string >ANY = new Date(), STRING : string >ANY = new Date() : Date ->ANY : any, Symbol(ANY, Decl(commaOperatorWithSecondOperandStringType.ts, 0, 3)) +>ANY : any >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>Date : DateConstructor +>STRING : string var resultIsString8 = (true, ""); ->resultIsString8 : string, Symbol(resultIsString8, Decl(commaOperatorWithSecondOperandStringType.ts, 32, 3)) +>resultIsString8 : string >(true, "") : string >true, "" : string >true : boolean >"" : string var resultIsString9 = (BOOLEAN == undefined, ""); ->resultIsString9 : string, Symbol(resultIsString9, Decl(commaOperatorWithSecondOperandStringType.ts, 33, 3)) +>resultIsString9 : string >(BOOLEAN == undefined, "") : string >BOOLEAN == undefined, "" : string >BOOLEAN == undefined : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorWithSecondOperandStringType.ts, 1, 3)) ->undefined : undefined, Symbol(undefined) +>BOOLEAN : boolean +>undefined : undefined >"" : string var resultIsString10 = (["a", "b"], NUMBER.toString()); ->resultIsString10 : string, Symbol(resultIsString10, Decl(commaOperatorWithSecondOperandStringType.ts, 34, 3)) +>resultIsString10 : string >(["a", "b"], NUMBER.toString()) : string >["a", "b"], NUMBER.toString() : string >["a", "b"] : string[] >"a" : string >"b" : string >NUMBER.toString() : string ->NUMBER.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorWithSecondOperandStringType.ts, 2, 3)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>NUMBER.toString : (radix?: number) => string +>NUMBER : number +>toString : (radix?: number) => string var resultIsString11 = (new Object, STRING + "string"); ->resultIsString11 : string, Symbol(resultIsString11, Decl(commaOperatorWithSecondOperandStringType.ts, 35, 3)) +>resultIsString11 : string >(new Object, STRING + "string") : string >new Object, STRING + "string" : string >new Object : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor >STRING + "string" : string ->STRING : string, Symbol(STRING, Decl(commaOperatorWithSecondOperandStringType.ts, 3, 3)) +>STRING : string >"string" : string diff --git a/tests/baselines/reference/commaOperatorsMultipleOperators.symbols b/tests/baselines/reference/commaOperatorsMultipleOperators.symbols new file mode 100644 index 0000000000000..bd39a21519f5a --- /dev/null +++ b/tests/baselines/reference/commaOperatorsMultipleOperators.symbols @@ -0,0 +1,94 @@ +=== tests/cases/conformance/expressions/commaOperator/commaOperatorsMultipleOperators.ts === +var ANY: any; +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) + +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) + +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) + +var STRING: string; +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) + +var OBJECT: Object; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//Expected: work well +ANY, BOOLEAN, NUMBER; +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) + +BOOLEAN, NUMBER, STRING; +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) + +NUMBER, STRING, OBJECT; +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) + +STRING, OBJECT, ANY; +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) + +OBJECT, ANY, BOOLEAN; +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) + +//Results should have the same type as the third operand +var resultIsAny1 = (STRING, OBJECT, ANY); +>resultIsAny1 : Symbol(resultIsAny1, Decl(commaOperatorsMultipleOperators.ts, 14, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) + +var resultIsBoolean1 = (OBJECT, ANY, BOOLEAN); +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(commaOperatorsMultipleOperators.ts, 15, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) + +var resultIsNumber1 = (ANY, BOOLEAN, NUMBER); +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(commaOperatorsMultipleOperators.ts, 16, 3)) +>ANY : Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) + +var resultIsString1 = (BOOLEAN, NUMBER, STRING); +>resultIsString1 : Symbol(resultIsString1, Decl(commaOperatorsMultipleOperators.ts, 17, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) + +var resultIsObject1 = (NUMBER, STRING, OBJECT); +>resultIsObject1 : Symbol(resultIsObject1, Decl(commaOperatorsMultipleOperators.ts, 18, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>OBJECT : Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) + +//Literal and expression +null, true, 1; +++NUMBER, STRING.charAt(0), new Object(); +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>STRING.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var resultIsNumber2 = (null, true, 1); +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(commaOperatorsMultipleOperators.ts, 24, 3)) + +var resultIsObject2 = (++NUMBER, STRING.charAt(0), new Object()); +>resultIsObject2 : Symbol(resultIsObject2, Decl(commaOperatorsMultipleOperators.ts, 25, 3)) +>NUMBER : Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>STRING.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING : Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + diff --git a/tests/baselines/reference/commaOperatorsMultipleOperators.types b/tests/baselines/reference/commaOperatorsMultipleOperators.types index 25b7d63459d4e..9a2c7c7e5c5fa 100644 --- a/tests/baselines/reference/commaOperatorsMultipleOperators.types +++ b/tests/baselines/reference/commaOperatorsMultipleOperators.types @@ -1,101 +1,101 @@ === tests/cases/conformance/expressions/commaOperator/commaOperatorsMultipleOperators.ts === var ANY: any; ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>ANY : any var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>BOOLEAN : boolean var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>NUMBER : number var STRING: string; ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>STRING : string var OBJECT: Object; ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>OBJECT : Object +>Object : Object //Expected: work well ANY, BOOLEAN, NUMBER; >ANY, BOOLEAN, NUMBER : number >ANY, BOOLEAN : boolean ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>ANY : any +>BOOLEAN : boolean +>NUMBER : number BOOLEAN, NUMBER, STRING; >BOOLEAN, NUMBER, STRING : string >BOOLEAN, NUMBER : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>BOOLEAN : boolean +>NUMBER : number +>STRING : string NUMBER, STRING, OBJECT; >NUMBER, STRING, OBJECT : Object >NUMBER, STRING : string ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>NUMBER : number +>STRING : string +>OBJECT : Object STRING, OBJECT, ANY; >STRING, OBJECT, ANY : any >STRING, OBJECT : Object ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>STRING : string +>OBJECT : Object +>ANY : any OBJECT, ANY, BOOLEAN; >OBJECT, ANY, BOOLEAN : boolean >OBJECT, ANY : any ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>OBJECT : Object +>ANY : any +>BOOLEAN : boolean //Results should have the same type as the third operand var resultIsAny1 = (STRING, OBJECT, ANY); ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(commaOperatorsMultipleOperators.ts, 14, 3)) +>resultIsAny1 : any >(STRING, OBJECT, ANY) : any >STRING, OBJECT, ANY : any >STRING, OBJECT : Object ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) +>STRING : string +>OBJECT : Object +>ANY : any var resultIsBoolean1 = (OBJECT, ANY, BOOLEAN); ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(commaOperatorsMultipleOperators.ts, 15, 3)) +>resultIsBoolean1 : boolean >(OBJECT, ANY, BOOLEAN) : boolean >OBJECT, ANY, BOOLEAN : boolean >OBJECT, ANY : any ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) +>OBJECT : Object +>ANY : any +>BOOLEAN : boolean var resultIsNumber1 = (ANY, BOOLEAN, NUMBER); ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(commaOperatorsMultipleOperators.ts, 16, 3)) +>resultIsNumber1 : number >(ANY, BOOLEAN, NUMBER) : number >ANY, BOOLEAN, NUMBER : number >ANY, BOOLEAN : boolean ->ANY : any, Symbol(ANY, Decl(commaOperatorsMultipleOperators.ts, 0, 3)) ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>ANY : any +>BOOLEAN : boolean +>NUMBER : number var resultIsString1 = (BOOLEAN, NUMBER, STRING); ->resultIsString1 : string, Symbol(resultIsString1, Decl(commaOperatorsMultipleOperators.ts, 17, 3)) +>resultIsString1 : string >(BOOLEAN, NUMBER, STRING) : string >BOOLEAN, NUMBER, STRING : string >BOOLEAN, NUMBER : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(commaOperatorsMultipleOperators.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) +>BOOLEAN : boolean +>NUMBER : number +>STRING : string var resultIsObject1 = (NUMBER, STRING, OBJECT); ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(commaOperatorsMultipleOperators.ts, 18, 3)) +>resultIsObject1 : Object >(NUMBER, STRING, OBJECT) : Object >NUMBER, STRING, OBJECT : Object >NUMBER, STRING : string ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) ->OBJECT : Object, Symbol(OBJECT, Decl(commaOperatorsMultipleOperators.ts, 4, 3)) +>NUMBER : number +>STRING : string +>OBJECT : Object //Literal and expression null, true, 1; @@ -109,17 +109,17 @@ null, true, 1; >++NUMBER, STRING.charAt(0), new Object() : Object >++NUMBER, STRING.charAt(0) : string >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>NUMBER : number >STRING.charAt(0) : string ->STRING.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING.charAt : (pos: number) => string +>STRING : string +>charAt : (pos: number) => string >0 : number >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor var resultIsNumber2 = (null, true, 1); ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(commaOperatorsMultipleOperators.ts, 24, 3)) +>resultIsNumber2 : number >(null, true, 1) : number >null, true, 1 : number >null, true : boolean @@ -128,17 +128,17 @@ var resultIsNumber2 = (null, true, 1); >1 : number var resultIsObject2 = (++NUMBER, STRING.charAt(0), new Object()); ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(commaOperatorsMultipleOperators.ts, 25, 3)) +>resultIsObject2 : Object >(++NUMBER, STRING.charAt(0), new Object()) : Object >++NUMBER, STRING.charAt(0), new Object() : Object >++NUMBER, STRING.charAt(0) : string >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(commaOperatorsMultipleOperators.ts, 2, 3)) +>NUMBER : number >STRING.charAt(0) : string ->STRING.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->STRING : string, Symbol(STRING, Decl(commaOperatorsMultipleOperators.ts, 3, 3)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING.charAt : (pos: number) => string +>STRING : string +>charAt : (pos: number) => string >0 : number >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor diff --git a/tests/baselines/reference/commentBeforeStaticMethod1.symbols b/tests/baselines/reference/commentBeforeStaticMethod1.symbols new file mode 100644 index 0000000000000..ef5bee04be695 --- /dev/null +++ b/tests/baselines/reference/commentBeforeStaticMethod1.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/commentBeforeStaticMethod1.ts === +class C { +>C : Symbol(C, Decl(commentBeforeStaticMethod1.ts, 0, 0)) + + /** + * Returns bar + */ + public static foo(): string { +>foo : Symbol(C.foo, Decl(commentBeforeStaticMethod1.ts, 0, 9)) + + return "bar"; + } +} diff --git a/tests/baselines/reference/commentBeforeStaticMethod1.types b/tests/baselines/reference/commentBeforeStaticMethod1.types index b23e5fee1cfbb..1b16709a701d1 100644 --- a/tests/baselines/reference/commentBeforeStaticMethod1.types +++ b/tests/baselines/reference/commentBeforeStaticMethod1.types @@ -1,12 +1,12 @@ === tests/cases/compiler/commentBeforeStaticMethod1.ts === class C { ->C : C, Symbol(C, Decl(commentBeforeStaticMethod1.ts, 0, 0)) +>C : C /** * Returns bar */ public static foo(): string { ->foo : () => string, Symbol(C.foo, Decl(commentBeforeStaticMethod1.ts, 0, 9)) +>foo : () => string return "bar"; >"bar" : string diff --git a/tests/baselines/reference/commentEmitAtEndOfFile1.symbols b/tests/baselines/reference/commentEmitAtEndOfFile1.symbols new file mode 100644 index 0000000000000..1fc0ad0955348 --- /dev/null +++ b/tests/baselines/reference/commentEmitAtEndOfFile1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/commentEmitAtEndOfFile1.ts === +// test +var f = '' +>f : Symbol(f, Decl(commentEmitAtEndOfFile1.ts, 1, 3)) + +// test #2 +module foo { +>foo : Symbol(foo, Decl(commentEmitAtEndOfFile1.ts, 1, 10)) + + function bar() { } +>bar : Symbol(bar, Decl(commentEmitAtEndOfFile1.ts, 3, 12)) +} +// test #3 +module empty { +>empty : Symbol(empty, Decl(commentEmitAtEndOfFile1.ts, 5, 1)) +} +// test #4 diff --git a/tests/baselines/reference/commentEmitAtEndOfFile1.types b/tests/baselines/reference/commentEmitAtEndOfFile1.types index f772592985c0b..d88d7ffa5fcda 100644 --- a/tests/baselines/reference/commentEmitAtEndOfFile1.types +++ b/tests/baselines/reference/commentEmitAtEndOfFile1.types @@ -1,18 +1,18 @@ === tests/cases/compiler/commentEmitAtEndOfFile1.ts === // test var f = '' ->f : string, Symbol(f, Decl(commentEmitAtEndOfFile1.ts, 1, 3)) +>f : string >'' : string // test #2 module foo { ->foo : typeof foo, Symbol(foo, Decl(commentEmitAtEndOfFile1.ts, 1, 10)) +>foo : typeof foo function bar() { } ->bar : () => void, Symbol(bar, Decl(commentEmitAtEndOfFile1.ts, 3, 12)) +>bar : () => void } // test #3 module empty { ->empty : any, Symbol(empty, Decl(commentEmitAtEndOfFile1.ts, 5, 1)) +>empty : any } // test #4 diff --git a/tests/baselines/reference/commentEmitWithCommentOnLastLine.symbols b/tests/baselines/reference/commentEmitWithCommentOnLastLine.symbols new file mode 100644 index 0000000000000..47ee947a5006f --- /dev/null +++ b/tests/baselines/reference/commentEmitWithCommentOnLastLine.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/commentEmitWithCommentOnLastLine.ts === +var x: any; +>x : Symbol(x, Decl(commentEmitWithCommentOnLastLine.ts, 0, 3)) + +/* +var bar; +*/ diff --git a/tests/baselines/reference/commentEmitWithCommentOnLastLine.types b/tests/baselines/reference/commentEmitWithCommentOnLastLine.types index 7e4348804f18a..d59c42d37951a 100644 --- a/tests/baselines/reference/commentEmitWithCommentOnLastLine.types +++ b/tests/baselines/reference/commentEmitWithCommentOnLastLine.types @@ -1,6 +1,6 @@ === tests/cases/compiler/commentEmitWithCommentOnLastLine.ts === var x: any; ->x : any, Symbol(x, Decl(commentEmitWithCommentOnLastLine.ts, 0, 3)) +>x : any /* var bar; diff --git a/tests/baselines/reference/commentInEmptyParameterList1.symbols b/tests/baselines/reference/commentInEmptyParameterList1.symbols new file mode 100644 index 0000000000000..b55660299480b --- /dev/null +++ b/tests/baselines/reference/commentInEmptyParameterList1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/commentInEmptyParameterList1.ts === +function foo(/** nothing */) { +>foo : Symbol(foo, Decl(commentInEmptyParameterList1.ts, 0, 0)) +} diff --git a/tests/baselines/reference/commentInEmptyParameterList1.types b/tests/baselines/reference/commentInEmptyParameterList1.types index c5b79a3405e42..dd708e8c9aca1 100644 --- a/tests/baselines/reference/commentInEmptyParameterList1.types +++ b/tests/baselines/reference/commentInEmptyParameterList1.types @@ -1,4 +1,4 @@ === tests/cases/compiler/commentInEmptyParameterList1.ts === function foo(/** nothing */) { ->foo : () => void, Symbol(foo, Decl(commentInEmptyParameterList1.ts, 0, 0)) +>foo : () => void } diff --git a/tests/baselines/reference/commentInMethodCall.symbols b/tests/baselines/reference/commentInMethodCall.symbols new file mode 100644 index 0000000000000..ff286983e23a0 --- /dev/null +++ b/tests/baselines/reference/commentInMethodCall.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/commentInMethodCall.ts === +//commment here +var s: string[]; +>s : Symbol(s, Decl(commentInMethodCall.ts, 1, 3)) + +s.map(// do something +>s.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>s : Symbol(s, Decl(commentInMethodCall.ts, 1, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) + + function () { }); + diff --git a/tests/baselines/reference/commentInMethodCall.types b/tests/baselines/reference/commentInMethodCall.types index e7fbffa6d80e5..e9543a8c6f258 100644 --- a/tests/baselines/reference/commentInMethodCall.types +++ b/tests/baselines/reference/commentInMethodCall.types @@ -1,13 +1,13 @@ === tests/cases/compiler/commentInMethodCall.ts === //commment here var s: string[]; ->s : string[], Symbol(s, Decl(commentInMethodCall.ts, 1, 3)) +>s : string[] s.map(// do something >s.map(// do something function () { }) : void[] ->s.map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->s : string[], Symbol(s, Decl(commentInMethodCall.ts, 1, 3)) ->map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>s.map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] +>s : string[] +>map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] function () { }); >function () { } : () => void diff --git a/tests/baselines/reference/commentOnAmbientClass1.symbols b/tests/baselines/reference/commentOnAmbientClass1.symbols new file mode 100644 index 0000000000000..899c5f19a24cf --- /dev/null +++ b/tests/baselines/reference/commentOnAmbientClass1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/b.ts === +/// +declare class E extends C { +>E : Symbol(E, Decl(b.ts, 0, 0)) +>C : Symbol(C, Decl(a.ts, 0, 0)) +} +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +declare class C { +>C : Symbol(C, Decl(a.ts, 0, 0)) +} + +// Don't keep this comment. +declare class D { +>D : Symbol(D, Decl(a.ts, 2, 1)) +} + diff --git a/tests/baselines/reference/commentOnAmbientClass1.types b/tests/baselines/reference/commentOnAmbientClass1.types index b7f3e2891f1fe..44c0334ef6cde 100644 --- a/tests/baselines/reference/commentOnAmbientClass1.types +++ b/tests/baselines/reference/commentOnAmbientClass1.types @@ -1,17 +1,17 @@ === tests/cases/compiler/b.ts === /// declare class E extends C { ->E : E, Symbol(E, Decl(b.ts, 0, 0)) ->C : C, Symbol(C, Decl(a.ts, 0, 0)) +>E : E +>C : C } === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ declare class C { ->C : C, Symbol(C, Decl(a.ts, 0, 0)) +>C : C } // Don't keep this comment. declare class D { ->D : D, Symbol(D, Decl(a.ts, 2, 1)) +>D : D } diff --git a/tests/baselines/reference/commentOnAmbientEnum.symbols b/tests/baselines/reference/commentOnAmbientEnum.symbols new file mode 100644 index 0000000000000..d86d490113d7e --- /dev/null +++ b/tests/baselines/reference/commentOnAmbientEnum.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/b.ts === +/// +declare enum E { +>E : Symbol(E, Decl(b.ts, 0, 0)) +} +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +declare enum C { +>C : Symbol(C, Decl(a.ts, 0, 0)) + + a, +>a : Symbol(C.a, Decl(a.ts, 1, 16)) + + b, +>b : Symbol(C.b, Decl(a.ts, 2, 6)) + + c +>c : Symbol(C.c, Decl(a.ts, 3, 6)) +} + +// Don't keep this comment. +declare enum D { +>D : Symbol(D, Decl(a.ts, 5, 1)) +} + diff --git a/tests/baselines/reference/commentOnAmbientEnum.types b/tests/baselines/reference/commentOnAmbientEnum.types index 4d47639d3080e..4a0193b7937b4 100644 --- a/tests/baselines/reference/commentOnAmbientEnum.types +++ b/tests/baselines/reference/commentOnAmbientEnum.types @@ -1,25 +1,25 @@ === tests/cases/compiler/b.ts === /// declare enum E { ->E : E, Symbol(E, Decl(b.ts, 0, 0)) +>E : E } === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ declare enum C { ->C : C, Symbol(C, Decl(a.ts, 0, 0)) +>C : C a, ->a : C, Symbol(C.a, Decl(a.ts, 1, 16)) +>a : C b, ->b : C, Symbol(C.b, Decl(a.ts, 2, 6)) +>b : C c ->c : C, Symbol(C.c, Decl(a.ts, 3, 6)) +>c : C } // Don't keep this comment. declare enum D { ->D : D, Symbol(D, Decl(a.ts, 5, 1)) +>D : D } diff --git a/tests/baselines/reference/commentOnAmbientModule.symbols b/tests/baselines/reference/commentOnAmbientModule.symbols new file mode 100644 index 0000000000000..c1412c17880a2 --- /dev/null +++ b/tests/baselines/reference/commentOnAmbientModule.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/b.ts === +/// +declare module E { +>E : Symbol(E, Decl(b.ts, 0, 0)) + + class foobar extends D.bar { +>foobar : Symbol(foobar, Decl(b.ts, 1, 18)) +>D.bar : Symbol(D.bar, Decl(a.ts, 6, 18)) +>D : Symbol(D, Decl(a.ts, 3, 1)) +>bar : Symbol(D.bar, Decl(a.ts, 6, 18)) + + foo(); +>foo : Symbol(foo, Decl(b.ts, 2, 32)) + } +} +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +declare module C { +>C : Symbol(C, Decl(a.ts, 0, 0)) + + function foo(); +>foo : Symbol(foo, Decl(a.ts, 1, 18)) +} + +// Don't keep this comment. +declare module D { +>D : Symbol(D, Decl(a.ts, 3, 1)) + + class bar { } +>bar : Symbol(bar, Decl(a.ts, 6, 18)) +} + diff --git a/tests/baselines/reference/commentOnAmbientModule.types b/tests/baselines/reference/commentOnAmbientModule.types index 9eb0f369367f7..13d35cddcea3d 100644 --- a/tests/baselines/reference/commentOnAmbientModule.types +++ b/tests/baselines/reference/commentOnAmbientModule.types @@ -1,32 +1,32 @@ === tests/cases/compiler/b.ts === /// declare module E { ->E : typeof E, Symbol(E, Decl(b.ts, 0, 0)) +>E : typeof E class foobar extends D.bar { ->foobar : foobar, Symbol(foobar, Decl(b.ts, 1, 18)) ->D.bar : any, Symbol(D.bar, Decl(a.ts, 6, 18)) ->D : typeof D, Symbol(D, Decl(a.ts, 3, 1)) ->bar : D.bar, Symbol(D.bar, Decl(a.ts, 6, 18)) +>foobar : foobar +>D.bar : any +>D : typeof D +>bar : D.bar foo(); ->foo : () => any, Symbol(foo, Decl(b.ts, 2, 32)) +>foo : () => any } } === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ declare module C { ->C : typeof C, Symbol(C, Decl(a.ts, 0, 0)) +>C : typeof C function foo(); ->foo : () => any, Symbol(foo, Decl(a.ts, 1, 18)) +>foo : () => any } // Don't keep this comment. declare module D { ->D : typeof D, Symbol(D, Decl(a.ts, 3, 1)) +>D : typeof D class bar { } ->bar : bar, Symbol(bar, Decl(a.ts, 6, 18)) +>bar : bar } diff --git a/tests/baselines/reference/commentOnAmbientVariable1.symbols b/tests/baselines/reference/commentOnAmbientVariable1.symbols new file mode 100644 index 0000000000000..153653e782703 --- /dev/null +++ b/tests/baselines/reference/commentOnAmbientVariable1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/commentOnAmbientVariable1.ts === +/*! Keep this pinned comment */ +declare var v: number; +>v : Symbol(v, Decl(commentOnAmbientVariable1.ts, 1, 11)) + +// Don't keep this comment. +declare var y: number; +>y : Symbol(y, Decl(commentOnAmbientVariable1.ts, 4, 11)) + diff --git a/tests/baselines/reference/commentOnAmbientVariable1.types b/tests/baselines/reference/commentOnAmbientVariable1.types index 6b7681e66035e..feff50f4293f6 100644 --- a/tests/baselines/reference/commentOnAmbientVariable1.types +++ b/tests/baselines/reference/commentOnAmbientVariable1.types @@ -1,9 +1,9 @@ === tests/cases/compiler/commentOnAmbientVariable1.ts === /*! Keep this pinned comment */ declare var v: number; ->v : number, Symbol(v, Decl(commentOnAmbientVariable1.ts, 1, 11)) +>v : number // Don't keep this comment. declare var y: number; ->y : number, Symbol(y, Decl(commentOnAmbientVariable1.ts, 4, 11)) +>y : number diff --git a/tests/baselines/reference/commentOnAmbientVariable2.symbols b/tests/baselines/reference/commentOnAmbientVariable2.symbols new file mode 100644 index 0000000000000..94100ce7b5b46 --- /dev/null +++ b/tests/baselines/reference/commentOnAmbientVariable2.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/commentOnAmbientVariable2_2.ts === +/// +declare var x: number; +>x : Symbol(x, Decl(commentOnAmbientVariable2_2.ts, 1, 11)) + +x = 2; +>x : Symbol(x, Decl(commentOnAmbientVariable2_2.ts, 1, 11)) + +=== tests/cases/compiler/commentOnAmbientVariable2_1.ts === +var y = 1; +>y : Symbol(y, Decl(commentOnAmbientVariable2_1.ts, 0, 3)) + diff --git a/tests/baselines/reference/commentOnAmbientVariable2.types b/tests/baselines/reference/commentOnAmbientVariable2.types index 9e9b34fa3ce34..28760dca1ec2a 100644 --- a/tests/baselines/reference/commentOnAmbientVariable2.types +++ b/tests/baselines/reference/commentOnAmbientVariable2.types @@ -1,15 +1,15 @@ === tests/cases/compiler/commentOnAmbientVariable2_2.ts === /// declare var x: number; ->x : number, Symbol(x, Decl(commentOnAmbientVariable2_2.ts, 1, 11)) +>x : number x = 2; >x = 2 : number ->x : number, Symbol(x, Decl(commentOnAmbientVariable2_2.ts, 1, 11)) +>x : number >2 : number === tests/cases/compiler/commentOnAmbientVariable2_1.ts === var y = 1; ->y : number, Symbol(y, Decl(commentOnAmbientVariable2_1.ts, 0, 3)) +>y : number >1 : number diff --git a/tests/baselines/reference/commentOnAmbientfunction.symbols b/tests/baselines/reference/commentOnAmbientfunction.symbols new file mode 100644 index 0000000000000..c6afb72eb9c29 --- /dev/null +++ b/tests/baselines/reference/commentOnAmbientfunction.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/b.ts === +/// +declare function foobar(a: typeof foo): typeof bar; +>foobar : Symbol(foobar, Decl(b.ts, 0, 0)) +>a : Symbol(a, Decl(b.ts, 1, 24)) +>foo : Symbol(foo, Decl(a.ts, 0, 0)) +>bar : Symbol(bar, Decl(a.ts, 1, 23)) + +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +declare function foo(); +>foo : Symbol(foo, Decl(a.ts, 0, 0)) + +// Don't keep this comment. +declare function bar(); +>bar : Symbol(bar, Decl(a.ts, 1, 23)) + diff --git a/tests/baselines/reference/commentOnAmbientfunction.types b/tests/baselines/reference/commentOnAmbientfunction.types index f06872f34ae15..f75f7b377fba0 100644 --- a/tests/baselines/reference/commentOnAmbientfunction.types +++ b/tests/baselines/reference/commentOnAmbientfunction.types @@ -1,17 +1,17 @@ === tests/cases/compiler/b.ts === /// declare function foobar(a: typeof foo): typeof bar; ->foobar : (a: () => any) => () => any, Symbol(foobar, Decl(b.ts, 0, 0)) ->a : () => any, Symbol(a, Decl(b.ts, 1, 24)) ->foo : () => any, Symbol(foo, Decl(a.ts, 0, 0)) ->bar : () => any, Symbol(bar, Decl(a.ts, 1, 23)) +>foobar : (a: () => any) => () => any +>a : () => any +>foo : () => any +>bar : () => any === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ declare function foo(); ->foo : () => any, Symbol(foo, Decl(a.ts, 0, 0)) +>foo : () => any // Don't keep this comment. declare function bar(); ->bar : () => any, Symbol(bar, Decl(a.ts, 1, 23)) +>bar : () => any diff --git a/tests/baselines/reference/commentOnBlock1.symbols b/tests/baselines/reference/commentOnBlock1.symbols new file mode 100644 index 0000000000000..5bdae83d3eb32 --- /dev/null +++ b/tests/baselines/reference/commentOnBlock1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/commentOnBlock1.ts === +// asdf +function f() { +>f : Symbol(f, Decl(commentOnBlock1.ts, 0, 0)) + + /*asdf*/{} +} diff --git a/tests/baselines/reference/commentOnBlock1.types b/tests/baselines/reference/commentOnBlock1.types index 217fbde5a08ad..cc01efddb1ce0 100644 --- a/tests/baselines/reference/commentOnBlock1.types +++ b/tests/baselines/reference/commentOnBlock1.types @@ -1,7 +1,7 @@ === tests/cases/compiler/commentOnBlock1.ts === // asdf function f() { ->f : () => void, Symbol(f, Decl(commentOnBlock1.ts, 0, 0)) +>f : () => void /*asdf*/{} } diff --git a/tests/baselines/reference/commentOnClassMethod1.symbols b/tests/baselines/reference/commentOnClassMethod1.symbols new file mode 100644 index 0000000000000..18caefb744b17 --- /dev/null +++ b/tests/baselines/reference/commentOnClassMethod1.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/commentOnClassMethod1.ts === +class WebControls { +>WebControls : Symbol(WebControls, Decl(commentOnClassMethod1.ts, 0, 0)) + + /** + * Render a control + */ + createControl(): any { +>createControl : Symbol(createControl, Decl(commentOnClassMethod1.ts, 0, 19)) + } +} diff --git a/tests/baselines/reference/commentOnClassMethod1.types b/tests/baselines/reference/commentOnClassMethod1.types index d3def73f8d4af..1ad8182b9c923 100644 --- a/tests/baselines/reference/commentOnClassMethod1.types +++ b/tests/baselines/reference/commentOnClassMethod1.types @@ -1,11 +1,11 @@ === tests/cases/compiler/commentOnClassMethod1.ts === class WebControls { ->WebControls : WebControls, Symbol(WebControls, Decl(commentOnClassMethod1.ts, 0, 0)) +>WebControls : WebControls /** * Render a control */ createControl(): any { ->createControl : () => any, Symbol(createControl, Decl(commentOnClassMethod1.ts, 0, 19)) +>createControl : () => any } } diff --git a/tests/baselines/reference/commentOnElidedModule1.symbols b/tests/baselines/reference/commentOnElidedModule1.symbols new file mode 100644 index 0000000000000..63ce4dadf97bc --- /dev/null +++ b/tests/baselines/reference/commentOnElidedModule1.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/b.ts === +/// +module ElidedModule3 { +>ElidedModule3 : Symbol(ElidedModule3, Decl(b.ts, 0, 0)) +} +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +module ElidedModule { +>ElidedModule : Symbol(ElidedModule, Decl(a.ts, 0, 0)) +} + +// Don't keep this comment. +module ElidedModule2 { +>ElidedModule2 : Symbol(ElidedModule2, Decl(a.ts, 2, 1)) +} + diff --git a/tests/baselines/reference/commentOnElidedModule1.types b/tests/baselines/reference/commentOnElidedModule1.types index 23fe4171cc061..8e095b8102f08 100644 --- a/tests/baselines/reference/commentOnElidedModule1.types +++ b/tests/baselines/reference/commentOnElidedModule1.types @@ -1,16 +1,16 @@ === tests/cases/compiler/b.ts === /// module ElidedModule3 { ->ElidedModule3 : any, Symbol(ElidedModule3, Decl(b.ts, 0, 0)) +>ElidedModule3 : any } === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ module ElidedModule { ->ElidedModule : any, Symbol(ElidedModule, Decl(a.ts, 0, 0)) +>ElidedModule : any } // Don't keep this comment. module ElidedModule2 { ->ElidedModule2 : any, Symbol(ElidedModule2, Decl(a.ts, 2, 1)) +>ElidedModule2 : any } diff --git a/tests/baselines/reference/commentOnExpressionStatement1.symbols b/tests/baselines/reference/commentOnExpressionStatement1.symbols new file mode 100644 index 0000000000000..f78660f0344dd --- /dev/null +++ b/tests/baselines/reference/commentOnExpressionStatement1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/commentOnExpressionStatement1.ts === + +No type information for this code.1 + 1; // Comment. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/commentOnIfStatement1.symbols b/tests/baselines/reference/commentOnIfStatement1.symbols new file mode 100644 index 0000000000000..03f357c8ccf5c --- /dev/null +++ b/tests/baselines/reference/commentOnIfStatement1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/commentOnIfStatement1.ts === + +No type information for this code.// Test +No type information for this code.if (true) { +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/commentOnInterface1.symbols b/tests/baselines/reference/commentOnInterface1.symbols new file mode 100644 index 0000000000000..9564d9b4cfa53 --- /dev/null +++ b/tests/baselines/reference/commentOnInterface1.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/b.ts === +/// +interface I3 { +>I3 : Symbol(I3, Decl(b.ts, 0, 0)) +} +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +interface I { +>I : Symbol(I, Decl(a.ts, 0, 0)) +} + +// Don't keep this comment. +interface I2 { +>I2 : Symbol(I2, Decl(a.ts, 2, 1)) +} + diff --git a/tests/baselines/reference/commentOnInterface1.types b/tests/baselines/reference/commentOnInterface1.types index d2ad140798c94..d03b1939026ff 100644 --- a/tests/baselines/reference/commentOnInterface1.types +++ b/tests/baselines/reference/commentOnInterface1.types @@ -1,16 +1,16 @@ === tests/cases/compiler/b.ts === /// interface I3 { ->I3 : I3, Symbol(I3, Decl(b.ts, 0, 0)) +>I3 : I3 } === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ interface I { ->I : I, Symbol(I, Decl(a.ts, 0, 0)) +>I : I } // Don't keep this comment. interface I2 { ->I2 : I2, Symbol(I2, Decl(a.ts, 2, 1)) +>I2 : I2 } diff --git a/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.symbols b/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.symbols new file mode 100644 index 0000000000000..d3726f99af216 --- /dev/null +++ b/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/commentOnParenthesizedExpressionOpenParen1.ts === +var j; +>j : Symbol(j, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 0, 3)) + +var f: () => any; +>f : Symbol(f, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 1, 3)) + +( /* Preserve */ j = f()); +>j : Symbol(j, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 0, 3)) +>f : Symbol(f, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 1, 3)) + diff --git a/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.types b/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.types index 38fe7a4f08dcf..94a2930d3148b 100644 --- a/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.types +++ b/tests/baselines/reference/commentOnParenthesizedExpressionOpenParen1.types @@ -1,15 +1,15 @@ === tests/cases/compiler/commentOnParenthesizedExpressionOpenParen1.ts === var j; ->j : any, Symbol(j, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 0, 3)) +>j : any var f: () => any; ->f : () => any, Symbol(f, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 1, 3)) +>f : () => any ( /* Preserve */ j = f()); >( /* Preserve */ j = f()) : any >( /* Preserve */ j = f()) : any >j = f() : any ->j : any, Symbol(j, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 0, 3)) +>j : any >f() : any ->f : () => any, Symbol(f, Decl(commentOnParenthesizedExpressionOpenParen1.ts, 1, 3)) +>f : () => any diff --git a/tests/baselines/reference/commentOnSignature1.symbols b/tests/baselines/reference/commentOnSignature1.symbols new file mode 100644 index 0000000000000..0d39565fb612b --- /dev/null +++ b/tests/baselines/reference/commentOnSignature1.symbols @@ -0,0 +1,62 @@ +=== tests/cases/compiler/b.ts === +/// +function foo2(n: number): void; +>foo2 : Symbol(foo2, Decl(b.ts, 0, 0), Decl(b.ts, 1, 31), Decl(b.ts, 3, 31)) +>n : Symbol(n, Decl(b.ts, 1, 14)) + +// Don't keep this comment. +function foo2(s: string): void; +>foo2 : Symbol(foo2, Decl(b.ts, 0, 0), Decl(b.ts, 1, 31), Decl(b.ts, 3, 31)) +>s : Symbol(s, Decl(b.ts, 3, 14)) + +function foo2(a: any): void { +>foo2 : Symbol(foo2, Decl(b.ts, 0, 0), Decl(b.ts, 1, 31), Decl(b.ts, 3, 31)) +>a : Symbol(a, Decl(b.ts, 4, 14)) +} +=== tests/cases/compiler/a.ts === +/*! Keep this pinned comment */ +function foo(n: number): void; +>foo : Symbol(foo, Decl(a.ts, 0, 0), Decl(a.ts, 1, 30), Decl(a.ts, 3, 30)) +>n : Symbol(n, Decl(a.ts, 1, 13)) + +// Don't keep this comment. +function foo(s: string): void; +>foo : Symbol(foo, Decl(a.ts, 0, 0), Decl(a.ts, 1, 30), Decl(a.ts, 3, 30)) +>s : Symbol(s, Decl(a.ts, 3, 13)) + +function foo(a: any): void { +>foo : Symbol(foo, Decl(a.ts, 0, 0), Decl(a.ts, 1, 30), Decl(a.ts, 3, 30)) +>a : Symbol(a, Decl(a.ts, 4, 13)) +} + +class c { +>c : Symbol(c, Decl(a.ts, 5, 1)) + + // dont keep this comment + constructor(a: string); +>a : Symbol(a, Decl(a.ts, 9, 16)) + + /*! keep this pinned comment */ + constructor(a: number); +>a : Symbol(a, Decl(a.ts, 11, 16)) + + constructor(a: any) { +>a : Symbol(a, Decl(a.ts, 12, 16)) + } + + // dont keep this comment + foo(a: string); +>foo : Symbol(foo, Decl(a.ts, 13, 5), Decl(a.ts, 16, 19), Decl(a.ts, 18, 19)) +>a : Symbol(a, Decl(a.ts, 16, 8)) + + /*! keep this pinned comment */ + foo(a: number); +>foo : Symbol(foo, Decl(a.ts, 13, 5), Decl(a.ts, 16, 19), Decl(a.ts, 18, 19)) +>a : Symbol(a, Decl(a.ts, 18, 8)) + + foo(a: any) { +>foo : Symbol(foo, Decl(a.ts, 13, 5), Decl(a.ts, 16, 19), Decl(a.ts, 18, 19)) +>a : Symbol(a, Decl(a.ts, 19, 8)) + } +} + diff --git a/tests/baselines/reference/commentOnSignature1.types b/tests/baselines/reference/commentOnSignature1.types index cc36ee96a1253..790aaaf752331 100644 --- a/tests/baselines/reference/commentOnSignature1.types +++ b/tests/baselines/reference/commentOnSignature1.types @@ -1,62 +1,62 @@ === tests/cases/compiler/b.ts === /// function foo2(n: number): void; ->foo2 : { (n: number): void; (s: string): void; }, Symbol(foo2, Decl(b.ts, 0, 0), Decl(b.ts, 1, 31), Decl(b.ts, 3, 31)) ->n : number, Symbol(n, Decl(b.ts, 1, 14)) +>foo2 : { (n: number): void; (s: string): void; } +>n : number // Don't keep this comment. function foo2(s: string): void; ->foo2 : { (n: number): void; (s: string): void; }, Symbol(foo2, Decl(b.ts, 0, 0), Decl(b.ts, 1, 31), Decl(b.ts, 3, 31)) ->s : string, Symbol(s, Decl(b.ts, 3, 14)) +>foo2 : { (n: number): void; (s: string): void; } +>s : string function foo2(a: any): void { ->foo2 : { (n: number): void; (s: string): void; }, Symbol(foo2, Decl(b.ts, 0, 0), Decl(b.ts, 1, 31), Decl(b.ts, 3, 31)) ->a : any, Symbol(a, Decl(b.ts, 4, 14)) +>foo2 : { (n: number): void; (s: string): void; } +>a : any } === tests/cases/compiler/a.ts === /*! Keep this pinned comment */ function foo(n: number): void; ->foo : { (n: number): void; (s: string): void; }, Symbol(foo, Decl(a.ts, 0, 0), Decl(a.ts, 1, 30), Decl(a.ts, 3, 30)) ->n : number, Symbol(n, Decl(a.ts, 1, 13)) +>foo : { (n: number): void; (s: string): void; } +>n : number // Don't keep this comment. function foo(s: string): void; ->foo : { (n: number): void; (s: string): void; }, Symbol(foo, Decl(a.ts, 0, 0), Decl(a.ts, 1, 30), Decl(a.ts, 3, 30)) ->s : string, Symbol(s, Decl(a.ts, 3, 13)) +>foo : { (n: number): void; (s: string): void; } +>s : string function foo(a: any): void { ->foo : { (n: number): void; (s: string): void; }, Symbol(foo, Decl(a.ts, 0, 0), Decl(a.ts, 1, 30), Decl(a.ts, 3, 30)) ->a : any, Symbol(a, Decl(a.ts, 4, 13)) +>foo : { (n: number): void; (s: string): void; } +>a : any } class c { ->c : c, Symbol(c, Decl(a.ts, 5, 1)) +>c : c // dont keep this comment constructor(a: string); ->a : string, Symbol(a, Decl(a.ts, 9, 16)) +>a : string /*! keep this pinned comment */ constructor(a: number); ->a : number, Symbol(a, Decl(a.ts, 11, 16)) +>a : number constructor(a: any) { ->a : any, Symbol(a, Decl(a.ts, 12, 16)) +>a : any } // dont keep this comment foo(a: string); ->foo : { (a: string): any; (a: number): any; }, Symbol(foo, Decl(a.ts, 13, 5), Decl(a.ts, 16, 19), Decl(a.ts, 18, 19)) ->a : string, Symbol(a, Decl(a.ts, 16, 8)) +>foo : { (a: string): any; (a: number): any; } +>a : string /*! keep this pinned comment */ foo(a: number); ->foo : { (a: string): any; (a: number): any; }, Symbol(foo, Decl(a.ts, 13, 5), Decl(a.ts, 16, 19), Decl(a.ts, 18, 19)) ->a : number, Symbol(a, Decl(a.ts, 18, 8)) +>foo : { (a: string): any; (a: number): any; } +>a : number foo(a: any) { ->foo : { (a: string): any; (a: number): any; }, Symbol(foo, Decl(a.ts, 13, 5), Decl(a.ts, 16, 19), Decl(a.ts, 18, 19)) ->a : any, Symbol(a, Decl(a.ts, 19, 8)) +>foo : { (a: string): any; (a: number): any; } +>a : any } } diff --git a/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.symbols b/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.symbols new file mode 100644 index 0000000000000..efbcb08496dc5 --- /dev/null +++ b/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/commentOnSimpleArrowFunctionBody1.ts === +function Foo(x: any) +>Foo : Symbol(Foo, Decl(commentOnSimpleArrowFunctionBody1.ts, 0, 0)) +>x : Symbol(x, Decl(commentOnSimpleArrowFunctionBody1.ts, 0, 13)) +{ +} + +Foo(() => +>Foo : Symbol(Foo, Decl(commentOnSimpleArrowFunctionBody1.ts, 0, 0)) + + // do something + 127); + diff --git a/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.types b/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.types index 63996d3f199e8..6dd530e438bda 100644 --- a/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.types +++ b/tests/baselines/reference/commentOnSimpleArrowFunctionBody1.types @@ -1,13 +1,13 @@ === tests/cases/compiler/commentOnSimpleArrowFunctionBody1.ts === function Foo(x: any) ->Foo : (x: any) => void, Symbol(Foo, Decl(commentOnSimpleArrowFunctionBody1.ts, 0, 0)) ->x : any, Symbol(x, Decl(commentOnSimpleArrowFunctionBody1.ts, 0, 13)) +>Foo : (x: any) => void +>x : any { } Foo(() => >Foo(() => // do something 127) : void ->Foo : (x: any) => void, Symbol(Foo, Decl(commentOnSimpleArrowFunctionBody1.ts, 0, 0)) +>Foo : (x: any) => void >() => // do something 127 : () => number // do something diff --git a/tests/baselines/reference/commentOnStaticMember1.symbols b/tests/baselines/reference/commentOnStaticMember1.symbols new file mode 100644 index 0000000000000..4d575a17cb66f --- /dev/null +++ b/tests/baselines/reference/commentOnStaticMember1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/commentOnStaticMember1.ts === +class Greeter { +>Greeter : Symbol(Greeter, Decl(commentOnStaticMember1.ts, 0, 0)) + + //Hello World + static foo(){ +>foo : Symbol(Greeter.foo, Decl(commentOnStaticMember1.ts, 0, 15)) + } +} diff --git a/tests/baselines/reference/commentOnStaticMember1.types b/tests/baselines/reference/commentOnStaticMember1.types index eea5255f518b9..4b54b07570a6e 100644 --- a/tests/baselines/reference/commentOnStaticMember1.types +++ b/tests/baselines/reference/commentOnStaticMember1.types @@ -1,9 +1,9 @@ === tests/cases/compiler/commentOnStaticMember1.ts === class Greeter { ->Greeter : Greeter, Symbol(Greeter, Decl(commentOnStaticMember1.ts, 0, 0)) +>Greeter : Greeter //Hello World static foo(){ ->foo : () => void, Symbol(Greeter.foo, Decl(commentOnStaticMember1.ts, 0, 15)) +>foo : () => void } } diff --git a/tests/baselines/reference/commentsAtEndOfFile1.symbols b/tests/baselines/reference/commentsAtEndOfFile1.symbols new file mode 100644 index 0000000000000..c09a435f1a7fe --- /dev/null +++ b/tests/baselines/reference/commentsAtEndOfFile1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/commentsAtEndOfFile1.ts === +Input: +No type information for this code.; +No type information for this code.//Testing two +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/commentsBeforeFunctionExpression1.symbols b/tests/baselines/reference/commentsBeforeFunctionExpression1.symbols new file mode 100644 index 0000000000000..adeea60711e27 --- /dev/null +++ b/tests/baselines/reference/commentsBeforeFunctionExpression1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/commentsBeforeFunctionExpression1.ts === +var v = { +>v : Symbol(v, Decl(commentsBeforeFunctionExpression1.ts, 0, 3)) + + f: /**own f*/ (a) => 0 +>f : Symbol(f, Decl(commentsBeforeFunctionExpression1.ts, 0, 9)) +>a : Symbol(a, Decl(commentsBeforeFunctionExpression1.ts, 1, 19)) +} + diff --git a/tests/baselines/reference/commentsBeforeFunctionExpression1.types b/tests/baselines/reference/commentsBeforeFunctionExpression1.types index 3f1ae953d1e93..a057918a74d7c 100644 --- a/tests/baselines/reference/commentsBeforeFunctionExpression1.types +++ b/tests/baselines/reference/commentsBeforeFunctionExpression1.types @@ -1,12 +1,12 @@ === tests/cases/compiler/commentsBeforeFunctionExpression1.ts === var v = { ->v : { f: (a: any) => number; }, Symbol(v, Decl(commentsBeforeFunctionExpression1.ts, 0, 3)) +>v : { f: (a: any) => number; } >{ f: /**own f*/ (a) => 0} : { f: (a: any) => number; } f: /**own f*/ (a) => 0 ->f : (a: any) => number, Symbol(f, Decl(commentsBeforeFunctionExpression1.ts, 0, 9)) +>f : (a: any) => number >(a) => 0 : (a: any) => number ->a : any, Symbol(a, Decl(commentsBeforeFunctionExpression1.ts, 1, 19)) +>a : any >0 : number } diff --git a/tests/baselines/reference/commentsBeforeVariableStatement1.symbols b/tests/baselines/reference/commentsBeforeVariableStatement1.symbols new file mode 100644 index 0000000000000..ddbac8e465374 --- /dev/null +++ b/tests/baselines/reference/commentsBeforeVariableStatement1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/commentsBeforeVariableStatement1.ts === +/** b's comment*/ +export var b: number; +>b : Symbol(b, Decl(commentsBeforeVariableStatement1.ts, 1, 10)) + diff --git a/tests/baselines/reference/commentsBeforeVariableStatement1.types b/tests/baselines/reference/commentsBeforeVariableStatement1.types index dffdc116be591..ec5a599e75cb1 100644 --- a/tests/baselines/reference/commentsBeforeVariableStatement1.types +++ b/tests/baselines/reference/commentsBeforeVariableStatement1.types @@ -1,5 +1,5 @@ === tests/cases/compiler/commentsBeforeVariableStatement1.ts === /** b's comment*/ export var b: number; ->b : number, Symbol(b, Decl(commentsBeforeVariableStatement1.ts, 1, 10)) +>b : number diff --git a/tests/baselines/reference/commentsClass.symbols b/tests/baselines/reference/commentsClass.symbols new file mode 100644 index 0000000000000..9364dc50b02a9 --- /dev/null +++ b/tests/baselines/reference/commentsClass.symbols @@ -0,0 +1,135 @@ +=== tests/cases/compiler/commentsClass.ts === + +/** This is class c2 without constuctor*/ +class c2 { +>c2 : Symbol(c2, Decl(commentsClass.ts, 0, 0)) + +} // trailing comment1 +var i2 = new c2(); +>i2 : Symbol(i2, Decl(commentsClass.ts, 4, 3)) +>c2 : Symbol(c2, Decl(commentsClass.ts, 0, 0)) + +var i2_c = c2; +>i2_c : Symbol(i2_c, Decl(commentsClass.ts, 5, 3)) +>c2 : Symbol(c2, Decl(commentsClass.ts, 0, 0)) + +class c3 { +>c3 : Symbol(c3, Decl(commentsClass.ts, 5, 14)) + + /** Constructor comment*/ + constructor() { + } // trailing comment of constructor +} /* trailing comment 2 */ +var i3 = new c3(); +>i3 : Symbol(i3, Decl(commentsClass.ts, 11, 3)) +>c3 : Symbol(c3, Decl(commentsClass.ts, 5, 14)) + +var i3_c = c3; +>i3_c : Symbol(i3_c, Decl(commentsClass.ts, 12, 3)) +>c3 : Symbol(c3, Decl(commentsClass.ts, 5, 14)) + +/** Class comment*/ +class c4 { +>c4 : Symbol(c4, Decl(commentsClass.ts, 12, 14)) + + /** Constructor comment*/ + constructor() { + } /* trailing comment of constructor 2*/ +} +var i4 = new c4(); +>i4 : Symbol(i4, Decl(commentsClass.ts, 19, 3)) +>c4 : Symbol(c4, Decl(commentsClass.ts, 12, 14)) + +var i4_c = c4; +>i4_c : Symbol(i4_c, Decl(commentsClass.ts, 20, 3)) +>c4 : Symbol(c4, Decl(commentsClass.ts, 12, 14)) + +/** Class with statics*/ +class c5 { +>c5 : Symbol(c5, Decl(commentsClass.ts, 20, 14)) + + static s1: number; +>s1 : Symbol(c5.s1, Decl(commentsClass.ts, 22, 10)) +} +var i5 = new c5(); +>i5 : Symbol(i5, Decl(commentsClass.ts, 25, 3)) +>c5 : Symbol(c5, Decl(commentsClass.ts, 20, 14)) + +var i5_c = c5; +>i5_c : Symbol(i5_c, Decl(commentsClass.ts, 26, 3)) +>c5 : Symbol(c5, Decl(commentsClass.ts, 20, 14)) + +/// class with statics and constructor +class c6 { /// class with statics and constructor2 +>c6 : Symbol(c6, Decl(commentsClass.ts, 26, 14)) + + /// s1 comment + static s1: number; /// s1 comment2 +>s1 : Symbol(c6.s1, Decl(commentsClass.ts, 29, 10)) + + /// constructor comment + constructor() { /// constructor comment2 + } +} +var i6 = new c6(); +>i6 : Symbol(i6, Decl(commentsClass.ts, 36, 3)) +>c6 : Symbol(c6, Decl(commentsClass.ts, 26, 14)) + +var i6_c = c6; +>i6_c : Symbol(i6_c, Decl(commentsClass.ts, 37, 3)) +>c6 : Symbol(c6, Decl(commentsClass.ts, 26, 14)) + +// class with statics and constructor +class c7 { +>c7 : Symbol(c7, Decl(commentsClass.ts, 37, 14)) + + // s1 comment + static s1: number; +>s1 : Symbol(c7.s1, Decl(commentsClass.ts, 40, 10)) + + // constructor comment + constructor() { + } +} +var i7 = new c7(); +>i7 : Symbol(i7, Decl(commentsClass.ts, 47, 3)) +>c7 : Symbol(c7, Decl(commentsClass.ts, 37, 14)) + +var i7_c = c7; +>i7_c : Symbol(i7_c, Decl(commentsClass.ts, 48, 3)) +>c7 : Symbol(c7, Decl(commentsClass.ts, 37, 14)) + +/** class with statics and constructor + */ +class c8 { +>c8 : Symbol(c8, Decl(commentsClass.ts, 48, 14)) + + /** s1 comment */ + static s1: number; /** s1 comment2 */ +>s1 : Symbol(c8.s1, Decl(commentsClass.ts, 52, 10)) + + /** constructor comment + */ + constructor() { + /** constructor comment2 + */ + } +} +var i8 = new c8(); +>i8 : Symbol(i8, Decl(commentsClass.ts, 62, 3)) +>c8 : Symbol(c8, Decl(commentsClass.ts, 48, 14)) + +var i8_c = c8; +>i8_c : Symbol(i8_c, Decl(commentsClass.ts, 63, 3)) +>c8 : Symbol(c8, Decl(commentsClass.ts, 48, 14)) + +class c9 { +>c9 : Symbol(c9, Decl(commentsClass.ts, 63, 14)) + + constructor() { + /// This is some detached comment + + // should emit this leading comment of } too + } +} + diff --git a/tests/baselines/reference/commentsClass.types b/tests/baselines/reference/commentsClass.types index f45f25cd3d491..a4aca2ba15b6b 100644 --- a/tests/baselines/reference/commentsClass.types +++ b/tests/baselines/reference/commentsClass.types @@ -2,117 +2,117 @@ /** This is class c2 without constuctor*/ class c2 { ->c2 : c2, Symbol(c2, Decl(commentsClass.ts, 0, 0)) +>c2 : c2 } // trailing comment1 var i2 = new c2(); ->i2 : c2, Symbol(i2, Decl(commentsClass.ts, 4, 3)) +>i2 : c2 >new c2() : c2 ->c2 : typeof c2, Symbol(c2, Decl(commentsClass.ts, 0, 0)) +>c2 : typeof c2 var i2_c = c2; ->i2_c : typeof c2, Symbol(i2_c, Decl(commentsClass.ts, 5, 3)) ->c2 : typeof c2, Symbol(c2, Decl(commentsClass.ts, 0, 0)) +>i2_c : typeof c2 +>c2 : typeof c2 class c3 { ->c3 : c3, Symbol(c3, Decl(commentsClass.ts, 5, 14)) +>c3 : c3 /** Constructor comment*/ constructor() { } // trailing comment of constructor } /* trailing comment 2 */ var i3 = new c3(); ->i3 : c3, Symbol(i3, Decl(commentsClass.ts, 11, 3)) +>i3 : c3 >new c3() : c3 ->c3 : typeof c3, Symbol(c3, Decl(commentsClass.ts, 5, 14)) +>c3 : typeof c3 var i3_c = c3; ->i3_c : typeof c3, Symbol(i3_c, Decl(commentsClass.ts, 12, 3)) ->c3 : typeof c3, Symbol(c3, Decl(commentsClass.ts, 5, 14)) +>i3_c : typeof c3 +>c3 : typeof c3 /** Class comment*/ class c4 { ->c4 : c4, Symbol(c4, Decl(commentsClass.ts, 12, 14)) +>c4 : c4 /** Constructor comment*/ constructor() { } /* trailing comment of constructor 2*/ } var i4 = new c4(); ->i4 : c4, Symbol(i4, Decl(commentsClass.ts, 19, 3)) +>i4 : c4 >new c4() : c4 ->c4 : typeof c4, Symbol(c4, Decl(commentsClass.ts, 12, 14)) +>c4 : typeof c4 var i4_c = c4; ->i4_c : typeof c4, Symbol(i4_c, Decl(commentsClass.ts, 20, 3)) ->c4 : typeof c4, Symbol(c4, Decl(commentsClass.ts, 12, 14)) +>i4_c : typeof c4 +>c4 : typeof c4 /** Class with statics*/ class c5 { ->c5 : c5, Symbol(c5, Decl(commentsClass.ts, 20, 14)) +>c5 : c5 static s1: number; ->s1 : number, Symbol(c5.s1, Decl(commentsClass.ts, 22, 10)) +>s1 : number } var i5 = new c5(); ->i5 : c5, Symbol(i5, Decl(commentsClass.ts, 25, 3)) +>i5 : c5 >new c5() : c5 ->c5 : typeof c5, Symbol(c5, Decl(commentsClass.ts, 20, 14)) +>c5 : typeof c5 var i5_c = c5; ->i5_c : typeof c5, Symbol(i5_c, Decl(commentsClass.ts, 26, 3)) ->c5 : typeof c5, Symbol(c5, Decl(commentsClass.ts, 20, 14)) +>i5_c : typeof c5 +>c5 : typeof c5 /// class with statics and constructor class c6 { /// class with statics and constructor2 ->c6 : c6, Symbol(c6, Decl(commentsClass.ts, 26, 14)) +>c6 : c6 /// s1 comment static s1: number; /// s1 comment2 ->s1 : number, Symbol(c6.s1, Decl(commentsClass.ts, 29, 10)) +>s1 : number /// constructor comment constructor() { /// constructor comment2 } } var i6 = new c6(); ->i6 : c6, Symbol(i6, Decl(commentsClass.ts, 36, 3)) +>i6 : c6 >new c6() : c6 ->c6 : typeof c6, Symbol(c6, Decl(commentsClass.ts, 26, 14)) +>c6 : typeof c6 var i6_c = c6; ->i6_c : typeof c6, Symbol(i6_c, Decl(commentsClass.ts, 37, 3)) ->c6 : typeof c6, Symbol(c6, Decl(commentsClass.ts, 26, 14)) +>i6_c : typeof c6 +>c6 : typeof c6 // class with statics and constructor class c7 { ->c7 : c7, Symbol(c7, Decl(commentsClass.ts, 37, 14)) +>c7 : c7 // s1 comment static s1: number; ->s1 : number, Symbol(c7.s1, Decl(commentsClass.ts, 40, 10)) +>s1 : number // constructor comment constructor() { } } var i7 = new c7(); ->i7 : c7, Symbol(i7, Decl(commentsClass.ts, 47, 3)) +>i7 : c7 >new c7() : c7 ->c7 : typeof c7, Symbol(c7, Decl(commentsClass.ts, 37, 14)) +>c7 : typeof c7 var i7_c = c7; ->i7_c : typeof c7, Symbol(i7_c, Decl(commentsClass.ts, 48, 3)) ->c7 : typeof c7, Symbol(c7, Decl(commentsClass.ts, 37, 14)) +>i7_c : typeof c7 +>c7 : typeof c7 /** class with statics and constructor */ class c8 { ->c8 : c8, Symbol(c8, Decl(commentsClass.ts, 48, 14)) +>c8 : c8 /** s1 comment */ static s1: number; /** s1 comment2 */ ->s1 : number, Symbol(c8.s1, Decl(commentsClass.ts, 52, 10)) +>s1 : number /** constructor comment */ @@ -122,16 +122,16 @@ class c8 { } } var i8 = new c8(); ->i8 : c8, Symbol(i8, Decl(commentsClass.ts, 62, 3)) +>i8 : c8 >new c8() : c8 ->c8 : typeof c8, Symbol(c8, Decl(commentsClass.ts, 48, 14)) +>c8 : typeof c8 var i8_c = c8; ->i8_c : typeof c8, Symbol(i8_c, Decl(commentsClass.ts, 63, 3)) ->c8 : typeof c8, Symbol(c8, Decl(commentsClass.ts, 48, 14)) +>i8_c : typeof c8 +>c8 : typeof c8 class c9 { ->c9 : c9, Symbol(c9, Decl(commentsClass.ts, 63, 14)) +>c9 : c9 constructor() { /// This is some detached comment diff --git a/tests/baselines/reference/commentsClassMembers.symbols b/tests/baselines/reference/commentsClassMembers.symbols new file mode 100644 index 0000000000000..dd014611df776 --- /dev/null +++ b/tests/baselines/reference/commentsClassMembers.symbols @@ -0,0 +1,706 @@ +=== tests/cases/compiler/commentsClassMembers.ts === + +/** This is comment for c1*/ +class c1 { +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) + + /** p1 is property of c1*/ + public p1: number; +>p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) + + /** sum with property*/ + public p2(/** number to add*/b: number) { +>p2 : Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 6, 14)) + + return this.p1 + b; +>this.p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 6, 14)) + + } /* trailing comment of method*/ + /** getter property*/ + public get p3() { +>p3 : Symbol(p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) + + return this.p2(this.p1); +>this.p2 : Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>p2 : Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) +>this.p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) + + }// trailing comment Getter + /** setter property*/ + public set p3(/** this is value*/value: number) { +>p3 : Symbol(p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 14, 18)) + + this.p1 = this.p2(value); +>this.p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this.p2 : Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>p2 : Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 14, 18)) + + }// trailing comment Setter + /** pp1 is property of c1*/ + private pp1: number; +>pp1 : Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) + + /** sum with property*/ + private pp2(/** number to add*/b: number) { +>pp2 : Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 20, 16)) + + return this.p1 + b; +>this.p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>p1 : Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 20, 16)) + + } // trailing comment of method + /** getter property*/ + private get pp3() { +>pp3 : Symbol(pp3, Decl(commentsClassMembers.ts, 22, 5), Decl(commentsClassMembers.ts, 26, 5)) + + return this.pp2(this.pp1); +>this.pp2 : Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>pp2 : Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) +>this.pp1 : Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>pp1 : Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) + } + /** setter property*/ + private set pp3( /** this is value*/value: number) { +>pp3 : Symbol(pp3, Decl(commentsClassMembers.ts, 22, 5), Decl(commentsClassMembers.ts, 26, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 28, 20)) + + this.pp1 = this.pp2(value); +>this.pp1 : Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>pp1 : Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) +>this.pp2 : Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>pp2 : Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 28, 20)) + } + /** Constructor method*/ + constructor() { + } + /** s1 is static property of c1*/ + static s1: number; +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) + + /** static sum with property*/ + static s2(/** number to add*/b: number) { +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 37, 14)) + + return c1.s1 + b; +>c1.s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 37, 14)) + } + /** static getter property*/ + static get s3() { +>s3 : Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) + + return c1.s2(c1.s1); +>c1.s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1.s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) + + } /*trailing comment 1 getter*/ + /** setter property*/ + static set s3( /** this is value*/value: number) { +>s3 : Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 45, 18)) + + c1.s1 = c1.s2(value); +>c1.s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1.s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 45, 18)) + + }/*trailing comment 2 */ /*setter*/ + public nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) + + public nc_p2(b: number) { +>nc_p2 : Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 49, 17)) + + return this.nc_p1 + b; +>this.nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 49, 17)) + } + public get nc_p3() { +>nc_p3 : Symbol(nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) + + return this.nc_p2(this.nc_p1); +>this.nc_p2 : Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_p2 : Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>this.nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) + } + public set nc_p3(value: number) { +>nc_p3 : Symbol(nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 55, 21)) + + this.nc_p1 = this.nc_p2(value); +>this.nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>this.nc_p2 : Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_p2 : Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 55, 21)) + } + private nc_pp1: number; +>nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) + + private nc_pp2(b: number) { +>nc_pp2 : Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 59, 19)) + + return this.nc_pp1 + b; +>this.nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 59, 19)) + } + private get nc_pp3() { +>nc_pp3 : Symbol(nc_pp3, Decl(commentsClassMembers.ts, 61, 5), Decl(commentsClassMembers.ts, 64, 5)) + + return this.nc_pp2(this.nc_pp1); +>this.nc_pp2 : Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_pp2 : Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) +>this.nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) + } + private set nc_pp3(value: number) { +>nc_pp3 : Symbol(nc_pp3, Decl(commentsClassMembers.ts, 61, 5), Decl(commentsClassMembers.ts, 64, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 65, 23)) + + this.nc_pp1 = this.nc_pp2(value); +>this.nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_pp1 : Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>this.nc_pp2 : Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_pp2 : Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 65, 23)) + } + static nc_s1: number; +>nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) + + static nc_s2(b: number) { +>nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 69, 17)) + + return c1.nc_s1 + b; +>c1.nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 69, 17)) + } + static get nc_s3() { +>nc_s3 : Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) + + return c1.nc_s2(c1.nc_s1); +>c1.nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>c1.nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) + } + static set nc_s3(value: number) { +>nc_s3 : Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 75, 21)) + + c1.nc_s1 = c1.nc_s2(value); +>c1.nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1.nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 75, 21)) + } + + // p1 is property of c1 + public a_p1: number; +>a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) + + // sum with property + public a_p2(b: number) { +>a_p2 : Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 82, 16)) + + return this.a_p1 + b; +>this.a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 82, 16)) + } + // getter property + public get a_p3() { +>a_p3 : Symbol(a_p3, Decl(commentsClassMembers.ts, 84, 5), Decl(commentsClassMembers.ts, 88, 5)) + + return this.a_p2(this.a_p1); +>this.a_p2 : Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_p2 : Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) +>this.a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) + } + // setter property + public set a_p3(value: number) { +>a_p3 : Symbol(a_p3, Decl(commentsClassMembers.ts, 84, 5), Decl(commentsClassMembers.ts, 88, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 90, 20)) + + this.a_p1 = this.a_p2(value); +>this.a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this.a_p2 : Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_p2 : Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 90, 20)) + } + // pp1 is property of c1 + private a_pp1: number; +>a_pp1 : Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) + + // sum with property + private a_pp2(b: number) { +>a_pp2 : Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 96, 18)) + + return this.a_p1 + b; +>this.a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_p1 : Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 96, 18)) + } + // getter property + private get a_pp3() { +>a_pp3 : Symbol(a_pp3, Decl(commentsClassMembers.ts, 98, 5), Decl(commentsClassMembers.ts, 102, 5)) + + return this.a_pp2(this.a_pp1); +>this.a_pp2 : Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_pp2 : Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) +>this.a_pp1 : Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_pp1 : Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) + } + // setter property + private set a_pp3(value: number) { +>a_pp3 : Symbol(a_pp3, Decl(commentsClassMembers.ts, 98, 5), Decl(commentsClassMembers.ts, 102, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 104, 22)) + + this.a_pp1 = this.a_pp2(value); +>this.a_pp1 : Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_pp1 : Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) +>this.a_pp2 : Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_pp2 : Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 104, 22)) + } + + // s1 is static property of c1 + static a_s1: number; +>a_s1 : Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) + + // static sum with property + static a_s2(b: number) { +>a_s2 : Symbol(c1.a_s2, Decl(commentsClassMembers.ts, 109, 24)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 111, 16)) + + return c1.a_s1 + b; +>c1.a_s1 : Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_s1 : Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 111, 16)) + } + // static getter property + static get a_s3() { +>a_s3 : Symbol(c1.a_s3, Decl(commentsClassMembers.ts, 113, 5), Decl(commentsClassMembers.ts, 117, 5)) + + return c1.s2(c1.s1); +>c1.s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1.s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) + } + + // setter property + static set a_s3(value: number) { +>a_s3 : Symbol(c1.a_s3, Decl(commentsClassMembers.ts, 113, 5), Decl(commentsClassMembers.ts, 117, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 120, 20)) + + c1.a_s1 = c1.a_s2(value); +>c1.a_s1 : Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_s1 : Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) +>c1.a_s2 : Symbol(c1.a_s2, Decl(commentsClassMembers.ts, 109, 24)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>a_s2 : Symbol(c1.a_s2, Decl(commentsClassMembers.ts, 109, 24)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 120, 20)) + } + + /** p1 is property of c1 */ + public b_p1: number; +>b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) + + /** sum with property */ + public b_p2(b: number) { +>b_p2 : Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 127, 16)) + + return this.b_p1 + b; +>this.b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 127, 16)) + } + /** getter property */ + public get b_p3() { +>b_p3 : Symbol(b_p3, Decl(commentsClassMembers.ts, 129, 5), Decl(commentsClassMembers.ts, 133, 5)) + + return this.b_p2(this.b_p1); +>this.b_p2 : Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_p2 : Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) +>this.b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) + } + /** setter property */ + public set b_p3(value: number) { +>b_p3 : Symbol(b_p3, Decl(commentsClassMembers.ts, 129, 5), Decl(commentsClassMembers.ts, 133, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 135, 20)) + + this.b_p1 = this.b_p2(value); +>this.b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this.b_p2 : Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_p2 : Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 135, 20)) + } + /** pp1 is property of c1 */ + private b_pp1: number; +>b_pp1 : Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) + + /** sum with property */ + private b_pp2(b: number) { +>b_pp2 : Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 141, 18)) + + return this.b_p1 + b; +>this.b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_p1 : Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 141, 18)) + } + /** getter property */ + private get b_pp3() { +>b_pp3 : Symbol(b_pp3, Decl(commentsClassMembers.ts, 143, 5), Decl(commentsClassMembers.ts, 147, 5)) + + return this.b_pp2(this.b_pp1); +>this.b_pp2 : Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_pp2 : Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) +>this.b_pp1 : Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_pp1 : Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) + } + /** setter property */ + private set b_pp3(value: number) { +>b_pp3 : Symbol(b_pp3, Decl(commentsClassMembers.ts, 143, 5), Decl(commentsClassMembers.ts, 147, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 149, 22)) + + this.b_pp1 = this.b_pp2(value); +>this.b_pp1 : Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_pp1 : Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) +>this.b_pp2 : Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) +>this : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_pp2 : Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 149, 22)) + } + + /** s1 is static property of c1 */ + static b_s1: number; +>b_s1 : Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) + + /** static sum with property */ + static b_s2(b: number) { +>b_s2 : Symbol(c1.b_s2, Decl(commentsClassMembers.ts, 154, 24)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 156, 16)) + + return c1.b_s1 + b; +>c1.b_s1 : Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_s1 : Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) +>b : Symbol(b, Decl(commentsClassMembers.ts, 156, 16)) + } + /** static getter property + */ + static get b_s3() { +>b_s3 : Symbol(c1.b_s3, Decl(commentsClassMembers.ts, 158, 5), Decl(commentsClassMembers.ts, 163, 5)) + + return c1.s2(c1.s1); +>c1.s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1.s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) + } + + /** setter property + */ + static set b_s3(value: number) { +>b_s3 : Symbol(c1.b_s3, Decl(commentsClassMembers.ts, 158, 5), Decl(commentsClassMembers.ts, 163, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 167, 20)) + + /** setter */ + c1.b_s1 = c1.b_s2(value); +>c1.b_s1 : Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_s1 : Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) +>c1.b_s2 : Symbol(c1.b_s2, Decl(commentsClassMembers.ts, 154, 24)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>b_s2 : Symbol(c1.b_s2, Decl(commentsClassMembers.ts, 154, 24)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 167, 20)) + } +} +var i1 = new c1(); +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) + +var i1_p = i1.p1; +>i1_p : Symbol(i1_p, Decl(commentsClassMembers.ts, 173, 3)) +>i1.p1 : Symbol(c1.p1, Decl(commentsClassMembers.ts, 2, 10)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>p1 : Symbol(c1.p1, Decl(commentsClassMembers.ts, 2, 10)) + +var i1_f = i1.p2; +>i1_f : Symbol(i1_f, Decl(commentsClassMembers.ts, 174, 3)) +>i1.p2 : Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>p2 : Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) + +var i1_r = i1.p2(20); +>i1_r : Symbol(i1_r, Decl(commentsClassMembers.ts, 175, 3)) +>i1.p2 : Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>p2 : Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) + +var i1_prop = i1.p3; +>i1_prop : Symbol(i1_prop, Decl(commentsClassMembers.ts, 176, 3)) +>i1.p3 : Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>p3 : Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) + +i1.p3 = i1_prop; +>i1.p3 : Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>p3 : Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) +>i1_prop : Symbol(i1_prop, Decl(commentsClassMembers.ts, 176, 3)) + +var i1_nc_p = i1.nc_p1; +>i1_nc_p : Symbol(i1_nc_p, Decl(commentsClassMembers.ts, 178, 3)) +>i1.nc_p1 : Symbol(c1.nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>nc_p1 : Symbol(c1.nc_p1, Decl(commentsClassMembers.ts, 47, 5)) + +var i1_ncf = i1.nc_p2; +>i1_ncf : Symbol(i1_ncf, Decl(commentsClassMembers.ts, 179, 3)) +>i1.nc_p2 : Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>nc_p2 : Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) + +var i1_ncr = i1.nc_p2(20); +>i1_ncr : Symbol(i1_ncr, Decl(commentsClassMembers.ts, 180, 3)) +>i1.nc_p2 : Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>nc_p2 : Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) + +var i1_ncprop = i1.nc_p3; +>i1_ncprop : Symbol(i1_ncprop, Decl(commentsClassMembers.ts, 181, 3)) +>i1.nc_p3 : Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>nc_p3 : Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) + +i1.nc_p3 = i1_ncprop; +>i1.nc_p3 : Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) +>i1 : Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>nc_p3 : Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) +>i1_ncprop : Symbol(i1_ncprop, Decl(commentsClassMembers.ts, 181, 3)) + +var i1_s_p = c1.s1; +>i1_s_p : Symbol(i1_s_p, Decl(commentsClassMembers.ts, 183, 3)) +>c1.s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s1 : Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) + +var i1_s_f = c1.s2; +>i1_s_f : Symbol(i1_s_f, Decl(commentsClassMembers.ts, 184, 3)) +>c1.s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) + +var i1_s_r = c1.s2(20); +>i1_s_r : Symbol(i1_s_r, Decl(commentsClassMembers.ts, 185, 3)) +>c1.s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s2 : Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) + +var i1_s_prop = c1.s3; +>i1_s_prop : Symbol(i1_s_prop, Decl(commentsClassMembers.ts, 186, 3)) +>c1.s3 : Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s3 : Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) + +c1.s3 = i1_s_prop; +>c1.s3 : Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>s3 : Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) +>i1_s_prop : Symbol(i1_s_prop, Decl(commentsClassMembers.ts, 186, 3)) + +var i1_s_nc_p = c1.nc_s1; +>i1_s_nc_p : Symbol(i1_s_nc_p, Decl(commentsClassMembers.ts, 188, 3)) +>c1.nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s1 : Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) + +var i1_s_ncf = c1.nc_s2; +>i1_s_ncf : Symbol(i1_s_ncf, Decl(commentsClassMembers.ts, 189, 3)) +>c1.nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) + +var i1_s_ncr = c1.nc_s2(20); +>i1_s_ncr : Symbol(i1_s_ncr, Decl(commentsClassMembers.ts, 190, 3)) +>c1.nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s2 : Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) + +var i1_s_ncprop = c1.nc_s3; +>i1_s_ncprop : Symbol(i1_s_ncprop, Decl(commentsClassMembers.ts, 191, 3)) +>c1.nc_s3 : Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s3 : Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) + +c1.nc_s3 = i1_s_ncprop; +>c1.nc_s3 : Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>nc_s3 : Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) +>i1_s_ncprop : Symbol(i1_s_ncprop, Decl(commentsClassMembers.ts, 191, 3)) + +var i1_c = c1; +>i1_c : Symbol(i1_c, Decl(commentsClassMembers.ts, 193, 3)) +>c1 : Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) + +class cProperties { +>cProperties : Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) + + private val: number; +>val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) + + /** getter only property*/ + public get p1() { +>p1 : Symbol(p1, Decl(commentsClassMembers.ts, 195, 24)) + + return this.val; +>this.val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>this : Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) +>val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) + + } // trailing comment of only getter + public get nc_p1() { +>nc_p1 : Symbol(nc_p1, Decl(commentsClassMembers.ts, 199, 5)) + + return this.val; +>this.val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>this : Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) +>val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) + } + /**setter only property*/ + public set p2(value: number) { +>p2 : Symbol(p2, Decl(commentsClassMembers.ts, 202, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 204, 18)) + + this.val = value; +>this.val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>this : Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) +>val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 204, 18)) + } + public set nc_p2(value: number) { +>nc_p2 : Symbol(nc_p2, Decl(commentsClassMembers.ts, 206, 5)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 207, 21)) + + this.val = value; +>this.val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>this : Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) +>val : Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>value : Symbol(value, Decl(commentsClassMembers.ts, 207, 21)) + + } /* trailing comment of setter only*/ + + public x = 10; /*trailing comment for property*/ +>x : Symbol(x, Decl(commentsClassMembers.ts, 209, 5)) + + private y = 10; // trailing comment of // style +>y : Symbol(y, Decl(commentsClassMembers.ts, 211, 18)) +} +var cProperties_i = new cProperties(); +>cProperties_i : Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) +>cProperties : Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) + +cProperties_i.p2 = cProperties_i.p1; +>cProperties_i.p2 : Symbol(cProperties.p2, Decl(commentsClassMembers.ts, 202, 5)) +>cProperties_i : Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) +>p2 : Symbol(cProperties.p2, Decl(commentsClassMembers.ts, 202, 5)) +>cProperties_i.p1 : Symbol(cProperties.p1, Decl(commentsClassMembers.ts, 195, 24)) +>cProperties_i : Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) +>p1 : Symbol(cProperties.p1, Decl(commentsClassMembers.ts, 195, 24)) + +cProperties_i.nc_p2 = cProperties_i.nc_p1; +>cProperties_i.nc_p2 : Symbol(cProperties.nc_p2, Decl(commentsClassMembers.ts, 206, 5)) +>cProperties_i : Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) +>nc_p2 : Symbol(cProperties.nc_p2, Decl(commentsClassMembers.ts, 206, 5)) +>cProperties_i.nc_p1 : Symbol(cProperties.nc_p1, Decl(commentsClassMembers.ts, 199, 5)) +>cProperties_i : Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) +>nc_p1 : Symbol(cProperties.nc_p1, Decl(commentsClassMembers.ts, 199, 5)) + diff --git a/tests/baselines/reference/commentsClassMembers.types b/tests/baselines/reference/commentsClassMembers.types index b4331f16f61dd..fbd514bf77b93 100644 --- a/tests/baselines/reference/commentsClassMembers.types +++ b/tests/baselines/reference/commentsClassMembers.types @@ -2,773 +2,773 @@ /** This is comment for c1*/ class c1 { ->c1 : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>c1 : c1 /** p1 is property of c1*/ public p1: number; ->p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>p1 : number /** sum with property*/ public p2(/** number to add*/b: number) { ->p2 : (b: number) => number, Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 6, 14)) +>p2 : (b: number) => number +>b : number return this.p1 + b; >this.p1 + b : number ->this.p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 6, 14)) +>this.p1 : number +>this : c1 +>p1 : number +>b : number } /* trailing comment of method*/ /** getter property*/ public get p3() { ->p3 : number, Symbol(p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) +>p3 : number return this.p2(this.p1); >this.p2(this.p1) : number ->this.p2 : (b: number) => number, Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->p2 : (b: number) => number, Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) ->this.p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this.p2 : (b: number) => number +>this : c1 +>p2 : (b: number) => number +>this.p1 : number +>this : c1 +>p1 : number }// trailing comment Getter /** setter property*/ public set p3(/** this is value*/value: number) { ->p3 : number, Symbol(p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 14, 18)) +>p3 : number +>value : number this.p1 = this.p2(value); >this.p1 = this.p2(value) : number ->this.p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) +>this.p1 : number +>this : c1 +>p1 : number >this.p2(value) : number ->this.p2 : (b: number) => number, Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->p2 : (b: number) => number, Symbol(p2, Decl(commentsClassMembers.ts, 4, 22)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 14, 18)) +>this.p2 : (b: number) => number +>this : c1 +>p2 : (b: number) => number +>value : number }// trailing comment Setter /** pp1 is property of c1*/ private pp1: number; ->pp1 : number, Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) +>pp1 : number /** sum with property*/ private pp2(/** number to add*/b: number) { ->pp2 : (b: number) => number, Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 20, 16)) +>pp2 : (b: number) => number +>b : number return this.p1 + b; >this.p1 + b : number ->this.p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 2, 10)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 20, 16)) +>this.p1 : number +>this : c1 +>p1 : number +>b : number } // trailing comment of method /** getter property*/ private get pp3() { ->pp3 : number, Symbol(pp3, Decl(commentsClassMembers.ts, 22, 5), Decl(commentsClassMembers.ts, 26, 5)) +>pp3 : number return this.pp2(this.pp1); >this.pp2(this.pp1) : number ->this.pp2 : (b: number) => number, Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->pp2 : (b: number) => number, Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) ->this.pp1 : number, Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->pp1 : number, Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) +>this.pp2 : (b: number) => number +>this : c1 +>pp2 : (b: number) => number +>this.pp1 : number +>this : c1 +>pp1 : number } /** setter property*/ private set pp3( /** this is value*/value: number) { ->pp3 : number, Symbol(pp3, Decl(commentsClassMembers.ts, 22, 5), Decl(commentsClassMembers.ts, 26, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 28, 20)) +>pp3 : number +>value : number this.pp1 = this.pp2(value); >this.pp1 = this.pp2(value) : number ->this.pp1 : number, Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->pp1 : number, Symbol(pp1, Decl(commentsClassMembers.ts, 16, 5)) +>this.pp1 : number +>this : c1 +>pp1 : number >this.pp2(value) : number ->this.pp2 : (b: number) => number, Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->pp2 : (b: number) => number, Symbol(pp2, Decl(commentsClassMembers.ts, 18, 24)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 28, 20)) +>this.pp2 : (b: number) => number +>this : c1 +>pp2 : (b: number) => number +>value : number } /** Constructor method*/ constructor() { } /** s1 is static property of c1*/ static s1: number; ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>s1 : number /** static sum with property*/ static s2(/** number to add*/b: number) { ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 37, 14)) +>s2 : (b: number) => number +>b : number return c1.s1 + b; >c1.s1 + b : number ->c1.s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 37, 14)) +>c1.s1 : number +>c1 : typeof c1 +>s1 : number +>b : number } /** static getter property*/ static get s3() { ->s3 : number, Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) +>s3 : number return c1.s2(c1.s1); >c1.s2(c1.s1) : number ->c1.s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1.s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1.s2 : (b: number) => number +>c1 : typeof c1 +>s2 : (b: number) => number +>c1.s1 : number +>c1 : typeof c1 +>s1 : number } /*trailing comment 1 getter*/ /** setter property*/ static set s3( /** this is value*/value: number) { ->s3 : number, Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 45, 18)) +>s3 : number +>value : number c1.s1 = c1.s2(value); >c1.s1 = c1.s2(value) : number ->c1.s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1.s1 : number +>c1 : typeof c1 +>s1 : number >c1.s2(value) : number ->c1.s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 45, 18)) +>c1.s2 : (b: number) => number +>c1 : typeof c1 +>s2 : (b: number) => number +>value : number }/*trailing comment 2 */ /*setter*/ public nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>nc_p1 : number public nc_p2(b: number) { ->nc_p2 : (b: number) => number, Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 49, 17)) +>nc_p2 : (b: number) => number +>b : number return this.nc_p1 + b; >this.nc_p1 + b : number ->this.nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 49, 17)) +>this.nc_p1 : number +>this : c1 +>nc_p1 : number +>b : number } public get nc_p3() { ->nc_p3 : number, Symbol(nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) +>nc_p3 : number return this.nc_p2(this.nc_p1); >this.nc_p2(this.nc_p1) : number ->this.nc_p2 : (b: number) => number, Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_p2 : (b: number) => number, Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->this.nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>this.nc_p2 : (b: number) => number +>this : c1 +>nc_p2 : (b: number) => number +>this.nc_p1 : number +>this : c1 +>nc_p1 : number } public set nc_p3(value: number) { ->nc_p3 : number, Symbol(nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 55, 21)) +>nc_p3 : number +>value : number this.nc_p1 = this.nc_p2(value); >this.nc_p1 = this.nc_p2(value) : number ->this.nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>this.nc_p1 : number +>this : c1 +>nc_p1 : number >this.nc_p2(value) : number ->this.nc_p2 : (b: number) => number, Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_p2 : (b: number) => number, Symbol(nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 55, 21)) +>this.nc_p2 : (b: number) => number +>this : c1 +>nc_p2 : (b: number) => number +>value : number } private nc_pp1: number; ->nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>nc_pp1 : number private nc_pp2(b: number) { ->nc_pp2 : (b: number) => number, Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 59, 19)) +>nc_pp2 : (b: number) => number +>b : number return this.nc_pp1 + b; >this.nc_pp1 + b : number ->this.nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 59, 19)) +>this.nc_pp1 : number +>this : c1 +>nc_pp1 : number +>b : number } private get nc_pp3() { ->nc_pp3 : number, Symbol(nc_pp3, Decl(commentsClassMembers.ts, 61, 5), Decl(commentsClassMembers.ts, 64, 5)) +>nc_pp3 : number return this.nc_pp2(this.nc_pp1); >this.nc_pp2(this.nc_pp1) : number ->this.nc_pp2 : (b: number) => number, Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_pp2 : (b: number) => number, Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) ->this.nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>this.nc_pp2 : (b: number) => number +>this : c1 +>nc_pp2 : (b: number) => number +>this.nc_pp1 : number +>this : c1 +>nc_pp1 : number } private set nc_pp3(value: number) { ->nc_pp3 : number, Symbol(nc_pp3, Decl(commentsClassMembers.ts, 61, 5), Decl(commentsClassMembers.ts, 64, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 65, 23)) +>nc_pp3 : number +>value : number this.nc_pp1 = this.nc_pp2(value); >this.nc_pp1 = this.nc_pp2(value) : number ->this.nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_pp1 : number, Symbol(nc_pp1, Decl(commentsClassMembers.ts, 57, 5)) +>this.nc_pp1 : number +>this : c1 +>nc_pp1 : number >this.nc_pp2(value) : number ->this.nc_pp2 : (b: number) => number, Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_pp2 : (b: number) => number, Symbol(nc_pp2, Decl(commentsClassMembers.ts, 58, 27)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 65, 23)) +>this.nc_pp2 : (b: number) => number +>this : c1 +>nc_pp2 : (b: number) => number +>value : number } static nc_s1: number; ->nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>nc_s1 : number static nc_s2(b: number) { ->nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 69, 17)) +>nc_s2 : (b: number) => number +>b : number return c1.nc_s1 + b; >c1.nc_s1 + b : number ->c1.nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 69, 17)) +>c1.nc_s1 : number +>c1 : typeof c1 +>nc_s1 : number +>b : number } static get nc_s3() { ->nc_s3 : number, Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) +>nc_s3 : number return c1.nc_s2(c1.nc_s1); >c1.nc_s2(c1.nc_s1) : number ->c1.nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->c1.nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1.nc_s2 : (b: number) => number +>c1 : typeof c1 +>nc_s2 : (b: number) => number +>c1.nc_s1 : number +>c1 : typeof c1 +>nc_s1 : number } static set nc_s3(value: number) { ->nc_s3 : number, Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 75, 21)) +>nc_s3 : number +>value : number c1.nc_s1 = c1.nc_s2(value); >c1.nc_s1 = c1.nc_s2(value) : number ->c1.nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>c1.nc_s1 : number +>c1 : typeof c1 +>nc_s1 : number >c1.nc_s2(value) : number ->c1.nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 75, 21)) +>c1.nc_s2 : (b: number) => number +>c1 : typeof c1 +>nc_s2 : (b: number) => number +>value : number } // p1 is property of c1 public a_p1: number; ->a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>a_p1 : number // sum with property public a_p2(b: number) { ->a_p2 : (b: number) => number, Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 82, 16)) +>a_p2 : (b: number) => number +>b : number return this.a_p1 + b; >this.a_p1 + b : number ->this.a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 82, 16)) +>this.a_p1 : number +>this : c1 +>a_p1 : number +>b : number } // getter property public get a_p3() { ->a_p3 : number, Symbol(a_p3, Decl(commentsClassMembers.ts, 84, 5), Decl(commentsClassMembers.ts, 88, 5)) +>a_p3 : number return this.a_p2(this.a_p1); >this.a_p2(this.a_p1) : number ->this.a_p2 : (b: number) => number, Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_p2 : (b: number) => number, Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) ->this.a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this.a_p2 : (b: number) => number +>this : c1 +>a_p2 : (b: number) => number +>this.a_p1 : number +>this : c1 +>a_p1 : number } // setter property public set a_p3(value: number) { ->a_p3 : number, Symbol(a_p3, Decl(commentsClassMembers.ts, 84, 5), Decl(commentsClassMembers.ts, 88, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 90, 20)) +>a_p3 : number +>value : number this.a_p1 = this.a_p2(value); >this.a_p1 = this.a_p2(value) : number ->this.a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) +>this.a_p1 : number +>this : c1 +>a_p1 : number >this.a_p2(value) : number ->this.a_p2 : (b: number) => number, Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_p2 : (b: number) => number, Symbol(a_p2, Decl(commentsClassMembers.ts, 80, 24)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 90, 20)) +>this.a_p2 : (b: number) => number +>this : c1 +>a_p2 : (b: number) => number +>value : number } // pp1 is property of c1 private a_pp1: number; ->a_pp1 : number, Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) +>a_pp1 : number // sum with property private a_pp2(b: number) { ->a_pp2 : (b: number) => number, Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 96, 18)) +>a_pp2 : (b: number) => number +>b : number return this.a_p1 + b; >this.a_p1 + b : number ->this.a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_p1 : number, Symbol(a_p1, Decl(commentsClassMembers.ts, 77, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 96, 18)) +>this.a_p1 : number +>this : c1 +>a_p1 : number +>b : number } // getter property private get a_pp3() { ->a_pp3 : number, Symbol(a_pp3, Decl(commentsClassMembers.ts, 98, 5), Decl(commentsClassMembers.ts, 102, 5)) +>a_pp3 : number return this.a_pp2(this.a_pp1); >this.a_pp2(this.a_pp1) : number ->this.a_pp2 : (b: number) => number, Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_pp2 : (b: number) => number, Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) ->this.a_pp1 : number, Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_pp1 : number, Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) +>this.a_pp2 : (b: number) => number +>this : c1 +>a_pp2 : (b: number) => number +>this.a_pp1 : number +>this : c1 +>a_pp1 : number } // setter property private set a_pp3(value: number) { ->a_pp3 : number, Symbol(a_pp3, Decl(commentsClassMembers.ts, 98, 5), Decl(commentsClassMembers.ts, 102, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 104, 22)) +>a_pp3 : number +>value : number this.a_pp1 = this.a_pp2(value); >this.a_pp1 = this.a_pp2(value) : number ->this.a_pp1 : number, Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_pp1 : number, Symbol(a_pp1, Decl(commentsClassMembers.ts, 92, 5)) +>this.a_pp1 : number +>this : c1 +>a_pp1 : number >this.a_pp2(value) : number ->this.a_pp2 : (b: number) => number, Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_pp2 : (b: number) => number, Symbol(a_pp2, Decl(commentsClassMembers.ts, 94, 26)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 104, 22)) +>this.a_pp2 : (b: number) => number +>this : c1 +>a_pp2 : (b: number) => number +>value : number } // s1 is static property of c1 static a_s1: number; ->a_s1 : number, Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) +>a_s1 : number // static sum with property static a_s2(b: number) { ->a_s2 : (b: number) => number, Symbol(c1.a_s2, Decl(commentsClassMembers.ts, 109, 24)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 111, 16)) +>a_s2 : (b: number) => number +>b : number return c1.a_s1 + b; >c1.a_s1 + b : number ->c1.a_s1 : number, Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_s1 : number, Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 111, 16)) +>c1.a_s1 : number +>c1 : typeof c1 +>a_s1 : number +>b : number } // static getter property static get a_s3() { ->a_s3 : number, Symbol(c1.a_s3, Decl(commentsClassMembers.ts, 113, 5), Decl(commentsClassMembers.ts, 117, 5)) +>a_s3 : number return c1.s2(c1.s1); >c1.s2(c1.s1) : number ->c1.s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1.s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1.s2 : (b: number) => number +>c1 : typeof c1 +>s2 : (b: number) => number +>c1.s1 : number +>c1 : typeof c1 +>s1 : number } // setter property static set a_s3(value: number) { ->a_s3 : number, Symbol(c1.a_s3, Decl(commentsClassMembers.ts, 113, 5), Decl(commentsClassMembers.ts, 117, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 120, 20)) +>a_s3 : number +>value : number c1.a_s1 = c1.a_s2(value); >c1.a_s1 = c1.a_s2(value) : number ->c1.a_s1 : number, Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_s1 : number, Symbol(c1.a_s1, Decl(commentsClassMembers.ts, 106, 5)) +>c1.a_s1 : number +>c1 : typeof c1 +>a_s1 : number >c1.a_s2(value) : number ->c1.a_s2 : (b: number) => number, Symbol(c1.a_s2, Decl(commentsClassMembers.ts, 109, 24)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->a_s2 : (b: number) => number, Symbol(c1.a_s2, Decl(commentsClassMembers.ts, 109, 24)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 120, 20)) +>c1.a_s2 : (b: number) => number +>c1 : typeof c1 +>a_s2 : (b: number) => number +>value : number } /** p1 is property of c1 */ public b_p1: number; ->b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>b_p1 : number /** sum with property */ public b_p2(b: number) { ->b_p2 : (b: number) => number, Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 127, 16)) +>b_p2 : (b: number) => number +>b : number return this.b_p1 + b; >this.b_p1 + b : number ->this.b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 127, 16)) +>this.b_p1 : number +>this : c1 +>b_p1 : number +>b : number } /** getter property */ public get b_p3() { ->b_p3 : number, Symbol(b_p3, Decl(commentsClassMembers.ts, 129, 5), Decl(commentsClassMembers.ts, 133, 5)) +>b_p3 : number return this.b_p2(this.b_p1); >this.b_p2(this.b_p1) : number ->this.b_p2 : (b: number) => number, Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_p2 : (b: number) => number, Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) ->this.b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this.b_p2 : (b: number) => number +>this : c1 +>b_p2 : (b: number) => number +>this.b_p1 : number +>this : c1 +>b_p1 : number } /** setter property */ public set b_p3(value: number) { ->b_p3 : number, Symbol(b_p3, Decl(commentsClassMembers.ts, 129, 5), Decl(commentsClassMembers.ts, 133, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 135, 20)) +>b_p3 : number +>value : number this.b_p1 = this.b_p2(value); >this.b_p1 = this.b_p2(value) : number ->this.b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) +>this.b_p1 : number +>this : c1 +>b_p1 : number >this.b_p2(value) : number ->this.b_p2 : (b: number) => number, Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_p2 : (b: number) => number, Symbol(b_p2, Decl(commentsClassMembers.ts, 125, 24)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 135, 20)) +>this.b_p2 : (b: number) => number +>this : c1 +>b_p2 : (b: number) => number +>value : number } /** pp1 is property of c1 */ private b_pp1: number; ->b_pp1 : number, Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) +>b_pp1 : number /** sum with property */ private b_pp2(b: number) { ->b_pp2 : (b: number) => number, Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 141, 18)) +>b_pp2 : (b: number) => number +>b : number return this.b_p1 + b; >this.b_p1 + b : number ->this.b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_p1 : number, Symbol(b_p1, Decl(commentsClassMembers.ts, 122, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 141, 18)) +>this.b_p1 : number +>this : c1 +>b_p1 : number +>b : number } /** getter property */ private get b_pp3() { ->b_pp3 : number, Symbol(b_pp3, Decl(commentsClassMembers.ts, 143, 5), Decl(commentsClassMembers.ts, 147, 5)) +>b_pp3 : number return this.b_pp2(this.b_pp1); >this.b_pp2(this.b_pp1) : number ->this.b_pp2 : (b: number) => number, Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_pp2 : (b: number) => number, Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) ->this.b_pp1 : number, Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_pp1 : number, Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) +>this.b_pp2 : (b: number) => number +>this : c1 +>b_pp2 : (b: number) => number +>this.b_pp1 : number +>this : c1 +>b_pp1 : number } /** setter property */ private set b_pp3(value: number) { ->b_pp3 : number, Symbol(b_pp3, Decl(commentsClassMembers.ts, 143, 5), Decl(commentsClassMembers.ts, 147, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 149, 22)) +>b_pp3 : number +>value : number this.b_pp1 = this.b_pp2(value); >this.b_pp1 = this.b_pp2(value) : number ->this.b_pp1 : number, Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_pp1 : number, Symbol(b_pp1, Decl(commentsClassMembers.ts, 137, 5)) +>this.b_pp1 : number +>this : c1 +>b_pp1 : number >this.b_pp2(value) : number ->this.b_pp2 : (b: number) => number, Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) ->this : c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_pp2 : (b: number) => number, Symbol(b_pp2, Decl(commentsClassMembers.ts, 139, 26)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 149, 22)) +>this.b_pp2 : (b: number) => number +>this : c1 +>b_pp2 : (b: number) => number +>value : number } /** s1 is static property of c1 */ static b_s1: number; ->b_s1 : number, Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) +>b_s1 : number /** static sum with property */ static b_s2(b: number) { ->b_s2 : (b: number) => number, Symbol(c1.b_s2, Decl(commentsClassMembers.ts, 154, 24)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 156, 16)) +>b_s2 : (b: number) => number +>b : number return c1.b_s1 + b; >c1.b_s1 + b : number ->c1.b_s1 : number, Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_s1 : number, Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) ->b : number, Symbol(b, Decl(commentsClassMembers.ts, 156, 16)) +>c1.b_s1 : number +>c1 : typeof c1 +>b_s1 : number +>b : number } /** static getter property */ static get b_s3() { ->b_s3 : number, Symbol(c1.b_s3, Decl(commentsClassMembers.ts, 158, 5), Decl(commentsClassMembers.ts, 163, 5)) +>b_s3 : number return c1.s2(c1.s1); >c1.s2(c1.s1) : number ->c1.s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1.s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>c1.s2 : (b: number) => number +>c1 : typeof c1 +>s2 : (b: number) => number +>c1.s1 : number +>c1 : typeof c1 +>s1 : number } /** setter property */ static set b_s3(value: number) { ->b_s3 : number, Symbol(c1.b_s3, Decl(commentsClassMembers.ts, 158, 5), Decl(commentsClassMembers.ts, 163, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 167, 20)) +>b_s3 : number +>value : number /** setter */ c1.b_s1 = c1.b_s2(value); >c1.b_s1 = c1.b_s2(value) : number ->c1.b_s1 : number, Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_s1 : number, Symbol(c1.b_s1, Decl(commentsClassMembers.ts, 151, 5)) +>c1.b_s1 : number +>c1 : typeof c1 +>b_s1 : number >c1.b_s2(value) : number ->c1.b_s2 : (b: number) => number, Symbol(c1.b_s2, Decl(commentsClassMembers.ts, 154, 24)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->b_s2 : (b: number) => number, Symbol(c1.b_s2, Decl(commentsClassMembers.ts, 154, 24)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 167, 20)) +>c1.b_s2 : (b: number) => number +>c1 : typeof c1 +>b_s2 : (b: number) => number +>value : number } } var i1 = new c1(); ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) +>i1 : c1 >new c1() : c1 ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>c1 : typeof c1 var i1_p = i1.p1; ->i1_p : number, Symbol(i1_p, Decl(commentsClassMembers.ts, 173, 3)) ->i1.p1 : number, Symbol(c1.p1, Decl(commentsClassMembers.ts, 2, 10)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->p1 : number, Symbol(c1.p1, Decl(commentsClassMembers.ts, 2, 10)) +>i1_p : number +>i1.p1 : number +>i1 : c1 +>p1 : number var i1_f = i1.p2; ->i1_f : (b: number) => number, Symbol(i1_f, Decl(commentsClassMembers.ts, 174, 3)) ->i1.p2 : (b: number) => number, Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->p2 : (b: number) => number, Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) +>i1_f : (b: number) => number +>i1.p2 : (b: number) => number +>i1 : c1 +>p2 : (b: number) => number var i1_r = i1.p2(20); ->i1_r : number, Symbol(i1_r, Decl(commentsClassMembers.ts, 175, 3)) +>i1_r : number >i1.p2(20) : number ->i1.p2 : (b: number) => number, Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->p2 : (b: number) => number, Symbol(c1.p2, Decl(commentsClassMembers.ts, 4, 22)) +>i1.p2 : (b: number) => number +>i1 : c1 +>p2 : (b: number) => number >20 : number var i1_prop = i1.p3; ->i1_prop : number, Symbol(i1_prop, Decl(commentsClassMembers.ts, 176, 3)) ->i1.p3 : number, Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->p3 : number, Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) +>i1_prop : number +>i1.p3 : number +>i1 : c1 +>p3 : number i1.p3 = i1_prop; >i1.p3 = i1_prop : number ->i1.p3 : number, Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->p3 : number, Symbol(c1.p3, Decl(commentsClassMembers.ts, 8, 5), Decl(commentsClassMembers.ts, 12, 5)) ->i1_prop : number, Symbol(i1_prop, Decl(commentsClassMembers.ts, 176, 3)) +>i1.p3 : number +>i1 : c1 +>p3 : number +>i1_prop : number var i1_nc_p = i1.nc_p1; ->i1_nc_p : number, Symbol(i1_nc_p, Decl(commentsClassMembers.ts, 178, 3)) ->i1.nc_p1 : number, Symbol(c1.nc_p1, Decl(commentsClassMembers.ts, 47, 5)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->nc_p1 : number, Symbol(c1.nc_p1, Decl(commentsClassMembers.ts, 47, 5)) +>i1_nc_p : number +>i1.nc_p1 : number +>i1 : c1 +>nc_p1 : number var i1_ncf = i1.nc_p2; ->i1_ncf : (b: number) => number, Symbol(i1_ncf, Decl(commentsClassMembers.ts, 179, 3)) ->i1.nc_p2 : (b: number) => number, Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->nc_p2 : (b: number) => number, Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>i1_ncf : (b: number) => number +>i1.nc_p2 : (b: number) => number +>i1 : c1 +>nc_p2 : (b: number) => number var i1_ncr = i1.nc_p2(20); ->i1_ncr : number, Symbol(i1_ncr, Decl(commentsClassMembers.ts, 180, 3)) +>i1_ncr : number >i1.nc_p2(20) : number ->i1.nc_p2 : (b: number) => number, Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->nc_p2 : (b: number) => number, Symbol(c1.nc_p2, Decl(commentsClassMembers.ts, 48, 25)) +>i1.nc_p2 : (b: number) => number +>i1 : c1 +>nc_p2 : (b: number) => number >20 : number var i1_ncprop = i1.nc_p3; ->i1_ncprop : number, Symbol(i1_ncprop, Decl(commentsClassMembers.ts, 181, 3)) ->i1.nc_p3 : number, Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->nc_p3 : number, Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) +>i1_ncprop : number +>i1.nc_p3 : number +>i1 : c1 +>nc_p3 : number i1.nc_p3 = i1_ncprop; >i1.nc_p3 = i1_ncprop : number ->i1.nc_p3 : number, Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) ->i1 : c1, Symbol(i1, Decl(commentsClassMembers.ts, 172, 3)) ->nc_p3 : number, Symbol(c1.nc_p3, Decl(commentsClassMembers.ts, 51, 5), Decl(commentsClassMembers.ts, 54, 5)) ->i1_ncprop : number, Symbol(i1_ncprop, Decl(commentsClassMembers.ts, 181, 3)) +>i1.nc_p3 : number +>i1 : c1 +>nc_p3 : number +>i1_ncprop : number var i1_s_p = c1.s1; ->i1_s_p : number, Symbol(i1_s_p, Decl(commentsClassMembers.ts, 183, 3)) ->c1.s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s1 : number, Symbol(c1.s1, Decl(commentsClassMembers.ts, 33, 5)) +>i1_s_p : number +>c1.s1 : number +>c1 : typeof c1 +>s1 : number var i1_s_f = c1.s2; ->i1_s_f : (b: number) => number, Symbol(i1_s_f, Decl(commentsClassMembers.ts, 184, 3)) ->c1.s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>i1_s_f : (b: number) => number +>c1.s2 : (b: number) => number +>c1 : typeof c1 +>s2 : (b: number) => number var i1_s_r = c1.s2(20); ->i1_s_r : number, Symbol(i1_s_r, Decl(commentsClassMembers.ts, 185, 3)) +>i1_s_r : number >c1.s2(20) : number ->c1.s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s2 : (b: number) => number, Symbol(c1.s2, Decl(commentsClassMembers.ts, 35, 22)) +>c1.s2 : (b: number) => number +>c1 : typeof c1 +>s2 : (b: number) => number >20 : number var i1_s_prop = c1.s3; ->i1_s_prop : number, Symbol(i1_s_prop, Decl(commentsClassMembers.ts, 186, 3)) ->c1.s3 : number, Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s3 : number, Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) +>i1_s_prop : number +>c1.s3 : number +>c1 : typeof c1 +>s3 : number c1.s3 = i1_s_prop; >c1.s3 = i1_s_prop : number ->c1.s3 : number, Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->s3 : number, Symbol(c1.s3, Decl(commentsClassMembers.ts, 39, 5), Decl(commentsClassMembers.ts, 43, 5)) ->i1_s_prop : number, Symbol(i1_s_prop, Decl(commentsClassMembers.ts, 186, 3)) +>c1.s3 : number +>c1 : typeof c1 +>s3 : number +>i1_s_prop : number var i1_s_nc_p = c1.nc_s1; ->i1_s_nc_p : number, Symbol(i1_s_nc_p, Decl(commentsClassMembers.ts, 188, 3)) ->c1.nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s1 : number, Symbol(c1.nc_s1, Decl(commentsClassMembers.ts, 67, 5)) +>i1_s_nc_p : number +>c1.nc_s1 : number +>c1 : typeof c1 +>nc_s1 : number var i1_s_ncf = c1.nc_s2; ->i1_s_ncf : (b: number) => number, Symbol(i1_s_ncf, Decl(commentsClassMembers.ts, 189, 3)) ->c1.nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>i1_s_ncf : (b: number) => number +>c1.nc_s2 : (b: number) => number +>c1 : typeof c1 +>nc_s2 : (b: number) => number var i1_s_ncr = c1.nc_s2(20); ->i1_s_ncr : number, Symbol(i1_s_ncr, Decl(commentsClassMembers.ts, 190, 3)) +>i1_s_ncr : number >c1.nc_s2(20) : number ->c1.nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s2 : (b: number) => number, Symbol(c1.nc_s2, Decl(commentsClassMembers.ts, 68, 25)) +>c1.nc_s2 : (b: number) => number +>c1 : typeof c1 +>nc_s2 : (b: number) => number >20 : number var i1_s_ncprop = c1.nc_s3; ->i1_s_ncprop : number, Symbol(i1_s_ncprop, Decl(commentsClassMembers.ts, 191, 3)) ->c1.nc_s3 : number, Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s3 : number, Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) +>i1_s_ncprop : number +>c1.nc_s3 : number +>c1 : typeof c1 +>nc_s3 : number c1.nc_s3 = i1_s_ncprop; >c1.nc_s3 = i1_s_ncprop : number ->c1.nc_s3 : number, Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) ->nc_s3 : number, Symbol(c1.nc_s3, Decl(commentsClassMembers.ts, 71, 5), Decl(commentsClassMembers.ts, 74, 5)) ->i1_s_ncprop : number, Symbol(i1_s_ncprop, Decl(commentsClassMembers.ts, 191, 3)) +>c1.nc_s3 : number +>c1 : typeof c1 +>nc_s3 : number +>i1_s_ncprop : number var i1_c = c1; ->i1_c : typeof c1, Symbol(i1_c, Decl(commentsClassMembers.ts, 193, 3)) ->c1 : typeof c1, Symbol(c1, Decl(commentsClassMembers.ts, 0, 0)) +>i1_c : typeof c1 +>c1 : typeof c1 class cProperties { ->cProperties : cProperties, Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) +>cProperties : cProperties private val: number; ->val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>val : number /** getter only property*/ public get p1() { ->p1 : number, Symbol(p1, Decl(commentsClassMembers.ts, 195, 24)) +>p1 : number return this.val; ->this.val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) ->this : cProperties, Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) ->val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>this.val : number +>this : cProperties +>val : number } // trailing comment of only getter public get nc_p1() { ->nc_p1 : number, Symbol(nc_p1, Decl(commentsClassMembers.ts, 199, 5)) +>nc_p1 : number return this.val; ->this.val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) ->this : cProperties, Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) ->val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) +>this.val : number +>this : cProperties +>val : number } /**setter only property*/ public set p2(value: number) { ->p2 : number, Symbol(p2, Decl(commentsClassMembers.ts, 202, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 204, 18)) +>p2 : number +>value : number this.val = value; >this.val = value : number ->this.val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) ->this : cProperties, Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) ->val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 204, 18)) +>this.val : number +>this : cProperties +>val : number +>value : number } public set nc_p2(value: number) { ->nc_p2 : number, Symbol(nc_p2, Decl(commentsClassMembers.ts, 206, 5)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 207, 21)) +>nc_p2 : number +>value : number this.val = value; >this.val = value : number ->this.val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) ->this : cProperties, Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) ->val : number, Symbol(val, Decl(commentsClassMembers.ts, 194, 19)) ->value : number, Symbol(value, Decl(commentsClassMembers.ts, 207, 21)) +>this.val : number +>this : cProperties +>val : number +>value : number } /* trailing comment of setter only*/ public x = 10; /*trailing comment for property*/ ->x : number, Symbol(x, Decl(commentsClassMembers.ts, 209, 5)) +>x : number >10 : number private y = 10; // trailing comment of // style ->y : number, Symbol(y, Decl(commentsClassMembers.ts, 211, 18)) +>y : number >10 : number } var cProperties_i = new cProperties(); ->cProperties_i : cProperties, Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) +>cProperties_i : cProperties >new cProperties() : cProperties ->cProperties : typeof cProperties, Symbol(cProperties, Decl(commentsClassMembers.ts, 193, 14)) +>cProperties : typeof cProperties cProperties_i.p2 = cProperties_i.p1; >cProperties_i.p2 = cProperties_i.p1 : number ->cProperties_i.p2 : number, Symbol(cProperties.p2, Decl(commentsClassMembers.ts, 202, 5)) ->cProperties_i : cProperties, Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) ->p2 : number, Symbol(cProperties.p2, Decl(commentsClassMembers.ts, 202, 5)) ->cProperties_i.p1 : number, Symbol(cProperties.p1, Decl(commentsClassMembers.ts, 195, 24)) ->cProperties_i : cProperties, Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) ->p1 : number, Symbol(cProperties.p1, Decl(commentsClassMembers.ts, 195, 24)) +>cProperties_i.p2 : number +>cProperties_i : cProperties +>p2 : number +>cProperties_i.p1 : number +>cProperties_i : cProperties +>p1 : number cProperties_i.nc_p2 = cProperties_i.nc_p1; >cProperties_i.nc_p2 = cProperties_i.nc_p1 : number ->cProperties_i.nc_p2 : number, Symbol(cProperties.nc_p2, Decl(commentsClassMembers.ts, 206, 5)) ->cProperties_i : cProperties, Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) ->nc_p2 : number, Symbol(cProperties.nc_p2, Decl(commentsClassMembers.ts, 206, 5)) ->cProperties_i.nc_p1 : number, Symbol(cProperties.nc_p1, Decl(commentsClassMembers.ts, 199, 5)) ->cProperties_i : cProperties, Symbol(cProperties_i, Decl(commentsClassMembers.ts, 214, 3)) ->nc_p1 : number, Symbol(cProperties.nc_p1, Decl(commentsClassMembers.ts, 199, 5)) +>cProperties_i.nc_p2 : number +>cProperties_i : cProperties +>nc_p2 : number +>cProperties_i.nc_p1 : number +>cProperties_i : cProperties +>nc_p1 : number diff --git a/tests/baselines/reference/commentsCommentParsing.symbols b/tests/baselines/reference/commentsCommentParsing.symbols new file mode 100644 index 0000000000000..abd98074b526b --- /dev/null +++ b/tests/baselines/reference/commentsCommentParsing.symbols @@ -0,0 +1,235 @@ +=== tests/cases/compiler/commentsCommentParsing.ts === + +/// This is simple /// comments +function simple() { +>simple : Symbol(simple, Decl(commentsCommentParsing.ts, 0, 0)) +} + +simple(); +>simple : Symbol(simple, Decl(commentsCommentParsing.ts, 0, 0)) + +/// multiLine /// Comments +/// This is example of multiline /// comments +/// Another multiLine +function multiLine() { +>multiLine : Symbol(multiLine, Decl(commentsCommentParsing.ts, 5, 9)) +} +multiLine(); +>multiLine : Symbol(multiLine, Decl(commentsCommentParsing.ts, 5, 9)) + +/** this is eg of single line jsdoc style comment */ +function jsDocSingleLine() { +>jsDocSingleLine : Symbol(jsDocSingleLine, Decl(commentsCommentParsing.ts, 12, 12)) +} +jsDocSingleLine(); +>jsDocSingleLine : Symbol(jsDocSingleLine, Decl(commentsCommentParsing.ts, 12, 12)) + + +/** this is multiple line jsdoc stule comment +*New line1 +*New Line2*/ +function jsDocMultiLine() { +>jsDocMultiLine : Symbol(jsDocMultiLine, Decl(commentsCommentParsing.ts, 17, 18)) +} +jsDocMultiLine(); +>jsDocMultiLine : Symbol(jsDocMultiLine, Decl(commentsCommentParsing.ts, 17, 18)) + +/** this is multiple line jsdoc stule comment +*New line1 +*New Line2*/ +/** Shoul mege this line as well +* and this too*/ /** Another this one too*/ +function jsDocMultiLineMerge() { +>jsDocMultiLineMerge : Symbol(jsDocMultiLineMerge, Decl(commentsCommentParsing.ts, 25, 17)) +} +jsDocMultiLineMerge(); +>jsDocMultiLineMerge : Symbol(jsDocMultiLineMerge, Decl(commentsCommentParsing.ts, 25, 17)) + + +/// Triple slash comment +/** jsdoc comment */ +function jsDocMixedComments1() { +>jsDocMixedComments1 : Symbol(jsDocMixedComments1, Decl(commentsCommentParsing.ts, 34, 22)) +} +jsDocMixedComments1(); +>jsDocMixedComments1 : Symbol(jsDocMixedComments1, Decl(commentsCommentParsing.ts, 34, 22)) + +/// Triple slash comment +/** jsdoc comment */ /*** another jsDocComment*/ +function jsDocMixedComments2() { +>jsDocMixedComments2 : Symbol(jsDocMixedComments2, Decl(commentsCommentParsing.ts, 41, 22)) +} +jsDocMixedComments2(); +>jsDocMixedComments2 : Symbol(jsDocMixedComments2, Decl(commentsCommentParsing.ts, 41, 22)) + +/** jsdoc comment */ /*** another jsDocComment*/ +/// Triple slash comment +function jsDocMixedComments3() { +>jsDocMixedComments3 : Symbol(jsDocMixedComments3, Decl(commentsCommentParsing.ts, 47, 22)) +} +jsDocMixedComments3(); +>jsDocMixedComments3 : Symbol(jsDocMixedComments3, Decl(commentsCommentParsing.ts, 47, 22)) + +/** jsdoc comment */ /*** another jsDocComment*/ +/// Triple slash comment +/// Triple slash comment 2 +function jsDocMixedComments4() { +>jsDocMixedComments4 : Symbol(jsDocMixedComments4, Decl(commentsCommentParsing.ts, 53, 22)) +} +jsDocMixedComments4(); +>jsDocMixedComments4 : Symbol(jsDocMixedComments4, Decl(commentsCommentParsing.ts, 53, 22)) + +/// Triple slash comment 1 +/** jsdoc comment */ /*** another jsDocComment*/ +/// Triple slash comment +/// Triple slash comment 2 +function jsDocMixedComments5() { +>jsDocMixedComments5 : Symbol(jsDocMixedComments5, Decl(commentsCommentParsing.ts, 60, 22)) +} +jsDocMixedComments5(); +>jsDocMixedComments5 : Symbol(jsDocMixedComments5, Decl(commentsCommentParsing.ts, 60, 22)) + +/*** another jsDocComment*/ +/// Triple slash comment 1 +/// Triple slash comment +/// Triple slash comment 2 +/** jsdoc comment */ +function jsDocMixedComments6() { +>jsDocMixedComments6 : Symbol(jsDocMixedComments6, Decl(commentsCommentParsing.ts, 68, 22)) +} +jsDocMixedComments6(); +>jsDocMixedComments6 : Symbol(jsDocMixedComments6, Decl(commentsCommentParsing.ts, 68, 22)) + +// This shoulnot be help comment +function noHelpComment1() { +>noHelpComment1 : Symbol(noHelpComment1, Decl(commentsCommentParsing.ts, 77, 22)) +} +noHelpComment1(); +>noHelpComment1 : Symbol(noHelpComment1, Decl(commentsCommentParsing.ts, 77, 22)) + +/* This shoulnot be help comment */ +function noHelpComment2() { +>noHelpComment2 : Symbol(noHelpComment2, Decl(commentsCommentParsing.ts, 82, 17)) +} +noHelpComment2(); +>noHelpComment2 : Symbol(noHelpComment2, Decl(commentsCommentParsing.ts, 82, 17)) + +function noHelpComment3() { +>noHelpComment3 : Symbol(noHelpComment3, Decl(commentsCommentParsing.ts, 87, 17)) +} +noHelpComment3(); +>noHelpComment3 : Symbol(noHelpComment3, Decl(commentsCommentParsing.ts, 87, 17)) + +/** Adds two integers and returns the result + * @param {number} a first number + * @param b second number + */ +function sum(a: number, b: number) { +>sum : Symbol(sum, Decl(commentsCommentParsing.ts, 91, 17)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 96, 13)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 96, 23)) + + return a + b; +>a : Symbol(a, Decl(commentsCommentParsing.ts, 96, 13)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 96, 23)) +} +sum(10, 20); +>sum : Symbol(sum, Decl(commentsCommentParsing.ts, 91, 17)) + +/** This is multiplication function*/ +/** @param */ +/** @param a first number*/ +/** @param b */ +/** @param c { + @param d @anotherTag*/ +/** @param e LastParam @anotherTag*/ +function multiply(a: number, b: number, c?: number, d?, e?) { +>multiply : Symbol(multiply, Decl(commentsCommentParsing.ts, 99, 12)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 107, 18)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 107, 28)) +>c : Symbol(c, Decl(commentsCommentParsing.ts, 107, 39)) +>d : Symbol(d, Decl(commentsCommentParsing.ts, 107, 51)) +>e : Symbol(e, Decl(commentsCommentParsing.ts, 107, 55)) +} +/** fn f1 with number +* @param { string} b about b +*/ +function f1(a: number); +>f1 : Symbol(f1, Decl(commentsCommentParsing.ts, 108, 1), Decl(commentsCommentParsing.ts, 112, 23), Decl(commentsCommentParsing.ts, 113, 23)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 112, 12)) + +function f1(b: string); +>f1 : Symbol(f1, Decl(commentsCommentParsing.ts, 108, 1), Decl(commentsCommentParsing.ts, 112, 23), Decl(commentsCommentParsing.ts, 113, 23)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 113, 12)) + +/**@param opt optional parameter*/ +function f1(aOrb, opt?) { +>f1 : Symbol(f1, Decl(commentsCommentParsing.ts, 108, 1), Decl(commentsCommentParsing.ts, 112, 23), Decl(commentsCommentParsing.ts, 113, 23)) +>aOrb : Symbol(aOrb, Decl(commentsCommentParsing.ts, 115, 12)) +>opt : Symbol(opt, Decl(commentsCommentParsing.ts, 115, 17)) + + return aOrb; +>aOrb : Symbol(aOrb, Decl(commentsCommentParsing.ts, 115, 12)) +} +/** This is subtract function +@param { a +*@param { number | } b this is about b +@param { { () => string; } } c this is optional param c +@param { { () => string; } d this is optional param d +@param { { () => string; } } e this is optional param e +@param { { { () => string; } } f this is optional param f +*/ +function subtract(a: number, b: number, c?: () => string, d?: () => string, e?: () => string, f?: () => string) { +>subtract : Symbol(subtract, Decl(commentsCommentParsing.ts, 117, 1)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 126, 18)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 126, 28)) +>c : Symbol(c, Decl(commentsCommentParsing.ts, 126, 39)) +>d : Symbol(d, Decl(commentsCommentParsing.ts, 126, 57)) +>e : Symbol(e, Decl(commentsCommentParsing.ts, 126, 75)) +>f : Symbol(f, Decl(commentsCommentParsing.ts, 126, 93)) +} +/** this is square function +@paramTag { number } a this is input number of paramTag +@param { number } a this is input number +@returnType { number } it is return type +*/ +function square(a: number) { +>square : Symbol(square, Decl(commentsCommentParsing.ts, 127, 1)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 133, 16)) + + return a * a; +>a : Symbol(a, Decl(commentsCommentParsing.ts, 133, 16)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 133, 16)) +} +/** this is divide function +@param { number} a this is a +@paramTag { number } g this is optional param g +@param { number} b this is b +*/ +function divide(a: number, b: number) { +>divide : Symbol(divide, Decl(commentsCommentParsing.ts, 135, 1)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 141, 16)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 141, 26)) +} +/** this is jsdoc style function with param tag as well as inline parameter help +*@param a it is first parameter +*@param c it is third parameter +*/ +function jsDocParamTest(/** this is inline comment for a */a: number, /** this is inline comment for b*/ b: number, c: number, d: number) { +>jsDocParamTest : Symbol(jsDocParamTest, Decl(commentsCommentParsing.ts, 142, 1)) +>a : Symbol(a, Decl(commentsCommentParsing.ts, 147, 24)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 147, 69)) +>c : Symbol(c, Decl(commentsCommentParsing.ts, 147, 115)) +>d : Symbol(d, Decl(commentsCommentParsing.ts, 147, 126)) + + return a + b + c + d; +>a : Symbol(a, Decl(commentsCommentParsing.ts, 147, 24)) +>b : Symbol(b, Decl(commentsCommentParsing.ts, 147, 69)) +>c : Symbol(c, Decl(commentsCommentParsing.ts, 147, 115)) +>d : Symbol(d, Decl(commentsCommentParsing.ts, 147, 126)) +} + +/**/ +class NoQuickInfoClass { +>NoQuickInfoClass : Symbol(NoQuickInfoClass, Decl(commentsCommentParsing.ts, 149, 1)) +} diff --git a/tests/baselines/reference/commentsCommentParsing.types b/tests/baselines/reference/commentsCommentParsing.types index 9fc3f363a6102..a6e24609642f0 100644 --- a/tests/baselines/reference/commentsCommentParsing.types +++ b/tests/baselines/reference/commentsCommentParsing.types @@ -2,41 +2,41 @@ /// This is simple /// comments function simple() { ->simple : () => void, Symbol(simple, Decl(commentsCommentParsing.ts, 0, 0)) +>simple : () => void } simple(); >simple() : void ->simple : () => void, Symbol(simple, Decl(commentsCommentParsing.ts, 0, 0)) +>simple : () => void /// multiLine /// Comments /// This is example of multiline /// comments /// Another multiLine function multiLine() { ->multiLine : () => void, Symbol(multiLine, Decl(commentsCommentParsing.ts, 5, 9)) +>multiLine : () => void } multiLine(); >multiLine() : void ->multiLine : () => void, Symbol(multiLine, Decl(commentsCommentParsing.ts, 5, 9)) +>multiLine : () => void /** this is eg of single line jsdoc style comment */ function jsDocSingleLine() { ->jsDocSingleLine : () => void, Symbol(jsDocSingleLine, Decl(commentsCommentParsing.ts, 12, 12)) +>jsDocSingleLine : () => void } jsDocSingleLine(); >jsDocSingleLine() : void ->jsDocSingleLine : () => void, Symbol(jsDocSingleLine, Decl(commentsCommentParsing.ts, 12, 12)) +>jsDocSingleLine : () => void /** this is multiple line jsdoc stule comment *New line1 *New Line2*/ function jsDocMultiLine() { ->jsDocMultiLine : () => void, Symbol(jsDocMultiLine, Decl(commentsCommentParsing.ts, 17, 18)) +>jsDocMultiLine : () => void } jsDocMultiLine(); >jsDocMultiLine() : void ->jsDocMultiLine : () => void, Symbol(jsDocMultiLine, Decl(commentsCommentParsing.ts, 17, 18)) +>jsDocMultiLine : () => void /** this is multiple line jsdoc stule comment *New line1 @@ -44,60 +44,60 @@ jsDocMultiLine(); /** Shoul mege this line as well * and this too*/ /** Another this one too*/ function jsDocMultiLineMerge() { ->jsDocMultiLineMerge : () => void, Symbol(jsDocMultiLineMerge, Decl(commentsCommentParsing.ts, 25, 17)) +>jsDocMultiLineMerge : () => void } jsDocMultiLineMerge(); >jsDocMultiLineMerge() : void ->jsDocMultiLineMerge : () => void, Symbol(jsDocMultiLineMerge, Decl(commentsCommentParsing.ts, 25, 17)) +>jsDocMultiLineMerge : () => void /// Triple slash comment /** jsdoc comment */ function jsDocMixedComments1() { ->jsDocMixedComments1 : () => void, Symbol(jsDocMixedComments1, Decl(commentsCommentParsing.ts, 34, 22)) +>jsDocMixedComments1 : () => void } jsDocMixedComments1(); >jsDocMixedComments1() : void ->jsDocMixedComments1 : () => void, Symbol(jsDocMixedComments1, Decl(commentsCommentParsing.ts, 34, 22)) +>jsDocMixedComments1 : () => void /// Triple slash comment /** jsdoc comment */ /*** another jsDocComment*/ function jsDocMixedComments2() { ->jsDocMixedComments2 : () => void, Symbol(jsDocMixedComments2, Decl(commentsCommentParsing.ts, 41, 22)) +>jsDocMixedComments2 : () => void } jsDocMixedComments2(); >jsDocMixedComments2() : void ->jsDocMixedComments2 : () => void, Symbol(jsDocMixedComments2, Decl(commentsCommentParsing.ts, 41, 22)) +>jsDocMixedComments2 : () => void /** jsdoc comment */ /*** another jsDocComment*/ /// Triple slash comment function jsDocMixedComments3() { ->jsDocMixedComments3 : () => void, Symbol(jsDocMixedComments3, Decl(commentsCommentParsing.ts, 47, 22)) +>jsDocMixedComments3 : () => void } jsDocMixedComments3(); >jsDocMixedComments3() : void ->jsDocMixedComments3 : () => void, Symbol(jsDocMixedComments3, Decl(commentsCommentParsing.ts, 47, 22)) +>jsDocMixedComments3 : () => void /** jsdoc comment */ /*** another jsDocComment*/ /// Triple slash comment /// Triple slash comment 2 function jsDocMixedComments4() { ->jsDocMixedComments4 : () => void, Symbol(jsDocMixedComments4, Decl(commentsCommentParsing.ts, 53, 22)) +>jsDocMixedComments4 : () => void } jsDocMixedComments4(); >jsDocMixedComments4() : void ->jsDocMixedComments4 : () => void, Symbol(jsDocMixedComments4, Decl(commentsCommentParsing.ts, 53, 22)) +>jsDocMixedComments4 : () => void /// Triple slash comment 1 /** jsdoc comment */ /*** another jsDocComment*/ /// Triple slash comment /// Triple slash comment 2 function jsDocMixedComments5() { ->jsDocMixedComments5 : () => void, Symbol(jsDocMixedComments5, Decl(commentsCommentParsing.ts, 60, 22)) +>jsDocMixedComments5 : () => void } jsDocMixedComments5(); >jsDocMixedComments5() : void ->jsDocMixedComments5 : () => void, Symbol(jsDocMixedComments5, Decl(commentsCommentParsing.ts, 60, 22)) +>jsDocMixedComments5 : () => void /*** another jsDocComment*/ /// Triple slash comment 1 @@ -105,52 +105,52 @@ jsDocMixedComments5(); /// Triple slash comment 2 /** jsdoc comment */ function jsDocMixedComments6() { ->jsDocMixedComments6 : () => void, Symbol(jsDocMixedComments6, Decl(commentsCommentParsing.ts, 68, 22)) +>jsDocMixedComments6 : () => void } jsDocMixedComments6(); >jsDocMixedComments6() : void ->jsDocMixedComments6 : () => void, Symbol(jsDocMixedComments6, Decl(commentsCommentParsing.ts, 68, 22)) +>jsDocMixedComments6 : () => void // This shoulnot be help comment function noHelpComment1() { ->noHelpComment1 : () => void, Symbol(noHelpComment1, Decl(commentsCommentParsing.ts, 77, 22)) +>noHelpComment1 : () => void } noHelpComment1(); >noHelpComment1() : void ->noHelpComment1 : () => void, Symbol(noHelpComment1, Decl(commentsCommentParsing.ts, 77, 22)) +>noHelpComment1 : () => void /* This shoulnot be help comment */ function noHelpComment2() { ->noHelpComment2 : () => void, Symbol(noHelpComment2, Decl(commentsCommentParsing.ts, 82, 17)) +>noHelpComment2 : () => void } noHelpComment2(); >noHelpComment2() : void ->noHelpComment2 : () => void, Symbol(noHelpComment2, Decl(commentsCommentParsing.ts, 82, 17)) +>noHelpComment2 : () => void function noHelpComment3() { ->noHelpComment3 : () => void, Symbol(noHelpComment3, Decl(commentsCommentParsing.ts, 87, 17)) +>noHelpComment3 : () => void } noHelpComment3(); >noHelpComment3() : void ->noHelpComment3 : () => void, Symbol(noHelpComment3, Decl(commentsCommentParsing.ts, 87, 17)) +>noHelpComment3 : () => void /** Adds two integers and returns the result * @param {number} a first number * @param b second number */ function sum(a: number, b: number) { ->sum : (a: number, b: number) => number, Symbol(sum, Decl(commentsCommentParsing.ts, 91, 17)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 96, 13)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 96, 23)) +>sum : (a: number, b: number) => number +>a : number +>b : number return a + b; >a + b : number ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 96, 13)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 96, 23)) +>a : number +>b : number } sum(10, 20); >sum(10, 20) : number ->sum : (a: number, b: number) => number, Symbol(sum, Decl(commentsCommentParsing.ts, 91, 17)) +>sum : (a: number, b: number) => number >10 : number >20 : number @@ -162,32 +162,32 @@ sum(10, 20); @param d @anotherTag*/ /** @param e LastParam @anotherTag*/ function multiply(a: number, b: number, c?: number, d?, e?) { ->multiply : (a: number, b: number, c?: number, d?: any, e?: any) => void, Symbol(multiply, Decl(commentsCommentParsing.ts, 99, 12)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 107, 18)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 107, 28)) ->c : number, Symbol(c, Decl(commentsCommentParsing.ts, 107, 39)) ->d : any, Symbol(d, Decl(commentsCommentParsing.ts, 107, 51)) ->e : any, Symbol(e, Decl(commentsCommentParsing.ts, 107, 55)) +>multiply : (a: number, b: number, c?: number, d?: any, e?: any) => void +>a : number +>b : number +>c : number +>d : any +>e : any } /** fn f1 with number * @param { string} b about b */ function f1(a: number); ->f1 : { (a: number): any; (b: string): any; }, Symbol(f1, Decl(commentsCommentParsing.ts, 108, 1), Decl(commentsCommentParsing.ts, 112, 23), Decl(commentsCommentParsing.ts, 113, 23)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 112, 12)) +>f1 : { (a: number): any; (b: string): any; } +>a : number function f1(b: string); ->f1 : { (a: number): any; (b: string): any; }, Symbol(f1, Decl(commentsCommentParsing.ts, 108, 1), Decl(commentsCommentParsing.ts, 112, 23), Decl(commentsCommentParsing.ts, 113, 23)) ->b : string, Symbol(b, Decl(commentsCommentParsing.ts, 113, 12)) +>f1 : { (a: number): any; (b: string): any; } +>b : string /**@param opt optional parameter*/ function f1(aOrb, opt?) { ->f1 : { (a: number): any; (b: string): any; }, Symbol(f1, Decl(commentsCommentParsing.ts, 108, 1), Decl(commentsCommentParsing.ts, 112, 23), Decl(commentsCommentParsing.ts, 113, 23)) ->aOrb : any, Symbol(aOrb, Decl(commentsCommentParsing.ts, 115, 12)) ->opt : any, Symbol(opt, Decl(commentsCommentParsing.ts, 115, 17)) +>f1 : { (a: number): any; (b: string): any; } +>aOrb : any +>opt : any return aOrb; ->aOrb : any, Symbol(aOrb, Decl(commentsCommentParsing.ts, 115, 12)) +>aOrb : any } /** This is subtract function @param { a @@ -198,13 +198,13 @@ function f1(aOrb, opt?) { @param { { { () => string; } } f this is optional param f */ function subtract(a: number, b: number, c?: () => string, d?: () => string, e?: () => string, f?: () => string) { ->subtract : (a: number, b: number, c?: () => string, d?: () => string, e?: () => string, f?: () => string) => void, Symbol(subtract, Decl(commentsCommentParsing.ts, 117, 1)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 126, 18)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 126, 28)) ->c : () => string, Symbol(c, Decl(commentsCommentParsing.ts, 126, 39)) ->d : () => string, Symbol(d, Decl(commentsCommentParsing.ts, 126, 57)) ->e : () => string, Symbol(e, Decl(commentsCommentParsing.ts, 126, 75)) ->f : () => string, Symbol(f, Decl(commentsCommentParsing.ts, 126, 93)) +>subtract : (a: number, b: number, c?: () => string, d?: () => string, e?: () => string, f?: () => string) => void +>a : number +>b : number +>c : () => string +>d : () => string +>e : () => string +>f : () => string } /** this is square function @paramTag { number } a this is input number of paramTag @@ -212,13 +212,13 @@ function subtract(a: number, b: number, c?: () => string, d?: () => string, e?: @returnType { number } it is return type */ function square(a: number) { ->square : (a: number) => number, Symbol(square, Decl(commentsCommentParsing.ts, 127, 1)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 133, 16)) +>square : (a: number) => number +>a : number return a * a; >a * a : number ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 133, 16)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 133, 16)) +>a : number +>a : number } /** this is divide function @param { number} a this is a @@ -226,32 +226,32 @@ function square(a: number) { @param { number} b this is b */ function divide(a: number, b: number) { ->divide : (a: number, b: number) => void, Symbol(divide, Decl(commentsCommentParsing.ts, 135, 1)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 141, 16)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 141, 26)) +>divide : (a: number, b: number) => void +>a : number +>b : number } /** this is jsdoc style function with param tag as well as inline parameter help *@param a it is first parameter *@param c it is third parameter */ function jsDocParamTest(/** this is inline comment for a */a: number, /** this is inline comment for b*/ b: number, c: number, d: number) { ->jsDocParamTest : (a: number, b: number, c: number, d: number) => number, Symbol(jsDocParamTest, Decl(commentsCommentParsing.ts, 142, 1)) ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 147, 24)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 147, 69)) ->c : number, Symbol(c, Decl(commentsCommentParsing.ts, 147, 115)) ->d : number, Symbol(d, Decl(commentsCommentParsing.ts, 147, 126)) +>jsDocParamTest : (a: number, b: number, c: number, d: number) => number +>a : number +>b : number +>c : number +>d : number return a + b + c + d; >a + b + c + d : number >a + b + c : number >a + b : number ->a : number, Symbol(a, Decl(commentsCommentParsing.ts, 147, 24)) ->b : number, Symbol(b, Decl(commentsCommentParsing.ts, 147, 69)) ->c : number, Symbol(c, Decl(commentsCommentParsing.ts, 147, 115)) ->d : number, Symbol(d, Decl(commentsCommentParsing.ts, 147, 126)) +>a : number +>b : number +>c : number +>d : number } /**/ class NoQuickInfoClass { ->NoQuickInfoClass : NoQuickInfoClass, Symbol(NoQuickInfoClass, Decl(commentsCommentParsing.ts, 149, 1)) +>NoQuickInfoClass : NoQuickInfoClass } diff --git a/tests/baselines/reference/commentsDottedModuleName.symbols b/tests/baselines/reference/commentsDottedModuleName.symbols new file mode 100644 index 0000000000000..99083b11e3c2a --- /dev/null +++ b/tests/baselines/reference/commentsDottedModuleName.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/commentsDottedModuleName.ts === + +/** this is multi declare module*/ +export module outerModule.InnerModule { +>outerModule : Symbol(outerModule, Decl(commentsDottedModuleName.ts, 0, 0)) +>InnerModule : Symbol(InnerModule, Decl(commentsDottedModuleName.ts, 2, 26)) + + /// class b comment + export class b { +>b : Symbol(b, Decl(commentsDottedModuleName.ts, 2, 39)) + } +} diff --git a/tests/baselines/reference/commentsDottedModuleName.types b/tests/baselines/reference/commentsDottedModuleName.types index e2d6713e8d5c4..53195bfccfa4c 100644 --- a/tests/baselines/reference/commentsDottedModuleName.types +++ b/tests/baselines/reference/commentsDottedModuleName.types @@ -2,11 +2,11 @@ /** this is multi declare module*/ export module outerModule.InnerModule { ->outerModule : typeof outerModule, Symbol(outerModule, Decl(commentsDottedModuleName.ts, 0, 0)) ->InnerModule : typeof InnerModule, Symbol(InnerModule, Decl(commentsDottedModuleName.ts, 2, 26)) +>outerModule : typeof outerModule +>InnerModule : typeof InnerModule /// class b comment export class b { ->b : b, Symbol(b, Decl(commentsDottedModuleName.ts, 2, 39)) +>b : b } } diff --git a/tests/baselines/reference/commentsEnums.symbols b/tests/baselines/reference/commentsEnums.symbols new file mode 100644 index 0000000000000..0f5910f4ee799 --- /dev/null +++ b/tests/baselines/reference/commentsEnums.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/commentsEnums.ts === + +/** Enum of colors*/ +enum Colors { +>Colors : Symbol(Colors, Decl(commentsEnums.ts, 0, 0)) + + /** Fancy name for 'blue'*/ + Cornflower /* blue */, +>Cornflower : Symbol(Colors.Cornflower, Decl(commentsEnums.ts, 2, 13)) + + /** Fancy name for 'pink'*/ + FancyPink +>FancyPink : Symbol(Colors.FancyPink, Decl(commentsEnums.ts, 4, 26)) + +} // trailing comment +var x = Colors.Cornflower; +>x : Symbol(x, Decl(commentsEnums.ts, 8, 3)) +>Colors.Cornflower : Symbol(Colors.Cornflower, Decl(commentsEnums.ts, 2, 13)) +>Colors : Symbol(Colors, Decl(commentsEnums.ts, 0, 0)) +>Cornflower : Symbol(Colors.Cornflower, Decl(commentsEnums.ts, 2, 13)) + +x = Colors.FancyPink; +>x : Symbol(x, Decl(commentsEnums.ts, 8, 3)) +>Colors.FancyPink : Symbol(Colors.FancyPink, Decl(commentsEnums.ts, 4, 26)) +>Colors : Symbol(Colors, Decl(commentsEnums.ts, 0, 0)) +>FancyPink : Symbol(Colors.FancyPink, Decl(commentsEnums.ts, 4, 26)) + + diff --git a/tests/baselines/reference/commentsEnums.types b/tests/baselines/reference/commentsEnums.types index d1f4c8d795d79..64404bff2e53c 100644 --- a/tests/baselines/reference/commentsEnums.types +++ b/tests/baselines/reference/commentsEnums.types @@ -2,28 +2,28 @@ /** Enum of colors*/ enum Colors { ->Colors : Colors, Symbol(Colors, Decl(commentsEnums.ts, 0, 0)) +>Colors : Colors /** Fancy name for 'blue'*/ Cornflower /* blue */, ->Cornflower : Colors, Symbol(Colors.Cornflower, Decl(commentsEnums.ts, 2, 13)) +>Cornflower : Colors /** Fancy name for 'pink'*/ FancyPink ->FancyPink : Colors, Symbol(Colors.FancyPink, Decl(commentsEnums.ts, 4, 26)) +>FancyPink : Colors } // trailing comment var x = Colors.Cornflower; ->x : Colors, Symbol(x, Decl(commentsEnums.ts, 8, 3)) ->Colors.Cornflower : Colors, Symbol(Colors.Cornflower, Decl(commentsEnums.ts, 2, 13)) ->Colors : typeof Colors, Symbol(Colors, Decl(commentsEnums.ts, 0, 0)) ->Cornflower : Colors, Symbol(Colors.Cornflower, Decl(commentsEnums.ts, 2, 13)) +>x : Colors +>Colors.Cornflower : Colors +>Colors : typeof Colors +>Cornflower : Colors x = Colors.FancyPink; >x = Colors.FancyPink : Colors ->x : Colors, Symbol(x, Decl(commentsEnums.ts, 8, 3)) ->Colors.FancyPink : Colors, Symbol(Colors.FancyPink, Decl(commentsEnums.ts, 4, 26)) ->Colors : typeof Colors, Symbol(Colors, Decl(commentsEnums.ts, 0, 0)) ->FancyPink : Colors, Symbol(Colors.FancyPink, Decl(commentsEnums.ts, 4, 26)) +>x : Colors +>Colors.FancyPink : Colors +>Colors : typeof Colors +>FancyPink : Colors diff --git a/tests/baselines/reference/commentsExternalModules.symbols b/tests/baselines/reference/commentsExternalModules.symbols new file mode 100644 index 0000000000000..6f7852245dd5c --- /dev/null +++ b/tests/baselines/reference/commentsExternalModules.symbols @@ -0,0 +1,143 @@ +=== tests/cases/compiler/commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules_0"); // trailing comment1 +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m1.fooExport(); +>extMod.m1.fooExport : Symbol(extMod.m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) +>extMod.m1 : Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m1 : Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>fooExport : Symbol(extMod.m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) + +var newVar = new extMod.m1.m2.c(); +>newVar : Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 3)) +>extMod.m1.m2.c : Symbol(extMod.m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) +>extMod.m1.m2 : Symbol(extMod.m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) +>extMod.m1 : Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m1 : Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>m2 : Symbol(extMod.m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) +>c : Symbol(extMod.m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) + +extMod.m4.fooExport(); +>extMod.m4.fooExport : Symbol(extMod.m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) +>extMod.m4 : Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m4 : Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>fooExport : Symbol(extMod.m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) + +var newVar2 = new extMod.m4.m2.c(); +>newVar2 : Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 3)) +>extMod.m4.m2.c : Symbol(extMod.m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) +>extMod.m4.m2 : Symbol(extMod.m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) +>extMod.m4 : Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m4 : Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>m2 : Symbol(extMod.m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) +>c : Symbol(extMod.m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) + +=== tests/cases/compiler/commentsExternalModules_0.ts === + +/** Module comment*/ +export module m1 { +>m1 : Symbol(m1, Decl(commentsExternalModules_0.ts, 0, 0)) + + /** b's comment*/ + export var b: number; +>b : Symbol(b, Decl(commentsExternalModules_0.ts, 4, 14)) + + /** foo's comment*/ + function foo() { +>foo : Symbol(foo, Decl(commentsExternalModules_0.ts, 4, 25)) + + return b; +>b : Symbol(b, Decl(commentsExternalModules_0.ts, 4, 14)) + } + /** m2 comments*/ + export module m2 { +>m2 : Symbol(m2, Decl(commentsExternalModules_0.ts, 8, 5)) + + /** class comment;*/ + export class c { +>c : Symbol(c, Decl(commentsExternalModules_0.ts, 10, 22)) + + }; + /** i*/ + export var i = new c(); +>i : Symbol(i, Decl(commentsExternalModules_0.ts, 15, 18)) +>c : Symbol(c, Decl(commentsExternalModules_0.ts, 10, 22)) + } + /** exported function*/ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsExternalModules_0.ts, 4, 25)) + } +} +m1.fooExport(); +>m1.fooExport : Symbol(m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) +>m1 : Symbol(m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>fooExport : Symbol(m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) + +var myvar = new m1.m2.c(); +>myvar : Symbol(myvar, Decl(commentsExternalModules_0.ts, 23, 3)) +>m1.m2.c : Symbol(m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) +>m1.m2 : Symbol(m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) +>m1 : Symbol(m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>m2 : Symbol(m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) +>c : Symbol(m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) + +/** Module comment */ +export module m4 { +>m4 : Symbol(m4, Decl(commentsExternalModules_0.ts, 23, 26)) + + /** b's comment */ + export var b: number; +>b : Symbol(b, Decl(commentsExternalModules_0.ts, 28, 14)) + + /** foo's comment + */ + function foo() { +>foo : Symbol(foo, Decl(commentsExternalModules_0.ts, 28, 25)) + + return b; +>b : Symbol(b, Decl(commentsExternalModules_0.ts, 28, 14)) + } + /** m2 comments + */ + export module m2 { +>m2 : Symbol(m2, Decl(commentsExternalModules_0.ts, 33, 5)) + + /** class comment; */ + export class c { +>c : Symbol(c, Decl(commentsExternalModules_0.ts, 36, 22)) + + }; + /** i */ + export var i = new c(); +>i : Symbol(i, Decl(commentsExternalModules_0.ts, 41, 18)) +>c : Symbol(c, Decl(commentsExternalModules_0.ts, 36, 22)) + } + /** exported function */ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsExternalModules_0.ts, 28, 25)) + } +} +m4.fooExport(); +>m4.fooExport : Symbol(m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) +>m4 : Symbol(m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>fooExport : Symbol(m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) + +var myvar2 = new m4.m2.c(); +>myvar2 : Symbol(myvar2, Decl(commentsExternalModules_0.ts, 49, 3)) +>m4.m2.c : Symbol(m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) +>m4.m2 : Symbol(m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) +>m4 : Symbol(m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>m2 : Symbol(m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) +>c : Symbol(m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) + diff --git a/tests/baselines/reference/commentsExternalModules.types b/tests/baselines/reference/commentsExternalModules.types index f5b55de00037f..56b6b338f4d5d 100644 --- a/tests/baselines/reference/commentsExternalModules.types +++ b/tests/baselines/reference/commentsExternalModules.types @@ -1,155 +1,155 @@ === tests/cases/compiler/commentsExternalModules_1.ts === /**This is on import declaration*/ import extMod = require("commentsExternalModules_0"); // trailing comment1 ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>extMod : typeof extMod extMod.m1.fooExport(); >extMod.m1.fooExport() : number ->extMod.m1.fooExport : () => number, Symbol(extMod.m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) ->extMod.m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) ->fooExport : () => number, Symbol(extMod.m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) +>extMod.m1.fooExport : () => number +>extMod.m1 : typeof extMod.m1 +>extMod : typeof extMod +>m1 : typeof extMod.m1 +>fooExport : () => number var newVar = new extMod.m1.m2.c(); ->newVar : extMod.m1.m2.c, Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 3)) +>newVar : extMod.m1.m2.c >new extMod.m1.m2.c() : extMod.m1.m2.c ->extMod.m1.m2.c : typeof extMod.m1.m2.c, Symbol(extMod.m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) ->extMod.m1.m2 : typeof extMod.m1.m2, Symbol(extMod.m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) ->extMod.m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules_0.ts, 0, 0)) ->m2 : typeof extMod.m1.m2, Symbol(extMod.m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) ->c : typeof extMod.m1.m2.c, Symbol(extMod.m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) +>extMod.m1.m2.c : typeof extMod.m1.m2.c +>extMod.m1.m2 : typeof extMod.m1.m2 +>extMod.m1 : typeof extMod.m1 +>extMod : typeof extMod +>m1 : typeof extMod.m1 +>m2 : typeof extMod.m1.m2 +>c : typeof extMod.m1.m2.c extMod.m4.fooExport(); >extMod.m4.fooExport() : number ->extMod.m4.fooExport : () => number, Symbol(extMod.m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) ->extMod.m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) ->fooExport : () => number, Symbol(extMod.m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) +>extMod.m4.fooExport : () => number +>extMod.m4 : typeof extMod.m4 +>extMod : typeof extMod +>m4 : typeof extMod.m4 +>fooExport : () => number var newVar2 = new extMod.m4.m2.c(); ->newVar2 : extMod.m4.m2.c, Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 3)) +>newVar2 : extMod.m4.m2.c >new extMod.m4.m2.c() : extMod.m4.m2.c ->extMod.m4.m2.c : typeof extMod.m4.m2.c, Symbol(extMod.m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) ->extMod.m4.m2 : typeof extMod.m4.m2, Symbol(extMod.m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) ->extMod.m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules_0.ts, 23, 26)) ->m2 : typeof extMod.m4.m2, Symbol(extMod.m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) ->c : typeof extMod.m4.m2.c, Symbol(extMod.m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) +>extMod.m4.m2.c : typeof extMod.m4.m2.c +>extMod.m4.m2 : typeof extMod.m4.m2 +>extMod.m4 : typeof extMod.m4 +>extMod : typeof extMod +>m4 : typeof extMod.m4 +>m2 : typeof extMod.m4.m2 +>c : typeof extMod.m4.m2.c === tests/cases/compiler/commentsExternalModules_0.ts === /** Module comment*/ export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules_0.ts, 0, 0)) +>m1 : typeof m1 /** b's comment*/ export var b: number; ->b : number, Symbol(b, Decl(commentsExternalModules_0.ts, 4, 14)) +>b : number /** foo's comment*/ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsExternalModules_0.ts, 4, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsExternalModules_0.ts, 4, 14)) +>b : number } /** m2 comments*/ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsExternalModules_0.ts, 8, 5)) +>m2 : typeof m2 /** class comment;*/ export class c { ->c : c, Symbol(c, Decl(commentsExternalModules_0.ts, 10, 22)) +>c : c }; /** i*/ export var i = new c(); ->i : c, Symbol(i, Decl(commentsExternalModules_0.ts, 15, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsExternalModules_0.ts, 10, 22)) +>c : typeof c } /** exported function*/ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsExternalModules_0.ts, 4, 25)) +>foo : () => number } } m1.fooExport(); >m1.fooExport() : number ->m1.fooExport : () => number, Symbol(m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules_0.ts, 0, 0)) ->fooExport : () => number, Symbol(m1.fooExport, Decl(commentsExternalModules_0.ts, 16, 5)) +>m1.fooExport : () => number +>m1 : typeof m1 +>fooExport : () => number var myvar = new m1.m2.c(); ->myvar : m1.m2.c, Symbol(myvar, Decl(commentsExternalModules_0.ts, 23, 3)) +>myvar : m1.m2.c >new m1.m2.c() : m1.m2.c ->m1.m2.c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) ->m1.m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules_0.ts, 0, 0)) ->m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsExternalModules_0.ts, 8, 5)) ->c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsExternalModules_0.ts, 10, 22)) +>m1.m2.c : typeof m1.m2.c +>m1.m2 : typeof m1.m2 +>m1 : typeof m1 +>m2 : typeof m1.m2 +>c : typeof m1.m2.c /** Module comment */ export module m4 { ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules_0.ts, 23, 26)) +>m4 : typeof m4 /** b's comment */ export var b: number; ->b : number, Symbol(b, Decl(commentsExternalModules_0.ts, 28, 14)) +>b : number /** foo's comment */ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsExternalModules_0.ts, 28, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsExternalModules_0.ts, 28, 14)) +>b : number } /** m2 comments */ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsExternalModules_0.ts, 33, 5)) +>m2 : typeof m2 /** class comment; */ export class c { ->c : c, Symbol(c, Decl(commentsExternalModules_0.ts, 36, 22)) +>c : c }; /** i */ export var i = new c(); ->i : c, Symbol(i, Decl(commentsExternalModules_0.ts, 41, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsExternalModules_0.ts, 36, 22)) +>c : typeof c } /** exported function */ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsExternalModules_0.ts, 28, 25)) +>foo : () => number } } m4.fooExport(); >m4.fooExport() : number ->m4.fooExport : () => number, Symbol(m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules_0.ts, 23, 26)) ->fooExport : () => number, Symbol(m4.fooExport, Decl(commentsExternalModules_0.ts, 42, 5)) +>m4.fooExport : () => number +>m4 : typeof m4 +>fooExport : () => number var myvar2 = new m4.m2.c(); ->myvar2 : m4.m2.c, Symbol(myvar2, Decl(commentsExternalModules_0.ts, 49, 3)) +>myvar2 : m4.m2.c >new m4.m2.c() : m4.m2.c ->m4.m2.c : typeof m4.m2.c, Symbol(m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) ->m4.m2 : typeof m4.m2, Symbol(m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules_0.ts, 23, 26)) ->m2 : typeof m4.m2, Symbol(m4.m2, Decl(commentsExternalModules_0.ts, 33, 5)) ->c : typeof m4.m2.c, Symbol(m4.m2.c, Decl(commentsExternalModules_0.ts, 36, 22)) +>m4.m2.c : typeof m4.m2.c +>m4.m2 : typeof m4.m2 +>m4 : typeof m4 +>m2 : typeof m4.m2 +>c : typeof m4.m2.c diff --git a/tests/baselines/reference/commentsExternalModules2.symbols b/tests/baselines/reference/commentsExternalModules2.symbols new file mode 100644 index 0000000000000..cfd01db377d85 --- /dev/null +++ b/tests/baselines/reference/commentsExternalModules2.symbols @@ -0,0 +1,143 @@ +=== tests/cases/compiler/commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules2_0"); // trailing comment 1 +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m1.fooExport(); +>extMod.m1.fooExport : Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>extMod.m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>fooExport : Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) + +export var newVar = new extMod.m1.m2.c(); +>newVar : Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 10)) +>extMod.m1.m2.c : Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>extMod.m1.m2 : Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>extMod.m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>m2 : Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>c : Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) + +extMod.m4.fooExport(); +>extMod.m4.fooExport : Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>extMod.m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>fooExport : Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) + +export var newVar2 = new extMod.m4.m2.c(); +>newVar2 : Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 10)) +>extMod.m4.m2.c : Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>extMod.m4.m2 : Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>extMod.m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>m2 : Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>c : Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) + +=== tests/cases/compiler/commentsExternalModules2_0.ts === + +/** Module comment*/ +export module m1 { +>m1 : Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) + + /** b's comment*/ + export var b: number; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) + + /** foo's comment*/ + function foo() { +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) + + return b; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) + } + /** m2 comments*/ + export module m2 { +>m2 : Symbol(m2, Decl(commentsExternalModules2_0.ts, 8, 5)) + + /** class comment;*/ + export class c { +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) + + }; + /** i*/ + export var i = new c(); +>i : Symbol(i, Decl(commentsExternalModules2_0.ts, 15, 18)) +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) + } + /** exported function*/ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) + } +} +m1.fooExport(); +>m1.fooExport : Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>m1 : Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>fooExport : Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) + +var myvar = new m1.m2.c(); +>myvar : Symbol(myvar, Decl(commentsExternalModules2_0.ts, 23, 3)) +>m1.m2.c : Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>m1.m2 : Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>m1 : Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>m2 : Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>c : Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) + +/** Module comment */ +export module m4 { +>m4 : Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) + + /** b's comment */ + export var b: number; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) + + /** foo's comment + */ + function foo() { +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) + + return b; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) + } + /** m2 comments + */ + export module m2 { +>m2 : Symbol(m2, Decl(commentsExternalModules2_0.ts, 33, 5)) + + /** class comment; */ + export class c { +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) + + }; + /** i */ + export var i = new c(); +>i : Symbol(i, Decl(commentsExternalModules2_0.ts, 41, 18)) +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) + } + /** exported function */ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) + } +} +m4.fooExport(); +>m4.fooExport : Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>m4 : Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>fooExport : Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) + +var myvar2 = new m4.m2.c(); +>myvar2 : Symbol(myvar2, Decl(commentsExternalModules2_0.ts, 49, 3)) +>m4.m2.c : Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>m4.m2 : Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>m4 : Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>m2 : Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>c : Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) + diff --git a/tests/baselines/reference/commentsExternalModules2.types b/tests/baselines/reference/commentsExternalModules2.types index 37a6f2a8b91f1..556b5d11d35b5 100644 --- a/tests/baselines/reference/commentsExternalModules2.types +++ b/tests/baselines/reference/commentsExternalModules2.types @@ -1,155 +1,155 @@ === tests/cases/compiler/commentsExternalModules_1.ts === /**This is on import declaration*/ import extMod = require("commentsExternalModules2_0"); // trailing comment 1 ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>extMod : typeof extMod extMod.m1.fooExport(); >extMod.m1.fooExport() : number ->extMod.m1.fooExport : () => number, Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) ->extMod.m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->fooExport : () => number, Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>extMod.m1.fooExport : () => number +>extMod.m1 : typeof extMod.m1 +>extMod : typeof extMod +>m1 : typeof extMod.m1 +>fooExport : () => number export var newVar = new extMod.m1.m2.c(); ->newVar : extMod.m1.m2.c, Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 10)) +>newVar : extMod.m1.m2.c >new extMod.m1.m2.c() : extMod.m1.m2.c ->extMod.m1.m2.c : typeof extMod.m1.m2.c, Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) ->extMod.m1.m2 : typeof extMod.m1.m2, Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->extMod.m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->m2 : typeof extMod.m1.m2, Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->c : typeof extMod.m1.m2.c, Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>extMod.m1.m2.c : typeof extMod.m1.m2.c +>extMod.m1.m2 : typeof extMod.m1.m2 +>extMod.m1 : typeof extMod.m1 +>extMod : typeof extMod +>m1 : typeof extMod.m1 +>m2 : typeof extMod.m1.m2 +>c : typeof extMod.m1.m2.c extMod.m4.fooExport(); >extMod.m4.fooExport() : number ->extMod.m4.fooExport : () => number, Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) ->extMod.m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->fooExport : () => number, Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>extMod.m4.fooExport : () => number +>extMod.m4 : typeof extMod.m4 +>extMod : typeof extMod +>m4 : typeof extMod.m4 +>fooExport : () => number export var newVar2 = new extMod.m4.m2.c(); ->newVar2 : extMod.m4.m2.c, Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 10)) +>newVar2 : extMod.m4.m2.c >new extMod.m4.m2.c() : extMod.m4.m2.c ->extMod.m4.m2.c : typeof extMod.m4.m2.c, Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) ->extMod.m4.m2 : typeof extMod.m4.m2, Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->extMod.m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->m2 : typeof extMod.m4.m2, Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->c : typeof extMod.m4.m2.c, Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>extMod.m4.m2.c : typeof extMod.m4.m2.c +>extMod.m4.m2 : typeof extMod.m4.m2 +>extMod.m4 : typeof extMod.m4 +>extMod : typeof extMod +>m4 : typeof extMod.m4 +>m2 : typeof extMod.m4.m2 +>c : typeof extMod.m4.m2.c === tests/cases/compiler/commentsExternalModules2_0.ts === /** Module comment*/ export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>m1 : typeof m1 /** b's comment*/ export var b: number; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) +>b : number /** foo's comment*/ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) +>b : number } /** m2 comments*/ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>m2 : typeof m2 /** class comment;*/ export class c { ->c : c, Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>c : c }; /** i*/ export var i = new c(); ->i : c, Symbol(i, Decl(commentsExternalModules2_0.ts, 15, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>c : typeof c } /** exported function*/ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) +>foo : () => number } } m1.fooExport(); >m1.fooExport() : number ->m1.fooExport : () => number, Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->fooExport : () => number, Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>m1.fooExport : () => number +>m1 : typeof m1 +>fooExport : () => number var myvar = new m1.m2.c(); ->myvar : m1.m2.c, Symbol(myvar, Decl(commentsExternalModules2_0.ts, 23, 3)) +>myvar : m1.m2.c >new m1.m2.c() : m1.m2.c ->m1.m2.c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) ->m1.m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>m1.m2.c : typeof m1.m2.c +>m1.m2 : typeof m1.m2 +>m1 : typeof m1 +>m2 : typeof m1.m2 +>c : typeof m1.m2.c /** Module comment */ export module m4 { ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>m4 : typeof m4 /** b's comment */ export var b: number; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) +>b : number /** foo's comment */ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) +>b : number } /** m2 comments */ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>m2 : typeof m2 /** class comment; */ export class c { ->c : c, Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>c : c }; /** i */ export var i = new c(); ->i : c, Symbol(i, Decl(commentsExternalModules2_0.ts, 41, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>c : typeof c } /** exported function */ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) +>foo : () => number } } m4.fooExport(); >m4.fooExport() : number ->m4.fooExport : () => number, Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->fooExport : () => number, Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>m4.fooExport : () => number +>m4 : typeof m4 +>fooExport : () => number var myvar2 = new m4.m2.c(); ->myvar2 : m4.m2.c, Symbol(myvar2, Decl(commentsExternalModules2_0.ts, 49, 3)) +>myvar2 : m4.m2.c >new m4.m2.c() : m4.m2.c ->m4.m2.c : typeof m4.m2.c, Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) ->m4.m2 : typeof m4.m2, Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->m2 : typeof m4.m2, Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->c : typeof m4.m2.c, Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>m4.m2.c : typeof m4.m2.c +>m4.m2 : typeof m4.m2 +>m4 : typeof m4 +>m2 : typeof m4.m2 +>c : typeof m4.m2.c diff --git a/tests/baselines/reference/commentsExternalModules3.symbols b/tests/baselines/reference/commentsExternalModules3.symbols new file mode 100644 index 0000000000000..cfd01db377d85 --- /dev/null +++ b/tests/baselines/reference/commentsExternalModules3.symbols @@ -0,0 +1,143 @@ +=== tests/cases/compiler/commentsExternalModules_1.ts === +/**This is on import declaration*/ +import extMod = require("commentsExternalModules2_0"); // trailing comment 1 +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) + +extMod.m1.fooExport(); +>extMod.m1.fooExport : Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>extMod.m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>fooExport : Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) + +export var newVar = new extMod.m1.m2.c(); +>newVar : Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 10)) +>extMod.m1.m2.c : Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>extMod.m1.m2 : Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>extMod.m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m1 : Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>m2 : Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>c : Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) + +extMod.m4.fooExport(); +>extMod.m4.fooExport : Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>extMod.m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>fooExport : Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) + +export var newVar2 = new extMod.m4.m2.c(); +>newVar2 : Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 10)) +>extMod.m4.m2.c : Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>extMod.m4.m2 : Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>extMod.m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>extMod : Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>m4 : Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>m2 : Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>c : Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) + +=== tests/cases/compiler/commentsExternalModules2_0.ts === + +/** Module comment*/ +export module m1 { +>m1 : Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) + + /** b's comment*/ + export var b: number; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) + + /** foo's comment*/ + function foo() { +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) + + return b; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) + } + /** m2 comments*/ + export module m2 { +>m2 : Symbol(m2, Decl(commentsExternalModules2_0.ts, 8, 5)) + + /** class comment;*/ + export class c { +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) + + }; + /** i*/ + export var i = new c(); +>i : Symbol(i, Decl(commentsExternalModules2_0.ts, 15, 18)) +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) + } + /** exported function*/ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) + } +} +m1.fooExport(); +>m1.fooExport : Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>m1 : Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>fooExport : Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) + +var myvar = new m1.m2.c(); +>myvar : Symbol(myvar, Decl(commentsExternalModules2_0.ts, 23, 3)) +>m1.m2.c : Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>m1.m2 : Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>m1 : Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>m2 : Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>c : Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) + +/** Module comment */ +export module m4 { +>m4 : Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) + + /** b's comment */ + export var b: number; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) + + /** foo's comment + */ + function foo() { +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) + + return b; +>b : Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) + } + /** m2 comments + */ + export module m2 { +>m2 : Symbol(m2, Decl(commentsExternalModules2_0.ts, 33, 5)) + + /** class comment; */ + export class c { +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) + + }; + /** i */ + export var i = new c(); +>i : Symbol(i, Decl(commentsExternalModules2_0.ts, 41, 18)) +>c : Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) + } + /** exported function */ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) + } +} +m4.fooExport(); +>m4.fooExport : Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>m4 : Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>fooExport : Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) + +var myvar2 = new m4.m2.c(); +>myvar2 : Symbol(myvar2, Decl(commentsExternalModules2_0.ts, 49, 3)) +>m4.m2.c : Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>m4.m2 : Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>m4 : Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>m2 : Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>c : Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) + diff --git a/tests/baselines/reference/commentsExternalModules3.types b/tests/baselines/reference/commentsExternalModules3.types index 37a6f2a8b91f1..556b5d11d35b5 100644 --- a/tests/baselines/reference/commentsExternalModules3.types +++ b/tests/baselines/reference/commentsExternalModules3.types @@ -1,155 +1,155 @@ === tests/cases/compiler/commentsExternalModules_1.ts === /**This is on import declaration*/ import extMod = require("commentsExternalModules2_0"); // trailing comment 1 ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) +>extMod : typeof extMod extMod.m1.fooExport(); >extMod.m1.fooExport() : number ->extMod.m1.fooExport : () => number, Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) ->extMod.m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->fooExport : () => number, Symbol(extMod.m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>extMod.m1.fooExport : () => number +>extMod.m1 : typeof extMod.m1 +>extMod : typeof extMod +>m1 : typeof extMod.m1 +>fooExport : () => number export var newVar = new extMod.m1.m2.c(); ->newVar : extMod.m1.m2.c, Symbol(newVar, Decl(commentsExternalModules_1.ts, 3, 10)) +>newVar : extMod.m1.m2.c >new extMod.m1.m2.c() : extMod.m1.m2.c ->extMod.m1.m2.c : typeof extMod.m1.m2.c, Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) ->extMod.m1.m2 : typeof extMod.m1.m2, Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->extMod.m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m1 : typeof extMod.m1, Symbol(extMod.m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->m2 : typeof extMod.m1.m2, Symbol(extMod.m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->c : typeof extMod.m1.m2.c, Symbol(extMod.m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>extMod.m1.m2.c : typeof extMod.m1.m2.c +>extMod.m1.m2 : typeof extMod.m1.m2 +>extMod.m1 : typeof extMod.m1 +>extMod : typeof extMod +>m1 : typeof extMod.m1 +>m2 : typeof extMod.m1.m2 +>c : typeof extMod.m1.m2.c extMod.m4.fooExport(); >extMod.m4.fooExport() : number ->extMod.m4.fooExport : () => number, Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) ->extMod.m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->fooExport : () => number, Symbol(extMod.m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>extMod.m4.fooExport : () => number +>extMod.m4 : typeof extMod.m4 +>extMod : typeof extMod +>m4 : typeof extMod.m4 +>fooExport : () => number export var newVar2 = new extMod.m4.m2.c(); ->newVar2 : extMod.m4.m2.c, Symbol(newVar2, Decl(commentsExternalModules_1.ts, 5, 10)) +>newVar2 : extMod.m4.m2.c >new extMod.m4.m2.c() : extMod.m4.m2.c ->extMod.m4.m2.c : typeof extMod.m4.m2.c, Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) ->extMod.m4.m2 : typeof extMod.m4.m2, Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->extMod.m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->extMod : typeof extMod, Symbol(extMod, Decl(commentsExternalModules_1.ts, 0, 0)) ->m4 : typeof extMod.m4, Symbol(extMod.m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->m2 : typeof extMod.m4.m2, Symbol(extMod.m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->c : typeof extMod.m4.m2.c, Symbol(extMod.m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>extMod.m4.m2.c : typeof extMod.m4.m2.c +>extMod.m4.m2 : typeof extMod.m4.m2 +>extMod.m4 : typeof extMod.m4 +>extMod : typeof extMod +>m4 : typeof extMod.m4 +>m2 : typeof extMod.m4.m2 +>c : typeof extMod.m4.m2.c === tests/cases/compiler/commentsExternalModules2_0.ts === /** Module comment*/ export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) +>m1 : typeof m1 /** b's comment*/ export var b: number; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) +>b : number /** foo's comment*/ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 4, 14)) +>b : number } /** m2 comments*/ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsExternalModules2_0.ts, 8, 5)) +>m2 : typeof m2 /** class comment;*/ export class c { ->c : c, Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>c : c }; /** i*/ export var i = new c(); ->i : c, Symbol(i, Decl(commentsExternalModules2_0.ts, 15, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>c : typeof c } /** exported function*/ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 4, 25)) +>foo : () => number } } m1.fooExport(); >m1.fooExport() : number ->m1.fooExport : () => number, Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->fooExport : () => number, Symbol(m1.fooExport, Decl(commentsExternalModules2_0.ts, 16, 5)) +>m1.fooExport : () => number +>m1 : typeof m1 +>fooExport : () => number var myvar = new m1.m2.c(); ->myvar : m1.m2.c, Symbol(myvar, Decl(commentsExternalModules2_0.ts, 23, 3)) +>myvar : m1.m2.c >new m1.m2.c() : m1.m2.c ->m1.m2.c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) ->m1.m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsExternalModules2_0.ts, 0, 0)) ->m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsExternalModules2_0.ts, 8, 5)) ->c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsExternalModules2_0.ts, 10, 22)) +>m1.m2.c : typeof m1.m2.c +>m1.m2 : typeof m1.m2 +>m1 : typeof m1 +>m2 : typeof m1.m2 +>c : typeof m1.m2.c /** Module comment */ export module m4 { ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) +>m4 : typeof m4 /** b's comment */ export var b: number; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) +>b : number /** foo's comment */ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsExternalModules2_0.ts, 28, 14)) +>b : number } /** m2 comments */ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsExternalModules2_0.ts, 33, 5)) +>m2 : typeof m2 /** class comment; */ export class c { ->c : c, Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>c : c }; /** i */ export var i = new c(); ->i : c, Symbol(i, Decl(commentsExternalModules2_0.ts, 41, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>c : typeof c } /** exported function */ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsExternalModules2_0.ts, 28, 25)) +>foo : () => number } } m4.fooExport(); >m4.fooExport() : number ->m4.fooExport : () => number, Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->fooExport : () => number, Symbol(m4.fooExport, Decl(commentsExternalModules2_0.ts, 42, 5)) +>m4.fooExport : () => number +>m4 : typeof m4 +>fooExport : () => number var myvar2 = new m4.m2.c(); ->myvar2 : m4.m2.c, Symbol(myvar2, Decl(commentsExternalModules2_0.ts, 49, 3)) +>myvar2 : m4.m2.c >new m4.m2.c() : m4.m2.c ->m4.m2.c : typeof m4.m2.c, Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) ->m4.m2 : typeof m4.m2, Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->m4 : typeof m4, Symbol(m4, Decl(commentsExternalModules2_0.ts, 23, 26)) ->m2 : typeof m4.m2, Symbol(m4.m2, Decl(commentsExternalModules2_0.ts, 33, 5)) ->c : typeof m4.m2.c, Symbol(m4.m2.c, Decl(commentsExternalModules2_0.ts, 36, 22)) +>m4.m2.c : typeof m4.m2.c +>m4.m2 : typeof m4.m2 +>m4 : typeof m4 +>m2 : typeof m4.m2 +>c : typeof m4.m2.c diff --git a/tests/baselines/reference/commentsFormatting.symbols b/tests/baselines/reference/commentsFormatting.symbols new file mode 100644 index 0000000000000..a858d48ce67e2 --- /dev/null +++ b/tests/baselines/reference/commentsFormatting.symbols @@ -0,0 +1,93 @@ +=== tests/cases/compiler/commentsFormatting.ts === + +module m { +>m : Symbol(m, Decl(commentsFormatting.ts, 0, 0)) + + /** this is first line - aligned to class declaration +* this is 4 spaces left aligned + * this is 3 spaces left aligned + * this is 2 spaces left aligned + * this is 1 spaces left aligned + * this is at same level as first line + * this is 1 spaces right aligned + * this is 2 spaces right aligned + * this is 3 spaces right aligned + * this is 4 spaces right aligned + * this is 5 spaces right aligned + * this is 6 spaces right aligned + * this is 7 spaces right aligned + * this is 8 spaces right aligned */ + export class c { +>c : Symbol(c, Decl(commentsFormatting.ts, 1, 10)) + } + + /** this is first line - 4 spaces right aligned to class but in js file should be aligned to class declaration +* this is 8 spaces left aligned + * this is 7 spaces left aligned + * this is 6 spaces left aligned + * this is 5 spaces left aligned + * this is 4 spaces left aligned + * this is 3 spaces left aligned + * this is 2 spaces left aligned + * this is 1 spaces left aligned + * this is at same level as first line + * this is 1 spaces right aligned + * this is 2 spaces right aligned + * this is 3 spaces right aligned + * this is 4 spaces right aligned + * this is 5 spaces right aligned + * this is 6 spaces right aligned + * this is 7 spaces right aligned + * this is 8 spaces right aligned */ + export class c2 { +>c2 : Symbol(c2, Decl(commentsFormatting.ts, 17, 5)) + } + + /** this is comment with new lines in between + +this is 4 spaces left aligned but above line is empty + + this is 3 spaces left aligned but above line is empty + + this is 2 spaces left aligned but above line is empty + + this is 1 spaces left aligned but above line is empty + + this is at same level as first line but above line is empty + + this is 1 spaces right aligned but above line is empty + + this is 2 spaces right aligned but above line is empty + + this is 3 spaces right aligned but above line is empty + + this is 4 spaces right aligned but above line is empty + + + Above 2 lines are empty + + + + above 3 lines are empty*/ + export class c3 { +>c3 : Symbol(c3, Decl(commentsFormatting.ts, 38, 5)) + } + + /** this is first line - aligned to class declaration + * this is 0 space + tab + * this is 1 space + tab + * this is 2 spaces + tab + * this is 3 spaces + tab + * this is 4 spaces + tab + * this is 5 spaces + tab + * this is 6 spaces + tab + * this is 7 spaces + tab + * this is 8 spaces + tab + * this is 9 spaces + tab + * this is 10 spaces + tab + * this is 11 spaces + tab + * this is 12 spaces + tab */ + export class c4 { +>c4 : Symbol(c4, Decl(commentsFormatting.ts, 67, 5)) + } +} diff --git a/tests/baselines/reference/commentsFormatting.types b/tests/baselines/reference/commentsFormatting.types index 9b89d19b25430..2de53654f9e40 100644 --- a/tests/baselines/reference/commentsFormatting.types +++ b/tests/baselines/reference/commentsFormatting.types @@ -1,7 +1,7 @@ === tests/cases/compiler/commentsFormatting.ts === module m { ->m : typeof m, Symbol(m, Decl(commentsFormatting.ts, 0, 0)) +>m : typeof m /** this is first line - aligned to class declaration * this is 4 spaces left aligned @@ -18,7 +18,7 @@ module m { * this is 7 spaces right aligned * this is 8 spaces right aligned */ export class c { ->c : c, Symbol(c, Decl(commentsFormatting.ts, 1, 10)) +>c : c } /** this is first line - 4 spaces right aligned to class but in js file should be aligned to class declaration @@ -40,7 +40,7 @@ module m { * this is 7 spaces right aligned * this is 8 spaces right aligned */ export class c2 { ->c2 : c2, Symbol(c2, Decl(commentsFormatting.ts, 17, 5)) +>c2 : c2 } /** this is comment with new lines in between @@ -70,7 +70,7 @@ this is 4 spaces left aligned but above line is empty above 3 lines are empty*/ export class c3 { ->c3 : c3, Symbol(c3, Decl(commentsFormatting.ts, 38, 5)) +>c3 : c3 } /** this is first line - aligned to class declaration @@ -88,6 +88,6 @@ this is 4 spaces left aligned but above line is empty * this is 11 spaces + tab * this is 12 spaces + tab */ export class c4 { ->c4 : c4, Symbol(c4, Decl(commentsFormatting.ts, 67, 5)) +>c4 : c4 } } diff --git a/tests/baselines/reference/commentsFunction.symbols b/tests/baselines/reference/commentsFunction.symbols new file mode 100644 index 0000000000000..dfc68eb6743e1 --- /dev/null +++ b/tests/baselines/reference/commentsFunction.symbols @@ -0,0 +1,109 @@ +=== tests/cases/compiler/commentsFunction.ts === + +/** This comment should appear for foo*/ +function foo() { +>foo : Symbol(foo, Decl(commentsFunction.ts, 0, 0)) + +} /* trailing comment of function */ +foo(); +>foo : Symbol(foo, Decl(commentsFunction.ts, 0, 0)) + +/** This is comment for function signature*/ +function fooWithParameters(/** this is comment about a*/a: string, +>fooWithParameters : Symbol(fooWithParameters, Decl(commentsFunction.ts, 4, 6)) +>a : Symbol(a, Decl(commentsFunction.ts, 6, 27)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(commentsFunction.ts, 6, 66)) + + var d = a; +>d : Symbol(d, Decl(commentsFunction.ts, 9, 7)) +>a : Symbol(a, Decl(commentsFunction.ts, 6, 27)) + +} // trailing comment of function +fooWithParameters("a", 10); +>fooWithParameters : Symbol(fooWithParameters, Decl(commentsFunction.ts, 4, 6)) + +/** fooFunc + * comment + */ +var fooFunc = function FooFunctionValue(/** fooFunctionValue param */ b: string) { +>fooFunc : Symbol(fooFunc, Decl(commentsFunction.ts, 15, 3)) +>FooFunctionValue : Symbol(FooFunctionValue, Decl(commentsFunction.ts, 15, 13)) +>b : Symbol(b, Decl(commentsFunction.ts, 15, 40)) + + return b; +>b : Symbol(b, Decl(commentsFunction.ts, 15, 40)) +} + +/// lamdaFoo var comment +var lambdaFoo = /** this is lambda comment*/ (/**param a*/a: number, /**param b*/b: number) => a + b; +>lambdaFoo : Symbol(lambdaFoo, Decl(commentsFunction.ts, 20, 3)) +>a : Symbol(a, Decl(commentsFunction.ts, 20, 46)) +>b : Symbol(b, Decl(commentsFunction.ts, 20, 68)) +>a : Symbol(a, Decl(commentsFunction.ts, 20, 46)) +>b : Symbol(b, Decl(commentsFunction.ts, 20, 68)) + +var lambddaNoVarComment = /** this is lambda multiplication*/ (/**param a*/a: number, /**param b*/b: number) => a * b; +>lambddaNoVarComment : Symbol(lambddaNoVarComment, Decl(commentsFunction.ts, 21, 3)) +>a : Symbol(a, Decl(commentsFunction.ts, 21, 63)) +>b : Symbol(b, Decl(commentsFunction.ts, 21, 85)) +>a : Symbol(a, Decl(commentsFunction.ts, 21, 63)) +>b : Symbol(b, Decl(commentsFunction.ts, 21, 85)) + +lambdaFoo(10, 20); +>lambdaFoo : Symbol(lambdaFoo, Decl(commentsFunction.ts, 20, 3)) + +lambddaNoVarComment(10, 20); +>lambddaNoVarComment : Symbol(lambddaNoVarComment, Decl(commentsFunction.ts, 21, 3)) + +function blah(a: string /* multiline trailing comment +>blah : Symbol(blah, Decl(commentsFunction.ts, 23, 28)) +>a : Symbol(a, Decl(commentsFunction.ts, 25, 14)) + +multiline */) { +} + +function blah2(a: string /* single line multiple trailing comments */ /* second */) { +>blah2 : Symbol(blah2, Decl(commentsFunction.ts, 27, 1)) +>a : Symbol(a, Decl(commentsFunction.ts, 29, 15)) +} + +function blah3(a: string // trailing commen single line +>blah3 : Symbol(blah3, Decl(commentsFunction.ts, 30, 1)) +>a : Symbol(a, Decl(commentsFunction.ts, 32, 15)) + + ) { +} + +lambdaFoo = (a, b) => a * b; // This is trailing comment +>lambdaFoo : Symbol(lambdaFoo, Decl(commentsFunction.ts, 20, 3)) +>a : Symbol(a, Decl(commentsFunction.ts, 36, 13)) +>b : Symbol(b, Decl(commentsFunction.ts, 36, 15)) +>a : Symbol(a, Decl(commentsFunction.ts, 36, 13)) +>b : Symbol(b, Decl(commentsFunction.ts, 36, 15)) + +/*leading comment*/() => 0; // Needs to be wrapped in parens to be a valid expression (not declaration) +/*leading comment*/(() => 0); //trailing comment + +function blah4(/*1*/a: string/*2*/,/*3*/b: string/*4*/) { +>blah4 : Symbol(blah4, Decl(commentsFunction.ts, 39, 29)) +>a : Symbol(a, Decl(commentsFunction.ts, 41, 15)) +>b : Symbol(b, Decl(commentsFunction.ts, 41, 35)) +} + +function foo1() { +>foo1 : Symbol(foo1, Decl(commentsFunction.ts, 42, 1)) + + // should emit this +} + +function foo2() { +>foo2 : Symbol(foo2, Decl(commentsFunction.ts, 47, 1)) + + /// This is some detached comment + + // should emit this leading comment of } too +} + diff --git a/tests/baselines/reference/commentsFunction.types b/tests/baselines/reference/commentsFunction.types index 09f3ade20a204..db5e518339d0e 100644 --- a/tests/baselines/reference/commentsFunction.types +++ b/tests/baselines/reference/commentsFunction.types @@ -2,30 +2,30 @@ /** This comment should appear for foo*/ function foo() { ->foo : () => void, Symbol(foo, Decl(commentsFunction.ts, 0, 0)) +>foo : () => void } /* trailing comment of function */ foo(); >foo() : void ->foo : () => void, Symbol(foo, Decl(commentsFunction.ts, 0, 0)) +>foo : () => void /** This is comment for function signature*/ function fooWithParameters(/** this is comment about a*/a: string, ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(commentsFunction.ts, 4, 6)) ->a : string, Symbol(a, Decl(commentsFunction.ts, 6, 27)) +>fooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(commentsFunction.ts, 6, 66)) +>b : number var d = a; ->d : string, Symbol(d, Decl(commentsFunction.ts, 9, 7)) ->a : string, Symbol(a, Decl(commentsFunction.ts, 6, 27)) +>d : string +>a : string } // trailing comment of function fooWithParameters("a", 10); >fooWithParameters("a", 10) : void ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(commentsFunction.ts, 4, 6)) +>fooWithParameters : (a: string, b: number) => void >"a" : string >10 : number @@ -33,74 +33,74 @@ fooWithParameters("a", 10); * comment */ var fooFunc = function FooFunctionValue(/** fooFunctionValue param */ b: string) { ->fooFunc : (b: string) => string, Symbol(fooFunc, Decl(commentsFunction.ts, 15, 3)) +>fooFunc : (b: string) => string >function FooFunctionValue(/** fooFunctionValue param */ b: string) { return b;} : (b: string) => string ->FooFunctionValue : (b: string) => string, Symbol(FooFunctionValue, Decl(commentsFunction.ts, 15, 13)) ->b : string, Symbol(b, Decl(commentsFunction.ts, 15, 40)) +>FooFunctionValue : (b: string) => string +>b : string return b; ->b : string, Symbol(b, Decl(commentsFunction.ts, 15, 40)) +>b : string } /// lamdaFoo var comment var lambdaFoo = /** this is lambda comment*/ (/**param a*/a: number, /**param b*/b: number) => a + b; ->lambdaFoo : (a: number, b: number) => number, Symbol(lambdaFoo, Decl(commentsFunction.ts, 20, 3)) +>lambdaFoo : (a: number, b: number) => number >(/**param a*/a: number, /**param b*/b: number) => a + b : (a: number, b: number) => number ->a : number, Symbol(a, Decl(commentsFunction.ts, 20, 46)) ->b : number, Symbol(b, Decl(commentsFunction.ts, 20, 68)) +>a : number +>b : number >a + b : number ->a : number, Symbol(a, Decl(commentsFunction.ts, 20, 46)) ->b : number, Symbol(b, Decl(commentsFunction.ts, 20, 68)) +>a : number +>b : number var lambddaNoVarComment = /** this is lambda multiplication*/ (/**param a*/a: number, /**param b*/b: number) => a * b; ->lambddaNoVarComment : (a: number, b: number) => number, Symbol(lambddaNoVarComment, Decl(commentsFunction.ts, 21, 3)) +>lambddaNoVarComment : (a: number, b: number) => number >(/**param a*/a: number, /**param b*/b: number) => a * b : (a: number, b: number) => number ->a : number, Symbol(a, Decl(commentsFunction.ts, 21, 63)) ->b : number, Symbol(b, Decl(commentsFunction.ts, 21, 85)) +>a : number +>b : number >a * b : number ->a : number, Symbol(a, Decl(commentsFunction.ts, 21, 63)) ->b : number, Symbol(b, Decl(commentsFunction.ts, 21, 85)) +>a : number +>b : number lambdaFoo(10, 20); >lambdaFoo(10, 20) : number ->lambdaFoo : (a: number, b: number) => number, Symbol(lambdaFoo, Decl(commentsFunction.ts, 20, 3)) +>lambdaFoo : (a: number, b: number) => number >10 : number >20 : number lambddaNoVarComment(10, 20); >lambddaNoVarComment(10, 20) : number ->lambddaNoVarComment : (a: number, b: number) => number, Symbol(lambddaNoVarComment, Decl(commentsFunction.ts, 21, 3)) +>lambddaNoVarComment : (a: number, b: number) => number >10 : number >20 : number function blah(a: string /* multiline trailing comment ->blah : (a: string) => void, Symbol(blah, Decl(commentsFunction.ts, 23, 28)) ->a : string, Symbol(a, Decl(commentsFunction.ts, 25, 14)) +>blah : (a: string) => void +>a : string multiline */) { } function blah2(a: string /* single line multiple trailing comments */ /* second */) { ->blah2 : (a: string) => void, Symbol(blah2, Decl(commentsFunction.ts, 27, 1)) ->a : string, Symbol(a, Decl(commentsFunction.ts, 29, 15)) +>blah2 : (a: string) => void +>a : string } function blah3(a: string // trailing commen single line ->blah3 : (a: string) => void, Symbol(blah3, Decl(commentsFunction.ts, 30, 1)) ->a : string, Symbol(a, Decl(commentsFunction.ts, 32, 15)) +>blah3 : (a: string) => void +>a : string ) { } lambdaFoo = (a, b) => a * b; // This is trailing comment >lambdaFoo = (a, b) => a * b : (a: number, b: number) => number ->lambdaFoo : (a: number, b: number) => number, Symbol(lambdaFoo, Decl(commentsFunction.ts, 20, 3)) +>lambdaFoo : (a: number, b: number) => number >(a, b) => a * b : (a: number, b: number) => number ->a : number, Symbol(a, Decl(commentsFunction.ts, 36, 13)) ->b : number, Symbol(b, Decl(commentsFunction.ts, 36, 15)) +>a : number +>b : number >a * b : number ->a : number, Symbol(a, Decl(commentsFunction.ts, 36, 13)) ->b : number, Symbol(b, Decl(commentsFunction.ts, 36, 15)) +>a : number +>b : number /*leading comment*/() => 0; // Needs to be wrapped in parens to be a valid expression (not declaration) >() => 0 : () => number @@ -112,19 +112,19 @@ lambdaFoo = (a, b) => a * b; // This is trailing comment >0 : number function blah4(/*1*/a: string/*2*/,/*3*/b: string/*4*/) { ->blah4 : (a: string, b: string) => void, Symbol(blah4, Decl(commentsFunction.ts, 39, 29)) ->a : string, Symbol(a, Decl(commentsFunction.ts, 41, 15)) ->b : string, Symbol(b, Decl(commentsFunction.ts, 41, 35)) +>blah4 : (a: string, b: string) => void +>a : string +>b : string } function foo1() { ->foo1 : () => void, Symbol(foo1, Decl(commentsFunction.ts, 42, 1)) +>foo1 : () => void // should emit this } function foo2() { ->foo2 : () => void, Symbol(foo2, Decl(commentsFunction.ts, 47, 1)) +>foo2 : () => void /// This is some detached comment diff --git a/tests/baselines/reference/commentsInheritance.symbols b/tests/baselines/reference/commentsInheritance.symbols new file mode 100644 index 0000000000000..f702f40a0d4dc --- /dev/null +++ b/tests/baselines/reference/commentsInheritance.symbols @@ -0,0 +1,311 @@ +=== tests/cases/compiler/commentsInheritance.ts === + +/** i1 is interface with properties*/ +interface i1 { +>i1 : Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) + + /** i1_p1*/ + i1_p1: number; +>i1_p1 : Symbol(i1_p1, Decl(commentsInheritance.ts, 2, 14)) + + /** i1_f1*/ + i1_f1(): void; +>i1_f1 : Symbol(i1_f1, Decl(commentsInheritance.ts, 4, 18)) + + /** i1_l1*/ + i1_l1: () => void; +>i1_l1 : Symbol(i1_l1, Decl(commentsInheritance.ts, 6, 18)) + + // il_nc_p1 + i1_nc_p1: number; +>i1_nc_p1 : Symbol(i1_nc_p1, Decl(commentsInheritance.ts, 8, 22)) + + i1_nc_f1(): void; +>i1_nc_f1 : Symbol(i1_nc_f1, Decl(commentsInheritance.ts, 10, 21)) + + i1_nc_l1: () => void; +>i1_nc_l1 : Symbol(i1_nc_l1, Decl(commentsInheritance.ts, 11, 21)) + + p1: number; +>p1 : Symbol(p1, Decl(commentsInheritance.ts, 12, 25)) + + f1(): void; +>f1 : Symbol(f1, Decl(commentsInheritance.ts, 13, 15)) + + l1: () => void; +>l1 : Symbol(l1, Decl(commentsInheritance.ts, 14, 15)) + + nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 15, 19)) + + nc_f1(): void; +>nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 16, 18)) + + nc_l1: () => void; +>nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 17, 18)) +} +class c1 implements i1 { +>c1 : Symbol(c1, Decl(commentsInheritance.ts, 19, 1)) +>i1 : Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) + + public i1_p1: number; +>i1_p1 : Symbol(i1_p1, Decl(commentsInheritance.ts, 20, 24)) + + // i1_f1 + public i1_f1() { +>i1_f1 : Symbol(i1_f1, Decl(commentsInheritance.ts, 21, 25)) + } + public i1_l1: () => void; +>i1_l1 : Symbol(i1_l1, Decl(commentsInheritance.ts, 24, 5)) + + public i1_nc_p1: number; +>i1_nc_p1 : Symbol(i1_nc_p1, Decl(commentsInheritance.ts, 25, 29)) + + public i1_nc_f1() { +>i1_nc_f1 : Symbol(i1_nc_f1, Decl(commentsInheritance.ts, 26, 28)) + } + public i1_nc_l1: () => void; +>i1_nc_l1 : Symbol(i1_nc_l1, Decl(commentsInheritance.ts, 28, 5)) + + /** c1_p1*/ + public p1: number; +>p1 : Symbol(p1, Decl(commentsInheritance.ts, 29, 32)) + + /** c1_f1*/ + public f1() { +>f1 : Symbol(f1, Decl(commentsInheritance.ts, 31, 22)) + } + /** c1_l1*/ + public l1: () => void; +>l1 : Symbol(l1, Decl(commentsInheritance.ts, 34, 5)) + + /** c1_nc_p1*/ + public nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 36, 26)) + + /** c1_nc_f1*/ + public nc_f1() { +>nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 38, 25)) + } + /** c1_nc_l1*/ + public nc_l1: () => void; +>nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 41, 5)) +} +var i1_i: i1; +>i1_i : Symbol(i1_i, Decl(commentsInheritance.ts, 45, 3)) +>i1 : Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) + +var c1_i = new c1(); +>c1_i : Symbol(c1_i, Decl(commentsInheritance.ts, 46, 3)) +>c1 : Symbol(c1, Decl(commentsInheritance.ts, 19, 1)) + +// assign to interface +i1_i = c1_i; +>i1_i : Symbol(i1_i, Decl(commentsInheritance.ts, 45, 3)) +>c1_i : Symbol(c1_i, Decl(commentsInheritance.ts, 46, 3)) + +class c2 { +>c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) + + /** c2 c2_p1*/ + public c2_p1: number; +>c2_p1 : Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) + + /** c2 c2_f1*/ + public c2_f1() { +>c2_f1 : Symbol(c2_f1, Decl(commentsInheritance.ts, 51, 25)) + } + /** c2 c2_prop*/ + public get c2_prop() { +>c2_prop : Symbol(c2_prop, Decl(commentsInheritance.ts, 54, 5)) + + return 10; + } + public c2_nc_p1: number; +>c2_nc_p1 : Symbol(c2_nc_p1, Decl(commentsInheritance.ts, 58, 5)) + + public c2_nc_f1() { +>c2_nc_f1 : Symbol(c2_nc_f1, Decl(commentsInheritance.ts, 59, 28)) + } + public get c2_nc_prop() { +>c2_nc_prop : Symbol(c2_nc_prop, Decl(commentsInheritance.ts, 61, 5)) + + return 10; + } + /** c2 p1*/ + public p1: number; +>p1 : Symbol(p1, Decl(commentsInheritance.ts, 64, 5)) + + /** c2 f1*/ + public f1() { +>f1 : Symbol(f1, Decl(commentsInheritance.ts, 66, 22)) + } + /** c2 prop*/ + public get prop() { +>prop : Symbol(prop, Decl(commentsInheritance.ts, 69, 5)) + + return 10; + } + public nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 73, 5)) + + public nc_f1() { +>nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 74, 25)) + } + public get nc_prop() { +>nc_prop : Symbol(nc_prop, Decl(commentsInheritance.ts, 76, 5)) + + return 10; + } + /** c2 constructor*/ + constructor(a: number) { +>a : Symbol(a, Decl(commentsInheritance.ts, 81, 16)) + + this.c2_p1 = a; +>this.c2_p1 : Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) +>this : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +>c2_p1 : Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) +>a : Symbol(a, Decl(commentsInheritance.ts, 81, 16)) + } +} +class c3 extends c2 { +>c3 : Symbol(c3, Decl(commentsInheritance.ts, 84, 1)) +>c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) + + constructor() { + super(10); +>super : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) + } + /** c3 p1*/ + public p1: number; +>p1 : Symbol(p1, Decl(commentsInheritance.ts, 88, 5)) + + /** c3 f1*/ + public f1() { +>f1 : Symbol(f1, Decl(commentsInheritance.ts, 90, 22)) + } + /** c3 prop*/ + public get prop() { +>prop : Symbol(prop, Decl(commentsInheritance.ts, 93, 5)) + + return 10; + } + public nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 97, 5)) + + public nc_f1() { +>nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 98, 25)) + } + public get nc_prop() { +>nc_prop : Symbol(nc_prop, Decl(commentsInheritance.ts, 100, 5)) + + return 10; + } +} +var c2_i = new c2(10); +>c2_i : Symbol(c2_i, Decl(commentsInheritance.ts, 105, 3)) +>c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) + +var c3_i = new c3(); +>c3_i : Symbol(c3_i, Decl(commentsInheritance.ts, 106, 3)) +>c3 : Symbol(c3, Decl(commentsInheritance.ts, 84, 1)) + +// assign +c2_i = c3_i; +>c2_i : Symbol(c2_i, Decl(commentsInheritance.ts, 105, 3)) +>c3_i : Symbol(c3_i, Decl(commentsInheritance.ts, 106, 3)) + +class c4 extends c2 { +>c4 : Symbol(c4, Decl(commentsInheritance.ts, 108, 12)) +>c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +} +var c4_i = new c4(10); +>c4_i : Symbol(c4_i, Decl(commentsInheritance.ts, 111, 3)) +>c4 : Symbol(c4, Decl(commentsInheritance.ts, 108, 12)) + +interface i2 { +>i2 : Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) + + /** i2_p1*/ + i2_p1: number; +>i2_p1 : Symbol(i2_p1, Decl(commentsInheritance.ts, 112, 14)) + + /** i2_f1*/ + i2_f1(): void; +>i2_f1 : Symbol(i2_f1, Decl(commentsInheritance.ts, 114, 18)) + + /** i2_l1*/ + i2_l1: () => void; +>i2_l1 : Symbol(i2_l1, Decl(commentsInheritance.ts, 116, 18)) + + // i2_nc_p1 + i2_nc_p1: number; +>i2_nc_p1 : Symbol(i2_nc_p1, Decl(commentsInheritance.ts, 118, 22)) + + i2_nc_f1(): void; +>i2_nc_f1 : Symbol(i2_nc_f1, Decl(commentsInheritance.ts, 120, 21)) + + i2_nc_l1: () => void; +>i2_nc_l1 : Symbol(i2_nc_l1, Decl(commentsInheritance.ts, 121, 21)) + + /** i2 p1*/ + p1: number; +>p1 : Symbol(p1, Decl(commentsInheritance.ts, 122, 25)) + + /** i2 f1*/ + f1(): void; +>f1 : Symbol(f1, Decl(commentsInheritance.ts, 124, 15)) + + /** i2 l1*/ + l1: () => void; +>l1 : Symbol(l1, Decl(commentsInheritance.ts, 126, 15)) + + nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 128, 19)) + + nc_f1(): void; +>nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 129, 18)) + + nc_l1: () => void; +>nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 130, 18)) +} +interface i3 extends i2 { +>i3 : Symbol(i3, Decl(commentsInheritance.ts, 132, 1)) +>i2 : Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) + + /** i3 p1 */ + p1: number; +>p1 : Symbol(p1, Decl(commentsInheritance.ts, 133, 25)) + + /** + * i3 f1 + */ + f1(): void; +>f1 : Symbol(f1, Decl(commentsInheritance.ts, 135, 15)) + + /** i3 l1*/ + l1: () => void; +>l1 : Symbol(l1, Decl(commentsInheritance.ts, 139, 15)) + + nc_p1: number; +>nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 141, 19)) + + nc_f1(): void; +>nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 142, 18)) + + nc_l1: () => void; +>nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 143, 18)) +} +var i2_i: i2; +>i2_i : Symbol(i2_i, Decl(commentsInheritance.ts, 146, 3)) +>i2 : Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) + +var i3_i: i3; +>i3_i : Symbol(i3_i, Decl(commentsInheritance.ts, 147, 3)) +>i3 : Symbol(i3, Decl(commentsInheritance.ts, 132, 1)) + +// assign to interface +i2_i = i3_i; +>i2_i : Symbol(i2_i, Decl(commentsInheritance.ts, 146, 3)) +>i3_i : Symbol(i3_i, Decl(commentsInheritance.ts, 147, 3)) + diff --git a/tests/baselines/reference/commentsInheritance.types b/tests/baselines/reference/commentsInheritance.types index 3c45605b7fe65..1c25f13937bfc 100644 --- a/tests/baselines/reference/commentsInheritance.types +++ b/tests/baselines/reference/commentsInheritance.types @@ -2,328 +2,328 @@ /** i1 is interface with properties*/ interface i1 { ->i1 : i1, Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) +>i1 : i1 /** i1_p1*/ i1_p1: number; ->i1_p1 : number, Symbol(i1_p1, Decl(commentsInheritance.ts, 2, 14)) +>i1_p1 : number /** i1_f1*/ i1_f1(): void; ->i1_f1 : () => void, Symbol(i1_f1, Decl(commentsInheritance.ts, 4, 18)) +>i1_f1 : () => void /** i1_l1*/ i1_l1: () => void; ->i1_l1 : () => void, Symbol(i1_l1, Decl(commentsInheritance.ts, 6, 18)) +>i1_l1 : () => void // il_nc_p1 i1_nc_p1: number; ->i1_nc_p1 : number, Symbol(i1_nc_p1, Decl(commentsInheritance.ts, 8, 22)) +>i1_nc_p1 : number i1_nc_f1(): void; ->i1_nc_f1 : () => void, Symbol(i1_nc_f1, Decl(commentsInheritance.ts, 10, 21)) +>i1_nc_f1 : () => void i1_nc_l1: () => void; ->i1_nc_l1 : () => void, Symbol(i1_nc_l1, Decl(commentsInheritance.ts, 11, 21)) +>i1_nc_l1 : () => void p1: number; ->p1 : number, Symbol(p1, Decl(commentsInheritance.ts, 12, 25)) +>p1 : number f1(): void; ->f1 : () => void, Symbol(f1, Decl(commentsInheritance.ts, 13, 15)) +>f1 : () => void l1: () => void; ->l1 : () => void, Symbol(l1, Decl(commentsInheritance.ts, 14, 15)) +>l1 : () => void nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsInheritance.ts, 15, 19)) +>nc_p1 : number nc_f1(): void; ->nc_f1 : () => void, Symbol(nc_f1, Decl(commentsInheritance.ts, 16, 18)) +>nc_f1 : () => void nc_l1: () => void; ->nc_l1 : () => void, Symbol(nc_l1, Decl(commentsInheritance.ts, 17, 18)) +>nc_l1 : () => void } class c1 implements i1 { ->c1 : c1, Symbol(c1, Decl(commentsInheritance.ts, 19, 1)) ->i1 : i1, Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) +>c1 : c1 +>i1 : i1 public i1_p1: number; ->i1_p1 : number, Symbol(i1_p1, Decl(commentsInheritance.ts, 20, 24)) +>i1_p1 : number // i1_f1 public i1_f1() { ->i1_f1 : () => void, Symbol(i1_f1, Decl(commentsInheritance.ts, 21, 25)) +>i1_f1 : () => void } public i1_l1: () => void; ->i1_l1 : () => void, Symbol(i1_l1, Decl(commentsInheritance.ts, 24, 5)) +>i1_l1 : () => void public i1_nc_p1: number; ->i1_nc_p1 : number, Symbol(i1_nc_p1, Decl(commentsInheritance.ts, 25, 29)) +>i1_nc_p1 : number public i1_nc_f1() { ->i1_nc_f1 : () => void, Symbol(i1_nc_f1, Decl(commentsInheritance.ts, 26, 28)) +>i1_nc_f1 : () => void } public i1_nc_l1: () => void; ->i1_nc_l1 : () => void, Symbol(i1_nc_l1, Decl(commentsInheritance.ts, 28, 5)) +>i1_nc_l1 : () => void /** c1_p1*/ public p1: number; ->p1 : number, Symbol(p1, Decl(commentsInheritance.ts, 29, 32)) +>p1 : number /** c1_f1*/ public f1() { ->f1 : () => void, Symbol(f1, Decl(commentsInheritance.ts, 31, 22)) +>f1 : () => void } /** c1_l1*/ public l1: () => void; ->l1 : () => void, Symbol(l1, Decl(commentsInheritance.ts, 34, 5)) +>l1 : () => void /** c1_nc_p1*/ public nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsInheritance.ts, 36, 26)) +>nc_p1 : number /** c1_nc_f1*/ public nc_f1() { ->nc_f1 : () => void, Symbol(nc_f1, Decl(commentsInheritance.ts, 38, 25)) +>nc_f1 : () => void } /** c1_nc_l1*/ public nc_l1: () => void; ->nc_l1 : () => void, Symbol(nc_l1, Decl(commentsInheritance.ts, 41, 5)) +>nc_l1 : () => void } var i1_i: i1; ->i1_i : i1, Symbol(i1_i, Decl(commentsInheritance.ts, 45, 3)) ->i1 : i1, Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) +>i1_i : i1 +>i1 : i1 var c1_i = new c1(); ->c1_i : c1, Symbol(c1_i, Decl(commentsInheritance.ts, 46, 3)) +>c1_i : c1 >new c1() : c1 ->c1 : typeof c1, Symbol(c1, Decl(commentsInheritance.ts, 19, 1)) +>c1 : typeof c1 // assign to interface i1_i = c1_i; >i1_i = c1_i : c1 ->i1_i : i1, Symbol(i1_i, Decl(commentsInheritance.ts, 45, 3)) ->c1_i : c1, Symbol(c1_i, Decl(commentsInheritance.ts, 46, 3)) +>i1_i : i1 +>c1_i : c1 class c2 { ->c2 : c2, Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +>c2 : c2 /** c2 c2_p1*/ public c2_p1: number; ->c2_p1 : number, Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) +>c2_p1 : number /** c2 c2_f1*/ public c2_f1() { ->c2_f1 : () => void, Symbol(c2_f1, Decl(commentsInheritance.ts, 51, 25)) +>c2_f1 : () => void } /** c2 c2_prop*/ public get c2_prop() { ->c2_prop : number, Symbol(c2_prop, Decl(commentsInheritance.ts, 54, 5)) +>c2_prop : number return 10; >10 : number } public c2_nc_p1: number; ->c2_nc_p1 : number, Symbol(c2_nc_p1, Decl(commentsInheritance.ts, 58, 5)) +>c2_nc_p1 : number public c2_nc_f1() { ->c2_nc_f1 : () => void, Symbol(c2_nc_f1, Decl(commentsInheritance.ts, 59, 28)) +>c2_nc_f1 : () => void } public get c2_nc_prop() { ->c2_nc_prop : number, Symbol(c2_nc_prop, Decl(commentsInheritance.ts, 61, 5)) +>c2_nc_prop : number return 10; >10 : number } /** c2 p1*/ public p1: number; ->p1 : number, Symbol(p1, Decl(commentsInheritance.ts, 64, 5)) +>p1 : number /** c2 f1*/ public f1() { ->f1 : () => void, Symbol(f1, Decl(commentsInheritance.ts, 66, 22)) +>f1 : () => void } /** c2 prop*/ public get prop() { ->prop : number, Symbol(prop, Decl(commentsInheritance.ts, 69, 5)) +>prop : number return 10; >10 : number } public nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsInheritance.ts, 73, 5)) +>nc_p1 : number public nc_f1() { ->nc_f1 : () => void, Symbol(nc_f1, Decl(commentsInheritance.ts, 74, 25)) +>nc_f1 : () => void } public get nc_prop() { ->nc_prop : number, Symbol(nc_prop, Decl(commentsInheritance.ts, 76, 5)) +>nc_prop : number return 10; >10 : number } /** c2 constructor*/ constructor(a: number) { ->a : number, Symbol(a, Decl(commentsInheritance.ts, 81, 16)) +>a : number this.c2_p1 = a; >this.c2_p1 = a : number ->this.c2_p1 : number, Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) ->this : c2, Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) ->c2_p1 : number, Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) ->a : number, Symbol(a, Decl(commentsInheritance.ts, 81, 16)) +>this.c2_p1 : number +>this : c2 +>c2_p1 : number +>a : number } } class c3 extends c2 { ->c3 : c3, Symbol(c3, Decl(commentsInheritance.ts, 84, 1)) ->c2 : c2, Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +>c3 : c3 +>c2 : c2 constructor() { super(10); >super(10) : void ->super : typeof c2, Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +>super : typeof c2 >10 : number } /** c3 p1*/ public p1: number; ->p1 : number, Symbol(p1, Decl(commentsInheritance.ts, 88, 5)) +>p1 : number /** c3 f1*/ public f1() { ->f1 : () => void, Symbol(f1, Decl(commentsInheritance.ts, 90, 22)) +>f1 : () => void } /** c3 prop*/ public get prop() { ->prop : number, Symbol(prop, Decl(commentsInheritance.ts, 93, 5)) +>prop : number return 10; >10 : number } public nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsInheritance.ts, 97, 5)) +>nc_p1 : number public nc_f1() { ->nc_f1 : () => void, Symbol(nc_f1, Decl(commentsInheritance.ts, 98, 25)) +>nc_f1 : () => void } public get nc_prop() { ->nc_prop : number, Symbol(nc_prop, Decl(commentsInheritance.ts, 100, 5)) +>nc_prop : number return 10; >10 : number } } var c2_i = new c2(10); ->c2_i : c2, Symbol(c2_i, Decl(commentsInheritance.ts, 105, 3)) +>c2_i : c2 >new c2(10) : c2 ->c2 : typeof c2, Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +>c2 : typeof c2 >10 : number var c3_i = new c3(); ->c3_i : c3, Symbol(c3_i, Decl(commentsInheritance.ts, 106, 3)) +>c3_i : c3 >new c3() : c3 ->c3 : typeof c3, Symbol(c3, Decl(commentsInheritance.ts, 84, 1)) +>c3 : typeof c3 // assign c2_i = c3_i; >c2_i = c3_i : c3 ->c2_i : c2, Symbol(c2_i, Decl(commentsInheritance.ts, 105, 3)) ->c3_i : c3, Symbol(c3_i, Decl(commentsInheritance.ts, 106, 3)) +>c2_i : c2 +>c3_i : c3 class c4 extends c2 { ->c4 : c4, Symbol(c4, Decl(commentsInheritance.ts, 108, 12)) ->c2 : c2, Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) +>c4 : c4 +>c2 : c2 } var c4_i = new c4(10); ->c4_i : c4, Symbol(c4_i, Decl(commentsInheritance.ts, 111, 3)) +>c4_i : c4 >new c4(10) : c4 ->c4 : typeof c4, Symbol(c4, Decl(commentsInheritance.ts, 108, 12)) +>c4 : typeof c4 >10 : number interface i2 { ->i2 : i2, Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) +>i2 : i2 /** i2_p1*/ i2_p1: number; ->i2_p1 : number, Symbol(i2_p1, Decl(commentsInheritance.ts, 112, 14)) +>i2_p1 : number /** i2_f1*/ i2_f1(): void; ->i2_f1 : () => void, Symbol(i2_f1, Decl(commentsInheritance.ts, 114, 18)) +>i2_f1 : () => void /** i2_l1*/ i2_l1: () => void; ->i2_l1 : () => void, Symbol(i2_l1, Decl(commentsInheritance.ts, 116, 18)) +>i2_l1 : () => void // i2_nc_p1 i2_nc_p1: number; ->i2_nc_p1 : number, Symbol(i2_nc_p1, Decl(commentsInheritance.ts, 118, 22)) +>i2_nc_p1 : number i2_nc_f1(): void; ->i2_nc_f1 : () => void, Symbol(i2_nc_f1, Decl(commentsInheritance.ts, 120, 21)) +>i2_nc_f1 : () => void i2_nc_l1: () => void; ->i2_nc_l1 : () => void, Symbol(i2_nc_l1, Decl(commentsInheritance.ts, 121, 21)) +>i2_nc_l1 : () => void /** i2 p1*/ p1: number; ->p1 : number, Symbol(p1, Decl(commentsInheritance.ts, 122, 25)) +>p1 : number /** i2 f1*/ f1(): void; ->f1 : () => void, Symbol(f1, Decl(commentsInheritance.ts, 124, 15)) +>f1 : () => void /** i2 l1*/ l1: () => void; ->l1 : () => void, Symbol(l1, Decl(commentsInheritance.ts, 126, 15)) +>l1 : () => void nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsInheritance.ts, 128, 19)) +>nc_p1 : number nc_f1(): void; ->nc_f1 : () => void, Symbol(nc_f1, Decl(commentsInheritance.ts, 129, 18)) +>nc_f1 : () => void nc_l1: () => void; ->nc_l1 : () => void, Symbol(nc_l1, Decl(commentsInheritance.ts, 130, 18)) +>nc_l1 : () => void } interface i3 extends i2 { ->i3 : i3, Symbol(i3, Decl(commentsInheritance.ts, 132, 1)) ->i2 : i2, Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) +>i3 : i3 +>i2 : i2 /** i3 p1 */ p1: number; ->p1 : number, Symbol(p1, Decl(commentsInheritance.ts, 133, 25)) +>p1 : number /** * i3 f1 */ f1(): void; ->f1 : () => void, Symbol(f1, Decl(commentsInheritance.ts, 135, 15)) +>f1 : () => void /** i3 l1*/ l1: () => void; ->l1 : () => void, Symbol(l1, Decl(commentsInheritance.ts, 139, 15)) +>l1 : () => void nc_p1: number; ->nc_p1 : number, Symbol(nc_p1, Decl(commentsInheritance.ts, 141, 19)) +>nc_p1 : number nc_f1(): void; ->nc_f1 : () => void, Symbol(nc_f1, Decl(commentsInheritance.ts, 142, 18)) +>nc_f1 : () => void nc_l1: () => void; ->nc_l1 : () => void, Symbol(nc_l1, Decl(commentsInheritance.ts, 143, 18)) +>nc_l1 : () => void } var i2_i: i2; ->i2_i : i2, Symbol(i2_i, Decl(commentsInheritance.ts, 146, 3)) ->i2 : i2, Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) +>i2_i : i2 +>i2 : i2 var i3_i: i3; ->i3_i : i3, Symbol(i3_i, Decl(commentsInheritance.ts, 147, 3)) ->i3 : i3, Symbol(i3, Decl(commentsInheritance.ts, 132, 1)) +>i3_i : i3 +>i3 : i3 // assign to interface i2_i = i3_i; >i2_i = i3_i : i3 ->i2_i : i2, Symbol(i2_i, Decl(commentsInheritance.ts, 146, 3)) ->i3_i : i3, Symbol(i3_i, Decl(commentsInheritance.ts, 147, 3)) +>i2_i : i2 +>i3_i : i3 diff --git a/tests/baselines/reference/commentsInterface.symbols b/tests/baselines/reference/commentsInterface.symbols new file mode 100644 index 0000000000000..78d89989ed186 --- /dev/null +++ b/tests/baselines/reference/commentsInterface.symbols @@ -0,0 +1,224 @@ +=== tests/cases/compiler/commentsInterface.ts === +/** this is interface 1*/ +interface i1 { +>i1 : Symbol(i1, Decl(commentsInterface.ts, 0, 0)) +} +var i1_i: i1; +>i1_i : Symbol(i1_i, Decl(commentsInterface.ts, 3, 3)) +>i1 : Symbol(i1, Decl(commentsInterface.ts, 0, 0)) + +interface nc_i1 { +>nc_i1 : Symbol(nc_i1, Decl(commentsInterface.ts, 3, 13)) +} +var nc_i1_i: nc_i1; +>nc_i1_i : Symbol(nc_i1_i, Decl(commentsInterface.ts, 6, 3)) +>nc_i1 : Symbol(nc_i1, Decl(commentsInterface.ts, 3, 13)) + +/** this is interface 2 with memebers*/ +interface i2 { +>i2 : Symbol(i2, Decl(commentsInterface.ts, 6, 19)) + + /** this is x*/ + x: number; +>x : Symbol(x, Decl(commentsInterface.ts, 8, 14)) + + /** this is foo*/ + foo: (/**param help*/b: number) => string; +>foo : Symbol(foo, Decl(commentsInterface.ts, 10, 14)) +>b : Symbol(b, Decl(commentsInterface.ts, 12, 10)) + + /** this is indexer*/ + [/**string param*/i: string]: any; +>i : Symbol(i, Decl(commentsInterface.ts, 14, 5)) + + /**new method*/ + new (/** param*/i: i1); +>i : Symbol(i, Decl(commentsInterface.ts, 16, 9)) +>i1 : Symbol(i1, Decl(commentsInterface.ts, 0, 0)) + + nc_x: number; +>nc_x : Symbol(nc_x, Decl(commentsInterface.ts, 16, 27)) + + nc_foo: (b: number) => string; +>nc_foo : Symbol(nc_foo, Decl(commentsInterface.ts, 17, 17)) +>b : Symbol(b, Decl(commentsInterface.ts, 18, 13)) + + [i: number]: number; +>i : Symbol(i, Decl(commentsInterface.ts, 19, 5)) + + /** this is call signature*/ + (/**paramhelp a*/a: number,/**paramhelp b*/ b: number) : number; +>a : Symbol(a, Decl(commentsInterface.ts, 21, 5)) +>b : Symbol(b, Decl(commentsInterface.ts, 21, 31)) + + /** this is fnfoo*/ + fnfoo(/**param help*/b: number): string; +>fnfoo : Symbol(fnfoo, Decl(commentsInterface.ts, 21, 68)) +>b : Symbol(b, Decl(commentsInterface.ts, 23, 10)) + + nc_fnfoo(b: number): string; +>nc_fnfoo : Symbol(nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) +>b : Symbol(b, Decl(commentsInterface.ts, 24, 13)) + + // nc_y + nc_y: number; +>nc_y : Symbol(nc_y, Decl(commentsInterface.ts, 24, 32)) +} +var i2_i: i2; +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>i2 : Symbol(i2, Decl(commentsInterface.ts, 6, 19)) + +var i2_i_x = i2_i.x; +>i2_i_x : Symbol(i2_i_x, Decl(commentsInterface.ts, 29, 3)) +>i2_i.x : Symbol(i2.x, Decl(commentsInterface.ts, 8, 14)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>x : Symbol(i2.x, Decl(commentsInterface.ts, 8, 14)) + +var i2_i_foo = i2_i.foo; +>i2_i_foo : Symbol(i2_i_foo, Decl(commentsInterface.ts, 30, 3)) +>i2_i.foo : Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>foo : Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) + +var i2_i_foo_r = i2_i.foo(30); +>i2_i_foo_r : Symbol(i2_i_foo_r, Decl(commentsInterface.ts, 31, 3)) +>i2_i.foo : Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>foo : Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) + +var i2_i_i2_si = i2_i["hello"]; +>i2_i_i2_si : Symbol(i2_i_i2_si, Decl(commentsInterface.ts, 32, 3)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) + +var i2_i_i2_ii = i2_i[30]; +>i2_i_i2_ii : Symbol(i2_i_i2_ii, Decl(commentsInterface.ts, 33, 3)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) + +var i2_i_n = new i2_i(i1_i); +>i2_i_n : Symbol(i2_i_n, Decl(commentsInterface.ts, 34, 3)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>i1_i : Symbol(i1_i, Decl(commentsInterface.ts, 3, 3)) + +var i2_i_nc_x = i2_i.nc_x; +>i2_i_nc_x : Symbol(i2_i_nc_x, Decl(commentsInterface.ts, 35, 3)) +>i2_i.nc_x : Symbol(i2.nc_x, Decl(commentsInterface.ts, 16, 27)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>nc_x : Symbol(i2.nc_x, Decl(commentsInterface.ts, 16, 27)) + +var i2_i_nc_foo = i2_i.nc_foo; +>i2_i_nc_foo : Symbol(i2_i_nc_foo, Decl(commentsInterface.ts, 36, 3)) +>i2_i.nc_foo : Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>nc_foo : Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) + +var i2_i_nc_foo_r = i2_i.nc_foo(30); +>i2_i_nc_foo_r : Symbol(i2_i_nc_foo_r, Decl(commentsInterface.ts, 37, 3)) +>i2_i.nc_foo : Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>nc_foo : Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) + +var i2_i_r = i2_i(10, 20); +>i2_i_r : Symbol(i2_i_r, Decl(commentsInterface.ts, 38, 3)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) + +var i2_i_fnfoo = i2_i.fnfoo; +>i2_i_fnfoo : Symbol(i2_i_fnfoo, Decl(commentsInterface.ts, 39, 3)) +>i2_i.fnfoo : Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>fnfoo : Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) + +var i2_i_fnfoo_r = i2_i.fnfoo(10); +>i2_i_fnfoo_r : Symbol(i2_i_fnfoo_r, Decl(commentsInterface.ts, 40, 3)) +>i2_i.fnfoo : Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>fnfoo : Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) + +var i2_i_nc_fnfoo = i2_i.nc_fnfoo; +>i2_i_nc_fnfoo : Symbol(i2_i_nc_fnfoo, Decl(commentsInterface.ts, 41, 3)) +>i2_i.nc_fnfoo : Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>nc_fnfoo : Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) + +var i2_i_nc_fnfoo_r = i2_i.nc_fnfoo(10); +>i2_i_nc_fnfoo_r : Symbol(i2_i_nc_fnfoo_r, Decl(commentsInterface.ts, 42, 3)) +>i2_i.nc_fnfoo : Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) +>i2_i : Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>nc_fnfoo : Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) + +interface i3 { +>i3 : Symbol(i3, Decl(commentsInterface.ts, 42, 40)) + + /** Comment i3 x*/ + x: number; +>x : Symbol(x, Decl(commentsInterface.ts, 43, 14)) + + /** Function i3 f*/ + f(/**number parameter*/a: number): string; +>f : Symbol(f, Decl(commentsInterface.ts, 45, 14)) +>a : Symbol(a, Decl(commentsInterface.ts, 47, 6)) + + /** i3 l*/ + l: (/**comment i3 l b*/b: number) => string; +>l : Symbol(l, Decl(commentsInterface.ts, 47, 46)) +>b : Symbol(b, Decl(commentsInterface.ts, 49, 8)) + + nc_x: number; +>nc_x : Symbol(nc_x, Decl(commentsInterface.ts, 49, 48)) + + nc_f(a: number): string; +>nc_f : Symbol(nc_f, Decl(commentsInterface.ts, 50, 17)) +>a : Symbol(a, Decl(commentsInterface.ts, 51, 9)) + + nc_l: (b: number) => string; +>nc_l : Symbol(nc_l, Decl(commentsInterface.ts, 51, 28)) +>b : Symbol(b, Decl(commentsInterface.ts, 52, 11)) +} +var i3_i: i3; +>i3_i : Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) +>i3 : Symbol(i3, Decl(commentsInterface.ts, 42, 40)) + +i3_i = { +>i3_i : Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) + + f: /**own f*/ (/**i3_i a*/a: number) => "Hello" + a, +>f : Symbol(f, Decl(commentsInterface.ts, 55, 8)) +>a : Symbol(a, Decl(commentsInterface.ts, 56, 19)) +>a : Symbol(a, Decl(commentsInterface.ts, 56, 19)) + + l: this.f, +>l : Symbol(l, Decl(commentsInterface.ts, 56, 56)) + + /** own x*/ + x: this.f(10), +>x : Symbol(x, Decl(commentsInterface.ts, 57, 14)) + + nc_x: this.l(this.x), +>nc_x : Symbol(nc_x, Decl(commentsInterface.ts, 59, 18)) + + nc_f: this.f, +>nc_f : Symbol(nc_f, Decl(commentsInterface.ts, 60, 25)) + + nc_l: this.l +>nc_l : Symbol(nc_l, Decl(commentsInterface.ts, 61, 17)) + +}; +i3_i.f(10); +>i3_i.f : Symbol(i3.f, Decl(commentsInterface.ts, 45, 14)) +>i3_i : Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) +>f : Symbol(i3.f, Decl(commentsInterface.ts, 45, 14)) + +i3_i.l(10); +>i3_i.l : Symbol(i3.l, Decl(commentsInterface.ts, 47, 46)) +>i3_i : Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) +>l : Symbol(i3.l, Decl(commentsInterface.ts, 47, 46)) + +i3_i.nc_f(10); +>i3_i.nc_f : Symbol(i3.nc_f, Decl(commentsInterface.ts, 50, 17)) +>i3_i : Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) +>nc_f : Symbol(i3.nc_f, Decl(commentsInterface.ts, 50, 17)) + +i3_i.nc_l(10); +>i3_i.nc_l : Symbol(i3.nc_l, Decl(commentsInterface.ts, 51, 28)) +>i3_i : Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) +>nc_l : Symbol(i3.nc_l, Decl(commentsInterface.ts, 51, 28)) + diff --git a/tests/baselines/reference/commentsInterface.types b/tests/baselines/reference/commentsInterface.types index b3dae21bdfe35..13cc2b19f605c 100644 --- a/tests/baselines/reference/commentsInterface.types +++ b/tests/baselines/reference/commentsInterface.types @@ -1,220 +1,220 @@ === tests/cases/compiler/commentsInterface.ts === /** this is interface 1*/ interface i1 { ->i1 : i1, Symbol(i1, Decl(commentsInterface.ts, 0, 0)) +>i1 : i1 } var i1_i: i1; ->i1_i : i1, Symbol(i1_i, Decl(commentsInterface.ts, 3, 3)) ->i1 : i1, Symbol(i1, Decl(commentsInterface.ts, 0, 0)) +>i1_i : i1 +>i1 : i1 interface nc_i1 { ->nc_i1 : nc_i1, Symbol(nc_i1, Decl(commentsInterface.ts, 3, 13)) +>nc_i1 : nc_i1 } var nc_i1_i: nc_i1; ->nc_i1_i : nc_i1, Symbol(nc_i1_i, Decl(commentsInterface.ts, 6, 3)) ->nc_i1 : nc_i1, Symbol(nc_i1, Decl(commentsInterface.ts, 3, 13)) +>nc_i1_i : nc_i1 +>nc_i1 : nc_i1 /** this is interface 2 with memebers*/ interface i2 { ->i2 : i2, Symbol(i2, Decl(commentsInterface.ts, 6, 19)) +>i2 : i2 /** this is x*/ x: number; ->x : number, Symbol(x, Decl(commentsInterface.ts, 8, 14)) +>x : number /** this is foo*/ foo: (/**param help*/b: number) => string; ->foo : (b: number) => string, Symbol(foo, Decl(commentsInterface.ts, 10, 14)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 12, 10)) +>foo : (b: number) => string +>b : number /** this is indexer*/ [/**string param*/i: string]: any; ->i : string, Symbol(i, Decl(commentsInterface.ts, 14, 5)) +>i : string /**new method*/ new (/** param*/i: i1); ->i : i1, Symbol(i, Decl(commentsInterface.ts, 16, 9)) ->i1 : i1, Symbol(i1, Decl(commentsInterface.ts, 0, 0)) +>i : i1 +>i1 : i1 nc_x: number; ->nc_x : number, Symbol(nc_x, Decl(commentsInterface.ts, 16, 27)) +>nc_x : number nc_foo: (b: number) => string; ->nc_foo : (b: number) => string, Symbol(nc_foo, Decl(commentsInterface.ts, 17, 17)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 18, 13)) +>nc_foo : (b: number) => string +>b : number [i: number]: number; ->i : number, Symbol(i, Decl(commentsInterface.ts, 19, 5)) +>i : number /** this is call signature*/ (/**paramhelp a*/a: number,/**paramhelp b*/ b: number) : number; ->a : number, Symbol(a, Decl(commentsInterface.ts, 21, 5)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 21, 31)) +>a : number +>b : number /** this is fnfoo*/ fnfoo(/**param help*/b: number): string; ->fnfoo : (b: number) => string, Symbol(fnfoo, Decl(commentsInterface.ts, 21, 68)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 23, 10)) +>fnfoo : (b: number) => string +>b : number nc_fnfoo(b: number): string; ->nc_fnfoo : (b: number) => string, Symbol(nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 24, 13)) +>nc_fnfoo : (b: number) => string +>b : number // nc_y nc_y: number; ->nc_y : number, Symbol(nc_y, Decl(commentsInterface.ts, 24, 32)) +>nc_y : number } var i2_i: i2; ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->i2 : i2, Symbol(i2, Decl(commentsInterface.ts, 6, 19)) +>i2_i : i2 +>i2 : i2 var i2_i_x = i2_i.x; ->i2_i_x : number, Symbol(i2_i_x, Decl(commentsInterface.ts, 29, 3)) ->i2_i.x : number, Symbol(i2.x, Decl(commentsInterface.ts, 8, 14)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->x : number, Symbol(i2.x, Decl(commentsInterface.ts, 8, 14)) +>i2_i_x : number +>i2_i.x : number +>i2_i : i2 +>x : number var i2_i_foo = i2_i.foo; ->i2_i_foo : (b: number) => string, Symbol(i2_i_foo, Decl(commentsInterface.ts, 30, 3)) ->i2_i.foo : (b: number) => string, Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->foo : (b: number) => string, Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) +>i2_i_foo : (b: number) => string +>i2_i.foo : (b: number) => string +>i2_i : i2 +>foo : (b: number) => string var i2_i_foo_r = i2_i.foo(30); ->i2_i_foo_r : string, Symbol(i2_i_foo_r, Decl(commentsInterface.ts, 31, 3)) +>i2_i_foo_r : string >i2_i.foo(30) : string ->i2_i.foo : (b: number) => string, Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->foo : (b: number) => string, Symbol(i2.foo, Decl(commentsInterface.ts, 10, 14)) +>i2_i.foo : (b: number) => string +>i2_i : i2 +>foo : (b: number) => string >30 : number var i2_i_i2_si = i2_i["hello"]; ->i2_i_i2_si : any, Symbol(i2_i_i2_si, Decl(commentsInterface.ts, 32, 3)) +>i2_i_i2_si : any >i2_i["hello"] : any ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>i2_i : i2 >"hello" : string var i2_i_i2_ii = i2_i[30]; ->i2_i_i2_ii : number, Symbol(i2_i_i2_ii, Decl(commentsInterface.ts, 33, 3)) +>i2_i_i2_ii : number >i2_i[30] : number ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>i2_i : i2 >30 : number var i2_i_n = new i2_i(i1_i); ->i2_i_n : any, Symbol(i2_i_n, Decl(commentsInterface.ts, 34, 3)) +>i2_i_n : any >new i2_i(i1_i) : any ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->i1_i : i1, Symbol(i1_i, Decl(commentsInterface.ts, 3, 3)) +>i2_i : i2 +>i1_i : i1 var i2_i_nc_x = i2_i.nc_x; ->i2_i_nc_x : number, Symbol(i2_i_nc_x, Decl(commentsInterface.ts, 35, 3)) ->i2_i.nc_x : number, Symbol(i2.nc_x, Decl(commentsInterface.ts, 16, 27)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->nc_x : number, Symbol(i2.nc_x, Decl(commentsInterface.ts, 16, 27)) +>i2_i_nc_x : number +>i2_i.nc_x : number +>i2_i : i2 +>nc_x : number var i2_i_nc_foo = i2_i.nc_foo; ->i2_i_nc_foo : (b: number) => string, Symbol(i2_i_nc_foo, Decl(commentsInterface.ts, 36, 3)) ->i2_i.nc_foo : (b: number) => string, Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->nc_foo : (b: number) => string, Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) +>i2_i_nc_foo : (b: number) => string +>i2_i.nc_foo : (b: number) => string +>i2_i : i2 +>nc_foo : (b: number) => string var i2_i_nc_foo_r = i2_i.nc_foo(30); ->i2_i_nc_foo_r : string, Symbol(i2_i_nc_foo_r, Decl(commentsInterface.ts, 37, 3)) +>i2_i_nc_foo_r : string >i2_i.nc_foo(30) : string ->i2_i.nc_foo : (b: number) => string, Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->nc_foo : (b: number) => string, Symbol(i2.nc_foo, Decl(commentsInterface.ts, 17, 17)) +>i2_i.nc_foo : (b: number) => string +>i2_i : i2 +>nc_foo : (b: number) => string >30 : number var i2_i_r = i2_i(10, 20); ->i2_i_r : number, Symbol(i2_i_r, Decl(commentsInterface.ts, 38, 3)) +>i2_i_r : number >i2_i(10, 20) : number ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) +>i2_i : i2 >10 : number >20 : number var i2_i_fnfoo = i2_i.fnfoo; ->i2_i_fnfoo : (b: number) => string, Symbol(i2_i_fnfoo, Decl(commentsInterface.ts, 39, 3)) ->i2_i.fnfoo : (b: number) => string, Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->fnfoo : (b: number) => string, Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) +>i2_i_fnfoo : (b: number) => string +>i2_i.fnfoo : (b: number) => string +>i2_i : i2 +>fnfoo : (b: number) => string var i2_i_fnfoo_r = i2_i.fnfoo(10); ->i2_i_fnfoo_r : string, Symbol(i2_i_fnfoo_r, Decl(commentsInterface.ts, 40, 3)) +>i2_i_fnfoo_r : string >i2_i.fnfoo(10) : string ->i2_i.fnfoo : (b: number) => string, Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->fnfoo : (b: number) => string, Symbol(i2.fnfoo, Decl(commentsInterface.ts, 21, 68)) +>i2_i.fnfoo : (b: number) => string +>i2_i : i2 +>fnfoo : (b: number) => string >10 : number var i2_i_nc_fnfoo = i2_i.nc_fnfoo; ->i2_i_nc_fnfoo : (b: number) => string, Symbol(i2_i_nc_fnfoo, Decl(commentsInterface.ts, 41, 3)) ->i2_i.nc_fnfoo : (b: number) => string, Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->nc_fnfoo : (b: number) => string, Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) +>i2_i_nc_fnfoo : (b: number) => string +>i2_i.nc_fnfoo : (b: number) => string +>i2_i : i2 +>nc_fnfoo : (b: number) => string var i2_i_nc_fnfoo_r = i2_i.nc_fnfoo(10); ->i2_i_nc_fnfoo_r : string, Symbol(i2_i_nc_fnfoo_r, Decl(commentsInterface.ts, 42, 3)) +>i2_i_nc_fnfoo_r : string >i2_i.nc_fnfoo(10) : string ->i2_i.nc_fnfoo : (b: number) => string, Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) ->i2_i : i2, Symbol(i2_i, Decl(commentsInterface.ts, 28, 3)) ->nc_fnfoo : (b: number) => string, Symbol(i2.nc_fnfoo, Decl(commentsInterface.ts, 23, 44)) +>i2_i.nc_fnfoo : (b: number) => string +>i2_i : i2 +>nc_fnfoo : (b: number) => string >10 : number interface i3 { ->i3 : i3, Symbol(i3, Decl(commentsInterface.ts, 42, 40)) +>i3 : i3 /** Comment i3 x*/ x: number; ->x : number, Symbol(x, Decl(commentsInterface.ts, 43, 14)) +>x : number /** Function i3 f*/ f(/**number parameter*/a: number): string; ->f : (a: number) => string, Symbol(f, Decl(commentsInterface.ts, 45, 14)) ->a : number, Symbol(a, Decl(commentsInterface.ts, 47, 6)) +>f : (a: number) => string +>a : number /** i3 l*/ l: (/**comment i3 l b*/b: number) => string; ->l : (b: number) => string, Symbol(l, Decl(commentsInterface.ts, 47, 46)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 49, 8)) +>l : (b: number) => string +>b : number nc_x: number; ->nc_x : number, Symbol(nc_x, Decl(commentsInterface.ts, 49, 48)) +>nc_x : number nc_f(a: number): string; ->nc_f : (a: number) => string, Symbol(nc_f, Decl(commentsInterface.ts, 50, 17)) ->a : number, Symbol(a, Decl(commentsInterface.ts, 51, 9)) +>nc_f : (a: number) => string +>a : number nc_l: (b: number) => string; ->nc_l : (b: number) => string, Symbol(nc_l, Decl(commentsInterface.ts, 51, 28)) ->b : number, Symbol(b, Decl(commentsInterface.ts, 52, 11)) +>nc_l : (b: number) => string +>b : number } var i3_i: i3; ->i3_i : i3, Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) ->i3 : i3, Symbol(i3, Decl(commentsInterface.ts, 42, 40)) +>i3_i : i3 +>i3 : i3 i3_i = { >i3_i = { f: /**own f*/ (/**i3_i a*/a: number) => "Hello" + a, l: this.f, /** own x*/ x: this.f(10), nc_x: this.l(this.x), nc_f: this.f, nc_l: this.l} : { f: (a: number) => string; l: any; x: any; nc_x: any; nc_f: any; nc_l: any; } ->i3_i : i3, Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) +>i3_i : i3 >{ f: /**own f*/ (/**i3_i a*/a: number) => "Hello" + a, l: this.f, /** own x*/ x: this.f(10), nc_x: this.l(this.x), nc_f: this.f, nc_l: this.l} : { f: (a: number) => string; l: any; x: any; nc_x: any; nc_f: any; nc_l: any; } f: /**own f*/ (/**i3_i a*/a: number) => "Hello" + a, ->f : (a: number) => string, Symbol(f, Decl(commentsInterface.ts, 55, 8)) +>f : (a: number) => string >(/**i3_i a*/a: number) => "Hello" + a : (a: number) => string ->a : number, Symbol(a, Decl(commentsInterface.ts, 56, 19)) +>a : number >"Hello" + a : string >"Hello" : string ->a : number, Symbol(a, Decl(commentsInterface.ts, 56, 19)) +>a : number l: this.f, ->l : any, Symbol(l, Decl(commentsInterface.ts, 56, 56)) +>l : any >this.f : any >this : any >f : any /** own x*/ x: this.f(10), ->x : any, Symbol(x, Decl(commentsInterface.ts, 57, 14)) +>x : any >this.f(10) : any >this.f : any >this : any @@ -222,7 +222,7 @@ i3_i = { >10 : number nc_x: this.l(this.x), ->nc_x : any, Symbol(nc_x, Decl(commentsInterface.ts, 59, 18)) +>nc_x : any >this.l(this.x) : any >this.l : any >this : any @@ -232,13 +232,13 @@ i3_i = { >x : any nc_f: this.f, ->nc_f : any, Symbol(nc_f, Decl(commentsInterface.ts, 60, 25)) +>nc_f : any >this.f : any >this : any >f : any nc_l: this.l ->nc_l : any, Symbol(nc_l, Decl(commentsInterface.ts, 61, 17)) +>nc_l : any >this.l : any >this : any >l : any @@ -246,29 +246,29 @@ i3_i = { }; i3_i.f(10); >i3_i.f(10) : string ->i3_i.f : (a: number) => string, Symbol(i3.f, Decl(commentsInterface.ts, 45, 14)) ->i3_i : i3, Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) ->f : (a: number) => string, Symbol(i3.f, Decl(commentsInterface.ts, 45, 14)) +>i3_i.f : (a: number) => string +>i3_i : i3 +>f : (a: number) => string >10 : number i3_i.l(10); >i3_i.l(10) : string ->i3_i.l : (b: number) => string, Symbol(i3.l, Decl(commentsInterface.ts, 47, 46)) ->i3_i : i3, Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) ->l : (b: number) => string, Symbol(i3.l, Decl(commentsInterface.ts, 47, 46)) +>i3_i.l : (b: number) => string +>i3_i : i3 +>l : (b: number) => string >10 : number i3_i.nc_f(10); >i3_i.nc_f(10) : string ->i3_i.nc_f : (a: number) => string, Symbol(i3.nc_f, Decl(commentsInterface.ts, 50, 17)) ->i3_i : i3, Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) ->nc_f : (a: number) => string, Symbol(i3.nc_f, Decl(commentsInterface.ts, 50, 17)) +>i3_i.nc_f : (a: number) => string +>i3_i : i3 +>nc_f : (a: number) => string >10 : number i3_i.nc_l(10); >i3_i.nc_l(10) : string ->i3_i.nc_l : (b: number) => string, Symbol(i3.nc_l, Decl(commentsInterface.ts, 51, 28)) ->i3_i : i3, Symbol(i3_i, Decl(commentsInterface.ts, 54, 3)) ->nc_l : (b: number) => string, Symbol(i3.nc_l, Decl(commentsInterface.ts, 51, 28)) +>i3_i.nc_l : (b: number) => string +>i3_i : i3 +>nc_l : (b: number) => string >10 : number diff --git a/tests/baselines/reference/commentsModules.symbols b/tests/baselines/reference/commentsModules.symbols new file mode 100644 index 0000000000000..9d962588d6a6e --- /dev/null +++ b/tests/baselines/reference/commentsModules.symbols @@ -0,0 +1,216 @@ +=== tests/cases/compiler/commentsModules.ts === +/** Module comment*/ +module m1 { +>m1 : Symbol(m1, Decl(commentsModules.ts, 0, 0)) + + /** b's comment*/ + export var b: number; +>b : Symbol(b, Decl(commentsModules.ts, 3, 14)) + + /** foo's comment*/ + function foo() { +>foo : Symbol(foo, Decl(commentsModules.ts, 3, 25)) + + return b; +>b : Symbol(b, Decl(commentsModules.ts, 3, 14)) + } + /** m2 comments*/ + export module m2 { +>m2 : Symbol(m2, Decl(commentsModules.ts, 7, 5)) + + /** class comment;*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 9, 22)) + + }; + /** i*/ + export var i = new c(); +>i : Symbol(i, Decl(commentsModules.ts, 14, 18)) +>c : Symbol(c, Decl(commentsModules.ts, 9, 22)) + } + /** exported function*/ + export function fooExport() { +>fooExport : Symbol(fooExport, Decl(commentsModules.ts, 15, 5)) + + return foo(); +>foo : Symbol(foo, Decl(commentsModules.ts, 3, 25)) + } + + // shouldn't appear + export function foo2Export(/**hm*/ a: string) { +>foo2Export : Symbol(foo2Export, Decl(commentsModules.ts, 19, 5)) +>a : Symbol(a, Decl(commentsModules.ts, 22, 31)) + } + + /** foo3Export + * comment + */ + export function foo3Export() { +>foo3Export : Symbol(foo3Export, Decl(commentsModules.ts, 23, 5)) + } + + /** foo4Export + * comment + */ + function foo4Export() { +>foo4Export : Symbol(foo4Export, Decl(commentsModules.ts, 29, 5)) + } +} // trailing comment module +m1.fooExport(); +>m1.fooExport : Symbol(m1.fooExport, Decl(commentsModules.ts, 15, 5)) +>m1 : Symbol(m1, Decl(commentsModules.ts, 0, 0)) +>fooExport : Symbol(m1.fooExport, Decl(commentsModules.ts, 15, 5)) + +var myvar = new m1.m2.c(); +>myvar : Symbol(myvar, Decl(commentsModules.ts, 38, 3)) +>m1.m2.c : Symbol(m1.m2.c, Decl(commentsModules.ts, 9, 22)) +>m1.m2 : Symbol(m1.m2, Decl(commentsModules.ts, 7, 5)) +>m1 : Symbol(m1, Decl(commentsModules.ts, 0, 0)) +>m2 : Symbol(m1.m2, Decl(commentsModules.ts, 7, 5)) +>c : Symbol(m1.m2.c, Decl(commentsModules.ts, 9, 22)) + +/** module comment of m2.m3*/ +module m2.m3 { +>m2 : Symbol(m2, Decl(commentsModules.ts, 38, 26)) +>m3 : Symbol(m3, Decl(commentsModules.ts, 40, 10)) + + /** Exported class comment*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 40, 14)) + } +} /* trailing dotted module comment*/ +new m2.m3.c(); +>m2.m3.c : Symbol(m2.m3.c, Decl(commentsModules.ts, 40, 14)) +>m2.m3 : Symbol(m2.m3, Decl(commentsModules.ts, 40, 10)) +>m2 : Symbol(m2, Decl(commentsModules.ts, 38, 26)) +>m3 : Symbol(m2.m3, Decl(commentsModules.ts, 40, 10)) +>c : Symbol(m2.m3.c, Decl(commentsModules.ts, 40, 14)) + +/** module comment of m3.m4.m5*/ +module m3.m4.m5 { +>m3 : Symbol(m3, Decl(commentsModules.ts, 45, 14)) +>m4 : Symbol(m4, Decl(commentsModules.ts, 47, 10)) +>m5 : Symbol(m5, Decl(commentsModules.ts, 47, 13)) + + /** Exported class comment*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 47, 17)) + } +} // trailing dotted module 2 +new m3.m4.m5.c(); +>m3.m4.m5.c : Symbol(m3.m4.m5.c, Decl(commentsModules.ts, 47, 17)) +>m3.m4.m5 : Symbol(m3.m4.m5, Decl(commentsModules.ts, 47, 13)) +>m3.m4 : Symbol(m3.m4, Decl(commentsModules.ts, 47, 10)) +>m3 : Symbol(m3, Decl(commentsModules.ts, 45, 14)) +>m4 : Symbol(m3.m4, Decl(commentsModules.ts, 47, 10)) +>m5 : Symbol(m3.m4.m5, Decl(commentsModules.ts, 47, 13)) +>c : Symbol(m3.m4.m5.c, Decl(commentsModules.ts, 47, 17)) + +/** module comment of m4.m5.m6*/ +module m4.m5.m6 { +>m4 : Symbol(m4, Decl(commentsModules.ts, 52, 17)) +>m5 : Symbol(m5, Decl(commentsModules.ts, 54, 10)) +>m6 : Symbol(m6, Decl(commentsModules.ts, 54, 13)) + + export module m7 { +>m7 : Symbol(m7, Decl(commentsModules.ts, 54, 17)) + + /** Exported class comment*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 55, 22)) + } + } /* trailing inner module */ /* multiple comments*/ +} +new m4.m5.m6.m7.c(); +>m4.m5.m6.m7.c : Symbol(m4.m5.m6.m7.c, Decl(commentsModules.ts, 55, 22)) +>m4.m5.m6.m7 : Symbol(m4.m5.m6.m7, Decl(commentsModules.ts, 54, 17)) +>m4.m5.m6 : Symbol(m4.m5.m6, Decl(commentsModules.ts, 54, 13)) +>m4.m5 : Symbol(m4.m5, Decl(commentsModules.ts, 54, 10)) +>m4 : Symbol(m4, Decl(commentsModules.ts, 52, 17)) +>m5 : Symbol(m4.m5, Decl(commentsModules.ts, 54, 10)) +>m6 : Symbol(m4.m5.m6, Decl(commentsModules.ts, 54, 13)) +>m7 : Symbol(m4.m5.m6.m7, Decl(commentsModules.ts, 54, 17)) +>c : Symbol(m4.m5.m6.m7.c, Decl(commentsModules.ts, 55, 22)) + +/** module comment of m5.m6.m7*/ +module m5.m6.m7 { +>m5 : Symbol(m5, Decl(commentsModules.ts, 61, 20)) +>m6 : Symbol(m6, Decl(commentsModules.ts, 63, 10)) +>m7 : Symbol(m7, Decl(commentsModules.ts, 63, 13)) + + /** module m8 comment*/ + export module m8 { +>m8 : Symbol(m8, Decl(commentsModules.ts, 63, 17)) + + /** Exported class comment*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 65, 22)) + } + } +} +new m5.m6.m7.m8.c(); +>m5.m6.m7.m8.c : Symbol(m5.m6.m7.m8.c, Decl(commentsModules.ts, 65, 22)) +>m5.m6.m7.m8 : Symbol(m5.m6.m7.m8, Decl(commentsModules.ts, 63, 17)) +>m5.m6.m7 : Symbol(m5.m6.m7, Decl(commentsModules.ts, 63, 13)) +>m5.m6 : Symbol(m5.m6, Decl(commentsModules.ts, 63, 10)) +>m5 : Symbol(m5, Decl(commentsModules.ts, 61, 20)) +>m6 : Symbol(m5.m6, Decl(commentsModules.ts, 63, 10)) +>m7 : Symbol(m5.m6.m7, Decl(commentsModules.ts, 63, 13)) +>m8 : Symbol(m5.m6.m7.m8, Decl(commentsModules.ts, 63, 17)) +>c : Symbol(m5.m6.m7.m8.c, Decl(commentsModules.ts, 65, 22)) + +module m6.m7 { +>m6 : Symbol(m6, Decl(commentsModules.ts, 71, 20)) +>m7 : Symbol(m7, Decl(commentsModules.ts, 72, 10)) + + export module m8 { +>m8 : Symbol(m8, Decl(commentsModules.ts, 72, 14)) + + /** Exported class comment*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 73, 22)) + } + } +} +new m6.m7.m8.c(); +>m6.m7.m8.c : Symbol(m6.m7.m8.c, Decl(commentsModules.ts, 73, 22)) +>m6.m7.m8 : Symbol(m6.m7.m8, Decl(commentsModules.ts, 72, 14)) +>m6.m7 : Symbol(m6.m7, Decl(commentsModules.ts, 72, 10)) +>m6 : Symbol(m6, Decl(commentsModules.ts, 71, 20)) +>m7 : Symbol(m6.m7, Decl(commentsModules.ts, 72, 10)) +>m8 : Symbol(m6.m7.m8, Decl(commentsModules.ts, 72, 14)) +>c : Symbol(m6.m7.m8.c, Decl(commentsModules.ts, 73, 22)) + +module m7.m8 { +>m7 : Symbol(m7, Decl(commentsModules.ts, 79, 17)) +>m8 : Symbol(m8, Decl(commentsModules.ts, 80, 10)) + + /** module m9 comment*/ + export module m9 { +>m9 : Symbol(m9, Decl(commentsModules.ts, 80, 14)) + + /** Exported class comment*/ + export class c { +>c : Symbol(c, Decl(commentsModules.ts, 82, 22)) + } + + /** class d */ + class d { +>d : Symbol(d, Decl(commentsModules.ts, 85, 9)) + } + + // class e + export class e { +>e : Symbol(e, Decl(commentsModules.ts, 89, 9)) + } + } +} +new m7.m8.m9.c(); +>m7.m8.m9.c : Symbol(m7.m8.m9.c, Decl(commentsModules.ts, 82, 22)) +>m7.m8.m9 : Symbol(m7.m8.m9, Decl(commentsModules.ts, 80, 14)) +>m7.m8 : Symbol(m7.m8, Decl(commentsModules.ts, 80, 10)) +>m7 : Symbol(m7, Decl(commentsModules.ts, 79, 17)) +>m8 : Symbol(m7.m8, Decl(commentsModules.ts, 80, 10)) +>m9 : Symbol(m7.m8.m9, Decl(commentsModules.ts, 80, 14)) +>c : Symbol(m7.m8.m9.c, Decl(commentsModules.ts, 82, 22)) + diff --git a/tests/baselines/reference/commentsModules.types b/tests/baselines/reference/commentsModules.types index b9d439cb08def..1027f1ce308b2 100644 --- a/tests/baselines/reference/commentsModules.types +++ b/tests/baselines/reference/commentsModules.types @@ -1,226 +1,226 @@ === tests/cases/compiler/commentsModules.ts === /** Module comment*/ module m1 { ->m1 : typeof m1, Symbol(m1, Decl(commentsModules.ts, 0, 0)) +>m1 : typeof m1 /** b's comment*/ export var b: number; ->b : number, Symbol(b, Decl(commentsModules.ts, 3, 14)) +>b : number /** foo's comment*/ function foo() { ->foo : () => number, Symbol(foo, Decl(commentsModules.ts, 3, 25)) +>foo : () => number return b; ->b : number, Symbol(b, Decl(commentsModules.ts, 3, 14)) +>b : number } /** m2 comments*/ export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(commentsModules.ts, 7, 5)) +>m2 : typeof m2 /** class comment;*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 9, 22)) +>c : c }; /** i*/ export var i = new c(); ->i : c, Symbol(i, Decl(commentsModules.ts, 14, 18)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsModules.ts, 9, 22)) +>c : typeof c } /** exported function*/ export function fooExport() { ->fooExport : () => number, Symbol(fooExport, Decl(commentsModules.ts, 15, 5)) +>fooExport : () => number return foo(); >foo() : number ->foo : () => number, Symbol(foo, Decl(commentsModules.ts, 3, 25)) +>foo : () => number } // shouldn't appear export function foo2Export(/**hm*/ a: string) { ->foo2Export : (a: string) => void, Symbol(foo2Export, Decl(commentsModules.ts, 19, 5)) ->a : string, Symbol(a, Decl(commentsModules.ts, 22, 31)) +>foo2Export : (a: string) => void +>a : string } /** foo3Export * comment */ export function foo3Export() { ->foo3Export : () => void, Symbol(foo3Export, Decl(commentsModules.ts, 23, 5)) +>foo3Export : () => void } /** foo4Export * comment */ function foo4Export() { ->foo4Export : () => void, Symbol(foo4Export, Decl(commentsModules.ts, 29, 5)) +>foo4Export : () => void } } // trailing comment module m1.fooExport(); >m1.fooExport() : number ->m1.fooExport : () => number, Symbol(m1.fooExport, Decl(commentsModules.ts, 15, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsModules.ts, 0, 0)) ->fooExport : () => number, Symbol(m1.fooExport, Decl(commentsModules.ts, 15, 5)) +>m1.fooExport : () => number +>m1 : typeof m1 +>fooExport : () => number var myvar = new m1.m2.c(); ->myvar : m1.m2.c, Symbol(myvar, Decl(commentsModules.ts, 38, 3)) +>myvar : m1.m2.c >new m1.m2.c() : m1.m2.c ->m1.m2.c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsModules.ts, 9, 22)) ->m1.m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsModules.ts, 7, 5)) ->m1 : typeof m1, Symbol(m1, Decl(commentsModules.ts, 0, 0)) ->m2 : typeof m1.m2, Symbol(m1.m2, Decl(commentsModules.ts, 7, 5)) ->c : typeof m1.m2.c, Symbol(m1.m2.c, Decl(commentsModules.ts, 9, 22)) +>m1.m2.c : typeof m1.m2.c +>m1.m2 : typeof m1.m2 +>m1 : typeof m1 +>m2 : typeof m1.m2 +>c : typeof m1.m2.c /** module comment of m2.m3*/ module m2.m3 { ->m2 : typeof m2, Symbol(m2, Decl(commentsModules.ts, 38, 26)) ->m3 : typeof m3, Symbol(m3, Decl(commentsModules.ts, 40, 10)) +>m2 : typeof m2 +>m3 : typeof m3 /** Exported class comment*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 40, 14)) +>c : c } } /* trailing dotted module comment*/ new m2.m3.c(); >new m2.m3.c() : m2.m3.c ->m2.m3.c : typeof m2.m3.c, Symbol(m2.m3.c, Decl(commentsModules.ts, 40, 14)) ->m2.m3 : typeof m2.m3, Symbol(m2.m3, Decl(commentsModules.ts, 40, 10)) ->m2 : typeof m2, Symbol(m2, Decl(commentsModules.ts, 38, 26)) ->m3 : typeof m2.m3, Symbol(m2.m3, Decl(commentsModules.ts, 40, 10)) ->c : typeof m2.m3.c, Symbol(m2.m3.c, Decl(commentsModules.ts, 40, 14)) +>m2.m3.c : typeof m2.m3.c +>m2.m3 : typeof m2.m3 +>m2 : typeof m2 +>m3 : typeof m2.m3 +>c : typeof m2.m3.c /** module comment of m3.m4.m5*/ module m3.m4.m5 { ->m3 : typeof m3, Symbol(m3, Decl(commentsModules.ts, 45, 14)) ->m4 : typeof m4, Symbol(m4, Decl(commentsModules.ts, 47, 10)) ->m5 : typeof m5, Symbol(m5, Decl(commentsModules.ts, 47, 13)) +>m3 : typeof m3 +>m4 : typeof m4 +>m5 : typeof m5 /** Exported class comment*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 47, 17)) +>c : c } } // trailing dotted module 2 new m3.m4.m5.c(); >new m3.m4.m5.c() : m3.m4.m5.c ->m3.m4.m5.c : typeof m3.m4.m5.c, Symbol(m3.m4.m5.c, Decl(commentsModules.ts, 47, 17)) ->m3.m4.m5 : typeof m3.m4.m5, Symbol(m3.m4.m5, Decl(commentsModules.ts, 47, 13)) ->m3.m4 : typeof m3.m4, Symbol(m3.m4, Decl(commentsModules.ts, 47, 10)) ->m3 : typeof m3, Symbol(m3, Decl(commentsModules.ts, 45, 14)) ->m4 : typeof m3.m4, Symbol(m3.m4, Decl(commentsModules.ts, 47, 10)) ->m5 : typeof m3.m4.m5, Symbol(m3.m4.m5, Decl(commentsModules.ts, 47, 13)) ->c : typeof m3.m4.m5.c, Symbol(m3.m4.m5.c, Decl(commentsModules.ts, 47, 17)) +>m3.m4.m5.c : typeof m3.m4.m5.c +>m3.m4.m5 : typeof m3.m4.m5 +>m3.m4 : typeof m3.m4 +>m3 : typeof m3 +>m4 : typeof m3.m4 +>m5 : typeof m3.m4.m5 +>c : typeof m3.m4.m5.c /** module comment of m4.m5.m6*/ module m4.m5.m6 { ->m4 : typeof m4, Symbol(m4, Decl(commentsModules.ts, 52, 17)) ->m5 : typeof m5, Symbol(m5, Decl(commentsModules.ts, 54, 10)) ->m6 : typeof m6, Symbol(m6, Decl(commentsModules.ts, 54, 13)) +>m4 : typeof m4 +>m5 : typeof m5 +>m6 : typeof m6 export module m7 { ->m7 : typeof m7, Symbol(m7, Decl(commentsModules.ts, 54, 17)) +>m7 : typeof m7 /** Exported class comment*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 55, 22)) +>c : c } } /* trailing inner module */ /* multiple comments*/ } new m4.m5.m6.m7.c(); >new m4.m5.m6.m7.c() : m4.m5.m6.m7.c ->m4.m5.m6.m7.c : typeof m4.m5.m6.m7.c, Symbol(m4.m5.m6.m7.c, Decl(commentsModules.ts, 55, 22)) ->m4.m5.m6.m7 : typeof m4.m5.m6.m7, Symbol(m4.m5.m6.m7, Decl(commentsModules.ts, 54, 17)) ->m4.m5.m6 : typeof m4.m5.m6, Symbol(m4.m5.m6, Decl(commentsModules.ts, 54, 13)) ->m4.m5 : typeof m4.m5, Symbol(m4.m5, Decl(commentsModules.ts, 54, 10)) ->m4 : typeof m4, Symbol(m4, Decl(commentsModules.ts, 52, 17)) ->m5 : typeof m4.m5, Symbol(m4.m5, Decl(commentsModules.ts, 54, 10)) ->m6 : typeof m4.m5.m6, Symbol(m4.m5.m6, Decl(commentsModules.ts, 54, 13)) ->m7 : typeof m4.m5.m6.m7, Symbol(m4.m5.m6.m7, Decl(commentsModules.ts, 54, 17)) ->c : typeof m4.m5.m6.m7.c, Symbol(m4.m5.m6.m7.c, Decl(commentsModules.ts, 55, 22)) +>m4.m5.m6.m7.c : typeof m4.m5.m6.m7.c +>m4.m5.m6.m7 : typeof m4.m5.m6.m7 +>m4.m5.m6 : typeof m4.m5.m6 +>m4.m5 : typeof m4.m5 +>m4 : typeof m4 +>m5 : typeof m4.m5 +>m6 : typeof m4.m5.m6 +>m7 : typeof m4.m5.m6.m7 +>c : typeof m4.m5.m6.m7.c /** module comment of m5.m6.m7*/ module m5.m6.m7 { ->m5 : typeof m5, Symbol(m5, Decl(commentsModules.ts, 61, 20)) ->m6 : typeof m6, Symbol(m6, Decl(commentsModules.ts, 63, 10)) ->m7 : typeof m7, Symbol(m7, Decl(commentsModules.ts, 63, 13)) +>m5 : typeof m5 +>m6 : typeof m6 +>m7 : typeof m7 /** module m8 comment*/ export module m8 { ->m8 : typeof m8, Symbol(m8, Decl(commentsModules.ts, 63, 17)) +>m8 : typeof m8 /** Exported class comment*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 65, 22)) +>c : c } } } new m5.m6.m7.m8.c(); >new m5.m6.m7.m8.c() : m5.m6.m7.m8.c ->m5.m6.m7.m8.c : typeof m5.m6.m7.m8.c, Symbol(m5.m6.m7.m8.c, Decl(commentsModules.ts, 65, 22)) ->m5.m6.m7.m8 : typeof m5.m6.m7.m8, Symbol(m5.m6.m7.m8, Decl(commentsModules.ts, 63, 17)) ->m5.m6.m7 : typeof m5.m6.m7, Symbol(m5.m6.m7, Decl(commentsModules.ts, 63, 13)) ->m5.m6 : typeof m5.m6, Symbol(m5.m6, Decl(commentsModules.ts, 63, 10)) ->m5 : typeof m5, Symbol(m5, Decl(commentsModules.ts, 61, 20)) ->m6 : typeof m5.m6, Symbol(m5.m6, Decl(commentsModules.ts, 63, 10)) ->m7 : typeof m5.m6.m7, Symbol(m5.m6.m7, Decl(commentsModules.ts, 63, 13)) ->m8 : typeof m5.m6.m7.m8, Symbol(m5.m6.m7.m8, Decl(commentsModules.ts, 63, 17)) ->c : typeof m5.m6.m7.m8.c, Symbol(m5.m6.m7.m8.c, Decl(commentsModules.ts, 65, 22)) +>m5.m6.m7.m8.c : typeof m5.m6.m7.m8.c +>m5.m6.m7.m8 : typeof m5.m6.m7.m8 +>m5.m6.m7 : typeof m5.m6.m7 +>m5.m6 : typeof m5.m6 +>m5 : typeof m5 +>m6 : typeof m5.m6 +>m7 : typeof m5.m6.m7 +>m8 : typeof m5.m6.m7.m8 +>c : typeof m5.m6.m7.m8.c module m6.m7 { ->m6 : typeof m6, Symbol(m6, Decl(commentsModules.ts, 71, 20)) ->m7 : typeof m7, Symbol(m7, Decl(commentsModules.ts, 72, 10)) +>m6 : typeof m6 +>m7 : typeof m7 export module m8 { ->m8 : typeof m8, Symbol(m8, Decl(commentsModules.ts, 72, 14)) +>m8 : typeof m8 /** Exported class comment*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 73, 22)) +>c : c } } } new m6.m7.m8.c(); >new m6.m7.m8.c() : m6.m7.m8.c ->m6.m7.m8.c : typeof m6.m7.m8.c, Symbol(m6.m7.m8.c, Decl(commentsModules.ts, 73, 22)) ->m6.m7.m8 : typeof m6.m7.m8, Symbol(m6.m7.m8, Decl(commentsModules.ts, 72, 14)) ->m6.m7 : typeof m6.m7, Symbol(m6.m7, Decl(commentsModules.ts, 72, 10)) ->m6 : typeof m6, Symbol(m6, Decl(commentsModules.ts, 71, 20)) ->m7 : typeof m6.m7, Symbol(m6.m7, Decl(commentsModules.ts, 72, 10)) ->m8 : typeof m6.m7.m8, Symbol(m6.m7.m8, Decl(commentsModules.ts, 72, 14)) ->c : typeof m6.m7.m8.c, Symbol(m6.m7.m8.c, Decl(commentsModules.ts, 73, 22)) +>m6.m7.m8.c : typeof m6.m7.m8.c +>m6.m7.m8 : typeof m6.m7.m8 +>m6.m7 : typeof m6.m7 +>m6 : typeof m6 +>m7 : typeof m6.m7 +>m8 : typeof m6.m7.m8 +>c : typeof m6.m7.m8.c module m7.m8 { ->m7 : typeof m7, Symbol(m7, Decl(commentsModules.ts, 79, 17)) ->m8 : typeof m8, Symbol(m8, Decl(commentsModules.ts, 80, 10)) +>m7 : typeof m7 +>m8 : typeof m8 /** module m9 comment*/ export module m9 { ->m9 : typeof m9, Symbol(m9, Decl(commentsModules.ts, 80, 14)) +>m9 : typeof m9 /** Exported class comment*/ export class c { ->c : c, Symbol(c, Decl(commentsModules.ts, 82, 22)) +>c : c } /** class d */ class d { ->d : d, Symbol(d, Decl(commentsModules.ts, 85, 9)) +>d : d } // class e export class e { ->e : e, Symbol(e, Decl(commentsModules.ts, 89, 9)) +>e : e } } } new m7.m8.m9.c(); >new m7.m8.m9.c() : m7.m8.m9.c ->m7.m8.m9.c : typeof m7.m8.m9.c, Symbol(m7.m8.m9.c, Decl(commentsModules.ts, 82, 22)) ->m7.m8.m9 : typeof m7.m8.m9, Symbol(m7.m8.m9, Decl(commentsModules.ts, 80, 14)) ->m7.m8 : typeof m7.m8, Symbol(m7.m8, Decl(commentsModules.ts, 80, 10)) ->m7 : typeof m7, Symbol(m7, Decl(commentsModules.ts, 79, 17)) ->m8 : typeof m7.m8, Symbol(m7.m8, Decl(commentsModules.ts, 80, 10)) ->m9 : typeof m7.m8.m9, Symbol(m7.m8.m9, Decl(commentsModules.ts, 80, 14)) ->c : typeof m7.m8.m9.c, Symbol(m7.m8.m9.c, Decl(commentsModules.ts, 82, 22)) +>m7.m8.m9.c : typeof m7.m8.m9.c +>m7.m8.m9 : typeof m7.m8.m9 +>m7.m8 : typeof m7.m8 +>m7 : typeof m7 +>m8 : typeof m7.m8 +>m9 : typeof m7.m8.m9 +>c : typeof m7.m8.m9.c diff --git a/tests/baselines/reference/commentsMultiModuleMultiFile.symbols b/tests/baselines/reference/commentsMultiModuleMultiFile.symbols new file mode 100644 index 0000000000000..1ca90840af4f9 --- /dev/null +++ b/tests/baselines/reference/commentsMultiModuleMultiFile.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/commentsMultiModuleMultiFile_1.ts === +import m = require('commentsMultiModuleMultiFile_0'); +>m : Symbol(m, Decl(commentsMultiModuleMultiFile_1.ts, 0, 0)) + +/** this is multi module 3 comment*/ +export module multiM { +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_1.ts, 0, 53)) + + /** class d comment*/ + export class d { +>d : Symbol(d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 22)) + } + + /// class f comment + export class f { +>f : Symbol(f, Decl(commentsMultiModuleMultiFile_1.ts, 5, 5)) + } +} +new multiM.d(); +>multiM.d : Symbol(multiM.d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 22)) +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_1.ts, 0, 53)) +>d : Symbol(multiM.d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 22)) + +=== tests/cases/compiler/commentsMultiModuleMultiFile_0.ts === + +/** this is multi declare module*/ +export module multiM { +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) + + /// class b comment + export class b { +>b : Symbol(b, Decl(commentsMultiModuleMultiFile_0.ts, 2, 22)) + } +} +/** thi is multi module 2*/ +export module multiM { +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) + + /** class c comment*/ + export class c { +>c : Symbol(c, Decl(commentsMultiModuleMultiFile_0.ts, 8, 22)) + } + + // class e comment + export class e { +>e : Symbol(e, Decl(commentsMultiModuleMultiFile_0.ts, 11, 5)) + } +} + +new multiM.b(); +>multiM.b : Symbol(multiM.b, Decl(commentsMultiModuleMultiFile_0.ts, 2, 22)) +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) +>b : Symbol(multiM.b, Decl(commentsMultiModuleMultiFile_0.ts, 2, 22)) + +new multiM.c(); +>multiM.c : Symbol(multiM.c, Decl(commentsMultiModuleMultiFile_0.ts, 8, 22)) +>multiM : Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) +>c : Symbol(multiM.c, Decl(commentsMultiModuleMultiFile_0.ts, 8, 22)) + diff --git a/tests/baselines/reference/commentsMultiModuleMultiFile.types b/tests/baselines/reference/commentsMultiModuleMultiFile.types index e8514efac0c69..c0f3fb1b8756d 100644 --- a/tests/baselines/reference/commentsMultiModuleMultiFile.types +++ b/tests/baselines/reference/commentsMultiModuleMultiFile.types @@ -1,62 +1,62 @@ === tests/cases/compiler/commentsMultiModuleMultiFile_1.ts === import m = require('commentsMultiModuleMultiFile_0'); ->m : typeof m, Symbol(m, Decl(commentsMultiModuleMultiFile_1.ts, 0, 0)) +>m : typeof m /** this is multi module 3 comment*/ export module multiM { ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleMultiFile_1.ts, 0, 53)) +>multiM : typeof multiM /** class d comment*/ export class d { ->d : d, Symbol(d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 22)) +>d : d } /// class f comment export class f { ->f : f, Symbol(f, Decl(commentsMultiModuleMultiFile_1.ts, 5, 5)) +>f : f } } new multiM.d(); >new multiM.d() : multiM.d ->multiM.d : typeof multiM.d, Symbol(multiM.d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 22)) ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleMultiFile_1.ts, 0, 53)) ->d : typeof multiM.d, Symbol(multiM.d, Decl(commentsMultiModuleMultiFile_1.ts, 2, 22)) +>multiM.d : typeof multiM.d +>multiM : typeof multiM +>d : typeof multiM.d === tests/cases/compiler/commentsMultiModuleMultiFile_0.ts === /** this is multi declare module*/ export module multiM { ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) +>multiM : typeof multiM /// class b comment export class b { ->b : b, Symbol(b, Decl(commentsMultiModuleMultiFile_0.ts, 2, 22)) +>b : b } } /** thi is multi module 2*/ export module multiM { ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) +>multiM : typeof multiM /** class c comment*/ export class c { ->c : c, Symbol(c, Decl(commentsMultiModuleMultiFile_0.ts, 8, 22)) +>c : c } // class e comment export class e { ->e : e, Symbol(e, Decl(commentsMultiModuleMultiFile_0.ts, 11, 5)) +>e : e } } new multiM.b(); >new multiM.b() : multiM.b ->multiM.b : typeof multiM.b, Symbol(multiM.b, Decl(commentsMultiModuleMultiFile_0.ts, 2, 22)) ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) ->b : typeof multiM.b, Symbol(multiM.b, Decl(commentsMultiModuleMultiFile_0.ts, 2, 22)) +>multiM.b : typeof multiM.b +>multiM : typeof multiM +>b : typeof multiM.b new multiM.c(); >new multiM.c() : multiM.c ->multiM.c : typeof multiM.c, Symbol(multiM.c, Decl(commentsMultiModuleMultiFile_0.ts, 8, 22)) ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleMultiFile_0.ts, 0, 0), Decl(commentsMultiModuleMultiFile_0.ts, 6, 1)) ->c : typeof multiM.c, Symbol(multiM.c, Decl(commentsMultiModuleMultiFile_0.ts, 8, 22)) +>multiM.c : typeof multiM.c +>multiM : typeof multiM +>c : typeof multiM.c diff --git a/tests/baselines/reference/commentsMultiModuleSingleFile.symbols b/tests/baselines/reference/commentsMultiModuleSingleFile.symbols new file mode 100644 index 0000000000000..678d9aaf8305c --- /dev/null +++ b/tests/baselines/reference/commentsMultiModuleSingleFile.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/commentsMultiModuleSingleFile.ts === + +/** this is multi declare module*/ +module multiM { +>multiM : Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) + + /** class b*/ + export class b { +>b : Symbol(b, Decl(commentsMultiModuleSingleFile.ts, 2, 15)) + } + + // class d + export class d { +>d : Symbol(d, Decl(commentsMultiModuleSingleFile.ts, 5, 5)) + } +} + +/// this is multi module 2 +module multiM { +>multiM : Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) + + /** class c comment*/ + export class c { +>c : Symbol(c, Decl(commentsMultiModuleSingleFile.ts, 13, 15)) + } + + /// class e + export class e { +>e : Symbol(e, Decl(commentsMultiModuleSingleFile.ts, 16, 5)) + } +} +new multiM.b(); +>multiM.b : Symbol(multiM.b, Decl(commentsMultiModuleSingleFile.ts, 2, 15)) +>multiM : Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) +>b : Symbol(multiM.b, Decl(commentsMultiModuleSingleFile.ts, 2, 15)) + +new multiM.c(); +>multiM.c : Symbol(multiM.c, Decl(commentsMultiModuleSingleFile.ts, 13, 15)) +>multiM : Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) +>c : Symbol(multiM.c, Decl(commentsMultiModuleSingleFile.ts, 13, 15)) + diff --git a/tests/baselines/reference/commentsMultiModuleSingleFile.types b/tests/baselines/reference/commentsMultiModuleSingleFile.types index b455140126b4d..29c18639c21f9 100644 --- a/tests/baselines/reference/commentsMultiModuleSingleFile.types +++ b/tests/baselines/reference/commentsMultiModuleSingleFile.types @@ -2,42 +2,42 @@ /** this is multi declare module*/ module multiM { ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) +>multiM : typeof multiM /** class b*/ export class b { ->b : b, Symbol(b, Decl(commentsMultiModuleSingleFile.ts, 2, 15)) +>b : b } // class d export class d { ->d : d, Symbol(d, Decl(commentsMultiModuleSingleFile.ts, 5, 5)) +>d : d } } /// this is multi module 2 module multiM { ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) +>multiM : typeof multiM /** class c comment*/ export class c { ->c : c, Symbol(c, Decl(commentsMultiModuleSingleFile.ts, 13, 15)) +>c : c } /// class e export class e { ->e : e, Symbol(e, Decl(commentsMultiModuleSingleFile.ts, 16, 5)) +>e : e } } new multiM.b(); >new multiM.b() : multiM.b ->multiM.b : typeof multiM.b, Symbol(multiM.b, Decl(commentsMultiModuleSingleFile.ts, 2, 15)) ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) ->b : typeof multiM.b, Symbol(multiM.b, Decl(commentsMultiModuleSingleFile.ts, 2, 15)) +>multiM.b : typeof multiM.b +>multiM : typeof multiM +>b : typeof multiM.b new multiM.c(); >new multiM.c() : multiM.c ->multiM.c : typeof multiM.c, Symbol(multiM.c, Decl(commentsMultiModuleSingleFile.ts, 13, 15)) ->multiM : typeof multiM, Symbol(multiM, Decl(commentsMultiModuleSingleFile.ts, 0, 0), Decl(commentsMultiModuleSingleFile.ts, 10, 1)) ->c : typeof multiM.c, Symbol(multiM.c, Decl(commentsMultiModuleSingleFile.ts, 13, 15)) +>multiM.c : typeof multiM.c +>multiM : typeof multiM +>c : typeof multiM.c diff --git a/tests/baselines/reference/commentsOnObjectLiteral3.symbols b/tests/baselines/reference/commentsOnObjectLiteral3.symbols new file mode 100644 index 0000000000000..3d58fe2d6d7eb --- /dev/null +++ b/tests/baselines/reference/commentsOnObjectLiteral3.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/commentsOnObjectLiteral3.ts === + +var v = { +>v : Symbol(v, Decl(commentsOnObjectLiteral3.ts, 1, 3)) + + //property + prop: 1 /* multiple trailing comments */ /*trailing comments*/, +>prop : Symbol(prop, Decl(commentsOnObjectLiteral3.ts, 1, 9)) + + //property + func: function () { +>func : Symbol(func, Decl(commentsOnObjectLiteral3.ts, 3, 64)) + + }, + //PropertyName + CallSignature + func1() { }, +>func1 : Symbol(func1, Decl(commentsOnObjectLiteral3.ts, 6, 3)) + + //getter + get a() { +>a : Symbol(a, Decl(commentsOnObjectLiteral3.ts, 8, 13), Decl(commentsOnObjectLiteral3.ts, 12, 18)) + + return this.prop; + } /*trailing 1*/, + //setter + set a(value) { +>a : Symbol(a, Decl(commentsOnObjectLiteral3.ts, 8, 13), Decl(commentsOnObjectLiteral3.ts, 12, 18)) +>value : Symbol(value, Decl(commentsOnObjectLiteral3.ts, 14, 7)) + + this.prop = value; +>value : Symbol(value, Decl(commentsOnObjectLiteral3.ts, 14, 7)) + + } // trailing 2 +}; + diff --git a/tests/baselines/reference/commentsOnObjectLiteral3.types b/tests/baselines/reference/commentsOnObjectLiteral3.types index a97ae388c0217..a63920fce0f3a 100644 --- a/tests/baselines/reference/commentsOnObjectLiteral3.types +++ b/tests/baselines/reference/commentsOnObjectLiteral3.types @@ -1,27 +1,27 @@ === tests/cases/compiler/commentsOnObjectLiteral3.ts === var v = { ->v : { prop: number; func: () => void; func1(): void; a: any; }, Symbol(v, Decl(commentsOnObjectLiteral3.ts, 1, 3)) +>v : { prop: number; func: () => void; func1(): void; a: any; } >{ //property prop: 1 /* multiple trailing comments */ /*trailing comments*/, //property func: function () { }, //PropertyName + CallSignature func1() { }, //getter get a() { return this.prop; } /*trailing 1*/, //setter set a(value) { this.prop = value; } // trailing 2} : { prop: number; func: () => void; func1(): void; a: any; } //property prop: 1 /* multiple trailing comments */ /*trailing comments*/, ->prop : number, Symbol(prop, Decl(commentsOnObjectLiteral3.ts, 1, 9)) +>prop : number >1 : number //property func: function () { ->func : () => void, Symbol(func, Decl(commentsOnObjectLiteral3.ts, 3, 64)) +>func : () => void >function () { } : () => void }, //PropertyName + CallSignature func1() { }, ->func1 : () => void, Symbol(func1, Decl(commentsOnObjectLiteral3.ts, 6, 3)) +>func1 : () => void //getter get a() { ->a : any, Symbol(a, Decl(commentsOnObjectLiteral3.ts, 8, 13), Decl(commentsOnObjectLiteral3.ts, 12, 18)) +>a : any return this.prop; >this.prop : any @@ -31,15 +31,15 @@ var v = { } /*trailing 1*/, //setter set a(value) { ->a : any, Symbol(a, Decl(commentsOnObjectLiteral3.ts, 8, 13), Decl(commentsOnObjectLiteral3.ts, 12, 18)) ->value : any, Symbol(value, Decl(commentsOnObjectLiteral3.ts, 14, 7)) +>a : any +>value : any this.prop = value; >this.prop = value : any >this.prop : any >this : any >prop : any ->value : any, Symbol(value, Decl(commentsOnObjectLiteral3.ts, 14, 7)) +>value : any } // trailing 2 }; diff --git a/tests/baselines/reference/commentsOnObjectLiteral4.symbols b/tests/baselines/reference/commentsOnObjectLiteral4.symbols new file mode 100644 index 0000000000000..c1762cb75c8e8 --- /dev/null +++ b/tests/baselines/reference/commentsOnObjectLiteral4.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/commentsOnObjectLiteral4.ts === + +var v = { +>v : Symbol(v, Decl(commentsOnObjectLiteral4.ts, 1, 3)) + + /** + * @type {number} + */ + get bar(): number { +>bar : Symbol(bar, Decl(commentsOnObjectLiteral4.ts, 1, 9)) + + return this._bar; + } +} diff --git a/tests/baselines/reference/commentsOnObjectLiteral4.types b/tests/baselines/reference/commentsOnObjectLiteral4.types index 8e707865cfa4a..364df6e5ea1fd 100644 --- a/tests/baselines/reference/commentsOnObjectLiteral4.types +++ b/tests/baselines/reference/commentsOnObjectLiteral4.types @@ -1,14 +1,14 @@ === tests/cases/compiler/commentsOnObjectLiteral4.ts === var v = { ->v : { bar: number; }, Symbol(v, Decl(commentsOnObjectLiteral4.ts, 1, 3)) +>v : { bar: number; } >{ /** * @type {number} */ get bar(): number { return this._bar; }} : { bar: number; } /** * @type {number} */ get bar(): number { ->bar : number, Symbol(bar, Decl(commentsOnObjectLiteral4.ts, 1, 9)) +>bar : number return this._bar; >this._bar : any diff --git a/tests/baselines/reference/commentsOnReturnStatement1.symbols b/tests/baselines/reference/commentsOnReturnStatement1.symbols new file mode 100644 index 0000000000000..5c75e2e29d9e9 --- /dev/null +++ b/tests/baselines/reference/commentsOnReturnStatement1.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/commentsOnReturnStatement1.ts === +class DebugClass { +>DebugClass : Symbol(DebugClass, Decl(commentsOnReturnStatement1.ts, 0, 0)) + + public static debugFunc() { +>debugFunc : Symbol(DebugClass.debugFunc, Decl(commentsOnReturnStatement1.ts, 0, 18)) + + // Start Debugger Test Code + var i = 0; +>i : Symbol(i, Decl(commentsOnReturnStatement1.ts, 3, 11)) + + // End Debugger Test Code + return true; + } +} diff --git a/tests/baselines/reference/commentsOnReturnStatement1.types b/tests/baselines/reference/commentsOnReturnStatement1.types index b4831d61ef1fa..d44c91c0a8c5a 100644 --- a/tests/baselines/reference/commentsOnReturnStatement1.types +++ b/tests/baselines/reference/commentsOnReturnStatement1.types @@ -1,13 +1,13 @@ === tests/cases/compiler/commentsOnReturnStatement1.ts === class DebugClass { ->DebugClass : DebugClass, Symbol(DebugClass, Decl(commentsOnReturnStatement1.ts, 0, 0)) +>DebugClass : DebugClass public static debugFunc() { ->debugFunc : () => boolean, Symbol(DebugClass.debugFunc, Decl(commentsOnReturnStatement1.ts, 0, 18)) +>debugFunc : () => boolean // Start Debugger Test Code var i = 0; ->i : number, Symbol(i, Decl(commentsOnReturnStatement1.ts, 3, 11)) +>i : number >0 : number // End Debugger Test Code diff --git a/tests/baselines/reference/commentsOnStaticMembers.symbols b/tests/baselines/reference/commentsOnStaticMembers.symbols new file mode 100644 index 0000000000000..4e59ba7bca97c --- /dev/null +++ b/tests/baselines/reference/commentsOnStaticMembers.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/commentsOnStaticMembers.ts === + +class test { +>test : Symbol(test, Decl(commentsOnStaticMembers.ts, 0, 0)) + + /** + * p1 comment appears in output + */ + public static p1: string = ""; +>p1 : Symbol(test.p1, Decl(commentsOnStaticMembers.ts, 1, 12)) + + /** + * p2 comment does not appear in output + */ + public static p2: string; +>p2 : Symbol(test.p2, Decl(commentsOnStaticMembers.ts, 5, 34)) + + /** + * p3 comment appears in output + */ + private static p3: string = ""; +>p3 : Symbol(test.p3, Decl(commentsOnStaticMembers.ts, 9, 29)) + + /** + * p4 comment does not appear in output + */ + private static p4: string; +>p4 : Symbol(test.p4, Decl(commentsOnStaticMembers.ts, 14, 35)) +} diff --git a/tests/baselines/reference/commentsOnStaticMembers.types b/tests/baselines/reference/commentsOnStaticMembers.types index b841952daea59..46a1ca211ffd1 100644 --- a/tests/baselines/reference/commentsOnStaticMembers.types +++ b/tests/baselines/reference/commentsOnStaticMembers.types @@ -1,31 +1,31 @@ === tests/cases/compiler/commentsOnStaticMembers.ts === class test { ->test : test, Symbol(test, Decl(commentsOnStaticMembers.ts, 0, 0)) +>test : test /** * p1 comment appears in output */ public static p1: string = ""; ->p1 : string, Symbol(test.p1, Decl(commentsOnStaticMembers.ts, 1, 12)) +>p1 : string >"" : string /** * p2 comment does not appear in output */ public static p2: string; ->p2 : string, Symbol(test.p2, Decl(commentsOnStaticMembers.ts, 5, 34)) +>p2 : string /** * p3 comment appears in output */ private static p3: string = ""; ->p3 : string, Symbol(test.p3, Decl(commentsOnStaticMembers.ts, 9, 29)) +>p3 : string >"" : string /** * p4 comment does not appear in output */ private static p4: string; ->p4 : string, Symbol(test.p4, Decl(commentsOnStaticMembers.ts, 14, 35)) +>p4 : string } diff --git a/tests/baselines/reference/commentsOverloads.symbols b/tests/baselines/reference/commentsOverloads.symbols new file mode 100644 index 0000000000000..b504e35c5ac43 --- /dev/null +++ b/tests/baselines/reference/commentsOverloads.symbols @@ -0,0 +1,417 @@ +=== tests/cases/compiler/commentsOverloads.ts === +/** this is signature 1*/ +function f1(/**param a*/a: number): number; +>f1 : Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) +>a : Symbol(a, Decl(commentsOverloads.ts, 1, 12)) + +function f1(b: string): number; +>f1 : Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) +>b : Symbol(b, Decl(commentsOverloads.ts, 2, 12)) + +function f1(aOrb: any) { +>f1 : Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) +>aOrb : Symbol(aOrb, Decl(commentsOverloads.ts, 3, 12)) + + return 10; +} +f1("hello"); +>f1 : Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) + +f1(10); +>f1 : Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) + +function f2(a: number): number; +>f2 : Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) +>a : Symbol(a, Decl(commentsOverloads.ts, 8, 12)) + +/** this is signature 2*/ +function f2(b: string): number; +>f2 : Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) +>b : Symbol(b, Decl(commentsOverloads.ts, 10, 12)) + +/** this is f2 var comment*/ +function f2(aOrb: any) { +>f2 : Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) +>aOrb : Symbol(aOrb, Decl(commentsOverloads.ts, 12, 12)) + + return 10; +} +f2("hello"); +>f2 : Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) + +f2(10); +>f2 : Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) + +function f3(a: number): number; +>f3 : Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) +>a : Symbol(a, Decl(commentsOverloads.ts, 17, 12)) + +function f3(b: string): number; +>f3 : Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) +>b : Symbol(b, Decl(commentsOverloads.ts, 18, 12)) + +function f3(aOrb: any) { +>f3 : Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) +>aOrb : Symbol(aOrb, Decl(commentsOverloads.ts, 19, 12)) + + return 10; +} +f3("hello"); +>f3 : Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) + +f3(10); +>f3 : Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) + +/** this is signature 4 - with number parameter*/ +function f4(/**param a*/a: number): number; +>f4 : Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) +>a : Symbol(a, Decl(commentsOverloads.ts, 25, 12)) + +/** this is signature 4 - with string parameter*/ +function f4(b: string): number; +>f4 : Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) +>b : Symbol(b, Decl(commentsOverloads.ts, 27, 12)) + +function f4(aOrb: any) { +>f4 : Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) +>aOrb : Symbol(aOrb, Decl(commentsOverloads.ts, 28, 12)) + + return 10; +} +f4("hello"); +>f4 : Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) + +f4(10); +>f4 : Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) + +interface i1 { +>i1 : Symbol(i1, Decl(commentsOverloads.ts, 32, 7)) + + /**this signature 1*/ + (/**param a*/ a: number): number; +>a : Symbol(a, Decl(commentsOverloads.ts, 35, 5)) + + /**this is signature 2*/ + (b: string): number; +>b : Symbol(b, Decl(commentsOverloads.ts, 37, 5)) + + /** foo 1*/ + foo(a: number): number; +>foo : Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) +>a : Symbol(a, Decl(commentsOverloads.ts, 39, 8)) + + /** foo 2*/ + foo(b: string): number; +>foo : Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) +>b : Symbol(b, Decl(commentsOverloads.ts, 41, 8)) + + // foo 3 + foo(arr: number[]): number; +>foo : Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) +>arr : Symbol(arr, Decl(commentsOverloads.ts, 43, 8)) + + /** foo 4 */ + foo(arr: string[]): number; +>foo : Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) +>arr : Symbol(arr, Decl(commentsOverloads.ts, 45, 8)) + + foo2(a: number): number; +>foo2 : Symbol(foo2, Decl(commentsOverloads.ts, 45, 31), Decl(commentsOverloads.ts, 47, 28)) +>a : Symbol(a, Decl(commentsOverloads.ts, 47, 9)) + + /** foo2 2*/ + foo2(b: string): number; +>foo2 : Symbol(foo2, Decl(commentsOverloads.ts, 45, 31), Decl(commentsOverloads.ts, 47, 28)) +>b : Symbol(b, Decl(commentsOverloads.ts, 49, 9)) + + foo3(a: number): number; +>foo3 : Symbol(foo3, Decl(commentsOverloads.ts, 49, 28), Decl(commentsOverloads.ts, 50, 28)) +>a : Symbol(a, Decl(commentsOverloads.ts, 50, 9)) + + foo3(b: string): number; +>foo3 : Symbol(foo3, Decl(commentsOverloads.ts, 49, 28), Decl(commentsOverloads.ts, 50, 28)) +>b : Symbol(b, Decl(commentsOverloads.ts, 51, 9)) + + /** foo4 1*/ + foo4(a: number): number; +>foo4 : Symbol(foo4, Decl(commentsOverloads.ts, 51, 28), Decl(commentsOverloads.ts, 53, 28), Decl(commentsOverloads.ts, 54, 28)) +>a : Symbol(a, Decl(commentsOverloads.ts, 53, 9)) + + foo4(b: string): number; +>foo4 : Symbol(foo4, Decl(commentsOverloads.ts, 51, 28), Decl(commentsOverloads.ts, 53, 28), Decl(commentsOverloads.ts, 54, 28)) +>b : Symbol(b, Decl(commentsOverloads.ts, 54, 9)) + + /** foo4 any */ + foo4(c: any): any; +>foo4 : Symbol(foo4, Decl(commentsOverloads.ts, 51, 28), Decl(commentsOverloads.ts, 53, 28), Decl(commentsOverloads.ts, 54, 28)) +>c : Symbol(c, Decl(commentsOverloads.ts, 56, 9)) + + /// new 1 + new (a: string); +>a : Symbol(a, Decl(commentsOverloads.ts, 58, 9)) + + /** new 1*/ + new (b: number); +>b : Symbol(b, Decl(commentsOverloads.ts, 60, 9)) +} +var i1_i: i1; +>i1_i : Symbol(i1_i, Decl(commentsOverloads.ts, 62, 3)) +>i1 : Symbol(i1, Decl(commentsOverloads.ts, 32, 7)) + +interface i2 { +>i2 : Symbol(i2, Decl(commentsOverloads.ts, 62, 13)) + + new (a: string); +>a : Symbol(a, Decl(commentsOverloads.ts, 64, 9)) + + /** new 2*/ + new (b: number); +>b : Symbol(b, Decl(commentsOverloads.ts, 66, 9)) + + (a: number): number; +>a : Symbol(a, Decl(commentsOverloads.ts, 67, 5)) + + /**this is signature 2*/ + (b: string): number; +>b : Symbol(b, Decl(commentsOverloads.ts, 69, 5)) +} +var i2_i: i2; +>i2_i : Symbol(i2_i, Decl(commentsOverloads.ts, 71, 3)) +>i2 : Symbol(i2, Decl(commentsOverloads.ts, 62, 13)) + +interface i3 { +>i3 : Symbol(i3, Decl(commentsOverloads.ts, 71, 13)) + + /** new 1*/ + new (a: string); +>a : Symbol(a, Decl(commentsOverloads.ts, 74, 9)) + + /** new 2*/ + new (b: number); +>b : Symbol(b, Decl(commentsOverloads.ts, 76, 9)) + + /**this is signature 1*/ + (a: number): number; +>a : Symbol(a, Decl(commentsOverloads.ts, 78, 5)) + + (b: string): number; +>b : Symbol(b, Decl(commentsOverloads.ts, 79, 5)) +} +var i3_i: i3; +>i3_i : Symbol(i3_i, Decl(commentsOverloads.ts, 81, 3)) +>i3 : Symbol(i3, Decl(commentsOverloads.ts, 71, 13)) + +interface i4 { +>i4 : Symbol(i4, Decl(commentsOverloads.ts, 81, 13)) + + new (a: string); +>a : Symbol(a, Decl(commentsOverloads.ts, 83, 9)) + + new (b: number); +>b : Symbol(b, Decl(commentsOverloads.ts, 84, 9)) + + (a: number): number; +>a : Symbol(a, Decl(commentsOverloads.ts, 85, 5)) + + (b: string): number; +>b : Symbol(b, Decl(commentsOverloads.ts, 86, 5)) +} +class c { +>c : Symbol(c, Decl(commentsOverloads.ts, 87, 1)) + + public prop1(a: number): number; +>prop1 : Symbol(prop1, Decl(commentsOverloads.ts, 88, 9), Decl(commentsOverloads.ts, 89, 36), Decl(commentsOverloads.ts, 90, 36)) +>a : Symbol(a, Decl(commentsOverloads.ts, 89, 17)) + + public prop1(b: string): number; +>prop1 : Symbol(prop1, Decl(commentsOverloads.ts, 88, 9), Decl(commentsOverloads.ts, 89, 36), Decl(commentsOverloads.ts, 90, 36)) +>b : Symbol(b, Decl(commentsOverloads.ts, 90, 17)) + + public prop1(aorb: any) { +>prop1 : Symbol(prop1, Decl(commentsOverloads.ts, 88, 9), Decl(commentsOverloads.ts, 89, 36), Decl(commentsOverloads.ts, 90, 36)) +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 91, 17)) + + return 10; + } + /** prop2 1*/ + public prop2(a: number): number; +>prop2 : Symbol(prop2, Decl(commentsOverloads.ts, 93, 5), Decl(commentsOverloads.ts, 95, 36), Decl(commentsOverloads.ts, 96, 36)) +>a : Symbol(a, Decl(commentsOverloads.ts, 95, 17)) + + public prop2(b: string): number; +>prop2 : Symbol(prop2, Decl(commentsOverloads.ts, 93, 5), Decl(commentsOverloads.ts, 95, 36), Decl(commentsOverloads.ts, 96, 36)) +>b : Symbol(b, Decl(commentsOverloads.ts, 96, 17)) + + public prop2(aorb: any) { +>prop2 : Symbol(prop2, Decl(commentsOverloads.ts, 93, 5), Decl(commentsOverloads.ts, 95, 36), Decl(commentsOverloads.ts, 96, 36)) +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 97, 17)) + + return 10; + } + public prop3(a: number): number; +>prop3 : Symbol(prop3, Decl(commentsOverloads.ts, 99, 5), Decl(commentsOverloads.ts, 100, 36), Decl(commentsOverloads.ts, 102, 36)) +>a : Symbol(a, Decl(commentsOverloads.ts, 100, 17)) + + /** prop3 2*/ + public prop3(b: string): number; +>prop3 : Symbol(prop3, Decl(commentsOverloads.ts, 99, 5), Decl(commentsOverloads.ts, 100, 36), Decl(commentsOverloads.ts, 102, 36)) +>b : Symbol(b, Decl(commentsOverloads.ts, 102, 17)) + + public prop3(aorb: any) { +>prop3 : Symbol(prop3, Decl(commentsOverloads.ts, 99, 5), Decl(commentsOverloads.ts, 100, 36), Decl(commentsOverloads.ts, 102, 36)) +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 103, 17)) + + return 10; + } + /** prop4 1*/ + public prop4(a: number): number; +>prop4 : Symbol(prop4, Decl(commentsOverloads.ts, 105, 5), Decl(commentsOverloads.ts, 107, 36), Decl(commentsOverloads.ts, 109, 36)) +>a : Symbol(a, Decl(commentsOverloads.ts, 107, 17)) + + /** prop4 2*/ + public prop4(b: string): number; +>prop4 : Symbol(prop4, Decl(commentsOverloads.ts, 105, 5), Decl(commentsOverloads.ts, 107, 36), Decl(commentsOverloads.ts, 109, 36)) +>b : Symbol(b, Decl(commentsOverloads.ts, 109, 17)) + + public prop4(aorb: any) { +>prop4 : Symbol(prop4, Decl(commentsOverloads.ts, 105, 5), Decl(commentsOverloads.ts, 107, 36), Decl(commentsOverloads.ts, 109, 36)) +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 110, 17)) + + return 10; + } + /** prop5 1*/ + public prop5(a: number): number; +>prop5 : Symbol(prop5, Decl(commentsOverloads.ts, 112, 5), Decl(commentsOverloads.ts, 114, 36), Decl(commentsOverloads.ts, 116, 36)) +>a : Symbol(a, Decl(commentsOverloads.ts, 114, 17)) + + /** prop5 2*/ + public prop5(b: string): number; +>prop5 : Symbol(prop5, Decl(commentsOverloads.ts, 112, 5), Decl(commentsOverloads.ts, 114, 36), Decl(commentsOverloads.ts, 116, 36)) +>b : Symbol(b, Decl(commentsOverloads.ts, 116, 17)) + + /** Prop5 implementaion*/ + public prop5(aorb: any) { +>prop5 : Symbol(prop5, Decl(commentsOverloads.ts, 112, 5), Decl(commentsOverloads.ts, 114, 36), Decl(commentsOverloads.ts, 116, 36)) +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 118, 17)) + + return 10; + } +} +class c1 { +>c1 : Symbol(c1, Decl(commentsOverloads.ts, 121, 1)) + + constructor(a: number); +>a : Symbol(a, Decl(commentsOverloads.ts, 123, 16)) + + constructor(b: string); +>b : Symbol(b, Decl(commentsOverloads.ts, 124, 16)) + + constructor(aorb: any) { +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 125, 16)) + } +} +class c2 { +>c2 : Symbol(c2, Decl(commentsOverloads.ts, 127, 1)) + + /** c2 1*/ + constructor(a: number); +>a : Symbol(a, Decl(commentsOverloads.ts, 130, 16)) + + // c2 2 + constructor(b: string); +>b : Symbol(b, Decl(commentsOverloads.ts, 132, 16)) + + constructor(aorb: any) { +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 133, 16)) + } +} +class c3 { +>c3 : Symbol(c3, Decl(commentsOverloads.ts, 135, 1)) + + constructor(a: number); +>a : Symbol(a, Decl(commentsOverloads.ts, 137, 16)) + + /** c3 2*/ + constructor(b: string); +>b : Symbol(b, Decl(commentsOverloads.ts, 139, 16)) + + constructor(aorb: any) { +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 140, 16)) + } +} +class c4 { +>c4 : Symbol(c4, Decl(commentsOverloads.ts, 142, 1)) + + /** c4 1*/ + constructor(a: number); +>a : Symbol(a, Decl(commentsOverloads.ts, 145, 16)) + + /** c4 2*/ + constructor(b: string); +>b : Symbol(b, Decl(commentsOverloads.ts, 147, 16)) + + /** c4 3 */ + constructor(aorb: any) { +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 149, 16)) + } +} +class c5 { +>c5 : Symbol(c5, Decl(commentsOverloads.ts, 151, 1)) + + /** c5 1*/ + constructor(a: number); +>a : Symbol(a, Decl(commentsOverloads.ts, 154, 16)) + + /** c5 2*/ + constructor(b: string); +>b : Symbol(b, Decl(commentsOverloads.ts, 156, 16)) + + /** c5 implementation*/ + constructor(aorb: any) { +>aorb : Symbol(aorb, Decl(commentsOverloads.ts, 158, 16)) + } +} +var c_i = new c(); +>c_i : Symbol(c_i, Decl(commentsOverloads.ts, 161, 3)) +>c : Symbol(c, Decl(commentsOverloads.ts, 87, 1)) + +var c1_i_1 = new c1(10); +>c1_i_1 : Symbol(c1_i_1, Decl(commentsOverloads.ts, 163, 3)) +>c1 : Symbol(c1, Decl(commentsOverloads.ts, 121, 1)) + +var c1_i_2 = new c1("hello"); +>c1_i_2 : Symbol(c1_i_2, Decl(commentsOverloads.ts, 164, 3)) +>c1 : Symbol(c1, Decl(commentsOverloads.ts, 121, 1)) + +var c2_i_1 = new c2(10); +>c2_i_1 : Symbol(c2_i_1, Decl(commentsOverloads.ts, 165, 3)) +>c2 : Symbol(c2, Decl(commentsOverloads.ts, 127, 1)) + +var c2_i_2 = new c2("hello"); +>c2_i_2 : Symbol(c2_i_2, Decl(commentsOverloads.ts, 166, 3)) +>c2 : Symbol(c2, Decl(commentsOverloads.ts, 127, 1)) + +var c3_i_1 = new c3(10); +>c3_i_1 : Symbol(c3_i_1, Decl(commentsOverloads.ts, 167, 3)) +>c3 : Symbol(c3, Decl(commentsOverloads.ts, 135, 1)) + +var c3_i_2 = new c3("hello"); +>c3_i_2 : Symbol(c3_i_2, Decl(commentsOverloads.ts, 168, 3)) +>c3 : Symbol(c3, Decl(commentsOverloads.ts, 135, 1)) + +var c4_i_1 = new c4(10); +>c4_i_1 : Symbol(c4_i_1, Decl(commentsOverloads.ts, 169, 3)) +>c4 : Symbol(c4, Decl(commentsOverloads.ts, 142, 1)) + +var c4_i_2 = new c4("hello"); +>c4_i_2 : Symbol(c4_i_2, Decl(commentsOverloads.ts, 170, 3)) +>c4 : Symbol(c4, Decl(commentsOverloads.ts, 142, 1)) + +var c5_i_1 = new c5(10); +>c5_i_1 : Symbol(c5_i_1, Decl(commentsOverloads.ts, 171, 3)) +>c5 : Symbol(c5, Decl(commentsOverloads.ts, 151, 1)) + +var c5_i_2 = new c5("hello"); +>c5_i_2 : Symbol(c5_i_2, Decl(commentsOverloads.ts, 172, 3)) +>c5 : Symbol(c5, Decl(commentsOverloads.ts, 151, 1)) + diff --git a/tests/baselines/reference/commentsOverloads.types b/tests/baselines/reference/commentsOverloads.types index b01d3b10bc1ba..3281ab83ab600 100644 --- a/tests/baselines/reference/commentsOverloads.types +++ b/tests/baselines/reference/commentsOverloads.types @@ -1,463 +1,463 @@ === tests/cases/compiler/commentsOverloads.ts === /** this is signature 1*/ function f1(/**param a*/a: number): number; ->f1 : { (a: number): number; (b: string): number; }, Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 1, 12)) +>f1 : { (a: number): number; (b: string): number; } +>a : number function f1(b: string): number; ->f1 : { (a: number): number; (b: string): number; }, Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 2, 12)) +>f1 : { (a: number): number; (b: string): number; } +>b : string function f1(aOrb: any) { ->f1 : { (a: number): number; (b: string): number; }, Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) ->aOrb : any, Symbol(aOrb, Decl(commentsOverloads.ts, 3, 12)) +>f1 : { (a: number): number; (b: string): number; } +>aOrb : any return 10; >10 : number } f1("hello"); >f1("hello") : number ->f1 : { (a: number): number; (b: string): number; }, Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) +>f1 : { (a: number): number; (b: string): number; } >"hello" : string f1(10); >f1(10) : number ->f1 : { (a: number): number; (b: string): number; }, Symbol(f1, Decl(commentsOverloads.ts, 0, 0), Decl(commentsOverloads.ts, 1, 43), Decl(commentsOverloads.ts, 2, 31)) +>f1 : { (a: number): number; (b: string): number; } >10 : number function f2(a: number): number; ->f2 : { (a: number): number; (b: string): number; }, Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 8, 12)) +>f2 : { (a: number): number; (b: string): number; } +>a : number /** this is signature 2*/ function f2(b: string): number; ->f2 : { (a: number): number; (b: string): number; }, Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 10, 12)) +>f2 : { (a: number): number; (b: string): number; } +>b : string /** this is f2 var comment*/ function f2(aOrb: any) { ->f2 : { (a: number): number; (b: string): number; }, Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) ->aOrb : any, Symbol(aOrb, Decl(commentsOverloads.ts, 12, 12)) +>f2 : { (a: number): number; (b: string): number; } +>aOrb : any return 10; >10 : number } f2("hello"); >f2("hello") : number ->f2 : { (a: number): number; (b: string): number; }, Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) +>f2 : { (a: number): number; (b: string): number; } >"hello" : string f2(10); >f2(10) : number ->f2 : { (a: number): number; (b: string): number; }, Symbol(f2, Decl(commentsOverloads.ts, 7, 7), Decl(commentsOverloads.ts, 8, 31), Decl(commentsOverloads.ts, 10, 31)) +>f2 : { (a: number): number; (b: string): number; } >10 : number function f3(a: number): number; ->f3 : { (a: number): number; (b: string): number; }, Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 17, 12)) +>f3 : { (a: number): number; (b: string): number; } +>a : number function f3(b: string): number; ->f3 : { (a: number): number; (b: string): number; }, Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 18, 12)) +>f3 : { (a: number): number; (b: string): number; } +>b : string function f3(aOrb: any) { ->f3 : { (a: number): number; (b: string): number; }, Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) ->aOrb : any, Symbol(aOrb, Decl(commentsOverloads.ts, 19, 12)) +>f3 : { (a: number): number; (b: string): number; } +>aOrb : any return 10; >10 : number } f3("hello"); >f3("hello") : number ->f3 : { (a: number): number; (b: string): number; }, Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) +>f3 : { (a: number): number; (b: string): number; } >"hello" : string f3(10); >f3(10) : number ->f3 : { (a: number): number; (b: string): number; }, Symbol(f3, Decl(commentsOverloads.ts, 16, 7), Decl(commentsOverloads.ts, 17, 31), Decl(commentsOverloads.ts, 18, 31)) +>f3 : { (a: number): number; (b: string): number; } >10 : number /** this is signature 4 - with number parameter*/ function f4(/**param a*/a: number): number; ->f4 : { (a: number): number; (b: string): number; }, Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 25, 12)) +>f4 : { (a: number): number; (b: string): number; } +>a : number /** this is signature 4 - with string parameter*/ function f4(b: string): number; ->f4 : { (a: number): number; (b: string): number; }, Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 27, 12)) +>f4 : { (a: number): number; (b: string): number; } +>b : string function f4(aOrb: any) { ->f4 : { (a: number): number; (b: string): number; }, Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) ->aOrb : any, Symbol(aOrb, Decl(commentsOverloads.ts, 28, 12)) +>f4 : { (a: number): number; (b: string): number; } +>aOrb : any return 10; >10 : number } f4("hello"); >f4("hello") : number ->f4 : { (a: number): number; (b: string): number; }, Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) +>f4 : { (a: number): number; (b: string): number; } >"hello" : string f4(10); >f4(10) : number ->f4 : { (a: number): number; (b: string): number; }, Symbol(f4, Decl(commentsOverloads.ts, 23, 7), Decl(commentsOverloads.ts, 25, 43), Decl(commentsOverloads.ts, 27, 31)) +>f4 : { (a: number): number; (b: string): number; } >10 : number interface i1 { ->i1 : i1, Symbol(i1, Decl(commentsOverloads.ts, 32, 7)) +>i1 : i1 /**this signature 1*/ (/**param a*/ a: number): number; ->a : number, Symbol(a, Decl(commentsOverloads.ts, 35, 5)) +>a : number /**this is signature 2*/ (b: string): number; ->b : string, Symbol(b, Decl(commentsOverloads.ts, 37, 5)) +>b : string /** foo 1*/ foo(a: number): number; ->foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; }, Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 39, 8)) +>foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; } +>a : number /** foo 2*/ foo(b: string): number; ->foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; }, Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 41, 8)) +>foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; } +>b : string // foo 3 foo(arr: number[]): number; ->foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; }, Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) ->arr : number[], Symbol(arr, Decl(commentsOverloads.ts, 43, 8)) +>foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; } +>arr : number[] /** foo 4 */ foo(arr: string[]): number; ->foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; }, Symbol(foo, Decl(commentsOverloads.ts, 37, 24), Decl(commentsOverloads.ts, 39, 27), Decl(commentsOverloads.ts, 41, 27), Decl(commentsOverloads.ts, 43, 31)) ->arr : string[], Symbol(arr, Decl(commentsOverloads.ts, 45, 8)) +>foo : { (a: number): number; (b: string): number; (arr: number[]): number; (arr: string[]): number; } +>arr : string[] foo2(a: number): number; ->foo2 : { (a: number): number; (b: string): number; }, Symbol(foo2, Decl(commentsOverloads.ts, 45, 31), Decl(commentsOverloads.ts, 47, 28)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 47, 9)) +>foo2 : { (a: number): number; (b: string): number; } +>a : number /** foo2 2*/ foo2(b: string): number; ->foo2 : { (a: number): number; (b: string): number; }, Symbol(foo2, Decl(commentsOverloads.ts, 45, 31), Decl(commentsOverloads.ts, 47, 28)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 49, 9)) +>foo2 : { (a: number): number; (b: string): number; } +>b : string foo3(a: number): number; ->foo3 : { (a: number): number; (b: string): number; }, Symbol(foo3, Decl(commentsOverloads.ts, 49, 28), Decl(commentsOverloads.ts, 50, 28)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 50, 9)) +>foo3 : { (a: number): number; (b: string): number; } +>a : number foo3(b: string): number; ->foo3 : { (a: number): number; (b: string): number; }, Symbol(foo3, Decl(commentsOverloads.ts, 49, 28), Decl(commentsOverloads.ts, 50, 28)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 51, 9)) +>foo3 : { (a: number): number; (b: string): number; } +>b : string /** foo4 1*/ foo4(a: number): number; ->foo4 : { (a: number): number; (b: string): number; (c: any): any; }, Symbol(foo4, Decl(commentsOverloads.ts, 51, 28), Decl(commentsOverloads.ts, 53, 28), Decl(commentsOverloads.ts, 54, 28)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 53, 9)) +>foo4 : { (a: number): number; (b: string): number; (c: any): any; } +>a : number foo4(b: string): number; ->foo4 : { (a: number): number; (b: string): number; (c: any): any; }, Symbol(foo4, Decl(commentsOverloads.ts, 51, 28), Decl(commentsOverloads.ts, 53, 28), Decl(commentsOverloads.ts, 54, 28)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 54, 9)) +>foo4 : { (a: number): number; (b: string): number; (c: any): any; } +>b : string /** foo4 any */ foo4(c: any): any; ->foo4 : { (a: number): number; (b: string): number; (c: any): any; }, Symbol(foo4, Decl(commentsOverloads.ts, 51, 28), Decl(commentsOverloads.ts, 53, 28), Decl(commentsOverloads.ts, 54, 28)) ->c : any, Symbol(c, Decl(commentsOverloads.ts, 56, 9)) +>foo4 : { (a: number): number; (b: string): number; (c: any): any; } +>c : any /// new 1 new (a: string); ->a : string, Symbol(a, Decl(commentsOverloads.ts, 58, 9)) +>a : string /** new 1*/ new (b: number); ->b : number, Symbol(b, Decl(commentsOverloads.ts, 60, 9)) +>b : number } var i1_i: i1; ->i1_i : i1, Symbol(i1_i, Decl(commentsOverloads.ts, 62, 3)) ->i1 : i1, Symbol(i1, Decl(commentsOverloads.ts, 32, 7)) +>i1_i : i1 +>i1 : i1 interface i2 { ->i2 : i2, Symbol(i2, Decl(commentsOverloads.ts, 62, 13)) +>i2 : i2 new (a: string); ->a : string, Symbol(a, Decl(commentsOverloads.ts, 64, 9)) +>a : string /** new 2*/ new (b: number); ->b : number, Symbol(b, Decl(commentsOverloads.ts, 66, 9)) +>b : number (a: number): number; ->a : number, Symbol(a, Decl(commentsOverloads.ts, 67, 5)) +>a : number /**this is signature 2*/ (b: string): number; ->b : string, Symbol(b, Decl(commentsOverloads.ts, 69, 5)) +>b : string } var i2_i: i2; ->i2_i : i2, Symbol(i2_i, Decl(commentsOverloads.ts, 71, 3)) ->i2 : i2, Symbol(i2, Decl(commentsOverloads.ts, 62, 13)) +>i2_i : i2 +>i2 : i2 interface i3 { ->i3 : i3, Symbol(i3, Decl(commentsOverloads.ts, 71, 13)) +>i3 : i3 /** new 1*/ new (a: string); ->a : string, Symbol(a, Decl(commentsOverloads.ts, 74, 9)) +>a : string /** new 2*/ new (b: number); ->b : number, Symbol(b, Decl(commentsOverloads.ts, 76, 9)) +>b : number /**this is signature 1*/ (a: number): number; ->a : number, Symbol(a, Decl(commentsOverloads.ts, 78, 5)) +>a : number (b: string): number; ->b : string, Symbol(b, Decl(commentsOverloads.ts, 79, 5)) +>b : string } var i3_i: i3; ->i3_i : i3, Symbol(i3_i, Decl(commentsOverloads.ts, 81, 3)) ->i3 : i3, Symbol(i3, Decl(commentsOverloads.ts, 71, 13)) +>i3_i : i3 +>i3 : i3 interface i4 { ->i4 : i4, Symbol(i4, Decl(commentsOverloads.ts, 81, 13)) +>i4 : i4 new (a: string); ->a : string, Symbol(a, Decl(commentsOverloads.ts, 83, 9)) +>a : string new (b: number); ->b : number, Symbol(b, Decl(commentsOverloads.ts, 84, 9)) +>b : number (a: number): number; ->a : number, Symbol(a, Decl(commentsOverloads.ts, 85, 5)) +>a : number (b: string): number; ->b : string, Symbol(b, Decl(commentsOverloads.ts, 86, 5)) +>b : string } class c { ->c : c, Symbol(c, Decl(commentsOverloads.ts, 87, 1)) +>c : c public prop1(a: number): number; ->prop1 : { (a: number): number; (b: string): number; }, Symbol(prop1, Decl(commentsOverloads.ts, 88, 9), Decl(commentsOverloads.ts, 89, 36), Decl(commentsOverloads.ts, 90, 36)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 89, 17)) +>prop1 : { (a: number): number; (b: string): number; } +>a : number public prop1(b: string): number; ->prop1 : { (a: number): number; (b: string): number; }, Symbol(prop1, Decl(commentsOverloads.ts, 88, 9), Decl(commentsOverloads.ts, 89, 36), Decl(commentsOverloads.ts, 90, 36)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 90, 17)) +>prop1 : { (a: number): number; (b: string): number; } +>b : string public prop1(aorb: any) { ->prop1 : { (a: number): number; (b: string): number; }, Symbol(prop1, Decl(commentsOverloads.ts, 88, 9), Decl(commentsOverloads.ts, 89, 36), Decl(commentsOverloads.ts, 90, 36)) ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 91, 17)) +>prop1 : { (a: number): number; (b: string): number; } +>aorb : any return 10; >10 : number } /** prop2 1*/ public prop2(a: number): number; ->prop2 : { (a: number): number; (b: string): number; }, Symbol(prop2, Decl(commentsOverloads.ts, 93, 5), Decl(commentsOverloads.ts, 95, 36), Decl(commentsOverloads.ts, 96, 36)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 95, 17)) +>prop2 : { (a: number): number; (b: string): number; } +>a : number public prop2(b: string): number; ->prop2 : { (a: number): number; (b: string): number; }, Symbol(prop2, Decl(commentsOverloads.ts, 93, 5), Decl(commentsOverloads.ts, 95, 36), Decl(commentsOverloads.ts, 96, 36)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 96, 17)) +>prop2 : { (a: number): number; (b: string): number; } +>b : string public prop2(aorb: any) { ->prop2 : { (a: number): number; (b: string): number; }, Symbol(prop2, Decl(commentsOverloads.ts, 93, 5), Decl(commentsOverloads.ts, 95, 36), Decl(commentsOverloads.ts, 96, 36)) ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 97, 17)) +>prop2 : { (a: number): number; (b: string): number; } +>aorb : any return 10; >10 : number } public prop3(a: number): number; ->prop3 : { (a: number): number; (b: string): number; }, Symbol(prop3, Decl(commentsOverloads.ts, 99, 5), Decl(commentsOverloads.ts, 100, 36), Decl(commentsOverloads.ts, 102, 36)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 100, 17)) +>prop3 : { (a: number): number; (b: string): number; } +>a : number /** prop3 2*/ public prop3(b: string): number; ->prop3 : { (a: number): number; (b: string): number; }, Symbol(prop3, Decl(commentsOverloads.ts, 99, 5), Decl(commentsOverloads.ts, 100, 36), Decl(commentsOverloads.ts, 102, 36)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 102, 17)) +>prop3 : { (a: number): number; (b: string): number; } +>b : string public prop3(aorb: any) { ->prop3 : { (a: number): number; (b: string): number; }, Symbol(prop3, Decl(commentsOverloads.ts, 99, 5), Decl(commentsOverloads.ts, 100, 36), Decl(commentsOverloads.ts, 102, 36)) ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 103, 17)) +>prop3 : { (a: number): number; (b: string): number; } +>aorb : any return 10; >10 : number } /** prop4 1*/ public prop4(a: number): number; ->prop4 : { (a: number): number; (b: string): number; }, Symbol(prop4, Decl(commentsOverloads.ts, 105, 5), Decl(commentsOverloads.ts, 107, 36), Decl(commentsOverloads.ts, 109, 36)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 107, 17)) +>prop4 : { (a: number): number; (b: string): number; } +>a : number /** prop4 2*/ public prop4(b: string): number; ->prop4 : { (a: number): number; (b: string): number; }, Symbol(prop4, Decl(commentsOverloads.ts, 105, 5), Decl(commentsOverloads.ts, 107, 36), Decl(commentsOverloads.ts, 109, 36)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 109, 17)) +>prop4 : { (a: number): number; (b: string): number; } +>b : string public prop4(aorb: any) { ->prop4 : { (a: number): number; (b: string): number; }, Symbol(prop4, Decl(commentsOverloads.ts, 105, 5), Decl(commentsOverloads.ts, 107, 36), Decl(commentsOverloads.ts, 109, 36)) ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 110, 17)) +>prop4 : { (a: number): number; (b: string): number; } +>aorb : any return 10; >10 : number } /** prop5 1*/ public prop5(a: number): number; ->prop5 : { (a: number): number; (b: string): number; }, Symbol(prop5, Decl(commentsOverloads.ts, 112, 5), Decl(commentsOverloads.ts, 114, 36), Decl(commentsOverloads.ts, 116, 36)) ->a : number, Symbol(a, Decl(commentsOverloads.ts, 114, 17)) +>prop5 : { (a: number): number; (b: string): number; } +>a : number /** prop5 2*/ public prop5(b: string): number; ->prop5 : { (a: number): number; (b: string): number; }, Symbol(prop5, Decl(commentsOverloads.ts, 112, 5), Decl(commentsOverloads.ts, 114, 36), Decl(commentsOverloads.ts, 116, 36)) ->b : string, Symbol(b, Decl(commentsOverloads.ts, 116, 17)) +>prop5 : { (a: number): number; (b: string): number; } +>b : string /** Prop5 implementaion*/ public prop5(aorb: any) { ->prop5 : { (a: number): number; (b: string): number; }, Symbol(prop5, Decl(commentsOverloads.ts, 112, 5), Decl(commentsOverloads.ts, 114, 36), Decl(commentsOverloads.ts, 116, 36)) ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 118, 17)) +>prop5 : { (a: number): number; (b: string): number; } +>aorb : any return 10; >10 : number } } class c1 { ->c1 : c1, Symbol(c1, Decl(commentsOverloads.ts, 121, 1)) +>c1 : c1 constructor(a: number); ->a : number, Symbol(a, Decl(commentsOverloads.ts, 123, 16)) +>a : number constructor(b: string); ->b : string, Symbol(b, Decl(commentsOverloads.ts, 124, 16)) +>b : string constructor(aorb: any) { ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 125, 16)) +>aorb : any } } class c2 { ->c2 : c2, Symbol(c2, Decl(commentsOverloads.ts, 127, 1)) +>c2 : c2 /** c2 1*/ constructor(a: number); ->a : number, Symbol(a, Decl(commentsOverloads.ts, 130, 16)) +>a : number // c2 2 constructor(b: string); ->b : string, Symbol(b, Decl(commentsOverloads.ts, 132, 16)) +>b : string constructor(aorb: any) { ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 133, 16)) +>aorb : any } } class c3 { ->c3 : c3, Symbol(c3, Decl(commentsOverloads.ts, 135, 1)) +>c3 : c3 constructor(a: number); ->a : number, Symbol(a, Decl(commentsOverloads.ts, 137, 16)) +>a : number /** c3 2*/ constructor(b: string); ->b : string, Symbol(b, Decl(commentsOverloads.ts, 139, 16)) +>b : string constructor(aorb: any) { ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 140, 16)) +>aorb : any } } class c4 { ->c4 : c4, Symbol(c4, Decl(commentsOverloads.ts, 142, 1)) +>c4 : c4 /** c4 1*/ constructor(a: number); ->a : number, Symbol(a, Decl(commentsOverloads.ts, 145, 16)) +>a : number /** c4 2*/ constructor(b: string); ->b : string, Symbol(b, Decl(commentsOverloads.ts, 147, 16)) +>b : string /** c4 3 */ constructor(aorb: any) { ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 149, 16)) +>aorb : any } } class c5 { ->c5 : c5, Symbol(c5, Decl(commentsOverloads.ts, 151, 1)) +>c5 : c5 /** c5 1*/ constructor(a: number); ->a : number, Symbol(a, Decl(commentsOverloads.ts, 154, 16)) +>a : number /** c5 2*/ constructor(b: string); ->b : string, Symbol(b, Decl(commentsOverloads.ts, 156, 16)) +>b : string /** c5 implementation*/ constructor(aorb: any) { ->aorb : any, Symbol(aorb, Decl(commentsOverloads.ts, 158, 16)) +>aorb : any } } var c_i = new c(); ->c_i : c, Symbol(c_i, Decl(commentsOverloads.ts, 161, 3)) +>c_i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsOverloads.ts, 87, 1)) +>c : typeof c var c1_i_1 = new c1(10); ->c1_i_1 : c1, Symbol(c1_i_1, Decl(commentsOverloads.ts, 163, 3)) +>c1_i_1 : c1 >new c1(10) : c1 ->c1 : typeof c1, Symbol(c1, Decl(commentsOverloads.ts, 121, 1)) +>c1 : typeof c1 >10 : number var c1_i_2 = new c1("hello"); ->c1_i_2 : c1, Symbol(c1_i_2, Decl(commentsOverloads.ts, 164, 3)) +>c1_i_2 : c1 >new c1("hello") : c1 ->c1 : typeof c1, Symbol(c1, Decl(commentsOverloads.ts, 121, 1)) +>c1 : typeof c1 >"hello" : string var c2_i_1 = new c2(10); ->c2_i_1 : c2, Symbol(c2_i_1, Decl(commentsOverloads.ts, 165, 3)) +>c2_i_1 : c2 >new c2(10) : c2 ->c2 : typeof c2, Symbol(c2, Decl(commentsOverloads.ts, 127, 1)) +>c2 : typeof c2 >10 : number var c2_i_2 = new c2("hello"); ->c2_i_2 : c2, Symbol(c2_i_2, Decl(commentsOverloads.ts, 166, 3)) +>c2_i_2 : c2 >new c2("hello") : c2 ->c2 : typeof c2, Symbol(c2, Decl(commentsOverloads.ts, 127, 1)) +>c2 : typeof c2 >"hello" : string var c3_i_1 = new c3(10); ->c3_i_1 : c3, Symbol(c3_i_1, Decl(commentsOverloads.ts, 167, 3)) +>c3_i_1 : c3 >new c3(10) : c3 ->c3 : typeof c3, Symbol(c3, Decl(commentsOverloads.ts, 135, 1)) +>c3 : typeof c3 >10 : number var c3_i_2 = new c3("hello"); ->c3_i_2 : c3, Symbol(c3_i_2, Decl(commentsOverloads.ts, 168, 3)) +>c3_i_2 : c3 >new c3("hello") : c3 ->c3 : typeof c3, Symbol(c3, Decl(commentsOverloads.ts, 135, 1)) +>c3 : typeof c3 >"hello" : string var c4_i_1 = new c4(10); ->c4_i_1 : c4, Symbol(c4_i_1, Decl(commentsOverloads.ts, 169, 3)) +>c4_i_1 : c4 >new c4(10) : c4 ->c4 : typeof c4, Symbol(c4, Decl(commentsOverloads.ts, 142, 1)) +>c4 : typeof c4 >10 : number var c4_i_2 = new c4("hello"); ->c4_i_2 : c4, Symbol(c4_i_2, Decl(commentsOverloads.ts, 170, 3)) +>c4_i_2 : c4 >new c4("hello") : c4 ->c4 : typeof c4, Symbol(c4, Decl(commentsOverloads.ts, 142, 1)) +>c4 : typeof c4 >"hello" : string var c5_i_1 = new c5(10); ->c5_i_1 : c5, Symbol(c5_i_1, Decl(commentsOverloads.ts, 171, 3)) +>c5_i_1 : c5 >new c5(10) : c5 ->c5 : typeof c5, Symbol(c5, Decl(commentsOverloads.ts, 151, 1)) +>c5 : typeof c5 >10 : number var c5_i_2 = new c5("hello"); ->c5_i_2 : c5, Symbol(c5_i_2, Decl(commentsOverloads.ts, 172, 3)) +>c5_i_2 : c5 >new c5("hello") : c5 ->c5 : typeof c5, Symbol(c5, Decl(commentsOverloads.ts, 151, 1)) +>c5 : typeof c5 >"hello" : string diff --git a/tests/baselines/reference/commentsPropertySignature1.symbols b/tests/baselines/reference/commentsPropertySignature1.symbols new file mode 100644 index 0000000000000..2e97f70187152 --- /dev/null +++ b/tests/baselines/reference/commentsPropertySignature1.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/commentsPropertySignature1.ts === +var a = { +>a : Symbol(a, Decl(commentsPropertySignature1.ts, 0, 3)) + + /** own x*/ + x: 0 +>x : Symbol(x, Decl(commentsPropertySignature1.ts, 0, 9)) + +}; + diff --git a/tests/baselines/reference/commentsPropertySignature1.types b/tests/baselines/reference/commentsPropertySignature1.types index 15cade46fd286..09dad1eaefb0f 100644 --- a/tests/baselines/reference/commentsPropertySignature1.types +++ b/tests/baselines/reference/commentsPropertySignature1.types @@ -1,11 +1,11 @@ === tests/cases/compiler/commentsPropertySignature1.ts === var a = { ->a : { x: number; }, Symbol(a, Decl(commentsPropertySignature1.ts, 0, 3)) +>a : { x: number; } >{ /** own x*/ x: 0} : { x: number; } /** own x*/ x: 0 ->x : number, Symbol(x, Decl(commentsPropertySignature1.ts, 0, 9)) +>x : number >0 : number }; diff --git a/tests/baselines/reference/commentsTypeParameters.symbols b/tests/baselines/reference/commentsTypeParameters.symbols new file mode 100644 index 0000000000000..466ca3ff9a938 --- /dev/null +++ b/tests/baselines/reference/commentsTypeParameters.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/commentsTypeParameters.ts === +class C { +>C : Symbol(C, Decl(commentsTypeParameters.ts, 0, 0)) +>T : Symbol(T, Decl(commentsTypeParameters.ts, 0, 8)) + + method(a: U) { +>method : Symbol(method, Decl(commentsTypeParameters.ts, 0, 47)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 1, 11)) +>T : Symbol(T, Decl(commentsTypeParameters.ts, 0, 8)) +>a : Symbol(a, Decl(commentsTypeParameters.ts, 1, 66)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 1, 11)) + } + static staticmethod(a: U) { +>staticmethod : Symbol(C.staticmethod, Decl(commentsTypeParameters.ts, 2, 5)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 3, 24)) +>a : Symbol(a, Decl(commentsTypeParameters.ts, 3, 69)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 3, 24)) + } + + private privatemethod(a: U) { +>privatemethod : Symbol(privatemethod, Decl(commentsTypeParameters.ts, 4, 5)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 6, 26)) +>T : Symbol(T, Decl(commentsTypeParameters.ts, 0, 8)) +>a : Symbol(a, Decl(commentsTypeParameters.ts, 6, 81)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 6, 26)) + } + private static privatestaticmethod(a: U) { +>privatestaticmethod : Symbol(C.privatestaticmethod, Decl(commentsTypeParameters.ts, 7, 5)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 8, 39)) +>a : Symbol(a, Decl(commentsTypeParameters.ts, 8, 84)) +>U : Symbol(U, Decl(commentsTypeParameters.ts, 8, 39)) + } +} + +function compare(a: T, b: T) { +>compare : Symbol(compare, Decl(commentsTypeParameters.ts, 10, 1)) +>T : Symbol(T, Decl(commentsTypeParameters.ts, 12, 17)) +>a : Symbol(a, Decl(commentsTypeParameters.ts, 12, 29)) +>T : Symbol(T, Decl(commentsTypeParameters.ts, 12, 17)) +>b : Symbol(b, Decl(commentsTypeParameters.ts, 12, 34)) +>T : Symbol(T, Decl(commentsTypeParameters.ts, 12, 17)) + + return a === b; +>a : Symbol(a, Decl(commentsTypeParameters.ts, 12, 29)) +>b : Symbol(b, Decl(commentsTypeParameters.ts, 12, 34)) +} diff --git a/tests/baselines/reference/commentsTypeParameters.types b/tests/baselines/reference/commentsTypeParameters.types index b75735120e075..573dabed7da87 100644 --- a/tests/baselines/reference/commentsTypeParameters.types +++ b/tests/baselines/reference/commentsTypeParameters.types @@ -1,47 +1,47 @@ === tests/cases/compiler/commentsTypeParameters.ts === class C { ->C : C, Symbol(C, Decl(commentsTypeParameters.ts, 0, 0)) ->T : T, Symbol(T, Decl(commentsTypeParameters.ts, 0, 8)) +>C : C +>T : T method(a: U) { ->method : (a: U) => void, Symbol(method, Decl(commentsTypeParameters.ts, 0, 47)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 1, 11)) ->T : T, Symbol(T, Decl(commentsTypeParameters.ts, 0, 8)) ->a : U, Symbol(a, Decl(commentsTypeParameters.ts, 1, 66)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 1, 11)) +>method : (a: U) => void +>U : U +>T : T +>a : U +>U : U } static staticmethod(a: U) { ->staticmethod : (a: U) => void, Symbol(C.staticmethod, Decl(commentsTypeParameters.ts, 2, 5)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 3, 24)) ->a : U, Symbol(a, Decl(commentsTypeParameters.ts, 3, 69)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 3, 24)) +>staticmethod : (a: U) => void +>U : U +>a : U +>U : U } private privatemethod(a: U) { ->privatemethod : (a: U) => void, Symbol(privatemethod, Decl(commentsTypeParameters.ts, 4, 5)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 6, 26)) ->T : T, Symbol(T, Decl(commentsTypeParameters.ts, 0, 8)) ->a : U, Symbol(a, Decl(commentsTypeParameters.ts, 6, 81)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 6, 26)) +>privatemethod : (a: U) => void +>U : U +>T : T +>a : U +>U : U } private static privatestaticmethod(a: U) { ->privatestaticmethod : (a: U) => void, Symbol(C.privatestaticmethod, Decl(commentsTypeParameters.ts, 7, 5)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 8, 39)) ->a : U, Symbol(a, Decl(commentsTypeParameters.ts, 8, 84)) ->U : U, Symbol(U, Decl(commentsTypeParameters.ts, 8, 39)) +>privatestaticmethod : (a: U) => void +>U : U +>a : U +>U : U } } function compare(a: T, b: T) { ->compare : (a: T, b: T) => boolean, Symbol(compare, Decl(commentsTypeParameters.ts, 10, 1)) ->T : T, Symbol(T, Decl(commentsTypeParameters.ts, 12, 17)) ->a : T, Symbol(a, Decl(commentsTypeParameters.ts, 12, 29)) ->T : T, Symbol(T, Decl(commentsTypeParameters.ts, 12, 17)) ->b : T, Symbol(b, Decl(commentsTypeParameters.ts, 12, 34)) ->T : T, Symbol(T, Decl(commentsTypeParameters.ts, 12, 17)) +>compare : (a: T, b: T) => boolean +>T : T +>a : T +>T : T +>b : T +>T : T return a === b; >a === b : boolean ->a : T, Symbol(a, Decl(commentsTypeParameters.ts, 12, 29)) ->b : T, Symbol(b, Decl(commentsTypeParameters.ts, 12, 34)) +>a : T +>b : T } diff --git a/tests/baselines/reference/commentsVarDecl.symbols b/tests/baselines/reference/commentsVarDecl.symbols new file mode 100644 index 0000000000000..d2ec3d4edcdfd --- /dev/null +++ b/tests/baselines/reference/commentsVarDecl.symbols @@ -0,0 +1,71 @@ +=== tests/cases/compiler/commentsVarDecl.ts === + +/** Variable comments*/ +var myVariable = 10; // This trailing Comment1 +>myVariable : Symbol(myVariable, Decl(commentsVarDecl.ts, 2, 3)) + +/** This is another variable comment*/ +var anotherVariable = 30; +>anotherVariable : Symbol(anotherVariable, Decl(commentsVarDecl.ts, 5, 3)) + +// shouldn't appear +var aVar = ""; +>aVar : Symbol(aVar, Decl(commentsVarDecl.ts, 8, 3)) + +/** this is multiline comment + * All these variables are of number type */ +var anotherAnotherVariable = 70; /* these are multiple trailing comments */ /* multiple trailing comments */ +>anotherAnotherVariable : Symbol(anotherAnotherVariable, Decl(commentsVarDecl.ts, 12, 3)) + +/** Triple slash multiline comment*/ +/** another line in the comment*/ +/** comment line 2*/ +var x = 70; /* multiline trailing comment +>x : Symbol(x, Decl(commentsVarDecl.ts, 17, 3)) + +this is multiline trailing comment */ +/** Triple slash comment on the assignement shouldnt be in .d.ts file*/ +x = myVariable; +>x : Symbol(x, Decl(commentsVarDecl.ts, 17, 3)) +>myVariable : Symbol(myVariable, Decl(commentsVarDecl.ts, 2, 3)) + +/** triple slash comment1*/ +/** jsdocstyle comment - only this comment should be in .d.ts file*/ +var n = 30; +>n : Symbol(n, Decl(commentsVarDecl.ts, 24, 3)) + +/** var deckaration with comment on type as well*/ +var y = /** value comment */ 20; +>y : Symbol(y, Decl(commentsVarDecl.ts, 27, 3)) + +/// var deckaration with comment on type as well +var yy = +>yy : Symbol(yy, Decl(commentsVarDecl.ts, 30, 3)) + + /// value comment + 20; + +/** comment2 */ +var z = /** lambda comment */ (x: number, y: number) => x + y; +>z : Symbol(z, Decl(commentsVarDecl.ts, 35, 3)) +>x : Symbol(x, Decl(commentsVarDecl.ts, 35, 31)) +>y : Symbol(y, Decl(commentsVarDecl.ts, 35, 41)) +>x : Symbol(x, Decl(commentsVarDecl.ts, 35, 31)) +>y : Symbol(y, Decl(commentsVarDecl.ts, 35, 41)) + +var z2: /** type comment*/ (x: number) => string; +>z2 : Symbol(z2, Decl(commentsVarDecl.ts, 37, 3)) +>x : Symbol(x, Decl(commentsVarDecl.ts, 37, 28)) + +var x2 = z2; +>x2 : Symbol(x2, Decl(commentsVarDecl.ts, 39, 3)) +>z2 : Symbol(z2, Decl(commentsVarDecl.ts, 37, 3)) + +var n4: (x: number) => string; +>n4 : Symbol(n4, Decl(commentsVarDecl.ts, 41, 3)) +>x : Symbol(x, Decl(commentsVarDecl.ts, 41, 9)) + +n4 = z2; +>n4 : Symbol(n4, Decl(commentsVarDecl.ts, 41, 3)) +>z2 : Symbol(z2, Decl(commentsVarDecl.ts, 37, 3)) + diff --git a/tests/baselines/reference/commentsVarDecl.types b/tests/baselines/reference/commentsVarDecl.types index 6ebb61d59b280..033590b344516 100644 --- a/tests/baselines/reference/commentsVarDecl.types +++ b/tests/baselines/reference/commentsVarDecl.types @@ -2,53 +2,53 @@ /** Variable comments*/ var myVariable = 10; // This trailing Comment1 ->myVariable : number, Symbol(myVariable, Decl(commentsVarDecl.ts, 2, 3)) +>myVariable : number >10 : number /** This is another variable comment*/ var anotherVariable = 30; ->anotherVariable : number, Symbol(anotherVariable, Decl(commentsVarDecl.ts, 5, 3)) +>anotherVariable : number >30 : number // shouldn't appear var aVar = ""; ->aVar : string, Symbol(aVar, Decl(commentsVarDecl.ts, 8, 3)) +>aVar : string >"" : string /** this is multiline comment * All these variables are of number type */ var anotherAnotherVariable = 70; /* these are multiple trailing comments */ /* multiple trailing comments */ ->anotherAnotherVariable : number, Symbol(anotherAnotherVariable, Decl(commentsVarDecl.ts, 12, 3)) +>anotherAnotherVariable : number >70 : number /** Triple slash multiline comment*/ /** another line in the comment*/ /** comment line 2*/ var x = 70; /* multiline trailing comment ->x : number, Symbol(x, Decl(commentsVarDecl.ts, 17, 3)) +>x : number >70 : number this is multiline trailing comment */ /** Triple slash comment on the assignement shouldnt be in .d.ts file*/ x = myVariable; >x = myVariable : number ->x : number, Symbol(x, Decl(commentsVarDecl.ts, 17, 3)) ->myVariable : number, Symbol(myVariable, Decl(commentsVarDecl.ts, 2, 3)) +>x : number +>myVariable : number /** triple slash comment1*/ /** jsdocstyle comment - only this comment should be in .d.ts file*/ var n = 30; ->n : number, Symbol(n, Decl(commentsVarDecl.ts, 24, 3)) +>n : number >30 : number /** var deckaration with comment on type as well*/ var y = /** value comment */ 20; ->y : number, Symbol(y, Decl(commentsVarDecl.ts, 27, 3)) +>y : number >20 : number /// var deckaration with comment on type as well var yy = ->yy : number, Symbol(yy, Decl(commentsVarDecl.ts, 30, 3)) +>yy : number /// value comment 20; @@ -56,28 +56,28 @@ var yy = /** comment2 */ var z = /** lambda comment */ (x: number, y: number) => x + y; ->z : (x: number, y: number) => number, Symbol(z, Decl(commentsVarDecl.ts, 35, 3)) +>z : (x: number, y: number) => number >(x: number, y: number) => x + y : (x: number, y: number) => number ->x : number, Symbol(x, Decl(commentsVarDecl.ts, 35, 31)) ->y : number, Symbol(y, Decl(commentsVarDecl.ts, 35, 41)) +>x : number +>y : number >x + y : number ->x : number, Symbol(x, Decl(commentsVarDecl.ts, 35, 31)) ->y : number, Symbol(y, Decl(commentsVarDecl.ts, 35, 41)) +>x : number +>y : number var z2: /** type comment*/ (x: number) => string; ->z2 : (x: number) => string, Symbol(z2, Decl(commentsVarDecl.ts, 37, 3)) ->x : number, Symbol(x, Decl(commentsVarDecl.ts, 37, 28)) +>z2 : (x: number) => string +>x : number var x2 = z2; ->x2 : (x: number) => string, Symbol(x2, Decl(commentsVarDecl.ts, 39, 3)) ->z2 : (x: number) => string, Symbol(z2, Decl(commentsVarDecl.ts, 37, 3)) +>x2 : (x: number) => string +>z2 : (x: number) => string var n4: (x: number) => string; ->n4 : (x: number) => string, Symbol(n4, Decl(commentsVarDecl.ts, 41, 3)) ->x : number, Symbol(x, Decl(commentsVarDecl.ts, 41, 9)) +>n4 : (x: number) => string +>x : number n4 = z2; >n4 = z2 : (x: number) => string ->n4 : (x: number) => string, Symbol(n4, Decl(commentsVarDecl.ts, 41, 3)) ->z2 : (x: number) => string, Symbol(z2, Decl(commentsVarDecl.ts, 37, 3)) +>n4 : (x: number) => string +>z2 : (x: number) => string diff --git a/tests/baselines/reference/commentsVariableStatement1.symbols b/tests/baselines/reference/commentsVariableStatement1.symbols new file mode 100644 index 0000000000000..54f382da7937b --- /dev/null +++ b/tests/baselines/reference/commentsVariableStatement1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/commentsVariableStatement1.ts === + +/** Comment */ +var v = 1; +>v : Symbol(v, Decl(commentsVariableStatement1.ts, 2, 3)) + diff --git a/tests/baselines/reference/commentsVariableStatement1.types b/tests/baselines/reference/commentsVariableStatement1.types index 16cf06d0ea2dd..4bb6753db8a58 100644 --- a/tests/baselines/reference/commentsVariableStatement1.types +++ b/tests/baselines/reference/commentsVariableStatement1.types @@ -2,6 +2,6 @@ /** Comment */ var v = 1; ->v : number, Symbol(v, Decl(commentsVariableStatement1.ts, 2, 3)) +>v : number >1 : number diff --git a/tests/baselines/reference/commentsdoNotEmitComments.symbols b/tests/baselines/reference/commentsdoNotEmitComments.symbols new file mode 100644 index 0000000000000..a7ba4076d9d31 --- /dev/null +++ b/tests/baselines/reference/commentsdoNotEmitComments.symbols @@ -0,0 +1,161 @@ +=== tests/cases/compiler/commentsdoNotEmitComments.ts === + +/** Variable comments*/ +var myVariable = 10; +>myVariable : Symbol(myVariable, Decl(commentsdoNotEmitComments.ts, 2, 3)) + +/** function comments*/ +function foo(/** parameter comment*/p: number) { +>foo : Symbol(foo, Decl(commentsdoNotEmitComments.ts, 2, 20)) +>p : Symbol(p, Decl(commentsdoNotEmitComments.ts, 5, 13)) +} + +/** variable with function type comment*/ +var fooVar: () => void; +>fooVar : Symbol(fooVar, Decl(commentsdoNotEmitComments.ts, 9, 3)) + +foo(50); +>foo : Symbol(foo, Decl(commentsdoNotEmitComments.ts, 2, 20)) + +fooVar(); +>fooVar : Symbol(fooVar, Decl(commentsdoNotEmitComments.ts, 9, 3)) + +/**class comment*/ +class c { +>c : Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) + + /** constructor comment*/ + constructor() { + } + + /** property comment */ + public b = 10; +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) + + /** function comment */ + public myFoo() { +>myFoo : Symbol(myFoo, Decl(commentsdoNotEmitComments.ts, 20, 18)) + + return this.b; +>this.b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>this : Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) + } + + /** getter comment*/ + public get prop1() { +>prop1 : Symbol(prop1, Decl(commentsdoNotEmitComments.ts, 25, 5), Decl(commentsdoNotEmitComments.ts, 30, 5)) + + return this.b; +>this.b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>this : Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) + } + + /** setter comment*/ + public set prop1(val: number) { +>prop1 : Symbol(prop1, Decl(commentsdoNotEmitComments.ts, 25, 5), Decl(commentsdoNotEmitComments.ts, 30, 5)) +>val : Symbol(val, Decl(commentsdoNotEmitComments.ts, 33, 21)) + + this.b = val; +>this.b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>this : Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>val : Symbol(val, Decl(commentsdoNotEmitComments.ts, 33, 21)) + } + + /** overload signature1*/ + public foo1(a: number): string; +>foo1 : Symbol(foo1, Decl(commentsdoNotEmitComments.ts, 35, 5), Decl(commentsdoNotEmitComments.ts, 38, 35), Decl(commentsdoNotEmitComments.ts, 40, 35)) +>a : Symbol(a, Decl(commentsdoNotEmitComments.ts, 38, 16)) + + /** Overload signature 2*/ + public foo1(b: string): string; +>foo1 : Symbol(foo1, Decl(commentsdoNotEmitComments.ts, 35, 5), Decl(commentsdoNotEmitComments.ts, 38, 35), Decl(commentsdoNotEmitComments.ts, 40, 35)) +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 40, 16)) + + /** overload implementation signature*/ + public foo1(aOrb) { +>foo1 : Symbol(foo1, Decl(commentsdoNotEmitComments.ts, 35, 5), Decl(commentsdoNotEmitComments.ts, 38, 35), Decl(commentsdoNotEmitComments.ts, 40, 35)) +>aOrb : Symbol(aOrb, Decl(commentsdoNotEmitComments.ts, 42, 16)) + + return aOrb.toString(); +>aOrb : Symbol(aOrb, Decl(commentsdoNotEmitComments.ts, 42, 16)) + } +} + +/**instance comment*/ +var i = new c(); +>i : Symbol(i, Decl(commentsdoNotEmitComments.ts, 48, 3)) +>c : Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) + +/** interface comments*/ +interface i1 { +>i1 : Symbol(i1, Decl(commentsdoNotEmitComments.ts, 48, 16)) + + /** caller comments*/ + (a: number): number; +>a : Symbol(a, Decl(commentsdoNotEmitComments.ts, 53, 5)) + + /** new comments*/ + new (b: string); +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 56, 9)) + + /**indexer property*/ + [a: number]: string; +>a : Symbol(a, Decl(commentsdoNotEmitComments.ts, 59, 5)) + + /** function property;*/ + myFoo(/*param prop*/a: number): string; +>myFoo : Symbol(myFoo, Decl(commentsdoNotEmitComments.ts, 59, 24)) +>a : Symbol(a, Decl(commentsdoNotEmitComments.ts, 62, 10)) + + /** prop*/ + prop: string; +>prop : Symbol(prop, Decl(commentsdoNotEmitComments.ts, 62, 43)) +} + +/**interface instance comments*/ +var i1_i: i1; +>i1_i : Symbol(i1_i, Decl(commentsdoNotEmitComments.ts, 69, 3)) +>i1 : Symbol(i1, Decl(commentsdoNotEmitComments.ts, 48, 16)) + +/** this is module comment*/ +module m1 { +>m1 : Symbol(m1, Decl(commentsdoNotEmitComments.ts, 69, 13)) + + /** class b */ + export class b { +>b : Symbol(b, Decl(commentsdoNotEmitComments.ts, 72, 11)) + + constructor(public x: number) { +>x : Symbol(x, Decl(commentsdoNotEmitComments.ts, 75, 20)) + + } + } + + /// module m2 + export module m2 { +>m2 : Symbol(m2, Decl(commentsdoNotEmitComments.ts, 78, 5)) + } +} + +/// this is x +declare var x; +>x : Symbol(x, Decl(commentsdoNotEmitComments.ts, 86, 11)) + + +/** const enum member value comment (generated by TS) */ +const enum color { red, green, blue } +>color : Symbol(color, Decl(commentsdoNotEmitComments.ts, 86, 14)) +>red : Symbol(color.red, Decl(commentsdoNotEmitComments.ts, 90, 18)) +>green : Symbol(color.green, Decl(commentsdoNotEmitComments.ts, 90, 23)) +>blue : Symbol(color.blue, Decl(commentsdoNotEmitComments.ts, 90, 30)) + +var shade: color = color.green; +>shade : Symbol(shade, Decl(commentsdoNotEmitComments.ts, 91, 3)) +>color : Symbol(color, Decl(commentsdoNotEmitComments.ts, 86, 14)) +>color.green : Symbol(color.green, Decl(commentsdoNotEmitComments.ts, 90, 23)) +>color : Symbol(color, Decl(commentsdoNotEmitComments.ts, 86, 14)) +>green : Symbol(color.green, Decl(commentsdoNotEmitComments.ts, 90, 23)) + diff --git a/tests/baselines/reference/commentsdoNotEmitComments.types b/tests/baselines/reference/commentsdoNotEmitComments.types index f26075214a3ef..024f1c2a21fa9 100644 --- a/tests/baselines/reference/commentsdoNotEmitComments.types +++ b/tests/baselines/reference/commentsdoNotEmitComments.types @@ -2,31 +2,31 @@ /** Variable comments*/ var myVariable = 10; ->myVariable : number, Symbol(myVariable, Decl(commentsdoNotEmitComments.ts, 2, 3)) +>myVariable : number >10 : number /** function comments*/ function foo(/** parameter comment*/p: number) { ->foo : (p: number) => void, Symbol(foo, Decl(commentsdoNotEmitComments.ts, 2, 20)) ->p : number, Symbol(p, Decl(commentsdoNotEmitComments.ts, 5, 13)) +>foo : (p: number) => void +>p : number } /** variable with function type comment*/ var fooVar: () => void; ->fooVar : () => void, Symbol(fooVar, Decl(commentsdoNotEmitComments.ts, 9, 3)) +>fooVar : () => void foo(50); >foo(50) : void ->foo : (p: number) => void, Symbol(foo, Decl(commentsdoNotEmitComments.ts, 2, 20)) +>foo : (p: number) => void >50 : number fooVar(); >fooVar() : void ->fooVar : () => void, Symbol(fooVar, Decl(commentsdoNotEmitComments.ts, 9, 3)) +>fooVar : () => void /**class comment*/ class c { ->c : c, Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) +>c : c /** constructor comment*/ constructor() { @@ -34,138 +34,138 @@ class c { /** property comment */ public b = 10; ->b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>b : number >10 : number /** function comment */ public myFoo() { ->myFoo : () => number, Symbol(myFoo, Decl(commentsdoNotEmitComments.ts, 20, 18)) +>myFoo : () => number return this.b; ->this.b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) ->this : c, Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) ->b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>this.b : number +>this : c +>b : number } /** getter comment*/ public get prop1() { ->prop1 : number, Symbol(prop1, Decl(commentsdoNotEmitComments.ts, 25, 5), Decl(commentsdoNotEmitComments.ts, 30, 5)) +>prop1 : number return this.b; ->this.b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) ->this : c, Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) ->b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) +>this.b : number +>this : c +>b : number } /** setter comment*/ public set prop1(val: number) { ->prop1 : number, Symbol(prop1, Decl(commentsdoNotEmitComments.ts, 25, 5), Decl(commentsdoNotEmitComments.ts, 30, 5)) ->val : number, Symbol(val, Decl(commentsdoNotEmitComments.ts, 33, 21)) +>prop1 : number +>val : number this.b = val; >this.b = val : number ->this.b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) ->this : c, Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) ->b : number, Symbol(b, Decl(commentsdoNotEmitComments.ts, 17, 5)) ->val : number, Symbol(val, Decl(commentsdoNotEmitComments.ts, 33, 21)) +>this.b : number +>this : c +>b : number +>val : number } /** overload signature1*/ public foo1(a: number): string; ->foo1 : { (a: number): string; (b: string): string; }, Symbol(foo1, Decl(commentsdoNotEmitComments.ts, 35, 5), Decl(commentsdoNotEmitComments.ts, 38, 35), Decl(commentsdoNotEmitComments.ts, 40, 35)) ->a : number, Symbol(a, Decl(commentsdoNotEmitComments.ts, 38, 16)) +>foo1 : { (a: number): string; (b: string): string; } +>a : number /** Overload signature 2*/ public foo1(b: string): string; ->foo1 : { (a: number): string; (b: string): string; }, Symbol(foo1, Decl(commentsdoNotEmitComments.ts, 35, 5), Decl(commentsdoNotEmitComments.ts, 38, 35), Decl(commentsdoNotEmitComments.ts, 40, 35)) ->b : string, Symbol(b, Decl(commentsdoNotEmitComments.ts, 40, 16)) +>foo1 : { (a: number): string; (b: string): string; } +>b : string /** overload implementation signature*/ public foo1(aOrb) { ->foo1 : { (a: number): string; (b: string): string; }, Symbol(foo1, Decl(commentsdoNotEmitComments.ts, 35, 5), Decl(commentsdoNotEmitComments.ts, 38, 35), Decl(commentsdoNotEmitComments.ts, 40, 35)) ->aOrb : any, Symbol(aOrb, Decl(commentsdoNotEmitComments.ts, 42, 16)) +>foo1 : { (a: number): string; (b: string): string; } +>aOrb : any return aOrb.toString(); >aOrb.toString() : any >aOrb.toString : any ->aOrb : any, Symbol(aOrb, Decl(commentsdoNotEmitComments.ts, 42, 16)) +>aOrb : any >toString : any } } /**instance comment*/ var i = new c(); ->i : c, Symbol(i, Decl(commentsdoNotEmitComments.ts, 48, 3)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsdoNotEmitComments.ts, 11, 9)) +>c : typeof c /** interface comments*/ interface i1 { ->i1 : i1, Symbol(i1, Decl(commentsdoNotEmitComments.ts, 48, 16)) +>i1 : i1 /** caller comments*/ (a: number): number; ->a : number, Symbol(a, Decl(commentsdoNotEmitComments.ts, 53, 5)) +>a : number /** new comments*/ new (b: string); ->b : string, Symbol(b, Decl(commentsdoNotEmitComments.ts, 56, 9)) +>b : string /**indexer property*/ [a: number]: string; ->a : number, Symbol(a, Decl(commentsdoNotEmitComments.ts, 59, 5)) +>a : number /** function property;*/ myFoo(/*param prop*/a: number): string; ->myFoo : (a: number) => string, Symbol(myFoo, Decl(commentsdoNotEmitComments.ts, 59, 24)) ->a : number, Symbol(a, Decl(commentsdoNotEmitComments.ts, 62, 10)) +>myFoo : (a: number) => string +>a : number /** prop*/ prop: string; ->prop : string, Symbol(prop, Decl(commentsdoNotEmitComments.ts, 62, 43)) +>prop : string } /**interface instance comments*/ var i1_i: i1; ->i1_i : i1, Symbol(i1_i, Decl(commentsdoNotEmitComments.ts, 69, 3)) ->i1 : i1, Symbol(i1, Decl(commentsdoNotEmitComments.ts, 48, 16)) +>i1_i : i1 +>i1 : i1 /** this is module comment*/ module m1 { ->m1 : typeof m1, Symbol(m1, Decl(commentsdoNotEmitComments.ts, 69, 13)) +>m1 : typeof m1 /** class b */ export class b { ->b : b, Symbol(b, Decl(commentsdoNotEmitComments.ts, 72, 11)) +>b : b constructor(public x: number) { ->x : number, Symbol(x, Decl(commentsdoNotEmitComments.ts, 75, 20)) +>x : number } } /// module m2 export module m2 { ->m2 : any, Symbol(m2, Decl(commentsdoNotEmitComments.ts, 78, 5)) +>m2 : any } } /// this is x declare var x; ->x : any, Symbol(x, Decl(commentsdoNotEmitComments.ts, 86, 11)) +>x : any /** const enum member value comment (generated by TS) */ const enum color { red, green, blue } ->color : color, Symbol(color, Decl(commentsdoNotEmitComments.ts, 86, 14)) ->red : color, Symbol(color.red, Decl(commentsdoNotEmitComments.ts, 90, 18)) ->green : color, Symbol(color.green, Decl(commentsdoNotEmitComments.ts, 90, 23)) ->blue : color, Symbol(color.blue, Decl(commentsdoNotEmitComments.ts, 90, 30)) +>color : color +>red : color +>green : color +>blue : color var shade: color = color.green; ->shade : color, Symbol(shade, Decl(commentsdoNotEmitComments.ts, 91, 3)) ->color : color, Symbol(color, Decl(commentsdoNotEmitComments.ts, 86, 14)) ->color.green : color, Symbol(color.green, Decl(commentsdoNotEmitComments.ts, 90, 23)) ->color : typeof color, Symbol(color, Decl(commentsdoNotEmitComments.ts, 86, 14)) ->green : color, Symbol(color.green, Decl(commentsdoNotEmitComments.ts, 90, 23)) +>shade : color +>color : color +>color.green : color +>color : typeof color +>green : color diff --git a/tests/baselines/reference/commentsemitComments.symbols b/tests/baselines/reference/commentsemitComments.symbols new file mode 100644 index 0000000000000..6c0683d5372a8 --- /dev/null +++ b/tests/baselines/reference/commentsemitComments.symbols @@ -0,0 +1,146 @@ +=== tests/cases/compiler/commentsemitComments.ts === + +/** Variable comments*/ +var myVariable = 10; +>myVariable : Symbol(myVariable, Decl(commentsemitComments.ts, 2, 3)) + +/** function comments*/ +function foo(/** parameter comment*/p: number) { +>foo : Symbol(foo, Decl(commentsemitComments.ts, 2, 20)) +>p : Symbol(p, Decl(commentsemitComments.ts, 5, 13)) +} + +/** variable with function type comment*/ +var fooVar: () => void; +>fooVar : Symbol(fooVar, Decl(commentsemitComments.ts, 9, 3)) + +foo(50); +>foo : Symbol(foo, Decl(commentsemitComments.ts, 2, 20)) + +fooVar(); +>fooVar : Symbol(fooVar, Decl(commentsemitComments.ts, 9, 3)) + +/**class comment*/ +class c { +>c : Symbol(c, Decl(commentsemitComments.ts, 11, 9)) + + /** constructor comment*/ + constructor() { + } + + /** property comment */ + public b = 10; +>b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) + + /** function comment */ + public myFoo() { +>myFoo : Symbol(myFoo, Decl(commentsemitComments.ts, 20, 18)) + + return this.b; +>this.b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>this : Symbol(c, Decl(commentsemitComments.ts, 11, 9)) +>b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) + } + + /** getter comment*/ + public get prop1() { +>prop1 : Symbol(prop1, Decl(commentsemitComments.ts, 25, 5), Decl(commentsemitComments.ts, 30, 5)) + + return this.b; +>this.b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>this : Symbol(c, Decl(commentsemitComments.ts, 11, 9)) +>b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) + } + + /** setter comment*/ + public set prop1(val: number) { +>prop1 : Symbol(prop1, Decl(commentsemitComments.ts, 25, 5), Decl(commentsemitComments.ts, 30, 5)) +>val : Symbol(val, Decl(commentsemitComments.ts, 33, 21)) + + this.b = val; +>this.b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>this : Symbol(c, Decl(commentsemitComments.ts, 11, 9)) +>b : Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>val : Symbol(val, Decl(commentsemitComments.ts, 33, 21)) + } + + /** overload signature1*/ + public foo1(a: number): string; +>foo1 : Symbol(foo1, Decl(commentsemitComments.ts, 35, 5), Decl(commentsemitComments.ts, 38, 35), Decl(commentsemitComments.ts, 40, 35)) +>a : Symbol(a, Decl(commentsemitComments.ts, 38, 16)) + + /** Overload signature 2*/ + public foo1(b: string): string; +>foo1 : Symbol(foo1, Decl(commentsemitComments.ts, 35, 5), Decl(commentsemitComments.ts, 38, 35), Decl(commentsemitComments.ts, 40, 35)) +>b : Symbol(b, Decl(commentsemitComments.ts, 40, 16)) + + /** overload implementation signature*/ + public foo1(aOrb) { +>foo1 : Symbol(foo1, Decl(commentsemitComments.ts, 35, 5), Decl(commentsemitComments.ts, 38, 35), Decl(commentsemitComments.ts, 40, 35)) +>aOrb : Symbol(aOrb, Decl(commentsemitComments.ts, 42, 16)) + + return aOrb.toString(); +>aOrb : Symbol(aOrb, Decl(commentsemitComments.ts, 42, 16)) + } +} + +/**instance comment*/ +var i = new c(); +>i : Symbol(i, Decl(commentsemitComments.ts, 48, 3)) +>c : Symbol(c, Decl(commentsemitComments.ts, 11, 9)) + +/** interface comments*/ +interface i1 { +>i1 : Symbol(i1, Decl(commentsemitComments.ts, 48, 16)) + + /** caller comments*/ + (a: number): number; +>a : Symbol(a, Decl(commentsemitComments.ts, 53, 5)) + + /** new comments*/ + new (b: string); +>b : Symbol(b, Decl(commentsemitComments.ts, 56, 9)) + + /**indexer property*/ + [a: number]: string; +>a : Symbol(a, Decl(commentsemitComments.ts, 59, 5)) + + /** function property;*/ + myFoo(/*param prop*/a: number): string; +>myFoo : Symbol(myFoo, Decl(commentsemitComments.ts, 59, 24)) +>a : Symbol(a, Decl(commentsemitComments.ts, 62, 10)) + + /** prop*/ + prop: string; +>prop : Symbol(prop, Decl(commentsemitComments.ts, 62, 43)) +} + +/**interface instance comments*/ +var i1_i: i1; +>i1_i : Symbol(i1_i, Decl(commentsemitComments.ts, 69, 3)) +>i1 : Symbol(i1, Decl(commentsemitComments.ts, 48, 16)) + +/** this is module comment*/ +module m1 { +>m1 : Symbol(m1, Decl(commentsemitComments.ts, 69, 13)) + + /** class b */ + export class b { +>b : Symbol(b, Decl(commentsemitComments.ts, 72, 11)) + + constructor(public x: number) { +>x : Symbol(x, Decl(commentsemitComments.ts, 75, 20)) + + } + } + + /// module m2 + export module m2 { +>m2 : Symbol(m2, Decl(commentsemitComments.ts, 78, 5)) + } +} + +/// this is x +declare var x; +>x : Symbol(x, Decl(commentsemitComments.ts, 86, 11)) + diff --git a/tests/baselines/reference/commentsemitComments.types b/tests/baselines/reference/commentsemitComments.types index 63bce46787220..2311ca09dd02c 100644 --- a/tests/baselines/reference/commentsemitComments.types +++ b/tests/baselines/reference/commentsemitComments.types @@ -2,31 +2,31 @@ /** Variable comments*/ var myVariable = 10; ->myVariable : number, Symbol(myVariable, Decl(commentsemitComments.ts, 2, 3)) +>myVariable : number >10 : number /** function comments*/ function foo(/** parameter comment*/p: number) { ->foo : (p: number) => void, Symbol(foo, Decl(commentsemitComments.ts, 2, 20)) ->p : number, Symbol(p, Decl(commentsemitComments.ts, 5, 13)) +>foo : (p: number) => void +>p : number } /** variable with function type comment*/ var fooVar: () => void; ->fooVar : () => void, Symbol(fooVar, Decl(commentsemitComments.ts, 9, 3)) +>fooVar : () => void foo(50); >foo(50) : void ->foo : (p: number) => void, Symbol(foo, Decl(commentsemitComments.ts, 2, 20)) +>foo : (p: number) => void >50 : number fooVar(); >fooVar() : void ->fooVar : () => void, Symbol(fooVar, Decl(commentsemitComments.ts, 9, 3)) +>fooVar : () => void /**class comment*/ class c { ->c : c, Symbol(c, Decl(commentsemitComments.ts, 11, 9)) +>c : c /** constructor comment*/ constructor() { @@ -34,123 +34,123 @@ class c { /** property comment */ public b = 10; ->b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>b : number >10 : number /** function comment */ public myFoo() { ->myFoo : () => number, Symbol(myFoo, Decl(commentsemitComments.ts, 20, 18)) +>myFoo : () => number return this.b; ->this.b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) ->this : c, Symbol(c, Decl(commentsemitComments.ts, 11, 9)) ->b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>this.b : number +>this : c +>b : number } /** getter comment*/ public get prop1() { ->prop1 : number, Symbol(prop1, Decl(commentsemitComments.ts, 25, 5), Decl(commentsemitComments.ts, 30, 5)) +>prop1 : number return this.b; ->this.b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) ->this : c, Symbol(c, Decl(commentsemitComments.ts, 11, 9)) ->b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) +>this.b : number +>this : c +>b : number } /** setter comment*/ public set prop1(val: number) { ->prop1 : number, Symbol(prop1, Decl(commentsemitComments.ts, 25, 5), Decl(commentsemitComments.ts, 30, 5)) ->val : number, Symbol(val, Decl(commentsemitComments.ts, 33, 21)) +>prop1 : number +>val : number this.b = val; >this.b = val : number ->this.b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) ->this : c, Symbol(c, Decl(commentsemitComments.ts, 11, 9)) ->b : number, Symbol(b, Decl(commentsemitComments.ts, 17, 5)) ->val : number, Symbol(val, Decl(commentsemitComments.ts, 33, 21)) +>this.b : number +>this : c +>b : number +>val : number } /** overload signature1*/ public foo1(a: number): string; ->foo1 : { (a: number): string; (b: string): string; }, Symbol(foo1, Decl(commentsemitComments.ts, 35, 5), Decl(commentsemitComments.ts, 38, 35), Decl(commentsemitComments.ts, 40, 35)) ->a : number, Symbol(a, Decl(commentsemitComments.ts, 38, 16)) +>foo1 : { (a: number): string; (b: string): string; } +>a : number /** Overload signature 2*/ public foo1(b: string): string; ->foo1 : { (a: number): string; (b: string): string; }, Symbol(foo1, Decl(commentsemitComments.ts, 35, 5), Decl(commentsemitComments.ts, 38, 35), Decl(commentsemitComments.ts, 40, 35)) ->b : string, Symbol(b, Decl(commentsemitComments.ts, 40, 16)) +>foo1 : { (a: number): string; (b: string): string; } +>b : string /** overload implementation signature*/ public foo1(aOrb) { ->foo1 : { (a: number): string; (b: string): string; }, Symbol(foo1, Decl(commentsemitComments.ts, 35, 5), Decl(commentsemitComments.ts, 38, 35), Decl(commentsemitComments.ts, 40, 35)) ->aOrb : any, Symbol(aOrb, Decl(commentsemitComments.ts, 42, 16)) +>foo1 : { (a: number): string; (b: string): string; } +>aOrb : any return aOrb.toString(); >aOrb.toString() : any >aOrb.toString : any ->aOrb : any, Symbol(aOrb, Decl(commentsemitComments.ts, 42, 16)) +>aOrb : any >toString : any } } /**instance comment*/ var i = new c(); ->i : c, Symbol(i, Decl(commentsemitComments.ts, 48, 3)) +>i : c >new c() : c ->c : typeof c, Symbol(c, Decl(commentsemitComments.ts, 11, 9)) +>c : typeof c /** interface comments*/ interface i1 { ->i1 : i1, Symbol(i1, Decl(commentsemitComments.ts, 48, 16)) +>i1 : i1 /** caller comments*/ (a: number): number; ->a : number, Symbol(a, Decl(commentsemitComments.ts, 53, 5)) +>a : number /** new comments*/ new (b: string); ->b : string, Symbol(b, Decl(commentsemitComments.ts, 56, 9)) +>b : string /**indexer property*/ [a: number]: string; ->a : number, Symbol(a, Decl(commentsemitComments.ts, 59, 5)) +>a : number /** function property;*/ myFoo(/*param prop*/a: number): string; ->myFoo : (a: number) => string, Symbol(myFoo, Decl(commentsemitComments.ts, 59, 24)) ->a : number, Symbol(a, Decl(commentsemitComments.ts, 62, 10)) +>myFoo : (a: number) => string +>a : number /** prop*/ prop: string; ->prop : string, Symbol(prop, Decl(commentsemitComments.ts, 62, 43)) +>prop : string } /**interface instance comments*/ var i1_i: i1; ->i1_i : i1, Symbol(i1_i, Decl(commentsemitComments.ts, 69, 3)) ->i1 : i1, Symbol(i1, Decl(commentsemitComments.ts, 48, 16)) +>i1_i : i1 +>i1 : i1 /** this is module comment*/ module m1 { ->m1 : typeof m1, Symbol(m1, Decl(commentsemitComments.ts, 69, 13)) +>m1 : typeof m1 /** class b */ export class b { ->b : b, Symbol(b, Decl(commentsemitComments.ts, 72, 11)) +>b : b constructor(public x: number) { ->x : number, Symbol(x, Decl(commentsemitComments.ts, 75, 20)) +>x : number } } /// module m2 export module m2 { ->m2 : any, Symbol(m2, Decl(commentsemitComments.ts, 78, 5)) +>m2 : any } } /// this is x declare var x; ->x : any, Symbol(x, Decl(commentsemitComments.ts, 86, 11)) +>x : any diff --git a/tests/baselines/reference/commonJSImportAsPrimaryExpression.symbols b/tests/baselines/reference/commonJSImportAsPrimaryExpression.symbols new file mode 100644 index 0000000000000..b640adc58a4a9 --- /dev/null +++ b/tests/baselines/reference/commonJSImportAsPrimaryExpression.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.C1.s1){ +>foo.C1.s1 : Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) +>foo.C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>s1 : Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) + + // Should cause runtime import +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +export class C1 { +>C1 : Symbol(C1, Decl(foo_0.ts, 0, 0)) + + m1 = 42; +>m1 : Symbol(m1, Decl(foo_0.ts, 0, 17)) + + static s1 = true; +>s1 : Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +} + diff --git a/tests/baselines/reference/commonJSImportAsPrimaryExpression.types b/tests/baselines/reference/commonJSImportAsPrimaryExpression.types index cff02e46b6b4f..01d96b31fc73b 100644 --- a/tests/baselines/reference/commonJSImportAsPrimaryExpression.types +++ b/tests/baselines/reference/commonJSImportAsPrimaryExpression.types @@ -1,27 +1,27 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo if(foo.C1.s1){ ->foo.C1.s1 : boolean, Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) ->foo.C1 : typeof foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->C1 : typeof foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) ->s1 : boolean, Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) +>foo.C1.s1 : boolean +>foo.C1 : typeof foo.C1 +>foo : typeof foo +>C1 : typeof foo.C1 +>s1 : boolean // Should cause runtime import } === tests/cases/conformance/externalModules/foo_0.ts === export class C1 { ->C1 : C1, Symbol(C1, Decl(foo_0.ts, 0, 0)) +>C1 : C1 m1 = 42; ->m1 : number, Symbol(m1, Decl(foo_0.ts, 0, 17)) +>m1 : number >42 : number static s1 = true; ->s1 : boolean, Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +>s1 : boolean >true : boolean } diff --git a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.symbols b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.symbols new file mode 100644 index 0000000000000..68a852c6165aa --- /dev/null +++ b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.symbols @@ -0,0 +1,81 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +// None of the below should cause a runtime dependency on foo_0 +import f = foo.M1; +>f : Symbol(f, Decl(foo_1.ts, 0, 32)) +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0)) +>M1 : Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) + +var i: f.I2; +>i : Symbol(i, Decl(foo_1.ts, 3, 3)) +>f : Symbol(f, Decl(foo_1.ts, 0, 32)) +>I2 : Symbol(f.I2, Decl(foo_0.ts, 10, 18)) + +var x: foo.C1 = <{m1: number}>{}; +>x : Symbol(x, Decl(foo_1.ts, 4, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>m1 : Symbol(m1, Decl(foo_1.ts, 4, 18)) + +var y: typeof foo.C1.s1 = false; +>y : Symbol(y, Decl(foo_1.ts, 5, 3)) +>foo.C1.s1 : Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) +>foo.C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>C1 : Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>s1 : Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) + +var z: foo.M1.I2; +>z : Symbol(z, Decl(foo_1.ts, 6, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>M1 : Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) +>I2 : Symbol(f.I2, Decl(foo_0.ts, 10, 18)) + +var e: number = 0; +>e : Symbol(e, Decl(foo_1.ts, 7, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>E1 : Symbol(foo.E1, Decl(foo_0.ts, 14, 1)) + +=== tests/cases/conformance/externalModules/foo_0.ts === +export class C1 { +>C1 : Symbol(C1, Decl(foo_0.ts, 0, 0)) + + m1 = 42; +>m1 : Symbol(m1, Decl(foo_0.ts, 0, 17)) + + static s1 = true; +>s1 : Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +} + +export interface I1 { +>I1 : Symbol(I1, Decl(foo_0.ts, 3, 1)) + + name: string; +>name : Symbol(name, Decl(foo_0.ts, 5, 21)) + + age: number; +>age : Symbol(age, Decl(foo_0.ts, 6, 14)) +} + +export module M1 { +>M1 : Symbol(M1, Decl(foo_0.ts, 8, 1)) + + export interface I2 { +>I2 : Symbol(I2, Decl(foo_0.ts, 10, 18)) + + foo: string; +>foo : Symbol(foo, Decl(foo_0.ts, 11, 22)) + } +} + +export enum E1 { +>E1 : Symbol(E1, Decl(foo_0.ts, 14, 1)) + + A,B,C +>A : Symbol(E1.A, Decl(foo_0.ts, 16, 16)) +>B : Symbol(E1.B, Decl(foo_0.ts, 17, 3)) +>C : Symbol(E1.C, Decl(foo_0.ts, 17, 5)) +} + diff --git a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types index 61a55d73b0ca8..6c3978d93aa1d 100644 --- a/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types +++ b/tests/baselines/reference/commonJSImportNotAsPrimaryExpression.types @@ -1,88 +1,88 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo // None of the below should cause a runtime dependency on foo_0 import f = foo.M1; ->f : any, Symbol(f, Decl(foo_1.ts, 0, 32)) ->foo : typeof foo, Symbol(foo, Decl(foo_0.ts, 0, 0)) ->M1 : any, Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) +>f : any +>foo : typeof foo +>M1 : any var i: f.I2; ->i : f.I2, Symbol(i, Decl(foo_1.ts, 3, 3)) ->f : any, Symbol(f, Decl(foo_1.ts, 0, 32)) ->I2 : f.I2, Symbol(f.I2, Decl(foo_0.ts, 10, 18)) +>i : f.I2 +>f : any +>I2 : f.I2 var x: foo.C1 = <{m1: number}>{}; ->x : foo.C1, Symbol(x, Decl(foo_1.ts, 4, 3)) ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->C1 : foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) +>x : foo.C1 +>foo : any +>C1 : foo.C1 ><{m1: number}>{} : { m1: number; } ->m1 : number, Symbol(m1, Decl(foo_1.ts, 4, 18)) +>m1 : number >{} : {} var y: typeof foo.C1.s1 = false; ->y : boolean, Symbol(y, Decl(foo_1.ts, 5, 3)) ->foo.C1.s1 : boolean, Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) ->foo.C1 : typeof foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->C1 : typeof foo.C1, Symbol(foo.C1, Decl(foo_0.ts, 0, 0)) ->s1 : boolean, Symbol(foo.C1.s1, Decl(foo_0.ts, 1, 9)) +>y : boolean +>foo.C1.s1 : boolean +>foo.C1 : typeof foo.C1 +>foo : typeof foo +>C1 : typeof foo.C1 +>s1 : boolean >false : boolean var z: foo.M1.I2; ->z : f.I2, Symbol(z, Decl(foo_1.ts, 6, 3)) ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->M1 : any, Symbol(foo.M1, Decl(foo_0.ts, 8, 1)) ->I2 : f.I2, Symbol(f.I2, Decl(foo_0.ts, 10, 18)) +>z : f.I2 +>foo : any +>M1 : any +>I2 : f.I2 var e: number = 0; ->e : number, Symbol(e, Decl(foo_1.ts, 7, 3)) +>e : number >0 : foo.E1 ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->E1 : foo.E1, Symbol(foo.E1, Decl(foo_0.ts, 14, 1)) +>foo : any +>E1 : foo.E1 >0 : number === tests/cases/conformance/externalModules/foo_0.ts === export class C1 { ->C1 : C1, Symbol(C1, Decl(foo_0.ts, 0, 0)) +>C1 : C1 m1 = 42; ->m1 : number, Symbol(m1, Decl(foo_0.ts, 0, 17)) +>m1 : number >42 : number static s1 = true; ->s1 : boolean, Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +>s1 : boolean >true : boolean } export interface I1 { ->I1 : I1, Symbol(I1, Decl(foo_0.ts, 3, 1)) +>I1 : I1 name: string; ->name : string, Symbol(name, Decl(foo_0.ts, 5, 21)) +>name : string age: number; ->age : number, Symbol(age, Decl(foo_0.ts, 6, 14)) +>age : number } export module M1 { ->M1 : any, Symbol(M1, Decl(foo_0.ts, 8, 1)) +>M1 : any export interface I2 { ->I2 : I2, Symbol(I2, Decl(foo_0.ts, 10, 18)) +>I2 : I2 foo: string; ->foo : string, Symbol(foo, Decl(foo_0.ts, 11, 22)) +>foo : string } } export enum E1 { ->E1 : E1, Symbol(E1, Decl(foo_0.ts, 14, 1)) +>E1 : E1 A,B,C ->A : E1, Symbol(E1.A, Decl(foo_0.ts, 16, 16)) ->B : E1, Symbol(E1.B, Decl(foo_0.ts, 17, 3)) ->C : E1, Symbol(E1.C, Decl(foo_0.ts, 17, 5)) +>A : E1 +>B : E1 +>C : E1 } diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.symbols b/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.symbols new file mode 100644 index 0000000000000..c6586cc306820 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.symbols @@ -0,0 +1,735 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts === +class A1 { +>A1 : Symbol(A1, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 10)) + + public b: number; +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 1, 21)) + + public c: boolean; +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalObjects.ts, 2, 21)) + + public d: any; +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalObjects.ts, 3, 22)) + + public e: Object; +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalObjects.ts, 4, 18)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + public fn(a: string): string { +>fn : Symbol(fn, Decl(comparisonOperatorWithIdenticalObjects.ts, 5, 21)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 6, 14)) + + return null; + } +} +class B1 { +>B1 : Symbol(B1, Decl(comparisonOperatorWithIdenticalObjects.ts, 9, 1)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 10, 10)) + + public b: number; +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 11, 21)) + + public c: boolean; +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalObjects.ts, 12, 21)) + + public d: any; +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalObjects.ts, 13, 22)) + + public e: Object; +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalObjects.ts, 14, 18)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + public fn(b: string): string { +>fn : Symbol(fn, Decl(comparisonOperatorWithIdenticalObjects.ts, 15, 21)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 16, 14)) + + return null; + } +} + +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) + + private a: string; +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 21, 12)) + + private fn(b: string): string { +>fn : Symbol(fn, Decl(comparisonOperatorWithIdenticalObjects.ts, 22, 22)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 23, 15)) + + return null; + } +} +class A2 extends Base { } +>A2 : Symbol(A2, Decl(comparisonOperatorWithIdenticalObjects.ts, 26, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) + +class B2 extends Base { } +>B2 : Symbol(B2, Decl(comparisonOperatorWithIdenticalObjects.ts, 27, 25)) +>Base : Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) + +interface A3 { f(a: number): string; } +>A3 : Symbol(A3, Decl(comparisonOperatorWithIdenticalObjects.ts, 28, 25)) +>f : Symbol(f, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 14)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 17)) + +interface B3 { f(a: number): string; } +>B3 : Symbol(B3, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 38)) +>f : Symbol(f, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 14)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 17)) + +interface A4 { new (a: string): A1; } +>A4 : Symbol(A4, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 38)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 33, 20)) +>A1 : Symbol(A1, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 0)) + +interface B4 { new (a: string): B1; } +>B4 : Symbol(B4, Decl(comparisonOperatorWithIdenticalObjects.ts, 33, 37)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 34, 20)) +>B1 : Symbol(B1, Decl(comparisonOperatorWithIdenticalObjects.ts, 9, 1)) + +interface A5 { [x: number]: number; } +>A5 : Symbol(A5, Decl(comparisonOperatorWithIdenticalObjects.ts, 34, 37)) +>x : Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 36, 16)) + +interface B5 { [x: number]: number; } +>B5 : Symbol(B5, Decl(comparisonOperatorWithIdenticalObjects.ts, 36, 37)) +>x : Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 37, 16)) + +interface A6 { [x: string]: string; } +>A6 : Symbol(A6, Decl(comparisonOperatorWithIdenticalObjects.ts, 37, 37)) +>x : Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 39, 16)) + +interface B6 { [x: string]: string; } +>B6 : Symbol(B6, Decl(comparisonOperatorWithIdenticalObjects.ts, 39, 37)) +>x : Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 40, 16)) + +var a1: A1; +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>A1 : Symbol(A1, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 0)) + +var a2: A2; +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>A2 : Symbol(A2, Decl(comparisonOperatorWithIdenticalObjects.ts, 26, 1)) + +var a3: A3; +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>A3 : Symbol(A3, Decl(comparisonOperatorWithIdenticalObjects.ts, 28, 25)) + +var a4: A4; +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>A4 : Symbol(A4, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 38)) + +var a5: A5; +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>A5 : Symbol(A5, Decl(comparisonOperatorWithIdenticalObjects.ts, 34, 37)) + +var a6: A6; +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>A6 : Symbol(A6, Decl(comparisonOperatorWithIdenticalObjects.ts, 37, 37)) + +var b1: B1; +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>B1 : Symbol(B1, Decl(comparisonOperatorWithIdenticalObjects.ts, 9, 1)) + +var b2: B2; +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>B2 : Symbol(B2, Decl(comparisonOperatorWithIdenticalObjects.ts, 27, 25)) + +var b3: B3; +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>B3 : Symbol(B3, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 38)) + +var b4: B4; +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>B4 : Symbol(B4, Decl(comparisonOperatorWithIdenticalObjects.ts, 33, 37)) + +var b5: B5; +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>B5 : Symbol(B5, Decl(comparisonOperatorWithIdenticalObjects.ts, 36, 37)) + +var b6: B6; +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>B6 : Symbol(B6, Decl(comparisonOperatorWithIdenticalObjects.ts, 39, 37)) + +var base1: Base; +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>Base : Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) + +var base2: Base; +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>Base : Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) + +// operator < +var r1a1 = a1 < b1; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 60, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r1a2 = base1 < base2; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 61, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r1a3 = a2 < b2; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 62, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r1a4 = a3 < b3; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 63, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r1a5 = a4 < b4; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 64, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r1a6 = a5 < b5; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 65, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r1a7 = a6 < b6; +>r1a7 : Symbol(r1a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 66, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r1b1 = b1 < a1; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 68, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r1b2 = base2 < base1; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 69, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r1b3 = b2 < a2; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 70, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r1b4 = b3 < a3; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 71, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r1b5 = b4 < a4; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 72, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r1b6 = b5 < a5; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 73, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r1b7 = b6 < a6; +>r1b7 : Symbol(r1b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 74, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator > +var r2a1 = a1 > b1; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 77, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r2a2 = base1 > base2; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 78, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r2a3 = a2 > b2; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 79, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r2a4 = a3 > b3; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 80, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r2a5 = a4 > b4; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 81, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r2a6 = a5 > b5; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 82, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r2a7 = a6 > b6; +>r2a7 : Symbol(r2a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 83, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r2b1 = b1 > a1; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 85, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r2b2 = base2 > base1; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 86, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r2b3 = b2 > a2; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 87, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r2b4 = b3 > a3; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 88, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r2b5 = b4 > a4; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 89, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r2b6 = b5 > a5; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 90, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r2b7 = b6 > a6; +>r2b7 : Symbol(r2b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 91, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator <= +var r3a1 = a1 <= b1; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 94, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r3a2 = base1 <= base2; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 95, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r3a3 = a2 <= b2; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 96, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r3a4 = a3 <= b3; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 97, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r3a5 = a4 <= b4; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 98, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r3a6 = a5 <= b5; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 99, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r3a7 = a6 <= b6; +>r3a7 : Symbol(r3a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 100, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r3b1 = b1 <= a1; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 102, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r3b2 = base2 <= base1; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 103, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r3b3 = b2 <= a2; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 104, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r3b4 = b3 <= a3; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 105, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r3b5 = b4 <= a4; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 106, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r3b6 = b5 <= a5; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 107, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r3b7 = b6 <= a6; +>r3b7 : Symbol(r3b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 108, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator >= +var r4a1 = a1 >= b1; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 111, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r4a2 = base1 >= base2; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 112, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r4a3 = a2 >= b2; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 113, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r4a4 = a3 >= b3; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 114, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r4a5 = a4 >= b4; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 115, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r4a6 = a5 >= b5; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 116, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r4a7 = a6 >= b6; +>r4a7 : Symbol(r4a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 117, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r4b1 = b1 >= a1; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 119, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r4b2 = base2 >= base1; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 120, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r4b3 = b2 >= a2; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 121, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r4b4 = b3 >= a3; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 122, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r4b5 = b4 >= a4; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 123, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r4b6 = b5 >= a5; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 124, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r4b7 = b6 >= a6; +>r4b7 : Symbol(r4b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 125, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator == +var r5a1 = a1 == b1; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 128, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r5a2 = base1 == base2; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 129, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r5a3 = a2 == b2; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 130, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r5a4 = a3 == b3; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 131, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r5a5 = a4 == b4; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 132, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r5a6 = a5 == b5; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 133, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r5a7 = a6 == b6; +>r5a7 : Symbol(r5a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 134, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r5b1 = b1 == a1; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 136, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r5b2 = base2 == base1; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 137, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r5b3 = b2 == a2; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 138, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r5b4 = b3 == a3; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 139, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r5b5 = b4 == a4; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 140, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r5b6 = b5 == a5; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 141, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r5b7 = b6 == a6; +>r5b7 : Symbol(r5b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 142, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator != +var r6a1 = a1 != b1; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 145, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r6a2 = base1 != base2; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 146, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r6a3 = a2 != b2; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 147, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r6a4 = a3 != b3; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 148, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r6a5 = a4 != b4; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 149, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r6a6 = a5 != b5; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 150, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r6a7 = a6 != b6; +>r6a7 : Symbol(r6a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 151, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r6b1 = b1 != a1; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 153, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r6b2 = base2 != base1; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 154, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r6b3 = b2 != a2; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 155, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r6b4 = b3 != a3; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 156, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r6b5 = b4 != a4; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 157, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r6b6 = b5 != a5; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 158, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r6b7 = b6 != a6; +>r6b7 : Symbol(r6b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 159, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator === +var r7a1 = a1 === b1; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 162, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r7a2 = base1 === base2; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 163, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r7a3 = a2 === b2; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 164, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r7a4 = a3 === b3; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 165, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r7a5 = a4 === b4; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 166, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r7a6 = a5 === b5; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 167, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r7a7 = a6 === b6; +>r7a7 : Symbol(r7a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 168, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r7b1 = b1 === a1; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 170, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r7b2 = base2 === base1; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 171, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r7b3 = b2 === a2; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 172, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r7b4 = b3 === a3; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 173, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r7b5 = b4 === a4; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 174, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r7b6 = b5 === a5; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 175, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r7b7 = b6 === a6; +>r7b7 : Symbol(r7b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 176, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + +// operator !== +var r8a1 = a1 !== b1; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 179, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) + +var r8a2 = base1 !== base2; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 180, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) + +var r8a3 = a2 !== b2; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 181, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) + +var r8a4 = a3 !== b3; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 182, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) + +var r8a5 = a4 !== b4; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 183, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) + +var r8a6 = a5 !== b5; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 184, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) + +var r8a7 = a6 !== b6; +>r8a7 : Symbol(r8a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 185, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) + +var r8b1 = b1 !== a1; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 187, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) + +var r8b2 = base2 !== base1; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 188, 3)) +>base2 : Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) + +var r8b3 = b2 !== a2; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 189, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) + +var r8b4 = b3 !== a3; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 190, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) + +var r8b5 = b4 !== a4; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 191, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) + +var r8b6 = b5 !== a5; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 192, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) + +var r8b7 = b6 !== a6; +>r8b7 : Symbol(r8b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 193, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.types b/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.types index ff7310cc7bf55..7f202c38d3a39 100644 --- a/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.types +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalObjects.types @@ -1,53 +1,53 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalObjects.ts === class A1 { ->A1 : A1, Symbol(A1, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 0)) +>A1 : A1 public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 10)) +>a : string public b: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 1, 21)) +>b : number public c: boolean; ->c : boolean, Symbol(c, Decl(comparisonOperatorWithIdenticalObjects.ts, 2, 21)) +>c : boolean public d: any; ->d : any, Symbol(d, Decl(comparisonOperatorWithIdenticalObjects.ts, 3, 22)) +>d : any public e: Object; ->e : Object, Symbol(e, Decl(comparisonOperatorWithIdenticalObjects.ts, 4, 18)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>e : Object +>Object : Object public fn(a: string): string { ->fn : (a: string) => string, Symbol(fn, Decl(comparisonOperatorWithIdenticalObjects.ts, 5, 21)) ->a : string, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 6, 14)) +>fn : (a: string) => string +>a : string return null; >null : null } } class B1 { ->B1 : B1, Symbol(B1, Decl(comparisonOperatorWithIdenticalObjects.ts, 9, 1)) +>B1 : B1 public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 10, 10)) +>a : string public b: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 11, 21)) +>b : number public c: boolean; ->c : boolean, Symbol(c, Decl(comparisonOperatorWithIdenticalObjects.ts, 12, 21)) +>c : boolean public d: any; ->d : any, Symbol(d, Decl(comparisonOperatorWithIdenticalObjects.ts, 13, 22)) +>d : any public e: Object; ->e : Object, Symbol(e, Decl(comparisonOperatorWithIdenticalObjects.ts, 14, 18)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>e : Object +>Object : Object public fn(b: string): string { ->fn : (b: string) => string, Symbol(fn, Decl(comparisonOperatorWithIdenticalObjects.ts, 15, 21)) ->b : string, Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 16, 14)) +>fn : (b: string) => string +>b : string return null; >null : null @@ -55,796 +55,796 @@ class B1 { } class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) +>Base : Base private a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 21, 12)) +>a : string private fn(b: string): string { ->fn : (b: string) => string, Symbol(fn, Decl(comparisonOperatorWithIdenticalObjects.ts, 22, 22)) ->b : string, Symbol(b, Decl(comparisonOperatorWithIdenticalObjects.ts, 23, 15)) +>fn : (b: string) => string +>b : string return null; >null : null } } class A2 extends Base { } ->A2 : A2, Symbol(A2, Decl(comparisonOperatorWithIdenticalObjects.ts, 26, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) +>A2 : A2 +>Base : Base class B2 extends Base { } ->B2 : B2, Symbol(B2, Decl(comparisonOperatorWithIdenticalObjects.ts, 27, 25)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) +>B2 : B2 +>Base : Base interface A3 { f(a: number): string; } ->A3 : A3, Symbol(A3, Decl(comparisonOperatorWithIdenticalObjects.ts, 28, 25)) ->f : (a: number) => string, Symbol(f, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 14)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 17)) +>A3 : A3 +>f : (a: number) => string +>a : number interface B3 { f(a: number): string; } ->B3 : B3, Symbol(B3, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 38)) ->f : (a: number) => string, Symbol(f, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 14)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 17)) +>B3 : B3 +>f : (a: number) => string +>a : number interface A4 { new (a: string): A1; } ->A4 : A4, Symbol(A4, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 38)) ->a : string, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 33, 20)) ->A1 : A1, Symbol(A1, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 0)) +>A4 : A4 +>a : string +>A1 : A1 interface B4 { new (a: string): B1; } ->B4 : B4, Symbol(B4, Decl(comparisonOperatorWithIdenticalObjects.ts, 33, 37)) ->a : string, Symbol(a, Decl(comparisonOperatorWithIdenticalObjects.ts, 34, 20)) ->B1 : B1, Symbol(B1, Decl(comparisonOperatorWithIdenticalObjects.ts, 9, 1)) +>B4 : B4 +>a : string +>B1 : B1 interface A5 { [x: number]: number; } ->A5 : A5, Symbol(A5, Decl(comparisonOperatorWithIdenticalObjects.ts, 34, 37)) ->x : number, Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 36, 16)) +>A5 : A5 +>x : number interface B5 { [x: number]: number; } ->B5 : B5, Symbol(B5, Decl(comparisonOperatorWithIdenticalObjects.ts, 36, 37)) ->x : number, Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 37, 16)) +>B5 : B5 +>x : number interface A6 { [x: string]: string; } ->A6 : A6, Symbol(A6, Decl(comparisonOperatorWithIdenticalObjects.ts, 37, 37)) ->x : string, Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 39, 16)) +>A6 : A6 +>x : string interface B6 { [x: string]: string; } ->B6 : B6, Symbol(B6, Decl(comparisonOperatorWithIdenticalObjects.ts, 39, 37)) ->x : string, Symbol(x, Decl(comparisonOperatorWithIdenticalObjects.ts, 40, 16)) +>B6 : B6 +>x : string var a1: A1; ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->A1 : A1, Symbol(A1, Decl(comparisonOperatorWithIdenticalObjects.ts, 0, 0)) +>a1 : A1 +>A1 : A1 var a2: A2; ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->A2 : A2, Symbol(A2, Decl(comparisonOperatorWithIdenticalObjects.ts, 26, 1)) +>a2 : A2 +>A2 : A2 var a3: A3; ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->A3 : A3, Symbol(A3, Decl(comparisonOperatorWithIdenticalObjects.ts, 28, 25)) +>a3 : A3 +>A3 : A3 var a4: A4; ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->A4 : A4, Symbol(A4, Decl(comparisonOperatorWithIdenticalObjects.ts, 31, 38)) +>a4 : A4 +>A4 : A4 var a5: A5; ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->A5 : A5, Symbol(A5, Decl(comparisonOperatorWithIdenticalObjects.ts, 34, 37)) +>a5 : A5 +>A5 : A5 var a6: A6; ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->A6 : A6, Symbol(A6, Decl(comparisonOperatorWithIdenticalObjects.ts, 37, 37)) +>a6 : A6 +>A6 : A6 var b1: B1; ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->B1 : B1, Symbol(B1, Decl(comparisonOperatorWithIdenticalObjects.ts, 9, 1)) +>b1 : B1 +>B1 : B1 var b2: B2; ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->B2 : B2, Symbol(B2, Decl(comparisonOperatorWithIdenticalObjects.ts, 27, 25)) +>b2 : B2 +>B2 : B2 var b3: B3; ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->B3 : B3, Symbol(B3, Decl(comparisonOperatorWithIdenticalObjects.ts, 30, 38)) +>b3 : B3 +>B3 : B3 var b4: B4; ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->B4 : B4, Symbol(B4, Decl(comparisonOperatorWithIdenticalObjects.ts, 33, 37)) +>b4 : B4 +>B4 : B4 var b5: B5; ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->B5 : B5, Symbol(B5, Decl(comparisonOperatorWithIdenticalObjects.ts, 36, 37)) +>b5 : B5 +>B5 : B5 var b6: B6; ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->B6 : B6, Symbol(B6, Decl(comparisonOperatorWithIdenticalObjects.ts, 39, 37)) +>b6 : B6 +>B6 : B6 var base1: Base; ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) +>base1 : Base +>Base : Base var base2: Base; ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithIdenticalObjects.ts, 19, 1)) +>base2 : Base +>Base : Base // operator < var r1a1 = a1 < b1; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 60, 3)) +>r1a1 : boolean >a1 < b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r1a2 = base1 < base2; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 61, 3)) +>r1a2 : boolean >base1 < base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r1a3 = a2 < b2; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 62, 3)) +>r1a3 : boolean >a2 < b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r1a4 = a3 < b3; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 63, 3)) +>r1a4 : boolean >a3 < b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r1a5 = a4 < b4; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 64, 3)) +>r1a5 : boolean >a4 < b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r1a6 = a5 < b5; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 65, 3)) +>r1a6 : boolean >a5 < b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r1a7 = a6 < b6; ->r1a7 : boolean, Symbol(r1a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 66, 3)) +>r1a7 : boolean >a6 < b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r1b1 = b1 < a1; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 68, 3)) +>r1b1 : boolean >b1 < a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r1b2 = base2 < base1; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 69, 3)) +>r1b2 : boolean >base2 < base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r1b3 = b2 < a2; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 70, 3)) +>r1b3 : boolean >b2 < a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r1b4 = b3 < a3; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 71, 3)) +>r1b4 : boolean >b3 < a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r1b5 = b4 < a4; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 72, 3)) +>r1b5 : boolean >b4 < a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r1b6 = b5 < a5; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 73, 3)) +>r1b6 : boolean >b5 < a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r1b7 = b6 < a6; ->r1b7 : boolean, Symbol(r1b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 74, 3)) +>r1b7 : boolean >b6 < a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator > var r2a1 = a1 > b1; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 77, 3)) +>r2a1 : boolean >a1 > b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r2a2 = base1 > base2; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 78, 3)) +>r2a2 : boolean >base1 > base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r2a3 = a2 > b2; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 79, 3)) +>r2a3 : boolean >a2 > b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r2a4 = a3 > b3; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 80, 3)) +>r2a4 : boolean >a3 > b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r2a5 = a4 > b4; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 81, 3)) +>r2a5 : boolean >a4 > b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r2a6 = a5 > b5; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 82, 3)) +>r2a6 : boolean >a5 > b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r2a7 = a6 > b6; ->r2a7 : boolean, Symbol(r2a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 83, 3)) +>r2a7 : boolean >a6 > b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r2b1 = b1 > a1; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 85, 3)) +>r2b1 : boolean >b1 > a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r2b2 = base2 > base1; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 86, 3)) +>r2b2 : boolean >base2 > base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r2b3 = b2 > a2; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 87, 3)) +>r2b3 : boolean >b2 > a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r2b4 = b3 > a3; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 88, 3)) +>r2b4 : boolean >b3 > a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r2b5 = b4 > a4; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 89, 3)) +>r2b5 : boolean >b4 > a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r2b6 = b5 > a5; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 90, 3)) +>r2b6 : boolean >b5 > a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r2b7 = b6 > a6; ->r2b7 : boolean, Symbol(r2b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 91, 3)) +>r2b7 : boolean >b6 > a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator <= var r3a1 = a1 <= b1; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 94, 3)) +>r3a1 : boolean >a1 <= b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r3a2 = base1 <= base2; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 95, 3)) +>r3a2 : boolean >base1 <= base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r3a3 = a2 <= b2; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 96, 3)) +>r3a3 : boolean >a2 <= b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r3a4 = a3 <= b3; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 97, 3)) +>r3a4 : boolean >a3 <= b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r3a5 = a4 <= b4; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 98, 3)) +>r3a5 : boolean >a4 <= b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r3a6 = a5 <= b5; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 99, 3)) +>r3a6 : boolean >a5 <= b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r3a7 = a6 <= b6; ->r3a7 : boolean, Symbol(r3a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 100, 3)) +>r3a7 : boolean >a6 <= b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r3b1 = b1 <= a1; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 102, 3)) +>r3b1 : boolean >b1 <= a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r3b2 = base2 <= base1; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 103, 3)) +>r3b2 : boolean >base2 <= base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r3b3 = b2 <= a2; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 104, 3)) +>r3b3 : boolean >b2 <= a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r3b4 = b3 <= a3; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 105, 3)) +>r3b4 : boolean >b3 <= a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r3b5 = b4 <= a4; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 106, 3)) +>r3b5 : boolean >b4 <= a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r3b6 = b5 <= a5; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 107, 3)) +>r3b6 : boolean >b5 <= a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r3b7 = b6 <= a6; ->r3b7 : boolean, Symbol(r3b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 108, 3)) +>r3b7 : boolean >b6 <= a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator >= var r4a1 = a1 >= b1; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 111, 3)) +>r4a1 : boolean >a1 >= b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r4a2 = base1 >= base2; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 112, 3)) +>r4a2 : boolean >base1 >= base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r4a3 = a2 >= b2; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 113, 3)) +>r4a3 : boolean >a2 >= b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r4a4 = a3 >= b3; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 114, 3)) +>r4a4 : boolean >a3 >= b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r4a5 = a4 >= b4; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 115, 3)) +>r4a5 : boolean >a4 >= b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r4a6 = a5 >= b5; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 116, 3)) +>r4a6 : boolean >a5 >= b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r4a7 = a6 >= b6; ->r4a7 : boolean, Symbol(r4a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 117, 3)) +>r4a7 : boolean >a6 >= b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r4b1 = b1 >= a1; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 119, 3)) +>r4b1 : boolean >b1 >= a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r4b2 = base2 >= base1; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 120, 3)) +>r4b2 : boolean >base2 >= base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r4b3 = b2 >= a2; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 121, 3)) +>r4b3 : boolean >b2 >= a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r4b4 = b3 >= a3; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 122, 3)) +>r4b4 : boolean >b3 >= a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r4b5 = b4 >= a4; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 123, 3)) +>r4b5 : boolean >b4 >= a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r4b6 = b5 >= a5; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 124, 3)) +>r4b6 : boolean >b5 >= a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r4b7 = b6 >= a6; ->r4b7 : boolean, Symbol(r4b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 125, 3)) +>r4b7 : boolean >b6 >= a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator == var r5a1 = a1 == b1; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 128, 3)) +>r5a1 : boolean >a1 == b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r5a2 = base1 == base2; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 129, 3)) +>r5a2 : boolean >base1 == base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r5a3 = a2 == b2; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 130, 3)) +>r5a3 : boolean >a2 == b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r5a4 = a3 == b3; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 131, 3)) +>r5a4 : boolean >a3 == b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r5a5 = a4 == b4; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 132, 3)) +>r5a5 : boolean >a4 == b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r5a6 = a5 == b5; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 133, 3)) +>r5a6 : boolean >a5 == b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r5a7 = a6 == b6; ->r5a7 : boolean, Symbol(r5a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 134, 3)) +>r5a7 : boolean >a6 == b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r5b1 = b1 == a1; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 136, 3)) +>r5b1 : boolean >b1 == a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r5b2 = base2 == base1; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 137, 3)) +>r5b2 : boolean >base2 == base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r5b3 = b2 == a2; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 138, 3)) +>r5b3 : boolean >b2 == a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r5b4 = b3 == a3; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 139, 3)) +>r5b4 : boolean >b3 == a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r5b5 = b4 == a4; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 140, 3)) +>r5b5 : boolean >b4 == a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r5b6 = b5 == a5; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 141, 3)) +>r5b6 : boolean >b5 == a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r5b7 = b6 == a6; ->r5b7 : boolean, Symbol(r5b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 142, 3)) +>r5b7 : boolean >b6 == a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator != var r6a1 = a1 != b1; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 145, 3)) +>r6a1 : boolean >a1 != b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r6a2 = base1 != base2; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 146, 3)) +>r6a2 : boolean >base1 != base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r6a3 = a2 != b2; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 147, 3)) +>r6a3 : boolean >a2 != b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r6a4 = a3 != b3; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 148, 3)) +>r6a4 : boolean >a3 != b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r6a5 = a4 != b4; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 149, 3)) +>r6a5 : boolean >a4 != b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r6a6 = a5 != b5; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 150, 3)) +>r6a6 : boolean >a5 != b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r6a7 = a6 != b6; ->r6a7 : boolean, Symbol(r6a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 151, 3)) +>r6a7 : boolean >a6 != b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r6b1 = b1 != a1; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 153, 3)) +>r6b1 : boolean >b1 != a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r6b2 = base2 != base1; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 154, 3)) +>r6b2 : boolean >base2 != base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r6b3 = b2 != a2; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 155, 3)) +>r6b3 : boolean >b2 != a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r6b4 = b3 != a3; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 156, 3)) +>r6b4 : boolean >b3 != a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r6b5 = b4 != a4; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 157, 3)) +>r6b5 : boolean >b4 != a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r6b6 = b5 != a5; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 158, 3)) +>r6b6 : boolean >b5 != a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r6b7 = b6 != a6; ->r6b7 : boolean, Symbol(r6b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 159, 3)) +>r6b7 : boolean >b6 != a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator === var r7a1 = a1 === b1; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 162, 3)) +>r7a1 : boolean >a1 === b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r7a2 = base1 === base2; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 163, 3)) +>r7a2 : boolean >base1 === base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r7a3 = a2 === b2; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 164, 3)) +>r7a3 : boolean >a2 === b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r7a4 = a3 === b3; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 165, 3)) +>r7a4 : boolean >a3 === b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r7a5 = a4 === b4; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 166, 3)) +>r7a5 : boolean >a4 === b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r7a6 = a5 === b5; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 167, 3)) +>r7a6 : boolean >a5 === b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r7a7 = a6 === b6; ->r7a7 : boolean, Symbol(r7a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 168, 3)) +>r7a7 : boolean >a6 === b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r7b1 = b1 === a1; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 170, 3)) +>r7b1 : boolean >b1 === a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r7b2 = base2 === base1; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 171, 3)) +>r7b2 : boolean >base2 === base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r7b3 = b2 === a2; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 172, 3)) +>r7b3 : boolean >b2 === a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r7b4 = b3 === a3; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 173, 3)) +>r7b4 : boolean >b3 === a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r7b5 = b4 === a4; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 174, 3)) +>r7b5 : boolean >b4 === a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r7b6 = b5 === a5; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 175, 3)) +>r7b6 : boolean >b5 === a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r7b7 = b6 === a6; ->r7b7 : boolean, Symbol(r7b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 176, 3)) +>r7b7 : boolean >b6 === a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 // operator !== var r8a1 = a1 !== b1; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 179, 3)) +>r8a1 : boolean >a1 !== b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) +>a1 : A1 +>b1 : B1 var r8a2 = base1 !== base2; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 180, 3)) +>r8a2 : boolean >base1 !== base2 : boolean ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) +>base1 : Base +>base2 : Base var r8a3 = a2 !== b2; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 181, 3)) +>r8a3 : boolean >a2 !== b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) +>a2 : A2 +>b2 : B2 var r8a4 = a3 !== b3; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 182, 3)) +>r8a4 : boolean >a3 !== b3 : boolean ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) +>a3 : A3 +>b3 : B3 var r8a5 = a4 !== b4; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 183, 3)) +>r8a5 : boolean >a4 !== b4 : boolean ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) +>a4 : A4 +>b4 : B4 var r8a6 = a5 !== b5; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 184, 3)) +>r8a6 : boolean >a5 !== b5 : boolean ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) +>a5 : A5 +>b5 : B5 var r8a7 = a6 !== b6; ->r8a7 : boolean, Symbol(r8a7, Decl(comparisonOperatorWithIdenticalObjects.ts, 185, 3)) +>r8a7 : boolean >a6 !== b6 : boolean ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) +>a6 : A6 +>b6 : B6 var r8b1 = b1 !== a1; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 187, 3)) +>r8b1 : boolean >b1 !== a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithIdenticalObjects.ts, 49, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithIdenticalObjects.ts, 42, 3)) +>b1 : B1 +>a1 : A1 var r8b2 = base2 !== base1; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 188, 3)) +>r8b2 : boolean >base2 !== base1 : boolean ->base2 : Base, Symbol(base2, Decl(comparisonOperatorWithIdenticalObjects.ts, 57, 3)) ->base1 : Base, Symbol(base1, Decl(comparisonOperatorWithIdenticalObjects.ts, 56, 3)) +>base2 : Base +>base1 : Base var r8b3 = b2 !== a2; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 189, 3)) +>r8b3 : boolean >b2 !== a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithIdenticalObjects.ts, 50, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithIdenticalObjects.ts, 43, 3)) +>b2 : B2 +>a2 : A2 var r8b4 = b3 !== a3; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 190, 3)) +>r8b4 : boolean >b3 !== a3 : boolean ->b3 : B3, Symbol(b3, Decl(comparisonOperatorWithIdenticalObjects.ts, 51, 3)) ->a3 : A3, Symbol(a3, Decl(comparisonOperatorWithIdenticalObjects.ts, 44, 3)) +>b3 : B3 +>a3 : A3 var r8b5 = b4 !== a4; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 191, 3)) +>r8b5 : boolean >b4 !== a4 : boolean ->b4 : B4, Symbol(b4, Decl(comparisonOperatorWithIdenticalObjects.ts, 52, 3)) ->a4 : A4, Symbol(a4, Decl(comparisonOperatorWithIdenticalObjects.ts, 45, 3)) +>b4 : B4 +>a4 : A4 var r8b6 = b5 !== a5; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 192, 3)) +>r8b6 : boolean >b5 !== a5 : boolean ->b5 : B5, Symbol(b5, Decl(comparisonOperatorWithIdenticalObjects.ts, 53, 3)) ->a5 : A5, Symbol(a5, Decl(comparisonOperatorWithIdenticalObjects.ts, 46, 3)) +>b5 : B5 +>a5 : A5 var r8b7 = b6 !== a6; ->r8b7 : boolean, Symbol(r8b7, Decl(comparisonOperatorWithIdenticalObjects.ts, 193, 3)) +>r8b7 : boolean >b6 !== a6 : boolean ->b6 : B6, Symbol(b6, Decl(comparisonOperatorWithIdenticalObjects.ts, 54, 3)) ->a6 : A6, Symbol(a6, Decl(comparisonOperatorWithIdenticalObjects.ts, 47, 3)) +>b6 : B6 +>a6 : A6 diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.symbols b/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.symbols new file mode 100644 index 0000000000000..72c912e80cc97 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.symbols @@ -0,0 +1,295 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalPrimitiveType.ts === +enum E { a, b, c } +>E : Symbol(E, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 8)) +>b : Symbol(E.b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 11)) +>c : Symbol(E.c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 14)) + +var a: number; +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var b: boolean; +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var c: string; +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var d: void; +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var e: E; +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>E : Symbol(E, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 0)) + +// operator < +var ra1 = a < a; +>ra1 : Symbol(ra1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 9, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var ra2 = b < b; +>ra2 : Symbol(ra2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 10, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var ra3 = c < c; +>ra3 : Symbol(ra3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 11, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var ra4 = d < d; +>ra4 : Symbol(ra4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 12, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var ra5 = e < e; +>ra5 : Symbol(ra5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 13, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var ra6 = null < null; +>ra6 : Symbol(ra6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 14, 3)) + +var ra7 = undefined < undefined; +>ra7 : Symbol(ra7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 15, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator > +var rb1 = a > a; +>rb1 : Symbol(rb1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 18, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var rb2 = b > b; +>rb2 : Symbol(rb2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 19, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var rb3 = c > c; +>rb3 : Symbol(rb3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 20, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var rb4 = d > d; +>rb4 : Symbol(rb4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 21, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var rb5 = e > e; +>rb5 : Symbol(rb5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 22, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var rb6 = null > null; +>rb6 : Symbol(rb6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 23, 3)) + +var rb7 = undefined > undefined; +>rb7 : Symbol(rb7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 24, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator <= +var rc1 = a <= a; +>rc1 : Symbol(rc1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 27, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var rc2 = b <= b; +>rc2 : Symbol(rc2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 28, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var rc3 = c <= c; +>rc3 : Symbol(rc3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 29, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var rc4 = d <= d; +>rc4 : Symbol(rc4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 30, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var rc5 = e <= e; +>rc5 : Symbol(rc5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 31, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var rc6 = null <= null; +>rc6 : Symbol(rc6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 32, 3)) + +var rc7 = undefined <= undefined; +>rc7 : Symbol(rc7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 33, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator >= +var rd1 = a >= a; +>rd1 : Symbol(rd1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 36, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var rd2 = b >= b; +>rd2 : Symbol(rd2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 37, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var rd3 = c >= c; +>rd3 : Symbol(rd3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 38, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var rd4 = d >= d; +>rd4 : Symbol(rd4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 39, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var rd5 = e >= e; +>rd5 : Symbol(rd5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 40, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var rd6 = null >= null; +>rd6 : Symbol(rd6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 41, 3)) + +var rd7 = undefined >= undefined; +>rd7 : Symbol(rd7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 42, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator == +var re1 = a == a; +>re1 : Symbol(re1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 45, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var re2 = b == b; +>re2 : Symbol(re2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 46, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var re3 = c == c; +>re3 : Symbol(re3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 47, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var re4 = d == d; +>re4 : Symbol(re4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 48, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var re5 = e == e; +>re5 : Symbol(re5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 49, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var re6 = null == null; +>re6 : Symbol(re6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 50, 3)) + +var re7 = undefined == undefined; +>re7 : Symbol(re7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 51, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator != +var rf1 = a != a; +>rf1 : Symbol(rf1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 54, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var rf2 = b != b; +>rf2 : Symbol(rf2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 55, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var rf3 = c != c; +>rf3 : Symbol(rf3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 56, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var rf4 = d != d; +>rf4 : Symbol(rf4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 57, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var rf5 = e != e; +>rf5 : Symbol(rf5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 58, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var rf6 = null != null; +>rf6 : Symbol(rf6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 59, 3)) + +var rf7 = undefined != undefined; +>rf7 : Symbol(rf7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 60, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator === +var rg1 = a === a; +>rg1 : Symbol(rg1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 63, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var rg2 = b === b; +>rg2 : Symbol(rg2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 64, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var rg3 = c === c; +>rg3 : Symbol(rg3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 65, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var rg4 = d === d; +>rg4 : Symbol(rg4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 66, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var rg5 = e === e; +>rg5 : Symbol(rg5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 67, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var rg6 = null === null; +>rg6 : Symbol(rg6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 68, 3)) + +var rg7 = undefined === undefined; +>rg7 : Symbol(rg7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 69, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + +// operator !== +var rh1 = a !== a; +>rh1 : Symbol(rh1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 72, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) + +var rh2 = b !== b; +>rh2 : Symbol(rh2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 73, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) + +var rh3 = c !== c; +>rh3 : Symbol(rh3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 74, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) + +var rh4 = d !== d; +>rh4 : Symbol(rh4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 75, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) + +var rh5 = e !== e; +>rh5 : Symbol(rh5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 76, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) + +var rh6 = null !== null; +>rh6 : Symbol(rh6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 77, 3)) + +var rh7 = undefined !== undefined; +>rh7 : Symbol(rh7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 78, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.types b/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.types index 8be7c02f1ecd9..a21af43e9c733 100644 --- a/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.types +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalPrimitiveType.types @@ -1,367 +1,367 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalPrimitiveType.ts === enum E { a, b, c } ->E : E, Symbol(E, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 11)) ->c : E, Symbol(E.c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 14)) +>E : E +>a : E +>b : E +>c : E var a: number; ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number var b: boolean; ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean var c: string; ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string var d: void; ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void var e: E; ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->E : E, Symbol(E, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 0, 0)) +>e : E +>E : E // operator < var ra1 = a < a; ->ra1 : boolean, Symbol(ra1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 9, 3)) +>ra1 : boolean >a < a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var ra2 = b < b; ->ra2 : boolean, Symbol(ra2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 10, 3)) +>ra2 : boolean >b < b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var ra3 = c < c; ->ra3 : boolean, Symbol(ra3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 11, 3)) +>ra3 : boolean >c < c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var ra4 = d < d; ->ra4 : boolean, Symbol(ra4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 12, 3)) +>ra4 : boolean >d < d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var ra5 = e < e; ->ra5 : boolean, Symbol(ra5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 13, 3)) +>ra5 : boolean >e < e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var ra6 = null < null; ->ra6 : boolean, Symbol(ra6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 14, 3)) +>ra6 : boolean >null < null : boolean >null : null >null : null var ra7 = undefined < undefined; ->ra7 : boolean, Symbol(ra7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 15, 3)) +>ra7 : boolean >undefined < undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator > var rb1 = a > a; ->rb1 : boolean, Symbol(rb1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 18, 3)) +>rb1 : boolean >a > a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var rb2 = b > b; ->rb2 : boolean, Symbol(rb2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 19, 3)) +>rb2 : boolean >b > b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var rb3 = c > c; ->rb3 : boolean, Symbol(rb3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 20, 3)) +>rb3 : boolean >c > c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var rb4 = d > d; ->rb4 : boolean, Symbol(rb4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 21, 3)) +>rb4 : boolean >d > d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var rb5 = e > e; ->rb5 : boolean, Symbol(rb5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 22, 3)) +>rb5 : boolean >e > e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var rb6 = null > null; ->rb6 : boolean, Symbol(rb6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 23, 3)) +>rb6 : boolean >null > null : boolean >null : null >null : null var rb7 = undefined > undefined; ->rb7 : boolean, Symbol(rb7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 24, 3)) +>rb7 : boolean >undefined > undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator <= var rc1 = a <= a; ->rc1 : boolean, Symbol(rc1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 27, 3)) +>rc1 : boolean >a <= a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var rc2 = b <= b; ->rc2 : boolean, Symbol(rc2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 28, 3)) +>rc2 : boolean >b <= b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var rc3 = c <= c; ->rc3 : boolean, Symbol(rc3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 29, 3)) +>rc3 : boolean >c <= c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var rc4 = d <= d; ->rc4 : boolean, Symbol(rc4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 30, 3)) +>rc4 : boolean >d <= d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var rc5 = e <= e; ->rc5 : boolean, Symbol(rc5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 31, 3)) +>rc5 : boolean >e <= e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var rc6 = null <= null; ->rc6 : boolean, Symbol(rc6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 32, 3)) +>rc6 : boolean >null <= null : boolean >null : null >null : null var rc7 = undefined <= undefined; ->rc7 : boolean, Symbol(rc7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 33, 3)) +>rc7 : boolean >undefined <= undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator >= var rd1 = a >= a; ->rd1 : boolean, Symbol(rd1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 36, 3)) +>rd1 : boolean >a >= a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var rd2 = b >= b; ->rd2 : boolean, Symbol(rd2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 37, 3)) +>rd2 : boolean >b >= b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var rd3 = c >= c; ->rd3 : boolean, Symbol(rd3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 38, 3)) +>rd3 : boolean >c >= c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var rd4 = d >= d; ->rd4 : boolean, Symbol(rd4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 39, 3)) +>rd4 : boolean >d >= d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var rd5 = e >= e; ->rd5 : boolean, Symbol(rd5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 40, 3)) +>rd5 : boolean >e >= e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var rd6 = null >= null; ->rd6 : boolean, Symbol(rd6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 41, 3)) +>rd6 : boolean >null >= null : boolean >null : null >null : null var rd7 = undefined >= undefined; ->rd7 : boolean, Symbol(rd7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 42, 3)) +>rd7 : boolean >undefined >= undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator == var re1 = a == a; ->re1 : boolean, Symbol(re1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 45, 3)) +>re1 : boolean >a == a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var re2 = b == b; ->re2 : boolean, Symbol(re2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 46, 3)) +>re2 : boolean >b == b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var re3 = c == c; ->re3 : boolean, Symbol(re3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 47, 3)) +>re3 : boolean >c == c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var re4 = d == d; ->re4 : boolean, Symbol(re4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 48, 3)) +>re4 : boolean >d == d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var re5 = e == e; ->re5 : boolean, Symbol(re5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 49, 3)) +>re5 : boolean >e == e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var re6 = null == null; ->re6 : boolean, Symbol(re6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 50, 3)) +>re6 : boolean >null == null : boolean >null : null >null : null var re7 = undefined == undefined; ->re7 : boolean, Symbol(re7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 51, 3)) +>re7 : boolean >undefined == undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator != var rf1 = a != a; ->rf1 : boolean, Symbol(rf1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 54, 3)) +>rf1 : boolean >a != a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var rf2 = b != b; ->rf2 : boolean, Symbol(rf2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 55, 3)) +>rf2 : boolean >b != b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var rf3 = c != c; ->rf3 : boolean, Symbol(rf3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 56, 3)) +>rf3 : boolean >c != c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var rf4 = d != d; ->rf4 : boolean, Symbol(rf4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 57, 3)) +>rf4 : boolean >d != d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var rf5 = e != e; ->rf5 : boolean, Symbol(rf5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 58, 3)) +>rf5 : boolean >e != e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var rf6 = null != null; ->rf6 : boolean, Symbol(rf6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 59, 3)) +>rf6 : boolean >null != null : boolean >null : null >null : null var rf7 = undefined != undefined; ->rf7 : boolean, Symbol(rf7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 60, 3)) +>rf7 : boolean >undefined != undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator === var rg1 = a === a; ->rg1 : boolean, Symbol(rg1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 63, 3)) +>rg1 : boolean >a === a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var rg2 = b === b; ->rg2 : boolean, Symbol(rg2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 64, 3)) +>rg2 : boolean >b === b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var rg3 = c === c; ->rg3 : boolean, Symbol(rg3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 65, 3)) +>rg3 : boolean >c === c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var rg4 = d === d; ->rg4 : boolean, Symbol(rg4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 66, 3)) +>rg4 : boolean >d === d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var rg5 = e === e; ->rg5 : boolean, Symbol(rg5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 67, 3)) +>rg5 : boolean >e === e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var rg6 = null === null; ->rg6 : boolean, Symbol(rg6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 68, 3)) +>rg6 : boolean >null === null : boolean >null : null >null : null var rg7 = undefined === undefined; ->rg7 : boolean, Symbol(rg7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 69, 3)) +>rg7 : boolean >undefined === undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined // operator !== var rh1 = a !== a; ->rh1 : boolean, Symbol(rh1, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 72, 3)) +>rh1 : boolean >a !== a : boolean ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 2, 3)) +>a : number +>a : number var rh2 = b !== b; ->rh2 : boolean, Symbol(rh2, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 73, 3)) +>rh2 : boolean >b !== b : boolean ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) ->b : boolean, Symbol(b, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 3, 3)) +>b : boolean +>b : boolean var rh3 = c !== c; ->rh3 : boolean, Symbol(rh3, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 74, 3)) +>rh3 : boolean >c !== c : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 4, 3)) +>c : string +>c : string var rh4 = d !== d; ->rh4 : boolean, Symbol(rh4, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 75, 3)) +>rh4 : boolean >d !== d : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 5, 3)) +>d : void +>d : void var rh5 = e !== e; ->rh5 : boolean, Symbol(rh5, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 76, 3)) +>rh5 : boolean >e !== e : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 6, 3)) +>e : E +>e : E var rh6 = null !== null; ->rh6 : boolean, Symbol(rh6, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 77, 3)) +>rh6 : boolean >null !== null : boolean >null : null >null : null var rh7 = undefined !== undefined; ->rh7 : boolean, Symbol(rh7, Decl(comparisonOperatorWithIdenticalPrimitiveType.ts, 78, 3)) +>rh7 : boolean >undefined !== undefined : boolean ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.symbols b/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.symbols new file mode 100644 index 0000000000000..5dd728b39af85 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalTypeParameter.ts === +function foo(t: T) { +>foo : Symbol(foo, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 13)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 13)) + + var r1 = t < t; +>r1 : Symbol(r1, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 1, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r2 = t > t; +>r2 : Symbol(r2, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 2, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r3 = t <= t; +>r3 : Symbol(r3, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 3, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r4 = t >= t; +>r4 : Symbol(r4, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 4, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r5 = t == t; +>r5 : Symbol(r5, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 5, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r6 = t != t; +>r6 : Symbol(r6, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 6, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r7 = t === t; +>r7 : Symbol(r7, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 7, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) + + var r8 = t !== t; +>r8 : Symbol(r8, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 8, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +} diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types b/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types index 0b47eff343729..b545fdc9f1a63 100644 --- a/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types @@ -1,55 +1,55 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithIdenticalTypeParameter.ts === function foo(t: T) { ->foo : (t: T) => void, Symbol(foo, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 13)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 13)) +>foo : (t: T) => void +>T : T +>t : T +>T : T var r1 = t < t; ->r1 : boolean, Symbol(r1, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 1, 7)) +>r1 : boolean >t < t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r2 = t > t; ->r2 : boolean, Symbol(r2, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 2, 7)) +>r2 : boolean >t > t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r3 = t <= t; ->r3 : boolean, Symbol(r3, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 3, 7)) +>r3 : boolean >t <= t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r4 = t >= t; ->r4 : boolean, Symbol(r4, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 4, 7)) +>r4 : boolean >t >= t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r5 = t == t; ->r5 : boolean, Symbol(r5, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 5, 7)) +>r5 : boolean >t == t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r6 = t != t; ->r6 : boolean, Symbol(r6, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 6, 7)) +>r6 : boolean >t != t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r7 = t === t; ->r7 : boolean, Symbol(r7, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 7, 7)) +>r7 : boolean >t === t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T var r8 = t !== t; ->r8 : boolean, Symbol(r8, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 8, 7)) +>r8 : boolean >t !== t : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) ->t : T, Symbol(t, Decl(comparisonOperatorWithIdenticalTypeParameter.ts, 0, 16)) +>t : T +>t : T } diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.symbols b/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.symbols new file mode 100644 index 0000000000000..7cf9a21d09b62 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.symbols @@ -0,0 +1,687 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsAny.ts === +var x: any; +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +enum E { a, b, c } +>E : Symbol(E, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 11)) +>a : Symbol(E.a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 8)) +>b : Symbol(E.b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 11)) +>c : Symbol(E.c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 14)) + +function foo(t: T) { +>foo : Symbol(foo, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 13)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 13)) + + var foo_r1 = t < x; +>foo_r1 : Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 14, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r2 = t > x; +>foo_r2 : Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 15, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r3 = t <= x; +>foo_r3 : Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 16, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r4 = t >= x; +>foo_r4 : Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 17, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r5 = t == x; +>foo_r5 : Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 18, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r6 = t != x; +>foo_r6 : Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 19, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r7 = t === x; +>foo_r7 : Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 20, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r8 = t !== x; +>foo_r8 : Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsAny.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 21, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + + var foo_r1 = x < t; +>foo_r1 : Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 14, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r2 = x > t; +>foo_r2 : Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 15, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r3 = x <= t; +>foo_r3 : Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 16, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r4 = x >= t; +>foo_r4 : Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 17, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r5 = x == t; +>foo_r5 : Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 18, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r6 = x != t; +>foo_r6 : Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 19, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r7 = x === t; +>foo_r7 : Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 20, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) + + var foo_r8 = x !== t; +>foo_r8 : Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsAny.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 21, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +} + +var a: boolean; +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var b: number; +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var c: string; +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var d: void; +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var e: E; +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>E : Symbol(E, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 11)) + +var f: {}; +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var g: string[]; +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +// operator < +var r1a1 = x < a; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 33, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r1a2 = x < b; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 34, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r1a3 = x < c; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 35, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r1a4 = x < d; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 36, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r1a5 = x < e; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 37, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r1a6 = x < f; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 38, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r1a7 = x < g; +>r1a7 : Symbol(r1a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 39, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r1b1 = a < x; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 41, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r1b2 = b < x; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 42, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r1b3 = c < x; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 43, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r1b4 = d < x; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 44, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r1b5 = e < x; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 45, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r1b6 = f < x; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 46, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r1b7 = g < x; +>r1b7 : Symbol(r1b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 47, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator > +var r2a1 = x > a; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 50, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r2a2 = x > b; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 51, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r2a3 = x > c; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 52, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r2a4 = x > d; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 53, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r2a5 = x > e; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 54, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r2a6 = x > f; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 55, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r2a7 = x > g; +>r2a7 : Symbol(r2a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 56, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r2b1 = a > x; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 58, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r2b2 = b > x; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 59, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r2b3 = c > x; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 60, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r2b4 = d > x; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 61, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r2b5 = e > x; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 62, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r2b6 = f > x; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 63, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r2b7 = g > x; +>r2b7 : Symbol(r2b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 64, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator <= +var r3a1 = x <= a; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 67, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r3a2 = x <= b; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 68, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r3a3 = x <= c; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 69, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r3a4 = x <= d; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 70, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r3a5 = x <= e; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 71, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r3a6 = x <= f; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 72, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r3a7 = x <= g; +>r3a7 : Symbol(r3a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 73, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r3b1 = a <= x; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 75, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r3b2 = b <= x; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 76, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r3b3 = c <= x; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 77, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r3b4 = d <= x; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 78, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r3b5 = e <= x; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 79, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r3b6 = f <= x; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 80, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r3b7 = g <= x; +>r3b7 : Symbol(r3b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 81, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator >= +var r4a1 = x >= a; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 84, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r4a2 = x >= b; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 85, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r4a3 = x >= c; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 86, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r4a4 = x >= d; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 87, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r4a5 = x >= e; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 88, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r4a6 = x >= f; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 89, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r4a7 = x >= g; +>r4a7 : Symbol(r4a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 90, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r4b1 = a >= x; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 92, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r4b2 = b >= x; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 93, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r4b3 = c >= x; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 94, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r4b4 = d >= x; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 95, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r4b5 = e >= x; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 96, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r4b6 = f >= x; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 97, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r4b7 = g >= x; +>r4b7 : Symbol(r4b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 98, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator == +var r5a1 = x == a; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 101, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r5a2 = x == b; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 102, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r5a3 = x == c; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 103, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r5a4 = x == d; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 104, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r5a5 = x == e; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 105, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r5a6 = x == f; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 106, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r5a7 = x == g; +>r5a7 : Symbol(r5a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 107, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r5b1 = a == x; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 109, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r5b2 = b == x; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 110, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r5b3 = c == x; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 111, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r5b4 = d == x; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 112, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r5b5 = e == x; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 113, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r5b6 = f == x; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 114, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r5b7 = g == x; +>r5b7 : Symbol(r5b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 115, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator != +var r6a1 = x != a; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 118, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r6a2 = x != b; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 119, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r6a3 = x != c; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 120, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r6a4 = x != d; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 121, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r6a5 = x != e; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 122, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r6a6 = x != f; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 123, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r6a7 = x != g; +>r6a7 : Symbol(r6a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 124, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r6b1 = a != x; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 126, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r6b2 = b != x; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 127, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r6b3 = c != x; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 128, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r6b4 = d != x; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 129, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r6b5 = e != x; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 130, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r6b6 = f != x; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 131, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r6b7 = g != x; +>r6b7 : Symbol(r6b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 132, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator === +var r7a1 = x === a; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 135, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r7a2 = x === b; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 136, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r7a3 = x === c; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 137, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r7a4 = x === d; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 138, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r7a5 = x === e; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 139, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r7a6 = x === f; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 140, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r7a7 = x === g; +>r7a7 : Symbol(r7a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 141, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r7b1 = a === x; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 143, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r7b2 = b === x; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 144, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r7b3 = c === x; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 145, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r7b4 = d === x; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 146, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r7b5 = e === x; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 147, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r7b6 = f === x; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 148, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r7b7 = g === x; +>r7b7 : Symbol(r7b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 149, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +// operator !== +var r8a1 = x !== a; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 152, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) + +var r8a2 = x !== b; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 153, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) + +var r8a3 = x !== c; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 154, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) + +var r8a4 = x !== d; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 155, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) + +var r8a5 = x !== e; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 156, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) + +var r8a6 = x !== f; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 157, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) + +var r8a7 = x !== g; +>r8a7 : Symbol(r8a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 158, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) + +var r8b1 = a !== x; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 160, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r8b2 = b !== x; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 161, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r8b3 = c !== x; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 162, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r8b4 = d !== x; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 163, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r8b5 = e !== x; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 164, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r8b6 = f !== x; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 165, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + +var r8b7 = g !== x; +>r8b7 : Symbol(r8b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 166, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types b/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types index b552c64ca8d88..e132f03cfa3aa 100644 --- a/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types @@ -1,815 +1,815 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsAny.ts === var x: any; ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>x : any enum E { a, b, c } ->E : E, Symbol(E, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 11)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 8)) ->b : E, Symbol(E.b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 11)) ->c : E, Symbol(E.c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 14)) +>E : E +>a : E +>b : E +>c : E function foo(t: T) { ->foo : (t: T) => void, Symbol(foo, Decl(comparisonOperatorWithOneOperandIsAny.ts, 2, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 13)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 13)) +>foo : (t: T) => void +>T : T +>t : T +>T : T var foo_r1 = t < x; ->foo_r1 : boolean, Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 14, 7)) +>foo_r1 : boolean >t < x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r2 = t > x; ->foo_r2 : boolean, Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 15, 7)) +>foo_r2 : boolean >t > x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r3 = t <= x; ->foo_r3 : boolean, Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 16, 7)) +>foo_r3 : boolean >t <= x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r4 = t >= x; ->foo_r4 : boolean, Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 17, 7)) +>foo_r4 : boolean >t >= x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r5 = t == x; ->foo_r5 : boolean, Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 18, 7)) +>foo_r5 : boolean >t == x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r6 = t != x; ->foo_r6 : boolean, Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 19, 7)) +>foo_r6 : boolean >t != x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r7 = t === x; ->foo_r7 : boolean, Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 20, 7)) +>foo_r7 : boolean >t === x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r8 = t !== x; ->foo_r8 : boolean, Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsAny.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 21, 7)) +>foo_r8 : boolean >t !== x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>t : T +>x : any var foo_r1 = x < t; ->foo_r1 : boolean, Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 14, 7)) +>foo_r1 : boolean >x < t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r2 = x > t; ->foo_r2 : boolean, Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 15, 7)) +>foo_r2 : boolean >x > t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r3 = x <= t; ->foo_r3 : boolean, Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 16, 7)) +>foo_r3 : boolean >x <= t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r4 = x >= t; ->foo_r4 : boolean, Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 17, 7)) +>foo_r4 : boolean >x >= t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r5 = x == t; ->foo_r5 : boolean, Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 18, 7)) +>foo_r5 : boolean >x == t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r6 = x != t; ->foo_r6 : boolean, Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 19, 7)) +>foo_r6 : boolean >x != t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r7 = x === t; ->foo_r7 : boolean, Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 20, 7)) +>foo_r7 : boolean >x === t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T var foo_r8 = x !== t; ->foo_r8 : boolean, Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsAny.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsAny.ts, 21, 7)) +>foo_r8 : boolean >x !== t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsAny.ts, 4, 16)) +>x : any +>t : T } var a: boolean; ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>a : boolean var b: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>b : number var c: string; ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>c : string var d: void; ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>d : void var e: E; ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->E : E, Symbol(E, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 11)) +>e : E +>E : E var f: {}; ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>f : {} var g: string[]; ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>g : string[] // operator < var r1a1 = x < a; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 33, 3)) +>r1a1 : boolean >x < a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r1a2 = x < b; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 34, 3)) +>r1a2 : boolean >x < b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r1a3 = x < c; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 35, 3)) +>r1a3 : boolean >x < c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r1a4 = x < d; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 36, 3)) +>r1a4 : boolean >x < d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r1a5 = x < e; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 37, 3)) +>r1a5 : boolean >x < e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r1a6 = x < f; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 38, 3)) +>r1a6 : boolean >x < f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r1a7 = x < g; ->r1a7 : boolean, Symbol(r1a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 39, 3)) +>r1a7 : boolean >x < g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r1b1 = a < x; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 41, 3)) +>r1b1 : boolean >a < x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r1b2 = b < x; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 42, 3)) +>r1b2 : boolean >b < x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r1b3 = c < x; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 43, 3)) +>r1b3 : boolean >c < x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r1b4 = d < x; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 44, 3)) +>r1b4 : boolean >d < x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r1b5 = e < x; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 45, 3)) +>r1b5 : boolean >e < x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r1b6 = f < x; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 46, 3)) +>r1b6 : boolean >f < x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r1b7 = g < x; ->r1b7 : boolean, Symbol(r1b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 47, 3)) +>r1b7 : boolean >g < x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator > var r2a1 = x > a; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 50, 3)) +>r2a1 : boolean >x > a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r2a2 = x > b; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 51, 3)) +>r2a2 : boolean >x > b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r2a3 = x > c; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 52, 3)) +>r2a3 : boolean >x > c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r2a4 = x > d; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 53, 3)) +>r2a4 : boolean >x > d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r2a5 = x > e; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 54, 3)) +>r2a5 : boolean >x > e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r2a6 = x > f; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 55, 3)) +>r2a6 : boolean >x > f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r2a7 = x > g; ->r2a7 : boolean, Symbol(r2a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 56, 3)) +>r2a7 : boolean >x > g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r2b1 = a > x; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 58, 3)) +>r2b1 : boolean >a > x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r2b2 = b > x; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 59, 3)) +>r2b2 : boolean >b > x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r2b3 = c > x; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 60, 3)) +>r2b3 : boolean >c > x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r2b4 = d > x; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 61, 3)) +>r2b4 : boolean >d > x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r2b5 = e > x; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 62, 3)) +>r2b5 : boolean >e > x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r2b6 = f > x; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 63, 3)) +>r2b6 : boolean >f > x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r2b7 = g > x; ->r2b7 : boolean, Symbol(r2b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 64, 3)) +>r2b7 : boolean >g > x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator <= var r3a1 = x <= a; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 67, 3)) +>r3a1 : boolean >x <= a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r3a2 = x <= b; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 68, 3)) +>r3a2 : boolean >x <= b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r3a3 = x <= c; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 69, 3)) +>r3a3 : boolean >x <= c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r3a4 = x <= d; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 70, 3)) +>r3a4 : boolean >x <= d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r3a5 = x <= e; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 71, 3)) +>r3a5 : boolean >x <= e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r3a6 = x <= f; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 72, 3)) +>r3a6 : boolean >x <= f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r3a7 = x <= g; ->r3a7 : boolean, Symbol(r3a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 73, 3)) +>r3a7 : boolean >x <= g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r3b1 = a <= x; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 75, 3)) +>r3b1 : boolean >a <= x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r3b2 = b <= x; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 76, 3)) +>r3b2 : boolean >b <= x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r3b3 = c <= x; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 77, 3)) +>r3b3 : boolean >c <= x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r3b4 = d <= x; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 78, 3)) +>r3b4 : boolean >d <= x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r3b5 = e <= x; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 79, 3)) +>r3b5 : boolean >e <= x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r3b6 = f <= x; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 80, 3)) +>r3b6 : boolean >f <= x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r3b7 = g <= x; ->r3b7 : boolean, Symbol(r3b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 81, 3)) +>r3b7 : boolean >g <= x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator >= var r4a1 = x >= a; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 84, 3)) +>r4a1 : boolean >x >= a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r4a2 = x >= b; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 85, 3)) +>r4a2 : boolean >x >= b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r4a3 = x >= c; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 86, 3)) +>r4a3 : boolean >x >= c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r4a4 = x >= d; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 87, 3)) +>r4a4 : boolean >x >= d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r4a5 = x >= e; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 88, 3)) +>r4a5 : boolean >x >= e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r4a6 = x >= f; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 89, 3)) +>r4a6 : boolean >x >= f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r4a7 = x >= g; ->r4a7 : boolean, Symbol(r4a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 90, 3)) +>r4a7 : boolean >x >= g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r4b1 = a >= x; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 92, 3)) +>r4b1 : boolean >a >= x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r4b2 = b >= x; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 93, 3)) +>r4b2 : boolean >b >= x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r4b3 = c >= x; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 94, 3)) +>r4b3 : boolean >c >= x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r4b4 = d >= x; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 95, 3)) +>r4b4 : boolean >d >= x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r4b5 = e >= x; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 96, 3)) +>r4b5 : boolean >e >= x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r4b6 = f >= x; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 97, 3)) +>r4b6 : boolean >f >= x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r4b7 = g >= x; ->r4b7 : boolean, Symbol(r4b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 98, 3)) +>r4b7 : boolean >g >= x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator == var r5a1 = x == a; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 101, 3)) +>r5a1 : boolean >x == a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r5a2 = x == b; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 102, 3)) +>r5a2 : boolean >x == b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r5a3 = x == c; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 103, 3)) +>r5a3 : boolean >x == c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r5a4 = x == d; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 104, 3)) +>r5a4 : boolean >x == d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r5a5 = x == e; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 105, 3)) +>r5a5 : boolean >x == e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r5a6 = x == f; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 106, 3)) +>r5a6 : boolean >x == f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r5a7 = x == g; ->r5a7 : boolean, Symbol(r5a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 107, 3)) +>r5a7 : boolean >x == g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r5b1 = a == x; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 109, 3)) +>r5b1 : boolean >a == x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r5b2 = b == x; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 110, 3)) +>r5b2 : boolean >b == x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r5b3 = c == x; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 111, 3)) +>r5b3 : boolean >c == x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r5b4 = d == x; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 112, 3)) +>r5b4 : boolean >d == x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r5b5 = e == x; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 113, 3)) +>r5b5 : boolean >e == x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r5b6 = f == x; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 114, 3)) +>r5b6 : boolean >f == x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r5b7 = g == x; ->r5b7 : boolean, Symbol(r5b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 115, 3)) +>r5b7 : boolean >g == x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator != var r6a1 = x != a; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 118, 3)) +>r6a1 : boolean >x != a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r6a2 = x != b; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 119, 3)) +>r6a2 : boolean >x != b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r6a3 = x != c; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 120, 3)) +>r6a3 : boolean >x != c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r6a4 = x != d; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 121, 3)) +>r6a4 : boolean >x != d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r6a5 = x != e; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 122, 3)) +>r6a5 : boolean >x != e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r6a6 = x != f; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 123, 3)) +>r6a6 : boolean >x != f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r6a7 = x != g; ->r6a7 : boolean, Symbol(r6a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 124, 3)) +>r6a7 : boolean >x != g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r6b1 = a != x; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 126, 3)) +>r6b1 : boolean >a != x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r6b2 = b != x; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 127, 3)) +>r6b2 : boolean >b != x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r6b3 = c != x; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 128, 3)) +>r6b3 : boolean >c != x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r6b4 = d != x; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 129, 3)) +>r6b4 : boolean >d != x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r6b5 = e != x; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 130, 3)) +>r6b5 : boolean >e != x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r6b6 = f != x; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 131, 3)) +>r6b6 : boolean >f != x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r6b7 = g != x; ->r6b7 : boolean, Symbol(r6b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 132, 3)) +>r6b7 : boolean >g != x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator === var r7a1 = x === a; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 135, 3)) +>r7a1 : boolean >x === a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r7a2 = x === b; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 136, 3)) +>r7a2 : boolean >x === b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r7a3 = x === c; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 137, 3)) +>r7a3 : boolean >x === c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r7a4 = x === d; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 138, 3)) +>r7a4 : boolean >x === d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r7a5 = x === e; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 139, 3)) +>r7a5 : boolean >x === e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r7a6 = x === f; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 140, 3)) +>r7a6 : boolean >x === f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r7a7 = x === g; ->r7a7 : boolean, Symbol(r7a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 141, 3)) +>r7a7 : boolean >x === g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r7b1 = a === x; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 143, 3)) +>r7b1 : boolean >a === x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r7b2 = b === x; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 144, 3)) +>r7b2 : boolean >b === x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r7b3 = c === x; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 145, 3)) +>r7b3 : boolean >c === x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r7b4 = d === x; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 146, 3)) +>r7b4 : boolean >d === x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r7b5 = e === x; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 147, 3)) +>r7b5 : boolean >e === x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r7b6 = f === x; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 148, 3)) +>r7b6 : boolean >f === x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r7b7 = g === x; ->r7b7 : boolean, Symbol(r7b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 149, 3)) +>r7b7 : boolean >g === x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any // operator !== var r8a1 = x !== a; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 152, 3)) +>r8a1 : boolean >x !== a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) +>x : any +>a : boolean var r8a2 = x !== b; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 153, 3)) +>r8a2 : boolean >x !== b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) +>x : any +>b : number var r8a3 = x !== c; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 154, 3)) +>r8a3 : boolean >x !== c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) +>x : any +>c : string var r8a4 = x !== d; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 155, 3)) +>r8a4 : boolean >x !== d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) +>x : any +>d : void var r8a5 = x !== e; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 156, 3)) +>r8a5 : boolean >x !== e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) +>x : any +>e : E var r8a6 = x !== f; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 157, 3)) +>r8a6 : boolean >x !== f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) +>x : any +>f : {} var r8a7 = x !== g; ->r8a7 : boolean, Symbol(r8a7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 158, 3)) +>r8a7 : boolean >x !== g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) +>x : any +>g : string[] var r8b1 = a !== x; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithOneOperandIsAny.ts, 160, 3)) +>r8b1 : boolean >a !== x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsAny.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>a : boolean +>x : any var r8b2 = b !== x; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithOneOperandIsAny.ts, 161, 3)) +>r8b2 : boolean >b !== x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsAny.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>b : number +>x : any var r8b3 = c !== x; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithOneOperandIsAny.ts, 162, 3)) +>r8b3 : boolean >c !== x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsAny.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>c : string +>x : any var r8b4 = d !== x; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithOneOperandIsAny.ts, 163, 3)) +>r8b4 : boolean >d !== x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsAny.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>d : void +>x : any var r8b5 = e !== x; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithOneOperandIsAny.ts, 164, 3)) +>r8b5 : boolean >e !== x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsAny.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>e : E +>x : any var r8b6 = f !== x; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithOneOperandIsAny.ts, 165, 3)) +>r8b6 : boolean >f !== x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsAny.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>f : {} +>x : any var r8b7 = g !== x; ->r8b7 : boolean, Symbol(r8b7, Decl(comparisonOperatorWithOneOperandIsAny.ts, 166, 3)) +>r8b7 : boolean >g !== x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsAny.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsAny.ts, 0, 3)) +>g : string[] +>x : any diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.symbols b/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.symbols new file mode 100644 index 0000000000000..1bc52a2a517e8 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.symbols @@ -0,0 +1,556 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsNull.ts === +enum E { a, b, c } +>E : Symbol(E, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 8)) +>b : Symbol(E.b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 11)) +>c : Symbol(E.c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 14)) + +function foo(t: T) { +>foo : Symbol(foo, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 13)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 13)) + + var foo_r1 = t < null; +>foo_r1 : Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 3, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 12, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r2 = t > null; +>foo_r2 : Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 4, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 13, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r3 = t <= null; +>foo_r3 : Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 14, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r4 = t >= null; +>foo_r4 : Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 15, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r5 = t == null; +>foo_r5 : Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 16, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r6 = t != null; +>foo_r6 : Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 17, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r7 = t === null; +>foo_r7 : Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 18, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r8 = t !== null; +>foo_r8 : Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsNull.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 19, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r1 = null < t; +>foo_r1 : Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 3, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 12, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r2 = null > t; +>foo_r2 : Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 4, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 13, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r3 = null <= t; +>foo_r3 : Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 14, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r4 = null >= t; +>foo_r4 : Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 15, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r5 = null == t; +>foo_r5 : Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 16, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r6 = null != t; +>foo_r6 : Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 17, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r7 = null === t; +>foo_r7 : Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 18, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) + + var foo_r8 = null !== t; +>foo_r8 : Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsNull.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 19, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +} + +var a: boolean; +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var b: number; +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var c: string; +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var d: void; +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var e: E; +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>E : Symbol(E, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 0)) + +var f: {}; +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var g: string[]; +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator < +var r1a1 = null < a; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 31, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r1a2 = null < b; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 32, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r1a3 = null < c; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 33, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r1a4 = null < d; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 34, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r1a5 = null < e; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 35, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r1a6 = null < f; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 36, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r1a7 = null < g; +>r1a7 : Symbol(r1a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 37, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r1b1 = a < null; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 39, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r1b2 = b < null; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 40, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r1b3 = c < null; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 41, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r1b4 = d < null; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 42, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r1b5 = e < null; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 43, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r1b6 = f < null; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 44, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r1b7 = g < null; +>r1b7 : Symbol(r1b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 45, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator > +var r2a1 = null > a; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 48, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r2a2 = null > b; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 49, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r2a3 = null > c; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 50, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r2a4 = null > d; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 51, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r2a5 = null > e; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 52, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r2a6 = null > f; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 53, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r2a7 = null > g; +>r2a7 : Symbol(r2a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 54, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r2b1 = a > null; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 56, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r2b2 = b > null; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 57, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r2b3 = c > null; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 58, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r2b4 = d > null; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 59, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r2b5 = e > null; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 60, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r2b6 = f > null; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 61, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r2b7 = g > null; +>r2b7 : Symbol(r2b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 62, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator <= +var r3a1 = null <= a; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 65, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r3a2 = null <= b; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 66, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r3a3 = null <= c; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 67, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r3a4 = null <= d; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 68, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r3a5 = null <= e; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 69, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r3a6 = null <= f; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 70, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r3a7 = null <= g; +>r3a7 : Symbol(r3a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 71, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r3b1 = a <= null; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 73, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r3b2 = b <= null; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 74, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r3b3 = c <= null; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 75, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r3b4 = d <= null; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 76, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r3b5 = e <= null; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 77, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r3b6 = f <= null; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 78, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r3b7 = g <= null; +>r3b7 : Symbol(r3b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 79, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator >= +var r4a1 = null >= a; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 82, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r4a2 = null >= b; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 83, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r4a3 = null >= c; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 84, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r4a4 = null >= d; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 85, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r4a5 = null >= e; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 86, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r4a6 = null >= f; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 87, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r4a7 = null >= g; +>r4a7 : Symbol(r4a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 88, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r4b1 = a >= null; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 90, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r4b2 = b >= null; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 91, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r4b3 = c >= null; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 92, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r4b4 = d >= null; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 93, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r4b5 = e >= null; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 94, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r4b6 = f >= null; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 95, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r4b7 = g >= null; +>r4b7 : Symbol(r4b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 96, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator == +var r5a1 = null == a; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 99, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r5a2 = null == b; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 100, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r5a3 = null == c; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 101, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r5a4 = null == d; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 102, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r5a5 = null == e; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 103, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r5a6 = null == f; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 104, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r5a7 = null == g; +>r5a7 : Symbol(r5a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 105, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r5b1 = a == null; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 107, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r5b2 = b == null; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 108, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r5b3 = c == null; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 109, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r5b4 = d == null; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 110, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r5b5 = e == null; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 111, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r5b6 = f == null; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 112, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r5b7 = g == null; +>r5b7 : Symbol(r5b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 113, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator != +var r6a1 = null != a; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 116, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r6a2 = null != b; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 117, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r6a3 = null != c; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 118, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r6a4 = null != d; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 119, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r6a5 = null != e; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 120, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r6a6 = null != f; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 121, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r6a7 = null != g; +>r6a7 : Symbol(r6a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 122, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r6b1 = a != null; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 124, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r6b2 = b != null; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 125, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r6b3 = c != null; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 126, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r6b4 = d != null; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 127, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r6b5 = e != null; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 128, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r6b6 = f != null; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 129, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r6b7 = g != null; +>r6b7 : Symbol(r6b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 130, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator === +var r7a1 = null === a; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 133, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r7a2 = null === b; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 134, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r7a3 = null === c; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 135, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r7a4 = null === d; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 136, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r7a5 = null === e; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 137, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r7a6 = null === f; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 138, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r7a7 = null === g; +>r7a7 : Symbol(r7a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 139, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r7b1 = a === null; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 141, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r7b2 = b === null; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 142, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r7b3 = c === null; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 143, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r7b4 = d === null; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 144, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r7b5 = e === null; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 145, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r7b6 = f === null; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 146, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r7b7 = g === null; +>r7b7 : Symbol(r7b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 147, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +// operator !== +var r8a1 = null !== a; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 150, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r8a2 = null !== b; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 151, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r8a3 = null !== c; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 152, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r8a4 = null !== d; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 153, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r8a5 = null !== e; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 154, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r8a6 = null !== f; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 155, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r8a7 = null !== g; +>r8a7 : Symbol(r8a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 156, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + +var r8b1 = a !== null; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 158, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) + +var r8b2 = b !== null; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 159, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) + +var r8b3 = c !== null; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 160, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) + +var r8b4 = d !== null; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 161, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) + +var r8b5 = e !== null; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 162, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) + +var r8b6 = f !== null; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 163, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) + +var r8b7 = g !== null; +>r8b7 : Symbol(r8b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 164, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types b/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types index ed2d5534c85bf..12d9235d44b73 100644 --- a/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types @@ -1,812 +1,812 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsNull.ts === enum E { a, b, c } ->E : E, Symbol(E, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 11)) ->c : E, Symbol(E.c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 14)) +>E : E +>a : E +>b : E +>c : E function foo(t: T) { ->foo : (t: T) => void, Symbol(foo, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 13)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 13)) +>foo : (t: T) => void +>T : T +>t : T +>T : T var foo_r1 = t < null; ->foo_r1 : boolean, Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 3, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 12, 7)) +>foo_r1 : boolean >t < null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r2 = t > null; ->foo_r2 : boolean, Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 4, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 13, 7)) +>foo_r2 : boolean >t > null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r3 = t <= null; ->foo_r3 : boolean, Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 14, 7)) +>foo_r3 : boolean >t <= null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r4 = t >= null; ->foo_r4 : boolean, Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 15, 7)) +>foo_r4 : boolean >t >= null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r5 = t == null; ->foo_r5 : boolean, Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 16, 7)) +>foo_r5 : boolean >t == null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r6 = t != null; ->foo_r6 : boolean, Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 17, 7)) +>foo_r6 : boolean >t != null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r7 = t === null; ->foo_r7 : boolean, Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 18, 7)) +>foo_r7 : boolean >t === null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r8 = t !== null; ->foo_r8 : boolean, Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsNull.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 19, 7)) +>foo_r8 : boolean >t !== null : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T >null : null var foo_r1 = null < t; ->foo_r1 : boolean, Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 3, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 12, 7)) +>foo_r1 : boolean >null < t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r2 = null > t; ->foo_r2 : boolean, Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 4, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 13, 7)) +>foo_r2 : boolean >null > t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r3 = null <= t; ->foo_r3 : boolean, Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 14, 7)) +>foo_r3 : boolean >null <= t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r4 = null >= t; ->foo_r4 : boolean, Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 15, 7)) +>foo_r4 : boolean >null >= t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r5 = null == t; ->foo_r5 : boolean, Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 16, 7)) +>foo_r5 : boolean >null == t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r6 = null != t; ->foo_r6 : boolean, Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 17, 7)) +>foo_r6 : boolean >null != t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r7 = null === t; ->foo_r7 : boolean, Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 18, 7)) +>foo_r7 : boolean >null === t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T var foo_r8 = null !== t; ->foo_r8 : boolean, Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsNull.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsNull.ts, 19, 7)) +>foo_r8 : boolean >null !== t : boolean >null : null ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsNull.ts, 2, 16)) +>t : T } var a: boolean; ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var b: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var c: string; ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var d: void; ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var e: E; ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) ->E : E, Symbol(E, Decl(comparisonOperatorWithOneOperandIsNull.ts, 0, 0)) +>e : E +>E : E var f: {}; ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var g: string[]; ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] // operator < var r1a1 = null < a; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 31, 3)) +>r1a1 : boolean >null < a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r1a2 = null < b; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 32, 3)) +>r1a2 : boolean >null < b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r1a3 = null < c; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 33, 3)) +>r1a3 : boolean >null < c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r1a4 = null < d; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 34, 3)) +>r1a4 : boolean >null < d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r1a5 = null < e; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 35, 3)) +>r1a5 : boolean >null < e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r1a6 = null < f; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 36, 3)) +>r1a6 : boolean >null < f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r1a7 = null < g; ->r1a7 : boolean, Symbol(r1a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 37, 3)) +>r1a7 : boolean >null < g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r1b1 = a < null; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 39, 3)) +>r1b1 : boolean >a < null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r1b2 = b < null; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 40, 3)) +>r1b2 : boolean >b < null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r1b3 = c < null; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 41, 3)) +>r1b3 : boolean >c < null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r1b4 = d < null; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 42, 3)) +>r1b4 : boolean >d < null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r1b5 = e < null; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 43, 3)) +>r1b5 : boolean >e < null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r1b6 = f < null; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 44, 3)) +>r1b6 : boolean >f < null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r1b7 = g < null; ->r1b7 : boolean, Symbol(r1b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 45, 3)) +>r1b7 : boolean >g < null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator > var r2a1 = null > a; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 48, 3)) +>r2a1 : boolean >null > a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r2a2 = null > b; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 49, 3)) +>r2a2 : boolean >null > b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r2a3 = null > c; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 50, 3)) +>r2a3 : boolean >null > c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r2a4 = null > d; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 51, 3)) +>r2a4 : boolean >null > d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r2a5 = null > e; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 52, 3)) +>r2a5 : boolean >null > e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r2a6 = null > f; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 53, 3)) +>r2a6 : boolean >null > f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r2a7 = null > g; ->r2a7 : boolean, Symbol(r2a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 54, 3)) +>r2a7 : boolean >null > g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r2b1 = a > null; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 56, 3)) +>r2b1 : boolean >a > null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r2b2 = b > null; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 57, 3)) +>r2b2 : boolean >b > null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r2b3 = c > null; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 58, 3)) +>r2b3 : boolean >c > null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r2b4 = d > null; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 59, 3)) +>r2b4 : boolean >d > null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r2b5 = e > null; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 60, 3)) +>r2b5 : boolean >e > null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r2b6 = f > null; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 61, 3)) +>r2b6 : boolean >f > null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r2b7 = g > null; ->r2b7 : boolean, Symbol(r2b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 62, 3)) +>r2b7 : boolean >g > null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator <= var r3a1 = null <= a; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 65, 3)) +>r3a1 : boolean >null <= a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r3a2 = null <= b; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 66, 3)) +>r3a2 : boolean >null <= b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r3a3 = null <= c; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 67, 3)) +>r3a3 : boolean >null <= c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r3a4 = null <= d; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 68, 3)) +>r3a4 : boolean >null <= d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r3a5 = null <= e; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 69, 3)) +>r3a5 : boolean >null <= e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r3a6 = null <= f; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 70, 3)) +>r3a6 : boolean >null <= f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r3a7 = null <= g; ->r3a7 : boolean, Symbol(r3a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 71, 3)) +>r3a7 : boolean >null <= g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r3b1 = a <= null; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 73, 3)) +>r3b1 : boolean >a <= null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r3b2 = b <= null; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 74, 3)) +>r3b2 : boolean >b <= null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r3b3 = c <= null; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 75, 3)) +>r3b3 : boolean >c <= null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r3b4 = d <= null; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 76, 3)) +>r3b4 : boolean >d <= null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r3b5 = e <= null; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 77, 3)) +>r3b5 : boolean >e <= null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r3b6 = f <= null; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 78, 3)) +>r3b6 : boolean >f <= null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r3b7 = g <= null; ->r3b7 : boolean, Symbol(r3b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 79, 3)) +>r3b7 : boolean >g <= null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator >= var r4a1 = null >= a; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 82, 3)) +>r4a1 : boolean >null >= a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r4a2 = null >= b; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 83, 3)) +>r4a2 : boolean >null >= b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r4a3 = null >= c; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 84, 3)) +>r4a3 : boolean >null >= c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r4a4 = null >= d; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 85, 3)) +>r4a4 : boolean >null >= d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r4a5 = null >= e; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 86, 3)) +>r4a5 : boolean >null >= e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r4a6 = null >= f; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 87, 3)) +>r4a6 : boolean >null >= f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r4a7 = null >= g; ->r4a7 : boolean, Symbol(r4a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 88, 3)) +>r4a7 : boolean >null >= g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r4b1 = a >= null; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 90, 3)) +>r4b1 : boolean >a >= null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r4b2 = b >= null; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 91, 3)) +>r4b2 : boolean >b >= null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r4b3 = c >= null; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 92, 3)) +>r4b3 : boolean >c >= null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r4b4 = d >= null; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 93, 3)) +>r4b4 : boolean >d >= null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r4b5 = e >= null; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 94, 3)) +>r4b5 : boolean >e >= null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r4b6 = f >= null; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 95, 3)) +>r4b6 : boolean >f >= null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r4b7 = g >= null; ->r4b7 : boolean, Symbol(r4b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 96, 3)) +>r4b7 : boolean >g >= null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator == var r5a1 = null == a; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 99, 3)) +>r5a1 : boolean >null == a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r5a2 = null == b; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 100, 3)) +>r5a2 : boolean >null == b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r5a3 = null == c; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 101, 3)) +>r5a3 : boolean >null == c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r5a4 = null == d; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 102, 3)) +>r5a4 : boolean >null == d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r5a5 = null == e; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 103, 3)) +>r5a5 : boolean >null == e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r5a6 = null == f; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 104, 3)) +>r5a6 : boolean >null == f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r5a7 = null == g; ->r5a7 : boolean, Symbol(r5a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 105, 3)) +>r5a7 : boolean >null == g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r5b1 = a == null; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 107, 3)) +>r5b1 : boolean >a == null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r5b2 = b == null; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 108, 3)) +>r5b2 : boolean >b == null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r5b3 = c == null; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 109, 3)) +>r5b3 : boolean >c == null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r5b4 = d == null; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 110, 3)) +>r5b4 : boolean >d == null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r5b5 = e == null; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 111, 3)) +>r5b5 : boolean >e == null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r5b6 = f == null; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 112, 3)) +>r5b6 : boolean >f == null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r5b7 = g == null; ->r5b7 : boolean, Symbol(r5b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 113, 3)) +>r5b7 : boolean >g == null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator != var r6a1 = null != a; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 116, 3)) +>r6a1 : boolean >null != a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r6a2 = null != b; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 117, 3)) +>r6a2 : boolean >null != b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r6a3 = null != c; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 118, 3)) +>r6a3 : boolean >null != c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r6a4 = null != d; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 119, 3)) +>r6a4 : boolean >null != d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r6a5 = null != e; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 120, 3)) +>r6a5 : boolean >null != e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r6a6 = null != f; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 121, 3)) +>r6a6 : boolean >null != f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r6a7 = null != g; ->r6a7 : boolean, Symbol(r6a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 122, 3)) +>r6a7 : boolean >null != g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r6b1 = a != null; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 124, 3)) +>r6b1 : boolean >a != null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r6b2 = b != null; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 125, 3)) +>r6b2 : boolean >b != null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r6b3 = c != null; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 126, 3)) +>r6b3 : boolean >c != null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r6b4 = d != null; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 127, 3)) +>r6b4 : boolean >d != null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r6b5 = e != null; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 128, 3)) +>r6b5 : boolean >e != null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r6b6 = f != null; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 129, 3)) +>r6b6 : boolean >f != null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r6b7 = g != null; ->r6b7 : boolean, Symbol(r6b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 130, 3)) +>r6b7 : boolean >g != null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator === var r7a1 = null === a; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 133, 3)) +>r7a1 : boolean >null === a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r7a2 = null === b; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 134, 3)) +>r7a2 : boolean >null === b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r7a3 = null === c; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 135, 3)) +>r7a3 : boolean >null === c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r7a4 = null === d; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 136, 3)) +>r7a4 : boolean >null === d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r7a5 = null === e; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 137, 3)) +>r7a5 : boolean >null === e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r7a6 = null === f; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 138, 3)) +>r7a6 : boolean >null === f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r7a7 = null === g; ->r7a7 : boolean, Symbol(r7a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 139, 3)) +>r7a7 : boolean >null === g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r7b1 = a === null; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 141, 3)) +>r7b1 : boolean >a === null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r7b2 = b === null; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 142, 3)) +>r7b2 : boolean >b === null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r7b3 = c === null; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 143, 3)) +>r7b3 : boolean >c === null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r7b4 = d === null; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 144, 3)) +>r7b4 : boolean >d === null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r7b5 = e === null; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 145, 3)) +>r7b5 : boolean >e === null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r7b6 = f === null; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 146, 3)) +>r7b6 : boolean >f === null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r7b7 = g === null; ->r7b7 : boolean, Symbol(r7b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 147, 3)) +>r7b7 : boolean >g === null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null // operator !== var r8a1 = null !== a; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 150, 3)) +>r8a1 : boolean >null !== a : boolean >null : null ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean var r8a2 = null !== b; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 151, 3)) +>r8a2 : boolean >null !== b : boolean >null : null ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number var r8a3 = null !== c; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 152, 3)) +>r8a3 : boolean >null !== c : boolean >null : null ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string var r8a4 = null !== d; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 153, 3)) +>r8a4 : boolean >null !== d : boolean >null : null ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void var r8a5 = null !== e; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 154, 3)) +>r8a5 : boolean >null !== e : boolean >null : null ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E var r8a6 = null !== f; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 155, 3)) +>r8a6 : boolean >null !== f : boolean >null : null ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} var r8a7 = null !== g; ->r8a7 : boolean, Symbol(r8a7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 156, 3)) +>r8a7 : boolean >null !== g : boolean >null : null ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] var r8b1 = a !== null; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithOneOperandIsNull.ts, 158, 3)) +>r8b1 : boolean >a !== null : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsNull.ts, 22, 3)) +>a : boolean >null : null var r8b2 = b !== null; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithOneOperandIsNull.ts, 159, 3)) +>r8b2 : boolean >b !== null : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsNull.ts, 23, 3)) +>b : number >null : null var r8b3 = c !== null; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithOneOperandIsNull.ts, 160, 3)) +>r8b3 : boolean >c !== null : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsNull.ts, 24, 3)) +>c : string >null : null var r8b4 = d !== null; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithOneOperandIsNull.ts, 161, 3)) +>r8b4 : boolean >d !== null : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsNull.ts, 25, 3)) +>d : void >null : null var r8b5 = e !== null; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithOneOperandIsNull.ts, 162, 3)) +>r8b5 : boolean >e !== null : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsNull.ts, 26, 3)) +>e : E >null : null var r8b6 = f !== null; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithOneOperandIsNull.ts, 163, 3)) +>r8b6 : boolean >f !== null : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsNull.ts, 27, 3)) +>f : {} >null : null var r8b7 = g !== null; ->r8b7 : boolean, Symbol(r8b7, Decl(comparisonOperatorWithOneOperandIsNull.ts, 164, 3)) +>r8b7 : boolean >g !== null : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsNull.ts, 28, 3)) +>g : string[] >null : null diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.symbols b/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.symbols new file mode 100644 index 0000000000000..ef865c10abe56 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.symbols @@ -0,0 +1,688 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsUndefined.ts === +var x: typeof undefined; +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>undefined : Symbol(undefined) + +enum E { a, b, c } +>E : Symbol(E, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 24)) +>a : Symbol(E.a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 8)) +>b : Symbol(E.b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 11)) +>c : Symbol(E.c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 14)) + +function foo(t: T) { +>foo : Symbol(foo, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 13)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 13)) + + var foo_r1 = t < x; +>foo_r1 : Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 14, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r2 = t > x; +>foo_r2 : Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 15, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r3 = t <= x; +>foo_r3 : Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 16, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r4 = t >= x; +>foo_r4 : Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 17, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r5 = t == x; +>foo_r5 : Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 18, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r6 = t != x; +>foo_r6 : Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 19, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r7 = t === x; +>foo_r7 : Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 20, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r8 = t !== x; +>foo_r8 : Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 21, 7)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + + var foo_r1 = x < t; +>foo_r1 : Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 14, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r2 = x > t; +>foo_r2 : Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 15, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r3 = x <= t; +>foo_r3 : Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 16, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r4 = x >= t; +>foo_r4 : Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 17, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r5 = x == t; +>foo_r5 : Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 18, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r6 = x != t; +>foo_r6 : Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 19, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r7 = x === t; +>foo_r7 : Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 20, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) + + var foo_r8 = x !== t; +>foo_r8 : Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 21, 7)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +} + +var a: boolean; +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var b: number; +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var c: string; +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var d: void; +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var e: E; +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>E : Symbol(E, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 24)) + +var f: {}; +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var g: string[]; +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +// operator < +var r1a1 = x < a; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 33, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r1a2 = x < b; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 34, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r1a3 = x < c; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 35, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r1a4 = x < d; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 36, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r1a5 = x < e; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 37, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r1a6 = x < f; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 38, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r1a7 = x < g; +>r1a7 : Symbol(r1a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 39, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r1b1 = a < x; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 41, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r1b2 = b < x; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 42, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r1b3 = c < x; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 43, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r1b4 = d < x; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 44, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r1b5 = e < x; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 45, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r1b6 = f < x; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 46, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r1b7 = g < x; +>r1b7 : Symbol(r1b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 47, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator > +var r2a1 = x > a; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 50, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r2a2 = x > b; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 51, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r2a3 = x > c; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 52, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r2a4 = x > d; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 53, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r2a5 = x > e; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 54, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r2a6 = x > f; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 55, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r2a7 = x > g; +>r2a7 : Symbol(r2a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 56, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r2b1 = a > x; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 58, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r2b2 = b > x; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 59, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r2b3 = c > x; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 60, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r2b4 = d > x; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 61, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r2b5 = e > x; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 62, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r2b6 = f > x; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 63, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r2b7 = g > x; +>r2b7 : Symbol(r2b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 64, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator <= +var r3a1 = x <= a; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 67, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r3a2 = x <= b; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 68, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r3a3 = x <= c; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 69, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r3a4 = x <= d; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 70, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r3a5 = x <= e; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 71, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r3a6 = x <= f; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 72, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r3a7 = x <= g; +>r3a7 : Symbol(r3a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 73, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r3b1 = a <= x; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 75, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r3b2 = b <= x; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 76, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r3b3 = c <= x; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 77, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r3b4 = d <= x; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 78, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r3b5 = e <= x; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 79, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r3b6 = f <= x; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 80, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r3b7 = g <= x; +>r3b7 : Symbol(r3b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 81, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator >= +var r4a1 = x >= a; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 84, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r4a2 = x >= b; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 85, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r4a3 = x >= c; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 86, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r4a4 = x >= d; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 87, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r4a5 = x >= e; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 88, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r4a6 = x >= f; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 89, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r4a7 = x >= g; +>r4a7 : Symbol(r4a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 90, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r4b1 = a >= x; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 92, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r4b2 = b >= x; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 93, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r4b3 = c >= x; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 94, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r4b4 = d >= x; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 95, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r4b5 = e >= x; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 96, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r4b6 = f >= x; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 97, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r4b7 = g >= x; +>r4b7 : Symbol(r4b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 98, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator == +var r5a1 = x == a; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 101, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r5a2 = x == b; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 102, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r5a3 = x == c; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 103, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r5a4 = x == d; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 104, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r5a5 = x == e; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 105, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r5a6 = x == f; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 106, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r5a7 = x == g; +>r5a7 : Symbol(r5a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 107, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r5b1 = a == x; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 109, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r5b2 = b == x; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 110, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r5b3 = c == x; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 111, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r5b4 = d == x; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 112, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r5b5 = e == x; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 113, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r5b6 = f == x; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 114, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r5b7 = g == x; +>r5b7 : Symbol(r5b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 115, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator != +var r6a1 = x != a; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 118, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r6a2 = x != b; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 119, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r6a3 = x != c; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 120, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r6a4 = x != d; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 121, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r6a5 = x != e; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 122, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r6a6 = x != f; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 123, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r6a7 = x != g; +>r6a7 : Symbol(r6a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 124, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r6b1 = a != x; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 126, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r6b2 = b != x; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 127, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r6b3 = c != x; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 128, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r6b4 = d != x; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 129, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r6b5 = e != x; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 130, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r6b6 = f != x; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 131, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r6b7 = g != x; +>r6b7 : Symbol(r6b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 132, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator === +var r7a1 = x === a; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 135, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r7a2 = x === b; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 136, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r7a3 = x === c; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 137, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r7a4 = x === d; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 138, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r7a5 = x === e; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 139, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r7a6 = x === f; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 140, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r7a7 = x === g; +>r7a7 : Symbol(r7a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 141, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r7b1 = a === x; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 143, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r7b2 = b === x; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 144, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r7b3 = c === x; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 145, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r7b4 = d === x; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 146, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r7b5 = e === x; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 147, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r7b6 = f === x; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 148, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r7b7 = g === x; +>r7b7 : Symbol(r7b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 149, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +// operator !== +var r8a1 = x !== a; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 152, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) + +var r8a2 = x !== b; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 153, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) + +var r8a3 = x !== c; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 154, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) + +var r8a4 = x !== d; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 155, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) + +var r8a5 = x !== e; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 156, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) + +var r8a6 = x !== f; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 157, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) + +var r8a7 = x !== g; +>r8a7 : Symbol(r8a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 158, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) + +var r8b1 = a !== x; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 160, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r8b2 = b !== x; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 161, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r8b3 = c !== x; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 162, 3)) +>c : Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r8b4 = d !== x; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 163, 3)) +>d : Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r8b5 = e !== x; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 164, 3)) +>e : Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r8b6 = f !== x; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 165, 3)) +>f : Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + +var r8b7 = g !== x; +>r8b7 : Symbol(r8b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 166, 3)) +>g : Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types b/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types index ddceb854835fe..b4a70c3e3d6f4 100644 --- a/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types @@ -1,816 +1,816 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsUndefined.ts === var x: typeof undefined; ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->undefined : undefined, Symbol(undefined) +>x : any +>undefined : undefined enum E { a, b, c } ->E : E, Symbol(E, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 24)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 8)) ->b : E, Symbol(E.b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 11)) ->c : E, Symbol(E.c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 14)) +>E : E +>a : E +>b : E +>c : E function foo(t: T) { ->foo : (t: T) => void, Symbol(foo, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 2, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 13)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 13)) +>foo : (t: T) => void +>T : T +>t : T +>T : T var foo_r1 = t < x; ->foo_r1 : boolean, Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 14, 7)) +>foo_r1 : boolean >t < x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r2 = t > x; ->foo_r2 : boolean, Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 15, 7)) +>foo_r2 : boolean >t > x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r3 = t <= x; ->foo_r3 : boolean, Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 16, 7)) +>foo_r3 : boolean >t <= x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r4 = t >= x; ->foo_r4 : boolean, Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 17, 7)) +>foo_r4 : boolean >t >= x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r5 = t == x; ->foo_r5 : boolean, Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 18, 7)) +>foo_r5 : boolean >t == x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r6 = t != x; ->foo_r6 : boolean, Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 19, 7)) +>foo_r6 : boolean >t != x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r7 = t === x; ->foo_r7 : boolean, Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 20, 7)) +>foo_r7 : boolean >t === x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r8 = t !== x; ->foo_r8 : boolean, Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 21, 7)) +>foo_r8 : boolean >t !== x : boolean ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>t : T +>x : any var foo_r1 = x < t; ->foo_r1 : boolean, Symbol(foo_r1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 5, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 14, 7)) +>foo_r1 : boolean >x < t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r2 = x > t; ->foo_r2 : boolean, Symbol(foo_r2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 6, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 15, 7)) +>foo_r2 : boolean >x > t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r3 = x <= t; ->foo_r3 : boolean, Symbol(foo_r3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 7, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 16, 7)) +>foo_r3 : boolean >x <= t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r4 = x >= t; ->foo_r4 : boolean, Symbol(foo_r4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 8, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 17, 7)) +>foo_r4 : boolean >x >= t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r5 = x == t; ->foo_r5 : boolean, Symbol(foo_r5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 9, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 18, 7)) +>foo_r5 : boolean >x == t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r6 = x != t; ->foo_r6 : boolean, Symbol(foo_r6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 10, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 19, 7)) +>foo_r6 : boolean >x != t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r7 = x === t; ->foo_r7 : boolean, Symbol(foo_r7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 11, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 20, 7)) +>foo_r7 : boolean >x === t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T var foo_r8 = x !== t; ->foo_r8 : boolean, Symbol(foo_r8, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 12, 7), Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 21, 7)) +>foo_r8 : boolean >x !== t : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->t : T, Symbol(t, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 4, 16)) +>x : any +>t : T } var a: boolean; ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>a : boolean var b: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>b : number var c: string; ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>c : string var d: void; ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>d : void var e: E; ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->E : E, Symbol(E, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 24)) +>e : E +>E : E var f: {}; ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>f : {} var g: string[]; ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>g : string[] // operator < var r1a1 = x < a; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 33, 3)) +>r1a1 : boolean >x < a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r1a2 = x < b; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 34, 3)) +>r1a2 : boolean >x < b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r1a3 = x < c; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 35, 3)) +>r1a3 : boolean >x < c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r1a4 = x < d; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 36, 3)) +>r1a4 : boolean >x < d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r1a5 = x < e; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 37, 3)) +>r1a5 : boolean >x < e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r1a6 = x < f; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 38, 3)) +>r1a6 : boolean >x < f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r1a7 = x < g; ->r1a7 : boolean, Symbol(r1a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 39, 3)) +>r1a7 : boolean >x < g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r1b1 = a < x; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 41, 3)) +>r1b1 : boolean >a < x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r1b2 = b < x; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 42, 3)) +>r1b2 : boolean >b < x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r1b3 = c < x; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 43, 3)) +>r1b3 : boolean >c < x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r1b4 = d < x; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 44, 3)) +>r1b4 : boolean >d < x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r1b5 = e < x; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 45, 3)) +>r1b5 : boolean >e < x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r1b6 = f < x; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 46, 3)) +>r1b6 : boolean >f < x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r1b7 = g < x; ->r1b7 : boolean, Symbol(r1b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 47, 3)) +>r1b7 : boolean >g < x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator > var r2a1 = x > a; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 50, 3)) +>r2a1 : boolean >x > a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r2a2 = x > b; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 51, 3)) +>r2a2 : boolean >x > b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r2a3 = x > c; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 52, 3)) +>r2a3 : boolean >x > c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r2a4 = x > d; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 53, 3)) +>r2a4 : boolean >x > d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r2a5 = x > e; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 54, 3)) +>r2a5 : boolean >x > e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r2a6 = x > f; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 55, 3)) +>r2a6 : boolean >x > f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r2a7 = x > g; ->r2a7 : boolean, Symbol(r2a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 56, 3)) +>r2a7 : boolean >x > g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r2b1 = a > x; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 58, 3)) +>r2b1 : boolean >a > x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r2b2 = b > x; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 59, 3)) +>r2b2 : boolean >b > x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r2b3 = c > x; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 60, 3)) +>r2b3 : boolean >c > x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r2b4 = d > x; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 61, 3)) +>r2b4 : boolean >d > x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r2b5 = e > x; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 62, 3)) +>r2b5 : boolean >e > x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r2b6 = f > x; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 63, 3)) +>r2b6 : boolean >f > x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r2b7 = g > x; ->r2b7 : boolean, Symbol(r2b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 64, 3)) +>r2b7 : boolean >g > x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator <= var r3a1 = x <= a; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 67, 3)) +>r3a1 : boolean >x <= a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r3a2 = x <= b; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 68, 3)) +>r3a2 : boolean >x <= b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r3a3 = x <= c; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 69, 3)) +>r3a3 : boolean >x <= c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r3a4 = x <= d; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 70, 3)) +>r3a4 : boolean >x <= d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r3a5 = x <= e; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 71, 3)) +>r3a5 : boolean >x <= e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r3a6 = x <= f; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 72, 3)) +>r3a6 : boolean >x <= f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r3a7 = x <= g; ->r3a7 : boolean, Symbol(r3a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 73, 3)) +>r3a7 : boolean >x <= g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r3b1 = a <= x; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 75, 3)) +>r3b1 : boolean >a <= x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r3b2 = b <= x; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 76, 3)) +>r3b2 : boolean >b <= x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r3b3 = c <= x; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 77, 3)) +>r3b3 : boolean >c <= x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r3b4 = d <= x; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 78, 3)) +>r3b4 : boolean >d <= x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r3b5 = e <= x; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 79, 3)) +>r3b5 : boolean >e <= x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r3b6 = f <= x; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 80, 3)) +>r3b6 : boolean >f <= x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r3b7 = g <= x; ->r3b7 : boolean, Symbol(r3b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 81, 3)) +>r3b7 : boolean >g <= x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator >= var r4a1 = x >= a; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 84, 3)) +>r4a1 : boolean >x >= a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r4a2 = x >= b; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 85, 3)) +>r4a2 : boolean >x >= b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r4a3 = x >= c; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 86, 3)) +>r4a3 : boolean >x >= c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r4a4 = x >= d; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 87, 3)) +>r4a4 : boolean >x >= d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r4a5 = x >= e; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 88, 3)) +>r4a5 : boolean >x >= e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r4a6 = x >= f; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 89, 3)) +>r4a6 : boolean >x >= f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r4a7 = x >= g; ->r4a7 : boolean, Symbol(r4a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 90, 3)) +>r4a7 : boolean >x >= g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r4b1 = a >= x; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 92, 3)) +>r4b1 : boolean >a >= x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r4b2 = b >= x; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 93, 3)) +>r4b2 : boolean >b >= x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r4b3 = c >= x; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 94, 3)) +>r4b3 : boolean >c >= x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r4b4 = d >= x; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 95, 3)) +>r4b4 : boolean >d >= x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r4b5 = e >= x; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 96, 3)) +>r4b5 : boolean >e >= x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r4b6 = f >= x; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 97, 3)) +>r4b6 : boolean >f >= x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r4b7 = g >= x; ->r4b7 : boolean, Symbol(r4b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 98, 3)) +>r4b7 : boolean >g >= x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator == var r5a1 = x == a; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 101, 3)) +>r5a1 : boolean >x == a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r5a2 = x == b; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 102, 3)) +>r5a2 : boolean >x == b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r5a3 = x == c; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 103, 3)) +>r5a3 : boolean >x == c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r5a4 = x == d; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 104, 3)) +>r5a4 : boolean >x == d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r5a5 = x == e; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 105, 3)) +>r5a5 : boolean >x == e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r5a6 = x == f; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 106, 3)) +>r5a6 : boolean >x == f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r5a7 = x == g; ->r5a7 : boolean, Symbol(r5a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 107, 3)) +>r5a7 : boolean >x == g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r5b1 = a == x; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 109, 3)) +>r5b1 : boolean >a == x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r5b2 = b == x; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 110, 3)) +>r5b2 : boolean >b == x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r5b3 = c == x; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 111, 3)) +>r5b3 : boolean >c == x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r5b4 = d == x; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 112, 3)) +>r5b4 : boolean >d == x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r5b5 = e == x; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 113, 3)) +>r5b5 : boolean >e == x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r5b6 = f == x; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 114, 3)) +>r5b6 : boolean >f == x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r5b7 = g == x; ->r5b7 : boolean, Symbol(r5b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 115, 3)) +>r5b7 : boolean >g == x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator != var r6a1 = x != a; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 118, 3)) +>r6a1 : boolean >x != a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r6a2 = x != b; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 119, 3)) +>r6a2 : boolean >x != b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r6a3 = x != c; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 120, 3)) +>r6a3 : boolean >x != c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r6a4 = x != d; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 121, 3)) +>r6a4 : boolean >x != d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r6a5 = x != e; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 122, 3)) +>r6a5 : boolean >x != e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r6a6 = x != f; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 123, 3)) +>r6a6 : boolean >x != f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r6a7 = x != g; ->r6a7 : boolean, Symbol(r6a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 124, 3)) +>r6a7 : boolean >x != g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r6b1 = a != x; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 126, 3)) +>r6b1 : boolean >a != x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r6b2 = b != x; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 127, 3)) +>r6b2 : boolean >b != x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r6b3 = c != x; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 128, 3)) +>r6b3 : boolean >c != x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r6b4 = d != x; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 129, 3)) +>r6b4 : boolean >d != x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r6b5 = e != x; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 130, 3)) +>r6b5 : boolean >e != x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r6b6 = f != x; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 131, 3)) +>r6b6 : boolean >f != x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r6b7 = g != x; ->r6b7 : boolean, Symbol(r6b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 132, 3)) +>r6b7 : boolean >g != x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator === var r7a1 = x === a; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 135, 3)) +>r7a1 : boolean >x === a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r7a2 = x === b; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 136, 3)) +>r7a2 : boolean >x === b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r7a3 = x === c; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 137, 3)) +>r7a3 : boolean >x === c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r7a4 = x === d; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 138, 3)) +>r7a4 : boolean >x === d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r7a5 = x === e; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 139, 3)) +>r7a5 : boolean >x === e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r7a6 = x === f; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 140, 3)) +>r7a6 : boolean >x === f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r7a7 = x === g; ->r7a7 : boolean, Symbol(r7a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 141, 3)) +>r7a7 : boolean >x === g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r7b1 = a === x; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 143, 3)) +>r7b1 : boolean >a === x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r7b2 = b === x; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 144, 3)) +>r7b2 : boolean >b === x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r7b3 = c === x; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 145, 3)) +>r7b3 : boolean >c === x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r7b4 = d === x; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 146, 3)) +>r7b4 : boolean >d === x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r7b5 = e === x; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 147, 3)) +>r7b5 : boolean >e === x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r7b6 = f === x; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 148, 3)) +>r7b6 : boolean >f === x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r7b7 = g === x; ->r7b7 : boolean, Symbol(r7b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 149, 3)) +>r7b7 : boolean >g === x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any // operator !== var r8a1 = x !== a; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 152, 3)) +>r8a1 : boolean >x !== a : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) +>x : any +>a : boolean var r8a2 = x !== b; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 153, 3)) +>r8a2 : boolean >x !== b : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) +>x : any +>b : number var r8a3 = x !== c; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 154, 3)) +>r8a3 : boolean >x !== c : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) +>x : any +>c : string var r8a4 = x !== d; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 155, 3)) +>r8a4 : boolean >x !== d : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) +>x : any +>d : void var r8a5 = x !== e; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 156, 3)) +>r8a5 : boolean >x !== e : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) +>x : any +>e : E var r8a6 = x !== f; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 157, 3)) +>r8a6 : boolean >x !== f : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) +>x : any +>f : {} var r8a7 = x !== g; ->r8a7 : boolean, Symbol(r8a7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 158, 3)) +>r8a7 : boolean >x !== g : boolean ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) +>x : any +>g : string[] var r8b1 = a !== x; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 160, 3)) +>r8b1 : boolean >a !== x : boolean ->a : boolean, Symbol(a, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 24, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>a : boolean +>x : any var r8b2 = b !== x; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 161, 3)) +>r8b2 : boolean >b !== x : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 25, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>b : number +>x : any var r8b3 = c !== x; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 162, 3)) +>r8b3 : boolean >c !== x : boolean ->c : string, Symbol(c, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 26, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>c : string +>x : any var r8b4 = d !== x; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 163, 3)) +>r8b4 : boolean >d !== x : boolean ->d : void, Symbol(d, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 27, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>d : void +>x : any var r8b5 = e !== x; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 164, 3)) +>r8b5 : boolean >e !== x : boolean ->e : E, Symbol(e, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 28, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>e : E +>x : any var r8b6 = f !== x; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 165, 3)) +>r8b6 : boolean >f !== x : boolean ->f : {}, Symbol(f, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 29, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>f : {} +>x : any var r8b7 = g !== x; ->r8b7 : boolean, Symbol(r8b7, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 166, 3)) +>r8b7 : boolean >g !== x : boolean ->g : string[], Symbol(g, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 30, 3)) ->x : any, Symbol(x, Decl(comparisonOperatorWithOneOperandIsUndefined.ts, 0, 3)) +>g : string[] +>x : any diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.symbols new file mode 100644 index 0000000000000..e197579ee9f1c --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.symbols @@ -0,0 +1,310 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeEnumAndNumber.ts === +enum E { a, b, c } +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(E.b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 11)) +>c : Symbol(E.c, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 14)) + +var a: E; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) + +var b: number; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +// operator < +var ra1 = a < b; +>ra1 : Symbol(ra1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 6, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var ra2 = b < a; +>ra2 : Symbol(ra2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 7, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var ra3 = E.a < b; +>ra3 : Symbol(ra3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 8, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var ra4 = b < E.a; +>ra4 : Symbol(ra4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var ra5 = E.a < 0; +>ra5 : Symbol(ra5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 10, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var ra6 = 0 < E.a; +>ra6 : Symbol(ra6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 11, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator > +var rb1 = a > b; +>rb1 : Symbol(rb1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 14, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rb2 = b > a; +>rb2 : Symbol(rb2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 15, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var rb3 = E.a > b; +>rb3 : Symbol(rb3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 16, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rb4 = b > E.a; +>rb4 : Symbol(rb4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 17, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rb5 = E.a > 0; +>rb5 : Symbol(rb5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 18, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rb6 = 0 > E.a; +>rb6 : Symbol(rb6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 19, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator <= +var rc1 = a <= b; +>rc1 : Symbol(rc1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 22, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rc2 = b <= a; +>rc2 : Symbol(rc2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 23, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var rc3 = E.a <= b; +>rc3 : Symbol(rc3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 24, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rc4 = b <= E.a; +>rc4 : Symbol(rc4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 25, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rc5 = E.a <= 0; +>rc5 : Symbol(rc5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 26, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rc6 = 0 <= E.a; +>rc6 : Symbol(rc6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 27, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator >= +var rd1 = a >= b; +>rd1 : Symbol(rd1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 30, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rd2 = b >= a; +>rd2 : Symbol(rd2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 31, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var rd3 = E.a >= b; +>rd3 : Symbol(rd3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 32, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rd4 = b >= E.a; +>rd4 : Symbol(rd4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 33, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rd5 = E.a >= 0; +>rd5 : Symbol(rd5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 34, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rd6 = 0 >= E.a; +>rd6 : Symbol(rd6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 35, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator == +var re1 = a == b; +>re1 : Symbol(re1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 38, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var re2 = b == a; +>re2 : Symbol(re2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 39, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var re3 = E.a == b; +>re3 : Symbol(re3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 40, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var re4 = b == E.a; +>re4 : Symbol(re4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 41, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var re5 = E.a == 0; +>re5 : Symbol(re5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 42, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var re6 = 0 == E.a; +>re6 : Symbol(re6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 43, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator != +var rf1 = a != b; +>rf1 : Symbol(rf1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 46, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rf2 = b != a; +>rf2 : Symbol(rf2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 47, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var rf3 = E.a != b; +>rf3 : Symbol(rf3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 48, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rf4 = b != E.a; +>rf4 : Symbol(rf4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 49, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rf5 = E.a != 0; +>rf5 : Symbol(rf5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 50, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rf6 = 0 != E.a; +>rf6 : Symbol(rf6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 51, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator === +var rg1 = a === b; +>rg1 : Symbol(rg1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 54, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rg2 = b === a; +>rg2 : Symbol(rg2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 55, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var rg3 = E.a === b; +>rg3 : Symbol(rg3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 56, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rg4 = b === E.a; +>rg4 : Symbol(rg4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 57, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rg5 = E.a === 0; +>rg5 : Symbol(rg5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 58, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rg6 = 0 === E.a; +>rg6 : Symbol(rg6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 59, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +// operator !== +var rh1 = a !== b; +>rh1 : Symbol(rh1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 62, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rh2 = b !== a; +>rh2 : Symbol(rh2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 63, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) + +var rh3 = E.a !== b; +>rh3 : Symbol(rh3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 64, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) + +var rh4 = b !== E.a; +>rh4 : Symbol(rh4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 65, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rh5 = E.a !== 0; +>rh5 : Symbol(rh5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 66, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + +var rh6 = 0 !== E.a; +>rh6 : Symbol(rh6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 67, 3)) +>E.a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E : Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) + diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.types b/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.types index 7ce401a422df8..67077683d8733 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeEnumAndNumber.types @@ -1,374 +1,374 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeEnumAndNumber.ts === enum E { a, b, c } ->E : E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 11)) ->c : E, Symbol(E.c, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 14)) +>E : E +>a : E +>b : E +>c : E var a: E; ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->E : E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) +>a : E +>E : E var b: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>b : number // operator < var ra1 = a < b; ->ra1 : boolean, Symbol(ra1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 6, 3)) +>ra1 : boolean >a < b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var ra2 = b < a; ->ra2 : boolean, Symbol(ra2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 7, 3)) +>ra2 : boolean >b < a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var ra3 = E.a < b; ->ra3 : boolean, Symbol(ra3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 8, 3)) +>ra3 : boolean >E.a < b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var ra4 = b < E.a; ->ra4 : boolean, Symbol(ra4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 9, 3)) +>ra4 : boolean >b < E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var ra5 = E.a < 0; ->ra5 : boolean, Symbol(ra5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 10, 3)) +>ra5 : boolean >E.a < 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var ra6 = 0 < E.a; ->ra6 : boolean, Symbol(ra6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 11, 3)) +>ra6 : boolean >0 < E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator > var rb1 = a > b; ->rb1 : boolean, Symbol(rb1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 14, 3)) +>rb1 : boolean >a > b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var rb2 = b > a; ->rb2 : boolean, Symbol(rb2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 15, 3)) +>rb2 : boolean >b > a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var rb3 = E.a > b; ->rb3 : boolean, Symbol(rb3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 16, 3)) +>rb3 : boolean >E.a > b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rb4 = b > E.a; ->rb4 : boolean, Symbol(rb4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 17, 3)) +>rb4 : boolean >b > E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var rb5 = E.a > 0; ->rb5 : boolean, Symbol(rb5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 18, 3)) +>rb5 : boolean >E.a > 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var rb6 = 0 > E.a; ->rb6 : boolean, Symbol(rb6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 19, 3)) +>rb6 : boolean >0 > E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator <= var rc1 = a <= b; ->rc1 : boolean, Symbol(rc1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 22, 3)) +>rc1 : boolean >a <= b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var rc2 = b <= a; ->rc2 : boolean, Symbol(rc2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 23, 3)) +>rc2 : boolean >b <= a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var rc3 = E.a <= b; ->rc3 : boolean, Symbol(rc3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 24, 3)) +>rc3 : boolean >E.a <= b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rc4 = b <= E.a; ->rc4 : boolean, Symbol(rc4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 25, 3)) +>rc4 : boolean >b <= E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var rc5 = E.a <= 0; ->rc5 : boolean, Symbol(rc5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 26, 3)) +>rc5 : boolean >E.a <= 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var rc6 = 0 <= E.a; ->rc6 : boolean, Symbol(rc6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 27, 3)) +>rc6 : boolean >0 <= E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator >= var rd1 = a >= b; ->rd1 : boolean, Symbol(rd1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 30, 3)) +>rd1 : boolean >a >= b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var rd2 = b >= a; ->rd2 : boolean, Symbol(rd2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 31, 3)) +>rd2 : boolean >b >= a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var rd3 = E.a >= b; ->rd3 : boolean, Symbol(rd3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 32, 3)) +>rd3 : boolean >E.a >= b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rd4 = b >= E.a; ->rd4 : boolean, Symbol(rd4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 33, 3)) +>rd4 : boolean >b >= E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var rd5 = E.a >= 0; ->rd5 : boolean, Symbol(rd5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 34, 3)) +>rd5 : boolean >E.a >= 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var rd6 = 0 >= E.a; ->rd6 : boolean, Symbol(rd6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 35, 3)) +>rd6 : boolean >0 >= E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator == var re1 = a == b; ->re1 : boolean, Symbol(re1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 38, 3)) +>re1 : boolean >a == b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var re2 = b == a; ->re2 : boolean, Symbol(re2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 39, 3)) +>re2 : boolean >b == a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var re3 = E.a == b; ->re3 : boolean, Symbol(re3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 40, 3)) +>re3 : boolean >E.a == b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var re4 = b == E.a; ->re4 : boolean, Symbol(re4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 41, 3)) +>re4 : boolean >b == E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var re5 = E.a == 0; ->re5 : boolean, Symbol(re5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 42, 3)) +>re5 : boolean >E.a == 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var re6 = 0 == E.a; ->re6 : boolean, Symbol(re6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 43, 3)) +>re6 : boolean >0 == E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator != var rf1 = a != b; ->rf1 : boolean, Symbol(rf1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 46, 3)) +>rf1 : boolean >a != b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var rf2 = b != a; ->rf2 : boolean, Symbol(rf2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 47, 3)) +>rf2 : boolean >b != a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var rf3 = E.a != b; ->rf3 : boolean, Symbol(rf3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 48, 3)) +>rf3 : boolean >E.a != b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rf4 = b != E.a; ->rf4 : boolean, Symbol(rf4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 49, 3)) +>rf4 : boolean >b != E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var rf5 = E.a != 0; ->rf5 : boolean, Symbol(rf5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 50, 3)) +>rf5 : boolean >E.a != 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var rf6 = 0 != E.a; ->rf6 : boolean, Symbol(rf6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 51, 3)) +>rf6 : boolean >0 != E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator === var rg1 = a === b; ->rg1 : boolean, Symbol(rg1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 54, 3)) +>rg1 : boolean >a === b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var rg2 = b === a; ->rg2 : boolean, Symbol(rg2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 55, 3)) +>rg2 : boolean >b === a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var rg3 = E.a === b; ->rg3 : boolean, Symbol(rg3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 56, 3)) +>rg3 : boolean >E.a === b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rg4 = b === E.a; ->rg4 : boolean, Symbol(rg4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 57, 3)) +>rg4 : boolean >b === E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var rg5 = E.a === 0; ->rg5 : boolean, Symbol(rg5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 58, 3)) +>rg5 : boolean >E.a === 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var rg6 = 0 === E.a; ->rg6 : boolean, Symbol(rg6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 59, 3)) +>rg6 : boolean >0 === E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E // operator !== var rh1 = a !== b; ->rh1 : boolean, Symbol(rh1, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 62, 3)) +>rh1 : boolean >a !== b : boolean ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>a : E +>b : number var rh2 = b !== a; ->rh2 : boolean, Symbol(rh2, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 63, 3)) +>rh2 : boolean >b !== a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->a : E, Symbol(a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 2, 3)) +>b : number +>a : E var rh3 = E.a !== b; ->rh3 : boolean, Symbol(rh3, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 64, 3)) +>rh3 : boolean >E.a !== b : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) +>E.a : E +>E : typeof E +>a : E +>b : number var rh4 = b !== E.a; ->rh4 : boolean, Symbol(rh4, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 65, 3)) +>rh4 : boolean >b !== E.a : boolean ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 3, 3)) ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>b : number +>E.a : E +>E : typeof E +>a : E var rh5 = E.a !== 0; ->rh5 : boolean, Symbol(rh5, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 66, 3)) +>rh5 : boolean >E.a !== 0 : boolean ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E >0 : number var rh6 = 0 !== E.a; ->rh6 : boolean, Symbol(rh6, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 67, 3)) +>rh6 : boolean >0 !== E.a : boolean >0 : number ->E.a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(comparisonOperatorWithSubtypeEnumAndNumber.ts, 0, 8)) +>E.a : E +>E : typeof E +>a : E diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.symbols new file mode 100644 index 0000000000000..b82a68af007ed --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.symbols @@ -0,0 +1,1060 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts === +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 12)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + + public b: string; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 4, 28)) +} + +var a1: { fn(): void }; +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 9)) + +var b1: { fn(): void }; +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 9)) + +var a2: { fn(a: number, b: string): void }; +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 13)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 23)) + +var b2: { fn(a: number, b: string): void }; +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 13)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 23)) + +var a3: { fn(a: number, b: string): void }; +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 13)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 23)) + +var b3: { fn(a: number): void }; +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 13)) + +var a4: { fn(a: number, b: string): void }; +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 13)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 23)) + +var b4: { fn(): void }; +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 9)) + +var a5: { fn(a: Base): void }; +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 13)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var b5: { fn(a: Derived): void }; +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 13)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) + +var a6: { fn(a: Derived, b: Base): void }; +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 13)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 24)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var b6: { fn(a: Base, b: Derived): void }; +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 9)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 13)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 21)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) + +var a7: { fn(): void }; +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 9)) + +var b7: { fn(): Base }; +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 9)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var a8: { fn(): Base }; +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 9)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var b8: { fn(): Base }; +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 9)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var a9: { fn(): Base }; +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 9)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var b9: { fn(): Derived }; +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 9)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) + +var a10: { fn(a?: Base): void }; +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 10)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 14)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var b10: { fn(a?: Derived): void }; +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 10)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 14)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) + +var a11: { fn(...a: Base[]): void }; +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 10)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 14)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) + +var b11: { fn(...a: Derived[]): void }; +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 10)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 14)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) + +//var a12: { fn(t: T, u: U): T[] }; +//var b12: { fn(a: A, b: B): A[] }; + +// operator < +var r1a1 = a1 < b1; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 45, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r1a2 = a2 < b2; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 46, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r1a3 = a3 < b3; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 47, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r1a4 = a4 < b4; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 48, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r1a5 = a5 < b5; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 49, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r1a6 = a6 < b6; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 50, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r1a7 = a7 < b7; +>r1a7 : Symbol(r1a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 51, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r1a8 = a8 < b8; +>r1a8 : Symbol(r1a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 52, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r1a9 = a9 < b9; +>r1a9 : Symbol(r1a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 53, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r1a10 = a10 < b10; +>r1a10 : Symbol(r1a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 54, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r1a11 = a11 < b11; +>r1a11 : Symbol(r1a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 55, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r1a12 = a12 < b12; + +var r1b1 = b1 < a1; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 58, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r1b2 = b2 < a2; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 59, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r1b3 = b3 < a3; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 60, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r1b4 = b4 < a4; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 61, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r1b5 = b5 < a5; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 62, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r1b6 = b6 < a6; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 63, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r1b7 = b7 < a7; +>r1b7 : Symbol(r1b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 64, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r1b8 = b8 < a8; +>r1b8 : Symbol(r1b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 65, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r1b9 = b9 < a9; +>r1b9 : Symbol(r1b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 66, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r1b10 = b10 < a10; +>r1b10 : Symbol(r1b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 67, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r1b11 = b11 < a11; +>r1b11 : Symbol(r1b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 68, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r1b12 = b12 < a12; + +// operator > +var r2a1 = a1 > b1; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 72, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r2a2 = a2 > b2; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 73, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r2a3 = a3 > b3; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 74, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r2a4 = a4 > b4; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 75, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r2a5 = a5 > b5; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 76, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r2a6 = a6 > b6; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 77, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r2a7 = a7 > b7; +>r2a7 : Symbol(r2a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 78, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r2a8 = a8 > b8; +>r2a8 : Symbol(r2a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 79, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r2a9 = a9 > b9; +>r2a9 : Symbol(r2a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 80, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r2a10 = a10 > b10; +>r2a10 : Symbol(r2a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 81, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r2a11 = a11 > b11; +>r2a11 : Symbol(r2a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 82, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r2a12 = a12 > b12; + +var r2b1 = b1 > a1; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 85, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r2b2 = b2 > a2; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 86, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r2b3 = b3 > a3; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 87, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r2b4 = b4 > a4; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 88, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r2b5 = b5 > a5; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 89, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r2b6 = b6 > a6; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 90, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r2b7 = b7 > a7; +>r2b7 : Symbol(r2b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 91, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r2b8 = b8 > a8; +>r2b8 : Symbol(r2b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 92, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r2b9 = b9 > a9; +>r2b9 : Symbol(r2b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 93, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r2b10 = b10 > a10; +>r2b10 : Symbol(r2b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 94, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r2b11 = b11 > a11; +>r2b11 : Symbol(r2b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 95, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r2b12 = b12 > a12; + +// operator <= +var r3a1 = a1 <= b1; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 99, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r3a2 = a2 <= b2; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 100, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r3a3 = a3 <= b3; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 101, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r3a4 = a4 <= b4; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 102, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r3a5 = a5 <= b5; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 103, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r3a6 = a6 <= b6; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 104, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r3a7 = a7 <= b7; +>r3a7 : Symbol(r3a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 105, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r3a8 = a8 <= b8; +>r3a8 : Symbol(r3a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 106, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r3a9 = a9 <= b9; +>r3a9 : Symbol(r3a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 107, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r3a10 = a10 <= b10; +>r3a10 : Symbol(r3a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 108, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r3a11 = a11 <= b11; +>r3a11 : Symbol(r3a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 109, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r3a12 = a12 <= b12; + +var r3b1 = b1 <= a1; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 112, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r3b2 = b2 <= a2; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 113, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r3b3 = b3 <= a3; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 114, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r3b4 = b4 <= a4; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 115, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r3b5 = b5 <= a5; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 116, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r3b6 = b6 <= a6; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 117, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r3b7 = b7 <= a7; +>r3b7 : Symbol(r3b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 118, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r3b8 = b8 <= a8; +>r3b8 : Symbol(r3b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 119, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r3b9 = b9 <= a9; +>r3b9 : Symbol(r3b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 120, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r3b10 = b10 <= a10; +>r3b10 : Symbol(r3b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 121, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r3b11 = b11 <= a11; +>r3b11 : Symbol(r3b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 122, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r3b12 = b12 <= a12; + +// operator >= +var r4a1 = a1 >= b1; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 126, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r4a2 = a2 >= b2; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 127, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r4a3 = a3 >= b3; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 128, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r4a4 = a4 >= b4; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 129, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r4a5 = a5 >= b5; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 130, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r4a6 = a6 >= b6; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 131, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r4a7 = a7 >= b7; +>r4a7 : Symbol(r4a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 132, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r4a8 = a8 >= b8; +>r4a8 : Symbol(r4a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 133, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r4a9 = a9 >= b9; +>r4a9 : Symbol(r4a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 134, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r4a10 = a10 >= b10; +>r4a10 : Symbol(r4a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 135, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r4a11 = a11 >= b11; +>r4a11 : Symbol(r4a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 136, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r4a12 = a12 >= b12; + +var r4b1 = b1 >= a1; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 139, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r4b2 = b2 >= a2; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 140, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r4b3 = b3 >= a3; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 141, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r4b4 = b4 >= a4; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 142, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r4b5 = b5 >= a5; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 143, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r4b6 = b6 >= a6; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 144, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r4b7 = b7 >= a7; +>r4b7 : Symbol(r4b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 145, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r4b8 = b8 >= a8; +>r4b8 : Symbol(r4b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 146, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r4b9 = b9 >= a9; +>r4b9 : Symbol(r4b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 147, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r4b10 = b10 >= a10; +>r4b10 : Symbol(r4b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 148, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r4b11 = b11 >= a11; +>r4b11 : Symbol(r4b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 149, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r4b12 = b12 >= a12; + +// operator == +var r5a1 = a1 == b1; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 153, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r5a2 = a2 == b2; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 154, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r5a3 = a3 == b3; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 155, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r5a4 = a4 == b4; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 156, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r5a5 = a5 == b5; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 157, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r5a6 = a6 == b6; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 158, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r5a7 = a7 == b7; +>r5a7 : Symbol(r5a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 159, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r5a8 = a8 == b8; +>r5a8 : Symbol(r5a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 160, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r5a9 = a9 == b9; +>r5a9 : Symbol(r5a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 161, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r5a10 = a10 == b10; +>r5a10 : Symbol(r5a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 162, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r5a11 = a11 == b11; +>r5a11 : Symbol(r5a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 163, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r5a12 = a12 == b12; + +var r5b1 = b1 == a1; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 166, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r5b2 = b2 == a2; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 167, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r5b3 = b3 == a3; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 168, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r5b4 = b4 == a4; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 169, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r5b5 = b5 == a5; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 170, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r5b6 = b6 == a6; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 171, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r5b7 = b7 == a7; +>r5b7 : Symbol(r5b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 172, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r5b8 = b8 == a8; +>r5b8 : Symbol(r5b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 173, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r5b9 = b9 == a9; +>r5b9 : Symbol(r5b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 174, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r5b10 = b10 == a10; +>r5b10 : Symbol(r5b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 175, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r5b11 = b11 == a11; +>r5b11 : Symbol(r5b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 176, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r5b12 = b12 == a12; + +// operator != +var r6a1 = a1 != b1; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 180, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r6a2 = a2 != b2; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 181, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r6a3 = a3 != b3; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 182, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r6a4 = a4 != b4; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 183, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r6a5 = a5 != b5; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 184, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r6a6 = a6 != b6; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 185, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r6a7 = a7 != b7; +>r6a7 : Symbol(r6a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 186, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r6a8 = a8 != b8; +>r6a8 : Symbol(r6a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 187, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r6a9 = a9 != b9; +>r6a9 : Symbol(r6a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 188, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r6a10 = a10 != b10; +>r6a10 : Symbol(r6a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 189, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r6a11 = a11 != b11; +>r6a11 : Symbol(r6a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 190, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r6a12 = a12 != b12; + +var r6b1 = b1 != a1; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 193, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r6b2 = b2 != a2; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 194, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r6b3 = b3 != a3; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 195, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r6b4 = b4 != a4; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 196, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r6b5 = b5 != a5; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 197, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r6b6 = b6 != a6; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 198, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r6b7 = b7 != a7; +>r6b7 : Symbol(r6b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 199, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r6b8 = b8 != a8; +>r6b8 : Symbol(r6b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 200, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r6b9 = b9 != a9; +>r6b9 : Symbol(r6b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 201, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r6b10 = b10 != a10; +>r6b10 : Symbol(r6b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 202, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r6b11 = b11 != a11; +>r6b11 : Symbol(r6b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 203, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r6b12 = b12 != a12; + +// operator === +var r7a1 = a1 === b1; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 207, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r7a2 = a2 === b2; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 208, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r7a3 = a3 === b3; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 209, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r7a4 = a4 === b4; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 210, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r7a5 = a5 === b5; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 211, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r7a6 = a6 === b6; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 212, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r7a7 = a7 === b7; +>r7a7 : Symbol(r7a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 213, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r7a8 = a8 === b8; +>r7a8 : Symbol(r7a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 214, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r7a9 = a9 === b9; +>r7a9 : Symbol(r7a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 215, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r7a10 = a10 === b10; +>r7a10 : Symbol(r7a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 216, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r7a11 = a11 === b11; +>r7a11 : Symbol(r7a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 217, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r7a12 = a12 === b12; + +var r7b1 = b1 === a1; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 220, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r7b2 = b2 === a2; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 221, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r7b3 = b3 === a3; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 222, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r7b4 = b4 === a4; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 223, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r7b5 = b5 === a5; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 224, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r7b6 = b6 === a6; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 225, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r7b7 = b7 === a7; +>r7b7 : Symbol(r7b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 226, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r7b8 = b8 === a8; +>r7b8 : Symbol(r7b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 227, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r7b9 = b9 === a9; +>r7b9 : Symbol(r7b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 228, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r7b10 = b10 === a10; +>r7b10 : Symbol(r7b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 229, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r7b11 = b11 === a11; +>r7b11 : Symbol(r7b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 230, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r7b12 = b12 === a12; + +// operator !== +var r8a1 = a1 !== b1; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 234, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) + +var r8a2 = a2 !== b2; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 235, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) + +var r8a3 = a3 !== b3; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 236, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) + +var r8a4 = a4 !== b4; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 237, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) + +var r8a5 = a5 !== b5; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 238, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) + +var r8a6 = a6 !== b6; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 239, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) + +var r8a7 = a7 !== b7; +>r8a7 : Symbol(r8a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 240, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) + +var r8a8 = a8 !== b8; +>r8a8 : Symbol(r8a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 241, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) + +var r8a9 = a9 !== b9; +>r8a9 : Symbol(r8a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 242, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) + +var r8a10 = a10 !== b10; +>r8a10 : Symbol(r8a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 243, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) + +var r8a11 = a11 !== b11; +>r8a11 : Symbol(r8a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 244, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) + +//var r8a12 = a12 !== b12; + +var r8b1 = b1 !== a1; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 247, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) + +var r8b2 = b2 !== a2; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 248, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) + +var r8b3 = b3 !== a3; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 249, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) + +var r8b4 = b4 !== a4; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 250, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) + +var r8b5 = b5 !== a5; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 251, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) + +var r8b6 = b6 !== a6; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 252, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) + +var r8b7 = b7 !== a7; +>r8b7 : Symbol(r8b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 253, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) + +var r8b8 = b8 !== a8; +>r8b8 : Symbol(r8b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 254, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) + +var r8b9 = b9 !== a9; +>r8b9 : Symbol(r8b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 255, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) + +var r8b10 = b10 !== a10; +>r8b10 : Symbol(r8b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 256, 3)) +>b10 : Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) + +var r8b11 = b11 !== a11; +>r8b11 : Symbol(r8b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 257, 3)) +>b11 : Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) + +//var r8b12 = b12 !== a12; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.types index 6a2fc5c2a984d..b3a972958b3e6 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnCallSignature.types @@ -1,1236 +1,1236 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnCallSignature.ts === class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>Base : Base public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 12)) +>a : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>Derived : Derived +>Base : Base public b: string; ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 4, 28)) +>b : string } var a1: { fn(): void }; ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->fn : () => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 9)) +>a1 : { fn(): void; } +>fn : () => void var b1: { fn(): void }; ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->fn : () => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 9)) +>b1 : { fn(): void; } +>fn : () => void var a2: { fn(a: number, b: string): void }; ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->fn : (a: number, b: string) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 9)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 13)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 23)) +>a2 : { fn(a: number, b: string): void; } +>fn : (a: number, b: string) => void +>a : number +>b : string var b2: { fn(a: number, b: string): void }; ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->fn : (a: number, b: string) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 9)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 13)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 23)) +>b2 : { fn(a: number, b: string): void; } +>fn : (a: number, b: string) => void +>a : number +>b : string var a3: { fn(a: number, b: string): void }; ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->fn : (a: number, b: string) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 9)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 13)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 23)) +>a3 : { fn(a: number, b: string): void; } +>fn : (a: number, b: string) => void +>a : number +>b : string var b3: { fn(a: number): void }; ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->fn : (a: number) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 9)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 13)) +>b3 : { fn(a: number): void; } +>fn : (a: number) => void +>a : number var a4: { fn(a: number, b: string): void }; ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->fn : (a: number, b: string) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 9)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 13)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 23)) +>a4 : { fn(a: number, b: string): void; } +>fn : (a: number, b: string) => void +>a : number +>b : string var b4: { fn(): void }; ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->fn : () => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 9)) +>b4 : { fn(): void; } +>fn : () => void var a5: { fn(a: Base): void }; ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->fn : (a: Base) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 9)) ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 13)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>a5 : { fn(a: Base): void; } +>fn : (a: Base) => void +>a : Base +>Base : Base var b5: { fn(a: Derived): void }; ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->fn : (a: Derived) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 9)) ->a : Derived, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 13)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>b5 : { fn(a: Derived): void; } +>fn : (a: Derived) => void +>a : Derived +>Derived : Derived var a6: { fn(a: Derived, b: Base): void }; ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->fn : (a: Derived, b: Base) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 9)) ->a : Derived, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 13)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) ->b : Base, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 24)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>a6 : { fn(a: Derived, b: Base): void; } +>fn : (a: Derived, b: Base) => void +>a : Derived +>Derived : Derived +>b : Base +>Base : Base var b6: { fn(a: Base, b: Derived): void }; ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->fn : (a: Base, b: Derived) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 9)) ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 13)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) ->b : Derived, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 21)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>b6 : { fn(a: Base, b: Derived): void; } +>fn : (a: Base, b: Derived) => void +>a : Base +>Base : Base +>b : Derived +>Derived : Derived var a7: { fn(): void }; ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->fn : () => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 9)) +>a7 : { fn(): void; } +>fn : () => void var b7: { fn(): Base }; ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->fn : () => Base, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 9)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>b7 : { fn(): Base; } +>fn : () => Base +>Base : Base var a8: { fn(): Base }; ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->fn : () => Base, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 9)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>a8 : { fn(): Base; } +>fn : () => Base +>Base : Base var b8: { fn(): Base }; ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->fn : () => Base, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 9)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>b8 : { fn(): Base; } +>fn : () => Base +>Base : Base var a9: { fn(): Base }; ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->fn : () => Base, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 9)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>a9 : { fn(): Base; } +>fn : () => Base +>Base : Base var b9: { fn(): Derived }; ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->fn : () => Derived, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 9)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>b9 : { fn(): Derived; } +>fn : () => Derived +>Derived : Derived var a10: { fn(a?: Base): void }; ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->fn : (a?: Base) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 10)) ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 14)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>a10 : { fn(a?: Base): void; } +>fn : (a?: Base) => void +>a : Base +>Base : Base var b10: { fn(a?: Derived): void }; ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->fn : (a?: Derived) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 10)) ->a : Derived, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 14)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>b10 : { fn(a?: Derived): void; } +>fn : (a?: Derived) => void +>a : Derived +>Derived : Derived var a11: { fn(...a: Base[]): void }; ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->fn : (...a: Base[]) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 10)) ->a : Base[], Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 14)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 0, 0)) +>a11 : { fn(...a: Base[]): void; } +>fn : (...a: Base[]) => void +>a : Base[] +>Base : Base var b11: { fn(...a: Derived[]): void }; ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->fn : (...a: Derived[]) => void, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 10)) ->a : Derived[], Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 14)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 2, 1)) +>b11 : { fn(...a: Derived[]): void; } +>fn : (...a: Derived[]) => void +>a : Derived[] +>Derived : Derived //var a12: { fn(t: T, u: U): T[] }; //var b12: { fn(a: A, b: B): A[] }; // operator < var r1a1 = a1 < b1; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 45, 3)) +>r1a1 : boolean >a1 < b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r1a2 = a2 < b2; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 46, 3)) +>r1a2 : boolean >a2 < b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r1a3 = a3 < b3; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 47, 3)) +>r1a3 : boolean >a3 < b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r1a4 = a4 < b4; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 48, 3)) +>r1a4 : boolean >a4 < b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r1a5 = a5 < b5; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 49, 3)) +>r1a5 : boolean >a5 < b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r1a6 = a6 < b6; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 50, 3)) +>r1a6 : boolean >a6 < b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r1a7 = a7 < b7; ->r1a7 : boolean, Symbol(r1a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 51, 3)) +>r1a7 : boolean >a7 < b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r1a8 = a8 < b8; ->r1a8 : boolean, Symbol(r1a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 52, 3)) +>r1a8 : boolean >a8 < b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r1a9 = a9 < b9; ->r1a9 : boolean, Symbol(r1a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 53, 3)) +>r1a9 : boolean >a9 < b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r1a10 = a10 < b10; ->r1a10 : boolean, Symbol(r1a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 54, 3)) +>r1a10 : boolean >a10 < b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r1a11 = a11 < b11; ->r1a11 : boolean, Symbol(r1a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 55, 3)) +>r1a11 : boolean >a11 < b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r1a12 = a12 < b12; var r1b1 = b1 < a1; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 58, 3)) +>r1b1 : boolean >b1 < a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r1b2 = b2 < a2; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 59, 3)) +>r1b2 : boolean >b2 < a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r1b3 = b3 < a3; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 60, 3)) +>r1b3 : boolean >b3 < a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r1b4 = b4 < a4; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 61, 3)) +>r1b4 : boolean >b4 < a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r1b5 = b5 < a5; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 62, 3)) +>r1b5 : boolean >b5 < a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r1b6 = b6 < a6; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 63, 3)) +>r1b6 : boolean >b6 < a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r1b7 = b7 < a7; ->r1b7 : boolean, Symbol(r1b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 64, 3)) +>r1b7 : boolean >b7 < a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r1b8 = b8 < a8; ->r1b8 : boolean, Symbol(r1b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 65, 3)) +>r1b8 : boolean >b8 < a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r1b9 = b9 < a9; ->r1b9 : boolean, Symbol(r1b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 66, 3)) +>r1b9 : boolean >b9 < a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r1b10 = b10 < a10; ->r1b10 : boolean, Symbol(r1b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 67, 3)) +>r1b10 : boolean >b10 < a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r1b11 = b11 < a11; ->r1b11 : boolean, Symbol(r1b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 68, 3)) +>r1b11 : boolean >b11 < a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r1b12 = b12 < a12; // operator > var r2a1 = a1 > b1; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 72, 3)) +>r2a1 : boolean >a1 > b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r2a2 = a2 > b2; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 73, 3)) +>r2a2 : boolean >a2 > b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r2a3 = a3 > b3; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 74, 3)) +>r2a3 : boolean >a3 > b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r2a4 = a4 > b4; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 75, 3)) +>r2a4 : boolean >a4 > b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r2a5 = a5 > b5; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 76, 3)) +>r2a5 : boolean >a5 > b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r2a6 = a6 > b6; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 77, 3)) +>r2a6 : boolean >a6 > b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r2a7 = a7 > b7; ->r2a7 : boolean, Symbol(r2a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 78, 3)) +>r2a7 : boolean >a7 > b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r2a8 = a8 > b8; ->r2a8 : boolean, Symbol(r2a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 79, 3)) +>r2a8 : boolean >a8 > b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r2a9 = a9 > b9; ->r2a9 : boolean, Symbol(r2a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 80, 3)) +>r2a9 : boolean >a9 > b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r2a10 = a10 > b10; ->r2a10 : boolean, Symbol(r2a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 81, 3)) +>r2a10 : boolean >a10 > b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r2a11 = a11 > b11; ->r2a11 : boolean, Symbol(r2a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 82, 3)) +>r2a11 : boolean >a11 > b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r2a12 = a12 > b12; var r2b1 = b1 > a1; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 85, 3)) +>r2b1 : boolean >b1 > a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r2b2 = b2 > a2; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 86, 3)) +>r2b2 : boolean >b2 > a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r2b3 = b3 > a3; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 87, 3)) +>r2b3 : boolean >b3 > a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r2b4 = b4 > a4; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 88, 3)) +>r2b4 : boolean >b4 > a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r2b5 = b5 > a5; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 89, 3)) +>r2b5 : boolean >b5 > a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r2b6 = b6 > a6; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 90, 3)) +>r2b6 : boolean >b6 > a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r2b7 = b7 > a7; ->r2b7 : boolean, Symbol(r2b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 91, 3)) +>r2b7 : boolean >b7 > a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r2b8 = b8 > a8; ->r2b8 : boolean, Symbol(r2b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 92, 3)) +>r2b8 : boolean >b8 > a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r2b9 = b9 > a9; ->r2b9 : boolean, Symbol(r2b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 93, 3)) +>r2b9 : boolean >b9 > a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r2b10 = b10 > a10; ->r2b10 : boolean, Symbol(r2b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 94, 3)) +>r2b10 : boolean >b10 > a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r2b11 = b11 > a11; ->r2b11 : boolean, Symbol(r2b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 95, 3)) +>r2b11 : boolean >b11 > a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r2b12 = b12 > a12; // operator <= var r3a1 = a1 <= b1; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 99, 3)) +>r3a1 : boolean >a1 <= b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r3a2 = a2 <= b2; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 100, 3)) +>r3a2 : boolean >a2 <= b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r3a3 = a3 <= b3; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 101, 3)) +>r3a3 : boolean >a3 <= b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r3a4 = a4 <= b4; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 102, 3)) +>r3a4 : boolean >a4 <= b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r3a5 = a5 <= b5; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 103, 3)) +>r3a5 : boolean >a5 <= b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r3a6 = a6 <= b6; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 104, 3)) +>r3a6 : boolean >a6 <= b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r3a7 = a7 <= b7; ->r3a7 : boolean, Symbol(r3a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 105, 3)) +>r3a7 : boolean >a7 <= b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r3a8 = a8 <= b8; ->r3a8 : boolean, Symbol(r3a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 106, 3)) +>r3a8 : boolean >a8 <= b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r3a9 = a9 <= b9; ->r3a9 : boolean, Symbol(r3a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 107, 3)) +>r3a9 : boolean >a9 <= b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r3a10 = a10 <= b10; ->r3a10 : boolean, Symbol(r3a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 108, 3)) +>r3a10 : boolean >a10 <= b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r3a11 = a11 <= b11; ->r3a11 : boolean, Symbol(r3a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 109, 3)) +>r3a11 : boolean >a11 <= b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r3a12 = a12 <= b12; var r3b1 = b1 <= a1; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 112, 3)) +>r3b1 : boolean >b1 <= a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r3b2 = b2 <= a2; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 113, 3)) +>r3b2 : boolean >b2 <= a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r3b3 = b3 <= a3; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 114, 3)) +>r3b3 : boolean >b3 <= a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r3b4 = b4 <= a4; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 115, 3)) +>r3b4 : boolean >b4 <= a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r3b5 = b5 <= a5; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 116, 3)) +>r3b5 : boolean >b5 <= a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r3b6 = b6 <= a6; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 117, 3)) +>r3b6 : boolean >b6 <= a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r3b7 = b7 <= a7; ->r3b7 : boolean, Symbol(r3b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 118, 3)) +>r3b7 : boolean >b7 <= a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r3b8 = b8 <= a8; ->r3b8 : boolean, Symbol(r3b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 119, 3)) +>r3b8 : boolean >b8 <= a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r3b9 = b9 <= a9; ->r3b9 : boolean, Symbol(r3b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 120, 3)) +>r3b9 : boolean >b9 <= a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r3b10 = b10 <= a10; ->r3b10 : boolean, Symbol(r3b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 121, 3)) +>r3b10 : boolean >b10 <= a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r3b11 = b11 <= a11; ->r3b11 : boolean, Symbol(r3b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 122, 3)) +>r3b11 : boolean >b11 <= a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r3b12 = b12 <= a12; // operator >= var r4a1 = a1 >= b1; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 126, 3)) +>r4a1 : boolean >a1 >= b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r4a2 = a2 >= b2; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 127, 3)) +>r4a2 : boolean >a2 >= b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r4a3 = a3 >= b3; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 128, 3)) +>r4a3 : boolean >a3 >= b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r4a4 = a4 >= b4; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 129, 3)) +>r4a4 : boolean >a4 >= b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r4a5 = a5 >= b5; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 130, 3)) +>r4a5 : boolean >a5 >= b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r4a6 = a6 >= b6; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 131, 3)) +>r4a6 : boolean >a6 >= b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r4a7 = a7 >= b7; ->r4a7 : boolean, Symbol(r4a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 132, 3)) +>r4a7 : boolean >a7 >= b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r4a8 = a8 >= b8; ->r4a8 : boolean, Symbol(r4a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 133, 3)) +>r4a8 : boolean >a8 >= b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r4a9 = a9 >= b9; ->r4a9 : boolean, Symbol(r4a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 134, 3)) +>r4a9 : boolean >a9 >= b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r4a10 = a10 >= b10; ->r4a10 : boolean, Symbol(r4a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 135, 3)) +>r4a10 : boolean >a10 >= b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r4a11 = a11 >= b11; ->r4a11 : boolean, Symbol(r4a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 136, 3)) +>r4a11 : boolean >a11 >= b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r4a12 = a12 >= b12; var r4b1 = b1 >= a1; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 139, 3)) +>r4b1 : boolean >b1 >= a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r4b2 = b2 >= a2; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 140, 3)) +>r4b2 : boolean >b2 >= a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r4b3 = b3 >= a3; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 141, 3)) +>r4b3 : boolean >b3 >= a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r4b4 = b4 >= a4; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 142, 3)) +>r4b4 : boolean >b4 >= a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r4b5 = b5 >= a5; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 143, 3)) +>r4b5 : boolean >b5 >= a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r4b6 = b6 >= a6; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 144, 3)) +>r4b6 : boolean >b6 >= a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r4b7 = b7 >= a7; ->r4b7 : boolean, Symbol(r4b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 145, 3)) +>r4b7 : boolean >b7 >= a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r4b8 = b8 >= a8; ->r4b8 : boolean, Symbol(r4b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 146, 3)) +>r4b8 : boolean >b8 >= a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r4b9 = b9 >= a9; ->r4b9 : boolean, Symbol(r4b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 147, 3)) +>r4b9 : boolean >b9 >= a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r4b10 = b10 >= a10; ->r4b10 : boolean, Symbol(r4b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 148, 3)) +>r4b10 : boolean >b10 >= a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r4b11 = b11 >= a11; ->r4b11 : boolean, Symbol(r4b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 149, 3)) +>r4b11 : boolean >b11 >= a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r4b12 = b12 >= a12; // operator == var r5a1 = a1 == b1; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 153, 3)) +>r5a1 : boolean >a1 == b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r5a2 = a2 == b2; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 154, 3)) +>r5a2 : boolean >a2 == b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r5a3 = a3 == b3; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 155, 3)) +>r5a3 : boolean >a3 == b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r5a4 = a4 == b4; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 156, 3)) +>r5a4 : boolean >a4 == b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r5a5 = a5 == b5; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 157, 3)) +>r5a5 : boolean >a5 == b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r5a6 = a6 == b6; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 158, 3)) +>r5a6 : boolean >a6 == b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r5a7 = a7 == b7; ->r5a7 : boolean, Symbol(r5a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 159, 3)) +>r5a7 : boolean >a7 == b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r5a8 = a8 == b8; ->r5a8 : boolean, Symbol(r5a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 160, 3)) +>r5a8 : boolean >a8 == b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r5a9 = a9 == b9; ->r5a9 : boolean, Symbol(r5a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 161, 3)) +>r5a9 : boolean >a9 == b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r5a10 = a10 == b10; ->r5a10 : boolean, Symbol(r5a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 162, 3)) +>r5a10 : boolean >a10 == b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r5a11 = a11 == b11; ->r5a11 : boolean, Symbol(r5a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 163, 3)) +>r5a11 : boolean >a11 == b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r5a12 = a12 == b12; var r5b1 = b1 == a1; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 166, 3)) +>r5b1 : boolean >b1 == a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r5b2 = b2 == a2; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 167, 3)) +>r5b2 : boolean >b2 == a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r5b3 = b3 == a3; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 168, 3)) +>r5b3 : boolean >b3 == a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r5b4 = b4 == a4; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 169, 3)) +>r5b4 : boolean >b4 == a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r5b5 = b5 == a5; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 170, 3)) +>r5b5 : boolean >b5 == a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r5b6 = b6 == a6; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 171, 3)) +>r5b6 : boolean >b6 == a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r5b7 = b7 == a7; ->r5b7 : boolean, Symbol(r5b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 172, 3)) +>r5b7 : boolean >b7 == a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r5b8 = b8 == a8; ->r5b8 : boolean, Symbol(r5b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 173, 3)) +>r5b8 : boolean >b8 == a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r5b9 = b9 == a9; ->r5b9 : boolean, Symbol(r5b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 174, 3)) +>r5b9 : boolean >b9 == a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r5b10 = b10 == a10; ->r5b10 : boolean, Symbol(r5b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 175, 3)) +>r5b10 : boolean >b10 == a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r5b11 = b11 == a11; ->r5b11 : boolean, Symbol(r5b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 176, 3)) +>r5b11 : boolean >b11 == a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r5b12 = b12 == a12; // operator != var r6a1 = a1 != b1; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 180, 3)) +>r6a1 : boolean >a1 != b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r6a2 = a2 != b2; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 181, 3)) +>r6a2 : boolean >a2 != b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r6a3 = a3 != b3; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 182, 3)) +>r6a3 : boolean >a3 != b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r6a4 = a4 != b4; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 183, 3)) +>r6a4 : boolean >a4 != b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r6a5 = a5 != b5; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 184, 3)) +>r6a5 : boolean >a5 != b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r6a6 = a6 != b6; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 185, 3)) +>r6a6 : boolean >a6 != b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r6a7 = a7 != b7; ->r6a7 : boolean, Symbol(r6a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 186, 3)) +>r6a7 : boolean >a7 != b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r6a8 = a8 != b8; ->r6a8 : boolean, Symbol(r6a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 187, 3)) +>r6a8 : boolean >a8 != b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r6a9 = a9 != b9; ->r6a9 : boolean, Symbol(r6a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 188, 3)) +>r6a9 : boolean >a9 != b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r6a10 = a10 != b10; ->r6a10 : boolean, Symbol(r6a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 189, 3)) +>r6a10 : boolean >a10 != b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r6a11 = a11 != b11; ->r6a11 : boolean, Symbol(r6a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 190, 3)) +>r6a11 : boolean >a11 != b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r6a12 = a12 != b12; var r6b1 = b1 != a1; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 193, 3)) +>r6b1 : boolean >b1 != a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r6b2 = b2 != a2; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 194, 3)) +>r6b2 : boolean >b2 != a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r6b3 = b3 != a3; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 195, 3)) +>r6b3 : boolean >b3 != a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r6b4 = b4 != a4; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 196, 3)) +>r6b4 : boolean >b4 != a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r6b5 = b5 != a5; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 197, 3)) +>r6b5 : boolean >b5 != a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r6b6 = b6 != a6; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 198, 3)) +>r6b6 : boolean >b6 != a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r6b7 = b7 != a7; ->r6b7 : boolean, Symbol(r6b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 199, 3)) +>r6b7 : boolean >b7 != a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r6b8 = b8 != a8; ->r6b8 : boolean, Symbol(r6b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 200, 3)) +>r6b8 : boolean >b8 != a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r6b9 = b9 != a9; ->r6b9 : boolean, Symbol(r6b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 201, 3)) +>r6b9 : boolean >b9 != a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r6b10 = b10 != a10; ->r6b10 : boolean, Symbol(r6b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 202, 3)) +>r6b10 : boolean >b10 != a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r6b11 = b11 != a11; ->r6b11 : boolean, Symbol(r6b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 203, 3)) +>r6b11 : boolean >b11 != a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r6b12 = b12 != a12; // operator === var r7a1 = a1 === b1; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 207, 3)) +>r7a1 : boolean >a1 === b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r7a2 = a2 === b2; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 208, 3)) +>r7a2 : boolean >a2 === b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r7a3 = a3 === b3; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 209, 3)) +>r7a3 : boolean >a3 === b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r7a4 = a4 === b4; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 210, 3)) +>r7a4 : boolean >a4 === b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r7a5 = a5 === b5; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 211, 3)) +>r7a5 : boolean >a5 === b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r7a6 = a6 === b6; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 212, 3)) +>r7a6 : boolean >a6 === b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r7a7 = a7 === b7; ->r7a7 : boolean, Symbol(r7a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 213, 3)) +>r7a7 : boolean >a7 === b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r7a8 = a8 === b8; ->r7a8 : boolean, Symbol(r7a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 214, 3)) +>r7a8 : boolean >a8 === b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r7a9 = a9 === b9; ->r7a9 : boolean, Symbol(r7a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 215, 3)) +>r7a9 : boolean >a9 === b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r7a10 = a10 === b10; ->r7a10 : boolean, Symbol(r7a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 216, 3)) +>r7a10 : boolean >a10 === b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r7a11 = a11 === b11; ->r7a11 : boolean, Symbol(r7a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 217, 3)) +>r7a11 : boolean >a11 === b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r7a12 = a12 === b12; var r7b1 = b1 === a1; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 220, 3)) +>r7b1 : boolean >b1 === a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r7b2 = b2 === a2; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 221, 3)) +>r7b2 : boolean >b2 === a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r7b3 = b3 === a3; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 222, 3)) +>r7b3 : boolean >b3 === a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r7b4 = b4 === a4; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 223, 3)) +>r7b4 : boolean >b4 === a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r7b5 = b5 === a5; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 224, 3)) +>r7b5 : boolean >b5 === a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r7b6 = b6 === a6; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 225, 3)) +>r7b6 : boolean >b6 === a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r7b7 = b7 === a7; ->r7b7 : boolean, Symbol(r7b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 226, 3)) +>r7b7 : boolean >b7 === a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r7b8 = b8 === a8; ->r7b8 : boolean, Symbol(r7b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 227, 3)) +>r7b8 : boolean >b8 === a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r7b9 = b9 === a9; ->r7b9 : boolean, Symbol(r7b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 228, 3)) +>r7b9 : boolean >b9 === a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r7b10 = b10 === a10; ->r7b10 : boolean, Symbol(r7b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 229, 3)) +>r7b10 : boolean >b10 === a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r7b11 = b11 === a11; ->r7b11 : boolean, Symbol(r7b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 230, 3)) +>r7b11 : boolean >b11 === a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r7b12 = b12 === a12; // operator !== var r8a1 = a1 !== b1; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 234, 3)) +>r8a1 : boolean >a1 !== b1 : boolean ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) +>a1 : { fn(): void; } +>b1 : { fn(): void; } var r8a2 = a2 !== b2; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 235, 3)) +>r8a2 : boolean >a2 !== b2 : boolean ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) +>a2 : { fn(a: number, b: string): void; } +>b2 : { fn(a: number, b: string): void; } var r8a3 = a3 !== b3; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 236, 3)) +>r8a3 : boolean >a3 !== b3 : boolean ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) +>a3 : { fn(a: number, b: string): void; } +>b3 : { fn(a: number): void; } var r8a4 = a4 !== b4; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 237, 3)) +>r8a4 : boolean >a4 !== b4 : boolean ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) +>a4 : { fn(a: number, b: string): void; } +>b4 : { fn(): void; } var r8a5 = a5 !== b5; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 238, 3)) +>r8a5 : boolean >a5 !== b5 : boolean ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) +>a5 : { fn(a: Base): void; } +>b5 : { fn(a: Derived): void; } var r8a6 = a6 !== b6; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 239, 3)) +>r8a6 : boolean >a6 !== b6 : boolean ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) +>a6 : { fn(a: Derived, b: Base): void; } +>b6 : { fn(a: Base, b: Derived): void; } var r8a7 = a7 !== b7; ->r8a7 : boolean, Symbol(r8a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 240, 3)) +>r8a7 : boolean >a7 !== b7 : boolean ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) +>a7 : { fn(): void; } +>b7 : { fn(): Base; } var r8a8 = a8 !== b8; ->r8a8 : boolean, Symbol(r8a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 241, 3)) +>r8a8 : boolean >a8 !== b8 : boolean ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) +>a8 : { fn(): Base; } +>b8 : { fn(): Base; } var r8a9 = a9 !== b9; ->r8a9 : boolean, Symbol(r8a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 242, 3)) +>r8a9 : boolean >a9 !== b9 : boolean ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) +>a9 : { fn(): Base; } +>b9 : { fn(): Derived; } var r8a10 = a10 !== b10; ->r8a10 : boolean, Symbol(r8a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 243, 3)) +>r8a10 : boolean >a10 !== b10 : boolean ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) +>a10 : { fn(a?: Base): void; } +>b10 : { fn(a?: Derived): void; } var r8a11 = a11 !== b11; ->r8a11 : boolean, Symbol(r8a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 244, 3)) +>r8a11 : boolean >a11 !== b11 : boolean ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) +>a11 : { fn(...a: Base[]): void; } +>b11 : { fn(...a: Derived[]): void; } //var r8a12 = a12 !== b12; var r8b1 = b1 !== a1; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 247, 3)) +>r8b1 : boolean >b1 !== a1 : boolean ->b1 : { fn(): void; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 9, 3)) ->a1 : { fn(): void; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 8, 3)) +>b1 : { fn(): void; } +>a1 : { fn(): void; } var r8b2 = b2 !== a2; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 248, 3)) +>r8b2 : boolean >b2 !== a2 : boolean ->b2 : { fn(a: number, b: string): void; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 12, 3)) ->a2 : { fn(a: number, b: string): void; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 11, 3)) +>b2 : { fn(a: number, b: string): void; } +>a2 : { fn(a: number, b: string): void; } var r8b3 = b3 !== a3; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 249, 3)) +>r8b3 : boolean >b3 !== a3 : boolean ->b3 : { fn(a: number): void; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 15, 3)) ->a3 : { fn(a: number, b: string): void; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 14, 3)) +>b3 : { fn(a: number): void; } +>a3 : { fn(a: number, b: string): void; } var r8b4 = b4 !== a4; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 250, 3)) +>r8b4 : boolean >b4 !== a4 : boolean ->b4 : { fn(): void; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 18, 3)) ->a4 : { fn(a: number, b: string): void; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 17, 3)) +>b4 : { fn(): void; } +>a4 : { fn(a: number, b: string): void; } var r8b5 = b5 !== a5; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 251, 3)) +>r8b5 : boolean >b5 !== a5 : boolean ->b5 : { fn(a: Derived): void; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 21, 3)) ->a5 : { fn(a: Base): void; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 20, 3)) +>b5 : { fn(a: Derived): void; } +>a5 : { fn(a: Base): void; } var r8b6 = b6 !== a6; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 252, 3)) +>r8b6 : boolean >b6 !== a6 : boolean ->b6 : { fn(a: Base, b: Derived): void; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 24, 3)) ->a6 : { fn(a: Derived, b: Base): void; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 23, 3)) +>b6 : { fn(a: Base, b: Derived): void; } +>a6 : { fn(a: Derived, b: Base): void; } var r8b7 = b7 !== a7; ->r8b7 : boolean, Symbol(r8b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 253, 3)) +>r8b7 : boolean >b7 !== a7 : boolean ->b7 : { fn(): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 27, 3)) ->a7 : { fn(): void; }, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 26, 3)) +>b7 : { fn(): Base; } +>a7 : { fn(): void; } var r8b8 = b8 !== a8; ->r8b8 : boolean, Symbol(r8b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 254, 3)) +>r8b8 : boolean >b8 !== a8 : boolean ->b8 : { fn(): Base; }, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 30, 3)) ->a8 : { fn(): Base; }, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 29, 3)) +>b8 : { fn(): Base; } +>a8 : { fn(): Base; } var r8b9 = b9 !== a9; ->r8b9 : boolean, Symbol(r8b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 255, 3)) +>r8b9 : boolean >b9 !== a9 : boolean ->b9 : { fn(): Derived; }, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 33, 3)) ->a9 : { fn(): Base; }, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 32, 3)) +>b9 : { fn(): Derived; } +>a9 : { fn(): Base; } var r8b10 = b10 !== a10; ->r8b10 : boolean, Symbol(r8b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 256, 3)) +>r8b10 : boolean >b10 !== a10 : boolean ->b10 : { fn(a?: Derived): void; }, Symbol(b10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 36, 3)) ->a10 : { fn(a?: Base): void; }, Symbol(a10, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 35, 3)) +>b10 : { fn(a?: Derived): void; } +>a10 : { fn(a?: Base): void; } var r8b11 = b11 !== a11; ->r8b11 : boolean, Symbol(r8b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 257, 3)) +>r8b11 : boolean >b11 !== a11 : boolean ->b11 : { fn(...a: Derived[]): void; }, Symbol(b11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 39, 3)) ->a11 : { fn(...a: Base[]): void; }, Symbol(a11, Decl(comparisonOperatorWithSubtypeObjectOnCallSignature.ts, 38, 3)) +>b11 : { fn(...a: Derived[]): void; } +>a11 : { fn(...a: Base[]): void; } //var r8b12 = b12 !== a12; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.symbols new file mode 100644 index 0000000000000..6dd08fc05293a --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.symbols @@ -0,0 +1,879 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts === +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 12)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + + public b: string; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 4, 28)) +} + +var a1: { new (): Base }; +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b1: { new (): Base }; +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a2: { new (a: number, b: string): Base }; +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 15)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 25)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b2: { new (a: number, b: string): Base }; +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 15)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 25)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a3: { new (a: number, b: string): Base }; +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 15)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 25)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b3: { new (a: number): Base }; +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 15)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a4: { new (a: number, b: string): Base }; +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 15)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 25)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b4: { new (): Base }; +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a5: { new (a: Base): Base }; +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 15)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b5: { new (a: Derived): Base }; +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 15)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a6: { new (a: Derived, b: Base): Base }; +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 15)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 26)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b6: { new (a: Base, b: Derived): Base }; +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 15)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 23)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a7: { new (): Base }; +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b7: { new (): Derived }; +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) + +var a8: { new (a?: Base): Base }; +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 15)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b8: { new (a?: Derived): Base }; +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 15)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var a9: { new (...a: Base[]): Base }; +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 15)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +var b9: { new (...a: Derived[]): Base }; +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 15)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) + +//var a10: { (t: T, u: U): T[] }; +//var b10: { (a: A, b: B): A[] }; + +// operator < +var r1a1 = a1 < b1; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 39, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r1a2 = a2 < b2; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 40, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r1a3 = a3 < b3; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 41, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r1a4 = a4 < b4; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 42, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r1a5 = a5 < b5; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 43, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r1a6 = a6 < b6; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 44, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r1a7 = a7 < b7; +>r1a7 : Symbol(r1a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 45, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r1a8 = a8 < b8; +>r1a8 : Symbol(r1a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 46, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r1a9 = a9 < b9; +>r1a9 : Symbol(r1a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 47, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r1a10 = a10 < b10; + +var r1b1 = b1 < a1; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 50, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r1b2 = b2 < a2; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 51, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r1b3 = b3 < a3; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 52, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r1b4 = b4 < a4; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 53, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r1b5 = b5 < a5; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 54, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r1b6 = b6 < a6; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 55, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r1b7 = b7 < a7; +>r1b7 : Symbol(r1b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 56, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r1b8 = b8 < a8; +>r1b8 : Symbol(r1b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 57, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r1b9 = b9 < a9; +>r1b9 : Symbol(r1b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 58, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r1b10 = b10 < a10; + +// operator > +var r2a1 = a1 > b1; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 62, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r2a2 = a2 > b2; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 63, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r2a3 = a3 > b3; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 64, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r2a4 = a4 > b4; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 65, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r2a5 = a5 > b5; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 66, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r2a6 = a6 > b6; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 67, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r2a7 = a7 > b7; +>r2a7 : Symbol(r2a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 68, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r2a8 = a8 > b8; +>r2a8 : Symbol(r2a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 69, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r2a9 = a9 > b9; +>r2a9 : Symbol(r2a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 70, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r2a10 = a10 > b10; + +var r2b1 = b1 > a1; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 73, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r2b2 = b2 > a2; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 74, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r2b3 = b3 > a3; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 75, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r2b4 = b4 > a4; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 76, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r2b5 = b5 > a5; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 77, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r2b6 = b6 > a6; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 78, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r2b7 = b7 > a7; +>r2b7 : Symbol(r2b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 79, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r2b8 = b8 > a8; +>r2b8 : Symbol(r2b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 80, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r2b9 = b9 > a9; +>r2b9 : Symbol(r2b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 81, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r2b10 = b10 > a10; + +// operator <= +var r3a1 = a1 <= b1; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 85, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r3a2 = a2 <= b2; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 86, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r3a3 = a3 <= b3; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 87, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r3a4 = a4 <= b4; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 88, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r3a5 = a5 <= b5; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 89, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r3a6 = a6 <= b6; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 90, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r3a7 = a7 <= b7; +>r3a7 : Symbol(r3a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 91, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r3a8 = a8 <= b8; +>r3a8 : Symbol(r3a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 92, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r3a9 = a9 <= b9; +>r3a9 : Symbol(r3a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 93, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r3a10 = a10 <= b10; + +var r3b1 = b1 <= a1; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 96, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r3b2 = b2 <= a2; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 97, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r3b3 = b3 <= a3; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 98, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r3b4 = b4 <= a4; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 99, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r3b5 = b5 <= a5; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 100, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r3b6 = b6 <= a6; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 101, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r3b7 = b7 <= a7; +>r3b7 : Symbol(r3b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 102, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r3b8 = b8 <= a8; +>r3b8 : Symbol(r3b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 103, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r3b9 = b9 <= a9; +>r3b9 : Symbol(r3b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 104, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r3b10 = b10 <= a10; + +// operator >= +var r4a1 = a1 >= b1; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 108, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r4a2 = a2 >= b2; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 109, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r4a3 = a3 >= b3; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 110, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r4a4 = a4 >= b4; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 111, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r4a5 = a5 >= b5; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 112, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r4a6 = a6 >= b6; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 113, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r4a7 = a7 >= b7; +>r4a7 : Symbol(r4a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 114, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r4a8 = a8 >= b8; +>r4a8 : Symbol(r4a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 115, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r4a9 = a9 >= b9; +>r4a9 : Symbol(r4a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 116, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r4a10 = a10 >= b10; + +var r4b1 = b1 >= a1; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 119, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r4b2 = b2 >= a2; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 120, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r4b3 = b3 >= a3; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 121, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r4b4 = b4 >= a4; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 122, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r4b5 = b5 >= a5; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 123, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r4b6 = b6 >= a6; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 124, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r4b7 = b7 >= a7; +>r4b7 : Symbol(r4b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 125, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r4b8 = b8 >= a8; +>r4b8 : Symbol(r4b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 126, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r4b9 = b9 >= a9; +>r4b9 : Symbol(r4b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 127, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r4b10 = b10 >= a10; + +// operator == +var r5a1 = a1 == b1; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 131, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r5a2 = a2 == b2; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 132, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r5a3 = a3 == b3; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 133, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r5a4 = a4 == b4; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 134, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r5a5 = a5 == b5; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 135, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r5a6 = a6 == b6; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 136, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r5a7 = a7 == b7; +>r5a7 : Symbol(r5a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 137, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r5a8 = a8 == b8; +>r5a8 : Symbol(r5a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 138, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r5a9 = a9 == b9; +>r5a9 : Symbol(r5a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 139, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r5a10 = a10 == b10; + +var r5b1 = b1 == a1; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 142, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r5b2 = b2 == a2; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 143, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r5b3 = b3 == a3; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 144, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r5b4 = b4 == a4; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 145, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r5b5 = b5 == a5; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 146, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r5b6 = b6 == a6; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 147, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r5b7 = b7 == a7; +>r5b7 : Symbol(r5b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 148, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r5b8 = b8 == a8; +>r5b8 : Symbol(r5b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 149, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r5b9 = b9 == a9; +>r5b9 : Symbol(r5b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 150, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r5b10 = b10 == a10; + +// operator != +var r6a1 = a1 != b1; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 154, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r6a2 = a2 != b2; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 155, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r6a3 = a3 != b3; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 156, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r6a4 = a4 != b4; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 157, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r6a5 = a5 != b5; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 158, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r6a6 = a6 != b6; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 159, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r6a7 = a7 != b7; +>r6a7 : Symbol(r6a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 160, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r6a8 = a8 != b8; +>r6a8 : Symbol(r6a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 161, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r6a9 = a9 != b9; +>r6a9 : Symbol(r6a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 162, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r6a10 = a10 != b10; + +var r6b1 = b1 != a1; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 165, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r6b2 = b2 != a2; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 166, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r6b3 = b3 != a3; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 167, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r6b4 = b4 != a4; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 168, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r6b5 = b5 != a5; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 169, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r6b6 = b6 != a6; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 170, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r6b7 = b7 != a7; +>r6b7 : Symbol(r6b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 171, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r6b8 = b8 != a8; +>r6b8 : Symbol(r6b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 172, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r6b9 = b9 != a9; +>r6b9 : Symbol(r6b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 173, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r6b10 = b10 != a10; + +// operator === +var r7a1 = a1 === b1; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 177, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r7a2 = a2 === b2; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 178, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r7a3 = a3 === b3; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 179, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r7a4 = a4 === b4; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 180, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r7a5 = a5 === b5; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 181, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r7a6 = a6 === b6; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 182, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r7a7 = a7 === b7; +>r7a7 : Symbol(r7a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 183, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r7a8 = a8 === b8; +>r7a8 : Symbol(r7a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 184, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r7a9 = a9 === b9; +>r7a9 : Symbol(r7a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 185, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r7a10 = a10 === b10; + +var r7b1 = b1 === a1; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 188, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r7b2 = b2 === a2; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 189, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r7b3 = b3 === a3; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 190, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r7b4 = b4 === a4; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 191, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r7b5 = b5 === a5; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 192, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r7b6 = b6 === a6; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 193, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r7b7 = b7 === a7; +>r7b7 : Symbol(r7b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 194, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r7b8 = b8 === a8; +>r7b8 : Symbol(r7b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 195, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r7b9 = b9 === a9; +>r7b9 : Symbol(r7b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 196, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r7b10 = b10 === a10; + +// operator !== +var r8a1 = a1 !== b1; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 200, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) + +var r8a2 = a2 !== b2; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 201, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) + +var r8a3 = a3 !== b3; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 202, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) + +var r8a4 = a4 !== b4; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 203, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) + +var r8a5 = a5 !== b5; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 204, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) + +var r8a6 = a6 !== b6; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 205, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) + +var r8a7 = a7 !== b7; +>r8a7 : Symbol(r8a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 206, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) + +var r8a8 = a8 !== b8; +>r8a8 : Symbol(r8a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 207, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) + +var r8a9 = a9 !== b9; +>r8a9 : Symbol(r8a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 208, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) + +//var r8a10 = a10 !== b10; + +var r8b1 = b1 !== a1; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 211, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) + +var r8b2 = b2 !== a2; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 212, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) + +var r8b3 = b3 !== a3; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 213, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) + +var r8b4 = b4 !== a4; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 214, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) + +var r8b5 = b5 !== a5; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 215, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) + +var r8b6 = b6 !== a6; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 216, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) + +var r8b7 = b7 !== a7; +>r8b7 : Symbol(r8b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 217, 3)) +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) + +var r8b8 = b8 !== a8; +>r8b8 : Symbol(r8b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 218, 3)) +>b8 : Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) + +var r8b9 = b9 !== a9; +>r8b9 : Symbol(r8b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 219, 3)) +>b9 : Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) + +//var r8b10 = b10 !== a10; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.types index b9632a5807aec..737c13f183cb1 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnConstructorSignature.types @@ -1,1023 +1,1023 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts === class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>Base : Base public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 12)) +>a : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>Derived : Derived +>Base : Base public b: string; ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 4, 28)) +>b : string } var a1: { new (): Base }; ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a1 : new () => Base +>Base : Base var b1: { new (): Base }; ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b1 : new () => Base +>Base : Base var a2: { new (a: number, b: string): Base }; ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 15)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 25)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a2 : new (a: number, b: string) => Base +>a : number +>b : string +>Base : Base var b2: { new (a: number, b: string): Base }; ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 15)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 25)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b2 : new (a: number, b: string) => Base +>a : number +>b : string +>Base : Base var a3: { new (a: number, b: string): Base }; ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 15)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 25)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a3 : new (a: number, b: string) => Base +>a : number +>b : string +>Base : Base var b3: { new (a: number): Base }; ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 15)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b3 : new (a: number) => Base +>a : number +>Base : Base var a4: { new (a: number, b: string): Base }; ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->a : number, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 15)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 25)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a4 : new (a: number, b: string) => Base +>a : number +>b : string +>Base : Base var b4: { new (): Base }; ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b4 : new () => Base +>Base : Base var a5: { new (a: Base): Base }; ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 15)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a5 : new (a: Base) => Base +>a : Base +>Base : Base +>Base : Base var b5: { new (a: Derived): Base }; ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a : Derived, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 15)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b5 : new (a: Derived) => Base +>a : Derived +>Derived : Derived +>Base : Base var a6: { new (a: Derived, b: Base): Base }; ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->a : Derived, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 15)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) ->b : Base, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 26)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a6 : new (a: Derived, b: Base) => Base +>a : Derived +>Derived : Derived +>b : Base +>Base : Base +>Base : Base var b6: { new (a: Base, b: Derived): Base }; ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 15)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) ->b : Derived, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 23)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b6 : new (a: Base, b: Derived) => Base +>a : Base +>Base : Base +>b : Derived +>Derived : Derived +>Base : Base var a7: { new (): Base }; ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a7 : new () => Base +>Base : Base var b7: { new (): Derived }; ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) +>b7 : new () => Derived +>Derived : Derived var a8: { new (a?: Base): Base }; ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 15)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a8 : new (a?: Base) => Base +>a : Base +>Base : Base +>Base : Base var b8: { new (a?: Derived): Base }; ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a : Derived, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 15)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b8 : new (a?: Derived) => Base +>a : Derived +>Derived : Derived +>Base : Base var a9: { new (...a: Base[]): Base }; ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->a : Base[], Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 15)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>a9 : new (...a: Base[]) => Base +>a : Base[] +>Base : Base +>Base : Base var b9: { new (...a: Derived[]): Base }; ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a : Derived[], Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 15)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 0, 0)) +>b9 : new (...a: Derived[]) => Base +>a : Derived[] +>Derived : Derived +>Base : Base //var a10: { (t: T, u: U): T[] }; //var b10: { (a: A, b: B): A[] }; // operator < var r1a1 = a1 < b1; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 39, 3)) +>r1a1 : boolean >a1 < b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r1a2 = a2 < b2; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 40, 3)) +>r1a2 : boolean >a2 < b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r1a3 = a3 < b3; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 41, 3)) +>r1a3 : boolean >a3 < b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r1a4 = a4 < b4; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 42, 3)) +>r1a4 : boolean >a4 < b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r1a5 = a5 < b5; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 43, 3)) +>r1a5 : boolean >a5 < b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r1a6 = a6 < b6; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 44, 3)) +>r1a6 : boolean >a6 < b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r1a7 = a7 < b7; ->r1a7 : boolean, Symbol(r1a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 45, 3)) +>r1a7 : boolean >a7 < b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r1a8 = a8 < b8; ->r1a8 : boolean, Symbol(r1a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 46, 3)) +>r1a8 : boolean >a8 < b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r1a9 = a9 < b9; ->r1a9 : boolean, Symbol(r1a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 47, 3)) +>r1a9 : boolean >a9 < b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r1a10 = a10 < b10; var r1b1 = b1 < a1; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 50, 3)) +>r1b1 : boolean >b1 < a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r1b2 = b2 < a2; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 51, 3)) +>r1b2 : boolean >b2 < a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r1b3 = b3 < a3; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 52, 3)) +>r1b3 : boolean >b3 < a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r1b4 = b4 < a4; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 53, 3)) +>r1b4 : boolean >b4 < a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r1b5 = b5 < a5; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 54, 3)) +>r1b5 : boolean >b5 < a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r1b6 = b6 < a6; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 55, 3)) +>r1b6 : boolean >b6 < a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r1b7 = b7 < a7; ->r1b7 : boolean, Symbol(r1b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 56, 3)) +>r1b7 : boolean >b7 < a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r1b8 = b8 < a8; ->r1b8 : boolean, Symbol(r1b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 57, 3)) +>r1b8 : boolean >b8 < a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r1b9 = b9 < a9; ->r1b9 : boolean, Symbol(r1b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 58, 3)) +>r1b9 : boolean >b9 < a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r1b10 = b10 < a10; // operator > var r2a1 = a1 > b1; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 62, 3)) +>r2a1 : boolean >a1 > b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r2a2 = a2 > b2; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 63, 3)) +>r2a2 : boolean >a2 > b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r2a3 = a3 > b3; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 64, 3)) +>r2a3 : boolean >a3 > b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r2a4 = a4 > b4; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 65, 3)) +>r2a4 : boolean >a4 > b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r2a5 = a5 > b5; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 66, 3)) +>r2a5 : boolean >a5 > b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r2a6 = a6 > b6; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 67, 3)) +>r2a6 : boolean >a6 > b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r2a7 = a7 > b7; ->r2a7 : boolean, Symbol(r2a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 68, 3)) +>r2a7 : boolean >a7 > b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r2a8 = a8 > b8; ->r2a8 : boolean, Symbol(r2a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 69, 3)) +>r2a8 : boolean >a8 > b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r2a9 = a9 > b9; ->r2a9 : boolean, Symbol(r2a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 70, 3)) +>r2a9 : boolean >a9 > b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r2a10 = a10 > b10; var r2b1 = b1 > a1; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 73, 3)) +>r2b1 : boolean >b1 > a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r2b2 = b2 > a2; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 74, 3)) +>r2b2 : boolean >b2 > a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r2b3 = b3 > a3; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 75, 3)) +>r2b3 : boolean >b3 > a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r2b4 = b4 > a4; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 76, 3)) +>r2b4 : boolean >b4 > a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r2b5 = b5 > a5; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 77, 3)) +>r2b5 : boolean >b5 > a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r2b6 = b6 > a6; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 78, 3)) +>r2b6 : boolean >b6 > a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r2b7 = b7 > a7; ->r2b7 : boolean, Symbol(r2b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 79, 3)) +>r2b7 : boolean >b7 > a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r2b8 = b8 > a8; ->r2b8 : boolean, Symbol(r2b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 80, 3)) +>r2b8 : boolean >b8 > a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r2b9 = b9 > a9; ->r2b9 : boolean, Symbol(r2b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 81, 3)) +>r2b9 : boolean >b9 > a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r2b10 = b10 > a10; // operator <= var r3a1 = a1 <= b1; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 85, 3)) +>r3a1 : boolean >a1 <= b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r3a2 = a2 <= b2; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 86, 3)) +>r3a2 : boolean >a2 <= b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r3a3 = a3 <= b3; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 87, 3)) +>r3a3 : boolean >a3 <= b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r3a4 = a4 <= b4; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 88, 3)) +>r3a4 : boolean >a4 <= b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r3a5 = a5 <= b5; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 89, 3)) +>r3a5 : boolean >a5 <= b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r3a6 = a6 <= b6; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 90, 3)) +>r3a6 : boolean >a6 <= b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r3a7 = a7 <= b7; ->r3a7 : boolean, Symbol(r3a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 91, 3)) +>r3a7 : boolean >a7 <= b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r3a8 = a8 <= b8; ->r3a8 : boolean, Symbol(r3a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 92, 3)) +>r3a8 : boolean >a8 <= b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r3a9 = a9 <= b9; ->r3a9 : boolean, Symbol(r3a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 93, 3)) +>r3a9 : boolean >a9 <= b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r3a10 = a10 <= b10; var r3b1 = b1 <= a1; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 96, 3)) +>r3b1 : boolean >b1 <= a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r3b2 = b2 <= a2; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 97, 3)) +>r3b2 : boolean >b2 <= a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r3b3 = b3 <= a3; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 98, 3)) +>r3b3 : boolean >b3 <= a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r3b4 = b4 <= a4; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 99, 3)) +>r3b4 : boolean >b4 <= a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r3b5 = b5 <= a5; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 100, 3)) +>r3b5 : boolean >b5 <= a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r3b6 = b6 <= a6; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 101, 3)) +>r3b6 : boolean >b6 <= a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r3b7 = b7 <= a7; ->r3b7 : boolean, Symbol(r3b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 102, 3)) +>r3b7 : boolean >b7 <= a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r3b8 = b8 <= a8; ->r3b8 : boolean, Symbol(r3b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 103, 3)) +>r3b8 : boolean >b8 <= a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r3b9 = b9 <= a9; ->r3b9 : boolean, Symbol(r3b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 104, 3)) +>r3b9 : boolean >b9 <= a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r3b10 = b10 <= a10; // operator >= var r4a1 = a1 >= b1; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 108, 3)) +>r4a1 : boolean >a1 >= b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r4a2 = a2 >= b2; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 109, 3)) +>r4a2 : boolean >a2 >= b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r4a3 = a3 >= b3; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 110, 3)) +>r4a3 : boolean >a3 >= b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r4a4 = a4 >= b4; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 111, 3)) +>r4a4 : boolean >a4 >= b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r4a5 = a5 >= b5; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 112, 3)) +>r4a5 : boolean >a5 >= b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r4a6 = a6 >= b6; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 113, 3)) +>r4a6 : boolean >a6 >= b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r4a7 = a7 >= b7; ->r4a7 : boolean, Symbol(r4a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 114, 3)) +>r4a7 : boolean >a7 >= b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r4a8 = a8 >= b8; ->r4a8 : boolean, Symbol(r4a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 115, 3)) +>r4a8 : boolean >a8 >= b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r4a9 = a9 >= b9; ->r4a9 : boolean, Symbol(r4a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 116, 3)) +>r4a9 : boolean >a9 >= b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r4a10 = a10 >= b10; var r4b1 = b1 >= a1; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 119, 3)) +>r4b1 : boolean >b1 >= a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r4b2 = b2 >= a2; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 120, 3)) +>r4b2 : boolean >b2 >= a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r4b3 = b3 >= a3; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 121, 3)) +>r4b3 : boolean >b3 >= a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r4b4 = b4 >= a4; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 122, 3)) +>r4b4 : boolean >b4 >= a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r4b5 = b5 >= a5; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 123, 3)) +>r4b5 : boolean >b5 >= a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r4b6 = b6 >= a6; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 124, 3)) +>r4b6 : boolean >b6 >= a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r4b7 = b7 >= a7; ->r4b7 : boolean, Symbol(r4b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 125, 3)) +>r4b7 : boolean >b7 >= a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r4b8 = b8 >= a8; ->r4b8 : boolean, Symbol(r4b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 126, 3)) +>r4b8 : boolean >b8 >= a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r4b9 = b9 >= a9; ->r4b9 : boolean, Symbol(r4b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 127, 3)) +>r4b9 : boolean >b9 >= a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r4b10 = b10 >= a10; // operator == var r5a1 = a1 == b1; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 131, 3)) +>r5a1 : boolean >a1 == b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r5a2 = a2 == b2; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 132, 3)) +>r5a2 : boolean >a2 == b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r5a3 = a3 == b3; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 133, 3)) +>r5a3 : boolean >a3 == b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r5a4 = a4 == b4; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 134, 3)) +>r5a4 : boolean >a4 == b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r5a5 = a5 == b5; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 135, 3)) +>r5a5 : boolean >a5 == b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r5a6 = a6 == b6; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 136, 3)) +>r5a6 : boolean >a6 == b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r5a7 = a7 == b7; ->r5a7 : boolean, Symbol(r5a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 137, 3)) +>r5a7 : boolean >a7 == b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r5a8 = a8 == b8; ->r5a8 : boolean, Symbol(r5a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 138, 3)) +>r5a8 : boolean >a8 == b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r5a9 = a9 == b9; ->r5a9 : boolean, Symbol(r5a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 139, 3)) +>r5a9 : boolean >a9 == b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r5a10 = a10 == b10; var r5b1 = b1 == a1; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 142, 3)) +>r5b1 : boolean >b1 == a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r5b2 = b2 == a2; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 143, 3)) +>r5b2 : boolean >b2 == a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r5b3 = b3 == a3; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 144, 3)) +>r5b3 : boolean >b3 == a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r5b4 = b4 == a4; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 145, 3)) +>r5b4 : boolean >b4 == a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r5b5 = b5 == a5; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 146, 3)) +>r5b5 : boolean >b5 == a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r5b6 = b6 == a6; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 147, 3)) +>r5b6 : boolean >b6 == a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r5b7 = b7 == a7; ->r5b7 : boolean, Symbol(r5b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 148, 3)) +>r5b7 : boolean >b7 == a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r5b8 = b8 == a8; ->r5b8 : boolean, Symbol(r5b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 149, 3)) +>r5b8 : boolean >b8 == a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r5b9 = b9 == a9; ->r5b9 : boolean, Symbol(r5b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 150, 3)) +>r5b9 : boolean >b9 == a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r5b10 = b10 == a10; // operator != var r6a1 = a1 != b1; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 154, 3)) +>r6a1 : boolean >a1 != b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r6a2 = a2 != b2; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 155, 3)) +>r6a2 : boolean >a2 != b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r6a3 = a3 != b3; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 156, 3)) +>r6a3 : boolean >a3 != b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r6a4 = a4 != b4; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 157, 3)) +>r6a4 : boolean >a4 != b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r6a5 = a5 != b5; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 158, 3)) +>r6a5 : boolean >a5 != b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r6a6 = a6 != b6; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 159, 3)) +>r6a6 : boolean >a6 != b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r6a7 = a7 != b7; ->r6a7 : boolean, Symbol(r6a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 160, 3)) +>r6a7 : boolean >a7 != b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r6a8 = a8 != b8; ->r6a8 : boolean, Symbol(r6a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 161, 3)) +>r6a8 : boolean >a8 != b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r6a9 = a9 != b9; ->r6a9 : boolean, Symbol(r6a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 162, 3)) +>r6a9 : boolean >a9 != b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r6a10 = a10 != b10; var r6b1 = b1 != a1; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 165, 3)) +>r6b1 : boolean >b1 != a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r6b2 = b2 != a2; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 166, 3)) +>r6b2 : boolean >b2 != a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r6b3 = b3 != a3; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 167, 3)) +>r6b3 : boolean >b3 != a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r6b4 = b4 != a4; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 168, 3)) +>r6b4 : boolean >b4 != a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r6b5 = b5 != a5; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 169, 3)) +>r6b5 : boolean >b5 != a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r6b6 = b6 != a6; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 170, 3)) +>r6b6 : boolean >b6 != a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r6b7 = b7 != a7; ->r6b7 : boolean, Symbol(r6b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 171, 3)) +>r6b7 : boolean >b7 != a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r6b8 = b8 != a8; ->r6b8 : boolean, Symbol(r6b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 172, 3)) +>r6b8 : boolean >b8 != a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r6b9 = b9 != a9; ->r6b9 : boolean, Symbol(r6b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 173, 3)) +>r6b9 : boolean >b9 != a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r6b10 = b10 != a10; // operator === var r7a1 = a1 === b1; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 177, 3)) +>r7a1 : boolean >a1 === b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r7a2 = a2 === b2; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 178, 3)) +>r7a2 : boolean >a2 === b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r7a3 = a3 === b3; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 179, 3)) +>r7a3 : boolean >a3 === b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r7a4 = a4 === b4; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 180, 3)) +>r7a4 : boolean >a4 === b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r7a5 = a5 === b5; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 181, 3)) +>r7a5 : boolean >a5 === b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r7a6 = a6 === b6; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 182, 3)) +>r7a6 : boolean >a6 === b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r7a7 = a7 === b7; ->r7a7 : boolean, Symbol(r7a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 183, 3)) +>r7a7 : boolean >a7 === b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r7a8 = a8 === b8; ->r7a8 : boolean, Symbol(r7a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 184, 3)) +>r7a8 : boolean >a8 === b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r7a9 = a9 === b9; ->r7a9 : boolean, Symbol(r7a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 185, 3)) +>r7a9 : boolean >a9 === b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r7a10 = a10 === b10; var r7b1 = b1 === a1; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 188, 3)) +>r7b1 : boolean >b1 === a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r7b2 = b2 === a2; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 189, 3)) +>r7b2 : boolean >b2 === a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r7b3 = b3 === a3; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 190, 3)) +>r7b3 : boolean >b3 === a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r7b4 = b4 === a4; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 191, 3)) +>r7b4 : boolean >b4 === a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r7b5 = b5 === a5; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 192, 3)) +>r7b5 : boolean >b5 === a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r7b6 = b6 === a6; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 193, 3)) +>r7b6 : boolean >b6 === a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r7b7 = b7 === a7; ->r7b7 : boolean, Symbol(r7b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 194, 3)) +>r7b7 : boolean >b7 === a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r7b8 = b8 === a8; ->r7b8 : boolean, Symbol(r7b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 195, 3)) +>r7b8 : boolean >b8 === a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r7b9 = b9 === a9; ->r7b9 : boolean, Symbol(r7b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 196, 3)) +>r7b9 : boolean >b9 === a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r7b10 = b10 === a10; // operator !== var r8a1 = a1 !== b1; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 200, 3)) +>r8a1 : boolean >a1 !== b1 : boolean ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) +>a1 : new () => Base +>b1 : new () => Base var r8a2 = a2 !== b2; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 201, 3)) +>r8a2 : boolean >a2 !== b2 : boolean ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) +>a2 : new (a: number, b: string) => Base +>b2 : new (a: number, b: string) => Base var r8a3 = a3 !== b3; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 202, 3)) +>r8a3 : boolean >a3 !== b3 : boolean ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) +>a3 : new (a: number, b: string) => Base +>b3 : new (a: number) => Base var r8a4 = a4 !== b4; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 203, 3)) +>r8a4 : boolean >a4 !== b4 : boolean ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) +>a4 : new (a: number, b: string) => Base +>b4 : new () => Base var r8a5 = a5 !== b5; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 204, 3)) +>r8a5 : boolean >a5 !== b5 : boolean ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) +>a5 : new (a: Base) => Base +>b5 : new (a: Derived) => Base var r8a6 = a6 !== b6; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 205, 3)) +>r8a6 : boolean >a6 !== b6 : boolean ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) +>a6 : new (a: Derived, b: Base) => Base +>b6 : new (a: Base, b: Derived) => Base var r8a7 = a7 !== b7; ->r8a7 : boolean, Symbol(r8a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 206, 3)) +>r8a7 : boolean >a7 !== b7 : boolean ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) +>a7 : new () => Base +>b7 : new () => Derived var r8a8 = a8 !== b8; ->r8a8 : boolean, Symbol(r8a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 207, 3)) +>r8a8 : boolean >a8 !== b8 : boolean ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) +>a8 : new (a?: Base) => Base +>b8 : new (a?: Derived) => Base var r8a9 = a9 !== b9; ->r8a9 : boolean, Symbol(r8a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 208, 3)) +>r8a9 : boolean >a9 !== b9 : boolean ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) +>a9 : new (...a: Base[]) => Base +>b9 : new (...a: Derived[]) => Base //var r8a10 = a10 !== b10; var r8b1 = b1 !== a1; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 211, 3)) +>r8b1 : boolean >b1 !== a1 : boolean ->b1 : new () => Base, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 9, 3)) ->a1 : new () => Base, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 8, 3)) +>b1 : new () => Base +>a1 : new () => Base var r8b2 = b2 !== a2; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 212, 3)) +>r8b2 : boolean >b2 !== a2 : boolean ->b2 : new (a: number, b: string) => Base, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 12, 3)) ->a2 : new (a: number, b: string) => Base, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 11, 3)) +>b2 : new (a: number, b: string) => Base +>a2 : new (a: number, b: string) => Base var r8b3 = b3 !== a3; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 213, 3)) +>r8b3 : boolean >b3 !== a3 : boolean ->b3 : new (a: number) => Base, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 15, 3)) ->a3 : new (a: number, b: string) => Base, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 14, 3)) +>b3 : new (a: number) => Base +>a3 : new (a: number, b: string) => Base var r8b4 = b4 !== a4; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 214, 3)) +>r8b4 : boolean >b4 !== a4 : boolean ->b4 : new () => Base, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 18, 3)) ->a4 : new (a: number, b: string) => Base, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 17, 3)) +>b4 : new () => Base +>a4 : new (a: number, b: string) => Base var r8b5 = b5 !== a5; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 215, 3)) +>r8b5 : boolean >b5 !== a5 : boolean ->b5 : new (a: Derived) => Base, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 21, 3)) ->a5 : new (a: Base) => Base, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 20, 3)) +>b5 : new (a: Derived) => Base +>a5 : new (a: Base) => Base var r8b6 = b6 !== a6; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 216, 3)) +>r8b6 : boolean >b6 !== a6 : boolean ->b6 : new (a: Base, b: Derived) => Base, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 24, 3)) ->a6 : new (a: Derived, b: Base) => Base, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 23, 3)) +>b6 : new (a: Base, b: Derived) => Base +>a6 : new (a: Derived, b: Base) => Base var r8b7 = b7 !== a7; ->r8b7 : boolean, Symbol(r8b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 217, 3)) +>r8b7 : boolean >b7 !== a7 : boolean ->b7 : new () => Derived, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 27, 3)) ->a7 : new () => Base, Symbol(a7, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 26, 3)) +>b7 : new () => Derived +>a7 : new () => Base var r8b8 = b8 !== a8; ->r8b8 : boolean, Symbol(r8b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 218, 3)) +>r8b8 : boolean >b8 !== a8 : boolean ->b8 : new (a?: Derived) => Base, Symbol(b8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 30, 3)) ->a8 : new (a?: Base) => Base, Symbol(a8, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 29, 3)) +>b8 : new (a?: Derived) => Base +>a8 : new (a?: Base) => Base var r8b9 = b9 !== a9; ->r8b9 : boolean, Symbol(r8b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 219, 3)) +>r8b9 : boolean >b9 !== a9 : boolean ->b9 : new (...a: Derived[]) => Base, Symbol(b9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 33, 3)) ->a9 : new (...a: Base[]) => Base, Symbol(a9, Decl(comparisonOperatorWithSubtypeObjectOnConstructorSignature.ts, 32, 3)) +>b9 : new (...a: Derived[]) => Base +>a9 : new (...a: Base[]) => Base //var r8b10 = b10 !== a10; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.symbols new file mode 100644 index 0000000000000..be0537baee45f --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.symbols @@ -0,0 +1,380 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts === +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 12)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) + + public b: string; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 4, 28)) +} + +var a1: { [a: string]: string }; +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 11)) + +var b1: { [b: string]: string }; +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 11)) + +var a2: { [index: string]: Base }; +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>index : Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 11)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) + +var b2: { [index: string]: Derived }; +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>index : Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 11)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 2, 1)) + +var a3: { [index: number]: string }; +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>index : Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 11)) + +var b3: { [index: number]: string }; +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>index : Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 11)) + +var a4: { [index: number]: Base }; +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>index : Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 11)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) + +var b4: { [index: string]: Derived }; +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>index : Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 11)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 2, 1)) + +// operator < +var r1a1 = a1 < b1; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r1a1 = a2 < b2; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r1a1 = a3 < b3; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r1a1 = a4 < b4; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r1b1 = b1 < a1; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r1b1 = b2 < a2; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r1b1 = b3 < a3; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r1b1 = b4 < a4; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator > +var r2a1 = a1 > b1; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r2a1 = a2 > b2; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r2a1 = a3 > b3; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r2a1 = a4 > b4; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r2b1 = b1 > a1; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r2b1 = b2 > a2; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r2b1 = b3 > a3; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r2b1 = b4 > a4; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator <= +var r3a1 = a1 <= b1; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r3a1 = a2 <= b2; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r3a1 = a3 <= b3; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r3a1 = a4 <= b4; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r3b1 = b1 <= a1; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r3b1 = b2 <= a2; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r3b1 = b3 <= a3; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r3b1 = b4 <= a4; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator >= +var r4a1 = a1 >= b1; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r4a1 = a2 >= b2; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r4a1 = a3 >= b3; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r4a1 = a4 >= b4; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r4b1 = b1 >= a1; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r4b1 = b2 >= a2; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r4b1 = b3 >= a3; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r4b1 = b4 >= a4; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator == +var r5a1 = a1 == b1; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r5a1 = a2 == b2; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r5a1 = a3 == b3; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r5a1 = a4 == b4; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r5b1 = b1 == a1; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r5b1 = b2 == a2; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r5b1 = b3 == a3; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r5b1 = b4 == a4; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator != +var r6a1 = a1 != b1; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r6a1 = a2 != b2; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r6a1 = a3 != b3; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r6a1 = a4 != b4; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r6b1 = b1 != a1; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r6b1 = b2 != a2; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r6b1 = b3 != a3; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r6b1 = b4 != a4; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator === +var r7a1 = a1 === b1; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r7a1 = a2 === b2; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r7a1 = a3 === b3; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r7a1 = a4 === b4; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r7b1 = b1 === a1; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r7b1 = b2 === a2; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r7b1 = b3 === a3; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r7b1 = b4 === a4; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + +// operator !== +var r8a1 = a1 !== b1; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) + +var r8a1 = a2 !== b2; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) + +var r8a1 = a3 !== b3; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) + +var r8a1 = a4 !== b4; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) + +var r8b1 = b1 !== a1; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) + +var r8b1 = b2 !== a2; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) + +var r8b1 = b3 !== a3; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) + +var r8b1 = b4 !== a4; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.types index 290ee1cee339e..657fdccbda0a7 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnIndexSignature.types @@ -1,444 +1,444 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnIndexSignature.ts === class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) +>Base : Base public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 12)) +>a : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) +>Derived : Derived +>Base : Base public b: string; ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 4, 28)) +>b : string } var a1: { [a: string]: string }; ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 11)) +>a1 : { [a: string]: string; } +>a : string var b1: { [b: string]: string }; ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 11)) +>b1 : { [b: string]: string; } +>b : string var a2: { [index: string]: Base }; ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->index : string, Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 11)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) +>a2 : { [index: string]: Base; } +>index : string +>Base : Base var b2: { [index: string]: Derived }; ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->index : string, Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 11)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 2, 1)) +>b2 : { [index: string]: Derived; } +>index : string +>Derived : Derived var a3: { [index: number]: string }; ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->index : number, Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 11)) +>a3 : { [index: number]: string; } +>index : number var b3: { [index: number]: string }; ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->index : number, Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 11)) +>b3 : { [index: number]: string; } +>index : number var a4: { [index: number]: Base }; ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->index : number, Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 11)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 0, 0)) +>a4 : { [index: number]: Base; } +>index : number +>Base : Base var b4: { [index: string]: Derived }; ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->index : string, Symbol(index, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 11)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 2, 1)) +>b4 : { [index: string]: Derived; } +>index : string +>Derived : Derived // operator < var r1a1 = a1 < b1; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>r1a1 : boolean >a1 < b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r1a1 = a2 < b2; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>r1a1 : boolean >a2 < b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r1a1 = a3 < b3; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>r1a1 : boolean >a3 < b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r1a1 = a4 < b4; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 21, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 22, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 23, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 24, 3)) +>r1a1 : boolean >a4 < b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r1b1 = b1 < a1; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>r1b1 : boolean >b1 < a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r1b1 = b2 < a2; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>r1b1 : boolean >b2 < a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r1b1 = b3 < a3; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>r1b1 : boolean >b3 < a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r1b1 = b4 < a4; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 26, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 27, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 28, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 29, 3)) +>r1b1 : boolean >b4 < a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator > var r2a1 = a1 > b1; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>r2a1 : boolean >a1 > b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r2a1 = a2 > b2; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>r2a1 : boolean >a2 > b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r2a1 = a3 > b3; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>r2a1 : boolean >a3 > b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r2a1 = a4 > b4; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 32, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 33, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 34, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 35, 3)) +>r2a1 : boolean >a4 > b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r2b1 = b1 > a1; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>r2b1 : boolean >b1 > a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r2b1 = b2 > a2; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>r2b1 : boolean >b2 > a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r2b1 = b3 > a3; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>r2b1 : boolean >b3 > a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r2b1 = b4 > a4; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 37, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 38, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 39, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 40, 3)) +>r2b1 : boolean >b4 > a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator <= var r3a1 = a1 <= b1; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>r3a1 : boolean >a1 <= b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r3a1 = a2 <= b2; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>r3a1 : boolean >a2 <= b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r3a1 = a3 <= b3; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>r3a1 : boolean >a3 <= b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r3a1 = a4 <= b4; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 43, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 44, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 45, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 46, 3)) +>r3a1 : boolean >a4 <= b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r3b1 = b1 <= a1; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>r3b1 : boolean >b1 <= a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r3b1 = b2 <= a2; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>r3b1 : boolean >b2 <= a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r3b1 = b3 <= a3; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>r3b1 : boolean >b3 <= a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r3b1 = b4 <= a4; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 48, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 49, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 50, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 51, 3)) +>r3b1 : boolean >b4 <= a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator >= var r4a1 = a1 >= b1; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>r4a1 : boolean >a1 >= b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r4a1 = a2 >= b2; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>r4a1 : boolean >a2 >= b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r4a1 = a3 >= b3; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>r4a1 : boolean >a3 >= b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r4a1 = a4 >= b4; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 54, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 55, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 56, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 57, 3)) +>r4a1 : boolean >a4 >= b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r4b1 = b1 >= a1; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>r4b1 : boolean >b1 >= a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r4b1 = b2 >= a2; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>r4b1 : boolean >b2 >= a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r4b1 = b3 >= a3; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>r4b1 : boolean >b3 >= a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r4b1 = b4 >= a4; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 59, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 60, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 61, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 62, 3)) +>r4b1 : boolean >b4 >= a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator == var r5a1 = a1 == b1; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>r5a1 : boolean >a1 == b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r5a1 = a2 == b2; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>r5a1 : boolean >a2 == b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r5a1 = a3 == b3; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>r5a1 : boolean >a3 == b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r5a1 = a4 == b4; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 65, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 66, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 67, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 68, 3)) +>r5a1 : boolean >a4 == b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r5b1 = b1 == a1; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>r5b1 : boolean >b1 == a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r5b1 = b2 == a2; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>r5b1 : boolean >b2 == a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r5b1 = b3 == a3; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>r5b1 : boolean >b3 == a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r5b1 = b4 == a4; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 70, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 71, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 72, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 73, 3)) +>r5b1 : boolean >b4 == a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator != var r6a1 = a1 != b1; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>r6a1 : boolean >a1 != b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r6a1 = a2 != b2; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>r6a1 : boolean >a2 != b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r6a1 = a3 != b3; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>r6a1 : boolean >a3 != b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r6a1 = a4 != b4; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 76, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 77, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 78, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 79, 3)) +>r6a1 : boolean >a4 != b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r6b1 = b1 != a1; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>r6b1 : boolean >b1 != a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r6b1 = b2 != a2; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>r6b1 : boolean >b2 != a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r6b1 = b3 != a3; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>r6b1 : boolean >b3 != a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r6b1 = b4 != a4; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 81, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 82, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 83, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 84, 3)) +>r6b1 : boolean >b4 != a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator === var r7a1 = a1 === b1; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>r7a1 : boolean >a1 === b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r7a1 = a2 === b2; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>r7a1 : boolean >a2 === b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r7a1 = a3 === b3; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>r7a1 : boolean >a3 === b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r7a1 = a4 === b4; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 87, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 88, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 89, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 90, 3)) +>r7a1 : boolean >a4 === b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r7b1 = b1 === a1; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>r7b1 : boolean >b1 === a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r7b1 = b2 === a2; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>r7b1 : boolean >b2 === a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r7b1 = b3 === a3; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>r7b1 : boolean >b3 === a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r7b1 = b4 === a4; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 92, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 93, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 94, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 95, 3)) +>r7b1 : boolean >b4 === a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } // operator !== var r8a1 = a1 !== b1; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>r8a1 : boolean >a1 !== b1 : boolean ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) +>a1 : { [a: string]: string; } +>b1 : { [b: string]: string; } var r8a1 = a2 !== b2; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>r8a1 : boolean >a2 !== b2 : boolean ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) +>a2 : { [index: string]: Base; } +>b2 : { [index: string]: Derived; } var r8a1 = a3 !== b3; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>r8a1 : boolean >a3 !== b3 : boolean ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) +>a3 : { [index: number]: string; } +>b3 : { [index: number]: string; } var r8a1 = a4 !== b4; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 98, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 99, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 100, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 101, 3)) +>r8a1 : boolean >a4 !== b4 : boolean ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) +>a4 : { [index: number]: Base; } +>b4 : { [index: string]: Derived; } var r8b1 = b1 !== a1; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>r8b1 : boolean >b1 !== a1 : boolean ->b1 : { [b: string]: string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 9, 3)) ->a1 : { [a: string]: string; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 8, 3)) +>b1 : { [b: string]: string; } +>a1 : { [a: string]: string; } var r8b1 = b2 !== a2; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>r8b1 : boolean >b2 !== a2 : boolean ->b2 : { [index: string]: Derived; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 12, 3)) ->a2 : { [index: string]: Base; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 11, 3)) +>b2 : { [index: string]: Derived; } +>a2 : { [index: string]: Base; } var r8b1 = b3 !== a3; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>r8b1 : boolean >b3 !== a3 : boolean ->b3 : { [index: number]: string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 15, 3)) ->a3 : { [index: number]: string; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 14, 3)) +>b3 : { [index: number]: string; } +>a3 : { [index: number]: string; } var r8b1 = b4 !== a4; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 103, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 104, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 105, 3), Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 106, 3)) +>r8b1 : boolean >b4 !== a4 : boolean ->b4 : { [index: string]: Derived; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 18, 3)) ->a4 : { [index: number]: Base; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnIndexSignature.ts, 17, 3)) +>b4 : { [index: string]: Derived; } +>a4 : { [index: number]: Base; } diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.symbols new file mode 100644 index 0000000000000..635f926438fef --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.symbols @@ -0,0 +1,631 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts === +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 12)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) + + public b: string; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 4, 28)) +} + +var a1: { fn(x: T): T }; +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 9)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 13)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 13)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 13)) + +var b1: { fn(x: string): string }; +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 13)) + +var a2: { fn(x: T): T }; +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 9)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 13)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 13)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 13)) + +var b2: { fn(x: string, y: number): string }; +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 13)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 23)) + +var a3: { fn(x: T, y: U): T }; +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 9)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 13)) +>U : Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 15)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 19)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 13)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 24)) +>U : Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 15)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 13)) + +var b3: { fn(x: string, y: number): string }; +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 13)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 23)) + +var a4: { fn(x?: T): T }; +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 9)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 13)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 13)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 13)) + +var b4: { fn(x?: string): string }; +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 13)) + +var a5: { fn(...x: T[]): T }; +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 9)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 13)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 13)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 13)) + +var b5: { fn(...x: string[]): string }; +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 13)) + +var a6: { fn(x: T, y: T): T }; +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 9)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 16)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 21)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) + +var b6: { fn(x: string, y: number): {} }; +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 13)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 23)) + +//var a7: { fn(x: T, y: U): T }; +var b7: { fn(x: Base, y: Derived): Base }; +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 3)) +>fn : Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 9)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 13)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 21)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) + +// operator < +var r1a1 = a1 < b1; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 30, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r1a2 = a2 < b2; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 31, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r1a3 = a3 < b3; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 32, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r1a4 = a4 < b4; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 33, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r1a5 = a5 < b5; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 34, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r1a6 = a6 < b6; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 35, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r1a7 = a7 < b7; + +var r1b1 = b1 < a1; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 38, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r1b2 = b2 < a2; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 39, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r1b3 = b3 < a3; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 40, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r1b4 = b4 < a4; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 41, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r1b5 = b5 < a5; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 42, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r1b6 = b6 < a6; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 43, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r1b7 = b7 < a7; + +// operator > +var r2a1 = a1 > b1; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 47, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r2a2 = a2 > b2; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 48, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r2a3 = a3 > b3; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 49, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r2a4 = a4 > b4; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 50, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r2a5 = a5 > b5; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 51, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r2a6 = a6 > b6; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 52, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r2a7 = a7 > b7; + +var r2b1 = b1 > a1; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 55, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r2b2 = b2 > a2; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 56, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r2b3 = b3 > a3; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 57, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r2b4 = b4 > a4; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 58, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r2b5 = b5 > a5; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 59, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r2b6 = b6 > a6; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 60, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r2b7 = b7 > a7; + +// operator <= +var r3a1 = a1 <= b1; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 64, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r3a2 = a2 <= b2; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 65, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r3a3 = a3 <= b3; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 66, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r3a4 = a4 <= b4; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 67, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r3a5 = a5 <= b5; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 68, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r3a6 = a6 <= b6; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 69, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r3a7 = a7 <= b7; + +var r3b1 = b1 <= a1; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 72, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r3b2 = b2 <= a2; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 73, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r3b3 = b3 <= a3; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 74, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r3b4 = b4 <= a4; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 75, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r3b5 = b5 <= a5; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 76, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r3b6 = b6 <= a6; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 77, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r3b7 = b7 <= a7; + +// operator >= +var r4a1 = a1 >= b1; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 81, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r4a2 = a2 >= b2; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 82, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r4a3 = a3 >= b3; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 83, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r4a4 = a4 >= b4; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 84, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r4a5 = a5 >= b5; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 85, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r4a6 = a6 >= b6; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 86, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r4a7 = a7 >= b7; + +var r4b1 = b1 >= a1; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 89, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r4b2 = b2 >= a2; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 90, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r4b3 = b3 >= a3; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 91, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r4b4 = b4 >= a4; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 92, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r4b5 = b5 >= a5; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 93, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r4b6 = b6 >= a6; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 94, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r4b7 = b7 >= a7; + +// operator == +var r5a1 = a1 == b1; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 98, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r5a2 = a2 == b2; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 99, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r5a3 = a3 == b3; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 100, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r5a4 = a4 == b4; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 101, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r5a5 = a5 == b5; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 102, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r5a6 = a6 == b6; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 103, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r5a7 = a7 == b7; + +var r5b1 = b1 == a1; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 106, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r5b2 = b2 == a2; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 107, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r5b3 = b3 == a3; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 108, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r5b4 = b4 == a4; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 109, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r5b5 = b5 == a5; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 110, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r5b6 = b6 == a6; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 111, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r5b7 = b7 == a7; + +// operator != +var r6a1 = a1 != b1; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 115, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r6a2 = a2 != b2; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 116, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r6a3 = a3 != b3; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 117, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r6a4 = a4 != b4; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 118, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r6a5 = a5 != b5; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 119, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r6a6 = a6 != b6; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 120, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r6a7 = a7 != b7; + +var r6b1 = b1 != a1; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 123, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r6b2 = b2 != a2; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 124, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r6b3 = b3 != a3; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 125, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r6b4 = b4 != a4; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 126, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r6b5 = b5 != a5; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 127, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r6b6 = b6 != a6; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 128, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r6b7 = b7 != a7; + +// operator === +var r7a1 = a1 === b1; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 132, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r7a2 = a2 === b2; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 133, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r7a3 = a3 === b3; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 134, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r7a4 = a4 === b4; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 135, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r7a5 = a5 === b5; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 136, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r7a6 = a6 === b6; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 137, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r7a7 = a7 === b7; + +var r7b1 = b1 === a1; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 140, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r7b2 = b2 === a2; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 141, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r7b3 = b3 === a3; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 142, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r7b4 = b4 === a4; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 143, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r7b5 = b5 === a5; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 144, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r7b6 = b6 === a6; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 145, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r7b7 = b7 === a7; + +// operator !== +var r8a1 = a1 !== b1; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 149, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) + +var r8a2 = a2 !== b2; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 150, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) + +var r8a3 = a3 !== b3; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 151, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) + +var r8a4 = a4 !== b4; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 152, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) + +var r8a5 = a5 !== b5; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 153, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) + +var r8a6 = a6 !== b6; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 154, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) + +//var r8a7 = a7 !== b7; + +var r8b1 = b1 !== a1; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 157, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) + +var r8b2 = b2 !== a2; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 158, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) + +var r8b3 = b3 !== a3; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 159, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) + +var r8b4 = b4 !== a4; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 160, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) + +var r8b5 = b5 !== a5; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 161, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) + +var r8b6 = b6 !== a6; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 162, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) + +//var r8b7 = b7 !== a7; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types index ea1e4732b84cd..c3f0d96e83959 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types @@ -1,727 +1,727 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts === class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) +>Base : Base public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 12)) +>a : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) +>Derived : Derived +>Base : Base public b: string; ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 4, 28)) +>b : string } var a1: { fn(x: T): T }; ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->fn : (x: T) => T, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 9)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 13)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 13)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 13)) +>a1 : { fn(x: T): T; } +>fn : (x: T) => T +>T : T +>x : T +>T : T +>T : T var b1: { fn(x: string): string }; ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->fn : (x: string) => string, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 9)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 13)) +>b1 : { fn(x: string): string; } +>fn : (x: string) => string +>x : string var a2: { fn(x: T): T }; ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->fn : (x: T) => T, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 9)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 13)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 13)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 13)) +>a2 : { fn(x: T): T; } +>fn : (x: T) => T +>T : T +>x : T +>T : T +>T : T var b2: { fn(x: string, y: number): string }; ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->fn : (x: string, y: number) => string, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 9)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 13)) ->y : number, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 23)) +>b2 : { fn(x: string, y: number): string; } +>fn : (x: string, y: number) => string +>x : string +>y : number var a3: { fn(x: T, y: U): T }; ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->fn : (x: T, y: U) => T, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 9)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 13)) ->U : U, Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 15)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 19)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 13)) ->y : U, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 24)) ->U : U, Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 15)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 13)) +>a3 : { fn(x: T, y: U): T; } +>fn : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T var b3: { fn(x: string, y: number): string }; ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->fn : (x: string, y: number) => string, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 9)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 13)) ->y : number, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 23)) +>b3 : { fn(x: string, y: number): string; } +>fn : (x: string, y: number) => string +>x : string +>y : number var a4: { fn(x?: T): T }; ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->fn : (x?: T) => T, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 9)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 13)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 13)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 13)) +>a4 : { fn(x?: T): T; } +>fn : (x?: T) => T +>T : T +>x : T +>T : T +>T : T var b4: { fn(x?: string): string }; ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->fn : (x?: string) => string, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 9)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 13)) +>b4 : { fn(x?: string): string; } +>fn : (x?: string) => string +>x : string var a5: { fn(...x: T[]): T }; ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->fn : (...x: T[]) => T, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 9)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 13)) ->x : T[], Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 13)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 13)) +>a5 : { fn(...x: T[]): T; } +>fn : (...x: T[]) => T +>T : T +>x : T[] +>T : T +>T : T var b5: { fn(...x: string[]): string }; ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->fn : (...x: string[]) => string, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 9)) ->x : string[], Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 13)) +>b5 : { fn(...x: string[]): string; } +>fn : (...x: string[]) => string +>x : string[] var a6: { fn(x: T, y: T): T }; ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->fn : (x: T, y: T) => T, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 9)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 16)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) ->y : T, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 21)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 13)) +>a6 : { fn(x: T, y: T): T; } +>fn : (x: T, y: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T var b6: { fn(x: string, y: number): {} }; ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->fn : (x: string, y: number) => {}, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 9)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 13)) ->y : number, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 23)) +>b6 : { fn(x: string, y: number): {}; } +>fn : (x: string, y: number) => {} +>x : string +>y : number //var a7: { fn(x: T, y: U): T }; var b7: { fn(x: Base, y: Derived): Base }; ->b7 : { fn(x: Base, y: Derived): Base; }, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 3)) ->fn : (x: Base, y: Derived) => Base, Symbol(fn, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 9)) ->x : Base, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 13)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) ->y : Derived, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 27, 21)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 0, 0)) +>b7 : { fn(x: Base, y: Derived): Base; } +>fn : (x: Base, y: Derived) => Base +>x : Base +>Base : Base +>y : Derived +>Derived : Derived +>Base : Base // operator < var r1a1 = a1 < b1; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 30, 3)) +>r1a1 : boolean >a1 < b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r1a2 = a2 < b2; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 31, 3)) +>r1a2 : boolean >a2 < b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r1a3 = a3 < b3; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 32, 3)) +>r1a3 : boolean >a3 < b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r1a4 = a4 < b4; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 33, 3)) +>r1a4 : boolean >a4 < b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r1a5 = a5 < b5; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 34, 3)) +>r1a5 : boolean >a5 < b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r1a6 = a6 < b6; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 35, 3)) +>r1a6 : boolean >a6 < b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r1a7 = a7 < b7; var r1b1 = b1 < a1; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 38, 3)) +>r1b1 : boolean >b1 < a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r1b2 = b2 < a2; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 39, 3)) +>r1b2 : boolean >b2 < a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r1b3 = b3 < a3; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 40, 3)) +>r1b3 : boolean >b3 < a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r1b4 = b4 < a4; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 41, 3)) +>r1b4 : boolean >b4 < a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r1b5 = b5 < a5; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 42, 3)) +>r1b5 : boolean >b5 < a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r1b6 = b6 < a6; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 43, 3)) +>r1b6 : boolean >b6 < a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r1b7 = b7 < a7; // operator > var r2a1 = a1 > b1; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 47, 3)) +>r2a1 : boolean >a1 > b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r2a2 = a2 > b2; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 48, 3)) +>r2a2 : boolean >a2 > b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r2a3 = a3 > b3; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 49, 3)) +>r2a3 : boolean >a3 > b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r2a4 = a4 > b4; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 50, 3)) +>r2a4 : boolean >a4 > b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r2a5 = a5 > b5; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 51, 3)) +>r2a5 : boolean >a5 > b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r2a6 = a6 > b6; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 52, 3)) +>r2a6 : boolean >a6 > b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r2a7 = a7 > b7; var r2b1 = b1 > a1; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 55, 3)) +>r2b1 : boolean >b1 > a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r2b2 = b2 > a2; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 56, 3)) +>r2b2 : boolean >b2 > a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r2b3 = b3 > a3; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 57, 3)) +>r2b3 : boolean >b3 > a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r2b4 = b4 > a4; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 58, 3)) +>r2b4 : boolean >b4 > a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r2b5 = b5 > a5; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 59, 3)) +>r2b5 : boolean >b5 > a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r2b6 = b6 > a6; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 60, 3)) +>r2b6 : boolean >b6 > a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r2b7 = b7 > a7; // operator <= var r3a1 = a1 <= b1; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 64, 3)) +>r3a1 : boolean >a1 <= b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r3a2 = a2 <= b2; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 65, 3)) +>r3a2 : boolean >a2 <= b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r3a3 = a3 <= b3; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 66, 3)) +>r3a3 : boolean >a3 <= b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r3a4 = a4 <= b4; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 67, 3)) +>r3a4 : boolean >a4 <= b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r3a5 = a5 <= b5; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 68, 3)) +>r3a5 : boolean >a5 <= b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r3a6 = a6 <= b6; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 69, 3)) +>r3a6 : boolean >a6 <= b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r3a7 = a7 <= b7; var r3b1 = b1 <= a1; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 72, 3)) +>r3b1 : boolean >b1 <= a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r3b2 = b2 <= a2; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 73, 3)) +>r3b2 : boolean >b2 <= a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r3b3 = b3 <= a3; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 74, 3)) +>r3b3 : boolean >b3 <= a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r3b4 = b4 <= a4; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 75, 3)) +>r3b4 : boolean >b4 <= a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r3b5 = b5 <= a5; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 76, 3)) +>r3b5 : boolean >b5 <= a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r3b6 = b6 <= a6; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 77, 3)) +>r3b6 : boolean >b6 <= a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r3b7 = b7 <= a7; // operator >= var r4a1 = a1 >= b1; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 81, 3)) +>r4a1 : boolean >a1 >= b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r4a2 = a2 >= b2; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 82, 3)) +>r4a2 : boolean >a2 >= b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r4a3 = a3 >= b3; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 83, 3)) +>r4a3 : boolean >a3 >= b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r4a4 = a4 >= b4; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 84, 3)) +>r4a4 : boolean >a4 >= b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r4a5 = a5 >= b5; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 85, 3)) +>r4a5 : boolean >a5 >= b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r4a6 = a6 >= b6; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 86, 3)) +>r4a6 : boolean >a6 >= b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r4a7 = a7 >= b7; var r4b1 = b1 >= a1; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 89, 3)) +>r4b1 : boolean >b1 >= a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r4b2 = b2 >= a2; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 90, 3)) +>r4b2 : boolean >b2 >= a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r4b3 = b3 >= a3; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 91, 3)) +>r4b3 : boolean >b3 >= a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r4b4 = b4 >= a4; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 92, 3)) +>r4b4 : boolean >b4 >= a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r4b5 = b5 >= a5; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 93, 3)) +>r4b5 : boolean >b5 >= a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r4b6 = b6 >= a6; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 94, 3)) +>r4b6 : boolean >b6 >= a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r4b7 = b7 >= a7; // operator == var r5a1 = a1 == b1; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 98, 3)) +>r5a1 : boolean >a1 == b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r5a2 = a2 == b2; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 99, 3)) +>r5a2 : boolean >a2 == b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r5a3 = a3 == b3; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 100, 3)) +>r5a3 : boolean >a3 == b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r5a4 = a4 == b4; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 101, 3)) +>r5a4 : boolean >a4 == b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r5a5 = a5 == b5; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 102, 3)) +>r5a5 : boolean >a5 == b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r5a6 = a6 == b6; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 103, 3)) +>r5a6 : boolean >a6 == b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r5a7 = a7 == b7; var r5b1 = b1 == a1; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 106, 3)) +>r5b1 : boolean >b1 == a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r5b2 = b2 == a2; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 107, 3)) +>r5b2 : boolean >b2 == a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r5b3 = b3 == a3; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 108, 3)) +>r5b3 : boolean >b3 == a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r5b4 = b4 == a4; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 109, 3)) +>r5b4 : boolean >b4 == a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r5b5 = b5 == a5; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 110, 3)) +>r5b5 : boolean >b5 == a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r5b6 = b6 == a6; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 111, 3)) +>r5b6 : boolean >b6 == a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r5b7 = b7 == a7; // operator != var r6a1 = a1 != b1; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 115, 3)) +>r6a1 : boolean >a1 != b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r6a2 = a2 != b2; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 116, 3)) +>r6a2 : boolean >a2 != b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r6a3 = a3 != b3; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 117, 3)) +>r6a3 : boolean >a3 != b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r6a4 = a4 != b4; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 118, 3)) +>r6a4 : boolean >a4 != b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r6a5 = a5 != b5; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 119, 3)) +>r6a5 : boolean >a5 != b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r6a6 = a6 != b6; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 120, 3)) +>r6a6 : boolean >a6 != b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r6a7 = a7 != b7; var r6b1 = b1 != a1; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 123, 3)) +>r6b1 : boolean >b1 != a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r6b2 = b2 != a2; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 124, 3)) +>r6b2 : boolean >b2 != a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r6b3 = b3 != a3; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 125, 3)) +>r6b3 : boolean >b3 != a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r6b4 = b4 != a4; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 126, 3)) +>r6b4 : boolean >b4 != a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r6b5 = b5 != a5; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 127, 3)) +>r6b5 : boolean >b5 != a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r6b6 = b6 != a6; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 128, 3)) +>r6b6 : boolean >b6 != a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r6b7 = b7 != a7; // operator === var r7a1 = a1 === b1; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 132, 3)) +>r7a1 : boolean >a1 === b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r7a2 = a2 === b2; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 133, 3)) +>r7a2 : boolean >a2 === b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r7a3 = a3 === b3; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 134, 3)) +>r7a3 : boolean >a3 === b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r7a4 = a4 === b4; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 135, 3)) +>r7a4 : boolean >a4 === b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r7a5 = a5 === b5; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 136, 3)) +>r7a5 : boolean >a5 === b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r7a6 = a6 === b6; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 137, 3)) +>r7a6 : boolean >a6 === b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r7a7 = a7 === b7; var r7b1 = b1 === a1; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 140, 3)) +>r7b1 : boolean >b1 === a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r7b2 = b2 === a2; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 141, 3)) +>r7b2 : boolean >b2 === a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r7b3 = b3 === a3; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 142, 3)) +>r7b3 : boolean >b3 === a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r7b4 = b4 === a4; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 143, 3)) +>r7b4 : boolean >b4 === a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r7b5 = b5 === a5; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 144, 3)) +>r7b5 : boolean >b5 === a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r7b6 = b6 === a6; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 145, 3)) +>r7b6 : boolean >b6 === a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r7b7 = b7 === a7; // operator !== var r8a1 = a1 !== b1; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 149, 3)) +>r8a1 : boolean >a1 !== b1 : boolean ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) +>a1 : { fn(x: T): T; } +>b1 : { fn(x: string): string; } var r8a2 = a2 !== b2; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 150, 3)) +>r8a2 : boolean >a2 !== b2 : boolean ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) +>a2 : { fn(x: T): T; } +>b2 : { fn(x: string, y: number): string; } var r8a3 = a3 !== b3; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 151, 3)) +>r8a3 : boolean >a3 !== b3 : boolean ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) +>a3 : { fn(x: T, y: U): T; } +>b3 : { fn(x: string, y: number): string; } var r8a4 = a4 !== b4; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 152, 3)) +>r8a4 : boolean >a4 !== b4 : boolean ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) +>a4 : { fn(x?: T): T; } +>b4 : { fn(x?: string): string; } var r8a5 = a5 !== b5; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 153, 3)) +>r8a5 : boolean >a5 !== b5 : boolean ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) +>a5 : { fn(...x: T[]): T; } +>b5 : { fn(...x: string[]): string; } var r8a6 = a6 !== b6; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 154, 3)) +>r8a6 : boolean >a6 !== b6 : boolean ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) +>a6 : { fn(x: T, y: T): T; } +>b6 : { fn(x: string, y: number): {}; } //var r8a7 = a7 !== b7; var r8b1 = b1 !== a1; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 157, 3)) +>r8b1 : boolean >b1 !== a1 : boolean ->b1 : { fn(x: string): string; }, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 9, 3)) ->a1 : { fn(x: T): T; }, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 8, 3)) +>b1 : { fn(x: string): string; } +>a1 : { fn(x: T): T; } var r8b2 = b2 !== a2; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 158, 3)) +>r8b2 : boolean >b2 !== a2 : boolean ->b2 : { fn(x: string, y: number): string; }, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 12, 3)) ->a2 : { fn(x: T): T; }, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 11, 3)) +>b2 : { fn(x: string, y: number): string; } +>a2 : { fn(x: T): T; } var r8b3 = b3 !== a3; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 159, 3)) +>r8b3 : boolean >b3 !== a3 : boolean ->b3 : { fn(x: string, y: number): string; }, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 15, 3)) ->a3 : { fn(x: T, y: U): T; }, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 14, 3)) +>b3 : { fn(x: string, y: number): string; } +>a3 : { fn(x: T, y: U): T; } var r8b4 = b4 !== a4; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 160, 3)) +>r8b4 : boolean >b4 !== a4 : boolean ->b4 : { fn(x?: string): string; }, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 18, 3)) ->a4 : { fn(x?: T): T; }, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 17, 3)) +>b4 : { fn(x?: string): string; } +>a4 : { fn(x?: T): T; } var r8b5 = b5 !== a5; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 161, 3)) +>r8b5 : boolean >b5 !== a5 : boolean ->b5 : { fn(...x: string[]): string; }, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 21, 3)) ->a5 : { fn(...x: T[]): T; }, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 20, 3)) +>b5 : { fn(...x: string[]): string; } +>a5 : { fn(...x: T[]): T; } var r8b6 = b6 !== a6; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 162, 3)) +>r8b6 : boolean >b6 !== a6 : boolean ->b6 : { fn(x: string, y: number): {}; }, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 24, 3)) ->a6 : { fn(x: T, y: T): T; }, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts, 23, 3)) +>b6 : { fn(x: string, y: number): {}; } +>a6 : { fn(x: T, y: T): T; } //var r8b7 = b7 !== a7; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.symbols new file mode 100644 index 0000000000000..11f287658738a --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.symbols @@ -0,0 +1,618 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts === +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 12)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) + + public b: string; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 4, 28)) +} + +var a1: { new (x: T): T }; +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 15)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 15)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 15)) + +var b1: { new (x: string): string }; +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 15)) + +var a2: { new (x: T): T }; +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 15)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 15)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 15)) + +var b2: { new (x: string, y: number): string }; +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 15)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 25)) + +var a3: { new (x: T, y: U): T }; +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 15)) +>U : Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 17)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 21)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 15)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 26)) +>U : Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 17)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 15)) + +var b3: { new (x: string, y: number): string }; +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 15)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 25)) + +var a4: { new (x?: T): T }; +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 15)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 15)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 15)) + +var b4: { new (x?: string): string }; +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 15)) + +var a5: { new (...x: T[]): T }; +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 15)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 15)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 15)) + +var b5: { new (...x: string[]): string }; +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 15)) + +var a6: { new (x: T, y: T): T }; +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 18)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 23)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) +>T : Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) + +var b6: { new (x: string, y: number): {} }; +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 15)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 25)) + +//var a7: { new (x: T, y: U): T }; +var b7: { new (x: Base, y: Derived): Base }; +>b7 : Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 27, 3)) +>x : Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 27, 15)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) +>y : Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 27, 23)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) + +// operator < +var r1a1 = a1 < b1; +>r1a1 : Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 30, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r1a2 = a2 < b2; +>r1a2 : Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 31, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r1a3 = a3 < b3; +>r1a3 : Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 32, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r1a4 = a4 < b4; +>r1a4 : Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 33, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r1a5 = a5 < b5; +>r1a5 : Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 34, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r1a6 = a6 < b6; +>r1a6 : Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 35, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r1a7 = a7 < b7; + +var r1b1 = b1 < a1; +>r1b1 : Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 38, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r1b2 = b2 < a2; +>r1b2 : Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 39, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r1b3 = b3 < a3; +>r1b3 : Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 40, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r1b4 = b4 < a4; +>r1b4 : Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 41, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r1b5 = b5 < a5; +>r1b5 : Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 42, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r1b6 = b6 < a6; +>r1b6 : Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 43, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r1b7 = b7 < a7; + +// operator > +var r2a1 = a1 > b1; +>r2a1 : Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 47, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r2a2 = a2 > b2; +>r2a2 : Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 48, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r2a3 = a3 > b3; +>r2a3 : Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 49, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r2a4 = a4 > b4; +>r2a4 : Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 50, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r2a5 = a5 > b5; +>r2a5 : Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 51, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r2a6 = a6 > b6; +>r2a6 : Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 52, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r2a7 = a7 > b7; + +var r2b1 = b1 > a1; +>r2b1 : Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 55, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r2b2 = b2 > a2; +>r2b2 : Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 56, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r2b3 = b3 > a3; +>r2b3 : Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 57, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r2b4 = b4 > a4; +>r2b4 : Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 58, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r2b5 = b5 > a5; +>r2b5 : Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 59, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r2b6 = b6 > a6; +>r2b6 : Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 60, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r2b7 = b7 > a7; + +// operator <= +var r3a1 = a1 <= b1; +>r3a1 : Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 64, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r3a2 = a2 <= b2; +>r3a2 : Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 65, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r3a3 = a3 <= b3; +>r3a3 : Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 66, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r3a4 = a4 <= b4; +>r3a4 : Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 67, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r3a5 = a5 <= b5; +>r3a5 : Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 68, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r3a6 = a6 <= b6; +>r3a6 : Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 69, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r3a7 = a7 <= b7; + +var r3b1 = b1 <= a1; +>r3b1 : Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 72, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r3b2 = b2 <= a2; +>r3b2 : Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 73, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r3b3 = b3 <= a3; +>r3b3 : Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 74, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r3b4 = b4 <= a4; +>r3b4 : Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 75, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r3b5 = b5 <= a5; +>r3b5 : Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 76, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r3b6 = b6 <= a6; +>r3b6 : Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 77, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r3b7 = b7 <= a7; + +// operator >= +var r4a1 = a1 >= b1; +>r4a1 : Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 81, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r4a2 = a2 >= b2; +>r4a2 : Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 82, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r4a3 = a3 >= b3; +>r4a3 : Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 83, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r4a4 = a4 >= b4; +>r4a4 : Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 84, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r4a5 = a5 >= b5; +>r4a5 : Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 85, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r4a6 = a6 >= b6; +>r4a6 : Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 86, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r4a7 = a7 >= b7; + +var r4b1 = b1 >= a1; +>r4b1 : Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 89, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r4b2 = b2 >= a2; +>r4b2 : Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 90, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r4b3 = b3 >= a3; +>r4b3 : Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 91, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r4b4 = b4 >= a4; +>r4b4 : Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 92, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r4b5 = b5 >= a5; +>r4b5 : Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 93, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r4b6 = b6 >= a6; +>r4b6 : Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 94, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r4b7 = b7 >= a7; + +// operator == +var r5a1 = a1 == b1; +>r5a1 : Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 98, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r5a2 = a2 == b2; +>r5a2 : Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 99, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r5a3 = a3 == b3; +>r5a3 : Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 100, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r5a4 = a4 == b4; +>r5a4 : Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 101, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r5a5 = a5 == b5; +>r5a5 : Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 102, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r5a6 = a6 == b6; +>r5a6 : Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 103, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r5a7 = a7 == b7; + +var r5b1 = b1 == a1; +>r5b1 : Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 106, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r5b2 = b2 == a2; +>r5b2 : Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 107, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r5b3 = b3 == a3; +>r5b3 : Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 108, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r5b4 = b4 == a4; +>r5b4 : Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 109, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r5b5 = b5 == a5; +>r5b5 : Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 110, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r5b6 = b6 == a6; +>r5b6 : Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 111, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r5b7 = b7 == a7; + +// operator != +var r6a1 = a1 != b1; +>r6a1 : Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 115, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r6a2 = a2 != b2; +>r6a2 : Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 116, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r6a3 = a3 != b3; +>r6a3 : Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 117, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r6a4 = a4 != b4; +>r6a4 : Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 118, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r6a5 = a5 != b5; +>r6a5 : Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 119, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r6a6 = a6 != b6; +>r6a6 : Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 120, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r6a7 = a7 != b7; + +var r6b1 = b1 != a1; +>r6b1 : Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 123, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r6b2 = b2 != a2; +>r6b2 : Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 124, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r6b3 = b3 != a3; +>r6b3 : Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 125, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r6b4 = b4 != a4; +>r6b4 : Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 126, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r6b5 = b5 != a5; +>r6b5 : Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 127, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r6b6 = b6 != a6; +>r6b6 : Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 128, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r6b7 = b7 != a7; + +// operator === +var r7a1 = a1 === b1; +>r7a1 : Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 132, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r7a2 = a2 === b2; +>r7a2 : Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 133, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r7a3 = a3 === b3; +>r7a3 : Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 134, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r7a4 = a4 === b4; +>r7a4 : Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 135, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r7a5 = a5 === b5; +>r7a5 : Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 136, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r7a6 = a6 === b6; +>r7a6 : Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 137, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r7a7 = a7 === b7; + +var r7b1 = b1 === a1; +>r7b1 : Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 140, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r7b2 = b2 === a2; +>r7b2 : Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 141, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r7b3 = b3 === a3; +>r7b3 : Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 142, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r7b4 = b4 === a4; +>r7b4 : Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 143, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r7b5 = b5 === a5; +>r7b5 : Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 144, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r7b6 = b6 === a6; +>r7b6 : Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 145, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r7b7 = b7 === a7; + +// operator !== +var r8a1 = a1 !== b1; +>r8a1 : Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 149, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) + +var r8a2 = a2 !== b2; +>r8a2 : Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 150, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) + +var r8a3 = a3 !== b3; +>r8a3 : Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 151, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) + +var r8a4 = a4 !== b4; +>r8a4 : Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 152, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) + +var r8a5 = a5 !== b5; +>r8a5 : Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 153, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) + +var r8a6 = a6 !== b6; +>r8a6 : Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 154, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) + +//var r8a7 = a7 !== b7; + +var r8b1 = b1 !== a1; +>r8b1 : Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 157, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) + +var r8b2 = b2 !== a2; +>r8b2 : Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 158, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) + +var r8b3 = b3 !== a3; +>r8b3 : Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 159, 3)) +>b3 : Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) + +var r8b4 = b4 !== a4; +>r8b4 : Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 160, 3)) +>b4 : Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) + +var r8b5 = b5 !== a5; +>r8b5 : Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 161, 3)) +>b5 : Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) + +var r8b6 = b6 !== a6; +>r8b6 : Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 162, 3)) +>b6 : Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) + +//var r8b7 = b7 !== a7; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types index 0986e5f48b8f7..29d92c25726eb 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types @@ -1,714 +1,714 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts === class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) +>Base : Base public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 12)) +>a : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) +>Derived : Derived +>Base : Base public b: string; ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 4, 28)) +>b : string } var a1: { new (x: T): T }; ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 15)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 15)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 15)) +>a1 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T var b1: { new (x: string): string }; ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 15)) +>b1 : new (x: string) => string +>x : string var a2: { new (x: T): T }; ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 15)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 15)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 15)) +>a2 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T var b2: { new (x: string, y: number): string }; ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 15)) ->y : number, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 25)) +>b2 : new (x: string, y: number) => string +>x : string +>y : number var a3: { new (x: T, y: U): T }; ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 15)) ->U : U, Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 17)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 21)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 15)) ->y : U, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 26)) ->U : U, Symbol(U, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 17)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 15)) +>a3 : new (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T var b3: { new (x: string, y: number): string }; ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 15)) ->y : number, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 25)) +>b3 : new (x: string, y: number) => string +>x : string +>y : number var a4: { new (x?: T): T }; ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 15)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 15)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 15)) +>a4 : new (x?: T) => T +>T : T +>x : T +>T : T +>T : T var b4: { new (x?: string): string }; ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 15)) +>b4 : new (x?: string) => string +>x : string var a5: { new (...x: T[]): T }; ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 15)) ->x : T[], Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 15)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 15)) +>a5 : new (...x: T[]) => T +>T : T +>x : T[] +>T : T +>T : T var b5: { new (...x: string[]): string }; ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->x : string[], Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 15)) +>b5 : new (...x: string[]) => string +>x : string[] var a6: { new (x: T, y: T): T }; ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) ->x : T, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 18)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) ->y : T, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 23)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) ->T : T, Symbol(T, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 15)) +>a6 : new (x: T, y: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T var b6: { new (x: string, y: number): {} }; ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->x : string, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 15)) ->y : number, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 25)) +>b6 : new (x: string, y: number) => {} +>x : string +>y : number //var a7: { new (x: T, y: U): T }; var b7: { new (x: Base, y: Derived): Base }; ->b7 : new (x: Base, y: Derived) => Base, Symbol(b7, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 27, 3)) ->x : Base, Symbol(x, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 27, 15)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) ->y : Derived, Symbol(y, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 27, 23)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 0, 0)) +>b7 : new (x: Base, y: Derived) => Base +>x : Base +>Base : Base +>y : Derived +>Derived : Derived +>Base : Base // operator < var r1a1 = a1 < b1; ->r1a1 : boolean, Symbol(r1a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 30, 3)) +>r1a1 : boolean >a1 < b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r1a2 = a2 < b2; ->r1a2 : boolean, Symbol(r1a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 31, 3)) +>r1a2 : boolean >a2 < b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r1a3 = a3 < b3; ->r1a3 : boolean, Symbol(r1a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 32, 3)) +>r1a3 : boolean >a3 < b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r1a4 = a4 < b4; ->r1a4 : boolean, Symbol(r1a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 33, 3)) +>r1a4 : boolean >a4 < b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r1a5 = a5 < b5; ->r1a5 : boolean, Symbol(r1a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 34, 3)) +>r1a5 : boolean >a5 < b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r1a6 = a6 < b6; ->r1a6 : boolean, Symbol(r1a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 35, 3)) +>r1a6 : boolean >a6 < b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r1a7 = a7 < b7; var r1b1 = b1 < a1; ->r1b1 : boolean, Symbol(r1b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 38, 3)) +>r1b1 : boolean >b1 < a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r1b2 = b2 < a2; ->r1b2 : boolean, Symbol(r1b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 39, 3)) +>r1b2 : boolean >b2 < a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r1b3 = b3 < a3; ->r1b3 : boolean, Symbol(r1b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 40, 3)) +>r1b3 : boolean >b3 < a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r1b4 = b4 < a4; ->r1b4 : boolean, Symbol(r1b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 41, 3)) +>r1b4 : boolean >b4 < a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r1b5 = b5 < a5; ->r1b5 : boolean, Symbol(r1b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 42, 3)) +>r1b5 : boolean >b5 < a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r1b6 = b6 < a6; ->r1b6 : boolean, Symbol(r1b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 43, 3)) +>r1b6 : boolean >b6 < a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r1b7 = b7 < a7; // operator > var r2a1 = a1 > b1; ->r2a1 : boolean, Symbol(r2a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 47, 3)) +>r2a1 : boolean >a1 > b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r2a2 = a2 > b2; ->r2a2 : boolean, Symbol(r2a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 48, 3)) +>r2a2 : boolean >a2 > b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r2a3 = a3 > b3; ->r2a3 : boolean, Symbol(r2a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 49, 3)) +>r2a3 : boolean >a3 > b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r2a4 = a4 > b4; ->r2a4 : boolean, Symbol(r2a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 50, 3)) +>r2a4 : boolean >a4 > b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r2a5 = a5 > b5; ->r2a5 : boolean, Symbol(r2a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 51, 3)) +>r2a5 : boolean >a5 > b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r2a6 = a6 > b6; ->r2a6 : boolean, Symbol(r2a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 52, 3)) +>r2a6 : boolean >a6 > b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r2a7 = a7 > b7; var r2b1 = b1 > a1; ->r2b1 : boolean, Symbol(r2b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 55, 3)) +>r2b1 : boolean >b1 > a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r2b2 = b2 > a2; ->r2b2 : boolean, Symbol(r2b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 56, 3)) +>r2b2 : boolean >b2 > a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r2b3 = b3 > a3; ->r2b3 : boolean, Symbol(r2b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 57, 3)) +>r2b3 : boolean >b3 > a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r2b4 = b4 > a4; ->r2b4 : boolean, Symbol(r2b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 58, 3)) +>r2b4 : boolean >b4 > a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r2b5 = b5 > a5; ->r2b5 : boolean, Symbol(r2b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 59, 3)) +>r2b5 : boolean >b5 > a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r2b6 = b6 > a6; ->r2b6 : boolean, Symbol(r2b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 60, 3)) +>r2b6 : boolean >b6 > a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r2b7 = b7 > a7; // operator <= var r3a1 = a1 <= b1; ->r3a1 : boolean, Symbol(r3a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 64, 3)) +>r3a1 : boolean >a1 <= b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r3a2 = a2 <= b2; ->r3a2 : boolean, Symbol(r3a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 65, 3)) +>r3a2 : boolean >a2 <= b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r3a3 = a3 <= b3; ->r3a3 : boolean, Symbol(r3a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 66, 3)) +>r3a3 : boolean >a3 <= b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r3a4 = a4 <= b4; ->r3a4 : boolean, Symbol(r3a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 67, 3)) +>r3a4 : boolean >a4 <= b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r3a5 = a5 <= b5; ->r3a5 : boolean, Symbol(r3a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 68, 3)) +>r3a5 : boolean >a5 <= b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r3a6 = a6 <= b6; ->r3a6 : boolean, Symbol(r3a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 69, 3)) +>r3a6 : boolean >a6 <= b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r3a7 = a7 <= b7; var r3b1 = b1 <= a1; ->r3b1 : boolean, Symbol(r3b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 72, 3)) +>r3b1 : boolean >b1 <= a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r3b2 = b2 <= a2; ->r3b2 : boolean, Symbol(r3b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 73, 3)) +>r3b2 : boolean >b2 <= a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r3b3 = b3 <= a3; ->r3b3 : boolean, Symbol(r3b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 74, 3)) +>r3b3 : boolean >b3 <= a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r3b4 = b4 <= a4; ->r3b4 : boolean, Symbol(r3b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 75, 3)) +>r3b4 : boolean >b4 <= a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r3b5 = b5 <= a5; ->r3b5 : boolean, Symbol(r3b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 76, 3)) +>r3b5 : boolean >b5 <= a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r3b6 = b6 <= a6; ->r3b6 : boolean, Symbol(r3b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 77, 3)) +>r3b6 : boolean >b6 <= a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r3b7 = b7 <= a7; // operator >= var r4a1 = a1 >= b1; ->r4a1 : boolean, Symbol(r4a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 81, 3)) +>r4a1 : boolean >a1 >= b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r4a2 = a2 >= b2; ->r4a2 : boolean, Symbol(r4a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 82, 3)) +>r4a2 : boolean >a2 >= b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r4a3 = a3 >= b3; ->r4a3 : boolean, Symbol(r4a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 83, 3)) +>r4a3 : boolean >a3 >= b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r4a4 = a4 >= b4; ->r4a4 : boolean, Symbol(r4a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 84, 3)) +>r4a4 : boolean >a4 >= b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r4a5 = a5 >= b5; ->r4a5 : boolean, Symbol(r4a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 85, 3)) +>r4a5 : boolean >a5 >= b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r4a6 = a6 >= b6; ->r4a6 : boolean, Symbol(r4a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 86, 3)) +>r4a6 : boolean >a6 >= b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r4a7 = a7 >= b7; var r4b1 = b1 >= a1; ->r4b1 : boolean, Symbol(r4b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 89, 3)) +>r4b1 : boolean >b1 >= a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r4b2 = b2 >= a2; ->r4b2 : boolean, Symbol(r4b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 90, 3)) +>r4b2 : boolean >b2 >= a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r4b3 = b3 >= a3; ->r4b3 : boolean, Symbol(r4b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 91, 3)) +>r4b3 : boolean >b3 >= a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r4b4 = b4 >= a4; ->r4b4 : boolean, Symbol(r4b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 92, 3)) +>r4b4 : boolean >b4 >= a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r4b5 = b5 >= a5; ->r4b5 : boolean, Symbol(r4b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 93, 3)) +>r4b5 : boolean >b5 >= a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r4b6 = b6 >= a6; ->r4b6 : boolean, Symbol(r4b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 94, 3)) +>r4b6 : boolean >b6 >= a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r4b7 = b7 >= a7; // operator == var r5a1 = a1 == b1; ->r5a1 : boolean, Symbol(r5a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 98, 3)) +>r5a1 : boolean >a1 == b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r5a2 = a2 == b2; ->r5a2 : boolean, Symbol(r5a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 99, 3)) +>r5a2 : boolean >a2 == b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r5a3 = a3 == b3; ->r5a3 : boolean, Symbol(r5a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 100, 3)) +>r5a3 : boolean >a3 == b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r5a4 = a4 == b4; ->r5a4 : boolean, Symbol(r5a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 101, 3)) +>r5a4 : boolean >a4 == b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r5a5 = a5 == b5; ->r5a5 : boolean, Symbol(r5a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 102, 3)) +>r5a5 : boolean >a5 == b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r5a6 = a6 == b6; ->r5a6 : boolean, Symbol(r5a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 103, 3)) +>r5a6 : boolean >a6 == b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r5a7 = a7 == b7; var r5b1 = b1 == a1; ->r5b1 : boolean, Symbol(r5b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 106, 3)) +>r5b1 : boolean >b1 == a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r5b2 = b2 == a2; ->r5b2 : boolean, Symbol(r5b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 107, 3)) +>r5b2 : boolean >b2 == a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r5b3 = b3 == a3; ->r5b3 : boolean, Symbol(r5b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 108, 3)) +>r5b3 : boolean >b3 == a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r5b4 = b4 == a4; ->r5b4 : boolean, Symbol(r5b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 109, 3)) +>r5b4 : boolean >b4 == a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r5b5 = b5 == a5; ->r5b5 : boolean, Symbol(r5b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 110, 3)) +>r5b5 : boolean >b5 == a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r5b6 = b6 == a6; ->r5b6 : boolean, Symbol(r5b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 111, 3)) +>r5b6 : boolean >b6 == a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r5b7 = b7 == a7; // operator != var r6a1 = a1 != b1; ->r6a1 : boolean, Symbol(r6a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 115, 3)) +>r6a1 : boolean >a1 != b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r6a2 = a2 != b2; ->r6a2 : boolean, Symbol(r6a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 116, 3)) +>r6a2 : boolean >a2 != b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r6a3 = a3 != b3; ->r6a3 : boolean, Symbol(r6a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 117, 3)) +>r6a3 : boolean >a3 != b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r6a4 = a4 != b4; ->r6a4 : boolean, Symbol(r6a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 118, 3)) +>r6a4 : boolean >a4 != b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r6a5 = a5 != b5; ->r6a5 : boolean, Symbol(r6a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 119, 3)) +>r6a5 : boolean >a5 != b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r6a6 = a6 != b6; ->r6a6 : boolean, Symbol(r6a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 120, 3)) +>r6a6 : boolean >a6 != b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r6a7 = a7 != b7; var r6b1 = b1 != a1; ->r6b1 : boolean, Symbol(r6b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 123, 3)) +>r6b1 : boolean >b1 != a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r6b2 = b2 != a2; ->r6b2 : boolean, Symbol(r6b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 124, 3)) +>r6b2 : boolean >b2 != a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r6b3 = b3 != a3; ->r6b3 : boolean, Symbol(r6b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 125, 3)) +>r6b3 : boolean >b3 != a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r6b4 = b4 != a4; ->r6b4 : boolean, Symbol(r6b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 126, 3)) +>r6b4 : boolean >b4 != a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r6b5 = b5 != a5; ->r6b5 : boolean, Symbol(r6b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 127, 3)) +>r6b5 : boolean >b5 != a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r6b6 = b6 != a6; ->r6b6 : boolean, Symbol(r6b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 128, 3)) +>r6b6 : boolean >b6 != a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r6b7 = b7 != a7; // operator === var r7a1 = a1 === b1; ->r7a1 : boolean, Symbol(r7a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 132, 3)) +>r7a1 : boolean >a1 === b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r7a2 = a2 === b2; ->r7a2 : boolean, Symbol(r7a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 133, 3)) +>r7a2 : boolean >a2 === b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r7a3 = a3 === b3; ->r7a3 : boolean, Symbol(r7a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 134, 3)) +>r7a3 : boolean >a3 === b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r7a4 = a4 === b4; ->r7a4 : boolean, Symbol(r7a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 135, 3)) +>r7a4 : boolean >a4 === b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r7a5 = a5 === b5; ->r7a5 : boolean, Symbol(r7a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 136, 3)) +>r7a5 : boolean >a5 === b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r7a6 = a6 === b6; ->r7a6 : boolean, Symbol(r7a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 137, 3)) +>r7a6 : boolean >a6 === b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r7a7 = a7 === b7; var r7b1 = b1 === a1; ->r7b1 : boolean, Symbol(r7b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 140, 3)) +>r7b1 : boolean >b1 === a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r7b2 = b2 === a2; ->r7b2 : boolean, Symbol(r7b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 141, 3)) +>r7b2 : boolean >b2 === a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r7b3 = b3 === a3; ->r7b3 : boolean, Symbol(r7b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 142, 3)) +>r7b3 : boolean >b3 === a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r7b4 = b4 === a4; ->r7b4 : boolean, Symbol(r7b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 143, 3)) +>r7b4 : boolean >b4 === a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r7b5 = b5 === a5; ->r7b5 : boolean, Symbol(r7b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 144, 3)) +>r7b5 : boolean >b5 === a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r7b6 = b6 === a6; ->r7b6 : boolean, Symbol(r7b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 145, 3)) +>r7b6 : boolean >b6 === a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r7b7 = b7 === a7; // operator !== var r8a1 = a1 !== b1; ->r8a1 : boolean, Symbol(r8a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 149, 3)) +>r8a1 : boolean >a1 !== b1 : boolean ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) +>a1 : new (x: T) => T +>b1 : new (x: string) => string var r8a2 = a2 !== b2; ->r8a2 : boolean, Symbol(r8a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 150, 3)) +>r8a2 : boolean >a2 !== b2 : boolean ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) +>a2 : new (x: T) => T +>b2 : new (x: string, y: number) => string var r8a3 = a3 !== b3; ->r8a3 : boolean, Symbol(r8a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 151, 3)) +>r8a3 : boolean >a3 !== b3 : boolean ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) +>a3 : new (x: T, y: U) => T +>b3 : new (x: string, y: number) => string var r8a4 = a4 !== b4; ->r8a4 : boolean, Symbol(r8a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 152, 3)) +>r8a4 : boolean >a4 !== b4 : boolean ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) +>a4 : new (x?: T) => T +>b4 : new (x?: string) => string var r8a5 = a5 !== b5; ->r8a5 : boolean, Symbol(r8a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 153, 3)) +>r8a5 : boolean >a5 !== b5 : boolean ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) +>a5 : new (...x: T[]) => T +>b5 : new (...x: string[]) => string var r8a6 = a6 !== b6; ->r8a6 : boolean, Symbol(r8a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 154, 3)) +>r8a6 : boolean >a6 !== b6 : boolean ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) +>a6 : new (x: T, y: T) => T +>b6 : new (x: string, y: number) => {} //var r8a7 = a7 !== b7; var r8b1 = b1 !== a1; ->r8b1 : boolean, Symbol(r8b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 157, 3)) +>r8b1 : boolean >b1 !== a1 : boolean ->b1 : new (x: string) => string, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 9, 3)) ->a1 : new (x: T) => T, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 8, 3)) +>b1 : new (x: string) => string +>a1 : new (x: T) => T var r8b2 = b2 !== a2; ->r8b2 : boolean, Symbol(r8b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 158, 3)) +>r8b2 : boolean >b2 !== a2 : boolean ->b2 : new (x: string, y: number) => string, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 12, 3)) ->a2 : new (x: T) => T, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 11, 3)) +>b2 : new (x: string, y: number) => string +>a2 : new (x: T) => T var r8b3 = b3 !== a3; ->r8b3 : boolean, Symbol(r8b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 159, 3)) +>r8b3 : boolean >b3 !== a3 : boolean ->b3 : new (x: string, y: number) => string, Symbol(b3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 15, 3)) ->a3 : new (x: T, y: U) => T, Symbol(a3, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 14, 3)) +>b3 : new (x: string, y: number) => string +>a3 : new (x: T, y: U) => T var r8b4 = b4 !== a4; ->r8b4 : boolean, Symbol(r8b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 160, 3)) +>r8b4 : boolean >b4 !== a4 : boolean ->b4 : new (x?: string) => string, Symbol(b4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 18, 3)) ->a4 : new (x?: T) => T, Symbol(a4, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 17, 3)) +>b4 : new (x?: string) => string +>a4 : new (x?: T) => T var r8b5 = b5 !== a5; ->r8b5 : boolean, Symbol(r8b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 161, 3)) +>r8b5 : boolean >b5 !== a5 : boolean ->b5 : new (...x: string[]) => string, Symbol(b5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 21, 3)) ->a5 : new (...x: T[]) => T, Symbol(a5, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 20, 3)) +>b5 : new (...x: string[]) => string +>a5 : new (...x: T[]) => T var r8b6 = b6 !== a6; ->r8b6 : boolean, Symbol(r8b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 162, 3)) +>r8b6 : boolean >b6 !== a6 : boolean ->b6 : new (x: string, y: number) => {}, Symbol(b6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 24, 3)) ->a6 : new (x: T, y: T) => T, Symbol(a6, Decl(comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts, 23, 3)) +>b6 : new (x: string, y: number) => {} +>a6 : new (x: T, y: T) => T //var r8b7 = b7 !== a7; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.symbols new file mode 100644 index 0000000000000..6c6a3fa3ae2ce --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.symbols @@ -0,0 +1,114 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts === +interface I { +>I : Symbol(I, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 0, 0)) + + a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 0, 13)) + + b?: number; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 1, 14)) +} + +interface J { +>J : Symbol(J, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 3, 1)) + + a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 5, 13)) +} + +var a: I; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>I : Symbol(I, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 0, 0)) + +var b: J; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>J : Symbol(J, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 3, 1)) + +// operator < +var ra1 = a < b; +>ra1 : Symbol(ra1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 13, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var ra2 = b < a; +>ra2 : Symbol(ra2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 14, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator > +var rb1 = a > b; +>rb1 : Symbol(rb1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 17, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var rb2 = b > a; +>rb2 : Symbol(rb2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 18, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator <= +var rc1 = a <= b; +>rc1 : Symbol(rc1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 21, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var rc2 = b <= a; +>rc2 : Symbol(rc2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 22, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator >= +var rd1 = a >= b; +>rd1 : Symbol(rd1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 25, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var rd2 = b >= a; +>rd2 : Symbol(rd2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 26, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator == +var re1 = a == b; +>re1 : Symbol(re1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 29, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var re2 = b == a; +>re2 : Symbol(re2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 30, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator != +var rf1 = a != b; +>rf1 : Symbol(rf1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 33, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var rf2 = b != a; +>rf2 : Symbol(rf2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 34, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator === +var rg1 = a === b; +>rg1 : Symbol(rg1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 37, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var rg2 = b === a; +>rg2 : Symbol(rg2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 38, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + +// operator !== +var rh1 = a !== b; +>rh1 : Symbol(rh1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 41, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) + +var rh2 = b !== a; +>rh2 : Symbol(rh2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 42, 3)) +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.types index e28308e68b02d..e94ef495a5569 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnOptionalProperty.types @@ -1,130 +1,130 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts === interface I { ->I : I, Symbol(I, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 0, 0)) +>I : I a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 0, 13)) +>a : string b?: number; ->b : number, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 1, 14)) +>b : number } interface J { ->J : J, Symbol(J, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 3, 1)) +>J : J a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 5, 13)) +>a : string } var a: I; ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->I : I, Symbol(I, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 0, 0)) +>a : I +>I : I var b: J; ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->J : J, Symbol(J, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 3, 1)) +>b : J +>J : J // operator < var ra1 = a < b; ->ra1 : boolean, Symbol(ra1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 13, 3)) +>ra1 : boolean >a < b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var ra2 = b < a; ->ra2 : boolean, Symbol(ra2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 14, 3)) +>ra2 : boolean >b < a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator > var rb1 = a > b; ->rb1 : boolean, Symbol(rb1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 17, 3)) +>rb1 : boolean >a > b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var rb2 = b > a; ->rb2 : boolean, Symbol(rb2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 18, 3)) +>rb2 : boolean >b > a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator <= var rc1 = a <= b; ->rc1 : boolean, Symbol(rc1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 21, 3)) +>rc1 : boolean >a <= b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var rc2 = b <= a; ->rc2 : boolean, Symbol(rc2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 22, 3)) +>rc2 : boolean >b <= a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator >= var rd1 = a >= b; ->rd1 : boolean, Symbol(rd1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 25, 3)) +>rd1 : boolean >a >= b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var rd2 = b >= a; ->rd2 : boolean, Symbol(rd2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 26, 3)) +>rd2 : boolean >b >= a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator == var re1 = a == b; ->re1 : boolean, Symbol(re1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 29, 3)) +>re1 : boolean >a == b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var re2 = b == a; ->re2 : boolean, Symbol(re2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 30, 3)) +>re2 : boolean >b == a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator != var rf1 = a != b; ->rf1 : boolean, Symbol(rf1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 33, 3)) +>rf1 : boolean >a != b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var rf2 = b != a; ->rf2 : boolean, Symbol(rf2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 34, 3)) +>rf2 : boolean >b != a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator === var rg1 = a === b; ->rg1 : boolean, Symbol(rg1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 37, 3)) +>rg1 : boolean >a === b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var rg2 = b === a; ->rg2 : boolean, Symbol(rg2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 38, 3)) +>rg2 : boolean >b === a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I // operator !== var rh1 = a !== b; ->rh1 : boolean, Symbol(rh1, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 41, 3)) +>rh1 : boolean >a !== b : boolean ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) +>a : I +>b : J var rh2 = b !== a; ->rh2 : boolean, Symbol(rh2, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 42, 3)) +>rh2 : boolean >b !== a : boolean ->b : J, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 10, 3)) ->a : I, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnOptionalProperty.ts, 9, 3)) +>b : J +>a : I diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.symbols b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.symbols new file mode 100644 index 0000000000000..52d6e35d65e68 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.symbols @@ -0,0 +1,239 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts === +class Base { +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) + + public a: string; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 12)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 2, 1)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) + + public b: string; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 4, 28)) +} + +class A1 { +>A1 : Symbol(A1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 6, 1)) + + public a: Base; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 8, 10)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) + + public b: Base; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 9, 19)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) +} + +class B1 { +>B1 : Symbol(B1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 11, 1)) + + public a: Base; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 13, 10)) +>Base : Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) + + public b: Derived; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 14, 19)) +>Derived : Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 2, 1)) +} + +class A2 { +>A2 : Symbol(A2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 16, 1)) + + private a; +>a : Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 18, 10)) +} + +class B2 extends A2 { +>B2 : Symbol(B2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 20, 1)) +>A2 : Symbol(A2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 16, 1)) + + private b; +>b : Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 22, 21)) +} + +var a1: A1; +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>A1 : Symbol(A1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 6, 1)) + +var a2: A2; +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>A2 : Symbol(A2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 16, 1)) + +var b1: B1; +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>B1 : Symbol(B1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 11, 1)) + +var b2: B2; +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>B2 : Symbol(B2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 20, 1)) + +// operator < +var ra1 = a1 < b1; +>ra1 : Symbol(ra1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 32, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var ra2 = a2 < b2; +>ra2 : Symbol(ra2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 33, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var ra3 = b1 < a1; +>ra3 : Symbol(ra3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 34, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var ra4 = b2 < a2; +>ra4 : Symbol(ra4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 35, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator > +var rb1 = a1 > b1; +>rb1 : Symbol(rb1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 38, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var rb2 = a2 > b2; +>rb2 : Symbol(rb2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 39, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var rb3 = b1 > a1; +>rb3 : Symbol(rb3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 40, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var rb4 = b2 > a2; +>rb4 : Symbol(rb4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 41, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator <= +var rc1 = a1 <= b1; +>rc1 : Symbol(rc1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 44, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var rc2 = a2 <= b2; +>rc2 : Symbol(rc2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 45, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var rc3 = b1 <= a1; +>rc3 : Symbol(rc3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 46, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var rc4 = b2 <= a2; +>rc4 : Symbol(rc4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 47, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator >= +var rd1 = a1 >= b1; +>rd1 : Symbol(rd1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 50, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var rd2 = a2 >= b2; +>rd2 : Symbol(rd2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 51, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var rd3 = b1 >= a1; +>rd3 : Symbol(rd3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 52, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var rd4 = b2 >= a2; +>rd4 : Symbol(rd4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 53, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator == +var re1 = a1 == b1; +>re1 : Symbol(re1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 56, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var re2 = a2 == b2; +>re2 : Symbol(re2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 57, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var re3 = b1 == a1; +>re3 : Symbol(re3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 58, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var re4 = b2 == a2; +>re4 : Symbol(re4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 59, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator != +var rf1 = a1 != b1; +>rf1 : Symbol(rf1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 62, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var rf2 = a2 != b2; +>rf2 : Symbol(rf2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 63, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var rf3 = b1 != a1; +>rf3 : Symbol(rf3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 64, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var rf4 = b2 != a2; +>rf4 : Symbol(rf4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 65, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator === +var rg1 = a1 === b1; +>rg1 : Symbol(rg1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 68, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var rg2 = a2 === b2; +>rg2 : Symbol(rg2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 69, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var rg3 = b1 === a1; +>rg3 : Symbol(rg3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 70, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var rg4 = b2 === a2; +>rg4 : Symbol(rg4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 71, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + +// operator !== +var rh1 = a1 !== b1; +>rh1 : Symbol(rh1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 74, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) + +var rh2 = a2 !== b2; +>rh2 : Symbol(rh2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 75, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) + +var rh3 = b1 !== a1; +>rh3 : Symbol(rh3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 76, 3)) +>b1 : Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) + +var rh4 = b2 !== a2; +>rh4 : Symbol(rh4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 77, 3)) +>b2 : Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.types index acf4563c0a88e..d604115e16126 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnProperty.types @@ -1,271 +1,271 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnProperty.ts === class Base { ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) +>Base : Base public a: string; ->a : string, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 12)) +>a : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) +>Derived : Derived +>Base : Base public b: string; ->b : string, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 4, 28)) +>b : string } class A1 { ->A1 : A1, Symbol(A1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 6, 1)) +>A1 : A1 public a: Base; ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 8, 10)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) +>a : Base +>Base : Base public b: Base; ->b : Base, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 9, 19)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) +>b : Base +>Base : Base } class B1 { ->B1 : B1, Symbol(B1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 11, 1)) +>B1 : B1 public a: Base; ->a : Base, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 13, 10)) ->Base : Base, Symbol(Base, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 0, 0)) +>a : Base +>Base : Base public b: Derived; ->b : Derived, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 14, 19)) ->Derived : Derived, Symbol(Derived, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 2, 1)) +>b : Derived +>Derived : Derived } class A2 { ->A2 : A2, Symbol(A2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 16, 1)) +>A2 : A2 private a; ->a : any, Symbol(a, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 18, 10)) +>a : any } class B2 extends A2 { ->B2 : B2, Symbol(B2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 20, 1)) ->A2 : A2, Symbol(A2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 16, 1)) +>B2 : B2 +>A2 : A2 private b; ->b : any, Symbol(b, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 22, 21)) +>b : any } var a1: A1; ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->A1 : A1, Symbol(A1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 6, 1)) +>a1 : A1 +>A1 : A1 var a2: A2; ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->A2 : A2, Symbol(A2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 16, 1)) +>a2 : A2 +>A2 : A2 var b1: B1; ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->B1 : B1, Symbol(B1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 11, 1)) +>b1 : B1 +>B1 : B1 var b2: B2; ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->B2 : B2, Symbol(B2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 20, 1)) +>b2 : B2 +>B2 : B2 // operator < var ra1 = a1 < b1; ->ra1 : boolean, Symbol(ra1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 32, 3)) +>ra1 : boolean >a1 < b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var ra2 = a2 < b2; ->ra2 : boolean, Symbol(ra2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 33, 3)) +>ra2 : boolean >a2 < b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var ra3 = b1 < a1; ->ra3 : boolean, Symbol(ra3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 34, 3)) +>ra3 : boolean >b1 < a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var ra4 = b2 < a2; ->ra4 : boolean, Symbol(ra4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 35, 3)) +>ra4 : boolean >b2 < a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator > var rb1 = a1 > b1; ->rb1 : boolean, Symbol(rb1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 38, 3)) +>rb1 : boolean >a1 > b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var rb2 = a2 > b2; ->rb2 : boolean, Symbol(rb2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 39, 3)) +>rb2 : boolean >a2 > b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var rb3 = b1 > a1; ->rb3 : boolean, Symbol(rb3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 40, 3)) +>rb3 : boolean >b1 > a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var rb4 = b2 > a2; ->rb4 : boolean, Symbol(rb4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 41, 3)) +>rb4 : boolean >b2 > a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator <= var rc1 = a1 <= b1; ->rc1 : boolean, Symbol(rc1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 44, 3)) +>rc1 : boolean >a1 <= b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var rc2 = a2 <= b2; ->rc2 : boolean, Symbol(rc2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 45, 3)) +>rc2 : boolean >a2 <= b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var rc3 = b1 <= a1; ->rc3 : boolean, Symbol(rc3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 46, 3)) +>rc3 : boolean >b1 <= a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var rc4 = b2 <= a2; ->rc4 : boolean, Symbol(rc4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 47, 3)) +>rc4 : boolean >b2 <= a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator >= var rd1 = a1 >= b1; ->rd1 : boolean, Symbol(rd1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 50, 3)) +>rd1 : boolean >a1 >= b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var rd2 = a2 >= b2; ->rd2 : boolean, Symbol(rd2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 51, 3)) +>rd2 : boolean >a2 >= b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var rd3 = b1 >= a1; ->rd3 : boolean, Symbol(rd3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 52, 3)) +>rd3 : boolean >b1 >= a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var rd4 = b2 >= a2; ->rd4 : boolean, Symbol(rd4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 53, 3)) +>rd4 : boolean >b2 >= a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator == var re1 = a1 == b1; ->re1 : boolean, Symbol(re1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 56, 3)) +>re1 : boolean >a1 == b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var re2 = a2 == b2; ->re2 : boolean, Symbol(re2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 57, 3)) +>re2 : boolean >a2 == b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var re3 = b1 == a1; ->re3 : boolean, Symbol(re3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 58, 3)) +>re3 : boolean >b1 == a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var re4 = b2 == a2; ->re4 : boolean, Symbol(re4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 59, 3)) +>re4 : boolean >b2 == a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator != var rf1 = a1 != b1; ->rf1 : boolean, Symbol(rf1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 62, 3)) +>rf1 : boolean >a1 != b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var rf2 = a2 != b2; ->rf2 : boolean, Symbol(rf2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 63, 3)) +>rf2 : boolean >a2 != b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var rf3 = b1 != a1; ->rf3 : boolean, Symbol(rf3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 64, 3)) +>rf3 : boolean >b1 != a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var rf4 = b2 != a2; ->rf4 : boolean, Symbol(rf4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 65, 3)) +>rf4 : boolean >b2 != a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator === var rg1 = a1 === b1; ->rg1 : boolean, Symbol(rg1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 68, 3)) +>rg1 : boolean >a1 === b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var rg2 = a2 === b2; ->rg2 : boolean, Symbol(rg2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 69, 3)) +>rg2 : boolean >a2 === b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var rg3 = b1 === a1; ->rg3 : boolean, Symbol(rg3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 70, 3)) +>rg3 : boolean >b1 === a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var rg4 = b2 === a2; ->rg4 : boolean, Symbol(rg4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 71, 3)) +>rg4 : boolean >b2 === a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 // operator !== var rh1 = a1 !== b1; ->rh1 : boolean, Symbol(rh1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 74, 3)) +>rh1 : boolean >a1 !== b1 : boolean ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) +>a1 : A1 +>b1 : B1 var rh2 = a2 !== b2; ->rh2 : boolean, Symbol(rh2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 75, 3)) +>rh2 : boolean >a2 !== b2 : boolean ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) +>a2 : A2 +>b2 : B2 var rh3 = b1 !== a1; ->rh3 : boolean, Symbol(rh3, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 76, 3)) +>rh3 : boolean >b1 !== a1 : boolean ->b1 : B1, Symbol(b1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 28, 3)) ->a1 : A1, Symbol(a1, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 26, 3)) +>b1 : B1 +>a1 : A1 var rh4 = b2 !== a2; ->rh4 : boolean, Symbol(rh4, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 77, 3)) +>rh4 : boolean >b2 !== a2 : boolean ->b2 : B2, Symbol(b2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 29, 3)) ->a2 : A2, Symbol(a2, Decl(comparisonOperatorWithSubtypeObjectOnProperty.ts, 27, 3)) +>b2 : B2 +>a2 : A2 diff --git a/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.symbols b/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.symbols new file mode 100644 index 0000000000000..9d6c0a9ca03d0 --- /dev/null +++ b/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.symbols @@ -0,0 +1,44 @@ +=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTwoOperandsAreAny.ts === +var a: any; +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r1 = a < a; +>r1 : Symbol(r1, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 2, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r2 = a > a; +>r2 : Symbol(r2, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 3, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r3 = a <= a; +>r3 : Symbol(r3, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 4, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r4 = a >= a; +>r4 : Symbol(r4, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 5, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r5 = a == a; +>r5 : Symbol(r5, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 6, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r6 = a != a; +>r6 : Symbol(r6, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 7, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r7 = a === a; +>r7 : Symbol(r7, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 8, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + +var r8 = a !== a; +>r8 : Symbol(r8, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 9, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) + diff --git a/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.types b/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.types index 09ff5b0e0a883..7ddcb5da1776b 100644 --- a/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.types +++ b/tests/baselines/reference/comparisonOperatorWithTwoOperandsAreAny.types @@ -1,52 +1,52 @@ === tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTwoOperandsAreAny.ts === var a: any; ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any var r1 = a < a; ->r1 : boolean, Symbol(r1, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 2, 3)) +>r1 : boolean >a < a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r2 = a > a; ->r2 : boolean, Symbol(r2, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 3, 3)) +>r2 : boolean >a > a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r3 = a <= a; ->r3 : boolean, Symbol(r3, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 4, 3)) +>r3 : boolean >a <= a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r4 = a >= a; ->r4 : boolean, Symbol(r4, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 5, 3)) +>r4 : boolean >a >= a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r5 = a == a; ->r5 : boolean, Symbol(r5, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 6, 3)) +>r5 : boolean >a == a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r6 = a != a; ->r6 : boolean, Symbol(r6, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 7, 3)) +>r6 : boolean >a != a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r7 = a === a; ->r7 : boolean, Symbol(r7, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 8, 3)) +>r7 : boolean >a === a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any var r8 = a !== a; ->r8 : boolean, Symbol(r8, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 9, 3)) +>r8 : boolean >a !== a : boolean ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(comparisonOperatorWithTwoOperandsAreAny.ts, 0, 3)) +>a : any +>a : any diff --git a/tests/baselines/reference/complexClassRelationships.symbols b/tests/baselines/reference/complexClassRelationships.symbols new file mode 100644 index 0000000000000..533c5171cf8b5 --- /dev/null +++ b/tests/baselines/reference/complexClassRelationships.symbols @@ -0,0 +1,117 @@ +=== tests/cases/compiler/complexClassRelationships.ts === +// There should be no errors in this file +class Derived extends Base { +>Derived : Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) +>Base : Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) + + public static createEmpty(): Derived { +>createEmpty : Symbol(Derived.createEmpty, Decl(complexClassRelationships.ts, 1, 28)) +>Derived : Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) + + var item = new Derived(); +>item : Symbol(item, Decl(complexClassRelationships.ts, 3, 11)) +>Derived : Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) + + return item; +>item : Symbol(item, Decl(complexClassRelationships.ts, 3, 11)) + } +} +class BaseCollection { +>BaseCollection : Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) +>T : Symbol(T, Decl(complexClassRelationships.ts, 7, 21)) +>Base : Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) + + constructor(f: () => T) { +>f : Symbol(f, Decl(complexClassRelationships.ts, 8, 16)) +>T : Symbol(T, Decl(complexClassRelationships.ts, 7, 21)) + + (item: Thing) => { return [item.Components]; }; +>item : Symbol(item, Decl(complexClassRelationships.ts, 9, 9)) +>Thing : Symbol(Thing, Decl(complexClassRelationships.ts, 14, 1)) +>item.Components : Symbol(Thing.Components, Decl(complexClassRelationships.ts, 16, 13)) +>item : Symbol(item, Decl(complexClassRelationships.ts, 9, 9)) +>Components : Symbol(Thing.Components, Decl(complexClassRelationships.ts, 16, 13)) + } +} +class Base { +>Base : Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) + + ownerCollection: BaseCollection; +>ownerCollection : Symbol(ownerCollection, Decl(complexClassRelationships.ts, 12, 12)) +>BaseCollection : Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) +>Base : Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) +} + +class Thing { +>Thing : Symbol(Thing, Decl(complexClassRelationships.ts, 14, 1)) + + public get Components(): ComponentCollection { return null } +>Components : Symbol(Components, Decl(complexClassRelationships.ts, 16, 13)) +>ComponentCollection : Symbol(ComponentCollection, Decl(complexClassRelationships.ts, 18, 1)) +} + +class ComponentCollection { +>ComponentCollection : Symbol(ComponentCollection, Decl(complexClassRelationships.ts, 18, 1)) +>T : Symbol(T, Decl(complexClassRelationships.ts, 20, 26)) + + private static sortComponents(p: Foo) { +>sortComponents : Symbol(ComponentCollection.sortComponents, Decl(complexClassRelationships.ts, 20, 30)) +>p : Symbol(p, Decl(complexClassRelationships.ts, 21, 34)) +>Foo : Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) + + return p.prop1; +>p.prop1 : Symbol(Foo.prop1, Decl(complexClassRelationships.ts, 26, 11)) +>p : Symbol(p, Decl(complexClassRelationships.ts, 21, 34)) +>prop1 : Symbol(Foo.prop1, Decl(complexClassRelationships.ts, 26, 11)) + } +} + +class Foo { +>Foo : Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) + + public get prop1() { +>prop1 : Symbol(prop1, Decl(complexClassRelationships.ts, 26, 11)) + + return new GenericType(this); +>GenericType : Symbol(GenericType, Decl(complexClassRelationships.ts, 36, 1)) +>this : Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) + } + public populate() { +>populate : Symbol(populate, Decl(complexClassRelationships.ts, 29, 5)) + + this.prop2; +>this.prop2 : Symbol(prop2, Decl(complexClassRelationships.ts, 32, 5)) +>this : Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) +>prop2 : Symbol(prop2, Decl(complexClassRelationships.ts, 32, 5)) + } + public get prop2(): BaseCollection { +>prop2 : Symbol(prop2, Decl(complexClassRelationships.ts, 32, 5)) +>BaseCollection : Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) +>Derived : Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) + + return new BaseCollection(Derived.createEmpty); +>BaseCollection : Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) +>Derived : Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) +>Derived.createEmpty : Symbol(Derived.createEmpty, Decl(complexClassRelationships.ts, 1, 28)) +>Derived : Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) +>createEmpty : Symbol(Derived.createEmpty, Decl(complexClassRelationships.ts, 1, 28)) + } +} + +class GenericType { +>GenericType : Symbol(GenericType, Decl(complexClassRelationships.ts, 36, 1)) +>T : Symbol(T, Decl(complexClassRelationships.ts, 38, 18)) + + constructor(parent: FooBase) { } +>parent : Symbol(parent, Decl(complexClassRelationships.ts, 39, 16)) +>FooBase : Symbol(FooBase, Decl(complexClassRelationships.ts, 40, 1)) +} + +class FooBase { +>FooBase : Symbol(FooBase, Decl(complexClassRelationships.ts, 40, 1)) + + public populate() { +>populate : Symbol(populate, Decl(complexClassRelationships.ts, 42, 15)) + + } +} diff --git a/tests/baselines/reference/complexClassRelationships.types b/tests/baselines/reference/complexClassRelationships.types index b0346bce83ee3..43d0232e30a8a 100644 --- a/tests/baselines/reference/complexClassRelationships.types +++ b/tests/baselines/reference/complexClassRelationships.types @@ -1,123 +1,123 @@ === tests/cases/compiler/complexClassRelationships.ts === // There should be no errors in this file class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) +>Derived : Derived +>Base : Base public static createEmpty(): Derived { ->createEmpty : () => Derived, Symbol(Derived.createEmpty, Decl(complexClassRelationships.ts, 1, 28)) ->Derived : Derived, Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) +>createEmpty : () => Derived +>Derived : Derived var item = new Derived(); ->item : Derived, Symbol(item, Decl(complexClassRelationships.ts, 3, 11)) +>item : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) +>Derived : typeof Derived return item; ->item : Derived, Symbol(item, Decl(complexClassRelationships.ts, 3, 11)) +>item : Derived } } class BaseCollection { ->BaseCollection : BaseCollection, Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) ->T : T, Symbol(T, Decl(complexClassRelationships.ts, 7, 21)) ->Base : Base, Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) +>BaseCollection : BaseCollection +>T : T +>Base : Base constructor(f: () => T) { ->f : () => T, Symbol(f, Decl(complexClassRelationships.ts, 8, 16)) ->T : T, Symbol(T, Decl(complexClassRelationships.ts, 7, 21)) +>f : () => T +>T : T (item: Thing) => { return [item.Components]; }; >(item: Thing) => { return [item.Components]; } : (item: Thing) => ComponentCollection[] ->item : Thing, Symbol(item, Decl(complexClassRelationships.ts, 9, 9)) ->Thing : Thing, Symbol(Thing, Decl(complexClassRelationships.ts, 14, 1)) +>item : Thing +>Thing : Thing >[item.Components] : ComponentCollection[] ->item.Components : ComponentCollection, Symbol(Thing.Components, Decl(complexClassRelationships.ts, 16, 13)) ->item : Thing, Symbol(item, Decl(complexClassRelationships.ts, 9, 9)) ->Components : ComponentCollection, Symbol(Thing.Components, Decl(complexClassRelationships.ts, 16, 13)) +>item.Components : ComponentCollection +>item : Thing +>Components : ComponentCollection } } class Base { ->Base : Base, Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) +>Base : Base ownerCollection: BaseCollection; ->ownerCollection : BaseCollection, Symbol(ownerCollection, Decl(complexClassRelationships.ts, 12, 12)) ->BaseCollection : BaseCollection, Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) ->Base : Base, Symbol(Base, Decl(complexClassRelationships.ts, 11, 1)) +>ownerCollection : BaseCollection +>BaseCollection : BaseCollection +>Base : Base } class Thing { ->Thing : Thing, Symbol(Thing, Decl(complexClassRelationships.ts, 14, 1)) +>Thing : Thing public get Components(): ComponentCollection { return null } ->Components : ComponentCollection, Symbol(Components, Decl(complexClassRelationships.ts, 16, 13)) ->ComponentCollection : ComponentCollection, Symbol(ComponentCollection, Decl(complexClassRelationships.ts, 18, 1)) +>Components : ComponentCollection +>ComponentCollection : ComponentCollection >null : null } class ComponentCollection { ->ComponentCollection : ComponentCollection, Symbol(ComponentCollection, Decl(complexClassRelationships.ts, 18, 1)) ->T : T, Symbol(T, Decl(complexClassRelationships.ts, 20, 26)) +>ComponentCollection : ComponentCollection +>T : T private static sortComponents(p: Foo) { ->sortComponents : (p: Foo) => GenericType, Symbol(ComponentCollection.sortComponents, Decl(complexClassRelationships.ts, 20, 30)) ->p : Foo, Symbol(p, Decl(complexClassRelationships.ts, 21, 34)) ->Foo : Foo, Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) +>sortComponents : (p: Foo) => GenericType +>p : Foo +>Foo : Foo return p.prop1; ->p.prop1 : GenericType, Symbol(Foo.prop1, Decl(complexClassRelationships.ts, 26, 11)) ->p : Foo, Symbol(p, Decl(complexClassRelationships.ts, 21, 34)) ->prop1 : GenericType, Symbol(Foo.prop1, Decl(complexClassRelationships.ts, 26, 11)) +>p.prop1 : GenericType +>p : Foo +>prop1 : GenericType } } class Foo { ->Foo : Foo, Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) +>Foo : Foo public get prop1() { ->prop1 : GenericType, Symbol(prop1, Decl(complexClassRelationships.ts, 26, 11)) +>prop1 : GenericType return new GenericType(this); >new GenericType(this) : GenericType ->GenericType : typeof GenericType, Symbol(GenericType, Decl(complexClassRelationships.ts, 36, 1)) ->this : Foo, Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) +>GenericType : typeof GenericType +>this : Foo } public populate() { ->populate : () => void, Symbol(populate, Decl(complexClassRelationships.ts, 29, 5)) +>populate : () => void this.prop2; ->this.prop2 : BaseCollection, Symbol(prop2, Decl(complexClassRelationships.ts, 32, 5)) ->this : Foo, Symbol(Foo, Decl(complexClassRelationships.ts, 24, 1)) ->prop2 : BaseCollection, Symbol(prop2, Decl(complexClassRelationships.ts, 32, 5)) +>this.prop2 : BaseCollection +>this : Foo +>prop2 : BaseCollection } public get prop2(): BaseCollection { ->prop2 : BaseCollection, Symbol(prop2, Decl(complexClassRelationships.ts, 32, 5)) ->BaseCollection : BaseCollection, Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) ->Derived : Derived, Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) +>prop2 : BaseCollection +>BaseCollection : BaseCollection +>Derived : Derived return new BaseCollection(Derived.createEmpty); >new BaseCollection(Derived.createEmpty) : BaseCollection ->BaseCollection : typeof BaseCollection, Symbol(BaseCollection, Decl(complexClassRelationships.ts, 6, 1)) ->Derived : Derived, Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) ->Derived.createEmpty : () => Derived, Symbol(Derived.createEmpty, Decl(complexClassRelationships.ts, 1, 28)) ->Derived : typeof Derived, Symbol(Derived, Decl(complexClassRelationships.ts, 0, 0)) ->createEmpty : () => Derived, Symbol(Derived.createEmpty, Decl(complexClassRelationships.ts, 1, 28)) +>BaseCollection : typeof BaseCollection +>Derived : Derived +>Derived.createEmpty : () => Derived +>Derived : typeof Derived +>createEmpty : () => Derived } } class GenericType { ->GenericType : GenericType, Symbol(GenericType, Decl(complexClassRelationships.ts, 36, 1)) ->T : T, Symbol(T, Decl(complexClassRelationships.ts, 38, 18)) +>GenericType : GenericType +>T : T constructor(parent: FooBase) { } ->parent : FooBase, Symbol(parent, Decl(complexClassRelationships.ts, 39, 16)) ->FooBase : FooBase, Symbol(FooBase, Decl(complexClassRelationships.ts, 40, 1)) +>parent : FooBase +>FooBase : FooBase } class FooBase { ->FooBase : FooBase, Symbol(FooBase, Decl(complexClassRelationships.ts, 40, 1)) +>FooBase : FooBase public populate() { ->populate : () => void, Symbol(populate, Decl(complexClassRelationships.ts, 42, 15)) +>populate : () => void } } diff --git a/tests/baselines/reference/compositeGenericFunction.symbols b/tests/baselines/reference/compositeGenericFunction.symbols new file mode 100644 index 0000000000000..520f1eaf4cacb --- /dev/null +++ b/tests/baselines/reference/compositeGenericFunction.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/compositeGenericFunction.ts === +function f(value: T) { return value; }; +>f : Symbol(f, Decl(compositeGenericFunction.ts, 0, 0)) +>T : Symbol(T, Decl(compositeGenericFunction.ts, 0, 11)) +>value : Symbol(value, Decl(compositeGenericFunction.ts, 0, 14)) +>T : Symbol(T, Decl(compositeGenericFunction.ts, 0, 11)) +>value : Symbol(value, Decl(compositeGenericFunction.ts, 0, 14)) + +function h(func: (x: number) => R): R { return null; } +>h : Symbol(h, Decl(compositeGenericFunction.ts, 0, 42)) +>R : Symbol(R, Decl(compositeGenericFunction.ts, 2, 11)) +>func : Symbol(func, Decl(compositeGenericFunction.ts, 2, 14)) +>x : Symbol(x, Decl(compositeGenericFunction.ts, 2, 21)) +>R : Symbol(R, Decl(compositeGenericFunction.ts, 2, 11)) +>R : Symbol(R, Decl(compositeGenericFunction.ts, 2, 11)) + +var z: number = h(f); +>z : Symbol(z, Decl(compositeGenericFunction.ts, 4, 3), Decl(compositeGenericFunction.ts, 5, 3)) +>h : Symbol(h, Decl(compositeGenericFunction.ts, 0, 42)) +>f : Symbol(f, Decl(compositeGenericFunction.ts, 0, 0)) + +var z: number = h(f); +>z : Symbol(z, Decl(compositeGenericFunction.ts, 4, 3), Decl(compositeGenericFunction.ts, 5, 3)) +>h : Symbol(h, Decl(compositeGenericFunction.ts, 0, 42)) +>f : Symbol(f, Decl(compositeGenericFunction.ts, 0, 0)) + diff --git a/tests/baselines/reference/compositeGenericFunction.types b/tests/baselines/reference/compositeGenericFunction.types index aa7deb0270fd7..1957c3bb62d67 100644 --- a/tests/baselines/reference/compositeGenericFunction.types +++ b/tests/baselines/reference/compositeGenericFunction.types @@ -1,29 +1,29 @@ === tests/cases/compiler/compositeGenericFunction.ts === function f(value: T) { return value; }; ->f : (value: T) => T, Symbol(f, Decl(compositeGenericFunction.ts, 0, 0)) ->T : T, Symbol(T, Decl(compositeGenericFunction.ts, 0, 11)) ->value : T, Symbol(value, Decl(compositeGenericFunction.ts, 0, 14)) ->T : T, Symbol(T, Decl(compositeGenericFunction.ts, 0, 11)) ->value : T, Symbol(value, Decl(compositeGenericFunction.ts, 0, 14)) +>f : (value: T) => T +>T : T +>value : T +>T : T +>value : T function h(func: (x: number) => R): R { return null; } ->h : (func: (x: number) => R) => R, Symbol(h, Decl(compositeGenericFunction.ts, 0, 42)) ->R : R, Symbol(R, Decl(compositeGenericFunction.ts, 2, 11)) ->func : (x: number) => R, Symbol(func, Decl(compositeGenericFunction.ts, 2, 14)) ->x : number, Symbol(x, Decl(compositeGenericFunction.ts, 2, 21)) ->R : R, Symbol(R, Decl(compositeGenericFunction.ts, 2, 11)) ->R : R, Symbol(R, Decl(compositeGenericFunction.ts, 2, 11)) +>h : (func: (x: number) => R) => R +>R : R +>func : (x: number) => R +>x : number +>R : R +>R : R >null : null var z: number = h(f); ->z : number, Symbol(z, Decl(compositeGenericFunction.ts, 4, 3), Decl(compositeGenericFunction.ts, 5, 3)) +>z : number >h(f) : number ->h : (func: (x: number) => R) => R, Symbol(h, Decl(compositeGenericFunction.ts, 0, 42)) ->f : (value: T) => T, Symbol(f, Decl(compositeGenericFunction.ts, 0, 0)) +>h : (func: (x: number) => R) => R +>f : (value: T) => T var z: number = h(f); ->z : number, Symbol(z, Decl(compositeGenericFunction.ts, 4, 3), Decl(compositeGenericFunction.ts, 5, 3)) +>z : number >h(f) : number ->h : (func: (x: number) => R) => R, Symbol(h, Decl(compositeGenericFunction.ts, 0, 42)) ->f : (value: T) => T, Symbol(f, Decl(compositeGenericFunction.ts, 0, 0)) +>h : (func: (x: number) => R) => R +>f : (value: T) => T diff --git a/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.symbols b/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.symbols new file mode 100644 index 0000000000000..cb2a0975e0ba0 --- /dev/null +++ b/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.symbols @@ -0,0 +1,155 @@ +=== tests/cases/conformance/expressions/assignmentOperator/compoundAdditionAssignmentLHSCanBeAssigned.ts === +enum E { a, b } +>E : Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) +>a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>b : Symbol(E.b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 11)) + +var a: any; +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +var b: void; +>b : Symbol(b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 3, 3)) + +var x1: any; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) + +x1 += a; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x1 += b; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>b : Symbol(b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 3, 3)) + +x1 += true; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) + +x1 += 0; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) + +x1 += ''; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) + +x1 += E.a; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>E.a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>E : Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) +>a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) + +x1 += {}; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) + +x1 += null; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) + +x1 += undefined; +>x1 : Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>undefined : Symbol(undefined) + +var x2: string; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) + +x2 += a; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x2 += b; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>b : Symbol(b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 3, 3)) + +x2 += true; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) + +x2 += 0; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) + +x2 += ''; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) + +x2 += E.a; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>E.a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>E : Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) +>a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) + +x2 += {}; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) + +x2 += null; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) + +x2 += undefined; +>x2 : Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>undefined : Symbol(undefined) + +var x3: number; +>x3 : Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) + +x3 += a; +>x3 : Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x3 += 0; +>x3 : Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) + +x3 += E.a; +>x3 : Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) +>E.a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>E : Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) +>a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) + +x3 += null; +>x3 : Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) + +x3 += undefined; +>x3 : Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) +>undefined : Symbol(undefined) + +var x4: E; +>x4 : Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) +>E : Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) + +x4 += a; +>x4 : Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x4 += 0; +>x4 : Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) + +x4 += E.a; +>x4 : Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) +>E.a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>E : Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) +>a : Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) + +x4 += null; +>x4 : Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) + +x4 += undefined; +>x4 : Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) +>undefined : Symbol(undefined) + +var x5: boolean; +>x5 : Symbol(x5, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 41, 3)) + +x5 += a; +>x5 : Symbol(x5, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 41, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +var x6: {}; +>x6 : Symbol(x6, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 44, 3)) + +x6 += a; +>x6 : Symbol(x6, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 44, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x6 += ''; +>x6 : Symbol(x6, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 44, 3)) + +var x7: void; +>x7 : Symbol(x7, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 48, 3)) + +x7 += a; +>x7 : Symbol(x7, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 48, 3)) +>a : Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) + diff --git a/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.types b/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.types index fb98089e345f0..e40422450b44f 100644 --- a/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.types +++ b/tests/baselines/reference/compoundAdditionAssignmentLHSCanBeAssigned.types @@ -1,202 +1,202 @@ === tests/cases/conformance/expressions/assignmentOperator/compoundAdditionAssignmentLHSCanBeAssigned.ts === enum E { a, b } ->E : E, Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 11)) +>E : E +>a : E +>b : E var a: any; ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>a : any var b: void; ->b : void, Symbol(b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 3, 3)) +>b : void var x1: any; ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>x1 : any x1 += a; >x1 += a : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x1 : any +>a : any x1 += b; >x1 += b : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) ->b : void, Symbol(b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 3, 3)) +>x1 : any +>b : void x1 += true; >x1 += true : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>x1 : any >true : boolean x1 += 0; >x1 += 0 : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>x1 : any >0 : number x1 += ''; >x1 += '' : string ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>x1 : any >'' : string x1 += E.a; >x1 += E.a : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) ->E.a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>x1 : any +>E.a : E +>E : typeof E +>a : E x1 += {}; >x1 += {} : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>x1 : any >{} : {} x1 += null; >x1 += null : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) +>x1 : any >null : null x1 += undefined; >x1 += undefined : any ->x1 : any, Symbol(x1, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 5, 3)) ->undefined : undefined, Symbol(undefined) +>x1 : any +>undefined : undefined var x2: string; ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>x2 : string x2 += a; >x2 += a : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x2 : string +>a : any x2 += b; >x2 += b : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) ->b : void, Symbol(b, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 3, 3)) +>x2 : string +>b : void x2 += true; >x2 += true : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>x2 : string >true : boolean x2 += 0; >x2 += 0 : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>x2 : string >0 : number x2 += ''; >x2 += '' : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>x2 : string >'' : string x2 += E.a; >x2 += E.a : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) ->E.a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>x2 : string +>E.a : E +>E : typeof E +>a : E x2 += {}; >x2 += {} : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>x2 : string >{} : {} x2 += null; >x2 += null : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) +>x2 : string >null : null x2 += undefined; >x2 += undefined : string ->x2 : string, Symbol(x2, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 16, 3)) ->undefined : undefined, Symbol(undefined) +>x2 : string +>undefined : undefined var x3: number; ->x3 : number, Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) +>x3 : number x3 += a; >x3 += a : any ->x3 : number, Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x3 : number +>a : any x3 += 0; >x3 += 0 : number ->x3 : number, Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) +>x3 : number >0 : number x3 += E.a; >x3 += E.a : number ->x3 : number, Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) ->E.a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>x3 : number +>E.a : E +>E : typeof E +>a : E x3 += null; >x3 += null : number ->x3 : number, Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) +>x3 : number >null : null x3 += undefined; >x3 += undefined : number ->x3 : number, Symbol(x3, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 27, 3)) ->undefined : undefined, Symbol(undefined) +>x3 : number +>undefined : undefined var x4: E; ->x4 : E, Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) ->E : E, Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) +>x4 : E +>E : E x4 += a; >x4 += a : any ->x4 : E, Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x4 : E +>a : any x4 += 0; >x4 += 0 : number ->x4 : E, Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) +>x4 : E >0 : number x4 += E.a; >x4 += E.a : number ->x4 : E, Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) ->E.a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 0, 8)) +>x4 : E +>E.a : E +>E : typeof E +>a : E x4 += null; >x4 += null : number ->x4 : E, Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) +>x4 : E >null : null x4 += undefined; >x4 += undefined : number ->x4 : E, Symbol(x4, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 34, 3)) ->undefined : undefined, Symbol(undefined) +>x4 : E +>undefined : undefined var x5: boolean; ->x5 : boolean, Symbol(x5, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 41, 3)) +>x5 : boolean x5 += a; >x5 += a : any ->x5 : boolean, Symbol(x5, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 41, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x5 : boolean +>a : any var x6: {}; ->x6 : {}, Symbol(x6, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 44, 3)) +>x6 : {} x6 += a; >x6 += a : any ->x6 : {}, Symbol(x6, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 44, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x6 : {} +>a : any x6 += ''; >x6 += '' : string ->x6 : {}, Symbol(x6, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 44, 3)) +>x6 : {} >'' : string var x7: void; ->x7 : void, Symbol(x7, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 48, 3)) +>x7 : void x7 += a; >x7 += a : any ->x7 : void, Symbol(x7, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 48, 3)) ->a : any, Symbol(a, Decl(compoundAdditionAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x7 : void +>a : any diff --git a/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.symbols b/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.symbols new file mode 100644 index 0000000000000..b9d131217c995 --- /dev/null +++ b/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.symbols @@ -0,0 +1,84 @@ +=== tests/cases/conformance/expressions/assignmentOperator/compoundArithmeticAssignmentLHSCanBeAssigned.ts === +enum E { a, b, c } +>E : Symbol(E, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 0)) +>a : Symbol(E.a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 8)) +>b : Symbol(E.b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 11)) +>c : Symbol(E.c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 14)) + +var a: any; +>a : Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) + +var b: number; +>b : Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) + +var c: E; +>c : Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) +>E : Symbol(E, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 0)) + +var x1: any; +>x1 : Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) + +x1 *= a; +>x1 : Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) +>a : Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x1 *= b; +>x1 : Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) +>b : Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) + +x1 *= c; +>x1 : Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) +>c : Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) + +x1 *= null; +>x1 : Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) + +x1 *= undefined; +>x1 : Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) +>undefined : Symbol(undefined) + +var x2: number; +>x2 : Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) + +x2 *= a; +>x2 : Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) +>a : Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x2 *= b; +>x2 : Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) +>b : Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) + +x2 *= c; +>x2 : Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) +>c : Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) + +x2 *= null; +>x2 : Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) + +x2 *= undefined; +>x2 : Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) +>undefined : Symbol(undefined) + +var x3: E; +>x3 : Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) +>E : Symbol(E, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 0)) + +x3 *= a; +>x3 : Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) +>a : Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) + +x3 *= b; +>x3 : Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) +>b : Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) + +x3 *= c; +>x3 : Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) +>c : Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) + +x3 *= null; +>x3 : Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) + +x3 *= undefined; +>x3 : Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.types b/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.types index cd8ae3536b7ab..3b346bac53b2f 100644 --- a/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.types +++ b/tests/baselines/reference/compoundArithmeticAssignmentLHSCanBeAssigned.types @@ -1,102 +1,102 @@ === tests/cases/conformance/expressions/assignmentOperator/compoundArithmeticAssignmentLHSCanBeAssigned.ts === enum E { a, b, c } ->E : E, Symbol(E, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 8)) ->b : E, Symbol(E.b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 11)) ->c : E, Symbol(E.c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 14)) +>E : E +>a : E +>b : E +>c : E var a: any; ->a : any, Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) +>a : any var b: number; ->b : number, Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) +>b : number var c: E; ->c : E, Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) ->E : E, Symbol(E, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 0)) +>c : E +>E : E var x1: any; ->x1 : any, Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) +>x1 : any x1 *= a; >x1 *= a : number ->x1 : any, Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) ->a : any, Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x1 : any +>a : any x1 *= b; >x1 *= b : number ->x1 : any, Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) ->b : number, Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) +>x1 : any +>b : number x1 *= c; >x1 *= c : number ->x1 : any, Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) ->c : E, Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) +>x1 : any +>c : E x1 *= null; >x1 *= null : number ->x1 : any, Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) +>x1 : any >null : null x1 *= undefined; >x1 *= undefined : number ->x1 : any, Symbol(x1, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 6, 3)) ->undefined : undefined, Symbol(undefined) +>x1 : any +>undefined : undefined var x2: number; ->x2 : number, Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) +>x2 : number x2 *= a; >x2 *= a : number ->x2 : number, Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) ->a : any, Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x2 : number +>a : any x2 *= b; >x2 *= b : number ->x2 : number, Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) ->b : number, Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) +>x2 : number +>b : number x2 *= c; >x2 *= c : number ->x2 : number, Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) ->c : E, Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) +>x2 : number +>c : E x2 *= null; >x2 *= null : number ->x2 : number, Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) +>x2 : number >null : null x2 *= undefined; >x2 *= undefined : number ->x2 : number, Symbol(x2, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 13, 3)) ->undefined : undefined, Symbol(undefined) +>x2 : number +>undefined : undefined var x3: E; ->x3 : E, Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) ->E : E, Symbol(E, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 0, 0)) +>x3 : E +>E : E x3 *= a; >x3 *= a : number ->x3 : E, Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) ->a : any, Symbol(a, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 2, 3)) +>x3 : E +>a : any x3 *= b; >x3 *= b : number ->x3 : E, Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) ->b : number, Symbol(b, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 3, 3)) +>x3 : E +>b : number x3 *= c; >x3 *= c : number ->x3 : E, Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) ->c : E, Symbol(c, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 4, 3)) +>x3 : E +>c : E x3 *= null; >x3 *= null : number ->x3 : E, Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) +>x3 : E >null : null x3 *= undefined; >x3 *= undefined : number ->x3 : E, Symbol(x3, Decl(compoundArithmeticAssignmentLHSCanBeAssigned.ts, 20, 3)) ->undefined : undefined, Symbol(undefined) +>x3 : E +>undefined : undefined diff --git a/tests/baselines/reference/compoundAssignmentLHSIsReference.symbols b/tests/baselines/reference/compoundAssignmentLHSIsReference.symbols new file mode 100644 index 0000000000000..e7c19e4d78197 --- /dev/null +++ b/tests/baselines/reference/compoundAssignmentLHSIsReference.symbols @@ -0,0 +1,100 @@ +=== tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsReference.ts === +var value; +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +// identifiers: variable and parameter +var x1: number; +>x1 : Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) + +x1 *= value; +>x1 : Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +x1 += value; +>x1 : Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +function fn1(x2: number) { +>fn1 : Symbol(fn1, Decl(compoundAssignmentLHSIsReference.ts, 5, 12)) +>x2 : Symbol(x2, Decl(compoundAssignmentLHSIsReference.ts, 7, 13)) + + x2 *= value; +>x2 : Symbol(x2, Decl(compoundAssignmentLHSIsReference.ts, 7, 13)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + + x2 += value; +>x2 : Symbol(x2, Decl(compoundAssignmentLHSIsReference.ts, 7, 13)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +} + +// property accesses +var x3: { a: number }; +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) + +x3.a *= value; +>x3.a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +x3.a += value; +>x3.a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +x3['a'] *= value; +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>'a' : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +x3['a'] += value; +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>'a' : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +// parentheses, the contained expression is reference +(x1) *= value; +>x1 : Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +(x1) += value; +>x1 : Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +function fn2(x4: number) { +>fn2 : Symbol(fn2, Decl(compoundAssignmentLHSIsReference.ts, 22, 14)) +>x4 : Symbol(x4, Decl(compoundAssignmentLHSIsReference.ts, 24, 13)) + + (x4) *= value; +>x4 : Symbol(x4, Decl(compoundAssignmentLHSIsReference.ts, 24, 13)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + + (x4) += value; +>x4 : Symbol(x4, Decl(compoundAssignmentLHSIsReference.ts, 24, 13)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +} + +(x3.a) *= value; +>x3.a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +(x3.a) += value; +>x3.a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>a : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +(x3['a']) *= value; +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>'a' : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + +(x3['a']) += value; +>x3 : Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) +>'a' : Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>value : Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) + diff --git a/tests/baselines/reference/compoundAssignmentLHSIsReference.types b/tests/baselines/reference/compoundAssignmentLHSIsReference.types index 12ccd6ebc7e56..12c601d377f65 100644 --- a/tests/baselines/reference/compoundAssignmentLHSIsReference.types +++ b/tests/baselines/reference/compoundAssignmentLHSIsReference.types @@ -1,128 +1,128 @@ === tests/cases/conformance/expressions/assignmentOperator/compoundAssignmentLHSIsReference.ts === var value; ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>value : any // identifiers: variable and parameter var x1: number; ->x1 : number, Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) +>x1 : number x1 *= value; >x1 *= value : number ->x1 : number, Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x1 : number +>value : any x1 += value; >x1 += value : any ->x1 : number, Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x1 : number +>value : any function fn1(x2: number) { ->fn1 : (x2: number) => void, Symbol(fn1, Decl(compoundAssignmentLHSIsReference.ts, 5, 12)) ->x2 : number, Symbol(x2, Decl(compoundAssignmentLHSIsReference.ts, 7, 13)) +>fn1 : (x2: number) => void +>x2 : number x2 *= value; >x2 *= value : number ->x2 : number, Symbol(x2, Decl(compoundAssignmentLHSIsReference.ts, 7, 13)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x2 : number +>value : any x2 += value; >x2 += value : any ->x2 : number, Symbol(x2, Decl(compoundAssignmentLHSIsReference.ts, 7, 13)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x2 : number +>value : any } // property accesses var x3: { a: number }; ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) +>x3 : { a: number; } +>a : number x3.a *= value; >x3.a *= value : number ->x3.a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3.a : number +>x3 : { a: number; } +>a : number +>value : any x3.a += value; >x3.a += value : any ->x3.a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3.a : number +>x3 : { a: number; } +>a : number +>value : any x3['a'] *= value; >x3['a'] *= value : number >x3['a'] : number ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->'a' : string, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3 : { a: number; } +>'a' : string +>value : any x3['a'] += value; >x3['a'] += value : any >x3['a'] : number ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->'a' : string, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3 : { a: number; } +>'a' : string +>value : any // parentheses, the contained expression is reference (x1) *= value; >(x1) *= value : number >(x1) : number ->x1 : number, Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x1 : number +>value : any (x1) += value; >(x1) += value : any >(x1) : number ->x1 : number, Symbol(x1, Decl(compoundAssignmentLHSIsReference.ts, 3, 3)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x1 : number +>value : any function fn2(x4: number) { ->fn2 : (x4: number) => void, Symbol(fn2, Decl(compoundAssignmentLHSIsReference.ts, 22, 14)) ->x4 : number, Symbol(x4, Decl(compoundAssignmentLHSIsReference.ts, 24, 13)) +>fn2 : (x4: number) => void +>x4 : number (x4) *= value; >(x4) *= value : number >(x4) : number ->x4 : number, Symbol(x4, Decl(compoundAssignmentLHSIsReference.ts, 24, 13)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x4 : number +>value : any (x4) += value; >(x4) += value : any >(x4) : number ->x4 : number, Symbol(x4, Decl(compoundAssignmentLHSIsReference.ts, 24, 13)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x4 : number +>value : any } (x3.a) *= value; >(x3.a) *= value : number >(x3.a) : number ->x3.a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3.a : number +>x3 : { a: number; } +>a : number +>value : any (x3.a) += value; >(x3.a) += value : any >(x3.a) : number ->x3.a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->a : number, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3.a : number +>x3 : { a: number; } +>a : number +>value : any (x3['a']) *= value; >(x3['a']) *= value : number >(x3['a']) : number >x3['a'] : number ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->'a' : string, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3 : { a: number; } +>'a' : string +>value : any (x3['a']) += value; >(x3['a']) += value : any >(x3['a']) : number >x3['a'] : number ->x3 : { a: number; }, Symbol(x3, Decl(compoundAssignmentLHSIsReference.ts, 13, 3)) ->'a' : string, Symbol(a, Decl(compoundAssignmentLHSIsReference.ts, 13, 9)) ->value : any, Symbol(value, Decl(compoundAssignmentLHSIsReference.ts, 0, 3)) +>x3 : { a: number; } +>'a' : string +>value : any diff --git a/tests/baselines/reference/compoundVarDecl1.symbols b/tests/baselines/reference/compoundVarDecl1.symbols new file mode 100644 index 0000000000000..d76571f6f4452 --- /dev/null +++ b/tests/baselines/reference/compoundVarDecl1.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/compoundVarDecl1.ts === +module Foo { var a = 1, b = 1; a = b + 2; } +>Foo : Symbol(Foo, Decl(compoundVarDecl1.ts, 0, 0)) +>a : Symbol(a, Decl(compoundVarDecl1.ts, 0, 16)) +>b : Symbol(b, Decl(compoundVarDecl1.ts, 0, 23)) +>a : Symbol(a, Decl(compoundVarDecl1.ts, 0, 16)) +>b : Symbol(b, Decl(compoundVarDecl1.ts, 0, 23)) + +var foo = 4, bar = 5; +>foo : Symbol(foo, Decl(compoundVarDecl1.ts, 2, 3)) +>bar : Symbol(bar, Decl(compoundVarDecl1.ts, 2, 12)) + diff --git a/tests/baselines/reference/compoundVarDecl1.types b/tests/baselines/reference/compoundVarDecl1.types index 6388402e10c9b..40f12ea52c065 100644 --- a/tests/baselines/reference/compoundVarDecl1.types +++ b/tests/baselines/reference/compoundVarDecl1.types @@ -1,19 +1,19 @@ === tests/cases/compiler/compoundVarDecl1.ts === module Foo { var a = 1, b = 1; a = b + 2; } ->Foo : typeof Foo, Symbol(Foo, Decl(compoundVarDecl1.ts, 0, 0)) ->a : number, Symbol(a, Decl(compoundVarDecl1.ts, 0, 16)) +>Foo : typeof Foo +>a : number >1 : number ->b : number, Symbol(b, Decl(compoundVarDecl1.ts, 0, 23)) +>b : number >1 : number >a = b + 2 : number ->a : number, Symbol(a, Decl(compoundVarDecl1.ts, 0, 16)) +>a : number >b + 2 : number ->b : number, Symbol(b, Decl(compoundVarDecl1.ts, 0, 23)) +>b : number >2 : number var foo = 4, bar = 5; ->foo : number, Symbol(foo, Decl(compoundVarDecl1.ts, 2, 3)) +>foo : number >4 : number ->bar : number, Symbol(bar, Decl(compoundVarDecl1.ts, 2, 12)) +>bar : number >5 : number diff --git a/tests/baselines/reference/computedPropertyNames10_ES5.symbols b/tests/baselines/reference/computedPropertyNames10_ES5.symbols new file mode 100644 index 0000000000000..17d1f7ca11757 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames10_ES5.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames10_ES5.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames10_ES5.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames10_ES5.ts, 2, 3)) + +var v = { +>v : Symbol(v, Decl(computedPropertyNames10_ES5.ts, 3, 3)) + + [s]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) + + [n]() { }, +>n : Symbol(n, Decl(computedPropertyNames10_ES5.ts, 1, 3)) + + [s + s]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) + + [s + n]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames10_ES5.ts, 1, 3)) + + [+s]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) + + [""]() { }, + [0]() { }, + [a]() { }, +>a : Symbol(a, Decl(computedPropertyNames10_ES5.ts, 2, 3)) + + [true]() { }, + [`hello bye`]() { }, + [`hello ${a} bye`]() { } +>a : Symbol(a, Decl(computedPropertyNames10_ES5.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames10_ES5.types b/tests/baselines/reference/computedPropertyNames10_ES5.types index 70e7ab6c01260..87648c1ed8015 100644 --- a/tests/baselines/reference/computedPropertyNames10_ES5.types +++ b/tests/baselines/reference/computedPropertyNames10_ES5.types @@ -1,36 +1,36 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames10_ES5.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames10_ES5.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames10_ES5.ts, 2, 3)) +>a : any var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames10_ES5.ts, 3, 3)) +>v : {} >{ [s]() { }, [n]() { }, [s + s]() { }, [s + n]() { }, [+s]() { }, [""]() { }, [0]() { }, [a]() { }, [true]() { }, [`hello bye`]() { }, [`hello ${a} bye`]() { }} : {} [s]() { }, ->s : string, Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) +>s : string [n]() { }, ->n : number, Symbol(n, Decl(computedPropertyNames10_ES5.ts, 1, 3)) +>n : number [s + s]() { }, >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) +>s : string +>s : string [s + n]() { }, >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames10_ES5.ts, 1, 3)) +>s : string +>n : number [+s]() { }, >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames10_ES5.ts, 0, 3)) +>s : string [""]() { }, >"" : string @@ -39,7 +39,7 @@ var v = { >0 : number [a]() { }, ->a : any, Symbol(a, Decl(computedPropertyNames10_ES5.ts, 2, 3)) +>a : any [true]() { }, >true : any @@ -50,5 +50,5 @@ var v = { [`hello ${a} bye`]() { } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames10_ES5.ts, 2, 3)) +>a : any } diff --git a/tests/baselines/reference/computedPropertyNames10_ES6.symbols b/tests/baselines/reference/computedPropertyNames10_ES6.symbols new file mode 100644 index 0000000000000..4141b7872089c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames10_ES6.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames10_ES6.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames10_ES6.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames10_ES6.ts, 2, 3)) + +var v = { +>v : Symbol(v, Decl(computedPropertyNames10_ES6.ts, 3, 3)) + + [s]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) + + [n]() { }, +>n : Symbol(n, Decl(computedPropertyNames10_ES6.ts, 1, 3)) + + [s + s]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) + + [s + n]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames10_ES6.ts, 1, 3)) + + [+s]() { }, +>s : Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) + + [""]() { }, + [0]() { }, + [a]() { }, +>a : Symbol(a, Decl(computedPropertyNames10_ES6.ts, 2, 3)) + + [true]() { }, + [`hello bye`]() { }, + [`hello ${a} bye`]() { } +>a : Symbol(a, Decl(computedPropertyNames10_ES6.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames10_ES6.types b/tests/baselines/reference/computedPropertyNames10_ES6.types index 9fa2dea8883d3..996dfc99fe921 100644 --- a/tests/baselines/reference/computedPropertyNames10_ES6.types +++ b/tests/baselines/reference/computedPropertyNames10_ES6.types @@ -1,36 +1,36 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames10_ES6.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames10_ES6.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames10_ES6.ts, 2, 3)) +>a : any var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames10_ES6.ts, 3, 3)) +>v : {} >{ [s]() { }, [n]() { }, [s + s]() { }, [s + n]() { }, [+s]() { }, [""]() { }, [0]() { }, [a]() { }, [true]() { }, [`hello bye`]() { }, [`hello ${a} bye`]() { }} : {} [s]() { }, ->s : string, Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) +>s : string [n]() { }, ->n : number, Symbol(n, Decl(computedPropertyNames10_ES6.ts, 1, 3)) +>n : number [s + s]() { }, >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) +>s : string +>s : string [s + n]() { }, >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames10_ES6.ts, 1, 3)) +>s : string +>n : number [+s]() { }, >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames10_ES6.ts, 0, 3)) +>s : string [""]() { }, >"" : string @@ -39,7 +39,7 @@ var v = { >0 : number [a]() { }, ->a : any, Symbol(a, Decl(computedPropertyNames10_ES6.ts, 2, 3)) +>a : any [true]() { }, >true : any @@ -50,5 +50,5 @@ var v = { [`hello ${a} bye`]() { } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames10_ES6.ts, 2, 3)) +>a : any } diff --git a/tests/baselines/reference/computedPropertyNames11_ES5.symbols b/tests/baselines/reference/computedPropertyNames11_ES5.symbols new file mode 100644 index 0000000000000..34326273e595a --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames11_ES5.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames11_ES5.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames11_ES5.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames11_ES5.ts, 2, 3)) + +var v = { +>v : Symbol(v, Decl(computedPropertyNames11_ES5.ts, 3, 3)) + + get [s]() { return 0; }, +>s : Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) + + set [n](v) { }, +>n : Symbol(n, Decl(computedPropertyNames11_ES5.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames11_ES5.ts, 5, 12)) + + get [s + s]() { return 0; }, +>s : Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) + + set [s + n](v) { }, +>s : Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames11_ES5.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames11_ES5.ts, 7, 16)) + + get [+s]() { return 0; }, +>s : Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) + + set [""](v) { }, +>v : Symbol(v, Decl(computedPropertyNames11_ES5.ts, 9, 13)) + + get [0]() { return 0; }, + set [a](v) { }, +>a : Symbol(a, Decl(computedPropertyNames11_ES5.ts, 2, 3)) +>v : Symbol(v, Decl(computedPropertyNames11_ES5.ts, 11, 12)) + + get [true]() { return 0; }, + set [`hello bye`](v) { }, +>v : Symbol(v, Decl(computedPropertyNames11_ES5.ts, 13, 22)) + + get [`hello ${a} bye`]() { return 0; } +>a : Symbol(a, Decl(computedPropertyNames11_ES5.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames11_ES5.types b/tests/baselines/reference/computedPropertyNames11_ES5.types index bfe6639f655b8..c3c59c2eb9c73 100644 --- a/tests/baselines/reference/computedPropertyNames11_ES5.types +++ b/tests/baselines/reference/computedPropertyNames11_ES5.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames11_ES5.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames11_ES5.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames11_ES5.ts, 2, 3)) +>a : any var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames11_ES5.ts, 3, 3)) +>v : {} >{ get [s]() { return 0; }, set [n](v) { }, get [s + s]() { return 0; }, set [s + n](v) { }, get [+s]() { return 0; }, set [""](v) { }, get [0]() { return 0; }, set [a](v) { }, get [true]() { return 0; }, set [`hello bye`](v) { }, get [`hello ${a} bye`]() { return 0; }} : {} get [s]() { return 0; }, ->s : string, Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) +>s : string >0 : number set [n](v) { }, ->n : number, Symbol(n, Decl(computedPropertyNames11_ES5.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames11_ES5.ts, 5, 12)) +>n : number +>v : any get [s + s]() { return 0; }, >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) +>s : string +>s : string >0 : number set [s + n](v) { }, >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames11_ES5.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames11_ES5.ts, 7, 16)) +>s : string +>n : number +>v : any get [+s]() { return 0; }, >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames11_ES5.ts, 0, 3)) +>s : string >0 : number set [""](v) { }, >"" : string ->v : any, Symbol(v, Decl(computedPropertyNames11_ES5.ts, 9, 13)) +>v : any get [0]() { return 0; }, >0 : number >0 : number set [a](v) { }, ->a : any, Symbol(a, Decl(computedPropertyNames11_ES5.ts, 2, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames11_ES5.ts, 11, 12)) +>a : any +>v : any get [true]() { return 0; }, >true : any @@ -56,10 +56,10 @@ var v = { set [`hello bye`](v) { }, >`hello bye` : string ->v : any, Symbol(v, Decl(computedPropertyNames11_ES5.ts, 13, 22)) +>v : any get [`hello ${a} bye`]() { return 0; } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames11_ES5.ts, 2, 3)) +>a : any >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames11_ES6.symbols b/tests/baselines/reference/computedPropertyNames11_ES6.symbols new file mode 100644 index 0000000000000..73503eb2758eb --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames11_ES6.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames11_ES6.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames11_ES6.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames11_ES6.ts, 2, 3)) + +var v = { +>v : Symbol(v, Decl(computedPropertyNames11_ES6.ts, 3, 3)) + + get [s]() { return 0; }, +>s : Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) + + set [n](v) { }, +>n : Symbol(n, Decl(computedPropertyNames11_ES6.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames11_ES6.ts, 5, 12)) + + get [s + s]() { return 0; }, +>s : Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) + + set [s + n](v) { }, +>s : Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames11_ES6.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames11_ES6.ts, 7, 16)) + + get [+s]() { return 0; }, +>s : Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) + + set [""](v) { }, +>v : Symbol(v, Decl(computedPropertyNames11_ES6.ts, 9, 13)) + + get [0]() { return 0; }, + set [a](v) { }, +>a : Symbol(a, Decl(computedPropertyNames11_ES6.ts, 2, 3)) +>v : Symbol(v, Decl(computedPropertyNames11_ES6.ts, 11, 12)) + + get [true]() { return 0; }, + set [`hello bye`](v) { }, +>v : Symbol(v, Decl(computedPropertyNames11_ES6.ts, 13, 22)) + + get [`hello ${a} bye`]() { return 0; } +>a : Symbol(a, Decl(computedPropertyNames11_ES6.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames11_ES6.types b/tests/baselines/reference/computedPropertyNames11_ES6.types index 8ebc902bea7b7..ef11511baaed7 100644 --- a/tests/baselines/reference/computedPropertyNames11_ES6.types +++ b/tests/baselines/reference/computedPropertyNames11_ES6.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames11_ES6.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames11_ES6.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames11_ES6.ts, 2, 3)) +>a : any var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames11_ES6.ts, 3, 3)) +>v : {} >{ get [s]() { return 0; }, set [n](v) { }, get [s + s]() { return 0; }, set [s + n](v) { }, get [+s]() { return 0; }, set [""](v) { }, get [0]() { return 0; }, set [a](v) { }, get [true]() { return 0; }, set [`hello bye`](v) { }, get [`hello ${a} bye`]() { return 0; }} : {} get [s]() { return 0; }, ->s : string, Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) +>s : string >0 : number set [n](v) { }, ->n : number, Symbol(n, Decl(computedPropertyNames11_ES6.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames11_ES6.ts, 5, 12)) +>n : number +>v : any get [s + s]() { return 0; }, >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) +>s : string +>s : string >0 : number set [s + n](v) { }, >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames11_ES6.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames11_ES6.ts, 7, 16)) +>s : string +>n : number +>v : any get [+s]() { return 0; }, >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames11_ES6.ts, 0, 3)) +>s : string >0 : number set [""](v) { }, >"" : string ->v : any, Symbol(v, Decl(computedPropertyNames11_ES6.ts, 9, 13)) +>v : any get [0]() { return 0; }, >0 : number >0 : number set [a](v) { }, ->a : any, Symbol(a, Decl(computedPropertyNames11_ES6.ts, 2, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames11_ES6.ts, 11, 12)) +>a : any +>v : any get [true]() { return 0; }, >true : any @@ -56,10 +56,10 @@ var v = { set [`hello bye`](v) { }, >`hello bye` : string ->v : any, Symbol(v, Decl(computedPropertyNames11_ES6.ts, 13, 22)) +>v : any get [`hello ${a} bye`]() { return 0; } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames11_ES6.ts, 2, 3)) +>a : any >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames13_ES5.symbols b/tests/baselines/reference/computedPropertyNames13_ES5.symbols new file mode 100644 index 0000000000000..ea2e1b025e57b --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames13_ES5.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames13_ES5.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames13_ES5.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames13_ES5.ts, 2, 3)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames13_ES5.ts, 2, 11)) + + [s]() {} +>s : Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) + + [n]() { } +>n : Symbol(n, Decl(computedPropertyNames13_ES5.ts, 1, 3)) + + static [s + s]() { } +>s : Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) + + [s + n]() { } +>s : Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames13_ES5.ts, 1, 3)) + + [+s]() { } +>s : Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) + + static [""]() { } + [0]() { } + [a]() { } +>a : Symbol(a, Decl(computedPropertyNames13_ES5.ts, 2, 3)) + + static [true]() { } + [`hello bye`]() { } + static [`hello ${a} bye`]() { } +>a : Symbol(a, Decl(computedPropertyNames13_ES5.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames13_ES5.types b/tests/baselines/reference/computedPropertyNames13_ES5.types index 51a7698090536..59694df32a7f7 100644 --- a/tests/baselines/reference/computedPropertyNames13_ES5.types +++ b/tests/baselines/reference/computedPropertyNames13_ES5.types @@ -1,35 +1,35 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames13_ES5.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames13_ES5.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames13_ES5.ts, 2, 3)) +>a : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames13_ES5.ts, 2, 11)) +>C : C [s]() {} ->s : string, Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) +>s : string [n]() { } ->n : number, Symbol(n, Decl(computedPropertyNames13_ES5.ts, 1, 3)) +>n : number static [s + s]() { } >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) +>s : string +>s : string [s + n]() { } >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames13_ES5.ts, 1, 3)) +>s : string +>n : number [+s]() { } >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames13_ES5.ts, 0, 3)) +>s : string static [""]() { } >"" : string @@ -38,7 +38,7 @@ class C { >0 : number [a]() { } ->a : any, Symbol(a, Decl(computedPropertyNames13_ES5.ts, 2, 3)) +>a : any static [true]() { } >true : any @@ -49,5 +49,5 @@ class C { static [`hello ${a} bye`]() { } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames13_ES5.ts, 2, 3)) +>a : any } diff --git a/tests/baselines/reference/computedPropertyNames13_ES6.symbols b/tests/baselines/reference/computedPropertyNames13_ES6.symbols new file mode 100644 index 0000000000000..21f7700acef41 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames13_ES6.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames13_ES6.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames13_ES6.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames13_ES6.ts, 2, 3)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames13_ES6.ts, 2, 11)) + + [s]() {} +>s : Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) + + [n]() { } +>n : Symbol(n, Decl(computedPropertyNames13_ES6.ts, 1, 3)) + + static [s + s]() { } +>s : Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) + + [s + n]() { } +>s : Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames13_ES6.ts, 1, 3)) + + [+s]() { } +>s : Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) + + static [""]() { } + [0]() { } + [a]() { } +>a : Symbol(a, Decl(computedPropertyNames13_ES6.ts, 2, 3)) + + static [true]() { } + [`hello bye`]() { } + static [`hello ${a} bye`]() { } +>a : Symbol(a, Decl(computedPropertyNames13_ES6.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames13_ES6.types b/tests/baselines/reference/computedPropertyNames13_ES6.types index 2c1bb6ff309a5..a2d0f14e72c66 100644 --- a/tests/baselines/reference/computedPropertyNames13_ES6.types +++ b/tests/baselines/reference/computedPropertyNames13_ES6.types @@ -1,35 +1,35 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames13_ES6.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames13_ES6.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames13_ES6.ts, 2, 3)) +>a : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames13_ES6.ts, 2, 11)) +>C : C [s]() {} ->s : string, Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) +>s : string [n]() { } ->n : number, Symbol(n, Decl(computedPropertyNames13_ES6.ts, 1, 3)) +>n : number static [s + s]() { } >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) +>s : string +>s : string [s + n]() { } >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames13_ES6.ts, 1, 3)) +>s : string +>n : number [+s]() { } >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames13_ES6.ts, 0, 3)) +>s : string static [""]() { } >"" : string @@ -38,7 +38,7 @@ class C { >0 : number [a]() { } ->a : any, Symbol(a, Decl(computedPropertyNames13_ES6.ts, 2, 3)) +>a : any static [true]() { } >true : any @@ -49,5 +49,5 @@ class C { static [`hello ${a} bye`]() { } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames13_ES6.ts, 2, 3)) +>a : any } diff --git a/tests/baselines/reference/computedPropertyNames16_ES5.symbols b/tests/baselines/reference/computedPropertyNames16_ES5.symbols new file mode 100644 index 0000000000000..62450e0aa4ab4 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames16_ES5.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames16_ES5.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames16_ES5.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames16_ES5.ts, 2, 3)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames16_ES5.ts, 2, 11)) + + get [s]() { return 0;} +>s : Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) + + set [n](v) { } +>n : Symbol(n, Decl(computedPropertyNames16_ES5.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames16_ES5.ts, 5, 12)) + + static get [s + s]() { return 0; } +>s : Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) + + set [s + n](v) { } +>s : Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames16_ES5.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames16_ES5.ts, 7, 16)) + + get [+s]() { return 0; } +>s : Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) + + static set [""](v) { } +>v : Symbol(v, Decl(computedPropertyNames16_ES5.ts, 9, 20)) + + get [0]() { return 0; } + set [a](v) { } +>a : Symbol(a, Decl(computedPropertyNames16_ES5.ts, 2, 3)) +>v : Symbol(v, Decl(computedPropertyNames16_ES5.ts, 11, 12)) + + static get [true]() { return 0; } + set [`hello bye`](v) { } +>v : Symbol(v, Decl(computedPropertyNames16_ES5.ts, 13, 22)) + + get [`hello ${a} bye`]() { return 0; } +>a : Symbol(a, Decl(computedPropertyNames16_ES5.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames16_ES5.types b/tests/baselines/reference/computedPropertyNames16_ES5.types index 51ff088cc4e40..ab7ea23cffea1 100644 --- a/tests/baselines/reference/computedPropertyNames16_ES5.types +++ b/tests/baselines/reference/computedPropertyNames16_ES5.types @@ -1,52 +1,52 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames16_ES5.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames16_ES5.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames16_ES5.ts, 2, 3)) +>a : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames16_ES5.ts, 2, 11)) +>C : C get [s]() { return 0;} ->s : string, Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) +>s : string >0 : number set [n](v) { } ->n : number, Symbol(n, Decl(computedPropertyNames16_ES5.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames16_ES5.ts, 5, 12)) +>n : number +>v : any static get [s + s]() { return 0; } >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) +>s : string +>s : string >0 : number set [s + n](v) { } >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames16_ES5.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames16_ES5.ts, 7, 16)) +>s : string +>n : number +>v : any get [+s]() { return 0; } >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames16_ES5.ts, 0, 3)) +>s : string >0 : number static set [""](v) { } >"" : string ->v : any, Symbol(v, Decl(computedPropertyNames16_ES5.ts, 9, 20)) +>v : any get [0]() { return 0; } >0 : number >0 : number set [a](v) { } ->a : any, Symbol(a, Decl(computedPropertyNames16_ES5.ts, 2, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames16_ES5.ts, 11, 12)) +>a : any +>v : any static get [true]() { return 0; } >true : any @@ -55,10 +55,10 @@ class C { set [`hello bye`](v) { } >`hello bye` : string ->v : any, Symbol(v, Decl(computedPropertyNames16_ES5.ts, 13, 22)) +>v : any get [`hello ${a} bye`]() { return 0; } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames16_ES5.ts, 2, 3)) +>a : any >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames16_ES6.symbols b/tests/baselines/reference/computedPropertyNames16_ES6.symbols new file mode 100644 index 0000000000000..dc241f67547a5 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames16_ES6.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames16_ES6.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames16_ES6.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames16_ES6.ts, 2, 3)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames16_ES6.ts, 2, 11)) + + get [s]() { return 0;} +>s : Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) + + set [n](v) { } +>n : Symbol(n, Decl(computedPropertyNames16_ES6.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames16_ES6.ts, 5, 12)) + + static get [s + s]() { return 0; } +>s : Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) + + set [s + n](v) { } +>s : Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames16_ES6.ts, 1, 3)) +>v : Symbol(v, Decl(computedPropertyNames16_ES6.ts, 7, 16)) + + get [+s]() { return 0; } +>s : Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) + + static set [""](v) { } +>v : Symbol(v, Decl(computedPropertyNames16_ES6.ts, 9, 20)) + + get [0]() { return 0; } + set [a](v) { } +>a : Symbol(a, Decl(computedPropertyNames16_ES6.ts, 2, 3)) +>v : Symbol(v, Decl(computedPropertyNames16_ES6.ts, 11, 12)) + + static get [true]() { return 0; } + set [`hello bye`](v) { } +>v : Symbol(v, Decl(computedPropertyNames16_ES6.ts, 13, 22)) + + get [`hello ${a} bye`]() { return 0; } +>a : Symbol(a, Decl(computedPropertyNames16_ES6.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames16_ES6.types b/tests/baselines/reference/computedPropertyNames16_ES6.types index c7f632ee2e7fe..c7286e6640e1b 100644 --- a/tests/baselines/reference/computedPropertyNames16_ES6.types +++ b/tests/baselines/reference/computedPropertyNames16_ES6.types @@ -1,52 +1,52 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames16_ES6.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames16_ES6.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames16_ES6.ts, 2, 3)) +>a : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames16_ES6.ts, 2, 11)) +>C : C get [s]() { return 0;} ->s : string, Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) +>s : string >0 : number set [n](v) { } ->n : number, Symbol(n, Decl(computedPropertyNames16_ES6.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames16_ES6.ts, 5, 12)) +>n : number +>v : any static get [s + s]() { return 0; } >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) +>s : string +>s : string >0 : number set [s + n](v) { } >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames16_ES6.ts, 1, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames16_ES6.ts, 7, 16)) +>s : string +>n : number +>v : any get [+s]() { return 0; } >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames16_ES6.ts, 0, 3)) +>s : string >0 : number static set [""](v) { } >"" : string ->v : any, Symbol(v, Decl(computedPropertyNames16_ES6.ts, 9, 20)) +>v : any get [0]() { return 0; } >0 : number >0 : number set [a](v) { } ->a : any, Symbol(a, Decl(computedPropertyNames16_ES6.ts, 2, 3)) ->v : any, Symbol(v, Decl(computedPropertyNames16_ES6.ts, 11, 12)) +>a : any +>v : any static get [true]() { return 0; } >true : any @@ -55,10 +55,10 @@ class C { set [`hello bye`](v) { } >`hello bye` : string ->v : any, Symbol(v, Decl(computedPropertyNames16_ES6.ts, 13, 22)) +>v : any get [`hello ${a} bye`]() { return 0; } >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames16_ES6.ts, 2, 3)) +>a : any >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames18_ES5.symbols b/tests/baselines/reference/computedPropertyNames18_ES5.symbols new file mode 100644 index 0000000000000..86d706bc44c18 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames18_ES5.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames18_ES5.ts === +function foo() { +>foo : Symbol(foo, Decl(computedPropertyNames18_ES5.ts, 0, 0)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames18_ES5.ts, 1, 7)) + + [this.bar]: 0 + } +} diff --git a/tests/baselines/reference/computedPropertyNames18_ES5.types b/tests/baselines/reference/computedPropertyNames18_ES5.types index f7b7f9f99a067..c60ab32d3f884 100644 --- a/tests/baselines/reference/computedPropertyNames18_ES5.types +++ b/tests/baselines/reference/computedPropertyNames18_ES5.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames18_ES5.ts === function foo() { ->foo : () => void, Symbol(foo, Decl(computedPropertyNames18_ES5.ts, 0, 0)) +>foo : () => void var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames18_ES5.ts, 1, 7)) +>obj : {} >{ [this.bar]: 0 } : {} [this.bar]: 0 diff --git a/tests/baselines/reference/computedPropertyNames18_ES6.symbols b/tests/baselines/reference/computedPropertyNames18_ES6.symbols new file mode 100644 index 0000000000000..c530d1e811fd5 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames18_ES6.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames18_ES6.ts === +function foo() { +>foo : Symbol(foo, Decl(computedPropertyNames18_ES6.ts, 0, 0)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames18_ES6.ts, 1, 7)) + + [this.bar]: 0 + } +} diff --git a/tests/baselines/reference/computedPropertyNames18_ES6.types b/tests/baselines/reference/computedPropertyNames18_ES6.types index 47aae22f07cfb..33a15b6c5a9e4 100644 --- a/tests/baselines/reference/computedPropertyNames18_ES6.types +++ b/tests/baselines/reference/computedPropertyNames18_ES6.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames18_ES6.ts === function foo() { ->foo : () => void, Symbol(foo, Decl(computedPropertyNames18_ES6.ts, 0, 0)) +>foo : () => void var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames18_ES6.ts, 1, 7)) +>obj : {} >{ [this.bar]: 0 } : {} [this.bar]: 0 diff --git a/tests/baselines/reference/computedPropertyNames1_ES5.symbols b/tests/baselines/reference/computedPropertyNames1_ES5.symbols new file mode 100644 index 0000000000000..2bc11580c7899 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames1_ES5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames1_ES5.ts === +var v = { +>v : Symbol(v, Decl(computedPropertyNames1_ES5.ts, 0, 3)) + + get [0 + 1]() { return 0 }, + set [0 + 1](v: string) { } //No error +>v : Symbol(v, Decl(computedPropertyNames1_ES5.ts, 2, 16)) +} diff --git a/tests/baselines/reference/computedPropertyNames1_ES5.types b/tests/baselines/reference/computedPropertyNames1_ES5.types index d683579c2cf9e..6c94c846f30a4 100644 --- a/tests/baselines/reference/computedPropertyNames1_ES5.types +++ b/tests/baselines/reference/computedPropertyNames1_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames1_ES5.ts === var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames1_ES5.ts, 0, 3)) +>v : {} >{ get [0 + 1]() { return 0 }, set [0 + 1](v: string) { } //No error} : {} get [0 + 1]() { return 0 }, @@ -13,5 +13,5 @@ var v = { >0 + 1 : number >0 : number >1 : number ->v : string, Symbol(v, Decl(computedPropertyNames1_ES5.ts, 2, 16)) +>v : string } diff --git a/tests/baselines/reference/computedPropertyNames1_ES6.symbols b/tests/baselines/reference/computedPropertyNames1_ES6.symbols new file mode 100644 index 0000000000000..5a1708b927dee --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames1_ES6.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames1_ES6.ts === +var v = { +>v : Symbol(v, Decl(computedPropertyNames1_ES6.ts, 0, 3)) + + get [0 + 1]() { return 0 }, + set [0 + 1](v: string) { } //No error +>v : Symbol(v, Decl(computedPropertyNames1_ES6.ts, 2, 16)) +} diff --git a/tests/baselines/reference/computedPropertyNames1_ES6.types b/tests/baselines/reference/computedPropertyNames1_ES6.types index 291cf4e4db8c7..95e5a011ea229 100644 --- a/tests/baselines/reference/computedPropertyNames1_ES6.types +++ b/tests/baselines/reference/computedPropertyNames1_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames1_ES6.ts === var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames1_ES6.ts, 0, 3)) +>v : {} >{ get [0 + 1]() { return 0 }, set [0 + 1](v: string) { } //No error} : {} get [0 + 1]() { return 0 }, @@ -13,5 +13,5 @@ var v = { >0 + 1 : number >0 : number >1 : number ->v : string, Symbol(v, Decl(computedPropertyNames1_ES6.ts, 2, 16)) +>v : string } diff --git a/tests/baselines/reference/computedPropertyNames20_ES5.symbols b/tests/baselines/reference/computedPropertyNames20_ES5.symbols new file mode 100644 index 0000000000000..2ab61faa707cb --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames20_ES5.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames20_ES5.ts === +var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames20_ES5.ts, 0, 3)) + + [this.bar]: 0 +} diff --git a/tests/baselines/reference/computedPropertyNames20_ES5.types b/tests/baselines/reference/computedPropertyNames20_ES5.types index 013f65fd57a10..91cc2c42963aa 100644 --- a/tests/baselines/reference/computedPropertyNames20_ES5.types +++ b/tests/baselines/reference/computedPropertyNames20_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames20_ES5.ts === var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames20_ES5.ts, 0, 3)) +>obj : {} >{ [this.bar]: 0} : {} [this.bar]: 0 diff --git a/tests/baselines/reference/computedPropertyNames20_ES6.symbols b/tests/baselines/reference/computedPropertyNames20_ES6.symbols new file mode 100644 index 0000000000000..f7ab8c84def49 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames20_ES6.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames20_ES6.ts === +var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames20_ES6.ts, 0, 3)) + + [this.bar]: 0 +} diff --git a/tests/baselines/reference/computedPropertyNames20_ES6.types b/tests/baselines/reference/computedPropertyNames20_ES6.types index 02afcdc6b8726..4ef6f675cce6e 100644 --- a/tests/baselines/reference/computedPropertyNames20_ES6.types +++ b/tests/baselines/reference/computedPropertyNames20_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames20_ES6.ts === var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames20_ES6.ts, 0, 3)) +>obj : {} >{ [this.bar]: 0} : {} [this.bar]: 0 diff --git a/tests/baselines/reference/computedPropertyNames22_ES5.symbols b/tests/baselines/reference/computedPropertyNames22_ES5.symbols new file mode 100644 index 0000000000000..a1e08e5f48739 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames22_ES5.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames22_ES5.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNames22_ES5.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames22_ES5.ts, 0, 9)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames22_ES5.ts, 2, 11)) + + [this.bar()]() { } +>this.bar : Symbol(bar, Decl(computedPropertyNames22_ES5.ts, 0, 9)) +>this : Symbol(C, Decl(computedPropertyNames22_ES5.ts, 0, 0)) +>bar : Symbol(bar, Decl(computedPropertyNames22_ES5.ts, 0, 9)) + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames22_ES5.types b/tests/baselines/reference/computedPropertyNames22_ES5.types index c2a42f41c10f4..d3008669b4d18 100644 --- a/tests/baselines/reference/computedPropertyNames22_ES5.types +++ b/tests/baselines/reference/computedPropertyNames22_ES5.types @@ -1,19 +1,19 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames22_ES5.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNames22_ES5.ts, 0, 0)) +>C : C bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames22_ES5.ts, 0, 9)) +>bar : () => number var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames22_ES5.ts, 2, 11)) +>obj : {} >{ [this.bar()]() { } } : {} [this.bar()]() { } >this.bar() : number ->this.bar : () => number, Symbol(bar, Decl(computedPropertyNames22_ES5.ts, 0, 9)) ->this : C, Symbol(C, Decl(computedPropertyNames22_ES5.ts, 0, 0)) ->bar : () => number, Symbol(bar, Decl(computedPropertyNames22_ES5.ts, 0, 9)) +>this.bar : () => number +>this : C +>bar : () => number }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames22_ES6.symbols b/tests/baselines/reference/computedPropertyNames22_ES6.symbols new file mode 100644 index 0000000000000..5940bfb4cfb70 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames22_ES6.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames22_ES6.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNames22_ES6.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames22_ES6.ts, 0, 9)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames22_ES6.ts, 2, 11)) + + [this.bar()]() { } +>this.bar : Symbol(bar, Decl(computedPropertyNames22_ES6.ts, 0, 9)) +>this : Symbol(C, Decl(computedPropertyNames22_ES6.ts, 0, 0)) +>bar : Symbol(bar, Decl(computedPropertyNames22_ES6.ts, 0, 9)) + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames22_ES6.types b/tests/baselines/reference/computedPropertyNames22_ES6.types index a901883c6e096..0936eab29abab 100644 --- a/tests/baselines/reference/computedPropertyNames22_ES6.types +++ b/tests/baselines/reference/computedPropertyNames22_ES6.types @@ -1,19 +1,19 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames22_ES6.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNames22_ES6.ts, 0, 0)) +>C : C bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames22_ES6.ts, 0, 9)) +>bar : () => number var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames22_ES6.ts, 2, 11)) +>obj : {} >{ [this.bar()]() { } } : {} [this.bar()]() { } >this.bar() : number ->this.bar : () => number, Symbol(bar, Decl(computedPropertyNames22_ES6.ts, 0, 9)) ->this : C, Symbol(C, Decl(computedPropertyNames22_ES6.ts, 0, 0)) ->bar : () => number, Symbol(bar, Decl(computedPropertyNames22_ES6.ts, 0, 9)) +>this.bar : () => number +>this : C +>bar : () => number }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames25_ES5.symbols b/tests/baselines/reference/computedPropertyNames25_ES5.symbols new file mode 100644 index 0000000000000..e11753857cc11 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames25_ES5.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames25_ES5.ts === +class Base { +>Base : Symbol(Base, Decl(computedPropertyNames25_ES5.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames25_ES5.ts, 0, 12)) + + return 0; + } +} +class C extends Base { +>C : Symbol(C, Decl(computedPropertyNames25_ES5.ts, 4, 1)) +>Base : Symbol(Base, Decl(computedPropertyNames25_ES5.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(computedPropertyNames25_ES5.ts, 5, 22)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames25_ES5.ts, 7, 11)) + + [super.bar()]() { } +>super.bar : Symbol(Base.bar, Decl(computedPropertyNames25_ES5.ts, 0, 12)) +>super : Symbol(Base, Decl(computedPropertyNames25_ES5.ts, 0, 0)) +>bar : Symbol(Base.bar, Decl(computedPropertyNames25_ES5.ts, 0, 12)) + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames25_ES5.types b/tests/baselines/reference/computedPropertyNames25_ES5.types index ff16b8cc0b24a..6ca67cce4107b 100644 --- a/tests/baselines/reference/computedPropertyNames25_ES5.types +++ b/tests/baselines/reference/computedPropertyNames25_ES5.types @@ -1,30 +1,30 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames25_ES5.ts === class Base { ->Base : Base, Symbol(Base, Decl(computedPropertyNames25_ES5.ts, 0, 0)) +>Base : Base bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames25_ES5.ts, 0, 12)) +>bar : () => number return 0; >0 : number } } class C extends Base { ->C : C, Symbol(C, Decl(computedPropertyNames25_ES5.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(computedPropertyNames25_ES5.ts, 0, 0)) +>C : C +>Base : Base foo() { ->foo : () => number, Symbol(foo, Decl(computedPropertyNames25_ES5.ts, 5, 22)) +>foo : () => number var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames25_ES5.ts, 7, 11)) +>obj : {} >{ [super.bar()]() { } } : {} [super.bar()]() { } >super.bar() : number ->super.bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames25_ES5.ts, 0, 12)) ->super : Base, Symbol(Base, Decl(computedPropertyNames25_ES5.ts, 0, 0)) ->bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames25_ES5.ts, 0, 12)) +>super.bar : () => number +>super : Base +>bar : () => number }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames25_ES6.symbols b/tests/baselines/reference/computedPropertyNames25_ES6.symbols new file mode 100644 index 0000000000000..8eb7393c6ac26 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames25_ES6.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames25_ES6.ts === +class Base { +>Base : Symbol(Base, Decl(computedPropertyNames25_ES6.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames25_ES6.ts, 0, 12)) + + return 0; + } +} +class C extends Base { +>C : Symbol(C, Decl(computedPropertyNames25_ES6.ts, 4, 1)) +>Base : Symbol(Base, Decl(computedPropertyNames25_ES6.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(computedPropertyNames25_ES6.ts, 5, 22)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames25_ES6.ts, 7, 11)) + + [super.bar()]() { } +>super.bar : Symbol(Base.bar, Decl(computedPropertyNames25_ES6.ts, 0, 12)) +>super : Symbol(Base, Decl(computedPropertyNames25_ES6.ts, 0, 0)) +>bar : Symbol(Base.bar, Decl(computedPropertyNames25_ES6.ts, 0, 12)) + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames25_ES6.types b/tests/baselines/reference/computedPropertyNames25_ES6.types index 6cbba9d6443f0..1c093ebc59f6f 100644 --- a/tests/baselines/reference/computedPropertyNames25_ES6.types +++ b/tests/baselines/reference/computedPropertyNames25_ES6.types @@ -1,30 +1,30 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames25_ES6.ts === class Base { ->Base : Base, Symbol(Base, Decl(computedPropertyNames25_ES6.ts, 0, 0)) +>Base : Base bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames25_ES6.ts, 0, 12)) +>bar : () => number return 0; >0 : number } } class C extends Base { ->C : C, Symbol(C, Decl(computedPropertyNames25_ES6.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(computedPropertyNames25_ES6.ts, 0, 0)) +>C : C +>Base : Base foo() { ->foo : () => number, Symbol(foo, Decl(computedPropertyNames25_ES6.ts, 5, 22)) +>foo : () => number var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames25_ES6.ts, 7, 11)) +>obj : {} >{ [super.bar()]() { } } : {} [super.bar()]() { } >super.bar() : number ->super.bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames25_ES6.ts, 0, 12)) ->super : Base, Symbol(Base, Decl(computedPropertyNames25_ES6.ts, 0, 0)) ->bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames25_ES6.ts, 0, 12)) +>super.bar : () => number +>super : Base +>bar : () => number }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames28_ES5.symbols b/tests/baselines/reference/computedPropertyNames28_ES5.symbols new file mode 100644 index 0000000000000..2934c3d040194 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames28_ES5.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames28_ES5.ts === +class Base { +>Base : Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) +} +class C extends Base { +>C : Symbol(C, Decl(computedPropertyNames28_ES5.ts, 1, 1)) +>Base : Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) + + constructor() { + super(); +>super : Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames28_ES5.ts, 5, 11)) + + [(super(), "prop")]() { } +>super : Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) + + }; + } +} diff --git a/tests/baselines/reference/computedPropertyNames28_ES5.types b/tests/baselines/reference/computedPropertyNames28_ES5.types index f89145530378b..273dcd426d82f 100644 --- a/tests/baselines/reference/computedPropertyNames28_ES5.types +++ b/tests/baselines/reference/computedPropertyNames28_ES5.types @@ -1,25 +1,25 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames28_ES5.ts === class Base { ->Base : Base, Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) +>Base : Base } class C extends Base { ->C : C, Symbol(C, Decl(computedPropertyNames28_ES5.ts, 1, 1)) ->Base : Base, Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) +>C : C +>Base : Base constructor() { super(); >super() : void ->super : typeof Base, Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) +>super : typeof Base var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames28_ES5.ts, 5, 11)) +>obj : {} >{ [(super(), "prop")]() { } } : {} [(super(), "prop")]() { } >(super(), "prop") : string >super(), "prop" : string >super() : void ->super : typeof Base, Symbol(Base, Decl(computedPropertyNames28_ES5.ts, 0, 0)) +>super : typeof Base >"prop" : string }; diff --git a/tests/baselines/reference/computedPropertyNames28_ES6.symbols b/tests/baselines/reference/computedPropertyNames28_ES6.symbols new file mode 100644 index 0000000000000..6824f62e2a595 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames28_ES6.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames28_ES6.ts === +class Base { +>Base : Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) +} +class C extends Base { +>C : Symbol(C, Decl(computedPropertyNames28_ES6.ts, 1, 1)) +>Base : Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) + + constructor() { + super(); +>super : Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames28_ES6.ts, 5, 11)) + + [(super(), "prop")]() { } +>super : Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) + + }; + } +} diff --git a/tests/baselines/reference/computedPropertyNames28_ES6.types b/tests/baselines/reference/computedPropertyNames28_ES6.types index 653aa06ec8838..a34fb33f6c7d7 100644 --- a/tests/baselines/reference/computedPropertyNames28_ES6.types +++ b/tests/baselines/reference/computedPropertyNames28_ES6.types @@ -1,25 +1,25 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames28_ES6.ts === class Base { ->Base : Base, Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) +>Base : Base } class C extends Base { ->C : C, Symbol(C, Decl(computedPropertyNames28_ES6.ts, 1, 1)) ->Base : Base, Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) +>C : C +>Base : Base constructor() { super(); >super() : void ->super : typeof Base, Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) +>super : typeof Base var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames28_ES6.ts, 5, 11)) +>obj : {} >{ [(super(), "prop")]() { } } : {} [(super(), "prop")]() { } >(super(), "prop") : string >super(), "prop" : string >super() : void ->super : typeof Base, Symbol(Base, Decl(computedPropertyNames28_ES6.ts, 0, 0)) +>super : typeof Base >"prop" : string }; diff --git a/tests/baselines/reference/computedPropertyNames29_ES5.symbols b/tests/baselines/reference/computedPropertyNames29_ES5.symbols new file mode 100644 index 0000000000000..c33a7390ce80d --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames29_ES5.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames29_ES5.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNames29_ES5.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames29_ES5.ts, 0, 9)) + + () => { + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames29_ES5.ts, 3, 15)) + + [this.bar()]() { } // needs capture +>this.bar : Symbol(bar, Decl(computedPropertyNames29_ES5.ts, 0, 9)) +>this : Symbol(C, Decl(computedPropertyNames29_ES5.ts, 0, 0)) +>bar : Symbol(bar, Decl(computedPropertyNames29_ES5.ts, 0, 9)) + + }; + } + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames29_ES5.types b/tests/baselines/reference/computedPropertyNames29_ES5.types index cd6c9f8d7f49f..674343b3a1a5e 100644 --- a/tests/baselines/reference/computedPropertyNames29_ES5.types +++ b/tests/baselines/reference/computedPropertyNames29_ES5.types @@ -1,22 +1,22 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames29_ES5.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNames29_ES5.ts, 0, 0)) +>C : C bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames29_ES5.ts, 0, 9)) +>bar : () => number () => { >() => { var obj = { [this.bar()]() { } // needs capture }; } : () => void var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames29_ES5.ts, 3, 15)) +>obj : {} >{ [this.bar()]() { } // needs capture } : {} [this.bar()]() { } // needs capture >this.bar() : number ->this.bar : () => number, Symbol(bar, Decl(computedPropertyNames29_ES5.ts, 0, 9)) ->this : C, Symbol(C, Decl(computedPropertyNames29_ES5.ts, 0, 0)) ->bar : () => number, Symbol(bar, Decl(computedPropertyNames29_ES5.ts, 0, 9)) +>this.bar : () => number +>this : C +>bar : () => number }; } diff --git a/tests/baselines/reference/computedPropertyNames29_ES6.symbols b/tests/baselines/reference/computedPropertyNames29_ES6.symbols new file mode 100644 index 0000000000000..41631ea63bba7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames29_ES6.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames29_ES6.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNames29_ES6.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames29_ES6.ts, 0, 9)) + + () => { + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames29_ES6.ts, 3, 15)) + + [this.bar()]() { } // needs capture +>this.bar : Symbol(bar, Decl(computedPropertyNames29_ES6.ts, 0, 9)) +>this : Symbol(C, Decl(computedPropertyNames29_ES6.ts, 0, 0)) +>bar : Symbol(bar, Decl(computedPropertyNames29_ES6.ts, 0, 9)) + + }; + } + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames29_ES6.types b/tests/baselines/reference/computedPropertyNames29_ES6.types index 3f81f0ef23be0..52f06bb9d88f9 100644 --- a/tests/baselines/reference/computedPropertyNames29_ES6.types +++ b/tests/baselines/reference/computedPropertyNames29_ES6.types @@ -1,22 +1,22 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames29_ES6.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNames29_ES6.ts, 0, 0)) +>C : C bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames29_ES6.ts, 0, 9)) +>bar : () => number () => { >() => { var obj = { [this.bar()]() { } // needs capture }; } : () => void var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames29_ES6.ts, 3, 15)) +>obj : {} >{ [this.bar()]() { } // needs capture } : {} [this.bar()]() { } // needs capture >this.bar() : number ->this.bar : () => number, Symbol(bar, Decl(computedPropertyNames29_ES6.ts, 0, 9)) ->this : C, Symbol(C, Decl(computedPropertyNames29_ES6.ts, 0, 0)) ->bar : () => number, Symbol(bar, Decl(computedPropertyNames29_ES6.ts, 0, 9)) +>this.bar : () => number +>this : C +>bar : () => number }; } diff --git a/tests/baselines/reference/computedPropertyNames31_ES5.symbols b/tests/baselines/reference/computedPropertyNames31_ES5.symbols new file mode 100644 index 0000000000000..82a6acb286c95 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames31_ES5.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames31_ES5.ts === +class Base { +>Base : Symbol(Base, Decl(computedPropertyNames31_ES5.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames31_ES5.ts, 0, 12)) + + return 0; + } +} +class C extends Base { +>C : Symbol(C, Decl(computedPropertyNames31_ES5.ts, 4, 1)) +>Base : Symbol(Base, Decl(computedPropertyNames31_ES5.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(computedPropertyNames31_ES5.ts, 5, 22)) + + () => { + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames31_ES5.ts, 8, 15)) + + [super.bar()]() { } // needs capture +>super.bar : Symbol(Base.bar, Decl(computedPropertyNames31_ES5.ts, 0, 12)) +>super : Symbol(Base, Decl(computedPropertyNames31_ES5.ts, 0, 0)) +>bar : Symbol(Base.bar, Decl(computedPropertyNames31_ES5.ts, 0, 12)) + + }; + } + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames31_ES5.types b/tests/baselines/reference/computedPropertyNames31_ES5.types index 70d3a8db00a2d..6c0f2572a0680 100644 --- a/tests/baselines/reference/computedPropertyNames31_ES5.types +++ b/tests/baselines/reference/computedPropertyNames31_ES5.types @@ -1,33 +1,33 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames31_ES5.ts === class Base { ->Base : Base, Symbol(Base, Decl(computedPropertyNames31_ES5.ts, 0, 0)) +>Base : Base bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames31_ES5.ts, 0, 12)) +>bar : () => number return 0; >0 : number } } class C extends Base { ->C : C, Symbol(C, Decl(computedPropertyNames31_ES5.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(computedPropertyNames31_ES5.ts, 0, 0)) +>C : C +>Base : Base foo() { ->foo : () => number, Symbol(foo, Decl(computedPropertyNames31_ES5.ts, 5, 22)) +>foo : () => number () => { >() => { var obj = { [super.bar()]() { } // needs capture }; } : () => void var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames31_ES5.ts, 8, 15)) +>obj : {} >{ [super.bar()]() { } // needs capture } : {} [super.bar()]() { } // needs capture >super.bar() : number ->super.bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames31_ES5.ts, 0, 12)) ->super : Base, Symbol(Base, Decl(computedPropertyNames31_ES5.ts, 0, 0)) ->bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames31_ES5.ts, 0, 12)) +>super.bar : () => number +>super : Base +>bar : () => number }; } diff --git a/tests/baselines/reference/computedPropertyNames31_ES6.symbols b/tests/baselines/reference/computedPropertyNames31_ES6.symbols new file mode 100644 index 0000000000000..778293bbb885c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames31_ES6.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames31_ES6.ts === +class Base { +>Base : Symbol(Base, Decl(computedPropertyNames31_ES6.ts, 0, 0)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames31_ES6.ts, 0, 12)) + + return 0; + } +} +class C extends Base { +>C : Symbol(C, Decl(computedPropertyNames31_ES6.ts, 4, 1)) +>Base : Symbol(Base, Decl(computedPropertyNames31_ES6.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(computedPropertyNames31_ES6.ts, 5, 22)) + + () => { + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames31_ES6.ts, 8, 15)) + + [super.bar()]() { } // needs capture +>super.bar : Symbol(Base.bar, Decl(computedPropertyNames31_ES6.ts, 0, 12)) +>super : Symbol(Base, Decl(computedPropertyNames31_ES6.ts, 0, 0)) +>bar : Symbol(Base.bar, Decl(computedPropertyNames31_ES6.ts, 0, 12)) + + }; + } + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames31_ES6.types b/tests/baselines/reference/computedPropertyNames31_ES6.types index 3e9adcc905a1f..eaddc0368126f 100644 --- a/tests/baselines/reference/computedPropertyNames31_ES6.types +++ b/tests/baselines/reference/computedPropertyNames31_ES6.types @@ -1,33 +1,33 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames31_ES6.ts === class Base { ->Base : Base, Symbol(Base, Decl(computedPropertyNames31_ES6.ts, 0, 0)) +>Base : Base bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames31_ES6.ts, 0, 12)) +>bar : () => number return 0; >0 : number } } class C extends Base { ->C : C, Symbol(C, Decl(computedPropertyNames31_ES6.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(computedPropertyNames31_ES6.ts, 0, 0)) +>C : C +>Base : Base foo() { ->foo : () => number, Symbol(foo, Decl(computedPropertyNames31_ES6.ts, 5, 22)) +>foo : () => number () => { >() => { var obj = { [super.bar()]() { } // needs capture }; } : () => void var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames31_ES6.ts, 8, 15)) +>obj : {} >{ [super.bar()]() { } // needs capture } : {} [super.bar()]() { } // needs capture >super.bar() : number ->super.bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames31_ES6.ts, 0, 12)) ->super : Base, Symbol(Base, Decl(computedPropertyNames31_ES6.ts, 0, 0)) ->bar : () => number, Symbol(Base.bar, Decl(computedPropertyNames31_ES6.ts, 0, 12)) +>super.bar : () => number +>super : Base +>bar : () => number }; } diff --git a/tests/baselines/reference/computedPropertyNames33_ES5.symbols b/tests/baselines/reference/computedPropertyNames33_ES5.symbols new file mode 100644 index 0000000000000..ae6dd01e7bc9d --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames33_ES5.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames33_ES5.ts === +function foo() { return '' } +>foo : Symbol(foo, Decl(computedPropertyNames33_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNames33_ES5.ts, 0, 13)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames33_ES5.ts, 0, 31)) +>T : Symbol(T, Decl(computedPropertyNames33_ES5.ts, 1, 8)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames33_ES5.ts, 1, 12)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames33_ES5.ts, 3, 11)) + + [foo()]() { } +>foo : Symbol(foo, Decl(computedPropertyNames33_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNames33_ES5.ts, 1, 8)) + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames33_ES5.types b/tests/baselines/reference/computedPropertyNames33_ES5.types index 375c84b66fed1..f44ac3ca7695d 100644 --- a/tests/baselines/reference/computedPropertyNames33_ES5.types +++ b/tests/baselines/reference/computedPropertyNames33_ES5.types @@ -1,24 +1,24 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames33_ES5.ts === function foo() { return '' } ->foo : () => string, Symbol(foo, Decl(computedPropertyNames33_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNames33_ES5.ts, 0, 13)) +>foo : () => string +>T : T >'' : string class C { ->C : C, Symbol(C, Decl(computedPropertyNames33_ES5.ts, 0, 31)) ->T : T, Symbol(T, Decl(computedPropertyNames33_ES5.ts, 1, 8)) +>C : C +>T : T bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames33_ES5.ts, 1, 12)) +>bar : () => number var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames33_ES5.ts, 3, 11)) +>obj : {} >{ [foo()]() { } } : {} [foo()]() { } >foo() : string ->foo : () => string, Symbol(foo, Decl(computedPropertyNames33_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNames33_ES5.ts, 1, 8)) +>foo : () => string +>T : T }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames33_ES6.symbols b/tests/baselines/reference/computedPropertyNames33_ES6.symbols new file mode 100644 index 0000000000000..cf0b3abde9633 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames33_ES6.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames33_ES6.ts === +function foo() { return '' } +>foo : Symbol(foo, Decl(computedPropertyNames33_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNames33_ES6.ts, 0, 13)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames33_ES6.ts, 0, 31)) +>T : Symbol(T, Decl(computedPropertyNames33_ES6.ts, 1, 8)) + + bar() { +>bar : Symbol(bar, Decl(computedPropertyNames33_ES6.ts, 1, 12)) + + var obj = { +>obj : Symbol(obj, Decl(computedPropertyNames33_ES6.ts, 3, 11)) + + [foo()]() { } +>foo : Symbol(foo, Decl(computedPropertyNames33_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNames33_ES6.ts, 1, 8)) + + }; + return 0; + } +} diff --git a/tests/baselines/reference/computedPropertyNames33_ES6.types b/tests/baselines/reference/computedPropertyNames33_ES6.types index ebe0398dde21a..3081337c8bb3e 100644 --- a/tests/baselines/reference/computedPropertyNames33_ES6.types +++ b/tests/baselines/reference/computedPropertyNames33_ES6.types @@ -1,24 +1,24 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames33_ES6.ts === function foo() { return '' } ->foo : () => string, Symbol(foo, Decl(computedPropertyNames33_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNames33_ES6.ts, 0, 13)) +>foo : () => string +>T : T >'' : string class C { ->C : C, Symbol(C, Decl(computedPropertyNames33_ES6.ts, 0, 31)) ->T : T, Symbol(T, Decl(computedPropertyNames33_ES6.ts, 1, 8)) +>C : C +>T : T bar() { ->bar : () => number, Symbol(bar, Decl(computedPropertyNames33_ES6.ts, 1, 12)) +>bar : () => number var obj = { ->obj : {}, Symbol(obj, Decl(computedPropertyNames33_ES6.ts, 3, 11)) +>obj : {} >{ [foo()]() { } } : {} [foo()]() { } >foo() : string ->foo : () => string, Symbol(foo, Decl(computedPropertyNames33_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNames33_ES6.ts, 1, 8)) +>foo : () => string +>T : T }; return 0; diff --git a/tests/baselines/reference/computedPropertyNames37_ES5.symbols b/tests/baselines/reference/computedPropertyNames37_ES5.symbols new file mode 100644 index 0000000000000..7932b2c8fdc9c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames37_ES5.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames37_ES5.ts === +class Foo { x } +>Foo : Symbol(Foo, Decl(computedPropertyNames37_ES5.ts, 0, 0)) +>x : Symbol(x, Decl(computedPropertyNames37_ES5.ts, 0, 11)) + +class Foo2 { x; y } +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames37_ES5.ts, 0, 15)) +>x : Symbol(x, Decl(computedPropertyNames37_ES5.ts, 1, 12)) +>y : Symbol(y, Decl(computedPropertyNames37_ES5.ts, 1, 15)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames37_ES5.ts, 1, 19)) + + [s: number]: Foo2; +>s : Symbol(s, Decl(computedPropertyNames37_ES5.ts, 4, 5)) +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames37_ES5.ts, 0, 15)) + + // Computed properties + get ["get1"]() { return new Foo } +>Foo : Symbol(Foo, Decl(computedPropertyNames37_ES5.ts, 0, 0)) + + set ["set1"](p: Foo2) { } +>p : Symbol(p, Decl(computedPropertyNames37_ES5.ts, 8, 17)) +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames37_ES5.ts, 0, 15)) +} diff --git a/tests/baselines/reference/computedPropertyNames37_ES5.types b/tests/baselines/reference/computedPropertyNames37_ES5.types index b6259ec7df0dc..21b68c7c12cb3 100644 --- a/tests/baselines/reference/computedPropertyNames37_ES5.types +++ b/tests/baselines/reference/computedPropertyNames37_ES5.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames37_ES5.ts === class Foo { x } ->Foo : Foo, Symbol(Foo, Decl(computedPropertyNames37_ES5.ts, 0, 0)) ->x : any, Symbol(x, Decl(computedPropertyNames37_ES5.ts, 0, 11)) +>Foo : Foo +>x : any class Foo2 { x; y } ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames37_ES5.ts, 0, 15)) ->x : any, Symbol(x, Decl(computedPropertyNames37_ES5.ts, 1, 12)) ->y : any, Symbol(y, Decl(computedPropertyNames37_ES5.ts, 1, 15)) +>Foo2 : Foo2 +>x : any +>y : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames37_ES5.ts, 1, 19)) +>C : C [s: number]: Foo2; ->s : number, Symbol(s, Decl(computedPropertyNames37_ES5.ts, 4, 5)) ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames37_ES5.ts, 0, 15)) +>s : number +>Foo2 : Foo2 // Computed properties get ["get1"]() { return new Foo } >"get1" : string >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(computedPropertyNames37_ES5.ts, 0, 0)) +>Foo : typeof Foo set ["set1"](p: Foo2) { } >"set1" : string ->p : Foo2, Symbol(p, Decl(computedPropertyNames37_ES5.ts, 8, 17)) ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames37_ES5.ts, 0, 15)) +>p : Foo2 +>Foo2 : Foo2 } diff --git a/tests/baselines/reference/computedPropertyNames37_ES6.symbols b/tests/baselines/reference/computedPropertyNames37_ES6.symbols new file mode 100644 index 0000000000000..f4439ef4f9233 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames37_ES6.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames37_ES6.ts === +class Foo { x } +>Foo : Symbol(Foo, Decl(computedPropertyNames37_ES6.ts, 0, 0)) +>x : Symbol(x, Decl(computedPropertyNames37_ES6.ts, 0, 11)) + +class Foo2 { x; y } +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames37_ES6.ts, 0, 15)) +>x : Symbol(x, Decl(computedPropertyNames37_ES6.ts, 1, 12)) +>y : Symbol(y, Decl(computedPropertyNames37_ES6.ts, 1, 15)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames37_ES6.ts, 1, 19)) + + [s: number]: Foo2; +>s : Symbol(s, Decl(computedPropertyNames37_ES6.ts, 4, 5)) +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames37_ES6.ts, 0, 15)) + + // Computed properties + get ["get1"]() { return new Foo } +>Foo : Symbol(Foo, Decl(computedPropertyNames37_ES6.ts, 0, 0)) + + set ["set1"](p: Foo2) { } +>p : Symbol(p, Decl(computedPropertyNames37_ES6.ts, 8, 17)) +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames37_ES6.ts, 0, 15)) +} diff --git a/tests/baselines/reference/computedPropertyNames37_ES6.types b/tests/baselines/reference/computedPropertyNames37_ES6.types index 85eb9b1df7577..e436a54172bbc 100644 --- a/tests/baselines/reference/computedPropertyNames37_ES6.types +++ b/tests/baselines/reference/computedPropertyNames37_ES6.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames37_ES6.ts === class Foo { x } ->Foo : Foo, Symbol(Foo, Decl(computedPropertyNames37_ES6.ts, 0, 0)) ->x : any, Symbol(x, Decl(computedPropertyNames37_ES6.ts, 0, 11)) +>Foo : Foo +>x : any class Foo2 { x; y } ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames37_ES6.ts, 0, 15)) ->x : any, Symbol(x, Decl(computedPropertyNames37_ES6.ts, 1, 12)) ->y : any, Symbol(y, Decl(computedPropertyNames37_ES6.ts, 1, 15)) +>Foo2 : Foo2 +>x : any +>y : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames37_ES6.ts, 1, 19)) +>C : C [s: number]: Foo2; ->s : number, Symbol(s, Decl(computedPropertyNames37_ES6.ts, 4, 5)) ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames37_ES6.ts, 0, 15)) +>s : number +>Foo2 : Foo2 // Computed properties get ["get1"]() { return new Foo } >"get1" : string >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(computedPropertyNames37_ES6.ts, 0, 0)) +>Foo : typeof Foo set ["set1"](p: Foo2) { } >"set1" : string ->p : Foo2, Symbol(p, Decl(computedPropertyNames37_ES6.ts, 8, 17)) ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames37_ES6.ts, 0, 15)) +>p : Foo2 +>Foo2 : Foo2 } diff --git a/tests/baselines/reference/computedPropertyNames41_ES5.symbols b/tests/baselines/reference/computedPropertyNames41_ES5.symbols new file mode 100644 index 0000000000000..e1438568f24c5 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames41_ES5.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames41_ES5.ts === +class Foo { x } +>Foo : Symbol(Foo, Decl(computedPropertyNames41_ES5.ts, 0, 0)) +>x : Symbol(x, Decl(computedPropertyNames41_ES5.ts, 0, 11)) + +class Foo2 { x; y } +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames41_ES5.ts, 0, 15)) +>x : Symbol(x, Decl(computedPropertyNames41_ES5.ts, 1, 12)) +>y : Symbol(y, Decl(computedPropertyNames41_ES5.ts, 1, 15)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames41_ES5.ts, 1, 19)) + + [s: string]: () => Foo2; +>s : Symbol(s, Decl(computedPropertyNames41_ES5.ts, 4, 5)) +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames41_ES5.ts, 0, 15)) + + // Computed properties + static [""]() { return new Foo } +>Foo : Symbol(Foo, Decl(computedPropertyNames41_ES5.ts, 0, 0)) +} diff --git a/tests/baselines/reference/computedPropertyNames41_ES5.types b/tests/baselines/reference/computedPropertyNames41_ES5.types index a217a32feaf86..5aa7ae44404f1 100644 --- a/tests/baselines/reference/computedPropertyNames41_ES5.types +++ b/tests/baselines/reference/computedPropertyNames41_ES5.types @@ -1,23 +1,23 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames41_ES5.ts === class Foo { x } ->Foo : Foo, Symbol(Foo, Decl(computedPropertyNames41_ES5.ts, 0, 0)) ->x : any, Symbol(x, Decl(computedPropertyNames41_ES5.ts, 0, 11)) +>Foo : Foo +>x : any class Foo2 { x; y } ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames41_ES5.ts, 0, 15)) ->x : any, Symbol(x, Decl(computedPropertyNames41_ES5.ts, 1, 12)) ->y : any, Symbol(y, Decl(computedPropertyNames41_ES5.ts, 1, 15)) +>Foo2 : Foo2 +>x : any +>y : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames41_ES5.ts, 1, 19)) +>C : C [s: string]: () => Foo2; ->s : string, Symbol(s, Decl(computedPropertyNames41_ES5.ts, 4, 5)) ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames41_ES5.ts, 0, 15)) +>s : string +>Foo2 : Foo2 // Computed properties static [""]() { return new Foo } >"" : string >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(computedPropertyNames41_ES5.ts, 0, 0)) +>Foo : typeof Foo } diff --git a/tests/baselines/reference/computedPropertyNames41_ES6.symbols b/tests/baselines/reference/computedPropertyNames41_ES6.symbols new file mode 100644 index 0000000000000..3f4a7dff6213e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames41_ES6.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames41_ES6.ts === +class Foo { x } +>Foo : Symbol(Foo, Decl(computedPropertyNames41_ES6.ts, 0, 0)) +>x : Symbol(x, Decl(computedPropertyNames41_ES6.ts, 0, 11)) + +class Foo2 { x; y } +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames41_ES6.ts, 0, 15)) +>x : Symbol(x, Decl(computedPropertyNames41_ES6.ts, 1, 12)) +>y : Symbol(y, Decl(computedPropertyNames41_ES6.ts, 1, 15)) + +class C { +>C : Symbol(C, Decl(computedPropertyNames41_ES6.ts, 1, 19)) + + [s: string]: () => Foo2; +>s : Symbol(s, Decl(computedPropertyNames41_ES6.ts, 4, 5)) +>Foo2 : Symbol(Foo2, Decl(computedPropertyNames41_ES6.ts, 0, 15)) + + // Computed properties + static [""]() { return new Foo } +>Foo : Symbol(Foo, Decl(computedPropertyNames41_ES6.ts, 0, 0)) +} diff --git a/tests/baselines/reference/computedPropertyNames41_ES6.types b/tests/baselines/reference/computedPropertyNames41_ES6.types index d646f8d88de82..70bfcf12a7548 100644 --- a/tests/baselines/reference/computedPropertyNames41_ES6.types +++ b/tests/baselines/reference/computedPropertyNames41_ES6.types @@ -1,23 +1,23 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames41_ES6.ts === class Foo { x } ->Foo : Foo, Symbol(Foo, Decl(computedPropertyNames41_ES6.ts, 0, 0)) ->x : any, Symbol(x, Decl(computedPropertyNames41_ES6.ts, 0, 11)) +>Foo : Foo +>x : any class Foo2 { x; y } ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames41_ES6.ts, 0, 15)) ->x : any, Symbol(x, Decl(computedPropertyNames41_ES6.ts, 1, 12)) ->y : any, Symbol(y, Decl(computedPropertyNames41_ES6.ts, 1, 15)) +>Foo2 : Foo2 +>x : any +>y : any class C { ->C : C, Symbol(C, Decl(computedPropertyNames41_ES6.ts, 1, 19)) +>C : C [s: string]: () => Foo2; ->s : string, Symbol(s, Decl(computedPropertyNames41_ES6.ts, 4, 5)) ->Foo2 : Foo2, Symbol(Foo2, Decl(computedPropertyNames41_ES6.ts, 0, 15)) +>s : string +>Foo2 : Foo2 // Computed properties static [""]() { return new Foo } >"" : string >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(computedPropertyNames41_ES6.ts, 0, 0)) +>Foo : typeof Foo } diff --git a/tests/baselines/reference/computedPropertyNames46_ES5.symbols b/tests/baselines/reference/computedPropertyNames46_ES5.symbols new file mode 100644 index 0000000000000..10a7cf0b528b7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames46_ES5.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames46_ES5.ts === +var o = { +>o : Symbol(o, Decl(computedPropertyNames46_ES5.ts, 0, 3)) + + ["" || 0]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames46_ES5.types b/tests/baselines/reference/computedPropertyNames46_ES5.types index 3aba7f2ea9224..394b22bd9042c 100644 --- a/tests/baselines/reference/computedPropertyNames46_ES5.types +++ b/tests/baselines/reference/computedPropertyNames46_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames46_ES5.ts === var o = { ->o : {}, Symbol(o, Decl(computedPropertyNames46_ES5.ts, 0, 3)) +>o : {} >{ ["" || 0]: 0} : {} ["" || 0]: 0 diff --git a/tests/baselines/reference/computedPropertyNames46_ES6.symbols b/tests/baselines/reference/computedPropertyNames46_ES6.symbols new file mode 100644 index 0000000000000..3028eb8e225e0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames46_ES6.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames46_ES6.ts === +var o = { +>o : Symbol(o, Decl(computedPropertyNames46_ES6.ts, 0, 3)) + + ["" || 0]: 0 +}; diff --git a/tests/baselines/reference/computedPropertyNames46_ES6.types b/tests/baselines/reference/computedPropertyNames46_ES6.types index 08354d22c9899..864fd81321d29 100644 --- a/tests/baselines/reference/computedPropertyNames46_ES6.types +++ b/tests/baselines/reference/computedPropertyNames46_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames46_ES6.ts === var o = { ->o : {}, Symbol(o, Decl(computedPropertyNames46_ES6.ts, 0, 3)) +>o : {} >{ ["" || 0]: 0} : {} ["" || 0]: 0 diff --git a/tests/baselines/reference/computedPropertyNames47_ES5.symbols b/tests/baselines/reference/computedPropertyNames47_ES5.symbols new file mode 100644 index 0000000000000..c124850e5a614 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames47_ES5.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames47_ES5.ts === +enum E1 { x } +>E1 : Symbol(E1, Decl(computedPropertyNames47_ES5.ts, 0, 0)) +>x : Symbol(E1.x, Decl(computedPropertyNames47_ES5.ts, 0, 9)) + +enum E2 { x } +>E2 : Symbol(E2, Decl(computedPropertyNames47_ES5.ts, 0, 13)) +>x : Symbol(E2.x, Decl(computedPropertyNames47_ES5.ts, 1, 9)) + +var o = { +>o : Symbol(o, Decl(computedPropertyNames47_ES5.ts, 2, 3)) + + [E1.x || E2.x]: 0 +>E1.x : Symbol(E1.x, Decl(computedPropertyNames47_ES5.ts, 0, 9)) +>E1 : Symbol(E1, Decl(computedPropertyNames47_ES5.ts, 0, 0)) +>x : Symbol(E1.x, Decl(computedPropertyNames47_ES5.ts, 0, 9)) +>E2.x : Symbol(E2.x, Decl(computedPropertyNames47_ES5.ts, 1, 9)) +>E2 : Symbol(E2, Decl(computedPropertyNames47_ES5.ts, 0, 13)) +>x : Symbol(E2.x, Decl(computedPropertyNames47_ES5.ts, 1, 9)) + +}; diff --git a/tests/baselines/reference/computedPropertyNames47_ES5.types b/tests/baselines/reference/computedPropertyNames47_ES5.types index 2d191a4c37aca..6aa841ffd62eb 100644 --- a/tests/baselines/reference/computedPropertyNames47_ES5.types +++ b/tests/baselines/reference/computedPropertyNames47_ES5.types @@ -1,24 +1,24 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames47_ES5.ts === enum E1 { x } ->E1 : E1, Symbol(E1, Decl(computedPropertyNames47_ES5.ts, 0, 0)) ->x : E1, Symbol(E1.x, Decl(computedPropertyNames47_ES5.ts, 0, 9)) +>E1 : E1 +>x : E1 enum E2 { x } ->E2 : E2, Symbol(E2, Decl(computedPropertyNames47_ES5.ts, 0, 13)) ->x : E2, Symbol(E2.x, Decl(computedPropertyNames47_ES5.ts, 1, 9)) +>E2 : E2 +>x : E2 var o = { ->o : {}, Symbol(o, Decl(computedPropertyNames47_ES5.ts, 2, 3)) +>o : {} >{ [E1.x || E2.x]: 0} : {} [E1.x || E2.x]: 0 >E1.x || E2.x : E1 | E2 ->E1.x : E1, Symbol(E1.x, Decl(computedPropertyNames47_ES5.ts, 0, 9)) ->E1 : typeof E1, Symbol(E1, Decl(computedPropertyNames47_ES5.ts, 0, 0)) ->x : E1, Symbol(E1.x, Decl(computedPropertyNames47_ES5.ts, 0, 9)) ->E2.x : E2, Symbol(E2.x, Decl(computedPropertyNames47_ES5.ts, 1, 9)) ->E2 : typeof E2, Symbol(E2, Decl(computedPropertyNames47_ES5.ts, 0, 13)) ->x : E2, Symbol(E2.x, Decl(computedPropertyNames47_ES5.ts, 1, 9)) +>E1.x : E1 +>E1 : typeof E1 +>x : E1 +>E2.x : E2 +>E2 : typeof E2 +>x : E2 >0 : number }; diff --git a/tests/baselines/reference/computedPropertyNames47_ES6.symbols b/tests/baselines/reference/computedPropertyNames47_ES6.symbols new file mode 100644 index 0000000000000..ec0850d5b139a --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames47_ES6.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames47_ES6.ts === +enum E1 { x } +>E1 : Symbol(E1, Decl(computedPropertyNames47_ES6.ts, 0, 0)) +>x : Symbol(E1.x, Decl(computedPropertyNames47_ES6.ts, 0, 9)) + +enum E2 { x } +>E2 : Symbol(E2, Decl(computedPropertyNames47_ES6.ts, 0, 13)) +>x : Symbol(E2.x, Decl(computedPropertyNames47_ES6.ts, 1, 9)) + +var o = { +>o : Symbol(o, Decl(computedPropertyNames47_ES6.ts, 2, 3)) + + [E1.x || E2.x]: 0 +>E1.x : Symbol(E1.x, Decl(computedPropertyNames47_ES6.ts, 0, 9)) +>E1 : Symbol(E1, Decl(computedPropertyNames47_ES6.ts, 0, 0)) +>x : Symbol(E1.x, Decl(computedPropertyNames47_ES6.ts, 0, 9)) +>E2.x : Symbol(E2.x, Decl(computedPropertyNames47_ES6.ts, 1, 9)) +>E2 : Symbol(E2, Decl(computedPropertyNames47_ES6.ts, 0, 13)) +>x : Symbol(E2.x, Decl(computedPropertyNames47_ES6.ts, 1, 9)) + +}; diff --git a/tests/baselines/reference/computedPropertyNames47_ES6.types b/tests/baselines/reference/computedPropertyNames47_ES6.types index a808786a827eb..f038b172ca173 100644 --- a/tests/baselines/reference/computedPropertyNames47_ES6.types +++ b/tests/baselines/reference/computedPropertyNames47_ES6.types @@ -1,24 +1,24 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames47_ES6.ts === enum E1 { x } ->E1 : E1, Symbol(E1, Decl(computedPropertyNames47_ES6.ts, 0, 0)) ->x : E1, Symbol(E1.x, Decl(computedPropertyNames47_ES6.ts, 0, 9)) +>E1 : E1 +>x : E1 enum E2 { x } ->E2 : E2, Symbol(E2, Decl(computedPropertyNames47_ES6.ts, 0, 13)) ->x : E2, Symbol(E2.x, Decl(computedPropertyNames47_ES6.ts, 1, 9)) +>E2 : E2 +>x : E2 var o = { ->o : {}, Symbol(o, Decl(computedPropertyNames47_ES6.ts, 2, 3)) +>o : {} >{ [E1.x || E2.x]: 0} : {} [E1.x || E2.x]: 0 >E1.x || E2.x : E1 | E2 ->E1.x : E1, Symbol(E1.x, Decl(computedPropertyNames47_ES6.ts, 0, 9)) ->E1 : typeof E1, Symbol(E1, Decl(computedPropertyNames47_ES6.ts, 0, 0)) ->x : E1, Symbol(E1.x, Decl(computedPropertyNames47_ES6.ts, 0, 9)) ->E2.x : E2, Symbol(E2.x, Decl(computedPropertyNames47_ES6.ts, 1, 9)) ->E2 : typeof E2, Symbol(E2, Decl(computedPropertyNames47_ES6.ts, 0, 13)) ->x : E2, Symbol(E2.x, Decl(computedPropertyNames47_ES6.ts, 1, 9)) +>E1.x : E1 +>E1 : typeof E1 +>x : E1 +>E2.x : E2 +>E2 : typeof E2 +>x : E2 >0 : number }; diff --git a/tests/baselines/reference/computedPropertyNames48_ES5.symbols b/tests/baselines/reference/computedPropertyNames48_ES5.symbols new file mode 100644 index 0000000000000..14f7cc6352de9 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames48_ES5.symbols @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES5.ts === +declare function extractIndexer(p: { [n: number]: T }): T; +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNames48_ES5.ts, 0, 32)) +>p : Symbol(p, Decl(computedPropertyNames48_ES5.ts, 0, 35)) +>n : Symbol(n, Decl(computedPropertyNames48_ES5.ts, 0, 41)) +>T : Symbol(T, Decl(computedPropertyNames48_ES5.ts, 0, 32)) +>T : Symbol(T, Decl(computedPropertyNames48_ES5.ts, 0, 32)) + +enum E { x } +>E : Symbol(E, Decl(computedPropertyNames48_ES5.ts, 0, 61)) +>x : Symbol(E.x, Decl(computedPropertyNames48_ES5.ts, 2, 8)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames48_ES5.ts, 4, 3)) + +extractIndexer({ +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) + + [a]: "" +>a : Symbol(a, Decl(computedPropertyNames48_ES5.ts, 4, 3)) + +}); // Should return string + +extractIndexer({ +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) + + [E.x]: "" +>E.x : Symbol(E.x, Decl(computedPropertyNames48_ES5.ts, 2, 8)) +>E : Symbol(E, Decl(computedPropertyNames48_ES5.ts, 0, 61)) +>x : Symbol(E.x, Decl(computedPropertyNames48_ES5.ts, 2, 8)) + +}); // Should return string + +extractIndexer({ +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) + + ["" || 0]: "" +}); // Should return any (widened form of undefined) diff --git a/tests/baselines/reference/computedPropertyNames48_ES5.types b/tests/baselines/reference/computedPropertyNames48_ES5.types index ea0bb2887eb3e..2b9131a11c8b0 100644 --- a/tests/baselines/reference/computedPropertyNames48_ES5.types +++ b/tests/baselines/reference/computedPropertyNames48_ES5.types @@ -1,46 +1,46 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES5.ts === declare function extractIndexer(p: { [n: number]: T }): T; ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNames48_ES5.ts, 0, 32)) ->p : { [n: number]: T; }, Symbol(p, Decl(computedPropertyNames48_ES5.ts, 0, 35)) ->n : number, Symbol(n, Decl(computedPropertyNames48_ES5.ts, 0, 41)) ->T : T, Symbol(T, Decl(computedPropertyNames48_ES5.ts, 0, 32)) ->T : T, Symbol(T, Decl(computedPropertyNames48_ES5.ts, 0, 32)) +>extractIndexer : (p: { [n: number]: T; }) => T +>T : T +>p : { [n: number]: T; } +>n : number +>T : T +>T : T enum E { x } ->E : E, Symbol(E, Decl(computedPropertyNames48_ES5.ts, 0, 61)) ->x : E, Symbol(E.x, Decl(computedPropertyNames48_ES5.ts, 2, 8)) +>E : E +>x : E var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames48_ES5.ts, 4, 3)) +>a : any extractIndexer({ >extractIndexer({ [a]: ""}) : string ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) +>extractIndexer : (p: { [n: number]: T; }) => T >{ [a]: ""} : { [x: number]: string; } [a]: "" ->a : any, Symbol(a, Decl(computedPropertyNames48_ES5.ts, 4, 3)) +>a : any >"" : string }); // Should return string extractIndexer({ >extractIndexer({ [E.x]: ""}) : string ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) +>extractIndexer : (p: { [n: number]: T; }) => T >{ [E.x]: ""} : { [x: number]: string; } [E.x]: "" ->E.x : E, Symbol(E.x, Decl(computedPropertyNames48_ES5.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(computedPropertyNames48_ES5.ts, 0, 61)) ->x : E, Symbol(E.x, Decl(computedPropertyNames48_ES5.ts, 2, 8)) +>E.x : E +>E : typeof E +>x : E >"" : string }); // Should return string extractIndexer({ >extractIndexer({ ["" || 0]: ""}) : any ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES5.ts, 0, 0)) +>extractIndexer : (p: { [n: number]: T; }) => T >{ ["" || 0]: ""} : { [x: number]: undefined; } ["" || 0]: "" diff --git a/tests/baselines/reference/computedPropertyNames48_ES6.symbols b/tests/baselines/reference/computedPropertyNames48_ES6.symbols new file mode 100644 index 0000000000000..5d63c9f495db3 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames48_ES6.symbols @@ -0,0 +1,39 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES6.ts === +declare function extractIndexer(p: { [n: number]: T }): T; +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNames48_ES6.ts, 0, 32)) +>p : Symbol(p, Decl(computedPropertyNames48_ES6.ts, 0, 35)) +>n : Symbol(n, Decl(computedPropertyNames48_ES6.ts, 0, 41)) +>T : Symbol(T, Decl(computedPropertyNames48_ES6.ts, 0, 32)) +>T : Symbol(T, Decl(computedPropertyNames48_ES6.ts, 0, 32)) + +enum E { x } +>E : Symbol(E, Decl(computedPropertyNames48_ES6.ts, 0, 61)) +>x : Symbol(E.x, Decl(computedPropertyNames48_ES6.ts, 2, 8)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames48_ES6.ts, 4, 3)) + +extractIndexer({ +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) + + [a]: "" +>a : Symbol(a, Decl(computedPropertyNames48_ES6.ts, 4, 3)) + +}); // Should return string + +extractIndexer({ +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) + + [E.x]: "" +>E.x : Symbol(E.x, Decl(computedPropertyNames48_ES6.ts, 2, 8)) +>E : Symbol(E, Decl(computedPropertyNames48_ES6.ts, 0, 61)) +>x : Symbol(E.x, Decl(computedPropertyNames48_ES6.ts, 2, 8)) + +}); // Should return string + +extractIndexer({ +>extractIndexer : Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) + + ["" || 0]: "" +}); // Should return any (widened form of undefined) diff --git a/tests/baselines/reference/computedPropertyNames48_ES6.types b/tests/baselines/reference/computedPropertyNames48_ES6.types index f418b24a10308..2b803b19bd69b 100644 --- a/tests/baselines/reference/computedPropertyNames48_ES6.types +++ b/tests/baselines/reference/computedPropertyNames48_ES6.types @@ -1,46 +1,46 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames48_ES6.ts === declare function extractIndexer(p: { [n: number]: T }): T; ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNames48_ES6.ts, 0, 32)) ->p : { [n: number]: T; }, Symbol(p, Decl(computedPropertyNames48_ES6.ts, 0, 35)) ->n : number, Symbol(n, Decl(computedPropertyNames48_ES6.ts, 0, 41)) ->T : T, Symbol(T, Decl(computedPropertyNames48_ES6.ts, 0, 32)) ->T : T, Symbol(T, Decl(computedPropertyNames48_ES6.ts, 0, 32)) +>extractIndexer : (p: { [n: number]: T; }) => T +>T : T +>p : { [n: number]: T; } +>n : number +>T : T +>T : T enum E { x } ->E : E, Symbol(E, Decl(computedPropertyNames48_ES6.ts, 0, 61)) ->x : E, Symbol(E.x, Decl(computedPropertyNames48_ES6.ts, 2, 8)) +>E : E +>x : E var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames48_ES6.ts, 4, 3)) +>a : any extractIndexer({ >extractIndexer({ [a]: ""}) : string ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) +>extractIndexer : (p: { [n: number]: T; }) => T >{ [a]: ""} : { [x: number]: string; } [a]: "" ->a : any, Symbol(a, Decl(computedPropertyNames48_ES6.ts, 4, 3)) +>a : any >"" : string }); // Should return string extractIndexer({ >extractIndexer({ [E.x]: ""}) : string ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) +>extractIndexer : (p: { [n: number]: T; }) => T >{ [E.x]: ""} : { [x: number]: string; } [E.x]: "" ->E.x : E, Symbol(E.x, Decl(computedPropertyNames48_ES6.ts, 2, 8)) ->E : typeof E, Symbol(E, Decl(computedPropertyNames48_ES6.ts, 0, 61)) ->x : E, Symbol(E.x, Decl(computedPropertyNames48_ES6.ts, 2, 8)) +>E.x : E +>E : typeof E +>x : E >"" : string }); // Should return string extractIndexer({ >extractIndexer({ ["" || 0]: ""}) : any ->extractIndexer : (p: { [n: number]: T; }) => T, Symbol(extractIndexer, Decl(computedPropertyNames48_ES6.ts, 0, 0)) +>extractIndexer : (p: { [n: number]: T; }) => T >{ ["" || 0]: ""} : { [x: number]: undefined; } ["" || 0]: "" diff --git a/tests/baselines/reference/computedPropertyNames4_ES5.symbols b/tests/baselines/reference/computedPropertyNames4_ES5.symbols new file mode 100644 index 0000000000000..be2014862864c --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames4_ES5.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames4_ES5.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames4_ES5.ts, 2, 3)) + +var v = { +>v : Symbol(v, Decl(computedPropertyNames4_ES5.ts, 3, 3)) + + [s]: 0, +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) + + [n]: n, +>n : Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) +>n : Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) + + [s + s]: 1, +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) + + [s + n]: 2, +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) + + [+s]: s, +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) + + [""]: 0, + [0]: 0, + [a]: 1, +>a : Symbol(a, Decl(computedPropertyNames4_ES5.ts, 2, 3)) + + [true]: 0, + [`hello bye`]: 0, + [`hello ${a} bye`]: 0 +>a : Symbol(a, Decl(computedPropertyNames4_ES5.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames4_ES5.types b/tests/baselines/reference/computedPropertyNames4_ES5.types index 80ec753fe5526..51baca2658629 100644 --- a/tests/baselines/reference/computedPropertyNames4_ES5.types +++ b/tests/baselines/reference/computedPropertyNames4_ES5.types @@ -1,41 +1,41 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames4_ES5.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames4_ES5.ts, 2, 3)) +>a : any var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames4_ES5.ts, 3, 3)) +>v : {} >{ [s]: 0, [n]: n, [s + s]: 1, [s + n]: 2, [+s]: s, [""]: 0, [0]: 0, [a]: 1, [true]: 0, [`hello bye`]: 0, [`hello ${a} bye`]: 0} : {} [s]: 0, ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>s : string >0 : number [n]: n, ->n : number, Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) +>n : number +>n : number [s + s]: 1, >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>s : string +>s : string >1 : number [s + n]: 2, >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames4_ES5.ts, 1, 3)) +>s : string +>n : number >2 : number [+s]: s, >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames4_ES5.ts, 0, 3)) +>s : string +>s : string [""]: 0, >"" : string @@ -46,7 +46,7 @@ var v = { >0 : number [a]: 1, ->a : any, Symbol(a, Decl(computedPropertyNames4_ES5.ts, 2, 3)) +>a : any >1 : number [true]: 0, @@ -60,6 +60,6 @@ var v = { [`hello ${a} bye`]: 0 >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames4_ES5.ts, 2, 3)) +>a : any >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames4_ES6.symbols b/tests/baselines/reference/computedPropertyNames4_ES6.symbols new file mode 100644 index 0000000000000..b531a1b3d2844 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames4_ES6.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames4_ES6.ts === +var s: string; +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) + +var n: number; +>n : Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) + +var a: any; +>a : Symbol(a, Decl(computedPropertyNames4_ES6.ts, 2, 3)) + +var v = { +>v : Symbol(v, Decl(computedPropertyNames4_ES6.ts, 3, 3)) + + [s]: 0, +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) + + [n]: n, +>n : Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) +>n : Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) + + [s + s]: 1, +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) + + [s + n]: 2, +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>n : Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) + + [+s]: s, +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>s : Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) + + [""]: 0, + [0]: 0, + [a]: 1, +>a : Symbol(a, Decl(computedPropertyNames4_ES6.ts, 2, 3)) + + [true]: 0, + [`hello bye`]: 0, + [`hello ${a} bye`]: 0 +>a : Symbol(a, Decl(computedPropertyNames4_ES6.ts, 2, 3)) +} diff --git a/tests/baselines/reference/computedPropertyNames4_ES6.types b/tests/baselines/reference/computedPropertyNames4_ES6.types index a09f57abd4180..0526704951726 100644 --- a/tests/baselines/reference/computedPropertyNames4_ES6.types +++ b/tests/baselines/reference/computedPropertyNames4_ES6.types @@ -1,41 +1,41 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames4_ES6.ts === var s: string; ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>s : string var n: number; ->n : number, Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) +>n : number var a: any; ->a : any, Symbol(a, Decl(computedPropertyNames4_ES6.ts, 2, 3)) +>a : any var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames4_ES6.ts, 3, 3)) +>v : {} >{ [s]: 0, [n]: n, [s + s]: 1, [s + n]: 2, [+s]: s, [""]: 0, [0]: 0, [a]: 1, [true]: 0, [`hello bye`]: 0, [`hello ${a} bye`]: 0} : {} [s]: 0, ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>s : string >0 : number [n]: n, ->n : number, Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) +>n : number +>n : number [s + s]: 1, >s + s : string ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>s : string +>s : string >1 : number [s + n]: 2, >s + n : string ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) ->n : number, Symbol(n, Decl(computedPropertyNames4_ES6.ts, 1, 3)) +>s : string +>n : number >2 : number [+s]: s, >+s : number ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) ->s : string, Symbol(s, Decl(computedPropertyNames4_ES6.ts, 0, 3)) +>s : string +>s : string [""]: 0, >"" : string @@ -46,7 +46,7 @@ var v = { >0 : number [a]: 1, ->a : any, Symbol(a, Decl(computedPropertyNames4_ES6.ts, 2, 3)) +>a : any >1 : number [true]: 0, @@ -60,6 +60,6 @@ var v = { [`hello ${a} bye`]: 0 >`hello ${a} bye` : string ->a : any, Symbol(a, Decl(computedPropertyNames4_ES6.ts, 2, 3)) +>a : any >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames7_ES5.symbols b/tests/baselines/reference/computedPropertyNames7_ES5.symbols new file mode 100644 index 0000000000000..7f5e7c0fd461a --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames7_ES5.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames7_ES5.ts === +enum E { +>E : Symbol(E, Decl(computedPropertyNames7_ES5.ts, 0, 0)) + + member +>member : Symbol(E.member, Decl(computedPropertyNames7_ES5.ts, 0, 8)) +} +var v = { +>v : Symbol(v, Decl(computedPropertyNames7_ES5.ts, 3, 3)) + + [E.member]: 0 +>E.member : Symbol(E.member, Decl(computedPropertyNames7_ES5.ts, 0, 8)) +>E : Symbol(E, Decl(computedPropertyNames7_ES5.ts, 0, 0)) +>member : Symbol(E.member, Decl(computedPropertyNames7_ES5.ts, 0, 8)) +} diff --git a/tests/baselines/reference/computedPropertyNames7_ES5.types b/tests/baselines/reference/computedPropertyNames7_ES5.types index 528ae45d0f35c..8ebd4d75668b6 100644 --- a/tests/baselines/reference/computedPropertyNames7_ES5.types +++ b/tests/baselines/reference/computedPropertyNames7_ES5.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames7_ES5.ts === enum E { ->E : E, Symbol(E, Decl(computedPropertyNames7_ES5.ts, 0, 0)) +>E : E member ->member : E, Symbol(E.member, Decl(computedPropertyNames7_ES5.ts, 0, 8)) +>member : E } var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames7_ES5.ts, 3, 3)) +>v : {} >{ [E.member]: 0} : {} [E.member]: 0 ->E.member : E, Symbol(E.member, Decl(computedPropertyNames7_ES5.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(computedPropertyNames7_ES5.ts, 0, 0)) ->member : E, Symbol(E.member, Decl(computedPropertyNames7_ES5.ts, 0, 8)) +>E.member : E +>E : typeof E +>member : E >0 : number } diff --git a/tests/baselines/reference/computedPropertyNames7_ES6.symbols b/tests/baselines/reference/computedPropertyNames7_ES6.symbols new file mode 100644 index 0000000000000..b008d47a8438a --- /dev/null +++ b/tests/baselines/reference/computedPropertyNames7_ES6.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNames7_ES6.ts === +enum E { +>E : Symbol(E, Decl(computedPropertyNames7_ES6.ts, 0, 0)) + + member +>member : Symbol(E.member, Decl(computedPropertyNames7_ES6.ts, 0, 8)) +} +var v = { +>v : Symbol(v, Decl(computedPropertyNames7_ES6.ts, 3, 3)) + + [E.member]: 0 +>E.member : Symbol(E.member, Decl(computedPropertyNames7_ES6.ts, 0, 8)) +>E : Symbol(E, Decl(computedPropertyNames7_ES6.ts, 0, 0)) +>member : Symbol(E.member, Decl(computedPropertyNames7_ES6.ts, 0, 8)) +} diff --git a/tests/baselines/reference/computedPropertyNames7_ES6.types b/tests/baselines/reference/computedPropertyNames7_ES6.types index 5ff5ca1c0b344..3a78b9c0ec6cd 100644 --- a/tests/baselines/reference/computedPropertyNames7_ES6.types +++ b/tests/baselines/reference/computedPropertyNames7_ES6.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames7_ES6.ts === enum E { ->E : E, Symbol(E, Decl(computedPropertyNames7_ES6.ts, 0, 0)) +>E : E member ->member : E, Symbol(E.member, Decl(computedPropertyNames7_ES6.ts, 0, 8)) +>member : E } var v = { ->v : {}, Symbol(v, Decl(computedPropertyNames7_ES6.ts, 3, 3)) +>v : {} >{ [E.member]: 0} : {} [E.member]: 0 ->E.member : E, Symbol(E.member, Decl(computedPropertyNames7_ES6.ts, 0, 8)) ->E : typeof E, Symbol(E, Decl(computedPropertyNames7_ES6.ts, 0, 0)) ->member : E, Symbol(E.member, Decl(computedPropertyNames7_ES6.ts, 0, 8)) +>E.member : E +>E : typeof E +>member : E >0 : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.symbols new file mode 100644 index 0000000000000..a99a38997256f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType1_ES5.ts, 0, 0)) + + [s: string]: (x: string) => number; +>s : Symbol(s, Decl(computedPropertyNamesContextualType1_ES5.ts, 1, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType1_ES5.ts, 1, 18)) + + [s: number]: (x: any) => number; // Doesn't get hit +>s : Symbol(s, Decl(computedPropertyNamesContextualType1_ES5.ts, 2, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType1_ES5.ts, 2, 18)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType1_ES5.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType1_ES5.ts, 0, 0)) + + ["" + 0](y) { return y.length; }, +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 6, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 6, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + ["" + 1]: y => y.length +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 7, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 7, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types index e11db2247ba57..bea7267d7d12d 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType1_ES5.types @@ -1,37 +1,37 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType1_ES5.ts, 0, 0)) +>I : I [s: string]: (x: string) => number; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType1_ES5.ts, 1, 5)) ->x : string, Symbol(x, Decl(computedPropertyNamesContextualType1_ES5.ts, 1, 18)) +>s : string +>x : string [s: number]: (x: any) => number; // Doesn't get hit ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType1_ES5.ts, 2, 5)) ->x : any, Symbol(x, Decl(computedPropertyNamesContextualType1_ES5.ts, 2, 18)) +>s : number +>x : any } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType1_ES5.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType1_ES5.ts, 0, 0)) +>o : I +>I : I >{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: (y: string) => number; [x: number]: undefined; } ["" + 0](y) { return y.length; }, >"" + 0 : string >"" : string >0 : number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 6, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 6, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number ["" + 1]: y => y.length >"" + 1 : string >"" : string >1 : number >y => y.length : (y: string) => number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 7, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES5.ts, 7, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.symbols new file mode 100644 index 0000000000000..e386b8e9efa94 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType1_ES6.ts, 0, 0)) + + [s: string]: (x: string) => number; +>s : Symbol(s, Decl(computedPropertyNamesContextualType1_ES6.ts, 1, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType1_ES6.ts, 1, 18)) + + [s: number]: (x: any) => number; // Doesn't get hit +>s : Symbol(s, Decl(computedPropertyNamesContextualType1_ES6.ts, 2, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType1_ES6.ts, 2, 18)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType1_ES6.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType1_ES6.ts, 0, 0)) + + ["" + 0](y) { return y.length; }, +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 6, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 6, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + ["" + 1]: y => y.length +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 7, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 7, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types index 054d2a47cc732..c8d0be6e833d2 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType1_ES6.types @@ -1,37 +1,37 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType1_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType1_ES6.ts, 0, 0)) +>I : I [s: string]: (x: string) => number; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType1_ES6.ts, 1, 5)) ->x : string, Symbol(x, Decl(computedPropertyNamesContextualType1_ES6.ts, 1, 18)) +>s : string +>x : string [s: number]: (x: any) => number; // Doesn't get hit ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType1_ES6.ts, 2, 5)) ->x : any, Symbol(x, Decl(computedPropertyNamesContextualType1_ES6.ts, 2, 18)) +>s : number +>x : any } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType1_ES6.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType1_ES6.ts, 0, 0)) +>o : I +>I : I >{ ["" + 0](y) { return y.length; }, ["" + 1]: y => y.length} : { [x: string]: (y: string) => number; [x: number]: undefined; } ["" + 0](y) { return y.length; }, >"" + 0 : string >"" : string >0 : number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 6, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 6, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number ["" + 1]: y => y.length >"" + 1 : string >"" : string >1 : number >y => y.length : (y: string) => number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 7, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType1_ES6.ts, 7, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.symbols new file mode 100644 index 0000000000000..fcd89e032e646 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType2_ES5.ts, 0, 0)) + + [s: string]: (x: any) => number; // Doesn't get hit +>s : Symbol(s, Decl(computedPropertyNamesContextualType2_ES5.ts, 1, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType2_ES5.ts, 1, 18)) + + [s: number]: (x: string) => number; +>s : Symbol(s, Decl(computedPropertyNamesContextualType2_ES5.ts, 2, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType2_ES5.ts, 2, 18)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType2_ES5.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType2_ES5.ts, 0, 0)) + + [+"foo"](y) { return y.length; }, +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 6, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 6, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + [+"bar"]: y => y.length +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 7, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 7, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types index 3a76a2b55097b..52de216b803b1 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType2_ES5.types @@ -1,35 +1,35 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType2_ES5.ts, 0, 0)) +>I : I [s: string]: (x: any) => number; // Doesn't get hit ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType2_ES5.ts, 1, 5)) ->x : any, Symbol(x, Decl(computedPropertyNamesContextualType2_ES5.ts, 1, 18)) +>s : string +>x : any [s: number]: (x: string) => number; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType2_ES5.ts, 2, 5)) ->x : string, Symbol(x, Decl(computedPropertyNamesContextualType2_ES5.ts, 2, 18)) +>s : number +>x : string } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType2_ES5.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType2_ES5.ts, 0, 0)) +>o : I +>I : I >{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: (y: string) => number; [x: number]: (y: string) => number; } [+"foo"](y) { return y.length; }, >+"foo" : number >"foo" : string ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 6, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 6, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number [+"bar"]: y => y.length >+"bar" : number >"bar" : string >y => y.length : (y: string) => number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 7, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES5.ts, 7, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.symbols new file mode 100644 index 0000000000000..ce6be5194c055 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType2_ES6.ts, 0, 0)) + + [s: string]: (x: any) => number; // Doesn't get hit +>s : Symbol(s, Decl(computedPropertyNamesContextualType2_ES6.ts, 1, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType2_ES6.ts, 1, 18)) + + [s: number]: (x: string) => number; +>s : Symbol(s, Decl(computedPropertyNamesContextualType2_ES6.ts, 2, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType2_ES6.ts, 2, 18)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType2_ES6.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType2_ES6.ts, 0, 0)) + + [+"foo"](y) { return y.length; }, +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 6, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 6, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + [+"bar"]: y => y.length +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 7, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 7, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types index 6825714b05f09..cbbe0edc6a177 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType2_ES6.types @@ -1,35 +1,35 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType2_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType2_ES6.ts, 0, 0)) +>I : I [s: string]: (x: any) => number; // Doesn't get hit ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType2_ES6.ts, 1, 5)) ->x : any, Symbol(x, Decl(computedPropertyNamesContextualType2_ES6.ts, 1, 18)) +>s : string +>x : any [s: number]: (x: string) => number; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType2_ES6.ts, 2, 5)) ->x : string, Symbol(x, Decl(computedPropertyNamesContextualType2_ES6.ts, 2, 18)) +>s : number +>x : string } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType2_ES6.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType2_ES6.ts, 0, 0)) +>o : I +>I : I >{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: (y: string) => number; [x: number]: (y: string) => number; } [+"foo"](y) { return y.length; }, >+"foo" : number >"foo" : string ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 6, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 6, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number [+"bar"]: y => y.length >+"bar" : number >"bar" : string >y => y.length : (y: string) => number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 7, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType2_ES6.ts, 7, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.symbols new file mode 100644 index 0000000000000..d73c9c186d4b4 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType3_ES5.ts, 0, 0)) + + [s: string]: (x: string) => number; +>s : Symbol(s, Decl(computedPropertyNamesContextualType3_ES5.ts, 1, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType3_ES5.ts, 1, 18)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType3_ES5.ts, 4, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType3_ES5.ts, 0, 0)) + + [+"foo"](y) { return y.length; }, +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 5, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 5, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + [+"bar"]: y => y.length +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 6, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 6, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types index fba6e0f8208cf..5f647fb4c1b70 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType3_ES5.types @@ -1,31 +1,31 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType3_ES5.ts, 0, 0)) +>I : I [s: string]: (x: string) => number; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType3_ES5.ts, 1, 5)) ->x : string, Symbol(x, Decl(computedPropertyNamesContextualType3_ES5.ts, 1, 18)) +>s : string +>x : string } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType3_ES5.ts, 4, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType3_ES5.ts, 0, 0)) +>o : I +>I : I >{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: (y: string) => number; } [+"foo"](y) { return y.length; }, >+"foo" : number >"foo" : string ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 5, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 5, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number [+"bar"]: y => y.length >+"bar" : number >"bar" : string >y => y.length : (y: string) => number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 6, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES5.ts, 6, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.symbols new file mode 100644 index 0000000000000..48e93ee62f971 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType3_ES6.ts, 0, 0)) + + [s: string]: (x: string) => number; +>s : Symbol(s, Decl(computedPropertyNamesContextualType3_ES6.ts, 1, 5)) +>x : Symbol(x, Decl(computedPropertyNamesContextualType3_ES6.ts, 1, 18)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType3_ES6.ts, 4, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType3_ES6.ts, 0, 0)) + + [+"foo"](y) { return y.length; }, +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 5, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 5, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + [+"bar"]: y => y.length +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 6, 13)) +>y.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 6, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types index d5900df7c4900..e872df6f1b21c 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType3_ES6.types @@ -1,31 +1,31 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType3_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType3_ES6.ts, 0, 0)) +>I : I [s: string]: (x: string) => number; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType3_ES6.ts, 1, 5)) ->x : string, Symbol(x, Decl(computedPropertyNamesContextualType3_ES6.ts, 1, 18)) +>s : string +>x : string } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType3_ES6.ts, 4, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType3_ES6.ts, 0, 0)) +>o : I +>I : I >{ [+"foo"](y) { return y.length; }, [+"bar"]: y => y.length} : { [x: string]: (y: string) => number; } [+"foo"](y) { return y.length; }, >+"foo" : number >"foo" : string ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 5, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 5, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number [+"bar"]: y => y.length >+"bar" : number >"bar" : string >y => y.length : (y: string) => number ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 6, 13)) ->y.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->y : string, Symbol(y, Decl(computedPropertyNamesContextualType3_ES6.ts, 6, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>y : string +>y.length : number +>y : string +>length : number } diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.symbols new file mode 100644 index 0000000000000..f6f19f3fd61e0 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType4_ES5.ts, 0, 0)) + + [s: string]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType4_ES5.ts, 1, 5)) + + [s: number]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType4_ES5.ts, 2, 5)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType4_ES5.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType4_ES5.ts, 0, 0)) + + [""+"foo"]: "", + [""+"bar"]: 0 +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types index a034322b84d0f..e5a57363ca060 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType4_ES5.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType4_ES5.ts, 0, 0)) +>I : I [s: string]: any; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType4_ES5.ts, 1, 5)) +>s : string [s: number]: any; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType4_ES5.ts, 2, 5)) +>s : number } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType4_ES5.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType4_ES5.ts, 0, 0)) +>o : I +>I : I >{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; [x: number]: undefined; } [""+"foo"]: "", diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.symbols new file mode 100644 index 0000000000000..184a561425cce --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType4_ES6.ts, 0, 0)) + + [s: string]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType4_ES6.ts, 1, 5)) + + [s: number]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType4_ES6.ts, 2, 5)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType4_ES6.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType4_ES6.ts, 0, 0)) + + [""+"foo"]: "", + [""+"bar"]: 0 +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types index f6caaab0cc761..bdfa569752bab 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType4_ES6.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType4_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType4_ES6.ts, 0, 0)) +>I : I [s: string]: any; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType4_ES6.ts, 1, 5)) +>s : string [s: number]: any; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType4_ES6.ts, 2, 5)) +>s : number } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType4_ES6.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType4_ES6.ts, 0, 0)) +>o : I +>I : I >{ [""+"foo"]: "", [""+"bar"]: 0} : { [x: string]: string | number; [x: number]: undefined; } [""+"foo"]: "", diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.symbols new file mode 100644 index 0000000000000..e93cf3f94a1c7 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType5_ES5.ts, 0, 0)) + + [s: string]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType5_ES5.ts, 1, 5)) + + [s: number]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType5_ES5.ts, 2, 5)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType5_ES5.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType5_ES5.ts, 0, 0)) + + [+"foo"]: "", + [+"bar"]: 0 +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types index 71c7d6e90dfe4..e142fe937b998 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType5_ES5.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType5_ES5.ts, 0, 0)) +>I : I [s: string]: any; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType5_ES5.ts, 1, 5)) +>s : string [s: number]: any; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType5_ES5.ts, 2, 5)) +>s : number } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType5_ES5.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType5_ES5.ts, 0, 0)) +>o : I +>I : I >{ [+"foo"]: "", [+"bar"]: 0} : { [x: string]: string | number; [x: number]: string | number; } [+"foo"]: "", diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.symbols new file mode 100644 index 0000000000000..46212968874ae --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType5_ES6.ts, 0, 0)) + + [s: string]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType5_ES6.ts, 1, 5)) + + [s: number]: any; +>s : Symbol(s, Decl(computedPropertyNamesContextualType5_ES6.ts, 2, 5)) +} + +var o: I = { +>o : Symbol(o, Decl(computedPropertyNamesContextualType5_ES6.ts, 5, 3)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType5_ES6.ts, 0, 0)) + + [+"foo"]: "", + [+"bar"]: 0 +} diff --git a/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types index 5315e5d88d787..7b385b36770ec 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType5_ES6.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType5_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType5_ES6.ts, 0, 0)) +>I : I [s: string]: any; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType5_ES6.ts, 1, 5)) +>s : string [s: number]: any; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType5_ES6.ts, 2, 5)) +>s : number } var o: I = { ->o : I, Symbol(o, Decl(computedPropertyNamesContextualType5_ES6.ts, 5, 3)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType5_ES6.ts, 0, 0)) +>o : I +>I : I >{ [+"foo"]: "", [+"bar"]: 0} : { [x: string]: string | number; [x: number]: string | number; } [+"foo"]: "", diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.symbols new file mode 100644 index 0000000000000..fb303b1f8b371 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 12)) + + [s: string]: T; +>s : Symbol(s, Decl(computedPropertyNamesContextualType6_ES5.ts, 1, 5)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 12)) +} + +declare function foo(obj: I): T +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType6_ES5.ts, 2, 1)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) +>obj : Symbol(obj, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 24)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) + +foo({ +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType6_ES5.ts, 2, 1)) + + p: "", +>p : Symbol(p, Decl(computedPropertyNamesContextualType6_ES5.ts, 6, 5)) + + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types index 4b9727081a8e7..52ff0c1001dfc 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 12)) +>I : I +>T : T [s: string]: T; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType6_ES5.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 12)) +>s : string +>T : T } declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES5.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) +>foo : (obj: I) => T +>T : T +>obj : I +>I : I +>T : T +>T : T foo({ >foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | number[] | (() => void) ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES5.ts, 2, 1)) +>foo : (obj: I) => T >{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | boolean | number[] | (() => void); 0: () => void; p: string; } p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType6_ES5.ts, 6, 5)) +>p : string >"" : string 0: () => { }, diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types.pull b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types.pull deleted file mode 100644 index d7264083d44dd..0000000000000 --- a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types.pull +++ /dev/null @@ -1,49 +0,0 @@ -=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6_ES5.ts === -interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 12)) - - [s: string]: T; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType6_ES5.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 12)) -} - -declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES5.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES5.ts, 4, 21)) - -foo({ ->foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | (() => void) | number[] ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES5.ts, 2, 1)) ->{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | boolean | (() => void) | number[]; 0: () => void; p: string; } - - p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType6_ES5.ts, 6, 5)) ->"" : string - - 0: () => { }, ->() => { } : () => void - - ["hi" + "bye"]: true, ->"hi" + "bye" : string ->"hi" : string ->"bye" : string ->true : boolean - - [0 + 1]: 0, ->0 + 1 : number ->0 : number ->1 : number ->0 : number - - [+"hi"]: [0] ->+"hi" : number ->"hi" : string ->[0] : number[] ->0 : number - -}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.symbols new file mode 100644 index 0000000000000..b3e371447e200 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 12)) + + [s: string]: T; +>s : Symbol(s, Decl(computedPropertyNamesContextualType6_ES6.ts, 1, 5)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 12)) +} + +declare function foo(obj: I): T +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType6_ES6.ts, 2, 1)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) +>obj : Symbol(obj, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 24)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) + +foo({ +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType6_ES6.ts, 2, 1)) + + p: "", +>p : Symbol(p, Decl(computedPropertyNamesContextualType6_ES6.ts, 6, 5)) + + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types index 020aed6c4aa40..6998c9523cc6d 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 12)) +>I : I +>T : T [s: string]: T; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType6_ES6.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 12)) +>s : string +>T : T } declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES6.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) +>foo : (obj: I) => T +>T : T +>obj : I +>I : I +>T : T +>T : T foo({ >foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | number[] | (() => void) ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES6.ts, 2, 1)) +>foo : (obj: I) => T >{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | boolean | number[] | (() => void); 0: () => void; p: string; } p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType6_ES6.ts, 6, 5)) +>p : string >"" : string 0: () => { }, diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types.pull b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types.pull deleted file mode 100644 index ec7aa64f436ad..0000000000000 --- a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types.pull +++ /dev/null @@ -1,49 +0,0 @@ -=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType6_ES6.ts === -interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 12)) - - [s: string]: T; ->s : string, Symbol(s, Decl(computedPropertyNamesContextualType6_ES6.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 12)) -} - -declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES6.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType6_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType6_ES6.ts, 4, 21)) - -foo({ ->foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | (() => void) | number[] ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType6_ES6.ts, 2, 1)) ->{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | boolean | (() => void) | number[]; 0: () => void; p: string; } - - p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType6_ES6.ts, 6, 5)) ->"" : string - - 0: () => { }, ->() => { } : () => void - - ["hi" + "bye"]: true, ->"hi" + "bye" : string ->"hi" : string ->"bye" : string ->true : boolean - - [0 + 1]: 0, ->0 + 1 : number ->0 : number ->1 : number ->0 : number - - [+"hi"]: [0] ->+"hi" : number ->"hi" : string ->[0] : number[] ->0 : number - -}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.symbols b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.symbols new file mode 100644 index 0000000000000..22e4cf2b45b4e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7_ES5.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 12)) + + [s: number]: T; +>s : Symbol(s, Decl(computedPropertyNamesContextualType7_ES5.ts, 1, 5)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 12)) +} + +declare function foo(obj: I): T +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType7_ES5.ts, 2, 1)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) +>obj : Symbol(obj, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 24)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) + +foo({ +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType7_ES5.ts, 2, 1)) + + p: "", +>p : Symbol(p, Decl(computedPropertyNamesContextualType7_ES5.ts, 6, 5)) + + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types index 88ae6369146d6..1845d14596613 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7_ES5.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 12)) +>I : I +>T : T [s: number]: T; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType7_ES5.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 12)) +>s : number +>T : T } declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES5.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) +>foo : (obj: I) => T +>T : T +>obj : I +>I : I +>T : T +>T : T foo({ >foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | number[] | (() => void) ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES5.ts, 2, 1)) +>foo : (obj: I) => T >{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: number]: number | number[] | (() => void); 0: () => void; p: string; } p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType7_ES5.ts, 6, 5)) +>p : string >"" : string 0: () => { }, diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types.pull b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types.pull deleted file mode 100644 index 061c37072cfd1..0000000000000 --- a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types.pull +++ /dev/null @@ -1,49 +0,0 @@ -=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7_ES5.ts === -interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 12)) - - [s: number]: T; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType7_ES5.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 12)) -} - -declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES5.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES5.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES5.ts, 4, 21)) - -foo({ ->foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | (() => void) | number[] ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES5.ts, 2, 1)) ->{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: number]: number | (() => void) | number[]; 0: () => void; p: string; } - - p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType7_ES5.ts, 6, 5)) ->"" : string - - 0: () => { }, ->() => { } : () => void - - ["hi" + "bye"]: true, ->"hi" + "bye" : string ->"hi" : string ->"bye" : string ->true : boolean - - [0 + 1]: 0, ->0 + 1 : number ->0 : number ->1 : number ->0 : number - - [+"hi"]: [0] ->+"hi" : number ->"hi" : string ->[0] : number[] ->0 : number - -}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.symbols b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.symbols new file mode 100644 index 0000000000000..7f33ebf58ad7e --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7_ES6.ts === +interface I { +>I : Symbol(I, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 12)) + + [s: number]: T; +>s : Symbol(s, Decl(computedPropertyNamesContextualType7_ES6.ts, 1, 5)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 12)) +} + +declare function foo(obj: I): T +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType7_ES6.ts, 2, 1)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) +>obj : Symbol(obj, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 24)) +>I : Symbol(I, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 0)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) +>T : Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) + +foo({ +>foo : Symbol(foo, Decl(computedPropertyNamesContextualType7_ES6.ts, 2, 1)) + + p: "", +>p : Symbol(p, Decl(computedPropertyNamesContextualType7_ES6.ts, 6, 5)) + + 0: () => { }, + ["hi" + "bye"]: true, + [0 + 1]: 0, + [+"hi"]: [0] +}); diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types index 4a0268438c20f..54d2afe4f614e 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7_ES6.ts === interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 12)) +>I : I +>T : T [s: number]: T; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType7_ES6.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 12)) +>s : number +>T : T } declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES6.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) +>foo : (obj: I) => T +>T : T +>obj : I +>I : I +>T : T +>T : T foo({ >foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | number[] | (() => void) ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES6.ts, 2, 1)) +>foo : (obj: I) => T >{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: number]: number | number[] | (() => void); 0: () => void; p: string; } p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType7_ES6.ts, 6, 5)) +>p : string >"" : string 0: () => { }, diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types.pull b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types.pull deleted file mode 100644 index 5bc5139cdff53..0000000000000 --- a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types.pull +++ /dev/null @@ -1,49 +0,0 @@ -=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesContextualType7_ES6.ts === -interface I { ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 12)) - - [s: number]: T; ->s : number, Symbol(s, Decl(computedPropertyNamesContextualType7_ES6.ts, 1, 5)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 12)) -} - -declare function foo(obj: I): T ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES6.ts, 2, 1)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) ->obj : I, Symbol(obj, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 24)) ->I : I, Symbol(I, Decl(computedPropertyNamesContextualType7_ES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) ->T : T, Symbol(T, Decl(computedPropertyNamesContextualType7_ES6.ts, 4, 21)) - -foo({ ->foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | (() => void) | number[] ->foo : (obj: I) => T, Symbol(foo, Decl(computedPropertyNamesContextualType7_ES6.ts, 2, 1)) ->{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: number]: number | (() => void) | number[]; 0: () => void; p: string; } - - p: "", ->p : string, Symbol(p, Decl(computedPropertyNamesContextualType7_ES6.ts, 6, 5)) ->"" : string - - 0: () => { }, ->() => { } : () => void - - ["hi" + "bye"]: true, ->"hi" + "bye" : string ->"hi" : string ->"bye" : string ->true : boolean - - [0 + 1]: 0, ->0 + 1 : number ->0 : number ->1 : number ->0 : number - - [+"hi"]: [0] ->+"hi" : number ->"hi" : string ->[0] : number[] ->0 : number - -}); diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.symbols b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.symbols new file mode 100644 index 0000000000000..cd10b9c77a1bd --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1_ES5.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesDeclarationEmit1_ES5.ts, 0, 0)) + + ["" + ""]() { } + get ["" + ""]() { return 0; } + set ["" + ""](x) { } +>x : Symbol(x, Decl(computedPropertyNamesDeclarationEmit1_ES5.ts, 3, 18)) +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.types index e8677609be1e5..a05d555649582 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1_ES5.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesDeclarationEmit1_ES5.ts, 0, 0)) +>C : C ["" + ""]() { } >"" + "" : string @@ -17,5 +17,5 @@ class C { >"" + "" : string >"" : string >"" : string ->x : any, Symbol(x, Decl(computedPropertyNamesDeclarationEmit1_ES5.ts, 3, 18)) +>x : any } diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.symbols b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.symbols new file mode 100644 index 0000000000000..96c9026d65b7f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1_ES6.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesDeclarationEmit1_ES6.ts, 0, 0)) + + ["" + ""]() { } + get ["" + ""]() { return 0; } + set ["" + ""](x) { } +>x : Symbol(x, Decl(computedPropertyNamesDeclarationEmit1_ES6.ts, 3, 18)) +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.types index b334fa1f70757..8b635956dcd46 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit1_ES6.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesDeclarationEmit1_ES6.ts, 0, 0)) +>C : C ["" + ""]() { } >"" + "" : string @@ -17,5 +17,5 @@ class C { >"" + "" : string >"" : string >"" : string ->x : any, Symbol(x, Decl(computedPropertyNamesDeclarationEmit1_ES6.ts, 3, 18)) +>x : any } diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.symbols b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.symbols new file mode 100644 index 0000000000000..5f1fac066c422 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2_ES5.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesDeclarationEmit2_ES5.ts, 0, 0)) + + static ["" + ""]() { } + static get ["" + ""]() { return 0; } + static set ["" + ""](x) { } +>x : Symbol(x, Decl(computedPropertyNamesDeclarationEmit2_ES5.ts, 3, 25)) +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.types index a562e36b51bc6..c49010b2c0940 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2_ES5.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesDeclarationEmit2_ES5.ts, 0, 0)) +>C : C static ["" + ""]() { } >"" + "" : string @@ -17,5 +17,5 @@ class C { >"" + "" : string >"" : string >"" : string ->x : any, Symbol(x, Decl(computedPropertyNamesDeclarationEmit2_ES5.ts, 3, 25)) +>x : any } diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.symbols b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.symbols new file mode 100644 index 0000000000000..0797b7e6d7fab --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2_ES6.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesDeclarationEmit2_ES6.ts, 0, 0)) + + static ["" + ""]() { } + static get ["" + ""]() { return 0; } + static set ["" + ""](x) { } +>x : Symbol(x, Decl(computedPropertyNamesDeclarationEmit2_ES6.ts, 3, 25)) +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.types index f99c7b6507ae4..0b0083b9a1ad1 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit2_ES6.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesDeclarationEmit2_ES6.ts, 0, 0)) +>C : C static ["" + ""]() { } >"" + "" : string @@ -17,5 +17,5 @@ class C { >"" + "" : string >"" : string >"" : string ->x : any, Symbol(x, Decl(computedPropertyNamesDeclarationEmit2_ES6.ts, 3, 25)) +>x : any } diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.symbols b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.symbols new file mode 100644 index 0000000000000..8d40d4c86c0c1 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5_ES5.ts === +var v = { +>v : Symbol(v, Decl(computedPropertyNamesDeclarationEmit5_ES5.ts, 0, 3)) + + ["" + ""]: 0, + ["" + ""]() { }, + get ["" + ""]() { return 0; }, + set ["" + ""](x) { } +>x : Symbol(x, Decl(computedPropertyNamesDeclarationEmit5_ES5.ts, 4, 18)) +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.types index 91439abf7b2b9..62faa5c2716a8 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5_ES5.ts === var v = { ->v : {}, Symbol(v, Decl(computedPropertyNamesDeclarationEmit5_ES5.ts, 0, 3)) +>v : {} >{ ["" + ""]: 0, ["" + ""]() { }, get ["" + ""]() { return 0; }, set ["" + ""](x) { }} : {} ["" + ""]: 0, @@ -24,5 +24,5 @@ var v = { >"" + "" : string >"" : string >"" : string ->x : any, Symbol(x, Decl(computedPropertyNamesDeclarationEmit5_ES5.ts, 4, 18)) +>x : any } diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.symbols b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.symbols new file mode 100644 index 0000000000000..e9a7b4b28abbb --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5_ES6.ts === +var v = { +>v : Symbol(v, Decl(computedPropertyNamesDeclarationEmit5_ES6.ts, 0, 3)) + + ["" + ""]: 0, + ["" + ""]() { }, + get ["" + ""]() { return 0; }, + set ["" + ""](x) { } +>x : Symbol(x, Decl(computedPropertyNamesDeclarationEmit5_ES6.ts, 4, 18)) +} diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.types b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.types index 8a8cf82ff96cd..3eb313d268709 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesDeclarationEmit5_ES6.ts === var v = { ->v : {}, Symbol(v, Decl(computedPropertyNamesDeclarationEmit5_ES6.ts, 0, 3)) +>v : {} >{ ["" + ""]: 0, ["" + ""]() { }, get ["" + ""]() { return 0; }, set ["" + ""](x) { }} : {} ["" + ""]: 0, @@ -24,5 +24,5 @@ var v = { >"" + "" : string >"" : string >"" : string ->x : any, Symbol(x, Decl(computedPropertyNamesDeclarationEmit5_ES6.ts, 4, 18)) +>x : any } diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.symbols b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.symbols new file mode 100644 index 0000000000000..89463c12c4485 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1_ES5.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesSourceMap1_ES5.ts, 0, 0)) + + ["hello"]() { + debugger; + } +} diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.types b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.types index e8fb7b3295372..7f467698a6237 100644 --- a/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1_ES5.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesSourceMap1_ES5.ts, 0, 0)) +>C : C ["hello"]() { >"hello" : string diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.symbols b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.symbols new file mode 100644 index 0000000000000..45d2acb2b102f --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1_ES6.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesSourceMap1_ES6.ts, 0, 0)) + + ["hello"]() { + debugger; + } +} diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.types b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.types index 6f530a266f930..4a78685e8a963 100644 --- a/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesSourceMap1_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap1_ES6.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesSourceMap1_ES6.ts, 0, 0)) +>C : C ["hello"]() { >"hello" : string diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.symbols b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.symbols new file mode 100644 index 0000000000000..b9a389da6360a --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2_ES5.ts === +var v = { +>v : Symbol(v, Decl(computedPropertyNamesSourceMap2_ES5.ts, 0, 3)) + + ["hello"]() { + debugger; + } +} diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.types b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.types index c6da97ee70664..9470aee8eb6f0 100644 --- a/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2_ES5.ts === var v = { ->v : {}, Symbol(v, Decl(computedPropertyNamesSourceMap2_ES5.ts, 0, 3)) +>v : {} >{ ["hello"]() { debugger; }} : {} ["hello"]() { diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.symbols b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.symbols new file mode 100644 index 0000000000000..6c9d1e1d5fd34 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2_ES6.ts === +var v = { +>v : Symbol(v, Decl(computedPropertyNamesSourceMap2_ES6.ts, 0, 3)) + + ["hello"]() { + debugger; + } +} diff --git a/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.types b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.types index e39193ce238ea..c4f02155a95e9 100644 --- a/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesSourceMap2_ES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesSourceMap2_ES6.ts === var v = { ->v : {}, Symbol(v, Decl(computedPropertyNamesSourceMap2_ES6.ts, 0, 3)) +>v : {} >{ ["hello"]() { debugger; }} : {} ["hello"]() { diff --git a/tests/baselines/reference/computedPropertyNamesWithStaticProperty.symbols b/tests/baselines/reference/computedPropertyNamesWithStaticProperty.symbols new file mode 100644 index 0000000000000..70edfd89a97c6 --- /dev/null +++ b/tests/baselines/reference/computedPropertyNamesWithStaticProperty.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/computedProperties/computedPropertyNamesWithStaticProperty.ts === +class C { +>C : Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) + + static staticProp = 10; +>staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) + + get [C.staticProp]() { +>C.staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>C : Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) +>staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) + + return "hello"; + } + set [C.staticProp](x: string) { +>C.staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>C : Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) +>staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>x : Symbol(x, Decl(computedPropertyNamesWithStaticProperty.ts, 5, 23)) + + var y = x; +>y : Symbol(y, Decl(computedPropertyNamesWithStaticProperty.ts, 6, 11)) +>x : Symbol(x, Decl(computedPropertyNamesWithStaticProperty.ts, 5, 23)) + } + [C.staticProp]() { } +>C.staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>C : Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) +>staticProp : Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +} diff --git a/tests/baselines/reference/computedPropertyNamesWithStaticProperty.types b/tests/baselines/reference/computedPropertyNamesWithStaticProperty.types index 463a8eefa03f3..d003b6b32f110 100644 --- a/tests/baselines/reference/computedPropertyNamesWithStaticProperty.types +++ b/tests/baselines/reference/computedPropertyNamesWithStaticProperty.types @@ -1,31 +1,31 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNamesWithStaticProperty.ts === class C { ->C : C, Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) +>C : C static staticProp = 10; ->staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>staticProp : number >10 : number get [C.staticProp]() { ->C.staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) ->C : typeof C, Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) ->staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>C.staticProp : number +>C : typeof C +>staticProp : number return "hello"; >"hello" : string } set [C.staticProp](x: string) { ->C.staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) ->C : typeof C, Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) ->staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) ->x : string, Symbol(x, Decl(computedPropertyNamesWithStaticProperty.ts, 5, 23)) +>C.staticProp : number +>C : typeof C +>staticProp : number +>x : string var y = x; ->y : string, Symbol(y, Decl(computedPropertyNamesWithStaticProperty.ts, 6, 11)) ->x : string, Symbol(x, Decl(computedPropertyNamesWithStaticProperty.ts, 5, 23)) +>y : string +>x : string } [C.staticProp]() { } ->C.staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) ->C : typeof C, Symbol(C, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 0)) ->staticProp : number, Symbol(C.staticProp, Decl(computedPropertyNamesWithStaticProperty.ts, 0, 9)) +>C.staticProp : number +>C : typeof C +>staticProp : number } diff --git a/tests/baselines/reference/concatError.symbols b/tests/baselines/reference/concatError.symbols new file mode 100644 index 0000000000000..6ed5ffd468f42 --- /dev/null +++ b/tests/baselines/reference/concatError.symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/concatError.ts === + +var n1: number[]; +>n1 : Symbol(n1, Decl(concatError.ts, 1, 3)) + +/* +interface Array { + concat(...items: T[][]): T[]; // Note: This overload needs to be picked for arrays of arrays, even though both are applicable + concat(...items: T[]): T[]; +} +*/ +var fa: number[]; +>fa : Symbol(fa, Decl(concatError.ts, 8, 3)) + +fa = fa.concat([0]); +>fa : Symbol(fa, Decl(concatError.ts, 8, 3)) +>fa.concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>fa : Symbol(fa, Decl(concatError.ts, 8, 3)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) + +fa = fa.concat(0); +>fa : Symbol(fa, Decl(concatError.ts, 8, 3)) +>fa.concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>fa : Symbol(fa, Decl(concatError.ts, 8, 3)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) + + + + + +/* + + + + +declare class C { + public m(p1: C>): C; + //public p: T; +} + +var c: C; +var cc: C>; + +c = c.m(cc); +*/ diff --git a/tests/baselines/reference/concatError.types b/tests/baselines/reference/concatError.types index 3f51b29450dea..c264e0b020450 100644 --- a/tests/baselines/reference/concatError.types +++ b/tests/baselines/reference/concatError.types @@ -1,7 +1,7 @@ === tests/cases/compiler/concatError.ts === var n1: number[]; ->n1 : number[], Symbol(n1, Decl(concatError.ts, 1, 3)) +>n1 : number[] /* interface Array { @@ -10,25 +10,25 @@ interface Array { } */ var fa: number[]; ->fa : number[], Symbol(fa, Decl(concatError.ts, 8, 3)) +>fa : number[] fa = fa.concat([0]); >fa = fa.concat([0]) : number[] ->fa : number[], Symbol(fa, Decl(concatError.ts, 8, 3)) +>fa : number[] >fa.concat([0]) : number[] ->fa.concat : { (...items: U[]): number[]; (...items: number[]): number[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->fa : number[], Symbol(fa, Decl(concatError.ts, 8, 3)) ->concat : { (...items: U[]): number[]; (...items: number[]): number[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>fa.concat : { (...items: U[]): number[]; (...items: number[]): number[]; } +>fa : number[] +>concat : { (...items: U[]): number[]; (...items: number[]): number[]; } >[0] : number[] >0 : number fa = fa.concat(0); >fa = fa.concat(0) : number[] ->fa : number[], Symbol(fa, Decl(concatError.ts, 8, 3)) +>fa : number[] >fa.concat(0) : number[] ->fa.concat : { (...items: U[]): number[]; (...items: number[]): number[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->fa : number[], Symbol(fa, Decl(concatError.ts, 8, 3)) ->concat : { (...items: U[]): number[]; (...items: number[]): number[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>fa.concat : { (...items: U[]): number[]; (...items: number[]): number[]; } +>fa : number[] +>concat : { (...items: U[]): number[]; (...items: number[]): number[]; } >0 : number diff --git a/tests/baselines/reference/conditionalExpressions2.symbols b/tests/baselines/reference/conditionalExpressions2.symbols new file mode 100644 index 0000000000000..63c8b41747756 --- /dev/null +++ b/tests/baselines/reference/conditionalExpressions2.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/conditionalExpressions2.ts === +var a = false ? 1 : null; +>a : Symbol(a, Decl(conditionalExpressions2.ts, 0, 3)) + +var b = false ? undefined : 0; +>b : Symbol(b, Decl(conditionalExpressions2.ts, 1, 3)) +>undefined : Symbol(undefined) + +var c = false ? 1 : 0; +>c : Symbol(c, Decl(conditionalExpressions2.ts, 2, 3)) + +var d = false ? false : true; +>d : Symbol(d, Decl(conditionalExpressions2.ts, 3, 3)) + +var e = false ? "foo" : "bar"; +>e : Symbol(e, Decl(conditionalExpressions2.ts, 4, 3)) + +var f = false ? null : undefined; +>f : Symbol(f, Decl(conditionalExpressions2.ts, 5, 3)) +>undefined : Symbol(undefined) + +var g = true ? {g:5} : null; +>g : Symbol(g, Decl(conditionalExpressions2.ts, 6, 3)) +>g : Symbol(g, Decl(conditionalExpressions2.ts, 6, 16)) + +var h = [{h:5}, null]; +>h : Symbol(h, Decl(conditionalExpressions2.ts, 7, 3)) +>h : Symbol(h, Decl(conditionalExpressions2.ts, 7, 10)) + +function i() { if (true) { return { x: 5 }; } else { return null; } } +>i : Symbol(i, Decl(conditionalExpressions2.ts, 7, 22)) +>x : Symbol(x, Decl(conditionalExpressions2.ts, 8, 35)) + diff --git a/tests/baselines/reference/conditionalExpressions2.types b/tests/baselines/reference/conditionalExpressions2.types index 161645945575b..5f49410b1e4ac 100644 --- a/tests/baselines/reference/conditionalExpressions2.types +++ b/tests/baselines/reference/conditionalExpressions2.types @@ -1,68 +1,68 @@ === tests/cases/compiler/conditionalExpressions2.ts === var a = false ? 1 : null; ->a : number, Symbol(a, Decl(conditionalExpressions2.ts, 0, 3)) +>a : number >false ? 1 : null : number >false : boolean >1 : number >null : null var b = false ? undefined : 0; ->b : number, Symbol(b, Decl(conditionalExpressions2.ts, 1, 3)) +>b : number >false ? undefined : 0 : number >false : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >0 : number var c = false ? 1 : 0; ->c : number, Symbol(c, Decl(conditionalExpressions2.ts, 2, 3)) +>c : number >false ? 1 : 0 : number >false : boolean >1 : number >0 : number var d = false ? false : true; ->d : boolean, Symbol(d, Decl(conditionalExpressions2.ts, 3, 3)) +>d : boolean >false ? false : true : boolean >false : boolean >false : boolean >true : boolean var e = false ? "foo" : "bar"; ->e : string, Symbol(e, Decl(conditionalExpressions2.ts, 4, 3)) +>e : string >false ? "foo" : "bar" : string >false : boolean >"foo" : string >"bar" : string var f = false ? null : undefined; ->f : any, Symbol(f, Decl(conditionalExpressions2.ts, 5, 3)) +>f : any >false ? null : undefined : null >false : boolean >null : null ->undefined : undefined, Symbol(undefined) +>undefined : undefined var g = true ? {g:5} : null; ->g : { g: number; }, Symbol(g, Decl(conditionalExpressions2.ts, 6, 3)) +>g : { g: number; } >true ? {g:5} : null : { g: number; } >true : boolean >{g:5} : { g: number; } ->g : number, Symbol(g, Decl(conditionalExpressions2.ts, 6, 16)) +>g : number >5 : number >null : null var h = [{h:5}, null]; ->h : { h: number; }[], Symbol(h, Decl(conditionalExpressions2.ts, 7, 3)) +>h : { h: number; }[] >[{h:5}, null] : { h: number; }[] >{h:5} : { h: number; } ->h : number, Symbol(h, Decl(conditionalExpressions2.ts, 7, 10)) +>h : number >5 : number >null : null function i() { if (true) { return { x: 5 }; } else { return null; } } ->i : () => { x: number; }, Symbol(i, Decl(conditionalExpressions2.ts, 7, 22)) +>i : () => { x: number; } >true : boolean >{ x: 5 } : { x: number; } ->x : number, Symbol(x, Decl(conditionalExpressions2.ts, 8, 35)) +>x : number >5 : number >null : null diff --git a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.symbols b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.symbols new file mode 100644 index 0000000000000..eade67512adba --- /dev/null +++ b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.symbols @@ -0,0 +1,223 @@ +=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts === +//Cond ? Expr1 : Expr2, Cond is of boolean type, Expr1 and Expr2 have the same type +var condBoolean: boolean; +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) + +var exprAny1: any; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) + +var exprBoolean1: boolean; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +var exprNumber1: number; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) + +var exprString1: string; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) + +var exprIsObject1: Object; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var exprAny2: any; +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +var exprBoolean2: boolean; +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +var exprNumber2: number; +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +var exprString2: string; +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +var exprIsObject2: Object; +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//Cond is a boolean type variable +condBoolean ? exprAny1 : exprAny2; +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +condBoolean ? exprBoolean1 : exprBoolean2; +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +condBoolean ? exprNumber1 : exprNumber2; +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +condBoolean ? exprString1 : exprString2; +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +condBoolean ? exprIsObject1 : exprIsObject2; +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) + +condBoolean ? exprString1 : exprBoolean1; // union +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +//Cond is a boolean type literal +true ? exprAny1 : exprAny2; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +false ? exprBoolean1 : exprBoolean2; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +true ? exprNumber1 : exprNumber2; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +false ? exprString1 : exprString2; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +true ? exprIsObject1 : exprIsObject2; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) + +true ? exprString1 : exprBoolean1; // union +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +//Cond is a boolean type expression +!true ? exprAny1 : exprAny2; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +typeof "123" == "string" ? exprBoolean1 : exprBoolean2; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +2 > 1 ? exprNumber1 : exprNumber2; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +null === undefined ? exprString1 : exprString2; +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +true || false ? exprIsObject1 : exprIsObject2; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) + +null === undefined ? exprString1 : exprBoolean1; // union +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +//Results shoud be same as Expr1 and Expr2 +var resultIsAny1 = condBoolean ? exprAny1 : exprAny2; +>resultIsAny1 : Symbol(resultIsAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 40, 3)) +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +var resultIsBoolean1 = condBoolean ? exprBoolean1 : exprBoolean2; +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 41, 3)) +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +var resultIsNumber1 = condBoolean ? exprNumber1 : exprNumber2; +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 42, 3)) +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +var resultIsString1 = condBoolean ? exprString1 : exprString2; +>resultIsString1 : Symbol(resultIsString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 43, 3)) +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +var resultIsObject1 = condBoolean ? exprIsObject1 : exprIsObject2; +>resultIsObject1 : Symbol(resultIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 44, 3)) +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) + +var resultIsStringOrBoolean1 = condBoolean ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 45, 3)) +>condBoolean : Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +var resultIsAny2 = true ? exprAny1 : exprAny2; +>resultIsAny2 : Symbol(resultIsAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 47, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +var resultIsBoolean2 = false ? exprBoolean1 : exprBoolean2; +>resultIsBoolean2 : Symbol(resultIsBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 48, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +var resultIsNumber2 = true ? exprNumber1 : exprNumber2; +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 49, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +var resultIsString2 = false ? exprString1 : exprString2; +>resultIsString2 : Symbol(resultIsString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 50, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +var resultIsObject2 = true ? exprIsObject1 : exprIsObject2; +>resultIsObject2 : Symbol(resultIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 51, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) + +var resultIsStringOrBoolean2 = true ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 52, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +var resultIsStringOrBoolean3 = false ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditionIsBooleanType.ts, 53, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + +var resultIsAny3 = !true ? exprAny1 : exprAny2; +>resultIsAny3 : Symbol(resultIsAny3, Decl(conditionalOperatorConditionIsBooleanType.ts, 55, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) + +var resultIsBoolean3 = typeof "123" == "string" ? exprBoolean1 : exprBoolean2; +>resultIsBoolean3 : Symbol(resultIsBoolean3, Decl(conditionalOperatorConditionIsBooleanType.ts, 56, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) + +var resultIsNumber3 = 2 > 1 ? exprNumber1 : exprNumber2; +>resultIsNumber3 : Symbol(resultIsNumber3, Decl(conditionalOperatorConditionIsBooleanType.ts, 57, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) + +var resultIsString3 = null === undefined ? exprString1 : exprString2; +>resultIsString3 : Symbol(resultIsString3, Decl(conditionalOperatorConditionIsBooleanType.ts, 58, 3)) +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) + +var resultIsObject3 = true || false ? exprIsObject1 : exprIsObject2; +>resultIsObject3 : Symbol(resultIsObject3, Decl(conditionalOperatorConditionIsBooleanType.ts, 59, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) + +var resultIsStringOrBoolean4 = typeof "123" === "string" ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean4 : Symbol(resultIsStringOrBoolean4, Decl(conditionalOperatorConditionIsBooleanType.ts, 60, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) + diff --git a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types index 21840a8410512..4d28939b696ae 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsBooleanType.types @@ -1,121 +1,121 @@ === tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsBooleanType.ts === //Cond ? Expr1 : Expr2, Cond is of boolean type, Expr1 and Expr2 have the same type var condBoolean: boolean; ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) +>condBoolean : boolean var exprAny1: any; ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) +>exprAny1 : any var exprBoolean1: boolean; ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprBoolean1 : boolean var exprNumber1: number; ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) +>exprNumber1 : number var exprString1: string; ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) +>exprString1 : string var exprIsObject1: Object; ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject1 : Object +>Object : Object var exprAny2: any; ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>exprAny2 : any var exprBoolean2: boolean; ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>exprBoolean2 : boolean var exprNumber2: number; ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>exprNumber2 : number var exprString2: string; ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>exprString2 : string var exprIsObject2: Object; ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject2 : Object +>Object : Object //Cond is a boolean type variable condBoolean ? exprAny1 : exprAny2; >condBoolean ? exprAny1 : exprAny2 : any ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>condBoolean : boolean +>exprAny1 : any +>exprAny2 : any condBoolean ? exprBoolean1 : exprBoolean2; >condBoolean ? exprBoolean1 : exprBoolean2 : boolean ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>condBoolean : boolean +>exprBoolean1 : boolean +>exprBoolean2 : boolean condBoolean ? exprNumber1 : exprNumber2; >condBoolean ? exprNumber1 : exprNumber2 : number ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>condBoolean : boolean +>exprNumber1 : number +>exprNumber2 : number condBoolean ? exprString1 : exprString2; >condBoolean ? exprString1 : exprString2 : string ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>condBoolean : boolean +>exprString1 : string +>exprString2 : string condBoolean ? exprIsObject1 : exprIsObject2; >condBoolean ? exprIsObject1 : exprIsObject2 : Object ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>condBoolean : boolean +>exprIsObject1 : Object +>exprIsObject2 : Object condBoolean ? exprString1 : exprBoolean1; // union >condBoolean ? exprString1 : exprBoolean1 : string | boolean ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>condBoolean : boolean +>exprString1 : string +>exprBoolean1 : boolean //Cond is a boolean type literal true ? exprAny1 : exprAny2; >true ? exprAny1 : exprAny2 : any >true : boolean ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any false ? exprBoolean1 : exprBoolean2; >false ? exprBoolean1 : exprBoolean2 : boolean >false : boolean ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean true ? exprNumber1 : exprNumber2; >true ? exprNumber1 : exprNumber2 : number >true : boolean ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number false ? exprString1 : exprString2; >false ? exprString1 : exprString2 : string >false : boolean ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string true ? exprIsObject1 : exprIsObject2; >true ? exprIsObject1 : exprIsObject2 : Object >true : boolean ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object true ? exprString1 : exprBoolean1; // union >true ? exprString1 : exprBoolean1 : string | boolean >true : boolean ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean //Cond is a boolean type expression !true ? exprAny1 : exprAny2; >!true ? exprAny1 : exprAny2 : any >!true : boolean >true : boolean ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any typeof "123" == "string" ? exprBoolean1 : exprBoolean2; >typeof "123" == "string" ? exprBoolean1 : exprBoolean2 : boolean @@ -123,185 +123,185 @@ typeof "123" == "string" ? exprBoolean1 : exprBoolean2; >typeof "123" : string >"123" : string >"string" : string ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean 2 > 1 ? exprNumber1 : exprNumber2; >2 > 1 ? exprNumber1 : exprNumber2 : number >2 > 1 : boolean >2 : number >1 : number ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number null === undefined ? exprString1 : exprString2; >null === undefined ? exprString1 : exprString2 : string >null === undefined : boolean >null : null ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>undefined : undefined +>exprString1 : string +>exprString2 : string true || false ? exprIsObject1 : exprIsObject2; >true || false ? exprIsObject1 : exprIsObject2 : Object >true || false : boolean >true : boolean >false : boolean ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object null === undefined ? exprString1 : exprBoolean1; // union >null === undefined ? exprString1 : exprBoolean1 : string | boolean >null === undefined : boolean >null : null ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condBoolean ? exprAny1 : exprAny2; ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 40, 3)) +>resultIsAny1 : any >condBoolean ? exprAny1 : exprAny2 : any ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>condBoolean : boolean +>exprAny1 : any +>exprAny2 : any var resultIsBoolean1 = condBoolean ? exprBoolean1 : exprBoolean2; ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 41, 3)) +>resultIsBoolean1 : boolean >condBoolean ? exprBoolean1 : exprBoolean2 : boolean ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>condBoolean : boolean +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber1 = condBoolean ? exprNumber1 : exprNumber2; ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 42, 3)) +>resultIsNumber1 : number >condBoolean ? exprNumber1 : exprNumber2 : number ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>condBoolean : boolean +>exprNumber1 : number +>exprNumber2 : number var resultIsString1 = condBoolean ? exprString1 : exprString2; ->resultIsString1 : string, Symbol(resultIsString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 43, 3)) +>resultIsString1 : string >condBoolean ? exprString1 : exprString2 : string ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>condBoolean : boolean +>exprString1 : string +>exprString2 : string var resultIsObject1 = condBoolean ? exprIsObject1 : exprIsObject2; ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 44, 3)) +>resultIsObject1 : Object >condBoolean ? exprIsObject1 : exprIsObject2 : Object ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>condBoolean : boolean +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean1 = condBoolean ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean1 : string | boolean, Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 45, 3)) +>resultIsStringOrBoolean1 : string | boolean >condBoolean ? exprString1 : exprBoolean1 : string | boolean ->condBoolean : boolean, Symbol(condBoolean, Decl(conditionalOperatorConditionIsBooleanType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>condBoolean : boolean +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny2 = true ? exprAny1 : exprAny2; ->resultIsAny2 : any, Symbol(resultIsAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 47, 3)) +>resultIsAny2 : any >true ? exprAny1 : exprAny2 : any >true : boolean ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean2 = false ? exprBoolean1 : exprBoolean2; ->resultIsBoolean2 : boolean, Symbol(resultIsBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 48, 3)) +>resultIsBoolean2 : boolean >false ? exprBoolean1 : exprBoolean2 : boolean >false : boolean ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber2 = true ? exprNumber1 : exprNumber2; ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 49, 3)) +>resultIsNumber2 : number >true ? exprNumber1 : exprNumber2 : number >true : boolean ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number var resultIsString2 = false ? exprString1 : exprString2; ->resultIsString2 : string, Symbol(resultIsString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 50, 3)) +>resultIsString2 : string >false ? exprString1 : exprString2 : string >false : boolean ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string var resultIsObject2 = true ? exprIsObject1 : exprIsObject2; ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 51, 3)) +>resultIsObject2 : Object >true ? exprIsObject1 : exprIsObject2 : Object >true : boolean ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean2 = true ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean2 : string | boolean, Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 52, 3)) +>resultIsStringOrBoolean2 : string | boolean >true ? exprString1 : exprBoolean1 : string | boolean >true : boolean ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean var resultIsStringOrBoolean3 = false ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean3 : string | boolean, Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditionIsBooleanType.ts, 53, 3)) +>resultIsStringOrBoolean3 : string | boolean >false ? exprString1 : exprBoolean1 : string | boolean >false : boolean ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny3 = !true ? exprAny1 : exprAny2; ->resultIsAny3 : any, Symbol(resultIsAny3, Decl(conditionalOperatorConditionIsBooleanType.ts, 55, 3)) +>resultIsAny3 : any >!true ? exprAny1 : exprAny2 : any >!true : boolean >true : boolean ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsBooleanType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsBooleanType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean3 = typeof "123" == "string" ? exprBoolean1 : exprBoolean2; ->resultIsBoolean3 : boolean, Symbol(resultIsBoolean3, Decl(conditionalOperatorConditionIsBooleanType.ts, 56, 3)) +>resultIsBoolean3 : boolean >typeof "123" == "string" ? exprBoolean1 : exprBoolean2 : boolean >typeof "123" == "string" : boolean >typeof "123" : string >"123" : string >"string" : string ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsBooleanType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber3 = 2 > 1 ? exprNumber1 : exprNumber2; ->resultIsNumber3 : number, Symbol(resultIsNumber3, Decl(conditionalOperatorConditionIsBooleanType.ts, 57, 3)) +>resultIsNumber3 : number >2 > 1 ? exprNumber1 : exprNumber2 : number >2 > 1 : boolean >2 : number >1 : number ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsBooleanType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsBooleanType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number var resultIsString3 = null === undefined ? exprString1 : exprString2; ->resultIsString3 : string, Symbol(resultIsString3, Decl(conditionalOperatorConditionIsBooleanType.ts, 58, 3)) +>resultIsString3 : string >null === undefined ? exprString1 : exprString2 : string >null === undefined : boolean >null : null ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsBooleanType.ts, 12, 3)) +>undefined : undefined +>exprString1 : string +>exprString2 : string var resultIsObject3 = true || false ? exprIsObject1 : exprIsObject2; ->resultIsObject3 : Object, Symbol(resultIsObject3, Decl(conditionalOperatorConditionIsBooleanType.ts, 59, 3)) +>resultIsObject3 : Object >true || false ? exprIsObject1 : exprIsObject2 : Object >true || false : boolean >true : boolean >false : boolean ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsBooleanType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsBooleanType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean4 = typeof "123" === "string" ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean4 : string | boolean, Symbol(resultIsStringOrBoolean4, Decl(conditionalOperatorConditionIsBooleanType.ts, 60, 3)) +>resultIsStringOrBoolean4 : string | boolean >typeof "123" === "string" ? exprString1 : exprBoolean1 : string | boolean >typeof "123" === "string" : boolean >typeof "123" : string >"123" : string >"string" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsBooleanType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsBooleanType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean diff --git a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.symbols b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.symbols new file mode 100644 index 0000000000000..8ece5961636ed --- /dev/null +++ b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.symbols @@ -0,0 +1,234 @@ +=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts === +//Cond ? Expr1 : Expr2, Cond is of number type, Expr1 and Expr2 have the same type +var condNumber: number; +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) + +var exprAny1: any; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) + +var exprBoolean1: boolean; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + +var exprNumber1: number; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) + +var exprString1: string; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) + +var exprIsObject1: Object; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var exprAny2: any; +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +var exprBoolean2: boolean; +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +var exprNumber2: number; +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +var exprString2: string; +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +var exprIsObject2: Object; +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//Cond is a number type variable +condNumber ? exprAny1 : exprAny2; +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +condNumber ? exprBoolean1 : exprBoolean2; +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +condNumber ? exprNumber1 : exprNumber2; +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +condNumber ? exprString1 : exprString2; +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +condNumber ? exprIsObject1 : exprIsObject2; +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) + +condNumber ? exprString1 : exprBoolean1; // Union +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + +//Cond is a number type literal +1 ? exprAny1 : exprAny2; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +0 ? exprBoolean1 : exprBoolean2; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +0.123456789 ? exprNumber1 : exprNumber2; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +- 10000000000000 ? exprString1 : exprString2; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +1000000000000 ? exprIsObject1 : exprIsObject2; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) + +10000 ? exprString1 : exprBoolean1; // Union +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + +//Cond is a number type expression +function foo() { return 1 }; +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) + +var array = [1, 2, 3]; +>array : Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) + +1 * 0 ? exprAny1 : exprAny2; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +1 + 1 ? exprBoolean1 : exprBoolean2; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +"string".length ? exprNumber1 : exprNumber2; +>"string".length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +foo() ? exprString1 : exprString2; +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +foo() / array[1] ? exprIsObject1 : exprIsObject2; +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>array : Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) + +foo() ? exprString1 : exprBoolean1; // Union +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + +//Results shoud be same as Expr1 and Expr2 +var resultIsAny1 = condNumber ? exprAny1 : exprAny2; +>resultIsAny1 : Symbol(resultIsAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 43, 3)) +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +var resultIsBoolean1 = condNumber ? exprBoolean1 : exprBoolean2; +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 44, 3)) +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +var resultIsNumber1 = condNumber ? exprNumber1 : exprNumber2; +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 45, 3)) +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +var resultIsString1 = condNumber ? exprString1 : exprString2; +>resultIsString1 : Symbol(resultIsString1, Decl(conditionalOperatorConditionIsNumberType.ts, 46, 3)) +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +var resultIsObject1 = condNumber ? exprIsObject1 : exprIsObject2; +>resultIsObject1 : Symbol(resultIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 47, 3)) +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) + +var resultIsStringOrBoolean1 = condNumber ? exprString1 : exprBoolean1; // Union +>resultIsStringOrBoolean1 : Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 48, 3)) +>condNumber : Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + +var resultIsAny2 = 1 ? exprAny1 : exprAny2; +>resultIsAny2 : Symbol(resultIsAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 50, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +var resultIsBoolean2 = 0 ? exprBoolean1 : exprBoolean2; +>resultIsBoolean2 : Symbol(resultIsBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 51, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +var resultIsNumber2 = 0.123456789 ? exprNumber1 : exprNumber2; +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 52, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +var resultIsString2 = - 10000000000000 ? exprString1 : exprString2; +>resultIsString2 : Symbol(resultIsString2, Decl(conditionalOperatorConditionIsNumberType.ts, 53, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +var resultIsObject2 = 1000000000000 ? exprIsObject1 : exprIsObject2; +>resultIsObject2 : Symbol(resultIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 54, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) + +var resultIsStringOrBoolean2 = 10000 ? exprString1 : exprBoolean1; // Union +>resultIsStringOrBoolean2 : Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 55, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + +var resultIsAny3 = 1 * 0 ? exprAny1 : exprAny2; +>resultIsAny3 : Symbol(resultIsAny3, Decl(conditionalOperatorConditionIsNumberType.ts, 57, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) + +var resultIsBoolean3 = 1 + 1 ? exprBoolean1 : exprBoolean2; +>resultIsBoolean3 : Symbol(resultIsBoolean3, Decl(conditionalOperatorConditionIsNumberType.ts, 58, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) + +var resultIsNumber3 = "string".length ? exprNumber1 : exprNumber2; +>resultIsNumber3 : Symbol(resultIsNumber3, Decl(conditionalOperatorConditionIsNumberType.ts, 59, 3)) +>"string".length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) + +var resultIsString3 = foo() ? exprString1 : exprString2; +>resultIsString3 : Symbol(resultIsString3, Decl(conditionalOperatorConditionIsNumberType.ts, 60, 3)) +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) + +var resultIsObject3 = foo() / array[1] ? exprIsObject1 : exprIsObject2; +>resultIsObject3 : Symbol(resultIsObject3, Decl(conditionalOperatorConditionIsNumberType.ts, 61, 3)) +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>array : Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) + +var resultIsStringOrBoolean3 = foo() / array[1] ? exprString1 : exprBoolean1; // Union +>resultIsStringOrBoolean3 : Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditionIsNumberType.ts, 62, 3)) +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>array : Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) + diff --git a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types index 1c83fa6d238ac..5951dc0735008 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsNumberType.types @@ -1,122 +1,122 @@ === tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsNumberType.ts === //Cond ? Expr1 : Expr2, Cond is of number type, Expr1 and Expr2 have the same type var condNumber: number; ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) +>condNumber : number var exprAny1: any; ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) +>exprAny1 : any var exprBoolean1: boolean; ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprBoolean1 : boolean var exprNumber1: number; ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) +>exprNumber1 : number var exprString1: string; ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) +>exprString1 : string var exprIsObject1: Object; ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject1 : Object +>Object : Object var exprAny2: any; ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>exprAny2 : any var exprBoolean2: boolean; ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>exprBoolean2 : boolean var exprNumber2: number; ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>exprNumber2 : number var exprString2: string; ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>exprString2 : string var exprIsObject2: Object; ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject2 : Object +>Object : Object //Cond is a number type variable condNumber ? exprAny1 : exprAny2; >condNumber ? exprAny1 : exprAny2 : any ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>condNumber : number +>exprAny1 : any +>exprAny2 : any condNumber ? exprBoolean1 : exprBoolean2; >condNumber ? exprBoolean1 : exprBoolean2 : boolean ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>condNumber : number +>exprBoolean1 : boolean +>exprBoolean2 : boolean condNumber ? exprNumber1 : exprNumber2; >condNumber ? exprNumber1 : exprNumber2 : number ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>condNumber : number +>exprNumber1 : number +>exprNumber2 : number condNumber ? exprString1 : exprString2; >condNumber ? exprString1 : exprString2 : string ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>condNumber : number +>exprString1 : string +>exprString2 : string condNumber ? exprIsObject1 : exprIsObject2; >condNumber ? exprIsObject1 : exprIsObject2 : Object ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>condNumber : number +>exprIsObject1 : Object +>exprIsObject2 : Object condNumber ? exprString1 : exprBoolean1; // Union >condNumber ? exprString1 : exprBoolean1 : string | boolean ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>condNumber : number +>exprString1 : string +>exprBoolean1 : boolean //Cond is a number type literal 1 ? exprAny1 : exprAny2; >1 ? exprAny1 : exprAny2 : any >1 : number ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any 0 ? exprBoolean1 : exprBoolean2; >0 ? exprBoolean1 : exprBoolean2 : boolean >0 : number ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean 0.123456789 ? exprNumber1 : exprNumber2; >0.123456789 ? exprNumber1 : exprNumber2 : number >0.123456789 : number ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number - 10000000000000 ? exprString1 : exprString2; >- 10000000000000 ? exprString1 : exprString2 : string >- 10000000000000 : number >10000000000000 : number ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string 1000000000000 ? exprIsObject1 : exprIsObject2; >1000000000000 ? exprIsObject1 : exprIsObject2 : Object >1000000000000 : number ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object 10000 ? exprString1 : exprBoolean1; // Union >10000 ? exprString1 : exprBoolean1 : string | boolean >10000 : number ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean //Cond is a number type expression function foo() { return 1 }; ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>foo : () => number >1 : number var array = [1, 2, 3]; ->array : number[], Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>array : number[] >[1, 2, 3] : number[] >1 : number >2 : number @@ -127,192 +127,192 @@ var array = [1, 2, 3]; >1 * 0 : number >1 : number >0 : number ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any 1 + 1 ? exprBoolean1 : exprBoolean2; >1 + 1 ? exprBoolean1 : exprBoolean2 : boolean >1 + 1 : number >1 : number >1 : number ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean "string".length ? exprNumber1 : exprNumber2; >"string".length ? exprNumber1 : exprNumber2 : number ->"string".length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>"string".length : number >"string" : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>length : number +>exprNumber1 : number +>exprNumber2 : number foo() ? exprString1 : exprString2; >foo() ? exprString1 : exprString2 : string >foo() : number ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>foo : () => number +>exprString1 : string +>exprString2 : string foo() / array[1] ? exprIsObject1 : exprIsObject2; >foo() / array[1] ? exprIsObject1 : exprIsObject2 : Object >foo() / array[1] : number >foo() : number ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>foo : () => number >array[1] : number ->array : number[], Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>array : number[] >1 : number ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object foo() ? exprString1 : exprBoolean1; // Union >foo() ? exprString1 : exprBoolean1 : string | boolean >foo() : number ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>foo : () => number +>exprString1 : string +>exprBoolean1 : boolean //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condNumber ? exprAny1 : exprAny2; ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 43, 3)) +>resultIsAny1 : any >condNumber ? exprAny1 : exprAny2 : any ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>condNumber : number +>exprAny1 : any +>exprAny2 : any var resultIsBoolean1 = condNumber ? exprBoolean1 : exprBoolean2; ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 44, 3)) +>resultIsBoolean1 : boolean >condNumber ? exprBoolean1 : exprBoolean2 : boolean ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>condNumber : number +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber1 = condNumber ? exprNumber1 : exprNumber2; ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 45, 3)) +>resultIsNumber1 : number >condNumber ? exprNumber1 : exprNumber2 : number ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>condNumber : number +>exprNumber1 : number +>exprNumber2 : number var resultIsString1 = condNumber ? exprString1 : exprString2; ->resultIsString1 : string, Symbol(resultIsString1, Decl(conditionalOperatorConditionIsNumberType.ts, 46, 3)) +>resultIsString1 : string >condNumber ? exprString1 : exprString2 : string ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>condNumber : number +>exprString1 : string +>exprString2 : string var resultIsObject1 = condNumber ? exprIsObject1 : exprIsObject2; ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 47, 3)) +>resultIsObject1 : Object >condNumber ? exprIsObject1 : exprIsObject2 : Object ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>condNumber : number +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean1 = condNumber ? exprString1 : exprBoolean1; // Union ->resultIsStringOrBoolean1 : string | boolean, Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 48, 3)) +>resultIsStringOrBoolean1 : string | boolean >condNumber ? exprString1 : exprBoolean1 : string | boolean ->condNumber : number, Symbol(condNumber, Decl(conditionalOperatorConditionIsNumberType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>condNumber : number +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny2 = 1 ? exprAny1 : exprAny2; ->resultIsAny2 : any, Symbol(resultIsAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 50, 3)) +>resultIsAny2 : any >1 ? exprAny1 : exprAny2 : any >1 : number ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean2 = 0 ? exprBoolean1 : exprBoolean2; ->resultIsBoolean2 : boolean, Symbol(resultIsBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 51, 3)) +>resultIsBoolean2 : boolean >0 ? exprBoolean1 : exprBoolean2 : boolean >0 : number ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber2 = 0.123456789 ? exprNumber1 : exprNumber2; ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 52, 3)) +>resultIsNumber2 : number >0.123456789 ? exprNumber1 : exprNumber2 : number >0.123456789 : number ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number var resultIsString2 = - 10000000000000 ? exprString1 : exprString2; ->resultIsString2 : string, Symbol(resultIsString2, Decl(conditionalOperatorConditionIsNumberType.ts, 53, 3)) +>resultIsString2 : string >- 10000000000000 ? exprString1 : exprString2 : string >- 10000000000000 : number >10000000000000 : number ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string var resultIsObject2 = 1000000000000 ? exprIsObject1 : exprIsObject2; ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 54, 3)) +>resultIsObject2 : Object >1000000000000 ? exprIsObject1 : exprIsObject2 : Object >1000000000000 : number ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean2 = 10000 ? exprString1 : exprBoolean1; // Union ->resultIsStringOrBoolean2 : string | boolean, Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 55, 3)) +>resultIsStringOrBoolean2 : string | boolean >10000 ? exprString1 : exprBoolean1 : string | boolean >10000 : number ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny3 = 1 * 0 ? exprAny1 : exprAny2; ->resultIsAny3 : any, Symbol(resultIsAny3, Decl(conditionalOperatorConditionIsNumberType.ts, 57, 3)) +>resultIsAny3 : any >1 * 0 ? exprAny1 : exprAny2 : any >1 * 0 : number >1 : number >0 : number ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsNumberType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsNumberType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean3 = 1 + 1 ? exprBoolean1 : exprBoolean2; ->resultIsBoolean3 : boolean, Symbol(resultIsBoolean3, Decl(conditionalOperatorConditionIsNumberType.ts, 58, 3)) +>resultIsBoolean3 : boolean >1 + 1 ? exprBoolean1 : exprBoolean2 : boolean >1 + 1 : number >1 : number >1 : number ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsNumberType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber3 = "string".length ? exprNumber1 : exprNumber2; ->resultIsNumber3 : number, Symbol(resultIsNumber3, Decl(conditionalOperatorConditionIsNumberType.ts, 59, 3)) +>resultIsNumber3 : number >"string".length ? exprNumber1 : exprNumber2 : number ->"string".length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>"string".length : number >"string" : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsNumberType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsNumberType.ts, 11, 3)) +>length : number +>exprNumber1 : number +>exprNumber2 : number var resultIsString3 = foo() ? exprString1 : exprString2; ->resultIsString3 : string, Symbol(resultIsString3, Decl(conditionalOperatorConditionIsNumberType.ts, 60, 3)) +>resultIsString3 : string >foo() ? exprString1 : exprString2 : string >foo() : number ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsNumberType.ts, 12, 3)) +>foo : () => number +>exprString1 : string +>exprString2 : string var resultIsObject3 = foo() / array[1] ? exprIsObject1 : exprIsObject2; ->resultIsObject3 : Object, Symbol(resultIsObject3, Decl(conditionalOperatorConditionIsNumberType.ts, 61, 3)) +>resultIsObject3 : Object >foo() / array[1] ? exprIsObject1 : exprIsObject2 : Object >foo() / array[1] : number >foo() : number ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>foo : () => number >array[1] : number ->array : number[], Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>array : number[] >1 : number ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsNumberType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsNumberType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean3 = foo() / array[1] ? exprString1 : exprBoolean1; // Union ->resultIsStringOrBoolean3 : string | boolean, Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditionIsNumberType.ts, 62, 3)) +>resultIsStringOrBoolean3 : string | boolean >foo() / array[1] ? exprString1 : exprBoolean1 : string | boolean >foo() / array[1] : number >foo() : number ->foo : () => number, Symbol(foo, Decl(conditionalOperatorConditionIsNumberType.ts, 29, 35)) +>foo : () => number >array[1] : number ->array : number[], Symbol(array, Decl(conditionalOperatorConditionIsNumberType.ts, 33, 3)) +>array : number[] >1 : number ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsNumberType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsNumberType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.symbols b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.symbols new file mode 100644 index 0000000000000..41f00e53b2627 --- /dev/null +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.symbols @@ -0,0 +1,273 @@ +=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts === +//Cond ? Expr1 : Expr2, Cond is of object type, Expr1 and Expr2 have the same type +var condObject: Object; +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var exprAny1: any; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) + +var exprBoolean1: boolean; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + +var exprNumber1: number; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) + +var exprString1: string; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) + +var exprIsObject1: Object; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var exprAny2: any; +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +var exprBoolean2: boolean; +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +var exprNumber2: number; +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +var exprString2: string; +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +var exprIsObject2: Object; +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +function foo() { }; +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 26)) + +class C { static doIt: () => void }; +>C : Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) +>doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) + +//Cond is an object type variable +condObject ? exprAny1 : exprAny2; +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +condObject ? exprBoolean1 : exprBoolean2; +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +condObject ? exprNumber1 : exprNumber2; +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +condObject ? exprString1 : exprString2; +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +condObject ? exprIsObject1 : exprIsObject2; +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) + +condObject ? exprString1 : exprBoolean1; // union +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + +//Cond is an object type literal +((a: string) => a.length) ? exprAny1 : exprAny2; +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 27, 2)) +>a.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 27, 2)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +((a: string) => a.length) ? exprBoolean1 : exprBoolean2; +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 28, 2)) +>a.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 28, 2)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +({}) ? exprNumber1 : exprNumber2; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +({ a: 1, b: "s" }) ? exprString1 : exprString2; +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 30, 2)) +>b : Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 30, 8)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 31, 2)) +>b : Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 31, 8)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) + +({ a: 1, b: "s" }) ? exprString1: exprBoolean1; // union +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 32, 2)) +>b : Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 32, 8)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + +//Cond is an object type expression +foo() ? exprAny1 : exprAny2; +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 26)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +new Date() ? exprBoolean1 : exprBoolean2; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +new C() ? exprNumber1 : exprNumber2; +>C : Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +C.doIt() ? exprString1 : exprString2; +>C.doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>C : Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) +>doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +condObject.valueOf() ? exprIsObject1 : exprIsObject2; +>condObject.valueOf : Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>valueOf : Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) + +new Date() ? exprString1 : exprBoolean1; // union +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + +//Results shoud be same as Expr1 and Expr2 +var resultIsAny1 = condObject ? exprAny1 : exprAny2; +>resultIsAny1 : Symbol(resultIsAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 43, 3)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +var resultIsBoolean1 = condObject ? exprBoolean1 : exprBoolean2; +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 44, 3)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +var resultIsNumber1 = condObject ? exprNumber1 : exprNumber2; +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 45, 3)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +var resultIsString1 = condObject ? exprString1 : exprString2; +>resultIsString1 : Symbol(resultIsString1, Decl(conditionalOperatorConditionIsObjectType.ts, 46, 3)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +var resultIsObject1 = condObject ? exprIsObject1 : exprIsObject2; +>resultIsObject1 : Symbol(resultIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 47, 3)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) + +var resultIsStringOrBoolean1 = condObject ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 48, 3)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + +var resultIsAny2 = ((a: string) => a.length) ? exprAny1 : exprAny2; +>resultIsAny2 : Symbol(resultIsAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 50, 3)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 50, 21)) +>a.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 50, 21)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +var resultIsBoolean2 = ((a: string) => a.length) ? exprBoolean1 : exprBoolean2; +>resultIsBoolean2 : Symbol(resultIsBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 51, 3)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 51, 25)) +>a.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 51, 25)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +var resultIsNumber2 = ({}) ? exprNumber1 : exprNumber2; +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 52, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +var resultIsString2 = ({ a: 1, b: "s" }) ? exprString1 : exprString2; +>resultIsString2 : Symbol(resultIsString2, Decl(conditionalOperatorConditionIsObjectType.ts, 53, 3)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 53, 24)) +>b : Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 53, 30)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +var resultIsObject2 = ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; +>resultIsObject2 : Symbol(resultIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 54, 3)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 54, 24)) +>b : Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 54, 30)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) + +var resultIsStringOrBoolean2 = ({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 55, 3)) +>a : Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 55, 33)) +>b : Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 55, 39)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + +var resultIsAny3 = foo() ? exprAny1 : exprAny2; +>resultIsAny3 : Symbol(resultIsAny3, Decl(conditionalOperatorConditionIsObjectType.ts, 57, 3)) +>foo : Symbol(foo, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 26)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) + +var resultIsBoolean3 = new Date() ? exprBoolean1 : exprBoolean2; +>resultIsBoolean3 : Symbol(resultIsBoolean3, Decl(conditionalOperatorConditionIsObjectType.ts, 58, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) + +var resultIsNumber3 = new C() ? exprNumber1 : exprNumber2; +>resultIsNumber3 : Symbol(resultIsNumber3, Decl(conditionalOperatorConditionIsObjectType.ts, 59, 3)) +>C : Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) + +var resultIsString3 = C.doIt() ? exprString1 : exprString2; +>resultIsString3 : Symbol(resultIsString3, Decl(conditionalOperatorConditionIsObjectType.ts, 60, 3)) +>C.doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>C : Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) +>doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) + +var resultIsObject3 = condObject.valueOf() ? exprIsObject1 : exprIsObject2; +>resultIsObject3 : Symbol(resultIsObject3, Decl(conditionalOperatorConditionIsObjectType.ts, 61, 3)) +>condObject.valueOf : Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) +>condObject : Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) +>valueOf : Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) + +var resultIsStringOrBoolean3 = C.doIt() ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditionIsObjectType.ts, 62, 3)) +>C.doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>C : Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) +>doIt : Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) + diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types index b909ac3eb6c81..14a0f375ead04 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.types @@ -1,357 +1,357 @@ === tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditionIsObjectType.ts === //Cond ? Expr1 : Expr2, Cond is of object type, Expr1 and Expr2 have the same type var condObject: Object; ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>condObject : Object +>Object : Object var exprAny1: any; ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) +>exprAny1 : any var exprBoolean1: boolean; ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprBoolean1 : boolean var exprNumber1: number; ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) +>exprNumber1 : number var exprString1: string; ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) +>exprString1 : string var exprIsObject1: Object; ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject1 : Object +>Object : Object var exprAny2: any; ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>exprAny2 : any var exprBoolean2: boolean; ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>exprBoolean2 : boolean var exprNumber2: number; ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>exprNumber2 : number var exprString2: string; ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>exprString2 : string var exprIsObject2: Object; ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject2 : Object +>Object : Object function foo() { }; ->foo : () => void, Symbol(foo, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 26)) +>foo : () => void class C { static doIt: () => void }; ->C : C, Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) ->doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) +>C : C +>doIt : () => void //Cond is an object type variable condObject ? exprAny1 : exprAny2; >condObject ? exprAny1 : exprAny2 : any ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>condObject : Object +>exprAny1 : any +>exprAny2 : any condObject ? exprBoolean1 : exprBoolean2; >condObject ? exprBoolean1 : exprBoolean2 : boolean ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>condObject : Object +>exprBoolean1 : boolean +>exprBoolean2 : boolean condObject ? exprNumber1 : exprNumber2; >condObject ? exprNumber1 : exprNumber2 : number ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>condObject : Object +>exprNumber1 : number +>exprNumber2 : number condObject ? exprString1 : exprString2; >condObject ? exprString1 : exprString2 : string ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>condObject : Object +>exprString1 : string +>exprString2 : string condObject ? exprIsObject1 : exprIsObject2; >condObject ? exprIsObject1 : exprIsObject2 : Object ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>condObject : Object +>exprIsObject1 : Object +>exprIsObject2 : Object condObject ? exprString1 : exprBoolean1; // union >condObject ? exprString1 : exprBoolean1 : string | boolean ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>condObject : Object +>exprString1 : string +>exprBoolean1 : boolean //Cond is an object type literal ((a: string) => a.length) ? exprAny1 : exprAny2; >((a: string) => a.length) ? exprAny1 : exprAny2 : any >((a: string) => a.length) : (a: string) => number >(a: string) => a.length : (a: string) => number ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 27, 2)) ->a.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 27, 2)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>a : string +>a.length : number +>a : string +>length : number +>exprAny1 : any +>exprAny2 : any ((a: string) => a.length) ? exprBoolean1 : exprBoolean2; >((a: string) => a.length) ? exprBoolean1 : exprBoolean2 : boolean >((a: string) => a.length) : (a: string) => number >(a: string) => a.length : (a: string) => number ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 28, 2)) ->a.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 28, 2)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>a : string +>a.length : number +>a : string +>length : number +>exprBoolean1 : boolean +>exprBoolean2 : boolean ({}) ? exprNumber1 : exprNumber2; >({}) ? exprNumber1 : exprNumber2 : number >({}) : {} >{} : {} ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number ({ a: 1, b: "s" }) ? exprString1 : exprString2; >({ a: 1, b: "s" }) ? exprString1 : exprString2 : string >({ a: 1, b: "s" }) : { a: number; b: string; } >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 30, 2)) +>a : number >1 : number ->b : string, Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 30, 8)) +>b : string >"s" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; >({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2 : Object >({ a: 1, b: "s" }) : { a: number; b: string; } >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 31, 2)) +>a : number >1 : number ->b : string, Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 31, 8)) +>b : string >"s" : string ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object ({ a: 1, b: "s" }) ? exprString1: exprBoolean1; // union >({ a: 1, b: "s" }) ? exprString1: exprBoolean1 : string | boolean >({ a: 1, b: "s" }) : { a: number; b: string; } >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 32, 2)) +>a : number >1 : number ->b : string, Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 32, 8)) +>b : string >"s" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean //Cond is an object type expression foo() ? exprAny1 : exprAny2; >foo() ? exprAny1 : exprAny2 : any >foo() : void ->foo : () => void, Symbol(foo, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 26)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>foo : () => void +>exprAny1 : any +>exprAny2 : any new Date() ? exprBoolean1 : exprBoolean2; >new Date() ? exprBoolean1 : exprBoolean2 : boolean >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>Date : DateConstructor +>exprBoolean1 : boolean +>exprBoolean2 : boolean new C() ? exprNumber1 : exprNumber2; >new C() ? exprNumber1 : exprNumber2 : number >new C() : C ->C : typeof C, Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>C : typeof C +>exprNumber1 : number +>exprNumber2 : number C.doIt() ? exprString1 : exprString2; >C.doIt() ? exprString1 : exprString2 : string >C.doIt() : void ->C.doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) ->C : typeof C, Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) ->doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>C.doIt : () => void +>C : typeof C +>doIt : () => void +>exprString1 : string +>exprString2 : string condObject.valueOf() ? exprIsObject1 : exprIsObject2; >condObject.valueOf() ? exprIsObject1 : exprIsObject2 : Object >condObject.valueOf() : Object ->condObject.valueOf : () => Object, Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->valueOf : () => Object, Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>condObject.valueOf : () => Object +>condObject : Object +>valueOf : () => Object +>exprIsObject1 : Object +>exprIsObject2 : Object new Date() ? exprString1 : exprBoolean1; // union >new Date() ? exprString1 : exprBoolean1 : string | boolean >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>Date : DateConstructor +>exprString1 : string +>exprBoolean1 : boolean //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condObject ? exprAny1 : exprAny2; ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 43, 3)) +>resultIsAny1 : any >condObject ? exprAny1 : exprAny2 : any ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>condObject : Object +>exprAny1 : any +>exprAny2 : any var resultIsBoolean1 = condObject ? exprBoolean1 : exprBoolean2; ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 44, 3)) +>resultIsBoolean1 : boolean >condObject ? exprBoolean1 : exprBoolean2 : boolean ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>condObject : Object +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber1 = condObject ? exprNumber1 : exprNumber2; ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 45, 3)) +>resultIsNumber1 : number >condObject ? exprNumber1 : exprNumber2 : number ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>condObject : Object +>exprNumber1 : number +>exprNumber2 : number var resultIsString1 = condObject ? exprString1 : exprString2; ->resultIsString1 : string, Symbol(resultIsString1, Decl(conditionalOperatorConditionIsObjectType.ts, 46, 3)) +>resultIsString1 : string >condObject ? exprString1 : exprString2 : string ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>condObject : Object +>exprString1 : string +>exprString2 : string var resultIsObject1 = condObject ? exprIsObject1 : exprIsObject2; ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 47, 3)) +>resultIsObject1 : Object >condObject ? exprIsObject1 : exprIsObject2 : Object ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>condObject : Object +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean1 = condObject ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean1 : string | boolean, Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 48, 3)) +>resultIsStringOrBoolean1 : string | boolean >condObject ? exprString1 : exprBoolean1 : string | boolean ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>condObject : Object +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny2 = ((a: string) => a.length) ? exprAny1 : exprAny2; ->resultIsAny2 : any, Symbol(resultIsAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 50, 3)) +>resultIsAny2 : any >((a: string) => a.length) ? exprAny1 : exprAny2 : any >((a: string) => a.length) : (a: string) => number >(a: string) => a.length : (a: string) => number ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 50, 21)) ->a.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 50, 21)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>a : string +>a.length : number +>a : string +>length : number +>exprAny1 : any +>exprAny2 : any var resultIsBoolean2 = ((a: string) => a.length) ? exprBoolean1 : exprBoolean2; ->resultIsBoolean2 : boolean, Symbol(resultIsBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 51, 3)) +>resultIsBoolean2 : boolean >((a: string) => a.length) ? exprBoolean1 : exprBoolean2 : boolean >((a: string) => a.length) : (a: string) => number >(a: string) => a.length : (a: string) => number ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 51, 25)) ->a.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->a : string, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 51, 25)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>a : string +>a.length : number +>a : string +>length : number +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber2 = ({}) ? exprNumber1 : exprNumber2; ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 52, 3)) +>resultIsNumber2 : number >({}) ? exprNumber1 : exprNumber2 : number >({}) : {} >{} : {} ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number var resultIsString2 = ({ a: 1, b: "s" }) ? exprString1 : exprString2; ->resultIsString2 : string, Symbol(resultIsString2, Decl(conditionalOperatorConditionIsObjectType.ts, 53, 3)) +>resultIsString2 : string >({ a: 1, b: "s" }) ? exprString1 : exprString2 : string >({ a: 1, b: "s" }) : { a: number; b: string; } >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 53, 24)) +>a : number >1 : number ->b : string, Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 53, 30)) +>b : string >"s" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string var resultIsObject2 = ({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2; ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 54, 3)) +>resultIsObject2 : Object >({ a: 1, b: "s" }) ? exprIsObject1 : exprIsObject2 : Object >({ a: 1, b: "s" }) : { a: number; b: string; } >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 54, 24)) +>a : number >1 : number ->b : string, Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 54, 30)) +>b : string >"s" : string ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean2 = ({ a: 1, b: "s" }) ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean2 : string | boolean, Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 55, 3)) +>resultIsStringOrBoolean2 : string | boolean >({ a: 1, b: "s" }) ? exprString1 : exprBoolean1 : string | boolean >({ a: 1, b: "s" }) : { a: number; b: string; } >{ a: 1, b: "s" } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorConditionIsObjectType.ts, 55, 33)) +>a : number >1 : number ->b : string, Symbol(b, Decl(conditionalOperatorConditionIsObjectType.ts, 55, 39)) +>b : string >"s" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny3 = foo() ? exprAny1 : exprAny2; ->resultIsAny3 : any, Symbol(resultIsAny3, Decl(conditionalOperatorConditionIsObjectType.ts, 57, 3)) +>resultIsAny3 : any >foo() ? exprAny1 : exprAny2 : any >foo() : void ->foo : () => void, Symbol(foo, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 26)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditionIsObjectType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditionIsObjectType.ts, 9, 3)) +>foo : () => void +>exprAny1 : any +>exprAny2 : any var resultIsBoolean3 = new Date() ? exprBoolean1 : exprBoolean2; ->resultIsBoolean3 : boolean, Symbol(resultIsBoolean3, Decl(conditionalOperatorConditionIsObjectType.ts, 58, 3)) +>resultIsBoolean3 : boolean >new Date() ? exprBoolean1 : exprBoolean2 : boolean >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditionIsObjectType.ts, 10, 3)) +>Date : DateConstructor +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber3 = new C() ? exprNumber1 : exprNumber2; ->resultIsNumber3 : number, Symbol(resultIsNumber3, Decl(conditionalOperatorConditionIsObjectType.ts, 59, 3)) +>resultIsNumber3 : number >new C() ? exprNumber1 : exprNumber2 : number >new C() : C ->C : typeof C, Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditionIsObjectType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditionIsObjectType.ts, 11, 3)) +>C : typeof C +>exprNumber1 : number +>exprNumber2 : number var resultIsString3 = C.doIt() ? exprString1 : exprString2; ->resultIsString3 : string, Symbol(resultIsString3, Decl(conditionalOperatorConditionIsObjectType.ts, 60, 3)) +>resultIsString3 : string >C.doIt() ? exprString1 : exprString2 : string >C.doIt() : void ->C.doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) ->C : typeof C, Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) ->doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditionIsObjectType.ts, 12, 3)) +>C.doIt : () => void +>C : typeof C +>doIt : () => void +>exprString1 : string +>exprString2 : string var resultIsObject3 = condObject.valueOf() ? exprIsObject1 : exprIsObject2; ->resultIsObject3 : Object, Symbol(resultIsObject3, Decl(conditionalOperatorConditionIsObjectType.ts, 61, 3)) +>resultIsObject3 : Object >condObject.valueOf() ? exprIsObject1 : exprIsObject2 : Object >condObject.valueOf() : Object ->condObject.valueOf : () => Object, Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) ->condObject : Object, Symbol(condObject, Decl(conditionalOperatorConditionIsObjectType.ts, 1, 3)) ->valueOf : () => Object, Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditionIsObjectType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditionIsObjectType.ts, 13, 3)) +>condObject.valueOf : () => Object +>condObject : Object +>valueOf : () => Object +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean3 = C.doIt() ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean3 : string | boolean, Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditionIsObjectType.ts, 62, 3)) +>resultIsStringOrBoolean3 : string | boolean >C.doIt() ? exprString1 : exprBoolean1 : string | boolean >C.doIt() : void ->C.doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) ->C : typeof C, Symbol(C, Decl(conditionalOperatorConditionIsObjectType.ts, 15, 19)) ->doIt : () => void, Symbol(C.doIt, Decl(conditionalOperatorConditionIsObjectType.ts, 16, 9)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditionIsObjectType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditionIsObjectType.ts, 4, 3)) +>C.doIt : () => void +>C : typeof C +>doIt : () => void +>exprString1 : string +>exprBoolean1 : boolean diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.symbols b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.symbols new file mode 100644 index 0000000000000..aaaf4124eb600 --- /dev/null +++ b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.symbols @@ -0,0 +1,251 @@ +=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts === +//Cond ? Expr1 : Expr2, Cond is of any type, Expr1 and Expr2 have the same type +var condAny: any; +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) + +var x: any; +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) + +var exprAny1: any; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) + +var exprBoolean1: boolean; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +var exprNumber1: number; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) + +var exprString1: string; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) + +var exprIsObject1: Object; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var exprAny2: any; +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +var exprBoolean2: boolean; +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +var exprNumber2: number; +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +var exprString2: string; +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +var exprIsObject2: Object; +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//Cond is an any type variable +condAny ? exprAny1 : exprAny2; +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +condAny ? exprBoolean1 : exprBoolean2; +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +condAny ? exprNumber1 : exprNumber2; +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +condAny ? exprString1 : exprString2; +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +condAny ? exprIsObject1 : exprIsObject2; +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) + +condAny ? exprString1 : exprBoolean1; // union +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +//Cond is an any type literal +null ? exprAny1 : exprAny2; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +null ? exprBoolean1 : exprBoolean2; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +undefined ? exprNumber1 : exprNumber2; +>undefined : Symbol(undefined) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +[null, undefined] ? exprString1 : exprString2; +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +[null, undefined] ? exprIsObject1 : exprIsObject2; +>undefined : Symbol(undefined) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) + +undefined ? exprString1 : exprBoolean1; // union +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +//Cond is an any type expression +x.doSomeThing() ? exprAny1 : exprAny2; +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +x("x") ? exprBoolean1 : exprBoolean2; +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +x(x) ? exprNumber1 : exprNumber2; +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +x("x") ? exprString1 : exprString2; +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +x.doSomeThing() ? exprIsObject1 : exprIsObject2; +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) + +x.doSomeThing() ? exprString1 : exprBoolean1; // union +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +//Results shoud be same as Expr1 and Expr2 +var resultIsAny1 = condAny ? exprAny1 : exprAny2; +>resultIsAny1 : Symbol(resultIsAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 41, 3)) +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +var resultIsBoolean1 = condAny ? exprBoolean1 : exprBoolean2; +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 42, 3)) +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +var resultIsNumber1 = condAny ? exprNumber1 : exprNumber2; +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 43, 3)) +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +var resultIsString1 = condAny ? exprString1 : exprString2; +>resultIsString1 : Symbol(resultIsString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 44, 3)) +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2; +>resultIsObject1 : Symbol(resultIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 45, 3)) +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) + +var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 46, 3)) +>condAny : Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +var resultIsAny2 = null ? exprAny1 : exprAny2; +>resultIsAny2 : Symbol(resultIsAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 48, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +var resultIsBoolean2 = null ? exprBoolean1 : exprBoolean2; +>resultIsBoolean2 : Symbol(resultIsBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 49, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +var resultIsNumber2 = undefined ? exprNumber1 : exprNumber2; +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 50, 3)) +>undefined : Symbol(undefined) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +var resultIsString2 = [null, undefined] ? exprString1 : exprString2; +>resultIsString2 : Symbol(resultIsString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 51, 3)) +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2; +>resultIsObject2 : Symbol(resultIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 52, 3)) +>undefined : Symbol(undefined) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) + +var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 53, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditoinIsAnyType.ts, 54, 3)) +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean4 : Symbol(resultIsStringOrBoolean4, Decl(conditionalOperatorConditoinIsAnyType.ts, 55, 3)) +>undefined : Symbol(undefined) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + +var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2; +>resultIsAny3 : Symbol(resultIsAny3, Decl(conditionalOperatorConditoinIsAnyType.ts, 57, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) + +var resultIsBoolean3 = x("x") ? exprBoolean1 : exprBoolean2; +>resultIsBoolean3 : Symbol(resultIsBoolean3, Decl(conditionalOperatorConditoinIsAnyType.ts, 58, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) + +var resultIsNumber3 = x(x) ? exprNumber1 : exprNumber2; +>resultIsNumber3 : Symbol(resultIsNumber3, Decl(conditionalOperatorConditoinIsAnyType.ts, 59, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) + +var resultIsString3 = x("x") ? exprString1 : exprString2; +>resultIsString3 : Symbol(resultIsString3, Decl(conditionalOperatorConditoinIsAnyType.ts, 60, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) + +var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2; +>resultIsObject3 : Symbol(resultIsObject3, Decl(conditionalOperatorConditoinIsAnyType.ts, 61, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) + +var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean5 : Symbol(resultIsStringOrBoolean5, Decl(conditionalOperatorConditoinIsAnyType.ts, 62, 3)) +>x : Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) + diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types index d70375844f85f..d79e570ec4245 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types +++ b/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types @@ -1,332 +1,332 @@ === tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts === //Cond ? Expr1 : Expr2, Cond is of any type, Expr1 and Expr2 have the same type var condAny: any; ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) +>condAny : any var x: any; ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any var exprAny1: any; ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) +>exprAny1 : any var exprBoolean1: boolean; ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprBoolean1 : boolean var exprNumber1: number; ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) +>exprNumber1 : number var exprString1: string; ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) +>exprString1 : string var exprIsObject1: Object; ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject1 : Object +>Object : Object var exprAny2: any; ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>exprAny2 : any var exprBoolean2: boolean; ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>exprBoolean2 : boolean var exprNumber2: number; ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>exprNumber2 : number var exprString2: string; ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>exprString2 : string var exprIsObject2: Object; ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject2 : Object +>Object : Object //Cond is an any type variable condAny ? exprAny1 : exprAny2; >condAny ? exprAny1 : exprAny2 : any ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>condAny : any +>exprAny1 : any +>exprAny2 : any condAny ? exprBoolean1 : exprBoolean2; >condAny ? exprBoolean1 : exprBoolean2 : boolean ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>condAny : any +>exprBoolean1 : boolean +>exprBoolean2 : boolean condAny ? exprNumber1 : exprNumber2; >condAny ? exprNumber1 : exprNumber2 : number ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>condAny : any +>exprNumber1 : number +>exprNumber2 : number condAny ? exprString1 : exprString2; >condAny ? exprString1 : exprString2 : string ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>condAny : any +>exprString1 : string +>exprString2 : string condAny ? exprIsObject1 : exprIsObject2; >condAny ? exprIsObject1 : exprIsObject2 : Object ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>condAny : any +>exprIsObject1 : Object +>exprIsObject2 : Object condAny ? exprString1 : exprBoolean1; // union >condAny ? exprString1 : exprBoolean1 : string | boolean ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>condAny : any +>exprString1 : string +>exprBoolean1 : boolean //Cond is an any type literal null ? exprAny1 : exprAny2; >null ? exprAny1 : exprAny2 : any >null : null ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>exprAny1 : any +>exprAny2 : any null ? exprBoolean1 : exprBoolean2; >null ? exprBoolean1 : exprBoolean2 : boolean >null : null ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean undefined ? exprNumber1 : exprNumber2; >undefined ? exprNumber1 : exprNumber2 : number ->undefined : undefined, Symbol(undefined) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>undefined : undefined +>exprNumber1 : number +>exprNumber2 : number [null, undefined] ? exprString1 : exprString2; >[null, undefined] ? exprString1 : exprString2 : string >[null, undefined] : null[] >null : null ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>undefined : undefined +>exprString1 : string +>exprString2 : string [null, undefined] ? exprIsObject1 : exprIsObject2; >[null, undefined] ? exprIsObject1 : exprIsObject2 : Object >[null, undefined] : null[] >null : null ->undefined : undefined, Symbol(undefined) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>undefined : undefined +>exprIsObject1 : Object +>exprIsObject2 : Object undefined ? exprString1 : exprBoolean1; // union >undefined ? exprString1 : exprBoolean1 : string | boolean ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean //Cond is an any type expression x.doSomeThing() ? exprAny1 : exprAny2; >x.doSomeThing() ? exprAny1 : exprAny2 : any >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >doSomeThing : any ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>exprAny1 : any +>exprAny2 : any x("x") ? exprBoolean1 : exprBoolean2; >x("x") ? exprBoolean1 : exprBoolean2 : boolean >x("x") : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >"x" : string ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean x(x) ? exprNumber1 : exprNumber2; >x(x) ? exprNumber1 : exprNumber2 : number >x(x) : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>x : any +>x : any +>exprNumber1 : number +>exprNumber2 : number x("x") ? exprString1 : exprString2; >x("x") ? exprString1 : exprString2 : string >x("x") : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >"x" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>exprString1 : string +>exprString2 : string x.doSomeThing() ? exprIsObject1 : exprIsObject2; >x.doSomeThing() ? exprIsObject1 : exprIsObject2 : Object >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >doSomeThing : any ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object x.doSomeThing() ? exprString1 : exprBoolean1; // union >x.doSomeThing() ? exprString1 : exprBoolean1 : string | boolean >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >doSomeThing : any ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprString1 : string +>exprBoolean1 : boolean //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condAny ? exprAny1 : exprAny2; ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 41, 3)) +>resultIsAny1 : any >condAny ? exprAny1 : exprAny2 : any ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>condAny : any +>exprAny1 : any +>exprAny2 : any var resultIsBoolean1 = condAny ? exprBoolean1 : exprBoolean2; ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 42, 3)) +>resultIsBoolean1 : boolean >condAny ? exprBoolean1 : exprBoolean2 : boolean ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>condAny : any +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber1 = condAny ? exprNumber1 : exprNumber2; ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 43, 3)) +>resultIsNumber1 : number >condAny ? exprNumber1 : exprNumber2 : number ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>condAny : any +>exprNumber1 : number +>exprNumber2 : number var resultIsString1 = condAny ? exprString1 : exprString2; ->resultIsString1 : string, Symbol(resultIsString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 44, 3)) +>resultIsString1 : string >condAny ? exprString1 : exprString2 : string ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>condAny : any +>exprString1 : string +>exprString2 : string var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2; ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 45, 3)) +>resultIsObject1 : Object >condAny ? exprIsObject1 : exprIsObject2 : Object ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>condAny : any +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean1 : string | boolean, Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 46, 3)) +>resultIsStringOrBoolean1 : string | boolean >condAny ? exprString1 : exprBoolean1 : string | boolean ->condAny : any, Symbol(condAny, Decl(conditionalOperatorConditoinIsAnyType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>condAny : any +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny2 = null ? exprAny1 : exprAny2; ->resultIsAny2 : any, Symbol(resultIsAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 48, 3)) +>resultIsAny2 : any >null ? exprAny1 : exprAny2 : any >null : null ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean2 = null ? exprBoolean1 : exprBoolean2; ->resultIsBoolean2 : boolean, Symbol(resultIsBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 49, 3)) +>resultIsBoolean2 : boolean >null ? exprBoolean1 : exprBoolean2 : boolean >null : null ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber2 = undefined ? exprNumber1 : exprNumber2; ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 50, 3)) +>resultIsNumber2 : number >undefined ? exprNumber1 : exprNumber2 : number ->undefined : undefined, Symbol(undefined) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>undefined : undefined +>exprNumber1 : number +>exprNumber2 : number var resultIsString2 = [null, undefined] ? exprString1 : exprString2; ->resultIsString2 : string, Symbol(resultIsString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 51, 3)) +>resultIsString2 : string >[null, undefined] ? exprString1 : exprString2 : string >[null, undefined] : null[] >null : null ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>undefined : undefined +>exprString1 : string +>exprString2 : string var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2; ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 52, 3)) +>resultIsObject2 : Object >[null, undefined] ? exprIsObject1 : exprIsObject2 : Object >[null, undefined] : null[] >null : null ->undefined : undefined, Symbol(undefined) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>undefined : undefined +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean2 : string | boolean, Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 53, 3)) +>resultIsStringOrBoolean2 : string | boolean >null ? exprString1 : exprBoolean1 : string | boolean >null : null ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprString1 : string +>exprBoolean1 : boolean var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean3 : string | boolean, Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditoinIsAnyType.ts, 54, 3)) +>resultIsStringOrBoolean3 : string | boolean >undefined ? exprString1 : exprBoolean1 : string | boolean ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean4 : string | boolean, Symbol(resultIsStringOrBoolean4, Decl(conditionalOperatorConditoinIsAnyType.ts, 55, 3)) +>resultIsStringOrBoolean4 : string | boolean >[null, undefined] ? exprString1 : exprBoolean1 : string | boolean >[null, undefined] : null[] >null : null ->undefined : undefined, Symbol(undefined) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>undefined : undefined +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2; ->resultIsAny3 : any, Symbol(resultIsAny3, Decl(conditionalOperatorConditoinIsAnyType.ts, 57, 3)) +>resultIsAny3 : any >x.doSomeThing() ? exprAny1 : exprAny2 : any >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >doSomeThing : any ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsAnyType.ts, 4, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsAnyType.ts, 10, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean3 = x("x") ? exprBoolean1 : exprBoolean2; ->resultIsBoolean3 : boolean, Symbol(resultIsBoolean3, Decl(conditionalOperatorConditoinIsAnyType.ts, 58, 3)) +>resultIsBoolean3 : boolean >x("x") ? exprBoolean1 : exprBoolean2 : boolean >x("x") : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >"x" : string ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsAnyType.ts, 11, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber3 = x(x) ? exprNumber1 : exprNumber2; ->resultIsNumber3 : number, Symbol(resultIsNumber3, Decl(conditionalOperatorConditoinIsAnyType.ts, 59, 3)) +>resultIsNumber3 : number >x(x) ? exprNumber1 : exprNumber2 : number >x(x) : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsAnyType.ts, 6, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsAnyType.ts, 12, 3)) +>x : any +>x : any +>exprNumber1 : number +>exprNumber2 : number var resultIsString3 = x("x") ? exprString1 : exprString2; ->resultIsString3 : string, Symbol(resultIsString3, Decl(conditionalOperatorConditoinIsAnyType.ts, 60, 3)) +>resultIsString3 : string >x("x") ? exprString1 : exprString2 : string >x("x") : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >"x" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsAnyType.ts, 13, 3)) +>exprString1 : string +>exprString2 : string var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2; ->resultIsObject3 : Object, Symbol(resultIsObject3, Decl(conditionalOperatorConditoinIsAnyType.ts, 61, 3)) +>resultIsObject3 : Object >x.doSomeThing() ? exprIsObject1 : exprIsObject2 : Object >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >doSomeThing : any ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsAnyType.ts, 8, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsAnyType.ts, 14, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean5 : string | boolean, Symbol(resultIsStringOrBoolean5, Decl(conditionalOperatorConditoinIsAnyType.ts, 62, 3)) +>resultIsStringOrBoolean5 : string | boolean >x.doSomeThing() ? exprString1 : exprBoolean1 : string | boolean >x.doSomeThing() : any >x.doSomeThing : any ->x : any, Symbol(x, Decl(conditionalOperatorConditoinIsAnyType.ts, 2, 3)) +>x : any >doSomeThing : any ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsAnyType.ts, 7, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsAnyType.ts, 5, 3)) +>exprString1 : string +>exprBoolean1 : boolean diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.symbols b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.symbols new file mode 100644 index 0000000000000..76845a80ce6a8 --- /dev/null +++ b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.symbols @@ -0,0 +1,245 @@ +=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts === +//Cond ? Expr1 : Expr2, Cond is of string type, Expr1 and Expr2 have the same type +var condString: string; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) + +var exprAny1: any; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) + +var exprBoolean1: boolean; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +var exprNumber1: number; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) + +var exprString1: string; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) + +var exprIsObject1: Object; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var exprAny2: any; +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +var exprBoolean2: boolean; +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +var exprNumber2: number; +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +var exprString2: string; +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +var exprIsObject2: Object; +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +//Cond is a string type variable +condString ? exprAny1 : exprAny2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +condString ? exprBoolean1 : exprBoolean2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +condString ? exprNumber1 : exprNumber2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +condString ? exprString1 : exprString2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +condString ? exprIsObject1 : exprIsObject2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) + +condString ? exprString1 : exprBoolean1; // union +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +//Cond is a string type literal +"" ? exprAny1 : exprAny2; +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +"string" ? exprBoolean1 : exprBoolean2; +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +'c' ? exprNumber1 : exprNumber2; +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +'string' ? exprString1 : exprString2; +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +" " ? exprIsObject1 : exprIsObject2; +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) + +"hello " ? exprString1 : exprBoolean1; // union +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +//Cond is a string type expression +function foo() { return "string" }; +>foo : Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) + +var array = ["1", "2", "3"]; +>array : Symbol(array, Decl(conditionalOperatorConditoinIsStringType.ts, 33, 3)) + +typeof condString ? exprAny1 : exprAny2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +condString.toUpperCase ? exprBoolean1 : exprBoolean2; +>condString.toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +condString + "string" ? exprNumber1 : exprNumber2; +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +foo() ? exprString1 : exprString2; +>foo : Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +array[1] ? exprIsObject1 : exprIsObject2; +>array : Symbol(array, Decl(conditionalOperatorConditoinIsStringType.ts, 33, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) + +foo() ? exprString1 : exprBoolean1; // union +>foo : Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +//Results shoud be same as Expr1 and Expr2 +var resultIsAny1 = condString ? exprAny1 : exprAny2; +>resultIsAny1 : Symbol(resultIsAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 43, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +var resultIsBoolean1 = condString ? exprBoolean1 : exprBoolean2; +>resultIsBoolean1 : Symbol(resultIsBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 44, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +var resultIsNumber1 = condString ? exprNumber1 : exprNumber2; +>resultIsNumber1 : Symbol(resultIsNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 45, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +var resultIsString1 = condString ? exprString1 : exprString2; +>resultIsString1 : Symbol(resultIsString1, Decl(conditionalOperatorConditoinIsStringType.ts, 46, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +var resultIsObject1 = condString ? exprIsObject1 : exprIsObject2; +>resultIsObject1 : Symbol(resultIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 47, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) + +var resultIsStringOrBoolean1 = condString ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean1 : Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 48, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +var resultIsAny2 = "" ? exprAny1 : exprAny2; +>resultIsAny2 : Symbol(resultIsAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 50, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +var resultIsBoolean2 = "string" ? exprBoolean1 : exprBoolean2; +>resultIsBoolean2 : Symbol(resultIsBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 51, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +var resultIsNumber2 = 'c' ? exprNumber1 : exprNumber2; +>resultIsNumber2 : Symbol(resultIsNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 52, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +var resultIsString2 = 'string' ? exprString1 : exprString2; +>resultIsString2 : Symbol(resultIsString2, Decl(conditionalOperatorConditoinIsStringType.ts, 53, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +var resultIsObject2 = " " ? exprIsObject1 : exprIsObject2; +>resultIsObject2 : Symbol(resultIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 54, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) + +var resultIsStringOrBoolean2 = "hello" ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean2 : Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 55, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +var resultIsAny3 = typeof condString ? exprAny1 : exprAny2; +>resultIsAny3 : Symbol(resultIsAny3, Decl(conditionalOperatorConditoinIsStringType.ts, 57, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprAny1 : Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny2 : Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) + +var resultIsBoolean3 = condString.toUpperCase ? exprBoolean1 : exprBoolean2; +>resultIsBoolean3 : Symbol(resultIsBoolean3, Decl(conditionalOperatorConditoinIsStringType.ts, 58, 3)) +>condString.toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean2 : Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) + +var resultIsNumber3 = condString + "string" ? exprNumber1 : exprNumber2; +>resultIsNumber3 : Symbol(resultIsNumber3, Decl(conditionalOperatorConditoinIsStringType.ts, 59, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprNumber1 : Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber2 : Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) + +var resultIsString3 = foo() ? exprString1 : exprString2; +>resultIsString3 : Symbol(resultIsString3, Decl(conditionalOperatorConditoinIsStringType.ts, 60, 3)) +>foo : Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString2 : Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) + +var resultIsObject3 = array[1] ? exprIsObject1 : exprIsObject2; +>resultIsObject3 : Symbol(resultIsObject3, Decl(conditionalOperatorConditoinIsStringType.ts, 61, 3)) +>array : Symbol(array, Decl(conditionalOperatorConditoinIsStringType.ts, 33, 3)) +>exprIsObject1 : Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) +>exprIsObject2 : Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) + +var resultIsStringOrBoolean3 = typeof condString ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean3 : Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditoinIsStringType.ts, 62, 3)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + +var resultIsStringOrBoolean4 = condString.toUpperCase ? exprString1 : exprBoolean1; // union +>resultIsStringOrBoolean4 : Symbol(resultIsStringOrBoolean4, Decl(conditionalOperatorConditoinIsStringType.ts, 63, 3)) +>condString.toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>condString : Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>exprString1 : Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprBoolean1 : Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) + diff --git a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types index f8da295be1b5c..af5abb25063e8 100644 --- a/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types +++ b/tests/baselines/reference/conditionalOperatorConditoinIsStringType.types @@ -1,121 +1,121 @@ === tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsStringType.ts === //Cond ? Expr1 : Expr2, Cond is of string type, Expr1 and Expr2 have the same type var condString: string; ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>condString : string var exprAny1: any; ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) +>exprAny1 : any var exprBoolean1: boolean; ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprBoolean1 : boolean var exprNumber1: number; ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) +>exprNumber1 : number var exprString1: string; ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) +>exprString1 : string var exprIsObject1: Object; ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject1 : Object +>Object : Object var exprAny2: any; ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>exprAny2 : any var exprBoolean2: boolean; ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>exprBoolean2 : boolean var exprNumber2: number; ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>exprNumber2 : number var exprString2: string; ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>exprString2 : string var exprIsObject2: Object; ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>exprIsObject2 : Object +>Object : Object //Cond is a string type variable condString ? exprAny1 : exprAny2; >condString ? exprAny1 : exprAny2 : any ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>condString : string +>exprAny1 : any +>exprAny2 : any condString ? exprBoolean1 : exprBoolean2; >condString ? exprBoolean1 : exprBoolean2 : boolean ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>condString : string +>exprBoolean1 : boolean +>exprBoolean2 : boolean condString ? exprNumber1 : exprNumber2; >condString ? exprNumber1 : exprNumber2 : number ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>condString : string +>exprNumber1 : number +>exprNumber2 : number condString ? exprString1 : exprString2; >condString ? exprString1 : exprString2 : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>condString : string +>exprString1 : string +>exprString2 : string condString ? exprIsObject1 : exprIsObject2; >condString ? exprIsObject1 : exprIsObject2 : Object ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>condString : string +>exprIsObject1 : Object +>exprIsObject2 : Object condString ? exprString1 : exprBoolean1; // union >condString ? exprString1 : exprBoolean1 : string | boolean ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>condString : string +>exprString1 : string +>exprBoolean1 : boolean //Cond is a string type literal "" ? exprAny1 : exprAny2; >"" ? exprAny1 : exprAny2 : any >"" : string ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any "string" ? exprBoolean1 : exprBoolean2; >"string" ? exprBoolean1 : exprBoolean2 : boolean >"string" : string ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean 'c' ? exprNumber1 : exprNumber2; >'c' ? exprNumber1 : exprNumber2 : number >'c' : string ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number 'string' ? exprString1 : exprString2; >'string' ? exprString1 : exprString2 : string >'string' : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string " " ? exprIsObject1 : exprIsObject2; >" " ? exprIsObject1 : exprIsObject2 : Object >" " : string ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object "hello " ? exprString1 : exprBoolean1; // union >"hello " ? exprString1 : exprBoolean1 : string | boolean >"hello " : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean //Cond is a string type expression function foo() { return "string" }; ->foo : () => string, Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) +>foo : () => string >"string" : string var array = ["1", "2", "3"]; ->array : string[], Symbol(array, Decl(conditionalOperatorConditoinIsStringType.ts, 33, 3)) +>array : string[] >["1", "2", "3"] : string[] >"1" : string >"2" : string @@ -124,190 +124,190 @@ var array = ["1", "2", "3"]; typeof condString ? exprAny1 : exprAny2; >typeof condString ? exprAny1 : exprAny2 : any >typeof condString : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>condString : string +>exprAny1 : any +>exprAny2 : any condString.toUpperCase ? exprBoolean1 : exprBoolean2; >condString.toUpperCase ? exprBoolean1 : exprBoolean2 : boolean ->condString.toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>condString.toUpperCase : () => string +>condString : string +>toUpperCase : () => string +>exprBoolean1 : boolean +>exprBoolean2 : boolean condString + "string" ? exprNumber1 : exprNumber2; >condString + "string" ? exprNumber1 : exprNumber2 : number >condString + "string" : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>condString : string >"string" : string ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number foo() ? exprString1 : exprString2; >foo() ? exprString1 : exprString2 : string >foo() : string ->foo : () => string, Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>foo : () => string +>exprString1 : string +>exprString2 : string array[1] ? exprIsObject1 : exprIsObject2; >array[1] ? exprIsObject1 : exprIsObject2 : Object >array[1] : string ->array : string[], Symbol(array, Decl(conditionalOperatorConditoinIsStringType.ts, 33, 3)) +>array : string[] >1 : number ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object foo() ? exprString1 : exprBoolean1; // union >foo() ? exprString1 : exprBoolean1 : string | boolean >foo() : string ->foo : () => string, Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>foo : () => string +>exprString1 : string +>exprBoolean1 : boolean //Results shoud be same as Expr1 and Expr2 var resultIsAny1 = condString ? exprAny1 : exprAny2; ->resultIsAny1 : any, Symbol(resultIsAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 43, 3)) +>resultIsAny1 : any >condString ? exprAny1 : exprAny2 : any ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>condString : string +>exprAny1 : any +>exprAny2 : any var resultIsBoolean1 = condString ? exprBoolean1 : exprBoolean2; ->resultIsBoolean1 : boolean, Symbol(resultIsBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 44, 3)) +>resultIsBoolean1 : boolean >condString ? exprBoolean1 : exprBoolean2 : boolean ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>condString : string +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber1 = condString ? exprNumber1 : exprNumber2; ->resultIsNumber1 : number, Symbol(resultIsNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 45, 3)) +>resultIsNumber1 : number >condString ? exprNumber1 : exprNumber2 : number ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>condString : string +>exprNumber1 : number +>exprNumber2 : number var resultIsString1 = condString ? exprString1 : exprString2; ->resultIsString1 : string, Symbol(resultIsString1, Decl(conditionalOperatorConditoinIsStringType.ts, 46, 3)) +>resultIsString1 : string >condString ? exprString1 : exprString2 : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>condString : string +>exprString1 : string +>exprString2 : string var resultIsObject1 = condString ? exprIsObject1 : exprIsObject2; ->resultIsObject1 : Object, Symbol(resultIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 47, 3)) +>resultIsObject1 : Object >condString ? exprIsObject1 : exprIsObject2 : Object ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>condString : string +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean1 = condString ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean1 : string | boolean, Symbol(resultIsStringOrBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 48, 3)) +>resultIsStringOrBoolean1 : string | boolean >condString ? exprString1 : exprBoolean1 : string | boolean ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>condString : string +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny2 = "" ? exprAny1 : exprAny2; ->resultIsAny2 : any, Symbol(resultIsAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 50, 3)) +>resultIsAny2 : any >"" ? exprAny1 : exprAny2 : any >"" : string ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>exprAny1 : any +>exprAny2 : any var resultIsBoolean2 = "string" ? exprBoolean1 : exprBoolean2; ->resultIsBoolean2 : boolean, Symbol(resultIsBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 51, 3)) +>resultIsBoolean2 : boolean >"string" ? exprBoolean1 : exprBoolean2 : boolean >"string" : string ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber2 = 'c' ? exprNumber1 : exprNumber2; ->resultIsNumber2 : number, Symbol(resultIsNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 52, 3)) +>resultIsNumber2 : number >'c' ? exprNumber1 : exprNumber2 : number >'c' : string ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number var resultIsString2 = 'string' ? exprString1 : exprString2; ->resultIsString2 : string, Symbol(resultIsString2, Decl(conditionalOperatorConditoinIsStringType.ts, 53, 3)) +>resultIsString2 : string >'string' ? exprString1 : exprString2 : string >'string' : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>exprString1 : string +>exprString2 : string var resultIsObject2 = " " ? exprIsObject1 : exprIsObject2; ->resultIsObject2 : Object, Symbol(resultIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 54, 3)) +>resultIsObject2 : Object >" " ? exprIsObject1 : exprIsObject2 : Object >" " : string ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean2 = "hello" ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean2 : string | boolean, Symbol(resultIsStringOrBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 55, 3)) +>resultIsStringOrBoolean2 : string | boolean >"hello" ? exprString1 : exprBoolean1 : string | boolean >"hello" : string ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>exprString1 : string +>exprBoolean1 : boolean var resultIsAny3 = typeof condString ? exprAny1 : exprAny2; ->resultIsAny3 : any, Symbol(resultIsAny3, Decl(conditionalOperatorConditoinIsStringType.ts, 57, 3)) +>resultIsAny3 : any >typeof condString ? exprAny1 : exprAny2 : any >typeof condString : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprAny1 : any, Symbol(exprAny1, Decl(conditionalOperatorConditoinIsStringType.ts, 3, 3)) ->exprAny2 : any, Symbol(exprAny2, Decl(conditionalOperatorConditoinIsStringType.ts, 9, 3)) +>condString : string +>exprAny1 : any +>exprAny2 : any var resultIsBoolean3 = condString.toUpperCase ? exprBoolean1 : exprBoolean2; ->resultIsBoolean3 : boolean, Symbol(resultIsBoolean3, Decl(conditionalOperatorConditoinIsStringType.ts, 58, 3)) +>resultIsBoolean3 : boolean >condString.toUpperCase ? exprBoolean1 : exprBoolean2 : boolean ->condString.toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) ->exprBoolean2 : boolean, Symbol(exprBoolean2, Decl(conditionalOperatorConditoinIsStringType.ts, 10, 3)) +>condString.toUpperCase : () => string +>condString : string +>toUpperCase : () => string +>exprBoolean1 : boolean +>exprBoolean2 : boolean var resultIsNumber3 = condString + "string" ? exprNumber1 : exprNumber2; ->resultIsNumber3 : number, Symbol(resultIsNumber3, Decl(conditionalOperatorConditoinIsStringType.ts, 59, 3)) +>resultIsNumber3 : number >condString + "string" ? exprNumber1 : exprNumber2 : number >condString + "string" : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) +>condString : string >"string" : string ->exprNumber1 : number, Symbol(exprNumber1, Decl(conditionalOperatorConditoinIsStringType.ts, 5, 3)) ->exprNumber2 : number, Symbol(exprNumber2, Decl(conditionalOperatorConditoinIsStringType.ts, 11, 3)) +>exprNumber1 : number +>exprNumber2 : number var resultIsString3 = foo() ? exprString1 : exprString2; ->resultIsString3 : string, Symbol(resultIsString3, Decl(conditionalOperatorConditoinIsStringType.ts, 60, 3)) +>resultIsString3 : string >foo() ? exprString1 : exprString2 : string >foo() : string ->foo : () => string, Symbol(foo, Decl(conditionalOperatorConditoinIsStringType.ts, 29, 38)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprString2 : string, Symbol(exprString2, Decl(conditionalOperatorConditoinIsStringType.ts, 12, 3)) +>foo : () => string +>exprString1 : string +>exprString2 : string var resultIsObject3 = array[1] ? exprIsObject1 : exprIsObject2; ->resultIsObject3 : Object, Symbol(resultIsObject3, Decl(conditionalOperatorConditoinIsStringType.ts, 61, 3)) +>resultIsObject3 : Object >array[1] ? exprIsObject1 : exprIsObject2 : Object >array[1] : string ->array : string[], Symbol(array, Decl(conditionalOperatorConditoinIsStringType.ts, 33, 3)) +>array : string[] >1 : number ->exprIsObject1 : Object, Symbol(exprIsObject1, Decl(conditionalOperatorConditoinIsStringType.ts, 7, 3)) ->exprIsObject2 : Object, Symbol(exprIsObject2, Decl(conditionalOperatorConditoinIsStringType.ts, 13, 3)) +>exprIsObject1 : Object +>exprIsObject2 : Object var resultIsStringOrBoolean3 = typeof condString ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean3 : string | boolean, Symbol(resultIsStringOrBoolean3, Decl(conditionalOperatorConditoinIsStringType.ts, 62, 3)) +>resultIsStringOrBoolean3 : string | boolean >typeof condString ? exprString1 : exprBoolean1 : string | boolean >typeof condString : string ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>condString : string +>exprString1 : string +>exprBoolean1 : boolean var resultIsStringOrBoolean4 = condString.toUpperCase ? exprString1 : exprBoolean1; // union ->resultIsStringOrBoolean4 : string | boolean, Symbol(resultIsStringOrBoolean4, Decl(conditionalOperatorConditoinIsStringType.ts, 63, 3)) +>resultIsStringOrBoolean4 : string | boolean >condString.toUpperCase ? exprString1 : exprBoolean1 : string | boolean ->condString.toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->condString : string, Symbol(condString, Decl(conditionalOperatorConditoinIsStringType.ts, 1, 3)) ->toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->exprString1 : string, Symbol(exprString1, Decl(conditionalOperatorConditoinIsStringType.ts, 6, 3)) ->exprBoolean1 : boolean, Symbol(exprBoolean1, Decl(conditionalOperatorConditoinIsStringType.ts, 4, 3)) +>condString.toUpperCase : () => string +>condString : string +>toUpperCase : () => string +>exprString1 : string +>exprBoolean1 : boolean diff --git a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.symbols b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.symbols new file mode 100644 index 0000000000000..e4c2e43013dc2 --- /dev/null +++ b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.symbols @@ -0,0 +1,149 @@ +=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts === +//Cond ? Expr1 : Expr2, Expr1 and Expr2 have identical best common type +class X { propertyX: any; propertyX1: number; propertyX2: string }; +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>propertyX : Symbol(propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) +>propertyX1 : Symbol(propertyX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 25)) +>propertyX2 : Symbol(propertyX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 45)) + +class A extends X { propertyA: number }; +>A : Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>propertyA : Symbol(propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) + +class B extends X { propertyB: string }; +>B : Symbol(B, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 40)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>propertyB : Symbol(propertyB, Decl(conditionalOperatorWithIdenticalBCT.ts, 3, 19)) + +var x: X; +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) + +var a: A; +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>A : Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) + +var b: B; +>b : Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 7, 3)) +>B : Symbol(B, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 40)) + +//Cond ? Expr1 : Expr2, Expr1 is supertype +//Be Not contextually typed +true ? x : a; +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) + +var result1 = true ? x : a; +>result1 : Symbol(result1, Decl(conditionalOperatorWithIdenticalBCT.ts, 12, 3)) +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) + +//Expr1 and Expr2 are literals +true ? {} : 1; +true ? { a: 1 } : { a: 2, b: 'string' }; +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 16, 8)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 16, 19)) +>b : Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 16, 25)) + +var result2 = true ? {} : 1; +>result2 : Symbol(result2, Decl(conditionalOperatorWithIdenticalBCT.ts, 17, 3)) + +var result3 = true ? { a: 1 } : { a: 2, b: 'string' }; +>result3 : Symbol(result3, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 22)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 33)) +>b : Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 39)) + +//Contextually typed +var resultIsX1: X = true ? x : a; +>resultIsX1 : Symbol(resultIsX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 21, 3)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) + +var result4: (t: A) => any = true ? (m) => m.propertyX : (n) => n.propertyA; +>result4 : Symbol(result4, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 3)) +>t : Symbol(t, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 14)) +>A : Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) +>m : Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 37)) +>m.propertyX : Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) +>m : Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 37)) +>propertyX : Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) +>n : Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 58)) +>n.propertyA : Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) +>n : Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 58)) +>propertyA : Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) + +//Cond ? Expr1 : Expr2, Expr2 is supertype +//Be Not contextually typed +true ? a : x; +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) + +var result5 = true ? a : x; +>result5 : Symbol(result5, Decl(conditionalOperatorWithIdenticalBCT.ts, 27, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) + +//Expr1 and Expr2 are literals +true ? 1 : {}; +true ? { a: 2, b: 'string' } : { a: 1 }; +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 31, 8)) +>b : Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 31, 14)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 31, 32)) + +var result6 = true ? 1 : {}; +>result6 : Symbol(result6, Decl(conditionalOperatorWithIdenticalBCT.ts, 32, 3)) + +var result7 = true ? { a: 2, b: 'string' } : { a: 1 }; +>result7 : Symbol(result7, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 22)) +>b : Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 28)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 46)) + +//Contextually typed +var resultIsX2: X = true ? x : a; +>resultIsX2 : Symbol(resultIsX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 36, 3)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>x : Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) + +var result8: (t: A) => any = true ? (m) => m.propertyA : (n) => n.propertyX; +>result8 : Symbol(result8, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 3)) +>t : Symbol(t, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 14)) +>A : Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) +>m : Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 37)) +>m.propertyA : Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) +>m : Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 37)) +>propertyA : Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) +>n : Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 58)) +>n.propertyX : Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) +>n : Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 58)) +>propertyX : Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) + +//Result = Cond ? Expr1 : Expr2, Result is supertype +//Contextually typed +var resultIsX3: X = true ? a : b; +>resultIsX3 : Symbol(resultIsX3, Decl(conditionalOperatorWithIdenticalBCT.ts, 41, 3)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>a : Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>b : Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 7, 3)) + +var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; +>result10 : Symbol(result10, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 3)) +>t : Symbol(t, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 15)) +>X : Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>m : Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 38)) +>m.propertyX1 : Symbol(X.propertyX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 25)) +>m : Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 38)) +>propertyX1 : Symbol(X.propertyX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 25)) +>n : Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 60)) +>n.propertyX2 : Symbol(X.propertyX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 45)) +>n : Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 60)) +>propertyX2 : Symbol(X.propertyX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 45)) + +//Expr1 and Expr2 are literals +var result11: any = true ? 1 : 'string'; +>result11 : Symbol(result11, Decl(conditionalOperatorWithIdenticalBCT.ts, 45, 3)) + diff --git a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types index 0bbfe77b18def..722ec13c68439 100644 --- a/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types +++ b/tests/baselines/reference/conditionalOperatorWithIdenticalBCT.types @@ -1,47 +1,47 @@ === tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithIdenticalBCT.ts === //Cond ? Expr1 : Expr2, Expr1 and Expr2 have identical best common type class X { propertyX: any; propertyX1: number; propertyX2: string }; ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) ->propertyX : any, Symbol(propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) ->propertyX1 : number, Symbol(propertyX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 25)) ->propertyX2 : string, Symbol(propertyX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 45)) +>X : X +>propertyX : any +>propertyX1 : number +>propertyX2 : string class A extends X { propertyA: number }; ->A : A, Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) ->propertyA : number, Symbol(propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) +>A : A +>X : X +>propertyA : number class B extends X { propertyB: string }; ->B : B, Symbol(B, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 40)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) ->propertyB : string, Symbol(propertyB, Decl(conditionalOperatorWithIdenticalBCT.ts, 3, 19)) +>B : B +>X : X +>propertyB : string var x: X; ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>x : X +>X : X var a: A; ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) ->A : A, Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) +>a : A +>A : A var b: B; ->b : B, Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 7, 3)) ->B : B, Symbol(B, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 40)) +>b : B +>B : B //Cond ? Expr1 : Expr2, Expr1 is supertype //Be Not contextually typed true ? x : a; >true ? x : a : X >true : boolean ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>x : X +>a : A var result1 = true ? x : a; ->result1 : X, Symbol(result1, Decl(conditionalOperatorWithIdenticalBCT.ts, 12, 3)) +>result1 : X >true ? x : a : X >true : boolean ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>x : X +>a : A //Expr1 and Expr2 are literals true ? {} : 1; @@ -54,74 +54,74 @@ true ? { a: 1 } : { a: 2, b: 'string' }; >true ? { a: 1 } : { a: 2, b: 'string' } : { a: number; } >true : boolean >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 16, 8)) +>a : number >1 : number >{ a: 2, b: 'string' } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 16, 19)) +>a : number >2 : number ->b : string, Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 16, 25)) +>b : string >'string' : string var result2 = true ? {} : 1; ->result2 : {}, Symbol(result2, Decl(conditionalOperatorWithIdenticalBCT.ts, 17, 3)) +>result2 : {} >true ? {} : 1 : {} >true : boolean >{} : {} >1 : number var result3 = true ? { a: 1 } : { a: 2, b: 'string' }; ->result3 : { a: number; }, Symbol(result3, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 3)) +>result3 : { a: number; } >true ? { a: 1 } : { a: 2, b: 'string' } : { a: number; } >true : boolean >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 22)) +>a : number >1 : number >{ a: 2, b: 'string' } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 33)) +>a : number >2 : number ->b : string, Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 18, 39)) +>b : string >'string' : string //Contextually typed var resultIsX1: X = true ? x : a; ->resultIsX1 : X, Symbol(resultIsX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 21, 3)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>resultIsX1 : X +>X : X >true ? x : a : X >true : boolean ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>x : X +>a : A var result4: (t: A) => any = true ? (m) => m.propertyX : (n) => n.propertyA; ->result4 : (t: A) => any, Symbol(result4, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 3)) ->t : A, Symbol(t, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 14)) ->A : A, Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) +>result4 : (t: A) => any +>t : A +>A : A >true ? (m) => m.propertyX : (n) => n.propertyA : (m: A) => any >true : boolean >(m) => m.propertyX : (m: A) => any ->m : A, Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 37)) ->m.propertyX : any, Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) ->m : A, Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 37)) ->propertyX : any, Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) +>m : A +>m.propertyX : any +>m : A +>propertyX : any >(n) => n.propertyA : (n: A) => number ->n : A, Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 58)) ->n.propertyA : number, Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) ->n : A, Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 22, 58)) ->propertyA : number, Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) +>n : A +>n.propertyA : number +>n : A +>propertyA : number //Cond ? Expr1 : Expr2, Expr2 is supertype //Be Not contextually typed true ? a : x; >true ? a : x : X >true : boolean ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>a : A +>x : X var result5 = true ? a : x; ->result5 : X, Symbol(result5, Decl(conditionalOperatorWithIdenticalBCT.ts, 27, 3)) +>result5 : X >true ? a : x : X >true : boolean ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) +>a : A +>x : X //Expr1 and Expr2 are literals true ? 1 : {}; @@ -134,90 +134,90 @@ true ? { a: 2, b: 'string' } : { a: 1 }; >true ? { a: 2, b: 'string' } : { a: 1 } : { a: number; } >true : boolean >{ a: 2, b: 'string' } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 31, 8)) +>a : number >2 : number ->b : string, Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 31, 14)) +>b : string >'string' : string >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 31, 32)) +>a : number >1 : number var result6 = true ? 1 : {}; ->result6 : {}, Symbol(result6, Decl(conditionalOperatorWithIdenticalBCT.ts, 32, 3)) +>result6 : {} >true ? 1 : {} : {} >true : boolean >1 : number >{} : {} var result7 = true ? { a: 2, b: 'string' } : { a: 1 }; ->result7 : { a: number; }, Symbol(result7, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 3)) +>result7 : { a: number; } >true ? { a: 2, b: 'string' } : { a: 1 } : { a: number; } >true : boolean >{ a: 2, b: 'string' } : { a: number; b: string; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 22)) +>a : number >2 : number ->b : string, Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 28)) +>b : string >'string' : string >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 33, 46)) +>a : number >1 : number //Contextually typed var resultIsX2: X = true ? x : a; ->resultIsX2 : X, Symbol(resultIsX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 36, 3)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>resultIsX2 : X +>X : X >true ? x : a : X >true : boolean ->x : X, Symbol(x, Decl(conditionalOperatorWithIdenticalBCT.ts, 5, 3)) ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) +>x : X +>a : A var result8: (t: A) => any = true ? (m) => m.propertyA : (n) => n.propertyX; ->result8 : (t: A) => any, Symbol(result8, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 3)) ->t : A, Symbol(t, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 14)) ->A : A, Symbol(A, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 67)) +>result8 : (t: A) => any +>t : A +>A : A >true ? (m) => m.propertyA : (n) => n.propertyX : (n: A) => any >true : boolean >(m) => m.propertyA : (m: A) => number ->m : A, Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 37)) ->m.propertyA : number, Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) ->m : A, Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 37)) ->propertyA : number, Symbol(A.propertyA, Decl(conditionalOperatorWithIdenticalBCT.ts, 2, 19)) +>m : A +>m.propertyA : number +>m : A +>propertyA : number >(n) => n.propertyX : (n: A) => any ->n : A, Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 58)) ->n.propertyX : any, Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) ->n : A, Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 37, 58)) ->propertyX : any, Symbol(X.propertyX, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 9)) +>n : A +>n.propertyX : any +>n : A +>propertyX : any //Result = Cond ? Expr1 : Expr2, Result is supertype //Contextually typed var resultIsX3: X = true ? a : b; ->resultIsX3 : X, Symbol(resultIsX3, Decl(conditionalOperatorWithIdenticalBCT.ts, 41, 3)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>resultIsX3 : X +>X : X >true ? a : b : A | B >true : boolean ->a : A, Symbol(a, Decl(conditionalOperatorWithIdenticalBCT.ts, 6, 3)) ->b : B, Symbol(b, Decl(conditionalOperatorWithIdenticalBCT.ts, 7, 3)) +>a : A +>b : B var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2; ->result10 : (t: X) => any, Symbol(result10, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 3)) ->t : X, Symbol(t, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 15)) ->X : X, Symbol(X, Decl(conditionalOperatorWithIdenticalBCT.ts, 0, 0)) +>result10 : (t: X) => any +>t : X +>X : X >true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string) >true : boolean >(m) => m.propertyX1 : (m: X) => number ->m : X, Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 38)) ->m.propertyX1 : number, Symbol(X.propertyX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 25)) ->m : X, Symbol(m, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 38)) ->propertyX1 : number, Symbol(X.propertyX1, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 25)) +>m : X +>m.propertyX1 : number +>m : X +>propertyX1 : number >(n) => n.propertyX2 : (n: X) => string ->n : X, Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 60)) ->n.propertyX2 : string, Symbol(X.propertyX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 45)) ->n : X, Symbol(n, Decl(conditionalOperatorWithIdenticalBCT.ts, 42, 60)) ->propertyX2 : string, Symbol(X.propertyX2, Decl(conditionalOperatorWithIdenticalBCT.ts, 1, 45)) +>n : X +>n.propertyX2 : string +>n : X +>propertyX2 : string //Expr1 and Expr2 are literals var result11: any = true ? 1 : 'string'; ->result11 : any, Symbol(result11, Decl(conditionalOperatorWithIdenticalBCT.ts, 45, 3)) +>result11 : any >true ? 1 : 'string' : string | number >true : boolean >1 : number diff --git a/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.symbols b/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.symbols new file mode 100644 index 0000000000000..85f6c7ee4eb6f --- /dev/null +++ b/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.symbols @@ -0,0 +1,71 @@ +=== tests/cases/compiler/conditionallyDuplicateOverloadsCausedByOverloadResolution.ts === +declare function foo(func: (x: string, y: string) => any): boolean; +>foo : Symbol(foo, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 0), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 67)) +>func : Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 21)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 28)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 38)) + +declare function foo(func: (x: string, y: number) => any): string; +>foo : Symbol(foo, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 0), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 67)) +>func : Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 1, 21)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 1, 28)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 1, 38)) + +var out = foo((x, y) => { +>out : Symbol(out, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 3)) +>foo : Symbol(foo, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 0), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 67)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 15)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 17)) + + function bar(a: typeof x): void; +>bar : Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) +>a : Symbol(a, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 17)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 15)) + + function bar(b: typeof y): void; +>bar : Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) +>b : Symbol(b, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 17)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 17)) + + function bar() { } +>bar : Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) + + return bar; +>bar : Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) + +}); + +declare function foo2(func: (x: string, y: string) => any): boolean; +>foo2 : Symbol(foo2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 8, 3), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 68)) +>func : Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 22)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 29)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 39)) + +declare function foo2(func: (x: string, y: number) => any): string; +>foo2 : Symbol(foo2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 8, 3), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 68)) +>func : Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 11, 22)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 11, 29)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 11, 39)) + +var out2 = foo2((x, y) => { +>out2 : Symbol(out2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 3)) +>foo2 : Symbol(foo2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 8, 3), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 68)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 17)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 19)) + + var bar: { +>bar : Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 14, 7)) + + (a: typeof x): void; +>a : Symbol(a, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 15, 9)) +>x : Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 17)) + + (b: typeof y): void; +>b : Symbol(b, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 16, 9)) +>y : Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 19)) + + }; + return bar; +>bar : Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 14, 7)) + +}); diff --git a/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.types b/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.types index 3fbb68b338611..41981e19b8e18 100644 --- a/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.types +++ b/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.types @@ -1,75 +1,75 @@ === tests/cases/compiler/conditionallyDuplicateOverloadsCausedByOverloadResolution.ts === declare function foo(func: (x: string, y: string) => any): boolean; ->foo : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; }, Symbol(foo, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 0), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 67)) ->func : (x: string, y: string) => any, Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 21)) ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 28)) ->y : string, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 38)) +>foo : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; } +>func : (x: string, y: string) => any +>x : string +>y : string declare function foo(func: (x: string, y: number) => any): string; ->foo : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; }, Symbol(foo, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 0), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 67)) ->func : (x: string, y: number) => any, Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 1, 21)) ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 1, 28)) ->y : number, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 1, 38)) +>foo : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; } +>func : (x: string, y: number) => any +>x : string +>y : number var out = foo((x, y) => { ->out : boolean, Symbol(out, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 3)) +>out : boolean >foo((x, y) => { function bar(a: typeof x): void; function bar(b: typeof y): void; function bar() { } return bar;}) : boolean ->foo : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; }, Symbol(foo, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 0), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 0, 67)) +>foo : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; } >(x, y) => { function bar(a: typeof x): void; function bar(b: typeof y): void; function bar() { } return bar;} : (x: string, y: string) => { (a: string): void; (b: string): void; } ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 15)) ->y : string, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 17)) +>x : string +>y : string function bar(a: typeof x): void; ->bar : { (a: string): void; (b: string): void; }, Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) ->a : string, Symbol(a, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 17)) ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 15)) +>bar : { (a: string): void; (b: string): void; } +>a : string +>x : string function bar(b: typeof y): void; ->bar : { (a: string): void; (b: string): void; }, Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) ->b : string, Symbol(b, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 17)) ->y : string, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 17)) +>bar : { (a: string): void; (b: string): void; } +>b : string +>y : string function bar() { } ->bar : { (a: string): void; (b: string): void; }, Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) +>bar : { (a: string): void; (b: string): void; } return bar; ->bar : { (a: string): void; (b: string): void; }, Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 3, 25), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 4, 36), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 5, 36)) +>bar : { (a: string): void; (b: string): void; } }); declare function foo2(func: (x: string, y: string) => any): boolean; ->foo2 : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; }, Symbol(foo2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 8, 3), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 68)) ->func : (x: string, y: string) => any, Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 22)) ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 29)) ->y : string, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 39)) +>foo2 : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; } +>func : (x: string, y: string) => any +>x : string +>y : string declare function foo2(func: (x: string, y: number) => any): string; ->foo2 : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; }, Symbol(foo2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 8, 3), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 68)) ->func : (x: string, y: number) => any, Symbol(func, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 11, 22)) ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 11, 29)) ->y : number, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 11, 39)) +>foo2 : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; } +>func : (x: string, y: number) => any +>x : string +>y : number var out2 = foo2((x, y) => { ->out2 : boolean, Symbol(out2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 3)) +>out2 : boolean >foo2((x, y) => { var bar: { (a: typeof x): void; (b: typeof y): void; }; return bar;}) : boolean ->foo2 : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; }, Symbol(foo2, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 8, 3), Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 10, 68)) +>foo2 : { (func: (x: string, y: string) => any): boolean; (func: (x: string, y: number) => any): string; } >(x, y) => { var bar: { (a: typeof x): void; (b: typeof y): void; }; return bar;} : (x: string, y: string) => { (a: string): void; (b: string): void; } ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 17)) ->y : string, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 19)) +>x : string +>y : string var bar: { ->bar : { (a: string): void; (b: string): void; }, Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 14, 7)) +>bar : { (a: string): void; (b: string): void; } (a: typeof x): void; ->a : string, Symbol(a, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 15, 9)) ->x : string, Symbol(x, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 17)) +>a : string +>x : string (b: typeof y): void; ->b : string, Symbol(b, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 16, 9)) ->y : string, Symbol(y, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 13, 19)) +>b : string +>y : string }; return bar; ->bar : { (a: string): void; (b: string): void; }, Symbol(bar, Decl(conditionallyDuplicateOverloadsCausedByOverloadResolution.ts, 14, 7)) +>bar : { (a: string): void; (b: string): void; } }); diff --git a/tests/baselines/reference/conformanceFunctionOverloads.symbols b/tests/baselines/reference/conformanceFunctionOverloads.symbols new file mode 100644 index 0000000000000..a80814ea93ebc --- /dev/null +++ b/tests/baselines/reference/conformanceFunctionOverloads.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/functions/conformanceFunctionOverloads.ts === +// Function overloads do not emit code +No type information for this code. +No type information for this code.// Function overload signature with optional parameter +No type information for this code. +No type information for this code.// Function overload signature with optional parameter +No type information for this code. +No type information for this code.// Function overloads with generic and non-generic overloads +No type information for this code. +No type information for this code.// Function overloads whose only difference is returning different unconstrained generic parameters +No type information for this code. +No type information for this code.// Function overloads whose only difference is returning different constrained generic parameters +No type information for this code. +No type information for this code.// Function overloads that differ only by type parameter constraints +No type information for this code. +No type information for this code.// Function overloads with matching accessibility +No type information for this code. +No type information for this code.// Function overloads with matching export +No type information for this code. +No type information for this code.// Function overloads with more params than implementation signature +No type information for this code. +No type information for this code.// Function overloads where return types are same infinitely recursive type reference +No type information for this code. +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.symbols b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.symbols new file mode 100644 index 0000000000000..db53aa8fb9278 --- /dev/null +++ b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/constDeclarationShadowedByVarDeclaration2.ts === + +// No errors, const declaration is not shadowed +function outer() { +>outer : Symbol(outer, Decl(constDeclarationShadowedByVarDeclaration2.ts, 0, 0)) + + const x = 0; +>x : Symbol(x, Decl(constDeclarationShadowedByVarDeclaration2.ts, 3, 9)) + + function inner() { +>inner : Symbol(inner, Decl(constDeclarationShadowedByVarDeclaration2.ts, 3, 16)) + + var x = "inner"; +>x : Symbol(x, Decl(constDeclarationShadowedByVarDeclaration2.ts, 5, 11)) + } +} diff --git a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.types b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.types index 83ddc662e799c..a5a7dd1d0cdff 100644 --- a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.types +++ b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration2.types @@ -2,17 +2,17 @@ // No errors, const declaration is not shadowed function outer() { ->outer : () => void, Symbol(outer, Decl(constDeclarationShadowedByVarDeclaration2.ts, 0, 0)) +>outer : () => void const x = 0; ->x : number, Symbol(x, Decl(constDeclarationShadowedByVarDeclaration2.ts, 3, 9)) +>x : number >0 : number function inner() { ->inner : () => void, Symbol(inner, Decl(constDeclarationShadowedByVarDeclaration2.ts, 3, 16)) +>inner : () => void var x = "inner"; ->x : string, Symbol(x, Decl(constDeclarationShadowedByVarDeclaration2.ts, 5, 11)) +>x : string >"inner" : string } } diff --git a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.symbols b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.symbols new file mode 100644 index 0000000000000..99e11e12967ca --- /dev/null +++ b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/constDeclarationShadowedByVarDeclaration3.ts === +// Ensure only checking for const declarations shadowed by vars +class Rule { +>Rule : Symbol(Rule, Decl(constDeclarationShadowedByVarDeclaration3.ts, 0, 0)) + + public regex: RegExp = new RegExp(''); +>regex : Symbol(regex, Decl(constDeclarationShadowedByVarDeclaration3.ts, 1, 12)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + + public name: string = ''; +>name : Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 2, 42)) + + constructor(name: string) { +>name : Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 5, 16)) + + this.name = name; +>this.name : Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 2, 42)) +>this : Symbol(Rule, Decl(constDeclarationShadowedByVarDeclaration3.ts, 0, 0)) +>name : Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 2, 42)) +>name : Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 5, 16)) + } +} diff --git a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types index 2909d5d0b3bf7..c5b9ec9a6f2a8 100644 --- a/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types +++ b/tests/baselines/reference/constDeclarationShadowedByVarDeclaration3.types @@ -1,27 +1,27 @@ === tests/cases/compiler/constDeclarationShadowedByVarDeclaration3.ts === // Ensure only checking for const declarations shadowed by vars class Rule { ->Rule : Rule, Symbol(Rule, Decl(constDeclarationShadowedByVarDeclaration3.ts, 0, 0)) +>Rule : Rule public regex: RegExp = new RegExp(''); ->regex : RegExp, Symbol(regex, Decl(constDeclarationShadowedByVarDeclaration3.ts, 1, 12)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>regex : RegExp +>RegExp : RegExp >new RegExp('') : RegExp ->RegExp : RegExpConstructor, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>RegExp : RegExpConstructor >'' : string public name: string = ''; ->name : string, Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 2, 42)) +>name : string >'' : string constructor(name: string) { ->name : string, Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 5, 16)) +>name : string this.name = name; >this.name = name : string ->this.name : string, Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 2, 42)) ->this : Rule, Symbol(Rule, Decl(constDeclarationShadowedByVarDeclaration3.ts, 0, 0)) ->name : string, Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 2, 42)) ->name : string, Symbol(name, Decl(constDeclarationShadowedByVarDeclaration3.ts, 5, 16)) +>this.name : string +>this : Rule +>name : string +>name : string } } diff --git a/tests/baselines/reference/constDeclarations-ambient.symbols b/tests/baselines/reference/constDeclarations-ambient.symbols new file mode 100644 index 0000000000000..87dfecab0c006 --- /dev/null +++ b/tests/baselines/reference/constDeclarations-ambient.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/constDeclarations-ambient.ts === + +// No error +declare const c1: boolean; +>c1 : Symbol(c1, Decl(constDeclarations-ambient.ts, 2, 13)) + +declare const c2: number; +>c2 : Symbol(c2, Decl(constDeclarations-ambient.ts, 3, 13)) + +declare const c3, c4 :string, c5: any; +>c3 : Symbol(c3, Decl(constDeclarations-ambient.ts, 4, 13)) +>c4 : Symbol(c4, Decl(constDeclarations-ambient.ts, 4, 17)) +>c5 : Symbol(c5, Decl(constDeclarations-ambient.ts, 4, 29)) + +declare module M { +>M : Symbol(M, Decl(constDeclarations-ambient.ts, 4, 38)) + + const c6; +>c6 : Symbol(c6, Decl(constDeclarations-ambient.ts, 7, 9)) + + const c7: number; +>c7 : Symbol(c7, Decl(constDeclarations-ambient.ts, 8, 9)) +} diff --git a/tests/baselines/reference/constDeclarations-ambient.types b/tests/baselines/reference/constDeclarations-ambient.types index 8c0ce520f8167..0ab2d4b700a69 100644 --- a/tests/baselines/reference/constDeclarations-ambient.types +++ b/tests/baselines/reference/constDeclarations-ambient.types @@ -2,22 +2,22 @@ // No error declare const c1: boolean; ->c1 : boolean, Symbol(c1, Decl(constDeclarations-ambient.ts, 2, 13)) +>c1 : boolean declare const c2: number; ->c2 : number, Symbol(c2, Decl(constDeclarations-ambient.ts, 3, 13)) +>c2 : number declare const c3, c4 :string, c5: any; ->c3 : any, Symbol(c3, Decl(constDeclarations-ambient.ts, 4, 13)) ->c4 : string, Symbol(c4, Decl(constDeclarations-ambient.ts, 4, 17)) ->c5 : any, Symbol(c5, Decl(constDeclarations-ambient.ts, 4, 29)) +>c3 : any +>c4 : string +>c5 : any declare module M { ->M : typeof M, Symbol(M, Decl(constDeclarations-ambient.ts, 4, 38)) +>M : typeof M const c6; ->c6 : any, Symbol(c6, Decl(constDeclarations-ambient.ts, 7, 9)) +>c6 : any const c7: number; ->c7 : number, Symbol(c7, Decl(constDeclarations-ambient.ts, 8, 9)) +>c7 : number } diff --git a/tests/baselines/reference/constDeclarations-es5.symbols b/tests/baselines/reference/constDeclarations-es5.symbols new file mode 100644 index 0000000000000..116dd06573b88 --- /dev/null +++ b/tests/baselines/reference/constDeclarations-es5.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/constDeclarations-es5.ts === + +const z7 = false; +>z7 : Symbol(z7, Decl(constDeclarations-es5.ts, 1, 5)) + +const z8: number = 23; +>z8 : Symbol(z8, Decl(constDeclarations-es5.ts, 2, 5)) + +const z9 = 0, z10 :string = "", z11 = null; +>z9 : Symbol(z9, Decl(constDeclarations-es5.ts, 3, 5)) +>z10 : Symbol(z10, Decl(constDeclarations-es5.ts, 3, 13)) +>z11 : Symbol(z11, Decl(constDeclarations-es5.ts, 3, 31)) + diff --git a/tests/baselines/reference/constDeclarations-es5.types b/tests/baselines/reference/constDeclarations-es5.types index a1328b6047b5d..a897c3f9cd0f1 100644 --- a/tests/baselines/reference/constDeclarations-es5.types +++ b/tests/baselines/reference/constDeclarations-es5.types @@ -1,18 +1,18 @@ === tests/cases/compiler/constDeclarations-es5.ts === const z7 = false; ->z7 : boolean, Symbol(z7, Decl(constDeclarations-es5.ts, 1, 5)) +>z7 : boolean >false : boolean const z8: number = 23; ->z8 : number, Symbol(z8, Decl(constDeclarations-es5.ts, 2, 5)) +>z8 : number >23 : number const z9 = 0, z10 :string = "", z11 = null; ->z9 : number, Symbol(z9, Decl(constDeclarations-es5.ts, 3, 5)) +>z9 : number >0 : number ->z10 : string, Symbol(z10, Decl(constDeclarations-es5.ts, 3, 13)) +>z10 : string >"" : string ->z11 : any, Symbol(z11, Decl(constDeclarations-es5.ts, 3, 31)) +>z11 : any >null : null diff --git a/tests/baselines/reference/constDeclarations-scopes2.symbols b/tests/baselines/reference/constDeclarations-scopes2.symbols new file mode 100644 index 0000000000000..15e466e8ea183 --- /dev/null +++ b/tests/baselines/reference/constDeclarations-scopes2.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/constDeclarations-scopes2.ts === + +// global +const c = "string"; +>c : Symbol(c, Decl(constDeclarations-scopes2.ts, 2, 5)) + +var n: number; +>n : Symbol(n, Decl(constDeclarations-scopes2.ts, 4, 3)) + +var b: boolean; +>b : Symbol(b, Decl(constDeclarations-scopes2.ts, 5, 3)) + +// for scope +for (const c = 0; c < 10; n = c ) { +>c : Symbol(c, Decl(constDeclarations-scopes2.ts, 8, 10)) +>c : Symbol(c, Decl(constDeclarations-scopes2.ts, 8, 10)) +>n : Symbol(n, Decl(constDeclarations-scopes2.ts, 4, 3)) +>c : Symbol(c, Decl(constDeclarations-scopes2.ts, 8, 10)) + + // for block + const c = false; +>c : Symbol(c, Decl(constDeclarations-scopes2.ts, 10, 9)) + + b = c; +>b : Symbol(b, Decl(constDeclarations-scopes2.ts, 5, 3)) +>c : Symbol(c, Decl(constDeclarations-scopes2.ts, 10, 9)) +} + + diff --git a/tests/baselines/reference/constDeclarations-scopes2.types b/tests/baselines/reference/constDeclarations-scopes2.types index 5a11a2610e1fa..a6bbdee7612ac 100644 --- a/tests/baselines/reference/constDeclarations-scopes2.types +++ b/tests/baselines/reference/constDeclarations-scopes2.types @@ -2,35 +2,35 @@ // global const c = "string"; ->c : string, Symbol(c, Decl(constDeclarations-scopes2.ts, 2, 5)) +>c : string >"string" : string var n: number; ->n : number, Symbol(n, Decl(constDeclarations-scopes2.ts, 4, 3)) +>n : number var b: boolean; ->b : boolean, Symbol(b, Decl(constDeclarations-scopes2.ts, 5, 3)) +>b : boolean // for scope for (const c = 0; c < 10; n = c ) { ->c : number, Symbol(c, Decl(constDeclarations-scopes2.ts, 8, 10)) +>c : number >0 : number >c < 10 : boolean ->c : number, Symbol(c, Decl(constDeclarations-scopes2.ts, 8, 10)) +>c : number >10 : number >n = c : number ->n : number, Symbol(n, Decl(constDeclarations-scopes2.ts, 4, 3)) ->c : number, Symbol(c, Decl(constDeclarations-scopes2.ts, 8, 10)) +>n : number +>c : number // for block const c = false; ->c : boolean, Symbol(c, Decl(constDeclarations-scopes2.ts, 10, 9)) +>c : boolean >false : boolean b = c; >b = c : boolean ->b : boolean, Symbol(b, Decl(constDeclarations-scopes2.ts, 5, 3)) ->c : boolean, Symbol(c, Decl(constDeclarations-scopes2.ts, 10, 9)) +>b : boolean +>c : boolean } diff --git a/tests/baselines/reference/constDeclarations.symbols b/tests/baselines/reference/constDeclarations.symbols new file mode 100644 index 0000000000000..01653620dd06e --- /dev/null +++ b/tests/baselines/reference/constDeclarations.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/constDeclarations.ts === + +// No error +const c1 = false; +>c1 : Symbol(c1, Decl(constDeclarations.ts, 2, 5)) + +const c2: number = 23; +>c2 : Symbol(c2, Decl(constDeclarations.ts, 3, 5)) + +const c3 = 0, c4 :string = "", c5 = null; +>c3 : Symbol(c3, Decl(constDeclarations.ts, 4, 5)) +>c4 : Symbol(c4, Decl(constDeclarations.ts, 4, 13)) +>c5 : Symbol(c5, Decl(constDeclarations.ts, 4, 30)) + + +for(const c4 = 0; c4 < 9; ) { break; } +>c4 : Symbol(c4, Decl(constDeclarations.ts, 7, 9)) +>c4 : Symbol(c4, Decl(constDeclarations.ts, 7, 9)) + + +for(const c5 = 0, c6 = 0; c5 < c6; ) { break; } +>c5 : Symbol(c5, Decl(constDeclarations.ts, 10, 9)) +>c6 : Symbol(c6, Decl(constDeclarations.ts, 10, 17)) +>c5 : Symbol(c5, Decl(constDeclarations.ts, 10, 9)) +>c6 : Symbol(c6, Decl(constDeclarations.ts, 10, 17)) + diff --git a/tests/baselines/reference/constDeclarations.types b/tests/baselines/reference/constDeclarations.types index f1a6490f60f3f..efdc534ef1ca0 100644 --- a/tests/baselines/reference/constDeclarations.types +++ b/tests/baselines/reference/constDeclarations.types @@ -2,36 +2,36 @@ // No error const c1 = false; ->c1 : boolean, Symbol(c1, Decl(constDeclarations.ts, 2, 5)) +>c1 : boolean >false : boolean const c2: number = 23; ->c2 : number, Symbol(c2, Decl(constDeclarations.ts, 3, 5)) +>c2 : number >23 : number const c3 = 0, c4 :string = "", c5 = null; ->c3 : number, Symbol(c3, Decl(constDeclarations.ts, 4, 5)) +>c3 : number >0 : number ->c4 : string, Symbol(c4, Decl(constDeclarations.ts, 4, 13)) +>c4 : string >"" : string ->c5 : any, Symbol(c5, Decl(constDeclarations.ts, 4, 30)) +>c5 : any >null : null for(const c4 = 0; c4 < 9; ) { break; } ->c4 : number, Symbol(c4, Decl(constDeclarations.ts, 7, 9)) +>c4 : number >0 : number >c4 < 9 : boolean ->c4 : number, Symbol(c4, Decl(constDeclarations.ts, 7, 9)) +>c4 : number >9 : number for(const c5 = 0, c6 = 0; c5 < c6; ) { break; } ->c5 : number, Symbol(c5, Decl(constDeclarations.ts, 10, 9)) +>c5 : number >0 : number ->c6 : number, Symbol(c6, Decl(constDeclarations.ts, 10, 17)) +>c6 : number >0 : number >c5 < c6 : boolean ->c5 : number, Symbol(c5, Decl(constDeclarations.ts, 10, 9)) ->c6 : number, Symbol(c6, Decl(constDeclarations.ts, 10, 17)) +>c5 : number +>c6 : number diff --git a/tests/baselines/reference/constDeclarations2.symbols b/tests/baselines/reference/constDeclarations2.symbols new file mode 100644 index 0000000000000..daeced31f77e1 --- /dev/null +++ b/tests/baselines/reference/constDeclarations2.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/constDeclarations2.ts === + +// No error +module M { +>M : Symbol(M, Decl(constDeclarations2.ts, 0, 0)) + + export const c1 = false; +>c1 : Symbol(c1, Decl(constDeclarations2.ts, 3, 16)) + + export const c2: number = 23; +>c2 : Symbol(c2, Decl(constDeclarations2.ts, 4, 16)) + + export const c3 = 0, c4 :string = "", c5 = null; +>c3 : Symbol(c3, Decl(constDeclarations2.ts, 5, 16)) +>c4 : Symbol(c4, Decl(constDeclarations2.ts, 5, 24)) +>c5 : Symbol(c5, Decl(constDeclarations2.ts, 5, 41)) +} + diff --git a/tests/baselines/reference/constDeclarations2.types b/tests/baselines/reference/constDeclarations2.types index a8587008d1a63..f8184b8f8e033 100644 --- a/tests/baselines/reference/constDeclarations2.types +++ b/tests/baselines/reference/constDeclarations2.types @@ -2,22 +2,22 @@ // No error module M { ->M : typeof M, Symbol(M, Decl(constDeclarations2.ts, 0, 0)) +>M : typeof M export const c1 = false; ->c1 : boolean, Symbol(c1, Decl(constDeclarations2.ts, 3, 16)) +>c1 : boolean >false : boolean export const c2: number = 23; ->c2 : number, Symbol(c2, Decl(constDeclarations2.ts, 4, 16)) +>c2 : number >23 : number export const c3 = 0, c4 :string = "", c5 = null; ->c3 : number, Symbol(c3, Decl(constDeclarations2.ts, 5, 16)) +>c3 : number >0 : number ->c4 : string, Symbol(c4, Decl(constDeclarations2.ts, 5, 24)) +>c4 : string >"" : string ->c5 : any, Symbol(c5, Decl(constDeclarations2.ts, 5, 41)) +>c5 : any >null : null } diff --git a/tests/baselines/reference/constEnumDeclarations.symbols b/tests/baselines/reference/constEnumDeclarations.symbols new file mode 100644 index 0000000000000..72b833e4faecf --- /dev/null +++ b/tests/baselines/reference/constEnumDeclarations.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/constEnumDeclarations.ts === + +const enum E { +>E : Symbol(E, Decl(constEnumDeclarations.ts, 0, 0)) + + A = 1, +>A : Symbol(E.A, Decl(constEnumDeclarations.ts, 1, 14)) + + B = 2, +>B : Symbol(E.B, Decl(constEnumDeclarations.ts, 2, 10)) + + C = A | B +>C : Symbol(E.C, Decl(constEnumDeclarations.ts, 3, 10)) +>A : Symbol(E.A, Decl(constEnumDeclarations.ts, 1, 14)) +>B : Symbol(E.B, Decl(constEnumDeclarations.ts, 2, 10)) +} + +const enum E2 { +>E2 : Symbol(E2, Decl(constEnumDeclarations.ts, 5, 1)) + + A = 1, +>A : Symbol(E2.A, Decl(constEnumDeclarations.ts, 7, 15)) + + B, +>B : Symbol(E2.B, Decl(constEnumDeclarations.ts, 8, 10)) + + C +>C : Symbol(E2.C, Decl(constEnumDeclarations.ts, 9, 6)) +} diff --git a/tests/baselines/reference/constEnumDeclarations.types b/tests/baselines/reference/constEnumDeclarations.types index 87fe95a3f1fc4..481c267366001 100644 --- a/tests/baselines/reference/constEnumDeclarations.types +++ b/tests/baselines/reference/constEnumDeclarations.types @@ -1,33 +1,33 @@ === tests/cases/compiler/constEnumDeclarations.ts === const enum E { ->E : E, Symbol(E, Decl(constEnumDeclarations.ts, 0, 0)) +>E : E A = 1, ->A : E, Symbol(E.A, Decl(constEnumDeclarations.ts, 1, 14)) +>A : E >1 : number B = 2, ->B : E, Symbol(E.B, Decl(constEnumDeclarations.ts, 2, 10)) +>B : E >2 : number C = A | B ->C : E, Symbol(E.C, Decl(constEnumDeclarations.ts, 3, 10)) +>C : E >A | B : number ->A : E, Symbol(E.A, Decl(constEnumDeclarations.ts, 1, 14)) ->B : E, Symbol(E.B, Decl(constEnumDeclarations.ts, 2, 10)) +>A : E +>B : E } const enum E2 { ->E2 : E2, Symbol(E2, Decl(constEnumDeclarations.ts, 5, 1)) +>E2 : E2 A = 1, ->A : E2, Symbol(E2.A, Decl(constEnumDeclarations.ts, 7, 15)) +>A : E2 >1 : number B, ->B : E2, Symbol(E2.B, Decl(constEnumDeclarations.ts, 8, 10)) +>B : E2 C ->C : E2, Symbol(E2.C, Decl(constEnumDeclarations.ts, 9, 6)) +>C : E2 } diff --git a/tests/baselines/reference/constEnumExternalModule.symbols b/tests/baselines/reference/constEnumExternalModule.symbols new file mode 100644 index 0000000000000..2502d6e4f28f3 --- /dev/null +++ b/tests/baselines/reference/constEnumExternalModule.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/m2.ts === +import A = require('m1') +>A : Symbol(A, Decl(m2.ts, 0, 0)) + +var v = A.V; +>v : Symbol(v, Decl(m2.ts, 1, 3)) +>A.V : Symbol(A.V, Decl(m1.ts, 0, 14)) +>A : Symbol(A, Decl(m2.ts, 0, 0)) +>V : Symbol(A.V, Decl(m1.ts, 0, 14)) + +=== tests/cases/compiler/m1.ts === +const enum E { +>E : Symbol(E, Decl(m1.ts, 0, 0)) + + V = 100 +>V : Symbol(E.V, Decl(m1.ts, 0, 14)) +} + +export = E +>E : Symbol(E, Decl(m1.ts, 0, 0)) + diff --git a/tests/baselines/reference/constEnumExternalModule.types b/tests/baselines/reference/constEnumExternalModule.types index 5a6f25477c14e..5d03b77b1b7ad 100644 --- a/tests/baselines/reference/constEnumExternalModule.types +++ b/tests/baselines/reference/constEnumExternalModule.types @@ -1,22 +1,22 @@ === tests/cases/compiler/m2.ts === import A = require('m1') ->A : typeof A, Symbol(A, Decl(m2.ts, 0, 0)) +>A : typeof A var v = A.V; ->v : A, Symbol(v, Decl(m2.ts, 1, 3)) ->A.V : A, Symbol(A.V, Decl(m1.ts, 0, 14)) ->A : typeof A, Symbol(A, Decl(m2.ts, 0, 0)) ->V : A, Symbol(A.V, Decl(m1.ts, 0, 14)) +>v : A +>A.V : A +>A : typeof A +>V : A === tests/cases/compiler/m1.ts === const enum E { ->E : E, Symbol(E, Decl(m1.ts, 0, 0)) +>E : E V = 100 ->V : E, Symbol(E.V, Decl(m1.ts, 0, 14)) +>V : E >100 : number } export = E ->E : E, Symbol(E, Decl(m1.ts, 0, 0)) +>E : E diff --git a/tests/baselines/reference/constEnumOnlyModuleMerging.symbols b/tests/baselines/reference/constEnumOnlyModuleMerging.symbols new file mode 100644 index 0000000000000..093ce28ab944c --- /dev/null +++ b/tests/baselines/reference/constEnumOnlyModuleMerging.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/constEnumOnlyModuleMerging.ts === +module Outer { +>Outer : Symbol(Outer, Decl(constEnumOnlyModuleMerging.ts, 0, 0), Decl(constEnumOnlyModuleMerging.ts, 2, 1)) + + export var x = 1; +>x : Symbol(x, Decl(constEnumOnlyModuleMerging.ts, 1, 14)) +} + +module Outer { +>Outer : Symbol(Outer, Decl(constEnumOnlyModuleMerging.ts, 0, 0), Decl(constEnumOnlyModuleMerging.ts, 2, 1)) + + export const enum A { X } +>A : Symbol(A, Decl(constEnumOnlyModuleMerging.ts, 4, 14)) +>X : Symbol(A.X, Decl(constEnumOnlyModuleMerging.ts, 5, 25)) +} + +module B { +>B : Symbol(B, Decl(constEnumOnlyModuleMerging.ts, 6, 1)) + + import O = Outer; +>O : Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 8, 10)) +>Outer : Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 0, 0), Decl(constEnumOnlyModuleMerging.ts, 2, 1)) + + var x = O.A.X; +>x : Symbol(x, Decl(constEnumOnlyModuleMerging.ts, 10, 7)) +>O.A.X : Symbol(O.A.X, Decl(constEnumOnlyModuleMerging.ts, 5, 25)) +>O.A : Symbol(O.A, Decl(constEnumOnlyModuleMerging.ts, 4, 14)) +>O : Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 8, 10)) +>A : Symbol(O.A, Decl(constEnumOnlyModuleMerging.ts, 4, 14)) +>X : Symbol(O.A.X, Decl(constEnumOnlyModuleMerging.ts, 5, 25)) + + var y = O.x; +>y : Symbol(y, Decl(constEnumOnlyModuleMerging.ts, 11, 7)) +>O.x : Symbol(O.x, Decl(constEnumOnlyModuleMerging.ts, 1, 14)) +>O : Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 8, 10)) +>x : Symbol(O.x, Decl(constEnumOnlyModuleMerging.ts, 1, 14)) +} diff --git a/tests/baselines/reference/constEnumOnlyModuleMerging.types b/tests/baselines/reference/constEnumOnlyModuleMerging.types index a1782e32589ec..452c0f46add89 100644 --- a/tests/baselines/reference/constEnumOnlyModuleMerging.types +++ b/tests/baselines/reference/constEnumOnlyModuleMerging.types @@ -1,38 +1,38 @@ === tests/cases/compiler/constEnumOnlyModuleMerging.ts === module Outer { ->Outer : typeof Outer, Symbol(Outer, Decl(constEnumOnlyModuleMerging.ts, 0, 0), Decl(constEnumOnlyModuleMerging.ts, 2, 1)) +>Outer : typeof Outer export var x = 1; ->x : number, Symbol(x, Decl(constEnumOnlyModuleMerging.ts, 1, 14)) +>x : number >1 : number } module Outer { ->Outer : typeof Outer, Symbol(Outer, Decl(constEnumOnlyModuleMerging.ts, 0, 0), Decl(constEnumOnlyModuleMerging.ts, 2, 1)) +>Outer : typeof Outer export const enum A { X } ->A : A, Symbol(A, Decl(constEnumOnlyModuleMerging.ts, 4, 14)) ->X : A, Symbol(A.X, Decl(constEnumOnlyModuleMerging.ts, 5, 25)) +>A : A +>X : A } module B { ->B : typeof B, Symbol(B, Decl(constEnumOnlyModuleMerging.ts, 6, 1)) +>B : typeof B import O = Outer; ->O : typeof O, Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 8, 10)) ->Outer : typeof O, Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 0, 0), Decl(constEnumOnlyModuleMerging.ts, 2, 1)) +>O : typeof O +>Outer : typeof O var x = O.A.X; ->x : O.A, Symbol(x, Decl(constEnumOnlyModuleMerging.ts, 10, 7)) ->O.A.X : O.A, Symbol(O.A.X, Decl(constEnumOnlyModuleMerging.ts, 5, 25)) ->O.A : typeof O.A, Symbol(O.A, Decl(constEnumOnlyModuleMerging.ts, 4, 14)) ->O : typeof O, Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 8, 10)) ->A : typeof O.A, Symbol(O.A, Decl(constEnumOnlyModuleMerging.ts, 4, 14)) ->X : O.A, Symbol(O.A.X, Decl(constEnumOnlyModuleMerging.ts, 5, 25)) +>x : O.A +>O.A.X : O.A +>O.A : typeof O.A +>O : typeof O +>A : typeof O.A +>X : O.A var y = O.x; ->y : number, Symbol(y, Decl(constEnumOnlyModuleMerging.ts, 11, 7)) ->O.x : number, Symbol(O.x, Decl(constEnumOnlyModuleMerging.ts, 1, 14)) ->O : typeof O, Symbol(O, Decl(constEnumOnlyModuleMerging.ts, 8, 10)) ->x : number, Symbol(O.x, Decl(constEnumOnlyModuleMerging.ts, 1, 14)) +>y : number +>O.x : number +>O : typeof O +>x : number } diff --git a/tests/baselines/reference/constEnums.symbols b/tests/baselines/reference/constEnums.symbols new file mode 100644 index 0000000000000..9f88fb6349333 --- /dev/null +++ b/tests/baselines/reference/constEnums.symbols @@ -0,0 +1,524 @@ +=== tests/cases/compiler/constEnums.ts === +const enum Enum1 { +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) + + A0 = 100, +>A0 : Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) +} + +const enum Enum1 { +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) + + // correct cases + A, +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) + + B, +>B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) + + C = 10, +>C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) + + D = A | B, +>D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) + + E = A | 1, +>E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) + + F = 1 | A, +>F : Symbol(Enum1.F, Decl(constEnums.ts, 10, 14)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) + + G = (1 & 1), +>G : Symbol(Enum1.G, Decl(constEnums.ts, 11, 14)) + + H = ~(A | B), +>H : Symbol(Enum1.H, Decl(constEnums.ts, 12, 16)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) + + I = A >>> 1, +>I : Symbol(Enum1.I, Decl(constEnums.ts, 13, 17)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) + + J = 1 & A, +>J : Symbol(Enum1.J, Decl(constEnums.ts, 14, 16)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) + + K = ~(1 | 5), +>K : Symbol(Enum1.K, Decl(constEnums.ts, 15, 14)) + + L = ~D, +>L : Symbol(Enum1.L, Decl(constEnums.ts, 16, 17)) +>D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) + + M = E << B, +>M : Symbol(Enum1.M, Decl(constEnums.ts, 17, 11)) +>E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) + + N = E << 1, +>N : Symbol(Enum1.N, Decl(constEnums.ts, 18, 15)) +>E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) + + O = E >> B, +>O : Symbol(Enum1.O, Decl(constEnums.ts, 19, 15)) +>E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) + + P = E >> 1, +>P : Symbol(Enum1.P, Decl(constEnums.ts, 20, 15)) +>E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) + + Q = -D, +>Q : Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15)) +>D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) + + R = C & 5, +>R : Symbol(Enum1.R, Decl(constEnums.ts, 22, 11)) +>C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) + + S = 5 & C, +>S : Symbol(Enum1.S, Decl(constEnums.ts, 23, 14)) +>C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) + + T = C | D, +>T : Symbol(Enum1.T, Decl(constEnums.ts, 24, 14)) +>C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) + + U = C | 1, +>U : Symbol(Enum1.U, Decl(constEnums.ts, 25, 14)) +>C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) + + V = 10 | D, +>V : Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) +>D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) + + W = Enum1.V, +>W : Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) +>Enum1.V : Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>V : Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) + + // correct cases: reference to the enum member from different enum declaration + W1 = A0, +>W1 : Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16)) +>A0 : Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) + + W2 = Enum1.A0, +>W2 : Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12)) +>Enum1.A0 : Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>A0 : Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) + + W3 = Enum1["A0"], +>W3 : Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>"A0" : Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) + + W4 = Enum1["W"], +>W4 : Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>"W" : Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) +} + + +module A { +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) + + export module B { +>B : Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) + + export module C { +>C : Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) + + export const enum E { +>E : Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) + + V1 = 1, +>V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) + + V2 = A.B.C.E.V1 | 100 +>V2 : Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>A.B.C.E.V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>A.B.C.E : Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>A.B.C : Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>A.B : Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) + } + } + } +} + +module A { +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) + + export module B { +>B : Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) + + export module C { +>C : Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) + + export const enum E { +>E : Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) + + V3 = A.B.C.E["V2"] & 200, +>V3 : Symbol(I.V3, Decl(constEnums.ts, 52, 33)) +>A.B.C.E : Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>A.B.C : Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>A.B : Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>"V2" : Symbol(I.V2, Decl(constEnums.ts, 42, 23)) + } + } + } +} + +module A1 { +>A1 : Symbol(A1, Decl(constEnums.ts, 57, 1)) + + export module B { +>B : Symbol(B, Decl(constEnums.ts, 59, 11)) + + export module C { +>C : Symbol(C, Decl(constEnums.ts, 60, 21)) + + export const enum E { +>E : Symbol(E, Decl(constEnums.ts, 61, 25)) + + V1 = 10, +>V1 : Symbol(E.V1, Decl(constEnums.ts, 62, 33)) + + V2 = 110, +>V2 : Symbol(E.V2, Decl(constEnums.ts, 63, 24)) + } + } + } +} + +module A2 { +>A2 : Symbol(A2, Decl(constEnums.ts, 68, 1)) + + export module B { +>B : Symbol(B, Decl(constEnums.ts, 70, 11)) + + export module C { +>C : Symbol(C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) + + export const enum E { +>E : Symbol(E, Decl(constEnums.ts, 72, 25)) + + V1 = 10, +>V1 : Symbol(E.V1, Decl(constEnums.ts, 73, 33)) + + V2 = 110, +>V2 : Symbol(E.V2, Decl(constEnums.ts, 74, 24)) + } + } + // module C will be classified as value + export module C { +>C : Symbol(C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) + + var x = 1 +>x : Symbol(x, Decl(constEnums.ts, 80, 15)) + } + } +} + +import I = A.B.C.E; +>I : Symbol(I, Decl(constEnums.ts, 83, 1)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) + +import I1 = A1.B; +>I1 : Symbol(I1, Decl(constEnums.ts, 85, 19)) +>A1 : Symbol(A1, Decl(constEnums.ts, 57, 1)) +>B : Symbol(I1, Decl(constEnums.ts, 59, 11)) + +import I2 = A2.B; +>I2 : Symbol(I2, Decl(constEnums.ts, 86, 17)) +>A2 : Symbol(A2, Decl(constEnums.ts, 68, 1)) +>B : Symbol(I2, Decl(constEnums.ts, 70, 11)) + +function foo0(e: I): void { +>foo0 : Symbol(foo0, Decl(constEnums.ts, 87, 17)) +>e : Symbol(e, Decl(constEnums.ts, 89, 14)) +>I : Symbol(I, Decl(constEnums.ts, 83, 1)) + + if (e === I.V1) { +>e : Symbol(e, Decl(constEnums.ts, 89, 14)) +>I.V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>I : Symbol(I, Decl(constEnums.ts, 83, 1)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) + } + else if (e === I.V2) { +>e : Symbol(e, Decl(constEnums.ts, 89, 14)) +>I.V2 : Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>I : Symbol(I, Decl(constEnums.ts, 83, 1)) +>V2 : Symbol(I.V2, Decl(constEnums.ts, 42, 23)) + } +} + +function foo1(e: I1.C.E): void { +>foo1 : Symbol(foo1, Decl(constEnums.ts, 94, 1)) +>e : Symbol(e, Decl(constEnums.ts, 96, 14)) +>I1 : Symbol(I1, Decl(constEnums.ts, 85, 19)) +>C : Symbol(I1.C, Decl(constEnums.ts, 60, 21)) +>E : Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) + + if (e === I1.C.E.V1) { +>e : Symbol(e, Decl(constEnums.ts, 96, 14)) +>I1.C.E.V1 : Symbol(I1.C.E.V1, Decl(constEnums.ts, 62, 33)) +>I1.C.E : Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) +>I1.C : Symbol(I1.C, Decl(constEnums.ts, 60, 21)) +>I1 : Symbol(I1, Decl(constEnums.ts, 85, 19)) +>C : Symbol(I1.C, Decl(constEnums.ts, 60, 21)) +>E : Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) +>V1 : Symbol(I1.C.E.V1, Decl(constEnums.ts, 62, 33)) + } + else if (e === I1.C.E.V2) { +>e : Symbol(e, Decl(constEnums.ts, 96, 14)) +>I1.C.E.V2 : Symbol(I1.C.E.V2, Decl(constEnums.ts, 63, 24)) +>I1.C.E : Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) +>I1.C : Symbol(I1.C, Decl(constEnums.ts, 60, 21)) +>I1 : Symbol(I1, Decl(constEnums.ts, 85, 19)) +>C : Symbol(I1.C, Decl(constEnums.ts, 60, 21)) +>E : Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) +>V2 : Symbol(I1.C.E.V2, Decl(constEnums.ts, 63, 24)) + } +} + +function foo2(e: I2.C.E): void { +>foo2 : Symbol(foo2, Decl(constEnums.ts, 101, 1)) +>e : Symbol(e, Decl(constEnums.ts, 103, 14)) +>I2 : Symbol(I2, Decl(constEnums.ts, 86, 17)) +>C : Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>E : Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) + + if (e === I2.C.E.V1) { +>e : Symbol(e, Decl(constEnums.ts, 103, 14)) +>I2.C.E.V1 : Symbol(I2.C.E.V1, Decl(constEnums.ts, 73, 33)) +>I2.C.E : Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) +>I2.C : Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>I2 : Symbol(I2, Decl(constEnums.ts, 86, 17)) +>C : Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>E : Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) +>V1 : Symbol(I2.C.E.V1, Decl(constEnums.ts, 73, 33)) + } + else if (e === I2.C.E.V2) { +>e : Symbol(e, Decl(constEnums.ts, 103, 14)) +>I2.C.E.V2 : Symbol(I2.C.E.V2, Decl(constEnums.ts, 74, 24)) +>I2.C.E : Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) +>I2.C : Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>I2 : Symbol(I2, Decl(constEnums.ts, 86, 17)) +>C : Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>E : Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) +>V2 : Symbol(I2.C.E.V2, Decl(constEnums.ts, 74, 24)) + } +} + + +function foo(x: Enum1) { +>foo : Symbol(foo, Decl(constEnums.ts, 108, 1)) +>x : Symbol(x, Decl(constEnums.ts, 111, 13)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) + + switch (x) { +>x : Symbol(x, Decl(constEnums.ts, 111, 13)) + + case Enum1.A: +>Enum1.A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) + + case Enum1.B: +>Enum1.B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>B : Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) + + case Enum1.C: +>Enum1.C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>C : Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) + + case Enum1.D: +>Enum1.D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>D : Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) + + case Enum1.E: +>Enum1.E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>E : Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) + + case Enum1.F: +>Enum1.F : Symbol(Enum1.F, Decl(constEnums.ts, 10, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>F : Symbol(Enum1.F, Decl(constEnums.ts, 10, 14)) + + case Enum1.G: +>Enum1.G : Symbol(Enum1.G, Decl(constEnums.ts, 11, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>G : Symbol(Enum1.G, Decl(constEnums.ts, 11, 14)) + + case Enum1.H: +>Enum1.H : Symbol(Enum1.H, Decl(constEnums.ts, 12, 16)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>H : Symbol(Enum1.H, Decl(constEnums.ts, 12, 16)) + + case Enum1.I: +>Enum1.I : Symbol(Enum1.I, Decl(constEnums.ts, 13, 17)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>I : Symbol(Enum1.I, Decl(constEnums.ts, 13, 17)) + + case Enum1.J: +>Enum1.J : Symbol(Enum1.J, Decl(constEnums.ts, 14, 16)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>J : Symbol(Enum1.J, Decl(constEnums.ts, 14, 16)) + + case Enum1.K: +>Enum1.K : Symbol(Enum1.K, Decl(constEnums.ts, 15, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>K : Symbol(Enum1.K, Decl(constEnums.ts, 15, 14)) + + case Enum1.L: +>Enum1.L : Symbol(Enum1.L, Decl(constEnums.ts, 16, 17)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>L : Symbol(Enum1.L, Decl(constEnums.ts, 16, 17)) + + case Enum1.M: +>Enum1.M : Symbol(Enum1.M, Decl(constEnums.ts, 17, 11)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>M : Symbol(Enum1.M, Decl(constEnums.ts, 17, 11)) + + case Enum1.N: +>Enum1.N : Symbol(Enum1.N, Decl(constEnums.ts, 18, 15)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>N : Symbol(Enum1.N, Decl(constEnums.ts, 18, 15)) + + case Enum1.O: +>Enum1.O : Symbol(Enum1.O, Decl(constEnums.ts, 19, 15)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>O : Symbol(Enum1.O, Decl(constEnums.ts, 19, 15)) + + case Enum1.P: +>Enum1.P : Symbol(Enum1.P, Decl(constEnums.ts, 20, 15)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>P : Symbol(Enum1.P, Decl(constEnums.ts, 20, 15)) + + case Enum1.Q: +>Enum1.Q : Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>Q : Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15)) + + case Enum1.R: +>Enum1.R : Symbol(Enum1.R, Decl(constEnums.ts, 22, 11)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>R : Symbol(Enum1.R, Decl(constEnums.ts, 22, 11)) + + case Enum1.S: +>Enum1.S : Symbol(Enum1.S, Decl(constEnums.ts, 23, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>S : Symbol(Enum1.S, Decl(constEnums.ts, 23, 14)) + + case Enum1["T"]: +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>"T" : Symbol(Enum1.T, Decl(constEnums.ts, 24, 14)) + + case Enum1.U: +>Enum1.U : Symbol(Enum1.U, Decl(constEnums.ts, 25, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>U : Symbol(Enum1.U, Decl(constEnums.ts, 25, 14)) + + case Enum1.V: +>Enum1.V : Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>V : Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) + + case Enum1.W: +>Enum1.W : Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>W : Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) + + case Enum1.W1: +>Enum1.W1 : Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>W1 : Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16)) + + case Enum1.W2: +>Enum1.W2 : Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>W2 : Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12)) + + case Enum1.W3: +>Enum1.W3 : Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>W3 : Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18)) + + case Enum1.W4: +>Enum1.W4 : Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21)) +>Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>W4 : Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21)) + + break; + } +} + +function bar(e: A.B.C.E): number { +>bar : Symbol(bar, Decl(constEnums.ts, 142, 1)) +>e : Symbol(e, Decl(constEnums.ts, 144, 13)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) + + switch (e) { +>e : Symbol(e, Decl(constEnums.ts, 144, 13)) + + case A.B.C.E.V1: return 1; +>A.B.C.E.V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>A.B.C.E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>A.B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 41, 33)) + + case A.B.C.E.V2: return 1; +>A.B.C.E.V2 : Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>A.B.C.E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>A.B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>V2 : Symbol(I.V2, Decl(constEnums.ts, 42, 23)) + + case A.B.C.E.V3: return 1; +>A.B.C.E.V3 : Symbol(I.V3, Decl(constEnums.ts, 52, 33)) +>A.B.C.E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>A.B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>A : Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>E : Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>V3 : Symbol(I.V3, Decl(constEnums.ts, 52, 33)) + } +} diff --git a/tests/baselines/reference/constEnums.types b/tests/baselines/reference/constEnums.types index b16f3964fbec2..a59bd2d012a6d 100644 --- a/tests/baselines/reference/constEnums.types +++ b/tests/baselines/reference/constEnums.types @@ -1,73 +1,73 @@ === tests/cases/compiler/constEnums.ts === const enum Enum1 { ->Enum1 : Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>Enum1 : Enum1 A0 = 100, ->A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) +>A0 : Enum1 >100 : number } const enum Enum1 { ->Enum1 : Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>Enum1 : Enum1 // correct cases A, ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>A : Enum1 B, ->B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>B : Enum1 C = 10, ->C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>C : Enum1 >10 : number D = A | B, ->D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>D : Enum1 >A | B : number ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) ->B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>A : Enum1 +>B : Enum1 E = A | 1, ->E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>E : Enum1 >A | 1 : number ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>A : Enum1 >1 : number F = 1 | A, ->F : Enum1, Symbol(Enum1.F, Decl(constEnums.ts, 10, 14)) +>F : Enum1 >1 | A : number >1 : number ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>A : Enum1 G = (1 & 1), ->G : Enum1, Symbol(Enum1.G, Decl(constEnums.ts, 11, 14)) +>G : Enum1 >(1 & 1) : number >1 & 1 : number >1 : number >1 : number H = ~(A | B), ->H : Enum1, Symbol(Enum1.H, Decl(constEnums.ts, 12, 16)) +>H : Enum1 >~(A | B) : number >(A | B) : number >A | B : number ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) ->B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>A : Enum1 +>B : Enum1 I = A >>> 1, ->I : Enum1, Symbol(Enum1.I, Decl(constEnums.ts, 13, 17)) +>I : Enum1 >A >>> 1 : number ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>A : Enum1 >1 : number J = 1 & A, ->J : Enum1, Symbol(Enum1.J, Decl(constEnums.ts, 14, 16)) +>J : Enum1 >1 & A : number >1 : number ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>A : Enum1 K = ~(1 | 5), ->K : Enum1, Symbol(Enum1.K, Decl(constEnums.ts, 15, 14)) +>K : Enum1 >~(1 | 5) : number >(1 | 5) : number >1 | 5 : number @@ -75,128 +75,128 @@ const enum Enum1 { >5 : number L = ~D, ->L : Enum1, Symbol(Enum1.L, Decl(constEnums.ts, 16, 17)) +>L : Enum1 >~D : number ->D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>D : Enum1 M = E << B, ->M : Enum1, Symbol(Enum1.M, Decl(constEnums.ts, 17, 11)) +>M : Enum1 >E << B : number ->E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) ->B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>E : Enum1 +>B : Enum1 N = E << 1, ->N : Enum1, Symbol(Enum1.N, Decl(constEnums.ts, 18, 15)) +>N : Enum1 >E << 1 : number ->E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>E : Enum1 >1 : number O = E >> B, ->O : Enum1, Symbol(Enum1.O, Decl(constEnums.ts, 19, 15)) +>O : Enum1 >E >> B : number ->E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) ->B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>E : Enum1 +>B : Enum1 P = E >> 1, ->P : Enum1, Symbol(Enum1.P, Decl(constEnums.ts, 20, 15)) +>P : Enum1 >E >> 1 : number ->E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>E : Enum1 >1 : number Q = -D, ->Q : Enum1, Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15)) +>Q : Enum1 >-D : number ->D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>D : Enum1 R = C & 5, ->R : Enum1, Symbol(Enum1.R, Decl(constEnums.ts, 22, 11)) +>R : Enum1 >C & 5 : number ->C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>C : Enum1 >5 : number S = 5 & C, ->S : Enum1, Symbol(Enum1.S, Decl(constEnums.ts, 23, 14)) +>S : Enum1 >5 & C : number >5 : number ->C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>C : Enum1 T = C | D, ->T : Enum1, Symbol(Enum1.T, Decl(constEnums.ts, 24, 14)) +>T : Enum1 >C | D : number ->C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) ->D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>C : Enum1 +>D : Enum1 U = C | 1, ->U : Enum1, Symbol(Enum1.U, Decl(constEnums.ts, 25, 14)) +>U : Enum1 >C | 1 : number ->C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>C : Enum1 >1 : number V = 10 | D, ->V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) +>V : Enum1 >10 | D : number >10 : number ->D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>D : Enum1 W = Enum1.V, ->W : Enum1, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) ->Enum1.V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) +>W : Enum1 +>Enum1.V : Enum1 +>Enum1 : typeof Enum1 +>V : Enum1 // correct cases: reference to the enum member from different enum declaration W1 = A0, ->W1 : Enum1, Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16)) ->A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) +>W1 : Enum1 +>A0 : Enum1 W2 = Enum1.A0, ->W2 : Enum1, Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12)) ->Enum1.A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) +>W2 : Enum1 +>Enum1.A0 : Enum1 +>Enum1 : typeof Enum1 +>A0 : Enum1 W3 = Enum1["A0"], ->W3 : Enum1, Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18)) +>W3 : Enum1 >Enum1["A0"] : Enum1 ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->"A0" : string, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18)) +>Enum1 : typeof Enum1 +>"A0" : string W4 = Enum1["W"], ->W4 : Enum1, Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21)) +>W4 : Enum1 >Enum1["W"] : Enum1 ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->"W" : string, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) +>Enum1 : typeof Enum1 +>"W" : string } module A { ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>B : typeof B export module C { ->C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>C : typeof C export const enum E { ->E : E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>E : E V1 = 1, ->V1 : E, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>V1 : E >1 : number V2 = A.B.C.E.V1 | 100 ->V2 : E, Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>V2 : E >A.B.C.E.V1 | 100 : number ->A.B.C.E.V1 : E, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) ->A.B.C.E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->A.B.C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->A.B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->V1 : E, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>A.B.C.E.V1 : E +>A.B.C.E : typeof E +>A.B.C : typeof C +>A.B : typeof B +>A : typeof A +>B : typeof B +>C : typeof C +>E : typeof E +>V1 : E >100 : number } } @@ -204,29 +204,29 @@ module A { } module A { ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) +>B : typeof B export module C { ->C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) +>C : typeof C export const enum E { ->E : E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>E : E V3 = A.B.C.E["V2"] & 200, ->V3 : E, Symbol(I.V3, Decl(constEnums.ts, 52, 33)) +>V3 : E >A.B.C.E["V2"] & 200 : number >A.B.C.E["V2"] : E ->A.B.C.E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->A.B.C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->A.B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->"V2" : string, Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>A.B.C.E : typeof E +>A.B.C : typeof C +>A.B : typeof B +>A : typeof A +>B : typeof B +>C : typeof C +>E : typeof E +>"V2" : string >200 : number } } @@ -234,23 +234,23 @@ module A { } module A1 { ->A1 : typeof A1, Symbol(A1, Decl(constEnums.ts, 57, 1)) +>A1 : typeof A1 export module B { ->B : typeof B, Symbol(B, Decl(constEnums.ts, 59, 11)) +>B : typeof B export module C { ->C : typeof C, Symbol(C, Decl(constEnums.ts, 60, 21)) +>C : typeof C export const enum E { ->E : E, Symbol(E, Decl(constEnums.ts, 61, 25)) +>E : E V1 = 10, ->V1 : E, Symbol(E.V1, Decl(constEnums.ts, 62, 33)) +>V1 : E >10 : number V2 = 110, ->V2 : E, Symbol(E.V2, Decl(constEnums.ts, 63, 24)) +>V2 : E >110 : number } } @@ -258,330 +258,330 @@ module A1 { } module A2 { ->A2 : typeof A2, Symbol(A2, Decl(constEnums.ts, 68, 1)) +>A2 : typeof A2 export module B { ->B : typeof B, Symbol(B, Decl(constEnums.ts, 70, 11)) +>B : typeof B export module C { ->C : typeof C, Symbol(C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>C : typeof C export const enum E { ->E : E, Symbol(E, Decl(constEnums.ts, 72, 25)) +>E : E V1 = 10, ->V1 : E, Symbol(E.V1, Decl(constEnums.ts, 73, 33)) +>V1 : E >10 : number V2 = 110, ->V2 : E, Symbol(E.V2, Decl(constEnums.ts, 74, 24)) +>V2 : E >110 : number } } // module C will be classified as value export module C { ->C : typeof C, Symbol(C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) +>C : typeof C var x = 1 ->x : number, Symbol(x, Decl(constEnums.ts, 80, 15)) +>x : number >1 : number } } } import I = A.B.C.E; ->I : typeof I, Symbol(I, Decl(constEnums.ts, 83, 1)) ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>I : typeof I +>A : typeof A +>B : typeof A.B +>C : typeof A.B.C +>E : I import I1 = A1.B; ->I1 : typeof I1, Symbol(I1, Decl(constEnums.ts, 85, 19)) ->A1 : typeof A1, Symbol(A1, Decl(constEnums.ts, 57, 1)) ->B : typeof I1, Symbol(I1, Decl(constEnums.ts, 59, 11)) +>I1 : typeof I1 +>A1 : typeof A1 +>B : typeof I1 import I2 = A2.B; ->I2 : typeof I2, Symbol(I2, Decl(constEnums.ts, 86, 17)) ->A2 : typeof A2, Symbol(A2, Decl(constEnums.ts, 68, 1)) ->B : typeof I2, Symbol(I2, Decl(constEnums.ts, 70, 11)) +>I2 : typeof I2 +>A2 : typeof A2 +>B : typeof I2 function foo0(e: I): void { ->foo0 : (e: I) => void, Symbol(foo0, Decl(constEnums.ts, 87, 17)) ->e : I, Symbol(e, Decl(constEnums.ts, 89, 14)) ->I : I, Symbol(I, Decl(constEnums.ts, 83, 1)) +>foo0 : (e: I) => void +>e : I +>I : I if (e === I.V1) { >e === I.V1 : boolean ->e : I, Symbol(e, Decl(constEnums.ts, 89, 14)) ->I.V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) ->I : typeof I, Symbol(I, Decl(constEnums.ts, 83, 1)) ->V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>e : I +>I.V1 : I +>I : typeof I +>V1 : I } else if (e === I.V2) { >e === I.V2 : boolean ->e : I, Symbol(e, Decl(constEnums.ts, 89, 14)) ->I.V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23)) ->I : typeof I, Symbol(I, Decl(constEnums.ts, 83, 1)) ->V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>e : I +>I.V2 : I +>I : typeof I +>V2 : I } } function foo1(e: I1.C.E): void { ->foo1 : (e: I1.C.E) => void, Symbol(foo1, Decl(constEnums.ts, 94, 1)) ->e : I1.C.E, Symbol(e, Decl(constEnums.ts, 96, 14)) ->I1 : any, Symbol(I1, Decl(constEnums.ts, 85, 19)) ->C : any, Symbol(I1.C, Decl(constEnums.ts, 60, 21)) ->E : I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) +>foo1 : (e: I1.C.E) => void +>e : I1.C.E +>I1 : any +>C : any +>E : I1.C.E if (e === I1.C.E.V1) { >e === I1.C.E.V1 : boolean ->e : I1.C.E, Symbol(e, Decl(constEnums.ts, 96, 14)) ->I1.C.E.V1 : I1.C.E, Symbol(I1.C.E.V1, Decl(constEnums.ts, 62, 33)) ->I1.C.E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) ->I1.C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21)) ->I1 : typeof I1, Symbol(I1, Decl(constEnums.ts, 85, 19)) ->C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21)) ->E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) ->V1 : I1.C.E, Symbol(I1.C.E.V1, Decl(constEnums.ts, 62, 33)) +>e : I1.C.E +>I1.C.E.V1 : I1.C.E +>I1.C.E : typeof I1.C.E +>I1.C : typeof I1.C +>I1 : typeof I1 +>C : typeof I1.C +>E : typeof I1.C.E +>V1 : I1.C.E } else if (e === I1.C.E.V2) { >e === I1.C.E.V2 : boolean ->e : I1.C.E, Symbol(e, Decl(constEnums.ts, 96, 14)) ->I1.C.E.V2 : I1.C.E, Symbol(I1.C.E.V2, Decl(constEnums.ts, 63, 24)) ->I1.C.E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) ->I1.C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21)) ->I1 : typeof I1, Symbol(I1, Decl(constEnums.ts, 85, 19)) ->C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21)) ->E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25)) ->V2 : I1.C.E, Symbol(I1.C.E.V2, Decl(constEnums.ts, 63, 24)) +>e : I1.C.E +>I1.C.E.V2 : I1.C.E +>I1.C.E : typeof I1.C.E +>I1.C : typeof I1.C +>I1 : typeof I1 +>C : typeof I1.C +>E : typeof I1.C.E +>V2 : I1.C.E } } function foo2(e: I2.C.E): void { ->foo2 : (e: I2.C.E) => void, Symbol(foo2, Decl(constEnums.ts, 101, 1)) ->e : I2.C.E, Symbol(e, Decl(constEnums.ts, 103, 14)) ->I2 : any, Symbol(I2, Decl(constEnums.ts, 86, 17)) ->C : any, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) ->E : I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) +>foo2 : (e: I2.C.E) => void +>e : I2.C.E +>I2 : any +>C : any +>E : I2.C.E if (e === I2.C.E.V1) { >e === I2.C.E.V1 : boolean ->e : I2.C.E, Symbol(e, Decl(constEnums.ts, 103, 14)) ->I2.C.E.V1 : I2.C.E, Symbol(I2.C.E.V1, Decl(constEnums.ts, 73, 33)) ->I2.C.E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) ->I2.C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) ->I2 : typeof I2, Symbol(I2, Decl(constEnums.ts, 86, 17)) ->C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) ->E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) ->V1 : I2.C.E, Symbol(I2.C.E.V1, Decl(constEnums.ts, 73, 33)) +>e : I2.C.E +>I2.C.E.V1 : I2.C.E +>I2.C.E : typeof I2.C.E +>I2.C : typeof I2.C +>I2 : typeof I2 +>C : typeof I2.C +>E : typeof I2.C.E +>V1 : I2.C.E } else if (e === I2.C.E.V2) { >e === I2.C.E.V2 : boolean ->e : I2.C.E, Symbol(e, Decl(constEnums.ts, 103, 14)) ->I2.C.E.V2 : I2.C.E, Symbol(I2.C.E.V2, Decl(constEnums.ts, 74, 24)) ->I2.C.E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) ->I2.C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) ->I2 : typeof I2, Symbol(I2, Decl(constEnums.ts, 86, 17)) ->C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9)) ->E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25)) ->V2 : I2.C.E, Symbol(I2.C.E.V2, Decl(constEnums.ts, 74, 24)) +>e : I2.C.E +>I2.C.E.V2 : I2.C.E +>I2.C.E : typeof I2.C.E +>I2.C : typeof I2.C +>I2 : typeof I2 +>C : typeof I2.C +>E : typeof I2.C.E +>V2 : I2.C.E } } function foo(x: Enum1) { ->foo : (x: Enum1) => void, Symbol(foo, Decl(constEnums.ts, 108, 1)) ->x : Enum1, Symbol(x, Decl(constEnums.ts, 111, 13)) ->Enum1 : Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) +>foo : (x: Enum1) => void +>x : Enum1 +>Enum1 : Enum1 switch (x) { ->x : Enum1, Symbol(x, Decl(constEnums.ts, 111, 13)) +>x : Enum1 case Enum1.A: ->Enum1.A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) +>Enum1.A : Enum1 +>Enum1 : typeof Enum1 +>A : Enum1 case Enum1.B: ->Enum1.B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6)) +>Enum1.B : Enum1 +>Enum1 : typeof Enum1 +>B : Enum1 case Enum1.C: ->Enum1.C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6)) +>Enum1.C : Enum1 +>Enum1 : typeof Enum1 +>C : Enum1 case Enum1.D: ->Enum1.D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11)) +>Enum1.D : Enum1 +>Enum1 : typeof Enum1 +>D : Enum1 case Enum1.E: ->Enum1.E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14)) +>Enum1.E : Enum1 +>Enum1 : typeof Enum1 +>E : Enum1 case Enum1.F: ->Enum1.F : Enum1, Symbol(Enum1.F, Decl(constEnums.ts, 10, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->F : Enum1, Symbol(Enum1.F, Decl(constEnums.ts, 10, 14)) +>Enum1.F : Enum1 +>Enum1 : typeof Enum1 +>F : Enum1 case Enum1.G: ->Enum1.G : Enum1, Symbol(Enum1.G, Decl(constEnums.ts, 11, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->G : Enum1, Symbol(Enum1.G, Decl(constEnums.ts, 11, 14)) +>Enum1.G : Enum1 +>Enum1 : typeof Enum1 +>G : Enum1 case Enum1.H: ->Enum1.H : Enum1, Symbol(Enum1.H, Decl(constEnums.ts, 12, 16)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->H : Enum1, Symbol(Enum1.H, Decl(constEnums.ts, 12, 16)) +>Enum1.H : Enum1 +>Enum1 : typeof Enum1 +>H : Enum1 case Enum1.I: ->Enum1.I : Enum1, Symbol(Enum1.I, Decl(constEnums.ts, 13, 17)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->I : Enum1, Symbol(Enum1.I, Decl(constEnums.ts, 13, 17)) +>Enum1.I : Enum1 +>Enum1 : typeof Enum1 +>I : Enum1 case Enum1.J: ->Enum1.J : Enum1, Symbol(Enum1.J, Decl(constEnums.ts, 14, 16)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->J : Enum1, Symbol(Enum1.J, Decl(constEnums.ts, 14, 16)) +>Enum1.J : Enum1 +>Enum1 : typeof Enum1 +>J : Enum1 case Enum1.K: ->Enum1.K : Enum1, Symbol(Enum1.K, Decl(constEnums.ts, 15, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->K : Enum1, Symbol(Enum1.K, Decl(constEnums.ts, 15, 14)) +>Enum1.K : Enum1 +>Enum1 : typeof Enum1 +>K : Enum1 case Enum1.L: ->Enum1.L : Enum1, Symbol(Enum1.L, Decl(constEnums.ts, 16, 17)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->L : Enum1, Symbol(Enum1.L, Decl(constEnums.ts, 16, 17)) +>Enum1.L : Enum1 +>Enum1 : typeof Enum1 +>L : Enum1 case Enum1.M: ->Enum1.M : Enum1, Symbol(Enum1.M, Decl(constEnums.ts, 17, 11)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->M : Enum1, Symbol(Enum1.M, Decl(constEnums.ts, 17, 11)) +>Enum1.M : Enum1 +>Enum1 : typeof Enum1 +>M : Enum1 case Enum1.N: ->Enum1.N : Enum1, Symbol(Enum1.N, Decl(constEnums.ts, 18, 15)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->N : Enum1, Symbol(Enum1.N, Decl(constEnums.ts, 18, 15)) +>Enum1.N : Enum1 +>Enum1 : typeof Enum1 +>N : Enum1 case Enum1.O: ->Enum1.O : Enum1, Symbol(Enum1.O, Decl(constEnums.ts, 19, 15)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->O : Enum1, Symbol(Enum1.O, Decl(constEnums.ts, 19, 15)) +>Enum1.O : Enum1 +>Enum1 : typeof Enum1 +>O : Enum1 case Enum1.P: ->Enum1.P : Enum1, Symbol(Enum1.P, Decl(constEnums.ts, 20, 15)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->P : Enum1, Symbol(Enum1.P, Decl(constEnums.ts, 20, 15)) +>Enum1.P : Enum1 +>Enum1 : typeof Enum1 +>P : Enum1 case Enum1.Q: ->Enum1.Q : Enum1, Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->Q : Enum1, Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15)) +>Enum1.Q : Enum1 +>Enum1 : typeof Enum1 +>Q : Enum1 case Enum1.R: ->Enum1.R : Enum1, Symbol(Enum1.R, Decl(constEnums.ts, 22, 11)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->R : Enum1, Symbol(Enum1.R, Decl(constEnums.ts, 22, 11)) +>Enum1.R : Enum1 +>Enum1 : typeof Enum1 +>R : Enum1 case Enum1.S: ->Enum1.S : Enum1, Symbol(Enum1.S, Decl(constEnums.ts, 23, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->S : Enum1, Symbol(Enum1.S, Decl(constEnums.ts, 23, 14)) +>Enum1.S : Enum1 +>Enum1 : typeof Enum1 +>S : Enum1 case Enum1["T"]: >Enum1["T"] : Enum1 ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->"T" : string, Symbol(Enum1.T, Decl(constEnums.ts, 24, 14)) +>Enum1 : typeof Enum1 +>"T" : string case Enum1.U: ->Enum1.U : Enum1, Symbol(Enum1.U, Decl(constEnums.ts, 25, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->U : Enum1, Symbol(Enum1.U, Decl(constEnums.ts, 25, 14)) +>Enum1.U : Enum1 +>Enum1 : typeof Enum1 +>U : Enum1 case Enum1.V: ->Enum1.V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14)) +>Enum1.V : Enum1 +>Enum1 : typeof Enum1 +>V : Enum1 case Enum1.W: ->Enum1.W : Enum1, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->W : Enum1, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15)) +>Enum1.W : Enum1 +>Enum1 : typeof Enum1 +>W : Enum1 case Enum1.W1: ->Enum1.W1 : Enum1, Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->W1 : Enum1, Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16)) +>Enum1.W1 : Enum1 +>Enum1 : typeof Enum1 +>W1 : Enum1 case Enum1.W2: ->Enum1.W2 : Enum1, Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->W2 : Enum1, Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12)) +>Enum1.W2 : Enum1 +>Enum1 : typeof Enum1 +>W2 : Enum1 case Enum1.W3: ->Enum1.W3 : Enum1, Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->W3 : Enum1, Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18)) +>Enum1.W3 : Enum1 +>Enum1 : typeof Enum1 +>W3 : Enum1 case Enum1.W4: ->Enum1.W4 : Enum1, Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21)) ->Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) ->W4 : Enum1, Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21)) +>Enum1.W4 : Enum1 +>Enum1 : typeof Enum1 +>W4 : Enum1 break; } } function bar(e: A.B.C.E): number { ->bar : (e: I) => number, Symbol(bar, Decl(constEnums.ts, 142, 1)) ->e : I, Symbol(e, Decl(constEnums.ts, 144, 13)) ->A : any, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : any, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : any, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) +>bar : (e: I) => number +>e : I +>A : any +>B : any +>C : any +>E : I switch (e) { ->e : I, Symbol(e, Decl(constEnums.ts, 144, 13)) +>e : I case A.B.C.E.V1: return 1; ->A.B.C.E.V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) ->A.B.C.E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33)) +>A.B.C.E.V1 : I +>A.B.C.E : typeof I +>A.B.C : typeof A.B.C +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>C : typeof A.B.C +>E : typeof I +>V1 : I >1 : number case A.B.C.E.V2: return 1; ->A.B.C.E.V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23)) ->A.B.C.E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23)) +>A.B.C.E.V2 : I +>A.B.C.E : typeof I +>A.B.C : typeof A.B.C +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>C : typeof A.B.C +>E : typeof I +>V2 : I >1 : number case A.B.C.E.V3: return 1; ->A.B.C.E.V3 : I, Symbol(I.V3, Decl(constEnums.ts, 52, 33)) ->A.B.C.E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1)) ->B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10)) ->C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21)) ->E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25)) ->V3 : I, Symbol(I.V3, Decl(constEnums.ts, 52, 33)) +>A.B.C.E.V3 : I +>A.B.C.E : typeof I +>A.B.C : typeof A.B.C +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>C : typeof A.B.C +>E : typeof I +>V3 : I >1 : number } } diff --git a/tests/baselines/reference/constantOverloadFunction.symbols b/tests/baselines/reference/constantOverloadFunction.symbols new file mode 100644 index 0000000000000..60234623ed6f6 --- /dev/null +++ b/tests/baselines/reference/constantOverloadFunction.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/constantOverloadFunction.ts === +class Base { foo() { } } +>Base : Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) +>foo : Symbol(foo, Decl(constantOverloadFunction.ts, 0, 12)) + +class Derived1 extends Base { bar() { } } +>Derived1 : Symbol(Derived1, Decl(constantOverloadFunction.ts, 0, 24)) +>Base : Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) +>bar : Symbol(bar, Decl(constantOverloadFunction.ts, 1, 29)) + +class Derived2 extends Base { baz() { } } +>Derived2 : Symbol(Derived2, Decl(constantOverloadFunction.ts, 1, 41)) +>Base : Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) +>baz : Symbol(baz, Decl(constantOverloadFunction.ts, 2, 29)) + +class Derived3 extends Base { biz() { } } +>Derived3 : Symbol(Derived3, Decl(constantOverloadFunction.ts, 2, 41)) +>Base : Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) +>biz : Symbol(biz, Decl(constantOverloadFunction.ts, 3, 29)) + +function foo(tagName: 'canvas'): Derived1; +>foo : Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) +>tagName : Symbol(tagName, Decl(constantOverloadFunction.ts, 5, 13)) +>Derived1 : Symbol(Derived1, Decl(constantOverloadFunction.ts, 0, 24)) + +function foo(tagName: 'div'): Derived2; +>foo : Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) +>tagName : Symbol(tagName, Decl(constantOverloadFunction.ts, 6, 13)) +>Derived2 : Symbol(Derived2, Decl(constantOverloadFunction.ts, 1, 41)) + +function foo(tagName: 'span'): Derived3; +>foo : Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) +>tagName : Symbol(tagName, Decl(constantOverloadFunction.ts, 7, 13)) +>Derived3 : Symbol(Derived3, Decl(constantOverloadFunction.ts, 2, 41)) + +function foo(tagName: string): Base; +>foo : Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) +>tagName : Symbol(tagName, Decl(constantOverloadFunction.ts, 8, 13)) +>Base : Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) + +function foo(tagName: any): Base { +>foo : Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) +>tagName : Symbol(tagName, Decl(constantOverloadFunction.ts, 9, 13)) +>Base : Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) + + return null; +} + diff --git a/tests/baselines/reference/constantOverloadFunction.types b/tests/baselines/reference/constantOverloadFunction.types index b39de2c029c4e..d643d3a726d9a 100644 --- a/tests/baselines/reference/constantOverloadFunction.types +++ b/tests/baselines/reference/constantOverloadFunction.types @@ -1,47 +1,47 @@ === tests/cases/compiler/constantOverloadFunction.ts === class Base { foo() { } } ->Base : Base, Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) ->foo : () => void, Symbol(foo, Decl(constantOverloadFunction.ts, 0, 12)) +>Base : Base +>foo : () => void class Derived1 extends Base { bar() { } } ->Derived1 : Derived1, Symbol(Derived1, Decl(constantOverloadFunction.ts, 0, 24)) ->Base : Base, Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) ->bar : () => void, Symbol(bar, Decl(constantOverloadFunction.ts, 1, 29)) +>Derived1 : Derived1 +>Base : Base +>bar : () => void class Derived2 extends Base { baz() { } } ->Derived2 : Derived2, Symbol(Derived2, Decl(constantOverloadFunction.ts, 1, 41)) ->Base : Base, Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) ->baz : () => void, Symbol(baz, Decl(constantOverloadFunction.ts, 2, 29)) +>Derived2 : Derived2 +>Base : Base +>baz : () => void class Derived3 extends Base { biz() { } } ->Derived3 : Derived3, Symbol(Derived3, Decl(constantOverloadFunction.ts, 2, 41)) ->Base : Base, Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) ->biz : () => void, Symbol(biz, Decl(constantOverloadFunction.ts, 3, 29)) +>Derived3 : Derived3 +>Base : Base +>biz : () => void function foo(tagName: 'canvas'): Derived1; ->foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; }, Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) ->tagName : 'canvas', Symbol(tagName, Decl(constantOverloadFunction.ts, 5, 13)) ->Derived1 : Derived1, Symbol(Derived1, Decl(constantOverloadFunction.ts, 0, 24)) +>foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } +>tagName : 'canvas' +>Derived1 : Derived1 function foo(tagName: 'div'): Derived2; ->foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; }, Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) ->tagName : 'div', Symbol(tagName, Decl(constantOverloadFunction.ts, 6, 13)) ->Derived2 : Derived2, Symbol(Derived2, Decl(constantOverloadFunction.ts, 1, 41)) +>foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } +>tagName : 'div' +>Derived2 : Derived2 function foo(tagName: 'span'): Derived3; ->foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; }, Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) ->tagName : 'span', Symbol(tagName, Decl(constantOverloadFunction.ts, 7, 13)) ->Derived3 : Derived3, Symbol(Derived3, Decl(constantOverloadFunction.ts, 2, 41)) +>foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } +>tagName : 'span' +>Derived3 : Derived3 function foo(tagName: string): Base; ->foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; }, Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) ->tagName : string, Symbol(tagName, Decl(constantOverloadFunction.ts, 8, 13)) ->Base : Base, Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) +>foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } +>tagName : string +>Base : Base function foo(tagName: any): Base { ->foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; }, Symbol(foo, Decl(constantOverloadFunction.ts, 3, 41), Decl(constantOverloadFunction.ts, 5, 42), Decl(constantOverloadFunction.ts, 6, 40), Decl(constantOverloadFunction.ts, 7, 40), Decl(constantOverloadFunction.ts, 8, 36)) ->tagName : any, Symbol(tagName, Decl(constantOverloadFunction.ts, 9, 13)) ->Base : Base, Symbol(Base, Decl(constantOverloadFunction.ts, 0, 0)) +>foo : { (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; } +>tagName : any +>Base : Base return null; >null : null diff --git a/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.symbols b/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.symbols new file mode 100644 index 0000000000000..ad63e11b7ed32 --- /dev/null +++ b/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/constraintCheckInGenericBaseTypeReference.ts === +// No errors +class Constraint { +>Constraint : Symbol(Constraint, Decl(constraintCheckInGenericBaseTypeReference.ts, 0, 0)) + + public method() { } +>method : Symbol(method, Decl(constraintCheckInGenericBaseTypeReference.ts, 1, 18)) +} +class GenericBase { +>GenericBase : Symbol(GenericBase, Decl(constraintCheckInGenericBaseTypeReference.ts, 3, 1)) +>T : Symbol(T, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 18)) +>Constraint : Symbol(Constraint, Decl(constraintCheckInGenericBaseTypeReference.ts, 0, 0)) + + public items: any; +>items : Symbol(items, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 41)) +} +class Derived extends GenericBase { +>Derived : Symbol(Derived, Decl(constraintCheckInGenericBaseTypeReference.ts, 6, 1)) +>GenericBase : Symbol(GenericBase, Decl(constraintCheckInGenericBaseTypeReference.ts, 3, 1)) +>TypeArg : Symbol(TypeArg, Decl(constraintCheckInGenericBaseTypeReference.ts, 9, 1)) + +} +class TypeArg { +>TypeArg : Symbol(TypeArg, Decl(constraintCheckInGenericBaseTypeReference.ts, 9, 1)) + + public method() { +>method : Symbol(method, Decl(constraintCheckInGenericBaseTypeReference.ts, 10, 15)) + + Container.People.items; +>Container.People.items : Symbol(GenericBase.items, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 41)) +>Container.People : Symbol(Container.People, Decl(constraintCheckInGenericBaseTypeReference.ts, 16, 17)) +>Container : Symbol(Container, Decl(constraintCheckInGenericBaseTypeReference.ts, 14, 1)) +>People : Symbol(Container.People, Decl(constraintCheckInGenericBaseTypeReference.ts, 16, 17)) +>items : Symbol(GenericBase.items, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 41)) + } +} + +class Container { +>Container : Symbol(Container, Decl(constraintCheckInGenericBaseTypeReference.ts, 14, 1)) + + public static People: Derived +>People : Symbol(Container.People, Decl(constraintCheckInGenericBaseTypeReference.ts, 16, 17)) +>Derived : Symbol(Derived, Decl(constraintCheckInGenericBaseTypeReference.ts, 6, 1)) +} diff --git a/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.types b/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.types index 57c56998b9ed5..1d94a5e464c26 100644 --- a/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.types +++ b/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.types @@ -1,44 +1,44 @@ === tests/cases/compiler/constraintCheckInGenericBaseTypeReference.ts === // No errors class Constraint { ->Constraint : Constraint, Symbol(Constraint, Decl(constraintCheckInGenericBaseTypeReference.ts, 0, 0)) +>Constraint : Constraint public method() { } ->method : () => void, Symbol(method, Decl(constraintCheckInGenericBaseTypeReference.ts, 1, 18)) +>method : () => void } class GenericBase { ->GenericBase : GenericBase, Symbol(GenericBase, Decl(constraintCheckInGenericBaseTypeReference.ts, 3, 1)) ->T : T, Symbol(T, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 18)) ->Constraint : Constraint, Symbol(Constraint, Decl(constraintCheckInGenericBaseTypeReference.ts, 0, 0)) +>GenericBase : GenericBase +>T : T +>Constraint : Constraint public items: any; ->items : any, Symbol(items, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 41)) +>items : any } class Derived extends GenericBase { ->Derived : Derived, Symbol(Derived, Decl(constraintCheckInGenericBaseTypeReference.ts, 6, 1)) ->GenericBase : GenericBase, Symbol(GenericBase, Decl(constraintCheckInGenericBaseTypeReference.ts, 3, 1)) ->TypeArg : TypeArg, Symbol(TypeArg, Decl(constraintCheckInGenericBaseTypeReference.ts, 9, 1)) +>Derived : Derived +>GenericBase : GenericBase +>TypeArg : TypeArg } class TypeArg { ->TypeArg : TypeArg, Symbol(TypeArg, Decl(constraintCheckInGenericBaseTypeReference.ts, 9, 1)) +>TypeArg : TypeArg public method() { ->method : () => void, Symbol(method, Decl(constraintCheckInGenericBaseTypeReference.ts, 10, 15)) +>method : () => void Container.People.items; ->Container.People.items : any, Symbol(GenericBase.items, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 41)) ->Container.People : Derived, Symbol(Container.People, Decl(constraintCheckInGenericBaseTypeReference.ts, 16, 17)) ->Container : typeof Container, Symbol(Container, Decl(constraintCheckInGenericBaseTypeReference.ts, 14, 1)) ->People : Derived, Symbol(Container.People, Decl(constraintCheckInGenericBaseTypeReference.ts, 16, 17)) ->items : any, Symbol(GenericBase.items, Decl(constraintCheckInGenericBaseTypeReference.ts, 4, 41)) +>Container.People.items : any +>Container.People : Derived +>Container : typeof Container +>People : Derived +>items : any } } class Container { ->Container : Container, Symbol(Container, Decl(constraintCheckInGenericBaseTypeReference.ts, 14, 1)) +>Container : Container public static People: Derived ->People : Derived, Symbol(Container.People, Decl(constraintCheckInGenericBaseTypeReference.ts, 16, 17)) ->Derived : Derived, Symbol(Derived, Decl(constraintCheckInGenericBaseTypeReference.ts, 6, 1)) +>People : Derived +>Derived : Derived } diff --git a/tests/baselines/reference/constraintPropagationThroughReturnTypes.symbols b/tests/baselines/reference/constraintPropagationThroughReturnTypes.symbols new file mode 100644 index 0000000000000..50cccd22db0fb --- /dev/null +++ b/tests/baselines/reference/constraintPropagationThroughReturnTypes.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/constraintPropagationThroughReturnTypes.ts === +function g(x: T): T { +>g : Symbol(g, Decl(constraintPropagationThroughReturnTypes.ts, 0, 0)) +>T : Symbol(T, Decl(constraintPropagationThroughReturnTypes.ts, 0, 11)) +>x : Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 0, 14)) +>T : Symbol(T, Decl(constraintPropagationThroughReturnTypes.ts, 0, 11)) +>T : Symbol(T, Decl(constraintPropagationThroughReturnTypes.ts, 0, 11)) + + return x; +>x : Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 0, 14)) +} + +function f(x: S) { +>f : Symbol(f, Decl(constraintPropagationThroughReturnTypes.ts, 2, 1)) +>S : Symbol(S, Decl(constraintPropagationThroughReturnTypes.ts, 4, 11)) +>foo : Symbol(foo, Decl(constraintPropagationThroughReturnTypes.ts, 4, 22)) +>x : Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 4, 38)) +>S : Symbol(S, Decl(constraintPropagationThroughReturnTypes.ts, 4, 11)) + + var y = g(x); +>y : Symbol(y, Decl(constraintPropagationThroughReturnTypes.ts, 5, 5)) +>g : Symbol(g, Decl(constraintPropagationThroughReturnTypes.ts, 0, 0)) +>x : Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 4, 38)) + + y; +>y : Symbol(y, Decl(constraintPropagationThroughReturnTypes.ts, 5, 5)) +} + diff --git a/tests/baselines/reference/constraintPropagationThroughReturnTypes.types b/tests/baselines/reference/constraintPropagationThroughReturnTypes.types index bc428dad65458..6f56cca28cc57 100644 --- a/tests/baselines/reference/constraintPropagationThroughReturnTypes.types +++ b/tests/baselines/reference/constraintPropagationThroughReturnTypes.types @@ -1,29 +1,29 @@ === tests/cases/compiler/constraintPropagationThroughReturnTypes.ts === function g(x: T): T { ->g : (x: T) => T, Symbol(g, Decl(constraintPropagationThroughReturnTypes.ts, 0, 0)) ->T : T, Symbol(T, Decl(constraintPropagationThroughReturnTypes.ts, 0, 11)) ->x : T, Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 0, 14)) ->T : T, Symbol(T, Decl(constraintPropagationThroughReturnTypes.ts, 0, 11)) ->T : T, Symbol(T, Decl(constraintPropagationThroughReturnTypes.ts, 0, 11)) +>g : (x: T) => T +>T : T +>x : T +>T : T +>T : T return x; ->x : T, Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 0, 14)) +>x : T } function f(x: S) { ->f : (x: S) => void, Symbol(f, Decl(constraintPropagationThroughReturnTypes.ts, 2, 1)) ->S : S, Symbol(S, Decl(constraintPropagationThroughReturnTypes.ts, 4, 11)) ->foo : string, Symbol(foo, Decl(constraintPropagationThroughReturnTypes.ts, 4, 22)) ->x : S, Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 4, 38)) ->S : S, Symbol(S, Decl(constraintPropagationThroughReturnTypes.ts, 4, 11)) +>f : (x: S) => void +>S : S +>foo : string +>x : S +>S : S var y = g(x); ->y : S, Symbol(y, Decl(constraintPropagationThroughReturnTypes.ts, 5, 5)) +>y : S >g(x) : S ->g : (x: T) => T, Symbol(g, Decl(constraintPropagationThroughReturnTypes.ts, 0, 0)) ->x : S, Symbol(x, Decl(constraintPropagationThroughReturnTypes.ts, 4, 38)) +>g : (x: T) => T +>x : S y; ->y : S, Symbol(y, Decl(constraintPropagationThroughReturnTypes.ts, 5, 5)) +>y : S } diff --git a/tests/baselines/reference/constraintSatisfactionWithAny.symbols b/tests/baselines/reference/constraintSatisfactionWithAny.symbols new file mode 100644 index 0000000000000..fdf1bdce7e80d --- /dev/null +++ b/tests/baselines/reference/constraintSatisfactionWithAny.symbols @@ -0,0 +1,138 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/constraintSatisfactionWithAny.ts === +// any is not a valid type argument unless there is no constraint, or the constraint is any + +function foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(constraintSatisfactionWithAny.ts, 0, 0)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 2, 13)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 2, 31)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 2, 13)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 2, 13)) + +function foo2(x: T): T { return null; } +>foo2 : Symbol(foo2, Decl(constraintSatisfactionWithAny.ts, 2, 56)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 3, 14)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 3, 25)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 3, 39)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 3, 14)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 3, 14)) + +//function foo3(x: T): T { return null; } +function foo4(x: T) => void>(x: T): T { return null; } +>foo4 : Symbol(foo4, Decl(constraintSatisfactionWithAny.ts, 3, 64)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 14)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 25)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 5, 28)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 25)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 5, 43)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 14)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 14)) + +var a; +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +foo(a); +>foo : Symbol(foo, Decl(constraintSatisfactionWithAny.ts, 0, 0)) +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +foo2(a); +>foo2 : Symbol(foo2, Decl(constraintSatisfactionWithAny.ts, 2, 56)) +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +//foo3(a); +foo4(a); +>foo4 : Symbol(foo4, Decl(constraintSatisfactionWithAny.ts, 3, 64)) +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +var b: number; +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + +foo(b); +>foo : Symbol(foo, Decl(constraintSatisfactionWithAny.ts, 0, 0)) +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + +foo2(b); +>foo2 : Symbol(foo2, Decl(constraintSatisfactionWithAny.ts, 2, 56)) +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + +//foo3(b); +foo4(b); +>foo4 : Symbol(foo4, Decl(constraintSatisfactionWithAny.ts, 3, 64)) +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + +//function foo5(x: T, y: U): T { return null; } +//foo5(a, a); +//foo5(b, b); + +class C { +>C : Symbol(C, Decl(constraintSatisfactionWithAny.ts, 16, 13)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 22, 8)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + + constructor(public x: T) { } +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 23, 16)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 22, 8)) +} + +var c1 = new C(a); +>c1 : Symbol(c1, Decl(constraintSatisfactionWithAny.ts, 26, 3)) +>C : Symbol(C, Decl(constraintSatisfactionWithAny.ts, 16, 13)) +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +var c2 = new C(b); +>c2 : Symbol(c2, Decl(constraintSatisfactionWithAny.ts, 27, 3)) +>C : Symbol(C, Decl(constraintSatisfactionWithAny.ts, 16, 13)) +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + +class C2 { +>C2 : Symbol(C2, Decl(constraintSatisfactionWithAny.ts, 27, 23)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 29, 9)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 29, 20)) + + constructor(public x: T) { } +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 30, 16)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 29, 9)) +} + +var c3 = new C2(a); +>c3 : Symbol(c3, Decl(constraintSatisfactionWithAny.ts, 33, 3)) +>C2 : Symbol(C2, Decl(constraintSatisfactionWithAny.ts, 27, 23)) +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +var c4 = new C2(b); +>c4 : Symbol(c4, Decl(constraintSatisfactionWithAny.ts, 34, 3)) +>C2 : Symbol(C2, Decl(constraintSatisfactionWithAny.ts, 27, 23)) +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + +//class C3 { +// constructor(public x: T) { } +//} + +//var c5 = new C3(a); +//var c6 = new C3(b); + +class C4(x:T) => T> { +>C4 : Symbol(C4, Decl(constraintSatisfactionWithAny.ts, 34, 24)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 9)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 20)) +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 43, 23)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 20)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 20)) + + constructor(public x: T) { } +>x : Symbol(x, Decl(constraintSatisfactionWithAny.ts, 44, 16)) +>T : Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 9)) +} + +var c7 = new C4(a); +>c7 : Symbol(c7, Decl(constraintSatisfactionWithAny.ts, 47, 3)) +>C4 : Symbol(C4, Decl(constraintSatisfactionWithAny.ts, 34, 24)) +>a : Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) + +var c8 = new C4(b); +>c8 : Symbol(c8, Decl(constraintSatisfactionWithAny.ts, 48, 3)) +>C4 : Symbol(C4, Decl(constraintSatisfactionWithAny.ts, 34, 24)) +>b : Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) + + + diff --git a/tests/baselines/reference/constraintSatisfactionWithAny.types b/tests/baselines/reference/constraintSatisfactionWithAny.types index 86665e9f4104c..f3363fe1a9006 100644 --- a/tests/baselines/reference/constraintSatisfactionWithAny.types +++ b/tests/baselines/reference/constraintSatisfactionWithAny.types @@ -2,120 +2,120 @@ // any is not a valid type argument unless there is no constraint, or the constraint is any function foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(constraintSatisfactionWithAny.ts, 0, 0)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 2, 13)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 2, 31)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 2, 13)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 2, 13)) +>foo : (x: T) => T +>T : T +>String : String +>x : T +>T : T +>T : T >null : null function foo2(x: T): T { return null; } ->foo2 : (x: T) => T, Symbol(foo2, Decl(constraintSatisfactionWithAny.ts, 2, 56)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 3, 14)) ->x : number, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 3, 25)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 3, 39)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 3, 14)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 3, 14)) +>foo2 : (x: T) => T +>T : T +>x : number +>x : T +>T : T +>T : T >null : null //function foo3(x: T): T { return null; } function foo4(x: T) => void>(x: T): T { return null; } ->foo4 : (x: T) => void>(x: T) => T, Symbol(foo4, Decl(constraintSatisfactionWithAny.ts, 3, 64)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 14)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 25)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 5, 28)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 25)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 5, 43)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 14)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 5, 14)) +>foo4 : (x: T) => void>(x: T) => T +>T : T +>T : T +>x : T +>T : T +>x : T +>T : T +>T : T >null : null var a; ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>a : any foo(a); >foo(a) : any ->foo : (x: T) => T, Symbol(foo, Decl(constraintSatisfactionWithAny.ts, 0, 0)) ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>foo : (x: T) => T +>a : any foo2(a); >foo2(a) : any ->foo2 : (x: T) => T, Symbol(foo2, Decl(constraintSatisfactionWithAny.ts, 2, 56)) ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>foo2 : (x: T) => T +>a : any //foo3(a); foo4(a); >foo4(a) : any ->foo4 : (x: T) => void>(x: T) => T, Symbol(foo4, Decl(constraintSatisfactionWithAny.ts, 3, 64)) ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>foo4 : (x: T) => void>(x: T) => T +>a : any var b: number; ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>b : number foo(b); >foo(b) : any ->foo : (x: T) => T, Symbol(foo, Decl(constraintSatisfactionWithAny.ts, 0, 0)) ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>foo : (x: T) => T +>b : number foo2(b); >foo2(b) : any ->foo2 : (x: T) => T, Symbol(foo2, Decl(constraintSatisfactionWithAny.ts, 2, 56)) ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>foo2 : (x: T) => T +>b : number //foo3(b); foo4(b); >foo4(b) : any ->foo4 : (x: T) => void>(x: T) => T, Symbol(foo4, Decl(constraintSatisfactionWithAny.ts, 3, 64)) ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>foo4 : (x: T) => void>(x: T) => T +>b : number //function foo5(x: T, y: U): T { return null; } //foo5(a, a); //foo5(b, b); class C { ->C : C, Symbol(C, Decl(constraintSatisfactionWithAny.ts, 16, 13)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 22, 8)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>C : C +>T : T +>String : String constructor(public x: T) { } ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 23, 16)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 22, 8)) +>x : T +>T : T } var c1 = new C(a); ->c1 : C, Symbol(c1, Decl(constraintSatisfactionWithAny.ts, 26, 3)) +>c1 : C >new C(a) : C ->C : typeof C, Symbol(C, Decl(constraintSatisfactionWithAny.ts, 16, 13)) ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>C : typeof C +>a : any var c2 = new C(b); ->c2 : C, Symbol(c2, Decl(constraintSatisfactionWithAny.ts, 27, 3)) +>c2 : C >new C(b) : C ->C : typeof C, Symbol(C, Decl(constraintSatisfactionWithAny.ts, 16, 13)) ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>C : typeof C +>b : number class C2 { ->C2 : C2, Symbol(C2, Decl(constraintSatisfactionWithAny.ts, 27, 23)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 29, 9)) ->x : number, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 29, 20)) +>C2 : C2 +>T : T +>x : number constructor(public x: T) { } ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 30, 16)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 29, 9)) +>x : T +>T : T } var c3 = new C2(a); ->c3 : C2, Symbol(c3, Decl(constraintSatisfactionWithAny.ts, 33, 3)) +>c3 : C2 >new C2(a) : C2 ->C2 : typeof C2, Symbol(C2, Decl(constraintSatisfactionWithAny.ts, 27, 23)) ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>C2 : typeof C2 +>a : any var c4 = new C2(b); ->c4 : C2, Symbol(c4, Decl(constraintSatisfactionWithAny.ts, 34, 3)) +>c4 : C2 >new C2(b) : C2 ->C2 : typeof C2, Symbol(C2, Decl(constraintSatisfactionWithAny.ts, 27, 23)) ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>C2 : typeof C2 +>b : number //class C3 { // constructor(public x: T) { } @@ -125,29 +125,29 @@ var c4 = new C2(b); //var c6 = new C3(b); class C4(x:T) => T> { ->C4 : C4, Symbol(C4, Decl(constraintSatisfactionWithAny.ts, 34, 24)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 9)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 20)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 43, 23)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 20)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 20)) +>C4 : C4 +>T : T +>T : T +>x : T +>T : T +>T : T constructor(public x: T) { } ->x : T, Symbol(x, Decl(constraintSatisfactionWithAny.ts, 44, 16)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithAny.ts, 43, 9)) +>x : T +>T : T } var c7 = new C4(a); ->c7 : C4, Symbol(c7, Decl(constraintSatisfactionWithAny.ts, 47, 3)) +>c7 : C4 >new C4(a) : C4 ->C4 : typeof C4, Symbol(C4, Decl(constraintSatisfactionWithAny.ts, 34, 24)) ->a : any, Symbol(a, Decl(constraintSatisfactionWithAny.ts, 6, 3)) +>C4 : typeof C4 +>a : any var c8 = new C4(b); ->c8 : C4, Symbol(c8, Decl(constraintSatisfactionWithAny.ts, 48, 3)) +>c8 : C4 >new C4(b) : C4 ->C4 : typeof C4, Symbol(C4, Decl(constraintSatisfactionWithAny.ts, 34, 24)) ->b : number, Symbol(b, Decl(constraintSatisfactionWithAny.ts, 12, 3)) +>C4 : typeof C4 +>b : number diff --git a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.symbols b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.symbols new file mode 100644 index 0000000000000..fd5aae69b86c7 --- /dev/null +++ b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.symbols @@ -0,0 +1,93 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/constraintSatisfactionWithEmptyObject.ts === +// valid uses of a basic object constraint, no errors expected + +// Object constraint +function foo(x: T) { } +>foo : Symbol(foo, Decl(constraintSatisfactionWithEmptyObject.ts, 0, 0)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 3, 13)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 3, 31)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 3, 13)) + +var r = foo({}); +>r : Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>foo : Symbol(foo, Decl(constraintSatisfactionWithEmptyObject.ts, 0, 0)) + +var a = {}; +>a : Symbol(a, Decl(constraintSatisfactionWithEmptyObject.ts, 5, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 22, 3)) + +var r = foo({}); +>r : Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>foo : Symbol(foo, Decl(constraintSatisfactionWithEmptyObject.ts, 0, 0)) + +class C { +>C : Symbol(C, Decl(constraintSatisfactionWithEmptyObject.ts, 6, 16)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 8, 8)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + constructor(public x: T) { } +>x : Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 9, 16)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 8, 8)) +} + +var r2 = new C({}); +>r2 : Symbol(r2, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 29, 3)) +>C : Symbol(C, Decl(constraintSatisfactionWithEmptyObject.ts, 6, 16)) + +interface I { +>I : Symbol(I, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 19)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 14, 12)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + x: T; +>x : Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 14, 31)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 14, 12)) +} +var i: I<{}>; +>i : Symbol(i, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 3)) +>I : Symbol(I, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 19)) + +// {} constraint +function foo2(x: T) { } +>foo2 : Symbol(foo2, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 13)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 20, 14)) +>x : Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 20, 28)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 20, 14)) + +var r = foo2({}); +>r : Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>foo2 : Symbol(foo2, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 13)) + +var a = {}; +>a : Symbol(a, Decl(constraintSatisfactionWithEmptyObject.ts, 5, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 22, 3)) + +var r = foo2({}); +>r : Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>foo2 : Symbol(foo2, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 13)) + +class C2 { +>C2 : Symbol(C2, Decl(constraintSatisfactionWithEmptyObject.ts, 23, 17)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 25, 9)) + + constructor(public x: T) { } +>x : Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 26, 16)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 25, 9)) +} + +var r2 = new C2({}); +>r2 : Symbol(r2, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 29, 3)) +>C2 : Symbol(C2, Decl(constraintSatisfactionWithEmptyObject.ts, 23, 17)) + +interface I2 { +>I2 : Symbol(I2, Decl(constraintSatisfactionWithEmptyObject.ts, 29, 20)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 31, 13)) + + x: T; +>x : Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 31, 28)) +>T : Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 31, 13)) +} +var i2: I2<{}>; +>i2 : Symbol(i2, Decl(constraintSatisfactionWithEmptyObject.ts, 34, 3)) +>I2 : Symbol(I2, Decl(constraintSatisfactionWithEmptyObject.ts, 29, 20)) + + diff --git a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types index fcc99f81ad9e1..113736bdd112e 100644 --- a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types +++ b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types @@ -3,105 +3,105 @@ // Object constraint function foo(x: T) { } ->foo : (x: T) => void, Symbol(foo, Decl(constraintSatisfactionWithEmptyObject.ts, 0, 0)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 3, 13)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 3, 31)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 3, 13)) +>foo : (x: T) => void +>T : T +>Object : Object +>x : T +>T : T var r = foo({}); ->r : void, Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>r : void >foo({}) : void ->foo : (x: T) => void, Symbol(foo, Decl(constraintSatisfactionWithEmptyObject.ts, 0, 0)) +>foo : (x: T) => void >{} : {} var a = {}; ->a : {}, Symbol(a, Decl(constraintSatisfactionWithEmptyObject.ts, 5, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 22, 3)) +>a : {} >{} : {} var r = foo({}); ->r : void, Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>r : void >foo({}) : void ->foo : (x: T) => void, Symbol(foo, Decl(constraintSatisfactionWithEmptyObject.ts, 0, 0)) +>foo : (x: T) => void >{} : {} class C { ->C : C, Symbol(C, Decl(constraintSatisfactionWithEmptyObject.ts, 6, 16)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 8, 8)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>C : C +>T : T +>Object : Object constructor(public x: T) { } ->x : T, Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 9, 16)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 8, 8)) +>x : T +>T : T } var r2 = new C({}); ->r2 : C<{}>, Symbol(r2, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 29, 3)) +>r2 : C<{}> >new C({}) : C<{}> ->C : typeof C, Symbol(C, Decl(constraintSatisfactionWithEmptyObject.ts, 6, 16)) +>C : typeof C >{} : {} interface I { ->I : I, Symbol(I, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 19)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 14, 12)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>I : I +>T : T +>Object : Object x: T; ->x : T, Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 14, 31)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 14, 12)) +>x : T +>T : T } var i: I<{}>; ->i : I<{}>, Symbol(i, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 3)) ->I : I, Symbol(I, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 19)) +>i : I<{}> +>I : I // {} constraint function foo2(x: T) { } ->foo2 : (x: T) => void, Symbol(foo2, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 13)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 20, 14)) ->x : T, Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 20, 28)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 20, 14)) +>foo2 : (x: T) => void +>T : T +>x : T +>T : T var r = foo2({}); ->r : void, Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>r : void >foo2({}) : void ->foo2 : (x: T) => void, Symbol(foo2, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 13)) +>foo2 : (x: T) => void >{} : {} var a = {}; ->a : {}, Symbol(a, Decl(constraintSatisfactionWithEmptyObject.ts, 5, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 22, 3)) +>a : {} >{} : {} var r = foo2({}); ->r : void, Symbol(r, Decl(constraintSatisfactionWithEmptyObject.ts, 4, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 6, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 21, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 23, 3)) +>r : void >foo2({}) : void ->foo2 : (x: T) => void, Symbol(foo2, Decl(constraintSatisfactionWithEmptyObject.ts, 17, 13)) +>foo2 : (x: T) => void >{} : {} class C2 { ->C2 : C2, Symbol(C2, Decl(constraintSatisfactionWithEmptyObject.ts, 23, 17)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 25, 9)) +>C2 : C2 +>T : T constructor(public x: T) { } ->x : T, Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 26, 16)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 25, 9)) +>x : T +>T : T } var r2 = new C2({}); ->r2 : C<{}>, Symbol(r2, Decl(constraintSatisfactionWithEmptyObject.ts, 12, 3), Decl(constraintSatisfactionWithEmptyObject.ts, 29, 3)) +>r2 : C<{}> >new C2({}) : C2<{}> ->C2 : typeof C2, Symbol(C2, Decl(constraintSatisfactionWithEmptyObject.ts, 23, 17)) +>C2 : typeof C2 >{} : {} interface I2 { ->I2 : I2, Symbol(I2, Decl(constraintSatisfactionWithEmptyObject.ts, 29, 20)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 31, 13)) +>I2 : I2 +>T : T x: T; ->x : T, Symbol(x, Decl(constraintSatisfactionWithEmptyObject.ts, 31, 28)) ->T : T, Symbol(T, Decl(constraintSatisfactionWithEmptyObject.ts, 31, 13)) +>x : T +>T : T } var i2: I2<{}>; ->i2 : I2<{}>, Symbol(i2, Decl(constraintSatisfactionWithEmptyObject.ts, 34, 3)) ->I2 : I2, Symbol(I2, Decl(constraintSatisfactionWithEmptyObject.ts, 29, 20)) +>i2 : I2<{}> +>I2 : I2 diff --git a/tests/baselines/reference/constraintsUsedInPrototypeProperty.symbols b/tests/baselines/reference/constraintsUsedInPrototypeProperty.symbols new file mode 100644 index 0000000000000..23a1c08398ecd --- /dev/null +++ b/tests/baselines/reference/constraintsUsedInPrototypeProperty.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/constraintsUsedInPrototypeProperty.ts === +class Foo { } +>Foo : Symbol(Foo, Decl(constraintsUsedInPrototypeProperty.ts, 0, 0)) +>T : Symbol(T, Decl(constraintsUsedInPrototypeProperty.ts, 0, 10)) +>U : Symbol(U, Decl(constraintsUsedInPrototypeProperty.ts, 0, 27)) +>V : Symbol(V, Decl(constraintsUsedInPrototypeProperty.ts, 0, 30)) + +Foo.prototype; // Foo +>Foo.prototype : Symbol(Foo.prototype) +>Foo : Symbol(Foo, Decl(constraintsUsedInPrototypeProperty.ts, 0, 0)) +>prototype : Symbol(Foo.prototype) + diff --git a/tests/baselines/reference/constraintsUsedInPrototypeProperty.types b/tests/baselines/reference/constraintsUsedInPrototypeProperty.types index 72fea5f838fa6..a92b69a339240 100644 --- a/tests/baselines/reference/constraintsUsedInPrototypeProperty.types +++ b/tests/baselines/reference/constraintsUsedInPrototypeProperty.types @@ -1,12 +1,12 @@ === tests/cases/compiler/constraintsUsedInPrototypeProperty.ts === class Foo { } ->Foo : Foo, Symbol(Foo, Decl(constraintsUsedInPrototypeProperty.ts, 0, 0)) ->T : T, Symbol(T, Decl(constraintsUsedInPrototypeProperty.ts, 0, 10)) ->U : U, Symbol(U, Decl(constraintsUsedInPrototypeProperty.ts, 0, 27)) ->V : V, Symbol(V, Decl(constraintsUsedInPrototypeProperty.ts, 0, 30)) +>Foo : Foo +>T : T +>U : U +>V : V Foo.prototype; // Foo ->Foo.prototype : Foo, Symbol(Foo.prototype) ->Foo : typeof Foo, Symbol(Foo, Decl(constraintsUsedInPrototypeProperty.ts, 0, 0)) ->prototype : Foo, Symbol(Foo.prototype) +>Foo.prototype : Foo +>Foo : typeof Foo +>prototype : Foo diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.symbols b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.symbols new file mode 100644 index 0000000000000..b85ae3e90d8d2 --- /dev/null +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.symbols @@ -0,0 +1,398 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance2.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation + +class Base { foo: string; } +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance2.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance2.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>baz : Symbol(baz, Decl(constructSignatureAssignabilityInInheritance2.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance2.ts, 4, 47)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>bing : Symbol(bing, Decl(constructSignatureAssignabilityInInheritance2.ts, 5, 33)) + +interface A { // T +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance2.ts, 5, 49)) + + // M's + a: new (x: number) => number[]; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 7, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 9, 12)) + + a2: new (x: number) => string[]; +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance2.ts, 9, 35)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 10, 13)) + + a3: new (x: number) => void; +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance2.ts, 10, 36)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 11, 13)) + + a4: new (x: string, y: number) => string; +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance2.ts, 11, 32)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 12, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 12, 23)) + + a5: new (x: (arg: string) => number) => string; +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance2.ts, 12, 45)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 13, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 13, 17)) + + a6: new (x: (arg: Base) => Derived) => Base; +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance2.ts, 13, 51)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 14, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 14, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) + + a7: new (x: (arg: Base) => Derived) => (r: Base) => Derived; +>a7 : Symbol(a7, Decl(constructSignatureAssignabilityInInheritance2.ts, 14, 48)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 44)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a8: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a8 : Symbol(a8, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 64)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 39)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 44)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 72)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a9: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a9 : Symbol(a9, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 92)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 39)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 44)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 72)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a10: new (...x: Derived[]) => Derived; +>a10 : Symbol(a10, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 92)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 18, 14)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance2.ts, 18, 42)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 14)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 18)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 33)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 38)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 51)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) + + a12: new (x: Array, y: Array) => Array; +>a12 : Symbol(a12, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 75)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 20, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 20, 29)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance2.ts, 3, 43)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a13: new (x: Array, y: Array) => Array; +>a13 : Symbol(a13, Decl(constructSignatureAssignabilityInInheritance2.ts, 20, 68)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 21, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 21, 29)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a14: new (x: { a: string; b: number }) => Object; +>a14 : Symbol(a14, Decl(constructSignatureAssignabilityInInheritance2.ts, 21, 67)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 14)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 18)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 29)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + a15: { +>a15 : Symbol(a15, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 53)) + + new (x: number): number[]; +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 24, 13)) + + new (x: string): string[]; +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 25, 13)) + + }; + a16: { +>a16 : Symbol(a16, Decl(constructSignatureAssignabilityInInheritance2.ts, 26, 6)) + + new (x: T): number[]; +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 28, 13)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 28, 32)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 28, 13)) + + new (x: U): number[]; +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 29, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 29, 29)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 29, 13)) + + }; + a17: { +>a17 : Symbol(a17, Decl(constructSignatureAssignabilityInInheritance2.ts, 30, 6)) + + new (x: new (a: number) => number): number[]; +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 32, 13)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 32, 21)) + + new (x: new (a: string) => string): string[]; +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 33, 13)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 33, 21)) + + }; + a18: { +>a18 : Symbol(a18, Decl(constructSignatureAssignabilityInInheritance2.ts, 34, 6)) + + new (x: { +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 36, 13)) + + new (a: number): number; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 37, 17)) + + new (a: string): string; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 38, 17)) + + }): any[]; + new (x: { +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 40, 13)) + + new (a: boolean): boolean; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 41, 17)) + + new (a: Date): Date; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 42, 17)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + }): any[]; + }; +} + +// S's +interface I extends A { +>I : Symbol(I, Decl(constructSignatureAssignabilityInInheritance2.ts, 45, 1)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance2.ts, 5, 49)) + + // N's + a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 48, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 12)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 12)) + + a2: new (x: T) => string[]; // ok +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 13)) + + a3: new (x: T) => T; // ok since Base returns void +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 13)) + + a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 19)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 24)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 13)) + + a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 36)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 19)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 13)) + + a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 42)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 13)) + + a7: new (x: (arg: T) => U) => (r: T) => U; // ok +>a7 : Symbol(a7, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 71)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 28)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 70)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 28)) + + a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok +>a8 : Symbol(a8, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 81)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 65)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 70)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 89)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) + + a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal +>a9 : Symbol(a9, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 100)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 65)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 70)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 77)) +>bing : Symbol(bing, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 90)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 117)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) + + a10: new (...x: T[]) => T; // ok +>a10 : Symbol(a10, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 128)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 14)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 33)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 14)) + + a11: new (x: T, y: T) => T; // ok +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 49)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 35)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) + + a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type +>a12 : Symbol(a12, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 47)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 37)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) + + a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds +>a13 : Symbol(a13, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 77)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 40)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 55)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 14)) + + a14: new (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature +>a14 : Symbol(a14, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 67)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) + + a15: new (x: T) => T[]; // ok +>a15 : Symbol(a15, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 41)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 17)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 14)) + + a16: new (x: T) => number[]; // ok +>a16 : Symbol(a16, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 14)) + + a17: new (x: new (a: T) => T) => T[]; // ok +>a17 : Symbol(a17, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 48)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 25)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) + + a18: new (x: new (a: T) => T) => T[]; // ok, no inferences for T but assignable to any +>a18 : Symbol(a18, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 44)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 25)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) +} diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types index b834c9b962629..7ab221024ca95 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types @@ -2,201 +2,201 @@ // checking subtype relations for function types as it relates to contextual signature instantiation class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance2.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance2.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(constructSignatureAssignabilityInInheritance2.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance2.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(constructSignatureAssignabilityInInheritance2.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance2.ts, 5, 49)) +>A : A // M's a: new (x: number) => number[]; ->a : new (x: number) => number[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 7, 13)) ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 9, 12)) +>a : new (x: number) => number[] +>x : number a2: new (x: number) => string[]; ->a2 : new (x: number) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance2.ts, 9, 35)) ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 10, 13)) +>a2 : new (x: number) => string[] +>x : number a3: new (x: number) => void; ->a3 : new (x: number) => void, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance2.ts, 10, 36)) ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 11, 13)) +>a3 : new (x: number) => void +>x : number a4: new (x: string, y: number) => string; ->a4 : new (x: string, y: number) => string, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance2.ts, 11, 32)) ->x : string, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 12, 13)) ->y : number, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 12, 23)) +>a4 : new (x: string, y: number) => string +>x : string +>y : number a5: new (x: (arg: string) => number) => string; ->a5 : new (x: (arg: string) => number) => string, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance2.ts, 12, 45)) ->x : (arg: string) => number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 13, 13)) ->arg : string, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 13, 17)) +>a5 : new (x: (arg: string) => number) => string +>x : (arg: string) => number +>arg : string a6: new (x: (arg: Base) => Derived) => Base; ->a6 : new (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance2.ts, 13, 51)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 14, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 14, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>a6 : new (x: (arg: Base) => Derived) => Base +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>Base : Base a7: new (x: (arg: Base) => Derived) => (r: Base) => Derived; ->a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(constructSignatureAssignabilityInInheritance2.ts, 14, 48)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->r : Base, Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 44)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a8: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(constructSignatureAssignabilityInInheritance2.ts, 15, 64)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 39)) ->arg2 : Base, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 44)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->r : Base, Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 72)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a9: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(constructSignatureAssignabilityInInheritance2.ts, 16, 92)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 39)) ->arg2 : Base, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 44)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->r : Base, Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 72)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a10: new (...x: Derived[]) => Derived; ->a10 : new (...x: Derived[]) => Derived, Symbol(a10, Decl(constructSignatureAssignabilityInInheritance2.ts, 17, 92)) ->x : Derived[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 18, 14)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a10 : new (...x: Derived[]) => Derived +>x : Derived[] +>Derived : Derived +>Derived : Derived a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance2.ts, 18, 42)) ->x : { foo: string; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 14)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 18)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 33)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 38)) ->bar : string, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 51)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) +>a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>x : { foo: string; } +>foo : string +>y : { foo: string; bar: string; } +>foo : string +>bar : string +>Base : Base a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(constructSignatureAssignabilityInInheritance2.ts, 19, 75)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 20, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : Derived2[], Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 20, 29)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance2.ts, 3, 43)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a12 : new (x: Base[], y: Derived2[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived2[] +>Array : T[] +>Derived2 : Derived2 +>Array : T[] +>Derived : Derived a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(constructSignatureAssignabilityInInheritance2.ts, 20, 68)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 21, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : Derived[], Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 21, 29)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a13 : new (x: Base[], y: Derived[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived[] +>Array : T[] +>Derived : Derived +>Array : T[] +>Derived : Derived a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(constructSignatureAssignabilityInInheritance2.ts, 21, 67)) ->x : { a: string; b: number; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 14)) ->a : string, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 18)) ->b : number, Symbol(b, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 29)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a14 : new (x: { a: string; b: number; }) => Object +>x : { a: string; b: number; } +>a : string +>b : number +>Object : Object a15: { ->a15 : { new (x: number): number[]; new (x: string): string[]; }, Symbol(a15, Decl(constructSignatureAssignabilityInInheritance2.ts, 22, 53)) +>a15 : { new (x: number): number[]; new (x: string): string[]; } new (x: number): number[]; ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 24, 13)) +>x : number new (x: string): string[]; ->x : string, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 25, 13)) +>x : string }; a16: { ->a16 : { new (x: T): number[]; new (x: U): number[]; }, Symbol(a16, Decl(constructSignatureAssignabilityInInheritance2.ts, 26, 6)) +>a16 : { new (x: T): number[]; new (x: U): number[]; } new (x: T): number[]; ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 28, 13)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 28, 32)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 28, 13)) +>T : T +>Derived : Derived +>x : T +>T : T new (x: U): number[]; ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 29, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 29, 29)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 29, 13)) +>U : U +>Base : Base +>x : U +>U : U }; a17: { ->a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; }, Symbol(a17, Decl(constructSignatureAssignabilityInInheritance2.ts, 30, 6)) +>a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } new (x: new (a: number) => number): number[]; ->x : new (a: number) => number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 32, 13)) ->a : number, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 32, 21)) +>x : new (a: number) => number +>a : number new (x: new (a: string) => string): string[]; ->x : new (a: string) => string, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 33, 13)) ->a : string, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 33, 21)) +>x : new (a: string) => string +>a : string }; a18: { ->a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }, Symbol(a18, Decl(constructSignatureAssignabilityInInheritance2.ts, 34, 6)) +>a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } new (x: { ->x : { new (a: number): number; new (a: string): string; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 36, 13)) +>x : { new (a: number): number; new (a: string): string; } new (a: number): number; ->a : number, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 37, 17)) +>a : number new (a: string): string; ->a : string, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 38, 17)) +>a : string }): any[]; new (x: { ->x : { new (a: boolean): boolean; new (a: Date): Date; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 40, 13)) +>x : { new (a: boolean): boolean; new (a: Date): Date; } new (a: boolean): boolean; ->a : boolean, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 41, 17)) +>a : boolean new (a: Date): Date; ->a : Date, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 42, 17)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : Date +>Date : Date +>Date : Date }): any[]; }; @@ -204,195 +204,195 @@ interface A { // T // S's interface I extends A { ->I : I, Symbol(I, Decl(constructSignatureAssignabilityInInheritance2.ts, 45, 1)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance2.ts, 5, 49)) +>I : I +>A : A // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 48, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 12)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: new (x: T) => string[]; // ok ->a2 : new (x: T) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance2.ts, 50, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T a3: new (x: T) => T; // ok since Base returns void ->a3 : new (x: T) => T, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance2.ts, 51, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 13)) +>a3 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number ->a4 : new (x: T, y: U) => T, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance2.ts, 52, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 15)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 19)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 13)) ->y : U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 24)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 13)) +>a4 : new (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance2.ts, 53, 36)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 15)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 19)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 13)) +>a5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy ->a6 : new (x: (arg: T) => U) => T, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance2.ts, 54, 42)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 13)) +>a6 : new (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a7: new (x: (arg: T) => U) => (r: T) => U; // ok ->a7 : new (x: (arg: T) => U) => (r: T) => U, Symbol(a7, Decl(constructSignatureAssignabilityInInheritance2.ts, 55, 71)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 28)) ->r : T, Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 70)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 28)) +>a7 : new (x: (arg: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>r : T +>T : T +>U : U a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok ->a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(a8, Decl(constructSignatureAssignabilityInInheritance2.ts, 56, 81)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) ->y : (arg2: T) => U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 65)) ->arg2 : T, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 70)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) ->r : T, Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 89)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 28)) +>a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: T) => U +>arg2 : T +>T : T +>U : U +>r : T +>T : T +>U : U a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(a9, Decl(constructSignatureAssignabilityInInheritance2.ts, 57, 100)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) ->y : (arg2: { foo: string; bing: number; }) => U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 65)) ->arg2 : { foo: string; bing: number; }, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 70)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 77)) ->bing : number, Symbol(bing, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 90)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) ->r : T, Symbol(r, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 117)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 28)) +>a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: { foo: string; bing: number; }) => U +>arg2 : { foo: string; bing: number; } +>foo : string +>bing : number +>U : U +>r : T +>T : T +>U : U a10: new (...x: T[]) => T; // ok ->a10 : new (...x: T[]) => T, Symbol(a10, Decl(constructSignatureAssignabilityInInheritance2.ts, 58, 128)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 14)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : T[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 33)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 14)) +>a10 : new (...x: T[]) => T +>T : T +>Derived : Derived +>x : T[] +>T : T +>T : T a11: new (x: T, y: T) => T; // ok ->a11 : new (x: T, y: T) => T, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance2.ts, 59, 49)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) ->y : T, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 35)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 14)) +>a11 : new (x: T, y: T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : T +>T : T +>T : T a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Base[], y: T) => Derived[], Symbol(a12, Decl(constructSignatureAssignabilityInInheritance2.ts, 60, 47)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 37)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : T, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) +>a12 : new (x: Base[], y: T) => Derived[] +>T : T +>Array : T[] +>Base : Base +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>Array : T[] +>Derived : Derived a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Base[], y: T) => T, Symbol(a13, Decl(constructSignatureAssignabilityInInheritance2.ts, 61, 77)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance2.ts, 2, 27)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 40)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->y : T, Symbol(y, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 55)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 14)) +>a13 : new (x: Base[], y: T) => T +>T : T +>Array : T[] +>Derived : Derived +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>T : T a14: new (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature ->a14 : new (x: { a: T; b: T; }) => T, Symbol(a14, Decl(constructSignatureAssignabilityInInheritance2.ts, 62, 67)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 14)) +>a14 : new (x: { a: T; b: T; }) => T +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a15: new (x: T) => T[]; // ok ->a15 : new (x: T) => T[], Symbol(a15, Decl(constructSignatureAssignabilityInInheritance2.ts, 63, 41)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 14)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 17)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 14)) +>a15 : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a16: new (x: T) => number[]; // ok ->a16 : new (x: T) => number[], Symbol(a16, Decl(constructSignatureAssignabilityInInheritance2.ts, 64, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance2.ts, 0, 0)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 14)) +>a16 : new (x: T) => number[] +>T : T +>Base : Base +>x : T +>T : T a17: new (x: new (a: T) => T) => T[]; // ok ->a17 : new (x: new (a: T) => T) => T[], Symbol(a17, Decl(constructSignatureAssignabilityInInheritance2.ts, 65, 48)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) ->x : new (a: T) => T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 25)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 14)) +>a17 : new (x: new (a: T) => T) => T[] +>T : T +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T a18: new (x: new (a: T) => T) => T[]; // ok, no inferences for T but assignable to any ->a18 : new (x: new (a: T) => T) => T[], Symbol(a18, Decl(constructSignatureAssignabilityInInheritance2.ts, 66, 44)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) ->x : new (a: T) => T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 25)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance2.ts, 67, 14)) +>a18 : new (x: new (a: T) => T) => T[] +>T : T +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.symbols b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.symbols new file mode 100644 index 0000000000000..33ae7e0f6d69a --- /dev/null +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.symbols @@ -0,0 +1,332 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance4.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation + +class Base { foo: string; } +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance4.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance4.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>baz : Symbol(baz, Decl(constructSignatureAssignabilityInInheritance4.ts, 4, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance4.ts, 4, 47)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>bing : Symbol(bing, Decl(constructSignatureAssignabilityInInheritance4.ts, 5, 33)) + +interface A { // T +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance4.ts, 5, 49)) + + // M's + a: new (x: T) => T[]; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 7, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 12)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 12)) + + a2: new (x: T) => string[]; +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 13)) + + a3: new (x: T) => void; +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 13)) + + a4: new (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 19)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 24)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 15)) + + a5: new (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 41)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 19)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 13)) + + a6: new (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 42)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 29)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 33)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 13)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 13)) + + a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 58)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 17)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 31)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 36)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 44)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) + + a15: new (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 63)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) + + a16: new (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 43)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 30)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 40)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) + + a17: { +>a17 : Symbol(a17, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 56)) + + new (x: T): T[]; +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 29)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 13)) + + new (x: U): U[]; +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 13)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 32)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 13)) + + }; + a18: { +>a18 : Symbol(a18, Decl(constructSignatureAssignabilityInInheritance4.ts, 21, 6)) + + new (x: T): number[]; +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 23, 13)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 23, 32)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 23, 13)) + + new (x: U): number[]; +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 24, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 24, 29)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 24, 13)) + + }; + a19: { +>a19 : Symbol(a19, Decl(constructSignatureAssignabilityInInheritance4.ts, 25, 6)) + + new (x: new (a: T) => T): T[]; +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 32)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 40)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) + + new (x: new (a: U) => U): U[]; +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 29)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 37)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) + + }; + a20: { +>a20 : Symbol(a20, Decl(constructSignatureAssignabilityInInheritance4.ts, 29, 6)) + + new (x: { +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 31, 13)) + + new (a: T): T; +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 17)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 36)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 17)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 17)) + + new (a: U): U; +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 33)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 17)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 17)) + + }): any[]; + new (x: { +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 35, 13)) + + new (a: T): T; +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 33)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 17)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 17)) + + new (a: U): U; +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 17)) +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance4.ts, 3, 43)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 37)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 17)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 17)) + + }): any[]; + }; +} + +// S's +interface I extends A { +>I : Symbol(I, Decl(constructSignatureAssignabilityInInheritance4.ts, 40, 1)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance4.ts, 5, 49)) + + // N's + a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 43, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 12)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 12)) + + a2: new (x: T) => string[]; // ok +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 13)) + + a3: new (x: T) => T; // ok since Base returns void +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 13)) + + a4: new (x: T, y: U) => string; // ok, instantiation of N is a subtype of M, T is string, U is number +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 19)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 24)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 15)) + + a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 41)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 19)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 13)) + + a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 42)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 13)) + + a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 71)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 14)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 16)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 20)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 24)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 14)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 34)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 39)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 16)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 47)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 16)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) + + a15: new (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V +>a15 : Symbol(a15, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 66)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 14)) +>V : Symbol(V, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 16)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 20)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 24)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 30)) +>V : Symbol(V, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 16)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 14)) + + a16: new (x: { a: T; b: T }) => T[]; // ok, more general parameter type +>a16 : Symbol(a16, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 47)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) + + a17: new (x: T) => T[]; // ok, more general parameter type +>a17 : Symbol(a17, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 43)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 14)) + + a18: new (x: T) => number[]; // ok, more general parameter type +>a18 : Symbol(a18, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 43)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 14)) + + a19: new (x: new (a: T) => T) => T[]; // ok +>a19 : Symbol(a19, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 48)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 30)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 38)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) + + a20: new (x: new (a: T) => T) => any[]; // ok +>a20 : Symbol(a20, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 57)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 22)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 38)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 22)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 22)) +} diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types index e230afcb40814..7782389d69a7a 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types @@ -2,203 +2,203 @@ // checking subtype relations for function types as it relates to contextual signature instantiation class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance4.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance4.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(constructSignatureAssignabilityInInheritance4.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance4.ts, 4, 47)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(constructSignatureAssignabilityInInheritance4.ts, 5, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance4.ts, 5, 49)) +>A : A // M's a: new (x: T) => T[]; ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 7, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 12)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: new (x: T) => string[]; ->a2 : new (x: T) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance4.ts, 9, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T a3: new (x: T) => void; ->a3 : new (x: T) => void, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance4.ts, 10, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 13)) +>a3 : new (x: T) => void +>T : T +>x : T +>T : T a4: new (x: T, y: U) => string; ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance4.ts, 11, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 15)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 19)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 13)) ->y : U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 24)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 15)) +>a4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: new (x: (arg: T) => U) => T; ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance4.ts, 12, 41)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 15)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 19)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 13)) +>a5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: new (x: (arg: T) => Derived) => T; ->a6 : new (x: (arg: T) => Derived) => T, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance4.ts, 13, 42)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 29)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 33)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 13)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 13)) +>a6 : new (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance4.ts, 14, 58)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) ->x : { foo: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 17)) ->foo : T, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 31)) ->foo : T, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 36)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) ->bar : T, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 44)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(constructSignatureAssignabilityInInheritance4.ts, 15, 63)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 14)) +>a15 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(constructSignatureAssignabilityInInheritance4.ts, 16, 43)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 30)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 40)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 14)) +>a16 : new (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a17: { ->a17 : { new (x: T): T[]; new (x: U): U[]; }, Symbol(a17, Decl(constructSignatureAssignabilityInInheritance4.ts, 17, 56)) +>a17 : { new (x: T): T[]; new (x: U): U[]; } new (x: T): T[]; ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 29)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 19, 13)) +>T : T +>Base : Base +>x : T +>T : T +>T : T new (x: U): U[]; ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 13)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->x : U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 32)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 20, 13)) +>U : U +>Derived : Derived +>x : U +>U : U +>U : U }; a18: { ->a18 : { new (x: T): number[]; new (x: U): number[]; }, Symbol(a18, Decl(constructSignatureAssignabilityInInheritance4.ts, 21, 6)) +>a18 : { new (x: T): number[]; new (x: U): number[]; } new (x: T): number[]; ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 23, 13)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 23, 32)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 23, 13)) +>T : T +>Derived : Derived +>x : T +>T : T new (x: U): number[]; ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 24, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 24, 29)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 24, 13)) +>U : U +>Base : Base +>x : U +>U : U }; a19: { ->a19 : { new (x: new (a: T) => T): T[]; new (x: new (a: U) => U): U[]; }, Symbol(a19, Decl(constructSignatureAssignabilityInInheritance4.ts, 25, 6)) +>a19 : { new (x: new (a: T) => T): T[]; new (x: new (a: U) => U): U[]; } new (x: new (a: T) => T): T[]; ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->x : new (a: T) => T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 32)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 40)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 27, 13)) +>T : T +>Derived : Derived +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T new (x: new (a: U) => U): U[]; ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : new (a: U) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 29)) ->a : U, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 37)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 28, 13)) +>U : U +>Base : Base +>x : new (a: U) => U +>a : U +>U : U +>U : U +>U : U }; a20: { ->a20 : { new (x: { new (a: T): T; new (a: U): U; }): any[]; new (x: { new (a: T): T; new (a: U): U; }): any[]; }, Symbol(a20, Decl(constructSignatureAssignabilityInInheritance4.ts, 29, 6)) +>a20 : { new (x: { new (a: T): T; new (a: U): U; }): any[]; new (x: { new (a: T): T; new (a: U): U; }): any[]; } new (x: { ->x : { new (a: T): T; new (a: U): U; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 31, 13)) +>x : { new (a: T): T; new (a: U): U; } new (a: T): T; ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 17)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 36)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 17)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 32, 17)) +>T : T +>Derived : Derived +>a : T +>T : T +>T : T new (a: U): U; ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->a : U, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 33)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 17)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 33, 17)) +>U : U +>Base : Base +>a : U +>U : U +>U : U }): any[]; new (x: { ->x : { new (a: T): T; new (a: U): U; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 35, 13)) +>x : { new (a: T): T; new (a: U): U; } new (a: T): T; ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 33)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 17)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 36, 17)) +>T : T +>Base : Base +>a : T +>T : T +>T : T new (a: U): U; ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 17)) ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance4.ts, 3, 43)) ->a : U, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 37)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 17)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 37, 17)) +>U : U +>Derived2 : Derived2 +>a : U +>U : U +>U : U }): any[]; }; @@ -206,127 +206,127 @@ interface A { // T // S's interface I extends A { ->I : I, Symbol(I, Decl(constructSignatureAssignabilityInInheritance4.ts, 40, 1)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance4.ts, 5, 49)) +>I : I +>A : A // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 43, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 12)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: new (x: T) => string[]; // ok ->a2 : new (x: T) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance4.ts, 45, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T a3: new (x: T) => T; // ok since Base returns void ->a3 : new (x: T) => T, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance4.ts, 46, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 13)) +>a3 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T a4: new (x: T, y: U) => string; // ok, instantiation of N is a subtype of M, T is string, U is number ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance4.ts, 47, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 15)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 19)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 13)) ->y : U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 24)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 15)) +>a4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance4.ts, 48, 41)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 15)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 19)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 13)) +>a5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy ->a6 : new (x: (arg: T) => U) => T, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance4.ts, 49, 42)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance4.ts, 2, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 13)) +>a6 : new (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok ->a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance4.ts, 50, 71)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 14)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 16)) ->x : { foo: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 20)) ->foo : T, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 24)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 14)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 34)) ->foo : U, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 39)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 16)) ->bar : U, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 47)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 16)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) +>a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>T : T +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base a15: new (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V ->a15 : new (x: { a: U; b: V; }) => U[], Symbol(a15, Decl(constructSignatureAssignabilityInInheritance4.ts, 51, 66)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 14)) ->V : V, Symbol(V, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 16)) ->x : { a: U; b: V; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 20)) ->a : U, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 24)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 14)) ->b : V, Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 30)) ->V : V, Symbol(V, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 16)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 14)) +>a15 : new (x: { a: U; b: V; }) => U[] +>U : U +>V : V +>x : { a: U; b: V; } +>a : U +>U : U +>b : V +>V : V +>U : U a16: new (x: { a: T; b: T }) => T[]; // ok, more general parameter type ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(constructSignatureAssignabilityInInheritance4.ts, 52, 47)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 14)) +>a16 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a17: new (x: T) => T[]; // ok, more general parameter type ->a17 : new (x: T) => T[], Symbol(a17, Decl(constructSignatureAssignabilityInInheritance4.ts, 53, 43)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 14)) +>a17 : new (x: T) => T[] +>T : T +>Base : Base +>x : T +>T : T +>T : T a18: new (x: T) => number[]; // ok, more general parameter type ->a18 : new (x: T) => number[], Symbol(a18, Decl(constructSignatureAssignabilityInInheritance4.ts, 54, 43)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 14)) +>a18 : new (x: T) => number[] +>T : T +>Base : Base +>x : T +>T : T a19: new (x: new (a: T) => T) => T[]; // ok ->a19 : new (x: new (a: T) => T) => T[], Symbol(a19, Decl(constructSignatureAssignabilityInInheritance4.ts, 55, 48)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->x : new (a: T) => T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 30)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 38)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 14)) +>a19 : new (x: new (a: T) => T) => T[] +>T : T +>Base : Base +>x : new (a: T) => T +>a : T +>T : T +>T : T +>T : T a20: new (x: new (a: T) => T) => any[]; // ok ->a20 : new (x: new (a: T) => T) => any[], Symbol(a20, Decl(constructSignatureAssignabilityInInheritance4.ts, 56, 57)) ->x : new (a: T) => T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 22)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance4.ts, 0, 0)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 38)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 22)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance4.ts, 57, 22)) +>a20 : new (x: new (a: T) => T) => any[] +>x : new (a: T) => T +>T : T +>Base : Base +>a : T +>T : T +>T : T } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.symbols b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.symbols new file mode 100644 index 0000000000000..2be72546bee32 --- /dev/null +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.symbols @@ -0,0 +1,314 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance5.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation +// same as subtypingWithConstructSignatures2 just with an extra level of indirection in the inheritance chain + +class Base { foo: string; } +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance5.ts, 4, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance5.ts, 4, 43)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>baz : Symbol(baz, Decl(constructSignatureAssignabilityInInheritance5.ts, 5, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance5.ts, 5, 47)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>bing : Symbol(bing, Decl(constructSignatureAssignabilityInInheritance5.ts, 6, 33)) + +interface A { // T +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance5.ts, 6, 49)) + + // M's + a: new (x: number) => number[]; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 8, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 10, 12)) + + a2: new (x: number) => string[]; +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance5.ts, 10, 35)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 11, 13)) + + a3: new (x: number) => void; +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance5.ts, 11, 36)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 12, 13)) + + a4: new (x: string, y: number) => string; +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance5.ts, 12, 32)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 13, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 13, 23)) + + a5: new (x: (arg: string) => number) => string; +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance5.ts, 13, 45)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 14, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 14, 17)) + + a6: new (x: (arg: Base) => Derived) => Base; +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance5.ts, 14, 51)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 15, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 15, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) + + a7: new (x: (arg: Base) => Derived) => (r: Base) => Derived; +>a7 : Symbol(a7, Decl(constructSignatureAssignabilityInInheritance5.ts, 15, 48)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 44)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a8: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a8 : Symbol(a8, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 64)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 39)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 44)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 72)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a9: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; +>a9 : Symbol(a9, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 92)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 13)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 17)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 39)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 44)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 72)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a10: new (...x: Derived[]) => Derived; +>a10 : Symbol(a10, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 92)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 19, 14)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance5.ts, 19, 42)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 14)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 18)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 33)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 38)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 51)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) + + a12: new (x: Array, y: Array) => Array; +>a12 : Symbol(a12, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 75)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 21, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 21, 29)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance5.ts, 4, 43)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a13: new (x: Array, y: Array) => Array; +>a13 : Symbol(a13, Decl(constructSignatureAssignabilityInInheritance5.ts, 21, 68)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 22, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 22, 29)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a14: new (x: { a: string; b: number }) => Object; +>a14 : Symbol(a14, Decl(constructSignatureAssignabilityInInheritance5.ts, 22, 67)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 23, 14)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 23, 18)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance5.ts, 23, 29)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +interface B extends A { +>B : Symbol(B, Decl(constructSignatureAssignabilityInInheritance5.ts, 24, 1)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance5.ts, 6, 49)) + + a: new (x: T) => T[]; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 26, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 12)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 12)) +} + +// S's +interface I extends B { +>I : Symbol(I, Decl(constructSignatureAssignabilityInInheritance5.ts, 28, 1)) +>B : Symbol(B, Decl(constructSignatureAssignabilityInInheritance5.ts, 24, 1)) + + // N's + a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 31, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 12)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 12)) + + a2: new (x: T) => string[]; // ok +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 13)) + + a3: new (x: T) => T; // ok since Base returns void +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 13)) + + a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 19)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 24)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 13)) + + a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 36)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 19)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 13)) + + a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 42)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 13)) + + a7: new (x: (arg: T) => U) => (r: T) => U; // ok +>a7 : Symbol(a7, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 71)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 28)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 70)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 28)) + + a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok +>a8 : Symbol(a8, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 81)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 65)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 70)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 89)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) + + a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal +>a9 : Symbol(a9, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 100)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 48)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 65)) +>arg2 : Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 70)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 77)) +>bing : Symbol(bing, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 90)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) +>r : Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 117)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) + + a10: new (...x: T[]) => T; // ok +>a10 : Symbol(a10, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 128)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 14)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 33)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 14)) + + a11: new (x: T, y: T) => T; // ok +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 49)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 35)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) + + a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type +>a12 : Symbol(a12, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 47)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 37)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 52)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) + + a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds +>a13 : Symbol(a13, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 77)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 40)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 55)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 14)) + + a14: new (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature +>a14 : Symbol(a14, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 67)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) +} diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types index a0fb830f0d2a7..dea9478b37231 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types @@ -3,312 +3,312 @@ // same as subtypingWithConstructSignatures2 just with an extra level of indirection in the inheritance chain class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance5.ts, 4, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance5.ts, 4, 43)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->baz : string, Symbol(baz, Decl(constructSignatureAssignabilityInInheritance5.ts, 5, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance5.ts, 5, 47)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(constructSignatureAssignabilityInInheritance5.ts, 6, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance5.ts, 6, 49)) +>A : A // M's a: new (x: number) => number[]; ->a : new (x: number) => number[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 8, 13)) ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 10, 12)) +>a : new (x: number) => number[] +>x : number a2: new (x: number) => string[]; ->a2 : new (x: number) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance5.ts, 10, 35)) ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 11, 13)) +>a2 : new (x: number) => string[] +>x : number a3: new (x: number) => void; ->a3 : new (x: number) => void, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance5.ts, 11, 36)) ->x : number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 12, 13)) +>a3 : new (x: number) => void +>x : number a4: new (x: string, y: number) => string; ->a4 : new (x: string, y: number) => string, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance5.ts, 12, 32)) ->x : string, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 13, 13)) ->y : number, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 13, 23)) +>a4 : new (x: string, y: number) => string +>x : string +>y : number a5: new (x: (arg: string) => number) => string; ->a5 : new (x: (arg: string) => number) => string, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance5.ts, 13, 45)) ->x : (arg: string) => number, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 14, 13)) ->arg : string, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 14, 17)) +>a5 : new (x: (arg: string) => number) => string +>x : (arg: string) => number +>arg : string a6: new (x: (arg: Base) => Derived) => Base; ->a6 : new (x: (arg: Base) => Derived) => Base, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance5.ts, 14, 51)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 15, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 15, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>a6 : new (x: (arg: Base) => Derived) => Base +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>Base : Base a7: new (x: (arg: Base) => Derived) => (r: Base) => Derived; ->a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived, Symbol(a7, Decl(constructSignatureAssignabilityInInheritance5.ts, 15, 48)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->r : Base, Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 44)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a8: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a8, Decl(constructSignatureAssignabilityInInheritance5.ts, 16, 64)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 39)) ->arg2 : Base, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 44)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->r : Base, Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 72)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a9: new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; ->a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived, Symbol(a9, Decl(constructSignatureAssignabilityInInheritance5.ts, 17, 92)) ->x : (arg: Base) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 13)) ->arg : Base, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 17)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->y : (arg2: Base) => Derived, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 39)) ->arg2 : Base, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 44)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->r : Base, Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 72)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived +>x : (arg: Base) => Derived +>arg : Base +>Base : Base +>Derived : Derived +>y : (arg2: Base) => Derived +>arg2 : Base +>Base : Base +>Derived : Derived +>r : Base +>Base : Base +>Derived : Derived a10: new (...x: Derived[]) => Derived; ->a10 : new (...x: Derived[]) => Derived, Symbol(a10, Decl(constructSignatureAssignabilityInInheritance5.ts, 18, 92)) ->x : Derived[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 19, 14)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a10 : new (...x: Derived[]) => Derived +>x : Derived[] +>Derived : Derived +>Derived : Derived a11: new (x: { foo: string }, y: { foo: string; bar: string }) => Base; ->a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance5.ts, 19, 42)) ->x : { foo: string; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 14)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 18)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 33)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 38)) ->bar : string, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 51)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) +>a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base +>x : { foo: string; } +>foo : string +>y : { foo: string; bar: string; } +>foo : string +>bar : string +>Base : Base a12: new (x: Array, y: Array) => Array; ->a12 : new (x: Base[], y: Derived2[]) => Derived[], Symbol(a12, Decl(constructSignatureAssignabilityInInheritance5.ts, 20, 75)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 21, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : Derived2[], Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 21, 29)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance5.ts, 4, 43)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a12 : new (x: Base[], y: Derived2[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived2[] +>Array : T[] +>Derived2 : Derived2 +>Array : T[] +>Derived : Derived a13: new (x: Array, y: Array) => Array; ->a13 : new (x: Base[], y: Derived[]) => Derived[], Symbol(a13, Decl(constructSignatureAssignabilityInInheritance5.ts, 21, 68)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 22, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : Derived[], Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 22, 29)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a13 : new (x: Base[], y: Derived[]) => Derived[] +>x : Base[] +>Array : T[] +>Base : Base +>y : Derived[] +>Array : T[] +>Derived : Derived +>Array : T[] +>Derived : Derived a14: new (x: { a: string; b: number }) => Object; ->a14 : new (x: { a: string; b: number; }) => Object, Symbol(a14, Decl(constructSignatureAssignabilityInInheritance5.ts, 22, 67)) ->x : { a: string; b: number; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 23, 14)) ->a : string, Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 23, 18)) ->b : number, Symbol(b, Decl(constructSignatureAssignabilityInInheritance5.ts, 23, 29)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>a14 : new (x: { a: string; b: number; }) => Object +>x : { a: string; b: number; } +>a : string +>b : number +>Object : Object } interface B extends A { ->B : B, Symbol(B, Decl(constructSignatureAssignabilityInInheritance5.ts, 24, 1)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance5.ts, 6, 49)) +>B : B +>A : A a: new (x: T) => T[]; ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 26, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 12)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 27, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T } // S's interface I extends B { ->I : I, Symbol(I, Decl(constructSignatureAssignabilityInInheritance5.ts, 28, 1)) ->B : B, Symbol(B, Decl(constructSignatureAssignabilityInInheritance5.ts, 24, 1)) +>I : I +>B : B // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 31, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 12)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: new (x: T) => string[]; // ok ->a2 : new (x: T) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance5.ts, 33, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T a3: new (x: T) => T; // ok since Base returns void ->a3 : new (x: T) => T, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance5.ts, 34, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 13)) +>a3 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number ->a4 : new (x: T, y: U) => T, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance5.ts, 35, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 15)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 19)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 13)) ->y : U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 24)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 13)) +>a4 : new (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance5.ts, 36, 36)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 15)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 19)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 13)) +>a5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy ->a6 : new (x: (arg: T) => U) => T, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance5.ts, 37, 42)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 13)) +>a6 : new (x: (arg: T) => U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a7: new (x: (arg: T) => U) => (r: T) => U; // ok ->a7 : new (x: (arg: T) => U) => (r: T) => U, Symbol(a7, Decl(constructSignatureAssignabilityInInheritance5.ts, 38, 71)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 28)) ->r : T, Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 70)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 28)) +>a7 : new (x: (arg: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>r : T +>T : T +>U : U a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok ->a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U, Symbol(a8, Decl(constructSignatureAssignabilityInInheritance5.ts, 39, 81)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) ->y : (arg2: T) => U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 65)) ->arg2 : T, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 70)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) ->r : T, Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 89)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 28)) +>a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: T) => U +>arg2 : T +>T : T +>U : U +>r : T +>T : T +>U : U a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal ->a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U, Symbol(a9, Decl(constructSignatureAssignabilityInInheritance5.ts, 40, 100)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 48)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) ->y : (arg2: { foo: string; bing: number; }) => U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 65)) ->arg2 : { foo: string; bing: number; }, Symbol(arg2, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 70)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 77)) ->bing : number, Symbol(bing, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 90)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) ->r : T, Symbol(r, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 117)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 28)) +>a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>y : (arg2: { foo: string; bing: number; }) => U +>arg2 : { foo: string; bing: number; } +>foo : string +>bing : number +>U : U +>r : T +>T : T +>U : U a10: new (...x: T[]) => T; // ok ->a10 : new (...x: T[]) => T, Symbol(a10, Decl(constructSignatureAssignabilityInInheritance5.ts, 41, 128)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 14)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : T[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 33)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 14)) +>a10 : new (...x: T[]) => T +>T : T +>Derived : Derived +>x : T[] +>T : T +>T : T a11: new (x: T, y: T) => T; // ok ->a11 : new (x: T, y: T) => T, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance5.ts, 42, 49)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) ->y : T, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 35)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 14)) +>a11 : new (x: T, y: T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : T +>T : T +>T : T a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Base[], y: T) => Derived[], Symbol(a12, Decl(constructSignatureAssignabilityInInheritance5.ts, 43, 47)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 37)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : T, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 52)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) +>a12 : new (x: Base[], y: T) => Derived[] +>T : T +>Array : T[] +>Base : Base +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>Array : T[] +>Derived : Derived a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Base[], y: T) => T, Symbol(a13, Decl(constructSignatureAssignabilityInInheritance5.ts, 44, 77)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance5.ts, 3, 27)) ->x : Base[], Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 40)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance5.ts, 0, 0)) ->y : T, Symbol(y, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 55)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 14)) +>a13 : new (x: Base[], y: T) => T +>T : T +>Array : T[] +>Derived : Derived +>x : Base[] +>Array : T[] +>Base : Base +>y : T +>T : T +>T : T a14: new (x: { a: T; b: T }) => T; // ok, best common type yields T = {} but that's satisfactory for this signature ->a14 : new (x: { a: T; b: T; }) => T, Symbol(a14, Decl(constructSignatureAssignabilityInInheritance5.ts, 45, 67)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance5.ts, 46, 14)) +>a14 : new (x: { a: T; b: T; }) => T +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.symbols b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.symbols new file mode 100644 index 0000000000000..6f80b15484cae --- /dev/null +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.symbols @@ -0,0 +1,209 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/constructSignatureAssignabilityInInheritance6.ts === +// checking subtype relations for function types as it relates to contextual signature instantiation +// same as subtypingWithConstructSignatures4 but using class type parameters instead of generic signatures +// all are errors + +class Base { foo: string; } +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 27)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance6.ts, 5, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance6.ts, 5, 43)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 27)) +>baz : Symbol(baz, Decl(constructSignatureAssignabilityInInheritance6.ts, 6, 32)) + +class OtherDerived extends Base { bing: string; } +>OtherDerived : Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance6.ts, 6, 47)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>bing : Symbol(bing, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 33)) + +interface A { // T +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + // M's + a: new (x: T) => T[]; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 9, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 12)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 12)) + + a2: new (x: T) => string[]; +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 28)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 13)) + + a3: new (x: T) => void; +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 13)) + + a4: new (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 30)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 19)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 24)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 15)) + + a5: new (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 41)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 15)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 19)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 23)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 15)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 13)) + + a6: new (x: (arg: T) => Derived) => T; +>a6 : Symbol(a6, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 42)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 13)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 29)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 33)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 13)) +>Derived : Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 13)) + + a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 58)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 17)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 31)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 36)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 44)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) + + a15: new (x: { a: T; b: T }) => T[]; +>a15 : Symbol(a15, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 63)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 17)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 27)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) + + a16: new (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 43)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 30)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 34)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 40)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) +} + +// S's +interface I extends A { +>I : Symbol(I, Decl(constructSignatureAssignabilityInInheritance6.ts, 20, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 12)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a: new (x: T) => T[]; +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 26)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 24, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 12)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 12)) +} + +interface I2 extends A { +>I2 : Symbol(I2, Decl(constructSignatureAssignabilityInInheritance6.ts, 25, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 27, 13)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a2: new (x: T) => string[]; +>a2 : Symbol(a2, Decl(constructSignatureAssignabilityInInheritance6.ts, 27, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 28, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 27, 13)) +} + +interface I3 extends A { +>I3 : Symbol(I3, Decl(constructSignatureAssignabilityInInheritance6.ts, 29, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 13)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a3: new (x: T) => T; +>a3 : Symbol(a3, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 32, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 13)) +} + +interface I4 extends A { +>I4 : Symbol(I4, Decl(constructSignatureAssignabilityInInheritance6.ts, 33, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 35, 13)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a4: new (x: T, y: U) => string; +>a4 : Symbol(a4, Decl(constructSignatureAssignabilityInInheritance6.ts, 35, 27)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 16)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 35, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 21)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 13)) +} + +interface I5 extends A { +>I5 : Symbol(I5, Decl(constructSignatureAssignabilityInInheritance6.ts, 37, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 13)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a5: new (x: (arg: T) => U) => T; +>a5 : Symbol(a5, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 27)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 13)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 16)) +>arg : Symbol(arg, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 20)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 13)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 13)) +} + +interface I7 extends A { +>I7 : Symbol(I7, Decl(constructSignatureAssignabilityInInheritance6.ts, 41, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 43, 13)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; +>a11 : Symbol(a11, Decl(constructSignatureAssignabilityInInheritance6.ts, 43, 27)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 14)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 17)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 21)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 43, 13)) +>y : Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 31)) +>foo : Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 36)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 14)) +>bar : Symbol(bar, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 44)) +>U : Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 14)) +>Base : Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +} + +interface I9 extends A { +>I9 : Symbol(I9, Decl(constructSignatureAssignabilityInInheritance6.ts, 45, 1)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) +>A : Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) + + a16: new (x: { a: T; b: T }) => T[]; +>a16 : Symbol(a16, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 27)) +>x : Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 48, 14)) +>a : Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 48, 18)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) +>b : Symbol(b, Decl(constructSignatureAssignabilityInInheritance6.ts, 48, 24)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) +>T : Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) +} diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types index 259396d2ce99c..193a19a5f2c2d 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types @@ -4,206 +4,206 @@ // all are errors class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 27)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance6.ts, 5, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(constructSignatureAssignabilityInInheritance6.ts, 5, 43)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 27)) ->baz : string, Symbol(baz, Decl(constructSignatureAssignabilityInInheritance6.ts, 6, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string class OtherDerived extends Base { bing: string; } ->OtherDerived : OtherDerived, Symbol(OtherDerived, Decl(constructSignatureAssignabilityInInheritance6.ts, 6, 47)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) ->bing : string, Symbol(bing, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 33)) +>OtherDerived : OtherDerived +>Base : Base +>bing : string interface A { // T ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>A : A // M's a: new (x: T) => T[]; ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 9, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 12)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 12)) +>a : new (x: T) => T[] +>T : T +>x : T +>T : T +>T : T a2: new (x: T) => string[]; ->a2 : new (x: T) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance6.ts, 11, 28)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 13)) +>a2 : new (x: T) => string[] +>T : T +>x : T +>T : T a3: new (x: T) => void; ->a3 : new (x: T) => void, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance6.ts, 12, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 13)) +>a3 : new (x: T) => void +>T : T +>x : T +>T : T a4: new (x: T, y: U) => string; ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance6.ts, 13, 30)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 15)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 19)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 13)) ->y : U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 24)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 15)) +>a4 : new (x: T, y: U) => string +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U a5: new (x: (arg: T) => U) => T; ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance6.ts, 14, 41)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 15)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 19)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 23)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 15)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 13)) +>a5 : new (x: (arg: T) => U) => T +>T : T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T a6: new (x: (arg: T) => Derived) => T; ->a6 : new (x: (arg: T) => Derived) => T, Symbol(a6, Decl(constructSignatureAssignabilityInInheritance6.ts, 15, 42)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 13)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) ->x : (arg: T) => Derived, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 29)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 33)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 13)) ->Derived : Derived, Symbol(Derived, Decl(constructSignatureAssignabilityInInheritance6.ts, 4, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 13)) +>a6 : new (x: (arg: T) => Derived) => T +>T : T +>Base : Base +>x : (arg: T) => Derived +>arg : T +>T : T +>Derived : Derived +>T : T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance6.ts, 16, 58)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) ->x : { foo: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 17)) ->foo : T, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) ->y : { foo: T; bar: T; }, Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 31)) ->foo : T, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 36)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) ->bar : T, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 44)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>T : T +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T +>Base : Base a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[], Symbol(a15, Decl(constructSignatureAssignabilityInInheritance6.ts, 17, 63)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 17)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 27)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 14)) +>a15 : new (x: { a: T; b: T; }) => T[] +>T : T +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(constructSignatureAssignabilityInInheritance6.ts, 18, 43)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 30)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 34)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 40)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 19, 14)) +>a16 : new (x: { a: T; b: T; }) => T[] +>T : T +>Base : Base +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } // S's interface I extends A { ->I : I, Symbol(I, Decl(constructSignatureAssignabilityInInheritance6.ts, 20, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 12)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I : I +>T : T +>A : A a: new (x: T) => T[]; ->a : new (x: T) => T[], Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 26)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 24, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 12)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 23, 12)) +>a : new (x: T) => T[] +>x : T +>T : T +>T : T } interface I2 extends A { ->I2 : I2, Symbol(I2, Decl(constructSignatureAssignabilityInInheritance6.ts, 25, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 27, 13)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I2 : I2 +>T : T +>A : A a2: new (x: T) => string[]; ->a2 : new (x: T) => string[], Symbol(a2, Decl(constructSignatureAssignabilityInInheritance6.ts, 27, 27)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 28, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 27, 13)) +>a2 : new (x: T) => string[] +>x : T +>T : T } interface I3 extends A { ->I3 : I3, Symbol(I3, Decl(constructSignatureAssignabilityInInheritance6.ts, 29, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 13)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I3 : I3 +>T : T +>A : A a3: new (x: T) => T; ->a3 : new (x: T) => T, Symbol(a3, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 27)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 32, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 31, 13)) +>a3 : new (x: T) => T +>x : T +>T : T +>T : T } interface I4 extends A { ->I4 : I4, Symbol(I4, Decl(constructSignatureAssignabilityInInheritance6.ts, 33, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 35, 13)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I4 : I4 +>T : T +>A : A a4: new (x: T, y: U) => string; ->a4 : new (x: T, y: U) => string, Symbol(a4, Decl(constructSignatureAssignabilityInInheritance6.ts, 35, 27)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 13)) ->x : T, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 16)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 35, 13)) ->y : U, Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 21)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 36, 13)) +>a4 : new (x: T, y: U) => string +>U : U +>x : T +>T : T +>y : U +>U : U } interface I5 extends A { ->I5 : I5, Symbol(I5, Decl(constructSignatureAssignabilityInInheritance6.ts, 37, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 13)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I5 : I5 +>T : T +>A : A a5: new (x: (arg: T) => U) => T; ->a5 : new (x: (arg: T) => U) => T, Symbol(a5, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 27)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 13)) ->x : (arg: T) => U, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 16)) ->arg : T, Symbol(arg, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 20)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 13)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 40, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 39, 13)) +>a5 : new (x: (arg: T) => U) => T +>U : U +>x : (arg: T) => U +>arg : T +>T : T +>U : U +>T : T } interface I7 extends A { ->I7 : I7, Symbol(I7, Decl(constructSignatureAssignabilityInInheritance6.ts, 41, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 43, 13)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I7 : I7 +>T : T +>A : A a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base, Symbol(a11, Decl(constructSignatureAssignabilityInInheritance6.ts, 43, 27)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 14)) ->x : { foo: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 17)) ->foo : T, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 21)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 43, 13)) ->y : { foo: U; bar: U; }, Symbol(y, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 31)) ->foo : U, Symbol(foo, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 36)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 14)) ->bar : U, Symbol(bar, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 44)) ->U : U, Symbol(U, Decl(constructSignatureAssignabilityInInheritance6.ts, 44, 14)) ->Base : Base, Symbol(Base, Decl(constructSignatureAssignabilityInInheritance6.ts, 0, 0)) +>a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>U : U +>x : { foo: T; } +>foo : T +>T : T +>y : { foo: U; bar: U; } +>foo : U +>U : U +>bar : U +>U : U +>Base : Base } interface I9 extends A { ->I9 : I9, Symbol(I9, Decl(constructSignatureAssignabilityInInheritance6.ts, 45, 1)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) ->A : A, Symbol(A, Decl(constructSignatureAssignabilityInInheritance6.ts, 7, 49)) +>I9 : I9 +>T : T +>A : A a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[], Symbol(a16, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 27)) ->x : { a: T; b: T; }, Symbol(x, Decl(constructSignatureAssignabilityInInheritance6.ts, 48, 14)) ->a : T, Symbol(a, Decl(constructSignatureAssignabilityInInheritance6.ts, 48, 18)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) ->b : T, Symbol(b, Decl(constructSignatureAssignabilityInInheritance6.ts, 48, 24)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) ->T : T, Symbol(T, Decl(constructSignatureAssignabilityInInheritance6.ts, 47, 13)) +>a16 : new (x: { a: T; b: T; }) => T[] +>x : { a: T; b: T; } +>a : T +>T : T +>b : T +>T : T +>T : T } diff --git a/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.symbols b/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.symbols new file mode 100644 index 0000000000000..77ab51f057af0 --- /dev/null +++ b/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.symbols @@ -0,0 +1,152 @@ +=== tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithIdenticalOverloads.ts === +// Duplicate overloads of construct signatures should generate errors + +class C { +>C : Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) + + constructor(x: number, y: string); +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 3, 16)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 3, 26)) + + constructor(x: number, y: string); // error +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 4, 16)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 4, 26)) + + constructor(x: number) { } +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 5, 16)) +} + +var r1 = new C(1, ''); +>r1 : Symbol(r1, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 3)) +>C : Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) + +class C2 { +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) + + constructor(x: T, y: string); +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 11, 16)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 11, 21)) + + constructor(x: T, y: string); // error +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 12, 16)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 12, 21)) + + constructor(x: T) { } +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 13, 16)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) +} + +var r2 = new C2(1, ''); +>r2 : Symbol(r2, Decl(constructSignaturesWithIdenticalOverloads.ts, 16, 3)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) + +interface I { +>I : Symbol(I, Decl(constructSignaturesWithIdenticalOverloads.ts, 16, 23)) + + new (x: number, y: string): C; +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 19, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 19, 19)) +>C : Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) + + new (x: number, y: string): C; // error +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 20, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 20, 19)) +>C : Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +} + +var i: I; +>i : Symbol(i, Decl(constructSignaturesWithIdenticalOverloads.ts, 23, 3)) +>I : Symbol(I, Decl(constructSignaturesWithIdenticalOverloads.ts, 16, 23)) + +var r3 = new i(1, ''); +>r3 : Symbol(r3, Decl(constructSignaturesWithIdenticalOverloads.ts, 24, 3)) +>i : Symbol(i, Decl(constructSignaturesWithIdenticalOverloads.ts, 23, 3)) + +interface I2 { +>I2 : Symbol(I2, Decl(constructSignaturesWithIdenticalOverloads.ts, 24, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) + + new (x: T, y: string): C2; +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 27, 9)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 27, 14)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) + + new (x: T, y: string): C2; // error +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 28, 9)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 28, 14)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 9)) +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 12)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 9)) + + new (x: T, y: string): C2; // error +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 9)) +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 12)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 9)) +} + +var i2: I2; +>i2 : Symbol(i2, Decl(constructSignaturesWithIdenticalOverloads.ts, 33, 3)) +>I2 : Symbol(I2, Decl(constructSignaturesWithIdenticalOverloads.ts, 24, 22)) + +var r4 = new i2(1, ''); +>r4 : Symbol(r4, Decl(constructSignaturesWithIdenticalOverloads.ts, 34, 3)) +>i2 : Symbol(i2, Decl(constructSignaturesWithIdenticalOverloads.ts, 33, 3)) + +var a: { +>a : Symbol(a, Decl(constructSignaturesWithIdenticalOverloads.ts, 36, 3)) + + new (x: number, y: string): C; +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 37, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 37, 19)) +>C : Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) + + new (x: number, y: string): C; // error +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 38, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 38, 19)) +>C : Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +} + +var r5 = new a(1, ''); +>r5 : Symbol(r5, Decl(constructSignaturesWithIdenticalOverloads.ts, 41, 3)) +>a : Symbol(a, Decl(constructSignaturesWithIdenticalOverloads.ts, 36, 3)) + +var b: { +>b : Symbol(b, Decl(constructSignaturesWithIdenticalOverloads.ts, 43, 3)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 9)) +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 12)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 9)) + + new (x: T, y: string): C2; // error +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 9)) +>x : Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 12)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 9)) +>y : Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 9)) +} + +var r6 = new b(1, ''); +>r6 : Symbol(r6, Decl(constructSignaturesWithIdenticalOverloads.ts, 48, 3)) +>b : Symbol(b, Decl(constructSignaturesWithIdenticalOverloads.ts, 43, 3)) + diff --git a/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types b/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types index becb2f708d81f..ca2cb6fefb75c 100644 --- a/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types +++ b/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types @@ -2,169 +2,169 @@ // Duplicate overloads of construct signatures should generate errors class C { ->C : C, Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +>C : C constructor(x: number, y: string); ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 3, 16)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 3, 26)) +>x : number +>y : string constructor(x: number, y: string); // error ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 4, 16)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 4, 26)) +>x : number +>y : string constructor(x: number) { } ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 5, 16)) +>x : number } var r1 = new C(1, ''); ->r1 : C, Symbol(r1, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 3)) +>r1 : C >new C(1, '') : C ->C : typeof C, Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +>C : typeof C >1 : number >'' : string class C2 { ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) +>C2 : C2 +>T : T constructor(x: T, y: string); ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 11, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 11, 21)) +>x : T +>T : T +>y : string constructor(x: T, y: string); // error ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 12, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 12, 21)) +>x : T +>T : T +>y : string constructor(x: T) { } ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 13, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 10, 9)) +>x : T +>T : T } var r2 = new C2(1, ''); ->r2 : C2, Symbol(r2, Decl(constructSignaturesWithIdenticalOverloads.ts, 16, 3)) +>r2 : C2 >new C2(1, '') : C2 ->C2 : typeof C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) +>C2 : typeof C2 >1 : number >'' : string interface I { ->I : I, Symbol(I, Decl(constructSignaturesWithIdenticalOverloads.ts, 16, 23)) +>I : I new (x: number, y: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 19, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 19, 19)) ->C : C, Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C new (x: number, y: string): C; // error ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 20, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 20, 19)) ->C : C, Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C } var i: I; ->i : I, Symbol(i, Decl(constructSignaturesWithIdenticalOverloads.ts, 23, 3)) ->I : I, Symbol(I, Decl(constructSignaturesWithIdenticalOverloads.ts, 16, 23)) +>i : I +>I : I var r3 = new i(1, ''); ->r3 : C, Symbol(r3, Decl(constructSignaturesWithIdenticalOverloads.ts, 24, 3)) +>r3 : C >new i(1, '') : C ->i : I, Symbol(i, Decl(constructSignaturesWithIdenticalOverloads.ts, 23, 3)) +>i : I >1 : number >'' : string interface I2 { ->I2 : I2, Symbol(I2, Decl(constructSignaturesWithIdenticalOverloads.ts, 24, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) +>I2 : I2 +>T : T new (x: T, y: string): C2; ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 27, 9)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 27, 14)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; // error ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 28, 9)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 28, 14)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 26, 13)) +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 29, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; // error ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 30, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T } var i2: I2; ->i2 : I2, Symbol(i2, Decl(constructSignaturesWithIdenticalOverloads.ts, 33, 3)) ->I2 : I2, Symbol(I2, Decl(constructSignaturesWithIdenticalOverloads.ts, 24, 22)) +>i2 : I2 +>I2 : I2 var r4 = new i2(1, ''); ->r4 : C2, Symbol(r4, Decl(constructSignaturesWithIdenticalOverloads.ts, 34, 3)) +>r4 : C2 >new i2(1, '') : C2 ->i2 : I2, Symbol(i2, Decl(constructSignaturesWithIdenticalOverloads.ts, 33, 3)) +>i2 : I2 >1 : number >'' : string var a: { ->a : { new (x: number, y: string): C; new (x: number, y: string): C; }, Symbol(a, Decl(constructSignaturesWithIdenticalOverloads.ts, 36, 3)) +>a : { new (x: number, y: string): C; new (x: number, y: string): C; } new (x: number, y: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 37, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 37, 19)) ->C : C, Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C new (x: number, y: string): C; // error ->x : number, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 38, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 38, 19)) ->C : C, Symbol(C, Decl(constructSignaturesWithIdenticalOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C } var r5 = new a(1, ''); ->r5 : C, Symbol(r5, Decl(constructSignaturesWithIdenticalOverloads.ts, 41, 3)) +>r5 : C >new a(1, '') : C ->a : { new (x: number, y: string): C; new (x: number, y: string): C; }, Symbol(a, Decl(constructSignaturesWithIdenticalOverloads.ts, 36, 3)) +>a : { new (x: number, y: string): C; new (x: number, y: string): C; } >1 : number >'' : string var b: { ->b : { new (x: T, y: string): C2; new (x: T, y: string): C2; }, Symbol(b, Decl(constructSignaturesWithIdenticalOverloads.ts, 43, 3)) +>b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 44, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; // error ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithIdenticalOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithIdenticalOverloads.ts, 45, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T } var r6 = new b(1, ''); ->r6 : C2, Symbol(r6, Decl(constructSignaturesWithIdenticalOverloads.ts, 48, 3)) +>r6 : C2 >new b(1, '') : C2 ->b : { new (x: T, y: string): C2; new (x: T, y: string): C2; }, Symbol(b, Decl(constructSignaturesWithIdenticalOverloads.ts, 43, 3)) +>b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } >1 : number >'' : string diff --git a/tests/baselines/reference/constructSignaturesWithOverloads.symbols b/tests/baselines/reference/constructSignaturesWithOverloads.symbols new file mode 100644 index 0000000000000..9130cb3f38a0a --- /dev/null +++ b/tests/baselines/reference/constructSignaturesWithOverloads.symbols @@ -0,0 +1,153 @@ +=== tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloads.ts === +// No errors expected for basic overloads of construct signatures + +class C { +>C : Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) + + constructor(x: number, y?: string); +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 3, 16)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 3, 26)) + + constructor(x: number, y: string); +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 4, 16)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 4, 26)) + + constructor(x: number) { } +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 5, 16)) +} + +var r1 = new C(1, ''); +>r1 : Symbol(r1, Decl(constructSignaturesWithOverloads.ts, 8, 3)) +>C : Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) + +class C2 { +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) + + constructor(x: T, y?: string); +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 11, 16)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 11, 21)) + + constructor(x: T, y: string); +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 12, 16)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 12, 21)) + + constructor(x: T) { } +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 13, 16)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) +} + +var r2 = new C2(1, ''); +>r2 : Symbol(r2, Decl(constructSignaturesWithOverloads.ts, 16, 3)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) + +interface I { +>I : Symbol(I, Decl(constructSignaturesWithOverloads.ts, 16, 23)) + + new(x: number, y?: string): C; +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 19, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 19, 18)) +>C : Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) + + new(x: number, y: string): C; +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 20, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 20, 18)) +>C : Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +} + +var i: I; +>i : Symbol(i, Decl(constructSignaturesWithOverloads.ts, 23, 3)) +>I : Symbol(I, Decl(constructSignaturesWithOverloads.ts, 16, 23)) + +var r3 = new i(1, ''); +>r3 : Symbol(r3, Decl(constructSignaturesWithOverloads.ts, 24, 3)) +>i : Symbol(i, Decl(constructSignaturesWithOverloads.ts, 23, 3)) + +interface I2 { +>I2 : Symbol(I2, Decl(constructSignaturesWithOverloads.ts, 24, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) + + new (x: T, y?: string): C2; +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 27, 9)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 27, 14)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) + + new (x: T, y: string): C2; +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 28, 9)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 28, 14)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) + + new (x: T, y?: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 29, 9)) +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 29, 12)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 29, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 29, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 29, 9)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 30, 9)) +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 30, 12)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 30, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 30, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 30, 9)) + +} + +var i2: I2; +>i2 : Symbol(i2, Decl(constructSignaturesWithOverloads.ts, 34, 3)) +>I2 : Symbol(I2, Decl(constructSignaturesWithOverloads.ts, 24, 22)) + +var r4 = new i2(1, ''); +>r4 : Symbol(r4, Decl(constructSignaturesWithOverloads.ts, 35, 3)) +>i2 : Symbol(i2, Decl(constructSignaturesWithOverloads.ts, 34, 3)) + +var a: { +>a : Symbol(a, Decl(constructSignaturesWithOverloads.ts, 37, 3)) + + new(x: number, y?: string): C; +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 38, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 38, 18)) +>C : Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) + + new(x: number, y: string): C; +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 39, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 39, 18)) +>C : Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +} + +var r5 = new a(1, ''); +>r5 : Symbol(r5, Decl(constructSignaturesWithOverloads.ts, 42, 3)) +>a : Symbol(a, Decl(constructSignaturesWithOverloads.ts, 37, 3)) + +var b: { +>b : Symbol(b, Decl(constructSignaturesWithOverloads.ts, 44, 3)) + + new(x: T, y?: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 45, 8)) +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 45, 11)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 45, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 45, 16)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 45, 8)) + + new(x: T, y: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 46, 8)) +>x : Symbol(x, Decl(constructSignaturesWithOverloads.ts, 46, 11)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 46, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloads.ts, 46, 16)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>T : Symbol(T, Decl(constructSignaturesWithOverloads.ts, 46, 8)) +} + +var r6 = new b(1, ''); +>r6 : Symbol(r6, Decl(constructSignaturesWithOverloads.ts, 49, 3)) +>b : Symbol(b, Decl(constructSignaturesWithOverloads.ts, 44, 3)) + diff --git a/tests/baselines/reference/constructSignaturesWithOverloads.types b/tests/baselines/reference/constructSignaturesWithOverloads.types index 105ab8ee8d450..8ff678c5de8f8 100644 --- a/tests/baselines/reference/constructSignaturesWithOverloads.types +++ b/tests/baselines/reference/constructSignaturesWithOverloads.types @@ -2,170 +2,170 @@ // No errors expected for basic overloads of construct signatures class C { ->C : C, Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +>C : C constructor(x: number, y?: string); ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 3, 16)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 3, 26)) +>x : number +>y : string constructor(x: number, y: string); ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 4, 16)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 4, 26)) +>x : number +>y : string constructor(x: number) { } ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 5, 16)) +>x : number } var r1 = new C(1, ''); ->r1 : C, Symbol(r1, Decl(constructSignaturesWithOverloads.ts, 8, 3)) +>r1 : C >new C(1, '') : C ->C : typeof C, Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +>C : typeof C >1 : number >'' : string class C2 { ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) +>C2 : C2 +>T : T constructor(x: T, y?: string); ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 11, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 11, 21)) +>x : T +>T : T +>y : string constructor(x: T, y: string); ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 12, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 12, 21)) +>x : T +>T : T +>y : string constructor(x: T) { } ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 13, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 10, 9)) +>x : T +>T : T } var r2 = new C2(1, ''); ->r2 : C2, Symbol(r2, Decl(constructSignaturesWithOverloads.ts, 16, 3)) +>r2 : C2 >new C2(1, '') : C2 ->C2 : typeof C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) +>C2 : typeof C2 >1 : number >'' : string interface I { ->I : I, Symbol(I, Decl(constructSignaturesWithOverloads.ts, 16, 23)) +>I : I new(x: number, y?: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 19, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 19, 18)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C new(x: number, y: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 20, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 20, 18)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C } var i: I; ->i : I, Symbol(i, Decl(constructSignaturesWithOverloads.ts, 23, 3)) ->I : I, Symbol(I, Decl(constructSignaturesWithOverloads.ts, 16, 23)) +>i : I +>I : I var r3 = new i(1, ''); ->r3 : C, Symbol(r3, Decl(constructSignaturesWithOverloads.ts, 24, 3)) +>r3 : C >new i(1, '') : C ->i : I, Symbol(i, Decl(constructSignaturesWithOverloads.ts, 23, 3)) +>i : I >1 : number >'' : string interface I2 { ->I2 : I2, Symbol(I2, Decl(constructSignaturesWithOverloads.ts, 24, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) +>I2 : I2 +>T : T new (x: T, y?: string): C2; ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 27, 9)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 27, 14)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 28, 9)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 28, 14)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 26, 13)) +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y?: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 29, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 29, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 29, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 29, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 29, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 30, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 30, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 30, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 30, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 30, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T } var i2: I2; ->i2 : I2, Symbol(i2, Decl(constructSignaturesWithOverloads.ts, 34, 3)) ->I2 : I2, Symbol(I2, Decl(constructSignaturesWithOverloads.ts, 24, 22)) +>i2 : I2 +>I2 : I2 var r4 = new i2(1, ''); ->r4 : C2, Symbol(r4, Decl(constructSignaturesWithOverloads.ts, 35, 3)) +>r4 : C2 >new i2(1, '') : C2 ->i2 : I2, Symbol(i2, Decl(constructSignaturesWithOverloads.ts, 34, 3)) +>i2 : I2 >1 : number >'' : string var a: { ->a : { new (x: number, y?: string): C; new (x: number, y: string): C; }, Symbol(a, Decl(constructSignaturesWithOverloads.ts, 37, 3)) +>a : { new (x: number, y?: string): C; new (x: number, y: string): C; } new(x: number, y?: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 38, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 38, 18)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C new(x: number, y: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 39, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 39, 18)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloads.ts, 0, 0)) +>x : number +>y : string +>C : C } var r5 = new a(1, ''); ->r5 : C, Symbol(r5, Decl(constructSignaturesWithOverloads.ts, 42, 3)) +>r5 : C >new a(1, '') : C ->a : { new (x: number, y?: string): C; new (x: number, y: string): C; }, Symbol(a, Decl(constructSignaturesWithOverloads.ts, 37, 3)) +>a : { new (x: number, y?: string): C; new (x: number, y: string): C; } >1 : number >'' : string var b: { ->b : { new (x: T, y?: string): C2; new (x: T, y: string): C2; }, Symbol(b, Decl(constructSignaturesWithOverloads.ts, 44, 3)) +>b : { new (x: T, y?: string): C2; new (x: T, y: string): C2; } new(x: T, y?: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 45, 8)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 45, 11)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 45, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 45, 16)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 45, 8)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new(x: T, y: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 46, 8)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloads.ts, 46, 11)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 46, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloads.ts, 46, 16)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloads.ts, 8, 22)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloads.ts, 46, 8)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T } var r6 = new b(1, ''); ->r6 : C2, Symbol(r6, Decl(constructSignaturesWithOverloads.ts, 49, 3)) +>r6 : C2 >new b(1, '') : C2 ->b : { new (x: T, y?: string): C2; new (x: T, y: string): C2; }, Symbol(b, Decl(constructSignaturesWithOverloads.ts, 44, 3)) +>b : { new (x: T, y?: string): C2; new (x: T, y: string): C2; } >1 : number >'' : string diff --git a/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.symbols b/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.symbols new file mode 100644 index 0000000000000..c231d9457c4d4 --- /dev/null +++ b/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.symbols @@ -0,0 +1,99 @@ +=== tests/cases/conformance/types/objectTypeLiteral/constructSignatures/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts === +// Error for construct signature overloads to differ only by return type + +class C { +>C : Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) + + constructor(x: number) { } +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 3, 16)) +} + +class C2 { +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 6, 9)) + + constructor(x: T, y?: string) { } +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 7, 16)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 6, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 7, 21)) +} + +interface I { +>I : Symbol(I, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 8, 1)) + + new(x: number, y: string): C; +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 11, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 11, 18)) +>C : Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) + + new(x: number, y: string): C2; // error +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 12, 8)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 12, 18)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 13, 1)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 15, 13)) + + new (x: T, y: string): C2; +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 16, 9)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 15, 13)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 16, 14)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) + + new (x: T, y: string): C; // error +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 17, 9)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 15, 13)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 17, 14)) +>C : Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 9)) +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 12)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 9)) + + new (x: T, y: string): C; // error +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 9)) +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 12)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 17)) +>C : Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) + +} + +var a: { +>a : Symbol(a, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 23, 3)) + + new (x: number, y: string): C2; +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 24, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 24, 19)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) + + new (x: number, y: string): C; // error +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 25, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 25, 19)) +>C : Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +} + +var b: { +>b : Symbol(b, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 28, 3)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 9)) +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 12)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 17)) +>C2 : Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 9)) + + new (x: T, y: string): C; // error +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 9)) +>x : Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 12)) +>T : Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 9)) +>y : Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 17)) +>C : Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +} diff --git a/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types b/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types index 41ee7dd16baa5..6e1ea33efa7b3 100644 --- a/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types +++ b/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types @@ -2,98 +2,98 @@ // Error for construct signature overloads to differ only by return type class C { ->C : C, Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +>C : C constructor(x: number) { } ->x : number, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 3, 16)) +>x : number } class C2 { ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 6, 9)) +>C2 : C2 +>T : T constructor(x: T, y?: string) { } ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 7, 16)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 6, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 7, 21)) +>x : T +>T : T +>y : string } interface I { ->I : I, Symbol(I, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 8, 1)) +>I : I new(x: number, y: string): C; ->x : number, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 11, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 11, 18)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +>x : number +>y : string +>C : C new(x: number, y: string): C2; // error ->x : number, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 12, 8)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 12, 18)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +>x : number +>y : string +>C2 : C2 } interface I2 { ->I2 : I2, Symbol(I2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 13, 1)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 15, 13)) +>I2 : I2 +>T : T new (x: T, y: string): C2; ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 16, 9)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 15, 13)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 16, 14)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +>x : T +>T : T +>y : string +>C2 : C2 new (x: T, y: string): C; // error ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 17, 9)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 15, 13)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 17, 14)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +>x : T +>T : T +>y : string +>C : C new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 18, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C; // error ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 19, 17)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +>T : T +>x : T +>T : T +>y : string +>C : C } var a: { ->a : { new (x: number, y: string): C2; new (x: number, y: string): C; }, Symbol(a, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 23, 3)) +>a : { new (x: number, y: string): C2; new (x: number, y: string): C; } new (x: number, y: string): C2; ->x : number, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 24, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 24, 19)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) +>x : number +>y : string +>C2 : C2 new (x: number, y: string): C; // error ->x : number, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 25, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 25, 19)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +>x : number +>y : string +>C : C } var b: { ->b : { new (x: T, y: string): C2; new (x: T, y: string): C; }, Symbol(b, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 28, 3)) +>b : { new (x: T, y: string): C2; new (x: T, y: string): C; } new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 17)) ->C2 : C2, Symbol(C2, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 4, 1)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 29, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C; // error ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 9)) ->x : T, Symbol(x, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 12)) ->T : T, Symbol(T, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 9)) ->y : string, Symbol(y, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 30, 17)) ->C : C, Symbol(C, Decl(constructSignaturesWithOverloadsThatDifferOnlyByReturnType.ts, 0, 0)) +>T : T +>x : T +>T : T +>y : string +>C : C } diff --git a/tests/baselines/reference/constructorArgWithGenericCallSignature.symbols b/tests/baselines/reference/constructorArgWithGenericCallSignature.symbols new file mode 100644 index 0000000000000..ffb166e6681f0 --- /dev/null +++ b/tests/baselines/reference/constructorArgWithGenericCallSignature.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/constructorArgWithGenericCallSignature.ts === +module Test { +>Test : Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) + + export interface MyFunc { +>MyFunc : Symbol(MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) + + (value1: T): T; +>T : Symbol(T, Decl(constructorArgWithGenericCallSignature.ts, 2, 9)) +>value1 : Symbol(value1, Decl(constructorArgWithGenericCallSignature.ts, 2, 12)) +>T : Symbol(T, Decl(constructorArgWithGenericCallSignature.ts, 2, 9)) +>T : Symbol(T, Decl(constructorArgWithGenericCallSignature.ts, 2, 9)) + } + export class MyClass { +>MyClass : Symbol(MyClass, Decl(constructorArgWithGenericCallSignature.ts, 3, 5)) + + constructor(func: MyFunc) { } +>func : Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 5, 20)) +>MyFunc : Symbol(MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) + } + + export function F(func: MyFunc) { } +>F : Symbol(F, Decl(constructorArgWithGenericCallSignature.ts, 6, 5)) +>func : Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 8, 19)) +>MyFunc : Symbol(MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) +} +var func: Test.MyFunc; +>func : Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 10, 3)) +>Test : Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) +>MyFunc : Symbol(Test.MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) + +Test.F(func); // OK +>Test.F : Symbol(Test.F, Decl(constructorArgWithGenericCallSignature.ts, 6, 5)) +>Test : Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) +>F : Symbol(Test.F, Decl(constructorArgWithGenericCallSignature.ts, 6, 5)) +>func : Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 10, 3)) + +var test = new Test.MyClass(func); // Should be OK +>test : Symbol(test, Decl(constructorArgWithGenericCallSignature.ts, 12, 3)) +>Test.MyClass : Symbol(Test.MyClass, Decl(constructorArgWithGenericCallSignature.ts, 3, 5)) +>Test : Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) +>MyClass : Symbol(Test.MyClass, Decl(constructorArgWithGenericCallSignature.ts, 3, 5)) +>func : Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 10, 3)) + diff --git a/tests/baselines/reference/constructorArgWithGenericCallSignature.types b/tests/baselines/reference/constructorArgWithGenericCallSignature.types index 3bf87b2112604..5899ffe186a49 100644 --- a/tests/baselines/reference/constructorArgWithGenericCallSignature.types +++ b/tests/baselines/reference/constructorArgWithGenericCallSignature.types @@ -1,46 +1,46 @@ === tests/cases/compiler/constructorArgWithGenericCallSignature.ts === module Test { ->Test : typeof Test, Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) +>Test : typeof Test export interface MyFunc { ->MyFunc : MyFunc, Symbol(MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) +>MyFunc : MyFunc (value1: T): T; ->T : T, Symbol(T, Decl(constructorArgWithGenericCallSignature.ts, 2, 9)) ->value1 : T, Symbol(value1, Decl(constructorArgWithGenericCallSignature.ts, 2, 12)) ->T : T, Symbol(T, Decl(constructorArgWithGenericCallSignature.ts, 2, 9)) ->T : T, Symbol(T, Decl(constructorArgWithGenericCallSignature.ts, 2, 9)) +>T : T +>value1 : T +>T : T +>T : T } export class MyClass { ->MyClass : MyClass, Symbol(MyClass, Decl(constructorArgWithGenericCallSignature.ts, 3, 5)) +>MyClass : MyClass constructor(func: MyFunc) { } ->func : MyFunc, Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 5, 20)) ->MyFunc : MyFunc, Symbol(MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) +>func : MyFunc +>MyFunc : MyFunc } export function F(func: MyFunc) { } ->F : (func: MyFunc) => void, Symbol(F, Decl(constructorArgWithGenericCallSignature.ts, 6, 5)) ->func : MyFunc, Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 8, 19)) ->MyFunc : MyFunc, Symbol(MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) +>F : (func: MyFunc) => void +>func : MyFunc +>MyFunc : MyFunc } var func: Test.MyFunc; ->func : Test.MyFunc, Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 10, 3)) ->Test : any, Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) ->MyFunc : Test.MyFunc, Symbol(Test.MyFunc, Decl(constructorArgWithGenericCallSignature.ts, 0, 13)) +>func : Test.MyFunc +>Test : any +>MyFunc : Test.MyFunc Test.F(func); // OK >Test.F(func) : void ->Test.F : (func: Test.MyFunc) => void, Symbol(Test.F, Decl(constructorArgWithGenericCallSignature.ts, 6, 5)) ->Test : typeof Test, Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) ->F : (func: Test.MyFunc) => void, Symbol(Test.F, Decl(constructorArgWithGenericCallSignature.ts, 6, 5)) ->func : Test.MyFunc, Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 10, 3)) +>Test.F : (func: Test.MyFunc) => void +>Test : typeof Test +>F : (func: Test.MyFunc) => void +>func : Test.MyFunc var test = new Test.MyClass(func); // Should be OK ->test : Test.MyClass, Symbol(test, Decl(constructorArgWithGenericCallSignature.ts, 12, 3)) +>test : Test.MyClass >new Test.MyClass(func) : Test.MyClass ->Test.MyClass : typeof Test.MyClass, Symbol(Test.MyClass, Decl(constructorArgWithGenericCallSignature.ts, 3, 5)) ->Test : typeof Test, Symbol(Test, Decl(constructorArgWithGenericCallSignature.ts, 0, 0)) ->MyClass : typeof Test.MyClass, Symbol(Test.MyClass, Decl(constructorArgWithGenericCallSignature.ts, 3, 5)) ->func : Test.MyFunc, Symbol(func, Decl(constructorArgWithGenericCallSignature.ts, 10, 3)) +>Test.MyClass : typeof Test.MyClass +>Test : typeof Test +>MyClass : typeof Test.MyClass +>func : Test.MyFunc diff --git a/tests/baselines/reference/constructorArgs.symbols b/tests/baselines/reference/constructorArgs.symbols new file mode 100644 index 0000000000000..083a094a4cdee --- /dev/null +++ b/tests/baselines/reference/constructorArgs.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/constructorArgs.ts === +interface Options { +>Options : Symbol(Options, Decl(constructorArgs.ts, 0, 0)) + + value: number; +>value : Symbol(value, Decl(constructorArgs.ts, 0, 19)) +} + +class Super { +>Super : Symbol(Super, Decl(constructorArgs.ts, 2, 1)) + + constructor(value:number) { +>value : Symbol(value, Decl(constructorArgs.ts, 5, 13)) + } +} + +class Sub extends Super { +>Sub : Symbol(Sub, Decl(constructorArgs.ts, 7, 1)) +>Super : Symbol(Super, Decl(constructorArgs.ts, 2, 1)) + + constructor(public options:Options) { +>options : Symbol(options, Decl(constructorArgs.ts, 10, 13)) +>Options : Symbol(Options, Decl(constructorArgs.ts, 0, 0)) + + super(options.value); +>super : Symbol(Super, Decl(constructorArgs.ts, 2, 1)) +>options.value : Symbol(Options.value, Decl(constructorArgs.ts, 0, 19)) +>options : Symbol(options, Decl(constructorArgs.ts, 10, 13)) +>value : Symbol(Options.value, Decl(constructorArgs.ts, 0, 19)) + } +} + diff --git a/tests/baselines/reference/constructorArgs.types b/tests/baselines/reference/constructorArgs.types index 048346320c04a..ccd23c22f5de3 100644 --- a/tests/baselines/reference/constructorArgs.types +++ b/tests/baselines/reference/constructorArgs.types @@ -1,33 +1,33 @@ === tests/cases/compiler/constructorArgs.ts === interface Options { ->Options : Options, Symbol(Options, Decl(constructorArgs.ts, 0, 0)) +>Options : Options value: number; ->value : number, Symbol(value, Decl(constructorArgs.ts, 0, 19)) +>value : number } class Super { ->Super : Super, Symbol(Super, Decl(constructorArgs.ts, 2, 1)) +>Super : Super constructor(value:number) { ->value : number, Symbol(value, Decl(constructorArgs.ts, 5, 13)) +>value : number } } class Sub extends Super { ->Sub : Sub, Symbol(Sub, Decl(constructorArgs.ts, 7, 1)) ->Super : Super, Symbol(Super, Decl(constructorArgs.ts, 2, 1)) +>Sub : Sub +>Super : Super constructor(public options:Options) { ->options : Options, Symbol(options, Decl(constructorArgs.ts, 10, 13)) ->Options : Options, Symbol(Options, Decl(constructorArgs.ts, 0, 0)) +>options : Options +>Options : Options super(options.value); >super(options.value) : void ->super : typeof Super, Symbol(Super, Decl(constructorArgs.ts, 2, 1)) ->options.value : number, Symbol(Options.value, Decl(constructorArgs.ts, 0, 19)) ->options : Options, Symbol(options, Decl(constructorArgs.ts, 10, 13)) ->value : number, Symbol(Options.value, Decl(constructorArgs.ts, 0, 19)) +>super : typeof Super +>options.value : number +>options : Options +>value : number } } diff --git a/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.symbols b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.symbols new file mode 100644 index 0000000000000..8ca8fb6a5d888 --- /dev/null +++ b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/constructorFunctionTypeIsAssignableToBaseType.ts === +class Base { +>Base : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 0)) + + static foo: { +>foo : Symbol(Base.foo, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 12)) + + bar: Object; +>bar : Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 1, 17)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + } +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 4, 1)) +>Base : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 0)) + + // ok + static foo: { +>foo : Symbol(Derived.foo, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 6, 28)) + + bar: number; +>bar : Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 8, 17)) + } +} + +class Derived2 extends Base { +>Derived2 : Symbol(Derived2, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 11, 1)) +>Base : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 0)) + + // ok, use assignability here + static foo: { +>foo : Symbol(Derived2.foo, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 13, 29)) + + bar: any; +>bar : Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 15, 17)) + } +} diff --git a/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.types b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.types index e5548d1cb5525..3702be4f2dcf9 100644 --- a/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.types +++ b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType.types @@ -1,38 +1,38 @@ === tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/constructorFunctionTypeIsAssignableToBaseType.ts === class Base { ->Base : Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 0)) +>Base : Base static foo: { ->foo : { bar: Object; }, Symbol(Base.foo, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 12)) +>foo : { bar: Object; } bar: Object; ->bar : Object, Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 1, 17)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>bar : Object +>Object : Object } } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 0)) +>Derived : Derived +>Base : Base // ok static foo: { ->foo : { bar: number; }, Symbol(Derived.foo, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 6, 28)) +>foo : { bar: number; } bar: number; ->bar : number, Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 8, 17)) +>bar : number } } class Derived2 extends Base { ->Derived2 : Derived2, Symbol(Derived2, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 11, 1)) ->Base : Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 0, 0)) +>Derived2 : Derived2 +>Base : Base // ok, use assignability here static foo: { ->foo : { bar: any; }, Symbol(Derived2.foo, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 13, 29)) +>foo : { bar: any; } bar: any; ->bar : any, Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType.ts, 15, 17)) +>bar : any } } diff --git a/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.symbols b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.symbols new file mode 100644 index 0000000000000..e915b6e705d0a --- /dev/null +++ b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.symbols @@ -0,0 +1,62 @@ +=== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/constructorFunctionTypeIsAssignableToBaseType2.ts === +// the constructor function itself does not need to be a subtype of the base type constructor function + +class Base { +>Base : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) + + static foo: { +>foo : Symbol(Base.foo, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 2, 12)) + + bar: Object; +>bar : Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 3, 17)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + } + constructor(x: Object) { +>x : Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 6, 16)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + } +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 8, 1)) +>Base : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) + + // ok + static foo: { +>foo : Symbol(Derived.foo, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 10, 28)) + + bar: number; +>bar : Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 12, 17)) + } + + constructor(x: number) { +>x : Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 16, 16)) + + super(x); +>super : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) +>x : Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 16, 16)) + } +} + +class Derived2 extends Base { +>Derived2 : Symbol(Derived2, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 19, 1)) +>Base : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) + + static foo: { +>foo : Symbol(Derived2.foo, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 21, 29)) + + bar: number; +>bar : Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 22, 17)) + } + + // ok, not enforcing assignability relation on this + constructor(x: any) { +>x : Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 27, 16)) + + super(x); +>super : Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) +>x : Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 27, 16)) + + return 1; + } +} diff --git a/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.types b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.types index ed4af354aca63..e0e86df4a2612 100644 --- a/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.types +++ b/tests/baselines/reference/constructorFunctionTypeIsAssignableToBaseType2.types @@ -2,62 +2,62 @@ // the constructor function itself does not need to be a subtype of the base type constructor function class Base { ->Base : Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) +>Base : Base static foo: { ->foo : { bar: Object; }, Symbol(Base.foo, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 2, 12)) +>foo : { bar: Object; } bar: Object; ->bar : Object, Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 3, 17)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>bar : Object +>Object : Object } constructor(x: Object) { ->x : Object, Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 6, 16)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : Object +>Object : Object } } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 8, 1)) ->Base : Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) +>Derived : Derived +>Base : Base // ok static foo: { ->foo : { bar: number; }, Symbol(Derived.foo, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 10, 28)) +>foo : { bar: number; } bar: number; ->bar : number, Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 12, 17)) +>bar : number } constructor(x: number) { ->x : number, Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 16, 16)) +>x : number super(x); >super(x) : void ->super : typeof Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) ->x : number, Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 16, 16)) +>super : typeof Base +>x : number } } class Derived2 extends Base { ->Derived2 : Derived2, Symbol(Derived2, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 19, 1)) ->Base : Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) +>Derived2 : Derived2 +>Base : Base static foo: { ->foo : { bar: number; }, Symbol(Derived2.foo, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 21, 29)) +>foo : { bar: number; } bar: number; ->bar : number, Symbol(bar, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 22, 17)) +>bar : number } // ok, not enforcing assignability relation on this constructor(x: any) { ->x : any, Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 27, 16)) +>x : any super(x); >super(x) : void ->super : typeof Base, Symbol(Base, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 0, 0)) ->x : any, Symbol(x, Decl(constructorFunctionTypeIsAssignableToBaseType2.ts, 27, 16)) +>super : typeof Base +>x : any return 1; >1 : number diff --git a/tests/baselines/reference/constructorHasPrototypeProperty.symbols b/tests/baselines/reference/constructorHasPrototypeProperty.symbols new file mode 100644 index 0000000000000..0a90834ac511e --- /dev/null +++ b/tests/baselines/reference/constructorHasPrototypeProperty.symbols @@ -0,0 +1,100 @@ +=== tests/cases/conformance/classes/members/constructorFunctionTypes/constructorHasPrototypeProperty.ts === +module NonGeneric { +>NonGeneric : Symbol(NonGeneric, Decl(constructorHasPrototypeProperty.ts, 0, 0)) + + class C { +>C : Symbol(C, Decl(constructorHasPrototypeProperty.ts, 0, 19)) + + foo: string; +>foo : Symbol(foo, Decl(constructorHasPrototypeProperty.ts, 1, 13)) + } + + class D extends C { +>D : Symbol(D, Decl(constructorHasPrototypeProperty.ts, 3, 5)) +>C : Symbol(C, Decl(constructorHasPrototypeProperty.ts, 0, 19)) + + bar: string; +>bar : Symbol(bar, Decl(constructorHasPrototypeProperty.ts, 5, 23)) + } + + var r = C.prototype; +>r : Symbol(r, Decl(constructorHasPrototypeProperty.ts, 9, 7)) +>C.prototype : Symbol(C.prototype) +>C : Symbol(C, Decl(constructorHasPrototypeProperty.ts, 0, 19)) +>prototype : Symbol(C.prototype) + + r.foo; +>r.foo : Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 1, 13)) +>r : Symbol(r, Decl(constructorHasPrototypeProperty.ts, 9, 7)) +>foo : Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 1, 13)) + + var r2 = D.prototype; +>r2 : Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 11, 7)) +>D.prototype : Symbol(D.prototype) +>D : Symbol(D, Decl(constructorHasPrototypeProperty.ts, 3, 5)) +>prototype : Symbol(D.prototype) + + r2.bar; +>r2.bar : Symbol(D.bar, Decl(constructorHasPrototypeProperty.ts, 5, 23)) +>r2 : Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 11, 7)) +>bar : Symbol(D.bar, Decl(constructorHasPrototypeProperty.ts, 5, 23)) +} + +module Generic { +>Generic : Symbol(Generic, Decl(constructorHasPrototypeProperty.ts, 13, 1)) + + class C { +>C : Symbol(C, Decl(constructorHasPrototypeProperty.ts, 15, 16)) +>T : Symbol(T, Decl(constructorHasPrototypeProperty.ts, 16, 12)) +>U : Symbol(U, Decl(constructorHasPrototypeProperty.ts, 16, 14)) + + foo: T; +>foo : Symbol(foo, Decl(constructorHasPrototypeProperty.ts, 16, 18)) +>T : Symbol(T, Decl(constructorHasPrototypeProperty.ts, 16, 12)) + + bar: U; +>bar : Symbol(bar, Decl(constructorHasPrototypeProperty.ts, 17, 15)) +>U : Symbol(U, Decl(constructorHasPrototypeProperty.ts, 16, 14)) + } + + class D extends C { +>D : Symbol(D, Decl(constructorHasPrototypeProperty.ts, 19, 5)) +>T : Symbol(T, Decl(constructorHasPrototypeProperty.ts, 21, 12)) +>U : Symbol(U, Decl(constructorHasPrototypeProperty.ts, 21, 14)) +>C : Symbol(C, Decl(constructorHasPrototypeProperty.ts, 15, 16)) +>T : Symbol(T, Decl(constructorHasPrototypeProperty.ts, 21, 12)) +>U : Symbol(U, Decl(constructorHasPrototypeProperty.ts, 21, 14)) + + baz: T; +>baz : Symbol(baz, Decl(constructorHasPrototypeProperty.ts, 21, 33)) +>T : Symbol(T, Decl(constructorHasPrototypeProperty.ts, 21, 12)) + + bing: U; +>bing : Symbol(bing, Decl(constructorHasPrototypeProperty.ts, 22, 15)) +>U : Symbol(U, Decl(constructorHasPrototypeProperty.ts, 21, 14)) + } + + var r = C.prototype; // C +>r : Symbol(r, Decl(constructorHasPrototypeProperty.ts, 26, 7)) +>C.prototype : Symbol(C.prototype) +>C : Symbol(C, Decl(constructorHasPrototypeProperty.ts, 15, 16)) +>prototype : Symbol(C.prototype) + + var ra = r.foo; // any +>ra : Symbol(ra, Decl(constructorHasPrototypeProperty.ts, 27, 7)) +>r.foo : Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 16, 18)) +>r : Symbol(r, Decl(constructorHasPrototypeProperty.ts, 26, 7)) +>foo : Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 16, 18)) + + var r2 = D.prototype; // D +>r2 : Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 28, 7)) +>D.prototype : Symbol(D.prototype) +>D : Symbol(D, Decl(constructorHasPrototypeProperty.ts, 19, 5)) +>prototype : Symbol(D.prototype) + + var rb = r2.baz; // any +>rb : Symbol(rb, Decl(constructorHasPrototypeProperty.ts, 29, 7)) +>r2.baz : Symbol(D.baz, Decl(constructorHasPrototypeProperty.ts, 21, 33)) +>r2 : Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 28, 7)) +>baz : Symbol(D.baz, Decl(constructorHasPrototypeProperty.ts, 21, 33)) +} diff --git a/tests/baselines/reference/constructorHasPrototypeProperty.types b/tests/baselines/reference/constructorHasPrototypeProperty.types index 0fba4b0511c0a..24dedb254eb23 100644 --- a/tests/baselines/reference/constructorHasPrototypeProperty.types +++ b/tests/baselines/reference/constructorHasPrototypeProperty.types @@ -1,100 +1,100 @@ === tests/cases/conformance/classes/members/constructorFunctionTypes/constructorHasPrototypeProperty.ts === module NonGeneric { ->NonGeneric : typeof NonGeneric, Symbol(NonGeneric, Decl(constructorHasPrototypeProperty.ts, 0, 0)) +>NonGeneric : typeof NonGeneric class C { ->C : C, Symbol(C, Decl(constructorHasPrototypeProperty.ts, 0, 19)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(constructorHasPrototypeProperty.ts, 1, 13)) +>foo : string } class D extends C { ->D : D, Symbol(D, Decl(constructorHasPrototypeProperty.ts, 3, 5)) ->C : C, Symbol(C, Decl(constructorHasPrototypeProperty.ts, 0, 19)) +>D : D +>C : C bar: string; ->bar : string, Symbol(bar, Decl(constructorHasPrototypeProperty.ts, 5, 23)) +>bar : string } var r = C.prototype; ->r : C, Symbol(r, Decl(constructorHasPrototypeProperty.ts, 9, 7)) ->C.prototype : C, Symbol(C.prototype) ->C : typeof C, Symbol(C, Decl(constructorHasPrototypeProperty.ts, 0, 19)) ->prototype : C, Symbol(C.prototype) +>r : C +>C.prototype : C +>C : typeof C +>prototype : C r.foo; ->r.foo : string, Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 1, 13)) ->r : C, Symbol(r, Decl(constructorHasPrototypeProperty.ts, 9, 7)) ->foo : string, Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 1, 13)) +>r.foo : string +>r : C +>foo : string var r2 = D.prototype; ->r2 : D, Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 11, 7)) ->D.prototype : D, Symbol(D.prototype) ->D : typeof D, Symbol(D, Decl(constructorHasPrototypeProperty.ts, 3, 5)) ->prototype : D, Symbol(D.prototype) +>r2 : D +>D.prototype : D +>D : typeof D +>prototype : D r2.bar; ->r2.bar : string, Symbol(D.bar, Decl(constructorHasPrototypeProperty.ts, 5, 23)) ->r2 : D, Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 11, 7)) ->bar : string, Symbol(D.bar, Decl(constructorHasPrototypeProperty.ts, 5, 23)) +>r2.bar : string +>r2 : D +>bar : string } module Generic { ->Generic : typeof Generic, Symbol(Generic, Decl(constructorHasPrototypeProperty.ts, 13, 1)) +>Generic : typeof Generic class C { ->C : C, Symbol(C, Decl(constructorHasPrototypeProperty.ts, 15, 16)) ->T : T, Symbol(T, Decl(constructorHasPrototypeProperty.ts, 16, 12)) ->U : U, Symbol(U, Decl(constructorHasPrototypeProperty.ts, 16, 14)) +>C : C +>T : T +>U : U foo: T; ->foo : T, Symbol(foo, Decl(constructorHasPrototypeProperty.ts, 16, 18)) ->T : T, Symbol(T, Decl(constructorHasPrototypeProperty.ts, 16, 12)) +>foo : T +>T : T bar: U; ->bar : U, Symbol(bar, Decl(constructorHasPrototypeProperty.ts, 17, 15)) ->U : U, Symbol(U, Decl(constructorHasPrototypeProperty.ts, 16, 14)) +>bar : U +>U : U } class D extends C { ->D : D, Symbol(D, Decl(constructorHasPrototypeProperty.ts, 19, 5)) ->T : T, Symbol(T, Decl(constructorHasPrototypeProperty.ts, 21, 12)) ->U : U, Symbol(U, Decl(constructorHasPrototypeProperty.ts, 21, 14)) ->C : C, Symbol(C, Decl(constructorHasPrototypeProperty.ts, 15, 16)) ->T : T, Symbol(T, Decl(constructorHasPrototypeProperty.ts, 21, 12)) ->U : U, Symbol(U, Decl(constructorHasPrototypeProperty.ts, 21, 14)) +>D : D +>T : T +>U : U +>C : C +>T : T +>U : U baz: T; ->baz : T, Symbol(baz, Decl(constructorHasPrototypeProperty.ts, 21, 33)) ->T : T, Symbol(T, Decl(constructorHasPrototypeProperty.ts, 21, 12)) +>baz : T +>T : T bing: U; ->bing : U, Symbol(bing, Decl(constructorHasPrototypeProperty.ts, 22, 15)) ->U : U, Symbol(U, Decl(constructorHasPrototypeProperty.ts, 21, 14)) +>bing : U +>U : U } var r = C.prototype; // C ->r : C, Symbol(r, Decl(constructorHasPrototypeProperty.ts, 26, 7)) ->C.prototype : C, Symbol(C.prototype) ->C : typeof C, Symbol(C, Decl(constructorHasPrototypeProperty.ts, 15, 16)) ->prototype : C, Symbol(C.prototype) +>r : C +>C.prototype : C +>C : typeof C +>prototype : C var ra = r.foo; // any ->ra : any, Symbol(ra, Decl(constructorHasPrototypeProperty.ts, 27, 7)) ->r.foo : any, Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 16, 18)) ->r : C, Symbol(r, Decl(constructorHasPrototypeProperty.ts, 26, 7)) ->foo : any, Symbol(C.foo, Decl(constructorHasPrototypeProperty.ts, 16, 18)) +>ra : any +>r.foo : any +>r : C +>foo : any var r2 = D.prototype; // D ->r2 : D, Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 28, 7)) ->D.prototype : D, Symbol(D.prototype) ->D : typeof D, Symbol(D, Decl(constructorHasPrototypeProperty.ts, 19, 5)) ->prototype : D, Symbol(D.prototype) +>r2 : D +>D.prototype : D +>D : typeof D +>prototype : D var rb = r2.baz; // any ->rb : any, Symbol(rb, Decl(constructorHasPrototypeProperty.ts, 29, 7)) ->r2.baz : any, Symbol(D.baz, Decl(constructorHasPrototypeProperty.ts, 21, 33)) ->r2 : D, Symbol(r2, Decl(constructorHasPrototypeProperty.ts, 28, 7)) ->baz : any, Symbol(D.baz, Decl(constructorHasPrototypeProperty.ts, 21, 33)) +>rb : any +>r2.baz : any +>r2 : D +>baz : any } diff --git a/tests/baselines/reference/constructorImplementationWithDefaultValues.symbols b/tests/baselines/reference/constructorImplementationWithDefaultValues.symbols new file mode 100644 index 0000000000000..384aa692da676 --- /dev/null +++ b/tests/baselines/reference/constructorImplementationWithDefaultValues.symbols @@ -0,0 +1,50 @@ +=== tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts === +class C { +>C : Symbol(C, Decl(constructorImplementationWithDefaultValues.ts, 0, 0)) + + constructor(x); +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 1, 16)) + + constructor(x = 1) { +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 2, 16)) + + var y = x; +>y : Symbol(y, Decl(constructorImplementationWithDefaultValues.ts, 3, 11)) +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 2, 16)) + } +} + +class D { +>D : Symbol(D, Decl(constructorImplementationWithDefaultValues.ts, 5, 1)) +>T : Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 7, 8)) + + constructor(x); +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 8, 16)) + + constructor(x:T = null) { +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 9, 16)) +>T : Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 7, 8)) + + var y = x; +>y : Symbol(y, Decl(constructorImplementationWithDefaultValues.ts, 10, 11)) +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 9, 16)) + } +} + +class E { +>E : Symbol(E, Decl(constructorImplementationWithDefaultValues.ts, 12, 1)) +>T : Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 14, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + constructor(x); +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 15, 16)) + + constructor(x: T = null) { +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 16, 16)) +>T : Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 14, 8)) + + var y = x; +>y : Symbol(y, Decl(constructorImplementationWithDefaultValues.ts, 17, 11)) +>x : Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 16, 16)) + } +} diff --git a/tests/baselines/reference/constructorImplementationWithDefaultValues.types b/tests/baselines/reference/constructorImplementationWithDefaultValues.types index 56a7320aba5e1..fa99cc17fe03e 100644 --- a/tests/baselines/reference/constructorImplementationWithDefaultValues.types +++ b/tests/baselines/reference/constructorImplementationWithDefaultValues.types @@ -1,53 +1,53 @@ === tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorImplementationWithDefaultValues.ts === class C { ->C : C, Symbol(C, Decl(constructorImplementationWithDefaultValues.ts, 0, 0)) +>C : C constructor(x); ->x : any, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 1, 16)) +>x : any constructor(x = 1) { ->x : number, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 2, 16)) +>x : number >1 : number var y = x; ->y : number, Symbol(y, Decl(constructorImplementationWithDefaultValues.ts, 3, 11)) ->x : number, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 2, 16)) +>y : number +>x : number } } class D { ->D : D, Symbol(D, Decl(constructorImplementationWithDefaultValues.ts, 5, 1)) ->T : T, Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 7, 8)) +>D : D +>T : T constructor(x); ->x : any, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 8, 16)) +>x : any constructor(x:T = null) { ->x : T, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 9, 16)) ->T : T, Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 7, 8)) +>x : T +>T : T >null : null var y = x; ->y : T, Symbol(y, Decl(constructorImplementationWithDefaultValues.ts, 10, 11)) ->x : T, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 9, 16)) +>y : T +>x : T } } class E { ->E : E, Symbol(E, Decl(constructorImplementationWithDefaultValues.ts, 12, 1)) ->T : T, Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 14, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>E : E +>T : T +>Date : Date constructor(x); ->x : any, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 15, 16)) +>x : any constructor(x: T = null) { ->x : T, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 16, 16)) ->T : T, Symbol(T, Decl(constructorImplementationWithDefaultValues.ts, 14, 8)) +>x : T +>T : T >null : null var y = x; ->y : T, Symbol(y, Decl(constructorImplementationWithDefaultValues.ts, 17, 11)) ->x : T, Symbol(x, Decl(constructorImplementationWithDefaultValues.ts, 16, 16)) +>y : T +>x : T } } diff --git a/tests/baselines/reference/constructorOverloads2.symbols b/tests/baselines/reference/constructorOverloads2.symbols new file mode 100644 index 0000000000000..b2b9db6eda36c --- /dev/null +++ b/tests/baselines/reference/constructorOverloads2.symbols @@ -0,0 +1,67 @@ +=== tests/cases/compiler/constructorOverloads2.ts === +class FooBase { +>FooBase : Symbol(FooBase, Decl(constructorOverloads2.ts, 0, 0)) + + constructor(s: string); +>s : Symbol(s, Decl(constructorOverloads2.ts, 1, 16)) + + constructor(n: number); +>n : Symbol(n, Decl(constructorOverloads2.ts, 2, 16)) + + constructor(x: any) { +>x : Symbol(x, Decl(constructorOverloads2.ts, 3, 16)) + } + bar1() { /*WScript.Echo("base bar1");*/ } +>bar1 : Symbol(bar1, Decl(constructorOverloads2.ts, 4, 5)) +} + +class Foo extends FooBase { +>Foo : Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) +>FooBase : Symbol(FooBase, Decl(constructorOverloads2.ts, 0, 0)) + + constructor(s: string); +>s : Symbol(s, Decl(constructorOverloads2.ts, 9, 16)) + + constructor(n: number); +>n : Symbol(n, Decl(constructorOverloads2.ts, 10, 16)) + + constructor(a:any); +>a : Symbol(a, Decl(constructorOverloads2.ts, 11, 16)) + + constructor(x: any, y?: any) { +>x : Symbol(x, Decl(constructorOverloads2.ts, 12, 16)) +>y : Symbol(y, Decl(constructorOverloads2.ts, 12, 23)) + + super(x); +>super : Symbol(FooBase, Decl(constructorOverloads2.ts, 0, 0)) +>x : Symbol(x, Decl(constructorOverloads2.ts, 12, 16)) + } + bar1() { /*WScript.Echo("bar1");*/ } +>bar1 : Symbol(bar1, Decl(constructorOverloads2.ts, 14, 5)) +} + +var f1 = new Foo("hey"); +>f1 : Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) +>Foo : Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) + +var f2 = new Foo(0); +>f2 : Symbol(f2, Decl(constructorOverloads2.ts, 19, 3)) +>Foo : Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) + +var f3 = new Foo(f1); +>f3 : Symbol(f3, Decl(constructorOverloads2.ts, 20, 3)) +>Foo : Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) +>f1 : Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) + +var f4 = new Foo([f1,f2,f3]); +>f4 : Symbol(f4, Decl(constructorOverloads2.ts, 21, 3)) +>Foo : Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) +>f1 : Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) +>f2 : Symbol(f2, Decl(constructorOverloads2.ts, 19, 3)) +>f3 : Symbol(f3, Decl(constructorOverloads2.ts, 20, 3)) + +f1.bar1(); +>f1.bar1 : Symbol(Foo.bar1, Decl(constructorOverloads2.ts, 14, 5)) +>f1 : Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) +>bar1 : Symbol(Foo.bar1, Decl(constructorOverloads2.ts, 14, 5)) + diff --git a/tests/baselines/reference/constructorOverloads2.types b/tests/baselines/reference/constructorOverloads2.types index e0055476db262..dde032c0fd29e 100644 --- a/tests/baselines/reference/constructorOverloads2.types +++ b/tests/baselines/reference/constructorOverloads2.types @@ -1,76 +1,76 @@ === tests/cases/compiler/constructorOverloads2.ts === class FooBase { ->FooBase : FooBase, Symbol(FooBase, Decl(constructorOverloads2.ts, 0, 0)) +>FooBase : FooBase constructor(s: string); ->s : string, Symbol(s, Decl(constructorOverloads2.ts, 1, 16)) +>s : string constructor(n: number); ->n : number, Symbol(n, Decl(constructorOverloads2.ts, 2, 16)) +>n : number constructor(x: any) { ->x : any, Symbol(x, Decl(constructorOverloads2.ts, 3, 16)) +>x : any } bar1() { /*WScript.Echo("base bar1");*/ } ->bar1 : () => void, Symbol(bar1, Decl(constructorOverloads2.ts, 4, 5)) +>bar1 : () => void } class Foo extends FooBase { ->Foo : Foo, Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) ->FooBase : FooBase, Symbol(FooBase, Decl(constructorOverloads2.ts, 0, 0)) +>Foo : Foo +>FooBase : FooBase constructor(s: string); ->s : string, Symbol(s, Decl(constructorOverloads2.ts, 9, 16)) +>s : string constructor(n: number); ->n : number, Symbol(n, Decl(constructorOverloads2.ts, 10, 16)) +>n : number constructor(a:any); ->a : any, Symbol(a, Decl(constructorOverloads2.ts, 11, 16)) +>a : any constructor(x: any, y?: any) { ->x : any, Symbol(x, Decl(constructorOverloads2.ts, 12, 16)) ->y : any, Symbol(y, Decl(constructorOverloads2.ts, 12, 23)) +>x : any +>y : any super(x); >super(x) : void ->super : typeof FooBase, Symbol(FooBase, Decl(constructorOverloads2.ts, 0, 0)) ->x : any, Symbol(x, Decl(constructorOverloads2.ts, 12, 16)) +>super : typeof FooBase +>x : any } bar1() { /*WScript.Echo("bar1");*/ } ->bar1 : () => void, Symbol(bar1, Decl(constructorOverloads2.ts, 14, 5)) +>bar1 : () => void } var f1 = new Foo("hey"); ->f1 : Foo, Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) +>f1 : Foo >new Foo("hey") : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) +>Foo : typeof Foo >"hey" : string var f2 = new Foo(0); ->f2 : Foo, Symbol(f2, Decl(constructorOverloads2.ts, 19, 3)) +>f2 : Foo >new Foo(0) : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) +>Foo : typeof Foo >0 : number var f3 = new Foo(f1); ->f3 : Foo, Symbol(f3, Decl(constructorOverloads2.ts, 20, 3)) +>f3 : Foo >new Foo(f1) : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) ->f1 : Foo, Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) +>Foo : typeof Foo +>f1 : Foo var f4 = new Foo([f1,f2,f3]); ->f4 : Foo, Symbol(f4, Decl(constructorOverloads2.ts, 21, 3)) +>f4 : Foo >new Foo([f1,f2,f3]) : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(constructorOverloads2.ts, 6, 1)) +>Foo : typeof Foo >[f1,f2,f3] : Foo[] ->f1 : Foo, Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) ->f2 : Foo, Symbol(f2, Decl(constructorOverloads2.ts, 19, 3)) ->f3 : Foo, Symbol(f3, Decl(constructorOverloads2.ts, 20, 3)) +>f1 : Foo +>f2 : Foo +>f3 : Foo f1.bar1(); >f1.bar1() : void ->f1.bar1 : () => void, Symbol(Foo.bar1, Decl(constructorOverloads2.ts, 14, 5)) ->f1 : Foo, Symbol(f1, Decl(constructorOverloads2.ts, 18, 3)) ->bar1 : () => void, Symbol(Foo.bar1, Decl(constructorOverloads2.ts, 14, 5)) +>f1.bar1 : () => void +>f1 : Foo +>bar1 : () => void diff --git a/tests/baselines/reference/constructorOverloadsWithOptionalParameters.symbols b/tests/baselines/reference/constructorOverloadsWithOptionalParameters.symbols new file mode 100644 index 0000000000000..68cecd8f912c4 --- /dev/null +++ b/tests/baselines/reference/constructorOverloadsWithOptionalParameters.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorOverloadsWithOptionalParameters.ts === +class C { +>C : Symbol(C, Decl(constructorOverloadsWithOptionalParameters.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(constructorOverloadsWithOptionalParameters.ts, 0, 9)) + + constructor(x?, y?: any[]); +>x : Symbol(x, Decl(constructorOverloadsWithOptionalParameters.ts, 2, 16)) +>y : Symbol(y, Decl(constructorOverloadsWithOptionalParameters.ts, 2, 19)) + + constructor() { + } +} + +class D { +>D : Symbol(D, Decl(constructorOverloadsWithOptionalParameters.ts, 5, 1)) +>T : Symbol(T, Decl(constructorOverloadsWithOptionalParameters.ts, 7, 8)) + + foo: string; +>foo : Symbol(foo, Decl(constructorOverloadsWithOptionalParameters.ts, 7, 12)) + + constructor(x?, y?: any[]); +>x : Symbol(x, Decl(constructorOverloadsWithOptionalParameters.ts, 9, 16)) +>y : Symbol(y, Decl(constructorOverloadsWithOptionalParameters.ts, 9, 19)) + + constructor() { + } +} diff --git a/tests/baselines/reference/constructorOverloadsWithOptionalParameters.types b/tests/baselines/reference/constructorOverloadsWithOptionalParameters.types index ab7a16c717792..c68aa7822524f 100644 --- a/tests/baselines/reference/constructorOverloadsWithOptionalParameters.types +++ b/tests/baselines/reference/constructorOverloadsWithOptionalParameters.types @@ -1,28 +1,28 @@ === tests/cases/conformance/classes/constructorDeclarations/constructorParameters/constructorOverloadsWithOptionalParameters.ts === class C { ->C : C, Symbol(C, Decl(constructorOverloadsWithOptionalParameters.ts, 0, 0)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(constructorOverloadsWithOptionalParameters.ts, 0, 9)) +>foo : string constructor(x?, y?: any[]); ->x : any, Symbol(x, Decl(constructorOverloadsWithOptionalParameters.ts, 2, 16)) ->y : any[], Symbol(y, Decl(constructorOverloadsWithOptionalParameters.ts, 2, 19)) +>x : any +>y : any[] constructor() { } } class D { ->D : D, Symbol(D, Decl(constructorOverloadsWithOptionalParameters.ts, 5, 1)) ->T : T, Symbol(T, Decl(constructorOverloadsWithOptionalParameters.ts, 7, 8)) +>D : D +>T : T foo: string; ->foo : string, Symbol(foo, Decl(constructorOverloadsWithOptionalParameters.ts, 7, 12)) +>foo : string constructor(x?, y?: any[]); ->x : any, Symbol(x, Decl(constructorOverloadsWithOptionalParameters.ts, 9, 16)) ->y : any[], Symbol(y, Decl(constructorOverloadsWithOptionalParameters.ts, 9, 19)) +>x : any +>y : any[] constructor() { } diff --git a/tests/baselines/reference/constructorReturningAPrimitive.symbols b/tests/baselines/reference/constructorReturningAPrimitive.symbols new file mode 100644 index 0000000000000..6206b6d87b8a1 --- /dev/null +++ b/tests/baselines/reference/constructorReturningAPrimitive.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/constructorReturningAPrimitive.ts === +// technically not allowed by JavaScript but we don't have a 'not-primitive' constraint +// functionally only possible when your class is otherwise devoid of members so of little consequence in practice + +class A { +>A : Symbol(A, Decl(constructorReturningAPrimitive.ts, 0, 0)) + + constructor() { + return 1; + } +} + +var a = new A(); +>a : Symbol(a, Decl(constructorReturningAPrimitive.ts, 9, 3)) +>A : Symbol(A, Decl(constructorReturningAPrimitive.ts, 0, 0)) + +class B { +>B : Symbol(B, Decl(constructorReturningAPrimitive.ts, 9, 16)) +>T : Symbol(T, Decl(constructorReturningAPrimitive.ts, 11, 8)) + + constructor() { + var x: T; +>x : Symbol(x, Decl(constructorReturningAPrimitive.ts, 13, 11)) +>T : Symbol(T, Decl(constructorReturningAPrimitive.ts, 11, 8)) + + return x; +>x : Symbol(x, Decl(constructorReturningAPrimitive.ts, 13, 11)) + } +} + +var b = new B(); +>b : Symbol(b, Decl(constructorReturningAPrimitive.ts, 18, 3)) +>B : Symbol(B, Decl(constructorReturningAPrimitive.ts, 9, 16)) + diff --git a/tests/baselines/reference/constructorReturningAPrimitive.types b/tests/baselines/reference/constructorReturningAPrimitive.types index a646c54bbb15f..4b431cfb36b0b 100644 --- a/tests/baselines/reference/constructorReturningAPrimitive.types +++ b/tests/baselines/reference/constructorReturningAPrimitive.types @@ -3,7 +3,7 @@ // functionally only possible when your class is otherwise devoid of members so of little consequence in practice class A { ->A : A, Symbol(A, Decl(constructorReturningAPrimitive.ts, 0, 0)) +>A : A constructor() { return 1; @@ -12,26 +12,26 @@ class A { } var a = new A(); ->a : A, Symbol(a, Decl(constructorReturningAPrimitive.ts, 9, 3)) +>a : A >new A() : A ->A : typeof A, Symbol(A, Decl(constructorReturningAPrimitive.ts, 0, 0)) +>A : typeof A class B { ->B : B, Symbol(B, Decl(constructorReturningAPrimitive.ts, 9, 16)) ->T : T, Symbol(T, Decl(constructorReturningAPrimitive.ts, 11, 8)) +>B : B +>T : T constructor() { var x: T; ->x : T, Symbol(x, Decl(constructorReturningAPrimitive.ts, 13, 11)) ->T : T, Symbol(T, Decl(constructorReturningAPrimitive.ts, 11, 8)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(constructorReturningAPrimitive.ts, 13, 11)) +>x : T } } var b = new B(); ->b : B, Symbol(b, Decl(constructorReturningAPrimitive.ts, 18, 3)) +>b : B >new B() : B ->B : typeof B, Symbol(B, Decl(constructorReturningAPrimitive.ts, 9, 16)) +>B : typeof B diff --git a/tests/baselines/reference/constructorTypeWithTypeParameters.symbols b/tests/baselines/reference/constructorTypeWithTypeParameters.symbols new file mode 100644 index 0000000000000..0ea9e854d7766 --- /dev/null +++ b/tests/baselines/reference/constructorTypeWithTypeParameters.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/constructorTypeWithTypeParameters.ts === +declare var X: { +>X : Symbol(X, Decl(constructorTypeWithTypeParameters.ts, 0, 11)) + + new (): number; +>T : Symbol(T, Decl(constructorTypeWithTypeParameters.ts, 1, 9)) +} +declare var Y: { +>Y : Symbol(Y, Decl(constructorTypeWithTypeParameters.ts, 3, 11)) + + new (): number; +} +var anotherVar: new () => number; +>anotherVar : Symbol(anotherVar, Decl(constructorTypeWithTypeParameters.ts, 6, 3)) +>T : Symbol(T, Decl(constructorTypeWithTypeParameters.ts, 6, 21)) + diff --git a/tests/baselines/reference/constructorTypeWithTypeParameters.types b/tests/baselines/reference/constructorTypeWithTypeParameters.types index c99da1c552d62..e1f094bf8efa7 100644 --- a/tests/baselines/reference/constructorTypeWithTypeParameters.types +++ b/tests/baselines/reference/constructorTypeWithTypeParameters.types @@ -1,16 +1,16 @@ === tests/cases/compiler/constructorTypeWithTypeParameters.ts === declare var X: { ->X : new () => number, Symbol(X, Decl(constructorTypeWithTypeParameters.ts, 0, 11)) +>X : new () => number new (): number; ->T : T, Symbol(T, Decl(constructorTypeWithTypeParameters.ts, 1, 9)) +>T : T } declare var Y: { ->Y : new () => number, Symbol(Y, Decl(constructorTypeWithTypeParameters.ts, 3, 11)) +>Y : new () => number new (): number; } var anotherVar: new () => number; ->anotherVar : new () => number, Symbol(anotherVar, Decl(constructorTypeWithTypeParameters.ts, 6, 3)) ->T : T, Symbol(T, Decl(constructorTypeWithTypeParameters.ts, 6, 21)) +>anotherVar : new () => number +>T : T diff --git a/tests/baselines/reference/constructorWithExpressionLessReturn.symbols b/tests/baselines/reference/constructorWithExpressionLessReturn.symbols new file mode 100644 index 0000000000000..0d6f06a91a493 --- /dev/null +++ b/tests/baselines/reference/constructorWithExpressionLessReturn.symbols @@ -0,0 +1,41 @@ +=== tests/cases/conformance/classes/constructorDeclarations/constructorWithExpressionLessReturn.ts === +class C { +>C : Symbol(C, Decl(constructorWithExpressionLessReturn.ts, 0, 0)) + + constructor() { + return; + } +} + +class D { +>D : Symbol(D, Decl(constructorWithExpressionLessReturn.ts, 4, 1)) + + x: number; +>x : Symbol(x, Decl(constructorWithExpressionLessReturn.ts, 6, 9)) + + constructor() { + return; + } +} + +class E { +>E : Symbol(E, Decl(constructorWithExpressionLessReturn.ts, 11, 1)) + + constructor(public x: number) { +>x : Symbol(x, Decl(constructorWithExpressionLessReturn.ts, 14, 16)) + + return; + } +} + +class F { +>F : Symbol(F, Decl(constructorWithExpressionLessReturn.ts, 17, 1)) +>T : Symbol(T, Decl(constructorWithExpressionLessReturn.ts, 19, 8)) + + constructor(public x: T) { +>x : Symbol(x, Decl(constructorWithExpressionLessReturn.ts, 20, 16)) +>T : Symbol(T, Decl(constructorWithExpressionLessReturn.ts, 19, 8)) + + return; + } +} diff --git a/tests/baselines/reference/constructorWithExpressionLessReturn.types b/tests/baselines/reference/constructorWithExpressionLessReturn.types index 88c9779609794..595a4ae533f88 100644 --- a/tests/baselines/reference/constructorWithExpressionLessReturn.types +++ b/tests/baselines/reference/constructorWithExpressionLessReturn.types @@ -1,6 +1,6 @@ === tests/cases/conformance/classes/constructorDeclarations/constructorWithExpressionLessReturn.ts === class C { ->C : C, Symbol(C, Decl(constructorWithExpressionLessReturn.ts, 0, 0)) +>C : C constructor() { return; @@ -8,10 +8,10 @@ class C { } class D { ->D : D, Symbol(D, Decl(constructorWithExpressionLessReturn.ts, 4, 1)) +>D : D x: number; ->x : number, Symbol(x, Decl(constructorWithExpressionLessReturn.ts, 6, 9)) +>x : number constructor() { return; @@ -19,22 +19,22 @@ class D { } class E { ->E : E, Symbol(E, Decl(constructorWithExpressionLessReturn.ts, 11, 1)) +>E : E constructor(public x: number) { ->x : number, Symbol(x, Decl(constructorWithExpressionLessReturn.ts, 14, 16)) +>x : number return; } } class F { ->F : F, Symbol(F, Decl(constructorWithExpressionLessReturn.ts, 17, 1)) ->T : T, Symbol(T, Decl(constructorWithExpressionLessReturn.ts, 19, 8)) +>F : F +>T : T constructor(public x: T) { ->x : T, Symbol(x, Decl(constructorWithExpressionLessReturn.ts, 20, 16)) ->T : T, Symbol(T, Decl(constructorWithExpressionLessReturn.ts, 19, 8)) +>x : T +>T : T return; } diff --git a/tests/baselines/reference/contextualSigInstantiationRestParams.symbols b/tests/baselines/reference/contextualSigInstantiationRestParams.symbols new file mode 100644 index 0000000000000..5b18899e5f209 --- /dev/null +++ b/tests/baselines/reference/contextualSigInstantiationRestParams.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/contextualSigInstantiationRestParams.ts === +declare function toInstantiate(a?: A, b?: B): B; +>toInstantiate : Symbol(toInstantiate, Decl(contextualSigInstantiationRestParams.ts, 0, 0)) +>A : Symbol(A, Decl(contextualSigInstantiationRestParams.ts, 0, 31)) +>B : Symbol(B, Decl(contextualSigInstantiationRestParams.ts, 0, 33)) +>a : Symbol(a, Decl(contextualSigInstantiationRestParams.ts, 0, 37)) +>A : Symbol(A, Decl(contextualSigInstantiationRestParams.ts, 0, 31)) +>b : Symbol(b, Decl(contextualSigInstantiationRestParams.ts, 0, 43)) +>B : Symbol(B, Decl(contextualSigInstantiationRestParams.ts, 0, 33)) +>B : Symbol(B, Decl(contextualSigInstantiationRestParams.ts, 0, 33)) + +declare function contextual(...s: string[]): string +>contextual : Symbol(contextual, Decl(contextualSigInstantiationRestParams.ts, 0, 54)) +>s : Symbol(s, Decl(contextualSigInstantiationRestParams.ts, 1, 28)) + +var sig: typeof contextual = toInstantiate; +>sig : Symbol(sig, Decl(contextualSigInstantiationRestParams.ts, 3, 3)) +>contextual : Symbol(contextual, Decl(contextualSigInstantiationRestParams.ts, 0, 54)) +>toInstantiate : Symbol(toInstantiate, Decl(contextualSigInstantiationRestParams.ts, 0, 0)) + diff --git a/tests/baselines/reference/contextualSigInstantiationRestParams.types b/tests/baselines/reference/contextualSigInstantiationRestParams.types index 1ef8fb68545f8..76a00310fd99b 100644 --- a/tests/baselines/reference/contextualSigInstantiationRestParams.types +++ b/tests/baselines/reference/contextualSigInstantiationRestParams.types @@ -1,20 +1,20 @@ === tests/cases/compiler/contextualSigInstantiationRestParams.ts === declare function toInstantiate(a?: A, b?: B): B; ->toInstantiate : (a?: A, b?: B) => B, Symbol(toInstantiate, Decl(contextualSigInstantiationRestParams.ts, 0, 0)) ->A : A, Symbol(A, Decl(contextualSigInstantiationRestParams.ts, 0, 31)) ->B : B, Symbol(B, Decl(contextualSigInstantiationRestParams.ts, 0, 33)) ->a : A, Symbol(a, Decl(contextualSigInstantiationRestParams.ts, 0, 37)) ->A : A, Symbol(A, Decl(contextualSigInstantiationRestParams.ts, 0, 31)) ->b : B, Symbol(b, Decl(contextualSigInstantiationRestParams.ts, 0, 43)) ->B : B, Symbol(B, Decl(contextualSigInstantiationRestParams.ts, 0, 33)) ->B : B, Symbol(B, Decl(contextualSigInstantiationRestParams.ts, 0, 33)) +>toInstantiate : (a?: A, b?: B) => B +>A : A +>B : B +>a : A +>A : A +>b : B +>B : B +>B : B declare function contextual(...s: string[]): string ->contextual : (...s: string[]) => string, Symbol(contextual, Decl(contextualSigInstantiationRestParams.ts, 0, 54)) ->s : string[], Symbol(s, Decl(contextualSigInstantiationRestParams.ts, 1, 28)) +>contextual : (...s: string[]) => string +>s : string[] var sig: typeof contextual = toInstantiate; ->sig : (...s: string[]) => string, Symbol(sig, Decl(contextualSigInstantiationRestParams.ts, 3, 3)) ->contextual : (...s: string[]) => string, Symbol(contextual, Decl(contextualSigInstantiationRestParams.ts, 0, 54)) ->toInstantiate : (a?: A, b?: B) => B, Symbol(toInstantiate, Decl(contextualSigInstantiationRestParams.ts, 0, 0)) +>sig : (...s: string[]) => string +>contextual : (...s: string[]) => string +>toInstantiate : (a?: A, b?: B) => B diff --git a/tests/baselines/reference/contextualSignatureInstantiation.symbols b/tests/baselines/reference/contextualSignatureInstantiation.symbols new file mode 100644 index 0000000000000..c16ffed84b7de --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstantiation.symbols @@ -0,0 +1,132 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/contextualSignatureInstantiation.ts === +// TypeScript Spec, section 4.12.2: +// If e is an expression of a function type that contains exactly one generic call signature and no other members, +// and T is a function type with exactly one non - generic call signature and no other members, then any inferences +// made for type parameters referenced by the parameters of T's call signature are fixed, and e's type is changed +// to a function type with e's call signature instantiated in the context of T's call signature (section 3.8.5). + +declare function foo(cb: (x: number, y: string) => T): T; +>foo : Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) +>cb : Symbol(cb, Decl(contextualSignatureInstantiation.ts, 6, 24)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 6, 29)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 6, 39)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) + +declare function bar(x: T, y: U, cb: (x: T, y: U) => V): V; +>bar : Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) +>V : Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 7, 30)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 7, 35)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) +>cb : Symbol(cb, Decl(contextualSignatureInstantiation.ts, 7, 41)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 7, 47)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 7, 52)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) +>V : Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) +>V : Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) + +declare function baz(x: T, y: T, cb: (x: T, y: T) => U): U; +>baz : Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 8, 27)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 8, 32)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) +>cb : Symbol(cb, Decl(contextualSignatureInstantiation.ts, 8, 38)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 8, 44)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 8, 49)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) + +declare function g(x: T, y: T): T; +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 10, 22)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 10, 27)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) + +declare function h(x: T, y: U): T[] | U[]; +>h : Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) +>x : Symbol(x, Decl(contextualSignatureInstantiation.ts, 11, 25)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) +>y : Symbol(y, Decl(contextualSignatureInstantiation.ts, 11, 30)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) +>T : Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) +>U : Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) + +var a: number; +>a : Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) + +var a = bar(1, 1, g); // Should be number +>a : Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) +>bar : Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + +var a = baz(1, 1, g); // Should be number +>a : Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) +>baz : Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + +var b: number | string; +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) + +var b = foo(g); // Should be number | string +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>foo : Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + +var b = bar(1, "one", g); // Should be number | string +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>bar : Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + +var b = bar("one", 1, g); // Should be number | string +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>bar : Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + +var b = baz(b, b, g); // Should be number | string +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>baz : Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>b : Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + +var d: number[] | string[]; +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) + +var d = foo(h); // Should be number[] | string[] +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>foo : Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) +>h : Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) + +var d = bar(1, "one", h); // Should be number[] | string[] +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>bar : Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>h : Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) + +var d = bar("one", 1, h); // Should be number[] | string[] +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>bar : Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>h : Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) + +var d = baz(d, d, g); // Should be number[] | string[] +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>baz : Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>d : Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>g : Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) + diff --git a/tests/baselines/reference/contextualSignatureInstantiation.types b/tests/baselines/reference/contextualSignatureInstantiation.types index 3034850abfdd8..e7be6da51c509 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation.types +++ b/tests/baselines/reference/contextualSignatureInstantiation.types @@ -6,149 +6,149 @@ // to a function type with e's call signature instantiated in the context of T's call signature (section 3.8.5). declare function foo(cb: (x: number, y: string) => T): T; ->foo : (cb: (x: number, y: string) => T) => T, Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) ->cb : (x: number, y: string) => T, Symbol(cb, Decl(contextualSignatureInstantiation.ts, 6, 24)) ->x : number, Symbol(x, Decl(contextualSignatureInstantiation.ts, 6, 29)) ->y : string, Symbol(y, Decl(contextualSignatureInstantiation.ts, 6, 39)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) +>foo : (cb: (x: number, y: string) => T) => T +>T : T +>cb : (x: number, y: string) => T +>x : number +>y : string +>T : T +>T : T declare function bar(x: T, y: U, cb: (x: T, y: U) => V): V; ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 7, 30)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) ->y : U, Symbol(y, Decl(contextualSignatureInstantiation.ts, 7, 35)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) ->cb : (x: T, y: U) => V, Symbol(cb, Decl(contextualSignatureInstantiation.ts, 7, 41)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 7, 47)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) ->y : U, Symbol(y, Decl(contextualSignatureInstantiation.ts, 7, 52)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) +>bar : (x: T, y: U, cb: (x: T, y: U) => V) => V +>T : T +>U : U +>V : V +>x : T +>T : T +>y : U +>U : U +>cb : (x: T, y: U) => V +>x : T +>T : T +>y : U +>U : U +>V : V +>V : V declare function baz(x: T, y: T, cb: (x: T, y: T) => U): U; ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 8, 27)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->y : T, Symbol(y, Decl(contextualSignatureInstantiation.ts, 8, 32)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->cb : (x: T, y: T) => U, Symbol(cb, Decl(contextualSignatureInstantiation.ts, 8, 38)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 8, 44)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->y : T, Symbol(y, Decl(contextualSignatureInstantiation.ts, 8, 49)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) +>baz : (x: T, y: T, cb: (x: T, y: T) => U) => U +>T : T +>U : U +>x : T +>T : T +>y : T +>T : T +>cb : (x: T, y: T) => U +>x : T +>T : T +>y : T +>T : T +>U : U +>U : U declare function g(x: T, y: T): T; ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 10, 22)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) ->y : T, Symbol(y, Decl(contextualSignatureInstantiation.ts, 10, 27)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) +>g : (x: T, y: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T declare function h(x: T, y: U): T[] | U[]; ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 11, 25)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) ->y : U, Symbol(y, Decl(contextualSignatureInstantiation.ts, 11, 30)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) +>h : (x: T, y: U) => T[] | U[] +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T +>U : U var a: number; ->a : number, Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) +>a : number var a = bar(1, 1, g); // Should be number ->a : number, Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) +>a : number >bar(1, 1, g) : number ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>bar : (x: T, y: U, cb: (x: T, y: U) => V) => V >1 : number >1 : number ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>g : (x: T, y: T) => T var a = baz(1, 1, g); // Should be number ->a : number, Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) +>a : number >baz(1, 1, g) : number ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) +>baz : (x: T, y: T, cb: (x: T, y: T) => U) => U >1 : number >1 : number ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>g : (x: T, y: T) => T var b: number | string; ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>b : string | number var b = foo(g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>b : string | number >foo(g) : string | number ->foo : (cb: (x: number, y: string) => T) => T, Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>foo : (cb: (x: number, y: string) => T) => T +>g : (x: T, y: T) => T var b = bar(1, "one", g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>b : string | number >bar(1, "one", g) : string | number ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>bar : (x: T, y: U, cb: (x: T, y: U) => V) => V >1 : number >"one" : string ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>g : (x: T, y: T) => T var b = bar("one", 1, g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>b : string | number >bar("one", 1, g) : string | number ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>bar : (x: T, y: U, cb: (x: T, y: U) => V) => V >"one" : string >1 : number ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>g : (x: T, y: T) => T var b = baz(b, b, g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) +>b : string | number >baz(b, b, g) : string | number ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>baz : (x: T, y: T, cb: (x: T, y: T) => U) => U +>b : string | number +>b : string | number +>g : (x: T, y: T) => T var d: number[] | string[]; ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>d : string[] | number[] var d = foo(h); // Should be number[] | string[] ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>d : string[] | number[] >foo(h) : string[] | number[] ->foo : (cb: (x: number, y: string) => T) => T, Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) +>foo : (cb: (x: number, y: string) => T) => T +>h : (x: T, y: U) => T[] | U[] var d = bar(1, "one", h); // Should be number[] | string[] ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>d : string[] | number[] >bar(1, "one", h) : string[] | number[] ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>bar : (x: T, y: U, cb: (x: T, y: U) => V) => V >1 : number >"one" : string ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) +>h : (x: T, y: U) => T[] | U[] var d = bar("one", 1, h); // Should be number[] | string[] ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>d : string[] | number[] >bar("one", 1, h) : string[] | number[] ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) +>bar : (x: T, y: U, cb: (x: T, y: U) => V) => V >"one" : string >1 : number ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) +>h : (x: T, y: U) => T[] | U[] var d = baz(d, d, g); // Should be number[] | string[] ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) +>d : string[] | number[] >baz(d, d, g) : string[] | number[] ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->d : string[] | number[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) +>baz : (x: T, y: T, cb: (x: T, y: T) => U) => U +>d : string[] | number[] +>d : string[] | number[] +>g : (x: T, y: T) => T diff --git a/tests/baselines/reference/contextualSignatureInstantiation.types.pull b/tests/baselines/reference/contextualSignatureInstantiation.types.pull deleted file mode 100644 index f21e386587825..0000000000000 --- a/tests/baselines/reference/contextualSignatureInstantiation.types.pull +++ /dev/null @@ -1,154 +0,0 @@ -=== tests/cases/conformance/types/typeRelationships/typeInference/contextualSignatureInstantiation.ts === -// TypeScript Spec, section 4.12.2: -// If e is an expression of a function type that contains exactly one generic call signature and no other members, -// and T is a function type with exactly one non - generic call signature and no other members, then any inferences -// made for type parameters referenced by the parameters of T's call signature are fixed, and e's type is changed -// to a function type with e's call signature instantiated in the context of T's call signature (section 3.8.5). - -declare function foo(cb: (x: number, y: string) => T): T; ->foo : (cb: (x: number, y: string) => T) => T, Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) ->cb : (x: number, y: string) => T, Symbol(cb, Decl(contextualSignatureInstantiation.ts, 6, 24)) ->x : number, Symbol(x, Decl(contextualSignatureInstantiation.ts, 6, 29)) ->y : string, Symbol(y, Decl(contextualSignatureInstantiation.ts, 6, 39)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 6, 21)) - -declare function bar(x: T, y: U, cb: (x: T, y: U) => V): V; ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 7, 30)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) ->y : U, Symbol(y, Decl(contextualSignatureInstantiation.ts, 7, 35)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) ->cb : (x: T, y: U) => V, Symbol(cb, Decl(contextualSignatureInstantiation.ts, 7, 41)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 7, 47)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 7, 21)) ->y : U, Symbol(y, Decl(contextualSignatureInstantiation.ts, 7, 52)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 7, 23)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiation.ts, 7, 26)) - -declare function baz(x: T, y: T, cb: (x: T, y: T) => U): U; ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 8, 27)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->y : T, Symbol(y, Decl(contextualSignatureInstantiation.ts, 8, 32)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->cb : (x: T, y: T) => U, Symbol(cb, Decl(contextualSignatureInstantiation.ts, 8, 38)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 8, 44)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->y : T, Symbol(y, Decl(contextualSignatureInstantiation.ts, 8, 49)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 8, 21)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 8, 23)) - -declare function g(x: T, y: T): T; ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 10, 22)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) ->y : T, Symbol(y, Decl(contextualSignatureInstantiation.ts, 10, 27)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 10, 19)) - -declare function h(x: T, y: U): T[] | U[]; ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation.ts, 11, 25)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) ->y : U, Symbol(y, Decl(contextualSignatureInstantiation.ts, 11, 30)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation.ts, 11, 19)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation.ts, 11, 21)) - -var a: number; ->a : number, Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) - -var a = bar(1, 1, g); // Should be number ->a : number, Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) ->bar(1, 1, g) : number ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->1 : number ->1 : number ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - -var a = baz(1, 1, g); // Should be number ->a : number, Symbol(a, Decl(contextualSignatureInstantiation.ts, 13, 3), Decl(contextualSignatureInstantiation.ts, 14, 3), Decl(contextualSignatureInstantiation.ts, 15, 3)) ->baz(1, 1, g) : number ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->1 : number ->1 : number ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - -var b: number | string; ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) - -var b = foo(g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->foo(g) : string | number ->foo : (cb: (x: number, y: string) => T) => T, Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - -var b = bar(1, "one", g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->bar(1, "one", g) : string | number ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->1 : number ->"one" : string ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - -var b = bar("one", 1, g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->bar("one", 1, g) : string | number ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->"one" : string ->1 : number ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - -var b = baz(b, b, g); // Should be number | string ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->baz(b, b, g) : string | number ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->b : string | number, Symbol(b, Decl(contextualSignatureInstantiation.ts, 17, 3), Decl(contextualSignatureInstantiation.ts, 18, 3), Decl(contextualSignatureInstantiation.ts, 19, 3), Decl(contextualSignatureInstantiation.ts, 20, 3), Decl(contextualSignatureInstantiation.ts, 21, 3)) ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - -var d: number[] | string[]; ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) - -var d = foo(h); // Should be number[] | string[] ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->foo(h) : number[] | string[] ->foo : (cb: (x: number, y: string) => T) => T, Symbol(foo, Decl(contextualSignatureInstantiation.ts, 0, 0)) ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) - -var d = bar(1, "one", h); // Should be number[] | string[] ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->bar(1, "one", h) : number[] | string[] ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->1 : number ->"one" : string ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) - -var d = bar("one", 1, h); // Should be number[] | string[] ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->bar("one", 1, h) : number[] | string[] ->bar : (x: T, y: U, cb: (x: T, y: U) => V) => V, Symbol(bar, Decl(contextualSignatureInstantiation.ts, 6, 60)) ->"one" : string ->1 : number ->h : (x: T, y: U) => T[] | U[], Symbol(h, Decl(contextualSignatureInstantiation.ts, 10, 37)) - -var d = baz(d, d, g); // Should be number[] | string[] ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->baz(d, d, g) : number[] | string[] ->baz : (x: T, y: T, cb: (x: T, y: T) => U) => U, Symbol(baz, Decl(contextualSignatureInstantiation.ts, 7, 68)) ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->d : number[] | string[], Symbol(d, Decl(contextualSignatureInstantiation.ts, 23, 3), Decl(contextualSignatureInstantiation.ts, 24, 3), Decl(contextualSignatureInstantiation.ts, 25, 3), Decl(contextualSignatureInstantiation.ts, 26, 3), Decl(contextualSignatureInstantiation.ts, 27, 3)) ->g : (x: T, y: T) => T, Symbol(g, Decl(contextualSignatureInstantiation.ts, 8, 65)) - diff --git a/tests/baselines/reference/contextualSignatureInstantiation1.symbols b/tests/baselines/reference/contextualSignatureInstantiation1.symbols new file mode 100644 index 0000000000000..e56e997cffc8b --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstantiation1.symbols @@ -0,0 +1,56 @@ +=== tests/cases/compiler/contextualSignatureInstantiation1.ts === +declare function map(f: (x: S) => T): (a: S[]) => T[]; +>map : Symbol(map, Decl(contextualSignatureInstantiation1.ts, 0, 0)) +>S : Symbol(S, Decl(contextualSignatureInstantiation1.ts, 0, 21)) +>T : Symbol(T, Decl(contextualSignatureInstantiation1.ts, 0, 23)) +>f : Symbol(f, Decl(contextualSignatureInstantiation1.ts, 0, 27)) +>x : Symbol(x, Decl(contextualSignatureInstantiation1.ts, 0, 31)) +>S : Symbol(S, Decl(contextualSignatureInstantiation1.ts, 0, 21)) +>T : Symbol(T, Decl(contextualSignatureInstantiation1.ts, 0, 23)) +>a : Symbol(a, Decl(contextualSignatureInstantiation1.ts, 0, 45)) +>S : Symbol(S, Decl(contextualSignatureInstantiation1.ts, 0, 21)) +>T : Symbol(T, Decl(contextualSignatureInstantiation1.ts, 0, 23)) + +var e = (x: string, y?: K) => x.length; +>e : Symbol(e, Decl(contextualSignatureInstantiation1.ts, 1, 3)) +>K : Symbol(K, Decl(contextualSignatureInstantiation1.ts, 1, 9)) +>x : Symbol(x, Decl(contextualSignatureInstantiation1.ts, 1, 12)) +>y : Symbol(y, Decl(contextualSignatureInstantiation1.ts, 1, 22)) +>K : Symbol(K, Decl(contextualSignatureInstantiation1.ts, 1, 9)) +>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : Symbol(x, Decl(contextualSignatureInstantiation1.ts, 1, 12)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + +var r99 = map(e); // should be {}[] for S since a generic lambda is not inferentially typed +>r99 : Symbol(r99, Decl(contextualSignatureInstantiation1.ts, 2, 3)) +>map : Symbol(map, Decl(contextualSignatureInstantiation1.ts, 0, 0)) +>e : Symbol(e, Decl(contextualSignatureInstantiation1.ts, 1, 3)) + +declare function map2(f: (x: S) => T): (a: S[]) => T[]; +>map2 : Symbol(map2, Decl(contextualSignatureInstantiation1.ts, 2, 17)) +>S : Symbol(S, Decl(contextualSignatureInstantiation1.ts, 4, 22)) +>length : Symbol(length, Decl(contextualSignatureInstantiation1.ts, 4, 33)) +>T : Symbol(T, Decl(contextualSignatureInstantiation1.ts, 4, 51)) +>f : Symbol(f, Decl(contextualSignatureInstantiation1.ts, 4, 55)) +>x : Symbol(x, Decl(contextualSignatureInstantiation1.ts, 4, 59)) +>S : Symbol(S, Decl(contextualSignatureInstantiation1.ts, 4, 22)) +>T : Symbol(T, Decl(contextualSignatureInstantiation1.ts, 4, 51)) +>a : Symbol(a, Decl(contextualSignatureInstantiation1.ts, 4, 73)) +>S : Symbol(S, Decl(contextualSignatureInstantiation1.ts, 4, 22)) +>T : Symbol(T, Decl(contextualSignatureInstantiation1.ts, 4, 51)) + +var e2 = (x: string, y?: K) => x.length; +>e2 : Symbol(e2, Decl(contextualSignatureInstantiation1.ts, 5, 3)) +>K : Symbol(K, Decl(contextualSignatureInstantiation1.ts, 5, 10)) +>x : Symbol(x, Decl(contextualSignatureInstantiation1.ts, 5, 13)) +>y : Symbol(y, Decl(contextualSignatureInstantiation1.ts, 5, 23)) +>K : Symbol(K, Decl(contextualSignatureInstantiation1.ts, 5, 10)) +>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : Symbol(x, Decl(contextualSignatureInstantiation1.ts, 5, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + +var r100 = map2(e2); // type arg inference should fail for S since a generic lambda is not inferentially typed. Falls back to { length: number } +>r100 : Symbol(r100, Decl(contextualSignatureInstantiation1.ts, 6, 3)) +>map2 : Symbol(map2, Decl(contextualSignatureInstantiation1.ts, 2, 17)) +>e2 : Symbol(e2, Decl(contextualSignatureInstantiation1.ts, 5, 3)) + diff --git a/tests/baselines/reference/contextualSignatureInstantiation1.types b/tests/baselines/reference/contextualSignatureInstantiation1.types index b11d2c6300e1b..3a95e87b76f08 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation1.types +++ b/tests/baselines/reference/contextualSignatureInstantiation1.types @@ -1,60 +1,60 @@ === tests/cases/compiler/contextualSignatureInstantiation1.ts === declare function map(f: (x: S) => T): (a: S[]) => T[]; ->map : (f: (x: S) => T) => (a: S[]) => T[], Symbol(map, Decl(contextualSignatureInstantiation1.ts, 0, 0)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation1.ts, 0, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation1.ts, 0, 23)) ->f : (x: S) => T, Symbol(f, Decl(contextualSignatureInstantiation1.ts, 0, 27)) ->x : S, Symbol(x, Decl(contextualSignatureInstantiation1.ts, 0, 31)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation1.ts, 0, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation1.ts, 0, 23)) ->a : S[], Symbol(a, Decl(contextualSignatureInstantiation1.ts, 0, 45)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation1.ts, 0, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation1.ts, 0, 23)) +>map : (f: (x: S) => T) => (a: S[]) => T[] +>S : S +>T : T +>f : (x: S) => T +>x : S +>S : S +>T : T +>a : S[] +>S : S +>T : T var e = (x: string, y?: K) => x.length; ->e : (x: string, y?: K) => number, Symbol(e, Decl(contextualSignatureInstantiation1.ts, 1, 3)) +>e : (x: string, y?: K) => number >(x: string, y?: K) => x.length : (x: string, y?: K) => number ->K : K, Symbol(K, Decl(contextualSignatureInstantiation1.ts, 1, 9)) ->x : string, Symbol(x, Decl(contextualSignatureInstantiation1.ts, 1, 12)) ->y : K, Symbol(y, Decl(contextualSignatureInstantiation1.ts, 1, 22)) ->K : K, Symbol(K, Decl(contextualSignatureInstantiation1.ts, 1, 9)) ->x.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->x : string, Symbol(x, Decl(contextualSignatureInstantiation1.ts, 1, 12)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>K : K +>x : string +>y : K +>K : K +>x.length : number +>x : string +>length : number var r99 = map(e); // should be {}[] for S since a generic lambda is not inferentially typed ->r99 : (a: {}[]) => number[], Symbol(r99, Decl(contextualSignatureInstantiation1.ts, 2, 3)) +>r99 : (a: {}[]) => number[] >map(e) : (a: {}[]) => number[] ->map : (f: (x: S) => T) => (a: S[]) => T[], Symbol(map, Decl(contextualSignatureInstantiation1.ts, 0, 0)) ->e : (x: string, y?: K) => number, Symbol(e, Decl(contextualSignatureInstantiation1.ts, 1, 3)) +>map : (f: (x: S) => T) => (a: S[]) => T[] +>e : (x: string, y?: K) => number declare function map2(f: (x: S) => T): (a: S[]) => T[]; ->map2 : (f: (x: S) => T) => (a: S[]) => T[], Symbol(map2, Decl(contextualSignatureInstantiation1.ts, 2, 17)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation1.ts, 4, 22)) ->length : number, Symbol(length, Decl(contextualSignatureInstantiation1.ts, 4, 33)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation1.ts, 4, 51)) ->f : (x: S) => T, Symbol(f, Decl(contextualSignatureInstantiation1.ts, 4, 55)) ->x : S, Symbol(x, Decl(contextualSignatureInstantiation1.ts, 4, 59)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation1.ts, 4, 22)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation1.ts, 4, 51)) ->a : S[], Symbol(a, Decl(contextualSignatureInstantiation1.ts, 4, 73)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation1.ts, 4, 22)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation1.ts, 4, 51)) +>map2 : (f: (x: S) => T) => (a: S[]) => T[] +>S : S +>length : number +>T : T +>f : (x: S) => T +>x : S +>S : S +>T : T +>a : S[] +>S : S +>T : T var e2 = (x: string, y?: K) => x.length; ->e2 : (x: string, y?: K) => number, Symbol(e2, Decl(contextualSignatureInstantiation1.ts, 5, 3)) +>e2 : (x: string, y?: K) => number >(x: string, y?: K) => x.length : (x: string, y?: K) => number ->K : K, Symbol(K, Decl(contextualSignatureInstantiation1.ts, 5, 10)) ->x : string, Symbol(x, Decl(contextualSignatureInstantiation1.ts, 5, 13)) ->y : K, Symbol(y, Decl(contextualSignatureInstantiation1.ts, 5, 23)) ->K : K, Symbol(K, Decl(contextualSignatureInstantiation1.ts, 5, 10)) ->x.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->x : string, Symbol(x, Decl(contextualSignatureInstantiation1.ts, 5, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>K : K +>x : string +>y : K +>K : K +>x.length : number +>x : string +>length : number var r100 = map2(e2); // type arg inference should fail for S since a generic lambda is not inferentially typed. Falls back to { length: number } ->r100 : (a: { length: number; }[]) => number[], Symbol(r100, Decl(contextualSignatureInstantiation1.ts, 6, 3)) +>r100 : (a: { length: number; }[]) => number[] >map2(e2) : (a: { length: number; }[]) => number[] ->map2 : (f: (x: S) => T) => (a: S[]) => T[], Symbol(map2, Decl(contextualSignatureInstantiation1.ts, 2, 17)) ->e2 : (x: string, y?: K) => number, Symbol(e2, Decl(contextualSignatureInstantiation1.ts, 5, 3)) +>map2 : (f: (x: S) => T) => (a: S[]) => T[] +>e2 : (x: string, y?: K) => number diff --git a/tests/baselines/reference/contextualSignatureInstantiation2.symbols b/tests/baselines/reference/contextualSignatureInstantiation2.symbols new file mode 100644 index 0000000000000..62808982eb547 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstantiation2.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/contextualSignatureInstantiation2.ts === +// dot f g x = f(g(x)) +var dot: (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S; +>dot : Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) +>S : Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) +>f : Symbol(f, Decl(contextualSignatureInstantiation2.ts, 1, 16)) +>_ : Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 20)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) +>S : Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) +>U : Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) +>g : Symbol(g, Decl(contextualSignatureInstantiation2.ts, 1, 39)) +>_ : Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 43)) +>U : Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) +>_ : Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 59)) +>U : Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) +>S : Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) + +dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)); +>dot : Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) +>S : Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) +>f : Symbol(f, Decl(contextualSignatureInstantiation2.ts, 2, 13)) +>_ : Symbol(_, Decl(contextualSignatureInstantiation2.ts, 2, 17)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) +>S : Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) +>U : Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) +>g : Symbol(g, Decl(contextualSignatureInstantiation2.ts, 2, 36)) +>_ : Symbol(_, Decl(contextualSignatureInstantiation2.ts, 2, 40)) +>U : Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) +>r : Symbol(r, Decl(contextualSignatureInstantiation2.ts, 2, 54)) +>U : Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) +>S : Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) +>x : Symbol(x, Decl(contextualSignatureInstantiation2.ts, 2, 68)) +>f : Symbol(f, Decl(contextualSignatureInstantiation2.ts, 2, 13)) +>g : Symbol(g, Decl(contextualSignatureInstantiation2.ts, 2, 36)) +>x : Symbol(x, Decl(contextualSignatureInstantiation2.ts, 2, 68)) + +var id: (x:T) => T; +>id : Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) +>x : Symbol(x, Decl(contextualSignatureInstantiation2.ts, 3, 12)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) +>T : Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) + +var r23 = dot(id)(id); +>r23 : Symbol(r23, Decl(contextualSignatureInstantiation2.ts, 4, 3)) +>dot : Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) +>id : Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) +>id : Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) + diff --git a/tests/baselines/reference/contextualSignatureInstantiation2.types b/tests/baselines/reference/contextualSignatureInstantiation2.types index 7dbddeefedb53..3c28c472517cc 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation2.types +++ b/tests/baselines/reference/contextualSignatureInstantiation2.types @@ -1,61 +1,61 @@ === tests/cases/compiler/contextualSignatureInstantiation2.ts === // dot f g x = f(g(x)) var dot: (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S; ->dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S, Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) ->f : (_: T) => S, Symbol(f, Decl(contextualSignatureInstantiation2.ts, 1, 16)) ->_ : T, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 20)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) ->g : (_: U) => T, Symbol(g, Decl(contextualSignatureInstantiation2.ts, 1, 39)) ->_ : U, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 43)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 1, 10)) ->_ : U, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 1, 59)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 1, 36)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 1, 12)) +>dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S +>T : T +>S : S +>f : (_: T) => S +>_ : T +>T : T +>S : S +>U : U +>g : (_: U) => T +>_ : U +>U : U +>T : T +>_ : U +>U : U +>S : S dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)); >dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S ->dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S, Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) +>dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S >(f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) ->f : (_: T) => S, Symbol(f, Decl(contextualSignatureInstantiation2.ts, 2, 13)) ->_ : T, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 2, 17)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) +>T : T +>S : S +>f : (_: T) => S +>_ : T +>T : T +>S : S >(g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (g: (_: U) => T) => (r: U) => S ->U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) ->g : (_: U) => T, Symbol(g, Decl(contextualSignatureInstantiation2.ts, 2, 36)) ->_ : U, Symbol(_, Decl(contextualSignatureInstantiation2.ts, 2, 40)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 2, 7)) ->r : U, Symbol(r, Decl(contextualSignatureInstantiation2.ts, 2, 54)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation2.ts, 2, 33)) ->S : S, Symbol(S, Decl(contextualSignatureInstantiation2.ts, 2, 9)) +>U : U +>g : (_: U) => T +>_ : U +>U : U +>T : T +>r : U +>U : U +>S : S >(x) => f(g(x)) : (x: U) => S ->x : U, Symbol(x, Decl(contextualSignatureInstantiation2.ts, 2, 68)) +>x : U >f(g(x)) : S ->f : (_: T) => S, Symbol(f, Decl(contextualSignatureInstantiation2.ts, 2, 13)) +>f : (_: T) => S >g(x) : T ->g : (_: U) => T, Symbol(g, Decl(contextualSignatureInstantiation2.ts, 2, 36)) ->x : U, Symbol(x, Decl(contextualSignatureInstantiation2.ts, 2, 68)) +>g : (_: U) => T +>x : U var id: (x:T) => T; ->id : (x: T) => T, Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation2.ts, 3, 12)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation2.ts, 3, 9)) +>id : (x: T) => T +>T : T +>x : T +>T : T +>T : T var r23 = dot(id)(id); ->r23 : (_: {}) => {}, Symbol(r23, Decl(contextualSignatureInstantiation2.ts, 4, 3)) +>r23 : (_: {}) => {} >dot(id)(id) : (_: {}) => {} >dot(id) : (g: (_: U) => {}) => (_: U) => {} ->dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S, Symbol(dot, Decl(contextualSignatureInstantiation2.ts, 1, 3)) ->id : (x: T) => T, Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) ->id : (x: T) => T, Symbol(id, Decl(contextualSignatureInstantiation2.ts, 3, 3)) +>dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S +>id : (x: T) => T +>id : (x: T) => T diff --git a/tests/baselines/reference/contextualSignatureInstantiation3.symbols b/tests/baselines/reference/contextualSignatureInstantiation3.symbols new file mode 100644 index 0000000000000..7e90c6390ca66 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstantiation3.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/contextualSignatureInstantiation3.ts === +function map(items: T[], f: (x: T) => U): U[]{ +>map : Symbol(map, Decl(contextualSignatureInstantiation3.ts, 0, 0)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 0, 13)) +>U : Symbol(U, Decl(contextualSignatureInstantiation3.ts, 0, 15)) +>items : Symbol(items, Decl(contextualSignatureInstantiation3.ts, 0, 19)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 0, 13)) +>f : Symbol(f, Decl(contextualSignatureInstantiation3.ts, 0, 30)) +>x : Symbol(x, Decl(contextualSignatureInstantiation3.ts, 0, 35)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 0, 13)) +>U : Symbol(U, Decl(contextualSignatureInstantiation3.ts, 0, 15)) +>U : Symbol(U, Decl(contextualSignatureInstantiation3.ts, 0, 15)) + + return items.map(f); +>items.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>items : Symbol(items, Decl(contextualSignatureInstantiation3.ts, 0, 19)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>f : Symbol(f, Decl(contextualSignatureInstantiation3.ts, 0, 30)) +} + +function identity(x: T) { +>identity : Symbol(identity, Decl(contextualSignatureInstantiation3.ts, 2, 1)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 4, 18)) +>x : Symbol(x, Decl(contextualSignatureInstantiation3.ts, 4, 21)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 4, 18)) + + return x; +>x : Symbol(x, Decl(contextualSignatureInstantiation3.ts, 4, 21)) +} + +function singleton(x: T) { +>singleton : Symbol(singleton, Decl(contextualSignatureInstantiation3.ts, 6, 1)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 8, 19)) +>x : Symbol(x, Decl(contextualSignatureInstantiation3.ts, 8, 22)) +>T : Symbol(T, Decl(contextualSignatureInstantiation3.ts, 8, 19)) + + return [x]; +>x : Symbol(x, Decl(contextualSignatureInstantiation3.ts, 8, 22)) +} + +var xs = [1, 2, 3]; +>xs : Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) + +// Have compiler check that we get the correct types +var v1: number[]; +>v1 : Symbol(v1, Decl(contextualSignatureInstantiation3.ts, 15, 3), Decl(contextualSignatureInstantiation3.ts, 16, 3), Decl(contextualSignatureInstantiation3.ts, 17, 3)) + +var v1 = xs.map(identity); // Error if not number[] +>v1 : Symbol(v1, Decl(contextualSignatureInstantiation3.ts, 15, 3), Decl(contextualSignatureInstantiation3.ts, 16, 3), Decl(contextualSignatureInstantiation3.ts, 17, 3)) +>xs.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>xs : Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>identity : Symbol(identity, Decl(contextualSignatureInstantiation3.ts, 2, 1)) + +var v1 = map(xs, identity); // Error if not number[] +>v1 : Symbol(v1, Decl(contextualSignatureInstantiation3.ts, 15, 3), Decl(contextualSignatureInstantiation3.ts, 16, 3), Decl(contextualSignatureInstantiation3.ts, 17, 3)) +>map : Symbol(map, Decl(contextualSignatureInstantiation3.ts, 0, 0)) +>xs : Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) +>identity : Symbol(identity, Decl(contextualSignatureInstantiation3.ts, 2, 1)) + +var v2: number[][]; +>v2 : Symbol(v2, Decl(contextualSignatureInstantiation3.ts, 19, 3), Decl(contextualSignatureInstantiation3.ts, 20, 3), Decl(contextualSignatureInstantiation3.ts, 21, 3)) + +var v2 = xs.map(singleton); // Error if not number[][] +>v2 : Symbol(v2, Decl(contextualSignatureInstantiation3.ts, 19, 3), Decl(contextualSignatureInstantiation3.ts, 20, 3), Decl(contextualSignatureInstantiation3.ts, 21, 3)) +>xs.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>xs : Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>singleton : Symbol(singleton, Decl(contextualSignatureInstantiation3.ts, 6, 1)) + +var v2 = map(xs, singleton); // Error if not number[][] +>v2 : Symbol(v2, Decl(contextualSignatureInstantiation3.ts, 19, 3), Decl(contextualSignatureInstantiation3.ts, 20, 3), Decl(contextualSignatureInstantiation3.ts, 21, 3)) +>map : Symbol(map, Decl(contextualSignatureInstantiation3.ts, 0, 0)) +>xs : Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) +>singleton : Symbol(singleton, Decl(contextualSignatureInstantiation3.ts, 6, 1)) + diff --git a/tests/baselines/reference/contextualSignatureInstantiation3.types b/tests/baselines/reference/contextualSignatureInstantiation3.types index c141631c9d65b..d01b2b1f8e47f 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation3.types +++ b/tests/baselines/reference/contextualSignatureInstantiation3.types @@ -1,47 +1,47 @@ === tests/cases/compiler/contextualSignatureInstantiation3.ts === function map(items: T[], f: (x: T) => U): U[]{ ->map : (items: T[], f: (x: T) => U) => U[], Symbol(map, Decl(contextualSignatureInstantiation3.ts, 0, 0)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 0, 13)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation3.ts, 0, 15)) ->items : T[], Symbol(items, Decl(contextualSignatureInstantiation3.ts, 0, 19)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 0, 13)) ->f : (x: T) => U, Symbol(f, Decl(contextualSignatureInstantiation3.ts, 0, 30)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation3.ts, 0, 35)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 0, 13)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation3.ts, 0, 15)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiation3.ts, 0, 15)) +>map : (items: T[], f: (x: T) => U) => U[] +>T : T +>U : U +>items : T[] +>T : T +>f : (x: T) => U +>x : T +>T : T +>U : U +>U : U return items.map(f); >items.map(f) : U[] ->items.map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->items : T[], Symbol(items, Decl(contextualSignatureInstantiation3.ts, 0, 19)) ->map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->f : (x: T) => U, Symbol(f, Decl(contextualSignatureInstantiation3.ts, 0, 30)) +>items.map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[] +>items : T[] +>map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[] +>f : (x: T) => U } function identity(x: T) { ->identity : (x: T) => T, Symbol(identity, Decl(contextualSignatureInstantiation3.ts, 2, 1)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 4, 18)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation3.ts, 4, 21)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 4, 18)) +>identity : (x: T) => T +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(contextualSignatureInstantiation3.ts, 4, 21)) +>x : T } function singleton(x: T) { ->singleton : (x: T) => T[], Symbol(singleton, Decl(contextualSignatureInstantiation3.ts, 6, 1)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 8, 19)) ->x : T, Symbol(x, Decl(contextualSignatureInstantiation3.ts, 8, 22)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiation3.ts, 8, 19)) +>singleton : (x: T) => T[] +>T : T +>x : T +>T : T return [x]; >[x] : T[] ->x : T, Symbol(x, Decl(contextualSignatureInstantiation3.ts, 8, 22)) +>x : T } var xs = [1, 2, 3]; ->xs : number[], Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) +>xs : number[] >[1, 2, 3] : number[] >1 : number >2 : number @@ -49,38 +49,38 @@ var xs = [1, 2, 3]; // Have compiler check that we get the correct types var v1: number[]; ->v1 : number[], Symbol(v1, Decl(contextualSignatureInstantiation3.ts, 15, 3), Decl(contextualSignatureInstantiation3.ts, 16, 3), Decl(contextualSignatureInstantiation3.ts, 17, 3)) +>v1 : number[] var v1 = xs.map(identity); // Error if not number[] ->v1 : number[], Symbol(v1, Decl(contextualSignatureInstantiation3.ts, 15, 3), Decl(contextualSignatureInstantiation3.ts, 16, 3), Decl(contextualSignatureInstantiation3.ts, 17, 3)) +>v1 : number[] >xs.map(identity) : number[] ->xs.map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->xs : number[], Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) ->map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->identity : (x: T) => T, Symbol(identity, Decl(contextualSignatureInstantiation3.ts, 2, 1)) +>xs.map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>xs : number[] +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>identity : (x: T) => T var v1 = map(xs, identity); // Error if not number[] ->v1 : number[], Symbol(v1, Decl(contextualSignatureInstantiation3.ts, 15, 3), Decl(contextualSignatureInstantiation3.ts, 16, 3), Decl(contextualSignatureInstantiation3.ts, 17, 3)) +>v1 : number[] >map(xs, identity) : number[] ->map : (items: T[], f: (x: T) => U) => U[], Symbol(map, Decl(contextualSignatureInstantiation3.ts, 0, 0)) ->xs : number[], Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) ->identity : (x: T) => T, Symbol(identity, Decl(contextualSignatureInstantiation3.ts, 2, 1)) +>map : (items: T[], f: (x: T) => U) => U[] +>xs : number[] +>identity : (x: T) => T var v2: number[][]; ->v2 : number[][], Symbol(v2, Decl(contextualSignatureInstantiation3.ts, 19, 3), Decl(contextualSignatureInstantiation3.ts, 20, 3), Decl(contextualSignatureInstantiation3.ts, 21, 3)) +>v2 : number[][] var v2 = xs.map(singleton); // Error if not number[][] ->v2 : number[][], Symbol(v2, Decl(contextualSignatureInstantiation3.ts, 19, 3), Decl(contextualSignatureInstantiation3.ts, 20, 3), Decl(contextualSignatureInstantiation3.ts, 21, 3)) +>v2 : number[][] >xs.map(singleton) : number[][] ->xs.map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->xs : number[], Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) ->map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->singleton : (x: T) => T[], Symbol(singleton, Decl(contextualSignatureInstantiation3.ts, 6, 1)) +>xs.map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>xs : number[] +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>singleton : (x: T) => T[] var v2 = map(xs, singleton); // Error if not number[][] ->v2 : number[][], Symbol(v2, Decl(contextualSignatureInstantiation3.ts, 19, 3), Decl(contextualSignatureInstantiation3.ts, 20, 3), Decl(contextualSignatureInstantiation3.ts, 21, 3)) +>v2 : number[][] >map(xs, singleton) : number[][] ->map : (items: T[], f: (x: T) => U) => U[], Symbol(map, Decl(contextualSignatureInstantiation3.ts, 0, 0)) ->xs : number[], Symbol(xs, Decl(contextualSignatureInstantiation3.ts, 12, 3)) ->singleton : (x: T) => T[], Symbol(singleton, Decl(contextualSignatureInstantiation3.ts, 6, 1)) +>map : (items: T[], f: (x: T) => U) => U[] +>xs : number[] +>singleton : (x: T) => T[] diff --git a/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.symbols b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.symbols new file mode 100644 index 0000000000000..db6f205b152e9 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts === +function f() { +>f : Symbol(f, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 11)) + + function g(u: U): U { return null } +>g : Symbol(g, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 17)) +>U : Symbol(U, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 15)) +>T : Symbol(T, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 11)) +>u : Symbol(u, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 28)) +>U : Symbol(U, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 15)) +>U : Symbol(U, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 15)) + + return g; +>g : Symbol(g, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 17)) +} +var h: (v: V, func: (v: V) => W) => W; +>h : Symbol(h, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>V : Symbol(V, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 8)) +>W : Symbol(W, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 10)) +>v : Symbol(v, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 14)) +>V : Symbol(V, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 8)) +>func : Symbol(func, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 19)) +>v : Symbol(v, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 27)) +>V : Symbol(V, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 8)) +>W : Symbol(W, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 10)) +>W : Symbol(W, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 10)) + +var x = h("", f()); // Call should succeed and x should be string. All type parameters should be instantiated to string +>x : Symbol(x, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 5, 3)) +>h : Symbol(h, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>f : Symbol(f, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) + diff --git a/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types index 486a70c5a36b4..d0a6d49487b93 100644 --- a/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types +++ b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types @@ -1,37 +1,37 @@ === tests/cases/compiler/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts === function f() { ->f : () => (u: U) => U, Symbol(f, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 11)) +>f : () => (u: U) => U +>T : T function g(u: U): U { return null } ->g : (u: U) => U, Symbol(g, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 17)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 15)) ->T : T, Symbol(T, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 11)) ->u : U, Symbol(u, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 28)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 15)) ->U : U, Symbol(U, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 15)) +>g : (u: U) => U +>U : U +>T : T +>u : U +>U : U +>U : U >null : null return g; ->g : (u: U) => U, Symbol(g, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 17)) +>g : (u: U) => U } var h: (v: V, func: (v: V) => W) => W; ->h : (v: V, func: (v: V) => W) => W, Symbol(h, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 8)) ->W : W, Symbol(W, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 10)) ->v : V, Symbol(v, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 14)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 8)) ->func : (v: V) => W, Symbol(func, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 19)) ->v : V, Symbol(v, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 27)) ->V : V, Symbol(V, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 8)) ->W : W, Symbol(W, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 10)) ->W : W, Symbol(W, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 10)) +>h : (v: V, func: (v: V) => W) => W +>V : V +>W : W +>v : V +>V : V +>func : (v: V) => W +>v : V +>V : V +>W : W +>W : W var x = h("", f()); // Call should succeed and x should be string. All type parameters should be instantiated to string ->x : string, Symbol(x, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 5, 3)) +>x : string >h("", f()) : string ->h : (v: V, func: (v: V) => W) => W, Symbol(h, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>h : (v: V, func: (v: V) => W) => W >"" : string >f() : (u: U) => U ->f : () => (u: U) => U, Symbol(f, Decl(contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) +>f : () => (u: U) => U diff --git a/tests/baselines/reference/contextualSignatureInstatiationContravariance.symbols b/tests/baselines/reference/contextualSignatureInstatiationContravariance.symbols new file mode 100644 index 0000000000000..c19c61cdbb0e5 --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstatiationContravariance.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/contextualSignatureInstatiationContravariance.ts === +interface Animal { x } +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) +>x : Symbol(x, Decl(contextualSignatureInstatiationContravariance.ts, 0, 18)) + +interface Giraffe extends Animal { y } +>Giraffe : Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) +>y : Symbol(y, Decl(contextualSignatureInstatiationContravariance.ts, 1, 34)) + +interface Elephant extends Animal { y2 } +>Elephant : Symbol(Elephant, Decl(contextualSignatureInstatiationContravariance.ts, 1, 38)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) +>y2 : Symbol(y2, Decl(contextualSignatureInstatiationContravariance.ts, 2, 35)) + +var f2: (x: T, y: T) => void; +>f2 : Symbol(f2, Decl(contextualSignatureInstatiationContravariance.ts, 4, 3)) +>T : Symbol(T, Decl(contextualSignatureInstatiationContravariance.ts, 4, 9)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) +>x : Symbol(x, Decl(contextualSignatureInstatiationContravariance.ts, 4, 27)) +>T : Symbol(T, Decl(contextualSignatureInstatiationContravariance.ts, 4, 9)) +>y : Symbol(y, Decl(contextualSignatureInstatiationContravariance.ts, 4, 32)) +>T : Symbol(T, Decl(contextualSignatureInstatiationContravariance.ts, 4, 9)) + +var g2: (g: Giraffe, e: Elephant) => void; +>g2 : Symbol(g2, Decl(contextualSignatureInstatiationContravariance.ts, 6, 3)) +>g : Symbol(g, Decl(contextualSignatureInstatiationContravariance.ts, 6, 9)) +>Giraffe : Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) +>e : Symbol(e, Decl(contextualSignatureInstatiationContravariance.ts, 6, 20)) +>Elephant : Symbol(Elephant, Decl(contextualSignatureInstatiationContravariance.ts, 1, 38)) + +g2 = f2; // valid because both Giraffe and Elephant satisfy the constraint. T is Animal +>g2 : Symbol(g2, Decl(contextualSignatureInstatiationContravariance.ts, 6, 3)) +>f2 : Symbol(f2, Decl(contextualSignatureInstatiationContravariance.ts, 4, 3)) + +var h2: (g1: Giraffe, g2: Giraffe) => void; +>h2 : Symbol(h2, Decl(contextualSignatureInstatiationContravariance.ts, 9, 3)) +>g1 : Symbol(g1, Decl(contextualSignatureInstatiationContravariance.ts, 9, 9)) +>Giraffe : Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) +>g2 : Symbol(g2, Decl(contextualSignatureInstatiationContravariance.ts, 9, 21)) +>Giraffe : Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) + +h2 = f2; // valid because Giraffe satisfies the constraint. It is safe in the traditional contravariant fashion. +>h2 : Symbol(h2, Decl(contextualSignatureInstatiationContravariance.ts, 9, 3)) +>f2 : Symbol(f2, Decl(contextualSignatureInstatiationContravariance.ts, 4, 3)) + diff --git a/tests/baselines/reference/contextualSignatureInstatiationContravariance.types b/tests/baselines/reference/contextualSignatureInstatiationContravariance.types index 52b80aff4ddcf..d1d8a38dbc4d0 100644 --- a/tests/baselines/reference/contextualSignatureInstatiationContravariance.types +++ b/tests/baselines/reference/contextualSignatureInstatiationContravariance.types @@ -1,48 +1,48 @@ === tests/cases/compiler/contextualSignatureInstatiationContravariance.ts === interface Animal { x } ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) ->x : any, Symbol(x, Decl(contextualSignatureInstatiationContravariance.ts, 0, 18)) +>Animal : Animal +>x : any interface Giraffe extends Animal { y } ->Giraffe : Giraffe, Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) ->y : any, Symbol(y, Decl(contextualSignatureInstatiationContravariance.ts, 1, 34)) +>Giraffe : Giraffe +>Animal : Animal +>y : any interface Elephant extends Animal { y2 } ->Elephant : Elephant, Symbol(Elephant, Decl(contextualSignatureInstatiationContravariance.ts, 1, 38)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) ->y2 : any, Symbol(y2, Decl(contextualSignatureInstatiationContravariance.ts, 2, 35)) +>Elephant : Elephant +>Animal : Animal +>y2 : any var f2: (x: T, y: T) => void; ->f2 : (x: T, y: T) => void, Symbol(f2, Decl(contextualSignatureInstatiationContravariance.ts, 4, 3)) ->T : T, Symbol(T, Decl(contextualSignatureInstatiationContravariance.ts, 4, 9)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationContravariance.ts, 0, 0)) ->x : T, Symbol(x, Decl(contextualSignatureInstatiationContravariance.ts, 4, 27)) ->T : T, Symbol(T, Decl(contextualSignatureInstatiationContravariance.ts, 4, 9)) ->y : T, Symbol(y, Decl(contextualSignatureInstatiationContravariance.ts, 4, 32)) ->T : T, Symbol(T, Decl(contextualSignatureInstatiationContravariance.ts, 4, 9)) +>f2 : (x: T, y: T) => void +>T : T +>Animal : Animal +>x : T +>T : T +>y : T +>T : T var g2: (g: Giraffe, e: Elephant) => void; ->g2 : (g: Giraffe, e: Elephant) => void, Symbol(g2, Decl(contextualSignatureInstatiationContravariance.ts, 6, 3)) ->g : Giraffe, Symbol(g, Decl(contextualSignatureInstatiationContravariance.ts, 6, 9)) ->Giraffe : Giraffe, Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) ->e : Elephant, Symbol(e, Decl(contextualSignatureInstatiationContravariance.ts, 6, 20)) ->Elephant : Elephant, Symbol(Elephant, Decl(contextualSignatureInstatiationContravariance.ts, 1, 38)) +>g2 : (g: Giraffe, e: Elephant) => void +>g : Giraffe +>Giraffe : Giraffe +>e : Elephant +>Elephant : Elephant g2 = f2; // valid because both Giraffe and Elephant satisfy the constraint. T is Animal >g2 = f2 : (x: T, y: T) => void ->g2 : (g: Giraffe, e: Elephant) => void, Symbol(g2, Decl(contextualSignatureInstatiationContravariance.ts, 6, 3)) ->f2 : (x: T, y: T) => void, Symbol(f2, Decl(contextualSignatureInstatiationContravariance.ts, 4, 3)) +>g2 : (g: Giraffe, e: Elephant) => void +>f2 : (x: T, y: T) => void var h2: (g1: Giraffe, g2: Giraffe) => void; ->h2 : (g1: Giraffe, g2: Giraffe) => void, Symbol(h2, Decl(contextualSignatureInstatiationContravariance.ts, 9, 3)) ->g1 : Giraffe, Symbol(g1, Decl(contextualSignatureInstatiationContravariance.ts, 9, 9)) ->Giraffe : Giraffe, Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) ->g2 : Giraffe, Symbol(g2, Decl(contextualSignatureInstatiationContravariance.ts, 9, 21)) ->Giraffe : Giraffe, Symbol(Giraffe, Decl(contextualSignatureInstatiationContravariance.ts, 0, 22)) +>h2 : (g1: Giraffe, g2: Giraffe) => void +>g1 : Giraffe +>Giraffe : Giraffe +>g2 : Giraffe +>Giraffe : Giraffe h2 = f2; // valid because Giraffe satisfies the constraint. It is safe in the traditional contravariant fashion. >h2 = f2 : (x: T, y: T) => void ->h2 : (g1: Giraffe, g2: Giraffe) => void, Symbol(h2, Decl(contextualSignatureInstatiationContravariance.ts, 9, 3)) ->f2 : (x: T, y: T) => void, Symbol(f2, Decl(contextualSignatureInstatiationContravariance.ts, 4, 3)) +>h2 : (g1: Giraffe, g2: Giraffe) => void +>f2 : (x: T, y: T) => void diff --git a/tests/baselines/reference/contextualSignatureInstatiationCovariance.symbols b/tests/baselines/reference/contextualSignatureInstatiationCovariance.symbols new file mode 100644 index 0000000000000..9b1b4c0c5f08d --- /dev/null +++ b/tests/baselines/reference/contextualSignatureInstatiationCovariance.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/contextualSignatureInstatiationCovariance.ts === +interface Animal { x } +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) +>x : Symbol(x, Decl(contextualSignatureInstatiationCovariance.ts, 0, 18)) + +interface TallThing { x2 } +>TallThing : Symbol(TallThing, Decl(contextualSignatureInstatiationCovariance.ts, 0, 22)) +>x2 : Symbol(x2, Decl(contextualSignatureInstatiationCovariance.ts, 1, 21)) + +interface Giraffe extends Animal, TallThing { y } +>Giraffe : Symbol(Giraffe, Decl(contextualSignatureInstatiationCovariance.ts, 1, 26)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) +>TallThing : Symbol(TallThing, Decl(contextualSignatureInstatiationCovariance.ts, 0, 22)) +>y : Symbol(y, Decl(contextualSignatureInstatiationCovariance.ts, 2, 45)) + +var f2: (x: T, y: T) => void; +>f2 : Symbol(f2, Decl(contextualSignatureInstatiationCovariance.ts, 4, 3)) +>T : Symbol(T, Decl(contextualSignatureInstatiationCovariance.ts, 4, 9)) +>Giraffe : Symbol(Giraffe, Decl(contextualSignatureInstatiationCovariance.ts, 1, 26)) +>x : Symbol(x, Decl(contextualSignatureInstatiationCovariance.ts, 4, 28)) +>T : Symbol(T, Decl(contextualSignatureInstatiationCovariance.ts, 4, 9)) +>y : Symbol(y, Decl(contextualSignatureInstatiationCovariance.ts, 4, 33)) +>T : Symbol(T, Decl(contextualSignatureInstatiationCovariance.ts, 4, 9)) + +var g2: (a: Animal, t: TallThing) => void; +>g2 : Symbol(g2, Decl(contextualSignatureInstatiationCovariance.ts, 6, 3)) +>a : Symbol(a, Decl(contextualSignatureInstatiationCovariance.ts, 6, 9)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) +>t : Symbol(t, Decl(contextualSignatureInstatiationCovariance.ts, 6, 19)) +>TallThing : Symbol(TallThing, Decl(contextualSignatureInstatiationCovariance.ts, 0, 22)) + +g2 = f2; // While neither Animal nor TallThing satisfy the constraint, T is at worst a Giraffe and compatible with both via covariance. +>g2 : Symbol(g2, Decl(contextualSignatureInstatiationCovariance.ts, 6, 3)) +>f2 : Symbol(f2, Decl(contextualSignatureInstatiationCovariance.ts, 4, 3)) + +var h2: (a1: Animal, a2: Animal) => void; +>h2 : Symbol(h2, Decl(contextualSignatureInstatiationCovariance.ts, 9, 3)) +>a1 : Symbol(a1, Decl(contextualSignatureInstatiationCovariance.ts, 9, 9)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) +>a2 : Symbol(a2, Decl(contextualSignatureInstatiationCovariance.ts, 9, 20)) +>Animal : Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) + +h2 = f2; // Animal does not satisfy the constraint, but T is at worst a Giraffe and compatible with Animal via covariance. +>h2 : Symbol(h2, Decl(contextualSignatureInstatiationCovariance.ts, 9, 3)) +>f2 : Symbol(f2, Decl(contextualSignatureInstatiationCovariance.ts, 4, 3)) + diff --git a/tests/baselines/reference/contextualSignatureInstatiationCovariance.types b/tests/baselines/reference/contextualSignatureInstatiationCovariance.types index e43ec0400d06b..40ec11a473b0b 100644 --- a/tests/baselines/reference/contextualSignatureInstatiationCovariance.types +++ b/tests/baselines/reference/contextualSignatureInstatiationCovariance.types @@ -1,48 +1,48 @@ === tests/cases/compiler/contextualSignatureInstatiationCovariance.ts === interface Animal { x } ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) ->x : any, Symbol(x, Decl(contextualSignatureInstatiationCovariance.ts, 0, 18)) +>Animal : Animal +>x : any interface TallThing { x2 } ->TallThing : TallThing, Symbol(TallThing, Decl(contextualSignatureInstatiationCovariance.ts, 0, 22)) ->x2 : any, Symbol(x2, Decl(contextualSignatureInstatiationCovariance.ts, 1, 21)) +>TallThing : TallThing +>x2 : any interface Giraffe extends Animal, TallThing { y } ->Giraffe : Giraffe, Symbol(Giraffe, Decl(contextualSignatureInstatiationCovariance.ts, 1, 26)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) ->TallThing : TallThing, Symbol(TallThing, Decl(contextualSignatureInstatiationCovariance.ts, 0, 22)) ->y : any, Symbol(y, Decl(contextualSignatureInstatiationCovariance.ts, 2, 45)) +>Giraffe : Giraffe +>Animal : Animal +>TallThing : TallThing +>y : any var f2: (x: T, y: T) => void; ->f2 : (x: T, y: T) => void, Symbol(f2, Decl(contextualSignatureInstatiationCovariance.ts, 4, 3)) ->T : T, Symbol(T, Decl(contextualSignatureInstatiationCovariance.ts, 4, 9)) ->Giraffe : Giraffe, Symbol(Giraffe, Decl(contextualSignatureInstatiationCovariance.ts, 1, 26)) ->x : T, Symbol(x, Decl(contextualSignatureInstatiationCovariance.ts, 4, 28)) ->T : T, Symbol(T, Decl(contextualSignatureInstatiationCovariance.ts, 4, 9)) ->y : T, Symbol(y, Decl(contextualSignatureInstatiationCovariance.ts, 4, 33)) ->T : T, Symbol(T, Decl(contextualSignatureInstatiationCovariance.ts, 4, 9)) +>f2 : (x: T, y: T) => void +>T : T +>Giraffe : Giraffe +>x : T +>T : T +>y : T +>T : T var g2: (a: Animal, t: TallThing) => void; ->g2 : (a: Animal, t: TallThing) => void, Symbol(g2, Decl(contextualSignatureInstatiationCovariance.ts, 6, 3)) ->a : Animal, Symbol(a, Decl(contextualSignatureInstatiationCovariance.ts, 6, 9)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) ->t : TallThing, Symbol(t, Decl(contextualSignatureInstatiationCovariance.ts, 6, 19)) ->TallThing : TallThing, Symbol(TallThing, Decl(contextualSignatureInstatiationCovariance.ts, 0, 22)) +>g2 : (a: Animal, t: TallThing) => void +>a : Animal +>Animal : Animal +>t : TallThing +>TallThing : TallThing g2 = f2; // While neither Animal nor TallThing satisfy the constraint, T is at worst a Giraffe and compatible with both via covariance. >g2 = f2 : (x: T, y: T) => void ->g2 : (a: Animal, t: TallThing) => void, Symbol(g2, Decl(contextualSignatureInstatiationCovariance.ts, 6, 3)) ->f2 : (x: T, y: T) => void, Symbol(f2, Decl(contextualSignatureInstatiationCovariance.ts, 4, 3)) +>g2 : (a: Animal, t: TallThing) => void +>f2 : (x: T, y: T) => void var h2: (a1: Animal, a2: Animal) => void; ->h2 : (a1: Animal, a2: Animal) => void, Symbol(h2, Decl(contextualSignatureInstatiationCovariance.ts, 9, 3)) ->a1 : Animal, Symbol(a1, Decl(contextualSignatureInstatiationCovariance.ts, 9, 9)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) ->a2 : Animal, Symbol(a2, Decl(contextualSignatureInstatiationCovariance.ts, 9, 20)) ->Animal : Animal, Symbol(Animal, Decl(contextualSignatureInstatiationCovariance.ts, 0, 0)) +>h2 : (a1: Animal, a2: Animal) => void +>a1 : Animal +>Animal : Animal +>a2 : Animal +>Animal : Animal h2 = f2; // Animal does not satisfy the constraint, but T is at worst a Giraffe and compatible with Animal via covariance. >h2 = f2 : (x: T, y: T) => void ->h2 : (a1: Animal, a2: Animal) => void, Symbol(h2, Decl(contextualSignatureInstatiationCovariance.ts, 9, 3)) ->f2 : (x: T, y: T) => void, Symbol(f2, Decl(contextualSignatureInstatiationCovariance.ts, 4, 3)) +>h2 : (a1: Animal, a2: Animal) => void +>f2 : (x: T, y: T) => void diff --git a/tests/baselines/reference/contextualTypeAny.symbols b/tests/baselines/reference/contextualTypeAny.symbols new file mode 100644 index 0000000000000..5132c948a2e27 --- /dev/null +++ b/tests/baselines/reference/contextualTypeAny.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/contextualTypeAny.ts === +var x: any; +>x : Symbol(x, Decl(contextualTypeAny.ts, 0, 3)) + +var obj: { [s: string]: number } = { p: "", q: x }; +>obj : Symbol(obj, Decl(contextualTypeAny.ts, 2, 3)) +>s : Symbol(s, Decl(contextualTypeAny.ts, 2, 12)) +>p : Symbol(p, Decl(contextualTypeAny.ts, 2, 36)) +>q : Symbol(q, Decl(contextualTypeAny.ts, 2, 43)) +>x : Symbol(x, Decl(contextualTypeAny.ts, 0, 3)) + +var arr: number[] = ["", x]; +>arr : Symbol(arr, Decl(contextualTypeAny.ts, 4, 3)) +>x : Symbol(x, Decl(contextualTypeAny.ts, 0, 3)) + diff --git a/tests/baselines/reference/contextualTypeAny.types b/tests/baselines/reference/contextualTypeAny.types index 501503b6b3a06..cace92d6567b8 100644 --- a/tests/baselines/reference/contextualTypeAny.types +++ b/tests/baselines/reference/contextualTypeAny.types @@ -1,19 +1,19 @@ === tests/cases/compiler/contextualTypeAny.ts === var x: any; ->x : any, Symbol(x, Decl(contextualTypeAny.ts, 0, 3)) +>x : any var obj: { [s: string]: number } = { p: "", q: x }; ->obj : { [s: string]: number; }, Symbol(obj, Decl(contextualTypeAny.ts, 2, 3)) ->s : string, Symbol(s, Decl(contextualTypeAny.ts, 2, 12)) +>obj : { [s: string]: number; } +>s : string >{ p: "", q: x } : { [x: string]: any; p: string; q: any; } ->p : string, Symbol(p, Decl(contextualTypeAny.ts, 2, 36)) +>p : string >"" : string ->q : any, Symbol(q, Decl(contextualTypeAny.ts, 2, 43)) ->x : any, Symbol(x, Decl(contextualTypeAny.ts, 0, 3)) +>q : any +>x : any var arr: number[] = ["", x]; ->arr : number[], Symbol(arr, Decl(contextualTypeAny.ts, 4, 3)) +>arr : number[] >["", x] : any[] >"" : string ->x : any, Symbol(x, Decl(contextualTypeAny.ts, 0, 3)) +>x : any diff --git a/tests/baselines/reference/contextualTypeAppliedToVarArgs.symbols b/tests/baselines/reference/contextualTypeAppliedToVarArgs.symbols new file mode 100644 index 0000000000000..bf8774cc7f08f --- /dev/null +++ b/tests/baselines/reference/contextualTypeAppliedToVarArgs.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/contextualTypeAppliedToVarArgs.ts === +function delegate(instance: any, method: (...args: any[]) => any, data?: any): (...args: any[]) => any { +>delegate : Symbol(delegate, Decl(contextualTypeAppliedToVarArgs.ts, 0, 0)) +>instance : Symbol(instance, Decl(contextualTypeAppliedToVarArgs.ts, 0, 18)) +>method : Symbol(method, Decl(contextualTypeAppliedToVarArgs.ts, 0, 32)) +>args : Symbol(args, Decl(contextualTypeAppliedToVarArgs.ts, 0, 42)) +>data : Symbol(data, Decl(contextualTypeAppliedToVarArgs.ts, 0, 65)) +>args : Symbol(args, Decl(contextualTypeAppliedToVarArgs.ts, 0, 80)) + + return function () { }; +} + +class Foo{ +>Foo : Symbol(Foo, Decl(contextualTypeAppliedToVarArgs.ts, 2, 1)) + + + Bar() { +>Bar : Symbol(Bar, Decl(contextualTypeAppliedToVarArgs.ts, 4, 10)) + + delegate(this, function (source, args2) +>delegate : Symbol(delegate, Decl(contextualTypeAppliedToVarArgs.ts, 0, 0)) +>this : Symbol(Foo, Decl(contextualTypeAppliedToVarArgs.ts, 2, 1)) +>source : Symbol(source, Decl(contextualTypeAppliedToVarArgs.ts, 8, 33)) +>args2 : Symbol(args2, Decl(contextualTypeAppliedToVarArgs.ts, 8, 40)) + { + var a = source.node; +>a : Symbol(a, Decl(contextualTypeAppliedToVarArgs.ts, 10, 15)) +>source : Symbol(source, Decl(contextualTypeAppliedToVarArgs.ts, 8, 33)) + + var b = args2.node; +>b : Symbol(b, Decl(contextualTypeAppliedToVarArgs.ts, 11, 15)) +>args2 : Symbol(args2, Decl(contextualTypeAppliedToVarArgs.ts, 8, 40)) + + } ); + } +} + diff --git a/tests/baselines/reference/contextualTypeAppliedToVarArgs.types b/tests/baselines/reference/contextualTypeAppliedToVarArgs.types index 318feaa6a2409..cbd16aea35f08 100644 --- a/tests/baselines/reference/contextualTypeAppliedToVarArgs.types +++ b/tests/baselines/reference/contextualTypeAppliedToVarArgs.types @@ -1,41 +1,41 @@ === tests/cases/compiler/contextualTypeAppliedToVarArgs.ts === function delegate(instance: any, method: (...args: any[]) => any, data?: any): (...args: any[]) => any { ->delegate : (instance: any, method: (...args: any[]) => any, data?: any) => (...args: any[]) => any, Symbol(delegate, Decl(contextualTypeAppliedToVarArgs.ts, 0, 0)) ->instance : any, Symbol(instance, Decl(contextualTypeAppliedToVarArgs.ts, 0, 18)) ->method : (...args: any[]) => any, Symbol(method, Decl(contextualTypeAppliedToVarArgs.ts, 0, 32)) ->args : any[], Symbol(args, Decl(contextualTypeAppliedToVarArgs.ts, 0, 42)) ->data : any, Symbol(data, Decl(contextualTypeAppliedToVarArgs.ts, 0, 65)) ->args : any[], Symbol(args, Decl(contextualTypeAppliedToVarArgs.ts, 0, 80)) +>delegate : (instance: any, method: (...args: any[]) => any, data?: any) => (...args: any[]) => any +>instance : any +>method : (...args: any[]) => any +>args : any[] +>data : any +>args : any[] return function () { }; >function () { } : () => void } class Foo{ ->Foo : Foo, Symbol(Foo, Decl(contextualTypeAppliedToVarArgs.ts, 2, 1)) +>Foo : Foo Bar() { ->Bar : () => void, Symbol(Bar, Decl(contextualTypeAppliedToVarArgs.ts, 4, 10)) +>Bar : () => void delegate(this, function (source, args2) >delegate(this, function (source, args2) { var a = source.node; var b = args2.node; } ) : (...args: any[]) => any ->delegate : (instance: any, method: (...args: any[]) => any, data?: any) => (...args: any[]) => any, Symbol(delegate, Decl(contextualTypeAppliedToVarArgs.ts, 0, 0)) ->this : Foo, Symbol(Foo, Decl(contextualTypeAppliedToVarArgs.ts, 2, 1)) +>delegate : (instance: any, method: (...args: any[]) => any, data?: any) => (...args: any[]) => any +>this : Foo >function (source, args2) { var a = source.node; var b = args2.node; } : (source: any, args2: any) => void ->source : any, Symbol(source, Decl(contextualTypeAppliedToVarArgs.ts, 8, 33)) ->args2 : any, Symbol(args2, Decl(contextualTypeAppliedToVarArgs.ts, 8, 40)) +>source : any +>args2 : any { var a = source.node; ->a : any, Symbol(a, Decl(contextualTypeAppliedToVarArgs.ts, 10, 15)) +>a : any >source.node : any ->source : any, Symbol(source, Decl(contextualTypeAppliedToVarArgs.ts, 8, 33)) +>source : any >node : any var b = args2.node; ->b : any, Symbol(b, Decl(contextualTypeAppliedToVarArgs.ts, 11, 15)) +>b : any >args2.node : any ->args2 : any, Symbol(args2, Decl(contextualTypeAppliedToVarArgs.ts, 8, 40)) +>args2 : any >node : any } ); diff --git a/tests/baselines/reference/contextualTypeArrayReturnType.symbols b/tests/baselines/reference/contextualTypeArrayReturnType.symbols new file mode 100644 index 0000000000000..ed0e22d698ca6 --- /dev/null +++ b/tests/baselines/reference/contextualTypeArrayReturnType.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/contextualTypeArrayReturnType.ts === +interface IBookStyle { +>IBookStyle : Symbol(IBookStyle, Decl(contextualTypeArrayReturnType.ts, 0, 0)) + + initialLeftPageTransforms?: (width: number) => NamedTransform[]; +>initialLeftPageTransforms : Symbol(initialLeftPageTransforms, Decl(contextualTypeArrayReturnType.ts, 0, 22)) +>width : Symbol(width, Decl(contextualTypeArrayReturnType.ts, 1, 33)) +>NamedTransform : Symbol(NamedTransform, Decl(contextualTypeArrayReturnType.ts, 2, 1)) +} + +interface NamedTransform { +>NamedTransform : Symbol(NamedTransform, Decl(contextualTypeArrayReturnType.ts, 2, 1)) + + [name: string]: Transform3D; +>name : Symbol(name, Decl(contextualTypeArrayReturnType.ts, 5, 5)) +>Transform3D : Symbol(Transform3D, Decl(contextualTypeArrayReturnType.ts, 6, 1)) +} + +interface Transform3D { +>Transform3D : Symbol(Transform3D, Decl(contextualTypeArrayReturnType.ts, 6, 1)) + + cachedCss: string; +>cachedCss : Symbol(cachedCss, Decl(contextualTypeArrayReturnType.ts, 8, 23)) +} + +var style: IBookStyle = { +>style : Symbol(style, Decl(contextualTypeArrayReturnType.ts, 12, 3)) +>IBookStyle : Symbol(IBookStyle, Decl(contextualTypeArrayReturnType.ts, 0, 0)) + + initialLeftPageTransforms: (width: number) => { +>initialLeftPageTransforms : Symbol(initialLeftPageTransforms, Decl(contextualTypeArrayReturnType.ts, 12, 25)) +>width : Symbol(width, Decl(contextualTypeArrayReturnType.ts, 13, 32)) + + return [ + {'ry': null } + ]; + } +} + diff --git a/tests/baselines/reference/contextualTypeArrayReturnType.types b/tests/baselines/reference/contextualTypeArrayReturnType.types index 523f55135fe78..f270b33f568a3 100644 --- a/tests/baselines/reference/contextualTypeArrayReturnType.types +++ b/tests/baselines/reference/contextualTypeArrayReturnType.types @@ -1,37 +1,37 @@ === tests/cases/compiler/contextualTypeArrayReturnType.ts === interface IBookStyle { ->IBookStyle : IBookStyle, Symbol(IBookStyle, Decl(contextualTypeArrayReturnType.ts, 0, 0)) +>IBookStyle : IBookStyle initialLeftPageTransforms?: (width: number) => NamedTransform[]; ->initialLeftPageTransforms : (width: number) => NamedTransform[], Symbol(initialLeftPageTransforms, Decl(contextualTypeArrayReturnType.ts, 0, 22)) ->width : number, Symbol(width, Decl(contextualTypeArrayReturnType.ts, 1, 33)) ->NamedTransform : NamedTransform, Symbol(NamedTransform, Decl(contextualTypeArrayReturnType.ts, 2, 1)) +>initialLeftPageTransforms : (width: number) => NamedTransform[] +>width : number +>NamedTransform : NamedTransform } interface NamedTransform { ->NamedTransform : NamedTransform, Symbol(NamedTransform, Decl(contextualTypeArrayReturnType.ts, 2, 1)) +>NamedTransform : NamedTransform [name: string]: Transform3D; ->name : string, Symbol(name, Decl(contextualTypeArrayReturnType.ts, 5, 5)) ->Transform3D : Transform3D, Symbol(Transform3D, Decl(contextualTypeArrayReturnType.ts, 6, 1)) +>name : string +>Transform3D : Transform3D } interface Transform3D { ->Transform3D : Transform3D, Symbol(Transform3D, Decl(contextualTypeArrayReturnType.ts, 6, 1)) +>Transform3D : Transform3D cachedCss: string; ->cachedCss : string, Symbol(cachedCss, Decl(contextualTypeArrayReturnType.ts, 8, 23)) +>cachedCss : string } var style: IBookStyle = { ->style : IBookStyle, Symbol(style, Decl(contextualTypeArrayReturnType.ts, 12, 3)) ->IBookStyle : IBookStyle, Symbol(IBookStyle, Decl(contextualTypeArrayReturnType.ts, 0, 0)) +>style : IBookStyle +>IBookStyle : IBookStyle >{ initialLeftPageTransforms: (width: number) => { return [ {'ry': null } ]; }} : { initialLeftPageTransforms: (width: number) => { [x: string]: any; 'ry': any; }[]; } initialLeftPageTransforms: (width: number) => { ->initialLeftPageTransforms : (width: number) => { [x: string]: any; 'ry': any; }[], Symbol(initialLeftPageTransforms, Decl(contextualTypeArrayReturnType.ts, 12, 25)) +>initialLeftPageTransforms : (width: number) => { [x: string]: any; 'ry': any; }[] >(width: number) => { return [ {'ry': null } ]; } : (width: number) => { [x: string]: any; 'ry': any; }[] ->width : number, Symbol(width, Decl(contextualTypeArrayReturnType.ts, 13, 32)) +>width : number return [ >[ {'ry': null } ] : { [x: string]: null; 'ry': null; }[] diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.symbols b/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.symbols new file mode 100644 index 0000000000000..172336603ab2e --- /dev/null +++ b/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.symbols @@ -0,0 +1,86 @@ +=== tests/cases/conformance/types/union/contextualTypeWithUnionTypeCallSignatures.ts === +//When used as a contextual type, a union type U has those members that are present in any of +// its constituent types, with types that are unions of the respective members in the constituent types. + +// Let S be the set of types in U that have call signatures. +// If S is not empty and the sets of call signatures of the types in S are identical ignoring return types, +// U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in S. + +interface IWithNoCallSignatures { +>IWithNoCallSignatures : Symbol(IWithNoCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 7, 33)) +} +interface IWithCallSignatures { +>IWithCallSignatures : Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) + + (a: number): string; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 11, 5)) +} +interface IWithCallSignatures2 { +>IWithCallSignatures2 : Symbol(IWithCallSignatures2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 12, 1)) + + (a: number): number; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 14, 5)) +} +interface IWithCallSignatures3 { +>IWithCallSignatures3 : Symbol(IWithCallSignatures3, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 15, 1)) + + (b: string): number; +>b : Symbol(b, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 17, 5)) +} +interface IWithCallSignatures4 { +>IWithCallSignatures4 : Symbol(IWithCallSignatures4, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 18, 1)) + + (a: number): string; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 20, 5)) + + (a: string, b: number): number; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 21, 5)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 21, 15)) +} + +// With no call signature | callSignatures +var x: IWithNoCallSignatures | IWithCallSignatures = a => a.toString(); +>x : Symbol(x, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 25, 3)) +>IWithNoCallSignatures : Symbol(IWithNoCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 0, 0)) +>IWithCallSignatures : Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 25, 52)) +>a.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 25, 52)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +// With call signatures with different return type +var x2: IWithCallSignatures | IWithCallSignatures2 = a => a.toString(); // Like iWithCallSignatures +>x2 : Symbol(x2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 3), Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 3)) +>IWithCallSignatures : Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>IWithCallSignatures2 : Symbol(IWithCallSignatures2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 12, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 52)) +>a.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 52)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +var x2: IWithCallSignatures | IWithCallSignatures2 = a => a; // Like iWithCallSignatures2 +>x2 : Symbol(x2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 3), Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 3)) +>IWithCallSignatures : Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>IWithCallSignatures2 : Symbol(IWithCallSignatures2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 12, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 52)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 52)) + +// With call signatures of mismatching parameter type +var x3: IWithCallSignatures | IWithCallSignatures3 = a => /*here a should be any*/ a.toString(); +>x3 : Symbol(x3, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 32, 3)) +>IWithCallSignatures : Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>IWithCallSignatures3 : Symbol(IWithCallSignatures3, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 15, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 32, 52)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 32, 52)) + +// With call signature count mismatch +var x4: IWithCallSignatures | IWithCallSignatures4 = a => /*here a should be any*/ a.toString(); +>x4 : Symbol(x4, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 35, 3)) +>IWithCallSignatures : Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>IWithCallSignatures4 : Symbol(IWithCallSignatures4, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 18, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 35, 52)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 35, 52)) + diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types b/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types index a70c0d18261d2..02dfecf5c0845 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeCallSignatures.types @@ -7,93 +7,93 @@ // U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in S. interface IWithNoCallSignatures { ->IWithNoCallSignatures : IWithNoCallSignatures, Symbol(IWithNoCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 0, 0)) +>IWithNoCallSignatures : IWithNoCallSignatures foo: string; ->foo : string, Symbol(foo, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 7, 33)) +>foo : string } interface IWithCallSignatures { ->IWithCallSignatures : IWithCallSignatures, Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>IWithCallSignatures : IWithCallSignatures (a: number): string; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 11, 5)) +>a : number } interface IWithCallSignatures2 { ->IWithCallSignatures2 : IWithCallSignatures2, Symbol(IWithCallSignatures2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 12, 1)) +>IWithCallSignatures2 : IWithCallSignatures2 (a: number): number; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 14, 5)) +>a : number } interface IWithCallSignatures3 { ->IWithCallSignatures3 : IWithCallSignatures3, Symbol(IWithCallSignatures3, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 15, 1)) +>IWithCallSignatures3 : IWithCallSignatures3 (b: string): number; ->b : string, Symbol(b, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 17, 5)) +>b : string } interface IWithCallSignatures4 { ->IWithCallSignatures4 : IWithCallSignatures4, Symbol(IWithCallSignatures4, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 18, 1)) +>IWithCallSignatures4 : IWithCallSignatures4 (a: number): string; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 20, 5)) +>a : number (a: string, b: number): number; ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 21, 5)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 21, 15)) +>a : string +>b : number } // With no call signature | callSignatures var x: IWithNoCallSignatures | IWithCallSignatures = a => a.toString(); ->x : IWithNoCallSignatures | IWithCallSignatures, Symbol(x, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 25, 3)) ->IWithNoCallSignatures : IWithNoCallSignatures, Symbol(IWithNoCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 0, 0)) ->IWithCallSignatures : IWithCallSignatures, Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) +>x : IWithNoCallSignatures | IWithCallSignatures +>IWithNoCallSignatures : IWithNoCallSignatures +>IWithCallSignatures : IWithCallSignatures >a => a.toString() : (a: number) => string ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 25, 52)) +>a : number >a.toString() : string ->a.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 25, 52)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a.toString : (radix?: number) => string +>a : number +>toString : (radix?: number) => string // With call signatures with different return type var x2: IWithCallSignatures | IWithCallSignatures2 = a => a.toString(); // Like iWithCallSignatures ->x2 : IWithCallSignatures | IWithCallSignatures2, Symbol(x2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 3), Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 3)) ->IWithCallSignatures : IWithCallSignatures, Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) ->IWithCallSignatures2 : IWithCallSignatures2, Symbol(IWithCallSignatures2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 12, 1)) +>x2 : IWithCallSignatures | IWithCallSignatures2 +>IWithCallSignatures : IWithCallSignatures +>IWithCallSignatures2 : IWithCallSignatures2 >a => a.toString() : (a: number) => string ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 52)) +>a : number >a.toString() : string ->a.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 52)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a.toString : (radix?: number) => string +>a : number +>toString : (radix?: number) => string var x2: IWithCallSignatures | IWithCallSignatures2 = a => a; // Like iWithCallSignatures2 ->x2 : IWithCallSignatures | IWithCallSignatures2, Symbol(x2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 28, 3), Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 3)) ->IWithCallSignatures : IWithCallSignatures, Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) ->IWithCallSignatures2 : IWithCallSignatures2, Symbol(IWithCallSignatures2, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 12, 1)) +>x2 : IWithCallSignatures | IWithCallSignatures2 +>IWithCallSignatures : IWithCallSignatures +>IWithCallSignatures2 : IWithCallSignatures2 >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 52)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 29, 52)) +>a : number +>a : number // With call signatures of mismatching parameter type var x3: IWithCallSignatures | IWithCallSignatures3 = a => /*here a should be any*/ a.toString(); ->x3 : IWithCallSignatures | IWithCallSignatures3, Symbol(x3, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 32, 3)) ->IWithCallSignatures : IWithCallSignatures, Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) ->IWithCallSignatures3 : IWithCallSignatures3, Symbol(IWithCallSignatures3, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 15, 1)) +>x3 : IWithCallSignatures | IWithCallSignatures3 +>IWithCallSignatures : IWithCallSignatures +>IWithCallSignatures3 : IWithCallSignatures3 >a => /*here a should be any*/ a.toString() : (a: any) => any ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 32, 52)) +>a : any >a.toString() : any >a.toString : any ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 32, 52)) +>a : any >toString : any // With call signature count mismatch var x4: IWithCallSignatures | IWithCallSignatures4 = a => /*here a should be any*/ a.toString(); ->x4 : IWithCallSignatures | IWithCallSignatures4, Symbol(x4, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 35, 3)) ->IWithCallSignatures : IWithCallSignatures, Symbol(IWithCallSignatures, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 9, 1)) ->IWithCallSignatures4 : IWithCallSignatures4, Symbol(IWithCallSignatures4, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 18, 1)) +>x4 : IWithCallSignatures | IWithCallSignatures4 +>IWithCallSignatures : IWithCallSignatures +>IWithCallSignatures4 : IWithCallSignatures4 >a => /*here a should be any*/ a.toString() : (a: any) => any ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 35, 52)) +>a : any >a.toString() : any >a.toString : any ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeCallSignatures.ts, 35, 52)) +>a : any >toString : any diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.symbols b/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.symbols new file mode 100644 index 0000000000000..c381377e523f3 --- /dev/null +++ b/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.symbols @@ -0,0 +1,146 @@ +=== tests/cases/conformance/types/union/contextualTypeWithUnionTypeIndexSignatures.ts === +//When used as a contextual type, a union type U has those members that are present in any of +// its constituent types, with types that are unions of the respective members in the constituent types. +interface SomeType { +>SomeType : Symbol(SomeType, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 0, 0)) + + (a: number): number; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 3, 5)) +} +interface SomeType2 { +>SomeType2 : Symbol(SomeType2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 4, 1)) + + (a: number): string; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 6, 5)) +} + +interface IWithNoStringIndexSignature { +>IWithNoStringIndexSignature : Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) + + foo: string; +>foo : Symbol(foo, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 9, 39)) +} +interface IWithNoNumberIndexSignature { +>IWithNoNumberIndexSignature : Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) + + 0: string; +} +interface IWithStringIndexSignature1 { +>IWithStringIndexSignature1 : Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) + + [a: string]: SomeType; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 16, 5)) +>SomeType : Symbol(SomeType, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 0, 0)) +} +interface IWithStringIndexSignature2 { +>IWithStringIndexSignature2 : Symbol(IWithStringIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 17, 1)) + + [a: string]: SomeType2; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 19, 5)) +>SomeType2 : Symbol(SomeType2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 4, 1)) +} +interface IWithNumberIndexSignature1 { +>IWithNumberIndexSignature1 : Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) + + [a: number]: SomeType; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 22, 5)) +>SomeType : Symbol(SomeType, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 0, 0)) +} +interface IWithNumberIndexSignature2 { +>IWithNumberIndexSignature2 : Symbol(IWithNumberIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 23, 1)) + + [a: number]: SomeType2; +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 25, 5)) +>SomeType2 : Symbol(SomeType2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 4, 1)) +} + +// When an object literal is contextually typed by a type that includes a string index signature, +// the resulting type of the object literal includes a string index signature with the union type of +// the types of the properties declared in the object literal, or the Undefined type if the object literal +// is empty.Likewise, when an object literal is contextually typed by a type that includes a numeric index +// signature, the resulting type of the object literal includes a numeric index signature with the union type +// of the types of the numerically named properties(section 3.7.4) declared in the object literal, +// or the Undefined type if the object literal declares no numerically named properties. + +// Let S be the set of types in U that has a string index signature. +// If S is not empty, U has a string index signature of a union type of +// the types of the string index signatures from each type in S. +var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { z: a => a }; // a should be number +>x : Symbol(x, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 3)) +>IWithNoStringIndexSignature : Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) +>IWithStringIndexSignature1 : Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>z : Symbol(z, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 67)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 70)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 70)) + +var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: a => a }; // a should be any +>x : Symbol(x, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 3)) +>IWithNoStringIndexSignature : Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) +>IWithStringIndexSignature1 : Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>foo : Symbol(foo, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 67)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 72)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 72)) + +var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: "hello" }; +>x : Symbol(x, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 3)) +>IWithNoStringIndexSignature : Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) +>IWithStringIndexSignature1 : Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>foo : Symbol(foo, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 67)) + +var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a.toString() }; // a should be number +>x2 : Symbol(x2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 3)) +>IWithStringIndexSignature1 : Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>IWithStringIndexSignature2 : Symbol(IWithStringIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 17, 1)) +>z : Symbol(z, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 67)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 70)) +>a.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 70)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a }; // a should be number +>x2 : Symbol(x2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 3)) +>IWithStringIndexSignature1 : Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>IWithStringIndexSignature2 : Symbol(IWithStringIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 17, 1)) +>z : Symbol(z, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 67)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 70)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 70)) + + +// Let S be the set of types in U that has a numeric index signature. +// If S is not empty, U has a numeric index signature of a union type of +// the types of the numeric index signatures from each type in S. +var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 1: a => a }; // a should be number +>x3 : Symbol(x3, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 51, 3)) +>IWithNoNumberIndexSignature : Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) +>IWithNumberIndexSignature1 : Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 71)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 71)) + +var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: a => a }; // a should be any +>x3 : Symbol(x3, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 51, 3)) +>IWithNoNumberIndexSignature : Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) +>IWithNumberIndexSignature1 : Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 71)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 71)) + +var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: "hello" }; +>x3 : Symbol(x3, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 51, 3)) +>IWithNoNumberIndexSignature : Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) +>IWithNumberIndexSignature1 : Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) + +var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a.toString() }; // a should be number +>x4 : Symbol(x4, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 3)) +>IWithNumberIndexSignature1 : Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>IWithNumberIndexSignature2 : Symbol(IWithNumberIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 23, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 70)) +>a.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 70)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a }; // a should be number +>x4 : Symbol(x4, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 3)) +>IWithNumberIndexSignature1 : Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>IWithNumberIndexSignature2 : Symbol(IWithNumberIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 23, 1)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 70)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 70)) + diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types b/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types index 82d3ee25673a5..2f24ad082274d 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeIndexSignatures.types @@ -2,56 +2,56 @@ //When used as a contextual type, a union type U has those members that are present in any of // its constituent types, with types that are unions of the respective members in the constituent types. interface SomeType { ->SomeType : SomeType, Symbol(SomeType, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 0, 0)) +>SomeType : SomeType (a: number): number; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 3, 5)) +>a : number } interface SomeType2 { ->SomeType2 : SomeType2, Symbol(SomeType2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 4, 1)) +>SomeType2 : SomeType2 (a: number): string; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 6, 5)) +>a : number } interface IWithNoStringIndexSignature { ->IWithNoStringIndexSignature : IWithNoStringIndexSignature, Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) +>IWithNoStringIndexSignature : IWithNoStringIndexSignature foo: string; ->foo : string, Symbol(foo, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 9, 39)) +>foo : string } interface IWithNoNumberIndexSignature { ->IWithNoNumberIndexSignature : IWithNoNumberIndexSignature, Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) +>IWithNoNumberIndexSignature : IWithNoNumberIndexSignature 0: string; } interface IWithStringIndexSignature1 { ->IWithStringIndexSignature1 : IWithStringIndexSignature1, Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>IWithStringIndexSignature1 : IWithStringIndexSignature1 [a: string]: SomeType; ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 16, 5)) ->SomeType : SomeType, Symbol(SomeType, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 0, 0)) +>a : string +>SomeType : SomeType } interface IWithStringIndexSignature2 { ->IWithStringIndexSignature2 : IWithStringIndexSignature2, Symbol(IWithStringIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 17, 1)) +>IWithStringIndexSignature2 : IWithStringIndexSignature2 [a: string]: SomeType2; ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 19, 5)) ->SomeType2 : SomeType2, Symbol(SomeType2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 4, 1)) +>a : string +>SomeType2 : SomeType2 } interface IWithNumberIndexSignature1 { ->IWithNumberIndexSignature1 : IWithNumberIndexSignature1, Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>IWithNumberIndexSignature1 : IWithNumberIndexSignature1 [a: number]: SomeType; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 22, 5)) ->SomeType : SomeType, Symbol(SomeType, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 0, 0)) +>a : number +>SomeType : SomeType } interface IWithNumberIndexSignature2 { ->IWithNumberIndexSignature2 : IWithNumberIndexSignature2, Symbol(IWithNumberIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 23, 1)) +>IWithNumberIndexSignature2 : IWithNumberIndexSignature2 [a: number]: SomeType2; ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 25, 5)) ->SomeType2 : SomeType2, Symbol(SomeType2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 4, 1)) +>a : number +>SomeType2 : SomeType2 } // When an object literal is contextually typed by a type that includes a string index signature, @@ -66,103 +66,103 @@ interface IWithNumberIndexSignature2 { // If S is not empty, U has a string index signature of a union type of // the types of the string index signatures from each type in S. var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { z: a => a }; // a should be number ->x : IWithNoStringIndexSignature | IWithStringIndexSignature1, Symbol(x, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 3)) ->IWithNoStringIndexSignature : IWithNoStringIndexSignature, Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) ->IWithStringIndexSignature1 : IWithStringIndexSignature1, Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>x : IWithNoStringIndexSignature | IWithStringIndexSignature1 +>IWithNoStringIndexSignature : IWithNoStringIndexSignature +>IWithStringIndexSignature1 : IWithStringIndexSignature1 >{ z: a => a } : { [x: string]: (a: number) => number; z: (a: number) => number; } ->z : (a: number) => number, Symbol(z, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 67)) +>z : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 70)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 70)) +>a : number +>a : number var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: a => a }; // a should be any ->x : IWithNoStringIndexSignature | IWithStringIndexSignature1, Symbol(x, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 3)) ->IWithNoStringIndexSignature : IWithNoStringIndexSignature, Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) ->IWithStringIndexSignature1 : IWithStringIndexSignature1, Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>x : IWithNoStringIndexSignature | IWithStringIndexSignature1 +>IWithNoStringIndexSignature : IWithNoStringIndexSignature +>IWithStringIndexSignature1 : IWithStringIndexSignature1 >{ foo: a => a } : { [x: string]: (a: any) => any; foo: (a: any) => any; } ->foo : (a: any) => any, Symbol(foo, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 67)) +>foo : (a: any) => any >a => a : (a: any) => any ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 72)) ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 72)) +>a : any +>a : any var x: IWithNoStringIndexSignature | IWithStringIndexSignature1 = { foo: "hello" }; ->x : IWithNoStringIndexSignature | IWithStringIndexSignature1, Symbol(x, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 39, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 40, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 3)) ->IWithNoStringIndexSignature : IWithNoStringIndexSignature, Symbol(IWithNoStringIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 7, 1)) ->IWithStringIndexSignature1 : IWithStringIndexSignature1, Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) +>x : IWithNoStringIndexSignature | IWithStringIndexSignature1 +>IWithNoStringIndexSignature : IWithNoStringIndexSignature +>IWithStringIndexSignature1 : IWithStringIndexSignature1 >{ foo: "hello" } : { [x: string]: string; foo: string; } ->foo : string, Symbol(foo, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 41, 67)) +>foo : string >"hello" : string var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a.toString() }; // a should be number ->x2 : IWithStringIndexSignature1 | IWithStringIndexSignature2, Symbol(x2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 3)) ->IWithStringIndexSignature1 : IWithStringIndexSignature1, Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) ->IWithStringIndexSignature2 : IWithStringIndexSignature2, Symbol(IWithStringIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 17, 1)) +>x2 : IWithStringIndexSignature1 | IWithStringIndexSignature2 +>IWithStringIndexSignature1 : IWithStringIndexSignature1 +>IWithStringIndexSignature2 : IWithStringIndexSignature2 >{ z: a => a.toString() } : { [x: string]: (a: number) => string; z: (a: number) => string; } ->z : (a: number) => string, Symbol(z, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 67)) +>z : (a: number) => string >a => a.toString() : (a: number) => string ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 70)) +>a : number >a.toString() : string ->a.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 70)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a.toString : (radix?: number) => string +>a : number +>toString : (radix?: number) => string var x2: IWithStringIndexSignature1 | IWithStringIndexSignature2 = { z: a => a }; // a should be number ->x2 : IWithStringIndexSignature1 | IWithStringIndexSignature2, Symbol(x2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 42, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 3)) ->IWithStringIndexSignature1 : IWithStringIndexSignature1, Symbol(IWithStringIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 14, 1)) ->IWithStringIndexSignature2 : IWithStringIndexSignature2, Symbol(IWithStringIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 17, 1)) +>x2 : IWithStringIndexSignature1 | IWithStringIndexSignature2 +>IWithStringIndexSignature1 : IWithStringIndexSignature1 +>IWithStringIndexSignature2 : IWithStringIndexSignature2 >{ z: a => a } : { [x: string]: (a: number) => number; z: (a: number) => number; } ->z : (a: number) => number, Symbol(z, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 67)) +>z : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 70)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 43, 70)) +>a : number +>a : number // Let S be the set of types in U that has a numeric index signature. // If S is not empty, U has a numeric index signature of a union type of // the types of the numeric index signatures from each type in S. var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 1: a => a }; // a should be number ->x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1, Symbol(x3, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 51, 3)) ->IWithNoNumberIndexSignature : IWithNoNumberIndexSignature, Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) ->IWithNumberIndexSignature1 : IWithNumberIndexSignature1, Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 +>IWithNoNumberIndexSignature : IWithNoNumberIndexSignature +>IWithNumberIndexSignature1 : IWithNumberIndexSignature1 >{ 1: a => a } : { [x: number]: (a: number) => number; 1: (a: number) => number; } >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 71)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 71)) +>a : number +>a : number var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: a => a }; // a should be any ->x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1, Symbol(x3, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 51, 3)) ->IWithNoNumberIndexSignature : IWithNoNumberIndexSignature, Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) ->IWithNumberIndexSignature1 : IWithNumberIndexSignature1, Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 +>IWithNoNumberIndexSignature : IWithNoNumberIndexSignature +>IWithNumberIndexSignature1 : IWithNumberIndexSignature1 >{ 0: a => a } : { [x: number]: (a: any) => any; 0: (a: any) => any; } >a => a : (a: any) => any ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 71)) ->a : any, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 71)) +>a : any +>a : any var x3: IWithNoNumberIndexSignature | IWithNumberIndexSignature1 = { 0: "hello" }; ->x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1, Symbol(x3, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 49, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 50, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 51, 3)) ->IWithNoNumberIndexSignature : IWithNoNumberIndexSignature, Symbol(IWithNoNumberIndexSignature, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 11, 1)) ->IWithNumberIndexSignature1 : IWithNumberIndexSignature1, Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) +>x3 : IWithNoNumberIndexSignature | IWithNumberIndexSignature1 +>IWithNoNumberIndexSignature : IWithNoNumberIndexSignature +>IWithNumberIndexSignature1 : IWithNumberIndexSignature1 >{ 0: "hello" } : { [x: number]: string; 0: string; } >"hello" : string var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a.toString() }; // a should be number ->x4 : IWithNumberIndexSignature1 | IWithNumberIndexSignature2, Symbol(x4, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 3)) ->IWithNumberIndexSignature1 : IWithNumberIndexSignature1, Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) ->IWithNumberIndexSignature2 : IWithNumberIndexSignature2, Symbol(IWithNumberIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 23, 1)) +>x4 : IWithNumberIndexSignature1 | IWithNumberIndexSignature2 +>IWithNumberIndexSignature1 : IWithNumberIndexSignature1 +>IWithNumberIndexSignature2 : IWithNumberIndexSignature2 >{ 1: a => a.toString() } : { [x: number]: (a: number) => string; 1: (a: number) => string; } >a => a.toString() : (a: number) => string ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 70)) +>a : number >a.toString() : string ->a.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 70)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>a.toString : (radix?: number) => string +>a : number +>toString : (radix?: number) => string var x4: IWithNumberIndexSignature1 | IWithNumberIndexSignature2 = { 1: a => a }; // a should be number ->x4 : IWithNumberIndexSignature1 | IWithNumberIndexSignature2, Symbol(x4, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 52, 3), Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 3)) ->IWithNumberIndexSignature1 : IWithNumberIndexSignature1, Symbol(IWithNumberIndexSignature1, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 20, 1)) ->IWithNumberIndexSignature2 : IWithNumberIndexSignature2, Symbol(IWithNumberIndexSignature2, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 23, 1)) +>x4 : IWithNumberIndexSignature1 | IWithNumberIndexSignature2 +>IWithNumberIndexSignature1 : IWithNumberIndexSignature1 +>IWithNumberIndexSignature2 : IWithNumberIndexSignature2 >{ 1: a => a } : { [x: number]: (a: number) => number; 1: (a: number) => number; } >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 70)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeIndexSignatures.ts, 53, 70)) +>a : number +>a : number diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeMembers.symbols b/tests/baselines/reference/contextualTypeWithUnionTypeMembers.symbols new file mode 100644 index 0000000000000..3d7b8bf5a189d --- /dev/null +++ b/tests/baselines/reference/contextualTypeWithUnionTypeMembers.symbols @@ -0,0 +1,394 @@ +=== tests/cases/conformance/types/union/contextualTypeWithUnionTypeMembers.ts === +//When used as a contextual type, a union type U has those members that are present in any of +// its constituent types, with types that are unions of the respective members in the constituent types. +interface I1 { +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>T : Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 13)) + + commonMethodType(a: string): string; +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 17)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 3, 21)) + + commonPropertyType: string; +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 3, 40)) + + commonMethodWithTypeParameter(a: T): T; +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 4, 31)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 5, 34)) +>T : Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 13)) +>T : Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 13)) + + methodOnlyInI1(a: string): string; +>methodOnlyInI1 : Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 5, 43)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 7, 19)) + + propertyOnlyInI1: string; +>propertyOnlyInI1 : Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 7, 38)) +} +interface I2 { +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>T : Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 13)) + + commonMethodType(a: string): string; +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 17)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 11, 21)) + + commonPropertyType: string; +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 11, 40)) + + commonMethodWithTypeParameter(a: T): T; +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 12, 31)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 13, 34)) +>T : Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 13)) +>T : Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 13)) + + methodOnlyInI2(a: string): string; +>methodOnlyInI2 : Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 13, 43)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 15, 19)) + + propertyOnlyInI2: string; +>propertyOnlyInI2 : Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 15, 38)) +} + +// Let S be the set of types in U that has a property P. +// If S is not empty, U has a property P of a union type of the types of P from each type in S. +var i1: I1; +>i1 : Symbol(i1, Decl(contextualTypeWithUnionTypeMembers.ts, 21, 3)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) + +var i2: I2; +>i2 : Symbol(i2, Decl(contextualTypeWithUnionTypeMembers.ts, 22, 3)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) + +var i1Ori2: I1 | I2 = i1; +>i1Ori2 : Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i1 : Symbol(i1, Decl(contextualTypeWithUnionTypeMembers.ts, 21, 3)) + +var i1Ori2: I1 | I2 = i2; +>i1Ori2 : Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i2 : Symbol(i2, Decl(contextualTypeWithUnionTypeMembers.ts, 22, 3)) + +var i1Ori2: I1 | I2 = { // Like i1 +>i1Ori2 : Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) + + commonPropertyType: "hello", +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 25, 39)) + + commonMethodType: a=> a, +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 26, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 27, 21)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 27, 21)) + + commonMethodWithTypeParameter: a => a, +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 27, 28)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 28, 34)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 28, 34)) + + methodOnlyInI1: a => a, +>methodOnlyInI1 : Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 28, 42)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 30, 19)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 30, 19)) + + propertyOnlyInI1: "Hello", +>propertyOnlyInI1 : Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 30, 27)) + +}; +var i1Ori2: I1 | I2 = { // Like i2 +>i1Ori2 : Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) + + commonPropertyType: "hello", +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 33, 39)) + + commonMethodType: a=> a, +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 34, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 35, 21)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 35, 21)) + + commonMethodWithTypeParameter: a => a, +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 35, 28)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 36, 34)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 36, 34)) + + methodOnlyInI2: a => a, +>methodOnlyInI2 : Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 36, 42)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 38, 19)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 38, 19)) + + propertyOnlyInI2: "Hello", +>propertyOnlyInI2 : Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 38, 27)) + +}; +var i1Ori2: I1 | I2 = { // Like i1 and i2 both +>i1Ori2 : Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) + + commonPropertyType: "hello", +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 41, 39)) + + commonMethodType: a=> a, +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 42, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 43, 21)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 43, 21)) + + commonMethodWithTypeParameter: a => a, +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 43, 28)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 44, 34)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 44, 34)) + + methodOnlyInI1: a => a, +>methodOnlyInI1 : Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 44, 42)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 45, 19)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 45, 19)) + + propertyOnlyInI1: "Hello", +>propertyOnlyInI1 : Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 45, 27)) + + methodOnlyInI2: a => a, +>methodOnlyInI2 : Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 46, 30)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 47, 19)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 47, 19)) + + propertyOnlyInI2: "Hello", +>propertyOnlyInI2 : Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 47, 27)) + +}; + +var arrayI1OrI2: Array | I2> = [i1, i2, { // Like i1 +>arrayI1OrI2 : Symbol(arrayI1OrI2, Decl(contextualTypeWithUnionTypeMembers.ts, 51, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>I1 : Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>I2 : Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i1 : Symbol(i1, Decl(contextualTypeWithUnionTypeMembers.ts, 21, 3)) +>i2 : Symbol(i2, Decl(contextualTypeWithUnionTypeMembers.ts, 22, 3)) + + commonPropertyType: "hello", +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 51, 60)) + + commonMethodType: a=> a, +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 52, 36)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 53, 25)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 53, 25)) + + commonMethodWithTypeParameter: a => a, +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 53, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 54, 38)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 54, 38)) + + methodOnlyInI1: a => a, +>methodOnlyInI1 : Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 54, 46)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 56, 23)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 56, 23)) + + propertyOnlyInI1: "Hello", +>propertyOnlyInI1 : Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 56, 31)) + + }, + { // Like i2 + commonPropertyType: "hello", +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 59, 5)) + + commonMethodType: a=> a, +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 60, 36)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 61, 25)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 61, 25)) + + commonMethodWithTypeParameter: a => a, +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 61, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 62, 38)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 62, 38)) + + methodOnlyInI2: a => a, +>methodOnlyInI2 : Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 62, 46)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 64, 23)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 64, 23)) + + propertyOnlyInI2: "Hello", +>propertyOnlyInI2 : Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 64, 31)) + + }, { // Like i1 and i2 both + commonPropertyType: "hello", +>commonPropertyType : Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 66, 8)) + + commonMethodType: a=> a, +>commonMethodType : Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 67, 36)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 68, 25)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 68, 25)) + + commonMethodWithTypeParameter: a => a, +>commonMethodWithTypeParameter : Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 68, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 69, 38)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 69, 38)) + + methodOnlyInI1: a => a, +>methodOnlyInI1 : Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 69, 46)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 70, 23)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 70, 23)) + + propertyOnlyInI1: "Hello", +>propertyOnlyInI1 : Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 70, 31)) + + methodOnlyInI2: a => a, +>methodOnlyInI2 : Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 71, 34)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 72, 23)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 72, 23)) + + propertyOnlyInI2: "Hello", +>propertyOnlyInI2 : Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 72, 31)) + + }]; + +interface I11 { +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) + + commonMethodDifferentReturnType(a: string, b: number): string; +>commonMethodDifferentReturnType : Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 76, 15)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 77, 36)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 77, 46)) + + commonPropertyDifferentType: string; +>commonPropertyDifferentType : Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 77, 66)) +} +interface I21 { +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) + + commonMethodDifferentReturnType(a: string, b: number): number; +>commonMethodDifferentReturnType : Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 80, 15)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 81, 36)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 81, 46)) + + commonPropertyDifferentType: number; +>commonPropertyDifferentType : Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 81, 66)) +} +var i11: I11; +>i11 : Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) + +var i21: I21; +>i21 : Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) + +var i11Ori21: I11 | I21 = i11; +>i11Ori21 : Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>i11 : Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) + +var i11Ori21: I11 | I21 = i21; +>i11Ori21 : Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>i21 : Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) + +var i11Ori21: I11 | I21 = { +>i11Ori21 : Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) + + // Like i1 + commonMethodDifferentReturnType: (a, b) => { +>commonMethodDifferentReturnType : Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 88, 27)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 38)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 40)) + + var z = a.charAt(b); +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 91, 11)) +>a.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 38)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 40)) + + return z; +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 91, 11)) + + }, + commonPropertyDifferentType: "hello", +>commonPropertyDifferentType : Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 93, 6)) + +}; +var i11Ori21: I11 | I21 = { +>i11Ori21 : Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) + + // Like i2 + commonMethodDifferentReturnType: (a, b) => { +>commonMethodDifferentReturnType : Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 96, 27)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 38)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 40)) + + var z = a.charCodeAt(b); +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 99, 11)) +>a.charCodeAt : Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 38)) +>charCodeAt : Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 40)) + + return z; +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 99, 11)) + + }, + commonPropertyDifferentType: 10, +>commonPropertyDifferentType : Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 101, 6)) + +}; +var arrayOrI11OrI21: Array = [i11, i21, i11 || i21, { +>arrayOrI11OrI21 : Symbol(arrayOrI11OrI21, Decl(contextualTypeWithUnionTypeMembers.ts, 104, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>I11 : Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>I21 : Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>i11 : Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) +>i21 : Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) +>i11 : Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) +>i21 : Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) + + // Like i1 + commonMethodDifferentReturnType: (a, b) => { +>commonMethodDifferentReturnType : Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 104, 64)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 42)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 44)) + + var z = a.charAt(b); +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 107, 15)) +>a.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 42)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 44)) + + return z; +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 107, 15)) + + }, + commonPropertyDifferentType: "hello", +>commonPropertyDifferentType : Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 109, 10)) + + }, { + // Like i2 + commonMethodDifferentReturnType: (a, b) => { +>commonMethodDifferentReturnType : Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 111, 8)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 42)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 44)) + + var z = a.charCodeAt(b); +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 114, 15)) +>a.charCodeAt : Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) +>a : Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 42)) +>charCodeAt : Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) +>b : Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 44)) + + return z; +>z : Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 114, 15)) + + }, + commonPropertyDifferentType: 10, +>commonPropertyDifferentType : Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 116, 10)) + + }]; diff --git a/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types b/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types index 11040412dede1..c51227fd13a4e 100644 --- a/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types +++ b/tests/baselines/reference/contextualTypeWithUnionTypeMembers.types @@ -2,220 +2,220 @@ //When used as a contextual type, a union type U has those members that are present in any of // its constituent types, with types that are unions of the respective members in the constituent types. interface I1 { ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->T : T, Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 13)) +>I1 : I1 +>T : T commonMethodType(a: string): string; ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 17)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 3, 21)) +>commonMethodType : (a: string) => string +>a : string commonPropertyType: string; ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 3, 40)) +>commonPropertyType : string commonMethodWithTypeParameter(a: T): T; ->commonMethodWithTypeParameter : (a: T) => T, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 4, 31)) ->a : T, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 5, 34)) ->T : T, Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 13)) ->T : T, Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 2, 13)) +>commonMethodWithTypeParameter : (a: T) => T +>a : T +>T : T +>T : T methodOnlyInI1(a: string): string; ->methodOnlyInI1 : (a: string) => string, Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 5, 43)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 7, 19)) +>methodOnlyInI1 : (a: string) => string +>a : string propertyOnlyInI1: string; ->propertyOnlyInI1 : string, Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 7, 38)) +>propertyOnlyInI1 : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) ->T : T, Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 13)) +>I2 : I2 +>T : T commonMethodType(a: string): string; ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 17)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 11, 21)) +>commonMethodType : (a: string) => string +>a : string commonPropertyType: string; ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 11, 40)) +>commonPropertyType : string commonMethodWithTypeParameter(a: T): T; ->commonMethodWithTypeParameter : (a: T) => T, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 12, 31)) ->a : T, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 13, 34)) ->T : T, Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 13)) ->T : T, Symbol(T, Decl(contextualTypeWithUnionTypeMembers.ts, 10, 13)) +>commonMethodWithTypeParameter : (a: T) => T +>a : T +>T : T +>T : T methodOnlyInI2(a: string): string; ->methodOnlyInI2 : (a: string) => string, Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 13, 43)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 15, 19)) +>methodOnlyInI2 : (a: string) => string +>a : string propertyOnlyInI2: string; ->propertyOnlyInI2 : string, Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 15, 38)) +>propertyOnlyInI2 : string } // Let S be the set of types in U that has a property P. // If S is not empty, U has a property P of a union type of the types of P from each type in S. var i1: I1; ->i1 : I1, Symbol(i1, Decl(contextualTypeWithUnionTypeMembers.ts, 21, 3)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) +>i1 : I1 +>I1 : I1 var i2: I2; ->i2 : I2, Symbol(i2, Decl(contextualTypeWithUnionTypeMembers.ts, 22, 3)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i2 : I2 +>I2 : I2 var i1Ori2: I1 | I2 = i1; ->i1Ori2 : I1 | I2, Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) ->i1 : I1, Symbol(i1, Decl(contextualTypeWithUnionTypeMembers.ts, 21, 3)) +>i1Ori2 : I1 | I2 +>I1 : I1 +>I2 : I2 +>i1 : I1 var i1Ori2: I1 | I2 = i2; ->i1Ori2 : I1 | I2, Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) ->i2 : I2, Symbol(i2, Decl(contextualTypeWithUnionTypeMembers.ts, 22, 3)) +>i1Ori2 : I1 | I2 +>I1 : I1 +>I2 : I2 +>i2 : I2 var i1Ori2: I1 | I2 = { // Like i1 ->i1Ori2 : I1 | I2, Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i1Ori2 : I1 | I2 +>I1 : I1 +>I2 : I2 >{ // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello",} : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; } commonPropertyType: "hello", ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 25, 39)) +>commonPropertyType : string >"hello" : string commonMethodType: a=> a, ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 26, 32)) +>commonMethodType : (a: string) => string >a=> a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 27, 21)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 27, 21)) +>a : string +>a : string commonMethodWithTypeParameter: a => a, ->commonMethodWithTypeParameter : (a: number) => number, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 27, 28)) +>commonMethodWithTypeParameter : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 28, 34)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 28, 34)) +>a : number +>a : number methodOnlyInI1: a => a, ->methodOnlyInI1 : (a: string) => string, Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 28, 42)) +>methodOnlyInI1 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 30, 19)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 30, 19)) +>a : string +>a : string propertyOnlyInI1: "Hello", ->propertyOnlyInI1 : string, Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 30, 27)) +>propertyOnlyInI1 : string >"Hello" : string }; var i1Ori2: I1 | I2 = { // Like i2 ->i1Ori2 : I1 | I2, Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i1Ori2 : I1 | I2 +>I1 : I1 +>I2 : I2 >{ // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello",} : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; } commonPropertyType: "hello", ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 33, 39)) +>commonPropertyType : string >"hello" : string commonMethodType: a=> a, ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 34, 32)) +>commonMethodType : (a: string) => string >a=> a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 35, 21)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 35, 21)) +>a : string +>a : string commonMethodWithTypeParameter: a => a, ->commonMethodWithTypeParameter : (a: number) => number, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 35, 28)) +>commonMethodWithTypeParameter : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 36, 34)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 36, 34)) +>a : number +>a : number methodOnlyInI2: a => a, ->methodOnlyInI2 : (a: string) => string, Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 36, 42)) +>methodOnlyInI2 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 38, 19)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 38, 19)) +>a : string +>a : string propertyOnlyInI2: "Hello", ->propertyOnlyInI2 : string, Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 38, 27)) +>propertyOnlyInI2 : string >"Hello" : string }; var i1Ori2: I1 | I2 = { // Like i1 and i2 both ->i1Ori2 : I1 | I2, Symbol(i1Ori2, Decl(contextualTypeWithUnionTypeMembers.ts, 23, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 24, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 25, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 33, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 41, 3)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>i1Ori2 : I1 | I2 +>I1 : I1 +>I2 : I2 >{ // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello",} : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; } commonPropertyType: "hello", ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 41, 39)) +>commonPropertyType : string >"hello" : string commonMethodType: a=> a, ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 42, 32)) +>commonMethodType : (a: string) => string >a=> a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 43, 21)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 43, 21)) +>a : string +>a : string commonMethodWithTypeParameter: a => a, ->commonMethodWithTypeParameter : (a: number) => number, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 43, 28)) +>commonMethodWithTypeParameter : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 44, 34)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 44, 34)) +>a : number +>a : number methodOnlyInI1: a => a, ->methodOnlyInI1 : (a: string) => string, Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 44, 42)) +>methodOnlyInI1 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 45, 19)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 45, 19)) +>a : string +>a : string propertyOnlyInI1: "Hello", ->propertyOnlyInI1 : string, Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 45, 27)) +>propertyOnlyInI1 : string >"Hello" : string methodOnlyInI2: a => a, ->methodOnlyInI2 : (a: string) => string, Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 46, 30)) +>methodOnlyInI2 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 47, 19)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 47, 19)) +>a : string +>a : string propertyOnlyInI2: "Hello", ->propertyOnlyInI2 : string, Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 47, 27)) +>propertyOnlyInI2 : string >"Hello" : string }; var arrayI1OrI2: Array | I2> = [i1, i2, { // Like i1 ->arrayI1OrI2 : (I1 | I2)[], Symbol(arrayI1OrI2, Decl(contextualTypeWithUnionTypeMembers.ts, 51, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->I1 : I1, Symbol(I1, Decl(contextualTypeWithUnionTypeMembers.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(contextualTypeWithUnionTypeMembers.ts, 9, 1)) +>arrayI1OrI2 : (I1 | I2)[] +>Array : T[] +>I1 : I1 +>I2 : I2 >[i1, i2, { // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", }, { // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", }, { // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", }] : (I1 | I2)[] ->i1 : I1, Symbol(i1, Decl(contextualTypeWithUnionTypeMembers.ts, 21, 3)) ->i2 : I2, Symbol(i2, Decl(contextualTypeWithUnionTypeMembers.ts, 22, 3)) +>i1 : I1 +>i2 : I2 >{ // Like i1 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", } : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; } commonPropertyType: "hello", ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 51, 60)) +>commonPropertyType : string >"hello" : string commonMethodType: a=> a, ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 52, 36)) +>commonMethodType : (a: string) => string >a=> a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 53, 25)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 53, 25)) +>a : string +>a : string commonMethodWithTypeParameter: a => a, ->commonMethodWithTypeParameter : (a: number) => number, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 53, 32)) +>commonMethodWithTypeParameter : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 54, 38)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 54, 38)) +>a : number +>a : number methodOnlyInI1: a => a, ->methodOnlyInI1 : (a: string) => string, Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 54, 46)) +>methodOnlyInI1 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 56, 23)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 56, 23)) +>a : string +>a : string propertyOnlyInI1: "Hello", ->propertyOnlyInI1 : string, Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 56, 31)) +>propertyOnlyInI1 : string >"Hello" : string }, @@ -223,208 +223,208 @@ var arrayI1OrI2: Array | I2> = [i1, i2, { // Like i1 >{ // Like i2 commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", } : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; } commonPropertyType: "hello", ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 59, 5)) +>commonPropertyType : string >"hello" : string commonMethodType: a=> a, ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 60, 36)) +>commonMethodType : (a: string) => string >a=> a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 61, 25)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 61, 25)) +>a : string +>a : string commonMethodWithTypeParameter: a => a, ->commonMethodWithTypeParameter : (a: number) => number, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 61, 32)) +>commonMethodWithTypeParameter : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 62, 38)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 62, 38)) +>a : number +>a : number methodOnlyInI2: a => a, ->methodOnlyInI2 : (a: string) => string, Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 62, 46)) +>methodOnlyInI2 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 64, 23)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 64, 23)) +>a : string +>a : string propertyOnlyInI2: "Hello", ->propertyOnlyInI2 : string, Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 64, 31)) +>propertyOnlyInI2 : string >"Hello" : string }, { // Like i1 and i2 both >{ // Like i1 and i2 both commonPropertyType: "hello", commonMethodType: a=> a, commonMethodWithTypeParameter: a => a, methodOnlyInI1: a => a, propertyOnlyInI1: "Hello", methodOnlyInI2: a => a, propertyOnlyInI2: "Hello", } : { commonPropertyType: string; commonMethodType: (a: string) => string; commonMethodWithTypeParameter: (a: number) => number; methodOnlyInI1: (a: string) => string; propertyOnlyInI1: string; methodOnlyInI2: (a: string) => string; propertyOnlyInI2: string; } commonPropertyType: "hello", ->commonPropertyType : string, Symbol(commonPropertyType, Decl(contextualTypeWithUnionTypeMembers.ts, 66, 8)) +>commonPropertyType : string >"hello" : string commonMethodType: a=> a, ->commonMethodType : (a: string) => string, Symbol(commonMethodType, Decl(contextualTypeWithUnionTypeMembers.ts, 67, 36)) +>commonMethodType : (a: string) => string >a=> a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 68, 25)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 68, 25)) +>a : string +>a : string commonMethodWithTypeParameter: a => a, ->commonMethodWithTypeParameter : (a: number) => number, Symbol(commonMethodWithTypeParameter, Decl(contextualTypeWithUnionTypeMembers.ts, 68, 32)) +>commonMethodWithTypeParameter : (a: number) => number >a => a : (a: number) => number ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 69, 38)) ->a : number, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 69, 38)) +>a : number +>a : number methodOnlyInI1: a => a, ->methodOnlyInI1 : (a: string) => string, Symbol(methodOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 69, 46)) +>methodOnlyInI1 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 70, 23)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 70, 23)) +>a : string +>a : string propertyOnlyInI1: "Hello", ->propertyOnlyInI1 : string, Symbol(propertyOnlyInI1, Decl(contextualTypeWithUnionTypeMembers.ts, 70, 31)) +>propertyOnlyInI1 : string >"Hello" : string methodOnlyInI2: a => a, ->methodOnlyInI2 : (a: string) => string, Symbol(methodOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 71, 34)) +>methodOnlyInI2 : (a: string) => string >a => a : (a: string) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 72, 23)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 72, 23)) +>a : string +>a : string propertyOnlyInI2: "Hello", ->propertyOnlyInI2 : string, Symbol(propertyOnlyInI2, Decl(contextualTypeWithUnionTypeMembers.ts, 72, 31)) +>propertyOnlyInI2 : string >"Hello" : string }]; interface I11 { ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>I11 : I11 commonMethodDifferentReturnType(a: string, b: number): string; ->commonMethodDifferentReturnType : (a: string, b: number) => string, Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 76, 15)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 77, 36)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 77, 46)) +>commonMethodDifferentReturnType : (a: string, b: number) => string +>a : string +>b : number commonPropertyDifferentType: string; ->commonPropertyDifferentType : string, Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 77, 66)) +>commonPropertyDifferentType : string } interface I21 { ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>I21 : I21 commonMethodDifferentReturnType(a: string, b: number): number; ->commonMethodDifferentReturnType : (a: string, b: number) => number, Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 80, 15)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 81, 36)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 81, 46)) +>commonMethodDifferentReturnType : (a: string, b: number) => number +>a : string +>b : number commonPropertyDifferentType: number; ->commonPropertyDifferentType : number, Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 81, 66)) +>commonPropertyDifferentType : number } var i11: I11; ->i11 : I11, Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) +>i11 : I11 +>I11 : I11 var i21: I21; ->i21 : I21, Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>i21 : I21 +>I21 : I21 var i11Ori21: I11 | I21 = i11; ->i11Ori21 : I11 | I21, Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) ->i11 : I11, Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) +>i11Ori21 : I11 | I21 +>I11 : I11 +>I21 : I21 +>i11 : I11 var i11Ori21: I11 | I21 = i21; ->i11Ori21 : I11 | I21, Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) ->i21 : I21, Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) +>i11Ori21 : I11 | I21 +>I11 : I11 +>I21 : I21 +>i21 : I21 var i11Ori21: I11 | I21 = { ->i11Ori21 : I11 | I21, Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>i11Ori21 : I11 | I21 +>I11 : I11 +>I21 : I21 >{ // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; }, commonPropertyDifferentType: "hello", } : { commonMethodDifferentReturnType: (a: string, b: number) => string; commonPropertyDifferentType: string; } // Like i1 commonMethodDifferentReturnType: (a, b) => { ->commonMethodDifferentReturnType : (a: string, b: number) => string, Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 88, 27)) +>commonMethodDifferentReturnType : (a: string, b: number) => string >(a, b) => { var z = a.charAt(b); return z; } : (a: string, b: number) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 38)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 40)) +>a : string +>b : number var z = a.charAt(b); ->z : string, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 91, 11)) +>z : string >a.charAt(b) : string ->a.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 38)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 90, 40)) +>a.charAt : (pos: number) => string +>a : string +>charAt : (pos: number) => string +>b : number return z; ->z : string, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 91, 11)) +>z : string }, commonPropertyDifferentType: "hello", ->commonPropertyDifferentType : string, Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 93, 6)) +>commonPropertyDifferentType : string >"hello" : string }; var i11Ori21: I11 | I21 = { ->i11Ori21 : I11 | I21, Symbol(i11Ori21, Decl(contextualTypeWithUnionTypeMembers.ts, 86, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 87, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 88, 3), Decl(contextualTypeWithUnionTypeMembers.ts, 96, 3)) ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>i11Ori21 : I11 | I21 +>I11 : I11 +>I21 : I21 >{ // Like i2 commonMethodDifferentReturnType: (a, b) => { var z = a.charCodeAt(b); return z; }, commonPropertyDifferentType: 10,} : { commonMethodDifferentReturnType: (a: string, b: number) => number; commonPropertyDifferentType: number; } // Like i2 commonMethodDifferentReturnType: (a, b) => { ->commonMethodDifferentReturnType : (a: string, b: number) => number, Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 96, 27)) +>commonMethodDifferentReturnType : (a: string, b: number) => number >(a, b) => { var z = a.charCodeAt(b); return z; } : (a: string, b: number) => number ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 38)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 40)) +>a : string +>b : number var z = a.charCodeAt(b); ->z : number, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 99, 11)) +>z : number >a.charCodeAt(b) : number ->a.charCodeAt : (index: number) => number, Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 38)) ->charCodeAt : (index: number) => number, Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 98, 40)) +>a.charCodeAt : (index: number) => number +>a : string +>charCodeAt : (index: number) => number +>b : number return z; ->z : number, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 99, 11)) +>z : number }, commonPropertyDifferentType: 10, ->commonPropertyDifferentType : number, Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 101, 6)) +>commonPropertyDifferentType : number >10 : number }; var arrayOrI11OrI21: Array = [i11, i21, i11 || i21, { ->arrayOrI11OrI21 : (I11 | I21)[], Symbol(arrayOrI11OrI21, Decl(contextualTypeWithUnionTypeMembers.ts, 104, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->I11 : I11, Symbol(I11, Decl(contextualTypeWithUnionTypeMembers.ts, 74, 7)) ->I21 : I21, Symbol(I21, Decl(contextualTypeWithUnionTypeMembers.ts, 79, 1)) +>arrayOrI11OrI21 : (I11 | I21)[] +>Array : T[] +>I11 : I11 +>I21 : I21 >[i11, i21, i11 || i21, { // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; }, commonPropertyDifferentType: "hello", }, { // Like i2 commonMethodDifferentReturnType: (a, b) => { var z = a.charCodeAt(b); return z; }, commonPropertyDifferentType: 10, }] : (I11 | I21)[] ->i11 : I11, Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) ->i21 : I21, Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) +>i11 : I11 +>i21 : I21 >i11 || i21 : I11 | I21 ->i11 : I11, Symbol(i11, Decl(contextualTypeWithUnionTypeMembers.ts, 84, 3)) ->i21 : I21, Symbol(i21, Decl(contextualTypeWithUnionTypeMembers.ts, 85, 3)) +>i11 : I11 +>i21 : I21 >{ // Like i1 commonMethodDifferentReturnType: (a, b) => { var z = a.charAt(b); return z; }, commonPropertyDifferentType: "hello", } : { commonMethodDifferentReturnType: (a: string, b: number) => string; commonPropertyDifferentType: string; } // Like i1 commonMethodDifferentReturnType: (a, b) => { ->commonMethodDifferentReturnType : (a: string, b: number) => string, Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 104, 64)) +>commonMethodDifferentReturnType : (a: string, b: number) => string >(a, b) => { var z = a.charAt(b); return z; } : (a: string, b: number) => string ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 42)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 44)) +>a : string +>b : number var z = a.charAt(b); ->z : string, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 107, 15)) +>z : string >a.charAt(b) : string ->a.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 42)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 106, 44)) +>a.charAt : (pos: number) => string +>a : string +>charAt : (pos: number) => string +>b : number return z; ->z : string, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 107, 15)) +>z : string }, commonPropertyDifferentType: "hello", ->commonPropertyDifferentType : string, Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 109, 10)) +>commonPropertyDifferentType : string >"hello" : string }, { @@ -432,25 +432,25 @@ var arrayOrI11OrI21: Array = [i11, i21, i11 || i21, { // Like i2 commonMethodDifferentReturnType: (a, b) => { ->commonMethodDifferentReturnType : (a: string, b: number) => number, Symbol(commonMethodDifferentReturnType, Decl(contextualTypeWithUnionTypeMembers.ts, 111, 8)) +>commonMethodDifferentReturnType : (a: string, b: number) => number >(a, b) => { var z = a.charCodeAt(b); return z; } : (a: string, b: number) => number ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 42)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 44)) +>a : string +>b : number var z = a.charCodeAt(b); ->z : number, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 114, 15)) +>z : number >a.charCodeAt(b) : number ->a.charCodeAt : (index: number) => number, Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) ->a : string, Symbol(a, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 42)) ->charCodeAt : (index: number) => number, Symbol(String.charCodeAt, Decl(lib.d.ts, 285, 32)) ->b : number, Symbol(b, Decl(contextualTypeWithUnionTypeMembers.ts, 113, 44)) +>a.charCodeAt : (index: number) => number +>a : string +>charCodeAt : (index: number) => number +>b : number return z; ->z : number, Symbol(z, Decl(contextualTypeWithUnionTypeMembers.ts, 114, 15)) +>z : number }, commonPropertyDifferentType: 10, ->commonPropertyDifferentType : number, Symbol(commonPropertyDifferentType, Decl(contextualTypeWithUnionTypeMembers.ts, 116, 10)) +>commonPropertyDifferentType : number >10 : number }]; diff --git a/tests/baselines/reference/contextualTyping1.symbols b/tests/baselines/reference/contextualTyping1.symbols new file mode 100644 index 0000000000000..00c6fd57f2a1d --- /dev/null +++ b/tests/baselines/reference/contextualTyping1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping1.ts === +var foo: {id:number;} = {id:4}; +>foo : Symbol(foo, Decl(contextualTyping1.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping1.ts, 0, 10)) +>id : Symbol(id, Decl(contextualTyping1.ts, 0, 25)) + diff --git a/tests/baselines/reference/contextualTyping1.types b/tests/baselines/reference/contextualTyping1.types index 0c69af40515c0..6b2a794f98763 100644 --- a/tests/baselines/reference/contextualTyping1.types +++ b/tests/baselines/reference/contextualTyping1.types @@ -1,8 +1,8 @@ === tests/cases/compiler/contextualTyping1.ts === var foo: {id:number;} = {id:4}; ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping1.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping1.ts, 0, 10)) +>foo : { id: number; } +>id : number >{id:4} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping1.ts, 0, 25)) +>id : number >4 : number diff --git a/tests/baselines/reference/contextualTyping10.symbols b/tests/baselines/reference/contextualTyping10.symbols new file mode 100644 index 0000000000000..130116264e0aa --- /dev/null +++ b/tests/baselines/reference/contextualTyping10.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping10.ts === +class foo { public bar:{id:number;}[] = [{id:1}, {id:2}]; } +>foo : Symbol(foo, Decl(contextualTyping10.ts, 0, 0)) +>bar : Symbol(bar, Decl(contextualTyping10.ts, 0, 11)) +>id : Symbol(id, Decl(contextualTyping10.ts, 0, 24)) +>id : Symbol(id, Decl(contextualTyping10.ts, 0, 42)) +>id : Symbol(id, Decl(contextualTyping10.ts, 0, 50)) + diff --git a/tests/baselines/reference/contextualTyping10.types b/tests/baselines/reference/contextualTyping10.types index 9feec2cef7e29..938f2731a3064 100644 --- a/tests/baselines/reference/contextualTyping10.types +++ b/tests/baselines/reference/contextualTyping10.types @@ -1,13 +1,13 @@ === tests/cases/compiler/contextualTyping10.ts === class foo { public bar:{id:number;}[] = [{id:1}, {id:2}]; } ->foo : foo, Symbol(foo, Decl(contextualTyping10.ts, 0, 0)) ->bar : { id: number; }[], Symbol(bar, Decl(contextualTyping10.ts, 0, 11)) ->id : number, Symbol(id, Decl(contextualTyping10.ts, 0, 24)) +>foo : foo +>bar : { id: number; }[] +>id : number >[{id:1}, {id:2}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping10.ts, 0, 42)) +>id : number >1 : number >{id:2} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping10.ts, 0, 50)) +>id : number >2 : number diff --git a/tests/baselines/reference/contextualTyping12.symbols b/tests/baselines/reference/contextualTyping12.symbols new file mode 100644 index 0000000000000..bafef4c8e0a00 --- /dev/null +++ b/tests/baselines/reference/contextualTyping12.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/contextualTyping12.ts === +class foo { public bar:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; } +>foo : Symbol(foo, Decl(contextualTyping12.ts, 0, 0)) +>bar : Symbol(bar, Decl(contextualTyping12.ts, 0, 11)) +>id : Symbol(id, Decl(contextualTyping12.ts, 0, 24)) +>id : Symbol(id, Decl(contextualTyping12.ts, 0, 42)) +>id : Symbol(id, Decl(contextualTyping12.ts, 0, 50)) +>name : Symbol(name, Decl(contextualTyping12.ts, 0, 55)) + diff --git a/tests/baselines/reference/contextualTyping12.types b/tests/baselines/reference/contextualTyping12.types index 79b9612b80e75..68e2663fb6ab0 100644 --- a/tests/baselines/reference/contextualTyping12.types +++ b/tests/baselines/reference/contextualTyping12.types @@ -1,15 +1,15 @@ === tests/cases/compiler/contextualTyping12.ts === class foo { public bar:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; } ->foo : foo, Symbol(foo, Decl(contextualTyping12.ts, 0, 0)) ->bar : { id: number; }[], Symbol(bar, Decl(contextualTyping12.ts, 0, 11)) ->id : number, Symbol(id, Decl(contextualTyping12.ts, 0, 24)) +>foo : foo +>bar : { id: number; }[] +>id : number >[{id:1}, {id:2, name:"foo"}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping12.ts, 0, 42)) +>id : number >1 : number >{id:2, name:"foo"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping12.ts, 0, 50)) +>id : number >2 : number ->name : string, Symbol(name, Decl(contextualTyping12.ts, 0, 55)) +>name : string >"foo" : string diff --git a/tests/baselines/reference/contextualTyping13.symbols b/tests/baselines/reference/contextualTyping13.symbols new file mode 100644 index 0000000000000..e60131e8433fc --- /dev/null +++ b/tests/baselines/reference/contextualTyping13.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping13.ts === +var foo:(a:number)=>number = function(a){return a}; +>foo : Symbol(foo, Decl(contextualTyping13.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTyping13.ts, 0, 9)) +>a : Symbol(a, Decl(contextualTyping13.ts, 0, 38)) +>a : Symbol(a, Decl(contextualTyping13.ts, 0, 38)) + diff --git a/tests/baselines/reference/contextualTyping13.types b/tests/baselines/reference/contextualTyping13.types index da02360d4f083..5f7753970f33d 100644 --- a/tests/baselines/reference/contextualTyping13.types +++ b/tests/baselines/reference/contextualTyping13.types @@ -1,8 +1,8 @@ === tests/cases/compiler/contextualTyping13.ts === var foo:(a:number)=>number = function(a){return a}; ->foo : (a: number) => number, Symbol(foo, Decl(contextualTyping13.ts, 0, 3)) ->a : number, Symbol(a, Decl(contextualTyping13.ts, 0, 9)) +>foo : (a: number) => number +>a : number >function(a){return a} : (a: number) => number ->a : number, Symbol(a, Decl(contextualTyping13.ts, 0, 38)) ->a : number, Symbol(a, Decl(contextualTyping13.ts, 0, 38)) +>a : number +>a : number diff --git a/tests/baselines/reference/contextualTyping14.symbols b/tests/baselines/reference/contextualTyping14.symbols new file mode 100644 index 0000000000000..7de67445ca8c7 --- /dev/null +++ b/tests/baselines/reference/contextualTyping14.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping14.ts === +class foo { public bar:(a:number)=>number = function(a){return a}; } +>foo : Symbol(foo, Decl(contextualTyping14.ts, 0, 0)) +>bar : Symbol(bar, Decl(contextualTyping14.ts, 0, 11)) +>a : Symbol(a, Decl(contextualTyping14.ts, 0, 24)) +>a : Symbol(a, Decl(contextualTyping14.ts, 0, 53)) +>a : Symbol(a, Decl(contextualTyping14.ts, 0, 53)) + diff --git a/tests/baselines/reference/contextualTyping14.types b/tests/baselines/reference/contextualTyping14.types index accd6267bc444..6602cc11cbcab 100644 --- a/tests/baselines/reference/contextualTyping14.types +++ b/tests/baselines/reference/contextualTyping14.types @@ -1,9 +1,9 @@ === tests/cases/compiler/contextualTyping14.ts === class foo { public bar:(a:number)=>number = function(a){return a}; } ->foo : foo, Symbol(foo, Decl(contextualTyping14.ts, 0, 0)) ->bar : (a: number) => number, Symbol(bar, Decl(contextualTyping14.ts, 0, 11)) ->a : number, Symbol(a, Decl(contextualTyping14.ts, 0, 24)) +>foo : foo +>bar : (a: number) => number +>a : number >function(a){return a} : (a: number) => number ->a : number, Symbol(a, Decl(contextualTyping14.ts, 0, 53)) ->a : number, Symbol(a, Decl(contextualTyping14.ts, 0, 53)) +>a : number +>a : number diff --git a/tests/baselines/reference/contextualTyping15.symbols b/tests/baselines/reference/contextualTyping15.symbols new file mode 100644 index 0000000000000..902fb03dc70d0 --- /dev/null +++ b/tests/baselines/reference/contextualTyping15.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping15.ts === +class foo { public bar: { (): number; (i: number): number; } = function() { return 1 }; } +>foo : Symbol(foo, Decl(contextualTyping15.ts, 0, 0)) +>bar : Symbol(bar, Decl(contextualTyping15.ts, 0, 11)) +>i : Symbol(i, Decl(contextualTyping15.ts, 0, 39)) + diff --git a/tests/baselines/reference/contextualTyping15.types b/tests/baselines/reference/contextualTyping15.types index a8b8ba4f64eb5..ed4fdad3bfcb5 100644 --- a/tests/baselines/reference/contextualTyping15.types +++ b/tests/baselines/reference/contextualTyping15.types @@ -1,8 +1,8 @@ === tests/cases/compiler/contextualTyping15.ts === class foo { public bar: { (): number; (i: number): number; } = function() { return 1 }; } ->foo : foo, Symbol(foo, Decl(contextualTyping15.ts, 0, 0)) ->bar : { (): number; (i: number): number; }, Symbol(bar, Decl(contextualTyping15.ts, 0, 11)) ->i : number, Symbol(i, Decl(contextualTyping15.ts, 0, 39)) +>foo : foo +>bar : { (): number; (i: number): number; } +>i : number >function() { return 1 } : () => number >1 : number diff --git a/tests/baselines/reference/contextualTyping16.symbols b/tests/baselines/reference/contextualTyping16.symbols new file mode 100644 index 0000000000000..9f88ce4c151e2 --- /dev/null +++ b/tests/baselines/reference/contextualTyping16.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping16.ts === +var foo: {id:number;} = {id:4}; foo = {id:5}; +>foo : Symbol(foo, Decl(contextualTyping16.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping16.ts, 0, 10)) +>id : Symbol(id, Decl(contextualTyping16.ts, 0, 25)) +>foo : Symbol(foo, Decl(contextualTyping16.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping16.ts, 0, 39)) + diff --git a/tests/baselines/reference/contextualTyping16.types b/tests/baselines/reference/contextualTyping16.types index 0f2c0adabcdcc..63f93649208a0 100644 --- a/tests/baselines/reference/contextualTyping16.types +++ b/tests/baselines/reference/contextualTyping16.types @@ -1,13 +1,13 @@ === tests/cases/compiler/contextualTyping16.ts === var foo: {id:number;} = {id:4}; foo = {id:5}; ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping16.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping16.ts, 0, 10)) +>foo : { id: number; } +>id : number >{id:4} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping16.ts, 0, 25)) +>id : number >4 : number >foo = {id:5} : { id: number; } ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping16.ts, 0, 3)) +>foo : { id: number; } >{id:5} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping16.ts, 0, 39)) +>id : number >5 : number diff --git a/tests/baselines/reference/contextualTyping17.symbols b/tests/baselines/reference/contextualTyping17.symbols new file mode 100644 index 0000000000000..55631494105ad --- /dev/null +++ b/tests/baselines/reference/contextualTyping17.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/contextualTyping17.ts === +var foo: {id:number;} = {id:4}; foo = {id: 5, name:"foo"}; +>foo : Symbol(foo, Decl(contextualTyping17.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping17.ts, 0, 10)) +>id : Symbol(id, Decl(contextualTyping17.ts, 0, 25)) +>foo : Symbol(foo, Decl(contextualTyping17.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping17.ts, 0, 39)) +>name : Symbol(name, Decl(contextualTyping17.ts, 0, 45)) + diff --git a/tests/baselines/reference/contextualTyping17.types b/tests/baselines/reference/contextualTyping17.types index e9c02e3ca5e74..649bc339ba1e3 100644 --- a/tests/baselines/reference/contextualTyping17.types +++ b/tests/baselines/reference/contextualTyping17.types @@ -1,15 +1,15 @@ === tests/cases/compiler/contextualTyping17.ts === var foo: {id:number;} = {id:4}; foo = {id: 5, name:"foo"}; ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping17.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping17.ts, 0, 10)) +>foo : { id: number; } +>id : number >{id:4} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping17.ts, 0, 25)) +>id : number >4 : number >foo = {id: 5, name:"foo"} : { id: number; name: string; } ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping17.ts, 0, 3)) +>foo : { id: number; } >{id: 5, name:"foo"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping17.ts, 0, 39)) +>id : number >5 : number ->name : string, Symbol(name, Decl(contextualTyping17.ts, 0, 45)) +>name : string >"foo" : string diff --git a/tests/baselines/reference/contextualTyping18.symbols b/tests/baselines/reference/contextualTyping18.symbols new file mode 100644 index 0000000000000..a5506cfe9009d --- /dev/null +++ b/tests/baselines/reference/contextualTyping18.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping18.ts === +var foo: {id:number;} = <{id:number;}>({ }); foo = {id: 5}; +>foo : Symbol(foo, Decl(contextualTyping18.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping18.ts, 0, 10)) +>id : Symbol(id, Decl(contextualTyping18.ts, 0, 26)) +>foo : Symbol(foo, Decl(contextualTyping18.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping18.ts, 0, 52)) + diff --git a/tests/baselines/reference/contextualTyping18.types b/tests/baselines/reference/contextualTyping18.types index f5d0a0e8a4e2c..0bef546022d6e 100644 --- a/tests/baselines/reference/contextualTyping18.types +++ b/tests/baselines/reference/contextualTyping18.types @@ -1,14 +1,14 @@ === tests/cases/compiler/contextualTyping18.ts === var foo: {id:number;} = <{id:number;}>({ }); foo = {id: 5}; ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping18.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping18.ts, 0, 10)) +>foo : { id: number; } +>id : number ><{id:number;}>({ }) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping18.ts, 0, 26)) +>id : number >({ }) : {} >{ } : {} >foo = {id: 5} : { id: number; } ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping18.ts, 0, 3)) +>foo : { id: number; } >{id: 5} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping18.ts, 0, 52)) +>id : number >5 : number diff --git a/tests/baselines/reference/contextualTyping19.symbols b/tests/baselines/reference/contextualTyping19.symbols new file mode 100644 index 0000000000000..cee3a6e7d24e9 --- /dev/null +++ b/tests/baselines/reference/contextualTyping19.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/contextualTyping19.ts === +var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, {id:2}]; +>foo : Symbol(foo, Decl(contextualTyping19.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping19.ts, 0, 9)) +>id : Symbol(id, Decl(contextualTyping19.ts, 0, 27)) +>foo : Symbol(foo, Decl(contextualTyping19.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping19.ts, 0, 43)) +>id : Symbol(id, Decl(contextualTyping19.ts, 0, 51)) + diff --git a/tests/baselines/reference/contextualTyping19.types b/tests/baselines/reference/contextualTyping19.types index df40d6d61c521..d384a68749a3a 100644 --- a/tests/baselines/reference/contextualTyping19.types +++ b/tests/baselines/reference/contextualTyping19.types @@ -1,18 +1,18 @@ === tests/cases/compiler/contextualTyping19.ts === var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, {id:2}]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping19.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping19.ts, 0, 9)) +>foo : { id: number; }[] +>id : number >[{id:1}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping19.ts, 0, 27)) +>id : number >1 : number >foo = [{id:1}, {id:2}] : { id: number; }[] ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping19.ts, 0, 3)) +>foo : { id: number; }[] >[{id:1}, {id:2}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping19.ts, 0, 43)) +>id : number >1 : number >{id:2} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping19.ts, 0, 51)) +>id : number >2 : number diff --git a/tests/baselines/reference/contextualTyping2.symbols b/tests/baselines/reference/contextualTyping2.symbols new file mode 100644 index 0000000000000..9c1020929794b --- /dev/null +++ b/tests/baselines/reference/contextualTyping2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping2.ts === +var foo: {id:number;} = {id:4, name:"foo"}; +>foo : Symbol(foo, Decl(contextualTyping2.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping2.ts, 0, 10)) +>id : Symbol(id, Decl(contextualTyping2.ts, 0, 25)) +>name : Symbol(name, Decl(contextualTyping2.ts, 0, 30)) + diff --git a/tests/baselines/reference/contextualTyping2.types b/tests/baselines/reference/contextualTyping2.types index ba997cb1e57f5..0658247c089ea 100644 --- a/tests/baselines/reference/contextualTyping2.types +++ b/tests/baselines/reference/contextualTyping2.types @@ -1,10 +1,10 @@ === tests/cases/compiler/contextualTyping2.ts === var foo: {id:number;} = {id:4, name:"foo"}; ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping2.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping2.ts, 0, 10)) +>foo : { id: number; } +>id : number >{id:4, name:"foo"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping2.ts, 0, 25)) +>id : number >4 : number ->name : string, Symbol(name, Decl(contextualTyping2.ts, 0, 30)) +>name : string >"foo" : string diff --git a/tests/baselines/reference/contextualTyping20.symbols b/tests/baselines/reference/contextualTyping20.symbols new file mode 100644 index 0000000000000..505c6a04a59f2 --- /dev/null +++ b/tests/baselines/reference/contextualTyping20.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/contextualTyping20.ts === +var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, {id:2, name:"foo"}]; +>foo : Symbol(foo, Decl(contextualTyping20.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping20.ts, 0, 9)) +>id : Symbol(id, Decl(contextualTyping20.ts, 0, 27)) +>foo : Symbol(foo, Decl(contextualTyping20.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping20.ts, 0, 43)) +>id : Symbol(id, Decl(contextualTyping20.ts, 0, 51)) +>name : Symbol(name, Decl(contextualTyping20.ts, 0, 56)) + diff --git a/tests/baselines/reference/contextualTyping20.types b/tests/baselines/reference/contextualTyping20.types index 26b56840eafe5..be863db836be1 100644 --- a/tests/baselines/reference/contextualTyping20.types +++ b/tests/baselines/reference/contextualTyping20.types @@ -1,20 +1,20 @@ === tests/cases/compiler/contextualTyping20.ts === var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, {id:2, name:"foo"}]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping20.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping20.ts, 0, 9)) +>foo : { id: number; }[] +>id : number >[{id:1}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping20.ts, 0, 27)) +>id : number >1 : number >foo = [{id:1}, {id:2, name:"foo"}] : { id: number; }[] ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping20.ts, 0, 3)) +>foo : { id: number; }[] >[{id:1}, {id:2, name:"foo"}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping20.ts, 0, 43)) +>id : number >1 : number >{id:2, name:"foo"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping20.ts, 0, 51)) +>id : number >2 : number ->name : string, Symbol(name, Decl(contextualTyping20.ts, 0, 56)) +>name : string >"foo" : string diff --git a/tests/baselines/reference/contextualTyping22.symbols b/tests/baselines/reference/contextualTyping22.symbols new file mode 100644 index 0000000000000..9a7817a826063 --- /dev/null +++ b/tests/baselines/reference/contextualTyping22.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/contextualTyping22.ts === +var foo:(a:number)=>number = function(a){return a}; foo = function(b){return b}; +>foo : Symbol(foo, Decl(contextualTyping22.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTyping22.ts, 0, 9)) +>a : Symbol(a, Decl(contextualTyping22.ts, 0, 38)) +>a : Symbol(a, Decl(contextualTyping22.ts, 0, 38)) +>foo : Symbol(foo, Decl(contextualTyping22.ts, 0, 3)) +>b : Symbol(b, Decl(contextualTyping22.ts, 0, 67)) +>b : Symbol(b, Decl(contextualTyping22.ts, 0, 67)) + diff --git a/tests/baselines/reference/contextualTyping22.types b/tests/baselines/reference/contextualTyping22.types index 67d8baf76ccda..206dc668e8e70 100644 --- a/tests/baselines/reference/contextualTyping22.types +++ b/tests/baselines/reference/contextualTyping22.types @@ -1,13 +1,13 @@ === tests/cases/compiler/contextualTyping22.ts === var foo:(a:number)=>number = function(a){return a}; foo = function(b){return b}; ->foo : (a: number) => number, Symbol(foo, Decl(contextualTyping22.ts, 0, 3)) ->a : number, Symbol(a, Decl(contextualTyping22.ts, 0, 9)) +>foo : (a: number) => number +>a : number >function(a){return a} : (a: number) => number ->a : number, Symbol(a, Decl(contextualTyping22.ts, 0, 38)) ->a : number, Symbol(a, Decl(contextualTyping22.ts, 0, 38)) +>a : number +>a : number >foo = function(b){return b} : (b: number) => number ->foo : (a: number) => number, Symbol(foo, Decl(contextualTyping22.ts, 0, 3)) +>foo : (a: number) => number >function(b){return b} : (b: number) => number ->b : number, Symbol(b, Decl(contextualTyping22.ts, 0, 67)) ->b : number, Symbol(b, Decl(contextualTyping22.ts, 0, 67)) +>b : number +>b : number diff --git a/tests/baselines/reference/contextualTyping23.symbols b/tests/baselines/reference/contextualTyping23.symbols new file mode 100644 index 0000000000000..bb0daeeee18ae --- /dev/null +++ b/tests/baselines/reference/contextualTyping23.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping23.ts === +var foo:(a:{():number; (i:number):number; })=>number; foo = function(a){return 5}; +>foo : Symbol(foo, Decl(contextualTyping23.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTyping23.ts, 0, 9)) +>i : Symbol(i, Decl(contextualTyping23.ts, 0, 24)) +>foo : Symbol(foo, Decl(contextualTyping23.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTyping23.ts, 0, 69)) + diff --git a/tests/baselines/reference/contextualTyping23.types b/tests/baselines/reference/contextualTyping23.types index c721bbd913ce4..0bb8b7a58e7b1 100644 --- a/tests/baselines/reference/contextualTyping23.types +++ b/tests/baselines/reference/contextualTyping23.types @@ -1,11 +1,11 @@ === tests/cases/compiler/contextualTyping23.ts === var foo:(a:{():number; (i:number):number; })=>number; foo = function(a){return 5}; ->foo : (a: { (): number; (i: number): number; }) => number, Symbol(foo, Decl(contextualTyping23.ts, 0, 3)) ->a : { (): number; (i: number): number; }, Symbol(a, Decl(contextualTyping23.ts, 0, 9)) ->i : number, Symbol(i, Decl(contextualTyping23.ts, 0, 24)) +>foo : (a: { (): number; (i: number): number; }) => number +>a : { (): number; (i: number): number; } +>i : number >foo = function(a){return 5} : (a: { (): number; (i: number): number; }) => number ->foo : (a: { (): number; (i: number): number; }) => number, Symbol(foo, Decl(contextualTyping23.ts, 0, 3)) +>foo : (a: { (): number; (i: number): number; }) => number >function(a){return 5} : (a: { (): number; (i: number): number; }) => number ->a : { (): number; (i: number): number; }, Symbol(a, Decl(contextualTyping23.ts, 0, 69)) +>a : { (): number; (i: number): number; } >5 : number diff --git a/tests/baselines/reference/contextualTyping25.symbols b/tests/baselines/reference/contextualTyping25.symbols new file mode 100644 index 0000000000000..5446a3c7515d5 --- /dev/null +++ b/tests/baselines/reference/contextualTyping25.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping25.ts === +function foo(param:{id:number;}){}; foo(<{id:number;}>({})); +>foo : Symbol(foo, Decl(contextualTyping25.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping25.ts, 0, 13)) +>id : Symbol(id, Decl(contextualTyping25.ts, 0, 20)) +>foo : Symbol(foo, Decl(contextualTyping25.ts, 0, 0)) +>id : Symbol(id, Decl(contextualTyping25.ts, 0, 42)) + diff --git a/tests/baselines/reference/contextualTyping25.types b/tests/baselines/reference/contextualTyping25.types index b6ea8609ca1c3..3c6442739a23b 100644 --- a/tests/baselines/reference/contextualTyping25.types +++ b/tests/baselines/reference/contextualTyping25.types @@ -1,12 +1,12 @@ === tests/cases/compiler/contextualTyping25.ts === function foo(param:{id:number;}){}; foo(<{id:number;}>({})); ->foo : (param: { id: number; }) => void, Symbol(foo, Decl(contextualTyping25.ts, 0, 0)) ->param : { id: number; }, Symbol(param, Decl(contextualTyping25.ts, 0, 13)) ->id : number, Symbol(id, Decl(contextualTyping25.ts, 0, 20)) +>foo : (param: { id: number; }) => void +>param : { id: number; } +>id : number >foo(<{id:number;}>({})) : void ->foo : (param: { id: number; }) => void, Symbol(foo, Decl(contextualTyping25.ts, 0, 0)) +>foo : (param: { id: number; }) => void ><{id:number;}>({}) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping25.ts, 0, 42)) +>id : number >({}) : {} >{} : {} diff --git a/tests/baselines/reference/contextualTyping26.symbols b/tests/baselines/reference/contextualTyping26.symbols new file mode 100644 index 0000000000000..ccecd501837ba --- /dev/null +++ b/tests/baselines/reference/contextualTyping26.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping26.ts === +function foo(param:{id:number;}){}; foo(<{id:number;}>({})); +>foo : Symbol(foo, Decl(contextualTyping26.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping26.ts, 0, 13)) +>id : Symbol(id, Decl(contextualTyping26.ts, 0, 20)) +>foo : Symbol(foo, Decl(contextualTyping26.ts, 0, 0)) +>id : Symbol(id, Decl(contextualTyping26.ts, 0, 42)) + diff --git a/tests/baselines/reference/contextualTyping26.types b/tests/baselines/reference/contextualTyping26.types index 0f8a41f31be7f..65a089f608296 100644 --- a/tests/baselines/reference/contextualTyping26.types +++ b/tests/baselines/reference/contextualTyping26.types @@ -1,12 +1,12 @@ === tests/cases/compiler/contextualTyping26.ts === function foo(param:{id:number;}){}; foo(<{id:number;}>({})); ->foo : (param: { id: number; }) => void, Symbol(foo, Decl(contextualTyping26.ts, 0, 0)) ->param : { id: number; }, Symbol(param, Decl(contextualTyping26.ts, 0, 13)) ->id : number, Symbol(id, Decl(contextualTyping26.ts, 0, 20)) +>foo : (param: { id: number; }) => void +>param : { id: number; } +>id : number >foo(<{id:number;}>({})) : void ->foo : (param: { id: number; }) => void, Symbol(foo, Decl(contextualTyping26.ts, 0, 0)) +>foo : (param: { id: number; }) => void ><{id:number;}>({}) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping26.ts, 0, 42)) +>id : number >({}) : {} >{} : {} diff --git a/tests/baselines/reference/contextualTyping27.symbols b/tests/baselines/reference/contextualTyping27.symbols new file mode 100644 index 0000000000000..0ff8486c1d99d --- /dev/null +++ b/tests/baselines/reference/contextualTyping27.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping27.ts === +function foo(param:{id:number;}){}; foo(<{id:number;}>({})); +>foo : Symbol(foo, Decl(contextualTyping27.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping27.ts, 0, 13)) +>id : Symbol(id, Decl(contextualTyping27.ts, 0, 20)) +>foo : Symbol(foo, Decl(contextualTyping27.ts, 0, 0)) +>id : Symbol(id, Decl(contextualTyping27.ts, 0, 42)) + diff --git a/tests/baselines/reference/contextualTyping27.types b/tests/baselines/reference/contextualTyping27.types index 9d1dd452f79e0..f668565e43d6b 100644 --- a/tests/baselines/reference/contextualTyping27.types +++ b/tests/baselines/reference/contextualTyping27.types @@ -1,12 +1,12 @@ === tests/cases/compiler/contextualTyping27.ts === function foo(param:{id:number;}){}; foo(<{id:number;}>({})); ->foo : (param: { id: number; }) => void, Symbol(foo, Decl(contextualTyping27.ts, 0, 0)) ->param : { id: number; }, Symbol(param, Decl(contextualTyping27.ts, 0, 13)) ->id : number, Symbol(id, Decl(contextualTyping27.ts, 0, 20)) +>foo : (param: { id: number; }) => void +>param : { id: number; } +>id : number >foo(<{id:number;}>({})) : void ->foo : (param: { id: number; }) => void, Symbol(foo, Decl(contextualTyping27.ts, 0, 0)) +>foo : (param: { id: number; }) => void ><{id:number;}>({}) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping27.ts, 0, 42)) +>id : number >({}) : {} >{} : {} diff --git a/tests/baselines/reference/contextualTyping28.symbols b/tests/baselines/reference/contextualTyping28.symbols new file mode 100644 index 0000000000000..5824da20a03f2 --- /dev/null +++ b/tests/baselines/reference/contextualTyping28.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping28.ts === +function foo(param:number[]){}; foo([1]); +>foo : Symbol(foo, Decl(contextualTyping28.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping28.ts, 0, 13)) +>foo : Symbol(foo, Decl(contextualTyping28.ts, 0, 0)) + diff --git a/tests/baselines/reference/contextualTyping28.types b/tests/baselines/reference/contextualTyping28.types index 02bc3b674d721..e4833fd8838b0 100644 --- a/tests/baselines/reference/contextualTyping28.types +++ b/tests/baselines/reference/contextualTyping28.types @@ -1,9 +1,9 @@ === tests/cases/compiler/contextualTyping28.ts === function foo(param:number[]){}; foo([1]); ->foo : (param: number[]) => void, Symbol(foo, Decl(contextualTyping28.ts, 0, 0)) ->param : number[], Symbol(param, Decl(contextualTyping28.ts, 0, 13)) +>foo : (param: number[]) => void +>param : number[] >foo([1]) : void ->foo : (param: number[]) => void, Symbol(foo, Decl(contextualTyping28.ts, 0, 0)) +>foo : (param: number[]) => void >[1] : number[] >1 : number diff --git a/tests/baselines/reference/contextualTyping29.symbols b/tests/baselines/reference/contextualTyping29.symbols new file mode 100644 index 0000000000000..eb255bfd76b08 --- /dev/null +++ b/tests/baselines/reference/contextualTyping29.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping29.ts === +function foo(param:number[]){}; foo([1, 3]); +>foo : Symbol(foo, Decl(contextualTyping29.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping29.ts, 0, 13)) +>foo : Symbol(foo, Decl(contextualTyping29.ts, 0, 0)) + diff --git a/tests/baselines/reference/contextualTyping29.types b/tests/baselines/reference/contextualTyping29.types index d7d955b208eba..96695a6d0ba7c 100644 --- a/tests/baselines/reference/contextualTyping29.types +++ b/tests/baselines/reference/contextualTyping29.types @@ -1,9 +1,9 @@ === tests/cases/compiler/contextualTyping29.ts === function foo(param:number[]){}; foo([1, 3]); ->foo : (param: number[]) => void, Symbol(foo, Decl(contextualTyping29.ts, 0, 0)) ->param : number[], Symbol(param, Decl(contextualTyping29.ts, 0, 13)) +>foo : (param: number[]) => void +>param : number[] >foo([1, 3]) : void ->foo : (param: number[]) => void, Symbol(foo, Decl(contextualTyping29.ts, 0, 0)) +>foo : (param: number[]) => void >[1, 3] : number[] >1 : number >3 : number diff --git a/tests/baselines/reference/contextualTyping3.symbols b/tests/baselines/reference/contextualTyping3.symbols new file mode 100644 index 0000000000000..584c399e4da6a --- /dev/null +++ b/tests/baselines/reference/contextualTyping3.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping3.ts === +class foo { public bar:{id:number;} = {id:5}; } +>foo : Symbol(foo, Decl(contextualTyping3.ts, 0, 0)) +>bar : Symbol(bar, Decl(contextualTyping3.ts, 0, 11)) +>id : Symbol(id, Decl(contextualTyping3.ts, 0, 24)) +>id : Symbol(id, Decl(contextualTyping3.ts, 0, 39)) + diff --git a/tests/baselines/reference/contextualTyping3.types b/tests/baselines/reference/contextualTyping3.types index ecf447e75d24b..81c201ee57250 100644 --- a/tests/baselines/reference/contextualTyping3.types +++ b/tests/baselines/reference/contextualTyping3.types @@ -1,9 +1,9 @@ === tests/cases/compiler/contextualTyping3.ts === class foo { public bar:{id:number;} = {id:5}; } ->foo : foo, Symbol(foo, Decl(contextualTyping3.ts, 0, 0)) ->bar : { id: number; }, Symbol(bar, Decl(contextualTyping3.ts, 0, 11)) ->id : number, Symbol(id, Decl(contextualTyping3.ts, 0, 24)) +>foo : foo +>bar : { id: number; } +>id : number >{id:5} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping3.ts, 0, 39)) +>id : number >5 : number diff --git a/tests/baselines/reference/contextualTyping31.symbols b/tests/baselines/reference/contextualTyping31.symbols new file mode 100644 index 0000000000000..6891de8b49f7e --- /dev/null +++ b/tests/baselines/reference/contextualTyping31.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping31.ts === +function foo(param:number[]){}; foo([1]); +>foo : Symbol(foo, Decl(contextualTyping31.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping31.ts, 0, 13)) +>foo : Symbol(foo, Decl(contextualTyping31.ts, 0, 0)) + diff --git a/tests/baselines/reference/contextualTyping31.types b/tests/baselines/reference/contextualTyping31.types index 2116087d67782..22a8f08cf908c 100644 --- a/tests/baselines/reference/contextualTyping31.types +++ b/tests/baselines/reference/contextualTyping31.types @@ -1,9 +1,9 @@ === tests/cases/compiler/contextualTyping31.ts === function foo(param:number[]){}; foo([1]); ->foo : (param: number[]) => void, Symbol(foo, Decl(contextualTyping31.ts, 0, 0)) ->param : number[], Symbol(param, Decl(contextualTyping31.ts, 0, 13)) +>foo : (param: number[]) => void +>param : number[] >foo([1]) : void ->foo : (param: number[]) => void, Symbol(foo, Decl(contextualTyping31.ts, 0, 0)) +>foo : (param: number[]) => void >[1] : number[] >1 : number diff --git a/tests/baselines/reference/contextualTyping32.symbols b/tests/baselines/reference/contextualTyping32.symbols new file mode 100644 index 0000000000000..f4ceeb9349151 --- /dev/null +++ b/tests/baselines/reference/contextualTyping32.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping32.ts === +function foo(param: {():number; (i:number):number; }[]) { }; foo([function(){return 1;}, function(){return 4}]); +>foo : Symbol(foo, Decl(contextualTyping32.ts, 0, 0)) +>param : Symbol(param, Decl(contextualTyping32.ts, 0, 13)) +>i : Symbol(i, Decl(contextualTyping32.ts, 0, 33)) +>foo : Symbol(foo, Decl(contextualTyping32.ts, 0, 0)) + diff --git a/tests/baselines/reference/contextualTyping32.types b/tests/baselines/reference/contextualTyping32.types index 67dd18c82de53..59f6040cf7fb2 100644 --- a/tests/baselines/reference/contextualTyping32.types +++ b/tests/baselines/reference/contextualTyping32.types @@ -1,10 +1,10 @@ === tests/cases/compiler/contextualTyping32.ts === function foo(param: {():number; (i:number):number; }[]) { }; foo([function(){return 1;}, function(){return 4}]); ->foo : (param: { (): number; (i: number): number; }[]) => void, Symbol(foo, Decl(contextualTyping32.ts, 0, 0)) ->param : { (): number; (i: number): number; }[], Symbol(param, Decl(contextualTyping32.ts, 0, 13)) ->i : number, Symbol(i, Decl(contextualTyping32.ts, 0, 33)) +>foo : (param: { (): number; (i: number): number; }[]) => void +>param : { (): number; (i: number): number; }[] +>i : number >foo([function(){return 1;}, function(){return 4}]) : void ->foo : (param: { (): number; (i: number): number; }[]) => void, Symbol(foo, Decl(contextualTyping32.ts, 0, 0)) +>foo : (param: { (): number; (i: number): number; }[]) => void >[function(){return 1;}, function(){return 4}] : (() => number)[] >function(){return 1;} : () => number >1 : number diff --git a/tests/baselines/reference/contextualTyping34.symbols b/tests/baselines/reference/contextualTyping34.symbols new file mode 100644 index 0000000000000..6ea9f09f94b64 --- /dev/null +++ b/tests/baselines/reference/contextualTyping34.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping34.ts === +var foo = <{ id: number;}> ({id:4}); +>foo : Symbol(foo, Decl(contextualTyping34.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping34.ts, 0, 12)) +>id : Symbol(id, Decl(contextualTyping34.ts, 0, 29)) + diff --git a/tests/baselines/reference/contextualTyping34.types b/tests/baselines/reference/contextualTyping34.types index 448689893c6b2..6bc6b622fc8fa 100644 --- a/tests/baselines/reference/contextualTyping34.types +++ b/tests/baselines/reference/contextualTyping34.types @@ -1,10 +1,10 @@ === tests/cases/compiler/contextualTyping34.ts === var foo = <{ id: number;}> ({id:4}); ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping34.ts, 0, 3)) +>foo : { id: number; } ><{ id: number;}> ({id:4}) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping34.ts, 0, 12)) +>id : number >({id:4}) : { id: number; } >{id:4} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping34.ts, 0, 29)) +>id : number >4 : number diff --git a/tests/baselines/reference/contextualTyping35.symbols b/tests/baselines/reference/contextualTyping35.symbols new file mode 100644 index 0000000000000..cb98510089176 --- /dev/null +++ b/tests/baselines/reference/contextualTyping35.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping35.ts === +var foo = <{ id: number;}> {id:4, name: "as"}; +>foo : Symbol(foo, Decl(contextualTyping35.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping35.ts, 0, 12)) +>id : Symbol(id, Decl(contextualTyping35.ts, 0, 28)) +>name : Symbol(name, Decl(contextualTyping35.ts, 0, 33)) + diff --git a/tests/baselines/reference/contextualTyping35.types b/tests/baselines/reference/contextualTyping35.types index d859ad10100ea..08bb6b27b8e98 100644 --- a/tests/baselines/reference/contextualTyping35.types +++ b/tests/baselines/reference/contextualTyping35.types @@ -1,11 +1,11 @@ === tests/cases/compiler/contextualTyping35.ts === var foo = <{ id: number;}> {id:4, name: "as"}; ->foo : { id: number; }, Symbol(foo, Decl(contextualTyping35.ts, 0, 3)) +>foo : { id: number; } ><{ id: number;}> {id:4, name: "as"} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping35.ts, 0, 12)) +>id : number >{id:4, name: "as"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping35.ts, 0, 28)) +>id : number >4 : number ->name : string, Symbol(name, Decl(contextualTyping35.ts, 0, 33)) +>name : string >"as" : string diff --git a/tests/baselines/reference/contextualTyping36.symbols b/tests/baselines/reference/contextualTyping36.symbols new file mode 100644 index 0000000000000..28ceac9738cc3 --- /dev/null +++ b/tests/baselines/reference/contextualTyping36.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping36.ts === +var foo = <{ id: number; }[]>[{ id: 4 }, <{ id: number; }>({ })]; +>foo : Symbol(foo, Decl(contextualTyping36.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping36.ts, 0, 12)) +>id : Symbol(id, Decl(contextualTyping36.ts, 0, 31)) +>id : Symbol(id, Decl(contextualTyping36.ts, 0, 43)) + diff --git a/tests/baselines/reference/contextualTyping36.types b/tests/baselines/reference/contextualTyping36.types index 840f8d2cac85a..6c93ed30a9f2a 100644 --- a/tests/baselines/reference/contextualTyping36.types +++ b/tests/baselines/reference/contextualTyping36.types @@ -1,14 +1,14 @@ === tests/cases/compiler/contextualTyping36.ts === var foo = <{ id: number; }[]>[{ id: 4 }, <{ id: number; }>({ })]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping36.ts, 0, 3)) +>foo : { id: number; }[] ><{ id: number; }[]>[{ id: 4 }, <{ id: number; }>({ })] : { id: number; }[] ->id : number, Symbol(id, Decl(contextualTyping36.ts, 0, 12)) +>id : number >[{ id: 4 }, <{ id: number; }>({ })] : { id: number; }[] >{ id: 4 } : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping36.ts, 0, 31)) +>id : number >4 : number ><{ id: number; }>({ }) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping36.ts, 0, 43)) +>id : number >({ }) : {} >{ } : {} diff --git a/tests/baselines/reference/contextualTyping37.symbols b/tests/baselines/reference/contextualTyping37.symbols new file mode 100644 index 0000000000000..083704750cb35 --- /dev/null +++ b/tests/baselines/reference/contextualTyping37.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping37.ts === +var foo = <{ id: number; }[]>[{ foo: "s" }, { }]; +>foo : Symbol(foo, Decl(contextualTyping37.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping37.ts, 0, 12)) +>foo : Symbol(foo, Decl(contextualTyping37.ts, 0, 31)) + diff --git a/tests/baselines/reference/contextualTyping37.types b/tests/baselines/reference/contextualTyping37.types index 751e07cd42cc6..299b440013755 100644 --- a/tests/baselines/reference/contextualTyping37.types +++ b/tests/baselines/reference/contextualTyping37.types @@ -1,11 +1,11 @@ === tests/cases/compiler/contextualTyping37.ts === var foo = <{ id: number; }[]>[{ foo: "s" }, { }]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping37.ts, 0, 3)) +>foo : { id: number; }[] ><{ id: number; }[]>[{ foo: "s" }, { }] : { id: number; }[] ->id : number, Symbol(id, Decl(contextualTyping37.ts, 0, 12)) +>id : number >[{ foo: "s" }, { }] : {}[] >{ foo: "s" } : { foo: string; } ->foo : string, Symbol(foo, Decl(contextualTyping37.ts, 0, 31)) +>foo : string >"s" : string >{ } : {} diff --git a/tests/baselines/reference/contextualTyping38.symbols b/tests/baselines/reference/contextualTyping38.symbols new file mode 100644 index 0000000000000..f208cad698a7f --- /dev/null +++ b/tests/baselines/reference/contextualTyping38.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping38.ts === +var foo = <{ (): number; }> function(a) { return a }; +>foo : Symbol(foo, Decl(contextualTyping38.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTyping38.ts, 0, 37)) +>a : Symbol(a, Decl(contextualTyping38.ts, 0, 37)) + diff --git a/tests/baselines/reference/contextualTyping38.types b/tests/baselines/reference/contextualTyping38.types index 829ed3226babe..f838c0914f062 100644 --- a/tests/baselines/reference/contextualTyping38.types +++ b/tests/baselines/reference/contextualTyping38.types @@ -1,8 +1,8 @@ === tests/cases/compiler/contextualTyping38.ts === var foo = <{ (): number; }> function(a) { return a }; ->foo : () => number, Symbol(foo, Decl(contextualTyping38.ts, 0, 3)) +>foo : () => number ><{ (): number; }> function(a) { return a } : () => number >function(a) { return a } : (a: any) => any ->a : any, Symbol(a, Decl(contextualTyping38.ts, 0, 37)) ->a : any, Symbol(a, Decl(contextualTyping38.ts, 0, 37)) +>a : any +>a : any diff --git a/tests/baselines/reference/contextualTyping4.symbols b/tests/baselines/reference/contextualTyping4.symbols new file mode 100644 index 0000000000000..c5dcd4f1577bc --- /dev/null +++ b/tests/baselines/reference/contextualTyping4.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping4.ts === +class foo { public bar:{id:number;} = {id:5, name:"foo"}; } +>foo : Symbol(foo, Decl(contextualTyping4.ts, 0, 0)) +>bar : Symbol(bar, Decl(contextualTyping4.ts, 0, 11)) +>id : Symbol(id, Decl(contextualTyping4.ts, 0, 24)) +>id : Symbol(id, Decl(contextualTyping4.ts, 0, 39)) +>name : Symbol(name, Decl(contextualTyping4.ts, 0, 44)) + diff --git a/tests/baselines/reference/contextualTyping4.types b/tests/baselines/reference/contextualTyping4.types index a5c55287a493e..757c67745f191 100644 --- a/tests/baselines/reference/contextualTyping4.types +++ b/tests/baselines/reference/contextualTyping4.types @@ -1,11 +1,11 @@ === tests/cases/compiler/contextualTyping4.ts === class foo { public bar:{id:number;} = {id:5, name:"foo"}; } ->foo : foo, Symbol(foo, Decl(contextualTyping4.ts, 0, 0)) ->bar : { id: number; }, Symbol(bar, Decl(contextualTyping4.ts, 0, 11)) ->id : number, Symbol(id, Decl(contextualTyping4.ts, 0, 24)) +>foo : foo +>bar : { id: number; } +>id : number >{id:5, name:"foo"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping4.ts, 0, 39)) +>id : number >5 : number ->name : string, Symbol(name, Decl(contextualTyping4.ts, 0, 44)) +>name : string >"foo" : string diff --git a/tests/baselines/reference/contextualTyping40.symbols b/tests/baselines/reference/contextualTyping40.symbols new file mode 100644 index 0000000000000..8606cdd4c41b4 --- /dev/null +++ b/tests/baselines/reference/contextualTyping40.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/contextualTyping40.ts === +var foo = <{():number; (i:number):number; }> function(){return 1;}; +>foo : Symbol(foo, Decl(contextualTyping40.ts, 0, 3)) +>i : Symbol(i, Decl(contextualTyping40.ts, 0, 24)) + diff --git a/tests/baselines/reference/contextualTyping40.types b/tests/baselines/reference/contextualTyping40.types index fe605c6cfc892..1889d79f1396e 100644 --- a/tests/baselines/reference/contextualTyping40.types +++ b/tests/baselines/reference/contextualTyping40.types @@ -1,8 +1,8 @@ === tests/cases/compiler/contextualTyping40.ts === var foo = <{():number; (i:number):number; }> function(){return 1;}; ->foo : { (): number; (i: number): number; }, Symbol(foo, Decl(contextualTyping40.ts, 0, 3)) +>foo : { (): number; (i: number): number; } ><{():number; (i:number):number; }> function(){return 1;} : { (): number; (i: number): number; } ->i : number, Symbol(i, Decl(contextualTyping40.ts, 0, 24)) +>i : number >function(){return 1;} : () => number >1 : number diff --git a/tests/baselines/reference/contextualTyping6.symbols b/tests/baselines/reference/contextualTyping6.symbols new file mode 100644 index 0000000000000..23af71d7dba79 --- /dev/null +++ b/tests/baselines/reference/contextualTyping6.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/contextualTyping6.ts === +var foo:{id:number;}[] = [{id:1}, {id:2}]; +>foo : Symbol(foo, Decl(contextualTyping6.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping6.ts, 0, 9)) +>id : Symbol(id, Decl(contextualTyping6.ts, 0, 27)) +>id : Symbol(id, Decl(contextualTyping6.ts, 0, 35)) + diff --git a/tests/baselines/reference/contextualTyping6.types b/tests/baselines/reference/contextualTyping6.types index 1ea1273708da7..b79811a948a2e 100644 --- a/tests/baselines/reference/contextualTyping6.types +++ b/tests/baselines/reference/contextualTyping6.types @@ -1,12 +1,12 @@ === tests/cases/compiler/contextualTyping6.ts === var foo:{id:number;}[] = [{id:1}, {id:2}]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping6.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping6.ts, 0, 9)) +>foo : { id: number; }[] +>id : number >[{id:1}, {id:2}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping6.ts, 0, 27)) +>id : number >1 : number >{id:2} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping6.ts, 0, 35)) +>id : number >2 : number diff --git a/tests/baselines/reference/contextualTyping7.symbols b/tests/baselines/reference/contextualTyping7.symbols new file mode 100644 index 0000000000000..679c1945f338a --- /dev/null +++ b/tests/baselines/reference/contextualTyping7.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping7.ts === +var foo:{id:number;}[] = [<{id:number;}>({})]; +>foo : Symbol(foo, Decl(contextualTyping7.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping7.ts, 0, 9)) +>id : Symbol(id, Decl(contextualTyping7.ts, 0, 28)) + diff --git a/tests/baselines/reference/contextualTyping7.types b/tests/baselines/reference/contextualTyping7.types index be437f2a410f7..3b239417e2e02 100644 --- a/tests/baselines/reference/contextualTyping7.types +++ b/tests/baselines/reference/contextualTyping7.types @@ -1,10 +1,10 @@ === tests/cases/compiler/contextualTyping7.ts === var foo:{id:number;}[] = [<{id:number;}>({})]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping7.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping7.ts, 0, 9)) +>foo : { id: number; }[] +>id : number >[<{id:number;}>({})] : { id: number; }[] ><{id:number;}>({}) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping7.ts, 0, 28)) +>id : number >({}) : {} >{} : {} diff --git a/tests/baselines/reference/contextualTyping8.symbols b/tests/baselines/reference/contextualTyping8.symbols new file mode 100644 index 0000000000000..7dadb937ea1e2 --- /dev/null +++ b/tests/baselines/reference/contextualTyping8.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/contextualTyping8.ts === +var foo:{id:number;}[] = [<{id:number;}>({})]; +>foo : Symbol(foo, Decl(contextualTyping8.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping8.ts, 0, 9)) +>id : Symbol(id, Decl(contextualTyping8.ts, 0, 28)) + diff --git a/tests/baselines/reference/contextualTyping8.types b/tests/baselines/reference/contextualTyping8.types index 6d18a587e1859..17ba999524cd7 100644 --- a/tests/baselines/reference/contextualTyping8.types +++ b/tests/baselines/reference/contextualTyping8.types @@ -1,10 +1,10 @@ === tests/cases/compiler/contextualTyping8.ts === var foo:{id:number;}[] = [<{id:number;}>({})]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping8.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping8.ts, 0, 9)) +>foo : { id: number; }[] +>id : number >[<{id:number;}>({})] : { id: number; }[] ><{id:number;}>({}) : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping8.ts, 0, 28)) +>id : number >({}) : {} >{} : {} diff --git a/tests/baselines/reference/contextualTyping9.symbols b/tests/baselines/reference/contextualTyping9.symbols new file mode 100644 index 0000000000000..f9ef2220c2013 --- /dev/null +++ b/tests/baselines/reference/contextualTyping9.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/contextualTyping9.ts === +var foo:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; +>foo : Symbol(foo, Decl(contextualTyping9.ts, 0, 3)) +>id : Symbol(id, Decl(contextualTyping9.ts, 0, 9)) +>id : Symbol(id, Decl(contextualTyping9.ts, 0, 27)) +>id : Symbol(id, Decl(contextualTyping9.ts, 0, 35)) +>name : Symbol(name, Decl(contextualTyping9.ts, 0, 40)) + diff --git a/tests/baselines/reference/contextualTyping9.types b/tests/baselines/reference/contextualTyping9.types index 5262469991150..46480d64b3030 100644 --- a/tests/baselines/reference/contextualTyping9.types +++ b/tests/baselines/reference/contextualTyping9.types @@ -1,14 +1,14 @@ === tests/cases/compiler/contextualTyping9.ts === var foo:{id:number;}[] = [{id:1}, {id:2, name:"foo"}]; ->foo : { id: number; }[], Symbol(foo, Decl(contextualTyping9.ts, 0, 3)) ->id : number, Symbol(id, Decl(contextualTyping9.ts, 0, 9)) +>foo : { id: number; }[] +>id : number >[{id:1}, {id:2, name:"foo"}] : { id: number; }[] >{id:1} : { id: number; } ->id : number, Symbol(id, Decl(contextualTyping9.ts, 0, 27)) +>id : number >1 : number >{id:2, name:"foo"} : { id: number; name: string; } ->id : number, Symbol(id, Decl(contextualTyping9.ts, 0, 35)) +>id : number >2 : number ->name : string, Symbol(name, Decl(contextualTyping9.ts, 0, 40)) +>name : string >"foo" : string diff --git a/tests/baselines/reference/contextualTypingArrayOfLambdas.symbols b/tests/baselines/reference/contextualTypingArrayOfLambdas.symbols new file mode 100644 index 0000000000000..79355e0a7c633 --- /dev/null +++ b/tests/baselines/reference/contextualTypingArrayOfLambdas.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/contextualTypingArrayOfLambdas.ts === +class A { +>A : Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(contextualTypingArrayOfLambdas.ts, 0, 9)) +} + +class B extends A { +>B : Symbol(B, Decl(contextualTypingArrayOfLambdas.ts, 2, 1)) +>A : Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) + + bar: string; +>bar : Symbol(bar, Decl(contextualTypingArrayOfLambdas.ts, 4, 19)) +} + +class C extends A { +>C : Symbol(C, Decl(contextualTypingArrayOfLambdas.ts, 6, 1)) +>A : Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) + + baz: string; +>baz : Symbol(baz, Decl(contextualTypingArrayOfLambdas.ts, 8, 19)) +} + +var xs = [(x: A) => { }, (x: B) => { }, (x: C) => { }]; +>xs : Symbol(xs, Decl(contextualTypingArrayOfLambdas.ts, 12, 3)) +>x : Symbol(x, Decl(contextualTypingArrayOfLambdas.ts, 12, 11)) +>A : Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) +>x : Symbol(x, Decl(contextualTypingArrayOfLambdas.ts, 12, 26)) +>B : Symbol(B, Decl(contextualTypingArrayOfLambdas.ts, 2, 1)) +>x : Symbol(x, Decl(contextualTypingArrayOfLambdas.ts, 12, 41)) +>C : Symbol(C, Decl(contextualTypingArrayOfLambdas.ts, 6, 1)) + diff --git a/tests/baselines/reference/contextualTypingArrayOfLambdas.types b/tests/baselines/reference/contextualTypingArrayOfLambdas.types index 9c6b4b085172b..d3e5b9942e37a 100644 --- a/tests/baselines/reference/contextualTypingArrayOfLambdas.types +++ b/tests/baselines/reference/contextualTypingArrayOfLambdas.types @@ -1,37 +1,37 @@ === tests/cases/compiler/contextualTypingArrayOfLambdas.ts === class A { ->A : A, Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(contextualTypingArrayOfLambdas.ts, 0, 9)) +>foo : string } class B extends A { ->B : B, Symbol(B, Decl(contextualTypingArrayOfLambdas.ts, 2, 1)) ->A : A, Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) +>B : B +>A : A bar: string; ->bar : string, Symbol(bar, Decl(contextualTypingArrayOfLambdas.ts, 4, 19)) +>bar : string } class C extends A { ->C : C, Symbol(C, Decl(contextualTypingArrayOfLambdas.ts, 6, 1)) ->A : A, Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) +>C : C +>A : A baz: string; ->baz : string, Symbol(baz, Decl(contextualTypingArrayOfLambdas.ts, 8, 19)) +>baz : string } var xs = [(x: A) => { }, (x: B) => { }, (x: C) => { }]; ->xs : ((x: A) => void)[], Symbol(xs, Decl(contextualTypingArrayOfLambdas.ts, 12, 3)) +>xs : ((x: A) => void)[] >[(x: A) => { }, (x: B) => { }, (x: C) => { }] : ((x: A) => void)[] >(x: A) => { } : (x: A) => void ->x : A, Symbol(x, Decl(contextualTypingArrayOfLambdas.ts, 12, 11)) ->A : A, Symbol(A, Decl(contextualTypingArrayOfLambdas.ts, 0, 0)) +>x : A +>A : A >(x: B) => { } : (x: B) => void ->x : B, Symbol(x, Decl(contextualTypingArrayOfLambdas.ts, 12, 26)) ->B : B, Symbol(B, Decl(contextualTypingArrayOfLambdas.ts, 2, 1)) +>x : B +>B : B >(x: C) => { } : (x: C) => void ->x : C, Symbol(x, Decl(contextualTypingArrayOfLambdas.ts, 12, 41)) ->C : C, Symbol(C, Decl(contextualTypingArrayOfLambdas.ts, 6, 1)) +>x : C +>C : C diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression.symbols b/tests/baselines/reference/contextualTypingOfConditionalExpression.symbols new file mode 100644 index 0000000000000..56c3abe0627d9 --- /dev/null +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/contextualTypingOfConditionalExpression.ts === +var x: (a: number) => void = true ? (a) => a.toExponential() : (b) => b.toFixed(); +>x : Symbol(x, Decl(contextualTypingOfConditionalExpression.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 0, 8)) +>a : Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 0, 37)) +>a.toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>a : Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 0, 37)) +>toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>b : Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 0, 64)) +>b.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>b : Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 0, 64)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + +class A { +>A : Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) + + foo: number; +>foo : Symbol(foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +} +class B extends A { +>B : Symbol(B, Decl(contextualTypingOfConditionalExpression.ts, 4, 1)) +>A : Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) + + bar: number; +>bar : Symbol(bar, Decl(contextualTypingOfConditionalExpression.ts, 5, 19)) +} +class C extends A { +>C : Symbol(C, Decl(contextualTypingOfConditionalExpression.ts, 7, 1)) +>A : Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) + + baz: number; +>baz : Symbol(baz, Decl(contextualTypingOfConditionalExpression.ts, 8, 19)) +} + +var x2: (a: A) => void = true ? (a) => a.foo : (b) => b.foo; +>x2 : Symbol(x2, Decl(contextualTypingOfConditionalExpression.ts, 12, 3)) +>a : Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 12, 9)) +>A : Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) +>a : Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 12, 33)) +>a.foo : Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +>a : Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 12, 33)) +>foo : Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +>b : Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 12, 48)) +>b.foo : Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +>b : Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 12, 48)) +>foo : Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) + diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression.types b/tests/baselines/reference/contextualTypingOfConditionalExpression.types index 897338f288648..a2e29a0e66b4f 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression.types +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression.types @@ -1,57 +1,57 @@ === tests/cases/compiler/contextualTypingOfConditionalExpression.ts === var x: (a: number) => void = true ? (a) => a.toExponential() : (b) => b.toFixed(); ->x : (a: number) => void, Symbol(x, Decl(contextualTypingOfConditionalExpression.ts, 0, 3)) ->a : number, Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 0, 8)) +>x : (a: number) => void +>a : number >true ? (a) => a.toExponential() : (b) => b.toFixed() : (a: number) => string >true : boolean >(a) => a.toExponential() : (a: number) => string ->a : number, Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 0, 37)) +>a : number >a.toExponential() : string ->a.toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) ->a : number, Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 0, 37)) ->toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>a.toExponential : (fractionDigits?: number) => string +>a : number +>toExponential : (fractionDigits?: number) => string >(b) => b.toFixed() : (b: number) => string ->b : number, Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 0, 64)) +>b : number >b.toFixed() : string ->b.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->b : number, Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 0, 64)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>b.toFixed : (fractionDigits?: number) => string +>b : number +>toFixed : (fractionDigits?: number) => string class A { ->A : A, Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) +>A : A foo: number; ->foo : number, Symbol(foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +>foo : number } class B extends A { ->B : B, Symbol(B, Decl(contextualTypingOfConditionalExpression.ts, 4, 1)) ->A : A, Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) +>B : B +>A : A bar: number; ->bar : number, Symbol(bar, Decl(contextualTypingOfConditionalExpression.ts, 5, 19)) +>bar : number } class C extends A { ->C : C, Symbol(C, Decl(contextualTypingOfConditionalExpression.ts, 7, 1)) ->A : A, Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) +>C : C +>A : A baz: number; ->baz : number, Symbol(baz, Decl(contextualTypingOfConditionalExpression.ts, 8, 19)) +>baz : number } var x2: (a: A) => void = true ? (a) => a.foo : (b) => b.foo; ->x2 : (a: A) => void, Symbol(x2, Decl(contextualTypingOfConditionalExpression.ts, 12, 3)) ->a : A, Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 12, 9)) ->A : A, Symbol(A, Decl(contextualTypingOfConditionalExpression.ts, 0, 82)) +>x2 : (a: A) => void +>a : A +>A : A >true ? (a) => a.foo : (b) => b.foo : (a: A) => number >true : boolean >(a) => a.foo : (a: A) => number ->a : A, Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 12, 33)) ->a.foo : number, Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) ->a : A, Symbol(a, Decl(contextualTypingOfConditionalExpression.ts, 12, 33)) ->foo : number, Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +>a : A +>a.foo : number +>a : A +>foo : number >(b) => b.foo : (b: A) => number ->b : A, Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 12, 48)) ->b.foo : number, Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) ->b : A, Symbol(b, Decl(contextualTypingOfConditionalExpression.ts, 12, 48)) ->foo : number, Symbol(A.foo, Decl(contextualTypingOfConditionalExpression.ts, 2, 9)) +>b : A +>b.foo : number +>b : A +>foo : number diff --git a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.symbols b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.symbols new file mode 100644 index 0000000000000..3a0c8e5db97a4 --- /dev/null +++ b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/contextualTypingOfLambdaWithMultipleSignatures.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 0)) + + getFoo(n: number): void; +>getFoo : Symbol(getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) +>n : Symbol(n, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 11)) + + getFoo(s: string): void; +>getFoo : Symbol(getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) +>s : Symbol(s, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 2, 11)) +} + +var foo: Foo; +>foo : Symbol(foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 5, 3)) +>Foo : Symbol(Foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 0)) + +foo.getFoo = bar => { }; +>foo.getFoo : Symbol(Foo.getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) +>foo : Symbol(foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 5, 3)) +>getFoo : Symbol(Foo.getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) +>bar : Symbol(bar, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 6, 12)) + diff --git a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.types b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.types index 6aabbc4e20646..485c7159b77fa 100644 --- a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.types +++ b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.types @@ -1,25 +1,25 @@ === tests/cases/compiler/contextualTypingOfLambdaWithMultipleSignatures.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 0)) +>Foo : Foo getFoo(n: number): void; ->getFoo : { (n: number): void; (s: string): void; }, Symbol(getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) ->n : number, Symbol(n, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 11)) +>getFoo : { (n: number): void; (s: string): void; } +>n : number getFoo(s: string): void; ->getFoo : { (n: number): void; (s: string): void; }, Symbol(getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) ->s : string, Symbol(s, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 2, 11)) +>getFoo : { (n: number): void; (s: string): void; } +>s : string } var foo: Foo; ->foo : Foo, Symbol(foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 5, 3)) ->Foo : Foo, Symbol(Foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 0)) +>foo : Foo +>Foo : Foo foo.getFoo = bar => { }; >foo.getFoo = bar => { } : (bar: any) => void ->foo.getFoo : { (n: number): void; (s: string): void; }, Symbol(Foo.getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) ->foo : Foo, Symbol(foo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 5, 3)) ->getFoo : { (n: number): void; (s: string): void; }, Symbol(Foo.getFoo, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 0, 15), Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 1, 28)) +>foo.getFoo : { (n: number): void; (s: string): void; } +>foo : Foo +>getFoo : { (n: number): void; (s: string): void; } >bar => { } : (bar: any) => void ->bar : any, Symbol(bar, Decl(contextualTypingOfLambdaWithMultipleSignatures.ts, 6, 12)) +>bar : any diff --git a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.symbols b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.symbols new file mode 100644 index 0000000000000..f44d33e1ba8ea --- /dev/null +++ b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/contextualTypingOfLambdaWithMultipleSignatures2.ts === +var f: { +>f : Symbol(f, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 0, 3)) + + (x: string): string; +>x : Symbol(x, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 1, 5)) + + (x: number): string +>x : Symbol(x, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 2, 5)) + +}; + +f = (a) => { return a.asdf } +>f : Symbol(f, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 0, 3)) +>a : Symbol(a, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 5, 5)) +>a : Symbol(a, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 5, 5)) + diff --git a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.types b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.types index 58179c6285cb0..1b7f328b5f1c6 100644 --- a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.types +++ b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures2.types @@ -1,21 +1,21 @@ === tests/cases/compiler/contextualTypingOfLambdaWithMultipleSignatures2.ts === var f: { ->f : { (x: string): string; (x: number): string; }, Symbol(f, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 0, 3)) +>f : { (x: string): string; (x: number): string; } (x: string): string; ->x : string, Symbol(x, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 1, 5)) +>x : string (x: number): string ->x : number, Symbol(x, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 2, 5)) +>x : number }; f = (a) => { return a.asdf } >f = (a) => { return a.asdf } : (a: any) => any ->f : { (x: string): string; (x: number): string; }, Symbol(f, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 0, 3)) +>f : { (x: string): string; (x: number): string; } >(a) => { return a.asdf } : (a: any) => any ->a : any, Symbol(a, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 5, 5)) +>a : any >a.asdf : any ->a : any, Symbol(a, Decl(contextualTypingOfLambdaWithMultipleSignatures2.ts, 5, 5)) +>a : any >asdf : any diff --git a/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.symbols b/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.symbols new file mode 100644 index 0000000000000..62870f575c7b0 --- /dev/null +++ b/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/contextualTypingTwoInstancesOfSameTypeParameter.ts === +function f6(x: (a: T) => T) { +>f6 : Symbol(f6, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 12)) +>x : Symbol(x, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 15)) +>a : Symbol(a, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 19)) +>T : Symbol(T, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 12)) +>T : Symbol(T, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 12)) + + return null; +} +f6(x => f6(y => x = y)); +>f6 : Symbol(f6, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 0)) +>x : Symbol(x, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 3)) +>f6 : Symbol(f6, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 0)) +>y : Symbol(y, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 11)) +>x : Symbol(x, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 3)) +>y : Symbol(y, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 11)) + diff --git a/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types b/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types index dc91be824a4a9..264735a995a6e 100644 --- a/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types +++ b/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types @@ -1,25 +1,25 @@ === tests/cases/compiler/contextualTypingTwoInstancesOfSameTypeParameter.ts === function f6(x: (a: T) => T) { ->f6 : (x: (a: T) => T) => any, Symbol(f6, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 12)) ->x : (a: T) => T, Symbol(x, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 15)) ->a : T, Symbol(a, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 19)) ->T : T, Symbol(T, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 12)) ->T : T, Symbol(T, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 12)) +>f6 : (x: (a: T) => T) => any +>T : T +>x : (a: T) => T +>a : T +>T : T +>T : T return null; >null : null } f6(x => f6(y => x = y)); >f6(x => f6(y => x = y)) : any ->f6 : (x: (a: T) => T) => any, Symbol(f6, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 0)) +>f6 : (x: (a: T) => T) => any >x => f6(y => x = y) : (x: {}) => any ->x : {}, Symbol(x, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 3)) +>x : {} >f6(y => x = y) : any ->f6 : (x: (a: T) => T) => any, Symbol(f6, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 0, 0)) +>f6 : (x: (a: T) => T) => any >y => x = y : (y: {}) => {} ->y : {}, Symbol(y, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 11)) +>y : {} >x = y : {} ->x : {}, Symbol(x, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 3)) ->y : {}, Symbol(y, Decl(contextualTypingTwoInstancesOfSameTypeParameter.ts, 3, 11)) +>x : {} +>y : {} diff --git a/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.symbols b/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.symbols new file mode 100644 index 0000000000000..d7ba6f0ddc376 --- /dev/null +++ b/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.symbols @@ -0,0 +1,51 @@ +=== tests/cases/compiler/contextualTypingWithGenericAndNonGenericSignature.ts === +//• If e is a FunctionExpression or ArrowFunctionExpression with no type parameters and no parameter or return type annotations, and T is a function type with EXACTLY ONE non - generic call signature, then any inferences made for type parameters referenced by the parameters of T’s call signature are fixed(section 4.12.2) and e is processed with the contextual type T, as described in section 4.9.3. + +var f2: { +>f2 : Symbol(f2, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 2, 3)) + + (x: string, y: number): string; +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 3, 5)) +>y : Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 3, 15)) + + (x: T, y: U): T +>T : Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 5)) +>U : Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 7)) +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 11)) +>T : Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 5)) +>y : Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 16)) +>U : Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 7)) +>T : Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 5)) + +}; + +f2 = (x, y) => { return x } +>f2 : Symbol(f2, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 2, 3)) +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 7, 6)) +>y : Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 7, 8)) +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 7, 6)) + +var f3: { +>f3 : Symbol(f3, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 9, 3)) + + (x: T, y: U): T +>T : Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 5)) +>U : Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 7)) +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 11)) +>T : Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 5)) +>y : Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 16)) +>U : Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 7)) +>T : Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 5)) + + (x: string, y: number): string; +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 11, 5)) +>y : Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 11, 15)) + +}; + +f3 = (x, y) => { return x } +>f3 : Symbol(f3, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 9, 3)) +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 14, 6)) +>y : Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 14, 8)) +>x : Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 14, 6)) + diff --git a/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types b/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types index 2535bbb999227..ca6c5b35f3d0e 100644 --- a/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types +++ b/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types @@ -2,54 +2,54 @@ //• If e is a FunctionExpression or ArrowFunctionExpression with no type parameters and no parameter or return type annotations, and T is a function type with EXACTLY ONE non - generic call signature, then any inferences made for type parameters referenced by the parameters of T’s call signature are fixed(section 4.12.2) and e is processed with the contextual type T, as described in section 4.9.3. var f2: { ->f2 : { (x: string, y: number): string; (x: T, y: U): T; }, Symbol(f2, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 2, 3)) +>f2 : { (x: string, y: number): string; (x: T, y: U): T; } (x: string, y: number): string; ->x : string, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 3, 5)) ->y : number, Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 3, 15)) +>x : string +>y : number (x: T, y: U): T ->T : T, Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 5)) ->U : U, Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 7)) ->x : T, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 11)) ->T : T, Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 5)) ->y : U, Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 16)) ->U : U, Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 7)) ->T : T, Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 4, 5)) +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T }; f2 = (x, y) => { return x } >f2 = (x, y) => { return x } : (x: any, y: any) => any ->f2 : { (x: string, y: number): string; (x: T, y: U): T; }, Symbol(f2, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 2, 3)) +>f2 : { (x: string, y: number): string; (x: T, y: U): T; } >(x, y) => { return x } : (x: any, y: any) => any ->x : any, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 7, 6)) ->y : any, Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 7, 8)) ->x : any, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 7, 6)) +>x : any +>y : any +>x : any var f3: { ->f3 : { (x: T, y: U): T; (x: string, y: number): string; }, Symbol(f3, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 9, 3)) +>f3 : { (x: T, y: U): T; (x: string, y: number): string; } (x: T, y: U): T ->T : T, Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 5)) ->U : U, Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 7)) ->x : T, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 11)) ->T : T, Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 5)) ->y : U, Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 16)) ->U : U, Symbol(U, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 7)) ->T : T, Symbol(T, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 10, 5)) +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T (x: string, y: number): string; ->x : string, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 11, 5)) ->y : number, Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 11, 15)) +>x : string +>y : number }; f3 = (x, y) => { return x } >f3 = (x, y) => { return x } : (x: any, y: any) => any ->f3 : { (x: T, y: U): T; (x: string, y: number): string; }, Symbol(f3, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 9, 3)) +>f3 : { (x: T, y: U): T; (x: string, y: number): string; } >(x, y) => { return x } : (x: any, y: any) => any ->x : any, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 14, 6)) ->y : any, Symbol(y, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 14, 8)) ->x : any, Symbol(x, Decl(contextualTypingWithGenericAndNonGenericSignature.ts, 14, 6)) +>x : any +>y : any +>x : any diff --git a/tests/baselines/reference/contextualTypingWithGenericSignature.symbols b/tests/baselines/reference/contextualTypingWithGenericSignature.symbols new file mode 100644 index 0000000000000..c416a5ca19fda --- /dev/null +++ b/tests/baselines/reference/contextualTypingWithGenericSignature.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/contextualTypingWithGenericSignature.ts === +// If e is a FunctionExpression or ArrowFunctionExpression with no type parameters and no parameter or return type annotations, and T is a function type with EXACTLY ONE non - generic call signature, then any inferences made for type parameters referenced by the parameters of T’s call signature are fixed(section 4.12.2) and e is processed with the contextual type T, as described in section 4.9.3. + +var f2: { +>f2 : Symbol(f2, Decl(contextualTypingWithGenericSignature.ts, 2, 3)) + + (x: T, y: U): T +>T : Symbol(T, Decl(contextualTypingWithGenericSignature.ts, 3, 5)) +>U : Symbol(U, Decl(contextualTypingWithGenericSignature.ts, 3, 7)) +>x : Symbol(x, Decl(contextualTypingWithGenericSignature.ts, 3, 11)) +>T : Symbol(T, Decl(contextualTypingWithGenericSignature.ts, 3, 5)) +>y : Symbol(y, Decl(contextualTypingWithGenericSignature.ts, 3, 16)) +>U : Symbol(U, Decl(contextualTypingWithGenericSignature.ts, 3, 7)) +>T : Symbol(T, Decl(contextualTypingWithGenericSignature.ts, 3, 5)) + +}; + +f2 = (x, y) => { return x } +>f2 : Symbol(f2, Decl(contextualTypingWithGenericSignature.ts, 2, 3)) +>x : Symbol(x, Decl(contextualTypingWithGenericSignature.ts, 6, 6)) +>y : Symbol(y, Decl(contextualTypingWithGenericSignature.ts, 6, 8)) +>x : Symbol(x, Decl(contextualTypingWithGenericSignature.ts, 6, 6)) + diff --git a/tests/baselines/reference/contextualTypingWithGenericSignature.types b/tests/baselines/reference/contextualTypingWithGenericSignature.types index 78e630576e57a..68c5f3c422d72 100644 --- a/tests/baselines/reference/contextualTypingWithGenericSignature.types +++ b/tests/baselines/reference/contextualTypingWithGenericSignature.types @@ -2,24 +2,24 @@ // If e is a FunctionExpression or ArrowFunctionExpression with no type parameters and no parameter or return type annotations, and T is a function type with EXACTLY ONE non - generic call signature, then any inferences made for type parameters referenced by the parameters of T’s call signature are fixed(section 4.12.2) and e is processed with the contextual type T, as described in section 4.9.3. var f2: { ->f2 : (x: T, y: U) => T, Symbol(f2, Decl(contextualTypingWithGenericSignature.ts, 2, 3)) +>f2 : (x: T, y: U) => T (x: T, y: U): T ->T : T, Symbol(T, Decl(contextualTypingWithGenericSignature.ts, 3, 5)) ->U : U, Symbol(U, Decl(contextualTypingWithGenericSignature.ts, 3, 7)) ->x : T, Symbol(x, Decl(contextualTypingWithGenericSignature.ts, 3, 11)) ->T : T, Symbol(T, Decl(contextualTypingWithGenericSignature.ts, 3, 5)) ->y : U, Symbol(y, Decl(contextualTypingWithGenericSignature.ts, 3, 16)) ->U : U, Symbol(U, Decl(contextualTypingWithGenericSignature.ts, 3, 7)) ->T : T, Symbol(T, Decl(contextualTypingWithGenericSignature.ts, 3, 5)) +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T }; f2 = (x, y) => { return x } >f2 = (x, y) => { return x } : (x: any, y: any) => any ->f2 : (x: T, y: U) => T, Symbol(f2, Decl(contextualTypingWithGenericSignature.ts, 2, 3)) +>f2 : (x: T, y: U) => T >(x, y) => { return x } : (x: any, y: any) => any ->x : any, Symbol(x, Decl(contextualTypingWithGenericSignature.ts, 6, 6)) ->y : any, Symbol(y, Decl(contextualTypingWithGenericSignature.ts, 6, 8)) ->x : any, Symbol(x, Decl(contextualTypingWithGenericSignature.ts, 6, 6)) +>x : any +>y : any +>x : any diff --git a/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.symbols b/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.symbols new file mode 100644 index 0000000000000..810f407e1b22f --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/expressions/functions/contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts === +declare function foo(x: (y: string) => (y2: number) => void); +>foo : Symbol(foo, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 0)) +>x : Symbol(x, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 21)) +>y : Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 25)) +>y2 : Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 40)) + +// Contextually type the parameter even if there is a return annotation +foo((y): (y2: number) => void => { +>foo : Symbol(foo, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 0)) +>y : Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 3, 5)) +>y2 : Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 3, 10)) + + var z = y.charAt(0); // Should be string +>z : Symbol(z, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 4, 7)) +>y.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>y : Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 3, 5)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + + return null; +}); + +foo((y: string) => { +>foo : Symbol(foo, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 0)) +>y : Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 8, 5)) + + return y2 => { +>y2 : Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 9, 10)) + + var z = y2.toFixed(); // Should be string +>z : Symbol(z, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 10, 11)) +>y2.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>y2 : Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 9, 10)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + + return 0; + }; +}); diff --git a/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.types b/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.types index 6b3c51ff1825a..94b184f65da25 100644 --- a/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.types +++ b/tests/baselines/reference/contextuallyTypedFunctionExpressionsAndReturnAnnotations.types @@ -1,24 +1,24 @@ === tests/cases/conformance/expressions/functions/contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts === declare function foo(x: (y: string) => (y2: number) => void); ->foo : (x: (y: string) => (y2: number) => void) => any, Symbol(foo, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 0)) ->x : (y: string) => (y2: number) => void, Symbol(x, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 21)) ->y : string, Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 25)) ->y2 : number, Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 40)) +>foo : (x: (y: string) => (y2: number) => void) => any +>x : (y: string) => (y2: number) => void +>y : string +>y2 : number // Contextually type the parameter even if there is a return annotation foo((y): (y2: number) => void => { >foo((y): (y2: number) => void => { var z = y.charAt(0); // Should be string return null;}) : any ->foo : (x: (y: string) => (y2: number) => void) => any, Symbol(foo, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 0)) +>foo : (x: (y: string) => (y2: number) => void) => any >(y): (y2: number) => void => { var z = y.charAt(0); // Should be string return null;} : (y: string) => (y2: number) => void ->y : string, Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 3, 5)) ->y2 : number, Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 3, 10)) +>y : string +>y2 : number var z = y.charAt(0); // Should be string ->z : string, Symbol(z, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 4, 7)) +>z : string >y.charAt(0) : string ->y.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->y : string, Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 3, 5)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>y.charAt : (pos: number) => string +>y : string +>charAt : (pos: number) => string >0 : number return null; @@ -28,20 +28,20 @@ foo((y): (y2: number) => void => { foo((y: string) => { >foo((y: string) => { return y2 => { var z = y2.toFixed(); // Should be string return 0; };}) : any ->foo : (x: (y: string) => (y2: number) => void) => any, Symbol(foo, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 0, 0)) +>foo : (x: (y: string) => (y2: number) => void) => any >(y: string) => { return y2 => { var z = y2.toFixed(); // Should be string return 0; };} : (y: string) => (y2: number) => number ->y : string, Symbol(y, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 8, 5)) +>y : string return y2 => { >y2 => { var z = y2.toFixed(); // Should be string return 0; } : (y2: number) => number ->y2 : number, Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 9, 10)) +>y2 : number var z = y2.toFixed(); // Should be string ->z : string, Symbol(z, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 10, 11)) +>z : string >y2.toFixed() : string ->y2.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->y2 : number, Symbol(y2, Decl(contextuallyTypedFunctionExpressionsAndReturnAnnotations.ts, 9, 10)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>y2.toFixed : (fractionDigits?: number) => string +>y2 : number +>toFixed : (fractionDigits?: number) => string return 0; >0 : number diff --git a/tests/baselines/reference/contextuallyTypingOrOperator.symbols b/tests/baselines/reference/contextuallyTypingOrOperator.symbols new file mode 100644 index 0000000000000..18019aea7cb3e --- /dev/null +++ b/tests/baselines/reference/contextuallyTypingOrOperator.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/contextuallyTypingOrOperator.ts === +var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; +>v : Symbol(v, Decl(contextuallyTypingOrOperator.ts, 0, 3)) +>a : Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 8)) +>_ : Symbol(_, Decl(contextuallyTypingOrOperator.ts, 0, 13)) +>a : Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 39)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 42)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 42)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 63)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 66)) + +var v2 = (s: string) => s.length || function (s) { s.length }; +>v2 : Symbol(v2, Decl(contextuallyTypingOrOperator.ts, 2, 3)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 10)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 10)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 46)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 46)) + +var v3 = (s: string) => s.length || function (s: number) { return 1 }; +>v3 : Symbol(v3, Decl(contextuallyTypingOrOperator.ts, 4, 3)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 10)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 10)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 46)) + +var v4 = (s: number) => 1 || function (s: string) { return s.length }; +>v4 : Symbol(v4, Decl(contextuallyTypingOrOperator.ts, 5, 3)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 10)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 39)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 39)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + diff --git a/tests/baselines/reference/contextuallyTypingOrOperator.types b/tests/baselines/reference/contextuallyTypingOrOperator.types index b3cc5dd4e6550..676ad04bfa97f 100644 --- a/tests/baselines/reference/contextuallyTypingOrOperator.types +++ b/tests/baselines/reference/contextuallyTypingOrOperator.types @@ -1,57 +1,57 @@ === tests/cases/compiler/contextuallyTypingOrOperator.ts === var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; ->v : { a: (_: string) => number; }, Symbol(v, Decl(contextuallyTypingOrOperator.ts, 0, 3)) ->a : (_: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 8)) ->_ : string, Symbol(_, Decl(contextuallyTypingOrOperator.ts, 0, 13)) +>v : { a: (_: string) => number; } +>a : (_: string) => number +>_ : string >{ a: s => s.length } || { a: s => 1 } : { a: (s: string) => number; } >{ a: s => s.length } : { a: (s: string) => number; } ->a : (s: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 39)) +>a : (s: string) => number >s => s.length : (s: string) => number ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 42)) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 42)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : string +>s.length : number +>s : string +>length : number >{ a: s => 1 } : { a: (s: string) => number; } ->a : (s: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 63)) +>a : (s: string) => number >s => 1 : (s: string) => number ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 66)) +>s : string >1 : number var v2 = (s: string) => s.length || function (s) { s.length }; ->v2 : (s: string) => number | ((s: any) => void), Symbol(v2, Decl(contextuallyTypingOrOperator.ts, 2, 3)) +>v2 : (s: string) => number | ((s: any) => void) >(s: string) => s.length || function (s) { s.length } : (s: string) => number | ((s: any) => void) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 10)) +>s : string >s.length || function (s) { s.length } : number | ((s: any) => void) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 10)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s.length : number +>s : string +>length : number >function (s) { s.length } : (s: any) => void ->s : any, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 46)) +>s : any >s.length : any ->s : any, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 46)) +>s : any >length : any var v3 = (s: string) => s.length || function (s: number) { return 1 }; ->v3 : (s: string) => number | ((s: number) => number), Symbol(v3, Decl(contextuallyTypingOrOperator.ts, 4, 3)) +>v3 : (s: string) => number | ((s: number) => number) >(s: string) => s.length || function (s: number) { return 1 } : (s: string) => number | ((s: number) => number) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 10)) +>s : string >s.length || function (s: number) { return 1 } : number | ((s: number) => number) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 10)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s.length : number +>s : string +>length : number >function (s: number) { return 1 } : (s: number) => number ->s : number, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 46)) +>s : number >1 : number var v4 = (s: number) => 1 || function (s: string) { return s.length }; ->v4 : (s: number) => number | ((s: string) => number), Symbol(v4, Decl(contextuallyTypingOrOperator.ts, 5, 3)) +>v4 : (s: number) => number | ((s: string) => number) >(s: number) => 1 || function (s: string) { return s.length } : (s: number) => number | ((s: string) => number) ->s : number, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 10)) +>s : number >1 || function (s: string) { return s.length } : number | ((s: string) => number) >1 : number >function (s: string) { return s.length } : (s: string) => number ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 39)) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 39)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : string +>s.length : number +>s : string +>length : number diff --git a/tests/baselines/reference/contextuallyTypingOrOperator2.symbols b/tests/baselines/reference/contextuallyTypingOrOperator2.symbols new file mode 100644 index 0000000000000..99e328fd64a44 --- /dev/null +++ b/tests/baselines/reference/contextuallyTypingOrOperator2.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/contextuallyTypingOrOperator2.ts === +var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; +>v : Symbol(v, Decl(contextuallyTypingOrOperator2.ts, 0, 3)) +>a : Symbol(a, Decl(contextuallyTypingOrOperator2.ts, 0, 8)) +>_ : Symbol(_, Decl(contextuallyTypingOrOperator2.ts, 0, 13)) +>a : Symbol(a, Decl(contextuallyTypingOrOperator2.ts, 0, 39)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 0, 42)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 0, 42)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(contextuallyTypingOrOperator2.ts, 0, 63)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 0, 66)) + +var v2 = (s: string) => s.length || function (s) { s.aaa }; +>v2 : Symbol(v2, Decl(contextuallyTypingOrOperator2.ts, 2, 3)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 10)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 10)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 46)) +>s : Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 46)) + diff --git a/tests/baselines/reference/contextuallyTypingOrOperator2.types b/tests/baselines/reference/contextuallyTypingOrOperator2.types index 9305dff87c0ae..2a73ccc9c9d87 100644 --- a/tests/baselines/reference/contextuallyTypingOrOperator2.types +++ b/tests/baselines/reference/contextuallyTypingOrOperator2.types @@ -1,33 +1,33 @@ === tests/cases/compiler/contextuallyTypingOrOperator2.ts === var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; ->v : { a: (_: string) => number; }, Symbol(v, Decl(contextuallyTypingOrOperator2.ts, 0, 3)) ->a : (_: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator2.ts, 0, 8)) ->_ : string, Symbol(_, Decl(contextuallyTypingOrOperator2.ts, 0, 13)) +>v : { a: (_: string) => number; } +>a : (_: string) => number +>_ : string >{ a: s => s.length } || { a: s => 1 } : { a: (s: string) => number; } >{ a: s => s.length } : { a: (s: string) => number; } ->a : (s: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator2.ts, 0, 39)) +>a : (s: string) => number >s => s.length : (s: string) => number ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 0, 42)) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 0, 42)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : string +>s.length : number +>s : string +>length : number >{ a: s => 1 } : { a: (s: string) => number; } ->a : (s: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator2.ts, 0, 63)) +>a : (s: string) => number >s => 1 : (s: string) => number ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 0, 66)) +>s : string >1 : number var v2 = (s: string) => s.length || function (s) { s.aaa }; ->v2 : (s: string) => number | ((s: any) => void), Symbol(v2, Decl(contextuallyTypingOrOperator2.ts, 2, 3)) +>v2 : (s: string) => number | ((s: any) => void) >(s: string) => s.length || function (s) { s.aaa } : (s: string) => number | ((s: any) => void) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 10)) +>s : string >s.length || function (s) { s.aaa } : number | ((s: any) => void) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 10)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s.length : number +>s : string +>length : number >function (s) { s.aaa } : (s: any) => void ->s : any, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 46)) +>s : any >s.aaa : any ->s : any, Symbol(s, Decl(contextuallyTypingOrOperator2.ts, 2, 46)) +>s : any >aaa : any diff --git a/tests/baselines/reference/continueInIterationStatement1.symbols b/tests/baselines/reference/continueInIterationStatement1.symbols new file mode 100644 index 0000000000000..210de69f6bbe7 --- /dev/null +++ b/tests/baselines/reference/continueInIterationStatement1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/continueInIterationStatement1.ts === +while (true) { +No type information for this code. continue; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/continueInIterationStatement2.symbols b/tests/baselines/reference/continueInIterationStatement2.symbols new file mode 100644 index 0000000000000..5cb4b62f39a14 --- /dev/null +++ b/tests/baselines/reference/continueInIterationStatement2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/continueInIterationStatement2.ts === +do { +No type information for this code. continue; +No type information for this code.} +No type information for this code.while (true); +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/continueInIterationStatement3.symbols b/tests/baselines/reference/continueInIterationStatement3.symbols new file mode 100644 index 0000000000000..f4df3a295fbb9 --- /dev/null +++ b/tests/baselines/reference/continueInIterationStatement3.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/continueInIterationStatement3.ts === +for (;;) { +No type information for this code. continue; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/continueLabel.symbols b/tests/baselines/reference/continueLabel.symbols new file mode 100644 index 0000000000000..d6bf335185a42 --- /dev/null +++ b/tests/baselines/reference/continueLabel.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/continueLabel.ts === +label1: for(var i = 0; i < 1; i++) { +>i : Symbol(i, Decl(continueLabel.ts, 0, 15)) +>i : Symbol(i, Decl(continueLabel.ts, 0, 15)) +>i : Symbol(i, Decl(continueLabel.ts, 0, 15)) + + continue label1; +} diff --git a/tests/baselines/reference/continueLabel.types b/tests/baselines/reference/continueLabel.types index 7d0af8e9b062d..a25f331160765 100644 --- a/tests/baselines/reference/continueLabel.types +++ b/tests/baselines/reference/continueLabel.types @@ -1,13 +1,13 @@ === tests/cases/compiler/continueLabel.ts === label1: for(var i = 0; i < 1; i++) { >label1 : any ->i : number, Symbol(i, Decl(continueLabel.ts, 0, 15)) +>i : number >0 : number >i < 1 : boolean ->i : number, Symbol(i, Decl(continueLabel.ts, 0, 15)) +>i : number >1 : number >i++ : number ->i : number, Symbol(i, Decl(continueLabel.ts, 0, 15)) +>i : number continue label1; >label1 : any diff --git a/tests/baselines/reference/continueTarget2.symbols b/tests/baselines/reference/continueTarget2.symbols new file mode 100644 index 0000000000000..16f45c402cdac --- /dev/null +++ b/tests/baselines/reference/continueTarget2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/continueTarget2.ts === +target: +No type information for this code.while (true) { +No type information for this code. continue target; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/continueTarget3.symbols b/tests/baselines/reference/continueTarget3.symbols new file mode 100644 index 0000000000000..a1b930f2f5ac2 --- /dev/null +++ b/tests/baselines/reference/continueTarget3.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/continueTarget3.ts === +target1: +No type information for this code.target2: +No type information for this code.while (true) { +No type information for this code. continue target1; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/continueTarget4.symbols b/tests/baselines/reference/continueTarget4.symbols new file mode 100644 index 0000000000000..ea1989a3e4d22 --- /dev/null +++ b/tests/baselines/reference/continueTarget4.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/continueTarget4.ts === +target1: +No type information for this code.target2: +No type information for this code.while (true) { +No type information for this code. continue target2; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/convertKeywords.symbols b/tests/baselines/reference/convertKeywords.symbols new file mode 100644 index 0000000000000..e2d5668bf1d3a --- /dev/null +++ b/tests/baselines/reference/convertKeywords.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/convertKeywords.ts === +var abstract; +>abstract : Symbol(abstract, Decl(convertKeywords.ts, 0, 3)) + + + diff --git a/tests/baselines/reference/convertKeywords.types b/tests/baselines/reference/convertKeywords.types index 827cdc4c773da..776ef3c4416e1 100644 --- a/tests/baselines/reference/convertKeywords.types +++ b/tests/baselines/reference/convertKeywords.types @@ -1,6 +1,6 @@ === tests/cases/compiler/convertKeywords.ts === var abstract; ->abstract : any, Symbol(abstract, Decl(convertKeywords.ts, 0, 3)) +>abstract : any diff --git a/tests/baselines/reference/covariance1.symbols b/tests/baselines/reference/covariance1.symbols new file mode 100644 index 0000000000000..db055e20bc6e3 --- /dev/null +++ b/tests/baselines/reference/covariance1.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/covariance1.ts === +module M { +>M : Symbol(M, Decl(covariance1.ts, 0, 0)) + + interface X { m1:number; } +>X : Symbol(X, Decl(covariance1.ts, 0, 10)) +>m1 : Symbol(m1, Decl(covariance1.ts, 2, 17)) + + export class XX implements X { constructor(public m1:number) { } } +>XX : Symbol(XX, Decl(covariance1.ts, 2, 30)) +>X : Symbol(X, Decl(covariance1.ts, 0, 10)) +>m1 : Symbol(m1, Decl(covariance1.ts, 3, 47)) + + interface Y { x:X; } +>Y : Symbol(Y, Decl(covariance1.ts, 3, 70)) +>x : Symbol(x, Decl(covariance1.ts, 5, 17)) +>X : Symbol(X, Decl(covariance1.ts, 0, 10)) + + export function f(y:Y) { } +>f : Symbol(f, Decl(covariance1.ts, 5, 24)) +>y : Symbol(y, Decl(covariance1.ts, 7, 22)) +>Y : Symbol(Y, Decl(covariance1.ts, 3, 70)) + + var a:X; +>a : Symbol(a, Decl(covariance1.ts, 9, 7)) +>X : Symbol(X, Decl(covariance1.ts, 0, 10)) + + f({x:a}); // ok +>f : Symbol(f, Decl(covariance1.ts, 5, 24)) +>x : Symbol(x, Decl(covariance1.ts, 10, 7)) +>a : Symbol(a, Decl(covariance1.ts, 9, 7)) + + var b:XX; +>b : Symbol(b, Decl(covariance1.ts, 12, 7)) +>XX : Symbol(XX, Decl(covariance1.ts, 2, 30)) + + f({x:b}); // ok covariant subtype +>f : Symbol(f, Decl(covariance1.ts, 5, 24)) +>x : Symbol(x, Decl(covariance1.ts, 13, 7)) +>b : Symbol(b, Decl(covariance1.ts, 12, 7)) +} + + diff --git a/tests/baselines/reference/covariance1.types b/tests/baselines/reference/covariance1.types index 137e466203206..d9167095d4714 100644 --- a/tests/baselines/reference/covariance1.types +++ b/tests/baselines/reference/covariance1.types @@ -1,47 +1,47 @@ === tests/cases/compiler/covariance1.ts === module M { ->M : typeof M, Symbol(M, Decl(covariance1.ts, 0, 0)) +>M : typeof M interface X { m1:number; } ->X : X, Symbol(X, Decl(covariance1.ts, 0, 10)) ->m1 : number, Symbol(m1, Decl(covariance1.ts, 2, 17)) +>X : X +>m1 : number export class XX implements X { constructor(public m1:number) { } } ->XX : XX, Symbol(XX, Decl(covariance1.ts, 2, 30)) ->X : X, Symbol(X, Decl(covariance1.ts, 0, 10)) ->m1 : number, Symbol(m1, Decl(covariance1.ts, 3, 47)) +>XX : XX +>X : X +>m1 : number interface Y { x:X; } ->Y : Y, Symbol(Y, Decl(covariance1.ts, 3, 70)) ->x : X, Symbol(x, Decl(covariance1.ts, 5, 17)) ->X : X, Symbol(X, Decl(covariance1.ts, 0, 10)) +>Y : Y +>x : X +>X : X export function f(y:Y) { } ->f : (y: Y) => void, Symbol(f, Decl(covariance1.ts, 5, 24)) ->y : Y, Symbol(y, Decl(covariance1.ts, 7, 22)) ->Y : Y, Symbol(Y, Decl(covariance1.ts, 3, 70)) +>f : (y: Y) => void +>y : Y +>Y : Y var a:X; ->a : X, Symbol(a, Decl(covariance1.ts, 9, 7)) ->X : X, Symbol(X, Decl(covariance1.ts, 0, 10)) +>a : X +>X : X f({x:a}); // ok >f({x:a}) : void ->f : (y: Y) => void, Symbol(f, Decl(covariance1.ts, 5, 24)) +>f : (y: Y) => void >{x:a} : { x: X; } ->x : X, Symbol(x, Decl(covariance1.ts, 10, 7)) ->a : X, Symbol(a, Decl(covariance1.ts, 9, 7)) +>x : X +>a : X var b:XX; ->b : XX, Symbol(b, Decl(covariance1.ts, 12, 7)) ->XX : XX, Symbol(XX, Decl(covariance1.ts, 2, 30)) +>b : XX +>XX : XX f({x:b}); // ok covariant subtype >f({x:b}) : void ->f : (y: Y) => void, Symbol(f, Decl(covariance1.ts, 5, 24)) +>f : (y: Y) => void >{x:b} : { x: XX; } ->x : XX, Symbol(x, Decl(covariance1.ts, 13, 7)) ->b : XX, Symbol(b, Decl(covariance1.ts, 12, 7)) +>x : XX +>b : XX } diff --git a/tests/baselines/reference/crashInResolveInterface.symbols b/tests/baselines/reference/crashInResolveInterface.symbols new file mode 100644 index 0000000000000..c10bf0b26a89a --- /dev/null +++ b/tests/baselines/reference/crashInResolveInterface.symbols @@ -0,0 +1,50 @@ +=== tests/cases/compiler/file2.ts === +/// +declare var c: C; +>c : Symbol(c, Decl(file2.ts, 1, 11)) +>C : Symbol(C, Decl(file2.ts, 1, 17), Decl(file2.ts, 4, 1)) + +interface C { +>C : Symbol(C, Decl(file2.ts, 1, 17), Decl(file2.ts, 4, 1)) + + count(countTitle?: string): void; +>count : Symbol(count, Decl(file2.ts, 2, 13)) +>countTitle : Symbol(countTitle, Decl(file2.ts, 3, 10)) +} +interface C { +>C : Symbol(C, Decl(file2.ts, 1, 17), Decl(file2.ts, 4, 1)) + + log(message?: any, ...optionalParams: any[]): void; +>log : Symbol(log, Decl(file2.ts, 5, 13)) +>message : Symbol(message, Decl(file2.ts, 6, 8)) +>optionalParams : Symbol(optionalParams, Decl(file2.ts, 6, 22)) +} + +=== tests/cases/compiler/file1.ts === +interface Q { +>Q : Symbol(Q, Decl(file1.ts, 0, 0)) +>T : Symbol(T, Decl(file1.ts, 0, 12)) + + each(action: (item: T, index: number) => void): void; +>each : Symbol(each, Decl(file1.ts, 0, 16)) +>action : Symbol(action, Decl(file1.ts, 1, 9)) +>item : Symbol(item, Decl(file1.ts, 1, 18)) +>T : Symbol(T, Decl(file1.ts, 0, 12)) +>index : Symbol(index, Decl(file1.ts, 1, 26)) +} +var q1: Q<{ a: number; }>; +>q1 : Symbol(q1, Decl(file1.ts, 3, 3)) +>Q : Symbol(Q, Decl(file1.ts, 0, 0)) +>a : Symbol(a, Decl(file1.ts, 3, 11)) + +var x = q1.each(x => c.log(x)); +>x : Symbol(x, Decl(file1.ts, 4, 3)) +>q1.each : Symbol(Q.each, Decl(file1.ts, 0, 16)) +>q1 : Symbol(q1, Decl(file1.ts, 3, 3)) +>each : Symbol(Q.each, Decl(file1.ts, 0, 16)) +>x : Symbol(x, Decl(file1.ts, 4, 16)) +>c.log : Symbol(C.log, Decl(file2.ts, 5, 13)) +>c : Symbol(c, Decl(file2.ts, 1, 11)) +>log : Symbol(C.log, Decl(file2.ts, 5, 13)) +>x : Symbol(x, Decl(file1.ts, 4, 16)) + diff --git a/tests/baselines/reference/crashInResolveInterface.types b/tests/baselines/reference/crashInResolveInterface.types index b2a0254bbc102..539d50208d12e 100644 --- a/tests/baselines/reference/crashInResolveInterface.types +++ b/tests/baselines/reference/crashInResolveInterface.types @@ -1,53 +1,53 @@ === tests/cases/compiler/file2.ts === /// declare var c: C; ->c : C, Symbol(c, Decl(file2.ts, 1, 11)) ->C : C, Symbol(C, Decl(file2.ts, 1, 17), Decl(file2.ts, 4, 1)) +>c : C +>C : C interface C { ->C : C, Symbol(C, Decl(file2.ts, 1, 17), Decl(file2.ts, 4, 1)) +>C : C count(countTitle?: string): void; ->count : (countTitle?: string) => void, Symbol(count, Decl(file2.ts, 2, 13)) ->countTitle : string, Symbol(countTitle, Decl(file2.ts, 3, 10)) +>count : (countTitle?: string) => void +>countTitle : string } interface C { ->C : C, Symbol(C, Decl(file2.ts, 1, 17), Decl(file2.ts, 4, 1)) +>C : C log(message?: any, ...optionalParams: any[]): void; ->log : (message?: any, ...optionalParams: any[]) => void, Symbol(log, Decl(file2.ts, 5, 13)) ->message : any, Symbol(message, Decl(file2.ts, 6, 8)) ->optionalParams : any[], Symbol(optionalParams, Decl(file2.ts, 6, 22)) +>log : (message?: any, ...optionalParams: any[]) => void +>message : any +>optionalParams : any[] } === tests/cases/compiler/file1.ts === interface Q { ->Q : Q, Symbol(Q, Decl(file1.ts, 0, 0)) ->T : T, Symbol(T, Decl(file1.ts, 0, 12)) +>Q : Q +>T : T each(action: (item: T, index: number) => void): void; ->each : (action: (item: T, index: number) => void) => void, Symbol(each, Decl(file1.ts, 0, 16)) ->action : (item: T, index: number) => void, Symbol(action, Decl(file1.ts, 1, 9)) ->item : T, Symbol(item, Decl(file1.ts, 1, 18)) ->T : T, Symbol(T, Decl(file1.ts, 0, 12)) ->index : number, Symbol(index, Decl(file1.ts, 1, 26)) +>each : (action: (item: T, index: number) => void) => void +>action : (item: T, index: number) => void +>item : T +>T : T +>index : number } var q1: Q<{ a: number; }>; ->q1 : Q<{ a: number; }>, Symbol(q1, Decl(file1.ts, 3, 3)) ->Q : Q, Symbol(Q, Decl(file1.ts, 0, 0)) ->a : number, Symbol(a, Decl(file1.ts, 3, 11)) +>q1 : Q<{ a: number; }> +>Q : Q +>a : number var x = q1.each(x => c.log(x)); ->x : void, Symbol(x, Decl(file1.ts, 4, 3)) +>x : void >q1.each(x => c.log(x)) : void ->q1.each : (action: (item: { a: number; }, index: number) => void) => void, Symbol(Q.each, Decl(file1.ts, 0, 16)) ->q1 : Q<{ a: number; }>, Symbol(q1, Decl(file1.ts, 3, 3)) ->each : (action: (item: { a: number; }, index: number) => void) => void, Symbol(Q.each, Decl(file1.ts, 0, 16)) +>q1.each : (action: (item: { a: number; }, index: number) => void) => void +>q1 : Q<{ a: number; }> +>each : (action: (item: { a: number; }, index: number) => void) => void >x => c.log(x) : (x: { a: number; }) => void ->x : { a: number; }, Symbol(x, Decl(file1.ts, 4, 16)) +>x : { a: number; } >c.log(x) : void ->c.log : (message?: any, ...optionalParams: any[]) => void, Symbol(C.log, Decl(file2.ts, 5, 13)) ->c : C, Symbol(c, Decl(file2.ts, 1, 11)) ->log : (message?: any, ...optionalParams: any[]) => void, Symbol(C.log, Decl(file2.ts, 5, 13)) ->x : { a: number; }, Symbol(x, Decl(file1.ts, 4, 16)) +>c.log : (message?: any, ...optionalParams: any[]) => void +>c : C +>log : (message?: any, ...optionalParams: any[]) => void +>x : { a: number; } diff --git a/tests/baselines/reference/crashInresolveReturnStatement.symbols b/tests/baselines/reference/crashInresolveReturnStatement.symbols new file mode 100644 index 0000000000000..359a62c784208 --- /dev/null +++ b/tests/baselines/reference/crashInresolveReturnStatement.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/crashInresolveReturnStatement.ts === +class WorkItemToolbar { +>WorkItemToolbar : Symbol(WorkItemToolbar, Decl(crashInresolveReturnStatement.ts, 0, 0)) + + public onToolbarItemClick() { +>onToolbarItemClick : Symbol(onToolbarItemClick, Decl(crashInresolveReturnStatement.ts, 0, 23)) + + WITDialogs.createCopyOfWorkItem(); +>WITDialogs.createCopyOfWorkItem : Symbol(WITDialogs.createCopyOfWorkItem, Decl(crashInresolveReturnStatement.ts, 12, 18)) +>WITDialogs : Symbol(WITDialogs, Decl(crashInresolveReturnStatement.ts, 11, 1)) +>createCopyOfWorkItem : Symbol(WITDialogs.createCopyOfWorkItem, Decl(crashInresolveReturnStatement.ts, 12, 18)) + } +} +class CreateCopyOfWorkItemDialog { +>CreateCopyOfWorkItemDialog : Symbol(CreateCopyOfWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 4, 1)) + + public getDialogResult() { +>getDialogResult : Symbol(getDialogResult, Decl(crashInresolveReturnStatement.ts, 5, 34)) + + return null; + } +} +function createWorkItemDialog(dialogType: P0) { +>createWorkItemDialog : Symbol(createWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 9, 1)) +>P0 : Symbol(P0, Decl(crashInresolveReturnStatement.ts, 10, 30)) +>dialogType : Symbol(dialogType, Decl(crashInresolveReturnStatement.ts, 10, 34)) +>P0 : Symbol(P0, Decl(crashInresolveReturnStatement.ts, 10, 30)) +} +class WITDialogs { +>WITDialogs : Symbol(WITDialogs, Decl(crashInresolveReturnStatement.ts, 11, 1)) + + public static createCopyOfWorkItem() { +>createCopyOfWorkItem : Symbol(WITDialogs.createCopyOfWorkItem, Decl(crashInresolveReturnStatement.ts, 12, 18)) + + createWorkItemDialog(CreateCopyOfWorkItemDialog); +>createWorkItemDialog : Symbol(createWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 9, 1)) +>CreateCopyOfWorkItemDialog : Symbol(CreateCopyOfWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 4, 1)) + } +} + diff --git a/tests/baselines/reference/crashInresolveReturnStatement.types b/tests/baselines/reference/crashInresolveReturnStatement.types index cd2ff9a252794..5a43d916edc61 100644 --- a/tests/baselines/reference/crashInresolveReturnStatement.types +++ b/tests/baselines/reference/crashInresolveReturnStatement.types @@ -1,43 +1,43 @@ === tests/cases/compiler/crashInresolveReturnStatement.ts === class WorkItemToolbar { ->WorkItemToolbar : WorkItemToolbar, Symbol(WorkItemToolbar, Decl(crashInresolveReturnStatement.ts, 0, 0)) +>WorkItemToolbar : WorkItemToolbar public onToolbarItemClick() { ->onToolbarItemClick : () => void, Symbol(onToolbarItemClick, Decl(crashInresolveReturnStatement.ts, 0, 23)) +>onToolbarItemClick : () => void WITDialogs.createCopyOfWorkItem(); >WITDialogs.createCopyOfWorkItem() : void ->WITDialogs.createCopyOfWorkItem : () => void, Symbol(WITDialogs.createCopyOfWorkItem, Decl(crashInresolveReturnStatement.ts, 12, 18)) ->WITDialogs : typeof WITDialogs, Symbol(WITDialogs, Decl(crashInresolveReturnStatement.ts, 11, 1)) ->createCopyOfWorkItem : () => void, Symbol(WITDialogs.createCopyOfWorkItem, Decl(crashInresolveReturnStatement.ts, 12, 18)) +>WITDialogs.createCopyOfWorkItem : () => void +>WITDialogs : typeof WITDialogs +>createCopyOfWorkItem : () => void } } class CreateCopyOfWorkItemDialog { ->CreateCopyOfWorkItemDialog : CreateCopyOfWorkItemDialog, Symbol(CreateCopyOfWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 4, 1)) +>CreateCopyOfWorkItemDialog : CreateCopyOfWorkItemDialog public getDialogResult() { ->getDialogResult : () => any, Symbol(getDialogResult, Decl(crashInresolveReturnStatement.ts, 5, 34)) +>getDialogResult : () => any return null; >null : null } } function createWorkItemDialog(dialogType: P0) { ->createWorkItemDialog : (dialogType: P0) => void, Symbol(createWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 9, 1)) ->P0 : P0, Symbol(P0, Decl(crashInresolveReturnStatement.ts, 10, 30)) ->dialogType : P0, Symbol(dialogType, Decl(crashInresolveReturnStatement.ts, 10, 34)) ->P0 : P0, Symbol(P0, Decl(crashInresolveReturnStatement.ts, 10, 30)) +>createWorkItemDialog : (dialogType: P0) => void +>P0 : P0 +>dialogType : P0 +>P0 : P0 } class WITDialogs { ->WITDialogs : WITDialogs, Symbol(WITDialogs, Decl(crashInresolveReturnStatement.ts, 11, 1)) +>WITDialogs : WITDialogs public static createCopyOfWorkItem() { ->createCopyOfWorkItem : () => void, Symbol(WITDialogs.createCopyOfWorkItem, Decl(crashInresolveReturnStatement.ts, 12, 18)) +>createCopyOfWorkItem : () => void createWorkItemDialog(CreateCopyOfWorkItemDialog); >createWorkItemDialog(CreateCopyOfWorkItemDialog) : void ->createWorkItemDialog : (dialogType: P0) => void, Symbol(createWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 9, 1)) ->CreateCopyOfWorkItemDialog : typeof CreateCopyOfWorkItemDialog, Symbol(CreateCopyOfWorkItemDialog, Decl(crashInresolveReturnStatement.ts, 4, 1)) +>createWorkItemDialog : (dialogType: P0) => void +>CreateCopyOfWorkItemDialog : typeof CreateCopyOfWorkItemDialog } } diff --git a/tests/baselines/reference/cyclicModuleImport.symbols b/tests/baselines/reference/cyclicModuleImport.symbols new file mode 100644 index 0000000000000..86337812aad60 --- /dev/null +++ b/tests/baselines/reference/cyclicModuleImport.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/cyclicModuleImport.ts === +declare module "SubModule" { + import MainModule = require('MainModule'); +>MainModule : Symbol(MainModule, Decl(cyclicModuleImport.ts, 0, 28)) + + class SubModule { +>SubModule : Symbol(SubModule, Decl(cyclicModuleImport.ts, 1, 46)) + + public static StaticVar: number; +>StaticVar : Symbol(SubModule.StaticVar, Decl(cyclicModuleImport.ts, 2, 21)) + + public InstanceVar: number; +>InstanceVar : Symbol(InstanceVar, Decl(cyclicModuleImport.ts, 3, 40)) + + public main: MainModule; +>main : Symbol(main, Decl(cyclicModuleImport.ts, 4, 35)) +>MainModule : Symbol(MainModule, Decl(cyclicModuleImport.ts, 0, 28)) + + constructor(); + } + export = SubModule; +>SubModule : Symbol(SubModule, Decl(cyclicModuleImport.ts, 1, 46)) +} +declare module "MainModule" { + import SubModule = require('SubModule'); +>SubModule : Symbol(SubModule, Decl(cyclicModuleImport.ts, 10, 29)) + + class MainModule { +>MainModule : Symbol(MainModule, Decl(cyclicModuleImport.ts, 11, 44)) + + public SubModule: SubModule; +>SubModule : Symbol(SubModule, Decl(cyclicModuleImport.ts, 12, 22)) +>SubModule : Symbol(SubModule, Decl(cyclicModuleImport.ts, 10, 29)) + + constructor(); + } + export = MainModule; +>MainModule : Symbol(MainModule, Decl(cyclicModuleImport.ts, 11, 44)) +} + diff --git a/tests/baselines/reference/cyclicModuleImport.types b/tests/baselines/reference/cyclicModuleImport.types index b9b9c71a1f276..c581dd63c6d3e 100644 --- a/tests/baselines/reference/cyclicModuleImport.types +++ b/tests/baselines/reference/cyclicModuleImport.types @@ -1,40 +1,40 @@ === tests/cases/compiler/cyclicModuleImport.ts === declare module "SubModule" { import MainModule = require('MainModule'); ->MainModule : typeof MainModule, Symbol(MainModule, Decl(cyclicModuleImport.ts, 0, 28)) +>MainModule : typeof MainModule class SubModule { ->SubModule : SubModule, Symbol(SubModule, Decl(cyclicModuleImport.ts, 1, 46)) +>SubModule : SubModule public static StaticVar: number; ->StaticVar : number, Symbol(SubModule.StaticVar, Decl(cyclicModuleImport.ts, 2, 21)) +>StaticVar : number public InstanceVar: number; ->InstanceVar : number, Symbol(InstanceVar, Decl(cyclicModuleImport.ts, 3, 40)) +>InstanceVar : number public main: MainModule; ->main : MainModule, Symbol(main, Decl(cyclicModuleImport.ts, 4, 35)) ->MainModule : MainModule, Symbol(MainModule, Decl(cyclicModuleImport.ts, 0, 28)) +>main : MainModule +>MainModule : MainModule constructor(); } export = SubModule; ->SubModule : SubModule, Symbol(SubModule, Decl(cyclicModuleImport.ts, 1, 46)) +>SubModule : SubModule } declare module "MainModule" { import SubModule = require('SubModule'); ->SubModule : typeof SubModule, Symbol(SubModule, Decl(cyclicModuleImport.ts, 10, 29)) +>SubModule : typeof SubModule class MainModule { ->MainModule : MainModule, Symbol(MainModule, Decl(cyclicModuleImport.ts, 11, 44)) +>MainModule : MainModule public SubModule: SubModule; ->SubModule : SubModule, Symbol(SubModule, Decl(cyclicModuleImport.ts, 12, 22)) ->SubModule : SubModule, Symbol(SubModule, Decl(cyclicModuleImport.ts, 10, 29)) +>SubModule : SubModule +>SubModule : SubModule constructor(); } export = MainModule; ->MainModule : MainModule, Symbol(MainModule, Decl(cyclicModuleImport.ts, 11, 44)) +>MainModule : MainModule } diff --git a/tests/baselines/reference/debugger.symbols b/tests/baselines/reference/debugger.symbols new file mode 100644 index 0000000000000..9c11d0e259859 --- /dev/null +++ b/tests/baselines/reference/debugger.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/debugger.ts === +debugger; + +function foo() { +>foo : Symbol(foo, Decl(debugger.ts, 0, 9)) + + debugger; + +} diff --git a/tests/baselines/reference/debugger.types b/tests/baselines/reference/debugger.types index e1c262598d34f..8d46931bf8fb5 100644 --- a/tests/baselines/reference/debugger.types +++ b/tests/baselines/reference/debugger.types @@ -2,7 +2,7 @@ debugger; function foo() { ->foo : () => void, Symbol(foo, Decl(debugger.ts, 0, 9)) +>foo : () => void debugger; diff --git a/tests/baselines/reference/debuggerEmit.symbols b/tests/baselines/reference/debuggerEmit.symbols new file mode 100644 index 0000000000000..b8f6228a99dcd --- /dev/null +++ b/tests/baselines/reference/debuggerEmit.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/debuggerEmit.ts === +var x = function () { debugger; } +>x : Symbol(x, Decl(debuggerEmit.ts, 0, 3)) + +x(); +>x : Symbol(x, Decl(debuggerEmit.ts, 0, 3)) + diff --git a/tests/baselines/reference/debuggerEmit.types b/tests/baselines/reference/debuggerEmit.types index eab837c90f1b1..dcc28e62501a0 100644 --- a/tests/baselines/reference/debuggerEmit.types +++ b/tests/baselines/reference/debuggerEmit.types @@ -1,9 +1,9 @@ === tests/cases/compiler/debuggerEmit.ts === var x = function () { debugger; } ->x : () => void, Symbol(x, Decl(debuggerEmit.ts, 0, 3)) +>x : () => void >function () { debugger; } : () => void x(); >x() : void ->x : () => void, Symbol(x, Decl(debuggerEmit.ts, 0, 3)) +>x : () => void diff --git a/tests/baselines/reference/declFileAccessors.symbols b/tests/baselines/reference/declFileAccessors.symbols new file mode 100644 index 0000000000000..7275dd8c191e2 --- /dev/null +++ b/tests/baselines/reference/declFileAccessors.symbols @@ -0,0 +1,160 @@ +=== tests/cases/compiler/declFileAccessors_0.ts === + +/** This is comment for c1*/ +export class c1 { +>c1 : Symbol(c1, Decl(declFileAccessors_0.ts, 0, 0)) + + /** getter property*/ + public get p3() { +>p3 : Symbol(p3, Decl(declFileAccessors_0.ts, 2, 17), Decl(declFileAccessors_0.ts, 6, 5)) + + return 10; + } + /** setter property*/ + public set p3(/** this is value*/value: number) { +>p3 : Symbol(p3, Decl(declFileAccessors_0.ts, 2, 17), Decl(declFileAccessors_0.ts, 6, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 8, 18)) + } + /** private getter property*/ + private get pp3() { +>pp3 : Symbol(pp3, Decl(declFileAccessors_0.ts, 9, 5), Decl(declFileAccessors_0.ts, 13, 5)) + + return 10; + } + /** private setter property*/ + private set pp3(/** this is value*/value: number) { +>pp3 : Symbol(pp3, Decl(declFileAccessors_0.ts, 9, 5), Decl(declFileAccessors_0.ts, 13, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 15, 20)) + } + /** static getter property*/ + static get s3() { +>s3 : Symbol(c1.s3, Decl(declFileAccessors_0.ts, 16, 5), Decl(declFileAccessors_0.ts, 20, 5)) + + return 10; + } + /** setter property*/ + static set s3( /** this is value*/value: number) { +>s3 : Symbol(c1.s3, Decl(declFileAccessors_0.ts, 16, 5), Decl(declFileAccessors_0.ts, 20, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 22, 18)) + } + public get nc_p3() { +>nc_p3 : Symbol(nc_p3, Decl(declFileAccessors_0.ts, 23, 5), Decl(declFileAccessors_0.ts, 26, 5)) + + return 10; + } + public set nc_p3(value: number) { +>nc_p3 : Symbol(nc_p3, Decl(declFileAccessors_0.ts, 23, 5), Decl(declFileAccessors_0.ts, 26, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 27, 21)) + } + private get nc_pp3() { +>nc_pp3 : Symbol(nc_pp3, Decl(declFileAccessors_0.ts, 28, 5), Decl(declFileAccessors_0.ts, 31, 5)) + + return 10; + } + private set nc_pp3(value: number) { +>nc_pp3 : Symbol(nc_pp3, Decl(declFileAccessors_0.ts, 28, 5), Decl(declFileAccessors_0.ts, 31, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 32, 23)) + } + static get nc_s3() { +>nc_s3 : Symbol(c1.nc_s3, Decl(declFileAccessors_0.ts, 33, 5), Decl(declFileAccessors_0.ts, 36, 5)) + + return ""; + } + static set nc_s3(value: string) { +>nc_s3 : Symbol(c1.nc_s3, Decl(declFileAccessors_0.ts, 33, 5), Decl(declFileAccessors_0.ts, 36, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 37, 21)) + } + + // Only getter property + public get onlyGetter() { +>onlyGetter : Symbol(onlyGetter, Decl(declFileAccessors_0.ts, 38, 5)) + + return 10; + } + + // Only setter property + public set onlySetter(value: number) { +>onlySetter : Symbol(onlySetter, Decl(declFileAccessors_0.ts, 43, 5)) +>value : Symbol(value, Decl(declFileAccessors_0.ts, 46, 26)) + } +} + +=== tests/cases/compiler/declFileAccessors_1.ts === +/** This is comment for c2 - the global class*/ +class c2 { +>c2 : Symbol(c2, Decl(declFileAccessors_1.ts, 0, 0)) + + /** getter property*/ + public get p3() { +>p3 : Symbol(p3, Decl(declFileAccessors_1.ts, 1, 10), Decl(declFileAccessors_1.ts, 5, 5)) + + return 10; + } + /** setter property*/ + public set p3(/** this is value*/value: number) { +>p3 : Symbol(p3, Decl(declFileAccessors_1.ts, 1, 10), Decl(declFileAccessors_1.ts, 5, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 7, 18)) + } + /** private getter property*/ + private get pp3() { +>pp3 : Symbol(pp3, Decl(declFileAccessors_1.ts, 8, 5), Decl(declFileAccessors_1.ts, 12, 5)) + + return 10; + } + /** private setter property*/ + private set pp3(/** this is value*/value: number) { +>pp3 : Symbol(pp3, Decl(declFileAccessors_1.ts, 8, 5), Decl(declFileAccessors_1.ts, 12, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 14, 20)) + } + /** static getter property*/ + static get s3() { +>s3 : Symbol(c2.s3, Decl(declFileAccessors_1.ts, 15, 5), Decl(declFileAccessors_1.ts, 19, 5)) + + return 10; + } + /** setter property*/ + static set s3( /** this is value*/value: number) { +>s3 : Symbol(c2.s3, Decl(declFileAccessors_1.ts, 15, 5), Decl(declFileAccessors_1.ts, 19, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 21, 18)) + } + public get nc_p3() { +>nc_p3 : Symbol(nc_p3, Decl(declFileAccessors_1.ts, 22, 5), Decl(declFileAccessors_1.ts, 25, 5)) + + return 10; + } + public set nc_p3(value: number) { +>nc_p3 : Symbol(nc_p3, Decl(declFileAccessors_1.ts, 22, 5), Decl(declFileAccessors_1.ts, 25, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 26, 21)) + } + private get nc_pp3() { +>nc_pp3 : Symbol(nc_pp3, Decl(declFileAccessors_1.ts, 27, 5), Decl(declFileAccessors_1.ts, 30, 5)) + + return 10; + } + private set nc_pp3(value: number) { +>nc_pp3 : Symbol(nc_pp3, Decl(declFileAccessors_1.ts, 27, 5), Decl(declFileAccessors_1.ts, 30, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 31, 23)) + } + static get nc_s3() { +>nc_s3 : Symbol(c2.nc_s3, Decl(declFileAccessors_1.ts, 32, 5), Decl(declFileAccessors_1.ts, 35, 5)) + + return ""; + } + static set nc_s3(value: string) { +>nc_s3 : Symbol(c2.nc_s3, Decl(declFileAccessors_1.ts, 32, 5), Decl(declFileAccessors_1.ts, 35, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 36, 21)) + } + + // Only getter property + public get onlyGetter() { +>onlyGetter : Symbol(onlyGetter, Decl(declFileAccessors_1.ts, 37, 5)) + + return 10; + } + + // Only setter property + public set onlySetter(value: number) { +>onlySetter : Symbol(onlySetter, Decl(declFileAccessors_1.ts, 42, 5)) +>value : Symbol(value, Decl(declFileAccessors_1.ts, 45, 26)) + } +} diff --git a/tests/baselines/reference/declFileAccessors.types b/tests/baselines/reference/declFileAccessors.types index ad768bcbdbc94..00b10f7bf4037 100644 --- a/tests/baselines/reference/declFileAccessors.types +++ b/tests/baselines/reference/declFileAccessors.types @@ -2,78 +2,78 @@ /** This is comment for c1*/ export class c1 { ->c1 : c1, Symbol(c1, Decl(declFileAccessors_0.ts, 0, 0)) +>c1 : c1 /** getter property*/ public get p3() { ->p3 : number, Symbol(p3, Decl(declFileAccessors_0.ts, 2, 17), Decl(declFileAccessors_0.ts, 6, 5)) +>p3 : number return 10; >10 : number } /** setter property*/ public set p3(/** this is value*/value: number) { ->p3 : number, Symbol(p3, Decl(declFileAccessors_0.ts, 2, 17), Decl(declFileAccessors_0.ts, 6, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_0.ts, 8, 18)) +>p3 : number +>value : number } /** private getter property*/ private get pp3() { ->pp3 : number, Symbol(pp3, Decl(declFileAccessors_0.ts, 9, 5), Decl(declFileAccessors_0.ts, 13, 5)) +>pp3 : number return 10; >10 : number } /** private setter property*/ private set pp3(/** this is value*/value: number) { ->pp3 : number, Symbol(pp3, Decl(declFileAccessors_0.ts, 9, 5), Decl(declFileAccessors_0.ts, 13, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_0.ts, 15, 20)) +>pp3 : number +>value : number } /** static getter property*/ static get s3() { ->s3 : number, Symbol(c1.s3, Decl(declFileAccessors_0.ts, 16, 5), Decl(declFileAccessors_0.ts, 20, 5)) +>s3 : number return 10; >10 : number } /** setter property*/ static set s3( /** this is value*/value: number) { ->s3 : number, Symbol(c1.s3, Decl(declFileAccessors_0.ts, 16, 5), Decl(declFileAccessors_0.ts, 20, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_0.ts, 22, 18)) +>s3 : number +>value : number } public get nc_p3() { ->nc_p3 : number, Symbol(nc_p3, Decl(declFileAccessors_0.ts, 23, 5), Decl(declFileAccessors_0.ts, 26, 5)) +>nc_p3 : number return 10; >10 : number } public set nc_p3(value: number) { ->nc_p3 : number, Symbol(nc_p3, Decl(declFileAccessors_0.ts, 23, 5), Decl(declFileAccessors_0.ts, 26, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_0.ts, 27, 21)) +>nc_p3 : number +>value : number } private get nc_pp3() { ->nc_pp3 : number, Symbol(nc_pp3, Decl(declFileAccessors_0.ts, 28, 5), Decl(declFileAccessors_0.ts, 31, 5)) +>nc_pp3 : number return 10; >10 : number } private set nc_pp3(value: number) { ->nc_pp3 : number, Symbol(nc_pp3, Decl(declFileAccessors_0.ts, 28, 5), Decl(declFileAccessors_0.ts, 31, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_0.ts, 32, 23)) +>nc_pp3 : number +>value : number } static get nc_s3() { ->nc_s3 : string, Symbol(c1.nc_s3, Decl(declFileAccessors_0.ts, 33, 5), Decl(declFileAccessors_0.ts, 36, 5)) +>nc_s3 : string return ""; >"" : string } static set nc_s3(value: string) { ->nc_s3 : string, Symbol(c1.nc_s3, Decl(declFileAccessors_0.ts, 33, 5), Decl(declFileAccessors_0.ts, 36, 5)) ->value : string, Symbol(value, Decl(declFileAccessors_0.ts, 37, 21)) +>nc_s3 : string +>value : string } // Only getter property public get onlyGetter() { ->onlyGetter : number, Symbol(onlyGetter, Decl(declFileAccessors_0.ts, 38, 5)) +>onlyGetter : number return 10; >10 : number @@ -81,86 +81,86 @@ export class c1 { // Only setter property public set onlySetter(value: number) { ->onlySetter : number, Symbol(onlySetter, Decl(declFileAccessors_0.ts, 43, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_0.ts, 46, 26)) +>onlySetter : number +>value : number } } === tests/cases/compiler/declFileAccessors_1.ts === /** This is comment for c2 - the global class*/ class c2 { ->c2 : c2, Symbol(c2, Decl(declFileAccessors_1.ts, 0, 0)) +>c2 : c2 /** getter property*/ public get p3() { ->p3 : number, Symbol(p3, Decl(declFileAccessors_1.ts, 1, 10), Decl(declFileAccessors_1.ts, 5, 5)) +>p3 : number return 10; >10 : number } /** setter property*/ public set p3(/** this is value*/value: number) { ->p3 : number, Symbol(p3, Decl(declFileAccessors_1.ts, 1, 10), Decl(declFileAccessors_1.ts, 5, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_1.ts, 7, 18)) +>p3 : number +>value : number } /** private getter property*/ private get pp3() { ->pp3 : number, Symbol(pp3, Decl(declFileAccessors_1.ts, 8, 5), Decl(declFileAccessors_1.ts, 12, 5)) +>pp3 : number return 10; >10 : number } /** private setter property*/ private set pp3(/** this is value*/value: number) { ->pp3 : number, Symbol(pp3, Decl(declFileAccessors_1.ts, 8, 5), Decl(declFileAccessors_1.ts, 12, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_1.ts, 14, 20)) +>pp3 : number +>value : number } /** static getter property*/ static get s3() { ->s3 : number, Symbol(c2.s3, Decl(declFileAccessors_1.ts, 15, 5), Decl(declFileAccessors_1.ts, 19, 5)) +>s3 : number return 10; >10 : number } /** setter property*/ static set s3( /** this is value*/value: number) { ->s3 : number, Symbol(c2.s3, Decl(declFileAccessors_1.ts, 15, 5), Decl(declFileAccessors_1.ts, 19, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_1.ts, 21, 18)) +>s3 : number +>value : number } public get nc_p3() { ->nc_p3 : number, Symbol(nc_p3, Decl(declFileAccessors_1.ts, 22, 5), Decl(declFileAccessors_1.ts, 25, 5)) +>nc_p3 : number return 10; >10 : number } public set nc_p3(value: number) { ->nc_p3 : number, Symbol(nc_p3, Decl(declFileAccessors_1.ts, 22, 5), Decl(declFileAccessors_1.ts, 25, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_1.ts, 26, 21)) +>nc_p3 : number +>value : number } private get nc_pp3() { ->nc_pp3 : number, Symbol(nc_pp3, Decl(declFileAccessors_1.ts, 27, 5), Decl(declFileAccessors_1.ts, 30, 5)) +>nc_pp3 : number return 10; >10 : number } private set nc_pp3(value: number) { ->nc_pp3 : number, Symbol(nc_pp3, Decl(declFileAccessors_1.ts, 27, 5), Decl(declFileAccessors_1.ts, 30, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_1.ts, 31, 23)) +>nc_pp3 : number +>value : number } static get nc_s3() { ->nc_s3 : string, Symbol(c2.nc_s3, Decl(declFileAccessors_1.ts, 32, 5), Decl(declFileAccessors_1.ts, 35, 5)) +>nc_s3 : string return ""; >"" : string } static set nc_s3(value: string) { ->nc_s3 : string, Symbol(c2.nc_s3, Decl(declFileAccessors_1.ts, 32, 5), Decl(declFileAccessors_1.ts, 35, 5)) ->value : string, Symbol(value, Decl(declFileAccessors_1.ts, 36, 21)) +>nc_s3 : string +>value : string } // Only getter property public get onlyGetter() { ->onlyGetter : number, Symbol(onlyGetter, Decl(declFileAccessors_1.ts, 37, 5)) +>onlyGetter : number return 10; >10 : number @@ -168,7 +168,7 @@ class c2 { // Only setter property public set onlySetter(value: number) { ->onlySetter : number, Symbol(onlySetter, Decl(declFileAccessors_1.ts, 42, 5)) ->value : number, Symbol(value, Decl(declFileAccessors_1.ts, 45, 26)) +>onlySetter : number +>value : number } } diff --git a/tests/baselines/reference/declFileAliasUseBeforeDeclaration.symbols b/tests/baselines/reference/declFileAliasUseBeforeDeclaration.symbols new file mode 100644 index 0000000000000..ee7795ae45520 --- /dev/null +++ b/tests/baselines/reference/declFileAliasUseBeforeDeclaration.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/declFileAliasUseBeforeDeclaration_test.ts === +export function bar(a: foo.Foo) { } +>bar : Symbol(bar, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 0)) +>a : Symbol(a, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 20)) +>foo : Symbol(foo, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 35)) +>Foo : Symbol(foo.Foo, Decl(declFileAliasUseBeforeDeclaration_foo.ts, 0, 0)) + +import foo = require("declFileAliasUseBeforeDeclaration_foo"); +>foo : Symbol(foo, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 35)) + +=== tests/cases/compiler/declFileAliasUseBeforeDeclaration_foo.ts === + +export class Foo { } +>Foo : Symbol(Foo, Decl(declFileAliasUseBeforeDeclaration_foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileAliasUseBeforeDeclaration.types b/tests/baselines/reference/declFileAliasUseBeforeDeclaration.types index a678586871793..c21d98d90d591 100644 --- a/tests/baselines/reference/declFileAliasUseBeforeDeclaration.types +++ b/tests/baselines/reference/declFileAliasUseBeforeDeclaration.types @@ -1,15 +1,15 @@ === tests/cases/compiler/declFileAliasUseBeforeDeclaration_test.ts === export function bar(a: foo.Foo) { } ->bar : (a: foo.Foo) => void, Symbol(bar, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 0)) ->a : foo.Foo, Symbol(a, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 20)) ->foo : any, Symbol(foo, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 35)) ->Foo : foo.Foo, Symbol(foo.Foo, Decl(declFileAliasUseBeforeDeclaration_foo.ts, 0, 0)) +>bar : (a: foo.Foo) => void +>a : foo.Foo +>foo : any +>Foo : foo.Foo import foo = require("declFileAliasUseBeforeDeclaration_foo"); ->foo : typeof foo, Symbol(foo, Decl(declFileAliasUseBeforeDeclaration_test.ts, 0, 35)) +>foo : typeof foo === tests/cases/compiler/declFileAliasUseBeforeDeclaration_foo.ts === export class Foo { } ->Foo : Foo, Symbol(Foo, Decl(declFileAliasUseBeforeDeclaration_foo.ts, 0, 0)) +>Foo : Foo diff --git a/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.symbols b/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.symbols new file mode 100644 index 0000000000000..c0ad98bbe3d90 --- /dev/null +++ b/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/declFileAliasUseBeforeDeclaration2.ts === + +declare module "test" { + module A { +>A : Symbol(A, Decl(declFileAliasUseBeforeDeclaration2.ts, 1, 23)) + + class C { +>C : Symbol(C, Decl(declFileAliasUseBeforeDeclaration2.ts, 2, 14)) + } + } + class B extends E { +>B : Symbol(B, Decl(declFileAliasUseBeforeDeclaration2.ts, 5, 5)) +>E : Symbol(E, Decl(declFileAliasUseBeforeDeclaration2.ts, 7, 5)) + } + import E = A.C; +>E : Symbol(E, Decl(declFileAliasUseBeforeDeclaration2.ts, 7, 5)) +>A : Symbol(A, Decl(declFileAliasUseBeforeDeclaration2.ts, 1, 23)) +>C : Symbol(E, Decl(declFileAliasUseBeforeDeclaration2.ts, 2, 14)) +} diff --git a/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.types b/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.types index 770bc66d8a1d6..362dd031e092e 100644 --- a/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.types +++ b/tests/baselines/reference/declFileAliasUseBeforeDeclaration2.types @@ -2,18 +2,18 @@ declare module "test" { module A { ->A : typeof A, Symbol(A, Decl(declFileAliasUseBeforeDeclaration2.ts, 1, 23)) +>A : typeof A class C { ->C : C, Symbol(C, Decl(declFileAliasUseBeforeDeclaration2.ts, 2, 14)) +>C : C } } class B extends E { ->B : B, Symbol(B, Decl(declFileAliasUseBeforeDeclaration2.ts, 5, 5)) ->E : E, Symbol(E, Decl(declFileAliasUseBeforeDeclaration2.ts, 7, 5)) +>B : B +>E : E } import E = A.C; ->E : typeof E, Symbol(E, Decl(declFileAliasUseBeforeDeclaration2.ts, 7, 5)) ->A : typeof A, Symbol(A, Decl(declFileAliasUseBeforeDeclaration2.ts, 1, 23)) ->C : E, Symbol(E, Decl(declFileAliasUseBeforeDeclaration2.ts, 2, 14)) +>E : typeof E +>A : typeof A +>C : E } diff --git a/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.symbols b/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.symbols new file mode 100644 index 0000000000000..4a4077836cd2a --- /dev/null +++ b/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/declFileAmbientExternalModuleWithSingleExportedModule_1.ts === +/// +import SubModule = require('SubModule'); +>SubModule : Symbol(SubModule, Decl(declFileAmbientExternalModuleWithSingleExportedModule_1.ts, 0, 0)) + +export var x: SubModule.m.m3.c; +>x : Symbol(x, Decl(declFileAmbientExternalModuleWithSingleExportedModule_1.ts, 2, 10)) +>SubModule : Symbol(SubModule, Decl(declFileAmbientExternalModuleWithSingleExportedModule_1.ts, 0, 0)) +>m : Symbol(SubModule.m, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 1, 28)) +>m3 : Symbol(SubModule.m.m3, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 2, 21)) +>c : Symbol(SubModule.m.m3.c, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 3, 26)) + + +=== tests/cases/compiler/declFileAmbientExternalModuleWithSingleExportedModule_0.ts === + +declare module "SubModule" { + export module m { +>m : Symbol(m, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 1, 28)) + + export module m3 { +>m3 : Symbol(m3, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 2, 21)) + + interface c { +>c : Symbol(c, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 3, 26)) + } + } + } +} + diff --git a/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.types b/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.types index 3083c01889cb4..792f1f0282f71 100644 --- a/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.types +++ b/tests/baselines/reference/declFileAmbientExternalModuleWithSingleExportedModule.types @@ -1,27 +1,27 @@ === tests/cases/compiler/declFileAmbientExternalModuleWithSingleExportedModule_1.ts === /// import SubModule = require('SubModule'); ->SubModule : typeof SubModule, Symbol(SubModule, Decl(declFileAmbientExternalModuleWithSingleExportedModule_1.ts, 0, 0)) +>SubModule : typeof SubModule export var x: SubModule.m.m3.c; ->x : SubModule.m.m3.c, Symbol(x, Decl(declFileAmbientExternalModuleWithSingleExportedModule_1.ts, 2, 10)) ->SubModule : any, Symbol(SubModule, Decl(declFileAmbientExternalModuleWithSingleExportedModule_1.ts, 0, 0)) ->m : any, Symbol(SubModule.m, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 1, 28)) ->m3 : any, Symbol(SubModule.m.m3, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 2, 21)) ->c : SubModule.m.m3.c, Symbol(SubModule.m.m3.c, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 3, 26)) +>x : SubModule.m.m3.c +>SubModule : any +>m : any +>m3 : any +>c : SubModule.m.m3.c === tests/cases/compiler/declFileAmbientExternalModuleWithSingleExportedModule_0.ts === declare module "SubModule" { export module m { ->m : any, Symbol(m, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 1, 28)) +>m : any export module m3 { ->m3 : any, Symbol(m3, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 2, 21)) +>m3 : any interface c { ->c : c, Symbol(c, Decl(declFileAmbientExternalModuleWithSingleExportedModule_0.ts, 3, 26)) +>c : c } } } diff --git a/tests/baselines/reference/declFileCallSignatures.symbols b/tests/baselines/reference/declFileCallSignatures.symbols new file mode 100644 index 0000000000000..cf1697dc4c0f4 --- /dev/null +++ b/tests/baselines/reference/declFileCallSignatures.symbols @@ -0,0 +1,117 @@ +=== tests/cases/compiler/declFileCallSignatures_0.ts === + +export interface ICallSignature { +>ICallSignature : Symbol(ICallSignature, Decl(declFileCallSignatures_0.ts, 0, 0)) + + /** This comment should appear for foo*/ + (): string; +} + +export interface ICallSignatureWithParameters { +>ICallSignatureWithParameters : Symbol(ICallSignatureWithParameters, Decl(declFileCallSignatures_0.ts, 4, 1)) + + /** This is comment for function signature*/ + (/** this is comment about a*/a: string, +>a : Symbol(a, Decl(declFileCallSignatures_0.ts, 8, 5)) + + /** this is comment for b*/ + b: number): void; +>b : Symbol(b, Decl(declFileCallSignatures_0.ts, 8, 44)) +} + +export interface ICallSignatureWithRestParameters { +>ICallSignatureWithRestParameters : Symbol(ICallSignatureWithRestParameters, Decl(declFileCallSignatures_0.ts, 11, 1)) + + (a: string, ...rests: string[]): string; +>a : Symbol(a, Decl(declFileCallSignatures_0.ts, 14, 5)) +>rests : Symbol(rests, Decl(declFileCallSignatures_0.ts, 14, 15)) +} + +export interface ICallSignatureWithOverloads { +>ICallSignatureWithOverloads : Symbol(ICallSignatureWithOverloads, Decl(declFileCallSignatures_0.ts, 15, 1)) + + (a: string): string; +>a : Symbol(a, Decl(declFileCallSignatures_0.ts, 18, 5)) + + (a: number): number; +>a : Symbol(a, Decl(declFileCallSignatures_0.ts, 19, 5)) +} + +export interface ICallSignatureWithTypeParameters { +>ICallSignatureWithTypeParameters : Symbol(ICallSignatureWithTypeParameters, Decl(declFileCallSignatures_0.ts, 20, 1)) +>T : Symbol(T, Decl(declFileCallSignatures_0.ts, 22, 50)) + + /** This comment should appear for foo*/ + (a: T): string; +>a : Symbol(a, Decl(declFileCallSignatures_0.ts, 24, 5)) +>T : Symbol(T, Decl(declFileCallSignatures_0.ts, 22, 50)) +} + +export interface ICallSignatureWithOwnTypeParametes { +>ICallSignatureWithOwnTypeParametes : Symbol(ICallSignatureWithOwnTypeParametes, Decl(declFileCallSignatures_0.ts, 25, 1)) + + (a: T): string; +>T : Symbol(T, Decl(declFileCallSignatures_0.ts, 28, 5)) +>ICallSignature : Symbol(ICallSignature, Decl(declFileCallSignatures_0.ts, 0, 0)) +>a : Symbol(a, Decl(declFileCallSignatures_0.ts, 28, 31)) +>T : Symbol(T, Decl(declFileCallSignatures_0.ts, 28, 5)) +} + +=== tests/cases/compiler/declFileCallSignatures_1.ts === +interface IGlobalCallSignature { +>IGlobalCallSignature : Symbol(IGlobalCallSignature, Decl(declFileCallSignatures_1.ts, 0, 0)) + + /** This comment should appear for foo*/ + (): string; +} + +interface IGlobalCallSignatureWithParameters { +>IGlobalCallSignatureWithParameters : Symbol(IGlobalCallSignatureWithParameters, Decl(declFileCallSignatures_1.ts, 3, 1)) + + /** This is comment for function signature*/ + (/** this is comment about a*/a: string, +>a : Symbol(a, Decl(declFileCallSignatures_1.ts, 7, 5)) + + /** this is comment for b*/ + b: number): void; +>b : Symbol(b, Decl(declFileCallSignatures_1.ts, 7, 44)) +} + +interface IGlobalCallSignatureWithRestParameters { +>IGlobalCallSignatureWithRestParameters : Symbol(IGlobalCallSignatureWithRestParameters, Decl(declFileCallSignatures_1.ts, 10, 1)) + + (a: string, ...rests: string[]): string; +>a : Symbol(a, Decl(declFileCallSignatures_1.ts, 14, 5)) +>rests : Symbol(rests, Decl(declFileCallSignatures_1.ts, 14, 15)) + +} + +interface IGlobalCallSignatureWithOverloads { +>IGlobalCallSignatureWithOverloads : Symbol(IGlobalCallSignatureWithOverloads, Decl(declFileCallSignatures_1.ts, 16, 1)) + + (a: string): string; +>a : Symbol(a, Decl(declFileCallSignatures_1.ts, 19, 5)) + + (a: number): number; +>a : Symbol(a, Decl(declFileCallSignatures_1.ts, 20, 5)) +} + +interface IGlobalCallSignatureWithTypeParameters { +>IGlobalCallSignatureWithTypeParameters : Symbol(IGlobalCallSignatureWithTypeParameters, Decl(declFileCallSignatures_1.ts, 21, 1)) +>T : Symbol(T, Decl(declFileCallSignatures_1.ts, 23, 49)) + + /** This comment should appear for foo*/ + (a: T): string; +>a : Symbol(a, Decl(declFileCallSignatures_1.ts, 25, 5)) +>T : Symbol(T, Decl(declFileCallSignatures_1.ts, 23, 49)) +} + +interface IGlobalCallSignatureWithOwnTypeParametes { +>IGlobalCallSignatureWithOwnTypeParametes : Symbol(IGlobalCallSignatureWithOwnTypeParametes, Decl(declFileCallSignatures_1.ts, 26, 1)) + + (a: T): string; +>T : Symbol(T, Decl(declFileCallSignatures_1.ts, 29, 5)) +>IGlobalCallSignature : Symbol(IGlobalCallSignature, Decl(declFileCallSignatures_1.ts, 0, 0)) +>a : Symbol(a, Decl(declFileCallSignatures_1.ts, 29, 37)) +>T : Symbol(T, Decl(declFileCallSignatures_1.ts, 29, 5)) +} diff --git a/tests/baselines/reference/declFileCallSignatures.types b/tests/baselines/reference/declFileCallSignatures.types index ed231993e5973..0fc0757aee1d1 100644 --- a/tests/baselines/reference/declFileCallSignatures.types +++ b/tests/baselines/reference/declFileCallSignatures.types @@ -1,117 +1,117 @@ === tests/cases/compiler/declFileCallSignatures_0.ts === export interface ICallSignature { ->ICallSignature : ICallSignature, Symbol(ICallSignature, Decl(declFileCallSignatures_0.ts, 0, 0)) +>ICallSignature : ICallSignature /** This comment should appear for foo*/ (): string; } export interface ICallSignatureWithParameters { ->ICallSignatureWithParameters : ICallSignatureWithParameters, Symbol(ICallSignatureWithParameters, Decl(declFileCallSignatures_0.ts, 4, 1)) +>ICallSignatureWithParameters : ICallSignatureWithParameters /** This is comment for function signature*/ (/** this is comment about a*/a: string, ->a : string, Symbol(a, Decl(declFileCallSignatures_0.ts, 8, 5)) +>a : string /** this is comment for b*/ b: number): void; ->b : number, Symbol(b, Decl(declFileCallSignatures_0.ts, 8, 44)) +>b : number } export interface ICallSignatureWithRestParameters { ->ICallSignatureWithRestParameters : ICallSignatureWithRestParameters, Symbol(ICallSignatureWithRestParameters, Decl(declFileCallSignatures_0.ts, 11, 1)) +>ICallSignatureWithRestParameters : ICallSignatureWithRestParameters (a: string, ...rests: string[]): string; ->a : string, Symbol(a, Decl(declFileCallSignatures_0.ts, 14, 5)) ->rests : string[], Symbol(rests, Decl(declFileCallSignatures_0.ts, 14, 15)) +>a : string +>rests : string[] } export interface ICallSignatureWithOverloads { ->ICallSignatureWithOverloads : ICallSignatureWithOverloads, Symbol(ICallSignatureWithOverloads, Decl(declFileCallSignatures_0.ts, 15, 1)) +>ICallSignatureWithOverloads : ICallSignatureWithOverloads (a: string): string; ->a : string, Symbol(a, Decl(declFileCallSignatures_0.ts, 18, 5)) +>a : string (a: number): number; ->a : number, Symbol(a, Decl(declFileCallSignatures_0.ts, 19, 5)) +>a : number } export interface ICallSignatureWithTypeParameters { ->ICallSignatureWithTypeParameters : ICallSignatureWithTypeParameters, Symbol(ICallSignatureWithTypeParameters, Decl(declFileCallSignatures_0.ts, 20, 1)) ->T : T, Symbol(T, Decl(declFileCallSignatures_0.ts, 22, 50)) +>ICallSignatureWithTypeParameters : ICallSignatureWithTypeParameters +>T : T /** This comment should appear for foo*/ (a: T): string; ->a : T, Symbol(a, Decl(declFileCallSignatures_0.ts, 24, 5)) ->T : T, Symbol(T, Decl(declFileCallSignatures_0.ts, 22, 50)) +>a : T +>T : T } export interface ICallSignatureWithOwnTypeParametes { ->ICallSignatureWithOwnTypeParametes : ICallSignatureWithOwnTypeParametes, Symbol(ICallSignatureWithOwnTypeParametes, Decl(declFileCallSignatures_0.ts, 25, 1)) +>ICallSignatureWithOwnTypeParametes : ICallSignatureWithOwnTypeParametes (a: T): string; ->T : T, Symbol(T, Decl(declFileCallSignatures_0.ts, 28, 5)) ->ICallSignature : ICallSignature, Symbol(ICallSignature, Decl(declFileCallSignatures_0.ts, 0, 0)) ->a : T, Symbol(a, Decl(declFileCallSignatures_0.ts, 28, 31)) ->T : T, Symbol(T, Decl(declFileCallSignatures_0.ts, 28, 5)) +>T : T +>ICallSignature : ICallSignature +>a : T +>T : T } === tests/cases/compiler/declFileCallSignatures_1.ts === interface IGlobalCallSignature { ->IGlobalCallSignature : IGlobalCallSignature, Symbol(IGlobalCallSignature, Decl(declFileCallSignatures_1.ts, 0, 0)) +>IGlobalCallSignature : IGlobalCallSignature /** This comment should appear for foo*/ (): string; } interface IGlobalCallSignatureWithParameters { ->IGlobalCallSignatureWithParameters : IGlobalCallSignatureWithParameters, Symbol(IGlobalCallSignatureWithParameters, Decl(declFileCallSignatures_1.ts, 3, 1)) +>IGlobalCallSignatureWithParameters : IGlobalCallSignatureWithParameters /** This is comment for function signature*/ (/** this is comment about a*/a: string, ->a : string, Symbol(a, Decl(declFileCallSignatures_1.ts, 7, 5)) +>a : string /** this is comment for b*/ b: number): void; ->b : number, Symbol(b, Decl(declFileCallSignatures_1.ts, 7, 44)) +>b : number } interface IGlobalCallSignatureWithRestParameters { ->IGlobalCallSignatureWithRestParameters : IGlobalCallSignatureWithRestParameters, Symbol(IGlobalCallSignatureWithRestParameters, Decl(declFileCallSignatures_1.ts, 10, 1)) +>IGlobalCallSignatureWithRestParameters : IGlobalCallSignatureWithRestParameters (a: string, ...rests: string[]): string; ->a : string, Symbol(a, Decl(declFileCallSignatures_1.ts, 14, 5)) ->rests : string[], Symbol(rests, Decl(declFileCallSignatures_1.ts, 14, 15)) +>a : string +>rests : string[] } interface IGlobalCallSignatureWithOverloads { ->IGlobalCallSignatureWithOverloads : IGlobalCallSignatureWithOverloads, Symbol(IGlobalCallSignatureWithOverloads, Decl(declFileCallSignatures_1.ts, 16, 1)) +>IGlobalCallSignatureWithOverloads : IGlobalCallSignatureWithOverloads (a: string): string; ->a : string, Symbol(a, Decl(declFileCallSignatures_1.ts, 19, 5)) +>a : string (a: number): number; ->a : number, Symbol(a, Decl(declFileCallSignatures_1.ts, 20, 5)) +>a : number } interface IGlobalCallSignatureWithTypeParameters { ->IGlobalCallSignatureWithTypeParameters : IGlobalCallSignatureWithTypeParameters, Symbol(IGlobalCallSignatureWithTypeParameters, Decl(declFileCallSignatures_1.ts, 21, 1)) ->T : T, Symbol(T, Decl(declFileCallSignatures_1.ts, 23, 49)) +>IGlobalCallSignatureWithTypeParameters : IGlobalCallSignatureWithTypeParameters +>T : T /** This comment should appear for foo*/ (a: T): string; ->a : T, Symbol(a, Decl(declFileCallSignatures_1.ts, 25, 5)) ->T : T, Symbol(T, Decl(declFileCallSignatures_1.ts, 23, 49)) +>a : T +>T : T } interface IGlobalCallSignatureWithOwnTypeParametes { ->IGlobalCallSignatureWithOwnTypeParametes : IGlobalCallSignatureWithOwnTypeParametes, Symbol(IGlobalCallSignatureWithOwnTypeParametes, Decl(declFileCallSignatures_1.ts, 26, 1)) +>IGlobalCallSignatureWithOwnTypeParametes : IGlobalCallSignatureWithOwnTypeParametes (a: T): string; ->T : T, Symbol(T, Decl(declFileCallSignatures_1.ts, 29, 5)) ->IGlobalCallSignature : IGlobalCallSignature, Symbol(IGlobalCallSignature, Decl(declFileCallSignatures_1.ts, 0, 0)) ->a : T, Symbol(a, Decl(declFileCallSignatures_1.ts, 29, 37)) ->T : T, Symbol(T, Decl(declFileCallSignatures_1.ts, 29, 5)) +>T : T +>IGlobalCallSignature : IGlobalCallSignature +>a : T +>T : T } diff --git a/tests/baselines/reference/declFileClassWithIndexSignature.symbols b/tests/baselines/reference/declFileClassWithIndexSignature.symbols new file mode 100644 index 0000000000000..2487a2fae0051 --- /dev/null +++ b/tests/baselines/reference/declFileClassWithIndexSignature.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/declFileClassWithIndexSignature.ts === + +class BlockIntrinsics { +>BlockIntrinsics : Symbol(BlockIntrinsics, Decl(declFileClassWithIndexSignature.ts, 0, 0)) + + [s: string]: string; +>s : Symbol(s, Decl(declFileClassWithIndexSignature.ts, 2, 5)) +} diff --git a/tests/baselines/reference/declFileClassWithIndexSignature.types b/tests/baselines/reference/declFileClassWithIndexSignature.types index b95171acfcb44..16aa108c3c1ee 100644 --- a/tests/baselines/reference/declFileClassWithIndexSignature.types +++ b/tests/baselines/reference/declFileClassWithIndexSignature.types @@ -1,8 +1,8 @@ === tests/cases/compiler/declFileClassWithIndexSignature.ts === class BlockIntrinsics { ->BlockIntrinsics : BlockIntrinsics, Symbol(BlockIntrinsics, Decl(declFileClassWithIndexSignature.ts, 0, 0)) +>BlockIntrinsics : BlockIntrinsics [s: string]: string; ->s : string, Symbol(s, Decl(declFileClassWithIndexSignature.ts, 2, 5)) +>s : string } diff --git a/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.symbols b/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.symbols new file mode 100644 index 0000000000000..af1f56642bc91 --- /dev/null +++ b/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/declFileClassWithStaticMethodReturningConstructor.ts === + +export class Enhancement { +>Enhancement : Symbol(Enhancement, Decl(declFileClassWithStaticMethodReturningConstructor.ts, 0, 0)) + + public static getType() { +>getType : Symbol(Enhancement.getType, Decl(declFileClassWithStaticMethodReturningConstructor.ts, 1, 26)) + + return this; +>this : Symbol(Enhancement, Decl(declFileClassWithStaticMethodReturningConstructor.ts, 0, 0)) + } +} diff --git a/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.types b/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.types index 5ef1285c5c3c1..0f1b21efc9e17 100644 --- a/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.types +++ b/tests/baselines/reference/declFileClassWithStaticMethodReturningConstructor.types @@ -1,12 +1,12 @@ === tests/cases/compiler/declFileClassWithStaticMethodReturningConstructor.ts === export class Enhancement { ->Enhancement : Enhancement, Symbol(Enhancement, Decl(declFileClassWithStaticMethodReturningConstructor.ts, 0, 0)) +>Enhancement : Enhancement public static getType() { ->getType : () => typeof Enhancement, Symbol(Enhancement.getType, Decl(declFileClassWithStaticMethodReturningConstructor.ts, 1, 26)) +>getType : () => typeof Enhancement return this; ->this : typeof Enhancement, Symbol(Enhancement, Decl(declFileClassWithStaticMethodReturningConstructor.ts, 0, 0)) +>this : typeof Enhancement } } diff --git a/tests/baselines/reference/declFileConstructSignatures.symbols b/tests/baselines/reference/declFileConstructSignatures.symbols new file mode 100644 index 0000000000000..a6d98f6feca00 --- /dev/null +++ b/tests/baselines/reference/declFileConstructSignatures.symbols @@ -0,0 +1,121 @@ +=== tests/cases/compiler/declFileConstructSignatures_0.ts === + +export interface IConstructSignature { +>IConstructSignature : Symbol(IConstructSignature, Decl(declFileConstructSignatures_0.ts, 0, 0)) + + /** This comment should appear for foo*/ + new (): string; +} + +export interface IConstructSignatureWithParameters { +>IConstructSignatureWithParameters : Symbol(IConstructSignatureWithParameters, Decl(declFileConstructSignatures_0.ts, 4, 1)) + + /** This is comment for function signature*/ + new (/** this is comment about a*/a: string, +>a : Symbol(a, Decl(declFileConstructSignatures_0.ts, 8, 9)) + + /** this is comment for b*/ + b: number); +>b : Symbol(b, Decl(declFileConstructSignatures_0.ts, 8, 48)) +} + +export interface IConstructSignatureWithRestParameters { +>IConstructSignatureWithRestParameters : Symbol(IConstructSignatureWithRestParameters, Decl(declFileConstructSignatures_0.ts, 11, 1)) + + new (a: string, ...rests: string[]): string; +>a : Symbol(a, Decl(declFileConstructSignatures_0.ts, 14, 9)) +>rests : Symbol(rests, Decl(declFileConstructSignatures_0.ts, 14, 19)) +} + +export interface IConstructSignatureWithOverloads { +>IConstructSignatureWithOverloads : Symbol(IConstructSignatureWithOverloads, Decl(declFileConstructSignatures_0.ts, 15, 1)) + + new (a: string): string; +>a : Symbol(a, Decl(declFileConstructSignatures_0.ts, 18, 9)) + + new (a: number): number; +>a : Symbol(a, Decl(declFileConstructSignatures_0.ts, 19, 9)) +} + +export interface IConstructSignatureWithTypeParameters { +>IConstructSignatureWithTypeParameters : Symbol(IConstructSignatureWithTypeParameters, Decl(declFileConstructSignatures_0.ts, 20, 1)) +>T : Symbol(T, Decl(declFileConstructSignatures_0.ts, 22, 55)) + + /** This comment should appear for foo*/ + new (a: T): T; +>a : Symbol(a, Decl(declFileConstructSignatures_0.ts, 24, 9)) +>T : Symbol(T, Decl(declFileConstructSignatures_0.ts, 22, 55)) +>T : Symbol(T, Decl(declFileConstructSignatures_0.ts, 22, 55)) +} + +export interface IConstructSignatureWithOwnTypeParametes { +>IConstructSignatureWithOwnTypeParametes : Symbol(IConstructSignatureWithOwnTypeParametes, Decl(declFileConstructSignatures_0.ts, 25, 1)) + + new (a: T): T; +>T : Symbol(T, Decl(declFileConstructSignatures_0.ts, 28, 9)) +>IConstructSignature : Symbol(IConstructSignature, Decl(declFileConstructSignatures_0.ts, 0, 0)) +>a : Symbol(a, Decl(declFileConstructSignatures_0.ts, 28, 40)) +>T : Symbol(T, Decl(declFileConstructSignatures_0.ts, 28, 9)) +>T : Symbol(T, Decl(declFileConstructSignatures_0.ts, 28, 9)) +} + +=== tests/cases/compiler/declFileConstructSignatures_1.ts === +interface IGlobalConstructSignature { +>IGlobalConstructSignature : Symbol(IGlobalConstructSignature, Decl(declFileConstructSignatures_1.ts, 0, 0)) + + /** This comment should appear for foo*/ + new (): string; +} + +interface IGlobalConstructSignatureWithParameters { +>IGlobalConstructSignatureWithParameters : Symbol(IGlobalConstructSignatureWithParameters, Decl(declFileConstructSignatures_1.ts, 3, 1)) + + /** This is comment for function signature*/ + new (/** this is comment about a*/a: string, +>a : Symbol(a, Decl(declFileConstructSignatures_1.ts, 7, 9)) + + /** this is comment for b*/ + b: number); +>b : Symbol(b, Decl(declFileConstructSignatures_1.ts, 7, 48)) +} + +interface IGlobalConstructSignatureWithRestParameters { +>IGlobalConstructSignatureWithRestParameters : Symbol(IGlobalConstructSignatureWithRestParameters, Decl(declFileConstructSignatures_1.ts, 10, 1)) + + new (a: string, ...rests: string[]): string; +>a : Symbol(a, Decl(declFileConstructSignatures_1.ts, 14, 9)) +>rests : Symbol(rests, Decl(declFileConstructSignatures_1.ts, 14, 19)) + +} + +interface IGlobalConstructSignatureWithOverloads { +>IGlobalConstructSignatureWithOverloads : Symbol(IGlobalConstructSignatureWithOverloads, Decl(declFileConstructSignatures_1.ts, 16, 1)) + + new (a: string): string; +>a : Symbol(a, Decl(declFileConstructSignatures_1.ts, 19, 9)) + + new (a: number): number; +>a : Symbol(a, Decl(declFileConstructSignatures_1.ts, 20, 9)) +} + +interface IGlobalConstructSignatureWithTypeParameters { +>IGlobalConstructSignatureWithTypeParameters : Symbol(IGlobalConstructSignatureWithTypeParameters, Decl(declFileConstructSignatures_1.ts, 21, 1)) +>T : Symbol(T, Decl(declFileConstructSignatures_1.ts, 23, 54)) + + /** This comment should appear for foo*/ + new (a: T): T; +>a : Symbol(a, Decl(declFileConstructSignatures_1.ts, 25, 9)) +>T : Symbol(T, Decl(declFileConstructSignatures_1.ts, 23, 54)) +>T : Symbol(T, Decl(declFileConstructSignatures_1.ts, 23, 54)) +} + +interface IGlobalConstructSignatureWithOwnTypeParametes { +>IGlobalConstructSignatureWithOwnTypeParametes : Symbol(IGlobalConstructSignatureWithOwnTypeParametes, Decl(declFileConstructSignatures_1.ts, 26, 1)) + + new (a: T): T; +>T : Symbol(T, Decl(declFileConstructSignatures_1.ts, 29, 9)) +>IGlobalConstructSignature : Symbol(IGlobalConstructSignature, Decl(declFileConstructSignatures_1.ts, 0, 0)) +>a : Symbol(a, Decl(declFileConstructSignatures_1.ts, 29, 46)) +>T : Symbol(T, Decl(declFileConstructSignatures_1.ts, 29, 9)) +>T : Symbol(T, Decl(declFileConstructSignatures_1.ts, 29, 9)) +} diff --git a/tests/baselines/reference/declFileConstructSignatures.types b/tests/baselines/reference/declFileConstructSignatures.types index 5904dd6718566..6ee19bfdcf70c 100644 --- a/tests/baselines/reference/declFileConstructSignatures.types +++ b/tests/baselines/reference/declFileConstructSignatures.types @@ -1,121 +1,121 @@ === tests/cases/compiler/declFileConstructSignatures_0.ts === export interface IConstructSignature { ->IConstructSignature : IConstructSignature, Symbol(IConstructSignature, Decl(declFileConstructSignatures_0.ts, 0, 0)) +>IConstructSignature : IConstructSignature /** This comment should appear for foo*/ new (): string; } export interface IConstructSignatureWithParameters { ->IConstructSignatureWithParameters : IConstructSignatureWithParameters, Symbol(IConstructSignatureWithParameters, Decl(declFileConstructSignatures_0.ts, 4, 1)) +>IConstructSignatureWithParameters : IConstructSignatureWithParameters /** This is comment for function signature*/ new (/** this is comment about a*/a: string, ->a : string, Symbol(a, Decl(declFileConstructSignatures_0.ts, 8, 9)) +>a : string /** this is comment for b*/ b: number); ->b : number, Symbol(b, Decl(declFileConstructSignatures_0.ts, 8, 48)) +>b : number } export interface IConstructSignatureWithRestParameters { ->IConstructSignatureWithRestParameters : IConstructSignatureWithRestParameters, Symbol(IConstructSignatureWithRestParameters, Decl(declFileConstructSignatures_0.ts, 11, 1)) +>IConstructSignatureWithRestParameters : IConstructSignatureWithRestParameters new (a: string, ...rests: string[]): string; ->a : string, Symbol(a, Decl(declFileConstructSignatures_0.ts, 14, 9)) ->rests : string[], Symbol(rests, Decl(declFileConstructSignatures_0.ts, 14, 19)) +>a : string +>rests : string[] } export interface IConstructSignatureWithOverloads { ->IConstructSignatureWithOverloads : IConstructSignatureWithOverloads, Symbol(IConstructSignatureWithOverloads, Decl(declFileConstructSignatures_0.ts, 15, 1)) +>IConstructSignatureWithOverloads : IConstructSignatureWithOverloads new (a: string): string; ->a : string, Symbol(a, Decl(declFileConstructSignatures_0.ts, 18, 9)) +>a : string new (a: number): number; ->a : number, Symbol(a, Decl(declFileConstructSignatures_0.ts, 19, 9)) +>a : number } export interface IConstructSignatureWithTypeParameters { ->IConstructSignatureWithTypeParameters : IConstructSignatureWithTypeParameters, Symbol(IConstructSignatureWithTypeParameters, Decl(declFileConstructSignatures_0.ts, 20, 1)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_0.ts, 22, 55)) +>IConstructSignatureWithTypeParameters : IConstructSignatureWithTypeParameters +>T : T /** This comment should appear for foo*/ new (a: T): T; ->a : T, Symbol(a, Decl(declFileConstructSignatures_0.ts, 24, 9)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_0.ts, 22, 55)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_0.ts, 22, 55)) +>a : T +>T : T +>T : T } export interface IConstructSignatureWithOwnTypeParametes { ->IConstructSignatureWithOwnTypeParametes : IConstructSignatureWithOwnTypeParametes, Symbol(IConstructSignatureWithOwnTypeParametes, Decl(declFileConstructSignatures_0.ts, 25, 1)) +>IConstructSignatureWithOwnTypeParametes : IConstructSignatureWithOwnTypeParametes new (a: T): T; ->T : T, Symbol(T, Decl(declFileConstructSignatures_0.ts, 28, 9)) ->IConstructSignature : IConstructSignature, Symbol(IConstructSignature, Decl(declFileConstructSignatures_0.ts, 0, 0)) ->a : T, Symbol(a, Decl(declFileConstructSignatures_0.ts, 28, 40)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_0.ts, 28, 9)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_0.ts, 28, 9)) +>T : T +>IConstructSignature : IConstructSignature +>a : T +>T : T +>T : T } === tests/cases/compiler/declFileConstructSignatures_1.ts === interface IGlobalConstructSignature { ->IGlobalConstructSignature : IGlobalConstructSignature, Symbol(IGlobalConstructSignature, Decl(declFileConstructSignatures_1.ts, 0, 0)) +>IGlobalConstructSignature : IGlobalConstructSignature /** This comment should appear for foo*/ new (): string; } interface IGlobalConstructSignatureWithParameters { ->IGlobalConstructSignatureWithParameters : IGlobalConstructSignatureWithParameters, Symbol(IGlobalConstructSignatureWithParameters, Decl(declFileConstructSignatures_1.ts, 3, 1)) +>IGlobalConstructSignatureWithParameters : IGlobalConstructSignatureWithParameters /** This is comment for function signature*/ new (/** this is comment about a*/a: string, ->a : string, Symbol(a, Decl(declFileConstructSignatures_1.ts, 7, 9)) +>a : string /** this is comment for b*/ b: number); ->b : number, Symbol(b, Decl(declFileConstructSignatures_1.ts, 7, 48)) +>b : number } interface IGlobalConstructSignatureWithRestParameters { ->IGlobalConstructSignatureWithRestParameters : IGlobalConstructSignatureWithRestParameters, Symbol(IGlobalConstructSignatureWithRestParameters, Decl(declFileConstructSignatures_1.ts, 10, 1)) +>IGlobalConstructSignatureWithRestParameters : IGlobalConstructSignatureWithRestParameters new (a: string, ...rests: string[]): string; ->a : string, Symbol(a, Decl(declFileConstructSignatures_1.ts, 14, 9)) ->rests : string[], Symbol(rests, Decl(declFileConstructSignatures_1.ts, 14, 19)) +>a : string +>rests : string[] } interface IGlobalConstructSignatureWithOverloads { ->IGlobalConstructSignatureWithOverloads : IGlobalConstructSignatureWithOverloads, Symbol(IGlobalConstructSignatureWithOverloads, Decl(declFileConstructSignatures_1.ts, 16, 1)) +>IGlobalConstructSignatureWithOverloads : IGlobalConstructSignatureWithOverloads new (a: string): string; ->a : string, Symbol(a, Decl(declFileConstructSignatures_1.ts, 19, 9)) +>a : string new (a: number): number; ->a : number, Symbol(a, Decl(declFileConstructSignatures_1.ts, 20, 9)) +>a : number } interface IGlobalConstructSignatureWithTypeParameters { ->IGlobalConstructSignatureWithTypeParameters : IGlobalConstructSignatureWithTypeParameters, Symbol(IGlobalConstructSignatureWithTypeParameters, Decl(declFileConstructSignatures_1.ts, 21, 1)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_1.ts, 23, 54)) +>IGlobalConstructSignatureWithTypeParameters : IGlobalConstructSignatureWithTypeParameters +>T : T /** This comment should appear for foo*/ new (a: T): T; ->a : T, Symbol(a, Decl(declFileConstructSignatures_1.ts, 25, 9)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_1.ts, 23, 54)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_1.ts, 23, 54)) +>a : T +>T : T +>T : T } interface IGlobalConstructSignatureWithOwnTypeParametes { ->IGlobalConstructSignatureWithOwnTypeParametes : IGlobalConstructSignatureWithOwnTypeParametes, Symbol(IGlobalConstructSignatureWithOwnTypeParametes, Decl(declFileConstructSignatures_1.ts, 26, 1)) +>IGlobalConstructSignatureWithOwnTypeParametes : IGlobalConstructSignatureWithOwnTypeParametes new (a: T): T; ->T : T, Symbol(T, Decl(declFileConstructSignatures_1.ts, 29, 9)) ->IGlobalConstructSignature : IGlobalConstructSignature, Symbol(IGlobalConstructSignature, Decl(declFileConstructSignatures_1.ts, 0, 0)) ->a : T, Symbol(a, Decl(declFileConstructSignatures_1.ts, 29, 46)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_1.ts, 29, 9)) ->T : T, Symbol(T, Decl(declFileConstructSignatures_1.ts, 29, 9)) +>T : T +>IGlobalConstructSignature : IGlobalConstructSignature +>a : T +>T : T +>T : T } diff --git a/tests/baselines/reference/declFileConstructors.symbols b/tests/baselines/reference/declFileConstructors.symbols new file mode 100644 index 0000000000000..bc8f349bb8286 --- /dev/null +++ b/tests/baselines/reference/declFileConstructors.symbols @@ -0,0 +1,172 @@ +=== tests/cases/compiler/declFileConstructors_0.ts === + +export class SimpleConstructor { +>SimpleConstructor : Symbol(SimpleConstructor, Decl(declFileConstructors_0.ts, 0, 0)) + + /** This comment should appear for foo*/ + constructor() { + } +} +export class ConstructorWithParameters { +>ConstructorWithParameters : Symbol(ConstructorWithParameters, Decl(declFileConstructors_0.ts, 5, 1)) + + /** This is comment for function signature*/ + constructor(/** this is comment about a*/a: string, +>a : Symbol(a, Decl(declFileConstructors_0.ts, 8, 16)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileConstructors_0.ts, 8, 55)) + + var d = a; +>d : Symbol(d, Decl(declFileConstructors_0.ts, 11, 11)) +>a : Symbol(a, Decl(declFileConstructors_0.ts, 8, 16)) + } +} + +export class ConstructorWithRestParamters { +>ConstructorWithRestParamters : Symbol(ConstructorWithRestParamters, Decl(declFileConstructors_0.ts, 13, 1)) + + constructor(a: string, ...rests: string[]) { +>a : Symbol(a, Decl(declFileConstructors_0.ts, 16, 16)) +>rests : Symbol(rests, Decl(declFileConstructors_0.ts, 16, 26)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileConstructors_0.ts, 16, 16)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileConstructors_0.ts, 16, 26)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } +} + +export class ConstructorWithOverloads { +>ConstructorWithOverloads : Symbol(ConstructorWithOverloads, Decl(declFileConstructors_0.ts, 19, 1)) + + constructor(a: string); +>a : Symbol(a, Decl(declFileConstructors_0.ts, 22, 16)) + + constructor(a: number); +>a : Symbol(a, Decl(declFileConstructors_0.ts, 23, 16)) + + constructor(a: any) { +>a : Symbol(a, Decl(declFileConstructors_0.ts, 24, 16)) + } +} + +export class ConstructorWithPublicParameterProperty { +>ConstructorWithPublicParameterProperty : Symbol(ConstructorWithPublicParameterProperty, Decl(declFileConstructors_0.ts, 26, 1)) + + constructor(public x: string) { +>x : Symbol(x, Decl(declFileConstructors_0.ts, 29, 16)) + } +} + +export class ConstructorWithPrivateParameterProperty { +>ConstructorWithPrivateParameterProperty : Symbol(ConstructorWithPrivateParameterProperty, Decl(declFileConstructors_0.ts, 31, 1)) + + constructor(private x: string) { +>x : Symbol(x, Decl(declFileConstructors_0.ts, 34, 16)) + } +} + +export class ConstructorWithOptionalParameterProperty { +>ConstructorWithOptionalParameterProperty : Symbol(ConstructorWithOptionalParameterProperty, Decl(declFileConstructors_0.ts, 36, 1)) + + constructor(public x?: string) { +>x : Symbol(x, Decl(declFileConstructors_0.ts, 39, 16)) + } +} + +export class ConstructorWithParameterInitializer { +>ConstructorWithParameterInitializer : Symbol(ConstructorWithParameterInitializer, Decl(declFileConstructors_0.ts, 41, 1)) + + constructor(public x = "hello") { +>x : Symbol(x, Decl(declFileConstructors_0.ts, 44, 16)) + } +} + +=== tests/cases/compiler/declFileConstructors_1.ts === +class GlobalSimpleConstructor { +>GlobalSimpleConstructor : Symbol(GlobalSimpleConstructor, Decl(declFileConstructors_1.ts, 0, 0)) + + /** This comment should appear for foo*/ + constructor() { + } +} +class GlobalConstructorWithParameters { +>GlobalConstructorWithParameters : Symbol(GlobalConstructorWithParameters, Decl(declFileConstructors_1.ts, 4, 1)) + + /** This is comment for function signature*/ + constructor(/** this is comment about a*/a: string, +>a : Symbol(a, Decl(declFileConstructors_1.ts, 7, 16)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileConstructors_1.ts, 7, 55)) + + var d = a; +>d : Symbol(d, Decl(declFileConstructors_1.ts, 10, 11)) +>a : Symbol(a, Decl(declFileConstructors_1.ts, 7, 16)) + } +} + +class GlobalConstructorWithRestParamters { +>GlobalConstructorWithRestParamters : Symbol(GlobalConstructorWithRestParamters, Decl(declFileConstructors_1.ts, 12, 1)) + + constructor(a: string, ...rests: string[]) { +>a : Symbol(a, Decl(declFileConstructors_1.ts, 15, 16)) +>rests : Symbol(rests, Decl(declFileConstructors_1.ts, 15, 26)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileConstructors_1.ts, 15, 16)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileConstructors_1.ts, 15, 26)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } +} + +class GlobalConstructorWithOverloads { +>GlobalConstructorWithOverloads : Symbol(GlobalConstructorWithOverloads, Decl(declFileConstructors_1.ts, 18, 1)) + + constructor(a: string); +>a : Symbol(a, Decl(declFileConstructors_1.ts, 21, 16)) + + constructor(a: number); +>a : Symbol(a, Decl(declFileConstructors_1.ts, 22, 16)) + + constructor(a: any) { +>a : Symbol(a, Decl(declFileConstructors_1.ts, 23, 16)) + } +} + +class GlobalConstructorWithPublicParameterProperty { +>GlobalConstructorWithPublicParameterProperty : Symbol(GlobalConstructorWithPublicParameterProperty, Decl(declFileConstructors_1.ts, 25, 1)) + + constructor(public x: string) { +>x : Symbol(x, Decl(declFileConstructors_1.ts, 28, 16)) + } +} + +class GlobalConstructorWithPrivateParameterProperty { +>GlobalConstructorWithPrivateParameterProperty : Symbol(GlobalConstructorWithPrivateParameterProperty, Decl(declFileConstructors_1.ts, 30, 1)) + + constructor(private x: string) { +>x : Symbol(x, Decl(declFileConstructors_1.ts, 33, 16)) + } +} + +class GlobalConstructorWithOptionalParameterProperty { +>GlobalConstructorWithOptionalParameterProperty : Symbol(GlobalConstructorWithOptionalParameterProperty, Decl(declFileConstructors_1.ts, 35, 1)) + + constructor(public x?: string) { +>x : Symbol(x, Decl(declFileConstructors_1.ts, 38, 16)) + } +} + +class GlobalConstructorWithParameterInitializer { +>GlobalConstructorWithParameterInitializer : Symbol(GlobalConstructorWithParameterInitializer, Decl(declFileConstructors_1.ts, 40, 1)) + + constructor(public x = "hello") { +>x : Symbol(x, Decl(declFileConstructors_1.ts, 43, 16)) + } +} diff --git a/tests/baselines/reference/declFileConstructors.types b/tests/baselines/reference/declFileConstructors.types index f399f753c6ab9..68782eb3617cf 100644 --- a/tests/baselines/reference/declFileConstructors.types +++ b/tests/baselines/reference/declFileConstructors.types @@ -1,180 +1,180 @@ === tests/cases/compiler/declFileConstructors_0.ts === export class SimpleConstructor { ->SimpleConstructor : SimpleConstructor, Symbol(SimpleConstructor, Decl(declFileConstructors_0.ts, 0, 0)) +>SimpleConstructor : SimpleConstructor /** This comment should appear for foo*/ constructor() { } } export class ConstructorWithParameters { ->ConstructorWithParameters : ConstructorWithParameters, Symbol(ConstructorWithParameters, Decl(declFileConstructors_0.ts, 5, 1)) +>ConstructorWithParameters : ConstructorWithParameters /** This is comment for function signature*/ constructor(/** this is comment about a*/a: string, ->a : string, Symbol(a, Decl(declFileConstructors_0.ts, 8, 16)) +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileConstructors_0.ts, 8, 55)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileConstructors_0.ts, 11, 11)) ->a : string, Symbol(a, Decl(declFileConstructors_0.ts, 8, 16)) +>d : string +>a : string } } export class ConstructorWithRestParamters { ->ConstructorWithRestParamters : ConstructorWithRestParamters, Symbol(ConstructorWithRestParamters, Decl(declFileConstructors_0.ts, 13, 1)) +>ConstructorWithRestParamters : ConstructorWithRestParamters constructor(a: string, ...rests: string[]) { ->a : string, Symbol(a, Decl(declFileConstructors_0.ts, 16, 16)) ->rests : string[], Symbol(rests, Decl(declFileConstructors_0.ts, 16, 26)) +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileConstructors_0.ts, 16, 16)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileConstructors_0.ts, 16, 26)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } } export class ConstructorWithOverloads { ->ConstructorWithOverloads : ConstructorWithOverloads, Symbol(ConstructorWithOverloads, Decl(declFileConstructors_0.ts, 19, 1)) +>ConstructorWithOverloads : ConstructorWithOverloads constructor(a: string); ->a : string, Symbol(a, Decl(declFileConstructors_0.ts, 22, 16)) +>a : string constructor(a: number); ->a : number, Symbol(a, Decl(declFileConstructors_0.ts, 23, 16)) +>a : number constructor(a: any) { ->a : any, Symbol(a, Decl(declFileConstructors_0.ts, 24, 16)) +>a : any } } export class ConstructorWithPublicParameterProperty { ->ConstructorWithPublicParameterProperty : ConstructorWithPublicParameterProperty, Symbol(ConstructorWithPublicParameterProperty, Decl(declFileConstructors_0.ts, 26, 1)) +>ConstructorWithPublicParameterProperty : ConstructorWithPublicParameterProperty constructor(public x: string) { ->x : string, Symbol(x, Decl(declFileConstructors_0.ts, 29, 16)) +>x : string } } export class ConstructorWithPrivateParameterProperty { ->ConstructorWithPrivateParameterProperty : ConstructorWithPrivateParameterProperty, Symbol(ConstructorWithPrivateParameterProperty, Decl(declFileConstructors_0.ts, 31, 1)) +>ConstructorWithPrivateParameterProperty : ConstructorWithPrivateParameterProperty constructor(private x: string) { ->x : string, Symbol(x, Decl(declFileConstructors_0.ts, 34, 16)) +>x : string } } export class ConstructorWithOptionalParameterProperty { ->ConstructorWithOptionalParameterProperty : ConstructorWithOptionalParameterProperty, Symbol(ConstructorWithOptionalParameterProperty, Decl(declFileConstructors_0.ts, 36, 1)) +>ConstructorWithOptionalParameterProperty : ConstructorWithOptionalParameterProperty constructor(public x?: string) { ->x : string, Symbol(x, Decl(declFileConstructors_0.ts, 39, 16)) +>x : string } } export class ConstructorWithParameterInitializer { ->ConstructorWithParameterInitializer : ConstructorWithParameterInitializer, Symbol(ConstructorWithParameterInitializer, Decl(declFileConstructors_0.ts, 41, 1)) +>ConstructorWithParameterInitializer : ConstructorWithParameterInitializer constructor(public x = "hello") { ->x : string, Symbol(x, Decl(declFileConstructors_0.ts, 44, 16)) +>x : string >"hello" : string } } === tests/cases/compiler/declFileConstructors_1.ts === class GlobalSimpleConstructor { ->GlobalSimpleConstructor : GlobalSimpleConstructor, Symbol(GlobalSimpleConstructor, Decl(declFileConstructors_1.ts, 0, 0)) +>GlobalSimpleConstructor : GlobalSimpleConstructor /** This comment should appear for foo*/ constructor() { } } class GlobalConstructorWithParameters { ->GlobalConstructorWithParameters : GlobalConstructorWithParameters, Symbol(GlobalConstructorWithParameters, Decl(declFileConstructors_1.ts, 4, 1)) +>GlobalConstructorWithParameters : GlobalConstructorWithParameters /** This is comment for function signature*/ constructor(/** this is comment about a*/a: string, ->a : string, Symbol(a, Decl(declFileConstructors_1.ts, 7, 16)) +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileConstructors_1.ts, 7, 55)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileConstructors_1.ts, 10, 11)) ->a : string, Symbol(a, Decl(declFileConstructors_1.ts, 7, 16)) +>d : string +>a : string } } class GlobalConstructorWithRestParamters { ->GlobalConstructorWithRestParamters : GlobalConstructorWithRestParamters, Symbol(GlobalConstructorWithRestParamters, Decl(declFileConstructors_1.ts, 12, 1)) +>GlobalConstructorWithRestParamters : GlobalConstructorWithRestParamters constructor(a: string, ...rests: string[]) { ->a : string, Symbol(a, Decl(declFileConstructors_1.ts, 15, 16)) ->rests : string[], Symbol(rests, Decl(declFileConstructors_1.ts, 15, 26)) +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileConstructors_1.ts, 15, 16)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileConstructors_1.ts, 15, 26)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } } class GlobalConstructorWithOverloads { ->GlobalConstructorWithOverloads : GlobalConstructorWithOverloads, Symbol(GlobalConstructorWithOverloads, Decl(declFileConstructors_1.ts, 18, 1)) +>GlobalConstructorWithOverloads : GlobalConstructorWithOverloads constructor(a: string); ->a : string, Symbol(a, Decl(declFileConstructors_1.ts, 21, 16)) +>a : string constructor(a: number); ->a : number, Symbol(a, Decl(declFileConstructors_1.ts, 22, 16)) +>a : number constructor(a: any) { ->a : any, Symbol(a, Decl(declFileConstructors_1.ts, 23, 16)) +>a : any } } class GlobalConstructorWithPublicParameterProperty { ->GlobalConstructorWithPublicParameterProperty : GlobalConstructorWithPublicParameterProperty, Symbol(GlobalConstructorWithPublicParameterProperty, Decl(declFileConstructors_1.ts, 25, 1)) +>GlobalConstructorWithPublicParameterProperty : GlobalConstructorWithPublicParameterProperty constructor(public x: string) { ->x : string, Symbol(x, Decl(declFileConstructors_1.ts, 28, 16)) +>x : string } } class GlobalConstructorWithPrivateParameterProperty { ->GlobalConstructorWithPrivateParameterProperty : GlobalConstructorWithPrivateParameterProperty, Symbol(GlobalConstructorWithPrivateParameterProperty, Decl(declFileConstructors_1.ts, 30, 1)) +>GlobalConstructorWithPrivateParameterProperty : GlobalConstructorWithPrivateParameterProperty constructor(private x: string) { ->x : string, Symbol(x, Decl(declFileConstructors_1.ts, 33, 16)) +>x : string } } class GlobalConstructorWithOptionalParameterProperty { ->GlobalConstructorWithOptionalParameterProperty : GlobalConstructorWithOptionalParameterProperty, Symbol(GlobalConstructorWithOptionalParameterProperty, Decl(declFileConstructors_1.ts, 35, 1)) +>GlobalConstructorWithOptionalParameterProperty : GlobalConstructorWithOptionalParameterProperty constructor(public x?: string) { ->x : string, Symbol(x, Decl(declFileConstructors_1.ts, 38, 16)) +>x : string } } class GlobalConstructorWithParameterInitializer { ->GlobalConstructorWithParameterInitializer : GlobalConstructorWithParameterInitializer, Symbol(GlobalConstructorWithParameterInitializer, Decl(declFileConstructors_1.ts, 40, 1)) +>GlobalConstructorWithParameterInitializer : GlobalConstructorWithParameterInitializer constructor(public x = "hello") { ->x : string, Symbol(x, Decl(declFileConstructors_1.ts, 43, 16)) +>x : string >"hello" : string } } diff --git a/tests/baselines/reference/declFileEnumUsedAsValue.symbols b/tests/baselines/reference/declFileEnumUsedAsValue.symbols new file mode 100644 index 0000000000000..d24852c6260c6 --- /dev/null +++ b/tests/baselines/reference/declFileEnumUsedAsValue.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/declFileEnumUsedAsValue.ts === + +enum e { +>e : Symbol(e, Decl(declFileEnumUsedAsValue.ts, 0, 0)) + + a, +>a : Symbol(e.a, Decl(declFileEnumUsedAsValue.ts, 1, 8)) + + b, +>b : Symbol(e.b, Decl(declFileEnumUsedAsValue.ts, 2, 6)) + + c +>c : Symbol(e.c, Decl(declFileEnumUsedAsValue.ts, 3, 6)) +} +var x = e; +>x : Symbol(x, Decl(declFileEnumUsedAsValue.ts, 6, 3)) +>e : Symbol(e, Decl(declFileEnumUsedAsValue.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileEnumUsedAsValue.types b/tests/baselines/reference/declFileEnumUsedAsValue.types index d776941db7700..19aa3de4331fe 100644 --- a/tests/baselines/reference/declFileEnumUsedAsValue.types +++ b/tests/baselines/reference/declFileEnumUsedAsValue.types @@ -1,18 +1,18 @@ === tests/cases/compiler/declFileEnumUsedAsValue.ts === enum e { ->e : e, Symbol(e, Decl(declFileEnumUsedAsValue.ts, 0, 0)) +>e : e a, ->a : e, Symbol(e.a, Decl(declFileEnumUsedAsValue.ts, 1, 8)) +>a : e b, ->b : e, Symbol(e.b, Decl(declFileEnumUsedAsValue.ts, 2, 6)) +>b : e c ->c : e, Symbol(e.c, Decl(declFileEnumUsedAsValue.ts, 3, 6)) +>c : e } var x = e; ->x : typeof e, Symbol(x, Decl(declFileEnumUsedAsValue.ts, 6, 3)) ->e : typeof e, Symbol(e, Decl(declFileEnumUsedAsValue.ts, 0, 0)) +>x : typeof e +>e : typeof e diff --git a/tests/baselines/reference/declFileEnums.symbols b/tests/baselines/reference/declFileEnums.symbols new file mode 100644 index 0000000000000..22d5ee6bb63a4 --- /dev/null +++ b/tests/baselines/reference/declFileEnums.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/declFileEnums.ts === + +enum e1 { +>e1 : Symbol(e1, Decl(declFileEnums.ts, 0, 0)) + + a, +>a : Symbol(e1.a, Decl(declFileEnums.ts, 1, 9)) + + b, +>b : Symbol(e1.b, Decl(declFileEnums.ts, 2, 6)) + + c +>c : Symbol(e1.c, Decl(declFileEnums.ts, 3, 6)) +} + +enum e2 { +>e2 : Symbol(e2, Decl(declFileEnums.ts, 5, 1)) + + a = 10, +>a : Symbol(e2.a, Decl(declFileEnums.ts, 7, 9)) + + b = a + 2, +>b : Symbol(e2.b, Decl(declFileEnums.ts, 8, 11)) +>a : Symbol(e2.a, Decl(declFileEnums.ts, 7, 9)) + + c = 10, +>c : Symbol(e2.c, Decl(declFileEnums.ts, 9, 14)) +} + +enum e3 { +>e3 : Symbol(e3, Decl(declFileEnums.ts, 11, 1)) + + a = 10, +>a : Symbol(e3.a, Decl(declFileEnums.ts, 13, 9)) + + b = Math.PI, +>b : Symbol(e3.b, Decl(declFileEnums.ts, 14, 11)) +>Math.PI : Symbol(Math.PI, Decl(lib.d.ts, 534, 19)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>PI : Symbol(Math.PI, Decl(lib.d.ts, 534, 19)) + + c = a + 3 +>c : Symbol(e3.c, Decl(declFileEnums.ts, 15, 16)) +>a : Symbol(e3.a, Decl(declFileEnums.ts, 13, 9)) +} + +enum e4 { +>e4 : Symbol(e4, Decl(declFileEnums.ts, 17, 1)) + + a, +>a : Symbol(e4.a, Decl(declFileEnums.ts, 19, 9)) + + b, +>b : Symbol(e4.b, Decl(declFileEnums.ts, 20, 6)) + + c, +>c : Symbol(e4.c, Decl(declFileEnums.ts, 21, 6)) + + d = 10, +>d : Symbol(e4.d, Decl(declFileEnums.ts, 22, 6)) + + e +>e : Symbol(e4.e, Decl(declFileEnums.ts, 23, 11)) +} + +enum e5 { +>e5 : Symbol(e5, Decl(declFileEnums.ts, 25, 1)) + + "Friday", + "Saturday", + "Sunday", + "Weekend days" +} + + + diff --git a/tests/baselines/reference/declFileEnums.types b/tests/baselines/reference/declFileEnums.types index 7a97a7c31216b..5fb0d0736be7d 100644 --- a/tests/baselines/reference/declFileEnums.types +++ b/tests/baselines/reference/declFileEnums.types @@ -1,78 +1,78 @@ === tests/cases/compiler/declFileEnums.ts === enum e1 { ->e1 : e1, Symbol(e1, Decl(declFileEnums.ts, 0, 0)) +>e1 : e1 a, ->a : e1, Symbol(e1.a, Decl(declFileEnums.ts, 1, 9)) +>a : e1 b, ->b : e1, Symbol(e1.b, Decl(declFileEnums.ts, 2, 6)) +>b : e1 c ->c : e1, Symbol(e1.c, Decl(declFileEnums.ts, 3, 6)) +>c : e1 } enum e2 { ->e2 : e2, Symbol(e2, Decl(declFileEnums.ts, 5, 1)) +>e2 : e2 a = 10, ->a : e2, Symbol(e2.a, Decl(declFileEnums.ts, 7, 9)) +>a : e2 >10 : number b = a + 2, ->b : e2, Symbol(e2.b, Decl(declFileEnums.ts, 8, 11)) +>b : e2 >a + 2 : number ->a : e2, Symbol(e2.a, Decl(declFileEnums.ts, 7, 9)) +>a : e2 >2 : number c = 10, ->c : e2, Symbol(e2.c, Decl(declFileEnums.ts, 9, 14)) +>c : e2 >10 : number } enum e3 { ->e3 : e3, Symbol(e3, Decl(declFileEnums.ts, 11, 1)) +>e3 : e3 a = 10, ->a : e3, Symbol(e3.a, Decl(declFileEnums.ts, 13, 9)) +>a : e3 >10 : number b = Math.PI, ->b : e3, Symbol(e3.b, Decl(declFileEnums.ts, 14, 11)) ->Math.PI : number, Symbol(Math.PI, Decl(lib.d.ts, 534, 19)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->PI : number, Symbol(Math.PI, Decl(lib.d.ts, 534, 19)) +>b : e3 +>Math.PI : number +>Math : Math +>PI : number c = a + 3 ->c : e3, Symbol(e3.c, Decl(declFileEnums.ts, 15, 16)) +>c : e3 >a + 3 : number ->a : e3, Symbol(e3.a, Decl(declFileEnums.ts, 13, 9)) +>a : e3 >3 : number } enum e4 { ->e4 : e4, Symbol(e4, Decl(declFileEnums.ts, 17, 1)) +>e4 : e4 a, ->a : e4, Symbol(e4.a, Decl(declFileEnums.ts, 19, 9)) +>a : e4 b, ->b : e4, Symbol(e4.b, Decl(declFileEnums.ts, 20, 6)) +>b : e4 c, ->c : e4, Symbol(e4.c, Decl(declFileEnums.ts, 21, 6)) +>c : e4 d = 10, ->d : e4, Symbol(e4.d, Decl(declFileEnums.ts, 22, 6)) +>d : e4 >10 : number e ->e : e4, Symbol(e4.e, Decl(declFileEnums.ts, 23, 11)) +>e : e4 } enum e5 { ->e5 : e5, Symbol(e5, Decl(declFileEnums.ts, 25, 1)) +>e5 : e5 "Friday", "Saturday", diff --git a/tests/baselines/reference/declFileExportAssignmentImportInternalModule.symbols b/tests/baselines/reference/declFileExportAssignmentImportInternalModule.symbols new file mode 100644 index 0000000000000..5953d446478d1 --- /dev/null +++ b/tests/baselines/reference/declFileExportAssignmentImportInternalModule.symbols @@ -0,0 +1,58 @@ +=== tests/cases/compiler/declFileExportAssignmentImportInternalModule.ts === +module m3 { +>m3 : Symbol(m3, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 0)) + + export module m2 { +>m2 : Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) + + export interface connectModule { +>connectModule : Symbol(connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) + + (res, req, next): void; +>res : Symbol(res, Decl(declFileExportAssignmentImportInternalModule.ts, 3, 13)) +>req : Symbol(req, Decl(declFileExportAssignmentImportInternalModule.ts, 3, 17)) +>next : Symbol(next, Decl(declFileExportAssignmentImportInternalModule.ts, 3, 22)) + } + export interface connectExport { +>connectExport : Symbol(connectExport, Decl(declFileExportAssignmentImportInternalModule.ts, 4, 9)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(declFileExportAssignmentImportInternalModule.ts, 5, 40)) +>mod : Symbol(mod, Decl(declFileExportAssignmentImportInternalModule.ts, 6, 18)) +>connectModule : Symbol(connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) +>connectExport : Symbol(connectExport, Decl(declFileExportAssignmentImportInternalModule.ts, 4, 9)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(declFileExportAssignmentImportInternalModule.ts, 6, 55)) +>port : Symbol(port, Decl(declFileExportAssignmentImportInternalModule.ts, 7, 21)) + } + + } + + export var server: { +>server : Symbol(server, Decl(declFileExportAssignmentImportInternalModule.ts, 12, 14)) + + (): m2.connectExport; +>m2 : Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) +>connectExport : Symbol(m2.connectExport, Decl(declFileExportAssignmentImportInternalModule.ts, 4, 9)) + + test1: m2.connectModule; +>test1 : Symbol(test1, Decl(declFileExportAssignmentImportInternalModule.ts, 13, 29)) +>m2 : Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) +>connectModule : Symbol(m2.connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) + + test2(): m2.connectModule; +>test2 : Symbol(test2, Decl(declFileExportAssignmentImportInternalModule.ts, 14, 32)) +>m2 : Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) +>connectModule : Symbol(m2.connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) + + }; +} + +import m = m3 +>m : Symbol(m, Decl(declFileExportAssignmentImportInternalModule.ts, 17, 1)) +>m3 : Symbol(m3, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 0)) + +export = m; +>m : Symbol(m, Decl(declFileExportAssignmentImportInternalModule.ts, 17, 1)) + diff --git a/tests/baselines/reference/declFileExportAssignmentImportInternalModule.types b/tests/baselines/reference/declFileExportAssignmentImportInternalModule.types index 8d32570d206bd..6c3b7d82664a7 100644 --- a/tests/baselines/reference/declFileExportAssignmentImportInternalModule.types +++ b/tests/baselines/reference/declFileExportAssignmentImportInternalModule.types @@ -1,58 +1,58 @@ === tests/cases/compiler/declFileExportAssignmentImportInternalModule.ts === module m3 { ->m3 : typeof m3, Symbol(m3, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 0)) +>m3 : typeof m3 export module m2 { ->m2 : any, Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) +>m2 : any export interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(declFileExportAssignmentImportInternalModule.ts, 3, 13)) ->req : any, Symbol(req, Decl(declFileExportAssignmentImportInternalModule.ts, 3, 17)) ->next : any, Symbol(next, Decl(declFileExportAssignmentImportInternalModule.ts, 3, 22)) +>res : any +>req : any +>next : any } export interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(declFileExportAssignmentImportInternalModule.ts, 4, 9)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(declFileExportAssignmentImportInternalModule.ts, 5, 40)) ->mod : connectModule, Symbol(mod, Decl(declFileExportAssignmentImportInternalModule.ts, 6, 18)) ->connectModule : connectModule, Symbol(connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) ->connectExport : connectExport, Symbol(connectExport, Decl(declFileExportAssignmentImportInternalModule.ts, 4, 9)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(declFileExportAssignmentImportInternalModule.ts, 6, 55)) ->port : number, Symbol(port, Decl(declFileExportAssignmentImportInternalModule.ts, 7, 21)) +>listen : (port: number) => void +>port : number } } export var server: { ->server : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(server, Decl(declFileExportAssignmentImportInternalModule.ts, 12, 14)) +>server : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } (): m2.connectExport; ->m2 : any, Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) ->connectExport : m2.connectExport, Symbol(m2.connectExport, Decl(declFileExportAssignmentImportInternalModule.ts, 4, 9)) +>m2 : any +>connectExport : m2.connectExport test1: m2.connectModule; ->test1 : m2.connectModule, Symbol(test1, Decl(declFileExportAssignmentImportInternalModule.ts, 13, 29)) ->m2 : any, Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) +>test1 : m2.connectModule +>m2 : any +>connectModule : m2.connectModule test2(): m2.connectModule; ->test2 : () => m2.connectModule, Symbol(test2, Decl(declFileExportAssignmentImportInternalModule.ts, 14, 32)) ->m2 : any, Symbol(m2, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 11)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declFileExportAssignmentImportInternalModule.ts, 1, 22)) +>test2 : () => m2.connectModule +>m2 : any +>connectModule : m2.connectModule }; } import m = m3 ->m : typeof m3, Symbol(m, Decl(declFileExportAssignmentImportInternalModule.ts, 17, 1)) ->m3 : typeof m3, Symbol(m3, Decl(declFileExportAssignmentImportInternalModule.ts, 0, 0)) +>m : typeof m3 +>m3 : typeof m3 export = m; ->m : typeof m3, Symbol(m, Decl(declFileExportAssignmentImportInternalModule.ts, 17, 1)) +>m : typeof m3 diff --git a/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.symbols b/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.symbols new file mode 100644 index 0000000000000..d8801ff3fe33c --- /dev/null +++ b/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/declFileExportAssignmentOfGenericInterface_1.ts === +import a = require('declFileExportAssignmentOfGenericInterface_0'); +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) + +export var x: a>; +>x : Symbol(x, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 1, 10)) +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) + +x.a; +>x.a : Symbol(a.a, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 18)) +>x : Symbol(x, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 1, 10)) +>a : Symbol(a.a, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 18)) + +=== tests/cases/compiler/declFileExportAssignmentOfGenericInterface_0.ts === + +interface Foo { +>Foo : Symbol(Foo, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 0, 0)) +>T : Symbol(T, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 14)) + + a: string; +>a : Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 18)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.types b/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.types index dee773a309865..59c604540b99e 100644 --- a/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.types +++ b/tests/baselines/reference/declFileExportAssignmentOfGenericInterface.types @@ -1,26 +1,26 @@ === tests/cases/compiler/declFileExportAssignmentOfGenericInterface_1.ts === import a = require('declFileExportAssignmentOfGenericInterface_0'); ->a : any, Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) +>a : any export var x: a>; ->x : a>, Symbol(x, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 1, 10)) ->a : a, Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) ->a : a, Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 0, 0)) +>x : a> +>a : a +>a : a x.a; ->x.a : string, Symbol(a.a, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 18)) ->x : a>, Symbol(x, Decl(declFileExportAssignmentOfGenericInterface_1.ts, 1, 10)) ->a : string, Symbol(a.a, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 18)) +>x.a : string +>x : a> +>a : string === tests/cases/compiler/declFileExportAssignmentOfGenericInterface_0.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 0, 0)) ->T : T, Symbol(T, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 14)) +>Foo : Foo +>T : T a: string; ->a : string, Symbol(a, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 1, 18)) +>a : string } export = Foo; ->Foo : Foo, Symbol(Foo, Decl(declFileExportAssignmentOfGenericInterface_0.ts, 0, 0)) +>Foo : Foo diff --git a/tests/baselines/reference/declFileExportImportChain.symbols b/tests/baselines/reference/declFileExportImportChain.symbols new file mode 100644 index 0000000000000..6e59fa2c167e9 --- /dev/null +++ b/tests/baselines/reference/declFileExportImportChain.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/declFileExportImportChain_d.ts === +import c = require("declFileExportImportChain_c"); +>c : Symbol(c, Decl(declFileExportImportChain_d.ts, 0, 0)) + +export var x: c.b1.a.m2.c1; +>x : Symbol(x, Decl(declFileExportImportChain_d.ts, 1, 10)) +>c : Symbol(c, Decl(declFileExportImportChain_d.ts, 0, 0)) +>b1 : Symbol(c.b1, Decl(declFileExportImportChain_c.ts, 0, 0)) +>a : Symbol(c.b1.a, Decl(declFileExportImportChain_b.ts, 0, 0)) +>m2 : Symbol(c.b1.a.m2, Decl(declFileExportImportChain_a.ts, 1, 11)) +>c1 : Symbol(c.b1.a.m2.c1, Decl(declFileExportImportChain_a.ts, 2, 22)) + +=== tests/cases/compiler/declFileExportImportChain_a.ts === + +module m1 { +>m1 : Symbol(m1, Decl(declFileExportImportChain_a.ts, 0, 0)) + + export module m2 { +>m2 : Symbol(m2, Decl(declFileExportImportChain_a.ts, 1, 11)) + + export class c1 { +>c1 : Symbol(c1, Decl(declFileExportImportChain_a.ts, 2, 22)) + } + } +} +export = m1; +>m1 : Symbol(m1, Decl(declFileExportImportChain_a.ts, 0, 0)) + +=== tests/cases/compiler/declFileExportImportChain_b.ts === +export import a = require("declFileExportImportChain_a"); +>a : Symbol(a, Decl(declFileExportImportChain_b.ts, 0, 0)) + +=== tests/cases/compiler/declFileExportImportChain_b1.ts === +import b = require("declFileExportImportChain_b"); +>b : Symbol(b, Decl(declFileExportImportChain_b1.ts, 0, 0)) + +export = b; +>b : Symbol(b, Decl(declFileExportImportChain_b1.ts, 0, 0)) + +=== tests/cases/compiler/declFileExportImportChain_c.ts === +export import b1 = require("declFileExportImportChain_b1"); +>b1 : Symbol(b1, Decl(declFileExportImportChain_c.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileExportImportChain.types b/tests/baselines/reference/declFileExportImportChain.types index 793fade6e99ca..f9601adb14706 100644 --- a/tests/baselines/reference/declFileExportImportChain.types +++ b/tests/baselines/reference/declFileExportImportChain.types @@ -1,43 +1,43 @@ === tests/cases/compiler/declFileExportImportChain_d.ts === import c = require("declFileExportImportChain_c"); ->c : typeof c, Symbol(c, Decl(declFileExportImportChain_d.ts, 0, 0)) +>c : typeof c export var x: c.b1.a.m2.c1; ->x : c.b1.a.m2.c1, Symbol(x, Decl(declFileExportImportChain_d.ts, 1, 10)) ->c : any, Symbol(c, Decl(declFileExportImportChain_d.ts, 0, 0)) ->b1 : any, Symbol(c.b1, Decl(declFileExportImportChain_c.ts, 0, 0)) ->a : any, Symbol(c.b1.a, Decl(declFileExportImportChain_b.ts, 0, 0)) ->m2 : any, Symbol(c.b1.a.m2, Decl(declFileExportImportChain_a.ts, 1, 11)) ->c1 : c.b1.a.m2.c1, Symbol(c.b1.a.m2.c1, Decl(declFileExportImportChain_a.ts, 2, 22)) +>x : c.b1.a.m2.c1 +>c : any +>b1 : any +>a : any +>m2 : any +>c1 : c.b1.a.m2.c1 === tests/cases/compiler/declFileExportImportChain_a.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(declFileExportImportChain_a.ts, 0, 0)) +>m1 : typeof m1 export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(declFileExportImportChain_a.ts, 1, 11)) +>m2 : typeof m2 export class c1 { ->c1 : c1, Symbol(c1, Decl(declFileExportImportChain_a.ts, 2, 22)) +>c1 : c1 } } } export = m1; ->m1 : typeof m1, Symbol(m1, Decl(declFileExportImportChain_a.ts, 0, 0)) +>m1 : typeof m1 === tests/cases/compiler/declFileExportImportChain_b.ts === export import a = require("declFileExportImportChain_a"); ->a : typeof a, Symbol(a, Decl(declFileExportImportChain_b.ts, 0, 0)) +>a : typeof a === tests/cases/compiler/declFileExportImportChain_b1.ts === import b = require("declFileExportImportChain_b"); ->b : typeof b, Symbol(b, Decl(declFileExportImportChain_b1.ts, 0, 0)) +>b : typeof b export = b; ->b : typeof b, Symbol(b, Decl(declFileExportImportChain_b1.ts, 0, 0)) +>b : typeof b === tests/cases/compiler/declFileExportImportChain_c.ts === export import b1 = require("declFileExportImportChain_b1"); ->b1 : typeof b1, Symbol(b1, Decl(declFileExportImportChain_c.ts, 0, 0)) +>b1 : typeof b1 diff --git a/tests/baselines/reference/declFileExportImportChain2.symbols b/tests/baselines/reference/declFileExportImportChain2.symbols new file mode 100644 index 0000000000000..e5a80c87f9e03 --- /dev/null +++ b/tests/baselines/reference/declFileExportImportChain2.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/declFileExportImportChain2_d.ts === +import c = require("declFileExportImportChain2_c"); +>c : Symbol(c, Decl(declFileExportImportChain2_d.ts, 0, 0)) + +export var x: c.b.m2.c1; +>x : Symbol(x, Decl(declFileExportImportChain2_d.ts, 1, 10)) +>c : Symbol(c, Decl(declFileExportImportChain2_d.ts, 0, 0)) +>b : Symbol(c.b, Decl(declFileExportImportChain2_c.ts, 0, 0)) +>m2 : Symbol(c.b.m2, Decl(declFileExportImportChain2_a.ts, 1, 11)) +>c1 : Symbol(c.b.m2.c1, Decl(declFileExportImportChain2_a.ts, 2, 22)) + +=== tests/cases/compiler/declFileExportImportChain2_a.ts === + +module m1 { +>m1 : Symbol(m1, Decl(declFileExportImportChain2_a.ts, 0, 0)) + + export module m2 { +>m2 : Symbol(m2, Decl(declFileExportImportChain2_a.ts, 1, 11)) + + export class c1 { +>c1 : Symbol(c1, Decl(declFileExportImportChain2_a.ts, 2, 22)) + } + } +} +export = m1; +>m1 : Symbol(m1, Decl(declFileExportImportChain2_a.ts, 0, 0)) + +=== tests/cases/compiler/declFileExportImportChain2_b.ts === +import a = require("declFileExportImportChain2_a"); +>a : Symbol(a, Decl(declFileExportImportChain2_b.ts, 0, 0)) + +export = a; +>a : Symbol(a, Decl(declFileExportImportChain2_b.ts, 0, 0)) + +=== tests/cases/compiler/declFileExportImportChain2_c.ts === +export import b = require("declFileExportImportChain2_b"); +>b : Symbol(b, Decl(declFileExportImportChain2_c.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileExportImportChain2.types b/tests/baselines/reference/declFileExportImportChain2.types index 6be56c2259f16..9c58318040415 100644 --- a/tests/baselines/reference/declFileExportImportChain2.types +++ b/tests/baselines/reference/declFileExportImportChain2.types @@ -1,38 +1,38 @@ === tests/cases/compiler/declFileExportImportChain2_d.ts === import c = require("declFileExportImportChain2_c"); ->c : typeof c, Symbol(c, Decl(declFileExportImportChain2_d.ts, 0, 0)) +>c : typeof c export var x: c.b.m2.c1; ->x : c.b.m2.c1, Symbol(x, Decl(declFileExportImportChain2_d.ts, 1, 10)) ->c : any, Symbol(c, Decl(declFileExportImportChain2_d.ts, 0, 0)) ->b : any, Symbol(c.b, Decl(declFileExportImportChain2_c.ts, 0, 0)) ->m2 : any, Symbol(c.b.m2, Decl(declFileExportImportChain2_a.ts, 1, 11)) ->c1 : c.b.m2.c1, Symbol(c.b.m2.c1, Decl(declFileExportImportChain2_a.ts, 2, 22)) +>x : c.b.m2.c1 +>c : any +>b : any +>m2 : any +>c1 : c.b.m2.c1 === tests/cases/compiler/declFileExportImportChain2_a.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(declFileExportImportChain2_a.ts, 0, 0)) +>m1 : typeof m1 export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(declFileExportImportChain2_a.ts, 1, 11)) +>m2 : typeof m2 export class c1 { ->c1 : c1, Symbol(c1, Decl(declFileExportImportChain2_a.ts, 2, 22)) +>c1 : c1 } } } export = m1; ->m1 : typeof m1, Symbol(m1, Decl(declFileExportImportChain2_a.ts, 0, 0)) +>m1 : typeof m1 === tests/cases/compiler/declFileExportImportChain2_b.ts === import a = require("declFileExportImportChain2_a"); ->a : typeof a, Symbol(a, Decl(declFileExportImportChain2_b.ts, 0, 0)) +>a : typeof a export = a; ->a : typeof a, Symbol(a, Decl(declFileExportImportChain2_b.ts, 0, 0)) +>a : typeof a === tests/cases/compiler/declFileExportImportChain2_c.ts === export import b = require("declFileExportImportChain2_b"); ->b : typeof b, Symbol(b, Decl(declFileExportImportChain2_c.ts, 0, 0)) +>b : typeof b diff --git a/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.symbols b/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.symbols new file mode 100644 index 0000000000000..e20542996b21a --- /dev/null +++ b/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/declFileForClassWithMultipleBaseClasses.ts === + +class A { +>A : Symbol(A, Decl(declFileForClassWithMultipleBaseClasses.ts, 0, 0)) + + foo() { } +>foo : Symbol(foo, Decl(declFileForClassWithMultipleBaseClasses.ts, 1, 9)) +} + +class B { +>B : Symbol(B, Decl(declFileForClassWithMultipleBaseClasses.ts, 3, 1)) + + bar() { } +>bar : Symbol(bar, Decl(declFileForClassWithMultipleBaseClasses.ts, 5, 9)) +} + +interface I { +>I : Symbol(I, Decl(declFileForClassWithMultipleBaseClasses.ts, 7, 1), Decl(declFileForClassWithMultipleBaseClasses.ts, 23, 1)) + + baz(); +>baz : Symbol(baz, Decl(declFileForClassWithMultipleBaseClasses.ts, 9, 13)) +} + +interface J { +>J : Symbol(J, Decl(declFileForClassWithMultipleBaseClasses.ts, 11, 1)) + + bat(); +>bat : Symbol(bat, Decl(declFileForClassWithMultipleBaseClasses.ts, 13, 13)) +} + + +class D implements I, J { +>D : Symbol(D, Decl(declFileForClassWithMultipleBaseClasses.ts, 15, 1)) +>I : Symbol(I, Decl(declFileForClassWithMultipleBaseClasses.ts, 7, 1), Decl(declFileForClassWithMultipleBaseClasses.ts, 23, 1)) +>J : Symbol(J, Decl(declFileForClassWithMultipleBaseClasses.ts, 11, 1)) + + baz() { } +>baz : Symbol(baz, Decl(declFileForClassWithMultipleBaseClasses.ts, 18, 25)) + + bat() { } +>bat : Symbol(bat, Decl(declFileForClassWithMultipleBaseClasses.ts, 19, 13)) + + foo() { } +>foo : Symbol(foo, Decl(declFileForClassWithMultipleBaseClasses.ts, 20, 13)) + + bar() { } +>bar : Symbol(bar, Decl(declFileForClassWithMultipleBaseClasses.ts, 21, 13)) +} + +interface I extends A, B { +>I : Symbol(I, Decl(declFileForClassWithMultipleBaseClasses.ts, 7, 1), Decl(declFileForClassWithMultipleBaseClasses.ts, 23, 1)) +>A : Symbol(A, Decl(declFileForClassWithMultipleBaseClasses.ts, 0, 0)) +>B : Symbol(B, Decl(declFileForClassWithMultipleBaseClasses.ts, 3, 1)) +} diff --git a/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.types b/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.types index 7927dac66f3b4..0f7861d8b8ee6 100644 --- a/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.types +++ b/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.types @@ -1,54 +1,54 @@ === tests/cases/compiler/declFileForClassWithMultipleBaseClasses.ts === class A { ->A : A, Symbol(A, Decl(declFileForClassWithMultipleBaseClasses.ts, 0, 0)) +>A : A foo() { } ->foo : () => void, Symbol(foo, Decl(declFileForClassWithMultipleBaseClasses.ts, 1, 9)) +>foo : () => void } class B { ->B : B, Symbol(B, Decl(declFileForClassWithMultipleBaseClasses.ts, 3, 1)) +>B : B bar() { } ->bar : () => void, Symbol(bar, Decl(declFileForClassWithMultipleBaseClasses.ts, 5, 9)) +>bar : () => void } interface I { ->I : I, Symbol(I, Decl(declFileForClassWithMultipleBaseClasses.ts, 7, 1), Decl(declFileForClassWithMultipleBaseClasses.ts, 23, 1)) +>I : I baz(); ->baz : () => any, Symbol(baz, Decl(declFileForClassWithMultipleBaseClasses.ts, 9, 13)) +>baz : () => any } interface J { ->J : J, Symbol(J, Decl(declFileForClassWithMultipleBaseClasses.ts, 11, 1)) +>J : J bat(); ->bat : () => any, Symbol(bat, Decl(declFileForClassWithMultipleBaseClasses.ts, 13, 13)) +>bat : () => any } class D implements I, J { ->D : D, Symbol(D, Decl(declFileForClassWithMultipleBaseClasses.ts, 15, 1)) ->I : I, Symbol(I, Decl(declFileForClassWithMultipleBaseClasses.ts, 7, 1), Decl(declFileForClassWithMultipleBaseClasses.ts, 23, 1)) ->J : J, Symbol(J, Decl(declFileForClassWithMultipleBaseClasses.ts, 11, 1)) +>D : D +>I : I +>J : J baz() { } ->baz : () => void, Symbol(baz, Decl(declFileForClassWithMultipleBaseClasses.ts, 18, 25)) +>baz : () => void bat() { } ->bat : () => void, Symbol(bat, Decl(declFileForClassWithMultipleBaseClasses.ts, 19, 13)) +>bat : () => void foo() { } ->foo : () => void, Symbol(foo, Decl(declFileForClassWithMultipleBaseClasses.ts, 20, 13)) +>foo : () => void bar() { } ->bar : () => void, Symbol(bar, Decl(declFileForClassWithMultipleBaseClasses.ts, 21, 13)) +>bar : () => void } interface I extends A, B { ->I : I, Symbol(I, Decl(declFileForClassWithMultipleBaseClasses.ts, 7, 1), Decl(declFileForClassWithMultipleBaseClasses.ts, 23, 1)) ->A : A, Symbol(A, Decl(declFileForClassWithMultipleBaseClasses.ts, 0, 0)) ->B : B, Symbol(B, Decl(declFileForClassWithMultipleBaseClasses.ts, 3, 1)) +>I : I +>A : A +>B : B } diff --git a/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.symbols b/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.symbols new file mode 100644 index 0000000000000..f28a8c2bfc708 --- /dev/null +++ b/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/declFileForClassWithPrivateOverloadedFunction.ts === + +class C { +>C : Symbol(C, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 0, 0)) + + private foo(x: number); +>foo : Symbol(foo, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 1, 9), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 27), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 27)) +>x : Symbol(x, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 16)) + + private foo(x: string); +>foo : Symbol(foo, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 1, 9), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 27), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 27)) +>x : Symbol(x, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 16)) + + private foo(x: any) { } +>foo : Symbol(foo, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 1, 9), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 27), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 27)) +>x : Symbol(x, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 4, 16)) +} diff --git a/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.types b/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.types index 8ca34b872fff5..efdfde4574cb2 100644 --- a/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.types +++ b/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.types @@ -1,17 +1,17 @@ === tests/cases/compiler/declFileForClassWithPrivateOverloadedFunction.ts === class C { ->C : C, Symbol(C, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 0, 0)) +>C : C private foo(x: number); ->foo : { (x: number): any; (x: string): any; }, Symbol(foo, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 1, 9), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 27), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 27)) ->x : number, Symbol(x, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 16)) +>foo : { (x: number): any; (x: string): any; } +>x : number private foo(x: string); ->foo : { (x: number): any; (x: string): any; }, Symbol(foo, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 1, 9), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 27), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 27)) ->x : string, Symbol(x, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 16)) +>foo : { (x: number): any; (x: string): any; } +>x : string private foo(x: any) { } ->foo : { (x: number): any; (x: string): any; }, Symbol(foo, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 1, 9), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 2, 27), Decl(declFileForClassWithPrivateOverloadedFunction.ts, 3, 27)) ->x : any, Symbol(x, Decl(declFileForClassWithPrivateOverloadedFunction.ts, 4, 16)) +>foo : { (x: number): any; (x: string): any; } +>x : any } diff --git a/tests/baselines/reference/declFileForExportedImport.symbols b/tests/baselines/reference/declFileForExportedImport.symbols new file mode 100644 index 0000000000000..fb7b7cd343fcd --- /dev/null +++ b/tests/baselines/reference/declFileForExportedImport.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/declFileForExportedImport_1.ts === +/// +export import a = require('declFileForExportedImport_0'); +>a : Symbol(a, Decl(declFileForExportedImport_1.ts, 0, 0)) + +var y = a.x; +>y : Symbol(y, Decl(declFileForExportedImport_1.ts, 2, 3)) +>a.x : Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) +>a : Symbol(a, Decl(declFileForExportedImport_1.ts, 0, 0)) +>x : Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) + +export import b = a; +>b : Symbol(b, Decl(declFileForExportedImport_1.ts, 2, 12)) +>a : Symbol(a, Decl(declFileForExportedImport_0.ts, 0, 0)) + +var z = b.x; +>z : Symbol(z, Decl(declFileForExportedImport_1.ts, 5, 3)) +>b.x : Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) +>b : Symbol(b, Decl(declFileForExportedImport_1.ts, 2, 12)) +>x : Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) + +=== tests/cases/compiler/declFileForExportedImport_0.ts === +export var x: number; +>x : Symbol(x, Decl(declFileForExportedImport_0.ts, 0, 10)) + diff --git a/tests/baselines/reference/declFileForExportedImport.types b/tests/baselines/reference/declFileForExportedImport.types index a75d53930058e..987f82bf5a064 100644 --- a/tests/baselines/reference/declFileForExportedImport.types +++ b/tests/baselines/reference/declFileForExportedImport.types @@ -1,25 +1,25 @@ === tests/cases/compiler/declFileForExportedImport_1.ts === /// export import a = require('declFileForExportedImport_0'); ->a : typeof a, Symbol(a, Decl(declFileForExportedImport_1.ts, 0, 0)) +>a : typeof a var y = a.x; ->y : number, Symbol(y, Decl(declFileForExportedImport_1.ts, 2, 3)) ->a.x : number, Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) ->a : typeof a, Symbol(a, Decl(declFileForExportedImport_1.ts, 0, 0)) ->x : number, Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) +>y : number +>a.x : number +>a : typeof a +>x : number export import b = a; ->b : typeof a, Symbol(b, Decl(declFileForExportedImport_1.ts, 2, 12)) ->a : typeof a, Symbol(a, Decl(declFileForExportedImport_0.ts, 0, 0)) +>b : typeof a +>a : typeof a var z = b.x; ->z : number, Symbol(z, Decl(declFileForExportedImport_1.ts, 5, 3)) ->b.x : number, Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) ->b : typeof a, Symbol(b, Decl(declFileForExportedImport_1.ts, 2, 12)) ->x : number, Symbol(a.x, Decl(declFileForExportedImport_0.ts, 0, 10)) +>z : number +>b.x : number +>b : typeof a +>x : number === tests/cases/compiler/declFileForExportedImport_0.ts === export var x: number; ->x : number, Symbol(x, Decl(declFileForExportedImport_0.ts, 0, 10)) +>x : number diff --git a/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.symbols b/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.symbols new file mode 100644 index 0000000000000..329363ec36453 --- /dev/null +++ b/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/declFileForFunctionTypeAsTypeParameter.ts === + +class X { +>X : Symbol(X, Decl(declFileForFunctionTypeAsTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(declFileForFunctionTypeAsTypeParameter.ts, 1, 8)) +} +class C extends X<() => number> { +>C : Symbol(C, Decl(declFileForFunctionTypeAsTypeParameter.ts, 2, 1)) +>X : Symbol(X, Decl(declFileForFunctionTypeAsTypeParameter.ts, 0, 0)) +} +interface I extends X<() => number> { +>I : Symbol(I, Decl(declFileForFunctionTypeAsTypeParameter.ts, 4, 1)) +>X : Symbol(X, Decl(declFileForFunctionTypeAsTypeParameter.ts, 0, 0)) +} + + diff --git a/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.types b/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.types index 94d8ec682a8da..5f759fb423f80 100644 --- a/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.types +++ b/tests/baselines/reference/declFileForFunctionTypeAsTypeParameter.types @@ -1,16 +1,16 @@ === tests/cases/compiler/declFileForFunctionTypeAsTypeParameter.ts === class X { ->X : X, Symbol(X, Decl(declFileForFunctionTypeAsTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(declFileForFunctionTypeAsTypeParameter.ts, 1, 8)) +>X : X +>T : T } class C extends X<() => number> { ->C : C, Symbol(C, Decl(declFileForFunctionTypeAsTypeParameter.ts, 2, 1)) ->X : X, Symbol(X, Decl(declFileForFunctionTypeAsTypeParameter.ts, 0, 0)) +>C : C +>X : X } interface I extends X<() => number> { ->I : I, Symbol(I, Decl(declFileForFunctionTypeAsTypeParameter.ts, 4, 1)) ->X : X, Symbol(X, Decl(declFileForFunctionTypeAsTypeParameter.ts, 0, 0)) +>I : I +>X : X } diff --git a/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.symbols b/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.symbols new file mode 100644 index 0000000000000..bcec395c80d79 --- /dev/null +++ b/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/declFileForInterfaceWithOptionalFunction.ts === + +interface I { +>I : Symbol(I, Decl(declFileForInterfaceWithOptionalFunction.ts, 0, 0)) + + foo? (x?); +>foo : Symbol(foo, Decl(declFileForInterfaceWithOptionalFunction.ts, 1, 13)) +>x : Symbol(x, Decl(declFileForInterfaceWithOptionalFunction.ts, 2, 10)) + + foo2? (x?: number): number; +>foo2 : Symbol(foo2, Decl(declFileForInterfaceWithOptionalFunction.ts, 2, 14)) +>x : Symbol(x, Decl(declFileForInterfaceWithOptionalFunction.ts, 3, 11)) +} diff --git a/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.types b/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.types index b22df7e4da675..fab33c939cf22 100644 --- a/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.types +++ b/tests/baselines/reference/declFileForInterfaceWithOptionalFunction.types @@ -1,13 +1,13 @@ === tests/cases/compiler/declFileForInterfaceWithOptionalFunction.ts === interface I { ->I : I, Symbol(I, Decl(declFileForInterfaceWithOptionalFunction.ts, 0, 0)) +>I : I foo? (x?); ->foo : (x?: any) => any, Symbol(foo, Decl(declFileForInterfaceWithOptionalFunction.ts, 1, 13)) ->x : any, Symbol(x, Decl(declFileForInterfaceWithOptionalFunction.ts, 2, 10)) +>foo : (x?: any) => any +>x : any foo2? (x?: number): number; ->foo2 : (x?: number) => number, Symbol(foo2, Decl(declFileForInterfaceWithOptionalFunction.ts, 2, 14)) ->x : number, Symbol(x, Decl(declFileForInterfaceWithOptionalFunction.ts, 3, 11)) +>foo2 : (x?: number) => number +>x : number } diff --git a/tests/baselines/reference/declFileForInterfaceWithRestParams.symbols b/tests/baselines/reference/declFileForInterfaceWithRestParams.symbols new file mode 100644 index 0000000000000..9a0fb4a71da17 --- /dev/null +++ b/tests/baselines/reference/declFileForInterfaceWithRestParams.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/declFileForInterfaceWithRestParams.ts === + +interface I { +>I : Symbol(I, Decl(declFileForInterfaceWithRestParams.ts, 0, 0)) + + foo(...x): typeof x; +>foo : Symbol(foo, Decl(declFileForInterfaceWithRestParams.ts, 1, 13)) +>x : Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 2, 8)) +>x : Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 2, 8)) + + foo2(a: number, ...x): typeof x; +>foo2 : Symbol(foo2, Decl(declFileForInterfaceWithRestParams.ts, 2, 24)) +>a : Symbol(a, Decl(declFileForInterfaceWithRestParams.ts, 3, 9)) +>x : Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 3, 19)) +>x : Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 3, 19)) + + foo3(b: string, ...x: string[]): typeof x; +>foo3 : Symbol(foo3, Decl(declFileForInterfaceWithRestParams.ts, 3, 36)) +>b : Symbol(b, Decl(declFileForInterfaceWithRestParams.ts, 4, 9)) +>x : Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 4, 19)) +>x : Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 4, 19)) +} diff --git a/tests/baselines/reference/declFileForInterfaceWithRestParams.types b/tests/baselines/reference/declFileForInterfaceWithRestParams.types index f2fdb901ad6e1..817e118fb6c2c 100644 --- a/tests/baselines/reference/declFileForInterfaceWithRestParams.types +++ b/tests/baselines/reference/declFileForInterfaceWithRestParams.types @@ -1,22 +1,22 @@ === tests/cases/compiler/declFileForInterfaceWithRestParams.ts === interface I { ->I : I, Symbol(I, Decl(declFileForInterfaceWithRestParams.ts, 0, 0)) +>I : I foo(...x): typeof x; ->foo : (...x: any[]) => any[], Symbol(foo, Decl(declFileForInterfaceWithRestParams.ts, 1, 13)) ->x : any[], Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 2, 8)) ->x : any[], Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 2, 8)) +>foo : (...x: any[]) => any[] +>x : any[] +>x : any[] foo2(a: number, ...x): typeof x; ->foo2 : (a: number, ...x: any[]) => any[], Symbol(foo2, Decl(declFileForInterfaceWithRestParams.ts, 2, 24)) ->a : number, Symbol(a, Decl(declFileForInterfaceWithRestParams.ts, 3, 9)) ->x : any[], Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 3, 19)) ->x : any[], Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 3, 19)) +>foo2 : (a: number, ...x: any[]) => any[] +>a : number +>x : any[] +>x : any[] foo3(b: string, ...x: string[]): typeof x; ->foo3 : (b: string, ...x: string[]) => string[], Symbol(foo3, Decl(declFileForInterfaceWithRestParams.ts, 3, 36)) ->b : string, Symbol(b, Decl(declFileForInterfaceWithRestParams.ts, 4, 9)) ->x : string[], Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 4, 19)) ->x : string[], Symbol(x, Decl(declFileForInterfaceWithRestParams.ts, 4, 19)) +>foo3 : (b: string, ...x: string[]) => string[] +>b : string +>x : string[] +>x : string[] } diff --git a/tests/baselines/reference/declFileForTypeParameters.symbols b/tests/baselines/reference/declFileForTypeParameters.symbols new file mode 100644 index 0000000000000..41c567d89dfdc --- /dev/null +++ b/tests/baselines/reference/declFileForTypeParameters.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/declFileForTypeParameters.ts === + +class C { +>C : Symbol(C, Decl(declFileForTypeParameters.ts, 0, 0)) +>T : Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) + + x: T; +>x : Symbol(x, Decl(declFileForTypeParameters.ts, 1, 12)) +>T : Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) + + foo(a: T): T { +>foo : Symbol(foo, Decl(declFileForTypeParameters.ts, 2, 9)) +>a : Symbol(a, Decl(declFileForTypeParameters.ts, 3, 8)) +>T : Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) +>T : Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) + + return this.x; +>this.x : Symbol(x, Decl(declFileForTypeParameters.ts, 1, 12)) +>this : Symbol(C, Decl(declFileForTypeParameters.ts, 0, 0)) +>x : Symbol(x, Decl(declFileForTypeParameters.ts, 1, 12)) + } +} diff --git a/tests/baselines/reference/declFileForTypeParameters.types b/tests/baselines/reference/declFileForTypeParameters.types index 45bd453e115aa..6308a0c92ba25 100644 --- a/tests/baselines/reference/declFileForTypeParameters.types +++ b/tests/baselines/reference/declFileForTypeParameters.types @@ -1,22 +1,22 @@ === tests/cases/compiler/declFileForTypeParameters.ts === class C { ->C : C, Symbol(C, Decl(declFileForTypeParameters.ts, 0, 0)) ->T : T, Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) +>C : C +>T : T x: T; ->x : T, Symbol(x, Decl(declFileForTypeParameters.ts, 1, 12)) ->T : T, Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) +>x : T +>T : T foo(a: T): T { ->foo : (a: T) => T, Symbol(foo, Decl(declFileForTypeParameters.ts, 2, 9)) ->a : T, Symbol(a, Decl(declFileForTypeParameters.ts, 3, 8)) ->T : T, Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) ->T : T, Symbol(T, Decl(declFileForTypeParameters.ts, 1, 8)) +>foo : (a: T) => T +>a : T +>T : T +>T : T return this.x; ->this.x : T, Symbol(x, Decl(declFileForTypeParameters.ts, 1, 12)) ->this : C, Symbol(C, Decl(declFileForTypeParameters.ts, 0, 0)) ->x : T, Symbol(x, Decl(declFileForTypeParameters.ts, 1, 12)) +>this.x : T +>this : C +>x : T } } diff --git a/tests/baselines/reference/declFileForVarList.symbols b/tests/baselines/reference/declFileForVarList.symbols new file mode 100644 index 0000000000000..9e2fdd3ac6bb1 --- /dev/null +++ b/tests/baselines/reference/declFileForVarList.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/declFileForVarList.ts === + +var x, y, z = 1; +>x : Symbol(x, Decl(declFileForVarList.ts, 1, 3)) +>y : Symbol(y, Decl(declFileForVarList.ts, 1, 6)) +>z : Symbol(z, Decl(declFileForVarList.ts, 1, 9)) + +var x1 = 1, y2 = 2, z2 = 3; +>x1 : Symbol(x1, Decl(declFileForVarList.ts, 2, 3)) +>y2 : Symbol(y2, Decl(declFileForVarList.ts, 2, 11)) +>z2 : Symbol(z2, Decl(declFileForVarList.ts, 2, 19)) + diff --git a/tests/baselines/reference/declFileForVarList.types b/tests/baselines/reference/declFileForVarList.types index 2cda8c52d0e51..5e55104666b4c 100644 --- a/tests/baselines/reference/declFileForVarList.types +++ b/tests/baselines/reference/declFileForVarList.types @@ -1,16 +1,16 @@ === tests/cases/compiler/declFileForVarList.ts === var x, y, z = 1; ->x : any, Symbol(x, Decl(declFileForVarList.ts, 1, 3)) ->y : any, Symbol(y, Decl(declFileForVarList.ts, 1, 6)) ->z : number, Symbol(z, Decl(declFileForVarList.ts, 1, 9)) +>x : any +>y : any +>z : number >1 : number var x1 = 1, y2 = 2, z2 = 3; ->x1 : number, Symbol(x1, Decl(declFileForVarList.ts, 2, 3)) +>x1 : number >1 : number ->y2 : number, Symbol(y2, Decl(declFileForVarList.ts, 2, 11)) +>y2 : number >2 : number ->z2 : number, Symbol(z2, Decl(declFileForVarList.ts, 2, 19)) +>z2 : number >3 : number diff --git a/tests/baselines/reference/declFileFunctions.symbols b/tests/baselines/reference/declFileFunctions.symbols new file mode 100644 index 0000000000000..ff04d21155756 --- /dev/null +++ b/tests/baselines/reference/declFileFunctions.symbols @@ -0,0 +1,148 @@ +=== tests/cases/compiler/declFileFunctions_0.ts === + +/** This comment should appear for foo*/ +export function foo() { +>foo : Symbol(foo, Decl(declFileFunctions_0.ts, 0, 0)) +} +/** This is comment for function signature*/ +export function fooWithParameters(/** this is comment about a*/a: string, +>fooWithParameters : Symbol(fooWithParameters, Decl(declFileFunctions_0.ts, 3, 1)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 5, 34)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileFunctions_0.ts, 5, 73)) + + var d = a; +>d : Symbol(d, Decl(declFileFunctions_0.ts, 8, 7)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 5, 34)) +} +export function fooWithRestParameters(a: string, ...rests: string[]) { +>fooWithRestParameters : Symbol(fooWithRestParameters, Decl(declFileFunctions_0.ts, 9, 1)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 10, 38)) +>rests : Symbol(rests, Decl(declFileFunctions_0.ts, 10, 48)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileFunctions_0.ts, 10, 38)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileFunctions_0.ts, 10, 48)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +} + +export function fooWithOverloads(a: string): string; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileFunctions_0.ts, 12, 1), Decl(declFileFunctions_0.ts, 14, 52), Decl(declFileFunctions_0.ts, 15, 52)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 14, 33)) + +export function fooWithOverloads(a: number): number; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileFunctions_0.ts, 12, 1), Decl(declFileFunctions_0.ts, 14, 52), Decl(declFileFunctions_0.ts, 15, 52)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 15, 33)) + +export function fooWithOverloads(a: any): any { +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileFunctions_0.ts, 12, 1), Decl(declFileFunctions_0.ts, 14, 52), Decl(declFileFunctions_0.ts, 15, 52)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 16, 33)) + + return a; +>a : Symbol(a, Decl(declFileFunctions_0.ts, 16, 33)) +} + +export function fooWithSingleOverload(a: string): string; +>fooWithSingleOverload : Symbol(fooWithSingleOverload, Decl(declFileFunctions_0.ts, 18, 1), Decl(declFileFunctions_0.ts, 20, 57)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 20, 38)) + +export function fooWithSingleOverload(a: any) { +>fooWithSingleOverload : Symbol(fooWithSingleOverload, Decl(declFileFunctions_0.ts, 18, 1), Decl(declFileFunctions_0.ts, 20, 57)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 21, 38)) + + return a; +>a : Symbol(a, Decl(declFileFunctions_0.ts, 21, 38)) +} + +/** This comment should appear for nonExportedFoo*/ +function nonExportedFoo() { +>nonExportedFoo : Symbol(nonExportedFoo, Decl(declFileFunctions_0.ts, 23, 1)) +} +/** This is comment for function signature*/ +function nonExportedFooWithParameters(/** this is comment about a*/a: string, +>nonExportedFooWithParameters : Symbol(nonExportedFooWithParameters, Decl(declFileFunctions_0.ts, 27, 1)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 29, 38)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileFunctions_0.ts, 29, 77)) + + var d = a; +>d : Symbol(d, Decl(declFileFunctions_0.ts, 32, 7)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 29, 38)) +} +function nonExportedFooWithRestParameters(a: string, ...rests: string[]) { +>nonExportedFooWithRestParameters : Symbol(nonExportedFooWithRestParameters, Decl(declFileFunctions_0.ts, 33, 1)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 34, 42)) +>rests : Symbol(rests, Decl(declFileFunctions_0.ts, 34, 52)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileFunctions_0.ts, 34, 42)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileFunctions_0.ts, 34, 52)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +} + +function nonExportedFooWithOverloads(a: string): string; +>nonExportedFooWithOverloads : Symbol(nonExportedFooWithOverloads, Decl(declFileFunctions_0.ts, 36, 1), Decl(declFileFunctions_0.ts, 38, 56), Decl(declFileFunctions_0.ts, 39, 56)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 38, 37)) + +function nonExportedFooWithOverloads(a: number): number; +>nonExportedFooWithOverloads : Symbol(nonExportedFooWithOverloads, Decl(declFileFunctions_0.ts, 36, 1), Decl(declFileFunctions_0.ts, 38, 56), Decl(declFileFunctions_0.ts, 39, 56)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 39, 37)) + +function nonExportedFooWithOverloads(a: any): any { +>nonExportedFooWithOverloads : Symbol(nonExportedFooWithOverloads, Decl(declFileFunctions_0.ts, 36, 1), Decl(declFileFunctions_0.ts, 38, 56), Decl(declFileFunctions_0.ts, 39, 56)) +>a : Symbol(a, Decl(declFileFunctions_0.ts, 40, 37)) + + return a; +>a : Symbol(a, Decl(declFileFunctions_0.ts, 40, 37)) +} + +=== tests/cases/compiler/declFileFunctions_1.ts === +/** This comment should appear for foo*/ +function globalfoo() { +>globalfoo : Symbol(globalfoo, Decl(declFileFunctions_1.ts, 0, 0)) +} +/** This is comment for function signature*/ +function globalfooWithParameters(/** this is comment about a*/a: string, +>globalfooWithParameters : Symbol(globalfooWithParameters, Decl(declFileFunctions_1.ts, 2, 1)) +>a : Symbol(a, Decl(declFileFunctions_1.ts, 4, 33)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileFunctions_1.ts, 4, 72)) + + var d = a; +>d : Symbol(d, Decl(declFileFunctions_1.ts, 7, 7)) +>a : Symbol(a, Decl(declFileFunctions_1.ts, 4, 33)) +} +function globalfooWithRestParameters(a: string, ...rests: string[]) { +>globalfooWithRestParameters : Symbol(globalfooWithRestParameters, Decl(declFileFunctions_1.ts, 8, 1)) +>a : Symbol(a, Decl(declFileFunctions_1.ts, 9, 37)) +>rests : Symbol(rests, Decl(declFileFunctions_1.ts, 9, 47)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileFunctions_1.ts, 9, 37)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileFunctions_1.ts, 9, 47)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +} +function globalfooWithOverloads(a: string): string; +>globalfooWithOverloads : Symbol(globalfooWithOverloads, Decl(declFileFunctions_1.ts, 11, 1), Decl(declFileFunctions_1.ts, 12, 51), Decl(declFileFunctions_1.ts, 13, 51)) +>a : Symbol(a, Decl(declFileFunctions_1.ts, 12, 32)) + +function globalfooWithOverloads(a: number): number; +>globalfooWithOverloads : Symbol(globalfooWithOverloads, Decl(declFileFunctions_1.ts, 11, 1), Decl(declFileFunctions_1.ts, 12, 51), Decl(declFileFunctions_1.ts, 13, 51)) +>a : Symbol(a, Decl(declFileFunctions_1.ts, 13, 32)) + +function globalfooWithOverloads(a: any): any { +>globalfooWithOverloads : Symbol(globalfooWithOverloads, Decl(declFileFunctions_1.ts, 11, 1), Decl(declFileFunctions_1.ts, 12, 51), Decl(declFileFunctions_1.ts, 13, 51)) +>a : Symbol(a, Decl(declFileFunctions_1.ts, 14, 32)) + + return a; +>a : Symbol(a, Decl(declFileFunctions_1.ts, 14, 32)) +} diff --git a/tests/baselines/reference/declFileFunctions.types b/tests/baselines/reference/declFileFunctions.types index eb5d28082d0ca..b9e94f7ffcdc3 100644 --- a/tests/baselines/reference/declFileFunctions.types +++ b/tests/baselines/reference/declFileFunctions.types @@ -2,156 +2,156 @@ /** This comment should appear for foo*/ export function foo() { ->foo : () => void, Symbol(foo, Decl(declFileFunctions_0.ts, 0, 0)) +>foo : () => void } /** This is comment for function signature*/ export function fooWithParameters(/** this is comment about a*/a: string, ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(declFileFunctions_0.ts, 3, 1)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 5, 34)) +>fooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileFunctions_0.ts, 5, 73)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileFunctions_0.ts, 8, 7)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 5, 34)) +>d : string +>a : string } export function fooWithRestParameters(a: string, ...rests: string[]) { ->fooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(fooWithRestParameters, Decl(declFileFunctions_0.ts, 9, 1)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 10, 38)) ->rests : string[], Symbol(rests, Decl(declFileFunctions_0.ts, 10, 48)) +>fooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 10, 38)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileFunctions_0.ts, 10, 48)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } export function fooWithOverloads(a: string): string; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileFunctions_0.ts, 12, 1), Decl(declFileFunctions_0.ts, 14, 52), Decl(declFileFunctions_0.ts, 15, 52)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 14, 33)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : string export function fooWithOverloads(a: number): number; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileFunctions_0.ts, 12, 1), Decl(declFileFunctions_0.ts, 14, 52), Decl(declFileFunctions_0.ts, 15, 52)) ->a : number, Symbol(a, Decl(declFileFunctions_0.ts, 15, 33)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : number export function fooWithOverloads(a: any): any { ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileFunctions_0.ts, 12, 1), Decl(declFileFunctions_0.ts, 14, 52), Decl(declFileFunctions_0.ts, 15, 52)) ->a : any, Symbol(a, Decl(declFileFunctions_0.ts, 16, 33)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileFunctions_0.ts, 16, 33)) +>a : any } export function fooWithSingleOverload(a: string): string; ->fooWithSingleOverload : (a: string) => string, Symbol(fooWithSingleOverload, Decl(declFileFunctions_0.ts, 18, 1), Decl(declFileFunctions_0.ts, 20, 57)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 20, 38)) +>fooWithSingleOverload : (a: string) => string +>a : string export function fooWithSingleOverload(a: any) { ->fooWithSingleOverload : (a: string) => string, Symbol(fooWithSingleOverload, Decl(declFileFunctions_0.ts, 18, 1), Decl(declFileFunctions_0.ts, 20, 57)) ->a : any, Symbol(a, Decl(declFileFunctions_0.ts, 21, 38)) +>fooWithSingleOverload : (a: string) => string +>a : any return a; ->a : any, Symbol(a, Decl(declFileFunctions_0.ts, 21, 38)) +>a : any } /** This comment should appear for nonExportedFoo*/ function nonExportedFoo() { ->nonExportedFoo : () => void, Symbol(nonExportedFoo, Decl(declFileFunctions_0.ts, 23, 1)) +>nonExportedFoo : () => void } /** This is comment for function signature*/ function nonExportedFooWithParameters(/** this is comment about a*/a: string, ->nonExportedFooWithParameters : (a: string, b: number) => void, Symbol(nonExportedFooWithParameters, Decl(declFileFunctions_0.ts, 27, 1)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 29, 38)) +>nonExportedFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileFunctions_0.ts, 29, 77)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileFunctions_0.ts, 32, 7)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 29, 38)) +>d : string +>a : string } function nonExportedFooWithRestParameters(a: string, ...rests: string[]) { ->nonExportedFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(nonExportedFooWithRestParameters, Decl(declFileFunctions_0.ts, 33, 1)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 34, 42)) ->rests : string[], Symbol(rests, Decl(declFileFunctions_0.ts, 34, 52)) +>nonExportedFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 34, 42)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileFunctions_0.ts, 34, 52)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } function nonExportedFooWithOverloads(a: string): string; ->nonExportedFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(nonExportedFooWithOverloads, Decl(declFileFunctions_0.ts, 36, 1), Decl(declFileFunctions_0.ts, 38, 56), Decl(declFileFunctions_0.ts, 39, 56)) ->a : string, Symbol(a, Decl(declFileFunctions_0.ts, 38, 37)) +>nonExportedFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string function nonExportedFooWithOverloads(a: number): number; ->nonExportedFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(nonExportedFooWithOverloads, Decl(declFileFunctions_0.ts, 36, 1), Decl(declFileFunctions_0.ts, 38, 56), Decl(declFileFunctions_0.ts, 39, 56)) ->a : number, Symbol(a, Decl(declFileFunctions_0.ts, 39, 37)) +>nonExportedFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number function nonExportedFooWithOverloads(a: any): any { ->nonExportedFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(nonExportedFooWithOverloads, Decl(declFileFunctions_0.ts, 36, 1), Decl(declFileFunctions_0.ts, 38, 56), Decl(declFileFunctions_0.ts, 39, 56)) ->a : any, Symbol(a, Decl(declFileFunctions_0.ts, 40, 37)) +>nonExportedFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileFunctions_0.ts, 40, 37)) +>a : any } === tests/cases/compiler/declFileFunctions_1.ts === /** This comment should appear for foo*/ function globalfoo() { ->globalfoo : () => void, Symbol(globalfoo, Decl(declFileFunctions_1.ts, 0, 0)) +>globalfoo : () => void } /** This is comment for function signature*/ function globalfooWithParameters(/** this is comment about a*/a: string, ->globalfooWithParameters : (a: string, b: number) => void, Symbol(globalfooWithParameters, Decl(declFileFunctions_1.ts, 2, 1)) ->a : string, Symbol(a, Decl(declFileFunctions_1.ts, 4, 33)) +>globalfooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileFunctions_1.ts, 4, 72)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileFunctions_1.ts, 7, 7)) ->a : string, Symbol(a, Decl(declFileFunctions_1.ts, 4, 33)) +>d : string +>a : string } function globalfooWithRestParameters(a: string, ...rests: string[]) { ->globalfooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(globalfooWithRestParameters, Decl(declFileFunctions_1.ts, 8, 1)) ->a : string, Symbol(a, Decl(declFileFunctions_1.ts, 9, 37)) ->rests : string[], Symbol(rests, Decl(declFileFunctions_1.ts, 9, 47)) +>globalfooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileFunctions_1.ts, 9, 37)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileFunctions_1.ts, 9, 47)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } function globalfooWithOverloads(a: string): string; ->globalfooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(globalfooWithOverloads, Decl(declFileFunctions_1.ts, 11, 1), Decl(declFileFunctions_1.ts, 12, 51), Decl(declFileFunctions_1.ts, 13, 51)) ->a : string, Symbol(a, Decl(declFileFunctions_1.ts, 12, 32)) +>globalfooWithOverloads : { (a: string): string; (a: number): number; } +>a : string function globalfooWithOverloads(a: number): number; ->globalfooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(globalfooWithOverloads, Decl(declFileFunctions_1.ts, 11, 1), Decl(declFileFunctions_1.ts, 12, 51), Decl(declFileFunctions_1.ts, 13, 51)) ->a : number, Symbol(a, Decl(declFileFunctions_1.ts, 13, 32)) +>globalfooWithOverloads : { (a: string): string; (a: number): number; } +>a : number function globalfooWithOverloads(a: any): any { ->globalfooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(globalfooWithOverloads, Decl(declFileFunctions_1.ts, 11, 1), Decl(declFileFunctions_1.ts, 12, 51), Decl(declFileFunctions_1.ts, 13, 51)) ->a : any, Symbol(a, Decl(declFileFunctions_1.ts, 14, 32)) +>globalfooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileFunctions_1.ts, 14, 32)) +>a : any } diff --git a/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.symbols b/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.symbols new file mode 100644 index 0000000000000..c732a6ad23388 --- /dev/null +++ b/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/declFileGenericClassWithGenericExtendedClass.ts === +interface IFoo { +>IFoo : Symbol(IFoo, Decl(declFileGenericClassWithGenericExtendedClass.ts, 0, 0)) + + baz: Baz; +>baz : Symbol(baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 0, 16)) +>Baz : Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) +} +class Base { } +>Base : Symbol(Base, Decl(declFileGenericClassWithGenericExtendedClass.ts, 2, 1)) +>T : Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 11)) + +class Derived extends Base { } +>Derived : Symbol(Derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 17)) +>T : Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 14)) +>Base : Symbol(Base, Decl(declFileGenericClassWithGenericExtendedClass.ts, 2, 1)) +>T : Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 14)) + +interface IBar { +>IBar : Symbol(IBar, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 36)) +>T : Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 5, 15)) + + derived: Derived; +>derived : Symbol(derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 5, 19)) +>Derived : Symbol(Derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 17)) +>T : Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 5, 15)) +} +class Baz implements IBar { +>Baz : Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) +>IBar : Symbol(IBar, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 36)) +>Baz : Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) + + derived: Derived; +>derived : Symbol(derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 8, 32)) +>Derived : Symbol(Derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 17)) +>Baz : Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) +} + diff --git a/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.types b/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.types index ac1faa98e9c48..27fed37c21b99 100644 --- a/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.types +++ b/tests/baselines/reference/declFileGenericClassWithGenericExtendedClass.types @@ -1,38 +1,38 @@ === tests/cases/compiler/declFileGenericClassWithGenericExtendedClass.ts === interface IFoo { ->IFoo : IFoo, Symbol(IFoo, Decl(declFileGenericClassWithGenericExtendedClass.ts, 0, 0)) +>IFoo : IFoo baz: Baz; ->baz : Baz, Symbol(baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 0, 16)) ->Baz : Baz, Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) +>baz : Baz +>Baz : Baz } class Base { } ->Base : Base, Symbol(Base, Decl(declFileGenericClassWithGenericExtendedClass.ts, 2, 1)) ->T : T, Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 11)) +>Base : Base +>T : T class Derived extends Base { } ->Derived : Derived, Symbol(Derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 17)) ->T : T, Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 14)) ->Base : Base, Symbol(Base, Decl(declFileGenericClassWithGenericExtendedClass.ts, 2, 1)) ->T : T, Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 14)) +>Derived : Derived +>T : T +>Base : Base +>T : T interface IBar { ->IBar : IBar, Symbol(IBar, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 36)) ->T : T, Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 5, 15)) +>IBar : IBar +>T : T derived: Derived; ->derived : Derived, Symbol(derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 5, 19)) ->Derived : Derived, Symbol(Derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 17)) ->T : T, Symbol(T, Decl(declFileGenericClassWithGenericExtendedClass.ts, 5, 15)) +>derived : Derived +>Derived : Derived +>T : T } class Baz implements IBar { ->Baz : Baz, Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) ->IBar : IBar, Symbol(IBar, Decl(declFileGenericClassWithGenericExtendedClass.ts, 4, 36)) ->Baz : Baz, Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) +>Baz : Baz +>IBar : IBar +>Baz : Baz derived: Derived; ->derived : Derived, Symbol(derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 8, 32)) ->Derived : Derived, Symbol(Derived, Decl(declFileGenericClassWithGenericExtendedClass.ts, 3, 17)) ->Baz : Baz, Symbol(Baz, Decl(declFileGenericClassWithGenericExtendedClass.ts, 7, 1)) +>derived : Derived +>Derived : Derived +>Baz : Baz } diff --git a/tests/baselines/reference/declFileGenericType.symbols b/tests/baselines/reference/declFileGenericType.symbols new file mode 100644 index 0000000000000..38460fcb14332 --- /dev/null +++ b/tests/baselines/reference/declFileGenericType.symbols @@ -0,0 +1,165 @@ +=== tests/cases/compiler/declFileGenericType.ts === +export module C { +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) + + export class A{ } +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>T : Symbol(T, Decl(declFileGenericType.ts, 1, 19)) + + export class B { } +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) + + export function F(x: T): A { return null; } +>F : Symbol(F, Decl(declFileGenericType.ts, 2, 22)) +>T : Symbol(T, Decl(declFileGenericType.ts, 4, 22)) +>x : Symbol(x, Decl(declFileGenericType.ts, 4, 25)) +>T : Symbol(T, Decl(declFileGenericType.ts, 4, 22)) +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) + + export function F2(x: T): C.A { return null; } +>F2 : Symbol(F2, Decl(declFileGenericType.ts, 4, 53)) +>T : Symbol(T, Decl(declFileGenericType.ts, 5, 23)) +>x : Symbol(x, Decl(declFileGenericType.ts, 5, 26)) +>T : Symbol(T, Decl(declFileGenericType.ts, 5, 23)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) + + export function F3(x: T): C.A[] { return null; } +>F3 : Symbol(F3, Decl(declFileGenericType.ts, 5, 58)) +>T : Symbol(T, Decl(declFileGenericType.ts, 6, 23)) +>x : Symbol(x, Decl(declFileGenericType.ts, 6, 26)) +>T : Symbol(T, Decl(declFileGenericType.ts, 6, 23)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) + + export function F4>(x: T): Array> { return null; } +>F4 : Symbol(F4, Decl(declFileGenericType.ts, 6, 60)) +>T : Symbol(T, Decl(declFileGenericType.ts, 7, 23)) +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>x : Symbol(x, Decl(declFileGenericType.ts, 7, 39)) +>T : Symbol(T, Decl(declFileGenericType.ts, 7, 23)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) + + export function F5(): T { return null; } +>F5 : Symbol(F5, Decl(declFileGenericType.ts, 7, 78)) +>T : Symbol(T, Decl(declFileGenericType.ts, 9, 23)) +>T : Symbol(T, Decl(declFileGenericType.ts, 9, 23)) + + export function F6>(x: T): T { return null; } +>F6 : Symbol(F6, Decl(declFileGenericType.ts, 9, 47)) +>T : Symbol(T, Decl(declFileGenericType.ts, 11, 23)) +>A : Symbol(A, Decl(declFileGenericType.ts, 0, 17)) +>B : Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>x : Symbol(x, Decl(declFileGenericType.ts, 11, 39)) +>T : Symbol(T, Decl(declFileGenericType.ts, 11, 23)) +>T : Symbol(T, Decl(declFileGenericType.ts, 11, 23)) + + export class D{ +>D : Symbol(D, Decl(declFileGenericType.ts, 11, 64)) +>T : Symbol(T, Decl(declFileGenericType.ts, 13, 19)) + + constructor(public val: T) { } +>val : Symbol(val, Decl(declFileGenericType.ts, 15, 20)) +>T : Symbol(T, Decl(declFileGenericType.ts, 13, 19)) + + } +} + +export var a: C.A; +>a : Symbol(a, Decl(declFileGenericType.ts, 20, 10)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) + +export var b = C.F; +>b : Symbol(b, Decl(declFileGenericType.ts, 22, 10)) +>C.F : Symbol(C.F, Decl(declFileGenericType.ts, 2, 22)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>F : Symbol(C.F, Decl(declFileGenericType.ts, 2, 22)) + +export var c = C.F2; +>c : Symbol(c, Decl(declFileGenericType.ts, 23, 10)) +>C.F2 : Symbol(C.F2, Decl(declFileGenericType.ts, 4, 53)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>F2 : Symbol(C.F2, Decl(declFileGenericType.ts, 4, 53)) + +export var d = C.F3; +>d : Symbol(d, Decl(declFileGenericType.ts, 24, 10)) +>C.F3 : Symbol(C.F3, Decl(declFileGenericType.ts, 5, 58)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>F3 : Symbol(C.F3, Decl(declFileGenericType.ts, 5, 58)) + +export var e = C.F4; +>e : Symbol(e, Decl(declFileGenericType.ts, 25, 10)) +>C.F4 : Symbol(C.F4, Decl(declFileGenericType.ts, 6, 60)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>F4 : Symbol(C.F4, Decl(declFileGenericType.ts, 6, 60)) + +export var x = (new C.D>(new C.A())).val; +>x : Symbol(x, Decl(declFileGenericType.ts, 27, 10)) +>(new C.D>(new C.A())).val : Symbol(C.D.val, Decl(declFileGenericType.ts, 15, 20)) +>C.D : Symbol(C.D, Decl(declFileGenericType.ts, 11, 64)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>D : Symbol(C.D, Decl(declFileGenericType.ts, 11, 64)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>C.A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>val : Symbol(C.D.val, Decl(declFileGenericType.ts, 15, 20)) + +export function f>() { } +>f : Symbol(f, Decl(declFileGenericType.ts, 27, 55)) +>T : Symbol(T, Decl(declFileGenericType.ts, 29, 18)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) + +export var g = C.F5>(); +>g : Symbol(g, Decl(declFileGenericType.ts, 31, 10)) +>C.F5 : Symbol(C.F5, Decl(declFileGenericType.ts, 7, 78)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>F5 : Symbol(C.F5, Decl(declFileGenericType.ts, 7, 78)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) + +export class h extends C.A{ } +>h : Symbol(h, Decl(declFileGenericType.ts, 31, 32)) +>C.A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) + +export interface i extends C.A { } +>i : Symbol(i, Decl(declFileGenericType.ts, 33, 34)) +>C.A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>A : Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>B : Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) + +export var j = C.F6; +>j : Symbol(j, Decl(declFileGenericType.ts, 37, 10)) +>C.F6 : Symbol(C.F6, Decl(declFileGenericType.ts, 9, 47)) +>C : Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>F6 : Symbol(C.F6, Decl(declFileGenericType.ts, 9, 47)) + diff --git a/tests/baselines/reference/declFileGenericType.types b/tests/baselines/reference/declFileGenericType.types index 67444274ee80c..7aa201878907f 100644 --- a/tests/baselines/reference/declFileGenericType.types +++ b/tests/baselines/reference/declFileGenericType.types @@ -1,175 +1,175 @@ === tests/cases/compiler/declFileGenericType.ts === export module C { ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) +>C : typeof C export class A{ } ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 1, 19)) +>A : A +>T : T export class B { } ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>B : B export function F(x: T): A { return null; } ->F : (x: T) => A, Symbol(F, Decl(declFileGenericType.ts, 2, 22)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 4, 22)) ->x : T, Symbol(x, Decl(declFileGenericType.ts, 4, 25)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 4, 22)) ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>F : (x: T) => A +>T : T +>x : T +>T : T +>A : A +>B : B >null : null export function F2(x: T): C.A { return null; } ->F2 : (x: T) => A, Symbol(F2, Decl(declFileGenericType.ts, 4, 53)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 5, 23)) ->x : T, Symbol(x, Decl(declFileGenericType.ts, 5, 26)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 5, 23)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>F2 : (x: T) => A +>T : T +>x : T +>T : T +>C : any +>A : A +>C : any +>B : B >null : null export function F3(x: T): C.A[] { return null; } ->F3 : (x: T) => A[], Symbol(F3, Decl(declFileGenericType.ts, 5, 58)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 6, 23)) ->x : T, Symbol(x, Decl(declFileGenericType.ts, 6, 26)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 6, 23)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>F3 : (x: T) => A[] +>T : T +>x : T +>T : T +>C : any +>A : A +>C : any +>B : B >null : null export function F4>(x: T): Array> { return null; } ->F4 : >(x: T) => A[], Symbol(F4, Decl(declFileGenericType.ts, 6, 60)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 7, 23)) ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) ->x : T, Symbol(x, Decl(declFileGenericType.ts, 7, 39)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 7, 23)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) +>F4 : >(x: T) => A[] +>T : T +>A : A +>B : B +>x : T +>T : T +>Array : T[] +>C : any +>A : A +>C : any +>B : B >null : null export function F5(): T { return null; } ->F5 : () => T, Symbol(F5, Decl(declFileGenericType.ts, 7, 78)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 9, 23)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 9, 23)) +>F5 : () => T +>T : T +>T : T >null : null export function F6>(x: T): T { return null; } ->F6 : >(x: T) => T, Symbol(F6, Decl(declFileGenericType.ts, 9, 47)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 11, 23)) ->A : A, Symbol(A, Decl(declFileGenericType.ts, 0, 17)) ->B : B, Symbol(B, Decl(declFileGenericType.ts, 1, 24)) ->x : T, Symbol(x, Decl(declFileGenericType.ts, 11, 39)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 11, 23)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 11, 23)) +>F6 : >(x: T) => T +>T : T +>A : A +>B : B +>x : T +>T : T +>T : T >null : null export class D{ ->D : D, Symbol(D, Decl(declFileGenericType.ts, 11, 64)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 13, 19)) +>D : D +>T : T constructor(public val: T) { } ->val : T, Symbol(val, Decl(declFileGenericType.ts, 15, 20)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 13, 19)) +>val : T +>T : T } } export var a: C.A; ->a : C.A, Symbol(a, Decl(declFileGenericType.ts, 20, 10)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>a : C.A +>C : any +>A : C.A +>C : any +>B : C.B export var b = C.F; ->b : (x: T) => C.A, Symbol(b, Decl(declFileGenericType.ts, 22, 10)) ->C.F : (x: T) => C.A, Symbol(C.F, Decl(declFileGenericType.ts, 2, 22)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->F : (x: T) => C.A, Symbol(C.F, Decl(declFileGenericType.ts, 2, 22)) +>b : (x: T) => C.A +>C.F : (x: T) => C.A +>C : typeof C +>F : (x: T) => C.A export var c = C.F2; ->c : (x: T) => C.A, Symbol(c, Decl(declFileGenericType.ts, 23, 10)) ->C.F2 : (x: T) => C.A, Symbol(C.F2, Decl(declFileGenericType.ts, 4, 53)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->F2 : (x: T) => C.A, Symbol(C.F2, Decl(declFileGenericType.ts, 4, 53)) +>c : (x: T) => C.A +>C.F2 : (x: T) => C.A +>C : typeof C +>F2 : (x: T) => C.A export var d = C.F3; ->d : (x: T) => C.A[], Symbol(d, Decl(declFileGenericType.ts, 24, 10)) ->C.F3 : (x: T) => C.A[], Symbol(C.F3, Decl(declFileGenericType.ts, 5, 58)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->F3 : (x: T) => C.A[], Symbol(C.F3, Decl(declFileGenericType.ts, 5, 58)) +>d : (x: T) => C.A[] +>C.F3 : (x: T) => C.A[] +>C : typeof C +>F3 : (x: T) => C.A[] export var e = C.F4; ->e : >(x: T) => C.A[], Symbol(e, Decl(declFileGenericType.ts, 25, 10)) ->C.F4 : >(x: T) => C.A[], Symbol(C.F4, Decl(declFileGenericType.ts, 6, 60)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->F4 : >(x: T) => C.A[], Symbol(C.F4, Decl(declFileGenericType.ts, 6, 60)) +>e : >(x: T) => C.A[] +>C.F4 : >(x: T) => C.A[] +>C : typeof C +>F4 : >(x: T) => C.A[] export var x = (new C.D>(new C.A())).val; ->x : C.A, Symbol(x, Decl(declFileGenericType.ts, 27, 10)) ->(new C.D>(new C.A())).val : C.A, Symbol(C.D.val, Decl(declFileGenericType.ts, 15, 20)) +>x : C.A +>(new C.D>(new C.A())).val : C.A >(new C.D>(new C.A())) : C.D> >new C.D>(new C.A()) : C.D> ->C.D : typeof C.D, Symbol(C.D, Decl(declFileGenericType.ts, 11, 64)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->D : typeof C.D, Symbol(C.D, Decl(declFileGenericType.ts, 11, 64)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>C.D : typeof C.D +>C : typeof C +>D : typeof C.D +>C : any +>A : C.A +>C : any +>B : C.B >new C.A() : C.A ->C.A : typeof C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : typeof C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) ->val : C.A, Symbol(C.D.val, Decl(declFileGenericType.ts, 15, 20)) +>C.A : typeof C.A +>C : typeof C +>A : typeof C.A +>C : any +>B : C.B +>val : C.A export function f>() { } ->f : >() => void, Symbol(f, Decl(declFileGenericType.ts, 27, 55)) ->T : T, Symbol(T, Decl(declFileGenericType.ts, 29, 18)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>f : >() => void +>T : T +>C : any +>A : C.A +>C : any +>B : C.B export var g = C.F5>(); ->g : C.A, Symbol(g, Decl(declFileGenericType.ts, 31, 10)) +>g : C.A >C.F5>() : C.A ->C.F5 : () => T, Symbol(C.F5, Decl(declFileGenericType.ts, 7, 78)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->F5 : () => T, Symbol(C.F5, Decl(declFileGenericType.ts, 7, 78)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>C.F5 : () => T +>C : typeof C +>F5 : () => T +>C : any +>A : C.A +>C : any +>B : C.B export class h extends C.A{ } ->h : h, Symbol(h, Decl(declFileGenericType.ts, 31, 32)) ->C.A : any, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>h : h +>C.A : any +>C : typeof C +>A : C.A +>C : any +>B : C.B export interface i extends C.A { } ->i : i, Symbol(i, Decl(declFileGenericType.ts, 33, 34)) ->C.A : any, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->A : C.A, Symbol(C.A, Decl(declFileGenericType.ts, 0, 17)) ->C : any, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->B : C.B, Symbol(C.B, Decl(declFileGenericType.ts, 1, 24)) +>i : i +>C.A : any +>C : typeof C +>A : C.A +>C : any +>B : C.B export var j = C.F6; ->j : >(x: T) => T, Symbol(j, Decl(declFileGenericType.ts, 37, 10)) ->C.F6 : >(x: T) => T, Symbol(C.F6, Decl(declFileGenericType.ts, 9, 47)) ->C : typeof C, Symbol(C, Decl(declFileGenericType.ts, 0, 0)) ->F6 : >(x: T) => T, Symbol(C.F6, Decl(declFileGenericType.ts, 9, 47)) +>j : >(x: T) => T +>C.F6 : >(x: T) => T +>C : typeof C +>F6 : >(x: T) => T diff --git a/tests/baselines/reference/declFileGenericType2.symbols b/tests/baselines/reference/declFileGenericType2.symbols new file mode 100644 index 0000000000000..fa1b63a2ac4a2 --- /dev/null +++ b/tests/baselines/reference/declFileGenericType2.symbols @@ -0,0 +1,147 @@ +=== tests/cases/compiler/declFileGenericType2.ts === + +declare module templa.mvc { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) + + interface IModel { +>IModel : Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) + } +} +declare module templa.mvc { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) + + interface IController { +>IController : Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 6, 26)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) + } +} +declare module templa.mvc { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) + + class AbstractController implements mvc.IController { +>AbstractController : Symbol(AbstractController, Decl(declFileGenericType2.ts, 9, 27)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 10, 29)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) +>mvc.IController : Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IController : Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 10, 29)) + } +} +declare module templa.mvc.composite { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>composite : Symbol(composite, Decl(declFileGenericType2.ts, 13, 26)) + + interface ICompositeControllerModel extends mvc.IModel { +>ICompositeControllerModel : Symbol(ICompositeControllerModel, Decl(declFileGenericType2.ts, 13, 37)) +>mvc.IModel : Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) + + getControllers(): mvc.IController[]; +>getControllers : Symbol(getControllers, Decl(declFileGenericType2.ts, 14, 60)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IController : Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) + } +} +module templa.dom.mvc { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>dom : Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) + + export interface IElementController extends templa.mvc.IController { +>IElementController : Symbol(IElementController, Decl(declFileGenericType2.ts, 18, 23)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 19, 40)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(templa.mvc.IModel, Decl(declFileGenericType2.ts, 1, 27)) +>templa.mvc.IController : Symbol(templa.mvc.IController, Decl(declFileGenericType2.ts, 5, 27)) +>templa.mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IController : Symbol(templa.mvc.IController, Decl(declFileGenericType2.ts, 5, 27)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 19, 40)) + } +} +// Module +module templa.dom.mvc { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>dom : Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) + + export class AbstractElementController extends templa.mvc.AbstractController implements IElementController { +>AbstractElementController : Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 25, 43)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(templa.mvc.IModel, Decl(declFileGenericType2.ts, 1, 27)) +>templa.mvc.AbstractController : Symbol(templa.mvc.AbstractController, Decl(declFileGenericType2.ts, 9, 27)) +>templa.mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>AbstractController : Symbol(templa.mvc.AbstractController, Decl(declFileGenericType2.ts, 9, 27)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 25, 43)) +>IElementController : Symbol(IElementController, Decl(declFileGenericType2.ts, 18, 23)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 25, 43)) + + constructor() { + super(); +>super : Symbol(templa.mvc.AbstractController, Decl(declFileGenericType2.ts, 9, 27)) + } + } +} +// Module +module templa.dom.mvc.composite { +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>dom : Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) +>composite : Symbol(composite, Decl(declFileGenericType2.ts, 32, 22)) + + export class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController { +>AbstractCompositeElementController : Symbol(AbstractCompositeElementController, Decl(declFileGenericType2.ts, 32, 33)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 33, 52)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>composite : Symbol(templa.mvc.composite, Decl(declFileGenericType2.ts, 13, 26)) +>ICompositeControllerModel : Symbol(templa.mvc.composite.ICompositeControllerModel, Decl(declFileGenericType2.ts, 13, 37)) +>templa.dom.mvc.AbstractElementController : Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) +>templa.dom.mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) +>templa.dom : Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>dom : Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) +>AbstractElementController : Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) +>ModelType : Symbol(ModelType, Decl(declFileGenericType2.ts, 33, 52)) + + public _controllers: templa.mvc.IController[]; +>_controllers : Symbol(_controllers, Decl(declFileGenericType2.ts, 33, 179)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IController : Symbol(templa.mvc.IController, Decl(declFileGenericType2.ts, 5, 27)) +>templa : Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) +>mvc : Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>IModel : Symbol(templa.mvc.IModel, Decl(declFileGenericType2.ts, 1, 27)) + + constructor() { + super(); +>super : Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) + + this._controllers = []; +>this._controllers : Symbol(_controllers, Decl(declFileGenericType2.ts, 33, 179)) +>this : Symbol(AbstractCompositeElementController, Decl(declFileGenericType2.ts, 32, 33)) +>_controllers : Symbol(_controllers, Decl(declFileGenericType2.ts, 33, 179)) + } + } +} + diff --git a/tests/baselines/reference/declFileGenericType2.types b/tests/baselines/reference/declFileGenericType2.types index 929d8fb59649e..e1e1aa0bbfb3e 100644 --- a/tests/baselines/reference/declFileGenericType2.types +++ b/tests/baselines/reference/declFileGenericType2.types @@ -1,149 +1,149 @@ === tests/cases/compiler/declFileGenericType2.ts === declare module templa.mvc { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>templa : typeof templa +>mvc : typeof mvc interface IModel { ->IModel : IModel, Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) +>IModel : IModel } } declare module templa.mvc { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>templa : typeof templa +>mvc : typeof mvc interface IController { ->IController : IController, Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 6, 26)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : IModel, Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) +>IController : IController +>ModelType : ModelType +>templa : any +>mvc : any +>IModel : IModel } } declare module templa.mvc { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) +>templa : typeof templa +>mvc : typeof mvc class AbstractController implements mvc.IController { ->AbstractController : AbstractController, Symbol(AbstractController, Decl(declFileGenericType2.ts, 9, 27)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 10, 29)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : IModel, Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) ->mvc.IController : any, Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IController : IController, Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 10, 29)) +>AbstractController : AbstractController +>ModelType : ModelType +>templa : any +>mvc : any +>IModel : IModel +>mvc.IController : any +>mvc : typeof mvc +>IController : IController +>ModelType : ModelType } } declare module templa.mvc.composite { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->composite : any, Symbol(composite, Decl(declFileGenericType2.ts, 13, 26)) +>templa : typeof templa +>mvc : typeof mvc +>composite : any interface ICompositeControllerModel extends mvc.IModel { ->ICompositeControllerModel : ICompositeControllerModel, Symbol(ICompositeControllerModel, Decl(declFileGenericType2.ts, 13, 37)) ->mvc.IModel : any, Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : IModel, Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) +>ICompositeControllerModel : ICompositeControllerModel +>mvc.IModel : any +>mvc : typeof mvc +>IModel : IModel getControllers(): mvc.IController[]; ->getControllers : () => IController[], Symbol(getControllers, Decl(declFileGenericType2.ts, 14, 60)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IController : IController, Symbol(IController, Decl(declFileGenericType2.ts, 5, 27)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : IModel, Symbol(IModel, Decl(declFileGenericType2.ts, 1, 27)) +>getControllers : () => IController[] +>mvc : any +>IController : IController +>mvc : any +>IModel : IModel } } module templa.dom.mvc { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->dom : typeof dom, Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) +>templa : typeof templa +>dom : typeof dom +>mvc : typeof mvc export interface IElementController extends templa.mvc.IController { ->IElementController : IElementController, Symbol(IElementController, Decl(declFileGenericType2.ts, 18, 23)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 19, 40)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : templa.mvc.IModel, Symbol(templa.mvc.IModel, Decl(declFileGenericType2.ts, 1, 27)) ->templa.mvc.IController : any, Symbol(templa.mvc.IController, Decl(declFileGenericType2.ts, 5, 27)) ->templa.mvc : typeof templa.mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : typeof templa.mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IController : templa.mvc.IController, Symbol(templa.mvc.IController, Decl(declFileGenericType2.ts, 5, 27)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 19, 40)) +>IElementController : IElementController +>ModelType : ModelType +>templa : any +>mvc : any +>IModel : templa.mvc.IModel +>templa.mvc.IController : any +>templa.mvc : typeof templa.mvc +>templa : typeof templa +>mvc : typeof templa.mvc +>IController : templa.mvc.IController +>ModelType : ModelType } } // Module module templa.dom.mvc { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->dom : typeof dom, Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) +>templa : typeof templa +>dom : typeof dom +>mvc : typeof mvc export class AbstractElementController extends templa.mvc.AbstractController implements IElementController { ->AbstractElementController : AbstractElementController, Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 25, 43)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : templa.mvc.IModel, Symbol(templa.mvc.IModel, Decl(declFileGenericType2.ts, 1, 27)) ->templa.mvc.AbstractController : any, Symbol(templa.mvc.AbstractController, Decl(declFileGenericType2.ts, 9, 27)) ->templa.mvc : typeof templa.mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : typeof templa.mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->AbstractController : templa.mvc.AbstractController, Symbol(templa.mvc.AbstractController, Decl(declFileGenericType2.ts, 9, 27)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 25, 43)) ->IElementController : IElementController, Symbol(IElementController, Decl(declFileGenericType2.ts, 18, 23)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 25, 43)) +>AbstractElementController : AbstractElementController +>ModelType : ModelType +>templa : any +>mvc : any +>IModel : templa.mvc.IModel +>templa.mvc.AbstractController : any +>templa.mvc : typeof templa.mvc +>templa : typeof templa +>mvc : typeof templa.mvc +>AbstractController : templa.mvc.AbstractController +>ModelType : ModelType +>IElementController : IElementController +>ModelType : ModelType constructor() { super(); >super() : void ->super : typeof templa.mvc.AbstractController, Symbol(templa.mvc.AbstractController, Decl(declFileGenericType2.ts, 9, 27)) +>super : typeof templa.mvc.AbstractController } } } // Module module templa.dom.mvc.composite { ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->dom : typeof dom, Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) ->composite : typeof composite, Symbol(composite, Decl(declFileGenericType2.ts, 32, 22)) +>templa : typeof templa +>dom : typeof dom +>mvc : typeof mvc +>composite : typeof composite export class AbstractCompositeElementController extends templa.dom.mvc.AbstractElementController { ->AbstractCompositeElementController : AbstractCompositeElementController, Symbol(AbstractCompositeElementController, Decl(declFileGenericType2.ts, 32, 33)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 33, 52)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->composite : any, Symbol(templa.mvc.composite, Decl(declFileGenericType2.ts, 13, 26)) ->ICompositeControllerModel : templa.mvc.composite.ICompositeControllerModel, Symbol(templa.mvc.composite.ICompositeControllerModel, Decl(declFileGenericType2.ts, 13, 37)) ->templa.dom.mvc.AbstractElementController : any, Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) ->templa.dom.mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) ->templa.dom : typeof dom, Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) ->templa : typeof templa, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->dom : typeof dom, Symbol(dom, Decl(declFileGenericType2.ts, 18, 14), Decl(declFileGenericType2.ts, 23, 14), Decl(declFileGenericType2.ts, 32, 14)) ->mvc : typeof mvc, Symbol(mvc, Decl(declFileGenericType2.ts, 18, 18), Decl(declFileGenericType2.ts, 23, 18), Decl(declFileGenericType2.ts, 32, 18)) ->AbstractElementController : AbstractElementController, Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) ->ModelType : ModelType, Symbol(ModelType, Decl(declFileGenericType2.ts, 33, 52)) +>AbstractCompositeElementController : AbstractCompositeElementController +>ModelType : ModelType +>templa : any +>mvc : any +>composite : any +>ICompositeControllerModel : templa.mvc.composite.ICompositeControllerModel +>templa.dom.mvc.AbstractElementController : any +>templa.dom.mvc : typeof mvc +>templa.dom : typeof dom +>templa : typeof templa +>dom : typeof dom +>mvc : typeof mvc +>AbstractElementController : AbstractElementController +>ModelType : ModelType public _controllers: templa.mvc.IController[]; ->_controllers : templa.mvc.IController[], Symbol(_controllers, Decl(declFileGenericType2.ts, 33, 179)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IController : templa.mvc.IController, Symbol(templa.mvc.IController, Decl(declFileGenericType2.ts, 5, 27)) ->templa : any, Symbol(templa, Decl(declFileGenericType2.ts, 0, 0), Decl(declFileGenericType2.ts, 4, 1), Decl(declFileGenericType2.ts, 8, 1), Decl(declFileGenericType2.ts, 12, 1), Decl(declFileGenericType2.ts, 17, 1), Decl(declFileGenericType2.ts, 21, 1), Decl(declFileGenericType2.ts, 30, 1)) ->mvc : any, Symbol(mvc, Decl(declFileGenericType2.ts, 1, 22), Decl(declFileGenericType2.ts, 5, 22), Decl(declFileGenericType2.ts, 9, 22), Decl(declFileGenericType2.ts, 13, 22)) ->IModel : templa.mvc.IModel, Symbol(templa.mvc.IModel, Decl(declFileGenericType2.ts, 1, 27)) +>_controllers : templa.mvc.IController[] +>templa : any +>mvc : any +>IController : templa.mvc.IController +>templa : any +>mvc : any +>IModel : templa.mvc.IModel constructor() { super(); >super() : void ->super : typeof AbstractElementController, Symbol(AbstractElementController, Decl(declFileGenericType2.ts, 23, 23)) +>super : typeof AbstractElementController this._controllers = []; >this._controllers = [] : undefined[] ->this._controllers : templa.mvc.IController[], Symbol(_controllers, Decl(declFileGenericType2.ts, 33, 179)) ->this : AbstractCompositeElementController, Symbol(AbstractCompositeElementController, Decl(declFileGenericType2.ts, 32, 33)) ->_controllers : templa.mvc.IController[], Symbol(_controllers, Decl(declFileGenericType2.ts, 33, 179)) +>this._controllers : templa.mvc.IController[] +>this : AbstractCompositeElementController +>_controllers : templa.mvc.IController[] >[] : undefined[] } } diff --git a/tests/baselines/reference/declFileImportChainInExportAssignment.symbols b/tests/baselines/reference/declFileImportChainInExportAssignment.symbols new file mode 100644 index 0000000000000..12e05bed75af1 --- /dev/null +++ b/tests/baselines/reference/declFileImportChainInExportAssignment.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/declFileImportChainInExportAssignment.ts === +module m { +>m : Symbol(m, Decl(declFileImportChainInExportAssignment.ts, 0, 0)) + + export module c { +>c : Symbol(c, Decl(declFileImportChainInExportAssignment.ts, 0, 10)) + + export class c { +>c : Symbol(c, Decl(declFileImportChainInExportAssignment.ts, 1, 21)) + } + } +} +import a = m.c; +>a : Symbol(a, Decl(declFileImportChainInExportAssignment.ts, 5, 1)) +>m : Symbol(m, Decl(declFileImportChainInExportAssignment.ts, 0, 0)) +>c : Symbol(a, Decl(declFileImportChainInExportAssignment.ts, 0, 10)) + +import b = a; +>b : Symbol(b, Decl(declFileImportChainInExportAssignment.ts, 6, 15)) +>a : Symbol(a, Decl(declFileImportChainInExportAssignment.ts, 0, 10)) + +export = b; +>b : Symbol(b, Decl(declFileImportChainInExportAssignment.ts, 6, 15)) + diff --git a/tests/baselines/reference/declFileImportChainInExportAssignment.types b/tests/baselines/reference/declFileImportChainInExportAssignment.types index 6a66d126b4e3c..8cb130c638ceb 100644 --- a/tests/baselines/reference/declFileImportChainInExportAssignment.types +++ b/tests/baselines/reference/declFileImportChainInExportAssignment.types @@ -1,24 +1,24 @@ === tests/cases/compiler/declFileImportChainInExportAssignment.ts === module m { ->m : typeof m, Symbol(m, Decl(declFileImportChainInExportAssignment.ts, 0, 0)) +>m : typeof m export module c { ->c : typeof m.c, Symbol(c, Decl(declFileImportChainInExportAssignment.ts, 0, 10)) +>c : typeof m.c export class c { ->c : c, Symbol(c, Decl(declFileImportChainInExportAssignment.ts, 1, 21)) +>c : c } } } import a = m.c; ->a : typeof a, Symbol(a, Decl(declFileImportChainInExportAssignment.ts, 5, 1)) ->m : typeof m, Symbol(m, Decl(declFileImportChainInExportAssignment.ts, 0, 0)) ->c : typeof a, Symbol(a, Decl(declFileImportChainInExportAssignment.ts, 0, 10)) +>a : typeof a +>m : typeof m +>c : typeof a import b = a; ->b : typeof a, Symbol(b, Decl(declFileImportChainInExportAssignment.ts, 6, 15)) ->a : typeof a, Symbol(a, Decl(declFileImportChainInExportAssignment.ts, 0, 10)) +>b : typeof a +>a : typeof a export = b; ->b : typeof a, Symbol(b, Decl(declFileImportChainInExportAssignment.ts, 6, 15)) +>b : typeof a diff --git a/tests/baselines/reference/declFileImportModuleWithExportAssignment.symbols b/tests/baselines/reference/declFileImportModuleWithExportAssignment.symbols new file mode 100644 index 0000000000000..62d9d599939f7 --- /dev/null +++ b/tests/baselines/reference/declFileImportModuleWithExportAssignment.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/declFileImportModuleWithExportAssignment_1.ts === +/**This is on import declaration*/ +import a1 = require("declFileImportModuleWithExportAssignment_0"); +>a1 : Symbol(a1, Decl(declFileImportModuleWithExportAssignment_1.ts, 0, 0)) + +export var a = a1; +>a : Symbol(a, Decl(declFileImportModuleWithExportAssignment_1.ts, 2, 10)) +>a1 : Symbol(a1, Decl(declFileImportModuleWithExportAssignment_1.ts, 0, 0)) + +a.test1(null, null, null); +>a.test1 : Symbol(test1, Decl(declFileImportModuleWithExportAssignment_0.ts, 12, 25)) +>a : Symbol(a, Decl(declFileImportModuleWithExportAssignment_1.ts, 2, 10)) +>test1 : Symbol(test1, Decl(declFileImportModuleWithExportAssignment_0.ts, 12, 25)) + +=== tests/cases/compiler/declFileImportModuleWithExportAssignment_0.ts === + +module m2 { +>m2 : Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) + + export interface connectModule { +>connectModule : Symbol(connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) + + (res, req, next): void; +>res : Symbol(res, Decl(declFileImportModuleWithExportAssignment_0.ts, 3, 9)) +>req : Symbol(req, Decl(declFileImportModuleWithExportAssignment_0.ts, 3, 13)) +>next : Symbol(next, Decl(declFileImportModuleWithExportAssignment_0.ts, 3, 18)) + } + export interface connectExport { +>connectExport : Symbol(connectExport, Decl(declFileImportModuleWithExportAssignment_0.ts, 4, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(declFileImportModuleWithExportAssignment_0.ts, 5, 36)) +>mod : Symbol(mod, Decl(declFileImportModuleWithExportAssignment_0.ts, 6, 14)) +>connectModule : Symbol(connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) +>connectExport : Symbol(connectExport, Decl(declFileImportModuleWithExportAssignment_0.ts, 4, 5)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(declFileImportModuleWithExportAssignment_0.ts, 6, 51)) +>port : Symbol(port, Decl(declFileImportModuleWithExportAssignment_0.ts, 7, 17)) + } + +} +var m2: { +>m2 : Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) + + (): m2.connectExport; +>m2 : Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) +>connectExport : Symbol(m2.connectExport, Decl(declFileImportModuleWithExportAssignment_0.ts, 4, 5)) + + test1: m2.connectModule; +>test1 : Symbol(test1, Decl(declFileImportModuleWithExportAssignment_0.ts, 12, 25)) +>m2 : Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) +>connectModule : Symbol(m2.connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) + + test2(): m2.connectModule; +>test2 : Symbol(test2, Decl(declFileImportModuleWithExportAssignment_0.ts, 13, 28)) +>m2 : Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) +>connectModule : Symbol(m2.connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) + +}; +export = m2; +>m2 : Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) + diff --git a/tests/baselines/reference/declFileImportModuleWithExportAssignment.types b/tests/baselines/reference/declFileImportModuleWithExportAssignment.types index da2973f94db94..d3082311c1d44 100644 --- a/tests/baselines/reference/declFileImportModuleWithExportAssignment.types +++ b/tests/baselines/reference/declFileImportModuleWithExportAssignment.types @@ -1,17 +1,17 @@ === tests/cases/compiler/declFileImportModuleWithExportAssignment_1.ts === /**This is on import declaration*/ import a1 = require("declFileImportModuleWithExportAssignment_0"); ->a1 : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; }, Symbol(a1, Decl(declFileImportModuleWithExportAssignment_1.ts, 0, 0)) +>a1 : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; } export var a = a1; ->a : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; }, Symbol(a, Decl(declFileImportModuleWithExportAssignment_1.ts, 2, 10)) ->a1 : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; }, Symbol(a1, Decl(declFileImportModuleWithExportAssignment_1.ts, 0, 0)) +>a : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; } +>a1 : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; } a.test1(null, null, null); >a.test1(null, null, null) : void ->a.test1 : a1.connectModule, Symbol(test1, Decl(declFileImportModuleWithExportAssignment_0.ts, 12, 25)) ->a : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; }, Symbol(a, Decl(declFileImportModuleWithExportAssignment_1.ts, 2, 10)) ->test1 : a1.connectModule, Symbol(test1, Decl(declFileImportModuleWithExportAssignment_0.ts, 12, 25)) +>a.test1 : a1.connectModule +>a : { (): a1.connectExport; test1: a1.connectModule; test2(): a1.connectModule; } +>test1 : a1.connectModule >null : null >null : null >null : null @@ -19,49 +19,49 @@ a.test1(null, null, null); === tests/cases/compiler/declFileImportModuleWithExportAssignment_0.ts === module m2 { ->m2 : { (): connectExport; test1: connectModule; test2(): connectModule; }, Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) +>m2 : { (): connectExport; test1: connectModule; test2(): connectModule; } export interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(declFileImportModuleWithExportAssignment_0.ts, 3, 9)) ->req : any, Symbol(req, Decl(declFileImportModuleWithExportAssignment_0.ts, 3, 13)) ->next : any, Symbol(next, Decl(declFileImportModuleWithExportAssignment_0.ts, 3, 18)) +>res : any +>req : any +>next : any } export interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(declFileImportModuleWithExportAssignment_0.ts, 4, 5)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(declFileImportModuleWithExportAssignment_0.ts, 5, 36)) ->mod : connectModule, Symbol(mod, Decl(declFileImportModuleWithExportAssignment_0.ts, 6, 14)) ->connectModule : connectModule, Symbol(connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) ->connectExport : connectExport, Symbol(connectExport, Decl(declFileImportModuleWithExportAssignment_0.ts, 4, 5)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(declFileImportModuleWithExportAssignment_0.ts, 6, 51)) ->port : number, Symbol(port, Decl(declFileImportModuleWithExportAssignment_0.ts, 7, 17)) +>listen : (port: number) => void +>port : number } } var m2: { ->m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) +>m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } (): m2.connectExport; ->m2 : any, Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) ->connectExport : m2.connectExport, Symbol(m2.connectExport, Decl(declFileImportModuleWithExportAssignment_0.ts, 4, 5)) +>m2 : any +>connectExport : m2.connectExport test1: m2.connectModule; ->test1 : m2.connectModule, Symbol(test1, Decl(declFileImportModuleWithExportAssignment_0.ts, 12, 25)) ->m2 : any, Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) +>test1 : m2.connectModule +>m2 : any +>connectModule : m2.connectModule test2(): m2.connectModule; ->test2 : () => m2.connectModule, Symbol(test2, Decl(declFileImportModuleWithExportAssignment_0.ts, 13, 28)) ->m2 : any, Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declFileImportModuleWithExportAssignment_0.ts, 1, 11)) +>test2 : () => m2.connectModule +>m2 : any +>connectModule : m2.connectModule }; export = m2; ->m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(m2, Decl(declFileImportModuleWithExportAssignment_0.ts, 0, 0), Decl(declFileImportModuleWithExportAssignment_0.ts, 11, 3)) +>m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } diff --git a/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.symbols b/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.symbols new file mode 100644 index 0000000000000..9efd94c029e55 --- /dev/null +++ b/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/declFileImportedTypeUseInTypeArgPosition.ts === +class List { } +>List : Symbol(List, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 0, 0)) +>T : Symbol(T, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 0, 11)) + +declare module 'mod1' { + class Foo { +>Foo : Symbol(Foo, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 1, 23)) + } +} + +declare module 'moo' { + import x = require('mod1'); +>x : Symbol(x, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 6, 22)) + + export var p: List; +>p : Symbol(p, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 8, 14)) +>List : Symbol(List, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 0, 0)) +>x : Symbol(x, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 6, 22)) +>Foo : Symbol(x.Foo, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 1, 23)) +} + + + diff --git a/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.types b/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.types index c48156e7f616d..317f071efc0b6 100644 --- a/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.types +++ b/tests/baselines/reference/declFileImportedTypeUseInTypeArgPosition.types @@ -1,23 +1,23 @@ === tests/cases/compiler/declFileImportedTypeUseInTypeArgPosition.ts === class List { } ->List : List, Symbol(List, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 0, 0)) ->T : T, Symbol(T, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 0, 11)) +>List : List +>T : T declare module 'mod1' { class Foo { ->Foo : Foo, Symbol(Foo, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 1, 23)) +>Foo : Foo } } declare module 'moo' { import x = require('mod1'); ->x : typeof x, Symbol(x, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 6, 22)) +>x : typeof x export var p: List; ->p : List, Symbol(p, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 8, 14)) ->List : List, Symbol(List, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 0, 0)) ->x : any, Symbol(x, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 6, 22)) ->Foo : x.Foo, Symbol(x.Foo, Decl(declFileImportedTypeUseInTypeArgPosition.ts, 1, 23)) +>p : List +>List : List +>x : any +>Foo : x.Foo } diff --git a/tests/baselines/reference/declFileIndexSignatures.symbols b/tests/baselines/reference/declFileIndexSignatures.symbols new file mode 100644 index 0000000000000..e89cfc79b0dae --- /dev/null +++ b/tests/baselines/reference/declFileIndexSignatures.symbols @@ -0,0 +1,66 @@ +=== tests/cases/compiler/declFileIndexSignatures_0.ts === + +export interface IStringIndexSignature { +>IStringIndexSignature : Symbol(IStringIndexSignature, Decl(declFileIndexSignatures_0.ts, 0, 0)) + + [s: string]: string; +>s : Symbol(s, Decl(declFileIndexSignatures_0.ts, 2, 5)) +} +export interface INumberIndexSignature { +>INumberIndexSignature : Symbol(INumberIndexSignature, Decl(declFileIndexSignatures_0.ts, 3, 1)) + + [n: number]: number; +>n : Symbol(n, Decl(declFileIndexSignatures_0.ts, 5, 5)) +} + +export interface IBothIndexSignature { +>IBothIndexSignature : Symbol(IBothIndexSignature, Decl(declFileIndexSignatures_0.ts, 6, 1)) + + [s: string]: any; +>s : Symbol(s, Decl(declFileIndexSignatures_0.ts, 9, 5)) + + [n: number]: number; +>n : Symbol(n, Decl(declFileIndexSignatures_0.ts, 10, 5)) +} + +export interface IIndexSignatureWithTypeParameter { +>IIndexSignatureWithTypeParameter : Symbol(IIndexSignatureWithTypeParameter, Decl(declFileIndexSignatures_0.ts, 11, 1)) +>T : Symbol(T, Decl(declFileIndexSignatures_0.ts, 13, 50)) + + [a: string]: T; +>a : Symbol(a, Decl(declFileIndexSignatures_0.ts, 14, 5)) +>T : Symbol(T, Decl(declFileIndexSignatures_0.ts, 13, 50)) +} + +=== tests/cases/compiler/declFileIndexSignatures_1.ts === +interface IGlobalStringIndexSignature { +>IGlobalStringIndexSignature : Symbol(IGlobalStringIndexSignature, Decl(declFileIndexSignatures_1.ts, 0, 0)) + + [s: string]: string; +>s : Symbol(s, Decl(declFileIndexSignatures_1.ts, 1, 5)) +} +interface IGlobalNumberIndexSignature { +>IGlobalNumberIndexSignature : Symbol(IGlobalNumberIndexSignature, Decl(declFileIndexSignatures_1.ts, 2, 1)) + + [n: number]: number; +>n : Symbol(n, Decl(declFileIndexSignatures_1.ts, 4, 5)) +} + +interface IGlobalBothIndexSignature { +>IGlobalBothIndexSignature : Symbol(IGlobalBothIndexSignature, Decl(declFileIndexSignatures_1.ts, 5, 1)) + + [s: string]: any; +>s : Symbol(s, Decl(declFileIndexSignatures_1.ts, 8, 5)) + + [n: number]: number; +>n : Symbol(n, Decl(declFileIndexSignatures_1.ts, 9, 5)) +} + +interface IGlobalIndexSignatureWithTypeParameter { +>IGlobalIndexSignatureWithTypeParameter : Symbol(IGlobalIndexSignatureWithTypeParameter, Decl(declFileIndexSignatures_1.ts, 10, 1)) +>T : Symbol(T, Decl(declFileIndexSignatures_1.ts, 12, 49)) + + [a: string]: T; +>a : Symbol(a, Decl(declFileIndexSignatures_1.ts, 13, 5)) +>T : Symbol(T, Decl(declFileIndexSignatures_1.ts, 12, 49)) +} diff --git a/tests/baselines/reference/declFileIndexSignatures.types b/tests/baselines/reference/declFileIndexSignatures.types index dca420790d950..c971fb4aeb0fe 100644 --- a/tests/baselines/reference/declFileIndexSignatures.types +++ b/tests/baselines/reference/declFileIndexSignatures.types @@ -1,66 +1,66 @@ === tests/cases/compiler/declFileIndexSignatures_0.ts === export interface IStringIndexSignature { ->IStringIndexSignature : IStringIndexSignature, Symbol(IStringIndexSignature, Decl(declFileIndexSignatures_0.ts, 0, 0)) +>IStringIndexSignature : IStringIndexSignature [s: string]: string; ->s : string, Symbol(s, Decl(declFileIndexSignatures_0.ts, 2, 5)) +>s : string } export interface INumberIndexSignature { ->INumberIndexSignature : INumberIndexSignature, Symbol(INumberIndexSignature, Decl(declFileIndexSignatures_0.ts, 3, 1)) +>INumberIndexSignature : INumberIndexSignature [n: number]: number; ->n : number, Symbol(n, Decl(declFileIndexSignatures_0.ts, 5, 5)) +>n : number } export interface IBothIndexSignature { ->IBothIndexSignature : IBothIndexSignature, Symbol(IBothIndexSignature, Decl(declFileIndexSignatures_0.ts, 6, 1)) +>IBothIndexSignature : IBothIndexSignature [s: string]: any; ->s : string, Symbol(s, Decl(declFileIndexSignatures_0.ts, 9, 5)) +>s : string [n: number]: number; ->n : number, Symbol(n, Decl(declFileIndexSignatures_0.ts, 10, 5)) +>n : number } export interface IIndexSignatureWithTypeParameter { ->IIndexSignatureWithTypeParameter : IIndexSignatureWithTypeParameter, Symbol(IIndexSignatureWithTypeParameter, Decl(declFileIndexSignatures_0.ts, 11, 1)) ->T : T, Symbol(T, Decl(declFileIndexSignatures_0.ts, 13, 50)) +>IIndexSignatureWithTypeParameter : IIndexSignatureWithTypeParameter +>T : T [a: string]: T; ->a : string, Symbol(a, Decl(declFileIndexSignatures_0.ts, 14, 5)) ->T : T, Symbol(T, Decl(declFileIndexSignatures_0.ts, 13, 50)) +>a : string +>T : T } === tests/cases/compiler/declFileIndexSignatures_1.ts === interface IGlobalStringIndexSignature { ->IGlobalStringIndexSignature : IGlobalStringIndexSignature, Symbol(IGlobalStringIndexSignature, Decl(declFileIndexSignatures_1.ts, 0, 0)) +>IGlobalStringIndexSignature : IGlobalStringIndexSignature [s: string]: string; ->s : string, Symbol(s, Decl(declFileIndexSignatures_1.ts, 1, 5)) +>s : string } interface IGlobalNumberIndexSignature { ->IGlobalNumberIndexSignature : IGlobalNumberIndexSignature, Symbol(IGlobalNumberIndexSignature, Decl(declFileIndexSignatures_1.ts, 2, 1)) +>IGlobalNumberIndexSignature : IGlobalNumberIndexSignature [n: number]: number; ->n : number, Symbol(n, Decl(declFileIndexSignatures_1.ts, 4, 5)) +>n : number } interface IGlobalBothIndexSignature { ->IGlobalBothIndexSignature : IGlobalBothIndexSignature, Symbol(IGlobalBothIndexSignature, Decl(declFileIndexSignatures_1.ts, 5, 1)) +>IGlobalBothIndexSignature : IGlobalBothIndexSignature [s: string]: any; ->s : string, Symbol(s, Decl(declFileIndexSignatures_1.ts, 8, 5)) +>s : string [n: number]: number; ->n : number, Symbol(n, Decl(declFileIndexSignatures_1.ts, 9, 5)) +>n : number } interface IGlobalIndexSignatureWithTypeParameter { ->IGlobalIndexSignatureWithTypeParameter : IGlobalIndexSignatureWithTypeParameter, Symbol(IGlobalIndexSignatureWithTypeParameter, Decl(declFileIndexSignatures_1.ts, 10, 1)) ->T : T, Symbol(T, Decl(declFileIndexSignatures_1.ts, 12, 49)) +>IGlobalIndexSignatureWithTypeParameter : IGlobalIndexSignatureWithTypeParameter +>T : T [a: string]: T; ->a : string, Symbol(a, Decl(declFileIndexSignatures_1.ts, 13, 5)) ->T : T, Symbol(T, Decl(declFileIndexSignatures_1.ts, 12, 49)) +>a : string +>T : T } diff --git a/tests/baselines/reference/declFileInternalAliases.symbols b/tests/baselines/reference/declFileInternalAliases.symbols new file mode 100644 index 0000000000000..b41c09a754893 --- /dev/null +++ b/tests/baselines/reference/declFileInternalAliases.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/declFileInternalAliases.ts === +module m { +>m : Symbol(m, Decl(declFileInternalAliases.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(declFileInternalAliases.ts, 0, 10)) + } +} +module m1 { +>m1 : Symbol(m1, Decl(declFileInternalAliases.ts, 3, 1)) + + import x = m.c; +>x : Symbol(x, Decl(declFileInternalAliases.ts, 4, 11)) +>m : Symbol(m, Decl(declFileInternalAliases.ts, 0, 0)) +>c : Symbol(x, Decl(declFileInternalAliases.ts, 0, 10)) + + export var d = new x(); // emit the type as m.c +>d : Symbol(d, Decl(declFileInternalAliases.ts, 6, 14)) +>x : Symbol(x, Decl(declFileInternalAliases.ts, 4, 11)) +} +module m2 { +>m2 : Symbol(m2, Decl(declFileInternalAliases.ts, 7, 1)) + + export import x = m.c; +>x : Symbol(x, Decl(declFileInternalAliases.ts, 8, 11)) +>m : Symbol(m, Decl(declFileInternalAliases.ts, 0, 0)) +>c : Symbol(x, Decl(declFileInternalAliases.ts, 0, 10)) + + export var d = new x(); // emit the type as x +>d : Symbol(d, Decl(declFileInternalAliases.ts, 10, 14)) +>x : Symbol(x, Decl(declFileInternalAliases.ts, 8, 11)) +} diff --git a/tests/baselines/reference/declFileInternalAliases.types b/tests/baselines/reference/declFileInternalAliases.types index 49139e74de7e1..6dbc8db5c38e1 100644 --- a/tests/baselines/reference/declFileInternalAliases.types +++ b/tests/baselines/reference/declFileInternalAliases.types @@ -1,34 +1,34 @@ === tests/cases/compiler/declFileInternalAliases.ts === module m { ->m : typeof m, Symbol(m, Decl(declFileInternalAliases.ts, 0, 0)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileInternalAliases.ts, 0, 10)) +>c : c } } module m1 { ->m1 : typeof m1, Symbol(m1, Decl(declFileInternalAliases.ts, 3, 1)) +>m1 : typeof m1 import x = m.c; ->x : typeof x, Symbol(x, Decl(declFileInternalAliases.ts, 4, 11)) ->m : typeof m, Symbol(m, Decl(declFileInternalAliases.ts, 0, 0)) ->c : x, Symbol(x, Decl(declFileInternalAliases.ts, 0, 10)) +>x : typeof x +>m : typeof m +>c : x export var d = new x(); // emit the type as m.c ->d : x, Symbol(d, Decl(declFileInternalAliases.ts, 6, 14)) +>d : x >new x() : x ->x : typeof x, Symbol(x, Decl(declFileInternalAliases.ts, 4, 11)) +>x : typeof x } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(declFileInternalAliases.ts, 7, 1)) +>m2 : typeof m2 export import x = m.c; ->x : typeof x, Symbol(x, Decl(declFileInternalAliases.ts, 8, 11)) ->m : typeof m, Symbol(m, Decl(declFileInternalAliases.ts, 0, 0)) ->c : x, Symbol(x, Decl(declFileInternalAliases.ts, 0, 10)) +>x : typeof x +>m : typeof m +>c : x export var d = new x(); // emit the type as x ->d : x, Symbol(d, Decl(declFileInternalAliases.ts, 10, 14)) +>d : x >new x() : x ->x : typeof x, Symbol(x, Decl(declFileInternalAliases.ts, 8, 11)) +>x : typeof x } diff --git a/tests/baselines/reference/declFileMethods.symbols b/tests/baselines/reference/declFileMethods.symbols new file mode 100644 index 0000000000000..f0426e46026ac --- /dev/null +++ b/tests/baselines/reference/declFileMethods.symbols @@ -0,0 +1,431 @@ +=== tests/cases/compiler/declFileMethods_0.ts === + +export class c1 { +>c1 : Symbol(c1, Decl(declFileMethods_0.ts, 0, 0)) + + /** This comment should appear for foo*/ + public foo() { +>foo : Symbol(foo, Decl(declFileMethods_0.ts, 1, 17)) + } + /** This is comment for function signature*/ + public fooWithParameters(/** this is comment about a*/a: string, +>fooWithParameters : Symbol(fooWithParameters, Decl(declFileMethods_0.ts, 4, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 6, 29)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_0.ts, 6, 68)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_0.ts, 9, 11)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 6, 29)) + } + public fooWithRestParameters(a: string, ...rests: string[]) { +>fooWithRestParameters : Symbol(fooWithRestParameters, Decl(declFileMethods_0.ts, 10, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 11, 33)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 11, 43)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_0.ts, 11, 33)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 11, 43)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + + public fooWithOverloads(a: string): string; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 13, 5), Decl(declFileMethods_0.ts, 15, 47), Decl(declFileMethods_0.ts, 16, 47)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 15, 28)) + + public fooWithOverloads(a: number): number; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 13, 5), Decl(declFileMethods_0.ts, 15, 47), Decl(declFileMethods_0.ts, 16, 47)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 16, 28)) + + public fooWithOverloads(a: any): any { +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 13, 5), Decl(declFileMethods_0.ts, 15, 47), Decl(declFileMethods_0.ts, 16, 47)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 17, 28)) + + return a; +>a : Symbol(a, Decl(declFileMethods_0.ts, 17, 28)) + } + + + /** This comment should appear for privateFoo*/ + private privateFoo() { +>privateFoo : Symbol(privateFoo, Decl(declFileMethods_0.ts, 19, 5)) + } + /** This is comment for function signature*/ + private privateFooWithParameters(/** this is comment about a*/a: string, +>privateFooWithParameters : Symbol(privateFooWithParameters, Decl(declFileMethods_0.ts, 24, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 26, 37)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_0.ts, 26, 76)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_0.ts, 29, 11)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 26, 37)) + } + private privateFooWithRestParameters(a: string, ...rests: string[]) { +>privateFooWithRestParameters : Symbol(privateFooWithRestParameters, Decl(declFileMethods_0.ts, 30, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 31, 41)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 31, 51)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_0.ts, 31, 41)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 31, 51)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + private privateFooWithOverloads(a: string): string; +>privateFooWithOverloads : Symbol(privateFooWithOverloads, Decl(declFileMethods_0.ts, 33, 5), Decl(declFileMethods_0.ts, 34, 55), Decl(declFileMethods_0.ts, 35, 55)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 34, 36)) + + private privateFooWithOverloads(a: number): number; +>privateFooWithOverloads : Symbol(privateFooWithOverloads, Decl(declFileMethods_0.ts, 33, 5), Decl(declFileMethods_0.ts, 34, 55), Decl(declFileMethods_0.ts, 35, 55)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 35, 36)) + + private privateFooWithOverloads(a: any): any { +>privateFooWithOverloads : Symbol(privateFooWithOverloads, Decl(declFileMethods_0.ts, 33, 5), Decl(declFileMethods_0.ts, 34, 55), Decl(declFileMethods_0.ts, 35, 55)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 36, 36)) + + return a; +>a : Symbol(a, Decl(declFileMethods_0.ts, 36, 36)) + } + + + /** This comment should appear for static foo*/ + static staticFoo() { +>staticFoo : Symbol(c1.staticFoo, Decl(declFileMethods_0.ts, 38, 5)) + } + /** This is comment for function signature*/ + static staticFooWithParameters(/** this is comment about a*/a: string, +>staticFooWithParameters : Symbol(c1.staticFooWithParameters, Decl(declFileMethods_0.ts, 43, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 45, 35)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_0.ts, 45, 74)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_0.ts, 48, 11)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 45, 35)) + } + static staticFooWithRestParameters(a: string, ...rests: string[]) { +>staticFooWithRestParameters : Symbol(c1.staticFooWithRestParameters, Decl(declFileMethods_0.ts, 49, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 50, 39)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 50, 49)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_0.ts, 50, 39)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 50, 49)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + static staticFooWithOverloads(a: string): string; +>staticFooWithOverloads : Symbol(c1.staticFooWithOverloads, Decl(declFileMethods_0.ts, 52, 5), Decl(declFileMethods_0.ts, 53, 53), Decl(declFileMethods_0.ts, 54, 53)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 53, 34)) + + static staticFooWithOverloads(a: number): number; +>staticFooWithOverloads : Symbol(c1.staticFooWithOverloads, Decl(declFileMethods_0.ts, 52, 5), Decl(declFileMethods_0.ts, 53, 53), Decl(declFileMethods_0.ts, 54, 53)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 54, 34)) + + static staticFooWithOverloads(a: any): any { +>staticFooWithOverloads : Symbol(c1.staticFooWithOverloads, Decl(declFileMethods_0.ts, 52, 5), Decl(declFileMethods_0.ts, 53, 53), Decl(declFileMethods_0.ts, 54, 53)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 55, 34)) + + return a; +>a : Symbol(a, Decl(declFileMethods_0.ts, 55, 34)) + } + + + /** This comment should appear for privateStaticFoo*/ + private static privateStaticFoo() { +>privateStaticFoo : Symbol(c1.privateStaticFoo, Decl(declFileMethods_0.ts, 57, 5)) + } + /** This is comment for function signature*/ + private static privateStaticFooWithParameters(/** this is comment about a*/a: string, +>privateStaticFooWithParameters : Symbol(c1.privateStaticFooWithParameters, Decl(declFileMethods_0.ts, 62, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 64, 50)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_0.ts, 64, 89)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_0.ts, 67, 11)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 64, 50)) + } + private static privateStaticFooWithRestParameters(a: string, ...rests: string[]) { +>privateStaticFooWithRestParameters : Symbol(c1.privateStaticFooWithRestParameters, Decl(declFileMethods_0.ts, 68, 5)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 69, 54)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 69, 64)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_0.ts, 69, 54)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 69, 64)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + private static privateStaticFooWithOverloads(a: string): string; +>privateStaticFooWithOverloads : Symbol(c1.privateStaticFooWithOverloads, Decl(declFileMethods_0.ts, 71, 5), Decl(declFileMethods_0.ts, 72, 68), Decl(declFileMethods_0.ts, 73, 68)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 72, 49)) + + private static privateStaticFooWithOverloads(a: number): number; +>privateStaticFooWithOverloads : Symbol(c1.privateStaticFooWithOverloads, Decl(declFileMethods_0.ts, 71, 5), Decl(declFileMethods_0.ts, 72, 68), Decl(declFileMethods_0.ts, 73, 68)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 73, 49)) + + private static privateStaticFooWithOverloads(a: any): any { +>privateStaticFooWithOverloads : Symbol(c1.privateStaticFooWithOverloads, Decl(declFileMethods_0.ts, 71, 5), Decl(declFileMethods_0.ts, 72, 68), Decl(declFileMethods_0.ts, 73, 68)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 74, 49)) + + return a; +>a : Symbol(a, Decl(declFileMethods_0.ts, 74, 49)) + } +} + +export interface I1 { +>I1 : Symbol(I1, Decl(declFileMethods_0.ts, 77, 1)) + + /** This comment should appear for foo*/ + foo(): string; +>foo : Symbol(foo, Decl(declFileMethods_0.ts, 79, 21)) + + /** This is comment for function signature*/ + fooWithParameters(/** this is comment about a*/a: string, +>fooWithParameters : Symbol(fooWithParameters, Decl(declFileMethods_0.ts, 81, 18)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 84, 22)) + + /** this is comment for b*/ + b: number): void; +>b : Symbol(b, Decl(declFileMethods_0.ts, 84, 61)) + + fooWithRestParameters(a: string, ...rests: string[]): string; +>fooWithRestParameters : Symbol(fooWithRestParameters, Decl(declFileMethods_0.ts, 86, 25)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 88, 26)) +>rests : Symbol(rests, Decl(declFileMethods_0.ts, 88, 36)) + + fooWithOverloads(a: string): string; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 88, 65), Decl(declFileMethods_0.ts, 90, 40)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 90, 21)) + + fooWithOverloads(a: number): number; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 88, 65), Decl(declFileMethods_0.ts, 90, 40)) +>a : Symbol(a, Decl(declFileMethods_0.ts, 91, 21)) +} + +=== tests/cases/compiler/declFileMethods_1.ts === +class c2 { +>c2 : Symbol(c2, Decl(declFileMethods_1.ts, 0, 0)) + + /** This comment should appear for foo*/ + public foo() { +>foo : Symbol(foo, Decl(declFileMethods_1.ts, 0, 10)) + } + /** This is comment for function signature*/ + public fooWithParameters(/** this is comment about a*/a: string, +>fooWithParameters : Symbol(fooWithParameters, Decl(declFileMethods_1.ts, 3, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 5, 29)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_1.ts, 5, 68)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_1.ts, 8, 11)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 5, 29)) + } + public fooWithRestParameters(a: string, ...rests: string[]) { +>fooWithRestParameters : Symbol(fooWithRestParameters, Decl(declFileMethods_1.ts, 9, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 10, 33)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 10, 43)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_1.ts, 10, 33)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 10, 43)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + + public fooWithOverloads(a: string): string; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 12, 5), Decl(declFileMethods_1.ts, 14, 47), Decl(declFileMethods_1.ts, 15, 47)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 14, 28)) + + public fooWithOverloads(a: number): number; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 12, 5), Decl(declFileMethods_1.ts, 14, 47), Decl(declFileMethods_1.ts, 15, 47)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 15, 28)) + + public fooWithOverloads(a: any): any { +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 12, 5), Decl(declFileMethods_1.ts, 14, 47), Decl(declFileMethods_1.ts, 15, 47)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 16, 28)) + + return a; +>a : Symbol(a, Decl(declFileMethods_1.ts, 16, 28)) + } + + + /** This comment should appear for privateFoo*/ + private privateFoo() { +>privateFoo : Symbol(privateFoo, Decl(declFileMethods_1.ts, 18, 5)) + } + /** This is comment for function signature*/ + private privateFooWithParameters(/** this is comment about a*/a: string, +>privateFooWithParameters : Symbol(privateFooWithParameters, Decl(declFileMethods_1.ts, 23, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 25, 37)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_1.ts, 25, 76)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_1.ts, 28, 11)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 25, 37)) + } + private privateFooWithRestParameters(a: string, ...rests: string[]) { +>privateFooWithRestParameters : Symbol(privateFooWithRestParameters, Decl(declFileMethods_1.ts, 29, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 30, 41)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 30, 51)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_1.ts, 30, 41)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 30, 51)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + private privateFooWithOverloads(a: string): string; +>privateFooWithOverloads : Symbol(privateFooWithOverloads, Decl(declFileMethods_1.ts, 32, 5), Decl(declFileMethods_1.ts, 33, 55), Decl(declFileMethods_1.ts, 34, 55)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 33, 36)) + + private privateFooWithOverloads(a: number): number; +>privateFooWithOverloads : Symbol(privateFooWithOverloads, Decl(declFileMethods_1.ts, 32, 5), Decl(declFileMethods_1.ts, 33, 55), Decl(declFileMethods_1.ts, 34, 55)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 34, 36)) + + private privateFooWithOverloads(a: any): any { +>privateFooWithOverloads : Symbol(privateFooWithOverloads, Decl(declFileMethods_1.ts, 32, 5), Decl(declFileMethods_1.ts, 33, 55), Decl(declFileMethods_1.ts, 34, 55)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 35, 36)) + + return a; +>a : Symbol(a, Decl(declFileMethods_1.ts, 35, 36)) + } + + + /** This comment should appear for static foo*/ + static staticFoo() { +>staticFoo : Symbol(c2.staticFoo, Decl(declFileMethods_1.ts, 37, 5)) + } + /** This is comment for function signature*/ + static staticFooWithParameters(/** this is comment about a*/a: string, +>staticFooWithParameters : Symbol(c2.staticFooWithParameters, Decl(declFileMethods_1.ts, 42, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 44, 35)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_1.ts, 44, 74)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_1.ts, 47, 11)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 44, 35)) + } + static staticFooWithRestParameters(a: string, ...rests: string[]) { +>staticFooWithRestParameters : Symbol(c2.staticFooWithRestParameters, Decl(declFileMethods_1.ts, 48, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 49, 39)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 49, 49)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_1.ts, 49, 39)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 49, 49)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + static staticFooWithOverloads(a: string): string; +>staticFooWithOverloads : Symbol(c2.staticFooWithOverloads, Decl(declFileMethods_1.ts, 51, 5), Decl(declFileMethods_1.ts, 52, 53), Decl(declFileMethods_1.ts, 53, 53)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 52, 34)) + + static staticFooWithOverloads(a: number): number; +>staticFooWithOverloads : Symbol(c2.staticFooWithOverloads, Decl(declFileMethods_1.ts, 51, 5), Decl(declFileMethods_1.ts, 52, 53), Decl(declFileMethods_1.ts, 53, 53)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 53, 34)) + + static staticFooWithOverloads(a: any): any { +>staticFooWithOverloads : Symbol(c2.staticFooWithOverloads, Decl(declFileMethods_1.ts, 51, 5), Decl(declFileMethods_1.ts, 52, 53), Decl(declFileMethods_1.ts, 53, 53)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 54, 34)) + + return a; +>a : Symbol(a, Decl(declFileMethods_1.ts, 54, 34)) + } + + + /** This comment should appear for privateStaticFoo*/ + private static privateStaticFoo() { +>privateStaticFoo : Symbol(c2.privateStaticFoo, Decl(declFileMethods_1.ts, 56, 5)) + } + /** This is comment for function signature*/ + private static privateStaticFooWithParameters(/** this is comment about a*/a: string, +>privateStaticFooWithParameters : Symbol(c2.privateStaticFooWithParameters, Decl(declFileMethods_1.ts, 61, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 63, 50)) + + /** this is comment for b*/ + b: number) { +>b : Symbol(b, Decl(declFileMethods_1.ts, 63, 89)) + + var d = a; +>d : Symbol(d, Decl(declFileMethods_1.ts, 66, 11)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 63, 50)) + } + private static privateStaticFooWithRestParameters(a: string, ...rests: string[]) { +>privateStaticFooWithRestParameters : Symbol(c2.privateStaticFooWithRestParameters, Decl(declFileMethods_1.ts, 67, 5)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 68, 54)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 68, 64)) + + return a + rests.join(""); +>a : Symbol(a, Decl(declFileMethods_1.ts, 68, 54)) +>rests.join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 68, 64)) +>join : Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) + } + private static privateStaticFooWithOverloads(a: string): string; +>privateStaticFooWithOverloads : Symbol(c2.privateStaticFooWithOverloads, Decl(declFileMethods_1.ts, 70, 5), Decl(declFileMethods_1.ts, 71, 68), Decl(declFileMethods_1.ts, 72, 68)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 71, 49)) + + private static privateStaticFooWithOverloads(a: number): number; +>privateStaticFooWithOverloads : Symbol(c2.privateStaticFooWithOverloads, Decl(declFileMethods_1.ts, 70, 5), Decl(declFileMethods_1.ts, 71, 68), Decl(declFileMethods_1.ts, 72, 68)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 72, 49)) + + private static privateStaticFooWithOverloads(a: any): any { +>privateStaticFooWithOverloads : Symbol(c2.privateStaticFooWithOverloads, Decl(declFileMethods_1.ts, 70, 5), Decl(declFileMethods_1.ts, 71, 68), Decl(declFileMethods_1.ts, 72, 68)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 73, 49)) + + return a; +>a : Symbol(a, Decl(declFileMethods_1.ts, 73, 49)) + } +} + +interface I2 { +>I2 : Symbol(I2, Decl(declFileMethods_1.ts, 76, 1)) + + /** This comment should appear for foo*/ + foo(): string; +>foo : Symbol(foo, Decl(declFileMethods_1.ts, 78, 14)) + + /** This is comment for function signature*/ + fooWithParameters(/** this is comment about a*/a: string, +>fooWithParameters : Symbol(fooWithParameters, Decl(declFileMethods_1.ts, 80, 18)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 83, 22)) + + /** this is comment for b*/ + b: number): void; +>b : Symbol(b, Decl(declFileMethods_1.ts, 83, 61)) + + fooWithRestParameters(a: string, ...rests: string[]): string; +>fooWithRestParameters : Symbol(fooWithRestParameters, Decl(declFileMethods_1.ts, 85, 25)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 87, 26)) +>rests : Symbol(rests, Decl(declFileMethods_1.ts, 87, 36)) + + fooWithOverloads(a: string): string; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 87, 65), Decl(declFileMethods_1.ts, 89, 40)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 89, 21)) + + fooWithOverloads(a: number): number; +>fooWithOverloads : Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 87, 65), Decl(declFileMethods_1.ts, 89, 40)) +>a : Symbol(a, Decl(declFileMethods_1.ts, 90, 21)) +} + diff --git a/tests/baselines/reference/declFileMethods.types b/tests/baselines/reference/declFileMethods.types index 39e8d0e48afa0..ecd7b8e0cff90 100644 --- a/tests/baselines/reference/declFileMethods.types +++ b/tests/baselines/reference/declFileMethods.types @@ -1,455 +1,455 @@ === tests/cases/compiler/declFileMethods_0.ts === export class c1 { ->c1 : c1, Symbol(c1, Decl(declFileMethods_0.ts, 0, 0)) +>c1 : c1 /** This comment should appear for foo*/ public foo() { ->foo : () => void, Symbol(foo, Decl(declFileMethods_0.ts, 1, 17)) +>foo : () => void } /** This is comment for function signature*/ public fooWithParameters(/** this is comment about a*/a: string, ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(declFileMethods_0.ts, 4, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 6, 29)) +>fooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_0.ts, 6, 68)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_0.ts, 9, 11)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 6, 29)) +>d : string +>a : string } public fooWithRestParameters(a: string, ...rests: string[]) { ->fooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(fooWithRestParameters, Decl(declFileMethods_0.ts, 10, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 11, 33)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 11, 43)) +>fooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 11, 33)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 11, 43)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } public fooWithOverloads(a: string): string; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 13, 5), Decl(declFileMethods_0.ts, 15, 47), Decl(declFileMethods_0.ts, 16, 47)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 15, 28)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : string public fooWithOverloads(a: number): number; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 13, 5), Decl(declFileMethods_0.ts, 15, 47), Decl(declFileMethods_0.ts, 16, 47)) ->a : number, Symbol(a, Decl(declFileMethods_0.ts, 16, 28)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : number public fooWithOverloads(a: any): any { ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 13, 5), Decl(declFileMethods_0.ts, 15, 47), Decl(declFileMethods_0.ts, 16, 47)) ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 17, 28)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 17, 28)) +>a : any } /** This comment should appear for privateFoo*/ private privateFoo() { ->privateFoo : () => void, Symbol(privateFoo, Decl(declFileMethods_0.ts, 19, 5)) +>privateFoo : () => void } /** This is comment for function signature*/ private privateFooWithParameters(/** this is comment about a*/a: string, ->privateFooWithParameters : (a: string, b: number) => void, Symbol(privateFooWithParameters, Decl(declFileMethods_0.ts, 24, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 26, 37)) +>privateFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_0.ts, 26, 76)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_0.ts, 29, 11)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 26, 37)) +>d : string +>a : string } private privateFooWithRestParameters(a: string, ...rests: string[]) { ->privateFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(privateFooWithRestParameters, Decl(declFileMethods_0.ts, 30, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 31, 41)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 31, 51)) +>privateFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 31, 41)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 31, 51)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } private privateFooWithOverloads(a: string): string; ->privateFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(privateFooWithOverloads, Decl(declFileMethods_0.ts, 33, 5), Decl(declFileMethods_0.ts, 34, 55), Decl(declFileMethods_0.ts, 35, 55)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 34, 36)) +>privateFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string private privateFooWithOverloads(a: number): number; ->privateFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(privateFooWithOverloads, Decl(declFileMethods_0.ts, 33, 5), Decl(declFileMethods_0.ts, 34, 55), Decl(declFileMethods_0.ts, 35, 55)) ->a : number, Symbol(a, Decl(declFileMethods_0.ts, 35, 36)) +>privateFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number private privateFooWithOverloads(a: any): any { ->privateFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(privateFooWithOverloads, Decl(declFileMethods_0.ts, 33, 5), Decl(declFileMethods_0.ts, 34, 55), Decl(declFileMethods_0.ts, 35, 55)) ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 36, 36)) +>privateFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 36, 36)) +>a : any } /** This comment should appear for static foo*/ static staticFoo() { ->staticFoo : () => void, Symbol(c1.staticFoo, Decl(declFileMethods_0.ts, 38, 5)) +>staticFoo : () => void } /** This is comment for function signature*/ static staticFooWithParameters(/** this is comment about a*/a: string, ->staticFooWithParameters : (a: string, b: number) => void, Symbol(c1.staticFooWithParameters, Decl(declFileMethods_0.ts, 43, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 45, 35)) +>staticFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_0.ts, 45, 74)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_0.ts, 48, 11)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 45, 35)) +>d : string +>a : string } static staticFooWithRestParameters(a: string, ...rests: string[]) { ->staticFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(c1.staticFooWithRestParameters, Decl(declFileMethods_0.ts, 49, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 50, 39)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 50, 49)) +>staticFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 50, 39)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 50, 49)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } static staticFooWithOverloads(a: string): string; ->staticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c1.staticFooWithOverloads, Decl(declFileMethods_0.ts, 52, 5), Decl(declFileMethods_0.ts, 53, 53), Decl(declFileMethods_0.ts, 54, 53)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 53, 34)) +>staticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string static staticFooWithOverloads(a: number): number; ->staticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c1.staticFooWithOverloads, Decl(declFileMethods_0.ts, 52, 5), Decl(declFileMethods_0.ts, 53, 53), Decl(declFileMethods_0.ts, 54, 53)) ->a : number, Symbol(a, Decl(declFileMethods_0.ts, 54, 34)) +>staticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number static staticFooWithOverloads(a: any): any { ->staticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c1.staticFooWithOverloads, Decl(declFileMethods_0.ts, 52, 5), Decl(declFileMethods_0.ts, 53, 53), Decl(declFileMethods_0.ts, 54, 53)) ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 55, 34)) +>staticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 55, 34)) +>a : any } /** This comment should appear for privateStaticFoo*/ private static privateStaticFoo() { ->privateStaticFoo : () => void, Symbol(c1.privateStaticFoo, Decl(declFileMethods_0.ts, 57, 5)) +>privateStaticFoo : () => void } /** This is comment for function signature*/ private static privateStaticFooWithParameters(/** this is comment about a*/a: string, ->privateStaticFooWithParameters : (a: string, b: number) => void, Symbol(c1.privateStaticFooWithParameters, Decl(declFileMethods_0.ts, 62, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 64, 50)) +>privateStaticFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_0.ts, 64, 89)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_0.ts, 67, 11)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 64, 50)) +>d : string +>a : string } private static privateStaticFooWithRestParameters(a: string, ...rests: string[]) { ->privateStaticFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(c1.privateStaticFooWithRestParameters, Decl(declFileMethods_0.ts, 68, 5)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 69, 54)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 69, 64)) +>privateStaticFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 69, 54)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 69, 64)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } private static privateStaticFooWithOverloads(a: string): string; ->privateStaticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c1.privateStaticFooWithOverloads, Decl(declFileMethods_0.ts, 71, 5), Decl(declFileMethods_0.ts, 72, 68), Decl(declFileMethods_0.ts, 73, 68)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 72, 49)) +>privateStaticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string private static privateStaticFooWithOverloads(a: number): number; ->privateStaticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c1.privateStaticFooWithOverloads, Decl(declFileMethods_0.ts, 71, 5), Decl(declFileMethods_0.ts, 72, 68), Decl(declFileMethods_0.ts, 73, 68)) ->a : number, Symbol(a, Decl(declFileMethods_0.ts, 73, 49)) +>privateStaticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number private static privateStaticFooWithOverloads(a: any): any { ->privateStaticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c1.privateStaticFooWithOverloads, Decl(declFileMethods_0.ts, 71, 5), Decl(declFileMethods_0.ts, 72, 68), Decl(declFileMethods_0.ts, 73, 68)) ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 74, 49)) +>privateStaticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_0.ts, 74, 49)) +>a : any } } export interface I1 { ->I1 : I1, Symbol(I1, Decl(declFileMethods_0.ts, 77, 1)) +>I1 : I1 /** This comment should appear for foo*/ foo(): string; ->foo : () => string, Symbol(foo, Decl(declFileMethods_0.ts, 79, 21)) +>foo : () => string /** This is comment for function signature*/ fooWithParameters(/** this is comment about a*/a: string, ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(declFileMethods_0.ts, 81, 18)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 84, 22)) +>fooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number): void; ->b : number, Symbol(b, Decl(declFileMethods_0.ts, 84, 61)) +>b : number fooWithRestParameters(a: string, ...rests: string[]): string; ->fooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(fooWithRestParameters, Decl(declFileMethods_0.ts, 86, 25)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 88, 26)) ->rests : string[], Symbol(rests, Decl(declFileMethods_0.ts, 88, 36)) +>fooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] fooWithOverloads(a: string): string; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 88, 65), Decl(declFileMethods_0.ts, 90, 40)) ->a : string, Symbol(a, Decl(declFileMethods_0.ts, 90, 21)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : string fooWithOverloads(a: number): number; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_0.ts, 88, 65), Decl(declFileMethods_0.ts, 90, 40)) ->a : number, Symbol(a, Decl(declFileMethods_0.ts, 91, 21)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : number } === tests/cases/compiler/declFileMethods_1.ts === class c2 { ->c2 : c2, Symbol(c2, Decl(declFileMethods_1.ts, 0, 0)) +>c2 : c2 /** This comment should appear for foo*/ public foo() { ->foo : () => void, Symbol(foo, Decl(declFileMethods_1.ts, 0, 10)) +>foo : () => void } /** This is comment for function signature*/ public fooWithParameters(/** this is comment about a*/a: string, ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(declFileMethods_1.ts, 3, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 5, 29)) +>fooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_1.ts, 5, 68)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_1.ts, 8, 11)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 5, 29)) +>d : string +>a : string } public fooWithRestParameters(a: string, ...rests: string[]) { ->fooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(fooWithRestParameters, Decl(declFileMethods_1.ts, 9, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 10, 33)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 10, 43)) +>fooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 10, 33)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 10, 43)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } public fooWithOverloads(a: string): string; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 12, 5), Decl(declFileMethods_1.ts, 14, 47), Decl(declFileMethods_1.ts, 15, 47)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 14, 28)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : string public fooWithOverloads(a: number): number; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 12, 5), Decl(declFileMethods_1.ts, 14, 47), Decl(declFileMethods_1.ts, 15, 47)) ->a : number, Symbol(a, Decl(declFileMethods_1.ts, 15, 28)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : number public fooWithOverloads(a: any): any { ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 12, 5), Decl(declFileMethods_1.ts, 14, 47), Decl(declFileMethods_1.ts, 15, 47)) ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 16, 28)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 16, 28)) +>a : any } /** This comment should appear for privateFoo*/ private privateFoo() { ->privateFoo : () => void, Symbol(privateFoo, Decl(declFileMethods_1.ts, 18, 5)) +>privateFoo : () => void } /** This is comment for function signature*/ private privateFooWithParameters(/** this is comment about a*/a: string, ->privateFooWithParameters : (a: string, b: number) => void, Symbol(privateFooWithParameters, Decl(declFileMethods_1.ts, 23, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 25, 37)) +>privateFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_1.ts, 25, 76)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_1.ts, 28, 11)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 25, 37)) +>d : string +>a : string } private privateFooWithRestParameters(a: string, ...rests: string[]) { ->privateFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(privateFooWithRestParameters, Decl(declFileMethods_1.ts, 29, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 30, 41)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 30, 51)) +>privateFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 30, 41)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 30, 51)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } private privateFooWithOverloads(a: string): string; ->privateFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(privateFooWithOverloads, Decl(declFileMethods_1.ts, 32, 5), Decl(declFileMethods_1.ts, 33, 55), Decl(declFileMethods_1.ts, 34, 55)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 33, 36)) +>privateFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string private privateFooWithOverloads(a: number): number; ->privateFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(privateFooWithOverloads, Decl(declFileMethods_1.ts, 32, 5), Decl(declFileMethods_1.ts, 33, 55), Decl(declFileMethods_1.ts, 34, 55)) ->a : number, Symbol(a, Decl(declFileMethods_1.ts, 34, 36)) +>privateFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number private privateFooWithOverloads(a: any): any { ->privateFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(privateFooWithOverloads, Decl(declFileMethods_1.ts, 32, 5), Decl(declFileMethods_1.ts, 33, 55), Decl(declFileMethods_1.ts, 34, 55)) ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 35, 36)) +>privateFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 35, 36)) +>a : any } /** This comment should appear for static foo*/ static staticFoo() { ->staticFoo : () => void, Symbol(c2.staticFoo, Decl(declFileMethods_1.ts, 37, 5)) +>staticFoo : () => void } /** This is comment for function signature*/ static staticFooWithParameters(/** this is comment about a*/a: string, ->staticFooWithParameters : (a: string, b: number) => void, Symbol(c2.staticFooWithParameters, Decl(declFileMethods_1.ts, 42, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 44, 35)) +>staticFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_1.ts, 44, 74)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_1.ts, 47, 11)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 44, 35)) +>d : string +>a : string } static staticFooWithRestParameters(a: string, ...rests: string[]) { ->staticFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(c2.staticFooWithRestParameters, Decl(declFileMethods_1.ts, 48, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 49, 39)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 49, 49)) +>staticFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 49, 39)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 49, 49)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } static staticFooWithOverloads(a: string): string; ->staticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c2.staticFooWithOverloads, Decl(declFileMethods_1.ts, 51, 5), Decl(declFileMethods_1.ts, 52, 53), Decl(declFileMethods_1.ts, 53, 53)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 52, 34)) +>staticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string static staticFooWithOverloads(a: number): number; ->staticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c2.staticFooWithOverloads, Decl(declFileMethods_1.ts, 51, 5), Decl(declFileMethods_1.ts, 52, 53), Decl(declFileMethods_1.ts, 53, 53)) ->a : number, Symbol(a, Decl(declFileMethods_1.ts, 53, 34)) +>staticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number static staticFooWithOverloads(a: any): any { ->staticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c2.staticFooWithOverloads, Decl(declFileMethods_1.ts, 51, 5), Decl(declFileMethods_1.ts, 52, 53), Decl(declFileMethods_1.ts, 53, 53)) ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 54, 34)) +>staticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 54, 34)) +>a : any } /** This comment should appear for privateStaticFoo*/ private static privateStaticFoo() { ->privateStaticFoo : () => void, Symbol(c2.privateStaticFoo, Decl(declFileMethods_1.ts, 56, 5)) +>privateStaticFoo : () => void } /** This is comment for function signature*/ private static privateStaticFooWithParameters(/** this is comment about a*/a: string, ->privateStaticFooWithParameters : (a: string, b: number) => void, Symbol(c2.privateStaticFooWithParameters, Decl(declFileMethods_1.ts, 61, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 63, 50)) +>privateStaticFooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number) { ->b : number, Symbol(b, Decl(declFileMethods_1.ts, 63, 89)) +>b : number var d = a; ->d : string, Symbol(d, Decl(declFileMethods_1.ts, 66, 11)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 63, 50)) +>d : string +>a : string } private static privateStaticFooWithRestParameters(a: string, ...rests: string[]) { ->privateStaticFooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(c2.privateStaticFooWithRestParameters, Decl(declFileMethods_1.ts, 67, 5)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 68, 54)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 68, 64)) +>privateStaticFooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] return a + rests.join(""); >a + rests.join("") : string ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 68, 54)) +>a : string >rests.join("") : string ->rests.join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 68, 64)) ->join : (separator?: string) => string, Symbol(Array.join, Decl(lib.d.ts, 1035, 31)) +>rests.join : (separator?: string) => string +>rests : string[] +>join : (separator?: string) => string >"" : string } private static privateStaticFooWithOverloads(a: string): string; ->privateStaticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c2.privateStaticFooWithOverloads, Decl(declFileMethods_1.ts, 70, 5), Decl(declFileMethods_1.ts, 71, 68), Decl(declFileMethods_1.ts, 72, 68)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 71, 49)) +>privateStaticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : string private static privateStaticFooWithOverloads(a: number): number; ->privateStaticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c2.privateStaticFooWithOverloads, Decl(declFileMethods_1.ts, 70, 5), Decl(declFileMethods_1.ts, 71, 68), Decl(declFileMethods_1.ts, 72, 68)) ->a : number, Symbol(a, Decl(declFileMethods_1.ts, 72, 49)) +>privateStaticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : number private static privateStaticFooWithOverloads(a: any): any { ->privateStaticFooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(c2.privateStaticFooWithOverloads, Decl(declFileMethods_1.ts, 70, 5), Decl(declFileMethods_1.ts, 71, 68), Decl(declFileMethods_1.ts, 72, 68)) ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 73, 49)) +>privateStaticFooWithOverloads : { (a: string): string; (a: number): number; } +>a : any return a; ->a : any, Symbol(a, Decl(declFileMethods_1.ts, 73, 49)) +>a : any } } interface I2 { ->I2 : I2, Symbol(I2, Decl(declFileMethods_1.ts, 76, 1)) +>I2 : I2 /** This comment should appear for foo*/ foo(): string; ->foo : () => string, Symbol(foo, Decl(declFileMethods_1.ts, 78, 14)) +>foo : () => string /** This is comment for function signature*/ fooWithParameters(/** this is comment about a*/a: string, ->fooWithParameters : (a: string, b: number) => void, Symbol(fooWithParameters, Decl(declFileMethods_1.ts, 80, 18)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 83, 22)) +>fooWithParameters : (a: string, b: number) => void +>a : string /** this is comment for b*/ b: number): void; ->b : number, Symbol(b, Decl(declFileMethods_1.ts, 83, 61)) +>b : number fooWithRestParameters(a: string, ...rests: string[]): string; ->fooWithRestParameters : (a: string, ...rests: string[]) => string, Symbol(fooWithRestParameters, Decl(declFileMethods_1.ts, 85, 25)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 87, 26)) ->rests : string[], Symbol(rests, Decl(declFileMethods_1.ts, 87, 36)) +>fooWithRestParameters : (a: string, ...rests: string[]) => string +>a : string +>rests : string[] fooWithOverloads(a: string): string; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 87, 65), Decl(declFileMethods_1.ts, 89, 40)) ->a : string, Symbol(a, Decl(declFileMethods_1.ts, 89, 21)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : string fooWithOverloads(a: number): number; ->fooWithOverloads : { (a: string): string; (a: number): number; }, Symbol(fooWithOverloads, Decl(declFileMethods_1.ts, 87, 65), Decl(declFileMethods_1.ts, 89, 40)) ->a : number, Symbol(a, Decl(declFileMethods_1.ts, 90, 21)) +>fooWithOverloads : { (a: string): string; (a: number): number; } +>a : number } diff --git a/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.symbols b/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.symbols new file mode 100644 index 0000000000000..b47f6faeb5072 --- /dev/null +++ b/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/declFileModuleAssignmentInObjectLiteralProperty.ts === + +module m1 { +>m1 : Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 1, 11)) + } +} +var d = { +>d : Symbol(d, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 5, 3)) + + m1: { m: m1 }, +>m1 : Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 5, 9)) +>m : Symbol(m, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 6, 9)) +>m1 : Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 0, 0)) + + m2: { c: m1.c }, +>m2 : Symbol(m2, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 6, 18)) +>c : Symbol(c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 7, 9)) +>m1.c : Symbol(m1.c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 1, 11)) +>m1 : Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 0, 0)) +>c : Symbol(m1.c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 1, 11)) + +}; diff --git a/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.types b/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.types index f6b54d7766b8f..6fd697b7ea2eb 100644 --- a/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.types +++ b/tests/baselines/reference/declFileModuleAssignmentInObjectLiteralProperty.types @@ -1,28 +1,28 @@ === tests/cases/compiler/declFileModuleAssignmentInObjectLiteralProperty.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 0, 0)) +>m1 : typeof m1 export class c { ->c : c, Symbol(c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 1, 11)) +>c : c } } var d = { ->d : { m1: { m: typeof m1; }; m2: { c: typeof m1.c; }; }, Symbol(d, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 5, 3)) +>d : { m1: { m: typeof m1; }; m2: { c: typeof m1.c; }; } >{ m1: { m: m1 }, m2: { c: m1.c },} : { m1: { m: typeof m1; }; m2: { c: typeof m1.c; }; } m1: { m: m1 }, ->m1 : { m: typeof m1; }, Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 5, 9)) +>m1 : { m: typeof m1; } >{ m: m1 } : { m: typeof m1; } ->m : typeof m1, Symbol(m, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 6, 9)) ->m1 : typeof m1, Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 0, 0)) +>m : typeof m1 +>m1 : typeof m1 m2: { c: m1.c }, ->m2 : { c: typeof m1.c; }, Symbol(m2, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 6, 18)) +>m2 : { c: typeof m1.c; } >{ c: m1.c } : { c: typeof m1.c; } ->c : typeof m1.c, Symbol(c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 7, 9)) ->m1.c : typeof m1.c, Symbol(m1.c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 1, 11)) ->m1 : typeof m1, Symbol(m1, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 0, 0)) ->c : typeof m1.c, Symbol(m1.c, Decl(declFileModuleAssignmentInObjectLiteralProperty.ts, 1, 11)) +>c : typeof m1.c +>m1.c : typeof m1.c +>m1 : typeof m1 +>c : typeof m1.c }; diff --git a/tests/baselines/reference/declFileModuleContinuation.symbols b/tests/baselines/reference/declFileModuleContinuation.symbols new file mode 100644 index 0000000000000..6a1b0492f1d85 --- /dev/null +++ b/tests/baselines/reference/declFileModuleContinuation.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/declFileModuleContinuation.ts === +module A.C { +>A : Symbol(A, Decl(declFileModuleContinuation.ts, 0, 0), Decl(declFileModuleContinuation.ts, 3, 1)) +>C : Symbol(C, Decl(declFileModuleContinuation.ts, 0, 9)) + + export interface Z { +>Z : Symbol(Z, Decl(declFileModuleContinuation.ts, 0, 12)) + } +} + +module A.B.C { +>A : Symbol(A, Decl(declFileModuleContinuation.ts, 0, 0), Decl(declFileModuleContinuation.ts, 3, 1)) +>B : Symbol(B, Decl(declFileModuleContinuation.ts, 5, 9)) +>C : Symbol(C, Decl(declFileModuleContinuation.ts, 5, 11)) + + export class W implements A.C.Z { +>W : Symbol(W, Decl(declFileModuleContinuation.ts, 5, 14)) +>A.C.Z : Symbol(A.C.Z, Decl(declFileModuleContinuation.ts, 0, 12)) +>A.C : Symbol(C, Decl(declFileModuleContinuation.ts, 0, 9)) +>A : Symbol(A, Decl(declFileModuleContinuation.ts, 0, 0), Decl(declFileModuleContinuation.ts, 3, 1)) +>C : Symbol(C, Decl(declFileModuleContinuation.ts, 0, 9)) +>Z : Symbol(A.C.Z, Decl(declFileModuleContinuation.ts, 0, 12)) + } +} diff --git a/tests/baselines/reference/declFileModuleContinuation.types b/tests/baselines/reference/declFileModuleContinuation.types index 922fd67713487..f2a1295d5bdbd 100644 --- a/tests/baselines/reference/declFileModuleContinuation.types +++ b/tests/baselines/reference/declFileModuleContinuation.types @@ -1,24 +1,24 @@ === tests/cases/compiler/declFileModuleContinuation.ts === module A.C { ->A : typeof A, Symbol(A, Decl(declFileModuleContinuation.ts, 0, 0), Decl(declFileModuleContinuation.ts, 3, 1)) ->C : any, Symbol(C, Decl(declFileModuleContinuation.ts, 0, 9)) +>A : typeof A +>C : any export interface Z { ->Z : Z, Symbol(Z, Decl(declFileModuleContinuation.ts, 0, 12)) +>Z : Z } } module A.B.C { ->A : typeof A, Symbol(A, Decl(declFileModuleContinuation.ts, 0, 0), Decl(declFileModuleContinuation.ts, 3, 1)) ->B : typeof B, Symbol(B, Decl(declFileModuleContinuation.ts, 5, 9)) ->C : typeof C, Symbol(C, Decl(declFileModuleContinuation.ts, 5, 11)) +>A : typeof A +>B : typeof B +>C : typeof C export class W implements A.C.Z { ->W : W, Symbol(W, Decl(declFileModuleContinuation.ts, 5, 14)) ->A.C.Z : any, Symbol(A.C.Z, Decl(declFileModuleContinuation.ts, 0, 12)) ->A.C : any, Symbol(C, Decl(declFileModuleContinuation.ts, 0, 9)) ->A : typeof A, Symbol(A, Decl(declFileModuleContinuation.ts, 0, 0), Decl(declFileModuleContinuation.ts, 3, 1)) ->C : any, Symbol(C, Decl(declFileModuleContinuation.ts, 0, 9)) ->Z : A.C.Z, Symbol(A.C.Z, Decl(declFileModuleContinuation.ts, 0, 12)) +>W : W +>A.C.Z : any +>A.C : any +>A : typeof A +>C : any +>Z : A.C.Z } } diff --git a/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.symbols b/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.symbols new file mode 100644 index 0000000000000..ee69745e8d3f2 --- /dev/null +++ b/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/declFileModuleWithPropertyOfTypeModule.ts === + +module m { +>m : Symbol(m, Decl(declFileModuleWithPropertyOfTypeModule.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(declFileModuleWithPropertyOfTypeModule.ts, 1, 10)) + } + + export var a = m; +>a : Symbol(a, Decl(declFileModuleWithPropertyOfTypeModule.ts, 5, 14)) +>m : Symbol(m, Decl(declFileModuleWithPropertyOfTypeModule.ts, 0, 0)) +} diff --git a/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.types b/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.types index f5299222663de..ecdc4396df459 100644 --- a/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.types +++ b/tests/baselines/reference/declFileModuleWithPropertyOfTypeModule.types @@ -1,13 +1,13 @@ === tests/cases/compiler/declFileModuleWithPropertyOfTypeModule.ts === module m { ->m : typeof m, Symbol(m, Decl(declFileModuleWithPropertyOfTypeModule.ts, 0, 0)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileModuleWithPropertyOfTypeModule.ts, 1, 10)) +>c : c } export var a = m; ->a : typeof m, Symbol(a, Decl(declFileModuleWithPropertyOfTypeModule.ts, 5, 14)) ->m : typeof m, Symbol(m, Decl(declFileModuleWithPropertyOfTypeModule.ts, 0, 0)) +>a : typeof m +>m : typeof m } diff --git a/tests/baselines/reference/declFileOptionalInterfaceMethod.symbols b/tests/baselines/reference/declFileOptionalInterfaceMethod.symbols new file mode 100644 index 0000000000000..2bf0c640fe580 --- /dev/null +++ b/tests/baselines/reference/declFileOptionalInterfaceMethod.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/declFileOptionalInterfaceMethod.ts === +interface X { +>X : Symbol(X, Decl(declFileOptionalInterfaceMethod.ts, 0, 0)) + + f? (); +>f : Symbol(f, Decl(declFileOptionalInterfaceMethod.ts, 0, 13)) +>T : Symbol(T, Decl(declFileOptionalInterfaceMethod.ts, 1, 8)) +} + diff --git a/tests/baselines/reference/declFileOptionalInterfaceMethod.types b/tests/baselines/reference/declFileOptionalInterfaceMethod.types index d050e8a464722..c42c14f4fe5b0 100644 --- a/tests/baselines/reference/declFileOptionalInterfaceMethod.types +++ b/tests/baselines/reference/declFileOptionalInterfaceMethod.types @@ -1,9 +1,9 @@ === tests/cases/compiler/declFileOptionalInterfaceMethod.ts === interface X { ->X : X, Symbol(X, Decl(declFileOptionalInterfaceMethod.ts, 0, 0)) +>X : X f? (); ->f : () => any, Symbol(f, Decl(declFileOptionalInterfaceMethod.ts, 0, 13)) ->T : T, Symbol(T, Decl(declFileOptionalInterfaceMethod.ts, 1, 8)) +>f : () => any +>T : T } diff --git a/tests/baselines/reference/declFilePrivateMethodOverloads.symbols b/tests/baselines/reference/declFilePrivateMethodOverloads.symbols new file mode 100644 index 0000000000000..4f02212d79ec0 --- /dev/null +++ b/tests/baselines/reference/declFilePrivateMethodOverloads.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/declFilePrivateMethodOverloads.ts === + +interface IContext { +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) + + someMethod(); +>someMethod : Symbol(someMethod, Decl(declFilePrivateMethodOverloads.ts, 1, 20)) +} +class c1 { +>c1 : Symbol(c1, Decl(declFilePrivateMethodOverloads.ts, 3, 1)) + + private _forEachBindingContext(bindingContext: IContext, fn: (bindingContext: IContext) => void); +>_forEachBindingContext : Symbol(_forEachBindingContext, Decl(declFilePrivateMethodOverloads.ts, 4, 10), Decl(declFilePrivateMethodOverloads.ts, 5, 101), Decl(declFilePrivateMethodOverloads.ts, 6, 113)) +>bindingContext : Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 5, 35)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>fn : Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 5, 60)) +>bindingContext : Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 5, 66)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) + + private _forEachBindingContext(bindingContextArray: Array, fn: (bindingContext: IContext) => void); +>_forEachBindingContext : Symbol(_forEachBindingContext, Decl(declFilePrivateMethodOverloads.ts, 4, 10), Decl(declFilePrivateMethodOverloads.ts, 5, 101), Decl(declFilePrivateMethodOverloads.ts, 6, 113)) +>bindingContextArray : Symbol(bindingContextArray, Decl(declFilePrivateMethodOverloads.ts, 6, 35)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>fn : Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 6, 72)) +>bindingContext : Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 6, 78)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) + + private _forEachBindingContext(context, fn: (bindingContext: IContext) => void): void { +>_forEachBindingContext : Symbol(_forEachBindingContext, Decl(declFilePrivateMethodOverloads.ts, 4, 10), Decl(declFilePrivateMethodOverloads.ts, 5, 101), Decl(declFilePrivateMethodOverloads.ts, 6, 113)) +>context : Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 7, 35)) +>fn : Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 7, 43)) +>bindingContext : Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 7, 49)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) + + // Function here + } + + private overloadWithArityDifference(bindingContext: IContext); +>overloadWithArityDifference : Symbol(overloadWithArityDifference, Decl(declFilePrivateMethodOverloads.ts, 9, 5), Decl(declFilePrivateMethodOverloads.ts, 11, 66), Decl(declFilePrivateMethodOverloads.ts, 12, 118)) +>bindingContext : Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 11, 40)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) + + private overloadWithArityDifference(bindingContextArray: Array, fn: (bindingContext: IContext) => void); +>overloadWithArityDifference : Symbol(overloadWithArityDifference, Decl(declFilePrivateMethodOverloads.ts, 9, 5), Decl(declFilePrivateMethodOverloads.ts, 11, 66), Decl(declFilePrivateMethodOverloads.ts, 12, 118)) +>bindingContextArray : Symbol(bindingContextArray, Decl(declFilePrivateMethodOverloads.ts, 12, 40)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>fn : Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 12, 77)) +>bindingContext : Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 12, 83)) +>IContext : Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) + + private overloadWithArityDifference(context): void { +>overloadWithArityDifference : Symbol(overloadWithArityDifference, Decl(declFilePrivateMethodOverloads.ts, 9, 5), Decl(declFilePrivateMethodOverloads.ts, 11, 66), Decl(declFilePrivateMethodOverloads.ts, 12, 118)) +>context : Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 13, 40)) + + // Function here + } +} +declare class c2 { +>c2 : Symbol(c2, Decl(declFilePrivateMethodOverloads.ts, 16, 1)) + + private overload1(context, fn); +>overload1 : Symbol(overload1, Decl(declFilePrivateMethodOverloads.ts, 17, 18)) +>context : Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 18, 22)) +>fn : Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 18, 30)) + + private overload2(context); +>overload2 : Symbol(overload2, Decl(declFilePrivateMethodOverloads.ts, 18, 35), Decl(declFilePrivateMethodOverloads.ts, 20, 31)) +>context : Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 20, 22)) + + private overload2(context, fn); +>overload2 : Symbol(overload2, Decl(declFilePrivateMethodOverloads.ts, 18, 35), Decl(declFilePrivateMethodOverloads.ts, 20, 31)) +>context : Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 21, 22)) +>fn : Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 21, 30)) +} diff --git a/tests/baselines/reference/declFilePrivateMethodOverloads.types b/tests/baselines/reference/declFilePrivateMethodOverloads.types index 4c1f75ccebd6e..9989fea31f090 100644 --- a/tests/baselines/reference/declFilePrivateMethodOverloads.types +++ b/tests/baselines/reference/declFilePrivateMethodOverloads.types @@ -1,76 +1,76 @@ === tests/cases/compiler/declFilePrivateMethodOverloads.ts === interface IContext { ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>IContext : IContext someMethod(); ->someMethod : () => any, Symbol(someMethod, Decl(declFilePrivateMethodOverloads.ts, 1, 20)) +>someMethod : () => any } class c1 { ->c1 : c1, Symbol(c1, Decl(declFilePrivateMethodOverloads.ts, 3, 1)) +>c1 : c1 private _forEachBindingContext(bindingContext: IContext, fn: (bindingContext: IContext) => void); ->_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }, Symbol(_forEachBindingContext, Decl(declFilePrivateMethodOverloads.ts, 4, 10), Decl(declFilePrivateMethodOverloads.ts, 5, 101), Decl(declFilePrivateMethodOverloads.ts, 6, 113)) ->bindingContext : IContext, Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 5, 35)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) ->fn : (bindingContext: IContext) => void, Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 5, 60)) ->bindingContext : IContext, Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 5, 66)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>bindingContext : IContext +>IContext : IContext +>fn : (bindingContext: IContext) => void +>bindingContext : IContext +>IContext : IContext private _forEachBindingContext(bindingContextArray: Array, fn: (bindingContext: IContext) => void); ->_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }, Symbol(_forEachBindingContext, Decl(declFilePrivateMethodOverloads.ts, 4, 10), Decl(declFilePrivateMethodOverloads.ts, 5, 101), Decl(declFilePrivateMethodOverloads.ts, 6, 113)) ->bindingContextArray : IContext[], Symbol(bindingContextArray, Decl(declFilePrivateMethodOverloads.ts, 6, 35)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) ->fn : (bindingContext: IContext) => void, Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 6, 72)) ->bindingContext : IContext, Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 6, 78)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>bindingContextArray : IContext[] +>Array : T[] +>IContext : IContext +>fn : (bindingContext: IContext) => void +>bindingContext : IContext +>IContext : IContext private _forEachBindingContext(context, fn: (bindingContext: IContext) => void): void { ->_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }, Symbol(_forEachBindingContext, Decl(declFilePrivateMethodOverloads.ts, 4, 10), Decl(declFilePrivateMethodOverloads.ts, 5, 101), Decl(declFilePrivateMethodOverloads.ts, 6, 113)) ->context : any, Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 7, 35)) ->fn : (bindingContext: IContext) => void, Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 7, 43)) ->bindingContext : IContext, Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 7, 49)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>_forEachBindingContext : { (bindingContext: IContext, fn: (bindingContext: IContext) => void): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>context : any +>fn : (bindingContext: IContext) => void +>bindingContext : IContext +>IContext : IContext // Function here } private overloadWithArityDifference(bindingContext: IContext); ->overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }, Symbol(overloadWithArityDifference, Decl(declFilePrivateMethodOverloads.ts, 9, 5), Decl(declFilePrivateMethodOverloads.ts, 11, 66), Decl(declFilePrivateMethodOverloads.ts, 12, 118)) ->bindingContext : IContext, Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 11, 40)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>bindingContext : IContext +>IContext : IContext private overloadWithArityDifference(bindingContextArray: Array, fn: (bindingContext: IContext) => void); ->overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }, Symbol(overloadWithArityDifference, Decl(declFilePrivateMethodOverloads.ts, 9, 5), Decl(declFilePrivateMethodOverloads.ts, 11, 66), Decl(declFilePrivateMethodOverloads.ts, 12, 118)) ->bindingContextArray : IContext[], Symbol(bindingContextArray, Decl(declFilePrivateMethodOverloads.ts, 12, 40)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) ->fn : (bindingContext: IContext) => void, Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 12, 77)) ->bindingContext : IContext, Symbol(bindingContext, Decl(declFilePrivateMethodOverloads.ts, 12, 83)) ->IContext : IContext, Symbol(IContext, Decl(declFilePrivateMethodOverloads.ts, 0, 0)) +>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>bindingContextArray : IContext[] +>Array : T[] +>IContext : IContext +>fn : (bindingContext: IContext) => void +>bindingContext : IContext +>IContext : IContext private overloadWithArityDifference(context): void { ->overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; }, Symbol(overloadWithArityDifference, Decl(declFilePrivateMethodOverloads.ts, 9, 5), Decl(declFilePrivateMethodOverloads.ts, 11, 66), Decl(declFilePrivateMethodOverloads.ts, 12, 118)) ->context : any, Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 13, 40)) +>overloadWithArityDifference : { (bindingContext: IContext): any; (bindingContextArray: IContext[], fn: (bindingContext: IContext) => void): any; } +>context : any // Function here } } declare class c2 { ->c2 : c2, Symbol(c2, Decl(declFilePrivateMethodOverloads.ts, 16, 1)) +>c2 : c2 private overload1(context, fn); ->overload1 : (context: any, fn: any) => any, Symbol(overload1, Decl(declFilePrivateMethodOverloads.ts, 17, 18)) ->context : any, Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 18, 22)) ->fn : any, Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 18, 30)) +>overload1 : (context: any, fn: any) => any +>context : any +>fn : any private overload2(context); ->overload2 : { (context: any): any; (context: any, fn: any): any; }, Symbol(overload2, Decl(declFilePrivateMethodOverloads.ts, 18, 35), Decl(declFilePrivateMethodOverloads.ts, 20, 31)) ->context : any, Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 20, 22)) +>overload2 : { (context: any): any; (context: any, fn: any): any; } +>context : any private overload2(context, fn); ->overload2 : { (context: any): any; (context: any, fn: any): any; }, Symbol(overload2, Decl(declFilePrivateMethodOverloads.ts, 18, 35), Decl(declFilePrivateMethodOverloads.ts, 20, 31)) ->context : any, Symbol(context, Decl(declFilePrivateMethodOverloads.ts, 21, 22)) ->fn : any, Symbol(fn, Decl(declFilePrivateMethodOverloads.ts, 21, 30)) +>overload2 : { (context: any): any; (context: any, fn: any): any; } +>context : any +>fn : any } diff --git a/tests/baselines/reference/declFileRegressionTests.symbols b/tests/baselines/reference/declFileRegressionTests.symbols new file mode 100644 index 0000000000000..ea8f9e2fe2a01 --- /dev/null +++ b/tests/baselines/reference/declFileRegressionTests.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/declFileRegressionTests.ts === +// 'null' not converted to 'any' in d.ts +// function types not piped through correctly +var n = { w: null, x: '', y: () => { }, z: 32 }; +>n : Symbol(n, Decl(declFileRegressionTests.ts, 2, 3)) +>w : Symbol(w, Decl(declFileRegressionTests.ts, 2, 9)) +>x : Symbol(x, Decl(declFileRegressionTests.ts, 2, 18)) +>y : Symbol(y, Decl(declFileRegressionTests.ts, 2, 25)) +>z : Symbol(z, Decl(declFileRegressionTests.ts, 2, 39)) + + diff --git a/tests/baselines/reference/declFileRegressionTests.types b/tests/baselines/reference/declFileRegressionTests.types index 601c4bc7ec0f5..7b8933e1def24 100644 --- a/tests/baselines/reference/declFileRegressionTests.types +++ b/tests/baselines/reference/declFileRegressionTests.types @@ -2,15 +2,15 @@ // 'null' not converted to 'any' in d.ts // function types not piped through correctly var n = { w: null, x: '', y: () => { }, z: 32 }; ->n : { w: any; x: string; y: () => void; z: number; }, Symbol(n, Decl(declFileRegressionTests.ts, 2, 3)) +>n : { w: any; x: string; y: () => void; z: number; } >{ w: null, x: '', y: () => { }, z: 32 } : { w: null; x: string; y: () => void; z: number; } ->w : null, Symbol(w, Decl(declFileRegressionTests.ts, 2, 9)) +>w : null >null : null ->x : string, Symbol(x, Decl(declFileRegressionTests.ts, 2, 18)) +>x : string >'' : string ->y : () => void, Symbol(y, Decl(declFileRegressionTests.ts, 2, 25)) +>y : () => void >() => { } : () => void ->z : number, Symbol(z, Decl(declFileRegressionTests.ts, 2, 39)) +>z : number >32 : number diff --git a/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.symbols b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.symbols new file mode 100644 index 0000000000000..49758e4ceb1e4 --- /dev/null +++ b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/declFileRestParametersOfFunctionAndFunctionType.ts === + +function f1(...args) { } +>f1 : Symbol(f1, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 0, 0)) +>args : Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 1, 12)) + +function f2(x: (...args) => void) { } +>f2 : Symbol(f2, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 1, 24)) +>x : Symbol(x, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 2, 12)) +>args : Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 2, 16)) + +function f3(x: { (...args): void }) { } +>f3 : Symbol(f3, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 2, 37)) +>x : Symbol(x, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 3, 12)) +>args : Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 3, 18)) + +function f4 void>() { } +>f4 : Symbol(f4, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 3, 39)) +>T : Symbol(T, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 4, 12)) +>args : Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 4, 23)) + +function f5() { } +>f5 : Symbol(f5, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 4, 46)) +>T : Symbol(T, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 5, 12)) +>args : Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 5, 25)) + +var f6 = () => { return [10]; } +>f6 : Symbol(f6, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 6, 3)) + + + diff --git a/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types index 4e28798b6bca6..0bfa5b6312c2e 100644 --- a/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types +++ b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types @@ -1,31 +1,31 @@ === tests/cases/compiler/declFileRestParametersOfFunctionAndFunctionType.ts === function f1(...args) { } ->f1 : (...args: any[]) => void, Symbol(f1, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 0, 0)) ->args : any[], Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 1, 12)) +>f1 : (...args: any[]) => void +>args : any[] function f2(x: (...args) => void) { } ->f2 : (x: (...args: any[]) => void) => void, Symbol(f2, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 1, 24)) ->x : (...args: any[]) => void, Symbol(x, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 2, 12)) ->args : any[], Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 2, 16)) +>f2 : (x: (...args: any[]) => void) => void +>x : (...args: any[]) => void +>args : any[] function f3(x: { (...args): void }) { } ->f3 : (x: (...args: any[]) => void) => void, Symbol(f3, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 2, 37)) ->x : (...args: any[]) => void, Symbol(x, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 3, 12)) ->args : any[], Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 3, 18)) +>f3 : (x: (...args: any[]) => void) => void +>x : (...args: any[]) => void +>args : any[] function f4 void>() { } ->f4 : void>() => void, Symbol(f4, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 3, 39)) ->T : T, Symbol(T, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 4, 12)) ->args : any[], Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 4, 23)) +>f4 : void>() => void +>T : T +>args : any[] function f5() { } ->f5 : void>() => void, Symbol(f5, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 4, 46)) ->T : T, Symbol(T, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 5, 12)) ->args : any[], Symbol(args, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 5, 25)) +>f5 : void>() => void +>T : T +>args : any[] var f6 = () => { return [10]; } ->f6 : () => any[], Symbol(f6, Decl(declFileRestParametersOfFunctionAndFunctionType.ts, 6, 3)) +>f6 : () => any[] >() => { return [10]; } : () => any[] >[10] : any[] >10 : any diff --git a/tests/baselines/reference/declFileTypeAnnotationArrayType.symbols b/tests/baselines/reference/declFileTypeAnnotationArrayType.symbols new file mode 100644 index 0000000000000..9092189c3c734 --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationArrayType.symbols @@ -0,0 +1,105 @@ +=== tests/cases/compiler/declFileTypeAnnotationArrayType.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +} +module m { +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) + } + export class g { +>g : Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +>T : Symbol(T, Decl(declFileTypeAnnotationArrayType.ts, 6, 19)) + } +} +class g { +>g : Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) +>T : Symbol(T, Decl(declFileTypeAnnotationArrayType.ts, 9, 8)) +} + +// Just the name +function foo(): c[] { +>foo : Symbol(foo, Decl(declFileTypeAnnotationArrayType.ts, 10, 1)) +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) + + return [new c()]; +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +} +function foo2() { +>foo2 : Symbol(foo2, Decl(declFileTypeAnnotationArrayType.ts, 15, 1)) + + return [new c()]; +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +} + +// Qualified name +function foo3(): m.c[] { +>foo3 : Symbol(foo3, Decl(declFileTypeAnnotationArrayType.ts, 18, 1)) +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) + + return [new m.c()]; +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +} +function foo4() { +>foo4 : Symbol(foo4, Decl(declFileTypeAnnotationArrayType.ts, 23, 1)) + + return m.c; +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +} + +// Just the name with type arguments +function foo5(): g[] { +>foo5 : Symbol(foo5, Decl(declFileTypeAnnotationArrayType.ts, 26, 1)) +>g : Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) + + return [new g()]; +>g : Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) +} +function foo6() { +>foo6 : Symbol(foo6, Decl(declFileTypeAnnotationArrayType.ts, 31, 1)) + + return [new g()]; +>g : Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) +} + +// Qualified name with type arguments +function foo7(): m.g[] { +>foo7 : Symbol(foo7, Decl(declFileTypeAnnotationArrayType.ts, 34, 1)) +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) + + return [new m.g()]; +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +} +function foo8() { +>foo8 : Symbol(foo8, Decl(declFileTypeAnnotationArrayType.ts, 39, 1)) + + return [new m.g()]; +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +} + +// Array of function types +function foo9(): (()=>c)[] { +>foo9 : Symbol(foo9, Decl(declFileTypeAnnotationArrayType.ts, 42, 1)) +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) + + return [() => new c()]; +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +} +function foo10() { +>foo10 : Symbol(foo10, Decl(declFileTypeAnnotationArrayType.ts, 47, 1)) + + return [() => new c()]; +>c : Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +} diff --git a/tests/baselines/reference/declFileTypeAnnotationArrayType.types b/tests/baselines/reference/declFileTypeAnnotationArrayType.types index 5a5eb6200a0f1..7a9d65b8a1f2d 100644 --- a/tests/baselines/reference/declFileTypeAnnotationArrayType.types +++ b/tests/baselines/reference/declFileTypeAnnotationArrayType.types @@ -1,125 +1,125 @@ === tests/cases/compiler/declFileTypeAnnotationArrayType.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>c : c } module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +>c : c } export class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationArrayType.ts, 6, 19)) +>g : g +>T : T } } class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationArrayType.ts, 9, 8)) +>g : g +>T : T } // Just the name function foo(): c[] { ->foo : () => c[], Symbol(foo, Decl(declFileTypeAnnotationArrayType.ts, 10, 1)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>foo : () => c[] +>c : c return [new c()]; >[new c()] : c[] >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>c : typeof c } function foo2() { ->foo2 : () => c[], Symbol(foo2, Decl(declFileTypeAnnotationArrayType.ts, 15, 1)) +>foo2 : () => c[] return [new c()]; >[new c()] : c[] >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>c : typeof c } // Qualified name function foo3(): m.c[] { ->foo3 : () => m.c[], Symbol(foo3, Decl(declFileTypeAnnotationArrayType.ts, 18, 1)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +>foo3 : () => m.c[] +>m : any +>c : m.c return [new m.c()]; >[new m.c()] : m.c[] >new m.c() : m.c ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c } function foo4() { ->foo4 : () => typeof m.c, Symbol(foo4, Decl(declFileTypeAnnotationArrayType.ts, 23, 1)) +>foo4 : () => typeof m.c return m.c; ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationArrayType.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c } // Just the name with type arguments function foo5(): g[] { ->foo5 : () => g[], Symbol(foo5, Decl(declFileTypeAnnotationArrayType.ts, 26, 1)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) +>foo5 : () => g[] +>g : g return [new g()]; >[new g()] : g[] >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) +>g : typeof g } function foo6() { ->foo6 : () => g[], Symbol(foo6, Decl(declFileTypeAnnotationArrayType.ts, 31, 1)) +>foo6 : () => g[] return [new g()]; >[new g()] : g[] >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationArrayType.ts, 8, 1)) +>g : typeof g } // Qualified name with type arguments function foo7(): m.g[] { ->foo7 : () => m.g[], Symbol(foo7, Decl(declFileTypeAnnotationArrayType.ts, 34, 1)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) ->g : m.g, Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +>foo7 : () => m.g[] +>m : any +>g : m.g return [new m.g()]; >[new m.g()] : m.g[] >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g } function foo8() { ->foo8 : () => m.g[], Symbol(foo8, Decl(declFileTypeAnnotationArrayType.ts, 39, 1)) +>foo8 : () => m.g[] return [new m.g()]; >[new m.g()] : m.g[] >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationArrayType.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationArrayType.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g } // Array of function types function foo9(): (()=>c)[] { ->foo9 : () => (() => c)[], Symbol(foo9, Decl(declFileTypeAnnotationArrayType.ts, 42, 1)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>foo9 : () => (() => c)[] +>c : c return [() => new c()]; >[() => new c()] : (() => c)[] >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>c : typeof c } function foo10() { ->foo10 : () => (() => c)[], Symbol(foo10, Decl(declFileTypeAnnotationArrayType.ts, 47, 1)) +>foo10 : () => (() => c)[] return [() => new c()]; >[() => new c()] : (() => c)[] >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationArrayType.ts, 0, 0)) +>c : typeof c } diff --git a/tests/baselines/reference/declFileTypeAnnotationBuiltInType.symbols b/tests/baselines/reference/declFileTypeAnnotationBuiltInType.symbols new file mode 100644 index 0000000000000..62de15530b77b --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationBuiltInType.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/declFileTypeAnnotationBuiltInType.ts === + +// string +function foo(): string { +>foo : Symbol(foo, Decl(declFileTypeAnnotationBuiltInType.ts, 0, 0)) + + return ""; +} +function foo2() { +>foo2 : Symbol(foo2, Decl(declFileTypeAnnotationBuiltInType.ts, 4, 1)) + + return ""; +} + +// number +function foo3(): number { +>foo3 : Symbol(foo3, Decl(declFileTypeAnnotationBuiltInType.ts, 7, 1)) + + return 10; +} +function foo4() { +>foo4 : Symbol(foo4, Decl(declFileTypeAnnotationBuiltInType.ts, 12, 1)) + + return 10; +} + +// boolean +function foo5(): boolean { +>foo5 : Symbol(foo5, Decl(declFileTypeAnnotationBuiltInType.ts, 15, 1)) + + return true; +} +function foo6() { +>foo6 : Symbol(foo6, Decl(declFileTypeAnnotationBuiltInType.ts, 20, 1)) + + return false; +} + +// void +function foo7(): void { +>foo7 : Symbol(foo7, Decl(declFileTypeAnnotationBuiltInType.ts, 23, 1)) + + return; +} +function foo8() { +>foo8 : Symbol(foo8, Decl(declFileTypeAnnotationBuiltInType.ts, 28, 1)) + + return; +} + +// any +function foo9(): any { +>foo9 : Symbol(foo9, Decl(declFileTypeAnnotationBuiltInType.ts, 31, 1)) + + return undefined; +>undefined : Symbol(undefined) +} +function foo10() { +>foo10 : Symbol(foo10, Decl(declFileTypeAnnotationBuiltInType.ts, 36, 1)) + + return undefined; +>undefined : Symbol(undefined) +} diff --git a/tests/baselines/reference/declFileTypeAnnotationBuiltInType.types b/tests/baselines/reference/declFileTypeAnnotationBuiltInType.types index 05ea28cb5f736..a1b2d9edd4362 100644 --- a/tests/baselines/reference/declFileTypeAnnotationBuiltInType.types +++ b/tests/baselines/reference/declFileTypeAnnotationBuiltInType.types @@ -2,13 +2,13 @@ // string function foo(): string { ->foo : () => string, Symbol(foo, Decl(declFileTypeAnnotationBuiltInType.ts, 0, 0)) +>foo : () => string return ""; >"" : string } function foo2() { ->foo2 : () => string, Symbol(foo2, Decl(declFileTypeAnnotationBuiltInType.ts, 4, 1)) +>foo2 : () => string return ""; >"" : string @@ -16,13 +16,13 @@ function foo2() { // number function foo3(): number { ->foo3 : () => number, Symbol(foo3, Decl(declFileTypeAnnotationBuiltInType.ts, 7, 1)) +>foo3 : () => number return 10; >10 : number } function foo4() { ->foo4 : () => number, Symbol(foo4, Decl(declFileTypeAnnotationBuiltInType.ts, 12, 1)) +>foo4 : () => number return 10; >10 : number @@ -30,13 +30,13 @@ function foo4() { // boolean function foo5(): boolean { ->foo5 : () => boolean, Symbol(foo5, Decl(declFileTypeAnnotationBuiltInType.ts, 15, 1)) +>foo5 : () => boolean return true; >true : boolean } function foo6() { ->foo6 : () => boolean, Symbol(foo6, Decl(declFileTypeAnnotationBuiltInType.ts, 20, 1)) +>foo6 : () => boolean return false; >false : boolean @@ -44,26 +44,26 @@ function foo6() { // void function foo7(): void { ->foo7 : () => void, Symbol(foo7, Decl(declFileTypeAnnotationBuiltInType.ts, 23, 1)) +>foo7 : () => void return; } function foo8() { ->foo8 : () => void, Symbol(foo8, Decl(declFileTypeAnnotationBuiltInType.ts, 28, 1)) +>foo8 : () => void return; } // any function foo9(): any { ->foo9 : () => any, Symbol(foo9, Decl(declFileTypeAnnotationBuiltInType.ts, 31, 1)) +>foo9 : () => any return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } function foo10() { ->foo10 : () => any, Symbol(foo10, Decl(declFileTypeAnnotationBuiltInType.ts, 36, 1)) +>foo10 : () => any return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } diff --git a/tests/baselines/reference/declFileTypeAnnotationParenType.symbols b/tests/baselines/reference/declFileTypeAnnotationParenType.symbols new file mode 100644 index 0000000000000..bc5668b70bd7e --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationParenType.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/declFileTypeAnnotationParenType.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) + + private p: string; +>p : Symbol(p, Decl(declFileTypeAnnotationParenType.ts, 1, 9)) +} + +var x: (() => c)[] = [() => new c()]; +>x : Symbol(x, Decl(declFileTypeAnnotationParenType.ts, 5, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) + +var y = [() => new c()]; +>y : Symbol(y, Decl(declFileTypeAnnotationParenType.ts, 6, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) + +var k: (() => c) | string = (() => new c()) || ""; +>k : Symbol(k, Decl(declFileTypeAnnotationParenType.ts, 8, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) + +var l = (() => new c()) || ""; +>l : Symbol(l, Decl(declFileTypeAnnotationParenType.ts, 9, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileTypeAnnotationParenType.types b/tests/baselines/reference/declFileTypeAnnotationParenType.types index cdb3a7a33eda4..31b6ad037513d 100644 --- a/tests/baselines/reference/declFileTypeAnnotationParenType.types +++ b/tests/baselines/reference/declFileTypeAnnotationParenType.types @@ -1,43 +1,43 @@ === tests/cases/compiler/declFileTypeAnnotationParenType.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : c private p: string; ->p : string, Symbol(p, Decl(declFileTypeAnnotationParenType.ts, 1, 9)) +>p : string } var x: (() => c)[] = [() => new c()]; ->x : (() => c)[], Symbol(x, Decl(declFileTypeAnnotationParenType.ts, 5, 3)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>x : (() => c)[] +>c : c >[() => new c()] : (() => c)[] >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : typeof c var y = [() => new c()]; ->y : (() => c)[], Symbol(y, Decl(declFileTypeAnnotationParenType.ts, 6, 3)) +>y : (() => c)[] >[() => new c()] : (() => c)[] >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : typeof c var k: (() => c) | string = (() => new c()) || ""; ->k : string | (() => c), Symbol(k, Decl(declFileTypeAnnotationParenType.ts, 8, 3)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>k : string | (() => c) +>c : c >(() => new c()) || "" : string | (() => c) >(() => new c()) : () => c >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : typeof c >"" : string var l = (() => new c()) || ""; ->l : string | (() => c), Symbol(l, Decl(declFileTypeAnnotationParenType.ts, 9, 3)) +>l : string | (() => c) >(() => new c()) || "" : string | (() => c) >(() => new c()) : () => c >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationParenType.ts, 0, 0)) +>c : typeof c >"" : string diff --git a/tests/baselines/reference/declFileTypeAnnotationStringLiteral.symbols b/tests/baselines/reference/declFileTypeAnnotationStringLiteral.symbols new file mode 100644 index 0000000000000..7250567039ab0 --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationStringLiteral.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/declFileTypeAnnotationStringLiteral.ts === + +function foo(a: "hello"): number; +>foo : Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 1, 13)) + +function foo(a: "name"): string; +>foo : Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 2, 13)) + +function foo(a: string): string | number; +>foo : Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 3, 13)) + +function foo(a: string): string | number { +>foo : Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) + + if (a === "hello") { +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) + + return a.length; +>a.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + } + + return a; +>a : Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) +} diff --git a/tests/baselines/reference/declFileTypeAnnotationStringLiteral.types b/tests/baselines/reference/declFileTypeAnnotationStringLiteral.types index 739e245d15378..3041b92cf6dc7 100644 --- a/tests/baselines/reference/declFileTypeAnnotationStringLiteral.types +++ b/tests/baselines/reference/declFileTypeAnnotationStringLiteral.types @@ -1,32 +1,32 @@ === tests/cases/compiler/declFileTypeAnnotationStringLiteral.ts === function foo(a: "hello"): number; ->foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }, Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) ->a : "hello", Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 1, 13)) +>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; } +>a : "hello" function foo(a: "name"): string; ->foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }, Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) ->a : "name", Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 2, 13)) +>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; } +>a : "name" function foo(a: string): string | number; ->foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }, Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) ->a : string, Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 3, 13)) +>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; } +>a : string function foo(a: string): string | number { ->foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; }, Symbol(foo, Decl(declFileTypeAnnotationStringLiteral.ts, 0, 0), Decl(declFileTypeAnnotationStringLiteral.ts, 1, 33), Decl(declFileTypeAnnotationStringLiteral.ts, 2, 32), Decl(declFileTypeAnnotationStringLiteral.ts, 3, 41)) ->a : string, Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) +>foo : { (a: "hello"): number; (a: "name"): string; (a: string): string | number; } +>a : string if (a === "hello") { >a === "hello" : boolean ->a : string, Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) +>a : string >"hello" : string return a.length; ->a.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->a : string, Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>a.length : number +>a : string +>length : number } return a; ->a : string, Symbol(a, Decl(declFileTypeAnnotationStringLiteral.ts, 4, 13)) +>a : string } diff --git a/tests/baselines/reference/declFileTypeAnnotationTupleType.symbols b/tests/baselines/reference/declFileTypeAnnotationTupleType.symbols new file mode 100644 index 0000000000000..9eea6dfd9f953 --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationTupleType.symbols @@ -0,0 +1,52 @@ +=== tests/cases/compiler/declFileTypeAnnotationTupleType.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +} +module m { +>m : Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) + } + export class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) +>T : Symbol(T, Decl(declFileTypeAnnotationTupleType.ts, 6, 19)) + } +} +class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 8, 1)) +>T : Symbol(T, Decl(declFileTypeAnnotationTupleType.ts, 9, 8)) +} + +// Just the name +var k: [c, m.c] = [new c(), new m.c()]; +>k : Symbol(k, Decl(declFileTypeAnnotationTupleType.ts, 13, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>m : Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) +>c : Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) + +var l = k; +>l : Symbol(l, Decl(declFileTypeAnnotationTupleType.ts, 14, 3)) +>k : Symbol(k, Decl(declFileTypeAnnotationTupleType.ts, 13, 3)) + +var x: [g, m.g, () => c] = [new g(), new m.g(), () => new c()]; +>x : Symbol(x, Decl(declFileTypeAnnotationTupleType.ts, 16, 3)) +>g : Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 8, 1)) +>m : Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>g : Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 8, 1)) +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) + +var y = x; +>y : Symbol(y, Decl(declFileTypeAnnotationTupleType.ts, 17, 3)) +>x : Symbol(x, Decl(declFileTypeAnnotationTupleType.ts, 16, 3)) + diff --git a/tests/baselines/reference/declFileTypeAnnotationTupleType.types b/tests/baselines/reference/declFileTypeAnnotationTupleType.types index fba345a2bfdca..aad0760fade3d 100644 --- a/tests/baselines/reference/declFileTypeAnnotationTupleType.types +++ b/tests/baselines/reference/declFileTypeAnnotationTupleType.types @@ -1,60 +1,60 @@ === tests/cases/compiler/declFileTypeAnnotationTupleType.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>c : c } module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) +>c : c } export class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTupleType.ts, 6, 19)) +>g : g +>T : T } } class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 8, 1)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTupleType.ts, 9, 8)) +>g : g +>T : T } // Just the name var k: [c, m.c] = [new c(), new m.c()]; ->k : [c, m.c], Symbol(k, Decl(declFileTypeAnnotationTupleType.ts, 13, 3)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) +>k : [c, m.c] +>c : c +>m : any +>c : m.c >[new c(), new m.c()] : [c, m.c] >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>c : typeof c >new m.c() : m.c ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTupleType.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c var l = k; ->l : [c, m.c], Symbol(l, Decl(declFileTypeAnnotationTupleType.ts, 14, 3)) ->k : [c, m.c], Symbol(k, Decl(declFileTypeAnnotationTupleType.ts, 13, 3)) +>l : [c, m.c] +>k : [c, m.c] var x: [g, m.g, () => c] = [new g(), new m.g(), () => new c()]; ->x : [g, m.g, () => c], Symbol(x, Decl(declFileTypeAnnotationTupleType.ts, 16, 3)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 8, 1)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) ->g : m.g, Symbol(m.g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>x : [g, m.g, () => c] +>g : g +>m : any +>g : m.g +>c : c >[new g(), new m.g(), () => new c()] : [g, m.g, () => c] >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationTupleType.ts, 8, 1)) +>g : typeof g >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTupleType.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTupleType.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTupleType.ts, 0, 0)) +>c : typeof c var y = x; ->y : [g, m.g, () => c], Symbol(y, Decl(declFileTypeAnnotationTupleType.ts, 17, 3)) ->x : [g, m.g, () => c], Symbol(x, Decl(declFileTypeAnnotationTupleType.ts, 16, 3)) +>y : [g, m.g, () => c] +>x : [g, m.g, () => c] diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeAlias.symbols b/tests/baselines/reference/declFileTypeAnnotationTypeAlias.symbols new file mode 100644 index 0000000000000..27507817a7771 --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationTypeAlias.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/declFileTypeAnnotationTypeAlias.ts === + +module M { +>M : Symbol(M, Decl(declFileTypeAnnotationTypeAlias.ts, 0, 0), Decl(declFileTypeAnnotationTypeAlias.ts, 22, 1)) + + export type Value = string | number | boolean; +>Value : Symbol(Value, Decl(declFileTypeAnnotationTypeAlias.ts, 1, 10)) + + export var x: Value; +>x : Symbol(x, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 14)) +>Value : Symbol(Value, Decl(declFileTypeAnnotationTypeAlias.ts, 1, 10)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 24)) + } + + export type C = c; +>C : Symbol(C, Decl(declFileTypeAnnotationTypeAlias.ts, 6, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 24)) + + export module m { +>m : Symbol(m, Decl(declFileTypeAnnotationTypeAlias.ts, 8, 22)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 10, 21)) + } + } + + export type MC = m.c; +>MC : Symbol(MC, Decl(declFileTypeAnnotationTypeAlias.ts, 13, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeAlias.ts, 8, 22)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeAlias.ts, 10, 21)) + + export type fc = () => c; +>fc : Symbol(fc, Decl(declFileTypeAnnotationTypeAlias.ts, 15, 25)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 24)) +} + +interface Window { +>Window : Symbol(Window, Decl(declFileTypeAnnotationTypeAlias.ts, 18, 1)) + + someMethod(); +>someMethod : Symbol(someMethod, Decl(declFileTypeAnnotationTypeAlias.ts, 20, 18)) +} + +module M { +>M : Symbol(M, Decl(declFileTypeAnnotationTypeAlias.ts, 0, 0), Decl(declFileTypeAnnotationTypeAlias.ts, 22, 1)) + + export type W = Window | string; +>W : Symbol(W, Decl(declFileTypeAnnotationTypeAlias.ts, 24, 10)) +>Window : Symbol(Window, Decl(declFileTypeAnnotationTypeAlias.ts, 18, 1)) + + export module N { +>N : Symbol(N, Decl(declFileTypeAnnotationTypeAlias.ts, 25, 36)) + + export class Window { } +>Window : Symbol(Window, Decl(declFileTypeAnnotationTypeAlias.ts, 26, 21)) + + export var p: W; +>p : Symbol(p, Decl(declFileTypeAnnotationTypeAlias.ts, 28, 18)) +>W : Symbol(W, Decl(declFileTypeAnnotationTypeAlias.ts, 24, 10)) + } +} diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeAlias.types b/tests/baselines/reference/declFileTypeAnnotationTypeAlias.types index 84ef9eaf484f3..beef88c0ca25c 100644 --- a/tests/baselines/reference/declFileTypeAnnotationTypeAlias.types +++ b/tests/baselines/reference/declFileTypeAnnotationTypeAlias.types @@ -1,63 +1,63 @@ === tests/cases/compiler/declFileTypeAnnotationTypeAlias.ts === module M { ->M : typeof M, Symbol(M, Decl(declFileTypeAnnotationTypeAlias.ts, 0, 0), Decl(declFileTypeAnnotationTypeAlias.ts, 22, 1)) +>M : typeof M export type Value = string | number | boolean; ->Value : string | number | boolean, Symbol(Value, Decl(declFileTypeAnnotationTypeAlias.ts, 1, 10)) +>Value : string | number | boolean export var x: Value; ->x : string | number | boolean, Symbol(x, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 14)) ->Value : string | number | boolean, Symbol(Value, Decl(declFileTypeAnnotationTypeAlias.ts, 1, 10)) +>x : string | number | boolean +>Value : string | number | boolean export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 24)) +>c : c } export type C = c; ->C : c, Symbol(C, Decl(declFileTypeAnnotationTypeAlias.ts, 6, 5)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 24)) +>C : c +>c : c export module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeAlias.ts, 8, 22)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 10, 21)) +>c : c } } export type MC = m.c; ->MC : m.c, Symbol(MC, Decl(declFileTypeAnnotationTypeAlias.ts, 13, 5)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTypeAlias.ts, 8, 22)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeAlias.ts, 10, 21)) +>MC : m.c +>m : any +>c : m.c export type fc = () => c; ->fc : () => c, Symbol(fc, Decl(declFileTypeAnnotationTypeAlias.ts, 15, 25)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeAlias.ts, 3, 24)) +>fc : () => c +>c : c } interface Window { ->Window : Window, Symbol(Window, Decl(declFileTypeAnnotationTypeAlias.ts, 18, 1)) +>Window : Window someMethod(); ->someMethod : () => any, Symbol(someMethod, Decl(declFileTypeAnnotationTypeAlias.ts, 20, 18)) +>someMethod : () => any } module M { ->M : typeof M, Symbol(M, Decl(declFileTypeAnnotationTypeAlias.ts, 0, 0), Decl(declFileTypeAnnotationTypeAlias.ts, 22, 1)) +>M : typeof M export type W = Window | string; ->W : string | Window, Symbol(W, Decl(declFileTypeAnnotationTypeAlias.ts, 24, 10)) ->Window : Window, Symbol(Window, Decl(declFileTypeAnnotationTypeAlias.ts, 18, 1)) +>W : string | Window +>Window : Window export module N { ->N : typeof N, Symbol(N, Decl(declFileTypeAnnotationTypeAlias.ts, 25, 36)) +>N : typeof N export class Window { } ->Window : Window, Symbol(Window, Decl(declFileTypeAnnotationTypeAlias.ts, 26, 21)) +>Window : Window export var p: W; ->p : string | Window, Symbol(p, Decl(declFileTypeAnnotationTypeAlias.ts, 28, 18)) ->W : string | Window, Symbol(W, Decl(declFileTypeAnnotationTypeAlias.ts, 24, 10)) +>p : string | Window +>W : string | Window } } diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.symbols b/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.symbols new file mode 100644 index 0000000000000..6a3f2100fab3f --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.symbols @@ -0,0 +1,85 @@ +=== tests/cases/compiler/declFileTypeAnnotationTypeLiteral.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +} +class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) +>T : Symbol(T, Decl(declFileTypeAnnotationTypeLiteral.ts, 3, 8)) +} +module m { +>m : Symbol(m, Decl(declFileTypeAnnotationTypeLiteral.ts, 4, 1)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 5, 10)) + } +} + +// Object literal with everything +var x: { +>x : Symbol(x, Decl(declFileTypeAnnotationTypeLiteral.ts, 11, 3)) + + // Call signatures + (a: number): c; +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 13, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) + + (a: string): g; +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 14, 5)) +>g : Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) + + // Construct signatures + new (a: number): c; +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 17, 9)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) + + new (a: string): m.c; +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 18, 9)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeLiteral.ts, 4, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeLiteral.ts, 5, 10)) + + // Indexers + [n: number]: c; +>n : Symbol(n, Decl(declFileTypeAnnotationTypeLiteral.ts, 21, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) + + [n: string]: c; +>n : Symbol(n, Decl(declFileTypeAnnotationTypeLiteral.ts, 22, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) + + // Properties + a: c; +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 22, 19)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) + + b: g; +>b : Symbol(b, Decl(declFileTypeAnnotationTypeLiteral.ts, 25, 9)) +>g : Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) + + // methods + m1(): g; +>m1 : Symbol(m1, Decl(declFileTypeAnnotationTypeLiteral.ts, 26, 17)) +>g : Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) + + m2(a: string, b?: number, ...c: c[]): string; +>m2 : Symbol(m2, Decl(declFileTypeAnnotationTypeLiteral.ts, 29, 20)) +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 30, 7)) +>b : Symbol(b, Decl(declFileTypeAnnotationTypeLiteral.ts, 30, 17)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 30, 29)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) + +}; + + +// Function type +var y: (a: string) => string; +>y : Symbol(y, Decl(declFileTypeAnnotationTypeLiteral.ts, 35, 3)) +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 35, 8)) + +// constructor type +var z: new (a: string) => m.c; +>z : Symbol(z, Decl(declFileTypeAnnotationTypeLiteral.ts, 38, 3)) +>a : Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 38, 12)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeLiteral.ts, 4, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeLiteral.ts, 5, 10)) + diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.types b/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.types index aa0032922b836..e20920083588e 100644 --- a/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.types +++ b/tests/baselines/reference/declFileTypeAnnotationTypeLiteral.types @@ -1,85 +1,85 @@ === tests/cases/compiler/declFileTypeAnnotationTypeLiteral.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>c : c } class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTypeLiteral.ts, 3, 8)) +>g : g +>T : T } module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeLiteral.ts, 4, 1)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 5, 10)) +>c : c } } // Object literal with everything var x: { ->x : { (a: number): c; (a: string): g; new (a: number): c; new (a: string): m.c; [n: string]: c; [n: number]: c; a: c; b: g; m1(): g; m2(a: string, b?: number, ...c: c[]): string; }, Symbol(x, Decl(declFileTypeAnnotationTypeLiteral.ts, 11, 3)) +>x : { (a: number): c; (a: string): g; new (a: number): c; new (a: string): m.c; [n: string]: c; [n: number]: c; a: c; b: g; m1(): g; m2(a: string, b?: number, ...c: c[]): string; } // Call signatures (a: number): c; ->a : number, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 13, 5)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>a : number +>c : c (a: string): g; ->a : string, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 14, 5)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) +>a : string +>g : g // Construct signatures new (a: number): c; ->a : number, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 17, 9)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>a : number +>c : c new (a: string): m.c; ->a : string, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 18, 9)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTypeLiteral.ts, 4, 1)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeLiteral.ts, 5, 10)) +>a : string +>m : any +>c : m.c // Indexers [n: number]: c; ->n : number, Symbol(n, Decl(declFileTypeAnnotationTypeLiteral.ts, 21, 5)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>n : number +>c : c [n: string]: c; ->n : string, Symbol(n, Decl(declFileTypeAnnotationTypeLiteral.ts, 22, 5)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>n : string +>c : c // Properties a: c; ->a : c, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 22, 19)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>a : c +>c : c b: g; ->b : g, Symbol(b, Decl(declFileTypeAnnotationTypeLiteral.ts, 25, 9)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) +>b : g +>g : g // methods m1(): g; ->m1 : () => g, Symbol(m1, Decl(declFileTypeAnnotationTypeLiteral.ts, 26, 17)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeLiteral.ts, 2, 1)) +>m1 : () => g +>g : g m2(a: string, b?: number, ...c: c[]): string; ->m2 : (a: string, b?: number, ...c: c[]) => string, Symbol(m2, Decl(declFileTypeAnnotationTypeLiteral.ts, 29, 20)) ->a : string, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 30, 7)) ->b : number, Symbol(b, Decl(declFileTypeAnnotationTypeLiteral.ts, 30, 17)) ->c : c[], Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 30, 29)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeLiteral.ts, 0, 0)) +>m2 : (a: string, b?: number, ...c: c[]) => string +>a : string +>b : number +>c : c[] +>c : c }; // Function type var y: (a: string) => string; ->y : (a: string) => string, Symbol(y, Decl(declFileTypeAnnotationTypeLiteral.ts, 35, 3)) ->a : string, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 35, 8)) +>y : (a: string) => string +>a : string // constructor type var z: new (a: string) => m.c; ->z : new (a: string) => m.c, Symbol(z, Decl(declFileTypeAnnotationTypeLiteral.ts, 38, 3)) ->a : string, Symbol(a, Decl(declFileTypeAnnotationTypeLiteral.ts, 38, 12)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTypeLiteral.ts, 4, 1)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeLiteral.ts, 5, 10)) +>z : new (a: string) => m.c +>a : string +>m : any +>c : m.c diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeQuery.symbols b/tests/baselines/reference/declFileTypeAnnotationTypeQuery.symbols new file mode 100644 index 0000000000000..f5970ce15f51e --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationTypeQuery.symbols @@ -0,0 +1,92 @@ +=== tests/cases/compiler/declFileTypeAnnotationTypeQuery.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +} +module m { +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) + } + export class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>T : Symbol(T, Decl(declFileTypeAnnotationTypeQuery.ts, 6, 19)) + } +} +class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) +>T : Symbol(T, Decl(declFileTypeAnnotationTypeQuery.ts, 9, 8)) +} + +// Just the name +function foo(): typeof c { +>foo : Symbol(foo, Decl(declFileTypeAnnotationTypeQuery.ts, 10, 1)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) + + return c; +>c : Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +} +function foo2() { +>foo2 : Symbol(foo2, Decl(declFileTypeAnnotationTypeQuery.ts, 15, 1)) + + return c; +>c : Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +} + +// Qualified name +function foo3(): typeof m.c { +>foo3 : Symbol(foo3, Decl(declFileTypeAnnotationTypeQuery.ts, 18, 1)) +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) + + return m.c; +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +} +function foo4() { +>foo4 : Symbol(foo4, Decl(declFileTypeAnnotationTypeQuery.ts, 23, 1)) + + return m.c; +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +} + +// Just the name with type arguments +function foo5(): typeof g { +>foo5 : Symbol(foo5, Decl(declFileTypeAnnotationTypeQuery.ts, 26, 1)) +>g : Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) + + return g; +>g : Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) +} +function foo6() { +>foo6 : Symbol(foo6, Decl(declFileTypeAnnotationTypeQuery.ts, 31, 1)) + + return g; +>g : Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) +} + +// Qualified name with type arguments +function foo7(): typeof m.g { +>foo7 : Symbol(foo7, Decl(declFileTypeAnnotationTypeQuery.ts, 34, 1)) +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) + + return m.g +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +} +function foo8() { +>foo8 : Symbol(foo8, Decl(declFileTypeAnnotationTypeQuery.ts, 39, 1)) + + return m.g +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +} diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeQuery.types b/tests/baselines/reference/declFileTypeAnnotationTypeQuery.types index 1659e6ef7f64e..01fce150ab896 100644 --- a/tests/baselines/reference/declFileTypeAnnotationTypeQuery.types +++ b/tests/baselines/reference/declFileTypeAnnotationTypeQuery.types @@ -1,92 +1,92 @@ === tests/cases/compiler/declFileTypeAnnotationTypeQuery.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +>c : c } module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>c : c } export class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTypeQuery.ts, 6, 19)) +>g : g +>T : T } } class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTypeQuery.ts, 9, 8)) +>g : g +>T : T } // Just the name function foo(): typeof c { ->foo : () => typeof c, Symbol(foo, Decl(declFileTypeAnnotationTypeQuery.ts, 10, 1)) ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +>foo : () => typeof c +>c : typeof c return c; ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +>c : typeof c } function foo2() { ->foo2 : () => typeof c, Symbol(foo2, Decl(declFileTypeAnnotationTypeQuery.ts, 15, 1)) +>foo2 : () => typeof c return c; ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTypeQuery.ts, 0, 0)) +>c : typeof c } // Qualified name function foo3(): typeof m.c { ->foo3 : () => typeof m.c, Symbol(foo3, Decl(declFileTypeAnnotationTypeQuery.ts, 18, 1)) ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>foo3 : () => typeof m.c +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c return m.c; ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c } function foo4() { ->foo4 : () => typeof m.c, Symbol(foo4, Decl(declFileTypeAnnotationTypeQuery.ts, 23, 1)) +>foo4 : () => typeof m.c return m.c; ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeQuery.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c } // Just the name with type arguments function foo5(): typeof g { ->foo5 : () => typeof g, Symbol(foo5, Decl(declFileTypeAnnotationTypeQuery.ts, 26, 1)) ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) +>foo5 : () => typeof g +>g : typeof g return g; ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) +>g : typeof g } function foo6() { ->foo6 : () => typeof g, Symbol(foo6, Decl(declFileTypeAnnotationTypeQuery.ts, 31, 1)) +>foo6 : () => typeof g return g; ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationTypeQuery.ts, 8, 1)) +>g : typeof g } // Qualified name with type arguments function foo7(): typeof m.g { ->foo7 : () => typeof m.g, Symbol(foo7, Decl(declFileTypeAnnotationTypeQuery.ts, 34, 1)) ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>foo7 : () => typeof m.g +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g return m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g } function foo8() { ->foo8 : () => typeof m.g, Symbol(foo8, Decl(declFileTypeAnnotationTypeQuery.ts, 39, 1)) +>foo8 : () => typeof m.g return m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeQuery.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeQuery.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g } diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeReference.symbols b/tests/baselines/reference/declFileTypeAnnotationTypeReference.symbols new file mode 100644 index 0000000000000..c6e27ecdcebce --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationTypeReference.symbols @@ -0,0 +1,90 @@ +=== tests/cases/compiler/declFileTypeAnnotationTypeReference.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +} +module m { +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) + } + export class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +>T : Symbol(T, Decl(declFileTypeAnnotationTypeReference.ts, 6, 19)) + } +} +class g { +>g : Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) +>T : Symbol(T, Decl(declFileTypeAnnotationTypeReference.ts, 9, 8)) +} + +// Just the name +function foo(): c { +>foo : Symbol(foo, Decl(declFileTypeAnnotationTypeReference.ts, 10, 1)) +>c : Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) + + return new c(); +>c : Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +} +function foo2() { +>foo2 : Symbol(foo2, Decl(declFileTypeAnnotationTypeReference.ts, 15, 1)) + + return new c(); +>c : Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +} + +// Qualified name +function foo3(): m.c { +>foo3 : Symbol(foo3, Decl(declFileTypeAnnotationTypeReference.ts, 18, 1)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) + + return new m.c(); +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +} +function foo4() { +>foo4 : Symbol(foo4, Decl(declFileTypeAnnotationTypeReference.ts, 23, 1)) + + return new m.c(); +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +} + +// Just the name with type arguments +function foo5(): g { +>foo5 : Symbol(foo5, Decl(declFileTypeAnnotationTypeReference.ts, 26, 1)) +>g : Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) + + return new g(); +>g : Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) +} +function foo6() { +>foo6 : Symbol(foo6, Decl(declFileTypeAnnotationTypeReference.ts, 31, 1)) + + return new g(); +>g : Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) +} + +// Qualified name with type arguments +function foo7(): m.g { +>foo7 : Symbol(foo7, Decl(declFileTypeAnnotationTypeReference.ts, 34, 1)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) + + return new m.g(); +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +} +function foo8() { +>foo8 : Symbol(foo8, Decl(declFileTypeAnnotationTypeReference.ts, 39, 1)) + + return new m.g(); +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +} diff --git a/tests/baselines/reference/declFileTypeAnnotationTypeReference.types b/tests/baselines/reference/declFileTypeAnnotationTypeReference.types index a0c46f72b30bb..1d85ad1929351 100644 --- a/tests/baselines/reference/declFileTypeAnnotationTypeReference.types +++ b/tests/baselines/reference/declFileTypeAnnotationTypeReference.types @@ -1,98 +1,98 @@ === tests/cases/compiler/declFileTypeAnnotationTypeReference.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +>c : c } module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +>c : c } export class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTypeReference.ts, 6, 19)) +>g : g +>T : T } } class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationTypeReference.ts, 9, 8)) +>g : g +>T : T } // Just the name function foo(): c { ->foo : () => c, Symbol(foo, Decl(declFileTypeAnnotationTypeReference.ts, 10, 1)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +>foo : () => c +>c : c return new c(); >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +>c : typeof c } function foo2() { ->foo2 : () => c, Symbol(foo2, Decl(declFileTypeAnnotationTypeReference.ts, 15, 1)) +>foo2 : () => c return new c(); >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationTypeReference.ts, 0, 0)) +>c : typeof c } // Qualified name function foo3(): m.c { ->foo3 : () => m.c, Symbol(foo3, Decl(declFileTypeAnnotationTypeReference.ts, 18, 1)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +>foo3 : () => m.c +>m : any +>c : m.c return new m.c(); >new m.c() : m.c ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c } function foo4() { ->foo4 : () => m.c, Symbol(foo4, Decl(declFileTypeAnnotationTypeReference.ts, 23, 1)) +>foo4 : () => m.c return new m.c(); >new m.c() : m.c ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationTypeReference.ts, 3, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c } // Just the name with type arguments function foo5(): g { ->foo5 : () => g, Symbol(foo5, Decl(declFileTypeAnnotationTypeReference.ts, 26, 1)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) +>foo5 : () => g +>g : g return new g(); >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) +>g : typeof g } function foo6() { ->foo6 : () => g, Symbol(foo6, Decl(declFileTypeAnnotationTypeReference.ts, 31, 1)) +>foo6 : () => g return new g(); >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationTypeReference.ts, 8, 1)) +>g : typeof g } // Qualified name with type arguments function foo7(): m.g { ->foo7 : () => m.g, Symbol(foo7, Decl(declFileTypeAnnotationTypeReference.ts, 34, 1)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) ->g : m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +>foo7 : () => m.g +>m : any +>g : m.g return new m.g(); >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g } function foo8() { ->foo8 : () => m.g, Symbol(foo8, Decl(declFileTypeAnnotationTypeReference.ts, 39, 1)) +>foo8 : () => m.g return new m.g(); >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationTypeReference.ts, 2, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationTypeReference.ts, 5, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g } diff --git a/tests/baselines/reference/declFileTypeAnnotationUnionType.symbols b/tests/baselines/reference/declFileTypeAnnotationUnionType.symbols new file mode 100644 index 0000000000000..f57df197579b6 --- /dev/null +++ b/tests/baselines/reference/declFileTypeAnnotationUnionType.symbols @@ -0,0 +1,71 @@ +=== tests/cases/compiler/declFileTypeAnnotationUnionType.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) + + private p: string; +>p : Symbol(p, Decl(declFileTypeAnnotationUnionType.ts, 1, 9)) +} +module m { +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) + + export class c { +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) + + private q: string; +>q : Symbol(q, Decl(declFileTypeAnnotationUnionType.ts, 5, 20)) + } + export class g { +>g : Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>T : Symbol(T, Decl(declFileTypeAnnotationUnionType.ts, 8, 19)) + + private r: string; +>r : Symbol(r, Decl(declFileTypeAnnotationUnionType.ts, 8, 23)) + } +} +class g { +>g : Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) +>T : Symbol(T, Decl(declFileTypeAnnotationUnionType.ts, 12, 8)) + + private s: string; +>s : Symbol(s, Decl(declFileTypeAnnotationUnionType.ts, 12, 12)) +} + +// Just the name +var k: c | m.c = new c() || new m.c(); +>k : Symbol(k, Decl(declFileTypeAnnotationUnionType.ts, 17, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) + +var l = new c() || new m.c(); +>l : Symbol(l, Decl(declFileTypeAnnotationUnionType.ts, 18, 3)) +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>m.c : Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>c : Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) + +var x: g | m.g | (() => c) = new g() || new m.g() || (() => new c()); +>x : Symbol(x, Decl(declFileTypeAnnotationUnionType.ts, 20, 3)) +>g : Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>g : Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) + +var y = new g() || new m.g() || (() => new c()); +>y : Symbol(y, Decl(declFileTypeAnnotationUnionType.ts, 21, 3)) +>g : Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) +>m.g : Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>m : Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>g : Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>c : Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileTypeAnnotationUnionType.types b/tests/baselines/reference/declFileTypeAnnotationUnionType.types index 82c4499ed7402..a412f60b36ed3 100644 --- a/tests/baselines/reference/declFileTypeAnnotationUnionType.types +++ b/tests/baselines/reference/declFileTypeAnnotationUnionType.types @@ -1,91 +1,91 @@ === tests/cases/compiler/declFileTypeAnnotationUnionType.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>c : c private p: string; ->p : string, Symbol(p, Decl(declFileTypeAnnotationUnionType.ts, 1, 9)) +>p : string } module m { ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) +>m : typeof m export class c { ->c : c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>c : c private q: string; ->q : string, Symbol(q, Decl(declFileTypeAnnotationUnionType.ts, 5, 20)) +>q : string } export class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationUnionType.ts, 8, 19)) +>g : g +>T : T private r: string; ->r : string, Symbol(r, Decl(declFileTypeAnnotationUnionType.ts, 8, 23)) +>r : string } } class g { ->g : g, Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) ->T : T, Symbol(T, Decl(declFileTypeAnnotationUnionType.ts, 12, 8)) +>g : g +>T : T private s: string; ->s : string, Symbol(s, Decl(declFileTypeAnnotationUnionType.ts, 12, 12)) +>s : string } // Just the name var k: c | m.c = new c() || new m.c(); ->k : c | m.c, Symbol(k, Decl(declFileTypeAnnotationUnionType.ts, 17, 3)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) ->c : m.c, Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>k : c | m.c +>c : c +>m : any +>c : m.c >new c() || new m.c() : c | m.c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>c : typeof c >new m.c() : m.c ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c var l = new c() || new m.c(); ->l : c | m.c, Symbol(l, Decl(declFileTypeAnnotationUnionType.ts, 18, 3)) +>l : c | m.c >new c() || new m.c() : c | m.c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>c : typeof c >new m.c() : m.c ->m.c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) ->c : typeof m.c, Symbol(m.c, Decl(declFileTypeAnnotationUnionType.ts, 4, 10)) +>m.c : typeof m.c +>m : typeof m +>c : typeof m.c var x: g | m.g | (() => c) = new g() || new m.g() || (() => new c()); ->x : g | m.g | (() => c), Symbol(x, Decl(declFileTypeAnnotationUnionType.ts, 20, 3)) ->g : g, Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) ->m : any, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) ->g : m.g, Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) ->c : c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>x : g | m.g | (() => c) +>g : g +>m : any +>g : m.g +>c : c >new g() || new m.g() || (() => new c()) : g | m.g | (() => c) >new g() || new m.g() : g | m.g >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) +>g : typeof g >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g >(() => new c()) : () => c >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>c : typeof c var y = new g() || new m.g() || (() => new c()); ->y : g | m.g | (() => c), Symbol(y, Decl(declFileTypeAnnotationUnionType.ts, 21, 3)) +>y : g | m.g | (() => c) >new g() || new m.g() || (() => new c()) : g | m.g | (() => c) >new g() || new m.g() : g | m.g >new g() : g ->g : typeof g, Symbol(g, Decl(declFileTypeAnnotationUnionType.ts, 11, 1)) +>g : typeof g >new m.g() : m.g ->m.g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) ->m : typeof m, Symbol(m, Decl(declFileTypeAnnotationUnionType.ts, 3, 1)) ->g : typeof m.g, Symbol(m.g, Decl(declFileTypeAnnotationUnionType.ts, 7, 5)) +>m.g : typeof m.g +>m : typeof m +>g : typeof m.g >(() => new c()) : () => c >() => new c() : () => c >new c() : c ->c : typeof c, Symbol(c, Decl(declFileTypeAnnotationUnionType.ts, 0, 0)) +>c : typeof c diff --git a/tests/baselines/reference/declFileTypeofClass.symbols b/tests/baselines/reference/declFileTypeofClass.symbols new file mode 100644 index 0000000000000..26adfcc8ee419 --- /dev/null +++ b/tests/baselines/reference/declFileTypeofClass.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/declFileTypeofClass.ts === + +class c { +>c : Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) + + static x : string; +>x : Symbol(c.x, Decl(declFileTypeofClass.ts, 1, 9)) + + private static y: number; +>y : Symbol(c.y, Decl(declFileTypeofClass.ts, 2, 22)) + + private x3: string; +>x3 : Symbol(x3, Decl(declFileTypeofClass.ts, 3, 29)) + + public y3: number; +>y3 : Symbol(y3, Decl(declFileTypeofClass.ts, 4, 23)) +} + +var x: c; +>x : Symbol(x, Decl(declFileTypeofClass.ts, 8, 3)) +>c : Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) + +var y = c; +>y : Symbol(y, Decl(declFileTypeofClass.ts, 9, 3)) +>c : Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) + +var z: typeof c; +>z : Symbol(z, Decl(declFileTypeofClass.ts, 10, 3)) +>c : Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) + +class genericC +>genericC : Symbol(genericC, Decl(declFileTypeofClass.ts, 10, 16)) +>T : Symbol(T, Decl(declFileTypeofClass.ts, 11, 15)) +{ +} +var genericX = genericC; +>genericX : Symbol(genericX, Decl(declFileTypeofClass.ts, 14, 3)) +>genericC : Symbol(genericC, Decl(declFileTypeofClass.ts, 10, 16)) + diff --git a/tests/baselines/reference/declFileTypeofClass.types b/tests/baselines/reference/declFileTypeofClass.types index b8ef16d791732..119ad9bb7d431 100644 --- a/tests/baselines/reference/declFileTypeofClass.types +++ b/tests/baselines/reference/declFileTypeofClass.types @@ -1,39 +1,39 @@ === tests/cases/compiler/declFileTypeofClass.ts === class c { ->c : c, Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) +>c : c static x : string; ->x : string, Symbol(c.x, Decl(declFileTypeofClass.ts, 1, 9)) +>x : string private static y: number; ->y : number, Symbol(c.y, Decl(declFileTypeofClass.ts, 2, 22)) +>y : number private x3: string; ->x3 : string, Symbol(x3, Decl(declFileTypeofClass.ts, 3, 29)) +>x3 : string public y3: number; ->y3 : number, Symbol(y3, Decl(declFileTypeofClass.ts, 4, 23)) +>y3 : number } var x: c; ->x : c, Symbol(x, Decl(declFileTypeofClass.ts, 8, 3)) ->c : c, Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) +>x : c +>c : c var y = c; ->y : typeof c, Symbol(y, Decl(declFileTypeofClass.ts, 9, 3)) ->c : typeof c, Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) +>y : typeof c +>c : typeof c var z: typeof c; ->z : typeof c, Symbol(z, Decl(declFileTypeofClass.ts, 10, 3)) ->c : typeof c, Symbol(c, Decl(declFileTypeofClass.ts, 0, 0)) +>z : typeof c +>c : typeof c class genericC ->genericC : genericC, Symbol(genericC, Decl(declFileTypeofClass.ts, 10, 16)) ->T : T, Symbol(T, Decl(declFileTypeofClass.ts, 11, 15)) +>genericC : genericC +>T : T { } var genericX = genericC; ->genericX : typeof genericC, Symbol(genericX, Decl(declFileTypeofClass.ts, 14, 3)) ->genericC : typeof genericC, Symbol(genericC, Decl(declFileTypeofClass.ts, 10, 16)) +>genericX : typeof genericC +>genericC : typeof genericC diff --git a/tests/baselines/reference/declFileTypeofEnum.symbols b/tests/baselines/reference/declFileTypeofEnum.symbols new file mode 100644 index 0000000000000..9980167788acd --- /dev/null +++ b/tests/baselines/reference/declFileTypeofEnum.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/declFileTypeofEnum.ts === + +enum days { +>days : Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) + + monday, +>monday : Symbol(days.monday, Decl(declFileTypeofEnum.ts, 1, 11)) + + tuesday, +>tuesday : Symbol(days.tuesday, Decl(declFileTypeofEnum.ts, 2, 11)) + + wednesday, +>wednesday : Symbol(days.wednesday, Decl(declFileTypeofEnum.ts, 3, 12)) + + thursday, +>thursday : Symbol(days.thursday, Decl(declFileTypeofEnum.ts, 4, 14)) + + friday, +>friday : Symbol(days.friday, Decl(declFileTypeofEnum.ts, 5, 13)) + + saturday, +>saturday : Symbol(days.saturday, Decl(declFileTypeofEnum.ts, 6, 11)) + + sunday +>sunday : Symbol(days.sunday, Decl(declFileTypeofEnum.ts, 7, 13)) +} + +var weekendDay = days.saturday; +>weekendDay : Symbol(weekendDay, Decl(declFileTypeofEnum.ts, 11, 3)) +>days.saturday : Symbol(days.saturday, Decl(declFileTypeofEnum.ts, 6, 11)) +>days : Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) +>saturday : Symbol(days.saturday, Decl(declFileTypeofEnum.ts, 6, 11)) + +var daysOfMonth = days; +>daysOfMonth : Symbol(daysOfMonth, Decl(declFileTypeofEnum.ts, 12, 3)) +>days : Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) + +var daysOfYear: typeof days; +>daysOfYear : Symbol(daysOfYear, Decl(declFileTypeofEnum.ts, 13, 3)) +>days : Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) + diff --git a/tests/baselines/reference/declFileTypeofEnum.types b/tests/baselines/reference/declFileTypeofEnum.types index 9fb7c2ba14149..1c900a453b765 100644 --- a/tests/baselines/reference/declFileTypeofEnum.types +++ b/tests/baselines/reference/declFileTypeofEnum.types @@ -1,41 +1,41 @@ === tests/cases/compiler/declFileTypeofEnum.ts === enum days { ->days : days, Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) +>days : days monday, ->monday : days, Symbol(days.monday, Decl(declFileTypeofEnum.ts, 1, 11)) +>monday : days tuesday, ->tuesday : days, Symbol(days.tuesday, Decl(declFileTypeofEnum.ts, 2, 11)) +>tuesday : days wednesday, ->wednesday : days, Symbol(days.wednesday, Decl(declFileTypeofEnum.ts, 3, 12)) +>wednesday : days thursday, ->thursday : days, Symbol(days.thursday, Decl(declFileTypeofEnum.ts, 4, 14)) +>thursday : days friday, ->friday : days, Symbol(days.friday, Decl(declFileTypeofEnum.ts, 5, 13)) +>friday : days saturday, ->saturday : days, Symbol(days.saturday, Decl(declFileTypeofEnum.ts, 6, 11)) +>saturday : days sunday ->sunday : days, Symbol(days.sunday, Decl(declFileTypeofEnum.ts, 7, 13)) +>sunday : days } var weekendDay = days.saturday; ->weekendDay : days, Symbol(weekendDay, Decl(declFileTypeofEnum.ts, 11, 3)) ->days.saturday : days, Symbol(days.saturday, Decl(declFileTypeofEnum.ts, 6, 11)) ->days : typeof days, Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) ->saturday : days, Symbol(days.saturday, Decl(declFileTypeofEnum.ts, 6, 11)) +>weekendDay : days +>days.saturday : days +>days : typeof days +>saturday : days var daysOfMonth = days; ->daysOfMonth : typeof days, Symbol(daysOfMonth, Decl(declFileTypeofEnum.ts, 12, 3)) ->days : typeof days, Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) +>daysOfMonth : typeof days +>days : typeof days var daysOfYear: typeof days; ->daysOfYear : typeof days, Symbol(daysOfYear, Decl(declFileTypeofEnum.ts, 13, 3)) ->days : typeof days, Symbol(days, Decl(declFileTypeofEnum.ts, 0, 0)) +>daysOfYear : typeof days +>days : typeof days diff --git a/tests/baselines/reference/declFileTypeofFunction.symbols b/tests/baselines/reference/declFileTypeofFunction.symbols new file mode 100644 index 0000000000000..649c09cba0662 --- /dev/null +++ b/tests/baselines/reference/declFileTypeofFunction.symbols @@ -0,0 +1,82 @@ +=== tests/cases/compiler/declFileTypeofFunction.ts === + +function f(n: typeof f): string; +>f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) +>n : Symbol(n, Decl(declFileTypeofFunction.ts, 1, 11)) +>f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) + +function f(n: typeof g): string; +>f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) +>n : Symbol(n, Decl(declFileTypeofFunction.ts, 2, 11)) +>g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) + +function f() { return undefined; } +>f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) +>undefined : Symbol(undefined) + +function g(n: typeof g): number; +>g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) +>n : Symbol(n, Decl(declFileTypeofFunction.ts, 4, 11)) +>g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) + +function g(n: typeof f): number; +>g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) +>n : Symbol(n, Decl(declFileTypeofFunction.ts, 5, 11)) +>f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) + +function g() { return undefined; } +>g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) +>undefined : Symbol(undefined) + +var b: () => typeof b; +>b : Symbol(b, Decl(declFileTypeofFunction.ts, 8, 3)) +>b : Symbol(b, Decl(declFileTypeofFunction.ts, 8, 3)) + +function b1() { +>b1 : Symbol(b1, Decl(declFileTypeofFunction.ts, 8, 22)) + + return b1; +>b1 : Symbol(b1, Decl(declFileTypeofFunction.ts, 8, 22)) +} + +function foo(): typeof foo { +>foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) +>foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) + + return null; +} +var foo1: typeof foo; +>foo1 : Symbol(foo1, Decl(declFileTypeofFunction.ts, 17, 3)) +>foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) + +var foo2 = foo; +>foo2 : Symbol(foo2, Decl(declFileTypeofFunction.ts, 18, 3)) +>foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) + +var foo3 = function () { +>foo3 : Symbol(foo3, Decl(declFileTypeofFunction.ts, 20, 3)) + + return foo3; +>foo3 : Symbol(foo3, Decl(declFileTypeofFunction.ts, 20, 3)) +} +var x = () => { +>x : Symbol(x, Decl(declFileTypeofFunction.ts, 23, 3)) + + return x; +>x : Symbol(x, Decl(declFileTypeofFunction.ts, 23, 3)) +} + +function foo5(x: number) { +>foo5 : Symbol(foo5, Decl(declFileTypeofFunction.ts, 25, 1)) +>x : Symbol(x, Decl(declFileTypeofFunction.ts, 27, 14)) + + function bar(x: number) { +>bar : Symbol(bar, Decl(declFileTypeofFunction.ts, 27, 26)) +>x : Symbol(x, Decl(declFileTypeofFunction.ts, 28, 17)) + + return x; +>x : Symbol(x, Decl(declFileTypeofFunction.ts, 28, 17)) + } + return bar; +>bar : Symbol(bar, Decl(declFileTypeofFunction.ts, 27, 26)) +} diff --git a/tests/baselines/reference/declFileTypeofFunction.types b/tests/baselines/reference/declFileTypeofFunction.types index 0ce486c99fe7d..b47b07035d13b 100644 --- a/tests/baselines/reference/declFileTypeofFunction.types +++ b/tests/baselines/reference/declFileTypeofFunction.types @@ -1,85 +1,85 @@ === tests/cases/compiler/declFileTypeofFunction.ts === function f(n: typeof f): string; ->f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) ->n : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(n, Decl(declFileTypeofFunction.ts, 1, 11)) ->f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) +>f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } +>n : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } +>f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } function f(n: typeof g): string; ->f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) ->n : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(n, Decl(declFileTypeofFunction.ts, 2, 11)) ->g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) +>f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } +>n : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } +>g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } function f() { return undefined; } ->f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) ->undefined : undefined, Symbol(undefined) +>f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } +>undefined : undefined function g(n: typeof g): number; ->g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) ->n : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(n, Decl(declFileTypeofFunction.ts, 4, 11)) ->g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) +>g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } +>n : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } +>g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } function g(n: typeof f): number; ->g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) ->n : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(n, Decl(declFileTypeofFunction.ts, 5, 11)) ->f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; }, Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) +>g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } +>n : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } +>f : { (n: typeof f): string; (n: { (n: typeof g): number; (n: typeof f): number; }): string; } function g() { return undefined; } ->g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; }, Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) ->undefined : undefined, Symbol(undefined) +>g : { (n: typeof g): number; (n: { (n: typeof f): string; (n: typeof g): string; }): number; } +>undefined : undefined var b: () => typeof b; ->b : () => any, Symbol(b, Decl(declFileTypeofFunction.ts, 8, 3)) ->b : () => any, Symbol(b, Decl(declFileTypeofFunction.ts, 8, 3)) +>b : () => any +>b : () => any function b1() { ->b1 : () => typeof b1, Symbol(b1, Decl(declFileTypeofFunction.ts, 8, 22)) +>b1 : () => typeof b1 return b1; ->b1 : () => typeof b1, Symbol(b1, Decl(declFileTypeofFunction.ts, 8, 22)) +>b1 : () => typeof b1 } function foo(): typeof foo { ->foo : () => typeof foo, Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) ->foo : () => typeof foo, Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) +>foo : () => typeof foo +>foo : () => typeof foo return null; >null : null } var foo1: typeof foo; ->foo1 : () => typeof foo, Symbol(foo1, Decl(declFileTypeofFunction.ts, 17, 3)) ->foo : () => typeof foo, Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) +>foo1 : () => typeof foo +>foo : () => typeof foo var foo2 = foo; ->foo2 : () => typeof foo, Symbol(foo2, Decl(declFileTypeofFunction.ts, 18, 3)) ->foo : () => typeof foo, Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) +>foo2 : () => typeof foo +>foo : () => typeof foo var foo3 = function () { ->foo3 : () => any, Symbol(foo3, Decl(declFileTypeofFunction.ts, 20, 3)) +>foo3 : () => any >function () { return foo3;} : () => any return foo3; ->foo3 : () => any, Symbol(foo3, Decl(declFileTypeofFunction.ts, 20, 3)) +>foo3 : () => any } var x = () => { ->x : () => any, Symbol(x, Decl(declFileTypeofFunction.ts, 23, 3)) +>x : () => any >() => { return x;} : () => any return x; ->x : () => any, Symbol(x, Decl(declFileTypeofFunction.ts, 23, 3)) +>x : () => any } function foo5(x: number) { ->foo5 : (x: number) => (x: number) => number, Symbol(foo5, Decl(declFileTypeofFunction.ts, 25, 1)) ->x : number, Symbol(x, Decl(declFileTypeofFunction.ts, 27, 14)) +>foo5 : (x: number) => (x: number) => number +>x : number function bar(x: number) { ->bar : (x: number) => number, Symbol(bar, Decl(declFileTypeofFunction.ts, 27, 26)) ->x : number, Symbol(x, Decl(declFileTypeofFunction.ts, 28, 17)) +>bar : (x: number) => number +>x : number return x; ->x : number, Symbol(x, Decl(declFileTypeofFunction.ts, 28, 17)) +>x : number } return bar; ->bar : (x: number) => number, Symbol(bar, Decl(declFileTypeofFunction.ts, 27, 26)) +>bar : (x: number) => number } diff --git a/tests/baselines/reference/declFileTypeofInAnonymousType.symbols b/tests/baselines/reference/declFileTypeofInAnonymousType.symbols new file mode 100644 index 0000000000000..426f953d6f214 --- /dev/null +++ b/tests/baselines/reference/declFileTypeofInAnonymousType.symbols @@ -0,0 +1,77 @@ +=== tests/cases/compiler/declFileTypeofInAnonymousType.ts === + +module m1 { +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) + } + export enum e { +>e : Symbol(e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) + + weekday, +>weekday : Symbol(e.weekday, Decl(declFileTypeofInAnonymousType.ts, 4, 19)) + + weekend, +>weekend : Symbol(e.weekend, Decl(declFileTypeofInAnonymousType.ts, 5, 16)) + + holiday +>holiday : Symbol(e.holiday, Decl(declFileTypeofInAnonymousType.ts, 6, 16)) + } +} +var a: { c: m1.c; }; +>a : Symbol(a, Decl(declFileTypeofInAnonymousType.ts, 10, 3)) +>c : Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 10, 8)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>c : Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) + +var b = { +>b : Symbol(b, Decl(declFileTypeofInAnonymousType.ts, 11, 3)) + + c: m1.c, +>c : Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 11, 9)) +>m1.c : Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>c : Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) + + m1: m1 +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 12, 12)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) + +}; +var c = { m1: m1 }; +>c : Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 15, 3)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 15, 9)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) + +var d = { +>d : Symbol(d, Decl(declFileTypeofInAnonymousType.ts, 16, 3)) + + m: { mod: m1 }, +>m : Symbol(m, Decl(declFileTypeofInAnonymousType.ts, 16, 9)) +>mod : Symbol(mod, Decl(declFileTypeofInAnonymousType.ts, 17, 8)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) + + mc: { cl: m1.c }, +>mc : Symbol(mc, Decl(declFileTypeofInAnonymousType.ts, 17, 19)) +>cl : Symbol(cl, Decl(declFileTypeofInAnonymousType.ts, 18, 9)) +>m1.c : Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>c : Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) + + me: { en: m1.e }, +>me : Symbol(me, Decl(declFileTypeofInAnonymousType.ts, 18, 21)) +>en : Symbol(en, Decl(declFileTypeofInAnonymousType.ts, 19, 9)) +>m1.e : Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>e : Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) + + mh: m1.e.holiday +>mh : Symbol(mh, Decl(declFileTypeofInAnonymousType.ts, 19, 21)) +>m1.e.holiday : Symbol(m1.e.holiday, Decl(declFileTypeofInAnonymousType.ts, 6, 16)) +>m1.e : Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) +>m1 : Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>e : Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) +>holiday : Symbol(m1.e.holiday, Decl(declFileTypeofInAnonymousType.ts, 6, 16)) + +}; diff --git a/tests/baselines/reference/declFileTypeofInAnonymousType.types b/tests/baselines/reference/declFileTypeofInAnonymousType.types index a4510277bcb9b..fa9d0bcbd17ba 100644 --- a/tests/baselines/reference/declFileTypeofInAnonymousType.types +++ b/tests/baselines/reference/declFileTypeofInAnonymousType.types @@ -1,83 +1,83 @@ === tests/cases/compiler/declFileTypeofInAnonymousType.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>m1 : typeof m1 export class c { ->c : c, Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) +>c : c } export enum e { ->e : e, Symbol(e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) +>e : e weekday, ->weekday : e, Symbol(e.weekday, Decl(declFileTypeofInAnonymousType.ts, 4, 19)) +>weekday : e weekend, ->weekend : e, Symbol(e.weekend, Decl(declFileTypeofInAnonymousType.ts, 5, 16)) +>weekend : e holiday ->holiday : e, Symbol(e.holiday, Decl(declFileTypeofInAnonymousType.ts, 6, 16)) +>holiday : e } } var a: { c: m1.c; }; ->a : { c: m1.c; }, Symbol(a, Decl(declFileTypeofInAnonymousType.ts, 10, 3)) ->c : m1.c, Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 10, 8)) ->m1 : any, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) ->c : m1.c, Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) +>a : { c: m1.c; } +>c : m1.c +>m1 : any +>c : m1.c var b = { ->b : { c: typeof m1.c; m1: typeof m1; }, Symbol(b, Decl(declFileTypeofInAnonymousType.ts, 11, 3)) +>b : { c: typeof m1.c; m1: typeof m1; } >{ c: m1.c, m1: m1} : { c: typeof m1.c; m1: typeof m1; } c: m1.c, ->c : typeof m1.c, Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 11, 9)) ->m1.c : typeof m1.c, Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) ->c : typeof m1.c, Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) +>c : typeof m1.c +>m1.c : typeof m1.c +>m1 : typeof m1 +>c : typeof m1.c m1: m1 ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 12, 12)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>m1 : typeof m1 +>m1 : typeof m1 }; var c = { m1: m1 }; ->c : { m1: typeof m1; }, Symbol(c, Decl(declFileTypeofInAnonymousType.ts, 15, 3)) +>c : { m1: typeof m1; } >{ m1: m1 } : { m1: typeof m1; } ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 15, 9)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>m1 : typeof m1 +>m1 : typeof m1 var d = { ->d : { m: { mod: typeof m1; }; mc: { cl: typeof m1.c; }; me: { en: typeof m1.e; }; mh: m1.e; }, Symbol(d, Decl(declFileTypeofInAnonymousType.ts, 16, 3)) +>d : { m: { mod: typeof m1; }; mc: { cl: typeof m1.c; }; me: { en: typeof m1.e; }; mh: m1.e; } >{ m: { mod: m1 }, mc: { cl: m1.c }, me: { en: m1.e }, mh: m1.e.holiday} : { m: { mod: typeof m1; }; mc: { cl: typeof m1.c; }; me: { en: typeof m1.e; }; mh: m1.e; } m: { mod: m1 }, ->m : { mod: typeof m1; }, Symbol(m, Decl(declFileTypeofInAnonymousType.ts, 16, 9)) +>m : { mod: typeof m1; } >{ mod: m1 } : { mod: typeof m1; } ->mod : typeof m1, Symbol(mod, Decl(declFileTypeofInAnonymousType.ts, 17, 8)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) +>mod : typeof m1 +>m1 : typeof m1 mc: { cl: m1.c }, ->mc : { cl: typeof m1.c; }, Symbol(mc, Decl(declFileTypeofInAnonymousType.ts, 17, 19)) +>mc : { cl: typeof m1.c; } >{ cl: m1.c } : { cl: typeof m1.c; } ->cl : typeof m1.c, Symbol(cl, Decl(declFileTypeofInAnonymousType.ts, 18, 9)) ->m1.c : typeof m1.c, Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) ->c : typeof m1.c, Symbol(m1.c, Decl(declFileTypeofInAnonymousType.ts, 1, 11)) +>cl : typeof m1.c +>m1.c : typeof m1.c +>m1 : typeof m1 +>c : typeof m1.c me: { en: m1.e }, ->me : { en: typeof m1.e; }, Symbol(me, Decl(declFileTypeofInAnonymousType.ts, 18, 21)) +>me : { en: typeof m1.e; } >{ en: m1.e } : { en: typeof m1.e; } ->en : typeof m1.e, Symbol(en, Decl(declFileTypeofInAnonymousType.ts, 19, 9)) ->m1.e : typeof m1.e, Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) ->e : typeof m1.e, Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) +>en : typeof m1.e +>m1.e : typeof m1.e +>m1 : typeof m1 +>e : typeof m1.e mh: m1.e.holiday ->mh : m1.e, Symbol(mh, Decl(declFileTypeofInAnonymousType.ts, 19, 21)) ->m1.e.holiday : m1.e, Symbol(m1.e.holiday, Decl(declFileTypeofInAnonymousType.ts, 6, 16)) ->m1.e : typeof m1.e, Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofInAnonymousType.ts, 0, 0)) ->e : typeof m1.e, Symbol(m1.e, Decl(declFileTypeofInAnonymousType.ts, 3, 5)) ->holiday : m1.e, Symbol(m1.e.holiday, Decl(declFileTypeofInAnonymousType.ts, 6, 16)) +>mh : m1.e +>m1.e.holiday : m1.e +>m1.e : typeof m1.e +>m1 : typeof m1 +>e : typeof m1.e +>holiday : m1.e }; diff --git a/tests/baselines/reference/declFileTypeofModule.symbols b/tests/baselines/reference/declFileTypeofModule.symbols new file mode 100644 index 0000000000000..c84185b105daf --- /dev/null +++ b/tests/baselines/reference/declFileTypeofModule.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/declFileTypeofModule.ts === + +module m1 { +>m1 : Symbol(m1, Decl(declFileTypeofModule.ts, 0, 0)) + + export var c: string; +>c : Symbol(c, Decl(declFileTypeofModule.ts, 2, 14)) +} +var m1_1 = m1; +>m1_1 : Symbol(m1_1, Decl(declFileTypeofModule.ts, 4, 3)) +>m1 : Symbol(m1, Decl(declFileTypeofModule.ts, 0, 0)) + +var m1_2: typeof m1; +>m1_2 : Symbol(m1_2, Decl(declFileTypeofModule.ts, 5, 3)) +>m1 : Symbol(m1, Decl(declFileTypeofModule.ts, 0, 0)) + +module m2 { +>m2 : Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) + + export var d: typeof m2; +>d : Symbol(d, Decl(declFileTypeofModule.ts, 8, 14)) +>m2 : Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) +} + +var m2_1 = m2; +>m2_1 : Symbol(m2_1, Decl(declFileTypeofModule.ts, 11, 3)) +>m2 : Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) + +var m2_2: typeof m2; +>m2_2 : Symbol(m2_2, Decl(declFileTypeofModule.ts, 12, 3)) +>m2 : Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) + diff --git a/tests/baselines/reference/declFileTypeofModule.types b/tests/baselines/reference/declFileTypeofModule.types index 67a75862ca7a4..ef4238bf2c59a 100644 --- a/tests/baselines/reference/declFileTypeofModule.types +++ b/tests/baselines/reference/declFileTypeofModule.types @@ -1,32 +1,32 @@ === tests/cases/compiler/declFileTypeofModule.ts === module m1 { ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofModule.ts, 0, 0)) +>m1 : typeof m1 export var c: string; ->c : string, Symbol(c, Decl(declFileTypeofModule.ts, 2, 14)) +>c : string } var m1_1 = m1; ->m1_1 : typeof m1, Symbol(m1_1, Decl(declFileTypeofModule.ts, 4, 3)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofModule.ts, 0, 0)) +>m1_1 : typeof m1 +>m1 : typeof m1 var m1_2: typeof m1; ->m1_2 : typeof m1, Symbol(m1_2, Decl(declFileTypeofModule.ts, 5, 3)) ->m1 : typeof m1, Symbol(m1, Decl(declFileTypeofModule.ts, 0, 0)) +>m1_2 : typeof m1 +>m1 : typeof m1 module m2 { ->m2 : typeof m2, Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) +>m2 : typeof m2 export var d: typeof m2; ->d : typeof m2, Symbol(d, Decl(declFileTypeofModule.ts, 8, 14)) ->m2 : typeof m2, Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) +>d : typeof m2 +>m2 : typeof m2 } var m2_1 = m2; ->m2_1 : typeof m2, Symbol(m2_1, Decl(declFileTypeofModule.ts, 11, 3)) ->m2 : typeof m2, Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) +>m2_1 : typeof m2 +>m2 : typeof m2 var m2_2: typeof m2; ->m2_2 : typeof m2, Symbol(m2_2, Decl(declFileTypeofModule.ts, 12, 3)) ->m2 : typeof m2, Symbol(m2, Decl(declFileTypeofModule.ts, 5, 20)) +>m2_2 : typeof m2 +>m2 : typeof m2 diff --git a/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.symbols b/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.symbols new file mode 100644 index 0000000000000..d2548af7c4fc6 --- /dev/null +++ b/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.symbols @@ -0,0 +1,56 @@ +=== tests/cases/compiler/declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts === + +declare module A.B.Base { +>A : Symbol(A, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 0, 0)) +>B : Symbol(B, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 17)) +>Base : Symbol(Base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 19)) + + export class W { +>W : Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 25)) + + id: number; +>id : Symbol(id, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 2, 20)) + } +} +module X.Y.base { +>X : Symbol(X, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 5, 1), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 11, 1)) +>Y : Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) +>base : Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) + + export class W extends A.B.Base.W { +>W : Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 17)) +>A.B.Base.W : Symbol(A.B.Base.W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 25)) +>A.B.Base : Symbol(A.B.Base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 19)) +>A.B : Symbol(A.B, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 17)) +>A : Symbol(A, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 0, 0)) +>B : Symbol(A.B, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 17)) +>Base : Symbol(A.B.Base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 19)) +>W : Symbol(A.B.Base.W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 25)) + + name: string; +>name : Symbol(name, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 8, 39)) + } +} + +module X.Y.base.Z { +>X : Symbol(X, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 5, 1), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 11, 1)) +>Y : Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) +>base : Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) +>Z : Symbol(Z, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 16)) + + export class W extends X.Y.base.W { +>W : Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 19)) +>TValue : Symbol(TValue, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 15, 19)) +>X.Y.base.W : Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 17)) +>X.Y.base : Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) +>X.Y : Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) +>X : Symbol(X, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 5, 1), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 11, 1)) +>Y : Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) +>base : Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) +>W : Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 17)) + + value: boolean; +>value : Symbol(value, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 15, 47)) + } +} + diff --git a/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.types b/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.types index 7fd039daeb67f..56e1d07d0ecf2 100644 --- a/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.types +++ b/tests/baselines/reference/declFileWithClassNameConflictingWithClassReferredByExtendsClause.types @@ -1,56 +1,56 @@ === tests/cases/compiler/declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts === declare module A.B.Base { ->A : typeof A, Symbol(A, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 0, 0)) ->B : typeof B, Symbol(B, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 17)) ->Base : typeof Base, Symbol(Base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 19)) +>A : typeof A +>B : typeof B +>Base : typeof Base export class W { ->W : W, Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 25)) +>W : W id: number; ->id : number, Symbol(id, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 2, 20)) +>id : number } } module X.Y.base { ->X : typeof X, Symbol(X, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 5, 1), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 11, 1)) ->Y : typeof Y, Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) ->base : typeof base, Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) +>X : typeof X +>Y : typeof Y +>base : typeof base export class W extends A.B.Base.W { ->W : W, Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 17)) ->A.B.Base.W : any, Symbol(A.B.Base.W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 25)) ->A.B.Base : typeof A.B.Base, Symbol(A.B.Base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 19)) ->A.B : typeof A.B, Symbol(A.B, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 17)) ->A : typeof A, Symbol(A, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 0, 0)) ->B : typeof A.B, Symbol(A.B, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 17)) ->Base : typeof A.B.Base, Symbol(A.B.Base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 19)) ->W : A.B.Base.W, Symbol(A.B.Base.W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 1, 25)) +>W : W +>A.B.Base.W : any +>A.B.Base : typeof A.B.Base +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>Base : typeof A.B.Base +>W : A.B.Base.W name: string; ->name : string, Symbol(name, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 8, 39)) +>name : string } } module X.Y.base.Z { ->X : typeof X, Symbol(X, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 5, 1), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 11, 1)) ->Y : typeof Y, Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) ->base : typeof base, Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) ->Z : typeof Z, Symbol(Z, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 16)) +>X : typeof X +>Y : typeof Y +>base : typeof base +>Z : typeof Z export class W extends X.Y.base.W { ->W : W, Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 19)) ->TValue : TValue, Symbol(TValue, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 15, 19)) ->X.Y.base.W : any, Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 17)) ->X.Y.base : typeof base, Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) ->X.Y : typeof Y, Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) ->X : typeof X, Symbol(X, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 5, 1), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 11, 1)) ->Y : typeof Y, Symbol(Y, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 9), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 9)) ->base : typeof base, Symbol(base, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 11), Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 13, 11)) ->W : base.W, Symbol(W, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 6, 17)) +>W : W +>TValue : TValue +>X.Y.base.W : any +>X.Y.base : typeof base +>X.Y : typeof Y +>X : typeof X +>Y : typeof Y +>base : typeof base +>W : base.W value: boolean; ->value : boolean, Symbol(value, Decl(declFileWithClassNameConflictingWithClassReferredByExtendsClause.ts, 15, 47)) +>value : boolean } } diff --git a/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.symbols b/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.symbols new file mode 100644 index 0000000000000..e5016ec9baa87 --- /dev/null +++ b/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/declFileWithExtendsClauseThatHasItsContainerNameConflict.ts === + +declare module A.B.C { +>A : Symbol(A, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 0, 0), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 4, 1), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 11, 1)) +>B : Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 17), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 9), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 9)) +>C : Symbol(C, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 19), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 11)) + + class B { +>B : Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 22)) + } +} + +module A.B { +>A : Symbol(A, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 0, 0), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 4, 1), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 11, 1)) +>B : Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 17), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 9), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 9)) + + export class EventManager { +>EventManager : Symbol(EventManager, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 12)) + + id: number; +>id : Symbol(id, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 7, 31)) + + } +} + +module A.B.C { +>A : Symbol(A, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 0, 0), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 4, 1), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 11, 1)) +>B : Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 17), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 9), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 9)) +>C : Symbol(C, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 19), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 11)) + + export class ContextMenu extends EventManager { +>ContextMenu : Symbol(ContextMenu, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 14)) +>EventManager : Symbol(EventManager, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 12)) + + name: string; +>name : Symbol(name, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 14, 51)) + } +} diff --git a/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.types b/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.types index 8f09f3c34826c..4dae0d42c53ec 100644 --- a/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.types +++ b/tests/baselines/reference/declFileWithExtendsClauseThatHasItsContainerNameConflict.types @@ -1,38 +1,38 @@ === tests/cases/compiler/declFileWithExtendsClauseThatHasItsContainerNameConflict.ts === declare module A.B.C { ->A : typeof A, Symbol(A, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 0, 0), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 4, 1), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 11, 1)) ->B : typeof B, Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 17), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 9), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 9)) ->C : typeof C, Symbol(C, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 19), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 11)) +>A : typeof A +>B : typeof B +>C : typeof C class B { ->B : B, Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 22)) +>B : B } } module A.B { ->A : typeof A, Symbol(A, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 0, 0), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 4, 1), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 11, 1)) ->B : typeof B, Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 17), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 9), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 9)) +>A : typeof A +>B : typeof B export class EventManager { ->EventManager : EventManager, Symbol(EventManager, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 12)) +>EventManager : EventManager id: number; ->id : number, Symbol(id, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 7, 31)) +>id : number } } module A.B.C { ->A : typeof A, Symbol(A, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 0, 0), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 4, 1), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 11, 1)) ->B : typeof B, Symbol(B, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 17), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 9), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 9)) ->C : typeof C, Symbol(C, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 1, 19), Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 11)) +>A : typeof A +>B : typeof B +>C : typeof C export class ContextMenu extends EventManager { ->ContextMenu : ContextMenu, Symbol(ContextMenu, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 13, 14)) ->EventManager : EventManager, Symbol(EventManager, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 6, 12)) +>ContextMenu : ContextMenu +>EventManager : EventManager name: string; ->name : string, Symbol(name, Decl(declFileWithExtendsClauseThatHasItsContainerNameConflict.ts, 14, 51)) +>name : string } } diff --git a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.symbols b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.symbols new file mode 100644 index 0000000000000..15e9c6c6e852e --- /dev/null +++ b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/declFileWithInternalModuleNameConflictsInExtendsClause1.ts === + +module X.A.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 4, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 11)) + + export interface Z { +>Z : Symbol(Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 14)) + } +} +module X.A.B.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 4, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) +>B : Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 11)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 13)) + + module A { +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 16)) + } + export class W implements X.A.C.Z { // This needs to be refered as X.A.C.Z as A has conflict +>W : Symbol(W, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 7, 5)) +>X.A.C.Z : Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 14)) +>X.A.C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 11)) +>X.A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 4, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 11)) +>Z : Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 14)) + } +} diff --git a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.types b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.types index 52d0f7a800e16..f6fb6dae29777 100644 --- a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.types +++ b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause1.types @@ -1,31 +1,31 @@ === tests/cases/compiler/declFileWithInternalModuleNameConflictsInExtendsClause1.ts === module X.A.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 4, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) ->C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 11)) +>X : typeof X +>A : typeof A +>C : any export interface Z { ->Z : Z, Symbol(Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 14)) +>Z : Z } } module X.A.B.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 4, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) ->B : typeof B, Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 11)) ->C : typeof C, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 13)) +>X : typeof X +>A : typeof A +>B : typeof B +>C : typeof C module A { ->A : any, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 16)) +>A : any } export class W implements X.A.C.Z { // This needs to be refered as X.A.C.Z as A has conflict ->W : W, Symbol(W, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 7, 5)) ->X.A.C.Z : any, Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 14)) ->X.A.C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 11)) ->X.A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 4, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 5, 9)) ->C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 11)) ->Z : X.A.C.Z, Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause1.ts, 1, 14)) +>W : W +>X.A.C.Z : any +>X.A.C : any +>X.A : typeof A +>X : typeof X +>A : typeof A +>C : any +>Z : X.A.C.Z } } diff --git a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.symbols b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.symbols new file mode 100644 index 0000000000000..f0ce1ff2f97ff --- /dev/null +++ b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/declFileWithInternalModuleNameConflictsInExtendsClause2.ts === + +module X.A.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 11)) + + export interface Z { +>Z : Symbol(Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 14)) + } +} +module X.A.B.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) +>B : Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 11)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 13)) + + export class W implements A.C.Z { // This can refer to it as A.C.Z +>W : Symbol(W, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 16)) +>A.C.Z : Symbol(A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 14)) +>A.C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 11)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 11)) +>Z : Symbol(A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 14)) + } +} + +module X.A.B.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) +>B : Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 11)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 13)) + + module A { +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 16)) + } +} diff --git a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.types b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.types index 7be1b10fc7763..a59a69307439f 100644 --- a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.types +++ b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause2.types @@ -1,37 +1,37 @@ === tests/cases/compiler/declFileWithInternalModuleNameConflictsInExtendsClause2.ts === module X.A.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) ->C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 11)) +>X : typeof X +>A : typeof A +>C : any export interface Z { ->Z : Z, Symbol(Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 14)) +>Z : Z } } module X.A.B.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) ->B : typeof B, Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 11)) ->C : typeof C, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 13)) +>X : typeof X +>A : typeof A +>B : typeof B +>C : typeof C export class W implements A.C.Z { // This can refer to it as A.C.Z ->W : W, Symbol(W, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 16)) ->A.C.Z : any, Symbol(A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 14)) ->A.C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 11)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) ->C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 11)) ->Z : A.C.Z, Symbol(A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 14)) +>W : W +>A.C.Z : any +>A.C : any +>A : typeof A +>C : any +>Z : A.C.Z } } module X.A.B.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 9)) ->B : typeof B, Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 11)) ->C : typeof C, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 13)) +>X : typeof X +>A : typeof A +>B : typeof B +>C : typeof C module A { ->A : any, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause2.ts, 10, 16)) +>A : any } } diff --git a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.symbols b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.symbols new file mode 100644 index 0000000000000..6d2a63b86ca91 --- /dev/null +++ b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/declFileWithInternalModuleNameConflictsInExtendsClause3.ts === + +module X.A.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 11)) + + export interface Z { +>Z : Symbol(Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 14)) + } +} +module X.A.B.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) +>B : Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 11)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 13)) + + export class W implements X.A.C.Z { // This needs to be refered as X.A.C.Z as A has conflict +>W : Symbol(W, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 16)) +>X.A.C.Z : Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 14)) +>X.A.C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 11)) +>X.A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 11)) +>Z : Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 14)) + } +} + +module X.A.B.C { +>X : Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) +>B : Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 11)) +>C : Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 13)) + + export module A { +>A : Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 16)) + } +} diff --git a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.types b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.types index 4ed53167af8a3..f263cd96af81e 100644 --- a/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.types +++ b/tests/baselines/reference/declFileWithInternalModuleNameConflictsInExtendsClause3.types @@ -1,39 +1,39 @@ === tests/cases/compiler/declFileWithInternalModuleNameConflictsInExtendsClause3.ts === module X.A.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) ->C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 11)) +>X : typeof X +>A : typeof A +>C : any export interface Z { ->Z : Z, Symbol(Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 14)) +>Z : Z } } module X.A.B.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) ->B : typeof B, Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 11)) ->C : typeof C, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 13)) +>X : typeof X +>A : typeof A +>B : typeof B +>C : typeof C export class W implements X.A.C.Z { // This needs to be refered as X.A.C.Z as A has conflict ->W : W, Symbol(W, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 16)) ->X.A.C.Z : any, Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 14)) ->X.A.C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 11)) ->X.A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) ->C : any, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 11)) ->Z : X.A.C.Z, Symbol(X.A.C.Z, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 14)) +>W : W +>X.A.C.Z : any +>X.A.C : any +>X.A : typeof A +>X : typeof X +>A : typeof A +>C : any +>Z : X.A.C.Z } } module X.A.B.C { ->X : typeof X, Symbol(X, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 0, 0), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 4, 1), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 8, 1)) ->A : typeof A, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 1, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 9), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 9)) ->B : typeof B, Symbol(B, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 11), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 11)) ->C : typeof C, Symbol(C, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 5, 13), Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 13)) +>X : typeof X +>A : typeof A +>B : typeof B +>C : typeof C export module A { ->A : any, Symbol(A, Decl(declFileWithInternalModuleNameConflictsInExtendsClause3.ts, 10, 16)) +>A : any } } diff --git a/tests/baselines/reference/declInput3.symbols b/tests/baselines/reference/declInput3.symbols new file mode 100644 index 0000000000000..06f35db0164e3 --- /dev/null +++ b/tests/baselines/reference/declInput3.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/declInput3.ts === +interface bar2 { +>bar2 : Symbol(bar2, Decl(declInput3.ts, 0, 0)) + +} + +class bar { +>bar : Symbol(bar, Decl(declInput3.ts, 2, 1)) + + public f() { return ''; } +>f : Symbol(f, Decl(declInput3.ts, 4, 11)) + + public g() { return {a: null, b: undefined, c: void 4 }; } +>g : Symbol(g, Decl(declInput3.ts, 5, 27)) +>a : Symbol(a, Decl(declInput3.ts, 6, 23)) +>bar : Symbol(bar, Decl(declInput3.ts, 2, 1)) +>b : Symbol(b, Decl(declInput3.ts, 6, 36)) +>undefined : Symbol(undefined) +>c : Symbol(c, Decl(declInput3.ts, 6, 50)) + + public h(x = 4, y = null, z = '') { x++; } +>h : Symbol(h, Decl(declInput3.ts, 6, 65)) +>x : Symbol(x, Decl(declInput3.ts, 7, 11)) +>y : Symbol(y, Decl(declInput3.ts, 7, 17)) +>z : Symbol(z, Decl(declInput3.ts, 7, 27)) +>x : Symbol(x, Decl(declInput3.ts, 7, 11)) +} + diff --git a/tests/baselines/reference/declInput3.types b/tests/baselines/reference/declInput3.types index 360149749fed1..0dcbc6bd3cdad 100644 --- a/tests/baselines/reference/declInput3.types +++ b/tests/baselines/reference/declInput3.types @@ -1,38 +1,38 @@ === tests/cases/compiler/declInput3.ts === interface bar2 { ->bar2 : bar2, Symbol(bar2, Decl(declInput3.ts, 0, 0)) +>bar2 : bar2 } class bar { ->bar : bar, Symbol(bar, Decl(declInput3.ts, 2, 1)) +>bar : bar public f() { return ''; } ->f : () => string, Symbol(f, Decl(declInput3.ts, 4, 11)) +>f : () => string >'' : string public g() { return {a: null, b: undefined, c: void 4 }; } ->g : () => { a: bar; b: any; c: any; }, Symbol(g, Decl(declInput3.ts, 5, 27)) +>g : () => { a: bar; b: any; c: any; } >{a: null, b: undefined, c: void 4 } : { a: bar; b: undefined; c: undefined; } ->a : bar, Symbol(a, Decl(declInput3.ts, 6, 23)) +>a : bar >null : bar ->bar : bar, Symbol(bar, Decl(declInput3.ts, 2, 1)) +>bar : bar >null : null ->b : undefined, Symbol(b, Decl(declInput3.ts, 6, 36)) ->undefined : undefined, Symbol(undefined) ->c : undefined, Symbol(c, Decl(declInput3.ts, 6, 50)) +>b : undefined +>undefined : undefined +>c : undefined >void 4 : undefined >4 : number public h(x = 4, y = null, z = '') { x++; } ->h : (x?: number, y?: any, z?: string) => void, Symbol(h, Decl(declInput3.ts, 6, 65)) ->x : number, Symbol(x, Decl(declInput3.ts, 7, 11)) +>h : (x?: number, y?: any, z?: string) => void +>x : number >4 : number ->y : any, Symbol(y, Decl(declInput3.ts, 7, 17)) +>y : any >null : null ->z : string, Symbol(z, Decl(declInput3.ts, 7, 27)) +>z : string >'' : string >x++ : number ->x : number, Symbol(x, Decl(declInput3.ts, 7, 11)) +>x : number } diff --git a/tests/baselines/reference/declInput4.symbols b/tests/baselines/reference/declInput4.symbols new file mode 100644 index 0000000000000..01af5987a7d57 --- /dev/null +++ b/tests/baselines/reference/declInput4.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/declInput4.ts === +module M { +>M : Symbol(M, Decl(declInput4.ts, 0, 0)) + + class C { } +>C : Symbol(C, Decl(declInput4.ts, 0, 10)) + + export class E {} +>E : Symbol(E, Decl(declInput4.ts, 1, 15)) + + export interface I1 {} +>I1 : Symbol(I1, Decl(declInput4.ts, 2, 21)) + + interface I2 {} +>I2 : Symbol(I2, Decl(declInput4.ts, 3, 26)) + + export class D { +>D : Symbol(D, Decl(declInput4.ts, 4, 19)) + + public m1: number; +>m1 : Symbol(m1, Decl(declInput4.ts, 5, 20)) + + public m2: string; +>m2 : Symbol(m2, Decl(declInput4.ts, 6, 26)) + + public m23: E; +>m23 : Symbol(m23, Decl(declInput4.ts, 7, 26)) +>E : Symbol(E, Decl(declInput4.ts, 1, 15)) + + public m24: I1; +>m24 : Symbol(m24, Decl(declInput4.ts, 8, 22)) +>I1 : Symbol(I1, Decl(declInput4.ts, 2, 21)) + + public m232(): E { return null;} +>m232 : Symbol(m232, Decl(declInput4.ts, 9, 23)) +>E : Symbol(E, Decl(declInput4.ts, 1, 15)) + + public m242(): I1 { return null; } +>m242 : Symbol(m242, Decl(declInput4.ts, 10, 40)) +>I1 : Symbol(I1, Decl(declInput4.ts, 2, 21)) + + public m26(i:I1) {} +>m26 : Symbol(m26, Decl(declInput4.ts, 11, 42)) +>i : Symbol(i, Decl(declInput4.ts, 12, 19)) +>I1 : Symbol(I1, Decl(declInput4.ts, 2, 21)) + } +} diff --git a/tests/baselines/reference/declInput4.types b/tests/baselines/reference/declInput4.types index 689d340ec1e85..dd6915c162d62 100644 --- a/tests/baselines/reference/declInput4.types +++ b/tests/baselines/reference/declInput4.types @@ -1,49 +1,49 @@ === tests/cases/compiler/declInput4.ts === module M { ->M : typeof M, Symbol(M, Decl(declInput4.ts, 0, 0)) +>M : typeof M class C { } ->C : C, Symbol(C, Decl(declInput4.ts, 0, 10)) +>C : C export class E {} ->E : E, Symbol(E, Decl(declInput4.ts, 1, 15)) +>E : E export interface I1 {} ->I1 : I1, Symbol(I1, Decl(declInput4.ts, 2, 21)) +>I1 : I1 interface I2 {} ->I2 : I2, Symbol(I2, Decl(declInput4.ts, 3, 26)) +>I2 : I2 export class D { ->D : D, Symbol(D, Decl(declInput4.ts, 4, 19)) +>D : D public m1: number; ->m1 : number, Symbol(m1, Decl(declInput4.ts, 5, 20)) +>m1 : number public m2: string; ->m2 : string, Symbol(m2, Decl(declInput4.ts, 6, 26)) +>m2 : string public m23: E; ->m23 : E, Symbol(m23, Decl(declInput4.ts, 7, 26)) ->E : E, Symbol(E, Decl(declInput4.ts, 1, 15)) +>m23 : E +>E : E public m24: I1; ->m24 : I1, Symbol(m24, Decl(declInput4.ts, 8, 22)) ->I1 : I1, Symbol(I1, Decl(declInput4.ts, 2, 21)) +>m24 : I1 +>I1 : I1 public m232(): E { return null;} ->m232 : () => E, Symbol(m232, Decl(declInput4.ts, 9, 23)) ->E : E, Symbol(E, Decl(declInput4.ts, 1, 15)) +>m232 : () => E +>E : E >null : null public m242(): I1 { return null; } ->m242 : () => I1, Symbol(m242, Decl(declInput4.ts, 10, 40)) ->I1 : I1, Symbol(I1, Decl(declInput4.ts, 2, 21)) +>m242 : () => I1 +>I1 : I1 >null : null public m26(i:I1) {} ->m26 : (i: I1) => void, Symbol(m26, Decl(declInput4.ts, 11, 42)) ->i : I1, Symbol(i, Decl(declInput4.ts, 12, 19)) ->I1 : I1, Symbol(I1, Decl(declInput4.ts, 2, 21)) +>m26 : (i: I1) => void +>i : I1 +>I1 : I1 } } diff --git a/tests/baselines/reference/declarationEmitDefaultExport1.symbols b/tests/baselines/reference/declarationEmitDefaultExport1.symbols new file mode 100644 index 0000000000000..a90faac829c02 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/declarationEmitDefaultExport1.ts === +export default class C { +>C : Symbol(C, Decl(declarationEmitDefaultExport1.ts, 0, 0)) +} diff --git a/tests/baselines/reference/declarationEmitDefaultExport1.types b/tests/baselines/reference/declarationEmitDefaultExport1.types index 365ce31e1aa9f..41dd3547b6d66 100644 --- a/tests/baselines/reference/declarationEmitDefaultExport1.types +++ b/tests/baselines/reference/declarationEmitDefaultExport1.types @@ -1,4 +1,4 @@ === tests/cases/compiler/declarationEmitDefaultExport1.ts === export default class C { ->C : C, Symbol(C, Decl(declarationEmitDefaultExport1.ts, 0, 0)) +>C : C } diff --git a/tests/baselines/reference/declarationEmitDefaultExport2.symbols b/tests/baselines/reference/declarationEmitDefaultExport2.symbols new file mode 100644 index 0000000000000..b82e6cfb92376 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/declarationEmitDefaultExport2.ts === +export default class { +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/declarationEmitDefaultExport3.symbols b/tests/baselines/reference/declarationEmitDefaultExport3.symbols new file mode 100644 index 0000000000000..f69bbfcf0e725 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport3.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/declarationEmitDefaultExport3.ts === +export default function foo() { +>foo : Symbol(foo, Decl(declarationEmitDefaultExport3.ts, 0, 0)) + + return "" +} diff --git a/tests/baselines/reference/declarationEmitDefaultExport3.types b/tests/baselines/reference/declarationEmitDefaultExport3.types index b408feb8c349d..91ee71f61ac39 100644 --- a/tests/baselines/reference/declarationEmitDefaultExport3.types +++ b/tests/baselines/reference/declarationEmitDefaultExport3.types @@ -1,6 +1,6 @@ === tests/cases/compiler/declarationEmitDefaultExport3.ts === export default function foo() { ->foo : () => string, Symbol(foo, Decl(declarationEmitDefaultExport3.ts, 0, 0)) +>foo : () => string return "" >"" : string diff --git a/tests/baselines/reference/declarationEmitDefaultExport4.symbols b/tests/baselines/reference/declarationEmitDefaultExport4.symbols new file mode 100644 index 0000000000000..8043af36b7620 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport4.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/declarationEmitDefaultExport4.ts === +export default function () { +No type information for this code. return 1; +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/declarationEmitDefaultExport5.symbols b/tests/baselines/reference/declarationEmitDefaultExport5.symbols new file mode 100644 index 0000000000000..2ede4a5941a71 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport5.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/declarationEmitDefaultExport5.ts === +export default 1 + 2; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/declarationEmitDefaultExport6.symbols b/tests/baselines/reference/declarationEmitDefaultExport6.symbols new file mode 100644 index 0000000000000..fb52f276f9501 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport6.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/declarationEmitDefaultExport6.ts === +export class A {} +>A : Symbol(A, Decl(declarationEmitDefaultExport6.ts, 0, 0)) + +export default new A(); +>A : Symbol(A, Decl(declarationEmitDefaultExport6.ts, 0, 0)) + diff --git a/tests/baselines/reference/declarationEmitDefaultExport6.types b/tests/baselines/reference/declarationEmitDefaultExport6.types index b1fe25152e1ba..9c839edb1a9aa 100644 --- a/tests/baselines/reference/declarationEmitDefaultExport6.types +++ b/tests/baselines/reference/declarationEmitDefaultExport6.types @@ -1,8 +1,8 @@ === tests/cases/compiler/declarationEmitDefaultExport6.ts === export class A {} ->A : A, Symbol(A, Decl(declarationEmitDefaultExport6.ts, 0, 0)) +>A : A export default new A(); >new A() : A ->A : typeof A, Symbol(A, Decl(declarationEmitDefaultExport6.ts, 0, 0)) +>A : typeof A diff --git a/tests/baselines/reference/declarationEmitDefaultExport8.symbols b/tests/baselines/reference/declarationEmitDefaultExport8.symbols new file mode 100644 index 0000000000000..be886b5a289af --- /dev/null +++ b/tests/baselines/reference/declarationEmitDefaultExport8.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/declarationEmitDefaultExport8.ts === + +var _default = 1; +>_default : Symbol(_default, Decl(declarationEmitDefaultExport8.ts, 1, 3)) + +export {_default as d} +>_default : Symbol(d, Decl(declarationEmitDefaultExport8.ts, 2, 8)) +>d : Symbol(d, Decl(declarationEmitDefaultExport8.ts, 2, 8)) + +export default 1 + 2; + diff --git a/tests/baselines/reference/declarationEmitDefaultExport8.types b/tests/baselines/reference/declarationEmitDefaultExport8.types index aee0477cc125e..bd99ee14530e3 100644 --- a/tests/baselines/reference/declarationEmitDefaultExport8.types +++ b/tests/baselines/reference/declarationEmitDefaultExport8.types @@ -1,12 +1,12 @@ === tests/cases/compiler/declarationEmitDefaultExport8.ts === var _default = 1; ->_default : number, Symbol(_default, Decl(declarationEmitDefaultExport8.ts, 1, 3)) +>_default : number >1 : number export {_default as d} ->_default : number, Symbol(d, Decl(declarationEmitDefaultExport8.ts, 2, 8)) ->d : number, Symbol(d, Decl(declarationEmitDefaultExport8.ts, 2, 8)) +>_default : number +>d : number export default 1 + 2; >1 + 2 : number diff --git a/tests/baselines/reference/declarationEmitDestructuring1.symbols b/tests/baselines/reference/declarationEmitDestructuring1.symbols new file mode 100644 index 0000000000000..10920128eeefc --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuring1.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/declarationEmitDestructuring1.ts === +function foo([a, b, c]: [string, string, string]): void { } +>foo : Symbol(foo, Decl(declarationEmitDestructuring1.ts, 0, 0)) +>a : Symbol(a, Decl(declarationEmitDestructuring1.ts, 0, 14)) +>b : Symbol(b, Decl(declarationEmitDestructuring1.ts, 0, 16)) +>c : Symbol(c, Decl(declarationEmitDestructuring1.ts, 0, 19)) + +function far([a, [b], [[c]]]: [number, boolean[], string[][]]): void { } +>far : Symbol(far, Decl(declarationEmitDestructuring1.ts, 0, 59)) +>a : Symbol(a, Decl(declarationEmitDestructuring1.ts, 1, 14)) +>b : Symbol(b, Decl(declarationEmitDestructuring1.ts, 1, 18)) +>c : Symbol(c, Decl(declarationEmitDestructuring1.ts, 1, 24)) + +function bar({a1, b1, c1}: { a1: number, b1: boolean, c1: string }): void { } +>bar : Symbol(bar, Decl(declarationEmitDestructuring1.ts, 1, 72)) +>a1 : Symbol(a1, Decl(declarationEmitDestructuring1.ts, 2, 14)) +>b1 : Symbol(b1, Decl(declarationEmitDestructuring1.ts, 2, 17)) +>c1 : Symbol(c1, Decl(declarationEmitDestructuring1.ts, 2, 21)) +>a1 : Symbol(a1, Decl(declarationEmitDestructuring1.ts, 2, 28)) +>b1 : Symbol(b1, Decl(declarationEmitDestructuring1.ts, 2, 40)) +>c1 : Symbol(c1, Decl(declarationEmitDestructuring1.ts, 2, 53)) + +function baz({a2, b2: {b1, c1}}: { a2: number, b2: { b1: boolean, c1: string } }): void { } +>baz : Symbol(baz, Decl(declarationEmitDestructuring1.ts, 2, 77)) +>a2 : Symbol(a2, Decl(declarationEmitDestructuring1.ts, 3, 14)) +>b1 : Symbol(b1, Decl(declarationEmitDestructuring1.ts, 3, 23)) +>c1 : Symbol(c1, Decl(declarationEmitDestructuring1.ts, 3, 26)) +>a2 : Symbol(a2, Decl(declarationEmitDestructuring1.ts, 3, 34)) +>b2 : Symbol(b2, Decl(declarationEmitDestructuring1.ts, 3, 46)) +>b1 : Symbol(b1, Decl(declarationEmitDestructuring1.ts, 3, 52)) +>c1 : Symbol(c1, Decl(declarationEmitDestructuring1.ts, 3, 65)) + diff --git a/tests/baselines/reference/declarationEmitDestructuring1.types b/tests/baselines/reference/declarationEmitDestructuring1.types index a9a1cde7f63f3..abba67981d8b0 100644 --- a/tests/baselines/reference/declarationEmitDestructuring1.types +++ b/tests/baselines/reference/declarationEmitDestructuring1.types @@ -1,33 +1,33 @@ === tests/cases/compiler/declarationEmitDestructuring1.ts === function foo([a, b, c]: [string, string, string]): void { } ->foo : ([a, b, c]: [string, string, string]) => void, Symbol(foo, Decl(declarationEmitDestructuring1.ts, 0, 0)) ->a : string, Symbol(a, Decl(declarationEmitDestructuring1.ts, 0, 14)) ->b : string, Symbol(b, Decl(declarationEmitDestructuring1.ts, 0, 16)) ->c : string, Symbol(c, Decl(declarationEmitDestructuring1.ts, 0, 19)) +>foo : ([a, b, c]: [string, string, string]) => void +>a : string +>b : string +>c : string function far([a, [b], [[c]]]: [number, boolean[], string[][]]): void { } ->far : ([a, [b], [[c]]]: [number, boolean[], string[][]]) => void, Symbol(far, Decl(declarationEmitDestructuring1.ts, 0, 59)) ->a : number, Symbol(a, Decl(declarationEmitDestructuring1.ts, 1, 14)) ->b : boolean, Symbol(b, Decl(declarationEmitDestructuring1.ts, 1, 18)) ->c : string, Symbol(c, Decl(declarationEmitDestructuring1.ts, 1, 24)) +>far : ([a, [b], [[c]]]: [number, boolean[], string[][]]) => void +>a : number +>b : boolean +>c : string function bar({a1, b1, c1}: { a1: number, b1: boolean, c1: string }): void { } ->bar : ({a1, b1, c1}: { a1: number; b1: boolean; c1: string; }) => void, Symbol(bar, Decl(declarationEmitDestructuring1.ts, 1, 72)) ->a1 : number, Symbol(a1, Decl(declarationEmitDestructuring1.ts, 2, 14)) ->b1 : boolean, Symbol(b1, Decl(declarationEmitDestructuring1.ts, 2, 17)) ->c1 : string, Symbol(c1, Decl(declarationEmitDestructuring1.ts, 2, 21)) ->a1 : number, Symbol(a1, Decl(declarationEmitDestructuring1.ts, 2, 28)) ->b1 : boolean, Symbol(b1, Decl(declarationEmitDestructuring1.ts, 2, 40)) ->c1 : string, Symbol(c1, Decl(declarationEmitDestructuring1.ts, 2, 53)) +>bar : ({a1, b1, c1}: { a1: number; b1: boolean; c1: string; }) => void +>a1 : number +>b1 : boolean +>c1 : string +>a1 : number +>b1 : boolean +>c1 : string function baz({a2, b2: {b1, c1}}: { a2: number, b2: { b1: boolean, c1: string } }): void { } ->baz : ({a2, b2: {b1, c1}}: { a2: number; b2: { b1: boolean; c1: string; }; }) => void, Symbol(baz, Decl(declarationEmitDestructuring1.ts, 2, 77)) ->a2 : number, Symbol(a2, Decl(declarationEmitDestructuring1.ts, 3, 14)) +>baz : ({a2, b2: {b1, c1}}: { a2: number; b2: { b1: boolean; c1: string; }; }) => void +>a2 : number >b2 : any ->b1 : boolean, Symbol(b1, Decl(declarationEmitDestructuring1.ts, 3, 23)) ->c1 : string, Symbol(c1, Decl(declarationEmitDestructuring1.ts, 3, 26)) ->a2 : number, Symbol(a2, Decl(declarationEmitDestructuring1.ts, 3, 34)) ->b2 : { b1: boolean; c1: string; }, Symbol(b2, Decl(declarationEmitDestructuring1.ts, 3, 46)) ->b1 : boolean, Symbol(b1, Decl(declarationEmitDestructuring1.ts, 3, 52)) ->c1 : string, Symbol(c1, Decl(declarationEmitDestructuring1.ts, 3, 65)) +>b1 : boolean +>c1 : string +>a2 : number +>b2 : { b1: boolean; c1: string; } +>b1 : boolean +>c1 : string diff --git a/tests/baselines/reference/declarationEmitDestructuring2.symbols b/tests/baselines/reference/declarationEmitDestructuring2.symbols new file mode 100644 index 0000000000000..9cf35c1d86628 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuring2.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/declarationEmitDestructuring2.ts === +function f({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]} = { x: 10, y: [2, 4, 6, 8] }) { } +>f : Symbol(f, Decl(declarationEmitDestructuring2.ts, 0, 0)) +>x : Symbol(x, Decl(declarationEmitDestructuring2.ts, 0, 12)) +>a : Symbol(a, Decl(declarationEmitDestructuring2.ts, 0, 24)) +>b : Symbol(b, Decl(declarationEmitDestructuring2.ts, 0, 26)) +>c : Symbol(c, Decl(declarationEmitDestructuring2.ts, 0, 29)) +>d : Symbol(d, Decl(declarationEmitDestructuring2.ts, 0, 32)) +>x : Symbol(x, Decl(declarationEmitDestructuring2.ts, 0, 55)) +>y : Symbol(y, Decl(declarationEmitDestructuring2.ts, 0, 62)) + +function g([a, b, c, d] = [1, 2, 3, 4]) { } +>g : Symbol(g, Decl(declarationEmitDestructuring2.ts, 0, 85)) +>a : Symbol(a, Decl(declarationEmitDestructuring2.ts, 1, 12)) +>b : Symbol(b, Decl(declarationEmitDestructuring2.ts, 1, 14)) +>c : Symbol(c, Decl(declarationEmitDestructuring2.ts, 1, 17)) +>d : Symbol(d, Decl(declarationEmitDestructuring2.ts, 1, 20)) + +function h([a, [b], [[c]], {x = 10, y: [a, b, c], z: {a1, b1}}]){ } +>h : Symbol(h, Decl(declarationEmitDestructuring2.ts, 1, 43)) +>a : Symbol(a, Decl(declarationEmitDestructuring2.ts, 2, 12), Decl(declarationEmitDestructuring2.ts, 2, 40)) +>b : Symbol(b, Decl(declarationEmitDestructuring2.ts, 2, 16), Decl(declarationEmitDestructuring2.ts, 2, 42)) +>c : Symbol(c, Decl(declarationEmitDestructuring2.ts, 2, 22), Decl(declarationEmitDestructuring2.ts, 2, 45)) +>x : Symbol(x, Decl(declarationEmitDestructuring2.ts, 2, 28)) +>a : Symbol(a, Decl(declarationEmitDestructuring2.ts, 2, 12), Decl(declarationEmitDestructuring2.ts, 2, 40)) +>b : Symbol(b, Decl(declarationEmitDestructuring2.ts, 2, 16), Decl(declarationEmitDestructuring2.ts, 2, 42)) +>c : Symbol(c, Decl(declarationEmitDestructuring2.ts, 2, 22), Decl(declarationEmitDestructuring2.ts, 2, 45)) +>a1 : Symbol(a1, Decl(declarationEmitDestructuring2.ts, 2, 54)) +>b1 : Symbol(b1, Decl(declarationEmitDestructuring2.ts, 2, 57)) + +function h1([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]){ } +>h1 : Symbol(h1, Decl(declarationEmitDestructuring2.ts, 2, 67)) +>a : Symbol(a, Decl(declarationEmitDestructuring2.ts, 3, 13)) +>b : Symbol(b, Decl(declarationEmitDestructuring2.ts, 3, 17)) +>c : Symbol(c, Decl(declarationEmitDestructuring2.ts, 3, 23)) +>x : Symbol(x, Decl(declarationEmitDestructuring2.ts, 3, 29)) +>y : Symbol(y, Decl(declarationEmitDestructuring2.ts, 3, 36)) +>a1 : Symbol(a1, Decl(declarationEmitDestructuring2.ts, 3, 56)) +>b1 : Symbol(b1, Decl(declarationEmitDestructuring2.ts, 3, 59)) + diff --git a/tests/baselines/reference/declarationEmitDestructuring2.types b/tests/baselines/reference/declarationEmitDestructuring2.types index f1b1a79b2d12b..619ad13d08426 100644 --- a/tests/baselines/reference/declarationEmitDestructuring2.types +++ b/tests/baselines/reference/declarationEmitDestructuring2.types @@ -1,22 +1,22 @@ === tests/cases/compiler/declarationEmitDestructuring2.ts === function f({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]} = { x: 10, y: [2, 4, 6, 8] }) { } ->f : ({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]}?: { x: number; y: [number, number, number, number]; }) => void, Symbol(f, Decl(declarationEmitDestructuring2.ts, 0, 0)) ->x : number, Symbol(x, Decl(declarationEmitDestructuring2.ts, 0, 12)) +>f : ({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]}?: { x: number; y: [number, number, number, number]; }) => void +>x : number >10 : number >y : any ->a : number, Symbol(a, Decl(declarationEmitDestructuring2.ts, 0, 24)) ->b : number, Symbol(b, Decl(declarationEmitDestructuring2.ts, 0, 26)) ->c : number, Symbol(c, Decl(declarationEmitDestructuring2.ts, 0, 29)) ->d : number, Symbol(d, Decl(declarationEmitDestructuring2.ts, 0, 32)) +>a : number +>b : number +>c : number +>d : number >[1, 2, 3, 4] : [number, number, number, number] >1 : number >2 : number >3 : number >4 : number >{ x: 10, y: [2, 4, 6, 8] } : { x: number; y: [number, number, number, number]; } ->x : number, Symbol(x, Decl(declarationEmitDestructuring2.ts, 0, 55)) +>x : number >10 : number ->y : [number, number, number, number], Symbol(y, Decl(declarationEmitDestructuring2.ts, 0, 62)) +>y : [number, number, number, number] >[2, 4, 6, 8] : [number, number, number, number] >2 : number >4 : number @@ -24,11 +24,11 @@ function f({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]} = { x: 10, y: [2, 4, 6, 8] } >8 : number function g([a, b, c, d] = [1, 2, 3, 4]) { } ->g : ([a, b, c, d]?: [number, number, number, number]) => void, Symbol(g, Decl(declarationEmitDestructuring2.ts, 0, 85)) ->a : number, Symbol(a, Decl(declarationEmitDestructuring2.ts, 1, 12)) ->b : number, Symbol(b, Decl(declarationEmitDestructuring2.ts, 1, 14)) ->c : number, Symbol(c, Decl(declarationEmitDestructuring2.ts, 1, 17)) ->d : number, Symbol(d, Decl(declarationEmitDestructuring2.ts, 1, 20)) +>g : ([a, b, c, d]?: [number, number, number, number]) => void +>a : number +>b : number +>c : number +>d : number >[1, 2, 3, 4] : [number, number, number, number] >1 : number >2 : number @@ -36,33 +36,33 @@ function g([a, b, c, d] = [1, 2, 3, 4]) { } >4 : number function h([a, [b], [[c]], {x = 10, y: [a, b, c], z: {a1, b1}}]){ } ->h : ([a, [b], [[c]], {x = 10, y: [a, b, c], z: {a1, b1}}]: [any, [any], [[any]], { x?: number; y: [any, any, any]; z: { a1: any; b1: any; }; }]) => void, Symbol(h, Decl(declarationEmitDestructuring2.ts, 1, 43)) ->a : any, Symbol(a, Decl(declarationEmitDestructuring2.ts, 2, 12), Decl(declarationEmitDestructuring2.ts, 2, 40)) ->b : any, Symbol(b, Decl(declarationEmitDestructuring2.ts, 2, 16), Decl(declarationEmitDestructuring2.ts, 2, 42)) ->c : any, Symbol(c, Decl(declarationEmitDestructuring2.ts, 2, 22), Decl(declarationEmitDestructuring2.ts, 2, 45)) ->x : number, Symbol(x, Decl(declarationEmitDestructuring2.ts, 2, 28)) +>h : ([a, [b], [[c]], {x = 10, y: [a, b, c], z: {a1, b1}}]: [any, [any], [[any]], { x?: number; y: [any, any, any]; z: { a1: any; b1: any; }; }]) => void +>a : any +>b : any +>c : any +>x : number >10 : number >y : any ->a : any, Symbol(a, Decl(declarationEmitDestructuring2.ts, 2, 12), Decl(declarationEmitDestructuring2.ts, 2, 40)) ->b : any, Symbol(b, Decl(declarationEmitDestructuring2.ts, 2, 16), Decl(declarationEmitDestructuring2.ts, 2, 42)) ->c : any, Symbol(c, Decl(declarationEmitDestructuring2.ts, 2, 22), Decl(declarationEmitDestructuring2.ts, 2, 45)) +>a : any +>b : any +>c : any >z : any ->a1 : any, Symbol(a1, Decl(declarationEmitDestructuring2.ts, 2, 54)) ->b1 : any, Symbol(b1, Decl(declarationEmitDestructuring2.ts, 2, 57)) +>a1 : any +>b1 : any function h1([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]){ } ->h1 : ([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]: [any, [any], [[any]], { x?: number; y?: number[]; z: { a1: any; b1: any; }; }]) => void, Symbol(h1, Decl(declarationEmitDestructuring2.ts, 2, 67)) ->a : any, Symbol(a, Decl(declarationEmitDestructuring2.ts, 3, 13)) ->b : any, Symbol(b, Decl(declarationEmitDestructuring2.ts, 3, 17)) ->c : any, Symbol(c, Decl(declarationEmitDestructuring2.ts, 3, 23)) ->x : number, Symbol(x, Decl(declarationEmitDestructuring2.ts, 3, 29)) +>h1 : ([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]: [any, [any], [[any]], { x?: number; y?: number[]; z: { a1: any; b1: any; }; }]) => void +>a : any +>b : any +>c : any +>x : number >10 : number ->y : number[], Symbol(y, Decl(declarationEmitDestructuring2.ts, 3, 36)) +>y : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number >z : any ->a1 : any, Symbol(a1, Decl(declarationEmitDestructuring2.ts, 3, 56)) ->b1 : any, Symbol(b1, Decl(declarationEmitDestructuring2.ts, 3, 59)) +>a1 : any +>b1 : any diff --git a/tests/baselines/reference/declarationEmitDestructuring3.symbols b/tests/baselines/reference/declarationEmitDestructuring3.symbols new file mode 100644 index 0000000000000..76a1c6a003bd5 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuring3.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/declarationEmitDestructuring3.ts === +function bar([x, z, ...w]) { } +>bar : Symbol(bar, Decl(declarationEmitDestructuring3.ts, 0, 0)) +>x : Symbol(x, Decl(declarationEmitDestructuring3.ts, 0, 14)) +>z : Symbol(z, Decl(declarationEmitDestructuring3.ts, 0, 16)) +>w : Symbol(w, Decl(declarationEmitDestructuring3.ts, 0, 19)) + +function foo([x, ...y] = [1, "string", true]) { } +>foo : Symbol(foo, Decl(declarationEmitDestructuring3.ts, 0, 30)) +>x : Symbol(x, Decl(declarationEmitDestructuring3.ts, 1, 14)) +>y : Symbol(y, Decl(declarationEmitDestructuring3.ts, 1, 16)) + + diff --git a/tests/baselines/reference/declarationEmitDestructuring3.types b/tests/baselines/reference/declarationEmitDestructuring3.types index 12154864e1cb2..da9fc6d66061b 100644 --- a/tests/baselines/reference/declarationEmitDestructuring3.types +++ b/tests/baselines/reference/declarationEmitDestructuring3.types @@ -1,14 +1,14 @@ === tests/cases/compiler/declarationEmitDestructuring3.ts === function bar([x, z, ...w]) { } ->bar : ([x, z, ...w]: any[]) => void, Symbol(bar, Decl(declarationEmitDestructuring3.ts, 0, 0)) ->x : any, Symbol(x, Decl(declarationEmitDestructuring3.ts, 0, 14)) ->z : any, Symbol(z, Decl(declarationEmitDestructuring3.ts, 0, 16)) ->w : any[], Symbol(w, Decl(declarationEmitDestructuring3.ts, 0, 19)) +>bar : ([x, z, ...w]: any[]) => void +>x : any +>z : any +>w : any[] function foo([x, ...y] = [1, "string", true]) { } ->foo : ([x, ...y]?: (string | number | boolean)[]) => void, Symbol(foo, Decl(declarationEmitDestructuring3.ts, 0, 30)) ->x : string | number | boolean, Symbol(x, Decl(declarationEmitDestructuring3.ts, 1, 14)) ->y : (string | number | boolean)[], Symbol(y, Decl(declarationEmitDestructuring3.ts, 1, 16)) +>foo : ([x, ...y]?: (string | number | boolean)[]) => void +>x : string | number | boolean +>y : (string | number | boolean)[] >[1, "string", true] : (string | number | boolean)[] >1 : number >"string" : string diff --git a/tests/baselines/reference/declarationEmitDestructuring4.symbols b/tests/baselines/reference/declarationEmitDestructuring4.symbols new file mode 100644 index 0000000000000..9f2eb162b6fe2 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuring4.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/declarationEmitDestructuring4.ts === +// For an array binding pattern with empty elements, +// we will not make any modification and will emit +// the similar binding pattern users' have written +function baz([]) { } +>baz : Symbol(baz, Decl(declarationEmitDestructuring4.ts, 0, 0)) + +function baz1([] = [1,2,3]) { } +>baz1 : Symbol(baz1, Decl(declarationEmitDestructuring4.ts, 3, 20)) + +function baz2([[]] = [[1,2,3]]) { } +>baz2 : Symbol(baz2, Decl(declarationEmitDestructuring4.ts, 4, 31)) + +function baz3({}) { } +>baz3 : Symbol(baz3, Decl(declarationEmitDestructuring4.ts, 5, 35)) + +function baz4({} = { x: 10 }) { } +>baz4 : Symbol(baz4, Decl(declarationEmitDestructuring4.ts, 7, 21)) +>x : Symbol(x, Decl(declarationEmitDestructuring4.ts, 8, 20)) + + diff --git a/tests/baselines/reference/declarationEmitDestructuring4.types b/tests/baselines/reference/declarationEmitDestructuring4.types index eee5de105e485..9621d61e02bb0 100644 --- a/tests/baselines/reference/declarationEmitDestructuring4.types +++ b/tests/baselines/reference/declarationEmitDestructuring4.types @@ -3,17 +3,17 @@ // we will not make any modification and will emit // the similar binding pattern users' have written function baz([]) { } ->baz : ([]: any[]) => void, Symbol(baz, Decl(declarationEmitDestructuring4.ts, 0, 0)) +>baz : ([]: any[]) => void function baz1([] = [1,2,3]) { } ->baz1 : ([]?: number[]) => void, Symbol(baz1, Decl(declarationEmitDestructuring4.ts, 3, 20)) +>baz1 : ([]?: number[]) => void >[1,2,3] : number[] >1 : number >2 : number >3 : number function baz2([[]] = [[1,2,3]]) { } ->baz2 : ([[]]?: [number[]]) => void, Symbol(baz2, Decl(declarationEmitDestructuring4.ts, 4, 31)) +>baz2 : ([[]]?: [number[]]) => void >[[1,2,3]] : [number[]] >[1,2,3] : number[] >1 : number @@ -21,12 +21,12 @@ function baz2([[]] = [[1,2,3]]) { } >3 : number function baz3({}) { } ->baz3 : ({}: {}) => void, Symbol(baz3, Decl(declarationEmitDestructuring4.ts, 5, 35)) +>baz3 : ({}: {}) => void function baz4({} = { x: 10 }) { } ->baz4 : ({}?: { x: number; }) => void, Symbol(baz4, Decl(declarationEmitDestructuring4.ts, 7, 21)) +>baz4 : ({}?: { x: number; }) => void >{ x: 10 } : { x: number; } ->x : number, Symbol(x, Decl(declarationEmitDestructuring4.ts, 8, 20)) +>x : number >10 : number diff --git a/tests/baselines/reference/declarationEmitDestructuring5.symbols b/tests/baselines/reference/declarationEmitDestructuring5.symbols new file mode 100644 index 0000000000000..6e12358b80c38 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuring5.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/declarationEmitDestructuring5.ts === +function baz([, z, , ]) { } +>baz : Symbol(baz, Decl(declarationEmitDestructuring5.ts, 0, 0)) +>z : Symbol(z, Decl(declarationEmitDestructuring5.ts, 0, 15)) + +function foo([, b, ]: [any, any]): void { } +>foo : Symbol(foo, Decl(declarationEmitDestructuring5.ts, 0, 27)) +>b : Symbol(b, Decl(declarationEmitDestructuring5.ts, 1, 15)) + +function bar([z, , , ]) { } +>bar : Symbol(bar, Decl(declarationEmitDestructuring5.ts, 1, 43)) +>z : Symbol(z, Decl(declarationEmitDestructuring5.ts, 2, 14)) + +function bar1([z, , , ] = [1, 3, 4, 6, 7]) { } +>bar1 : Symbol(bar1, Decl(declarationEmitDestructuring5.ts, 2, 27)) +>z : Symbol(z, Decl(declarationEmitDestructuring5.ts, 3, 15)) + +function bar2([,,z, , , ]) { } +>bar2 : Symbol(bar2, Decl(declarationEmitDestructuring5.ts, 3, 46)) +>z : Symbol(z, Decl(declarationEmitDestructuring5.ts, 4, 17)) + diff --git a/tests/baselines/reference/declarationEmitDestructuring5.types b/tests/baselines/reference/declarationEmitDestructuring5.types index 4eaa732c21b59..f09b1ebf50cce 100644 --- a/tests/baselines/reference/declarationEmitDestructuring5.types +++ b/tests/baselines/reference/declarationEmitDestructuring5.types @@ -1,24 +1,24 @@ === tests/cases/compiler/declarationEmitDestructuring5.ts === function baz([, z, , ]) { } ->baz : ([, z, , ]: [any, any, any]) => void, Symbol(baz, Decl(declarationEmitDestructuring5.ts, 0, 0)) +>baz : ([, z, , ]: [any, any, any]) => void > : undefined ->z : any, Symbol(z, Decl(declarationEmitDestructuring5.ts, 0, 15)) +>z : any > : undefined function foo([, b, ]: [any, any]): void { } ->foo : ([, b, ]: [any, any]) => void, Symbol(foo, Decl(declarationEmitDestructuring5.ts, 0, 27)) +>foo : ([, b, ]: [any, any]) => void > : undefined ->b : any, Symbol(b, Decl(declarationEmitDestructuring5.ts, 1, 15)) +>b : any function bar([z, , , ]) { } ->bar : ([z, , , ]: [any, any, any]) => void, Symbol(bar, Decl(declarationEmitDestructuring5.ts, 1, 43)) ->z : any, Symbol(z, Decl(declarationEmitDestructuring5.ts, 2, 14)) +>bar : ([z, , , ]: [any, any, any]) => void +>z : any > : undefined > : undefined function bar1([z, , , ] = [1, 3, 4, 6, 7]) { } ->bar1 : ([z, , , ]?: [number, number, number, number, number]) => void, Symbol(bar1, Decl(declarationEmitDestructuring5.ts, 2, 27)) ->z : number, Symbol(z, Decl(declarationEmitDestructuring5.ts, 3, 15)) +>bar1 : ([z, , , ]?: [number, number, number, number, number]) => void +>z : number > : undefined > : undefined >[1, 3, 4, 6, 7] : [number, number, number, number, number] @@ -29,10 +29,10 @@ function bar1([z, , , ] = [1, 3, 4, 6, 7]) { } >7 : number function bar2([,,z, , , ]) { } ->bar2 : ([,,z, , , ]: [any, any, any, any, any]) => void, Symbol(bar2, Decl(declarationEmitDestructuring5.ts, 3, 46)) +>bar2 : ([,,z, , , ]: [any, any, any, any, any]) => void > : undefined > : undefined ->z : any, Symbol(z, Decl(declarationEmitDestructuring5.ts, 4, 17)) +>z : any > : undefined > : undefined diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.symbols b/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.symbols new file mode 100644 index 0000000000000..e9d80c89f6e39 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/declarationEmitDestructuringArrayPattern1.ts === + +var [] = [1, "hello"]; // Dont emit anything +var [x] = [1, "hello"]; // emit x: number +>x : Symbol(x, Decl(declarationEmitDestructuringArrayPattern1.ts, 2, 5)) + +var [x1, y1] = [1, "hello"]; // emit x1: number, y1: string +>x1 : Symbol(x1, Decl(declarationEmitDestructuringArrayPattern1.ts, 3, 5)) +>y1 : Symbol(y1, Decl(declarationEmitDestructuringArrayPattern1.ts, 3, 8)) + +var [, , z1] = [0, 1, 2]; // emit z1: number +>z1 : Symbol(z1, Decl(declarationEmitDestructuringArrayPattern1.ts, 4, 8)) + +var a = [1, "hello"]; +>a : Symbol(a, Decl(declarationEmitDestructuringArrayPattern1.ts, 6, 3)) + +var [x2] = a; // emit x2: number | string +>x2 : Symbol(x2, Decl(declarationEmitDestructuringArrayPattern1.ts, 7, 5)) +>a : Symbol(a, Decl(declarationEmitDestructuringArrayPattern1.ts, 6, 3)) + +var [x3, y3, z3] = a; // emit x3, y3, z3 +>x3 : Symbol(x3, Decl(declarationEmitDestructuringArrayPattern1.ts, 8, 5)) +>y3 : Symbol(y3, Decl(declarationEmitDestructuringArrayPattern1.ts, 8, 8)) +>z3 : Symbol(z3, Decl(declarationEmitDestructuringArrayPattern1.ts, 8, 12)) +>a : Symbol(a, Decl(declarationEmitDestructuringArrayPattern1.ts, 6, 3)) + diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.types b/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.types index 2abc0cb8859a0..0feeaf2db1ad0 100644 --- a/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.types +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern1.types @@ -6,14 +6,14 @@ var [] = [1, "hello"]; // Dont emit anything >"hello" : string var [x] = [1, "hello"]; // emit x: number ->x : number, Symbol(x, Decl(declarationEmitDestructuringArrayPattern1.ts, 2, 5)) +>x : number >[1, "hello"] : [number, string] >1 : number >"hello" : string var [x1, y1] = [1, "hello"]; // emit x1: number, y1: string ->x1 : number, Symbol(x1, Decl(declarationEmitDestructuringArrayPattern1.ts, 3, 5)) ->y1 : string, Symbol(y1, Decl(declarationEmitDestructuringArrayPattern1.ts, 3, 8)) +>x1 : number +>y1 : string >[1, "hello"] : [number, string] >1 : number >"hello" : string @@ -21,25 +21,25 @@ var [x1, y1] = [1, "hello"]; // emit x1: number, y1: string var [, , z1] = [0, 1, 2]; // emit z1: number > : undefined > : undefined ->z1 : number, Symbol(z1, Decl(declarationEmitDestructuringArrayPattern1.ts, 4, 8)) +>z1 : number >[0, 1, 2] : [number, number, number] >0 : number >1 : number >2 : number var a = [1, "hello"]; ->a : (string | number)[], Symbol(a, Decl(declarationEmitDestructuringArrayPattern1.ts, 6, 3)) +>a : (string | number)[] >[1, "hello"] : (string | number)[] >1 : number >"hello" : string var [x2] = a; // emit x2: number | string ->x2 : string | number, Symbol(x2, Decl(declarationEmitDestructuringArrayPattern1.ts, 7, 5)) ->a : (string | number)[], Symbol(a, Decl(declarationEmitDestructuringArrayPattern1.ts, 6, 3)) +>x2 : string | number +>a : (string | number)[] var [x3, y3, z3] = a; // emit x3, y3, z3 ->x3 : string | number, Symbol(x3, Decl(declarationEmitDestructuringArrayPattern1.ts, 8, 5)) ->y3 : string | number, Symbol(y3, Decl(declarationEmitDestructuringArrayPattern1.ts, 8, 8)) ->z3 : string | number, Symbol(z3, Decl(declarationEmitDestructuringArrayPattern1.ts, 8, 12)) ->a : (string | number)[], Symbol(a, Decl(declarationEmitDestructuringArrayPattern1.ts, 6, 3)) +>x3 : string | number +>y3 : string | number +>z3 : string | number +>a : (string | number)[] diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.symbols b/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.symbols new file mode 100644 index 0000000000000..9e0e48f89e8a3 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/declarationEmitDestructuringArrayPattern2.ts === +var [x10, [y10, [z10]]] = [1, ["hello", [true]]]; +>x10 : Symbol(x10, Decl(declarationEmitDestructuringArrayPattern2.ts, 0, 5)) +>y10 : Symbol(y10, Decl(declarationEmitDestructuringArrayPattern2.ts, 0, 11)) +>z10 : Symbol(z10, Decl(declarationEmitDestructuringArrayPattern2.ts, 0, 17)) + +var [x11 = 0, y11 = ""] = [1, "hello"]; +>x11 : Symbol(x11, Decl(declarationEmitDestructuringArrayPattern2.ts, 2, 5)) +>y11 : Symbol(y11, Decl(declarationEmitDestructuringArrayPattern2.ts, 2, 13)) + +var [a11, b11, c11] = []; +>a11 : Symbol(a11, Decl(declarationEmitDestructuringArrayPattern2.ts, 3, 5)) +>b11 : Symbol(b11, Decl(declarationEmitDestructuringArrayPattern2.ts, 3, 9)) +>c11 : Symbol(c11, Decl(declarationEmitDestructuringArrayPattern2.ts, 3, 14)) + +var [a2, [b2, { x12, y12: c2 }]=["abc", { x12: 10, y12: false }]] = [1, ["hello", { x12: 5, y12: true }]]; +>a2 : Symbol(a2, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 5)) +>b2 : Symbol(b2, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 10)) +>x12 : Symbol(x12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 15)) +>c2 : Symbol(c2, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 20)) +>x12 : Symbol(x12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 41)) +>y12 : Symbol(y12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 50)) +>x12 : Symbol(x12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 83)) +>y12 : Symbol(y12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 91)) + +var [x13, y13] = [1, "hello"]; +>x13 : Symbol(x13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 5)) +>y13 : Symbol(y13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 9)) + +var [a3, b3] = [[x13, y13], { x: x13, y: y13 }]; +>a3 : Symbol(a3, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 5)) +>b3 : Symbol(b3, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 8)) +>x13 : Symbol(x13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 5)) +>y13 : Symbol(y13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 9)) +>x : Symbol(x, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 29)) +>x13 : Symbol(x13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 5)) +>y : Symbol(y, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 37)) +>y13 : Symbol(y13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 9)) + diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.types b/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.types index de82df3e9ab55..9fce72751cf14 100644 --- a/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.types +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern2.types @@ -1,8 +1,8 @@ === tests/cases/compiler/declarationEmitDestructuringArrayPattern2.ts === var [x10, [y10, [z10]]] = [1, ["hello", [true]]]; ->x10 : number, Symbol(x10, Decl(declarationEmitDestructuringArrayPattern2.ts, 0, 5)) ->y10 : string, Symbol(y10, Decl(declarationEmitDestructuringArrayPattern2.ts, 0, 11)) ->z10 : boolean, Symbol(z10, Decl(declarationEmitDestructuringArrayPattern2.ts, 0, 17)) +>x10 : number +>y10 : string +>z10 : boolean >[1, ["hello", [true]]] : [number, [string, [boolean]]] >1 : number >["hello", [true]] : [string, [boolean]] @@ -11,60 +11,60 @@ var [x10, [y10, [z10]]] = [1, ["hello", [true]]]; >true : boolean var [x11 = 0, y11 = ""] = [1, "hello"]; ->x11 : number, Symbol(x11, Decl(declarationEmitDestructuringArrayPattern2.ts, 2, 5)) +>x11 : number >0 : number ->y11 : string, Symbol(y11, Decl(declarationEmitDestructuringArrayPattern2.ts, 2, 13)) +>y11 : string >"" : string >[1, "hello"] : [number, string] >1 : number >"hello" : string var [a11, b11, c11] = []; ->a11 : any, Symbol(a11, Decl(declarationEmitDestructuringArrayPattern2.ts, 3, 5)) ->b11 : any, Symbol(b11, Decl(declarationEmitDestructuringArrayPattern2.ts, 3, 9)) ->c11 : any, Symbol(c11, Decl(declarationEmitDestructuringArrayPattern2.ts, 3, 14)) +>a11 : any +>b11 : any +>c11 : any >[] : undefined[] var [a2, [b2, { x12, y12: c2 }]=["abc", { x12: 10, y12: false }]] = [1, ["hello", { x12: 5, y12: true }]]; ->a2 : number, Symbol(a2, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 5)) ->b2 : string, Symbol(b2, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 10)) ->x12 : number, Symbol(x12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 15)) +>a2 : number +>b2 : string +>x12 : number >y12 : any ->c2 : boolean, Symbol(c2, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 20)) +>c2 : boolean >["abc", { x12: 10, y12: false }] : [string, { x12: number; y12: boolean; }] >"abc" : string >{ x12: 10, y12: false } : { x12: number; y12: boolean; } ->x12 : number, Symbol(x12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 41)) +>x12 : number >10 : number ->y12 : boolean, Symbol(y12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 50)) +>y12 : boolean >false : boolean >[1, ["hello", { x12: 5, y12: true }]] : [number, [string, { x12: number; y12: boolean; }]] >1 : number >["hello", { x12: 5, y12: true }] : [string, { x12: number; y12: boolean; }] >"hello" : string >{ x12: 5, y12: true } : { x12: number; y12: boolean; } ->x12 : number, Symbol(x12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 83)) +>x12 : number >5 : number ->y12 : boolean, Symbol(y12, Decl(declarationEmitDestructuringArrayPattern2.ts, 5, 91)) +>y12 : boolean >true : boolean var [x13, y13] = [1, "hello"]; ->x13 : number, Symbol(x13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 5)) ->y13 : string, Symbol(y13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 9)) +>x13 : number +>y13 : string >[1, "hello"] : [number, string] >1 : number >"hello" : string var [a3, b3] = [[x13, y13], { x: x13, y: y13 }]; ->a3 : (string | number)[], Symbol(a3, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 5)) ->b3 : { x: number; y: string; }, Symbol(b3, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 8)) +>a3 : (string | number)[] +>b3 : { x: number; y: string; } >[[x13, y13], { x: x13, y: y13 }] : [(string | number)[], { x: number; y: string; }] >[x13, y13] : (string | number)[] ->x13 : number, Symbol(x13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 5)) ->y13 : string, Symbol(y13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 9)) +>x13 : number +>y13 : string >{ x: x13, y: y13 } : { x: number; y: string; } ->x : number, Symbol(x, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 29)) ->x13 : number, Symbol(x13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 5)) ->y : string, Symbol(y, Decl(declarationEmitDestructuringArrayPattern2.ts, 8, 37)) ->y13 : string, Symbol(y13, Decl(declarationEmitDestructuringArrayPattern2.ts, 7, 9)) +>x : number +>x13 : number +>y : string +>y13 : string diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.symbols b/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.symbols new file mode 100644 index 0000000000000..af0f758684e9c --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/declarationEmitDestructuringArrayPattern3.ts === +module M { +>M : Symbol(M, Decl(declarationEmitDestructuringArrayPattern3.ts, 0, 0)) + + export var [a, b] = [1, 2]; +>a : Symbol(a, Decl(declarationEmitDestructuringArrayPattern3.ts, 1, 16)) +>b : Symbol(b, Decl(declarationEmitDestructuringArrayPattern3.ts, 1, 18)) +} diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.types b/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.types index 9dec6cbae0379..406494aa13bea 100644 --- a/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.types +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern3.types @@ -1,10 +1,10 @@ === tests/cases/compiler/declarationEmitDestructuringArrayPattern3.ts === module M { ->M : typeof M, Symbol(M, Decl(declarationEmitDestructuringArrayPattern3.ts, 0, 0)) +>M : typeof M export var [a, b] = [1, 2]; ->a : number, Symbol(a, Decl(declarationEmitDestructuringArrayPattern3.ts, 1, 16)) ->b : number, Symbol(b, Decl(declarationEmitDestructuringArrayPattern3.ts, 1, 18)) +>a : number +>b : number >[1, 2] : [number, number] >1 : number >2 : number diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.symbols b/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.symbols new file mode 100644 index 0000000000000..b83f5a5d2d1c2 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/declarationEmitDestructuringArrayPattern4.ts === +var [...a5] = [1, 2, 3]; +>a5 : Symbol(a5, Decl(declarationEmitDestructuringArrayPattern4.ts, 0, 5)) + +var [x14, ...a6] = [1, 2, 3]; +>x14 : Symbol(x14, Decl(declarationEmitDestructuringArrayPattern4.ts, 1, 5)) +>a6 : Symbol(a6, Decl(declarationEmitDestructuringArrayPattern4.ts, 1, 9)) + +var [x15, y15, ...a7] = [1, 2, 3]; +>x15 : Symbol(x15, Decl(declarationEmitDestructuringArrayPattern4.ts, 2, 5)) +>y15 : Symbol(y15, Decl(declarationEmitDestructuringArrayPattern4.ts, 2, 9)) +>a7 : Symbol(a7, Decl(declarationEmitDestructuringArrayPattern4.ts, 2, 14)) + +var [x16, y16, z16, ...a8] = [1, 2, 3]; +>x16 : Symbol(x16, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 5)) +>y16 : Symbol(y16, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 9)) +>z16 : Symbol(z16, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 14)) +>a8 : Symbol(a8, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 19)) + +var [...a9] = [1, "hello", true]; +>a9 : Symbol(a9, Decl(declarationEmitDestructuringArrayPattern4.ts, 5, 5)) + +var [x17, ...a10] = [1, "hello", true]; +>x17 : Symbol(x17, Decl(declarationEmitDestructuringArrayPattern4.ts, 6, 5)) +>a10 : Symbol(a10, Decl(declarationEmitDestructuringArrayPattern4.ts, 6, 9)) + +var [x18, y18, ...a12] = [1, "hello", true]; +>x18 : Symbol(x18, Decl(declarationEmitDestructuringArrayPattern4.ts, 7, 5)) +>y18 : Symbol(y18, Decl(declarationEmitDestructuringArrayPattern4.ts, 7, 9)) +>a12 : Symbol(a12, Decl(declarationEmitDestructuringArrayPattern4.ts, 7, 14)) + +var [x19, y19, z19, ...a13] = [1, "hello", true]; +>x19 : Symbol(x19, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 5)) +>y19 : Symbol(y19, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 9)) +>z19 : Symbol(z19, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 14)) +>a13 : Symbol(a13, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 19)) + diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.types b/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.types index 5c7f818fc329e..2cc56abcb05b5 100644 --- a/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.types +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern4.types @@ -1,67 +1,67 @@ === tests/cases/compiler/declarationEmitDestructuringArrayPattern4.ts === var [...a5] = [1, 2, 3]; ->a5 : number[], Symbol(a5, Decl(declarationEmitDestructuringArrayPattern4.ts, 0, 5)) +>a5 : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number var [x14, ...a6] = [1, 2, 3]; ->x14 : number, Symbol(x14, Decl(declarationEmitDestructuringArrayPattern4.ts, 1, 5)) ->a6 : number[], Symbol(a6, Decl(declarationEmitDestructuringArrayPattern4.ts, 1, 9)) +>x14 : number +>a6 : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number var [x15, y15, ...a7] = [1, 2, 3]; ->x15 : number, Symbol(x15, Decl(declarationEmitDestructuringArrayPattern4.ts, 2, 5)) ->y15 : number, Symbol(y15, Decl(declarationEmitDestructuringArrayPattern4.ts, 2, 9)) ->a7 : number[], Symbol(a7, Decl(declarationEmitDestructuringArrayPattern4.ts, 2, 14)) +>x15 : number +>y15 : number +>a7 : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number var [x16, y16, z16, ...a8] = [1, 2, 3]; ->x16 : number, Symbol(x16, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 5)) ->y16 : number, Symbol(y16, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 9)) ->z16 : number, Symbol(z16, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 14)) ->a8 : number[], Symbol(a8, Decl(declarationEmitDestructuringArrayPattern4.ts, 3, 19)) +>x16 : number +>y16 : number +>z16 : number +>a8 : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number var [...a9] = [1, "hello", true]; ->a9 : (string | number | boolean)[], Symbol(a9, Decl(declarationEmitDestructuringArrayPattern4.ts, 5, 5)) +>a9 : (string | number | boolean)[] >[1, "hello", true] : (string | number | boolean)[] >1 : number >"hello" : string >true : boolean var [x17, ...a10] = [1, "hello", true]; ->x17 : string | number | boolean, Symbol(x17, Decl(declarationEmitDestructuringArrayPattern4.ts, 6, 5)) ->a10 : (string | number | boolean)[], Symbol(a10, Decl(declarationEmitDestructuringArrayPattern4.ts, 6, 9)) +>x17 : string | number | boolean +>a10 : (string | number | boolean)[] >[1, "hello", true] : (string | number | boolean)[] >1 : number >"hello" : string >true : boolean var [x18, y18, ...a12] = [1, "hello", true]; ->x18 : string | number | boolean, Symbol(x18, Decl(declarationEmitDestructuringArrayPattern4.ts, 7, 5)) ->y18 : string | number | boolean, Symbol(y18, Decl(declarationEmitDestructuringArrayPattern4.ts, 7, 9)) ->a12 : (string | number | boolean)[], Symbol(a12, Decl(declarationEmitDestructuringArrayPattern4.ts, 7, 14)) +>x18 : string | number | boolean +>y18 : string | number | boolean +>a12 : (string | number | boolean)[] >[1, "hello", true] : (string | number | boolean)[] >1 : number >"hello" : string >true : boolean var [x19, y19, z19, ...a13] = [1, "hello", true]; ->x19 : string | number | boolean, Symbol(x19, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 5)) ->y19 : string | number | boolean, Symbol(y19, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 9)) ->z19 : string | number | boolean, Symbol(z19, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 14)) ->a13 : (string | number | boolean)[], Symbol(a13, Decl(declarationEmitDestructuringArrayPattern4.ts, 8, 19)) +>x19 : string | number | boolean +>y19 : string | number | boolean +>z19 : string | number | boolean +>a13 : (string | number | boolean)[] >[1, "hello", true] : (string | number | boolean)[] >1 : number >"hello" : string diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.symbols b/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.symbols new file mode 100644 index 0000000000000..d30aab7832c61 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/declarationEmitDestructuringArrayPattern5.ts === +var [, , z] = [1, 2, 4]; +>z : Symbol(z, Decl(declarationEmitDestructuringArrayPattern5.ts, 0, 8)) + +var [, a, , ] = [3, 4, 5]; +>a : Symbol(a, Decl(declarationEmitDestructuringArrayPattern5.ts, 1, 6)) + +var [, , [, b, ]] = [3,5,[0, 1]]; +>b : Symbol(b, Decl(declarationEmitDestructuringArrayPattern5.ts, 2, 11)) + diff --git a/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.types b/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.types index 9ac3a6d70d199..fa5720f4da73c 100644 --- a/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.types +++ b/tests/baselines/reference/declarationEmitDestructuringArrayPattern5.types @@ -2,7 +2,7 @@ var [, , z] = [1, 2, 4]; > : undefined > : undefined ->z : number, Symbol(z, Decl(declarationEmitDestructuringArrayPattern5.ts, 0, 8)) +>z : number >[1, 2, 4] : [number, number, number] >1 : number >2 : number @@ -10,7 +10,7 @@ var [, , z] = [1, 2, 4]; var [, a, , ] = [3, 4, 5]; > : undefined ->a : number, Symbol(a, Decl(declarationEmitDestructuringArrayPattern5.ts, 1, 6)) +>a : number > : undefined >[3, 4, 5] : [number, number, number] >3 : number @@ -21,7 +21,7 @@ var [, , [, b, ]] = [3,5,[0, 1]]; > : undefined > : undefined > : undefined ->b : number, Symbol(b, Decl(declarationEmitDestructuringArrayPattern5.ts, 2, 11)) +>b : number >[3,5,[0, 1]] : [number, number, [number, number]] >3 : number >5 : number diff --git a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.symbols b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.symbols new file mode 100644 index 0000000000000..3cb4ef28c2bbd --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.symbols @@ -0,0 +1,80 @@ +=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern.ts === + +var { } = { x: 5, y: "hello" }; +>x : Symbol(x, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 1, 11)) +>y : Symbol(y, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 1, 17)) + +var { x4 } = { x4: 5, y4: "hello" }; +>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 5)) +>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 14)) +>y4 : Symbol(y4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 21)) + +var { y5 } = { x5: 5, y5: "hello" }; +>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 5)) +>x5 : Symbol(x5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 14)) +>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 21)) + +var { x6, y6 } = { x6: 5, y6: "hello" }; +>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 5)) +>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 9)) +>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 18)) +>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 25)) + +var { x7: a1 } = { x7: 5, y7: "hello" }; +>a1 : Symbol(a1, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 5)) +>x7 : Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 18)) +>y7 : Symbol(y7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 25)) + +var { y8: b1 } = { x8: 5, y8: "hello" }; +>b1 : Symbol(b1, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 5)) +>x8 : Symbol(x8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 18)) +>y8 : Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 25)) + +var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" }; +>a2 : Symbol(a2, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 5)) +>b2 : Symbol(b2, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 13)) +>x9 : Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 26)) +>y9 : Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 33)) + +var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } }; +>x11 : Symbol(x11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 5)) +>y11 : Symbol(y11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 18)) +>z11 : Symbol(z11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 31)) +>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 46)) +>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 52)) +>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 57)) +>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 69)) +>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 74)) + +function f15() { +>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89)) + + var a4 = "hello"; +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 12, 7)) + + var b4 = 1; +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 13, 7)) + + var c4 = true; +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 14, 7)) + + return { a4, b4, c4 }; +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 12)) +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 16)) +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 20)) +} +var { a4, b4, c4 } = f15(); +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 5)) +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 9)) +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 13)) +>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89)) + +module m { +>m : Symbol(m, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 27)) + + export var { a4, b4, c4 } = f15(); +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 16)) +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 20)) +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 24)) +>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89)) +} diff --git a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.types b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.types index 5292450a68c25..0911a27838bb2 100644 --- a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.types +++ b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern.types @@ -2,121 +2,121 @@ var { } = { x: 5, y: "hello" }; >{ x: 5, y: "hello" } : { x: number; y: string; } ->x : number, Symbol(x, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 1, 11)) +>x : number >5 : number ->y : string, Symbol(y, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 1, 17)) +>y : string >"hello" : string var { x4 } = { x4: 5, y4: "hello" }; ->x4 : number, Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 5)) +>x4 : number >{ x4: 5, y4: "hello" } : { x4: number; y4: string; } ->x4 : number, Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 14)) +>x4 : number >5 : number ->y4 : string, Symbol(y4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 2, 21)) +>y4 : string >"hello" : string var { y5 } = { x5: 5, y5: "hello" }; ->y5 : string, Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 5)) +>y5 : string >{ x5: 5, y5: "hello" } : { x5: number; y5: string; } ->x5 : number, Symbol(x5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 14)) +>x5 : number >5 : number ->y5 : string, Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 3, 21)) +>y5 : string >"hello" : string var { x6, y6 } = { x6: 5, y6: "hello" }; ->x6 : number, Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 5)) ->y6 : string, Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 9)) +>x6 : number +>y6 : string >{ x6: 5, y6: "hello" } : { x6: number; y6: string; } ->x6 : number, Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 18)) +>x6 : number >5 : number ->y6 : string, Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 4, 25)) +>y6 : string >"hello" : string var { x7: a1 } = { x7: 5, y7: "hello" }; >x7 : any ->a1 : number, Symbol(a1, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 5)) +>a1 : number >{ x7: 5, y7: "hello" } : { x7: number; y7: string; } ->x7 : number, Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 18)) +>x7 : number >5 : number ->y7 : string, Symbol(y7, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 5, 25)) +>y7 : string >"hello" : string var { y8: b1 } = { x8: 5, y8: "hello" }; >y8 : any ->b1 : string, Symbol(b1, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 5)) +>b1 : string >{ x8: 5, y8: "hello" } : { x8: number; y8: string; } ->x8 : number, Symbol(x8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 18)) +>x8 : number >5 : number ->y8 : string, Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 6, 25)) +>y8 : string >"hello" : string var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" }; >x9 : any ->a2 : number, Symbol(a2, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 5)) +>a2 : number >y9 : any ->b2 : string, Symbol(b2, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 13)) +>b2 : string >{ x9: 5, y9: "hello" } : { x9: number; y9: string; } ->x9 : number, Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 26)) +>x9 : number >5 : number ->y9 : string, Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 7, 33)) +>y9 : string >"hello" : string var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } }; >a : any ->x11 : number, Symbol(x11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 5)) +>x11 : number >b : any >a : any ->y11 : string, Symbol(y11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 18)) +>y11 : string >b : any >a : any ->z11 : boolean, Symbol(z11, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 31)) +>z11 : boolean >{ a: 1, b: { a: "hello", b: { a: true } } } : { a: number; b: { a: string; b: { a: boolean; }; }; } ->a : number, Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 46)) +>a : number >1 : number ->b : { a: string; b: { a: boolean; }; }, Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 52)) +>b : { a: string; b: { a: boolean; }; } >{ a: "hello", b: { a: true } } : { a: string; b: { a: boolean; }; } ->a : string, Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 57)) +>a : string >"hello" : string ->b : { a: boolean; }, Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 69)) +>b : { a: boolean; } >{ a: true } : { a: boolean; } ->a : boolean, Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 74)) +>a : boolean >true : boolean function f15() { ->f15 : () => { a4: string; b4: number; c4: boolean; }, Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89)) +>f15 : () => { a4: string; b4: number; c4: boolean; } var a4 = "hello"; ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 12, 7)) +>a4 : string >"hello" : string var b4 = 1; ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 13, 7)) +>b4 : number >1 : number var c4 = true; ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 14, 7)) +>c4 : boolean >true : boolean return { a4, b4, c4 }; >{ a4, b4, c4 } : { a4: string; b4: number; c4: boolean; } ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 12)) ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 16)) ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 15, 20)) +>a4 : string +>b4 : number +>c4 : boolean } var { a4, b4, c4 } = f15(); ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 5)) ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 9)) ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 13)) +>a4 : string +>b4 : number +>c4 : boolean >f15() : { a4: string; b4: number; c4: boolean; } ->f15 : () => { a4: string; b4: number; c4: boolean; }, Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89)) +>f15 : () => { a4: string; b4: number; c4: boolean; } module m { ->m : typeof m, Symbol(m, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 17, 27)) +>m : typeof m export var { a4, b4, c4 } = f15(); ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 16)) ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 20)) ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 20, 24)) +>a4 : string +>b4 : number +>c4 : boolean >f15() : { a4: string; b4: number; c4: boolean; } ->f15 : () => { a4: string; b4: number; c4: boolean; }, Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern.ts, 9, 89)) +>f15 : () => { a4: string; b4: number; c4: boolean; } } diff --git a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.symbols b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.symbols new file mode 100644 index 0000000000000..a4c43a07bc85e --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern1.ts === + +var { } = { x: 5, y: "hello" }; +>x : Symbol(x, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 1, 11)) +>y : Symbol(y, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 1, 17)) + +var { x4 } = { x4: 5, y4: "hello" }; +>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 5)) +>x4 : Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 14)) +>y4 : Symbol(y4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 21)) + +var { y5 } = { x5: 5, y5: "hello" }; +>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 5)) +>x5 : Symbol(x5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 14)) +>y5 : Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 21)) + +var { x6, y6 } = { x6: 5, y6: "hello" }; +>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 5)) +>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 9)) +>x6 : Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 18)) +>y6 : Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 25)) + +var { x7: a1 } = { x7: 5, y7: "hello" }; +>a1 : Symbol(a1, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 5)) +>x7 : Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 18)) +>y7 : Symbol(y7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 25)) + +var { y8: b1 } = { x8: 5, y8: "hello" }; +>b1 : Symbol(b1, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 5)) +>x8 : Symbol(x8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 18)) +>y8 : Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 25)) + +var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" }; +>a2 : Symbol(a2, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 5)) +>b2 : Symbol(b2, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 13)) +>x9 : Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 26)) +>y9 : Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 33)) + diff --git a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.types b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.types index f5416b7e3b5e6..5411f36fa9af8 100644 --- a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.types +++ b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern1.types @@ -2,62 +2,62 @@ var { } = { x: 5, y: "hello" }; >{ x: 5, y: "hello" } : { x: number; y: string; } ->x : number, Symbol(x, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 1, 11)) +>x : number >5 : number ->y : string, Symbol(y, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 1, 17)) +>y : string >"hello" : string var { x4 } = { x4: 5, y4: "hello" }; ->x4 : number, Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 5)) +>x4 : number >{ x4: 5, y4: "hello" } : { x4: number; y4: string; } ->x4 : number, Symbol(x4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 14)) +>x4 : number >5 : number ->y4 : string, Symbol(y4, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 2, 21)) +>y4 : string >"hello" : string var { y5 } = { x5: 5, y5: "hello" }; ->y5 : string, Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 5)) +>y5 : string >{ x5: 5, y5: "hello" } : { x5: number; y5: string; } ->x5 : number, Symbol(x5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 14)) +>x5 : number >5 : number ->y5 : string, Symbol(y5, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 3, 21)) +>y5 : string >"hello" : string var { x6, y6 } = { x6: 5, y6: "hello" }; ->x6 : number, Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 5)) ->y6 : string, Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 9)) +>x6 : number +>y6 : string >{ x6: 5, y6: "hello" } : { x6: number; y6: string; } ->x6 : number, Symbol(x6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 18)) +>x6 : number >5 : number ->y6 : string, Symbol(y6, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 4, 25)) +>y6 : string >"hello" : string var { x7: a1 } = { x7: 5, y7: "hello" }; >x7 : any ->a1 : number, Symbol(a1, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 5)) +>a1 : number >{ x7: 5, y7: "hello" } : { x7: number; y7: string; } ->x7 : number, Symbol(x7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 18)) +>x7 : number >5 : number ->y7 : string, Symbol(y7, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 5, 25)) +>y7 : string >"hello" : string var { y8: b1 } = { x8: 5, y8: "hello" }; >y8 : any ->b1 : string, Symbol(b1, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 5)) +>b1 : string >{ x8: 5, y8: "hello" } : { x8: number; y8: string; } ->x8 : number, Symbol(x8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 18)) +>x8 : number >5 : number ->y8 : string, Symbol(y8, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 6, 25)) +>y8 : string >"hello" : string var { x9: a2, y9: b2 } = { x9: 5, y9: "hello" }; >x9 : any ->a2 : number, Symbol(a2, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 5)) +>a2 : number >y9 : any ->b2 : string, Symbol(b2, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 13)) +>b2 : string >{ x9: 5, y9: "hello" } : { x9: number; y9: string; } ->x9 : number, Symbol(x9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 26)) +>x9 : number >5 : number ->y9 : string, Symbol(y9, Decl(declarationEmitDestructuringObjectLiteralPattern1.ts, 7, 33)) +>y9 : string >"hello" : string diff --git a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.symbols b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.symbols new file mode 100644 index 0000000000000..76440b600382d --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/declarationEmitDestructuringObjectLiteralPattern2.ts === + +var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } }; +>x11 : Symbol(x11, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 5)) +>y11 : Symbol(y11, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 18)) +>z11 : Symbol(z11, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 31)) +>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 46)) +>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 52)) +>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 57)) +>b : Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 69)) +>a : Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 74)) + +function f15() { +>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 89)) + + var a4 = "hello"; +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 4, 7)) + + var b4 = 1; +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 5, 7)) + + var c4 = true; +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 6, 7)) + + return { a4, b4, c4 }; +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 7, 12)) +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 7, 16)) +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 7, 20)) +} +var { a4, b4, c4 } = f15(); +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 5)) +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 9)) +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 13)) +>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 89)) + +module m { +>m : Symbol(m, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 27)) + + export var { a4, b4, c4 } = f15(); +>a4 : Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 12, 16)) +>b4 : Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 12, 20)) +>c4 : Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 12, 24)) +>f15 : Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 89)) +} diff --git a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.types b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.types index ebbce8ecf0dfc..49d4e2e837cbd 100644 --- a/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.types +++ b/tests/baselines/reference/declarationEmitDestructuringObjectLiteralPattern2.types @@ -2,60 +2,60 @@ var { a: x11, b: { a: y11, b: { a: z11 }}} = { a: 1, b: { a: "hello", b: { a: true } } }; >a : any ->x11 : number, Symbol(x11, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 5)) +>x11 : number >b : any >a : any ->y11 : string, Symbol(y11, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 18)) +>y11 : string >b : any >a : any ->z11 : boolean, Symbol(z11, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 31)) +>z11 : boolean >{ a: 1, b: { a: "hello", b: { a: true } } } : { a: number; b: { a: string; b: { a: boolean; }; }; } ->a : number, Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 46)) +>a : number >1 : number ->b : { a: string; b: { a: boolean; }; }, Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 52)) +>b : { a: string; b: { a: boolean; }; } >{ a: "hello", b: { a: true } } : { a: string; b: { a: boolean; }; } ->a : string, Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 57)) +>a : string >"hello" : string ->b : { a: boolean; }, Symbol(b, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 69)) +>b : { a: boolean; } >{ a: true } : { a: boolean; } ->a : boolean, Symbol(a, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 74)) +>a : boolean >true : boolean function f15() { ->f15 : () => { a4: string; b4: number; c4: boolean; }, Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 89)) +>f15 : () => { a4: string; b4: number; c4: boolean; } var a4 = "hello"; ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 4, 7)) +>a4 : string >"hello" : string var b4 = 1; ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 5, 7)) +>b4 : number >1 : number var c4 = true; ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 6, 7)) +>c4 : boolean >true : boolean return { a4, b4, c4 }; >{ a4, b4, c4 } : { a4: string; b4: number; c4: boolean; } ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 7, 12)) ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 7, 16)) ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 7, 20)) +>a4 : string +>b4 : number +>c4 : boolean } var { a4, b4, c4 } = f15(); ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 5)) ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 9)) ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 13)) +>a4 : string +>b4 : number +>c4 : boolean >f15() : { a4: string; b4: number; c4: boolean; } ->f15 : () => { a4: string; b4: number; c4: boolean; }, Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 89)) +>f15 : () => { a4: string; b4: number; c4: boolean; } module m { ->m : typeof m, Symbol(m, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 9, 27)) +>m : typeof m export var { a4, b4, c4 } = f15(); ->a4 : string, Symbol(a4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 12, 16)) ->b4 : number, Symbol(b4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 12, 20)) ->c4 : boolean, Symbol(c4, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 12, 24)) +>a4 : string +>b4 : number +>c4 : boolean >f15() : { a4: string; b4: number; c4: boolean; } ->f15 : () => { a4: string; b4: number; c4: boolean; }, Symbol(f15, Decl(declarationEmitDestructuringObjectLiteralPattern2.ts, 1, 89)) +>f15 : () => { a4: string; b4: number; c4: boolean; } } diff --git a/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.symbols b/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.symbols new file mode 100644 index 0000000000000..fbe26452476c6 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/declarationEmitDestructuringOptionalBindingParametersInOverloads.ts === + +function foo([x, y, z] ?: [string, number, boolean]); +>foo : Symbol(foo, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 0, 0), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 53)) +>x : Symbol(x, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 14)) +>y : Symbol(y, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 16)) +>z : Symbol(z, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 19)) + +function foo(...rest: any[]) { +>foo : Symbol(foo, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 0, 0), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 53)) +>rest : Symbol(rest, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 2, 13)) +} + +function foo2( { x, y, z }?: { x: string; y: number; z: boolean }); +>foo2 : Symbol(foo2, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 3, 1), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 67)) +>x : Symbol(x, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 16)) +>y : Symbol(y, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 19)) +>z : Symbol(z, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 22)) +>x : Symbol(x, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 30)) +>y : Symbol(y, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 41)) +>z : Symbol(z, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 52)) + +function foo2(...rest: any[]) { +>foo2 : Symbol(foo2, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 3, 1), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 67)) +>rest : Symbol(rest, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 6, 14)) + +} diff --git a/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types b/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types index 3b406afebe0f6..1c75466f0c37c 100644 --- a/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types +++ b/tests/baselines/reference/declarationEmitDestructuringOptionalBindingParametersInOverloads.types @@ -1,27 +1,27 @@ === tests/cases/compiler/declarationEmitDestructuringOptionalBindingParametersInOverloads.ts === function foo([x, y, z] ?: [string, number, boolean]); ->foo : ([x, y, z]?: [string, number, boolean]) => any, Symbol(foo, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 0, 0), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 53)) ->x : string, Symbol(x, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 14)) ->y : number, Symbol(y, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 16)) ->z : boolean, Symbol(z, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 19)) +>foo : ([x, y, z]?: [string, number, boolean]) => any +>x : string +>y : number +>z : boolean function foo(...rest: any[]) { ->foo : ([x, y, z]?: [string, number, boolean]) => any, Symbol(foo, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 0, 0), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 1, 53)) ->rest : any[], Symbol(rest, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 2, 13)) +>foo : ([x, y, z]?: [string, number, boolean]) => any +>rest : any[] } function foo2( { x, y, z }?: { x: string; y: number; z: boolean }); ->foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any, Symbol(foo2, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 3, 1), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 67)) ->x : string, Symbol(x, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 16)) ->y : number, Symbol(y, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 19)) ->z : boolean, Symbol(z, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 22)) ->x : string, Symbol(x, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 30)) ->y : number, Symbol(y, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 41)) ->z : boolean, Symbol(z, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 52)) +>foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any +>x : string +>y : number +>z : boolean +>x : string +>y : number +>z : boolean function foo2(...rest: any[]) { ->foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any, Symbol(foo2, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 3, 1), Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 5, 67)) ->rest : any[], Symbol(rest, Decl(declarationEmitDestructuringOptionalBindingParametersInOverloads.ts, 6, 14)) +>foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any +>rest : any[] } diff --git a/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.symbols b/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.symbols new file mode 100644 index 0000000000000..c4c92d547f30a --- /dev/null +++ b/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/declarationEmitImportInExportAssignmentModule.ts === + +module m { +>m : Symbol(m, Decl(declarationEmitImportInExportAssignmentModule.ts, 0, 0)) + + export module c { +>c : Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 1, 10)) + + export class c { +>c : Symbol(c, Decl(declarationEmitImportInExportAssignmentModule.ts, 2, 21)) + } + } + import x = c; +>x : Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 5, 5)) +>c : Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 1, 10)) + + export var a: typeof x; +>a : Symbol(a, Decl(declarationEmitImportInExportAssignmentModule.ts, 7, 14)) +>x : Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 5, 5)) +} +export = m; +>m : Symbol(m, Decl(declarationEmitImportInExportAssignmentModule.ts, 0, 0)) + diff --git a/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.types b/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.types index 1efbbd8108cc5..23176a0abe2e1 100644 --- a/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.types +++ b/tests/baselines/reference/declarationEmitImportInExportAssignmentModule.types @@ -1,23 +1,23 @@ === tests/cases/compiler/declarationEmitImportInExportAssignmentModule.ts === module m { ->m : typeof m, Symbol(m, Decl(declarationEmitImportInExportAssignmentModule.ts, 0, 0)) +>m : typeof m export module c { ->c : typeof x, Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 1, 10)) +>c : typeof x export class c { ->c : c, Symbol(c, Decl(declarationEmitImportInExportAssignmentModule.ts, 2, 21)) +>c : c } } import x = c; ->x : typeof x, Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 5, 5)) ->c : typeof x, Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 1, 10)) +>x : typeof x +>c : typeof x export var a: typeof x; ->a : typeof x, Symbol(a, Decl(declarationEmitImportInExportAssignmentModule.ts, 7, 14)) ->x : typeof x, Symbol(x, Decl(declarationEmitImportInExportAssignmentModule.ts, 5, 5)) +>a : typeof x +>x : typeof x } export = m; ->m : typeof m, Symbol(m, Decl(declarationEmitImportInExportAssignmentModule.ts, 0, 0)) +>m : typeof m diff --git a/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.symbols b/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.symbols new file mode 100644 index 0000000000000..4f79e47277b4c --- /dev/null +++ b/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/declarationEmit_array-types-from-generic-array-usage.ts === +interface A extends Array { } +>A : Symbol(A, Decl(declarationEmit_array-types-from-generic-array-usage.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + diff --git a/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.types b/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.types index 65f507335f9f8..63f35d0f26339 100644 --- a/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.types +++ b/tests/baselines/reference/declarationEmit_array-types-from-generic-array-usage.types @@ -1,5 +1,5 @@ === tests/cases/compiler/declarationEmit_array-types-from-generic-array-usage.ts === interface A extends Array { } ->A : A, Symbol(A, Decl(declarationEmit_array-types-from-generic-array-usage.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>A : A +>Array : T[] diff --git a/tests/baselines/reference/declarationEmit_invalidReference.symbols b/tests/baselines/reference/declarationEmit_invalidReference.symbols new file mode 100644 index 0000000000000..b23bf69766164 --- /dev/null +++ b/tests/baselines/reference/declarationEmit_invalidReference.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/declarationEmit_invalidReference.ts === +/// +var x = 0; +>x : Symbol(x, Decl(declarationEmit_invalidReference.ts, 1, 3)) + diff --git a/tests/baselines/reference/declarationEmit_invalidReference.types b/tests/baselines/reference/declarationEmit_invalidReference.types index 8d8cd374414c6..35d623c3c05b8 100644 --- a/tests/baselines/reference/declarationEmit_invalidReference.types +++ b/tests/baselines/reference/declarationEmit_invalidReference.types @@ -1,6 +1,6 @@ === tests/cases/compiler/declarationEmit_invalidReference.ts === /// var x = 0; ->x : number, Symbol(x, Decl(declarationEmit_invalidReference.ts, 1, 3)) +>x : number >0 : number diff --git a/tests/baselines/reference/declarationEmit_nameConflicts.symbols b/tests/baselines/reference/declarationEmit_nameConflicts.symbols new file mode 100644 index 0000000000000..a626ed05b1588 --- /dev/null +++ b/tests/baselines/reference/declarationEmit_nameConflicts.symbols @@ -0,0 +1,153 @@ +=== tests/cases/compiler/declarationEmit_nameConflicts_0.ts === +import im = require('declarationEmit_nameConflicts_1'); +>im : Symbol(im, Decl(declarationEmit_nameConflicts_0.ts, 0, 0)) + +export module M { +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 1, 17)) + + export class C { } +>C : Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 2, 27)) + + export module N { +>N : Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 3, 22)) + + export function g() { }; +>g : Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 4, 21)) + + export interface I { } +>I : Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) + } + + export import a = M.f; +>a : Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 7, 5)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>f : Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 1, 17)) + + export import b = M.C; +>b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>C : Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 2, 27)) + + export import c = N; +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>N : Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 3, 22)) + + export import d = im; +>d : Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 11, 24)) +>im : Symbol(d, Decl(declarationEmit_nameConflicts_1.ts, 0, 0)) +} + +export module M.P { +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>P : Symbol(P, Decl(declarationEmit_nameConflicts_0.ts, 15, 16)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 15, 19)) + + export class C { } +>C : Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 16, 27)) + + export module N { +>N : Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 17, 22)) + + export function g() { }; +>g : Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 18, 21)) + + export interface I { } +>I : Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 19, 32)) + } + export import im = M.P.f; +>im : Symbol(im, Decl(declarationEmit_nameConflicts_0.ts, 21, 5)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>P : Symbol(P, Decl(declarationEmit_nameConflicts_0.ts, 15, 16)) +>f : Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 15, 19)) + + export var a = M.a; // emitted incorrectly as typeof f +>a : Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 23, 14)) +>M.a : Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 7, 5)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>a : Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 7, 5)) + + export var b = M.b; // ok +>b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 24, 14)) +>M.b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) + + export var c = M.c; // ok +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 25, 14)) +>M.c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) + + export var g = M.c.g; // ok +>g : Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 26, 14)) +>M.c.g : Symbol(c.g, Decl(declarationEmit_nameConflicts_0.ts, 4, 21)) +>M.c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>g : Symbol(c.g, Decl(declarationEmit_nameConflicts_0.ts, 4, 21)) + + export var d = M.d; // emitted incorrectly as typeof im +>d : Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 27, 14)) +>M.d : Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 11, 24)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>d : Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 11, 24)) +} + +export module M.Q { +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>Q : Symbol(Q, Decl(declarationEmit_nameConflicts_0.ts, 30, 16)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 30, 19)) + + export class C { } +>C : Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 31, 27)) + + export module N { +>N : Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 32, 22)) + + export function g() { }; +>g : Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 33, 21)) + + export interface I { } +>I : Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 34, 32)) + } + export interface b extends M.b { } // ok +>b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 36, 5)) +>M.b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>b : Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) + + export interface I extends M.c.I { } // ok +>I : Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 37, 38)) +>M.c.I : Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) +>M.c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>I : Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) + + export module c { +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 38, 40)) + + export interface I extends M.c.I { } // ok +>I : Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 39, 21)) +>M.c.I : Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) +>M.c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>c : Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>I : Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) + } +} +=== tests/cases/compiler/declarationEmit_nameConflicts_1.ts === +module f { export class c { } } +>f : Symbol(f, Decl(declarationEmit_nameConflicts_1.ts, 0, 0)) +>c : Symbol(c, Decl(declarationEmit_nameConflicts_1.ts, 0, 10)) + +export = f; +>f : Symbol(f, Decl(declarationEmit_nameConflicts_1.ts, 0, 0)) + diff --git a/tests/baselines/reference/declarationEmit_nameConflicts.types b/tests/baselines/reference/declarationEmit_nameConflicts.types index 9267df3900dec..dacd657706dcd 100644 --- a/tests/baselines/reference/declarationEmit_nameConflicts.types +++ b/tests/baselines/reference/declarationEmit_nameConflicts.types @@ -1,153 +1,153 @@ === tests/cases/compiler/declarationEmit_nameConflicts_0.ts === import im = require('declarationEmit_nameConflicts_1'); ->im : typeof im, Symbol(im, Decl(declarationEmit_nameConflicts_0.ts, 0, 0)) +>im : typeof im export module M { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) +>M : typeof M export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 1, 17)) +>f : () => void export class C { } ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 2, 27)) +>C : C export module N { ->N : typeof N, Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 3, 22)) +>N : typeof N export function g() { }; ->g : () => void, Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 4, 21)) +>g : () => void export interface I { } ->I : I, Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) +>I : I } export import a = M.f; ->a : () => void, Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 7, 5)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 1, 17)) +>a : () => void +>M : typeof M +>f : () => void export import b = M.C; ->b : typeof C, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 2, 27)) +>b : typeof C +>M : typeof M +>C : C export import c = N; ->c : typeof N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->N : typeof N, Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 3, 22)) +>c : typeof N +>N : typeof N export import d = im; ->d : typeof d, Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 11, 24)) ->im : typeof d, Symbol(d, Decl(declarationEmit_nameConflicts_1.ts, 0, 0)) +>d : typeof d +>im : typeof d } export module M.P { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->P : typeof P, Symbol(P, Decl(declarationEmit_nameConflicts_0.ts, 15, 16)) +>M : typeof M +>P : typeof P export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 15, 19)) +>f : () => void export class C { } ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 16, 27)) +>C : C export module N { ->N : typeof N, Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 17, 22)) +>N : typeof N export function g() { }; ->g : () => void, Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 18, 21)) +>g : () => void export interface I { } ->I : I, Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 19, 32)) +>I : I } export import im = M.P.f; ->im : () => void, Symbol(im, Decl(declarationEmit_nameConflicts_0.ts, 21, 5)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->P : typeof P, Symbol(P, Decl(declarationEmit_nameConflicts_0.ts, 15, 16)) ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 15, 19)) +>im : () => void +>M : typeof M +>P : typeof P +>f : () => void export var a = M.a; // emitted incorrectly as typeof f ->a : () => void, Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 23, 14)) ->M.a : () => void, Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 7, 5)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->a : () => void, Symbol(a, Decl(declarationEmit_nameConflicts_0.ts, 7, 5)) +>a : () => void +>M.a : () => void +>M : typeof M +>a : () => void export var b = M.b; // ok ->b : typeof M.C, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 24, 14)) ->M.b : typeof M.C, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->b : typeof M.C, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) +>b : typeof M.C +>M.b : typeof M.C +>M : typeof M +>b : typeof M.C export var c = M.c; // ok ->c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 25, 14)) ->M.c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) +>c : typeof M.N +>M.c : typeof M.N +>M : typeof M +>c : typeof M.N export var g = M.c.g; // ok ->g : () => void, Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 26, 14)) ->M.c.g : () => void, Symbol(c.g, Decl(declarationEmit_nameConflicts_0.ts, 4, 21)) ->M.c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->g : () => void, Symbol(c.g, Decl(declarationEmit_nameConflicts_0.ts, 4, 21)) +>g : () => void +>M.c.g : () => void +>M.c : typeof M.N +>M : typeof M +>c : typeof M.N +>g : () => void export var d = M.d; // emitted incorrectly as typeof im ->d : typeof M.d, Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 27, 14)) ->M.d : typeof M.d, Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 11, 24)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->d : typeof M.d, Symbol(d, Decl(declarationEmit_nameConflicts_0.ts, 11, 24)) +>d : typeof M.d +>M.d : typeof M.d +>M : typeof M +>d : typeof M.d } export module M.Q { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->Q : typeof Q, Symbol(Q, Decl(declarationEmit_nameConflicts_0.ts, 30, 16)) +>M : typeof M +>Q : typeof Q export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts_0.ts, 30, 19)) +>f : () => void export class C { } ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts_0.ts, 31, 27)) +>C : C export module N { ->N : typeof N, Symbol(N, Decl(declarationEmit_nameConflicts_0.ts, 32, 22)) +>N : typeof N export function g() { }; ->g : () => void, Symbol(g, Decl(declarationEmit_nameConflicts_0.ts, 33, 21)) +>g : () => void export interface I { } ->I : I, Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 34, 32)) +>I : I } export interface b extends M.b { } // ok ->b : b, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 36, 5)) ->M.b : any, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->b : M.C, Symbol(b, Decl(declarationEmit_nameConflicts_0.ts, 9, 26)) +>b : b +>M.b : any +>M : typeof M +>b : M.C export interface I extends M.c.I { } // ok ->I : I, Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 37, 38)) ->M.c.I : any, Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) ->M.c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->I : M.c.I, Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) +>I : I +>M.c.I : any +>M.c : typeof M.N +>M : typeof M +>c : typeof M.N +>I : M.c.I export module c { ->c : any, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 38, 40)) +>c : any export interface I extends M.c.I { } // ok ->I : I, Symbol(I, Decl(declarationEmit_nameConflicts_0.ts, 39, 21)) ->M.c.I : any, Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) ->M.c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts_0.ts, 0, 55), Decl(declarationEmit_nameConflicts_0.ts, 13, 1), Decl(declarationEmit_nameConflicts_0.ts, 28, 1)) ->c : typeof M.N, Symbol(c, Decl(declarationEmit_nameConflicts_0.ts, 10, 26)) ->I : M.c.I, Symbol(M.c.I, Decl(declarationEmit_nameConflicts_0.ts, 5, 32)) +>I : I +>M.c.I : any +>M.c : typeof M.N +>M : typeof M +>c : typeof M.N +>I : M.c.I } } === tests/cases/compiler/declarationEmit_nameConflicts_1.ts === module f { export class c { } } ->f : typeof f, Symbol(f, Decl(declarationEmit_nameConflicts_1.ts, 0, 0)) ->c : c, Symbol(c, Decl(declarationEmit_nameConflicts_1.ts, 0, 10)) +>f : typeof f +>c : c export = f; ->f : typeof f, Symbol(f, Decl(declarationEmit_nameConflicts_1.ts, 0, 0)) +>f : typeof f diff --git a/tests/baselines/reference/declarationEmit_nameConflicts2.symbols b/tests/baselines/reference/declarationEmit_nameConflicts2.symbols new file mode 100644 index 0000000000000..801ad3e7cfccd --- /dev/null +++ b/tests/baselines/reference/declarationEmit_nameConflicts2.symbols @@ -0,0 +1,68 @@ +=== tests/cases/compiler/declarationEmit_nameConflicts2.ts === +module X.Y.base { +>X : Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) +>Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 0, 17)) + + export class C { } +>C : Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 1, 27)) + + export module M { +>M : Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 2, 22)) + + export var v; +>v : Symbol(v, Decl(declarationEmit_nameConflicts2.ts, 4, 18)) + } + export enum E { } +>E : Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 5, 5)) +} + +module X.Y.base.Z { +>X : Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) +>Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>Z : Symbol(Z, Decl(declarationEmit_nameConflicts2.ts, 9, 16)) + + export var f = X.Y.base.f; // Should be base.f +>f : Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 10, 14)) +>X.Y.base.f : Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 0, 17)) +>X.Y.base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>X.Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>X : Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) +>Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>f : Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 0, 17)) + + export var C = X.Y.base.C; // Should be base.C +>C : Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 11, 14)) +>X.Y.base.C : Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 1, 27)) +>X.Y.base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>X.Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>X : Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) +>Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>C : Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 1, 27)) + + export var M = X.Y.base.M; // Should be base.M +>M : Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 12, 14)) +>X.Y.base.M : Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 2, 22)) +>X.Y.base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>X.Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>X : Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) +>Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 2, 22)) + + export var E = X.Y.base.E; // Should be base.E +>E : Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 13, 14)) +>X.Y.base.E : Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 5, 5)) +>X.Y.base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>X.Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>X : Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) +>Y : Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) +>base : Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>E : Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 5, 5)) +} diff --git a/tests/baselines/reference/declarationEmit_nameConflicts2.types b/tests/baselines/reference/declarationEmit_nameConflicts2.types index 92742806973fc..026cfed0989ad 100644 --- a/tests/baselines/reference/declarationEmit_nameConflicts2.types +++ b/tests/baselines/reference/declarationEmit_nameConflicts2.types @@ -1,68 +1,68 @@ === tests/cases/compiler/declarationEmit_nameConflicts2.ts === module X.Y.base { ->X : typeof X, Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) ->Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) +>X : typeof X +>Y : typeof Y +>base : typeof base export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 0, 17)) +>f : () => void export class C { } ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 1, 27)) +>C : C export module M { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 2, 22)) +>M : typeof M export var v; ->v : any, Symbol(v, Decl(declarationEmit_nameConflicts2.ts, 4, 18)) +>v : any } export enum E { } ->E : E, Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 5, 5)) +>E : E } module X.Y.base.Z { ->X : typeof X, Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) ->Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->Z : typeof Z, Symbol(Z, Decl(declarationEmit_nameConflicts2.ts, 9, 16)) +>X : typeof X +>Y : typeof Y +>base : typeof base +>Z : typeof Z export var f = X.Y.base.f; // Should be base.f ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 10, 14)) ->X.Y.base.f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 0, 17)) ->X.Y.base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->X.Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->X : typeof X, Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) ->Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts2.ts, 0, 17)) +>f : () => void +>X.Y.base.f : () => void +>X.Y.base : typeof base +>X.Y : typeof Y +>X : typeof X +>Y : typeof Y +>base : typeof base +>f : () => void export var C = X.Y.base.C; // Should be base.C ->C : typeof base.C, Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 11, 14)) ->X.Y.base.C : typeof base.C, Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 1, 27)) ->X.Y.base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->X.Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->X : typeof X, Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) ->Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->C : typeof base.C, Symbol(C, Decl(declarationEmit_nameConflicts2.ts, 1, 27)) +>C : typeof base.C +>X.Y.base.C : typeof base.C +>X.Y.base : typeof base +>X.Y : typeof Y +>X : typeof X +>Y : typeof Y +>base : typeof base +>C : typeof base.C export var M = X.Y.base.M; // Should be base.M ->M : typeof base.M, Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 12, 14)) ->X.Y.base.M : typeof base.M, Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 2, 22)) ->X.Y.base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->X.Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->X : typeof X, Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) ->Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->M : typeof base.M, Symbol(M, Decl(declarationEmit_nameConflicts2.ts, 2, 22)) +>M : typeof base.M +>X.Y.base.M : typeof base.M +>X.Y.base : typeof base +>X.Y : typeof Y +>X : typeof X +>Y : typeof Y +>base : typeof base +>M : typeof base.M export var E = X.Y.base.E; // Should be base.E ->E : typeof base.E, Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 13, 14)) ->X.Y.base.E : typeof base.E, Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 5, 5)) ->X.Y.base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->X.Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->X : typeof X, Symbol(X, Decl(declarationEmit_nameConflicts2.ts, 0, 0), Decl(declarationEmit_nameConflicts2.ts, 7, 1)) ->Y : typeof Y, Symbol(Y, Decl(declarationEmit_nameConflicts2.ts, 0, 9), Decl(declarationEmit_nameConflicts2.ts, 9, 9)) ->base : typeof base, Symbol(base, Decl(declarationEmit_nameConflicts2.ts, 0, 11), Decl(declarationEmit_nameConflicts2.ts, 9, 11)) ->E : typeof base.E, Symbol(E, Decl(declarationEmit_nameConflicts2.ts, 5, 5)) +>E : typeof base.E +>X.Y.base.E : typeof base.E +>X.Y.base : typeof base +>X.Y : typeof Y +>X : typeof X +>Y : typeof Y +>base : typeof base +>E : typeof base.E } diff --git a/tests/baselines/reference/declarationEmit_nameConflicts3.symbols b/tests/baselines/reference/declarationEmit_nameConflicts3.symbols new file mode 100644 index 0000000000000..051ffe593657f --- /dev/null +++ b/tests/baselines/reference/declarationEmit_nameConflicts3.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/declarationEmit_nameConflicts3.ts === +module M { +>M : Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) + + export interface D { } +>D : Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) + + export module D { +>D : Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts3.ts, 2, 21)) + } + export module C { +>C : Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 4, 5)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts3.ts, 5, 21)) + } + export module E { +>E : Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 7, 5)) + + export function f() { } +>f : Symbol(f, Decl(declarationEmit_nameConflicts3.ts, 8, 21)) + } +} + +module M.P { +>M : Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) +>P : Symbol(P, Decl(declarationEmit_nameConflicts3.ts, 13, 9)) + + export class C { +>C : Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 13, 12)) + + static f() { } +>f : Symbol(C.f, Decl(declarationEmit_nameConflicts3.ts, 14, 20)) + } + export class E extends C { } +>E : Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 16, 5)) +>C : Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 13, 12)) + + export enum D { +>D : Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 17, 32)) + + f +>f : Symbol(D.f, Decl(declarationEmit_nameConflicts3.ts, 18, 19)) + } + export var v: M.D; // ok +>v : Symbol(v, Decl(declarationEmit_nameConflicts3.ts, 21, 14)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) +>D : Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) + + export var w = M.D.f; // error, should be typeof M.D.f +>w : Symbol(w, Decl(declarationEmit_nameConflicts3.ts, 22, 14)) +>M.D.f : Symbol(D.f, Decl(declarationEmit_nameConflicts3.ts, 2, 21)) +>M.D : Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) +>D : Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) +>f : Symbol(D.f, Decl(declarationEmit_nameConflicts3.ts, 2, 21)) + + export var x = M.C.f; // error, should be typeof M.C.f +>x : Symbol(x, Decl(declarationEmit_nameConflicts3.ts, 23, 14), Decl(declarationEmit_nameConflicts3.ts, 24, 14)) +>M.C.f : Symbol(C.f, Decl(declarationEmit_nameConflicts3.ts, 5, 21)) +>M.C : Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 4, 5)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) +>C : Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 4, 5)) +>f : Symbol(C.f, Decl(declarationEmit_nameConflicts3.ts, 5, 21)) + + export var x = M.E.f; // error, should be typeof M.E.f +>x : Symbol(x, Decl(declarationEmit_nameConflicts3.ts, 23, 14), Decl(declarationEmit_nameConflicts3.ts, 24, 14)) +>M.E.f : Symbol(E.f, Decl(declarationEmit_nameConflicts3.ts, 8, 21)) +>M.E : Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 7, 5)) +>M : Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) +>E : Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 7, 5)) +>f : Symbol(E.f, Decl(declarationEmit_nameConflicts3.ts, 8, 21)) +} diff --git a/tests/baselines/reference/declarationEmit_nameConflicts3.types b/tests/baselines/reference/declarationEmit_nameConflicts3.types index f4a7e51fd3738..8d52bda68f5d4 100644 --- a/tests/baselines/reference/declarationEmit_nameConflicts3.types +++ b/tests/baselines/reference/declarationEmit_nameConflicts3.types @@ -1,76 +1,76 @@ === tests/cases/compiler/declarationEmit_nameConflicts3.ts === module M { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) +>M : typeof M export interface D { } ->D : D, Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) +>D : D export module D { ->D : typeof D, Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) +>D : typeof D export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts3.ts, 2, 21)) +>f : () => void } export module C { ->C : typeof C, Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 4, 5)) +>C : typeof C export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts3.ts, 5, 21)) +>f : () => void } export module E { ->E : typeof E, Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 7, 5)) +>E : typeof E export function f() { } ->f : () => void, Symbol(f, Decl(declarationEmit_nameConflicts3.ts, 8, 21)) +>f : () => void } } module M.P { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) ->P : typeof P, Symbol(P, Decl(declarationEmit_nameConflicts3.ts, 13, 9)) +>M : typeof M +>P : typeof P export class C { ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 13, 12)) +>C : C static f() { } ->f : () => void, Symbol(C.f, Decl(declarationEmit_nameConflicts3.ts, 14, 20)) +>f : () => void } export class E extends C { } ->E : E, Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 16, 5)) ->C : C, Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 13, 12)) +>E : E +>C : C export enum D { ->D : D, Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 17, 32)) +>D : D f ->f : D, Symbol(D.f, Decl(declarationEmit_nameConflicts3.ts, 18, 19)) +>f : D } export var v: M.D; // ok ->v : M.D, Symbol(v, Decl(declarationEmit_nameConflicts3.ts, 21, 14)) ->M : any, Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) ->D : M.D, Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) +>v : M.D +>M : any +>D : M.D export var w = M.D.f; // error, should be typeof M.D.f ->w : () => void, Symbol(w, Decl(declarationEmit_nameConflicts3.ts, 22, 14)) ->M.D.f : () => void, Symbol(D.f, Decl(declarationEmit_nameConflicts3.ts, 2, 21)) ->M.D : typeof M.D, Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) ->D : typeof M.D, Symbol(D, Decl(declarationEmit_nameConflicts3.ts, 0, 10), Decl(declarationEmit_nameConflicts3.ts, 1, 26)) ->f : () => void, Symbol(D.f, Decl(declarationEmit_nameConflicts3.ts, 2, 21)) +>w : () => void +>M.D.f : () => void +>M.D : typeof M.D +>M : typeof M +>D : typeof M.D +>f : () => void export var x = M.C.f; // error, should be typeof M.C.f ->x : () => void, Symbol(x, Decl(declarationEmit_nameConflicts3.ts, 23, 14), Decl(declarationEmit_nameConflicts3.ts, 24, 14)) ->M.C.f : () => void, Symbol(C.f, Decl(declarationEmit_nameConflicts3.ts, 5, 21)) ->M.C : typeof M.C, Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 4, 5)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) ->C : typeof M.C, Symbol(C, Decl(declarationEmit_nameConflicts3.ts, 4, 5)) ->f : () => void, Symbol(C.f, Decl(declarationEmit_nameConflicts3.ts, 5, 21)) +>x : () => void +>M.C.f : () => void +>M.C : typeof M.C +>M : typeof M +>C : typeof M.C +>f : () => void export var x = M.E.f; // error, should be typeof M.E.f ->x : () => void, Symbol(x, Decl(declarationEmit_nameConflicts3.ts, 23, 14), Decl(declarationEmit_nameConflicts3.ts, 24, 14)) ->M.E.f : () => void, Symbol(E.f, Decl(declarationEmit_nameConflicts3.ts, 8, 21)) ->M.E : typeof M.E, Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 7, 5)) ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflicts3.ts, 0, 0), Decl(declarationEmit_nameConflicts3.ts, 11, 1)) ->E : typeof M.E, Symbol(E, Decl(declarationEmit_nameConflicts3.ts, 7, 5)) ->f : () => void, Symbol(E.f, Decl(declarationEmit_nameConflicts3.ts, 8, 21)) +>x : () => void +>M.E.f : () => void +>M.E : typeof M.E +>M : typeof M +>E : typeof M.E +>f : () => void } diff --git a/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.symbols b/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.symbols new file mode 100644 index 0000000000000..26c8875a236c6 --- /dev/null +++ b/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/declarationEmit_nameConflictsWithAlias.ts === +export module C { export interface I { } } +>C : Symbol(C, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 0)) +>I : Symbol(I, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 17)) + +export import v = C; +>v : Symbol(v, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 42)) +>C : Symbol(C, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 0)) + +export module M { +>M : Symbol(M, Decl(declarationEmit_nameConflictsWithAlias.ts, 1, 20)) + + export module C { export interface I { } } +>C : Symbol(C, Decl(declarationEmit_nameConflictsWithAlias.ts, 2, 17)) +>I : Symbol(I, Decl(declarationEmit_nameConflictsWithAlias.ts, 3, 21)) + + export var w: v.I; // Gets emitted as C.I, which is the wrong interface +>w : Symbol(w, Decl(declarationEmit_nameConflictsWithAlias.ts, 4, 14)) +>v : Symbol(v, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 42)) +>I : Symbol(v.I, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 17)) +} diff --git a/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.types b/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.types index ba379d6f2acc8..744869f0e3acf 100644 --- a/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.types +++ b/tests/baselines/reference/declarationEmit_nameConflictsWithAlias.types @@ -1,21 +1,21 @@ === tests/cases/compiler/declarationEmit_nameConflictsWithAlias.ts === export module C { export interface I { } } ->C : any, Symbol(C, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 0)) ->I : I, Symbol(I, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 17)) +>C : any +>I : I export import v = C; ->v : any, Symbol(v, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 42)) ->C : any, Symbol(C, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 0)) +>v : any +>C : any export module M { ->M : typeof M, Symbol(M, Decl(declarationEmit_nameConflictsWithAlias.ts, 1, 20)) +>M : typeof M export module C { export interface I { } } ->C : any, Symbol(C, Decl(declarationEmit_nameConflictsWithAlias.ts, 2, 17)) ->I : I, Symbol(I, Decl(declarationEmit_nameConflictsWithAlias.ts, 3, 21)) +>C : any +>I : I export var w: v.I; // Gets emitted as C.I, which is the wrong interface ->w : v.I, Symbol(w, Decl(declarationEmit_nameConflictsWithAlias.ts, 4, 14)) ->v : any, Symbol(v, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 42)) ->I : v.I, Symbol(v.I, Decl(declarationEmit_nameConflictsWithAlias.ts, 0, 17)) +>w : v.I +>v : any +>I : v.I } diff --git a/tests/baselines/reference/declarationEmit_protectedMembers.symbols b/tests/baselines/reference/declarationEmit_protectedMembers.symbols new file mode 100644 index 0000000000000..cbf3db094ea04 --- /dev/null +++ b/tests/baselines/reference/declarationEmit_protectedMembers.symbols @@ -0,0 +1,114 @@ +=== tests/cases/compiler/declarationEmit_protectedMembers.ts === + +// Class with protected members +class C1 { +>C1 : Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) + + protected x: number; +>x : Symbol(x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) + + protected f() { +>f : Symbol(f, Decl(declarationEmit_protectedMembers.ts, 3, 24)) + + return this.x; +>this.x : Symbol(x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) +>this : Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) +>x : Symbol(x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) + } + + protected set accessor(a: number) { } +>accessor : Symbol(accessor, Decl(declarationEmit_protectedMembers.ts, 7, 5), Decl(declarationEmit_protectedMembers.ts, 9, 41)) +>a : Symbol(a, Decl(declarationEmit_protectedMembers.ts, 9, 27)) + + protected get accessor() { return 0; } +>accessor : Symbol(accessor, Decl(declarationEmit_protectedMembers.ts, 7, 5), Decl(declarationEmit_protectedMembers.ts, 9, 41)) + + protected static sx: number; +>sx : Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) + + protected static sf() { +>sf : Symbol(C1.sf, Decl(declarationEmit_protectedMembers.ts, 12, 32)) + + return this.sx; +>this.sx : Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) +>this : Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) +>sx : Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) + } + + protected static set staticSetter(a: number) { } +>staticSetter : Symbol(C1.staticSetter, Decl(declarationEmit_protectedMembers.ts, 16, 5)) +>a : Symbol(a, Decl(declarationEmit_protectedMembers.ts, 18, 38)) + + protected static get staticGetter() { return 0; } +>staticGetter : Symbol(C1.staticGetter, Decl(declarationEmit_protectedMembers.ts, 18, 52)) +} + +// Derived class overriding protected members +class C2 extends C1 { +>C2 : Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) +>C1 : Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) + + protected f() { +>f : Symbol(f, Decl(declarationEmit_protectedMembers.ts, 23, 21)) + + return super.f() + this.x; +>super.f : Symbol(C1.f, Decl(declarationEmit_protectedMembers.ts, 3, 24)) +>super : Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) +>f : Symbol(C1.f, Decl(declarationEmit_protectedMembers.ts, 3, 24)) +>this.x : Symbol(C1.x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) +>this : Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) +>x : Symbol(C1.x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) + } + protected static sf() { +>sf : Symbol(C2.sf, Decl(declarationEmit_protectedMembers.ts, 26, 5)) + + return super.sf() + this.sx; +>super.sf : Symbol(C1.sf, Decl(declarationEmit_protectedMembers.ts, 12, 32)) +>super : Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) +>sf : Symbol(C1.sf, Decl(declarationEmit_protectedMembers.ts, 12, 32)) +>this.sx : Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) +>this : Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) +>sx : Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) + } +} + +// Derived class making protected members public +class C3 extends C2 { +>C3 : Symbol(C3, Decl(declarationEmit_protectedMembers.ts, 30, 1)) +>C2 : Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) + + x: number; +>x : Symbol(x, Decl(declarationEmit_protectedMembers.ts, 33, 21)) + + static sx: number; +>sx : Symbol(C3.sx, Decl(declarationEmit_protectedMembers.ts, 34, 14)) + + f() { +>f : Symbol(f, Decl(declarationEmit_protectedMembers.ts, 35, 22)) + + return super.f(); +>super.f : Symbol(C2.f, Decl(declarationEmit_protectedMembers.ts, 23, 21)) +>super : Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) +>f : Symbol(C2.f, Decl(declarationEmit_protectedMembers.ts, 23, 21)) + } + static sf() { +>sf : Symbol(C3.sf, Decl(declarationEmit_protectedMembers.ts, 38, 5)) + + return super.sf(); +>super.sf : Symbol(C2.sf, Decl(declarationEmit_protectedMembers.ts, 26, 5)) +>super : Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) +>sf : Symbol(C2.sf, Decl(declarationEmit_protectedMembers.ts, 26, 5)) + } + + static get staticGetter() { return 1; } +>staticGetter : Symbol(C3.staticGetter, Decl(declarationEmit_protectedMembers.ts, 41, 5)) +} + +// Protected properties in constructors +class C4 { +>C4 : Symbol(C4, Decl(declarationEmit_protectedMembers.ts, 44, 1)) + + constructor(protected a: number, protected b) { } +>a : Symbol(a, Decl(declarationEmit_protectedMembers.ts, 48, 16)) +>b : Symbol(b, Decl(declarationEmit_protectedMembers.ts, 48, 36)) +} diff --git a/tests/baselines/reference/declarationEmit_protectedMembers.types b/tests/baselines/reference/declarationEmit_protectedMembers.types index 8270d7a6dc3e6..89aa3f5633229 100644 --- a/tests/baselines/reference/declarationEmit_protectedMembers.types +++ b/tests/baselines/reference/declarationEmit_protectedMembers.types @@ -2,122 +2,122 @@ // Class with protected members class C1 { ->C1 : C1, Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) +>C1 : C1 protected x: number; ->x : number, Symbol(x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) +>x : number protected f() { ->f : () => number, Symbol(f, Decl(declarationEmit_protectedMembers.ts, 3, 24)) +>f : () => number return this.x; ->this.x : number, Symbol(x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) ->this : C1, Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) ->x : number, Symbol(x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) +>this.x : number +>this : C1 +>x : number } protected set accessor(a: number) { } ->accessor : number, Symbol(accessor, Decl(declarationEmit_protectedMembers.ts, 7, 5), Decl(declarationEmit_protectedMembers.ts, 9, 41)) ->a : number, Symbol(a, Decl(declarationEmit_protectedMembers.ts, 9, 27)) +>accessor : number +>a : number protected get accessor() { return 0; } ->accessor : number, Symbol(accessor, Decl(declarationEmit_protectedMembers.ts, 7, 5), Decl(declarationEmit_protectedMembers.ts, 9, 41)) +>accessor : number >0 : number protected static sx: number; ->sx : number, Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) +>sx : number protected static sf() { ->sf : () => number, Symbol(C1.sf, Decl(declarationEmit_protectedMembers.ts, 12, 32)) +>sf : () => number return this.sx; ->this.sx : number, Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) ->this : typeof C1, Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) ->sx : number, Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) +>this.sx : number +>this : typeof C1 +>sx : number } protected static set staticSetter(a: number) { } ->staticSetter : number, Symbol(C1.staticSetter, Decl(declarationEmit_protectedMembers.ts, 16, 5)) ->a : number, Symbol(a, Decl(declarationEmit_protectedMembers.ts, 18, 38)) +>staticSetter : number +>a : number protected static get staticGetter() { return 0; } ->staticGetter : number, Symbol(C1.staticGetter, Decl(declarationEmit_protectedMembers.ts, 18, 52)) +>staticGetter : number >0 : number } // Derived class overriding protected members class C2 extends C1 { ->C2 : C2, Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) ->C1 : C1, Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) +>C2 : C2 +>C1 : C1 protected f() { ->f : () => number, Symbol(f, Decl(declarationEmit_protectedMembers.ts, 23, 21)) +>f : () => number return super.f() + this.x; >super.f() + this.x : number >super.f() : number ->super.f : () => number, Symbol(C1.f, Decl(declarationEmit_protectedMembers.ts, 3, 24)) ->super : C1, Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) ->f : () => number, Symbol(C1.f, Decl(declarationEmit_protectedMembers.ts, 3, 24)) ->this.x : number, Symbol(C1.x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) ->this : C2, Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) ->x : number, Symbol(C1.x, Decl(declarationEmit_protectedMembers.ts, 2, 10)) +>super.f : () => number +>super : C1 +>f : () => number +>this.x : number +>this : C2 +>x : number } protected static sf() { ->sf : () => number, Symbol(C2.sf, Decl(declarationEmit_protectedMembers.ts, 26, 5)) +>sf : () => number return super.sf() + this.sx; >super.sf() + this.sx : number >super.sf() : number ->super.sf : () => number, Symbol(C1.sf, Decl(declarationEmit_protectedMembers.ts, 12, 32)) ->super : typeof C1, Symbol(C1, Decl(declarationEmit_protectedMembers.ts, 0, 0)) ->sf : () => number, Symbol(C1.sf, Decl(declarationEmit_protectedMembers.ts, 12, 32)) ->this.sx : number, Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) ->this : typeof C2, Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) ->sx : number, Symbol(C1.sx, Decl(declarationEmit_protectedMembers.ts, 10, 42)) +>super.sf : () => number +>super : typeof C1 +>sf : () => number +>this.sx : number +>this : typeof C2 +>sx : number } } // Derived class making protected members public class C3 extends C2 { ->C3 : C3, Symbol(C3, Decl(declarationEmit_protectedMembers.ts, 30, 1)) ->C2 : C2, Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) +>C3 : C3 +>C2 : C2 x: number; ->x : number, Symbol(x, Decl(declarationEmit_protectedMembers.ts, 33, 21)) +>x : number static sx: number; ->sx : number, Symbol(C3.sx, Decl(declarationEmit_protectedMembers.ts, 34, 14)) +>sx : number f() { ->f : () => number, Symbol(f, Decl(declarationEmit_protectedMembers.ts, 35, 22)) +>f : () => number return super.f(); >super.f() : number ->super.f : () => number, Symbol(C2.f, Decl(declarationEmit_protectedMembers.ts, 23, 21)) ->super : C2, Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) ->f : () => number, Symbol(C2.f, Decl(declarationEmit_protectedMembers.ts, 23, 21)) +>super.f : () => number +>super : C2 +>f : () => number } static sf() { ->sf : () => number, Symbol(C3.sf, Decl(declarationEmit_protectedMembers.ts, 38, 5)) +>sf : () => number return super.sf(); >super.sf() : number ->super.sf : () => number, Symbol(C2.sf, Decl(declarationEmit_protectedMembers.ts, 26, 5)) ->super : typeof C2, Symbol(C2, Decl(declarationEmit_protectedMembers.ts, 20, 1)) ->sf : () => number, Symbol(C2.sf, Decl(declarationEmit_protectedMembers.ts, 26, 5)) +>super.sf : () => number +>super : typeof C2 +>sf : () => number } static get staticGetter() { return 1; } ->staticGetter : number, Symbol(C3.staticGetter, Decl(declarationEmit_protectedMembers.ts, 41, 5)) +>staticGetter : number >1 : number } // Protected properties in constructors class C4 { ->C4 : C4, Symbol(C4, Decl(declarationEmit_protectedMembers.ts, 44, 1)) +>C4 : C4 constructor(protected a: number, protected b) { } ->a : number, Symbol(a, Decl(declarationEmit_protectedMembers.ts, 48, 16)) ->b : any, Symbol(b, Decl(declarationEmit_protectedMembers.ts, 48, 36)) +>a : number +>b : any } diff --git a/tests/baselines/reference/declarationInAmbientContext.symbols b/tests/baselines/reference/declarationInAmbientContext.symbols new file mode 100644 index 0000000000000..4ab3aad99bffc --- /dev/null +++ b/tests/baselines/reference/declarationInAmbientContext.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/destructuring/declarationInAmbientContext.ts === +declare var [a, b]; // Error, destructuring declaration not allowed in ambient context +>a : Symbol(a, Decl(declarationInAmbientContext.ts, 0, 13)) +>b : Symbol(b, Decl(declarationInAmbientContext.ts, 0, 15)) + +declare var {c, d}; // Error, destructuring declaration not allowed in ambient context +>c : Symbol(c, Decl(declarationInAmbientContext.ts, 1, 13)) +>d : Symbol(d, Decl(declarationInAmbientContext.ts, 1, 15)) + diff --git a/tests/baselines/reference/declarationInAmbientContext.types b/tests/baselines/reference/declarationInAmbientContext.types index aac4aeb95e007..ecdd3b7c7ebbb 100644 --- a/tests/baselines/reference/declarationInAmbientContext.types +++ b/tests/baselines/reference/declarationInAmbientContext.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/destructuring/declarationInAmbientContext.ts === declare var [a, b]; // Error, destructuring declaration not allowed in ambient context ->a : any, Symbol(a, Decl(declarationInAmbientContext.ts, 0, 13)) ->b : any, Symbol(b, Decl(declarationInAmbientContext.ts, 0, 15)) +>a : any +>b : any declare var {c, d}; // Error, destructuring declaration not allowed in ambient context ->c : any, Symbol(c, Decl(declarationInAmbientContext.ts, 1, 13)) ->d : any, Symbol(d, Decl(declarationInAmbientContext.ts, 1, 15)) +>c : any +>d : any diff --git a/tests/baselines/reference/declareDottedExtend.symbols b/tests/baselines/reference/declareDottedExtend.symbols new file mode 100644 index 0000000000000..c9695ecb34214 --- /dev/null +++ b/tests/baselines/reference/declareDottedExtend.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/declareDottedExtend.ts === +declare module A.B +>A : Symbol(A, Decl(declareDottedExtend.ts, 0, 0)) +>B : Symbol(B, Decl(declareDottedExtend.ts, 0, 17)) +{ + export class C{ } +>C : Symbol(C, Decl(declareDottedExtend.ts, 1, 1)) +} + +import ab = A.B; +>ab : Symbol(ab, Decl(declareDottedExtend.ts, 3, 1)) +>A : Symbol(A, Decl(declareDottedExtend.ts, 0, 0)) +>B : Symbol(ab, Decl(declareDottedExtend.ts, 0, 17)) + +class D extends ab.C{ } +>D : Symbol(D, Decl(declareDottedExtend.ts, 5, 16)) +>ab.C : Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) +>ab : Symbol(ab, Decl(declareDottedExtend.ts, 3, 1)) +>C : Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) + +class E extends A.B.C{ } +>E : Symbol(E, Decl(declareDottedExtend.ts, 7, 23)) +>A.B.C : Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) +>A.B : Symbol(ab, Decl(declareDottedExtend.ts, 0, 17)) +>A : Symbol(A, Decl(declareDottedExtend.ts, 0, 0)) +>B : Symbol(ab, Decl(declareDottedExtend.ts, 0, 17)) +>C : Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) + diff --git a/tests/baselines/reference/declareDottedExtend.types b/tests/baselines/reference/declareDottedExtend.types index 5bbdb8f186b06..7df6c9ecb7c99 100644 --- a/tests/baselines/reference/declareDottedExtend.types +++ b/tests/baselines/reference/declareDottedExtend.types @@ -1,28 +1,28 @@ === tests/cases/compiler/declareDottedExtend.ts === declare module A.B ->A : typeof A, Symbol(A, Decl(declareDottedExtend.ts, 0, 0)) ->B : typeof B, Symbol(B, Decl(declareDottedExtend.ts, 0, 17)) +>A : typeof A +>B : typeof B { export class C{ } ->C : C, Symbol(C, Decl(declareDottedExtend.ts, 1, 1)) +>C : C } import ab = A.B; ->ab : typeof ab, Symbol(ab, Decl(declareDottedExtend.ts, 3, 1)) ->A : typeof A, Symbol(A, Decl(declareDottedExtend.ts, 0, 0)) ->B : typeof ab, Symbol(ab, Decl(declareDottedExtend.ts, 0, 17)) +>ab : typeof ab +>A : typeof A +>B : typeof ab class D extends ab.C{ } ->D : D, Symbol(D, Decl(declareDottedExtend.ts, 5, 16)) ->ab.C : any, Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) ->ab : typeof ab, Symbol(ab, Decl(declareDottedExtend.ts, 3, 1)) ->C : ab.C, Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) +>D : D +>ab.C : any +>ab : typeof ab +>C : ab.C class E extends A.B.C{ } ->E : E, Symbol(E, Decl(declareDottedExtend.ts, 7, 23)) ->A.B.C : any, Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) ->A.B : typeof ab, Symbol(ab, Decl(declareDottedExtend.ts, 0, 17)) ->A : typeof A, Symbol(A, Decl(declareDottedExtend.ts, 0, 0)) ->B : typeof ab, Symbol(ab, Decl(declareDottedExtend.ts, 0, 17)) ->C : ab.C, Symbol(ab.C, Decl(declareDottedExtend.ts, 1, 1)) +>E : E +>A.B.C : any +>A.B : typeof ab +>A : typeof A +>B : typeof ab +>C : ab.C diff --git a/tests/baselines/reference/declareDottedModuleName.symbols b/tests/baselines/reference/declareDottedModuleName.symbols new file mode 100644 index 0000000000000..de69bc1dc8e93 --- /dev/null +++ b/tests/baselines/reference/declareDottedModuleName.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/declareDottedModuleName.ts === +module M { +>M : Symbol(M, Decl(declareDottedModuleName.ts, 0, 0), Decl(declareDottedModuleName.ts, 2, 1)) + + module P.Q { } // This shouldnt be emitted +>P : Symbol(P, Decl(declareDottedModuleName.ts, 0, 10)) +>Q : Symbol(Q, Decl(declareDottedModuleName.ts, 1, 13)) +} + +module M { +>M : Symbol(M, Decl(declareDottedModuleName.ts, 0, 0), Decl(declareDottedModuleName.ts, 2, 1)) + + export module R.S { } //This should be emitted +>R : Symbol(R, Decl(declareDottedModuleName.ts, 4, 10)) +>S : Symbol(S, Decl(declareDottedModuleName.ts, 5, 20)) +} + +module T.U { // This needs to be emitted +>T : Symbol(T, Decl(declareDottedModuleName.ts, 6, 1)) +>U : Symbol(U, Decl(declareDottedModuleName.ts, 8, 9)) +} diff --git a/tests/baselines/reference/declareDottedModuleName.types b/tests/baselines/reference/declareDottedModuleName.types index 068d6042a3152..54786f9e74709 100644 --- a/tests/baselines/reference/declareDottedModuleName.types +++ b/tests/baselines/reference/declareDottedModuleName.types @@ -1,21 +1,21 @@ === tests/cases/compiler/declareDottedModuleName.ts === module M { ->M : any, Symbol(M, Decl(declareDottedModuleName.ts, 0, 0), Decl(declareDottedModuleName.ts, 2, 1)) +>M : any module P.Q { } // This shouldnt be emitted ->P : any, Symbol(P, Decl(declareDottedModuleName.ts, 0, 10)) ->Q : any, Symbol(Q, Decl(declareDottedModuleName.ts, 1, 13)) +>P : any +>Q : any } module M { ->M : any, Symbol(M, Decl(declareDottedModuleName.ts, 0, 0), Decl(declareDottedModuleName.ts, 2, 1)) +>M : any export module R.S { } //This should be emitted ->R : any, Symbol(R, Decl(declareDottedModuleName.ts, 4, 10)) ->S : any, Symbol(S, Decl(declareDottedModuleName.ts, 5, 20)) +>R : any +>S : any } module T.U { // This needs to be emitted ->T : any, Symbol(T, Decl(declareDottedModuleName.ts, 6, 1)) ->U : any, Symbol(U, Decl(declareDottedModuleName.ts, 8, 9)) +>T : any +>U : any } diff --git a/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.symbols b/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.symbols new file mode 100644 index 0000000000000..881728ce6415e --- /dev/null +++ b/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/declareExternalModuleWithExportAssignedFundule.ts === +declare module "express" { + + export = express; +>express : Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) + + function express(): express.ExpressServer; +>express : Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) +>express : Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) +>ExpressServer : Symbol(express.ExpressServer, Decl(declareExternalModuleWithExportAssignedFundule.ts, 6, 20)) + + module express { +>express : Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) + + export interface ExpressServer { +>ExpressServer : Symbol(ExpressServer, Decl(declareExternalModuleWithExportAssignedFundule.ts, 6, 20)) + + enable(name: string): ExpressServer; +>enable : Symbol(enable, Decl(declareExternalModuleWithExportAssignedFundule.ts, 8, 40)) +>name : Symbol(name, Decl(declareExternalModuleWithExportAssignedFundule.ts, 10, 19)) +>ExpressServer : Symbol(ExpressServer, Decl(declareExternalModuleWithExportAssignedFundule.ts, 6, 20)) + + post(path: RegExp, handler: (req: Function) => void ): void; +>post : Symbol(post, Decl(declareExternalModuleWithExportAssignedFundule.ts, 10, 48)) +>path : Symbol(path, Decl(declareExternalModuleWithExportAssignedFundule.ts, 12, 17)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>handler : Symbol(handler, Decl(declareExternalModuleWithExportAssignedFundule.ts, 12, 30)) +>req : Symbol(req, Decl(declareExternalModuleWithExportAssignedFundule.ts, 12, 41)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + + } + + export class ExpressServerRequest { +>ExpressServerRequest : Symbol(ExpressServerRequest, Decl(declareExternalModuleWithExportAssignedFundule.ts, 14, 9)) + + } + + } + +} + diff --git a/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.types b/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.types index 8b996a0449447..2206c8044484e 100644 --- a/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.types +++ b/tests/baselines/reference/declareExternalModuleWithExportAssignedFundule.types @@ -2,36 +2,36 @@ declare module "express" { export = express; ->express : typeof express, Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) +>express : typeof express function express(): express.ExpressServer; ->express : typeof express, Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) ->express : any, Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) ->ExpressServer : express.ExpressServer, Symbol(express.ExpressServer, Decl(declareExternalModuleWithExportAssignedFundule.ts, 6, 20)) +>express : typeof express +>express : any +>ExpressServer : express.ExpressServer module express { ->express : typeof express, Symbol(express, Decl(declareExternalModuleWithExportAssignedFundule.ts, 2, 21), Decl(declareExternalModuleWithExportAssignedFundule.ts, 4, 46)) +>express : typeof express export interface ExpressServer { ->ExpressServer : ExpressServer, Symbol(ExpressServer, Decl(declareExternalModuleWithExportAssignedFundule.ts, 6, 20)) +>ExpressServer : ExpressServer enable(name: string): ExpressServer; ->enable : (name: string) => ExpressServer, Symbol(enable, Decl(declareExternalModuleWithExportAssignedFundule.ts, 8, 40)) ->name : string, Symbol(name, Decl(declareExternalModuleWithExportAssignedFundule.ts, 10, 19)) ->ExpressServer : ExpressServer, Symbol(ExpressServer, Decl(declareExternalModuleWithExportAssignedFundule.ts, 6, 20)) +>enable : (name: string) => ExpressServer +>name : string +>ExpressServer : ExpressServer post(path: RegExp, handler: (req: Function) => void ): void; ->post : (path: RegExp, handler: (req: Function) => void) => void, Symbol(post, Decl(declareExternalModuleWithExportAssignedFundule.ts, 10, 48)) ->path : RegExp, Symbol(path, Decl(declareExternalModuleWithExportAssignedFundule.ts, 12, 17)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) ->handler : (req: Function) => void, Symbol(handler, Decl(declareExternalModuleWithExportAssignedFundule.ts, 12, 30)) ->req : Function, Symbol(req, Decl(declareExternalModuleWithExportAssignedFundule.ts, 12, 41)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>post : (path: RegExp, handler: (req: Function) => void) => void +>path : RegExp +>RegExp : RegExp +>handler : (req: Function) => void +>req : Function +>Function : Function } export class ExpressServerRequest { ->ExpressServerRequest : ExpressServerRequest, Symbol(ExpressServerRequest, Decl(declareExternalModuleWithExportAssignedFundule.ts, 14, 9)) +>ExpressServerRequest : ExpressServerRequest } diff --git a/tests/baselines/reference/declareFileExportAssignment.symbols b/tests/baselines/reference/declareFileExportAssignment.symbols new file mode 100644 index 0000000000000..bb626e9eeab15 --- /dev/null +++ b/tests/baselines/reference/declareFileExportAssignment.symbols @@ -0,0 +1,50 @@ +=== tests/cases/compiler/declareFileExportAssignment.ts === +module m2 { +>m2 : Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) + + export interface connectModule { +>connectModule : Symbol(connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) + + (res, req, next): void; +>res : Symbol(res, Decl(declareFileExportAssignment.ts, 2, 9)) +>req : Symbol(req, Decl(declareFileExportAssignment.ts, 2, 13)) +>next : Symbol(next, Decl(declareFileExportAssignment.ts, 2, 18)) + } + export interface connectExport { +>connectExport : Symbol(connectExport, Decl(declareFileExportAssignment.ts, 3, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(declareFileExportAssignment.ts, 4, 36)) +>mod : Symbol(mod, Decl(declareFileExportAssignment.ts, 5, 14)) +>connectModule : Symbol(connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) +>connectExport : Symbol(connectExport, Decl(declareFileExportAssignment.ts, 3, 5)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(declareFileExportAssignment.ts, 5, 51)) +>port : Symbol(port, Decl(declareFileExportAssignment.ts, 6, 17)) + } + +} + +var m2: { +>m2 : Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) + + (): m2.connectExport; +>m2 : Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) +>connectExport : Symbol(m2.connectExport, Decl(declareFileExportAssignment.ts, 3, 5)) + + test1: m2.connectModule; +>test1 : Symbol(test1, Decl(declareFileExportAssignment.ts, 12, 25)) +>m2 : Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) +>connectModule : Symbol(m2.connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) + + test2(): m2.connectModule; +>test2 : Symbol(test2, Decl(declareFileExportAssignment.ts, 13, 28)) +>m2 : Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) +>connectModule : Symbol(m2.connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) + +}; + +export = m2; +>m2 : Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) + diff --git a/tests/baselines/reference/declareFileExportAssignment.types b/tests/baselines/reference/declareFileExportAssignment.types index b3f43118e6d42..cf9377b290475 100644 --- a/tests/baselines/reference/declareFileExportAssignment.types +++ b/tests/baselines/reference/declareFileExportAssignment.types @@ -1,50 +1,50 @@ === tests/cases/compiler/declareFileExportAssignment.ts === module m2 { ->m2 : { (): connectExport; test1: connectModule; test2(): connectModule; }, Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) +>m2 : { (): connectExport; test1: connectModule; test2(): connectModule; } export interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(declareFileExportAssignment.ts, 2, 9)) ->req : any, Symbol(req, Decl(declareFileExportAssignment.ts, 2, 13)) ->next : any, Symbol(next, Decl(declareFileExportAssignment.ts, 2, 18)) +>res : any +>req : any +>next : any } export interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(declareFileExportAssignment.ts, 3, 5)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(declareFileExportAssignment.ts, 4, 36)) ->mod : connectModule, Symbol(mod, Decl(declareFileExportAssignment.ts, 5, 14)) ->connectModule : connectModule, Symbol(connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) ->connectExport : connectExport, Symbol(connectExport, Decl(declareFileExportAssignment.ts, 3, 5)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(declareFileExportAssignment.ts, 5, 51)) ->port : number, Symbol(port, Decl(declareFileExportAssignment.ts, 6, 17)) +>listen : (port: number) => void +>port : number } } var m2: { ->m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) +>m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } (): m2.connectExport; ->m2 : any, Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) ->connectExport : m2.connectExport, Symbol(m2.connectExport, Decl(declareFileExportAssignment.ts, 3, 5)) +>m2 : any +>connectExport : m2.connectExport test1: m2.connectModule; ->test1 : m2.connectModule, Symbol(test1, Decl(declareFileExportAssignment.ts, 12, 25)) ->m2 : any, Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) +>test1 : m2.connectModule +>m2 : any +>connectModule : m2.connectModule test2(): m2.connectModule; ->test2 : () => m2.connectModule, Symbol(test2, Decl(declareFileExportAssignment.ts, 13, 28)) ->m2 : any, Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declareFileExportAssignment.ts, 0, 11)) +>test2 : () => m2.connectModule +>m2 : any +>connectModule : m2.connectModule }; export = m2; ->m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(m2, Decl(declareFileExportAssignment.ts, 0, 0), Decl(declareFileExportAssignment.ts, 11, 3)) +>m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } diff --git a/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.symbols b/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.symbols new file mode 100644 index 0000000000000..e829c3d2f9291 --- /dev/null +++ b/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.symbols @@ -0,0 +1,51 @@ +=== tests/cases/compiler/declareFileExportAssignmentWithVarFromVariableStatement.ts === +module m2 { +>m2 : Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) + + export interface connectModule { +>connectModule : Symbol(connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) + + (res, req, next): void; +>res : Symbol(res, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 2, 9)) +>req : Symbol(req, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 2, 13)) +>next : Symbol(next, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 2, 18)) + } + export interface connectExport { +>connectExport : Symbol(connectExport, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 3, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 4, 36)) +>mod : Symbol(mod, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 5, 14)) +>connectModule : Symbol(connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) +>connectExport : Symbol(connectExport, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 3, 5)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 5, 51)) +>port : Symbol(port, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 6, 17)) + } + +} + +var x = 10, m2: { +>x : Symbol(x, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 3)) +>m2 : Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) + + (): m2.connectExport; +>m2 : Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) +>connectExport : Symbol(m2.connectExport, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 3, 5)) + + test1: m2.connectModule; +>test1 : Symbol(test1, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 12, 25)) +>m2 : Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) +>connectModule : Symbol(m2.connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) + + test2(): m2.connectModule; +>test2 : Symbol(test2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 13, 28)) +>m2 : Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) +>connectModule : Symbol(m2.connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) + +}; + +export = m2; +>m2 : Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) + diff --git a/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.types b/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.types index 78bd39f423ffb..c33ed5219a86c 100644 --- a/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.types +++ b/tests/baselines/reference/declareFileExportAssignmentWithVarFromVariableStatement.types @@ -1,52 +1,52 @@ === tests/cases/compiler/declareFileExportAssignmentWithVarFromVariableStatement.ts === module m2 { ->m2 : { (): connectExport; test1: connectModule; test2(): connectModule; }, Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) +>m2 : { (): connectExport; test1: connectModule; test2(): connectModule; } export interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 2, 9)) ->req : any, Symbol(req, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 2, 13)) ->next : any, Symbol(next, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 2, 18)) +>res : any +>req : any +>next : any } export interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 3, 5)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 4, 36)) ->mod : connectModule, Symbol(mod, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 5, 14)) ->connectModule : connectModule, Symbol(connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) ->connectExport : connectExport, Symbol(connectExport, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 3, 5)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 5, 51)) ->port : number, Symbol(port, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 6, 17)) +>listen : (port: number) => void +>port : number } } var x = 10, m2: { ->x : number, Symbol(x, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 3)) +>x : number >10 : number ->m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) +>m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } (): m2.connectExport; ->m2 : any, Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) ->connectExport : m2.connectExport, Symbol(m2.connectExport, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 3, 5)) +>m2 : any +>connectExport : m2.connectExport test1: m2.connectModule; ->test1 : m2.connectModule, Symbol(test1, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 12, 25)) ->m2 : any, Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) +>test1 : m2.connectModule +>m2 : any +>connectModule : m2.connectModule test2(): m2.connectModule; ->test2 : () => m2.connectModule, Symbol(test2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 13, 28)) ->m2 : any, Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 11)) +>test2 : () => m2.connectModule +>m2 : any +>connectModule : m2.connectModule }; export = m2; ->m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(m2, Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 0, 0), Decl(declareFileExportAssignmentWithVarFromVariableStatement.ts, 11, 11)) +>m2 : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } diff --git a/tests/baselines/reference/declaredExternalModule.symbols b/tests/baselines/reference/declaredExternalModule.symbols new file mode 100644 index 0000000000000..e6fde33f2d0f3 --- /dev/null +++ b/tests/baselines/reference/declaredExternalModule.symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/declaredExternalModule.ts === +declare module 'connect' { + + interface connectModule { +>connectModule : Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) + + (res, req, next): void; +>res : Symbol(res, Decl(declaredExternalModule.ts, 4, 9)) +>req : Symbol(req, Decl(declaredExternalModule.ts, 4, 13)) +>next : Symbol(next, Decl(declaredExternalModule.ts, 4, 18)) + + } + + interface connectExport { +>connectExport : Symbol(connectExport, Decl(declaredExternalModule.ts, 6, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(declaredExternalModule.ts, 8, 29)) +>mod : Symbol(mod, Decl(declaredExternalModule.ts, 10, 14)) +>connectModule : Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) +>connectExport : Symbol(connectExport, Decl(declaredExternalModule.ts, 6, 5)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(declaredExternalModule.ts, 10, 51)) +>port : Symbol(port, Decl(declaredExternalModule.ts, 12, 17)) + + } + + var server: { +>server : Symbol(server, Decl(declaredExternalModule.ts, 16, 7)) + + (): connectExport; +>connectExport : Symbol(connectExport, Decl(declaredExternalModule.ts, 6, 5)) + + test1: connectModule; // No error +>test1 : Symbol(test1, Decl(declaredExternalModule.ts, 18, 26)) +>connectModule : Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) + + test2(): connectModule; // ERROR: Return type of method from exported interface has or is using private type ''connect'.connectModule'. +>test2 : Symbol(test2, Decl(declaredExternalModule.ts, 20, 29)) +>connectModule : Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) + + }; +} + diff --git a/tests/baselines/reference/declaredExternalModule.types b/tests/baselines/reference/declaredExternalModule.types index 00e66276a9ed8..5ce504e7f4b84 100644 --- a/tests/baselines/reference/declaredExternalModule.types +++ b/tests/baselines/reference/declaredExternalModule.types @@ -2,43 +2,43 @@ declare module 'connect' { interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(declaredExternalModule.ts, 4, 9)) ->req : any, Symbol(req, Decl(declaredExternalModule.ts, 4, 13)) ->next : any, Symbol(next, Decl(declaredExternalModule.ts, 4, 18)) +>res : any +>req : any +>next : any } interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(declaredExternalModule.ts, 6, 5)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(declaredExternalModule.ts, 8, 29)) ->mod : connectModule, Symbol(mod, Decl(declaredExternalModule.ts, 10, 14)) ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) ->connectExport : connectExport, Symbol(connectExport, Decl(declaredExternalModule.ts, 6, 5)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(declaredExternalModule.ts, 10, 51)) ->port : number, Symbol(port, Decl(declaredExternalModule.ts, 12, 17)) +>listen : (port: number) => void +>port : number } var server: { ->server : { (): connectExport; test1: connectModule; test2(): connectModule; }, Symbol(server, Decl(declaredExternalModule.ts, 16, 7)) +>server : { (): connectExport; test1: connectModule; test2(): connectModule; } (): connectExport; ->connectExport : connectExport, Symbol(connectExport, Decl(declaredExternalModule.ts, 6, 5)) +>connectExport : connectExport test1: connectModule; // No error ->test1 : connectModule, Symbol(test1, Decl(declaredExternalModule.ts, 18, 26)) ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) +>test1 : connectModule +>connectModule : connectModule test2(): connectModule; // ERROR: Return type of method from exported interface has or is using private type ''connect'.connectModule'. ->test2 : () => connectModule, Symbol(test2, Decl(declaredExternalModule.ts, 20, 29)) ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModule.ts, 0, 26)) +>test2 : () => connectModule +>connectModule : connectModule }; } diff --git a/tests/baselines/reference/declaredExternalModuleWithExportAssignment.symbols b/tests/baselines/reference/declaredExternalModuleWithExportAssignment.symbols new file mode 100644 index 0000000000000..360f57d7a9ad1 --- /dev/null +++ b/tests/baselines/reference/declaredExternalModuleWithExportAssignment.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/declaredExternalModuleWithExportAssignment.ts === +declare module 'connect' { + interface connectModule { +>connectModule : Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) + + (res, req, next): void; +>res : Symbol(res, Decl(declaredExternalModuleWithExportAssignment.ts, 2, 9)) +>req : Symbol(req, Decl(declaredExternalModuleWithExportAssignment.ts, 2, 13)) +>next : Symbol(next, Decl(declaredExternalModuleWithExportAssignment.ts, 2, 18)) + } + + interface connectExport { +>connectExport : Symbol(connectExport, Decl(declaredExternalModuleWithExportAssignment.ts, 3, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(declaredExternalModuleWithExportAssignment.ts, 5, 29)) +>mod : Symbol(mod, Decl(declaredExternalModuleWithExportAssignment.ts, 6, 14)) +>connectModule : Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) +>connectExport : Symbol(connectExport, Decl(declaredExternalModuleWithExportAssignment.ts, 3, 5)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(declaredExternalModuleWithExportAssignment.ts, 6, 51)) +>port : Symbol(port, Decl(declaredExternalModuleWithExportAssignment.ts, 7, 17)) + } + + var server: { +>server : Symbol(server, Decl(declaredExternalModuleWithExportAssignment.ts, 10, 7)) + + (): connectExport; +>connectExport : Symbol(connectExport, Decl(declaredExternalModuleWithExportAssignment.ts, 3, 5)) + + test1: connectModule; +>test1 : Symbol(test1, Decl(declaredExternalModuleWithExportAssignment.ts, 11, 26)) +>connectModule : Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) + + test2(): connectModule; +>test2 : Symbol(test2, Decl(declaredExternalModuleWithExportAssignment.ts, 12, 29)) +>connectModule : Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) + + }; + export = server; +>server : Symbol(server, Decl(declaredExternalModuleWithExportAssignment.ts, 10, 7)) +} + diff --git a/tests/baselines/reference/declaredExternalModuleWithExportAssignment.types b/tests/baselines/reference/declaredExternalModuleWithExportAssignment.types index 5e1ce643910f8..e550e8ee13dfc 100644 --- a/tests/baselines/reference/declaredExternalModuleWithExportAssignment.types +++ b/tests/baselines/reference/declaredExternalModuleWithExportAssignment.types @@ -1,44 +1,44 @@ === tests/cases/compiler/declaredExternalModuleWithExportAssignment.ts === declare module 'connect' { interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(declaredExternalModuleWithExportAssignment.ts, 2, 9)) ->req : any, Symbol(req, Decl(declaredExternalModuleWithExportAssignment.ts, 2, 13)) ->next : any, Symbol(next, Decl(declaredExternalModuleWithExportAssignment.ts, 2, 18)) +>res : any +>req : any +>next : any } interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(declaredExternalModuleWithExportAssignment.ts, 3, 5)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(declaredExternalModuleWithExportAssignment.ts, 5, 29)) ->mod : connectModule, Symbol(mod, Decl(declaredExternalModuleWithExportAssignment.ts, 6, 14)) ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) ->connectExport : connectExport, Symbol(connectExport, Decl(declaredExternalModuleWithExportAssignment.ts, 3, 5)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(declaredExternalModuleWithExportAssignment.ts, 6, 51)) ->port : number, Symbol(port, Decl(declaredExternalModuleWithExportAssignment.ts, 7, 17)) +>listen : (port: number) => void +>port : number } var server: { ->server : { (): connectExport; test1: connectModule; test2(): connectModule; }, Symbol(server, Decl(declaredExternalModuleWithExportAssignment.ts, 10, 7)) +>server : { (): connectExport; test1: connectModule; test2(): connectModule; } (): connectExport; ->connectExport : connectExport, Symbol(connectExport, Decl(declaredExternalModuleWithExportAssignment.ts, 3, 5)) +>connectExport : connectExport test1: connectModule; ->test1 : connectModule, Symbol(test1, Decl(declaredExternalModuleWithExportAssignment.ts, 11, 26)) ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) +>test1 : connectModule +>connectModule : connectModule test2(): connectModule; ->test2 : () => connectModule, Symbol(test2, Decl(declaredExternalModuleWithExportAssignment.ts, 12, 29)) ->connectModule : connectModule, Symbol(connectModule, Decl(declaredExternalModuleWithExportAssignment.ts, 0, 26)) +>test2 : () => connectModule +>connectModule : connectModule }; export = server; ->server : { (): connectExport; test1: connectModule; test2(): connectModule; }, Symbol(server, Decl(declaredExternalModuleWithExportAssignment.ts, 10, 7)) +>server : { (): connectExport; test1: connectModule; test2(): connectModule; } } diff --git a/tests/baselines/reference/decoratedClassFromExternalModule.symbols b/tests/baselines/reference/decoratedClassFromExternalModule.symbols new file mode 100644 index 0000000000000..aa17dde616a62 --- /dev/null +++ b/tests/baselines/reference/decoratedClassFromExternalModule.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decorated.ts === +function decorate() { } +>decorate : Symbol(decorate, Decl(decorated.ts, 0, 0)) + +@decorate +>decorate : Symbol(decorate, Decl(decorated.ts, 0, 0)) + +export default class Decorated { } +>Decorated : Symbol(Decorated, Decl(decorated.ts, 0, 23)) + +=== tests/cases/conformance/decorators/class/undecorated.ts === +import Decorated from 'decorated'; +>Decorated : Symbol(Decorated, Decl(undecorated.ts, 0, 6)) + diff --git a/tests/baselines/reference/decoratedClassFromExternalModule.types b/tests/baselines/reference/decoratedClassFromExternalModule.types index 2c2e5223ae038..4234b6a4b15ec 100644 --- a/tests/baselines/reference/decoratedClassFromExternalModule.types +++ b/tests/baselines/reference/decoratedClassFromExternalModule.types @@ -1,14 +1,14 @@ === tests/cases/conformance/decorators/class/decorated.ts === function decorate() { } ->decorate : () => void, Symbol(decorate, Decl(decorated.ts, 0, 0)) +>decorate : () => void @decorate ->decorate : () => void, Symbol(decorate, Decl(decorated.ts, 0, 0)) +>decorate : () => void export default class Decorated { } ->Decorated : Decorated, Symbol(Decorated, Decl(decorated.ts, 0, 23)) +>Decorated : Decorated === tests/cases/conformance/decorators/class/undecorated.ts === import Decorated from 'decorated'; ->Decorated : typeof Decorated, Symbol(Decorated, Decl(undecorated.ts, 0, 6)) +>Decorated : typeof Decorated diff --git a/tests/baselines/reference/decoratorOnClass1.symbols b/tests/baselines/reference/decoratorOnClass1.symbols new file mode 100644 index 0000000000000..580bf2999eefb --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass1.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass1.ts === +declare function dec(target: T): T; +>dec : Symbol(dec, Decl(decoratorOnClass1.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClass1.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClass1.ts, 0, 24)) +>T : Symbol(T, Decl(decoratorOnClass1.ts, 0, 21)) +>T : Symbol(T, Decl(decoratorOnClass1.ts, 0, 21)) + +@dec +>dec : Symbol(dec, Decl(decoratorOnClass1.ts, 0, 0)) + +class C { +>C : Symbol(C, Decl(decoratorOnClass1.ts, 0, 38)) +} diff --git a/tests/baselines/reference/decoratorOnClass1.types b/tests/baselines/reference/decoratorOnClass1.types index 22a890dd73fb3..91c9feb4e3530 100644 --- a/tests/baselines/reference/decoratorOnClass1.types +++ b/tests/baselines/reference/decoratorOnClass1.types @@ -1,14 +1,14 @@ === tests/cases/conformance/decorators/class/decoratorOnClass1.ts === declare function dec(target: T): T; ->dec : (target: T) => T, Symbol(dec, Decl(decoratorOnClass1.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClass1.ts, 0, 21)) ->target : T, Symbol(target, Decl(decoratorOnClass1.ts, 0, 24)) ->T : T, Symbol(T, Decl(decoratorOnClass1.ts, 0, 21)) ->T : T, Symbol(T, Decl(decoratorOnClass1.ts, 0, 21)) +>dec : (target: T) => T +>T : T +>target : T +>T : T +>T : T @dec ->dec : (target: T) => T, Symbol(dec, Decl(decoratorOnClass1.ts, 0, 0)) +>dec : (target: T) => T class C { ->C : C, Symbol(C, Decl(decoratorOnClass1.ts, 0, 38)) +>C : C } diff --git a/tests/baselines/reference/decoratorOnClass2.symbols b/tests/baselines/reference/decoratorOnClass2.symbols new file mode 100644 index 0000000000000..9fadb25b05530 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass2.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass2.ts === +declare function dec(target: T): T; +>dec : Symbol(dec, Decl(decoratorOnClass2.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClass2.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClass2.ts, 0, 24)) +>T : Symbol(T, Decl(decoratorOnClass2.ts, 0, 21)) +>T : Symbol(T, Decl(decoratorOnClass2.ts, 0, 21)) + +@dec +>dec : Symbol(dec, Decl(decoratorOnClass2.ts, 0, 0)) + +export class C { +>C : Symbol(C, Decl(decoratorOnClass2.ts, 0, 38)) +} diff --git a/tests/baselines/reference/decoratorOnClass2.types b/tests/baselines/reference/decoratorOnClass2.types index e9e9947bb265c..48565b74b4310 100644 --- a/tests/baselines/reference/decoratorOnClass2.types +++ b/tests/baselines/reference/decoratorOnClass2.types @@ -1,14 +1,14 @@ === tests/cases/conformance/decorators/class/decoratorOnClass2.ts === declare function dec(target: T): T; ->dec : (target: T) => T, Symbol(dec, Decl(decoratorOnClass2.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClass2.ts, 0, 21)) ->target : T, Symbol(target, Decl(decoratorOnClass2.ts, 0, 24)) ->T : T, Symbol(T, Decl(decoratorOnClass2.ts, 0, 21)) ->T : T, Symbol(T, Decl(decoratorOnClass2.ts, 0, 21)) +>dec : (target: T) => T +>T : T +>target : T +>T : T +>T : T @dec ->dec : (target: T) => T, Symbol(dec, Decl(decoratorOnClass2.ts, 0, 0)) +>dec : (target: T) => T export class C { ->C : C, Symbol(C, Decl(decoratorOnClass2.ts, 0, 38)) +>C : C } diff --git a/tests/baselines/reference/decoratorOnClass4.symbols b/tests/baselines/reference/decoratorOnClass4.symbols new file mode 100644 index 0000000000000..7ecec97ec75e7 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass4.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass4.ts === +declare function dec(): (target: T) => T; +>dec : Symbol(dec, Decl(decoratorOnClass4.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClass4.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClass4.ts, 0, 28)) +>T : Symbol(T, Decl(decoratorOnClass4.ts, 0, 25)) +>T : Symbol(T, Decl(decoratorOnClass4.ts, 0, 25)) + +@dec() +>dec : Symbol(dec, Decl(decoratorOnClass4.ts, 0, 0)) + +class C { +>C : Symbol(C, Decl(decoratorOnClass4.ts, 0, 44)) +} diff --git a/tests/baselines/reference/decoratorOnClass4.types b/tests/baselines/reference/decoratorOnClass4.types index b8e4e311cfc83..425aa63ac213d 100644 --- a/tests/baselines/reference/decoratorOnClass4.types +++ b/tests/baselines/reference/decoratorOnClass4.types @@ -1,15 +1,15 @@ === tests/cases/conformance/decorators/class/decoratorOnClass4.ts === declare function dec(): (target: T) => T; ->dec : () => (target: T) => T, Symbol(dec, Decl(decoratorOnClass4.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClass4.ts, 0, 25)) ->target : T, Symbol(target, Decl(decoratorOnClass4.ts, 0, 28)) ->T : T, Symbol(T, Decl(decoratorOnClass4.ts, 0, 25)) ->T : T, Symbol(T, Decl(decoratorOnClass4.ts, 0, 25)) +>dec : () => (target: T) => T +>T : T +>target : T +>T : T +>T : T @dec() >dec() : (target: T) => T ->dec : () => (target: T) => T, Symbol(dec, Decl(decoratorOnClass4.ts, 0, 0)) +>dec : () => (target: T) => T class C { ->C : C, Symbol(C, Decl(decoratorOnClass4.ts, 0, 44)) +>C : C } diff --git a/tests/baselines/reference/decoratorOnClass5.symbols b/tests/baselines/reference/decoratorOnClass5.symbols new file mode 100644 index 0000000000000..7291d593842a3 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClass5.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/decoratorOnClass5.ts === +declare function dec(): (target: T) => T; +>dec : Symbol(dec, Decl(decoratorOnClass5.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClass5.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClass5.ts, 0, 28)) +>T : Symbol(T, Decl(decoratorOnClass5.ts, 0, 25)) +>T : Symbol(T, Decl(decoratorOnClass5.ts, 0, 25)) + +@dec() +>dec : Symbol(dec, Decl(decoratorOnClass5.ts, 0, 0)) + +class C { +>C : Symbol(C, Decl(decoratorOnClass5.ts, 0, 44)) +} diff --git a/tests/baselines/reference/decoratorOnClass5.types b/tests/baselines/reference/decoratorOnClass5.types index 98d7b5e6925c5..1c967ffcc0011 100644 --- a/tests/baselines/reference/decoratorOnClass5.types +++ b/tests/baselines/reference/decoratorOnClass5.types @@ -1,15 +1,15 @@ === tests/cases/conformance/decorators/class/decoratorOnClass5.ts === declare function dec(): (target: T) => T; ->dec : () => (target: T) => T, Symbol(dec, Decl(decoratorOnClass5.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClass5.ts, 0, 25)) ->target : T, Symbol(target, Decl(decoratorOnClass5.ts, 0, 28)) ->T : T, Symbol(T, Decl(decoratorOnClass5.ts, 0, 25)) ->T : T, Symbol(T, Decl(decoratorOnClass5.ts, 0, 25)) +>dec : () => (target: T) => T +>T : T +>target : T +>T : T +>T : T @dec() >dec() : (target: T) => T ->dec : () => (target: T) => T, Symbol(dec, Decl(decoratorOnClass5.ts, 0, 0)) +>dec : () => (target: T) => T class C { ->C : C, Symbol(C, Decl(decoratorOnClass5.ts, 0, 44)) +>C : C } diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.symbols b/tests/baselines/reference/decoratorOnClassAccessor1.symbols new file mode 100644 index 0000000000000..933dff1b4c5c0 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor1.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassAccessor1.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassAccessor1.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassAccessor1.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassAccessor1.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassAccessor1.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor1.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor1.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassAccessor1.ts, 0, 126)) + + @dec get accessor() { return 1; } +>dec : Symbol(dec, Decl(decoratorOnClassAccessor1.ts, 0, 0)) +>accessor : Symbol(accessor, Decl(decoratorOnClassAccessor1.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.types b/tests/baselines/reference/decoratorOnClassAccessor1.types index b2bb684b76973..e5ba5149d7aaa 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor1.types +++ b/tests/baselines/reference/decoratorOnClassAccessor1.types @@ -1,20 +1,20 @@ === tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor1.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor1.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor1.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassAccessor1.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassAccessor1.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassAccessor1.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor1.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor1.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassAccessor1.ts, 0, 126)) +>C : C @dec get accessor() { return 1; } ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor1.ts, 0, 0)) ->accessor : number, Symbol(accessor, Decl(decoratorOnClassAccessor1.ts, 2, 9)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>accessor : number >1 : number } diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.symbols b/tests/baselines/reference/decoratorOnClassAccessor2.symbols new file mode 100644 index 0000000000000..5738bb50bb804 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor2.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassAccessor2.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassAccessor2.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassAccessor2.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassAccessor2.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassAccessor2.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor2.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor2.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassAccessor2.ts, 0, 126)) + + @dec public get accessor() { return 1; } +>dec : Symbol(dec, Decl(decoratorOnClassAccessor2.ts, 0, 0)) +>accessor : Symbol(accessor, Decl(decoratorOnClassAccessor2.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.types b/tests/baselines/reference/decoratorOnClassAccessor2.types index 2d64bd5063ad7..32902ce7ca08f 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor2.types +++ b/tests/baselines/reference/decoratorOnClassAccessor2.types @@ -1,20 +1,20 @@ === tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor2.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor2.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor2.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassAccessor2.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassAccessor2.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassAccessor2.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor2.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor2.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassAccessor2.ts, 0, 126)) +>C : C @dec public get accessor() { return 1; } ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor2.ts, 0, 0)) ->accessor : number, Symbol(accessor, Decl(decoratorOnClassAccessor2.ts, 2, 9)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>accessor : number >1 : number } diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.symbols b/tests/baselines/reference/decoratorOnClassAccessor4.symbols new file mode 100644 index 0000000000000..1100df1c08173 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor4.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassAccessor4.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassAccessor4.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassAccessor4.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassAccessor4.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassAccessor4.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor4.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor4.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassAccessor4.ts, 0, 126)) + + @dec set accessor(value: number) { } +>dec : Symbol(dec, Decl(decoratorOnClassAccessor4.ts, 0, 0)) +>accessor : Symbol(accessor, Decl(decoratorOnClassAccessor4.ts, 2, 9)) +>value : Symbol(value, Decl(decoratorOnClassAccessor4.ts, 3, 22)) +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.types b/tests/baselines/reference/decoratorOnClassAccessor4.types index ee04097cc5f8b..59399c5ea3128 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor4.types +++ b/tests/baselines/reference/decoratorOnClassAccessor4.types @@ -1,20 +1,20 @@ === tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor4.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor4.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor4.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassAccessor4.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassAccessor4.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassAccessor4.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor4.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor4.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassAccessor4.ts, 0, 126)) +>C : C @dec set accessor(value: number) { } ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor4.ts, 0, 0)) ->accessor : number, Symbol(accessor, Decl(decoratorOnClassAccessor4.ts, 2, 9)) ->value : number, Symbol(value, Decl(decoratorOnClassAccessor4.ts, 3, 22)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>accessor : number +>value : number } diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.symbols b/tests/baselines/reference/decoratorOnClassAccessor5.symbols new file mode 100644 index 0000000000000..8d9927776c233 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassAccessor5.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassAccessor5.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassAccessor5.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassAccessor5.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassAccessor5.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassAccessor5.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor5.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassAccessor5.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassAccessor5.ts, 0, 126)) + + @dec public set accessor(value: number) { } +>dec : Symbol(dec, Decl(decoratorOnClassAccessor5.ts, 0, 0)) +>accessor : Symbol(accessor, Decl(decoratorOnClassAccessor5.ts, 2, 9)) +>value : Symbol(value, Decl(decoratorOnClassAccessor5.ts, 3, 29)) +} diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.types b/tests/baselines/reference/decoratorOnClassAccessor5.types index 906cd17d6bd02..8fe5ee55368c2 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor5.types +++ b/tests/baselines/reference/decoratorOnClassAccessor5.types @@ -1,20 +1,20 @@ === tests/cases/conformance/decorators/class/accessor/decoratorOnClassAccessor5.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor5.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor5.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassAccessor5.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassAccessor5.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassAccessor5.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor5.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassAccessor5.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassAccessor5.ts, 0, 126)) +>C : C @dec public set accessor(value: number) { } ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassAccessor5.ts, 0, 0)) ->accessor : number, Symbol(accessor, Decl(decoratorOnClassAccessor5.ts, 2, 9)) ->value : number, Symbol(value, Decl(decoratorOnClassAccessor5.ts, 3, 29)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>accessor : number +>value : number } diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter1.symbols b/tests/baselines/reference/decoratorOnClassConstructorParameter1.symbols new file mode 100644 index 0000000000000..a863f74e2ffb3 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter1.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts === +declare function dec(target: Function, propertyKey: string | symbol, parameterIndex: number): void; +>dec : Symbol(dec, Decl(decoratorOnClassConstructorParameter1.ts, 0, 0)) +>target : Symbol(target, Decl(decoratorOnClassConstructorParameter1.ts, 0, 21)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassConstructorParameter1.ts, 0, 38)) +>parameterIndex : Symbol(parameterIndex, Decl(decoratorOnClassConstructorParameter1.ts, 0, 68)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassConstructorParameter1.ts, 0, 99)) + + constructor(@dec p: number) {} +>dec : Symbol(dec, Decl(decoratorOnClassConstructorParameter1.ts, 0, 0)) +>p : Symbol(p, Decl(decoratorOnClassConstructorParameter1.ts, 3, 16)) +} diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter1.types b/tests/baselines/reference/decoratorOnClassConstructorParameter1.types index 0d46300693168..a325945d8a2d3 100644 --- a/tests/baselines/reference/decoratorOnClassConstructorParameter1.types +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter1.types @@ -1,15 +1,15 @@ === tests/cases/conformance/decorators/class/constructor/parameter/decoratorOnClassConstructorParameter1.ts === declare function dec(target: Function, propertyKey: string | symbol, parameterIndex: number): void; ->dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void, Symbol(dec, Decl(decoratorOnClassConstructorParameter1.ts, 0, 0)) ->target : Function, Symbol(target, Decl(decoratorOnClassConstructorParameter1.ts, 0, 21)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) ->propertyKey : string | symbol, Symbol(propertyKey, Decl(decoratorOnClassConstructorParameter1.ts, 0, 38)) ->parameterIndex : number, Symbol(parameterIndex, Decl(decoratorOnClassConstructorParameter1.ts, 0, 68)) +>dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void +>target : Function +>Function : Function +>propertyKey : string | symbol +>parameterIndex : number class C { ->C : C, Symbol(C, Decl(decoratorOnClassConstructorParameter1.ts, 0, 99)) +>C : C constructor(@dec p: number) {} ->dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void, Symbol(dec, Decl(decoratorOnClassConstructorParameter1.ts, 0, 0)) ->p : number, Symbol(p, Decl(decoratorOnClassConstructorParameter1.ts, 3, 16)) +>dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void +>p : number } diff --git a/tests/baselines/reference/decoratorOnClassMethod1.symbols b/tests/baselines/reference/decoratorOnClassMethod1.symbols new file mode 100644 index 0000000000000..f1463115f49ac --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod1.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod1.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod1.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassMethod1.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod1.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod1.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod1.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod1.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod1.ts, 0, 126)) + + @dec method() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod1.ts, 0, 0)) +>method : Symbol(method, Decl(decoratorOnClassMethod1.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod1.types b/tests/baselines/reference/decoratorOnClassMethod1.types index d92724b25bcf3..fc7f27c5dfb93 100644 --- a/tests/baselines/reference/decoratorOnClassMethod1.types +++ b/tests/baselines/reference/decoratorOnClassMethod1.types @@ -1,19 +1,19 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod1.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod1.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod1.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod1.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod1.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod1.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod1.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod1.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod1.ts, 0, 126)) +>C : C @dec method() {} ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod1.ts, 0, 0)) ->method : () => void, Symbol(method, Decl(decoratorOnClassMethod1.ts, 2, 9)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>method : () => void } diff --git a/tests/baselines/reference/decoratorOnClassMethod13.symbols b/tests/baselines/reference/decoratorOnClassMethod13.symbols new file mode 100644 index 0000000000000..af3819924f41d --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod13.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod13.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod13.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod13.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClassMethod13.ts, 0, 28)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod13.ts, 0, 40)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod13.ts, 0, 61)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod13.ts, 0, 25)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod13.ts, 0, 25)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod13.ts, 0, 132)) + + @dec ["1"]() { } +>dec : Symbol(dec, Decl(decoratorOnClassMethod13.ts, 0, 0)) + + @dec ["b"]() { } +>dec : Symbol(dec, Decl(decoratorOnClassMethod13.ts, 0, 0)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod13.types b/tests/baselines/reference/decoratorOnClassMethod13.types index 23714e4e6aecf..2858f8877bd60 100644 --- a/tests/baselines/reference/decoratorOnClassMethod13.types +++ b/tests/baselines/reference/decoratorOnClassMethod13.types @@ -1,23 +1,23 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod13.ts === declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod13.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod13.ts, 0, 25)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod13.ts, 0, 28)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod13.ts, 0, 40)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod13.ts, 0, 61)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod13.ts, 0, 25)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod13.ts, 0, 25)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod13.ts, 0, 132)) +>C : C @dec ["1"]() { } ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod13.ts, 0, 0)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor >"1" : string @dec ["b"]() { } ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod13.ts, 0, 0)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor >"b" : string } diff --git a/tests/baselines/reference/decoratorOnClassMethod2.symbols b/tests/baselines/reference/decoratorOnClassMethod2.symbols new file mode 100644 index 0000000000000..e7942d3ae45fe --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod2.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod2.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod2.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassMethod2.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod2.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod2.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod2.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod2.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod2.ts, 0, 126)) + + @dec public method() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod2.ts, 0, 0)) +>method : Symbol(method, Decl(decoratorOnClassMethod2.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod2.types b/tests/baselines/reference/decoratorOnClassMethod2.types index 5e941cd1c279d..b83605c9c3cda 100644 --- a/tests/baselines/reference/decoratorOnClassMethod2.types +++ b/tests/baselines/reference/decoratorOnClassMethod2.types @@ -1,19 +1,19 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod2.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod2.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod2.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod2.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod2.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod2.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod2.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod2.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod2.ts, 0, 126)) +>C : C @dec public method() {} ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod2.ts, 0, 0)) ->method : () => void, Symbol(method, Decl(decoratorOnClassMethod2.ts, 2, 9)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>method : () => void } diff --git a/tests/baselines/reference/decoratorOnClassMethod4.symbols b/tests/baselines/reference/decoratorOnClassMethod4.symbols new file mode 100644 index 0000000000000..688bc03775a32 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod4.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod4.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod4.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassMethod4.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod4.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod4.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod4.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod4.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod4.ts, 0, 126)) + + @dec ["method"]() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod4.ts, 0, 0)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod4.types b/tests/baselines/reference/decoratorOnClassMethod4.types index 0ed604029fbee..026508257a5f5 100644 --- a/tests/baselines/reference/decoratorOnClassMethod4.types +++ b/tests/baselines/reference/decoratorOnClassMethod4.types @@ -1,19 +1,19 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod4.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod4.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod4.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod4.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod4.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod4.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod4.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod4.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod4.ts, 0, 126)) +>C : C @dec ["method"]() {} ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod4.ts, 0, 0)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor >"method" : string } diff --git a/tests/baselines/reference/decoratorOnClassMethod5.symbols b/tests/baselines/reference/decoratorOnClassMethod5.symbols new file mode 100644 index 0000000000000..6356ca3544959 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod5.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod5.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod5.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClassMethod5.ts, 0, 28)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod5.ts, 0, 40)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod5.ts, 0, 61)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod5.ts, 0, 25)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod5.ts, 0, 25)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod5.ts, 0, 132)) + + @dec() ["method"]() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod5.ts, 0, 0)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod5.types b/tests/baselines/reference/decoratorOnClassMethod5.types index 03347de1d315e..d55ddd832b9fa 100644 --- a/tests/baselines/reference/decoratorOnClassMethod5.types +++ b/tests/baselines/reference/decoratorOnClassMethod5.types @@ -1,20 +1,20 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod5.ts === declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod5.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod5.ts, 0, 25)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod5.ts, 0, 28)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod5.ts, 0, 40)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod5.ts, 0, 61)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod5.ts, 0, 25)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod5.ts, 0, 25)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod5.ts, 0, 132)) +>C : C @dec() ["method"]() {} >dec() : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod5.ts, 0, 0)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor >"method" : string } diff --git a/tests/baselines/reference/decoratorOnClassMethod6.symbols b/tests/baselines/reference/decoratorOnClassMethod6.symbols new file mode 100644 index 0000000000000..8dcdd99a8e9e3 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod6.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts === +declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod6.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod6.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClassMethod6.ts, 0, 28)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod6.ts, 0, 40)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod6.ts, 0, 61)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod6.ts, 0, 25)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod6.ts, 0, 25)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod6.ts, 0, 132)) + + @dec ["method"]() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod6.ts, 0, 0)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod6.types b/tests/baselines/reference/decoratorOnClassMethod6.types index 550393af9e9f9..9da7179176325 100644 --- a/tests/baselines/reference/decoratorOnClassMethod6.types +++ b/tests/baselines/reference/decoratorOnClassMethod6.types @@ -1,19 +1,19 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod6.ts === declare function dec(): (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod6.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod6.ts, 0, 25)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod6.ts, 0, 28)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod6.ts, 0, 40)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod6.ts, 0, 61)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod6.ts, 0, 25)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod6.ts, 0, 25)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod6.ts, 0, 132)) +>C : C @dec ["method"]() {} ->dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod6.ts, 0, 0)) +>dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor >"method" : string } diff --git a/tests/baselines/reference/decoratorOnClassMethod7.symbols b/tests/baselines/reference/decoratorOnClassMethod7.symbols new file mode 100644 index 0000000000000..75c3bee294d56 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod7.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts === +declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; +>dec : Symbol(dec, Decl(decoratorOnClassMethod7.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod7.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassMethod7.ts, 0, 24)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethod7.ts, 0, 36)) +>descriptor : Symbol(descriptor, Decl(decoratorOnClassMethod7.ts, 0, 57)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod7.ts, 0, 21)) +>TypedPropertyDescriptor : Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) +>T : Symbol(T, Decl(decoratorOnClassMethod7.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod7.ts, 0, 126)) + + @dec public ["method"]() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod7.ts, 0, 0)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod7.types b/tests/baselines/reference/decoratorOnClassMethod7.types index f806ba241c624..8a72e24bd5b49 100644 --- a/tests/baselines/reference/decoratorOnClassMethod7.types +++ b/tests/baselines/reference/decoratorOnClassMethod7.types @@ -1,19 +1,19 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod7.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod7.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod7.ts, 0, 21)) ->target : any, Symbol(target, Decl(decoratorOnClassMethod7.ts, 0, 24)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassMethod7.ts, 0, 36)) ->descriptor : TypedPropertyDescriptor, Symbol(descriptor, Decl(decoratorOnClassMethod7.ts, 0, 57)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod7.ts, 0, 21)) ->TypedPropertyDescriptor : TypedPropertyDescriptor, Symbol(TypedPropertyDescriptor, Decl(lib.d.ts, 1171, 36)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod7.ts, 0, 21)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor +>T : T +>target : any +>propertyKey : string +>descriptor : TypedPropertyDescriptor +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T +>TypedPropertyDescriptor : TypedPropertyDescriptor +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod7.ts, 0, 126)) +>C : C @dec public ["method"]() {} ->dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor, Symbol(dec, Decl(decoratorOnClassMethod7.ts, 0, 0)) +>dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor >"method" : string } diff --git a/tests/baselines/reference/decoratorOnClassMethod8.symbols b/tests/baselines/reference/decoratorOnClassMethod8.symbols new file mode 100644 index 0000000000000..84b68b8142160 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethod8.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts === +declare function dec(target: T): T; +>dec : Symbol(dec, Decl(decoratorOnClassMethod8.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassMethod8.ts, 0, 21)) +>target : Symbol(target, Decl(decoratorOnClassMethod8.ts, 0, 24)) +>T : Symbol(T, Decl(decoratorOnClassMethod8.ts, 0, 21)) +>T : Symbol(T, Decl(decoratorOnClassMethod8.ts, 0, 21)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethod8.ts, 0, 38)) + + @dec method() {} +>dec : Symbol(dec, Decl(decoratorOnClassMethod8.ts, 0, 0)) +>method : Symbol(method, Decl(decoratorOnClassMethod8.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethod8.types b/tests/baselines/reference/decoratorOnClassMethod8.types index d7361971c0b19..20890b0984693 100644 --- a/tests/baselines/reference/decoratorOnClassMethod8.types +++ b/tests/baselines/reference/decoratorOnClassMethod8.types @@ -1,15 +1,15 @@ === tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts === declare function dec(target: T): T; ->dec : (target: T) => T, Symbol(dec, Decl(decoratorOnClassMethod8.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod8.ts, 0, 21)) ->target : T, Symbol(target, Decl(decoratorOnClassMethod8.ts, 0, 24)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod8.ts, 0, 21)) ->T : T, Symbol(T, Decl(decoratorOnClassMethod8.ts, 0, 21)) +>dec : (target: T) => T +>T : T +>target : T +>T : T +>T : T class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethod8.ts, 0, 38)) +>C : C @dec method() {} ->dec : (target: T) => T, Symbol(dec, Decl(decoratorOnClassMethod8.ts, 0, 0)) ->method : () => void, Symbol(method, Decl(decoratorOnClassMethod8.ts, 2, 9)) +>dec : (target: T) => T +>method : () => void } diff --git a/tests/baselines/reference/decoratorOnClassMethodParameter1.symbols b/tests/baselines/reference/decoratorOnClassMethodParameter1.symbols new file mode 100644 index 0000000000000..0ced882976699 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassMethodParameter1.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts === +declare function dec(target: Function, propertyKey: string | symbol, parameterIndex: number): void; +>dec : Symbol(dec, Decl(decoratorOnClassMethodParameter1.ts, 0, 0)) +>target : Symbol(target, Decl(decoratorOnClassMethodParameter1.ts, 0, 21)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassMethodParameter1.ts, 0, 38)) +>parameterIndex : Symbol(parameterIndex, Decl(decoratorOnClassMethodParameter1.ts, 0, 68)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassMethodParameter1.ts, 0, 99)) + + method(@dec p: number) {} +>method : Symbol(method, Decl(decoratorOnClassMethodParameter1.ts, 2, 9)) +>dec : Symbol(dec, Decl(decoratorOnClassMethodParameter1.ts, 0, 0)) +>p : Symbol(p, Decl(decoratorOnClassMethodParameter1.ts, 3, 11)) +} diff --git a/tests/baselines/reference/decoratorOnClassMethodParameter1.types b/tests/baselines/reference/decoratorOnClassMethodParameter1.types index 46451695e0057..0b75471471fa3 100644 --- a/tests/baselines/reference/decoratorOnClassMethodParameter1.types +++ b/tests/baselines/reference/decoratorOnClassMethodParameter1.types @@ -1,16 +1,16 @@ === tests/cases/conformance/decorators/class/method/parameter/decoratorOnClassMethodParameter1.ts === declare function dec(target: Function, propertyKey: string | symbol, parameterIndex: number): void; ->dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void, Symbol(dec, Decl(decoratorOnClassMethodParameter1.ts, 0, 0)) ->target : Function, Symbol(target, Decl(decoratorOnClassMethodParameter1.ts, 0, 21)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) ->propertyKey : string | symbol, Symbol(propertyKey, Decl(decoratorOnClassMethodParameter1.ts, 0, 38)) ->parameterIndex : number, Symbol(parameterIndex, Decl(decoratorOnClassMethodParameter1.ts, 0, 68)) +>dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void +>target : Function +>Function : Function +>propertyKey : string | symbol +>parameterIndex : number class C { ->C : C, Symbol(C, Decl(decoratorOnClassMethodParameter1.ts, 0, 99)) +>C : C method(@dec p: number) {} ->method : (p: number) => void, Symbol(method, Decl(decoratorOnClassMethodParameter1.ts, 2, 9)) ->dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void, Symbol(dec, Decl(decoratorOnClassMethodParameter1.ts, 0, 0)) ->p : number, Symbol(p, Decl(decoratorOnClassMethodParameter1.ts, 3, 11)) +>method : (p: number) => void +>dec : (target: Function, propertyKey: string | symbol, parameterIndex: number) => void +>p : number } diff --git a/tests/baselines/reference/decoratorOnClassProperty1.symbols b/tests/baselines/reference/decoratorOnClassProperty1.symbols new file mode 100644 index 0000000000000..1cf97d5ec3bb8 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty1.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts === +declare function dec(target: any, propertyKey: string): void; +>dec : Symbol(dec, Decl(decoratorOnClassProperty1.ts, 0, 0)) +>target : Symbol(target, Decl(decoratorOnClassProperty1.ts, 0, 21)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassProperty1.ts, 0, 33)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassProperty1.ts, 0, 61)) + + @dec prop; +>dec : Symbol(dec, Decl(decoratorOnClassProperty1.ts, 0, 0)) +>prop : Symbol(prop, Decl(decoratorOnClassProperty1.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassProperty1.types b/tests/baselines/reference/decoratorOnClassProperty1.types index 0a67cfc9ea5cb..e974397e5322c 100644 --- a/tests/baselines/reference/decoratorOnClassProperty1.types +++ b/tests/baselines/reference/decoratorOnClassProperty1.types @@ -1,13 +1,13 @@ === tests/cases/conformance/decorators/class/property/decoratorOnClassProperty1.ts === declare function dec(target: any, propertyKey: string): void; ->dec : (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty1.ts, 0, 0)) ->target : any, Symbol(target, Decl(decoratorOnClassProperty1.ts, 0, 21)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassProperty1.ts, 0, 33)) +>dec : (target: any, propertyKey: string) => void +>target : any +>propertyKey : string class C { ->C : C, Symbol(C, Decl(decoratorOnClassProperty1.ts, 0, 61)) +>C : C @dec prop; ->dec : (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty1.ts, 0, 0)) ->prop : any, Symbol(prop, Decl(decoratorOnClassProperty1.ts, 2, 9)) +>dec : (target: any, propertyKey: string) => void +>prop : any } diff --git a/tests/baselines/reference/decoratorOnClassProperty10.symbols b/tests/baselines/reference/decoratorOnClassProperty10.symbols new file mode 100644 index 0000000000000..22af0bd8b5018 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty10.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts === +declare function dec(): (target: any, propertyKey: string) => void; +>dec : Symbol(dec, Decl(decoratorOnClassProperty10.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassProperty10.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClassProperty10.ts, 0, 28)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassProperty10.ts, 0, 40)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassProperty10.ts, 0, 70)) + + @dec() prop; +>dec : Symbol(dec, Decl(decoratorOnClassProperty10.ts, 0, 0)) +>prop : Symbol(prop, Decl(decoratorOnClassProperty10.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassProperty10.types b/tests/baselines/reference/decoratorOnClassProperty10.types index 57d437272f685..d0aa05589ff13 100644 --- a/tests/baselines/reference/decoratorOnClassProperty10.types +++ b/tests/baselines/reference/decoratorOnClassProperty10.types @@ -1,15 +1,15 @@ === tests/cases/conformance/decorators/class/property/decoratorOnClassProperty10.ts === declare function dec(): (target: any, propertyKey: string) => void; ->dec : () => (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty10.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassProperty10.ts, 0, 25)) ->target : any, Symbol(target, Decl(decoratorOnClassProperty10.ts, 0, 28)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassProperty10.ts, 0, 40)) +>dec : () => (target: any, propertyKey: string) => void +>T : T +>target : any +>propertyKey : string class C { ->C : C, Symbol(C, Decl(decoratorOnClassProperty10.ts, 0, 70)) +>C : C @dec() prop; >dec() : (target: any, propertyKey: string) => void ->dec : () => (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty10.ts, 0, 0)) ->prop : any, Symbol(prop, Decl(decoratorOnClassProperty10.ts, 2, 9)) +>dec : () => (target: any, propertyKey: string) => void +>prop : any } diff --git a/tests/baselines/reference/decoratorOnClassProperty11.symbols b/tests/baselines/reference/decoratorOnClassProperty11.symbols new file mode 100644 index 0000000000000..c7d6e39c71350 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty11.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts === +declare function dec(): (target: any, propertyKey: string) => void; +>dec : Symbol(dec, Decl(decoratorOnClassProperty11.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassProperty11.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClassProperty11.ts, 0, 28)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassProperty11.ts, 0, 40)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassProperty11.ts, 0, 70)) + + @dec prop; +>dec : Symbol(dec, Decl(decoratorOnClassProperty11.ts, 0, 0)) +>prop : Symbol(prop, Decl(decoratorOnClassProperty11.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassProperty11.types b/tests/baselines/reference/decoratorOnClassProperty11.types index 036a01a7f0328..5caa467d3ba80 100644 --- a/tests/baselines/reference/decoratorOnClassProperty11.types +++ b/tests/baselines/reference/decoratorOnClassProperty11.types @@ -1,14 +1,14 @@ === tests/cases/conformance/decorators/class/property/decoratorOnClassProperty11.ts === declare function dec(): (target: any, propertyKey: string) => void; ->dec : () => (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty11.ts, 0, 0)) ->T : T, Symbol(T, Decl(decoratorOnClassProperty11.ts, 0, 25)) ->target : any, Symbol(target, Decl(decoratorOnClassProperty11.ts, 0, 28)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassProperty11.ts, 0, 40)) +>dec : () => (target: any, propertyKey: string) => void +>T : T +>target : any +>propertyKey : string class C { ->C : C, Symbol(C, Decl(decoratorOnClassProperty11.ts, 0, 70)) +>C : C @dec prop; ->dec : () => (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty11.ts, 0, 0)) ->prop : any, Symbol(prop, Decl(decoratorOnClassProperty11.ts, 2, 9)) +>dec : () => (target: any, propertyKey: string) => void +>prop : any } diff --git a/tests/baselines/reference/decoratorOnClassProperty2.symbols b/tests/baselines/reference/decoratorOnClassProperty2.symbols new file mode 100644 index 0000000000000..3383fb1418a21 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty2.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts === +declare function dec(target: any, propertyKey: string): void; +>dec : Symbol(dec, Decl(decoratorOnClassProperty2.ts, 0, 0)) +>target : Symbol(target, Decl(decoratorOnClassProperty2.ts, 0, 21)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassProperty2.ts, 0, 33)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassProperty2.ts, 0, 61)) + + @dec public prop; +>dec : Symbol(dec, Decl(decoratorOnClassProperty2.ts, 0, 0)) +>prop : Symbol(prop, Decl(decoratorOnClassProperty2.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassProperty2.types b/tests/baselines/reference/decoratorOnClassProperty2.types index 7cb2705a4c13d..78d35004f8f21 100644 --- a/tests/baselines/reference/decoratorOnClassProperty2.types +++ b/tests/baselines/reference/decoratorOnClassProperty2.types @@ -1,13 +1,13 @@ === tests/cases/conformance/decorators/class/property/decoratorOnClassProperty2.ts === declare function dec(target: any, propertyKey: string): void; ->dec : (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty2.ts, 0, 0)) ->target : any, Symbol(target, Decl(decoratorOnClassProperty2.ts, 0, 21)) ->propertyKey : string, Symbol(propertyKey, Decl(decoratorOnClassProperty2.ts, 0, 33)) +>dec : (target: any, propertyKey: string) => void +>target : any +>propertyKey : string class C { ->C : C, Symbol(C, Decl(decoratorOnClassProperty2.ts, 0, 61)) +>C : C @dec public prop; ->dec : (target: any, propertyKey: string) => void, Symbol(dec, Decl(decoratorOnClassProperty2.ts, 0, 0)) ->prop : any, Symbol(prop, Decl(decoratorOnClassProperty2.ts, 2, 9)) +>dec : (target: any, propertyKey: string) => void +>prop : any } diff --git a/tests/baselines/reference/decoratorOnClassProperty6.symbols b/tests/baselines/reference/decoratorOnClassProperty6.symbols new file mode 100644 index 0000000000000..7b9857e0a19d5 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty6.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts === +declare function dec(target: Function): void; +>dec : Symbol(dec, Decl(decoratorOnClassProperty6.ts, 0, 0)) +>target : Symbol(target, Decl(decoratorOnClassProperty6.ts, 0, 21)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +class C { +>C : Symbol(C, Decl(decoratorOnClassProperty6.ts, 0, 45)) + + @dec prop; +>dec : Symbol(dec, Decl(decoratorOnClassProperty6.ts, 0, 0)) +>prop : Symbol(prop, Decl(decoratorOnClassProperty6.ts, 2, 9)) +} diff --git a/tests/baselines/reference/decoratorOnClassProperty6.types b/tests/baselines/reference/decoratorOnClassProperty6.types index 98f40a77f7d36..59d03678330c0 100644 --- a/tests/baselines/reference/decoratorOnClassProperty6.types +++ b/tests/baselines/reference/decoratorOnClassProperty6.types @@ -1,13 +1,13 @@ === tests/cases/conformance/decorators/class/property/decoratorOnClassProperty6.ts === declare function dec(target: Function): void; ->dec : (target: Function) => void, Symbol(dec, Decl(decoratorOnClassProperty6.ts, 0, 0)) ->target : Function, Symbol(target, Decl(decoratorOnClassProperty6.ts, 0, 21)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>dec : (target: Function) => void +>target : Function +>Function : Function class C { ->C : C, Symbol(C, Decl(decoratorOnClassProperty6.ts, 0, 45)) +>C : C @dec prop; ->dec : (target: Function) => void, Symbol(dec, Decl(decoratorOnClassProperty6.ts, 0, 0)) ->prop : any, Symbol(prop, Decl(decoratorOnClassProperty6.ts, 2, 9)) +>dec : (target: Function) => void +>prop : any } diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherType.symbols b/tests/baselines/reference/decrementOperatorWithAnyOtherType.symbols new file mode 100644 index 0000000000000..594e6d50ac475 --- /dev/null +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherType.symbols @@ -0,0 +1,154 @@ +=== tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithAnyOtherType.ts === +// -- operator on any type + +var ANY: any; +>ANY : Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) + +var ANY1; +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +var ANY2: any[] = ["", ""]; +>ANY2 : Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) + +var obj = {x:1,y:null}; +>obj : Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) +>x : Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) +>y : Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) + +class A { +>A : Symbol(A, Decl(decrementOperatorWithAnyOtherType.ts, 5, 23)) + + public a: any; +>a : Symbol(a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +} +module M { +>M : Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) + + export var n: any; +>n : Symbol(n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +} +var objA = new A(); +>objA : Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) +>A : Symbol(A, Decl(decrementOperatorWithAnyOtherType.ts, 5, 23)) + +// any type var +var ResultIsNumber1 = --ANY; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(decrementOperatorWithAnyOtherType.ts, 15, 3)) +>ANY : Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) + +var ResultIsNumber2 = --ANY1; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(decrementOperatorWithAnyOtherType.ts, 16, 3)) +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +var ResultIsNumber3 = ANY1--; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(decrementOperatorWithAnyOtherType.ts, 18, 3)) +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +var ResultIsNumber4 = ANY1--; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(decrementOperatorWithAnyOtherType.ts, 19, 3)) +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +// expressions +var ResultIsNumber5 = --ANY2[0]; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(decrementOperatorWithAnyOtherType.ts, 22, 3)) +>ANY2 : Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) + +var ResultIsNumber6 = --obj.x; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(decrementOperatorWithAnyOtherType.ts, 23, 3)) +>obj.x : Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj : Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) +>x : Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) + +var ResultIsNumber7 = --obj.y; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(decrementOperatorWithAnyOtherType.ts, 24, 3)) +>obj.y : Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj : Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) +>y : Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) + +var ResultIsNumber8 = --objA.a; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(decrementOperatorWithAnyOtherType.ts, 25, 3)) +>objA.a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) + +var ResultIsNumber = --M.n; +>ResultIsNumber : Symbol(ResultIsNumber, Decl(decrementOperatorWithAnyOtherType.ts, 26, 3)) +>M.n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) + +var ResultIsNumber9 = ANY2[0]--; +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(decrementOperatorWithAnyOtherType.ts, 28, 3)) +>ANY2 : Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) + +var ResultIsNumber10 = obj.x--; +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(decrementOperatorWithAnyOtherType.ts, 29, 3)) +>obj.x : Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj : Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) +>x : Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) + +var ResultIsNumber11 = obj.y--; +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(decrementOperatorWithAnyOtherType.ts, 30, 3)) +>obj.y : Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj : Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) +>y : Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) + +var ResultIsNumber12 = objA.a--; +>ResultIsNumber12 : Symbol(ResultIsNumber12, Decl(decrementOperatorWithAnyOtherType.ts, 31, 3)) +>objA.a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) + +var ResultIsNumber13 = M.n--; +>ResultIsNumber13 : Symbol(ResultIsNumber13, Decl(decrementOperatorWithAnyOtherType.ts, 32, 3)) +>M.n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) + +// miss assignment opertors +--ANY; +>ANY : Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) + +--ANY1; +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +--ANY2[0]; +>ANY2 : Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) + +--ANY, --ANY1; +>ANY : Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +--objA.a; +>objA.a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) + +--M.n; +>M.n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) + +ANY--; +>ANY : Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) + +ANY1--; +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +ANY2[0]--; +>ANY2 : Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) + +ANY--, ANY1--; +>ANY : Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY1 : Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) + +objA.a--; +>objA.a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) + +M.n--; +>M.n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) + diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherType.types b/tests/baselines/reference/decrementOperatorWithAnyOtherType.types index 2c06839a9aafa..65eea6d1a7137 100644 --- a/tests/baselines/reference/decrementOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherType.types @@ -2,198 +2,198 @@ // -- operator on any type var ANY: any; ->ANY : any, Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any var ANY1; ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ANY2: any[] = ["", ""]; ->ANY2 : any[], Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >["", ""] : string[] >"" : string >"" : string var obj = {x:1,y:null}; ->obj : { x: number; y: any; }, Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) +>obj : { x: number; y: any; } >{x:1,y:null} : { x: number; y: null; } ->x : number, Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) +>x : number >1 : number ->y : null, Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) +>y : null >null : null class A { ->A : A, Symbol(A, Decl(decrementOperatorWithAnyOtherType.ts, 5, 23)) +>A : A public a: any; ->a : any, Symbol(a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>a : any } module M { ->M : typeof M, Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) +>M : typeof M export var n: any; ->n : any, Symbol(n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>n : any } var objA = new A(); ->objA : A, Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(decrementOperatorWithAnyOtherType.ts, 5, 23)) +>A : typeof A // any type var var ResultIsNumber1 = --ANY; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(decrementOperatorWithAnyOtherType.ts, 15, 3)) +>ResultIsNumber1 : number >--ANY : number ->ANY : any, Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any var ResultIsNumber2 = --ANY1; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(decrementOperatorWithAnyOtherType.ts, 16, 3)) +>ResultIsNumber2 : number >--ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ResultIsNumber3 = ANY1--; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(decrementOperatorWithAnyOtherType.ts, 18, 3)) +>ResultIsNumber3 : number >ANY1-- : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ResultIsNumber4 = ANY1--; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(decrementOperatorWithAnyOtherType.ts, 19, 3)) +>ResultIsNumber4 : number >ANY1-- : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any // expressions var ResultIsNumber5 = --ANY2[0]; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(decrementOperatorWithAnyOtherType.ts, 22, 3)) +>ResultIsNumber5 : number >--ANY2[0] : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number var ResultIsNumber6 = --obj.x; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(decrementOperatorWithAnyOtherType.ts, 23, 3)) +>ResultIsNumber6 : number >--obj.x : number ->obj.x : number, Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) ->x : number, Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj.x : number +>obj : { x: number; y: any; } +>x : number var ResultIsNumber7 = --obj.y; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(decrementOperatorWithAnyOtherType.ts, 24, 3)) +>ResultIsNumber7 : number >--obj.y : number ->obj.y : any, Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) ->y : any, Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj.y : any +>obj : { x: number; y: any; } +>y : any var ResultIsNumber8 = --objA.a; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(decrementOperatorWithAnyOtherType.ts, 25, 3)) +>ResultIsNumber8 : number >--objA.a : number ->objA.a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any var ResultIsNumber = --M.n; ->ResultIsNumber : number, Symbol(ResultIsNumber, Decl(decrementOperatorWithAnyOtherType.ts, 26, 3)) +>ResultIsNumber : number >--M.n : number ->M.n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any var ResultIsNumber9 = ANY2[0]--; ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(decrementOperatorWithAnyOtherType.ts, 28, 3)) +>ResultIsNumber9 : number >ANY2[0]-- : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number var ResultIsNumber10 = obj.x--; ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(decrementOperatorWithAnyOtherType.ts, 29, 3)) +>ResultIsNumber10 : number >obj.x-- : number ->obj.x : number, Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) ->x : number, Symbol(x, Decl(decrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj.x : number +>obj : { x: number; y: any; } +>x : number var ResultIsNumber11 = obj.y--; ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(decrementOperatorWithAnyOtherType.ts, 30, 3)) +>ResultIsNumber11 : number >obj.y-- : number ->obj.y : any, Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(decrementOperatorWithAnyOtherType.ts, 5, 3)) ->y : any, Symbol(y, Decl(decrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj.y : any +>obj : { x: number; y: any; } +>y : any var ResultIsNumber12 = objA.a--; ->ResultIsNumber12 : number, Symbol(ResultIsNumber12, Decl(decrementOperatorWithAnyOtherType.ts, 31, 3)) +>ResultIsNumber12 : number >objA.a-- : number ->objA.a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any var ResultIsNumber13 = M.n--; ->ResultIsNumber13 : number, Symbol(ResultIsNumber13, Decl(decrementOperatorWithAnyOtherType.ts, 32, 3)) +>ResultIsNumber13 : number >M.n-- : number ->M.n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any // miss assignment opertors --ANY; >--ANY : number ->ANY : any, Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any --ANY1; >--ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any --ANY2[0]; >--ANY2[0] : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number --ANY, --ANY1; >--ANY, --ANY1 : number >--ANY : number ->ANY : any, Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any >--ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any --objA.a; >--objA.a : number ->objA.a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any --M.n; >--M.n : number ->M.n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any ANY--; >ANY-- : number ->ANY : any, Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any ANY1--; >ANY1-- : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any ANY2[0]--; >ANY2[0]-- : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(decrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number ANY--, ANY1--; >ANY--, ANY1-- : number >ANY-- : number ->ANY : any, Symbol(ANY, Decl(decrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any >ANY1-- : number ->ANY1 : any, Symbol(ANY1, Decl(decrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any objA.a--; >objA.a-- : number ->objA.a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(decrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any M.n--; >M.n-- : number ->M.n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(decrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any diff --git a/tests/baselines/reference/decrementOperatorWithNumberType.symbols b/tests/baselines/reference/decrementOperatorWithNumberType.symbols new file mode 100644 index 0000000000000..40d9a67735ea4 --- /dev/null +++ b/tests/baselines/reference/decrementOperatorWithNumberType.symbols @@ -0,0 +1,112 @@ +=== tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithNumberType.ts === +// -- operator on number type +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) + +var NUMBER1: number[] = [1, 2]; +>NUMBER1 : Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) + +class A { +>A : Symbol(A, Decl(decrementOperatorWithNumberType.ts, 2, 31)) + + public a: number; +>a : Symbol(a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +} +module M { +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) + + export var n: number; +>n : Symbol(n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>A : Symbol(A, Decl(decrementOperatorWithNumberType.ts, 2, 31)) + +// number type var +var ResultIsNumber1 = --NUMBER; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(decrementOperatorWithNumberType.ts, 14, 3)) +>NUMBER : Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) + +var ResultIsNumber2 = NUMBER--; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(decrementOperatorWithNumberType.ts, 16, 3)) +>NUMBER : Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) + +// expressions +var ResultIsNumber3 = --objA.a; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(decrementOperatorWithNumberType.ts, 19, 3)) +>objA.a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) + +var ResultIsNumber4 = --M.n; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(decrementOperatorWithNumberType.ts, 20, 3)) +>M.n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) + +var ResultIsNumber5 = objA.a--; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(decrementOperatorWithNumberType.ts, 22, 3)) +>objA.a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) + +var ResultIsNumber6 = M.n--; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(decrementOperatorWithNumberType.ts, 23, 3)) +>M.n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) + +var ResultIsNumber7 = NUMBER1[0]--; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(decrementOperatorWithNumberType.ts, 24, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) + +// miss assignment operators +--NUMBER; +>NUMBER : Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) + +--NUMBER1[0]; +>NUMBER1 : Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) + +--objA.a; +>objA.a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) + +--M.n; +>M.n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) + +--objA.a, M.n; +>objA.a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>M.n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) + +NUMBER--; +>NUMBER : Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) + +NUMBER1[0]--; +>NUMBER1 : Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) + +objA.a--; +>objA.a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) + +M.n--; +>M.n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) + +objA.a--, M.n--; +>objA.a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>M.n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) + diff --git a/tests/baselines/reference/decrementOperatorWithNumberType.types b/tests/baselines/reference/decrementOperatorWithNumberType.types index 1b187016be7ea..f990ad18fc760 100644 --- a/tests/baselines/reference/decrementOperatorWithNumberType.types +++ b/tests/baselines/reference/decrementOperatorWithNumberType.types @@ -1,142 +1,142 @@ === tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithNumberType.ts === // -- operator on number type var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var NUMBER1: number[] = [1, 2]; ->NUMBER1 : number[], Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >[1, 2] : number[] >1 : number >2 : number class A { ->A : A, Symbol(A, Decl(decrementOperatorWithNumberType.ts, 2, 31)) +>A : A public a: number; ->a : number, Symbol(a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>a : number } module M { ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) +>M : typeof M export var n: number; ->n : number, Symbol(n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>n : number } var objA = new A(); ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(decrementOperatorWithNumberType.ts, 2, 31)) +>A : typeof A // number type var var ResultIsNumber1 = --NUMBER; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(decrementOperatorWithNumberType.ts, 14, 3)) +>ResultIsNumber1 : number >--NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsNumber2 = NUMBER--; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(decrementOperatorWithNumberType.ts, 16, 3)) +>ResultIsNumber2 : number >NUMBER-- : number ->NUMBER : number, Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number // expressions var ResultIsNumber3 = --objA.a; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(decrementOperatorWithNumberType.ts, 19, 3)) +>ResultIsNumber3 : number >--objA.a : number ->objA.a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsNumber4 = --M.n; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(decrementOperatorWithNumberType.ts, 20, 3)) +>ResultIsNumber4 : number >--M.n : number ->M.n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsNumber5 = objA.a--; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(decrementOperatorWithNumberType.ts, 22, 3)) +>ResultIsNumber5 : number >objA.a-- : number ->objA.a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsNumber6 = M.n--; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(decrementOperatorWithNumberType.ts, 23, 3)) +>ResultIsNumber6 : number >M.n-- : number ->M.n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsNumber7 = NUMBER1[0]--; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(decrementOperatorWithNumberType.ts, 24, 3)) +>ResultIsNumber7 : number >NUMBER1[0]-- : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number // miss assignment operators --NUMBER; >--NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number --NUMBER1[0]; >--NUMBER1[0] : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number --objA.a; >--objA.a : number ->objA.a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number --M.n; >--M.n : number ->M.n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number --objA.a, M.n; >--objA.a, M.n : number >--objA.a : number ->objA.a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->M.n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>objA.a : number +>objA : A +>a : number +>M.n : number +>M : typeof M +>n : number NUMBER--; >NUMBER-- : number ->NUMBER : number, Symbol(NUMBER, Decl(decrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number NUMBER1[0]--; >NUMBER1[0]-- : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(decrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number objA.a--; >objA.a-- : number ->objA.a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number M.n--; >M.n-- : number ->M.n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number objA.a--, M.n--; >objA.a--, M.n-- : number >objA.a-- : number ->objA.a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(decrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(decrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number >M.n-- : number ->M.n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(decrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(decrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number diff --git a/tests/baselines/reference/defaultIndexProps1.symbols b/tests/baselines/reference/defaultIndexProps1.symbols new file mode 100644 index 0000000000000..e294b9e7dba37 --- /dev/null +++ b/tests/baselines/reference/defaultIndexProps1.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/defaultIndexProps1.ts === +class Foo { +>Foo : Symbol(Foo, Decl(defaultIndexProps1.ts, 0, 0)) + + public v = "Yo"; +>v : Symbol(v, Decl(defaultIndexProps1.ts, 0, 11)) +} + +var f = new Foo(); +>f : Symbol(f, Decl(defaultIndexProps1.ts, 4, 3)) +>Foo : Symbol(Foo, Decl(defaultIndexProps1.ts, 0, 0)) + +var q = f["v"]; +>q : Symbol(q, Decl(defaultIndexProps1.ts, 6, 3)) +>f : Symbol(f, Decl(defaultIndexProps1.ts, 4, 3)) +>"v" : Symbol(Foo.v, Decl(defaultIndexProps1.ts, 0, 11)) + +var o = {v:"Yo2"}; +>o : Symbol(o, Decl(defaultIndexProps1.ts, 8, 3)) +>v : Symbol(v, Decl(defaultIndexProps1.ts, 8, 9)) + +var q2 = o["v"]; +>q2 : Symbol(q2, Decl(defaultIndexProps1.ts, 10, 3)) +>o : Symbol(o, Decl(defaultIndexProps1.ts, 8, 3)) +>"v" : Symbol(v, Decl(defaultIndexProps1.ts, 8, 9)) + diff --git a/tests/baselines/reference/defaultIndexProps1.types b/tests/baselines/reference/defaultIndexProps1.types index 44e3ca6594c09..0b188a40c205c 100644 --- a/tests/baselines/reference/defaultIndexProps1.types +++ b/tests/baselines/reference/defaultIndexProps1.types @@ -1,32 +1,32 @@ === tests/cases/compiler/defaultIndexProps1.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(defaultIndexProps1.ts, 0, 0)) +>Foo : Foo public v = "Yo"; ->v : string, Symbol(v, Decl(defaultIndexProps1.ts, 0, 11)) +>v : string >"Yo" : string } var f = new Foo(); ->f : Foo, Symbol(f, Decl(defaultIndexProps1.ts, 4, 3)) +>f : Foo >new Foo() : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(defaultIndexProps1.ts, 0, 0)) +>Foo : typeof Foo var q = f["v"]; ->q : string, Symbol(q, Decl(defaultIndexProps1.ts, 6, 3)) +>q : string >f["v"] : string ->f : Foo, Symbol(f, Decl(defaultIndexProps1.ts, 4, 3)) ->"v" : string, Symbol(Foo.v, Decl(defaultIndexProps1.ts, 0, 11)) +>f : Foo +>"v" : string var o = {v:"Yo2"}; ->o : { v: string; }, Symbol(o, Decl(defaultIndexProps1.ts, 8, 3)) +>o : { v: string; } >{v:"Yo2"} : { v: string; } ->v : string, Symbol(v, Decl(defaultIndexProps1.ts, 8, 9)) +>v : string >"Yo2" : string var q2 = o["v"]; ->q2 : string, Symbol(q2, Decl(defaultIndexProps1.ts, 10, 3)) +>q2 : string >o["v"] : string ->o : { v: string; }, Symbol(o, Decl(defaultIndexProps1.ts, 8, 3)) ->"v" : string, Symbol(v, Decl(defaultIndexProps1.ts, 8, 9)) +>o : { v: string; } +>"v" : string diff --git a/tests/baselines/reference/defaultIndexProps2.symbols b/tests/baselines/reference/defaultIndexProps2.symbols new file mode 100644 index 0000000000000..53d433351c331 --- /dev/null +++ b/tests/baselines/reference/defaultIndexProps2.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/defaultIndexProps2.ts === +class Foo { +>Foo : Symbol(Foo, Decl(defaultIndexProps2.ts, 0, 0)) + + public v = "Yo"; +>v : Symbol(v, Decl(defaultIndexProps2.ts, 0, 11)) +} + +var f = new Foo(); +>f : Symbol(f, Decl(defaultIndexProps2.ts, 4, 3)) +>Foo : Symbol(Foo, Decl(defaultIndexProps2.ts, 0, 0)) + +// WScript.Echo(f[0]); + +var o = {v:"Yo2"}; +>o : Symbol(o, Decl(defaultIndexProps2.ts, 8, 3)) +>v : Symbol(v, Decl(defaultIndexProps2.ts, 8, 9)) + +// WScript.Echo(o[0]); + +1[0]; +var q = "s"[0]; +>q : Symbol(q, Decl(defaultIndexProps2.ts, 13, 3)) + diff --git a/tests/baselines/reference/defaultIndexProps2.types b/tests/baselines/reference/defaultIndexProps2.types index 3e549d9bdeaab..3b0d8278966e1 100644 --- a/tests/baselines/reference/defaultIndexProps2.types +++ b/tests/baselines/reference/defaultIndexProps2.types @@ -1,23 +1,23 @@ === tests/cases/compiler/defaultIndexProps2.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(defaultIndexProps2.ts, 0, 0)) +>Foo : Foo public v = "Yo"; ->v : string, Symbol(v, Decl(defaultIndexProps2.ts, 0, 11)) +>v : string >"Yo" : string } var f = new Foo(); ->f : Foo, Symbol(f, Decl(defaultIndexProps2.ts, 4, 3)) +>f : Foo >new Foo() : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(defaultIndexProps2.ts, 0, 0)) +>Foo : typeof Foo // WScript.Echo(f[0]); var o = {v:"Yo2"}; ->o : { v: string; }, Symbol(o, Decl(defaultIndexProps2.ts, 8, 3)) +>o : { v: string; } >{v:"Yo2"} : { v: string; } ->v : string, Symbol(v, Decl(defaultIndexProps2.ts, 8, 9)) +>v : string >"Yo2" : string // WScript.Echo(o[0]); @@ -28,7 +28,7 @@ var o = {v:"Yo2"}; >0 : number var q = "s"[0]; ->q : string, Symbol(q, Decl(defaultIndexProps2.ts, 13, 3)) +>q : string >"s"[0] : string >"s" : string >0 : number diff --git a/tests/baselines/reference/deleteOperatorWithBooleanType.symbols b/tests/baselines/reference/deleteOperatorWithBooleanType.symbols new file mode 100644 index 0000000000000..71cb78760f6d2 --- /dev/null +++ b/tests/baselines/reference/deleteOperatorWithBooleanType.symbols @@ -0,0 +1,89 @@ +=== tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithBooleanType.ts === +// delete operator on boolean type +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) + +function foo(): boolean { return true; } +>foo : Symbol(foo, Decl(deleteOperatorWithBooleanType.ts, 1, 21)) + +class A { +>A : Symbol(A, Decl(deleteOperatorWithBooleanType.ts, 3, 40)) + + public a: boolean; +>a : Symbol(a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) + + static foo() { return false; } +>foo : Symbol(A.foo, Decl(deleteOperatorWithBooleanType.ts, 6, 22)) +} +module M { +>M : Symbol(M, Decl(deleteOperatorWithBooleanType.ts, 8, 1)) + + export var n: boolean; +>n : Symbol(n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(deleteOperatorWithBooleanType.ts, 13, 3)) +>A : Symbol(A, Decl(deleteOperatorWithBooleanType.ts, 3, 40)) + +// boolean type var +var ResultIsBoolean1 = delete BOOLEAN; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(deleteOperatorWithBooleanType.ts, 16, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) + +// boolean type literal +var ResultIsBoolean2 = delete true; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(deleteOperatorWithBooleanType.ts, 19, 3)) + +var ResultIsBoolean3 = delete { x: true, y: false }; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(deleteOperatorWithBooleanType.ts, 20, 3)) +>x : Symbol(x, Decl(deleteOperatorWithBooleanType.ts, 20, 31)) +>y : Symbol(y, Decl(deleteOperatorWithBooleanType.ts, 20, 40)) + +// boolean type expressions +var ResultIsBoolean4 = delete objA.a; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(deleteOperatorWithBooleanType.ts, 23, 3)) +>objA.a : Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) + +var ResultIsBoolean5 = delete M.n; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(deleteOperatorWithBooleanType.ts, 24, 3)) +>M.n : Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(deleteOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) + +var ResultIsBoolean6 = delete foo(); +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(deleteOperatorWithBooleanType.ts, 25, 3)) +>foo : Symbol(foo, Decl(deleteOperatorWithBooleanType.ts, 1, 21)) + +var ResultIsBoolean7 = delete A.foo(); +>ResultIsBoolean7 : Symbol(ResultIsBoolean7, Decl(deleteOperatorWithBooleanType.ts, 26, 3)) +>A.foo : Symbol(A.foo, Decl(deleteOperatorWithBooleanType.ts, 6, 22)) +>A : Symbol(A, Decl(deleteOperatorWithBooleanType.ts, 3, 40)) +>foo : Symbol(A.foo, Decl(deleteOperatorWithBooleanType.ts, 6, 22)) + +// multiple delete operator +var ResultIsBoolean8 = delete delete BOOLEAN; +>ResultIsBoolean8 : Symbol(ResultIsBoolean8, Decl(deleteOperatorWithBooleanType.ts, 29, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) + +// miss assignment operators +delete true; +delete BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) + +delete foo(); +>foo : Symbol(foo, Decl(deleteOperatorWithBooleanType.ts, 1, 21)) + +delete true, false; +delete objA.a; +>objA.a : Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) + +delete M.n; +>M.n : Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(deleteOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) + diff --git a/tests/baselines/reference/deleteOperatorWithBooleanType.types b/tests/baselines/reference/deleteOperatorWithBooleanType.types index 9c52742e72cb1..068c67031ef2f 100644 --- a/tests/baselines/reference/deleteOperatorWithBooleanType.types +++ b/tests/baselines/reference/deleteOperatorWithBooleanType.types @@ -1,90 +1,90 @@ === tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithBooleanType.ts === // delete operator on boolean type var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean function foo(): boolean { return true; } ->foo : () => boolean, Symbol(foo, Decl(deleteOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean >true : boolean class A { ->A : A, Symbol(A, Decl(deleteOperatorWithBooleanType.ts, 3, 40)) +>A : A public a: boolean; ->a : boolean, Symbol(a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) +>a : boolean static foo() { return false; } ->foo : () => boolean, Symbol(A.foo, Decl(deleteOperatorWithBooleanType.ts, 6, 22)) +>foo : () => boolean >false : boolean } module M { ->M : typeof M, Symbol(M, Decl(deleteOperatorWithBooleanType.ts, 8, 1)) +>M : typeof M export var n: boolean; ->n : boolean, Symbol(n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) +>n : boolean } var objA = new A(); ->objA : A, Symbol(objA, Decl(deleteOperatorWithBooleanType.ts, 13, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(deleteOperatorWithBooleanType.ts, 3, 40)) +>A : typeof A // boolean type var var ResultIsBoolean1 = delete BOOLEAN; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(deleteOperatorWithBooleanType.ts, 16, 3)) +>ResultIsBoolean1 : boolean >delete BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // boolean type literal var ResultIsBoolean2 = delete true; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(deleteOperatorWithBooleanType.ts, 19, 3)) +>ResultIsBoolean2 : boolean >delete true : boolean >true : boolean var ResultIsBoolean3 = delete { x: true, y: false }; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(deleteOperatorWithBooleanType.ts, 20, 3)) +>ResultIsBoolean3 : boolean >delete { x: true, y: false } : boolean >{ x: true, y: false } : { x: boolean; y: boolean; } ->x : boolean, Symbol(x, Decl(deleteOperatorWithBooleanType.ts, 20, 31)) +>x : boolean >true : boolean ->y : boolean, Symbol(y, Decl(deleteOperatorWithBooleanType.ts, 20, 40)) +>y : boolean >false : boolean // boolean type expressions var ResultIsBoolean4 = delete objA.a; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(deleteOperatorWithBooleanType.ts, 23, 3)) +>ResultIsBoolean4 : boolean >delete objA.a : boolean ->objA.a : boolean, Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean var ResultIsBoolean5 = delete M.n; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(deleteOperatorWithBooleanType.ts, 24, 3)) +>ResultIsBoolean5 : boolean >delete M.n : boolean ->M.n : boolean, Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean var ResultIsBoolean6 = delete foo(); ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(deleteOperatorWithBooleanType.ts, 25, 3)) +>ResultIsBoolean6 : boolean >delete foo() : boolean >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(deleteOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean var ResultIsBoolean7 = delete A.foo(); ->ResultIsBoolean7 : boolean, Symbol(ResultIsBoolean7, Decl(deleteOperatorWithBooleanType.ts, 26, 3)) +>ResultIsBoolean7 : boolean >delete A.foo() : boolean >A.foo() : boolean ->A.foo : () => boolean, Symbol(A.foo, Decl(deleteOperatorWithBooleanType.ts, 6, 22)) ->A : typeof A, Symbol(A, Decl(deleteOperatorWithBooleanType.ts, 3, 40)) ->foo : () => boolean, Symbol(A.foo, Decl(deleteOperatorWithBooleanType.ts, 6, 22)) +>A.foo : () => boolean +>A : typeof A +>foo : () => boolean // multiple delete operator var ResultIsBoolean8 = delete delete BOOLEAN; ->ResultIsBoolean8 : boolean, Symbol(ResultIsBoolean8, Decl(deleteOperatorWithBooleanType.ts, 29, 3)) +>ResultIsBoolean8 : boolean >delete delete BOOLEAN : boolean >delete BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // miss assignment operators delete true; @@ -93,12 +93,12 @@ delete true; delete BOOLEAN; >delete BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(deleteOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean delete foo(); >delete foo() : boolean >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(deleteOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean delete true, false; >delete true, false : boolean @@ -108,13 +108,13 @@ delete true, false; delete objA.a; >delete objA.a : boolean ->objA.a : boolean, Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(deleteOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean delete M.n; >delete M.n : boolean ->M.n : boolean, Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(deleteOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean diff --git a/tests/baselines/reference/deleteOperatorWithEnumType.symbols b/tests/baselines/reference/deleteOperatorWithEnumType.symbols new file mode 100644 index 0000000000000..bdef75325da36 --- /dev/null +++ b/tests/baselines/reference/deleteOperatorWithEnumType.symbols @@ -0,0 +1,59 @@ +=== tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithEnumType.ts === +// delete operator on enum type + +enum ENUM { }; +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) + +enum ENUM1 { A, B, "" }; +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>A : Symbol(ENUM1.A, Decl(deleteOperatorWithEnumType.ts, 3, 12)) +>B : Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) + +// enum type var +var ResultIsBoolean1 = delete ENUM; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(deleteOperatorWithEnumType.ts, 6, 3)) +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) + +var ResultIsBoolean2 = delete ENUM1; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(deleteOperatorWithEnumType.ts, 7, 3)) +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) + +// enum type expressions +var ResultIsBoolean3 = delete ENUM1["A"]; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(deleteOperatorWithEnumType.ts, 10, 3)) +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>"A" : Symbol(ENUM1.A, Decl(deleteOperatorWithEnumType.ts, 3, 12)) + +var ResultIsBoolean4 = delete (ENUM[0] + ENUM1["B"]); +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(deleteOperatorWithEnumType.ts, 11, 3)) +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>"B" : Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) + +// multiple delete operators +var ResultIsBoolean5 = delete delete ENUM; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(deleteOperatorWithEnumType.ts, 14, 3)) +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) + +var ResultIsBoolean6 = delete delete delete (ENUM[0] + ENUM1["B"]); +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(deleteOperatorWithEnumType.ts, 15, 3)) +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>"B" : Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) + +// miss assignment operators +delete ENUM; +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) + +delete ENUM1; +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) + +delete ENUM1.B; +>ENUM1.B : Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>B : Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) + +delete ENUM, ENUM1; +>ENUM : Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) + diff --git a/tests/baselines/reference/deleteOperatorWithEnumType.types b/tests/baselines/reference/deleteOperatorWithEnumType.types index d1609fe7a1d00..d3266a6aa6c1f 100644 --- a/tests/baselines/reference/deleteOperatorWithEnumType.types +++ b/tests/baselines/reference/deleteOperatorWithEnumType.types @@ -2,83 +2,83 @@ // delete operator on enum type enum ENUM { }; ->ENUM : ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM : ENUM enum ENUM1 { A, B, "" }; ->ENUM1 : ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) ->A : ENUM1, Symbol(ENUM1.A, Decl(deleteOperatorWithEnumType.ts, 3, 12)) ->B : ENUM1, Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : ENUM1 +>A : ENUM1 +>B : ENUM1 // enum type var var ResultIsBoolean1 = delete ENUM; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(deleteOperatorWithEnumType.ts, 6, 3)) +>ResultIsBoolean1 : boolean >delete ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM var ResultIsBoolean2 = delete ENUM1; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(deleteOperatorWithEnumType.ts, 7, 3)) +>ResultIsBoolean2 : boolean >delete ENUM1 : boolean ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>ENUM1 : typeof ENUM1 // enum type expressions var ResultIsBoolean3 = delete ENUM1["A"]; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(deleteOperatorWithEnumType.ts, 10, 3)) +>ResultIsBoolean3 : boolean >delete ENUM1["A"] : boolean >ENUM1["A"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) ->"A" : string, Symbol(ENUM1.A, Decl(deleteOperatorWithEnumType.ts, 3, 12)) +>ENUM1 : typeof ENUM1 +>"A" : string var ResultIsBoolean4 = delete (ENUM[0] + ENUM1["B"]); ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(deleteOperatorWithEnumType.ts, 11, 3)) +>ResultIsBoolean4 : boolean >delete (ENUM[0] + ENUM1["B"]) : boolean >(ENUM[0] + ENUM1["B"]) : string >ENUM[0] + ENUM1["B"] : string >ENUM[0] : string ->ENUM : typeof ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM >0 : number >ENUM1["B"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) ->"B" : string, Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : typeof ENUM1 +>"B" : string // multiple delete operators var ResultIsBoolean5 = delete delete ENUM; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(deleteOperatorWithEnumType.ts, 14, 3)) +>ResultIsBoolean5 : boolean >delete delete ENUM : boolean >delete ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM var ResultIsBoolean6 = delete delete delete (ENUM[0] + ENUM1["B"]); ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(deleteOperatorWithEnumType.ts, 15, 3)) +>ResultIsBoolean6 : boolean >delete delete delete (ENUM[0] + ENUM1["B"]) : boolean >delete delete (ENUM[0] + ENUM1["B"]) : boolean >delete (ENUM[0] + ENUM1["B"]) : boolean >(ENUM[0] + ENUM1["B"]) : string >ENUM[0] + ENUM1["B"] : string >ENUM[0] : string ->ENUM : typeof ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM >0 : number >ENUM1["B"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) ->"B" : string, Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : typeof ENUM1 +>"B" : string // miss assignment operators delete ENUM; >delete ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM delete ENUM1; >delete ENUM1 : boolean ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>ENUM1 : typeof ENUM1 delete ENUM1.B; >delete ENUM1.B : boolean ->ENUM1.B : ENUM1, Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) ->B : ENUM1, Symbol(ENUM1.B, Decl(deleteOperatorWithEnumType.ts, 3, 15)) +>ENUM1.B : ENUM1 +>ENUM1 : typeof ENUM1 +>B : ENUM1 delete ENUM, ENUM1; >delete ENUM, ENUM1 : typeof ENUM1 >delete ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(deleteOperatorWithEnumType.ts, 0, 0)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(deleteOperatorWithEnumType.ts, 2, 14)) +>ENUM : typeof ENUM +>ENUM1 : typeof ENUM1 diff --git a/tests/baselines/reference/deleteOperatorWithNumberType.symbols b/tests/baselines/reference/deleteOperatorWithNumberType.symbols new file mode 100644 index 0000000000000..589b1f91db274 --- /dev/null +++ b/tests/baselines/reference/deleteOperatorWithNumberType.symbols @@ -0,0 +1,127 @@ +=== tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithNumberType.ts === +// delete operator on number type +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) + +var NUMBER1: number[] = [1, 2]; +>NUMBER1 : Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) + +function foo(): number { return 1; } +>foo : Symbol(foo, Decl(deleteOperatorWithNumberType.ts, 2, 31)) + +class A { +>A : Symbol(A, Decl(deleteOperatorWithNumberType.ts, 4, 36)) + + public a: number; +>a : Symbol(a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) + + static foo() { return 1; } +>foo : Symbol(A.foo, Decl(deleteOperatorWithNumberType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) + + export var n: number; +>n : Symbol(n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) +>A : Symbol(A, Decl(deleteOperatorWithNumberType.ts, 4, 36)) + +// number type var +var ResultIsBoolean1 = delete NUMBER; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(deleteOperatorWithNumberType.ts, 17, 3)) +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) + +var ResultIsBoolean2 = delete NUMBER1; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(deleteOperatorWithNumberType.ts, 18, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) + +// number type literal +var ResultIsBoolean3 = delete 1; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(deleteOperatorWithNumberType.ts, 21, 3)) + +var ResultIsBoolean4 = delete { x: 1, y: 2}; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(deleteOperatorWithNumberType.ts, 22, 3)) +>x : Symbol(x, Decl(deleteOperatorWithNumberType.ts, 22, 31)) +>y : Symbol(y, Decl(deleteOperatorWithNumberType.ts, 22, 37)) + +var ResultIsBoolean5 = delete { x: 1, y: (n: number) => { return n; } }; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(deleteOperatorWithNumberType.ts, 23, 3)) +>x : Symbol(x, Decl(deleteOperatorWithNumberType.ts, 23, 31)) +>y : Symbol(y, Decl(deleteOperatorWithNumberType.ts, 23, 37)) +>n : Symbol(n, Decl(deleteOperatorWithNumberType.ts, 23, 42)) +>n : Symbol(n, Decl(deleteOperatorWithNumberType.ts, 23, 42)) + +// number type expressions +var ResultIsBoolean6 = delete objA.a; +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(deleteOperatorWithNumberType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) + +var ResultIsBoolean7 = delete M.n; +>ResultIsBoolean7 : Symbol(ResultIsBoolean7, Decl(deleteOperatorWithNumberType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) + +var ResultIsBoolean8 = delete NUMBER1[0]; +>ResultIsBoolean8 : Symbol(ResultIsBoolean8, Decl(deleteOperatorWithNumberType.ts, 28, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) + +var ResultIsBoolean9 = delete foo(); +>ResultIsBoolean9 : Symbol(ResultIsBoolean9, Decl(deleteOperatorWithNumberType.ts, 29, 3)) +>foo : Symbol(foo, Decl(deleteOperatorWithNumberType.ts, 2, 31)) + +var ResultIsBoolean10 = delete A.foo(); +>ResultIsBoolean10 : Symbol(ResultIsBoolean10, Decl(deleteOperatorWithNumberType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(deleteOperatorWithNumberType.ts, 7, 21)) +>A : Symbol(A, Decl(deleteOperatorWithNumberType.ts, 4, 36)) +>foo : Symbol(A.foo, Decl(deleteOperatorWithNumberType.ts, 7, 21)) + +var ResultIsBoolean11 = delete (NUMBER + NUMBER); +>ResultIsBoolean11 : Symbol(ResultIsBoolean11, Decl(deleteOperatorWithNumberType.ts, 31, 3)) +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) + +// multiple delete operator +var ResultIsBoolean12 = delete delete NUMBER; +>ResultIsBoolean12 : Symbol(ResultIsBoolean12, Decl(deleteOperatorWithNumberType.ts, 34, 3)) +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) + +var ResultIsBoolean13 = delete delete delete (NUMBER + NUMBER); +>ResultIsBoolean13 : Symbol(ResultIsBoolean13, Decl(deleteOperatorWithNumberType.ts, 35, 3)) +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) + +// miss assignment operators +delete 1; +delete NUMBER; +>NUMBER : Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) + +delete NUMBER1; +>NUMBER1 : Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) + +delete foo(); +>foo : Symbol(foo, Decl(deleteOperatorWithNumberType.ts, 2, 31)) + +delete objA.a; +>objA.a : Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) + +delete M.n; +>M.n : Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) + +delete objA.a, M.n; +>objA.a : Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) + diff --git a/tests/baselines/reference/deleteOperatorWithNumberType.types b/tests/baselines/reference/deleteOperatorWithNumberType.types index 6c467a6913171..e631745d089ca 100644 --- a/tests/baselines/reference/deleteOperatorWithNumberType.types +++ b/tests/baselines/reference/deleteOperatorWithNumberType.types @@ -1,137 +1,137 @@ === tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithNumberType.ts === // delete operator on number type var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var NUMBER1: number[] = [1, 2]; ->NUMBER1 : number[], Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >[1, 2] : number[] >1 : number >2 : number function foo(): number { return 1; } ->foo : () => number, Symbol(foo, Decl(deleteOperatorWithNumberType.ts, 2, 31)) +>foo : () => number >1 : number class A { ->A : A, Symbol(A, Decl(deleteOperatorWithNumberType.ts, 4, 36)) +>A : A public a: number; ->a : number, Symbol(a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>a : number static foo() { return 1; } ->foo : () => number, Symbol(A.foo, Decl(deleteOperatorWithNumberType.ts, 7, 21)) +>foo : () => number >1 : number } module M { ->M : typeof M, Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) +>M : typeof M export var n: number; ->n : number, Symbol(n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>n : number } var objA = new A(); ->objA : A, Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(deleteOperatorWithNumberType.ts, 4, 36)) +>A : typeof A // number type var var ResultIsBoolean1 = delete NUMBER; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(deleteOperatorWithNumberType.ts, 17, 3)) +>ResultIsBoolean1 : boolean >delete NUMBER : boolean ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsBoolean2 = delete NUMBER1; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(deleteOperatorWithNumberType.ts, 18, 3)) +>ResultIsBoolean2 : boolean >delete NUMBER1 : boolean ->NUMBER1 : number[], Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] // number type literal var ResultIsBoolean3 = delete 1; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(deleteOperatorWithNumberType.ts, 21, 3)) +>ResultIsBoolean3 : boolean >delete 1 : boolean >1 : number var ResultIsBoolean4 = delete { x: 1, y: 2}; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(deleteOperatorWithNumberType.ts, 22, 3)) +>ResultIsBoolean4 : boolean >delete { x: 1, y: 2} : boolean >{ x: 1, y: 2} : { x: number; y: number; } ->x : number, Symbol(x, Decl(deleteOperatorWithNumberType.ts, 22, 31)) +>x : number >1 : number ->y : number, Symbol(y, Decl(deleteOperatorWithNumberType.ts, 22, 37)) +>y : number >2 : number var ResultIsBoolean5 = delete { x: 1, y: (n: number) => { return n; } }; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(deleteOperatorWithNumberType.ts, 23, 3)) +>ResultIsBoolean5 : boolean >delete { x: 1, y: (n: number) => { return n; } } : boolean >{ x: 1, y: (n: number) => { return n; } } : { x: number; y: (n: number) => number; } ->x : number, Symbol(x, Decl(deleteOperatorWithNumberType.ts, 23, 31)) +>x : number >1 : number ->y : (n: number) => number, Symbol(y, Decl(deleteOperatorWithNumberType.ts, 23, 37)) +>y : (n: number) => number >(n: number) => { return n; } : (n: number) => number ->n : number, Symbol(n, Decl(deleteOperatorWithNumberType.ts, 23, 42)) ->n : number, Symbol(n, Decl(deleteOperatorWithNumberType.ts, 23, 42)) +>n : number +>n : number // number type expressions var ResultIsBoolean6 = delete objA.a; ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(deleteOperatorWithNumberType.ts, 26, 3)) +>ResultIsBoolean6 : boolean >delete objA.a : boolean ->objA.a : number, Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsBoolean7 = delete M.n; ->ResultIsBoolean7 : boolean, Symbol(ResultIsBoolean7, Decl(deleteOperatorWithNumberType.ts, 27, 3)) +>ResultIsBoolean7 : boolean >delete M.n : boolean ->M.n : number, Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsBoolean8 = delete NUMBER1[0]; ->ResultIsBoolean8 : boolean, Symbol(ResultIsBoolean8, Decl(deleteOperatorWithNumberType.ts, 28, 3)) +>ResultIsBoolean8 : boolean >delete NUMBER1[0] : boolean >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number var ResultIsBoolean9 = delete foo(); ->ResultIsBoolean9 : boolean, Symbol(ResultIsBoolean9, Decl(deleteOperatorWithNumberType.ts, 29, 3)) +>ResultIsBoolean9 : boolean >delete foo() : boolean >foo() : number ->foo : () => number, Symbol(foo, Decl(deleteOperatorWithNumberType.ts, 2, 31)) +>foo : () => number var ResultIsBoolean10 = delete A.foo(); ->ResultIsBoolean10 : boolean, Symbol(ResultIsBoolean10, Decl(deleteOperatorWithNumberType.ts, 30, 3)) +>ResultIsBoolean10 : boolean >delete A.foo() : boolean >A.foo() : number ->A.foo : () => number, Symbol(A.foo, Decl(deleteOperatorWithNumberType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(deleteOperatorWithNumberType.ts, 4, 36)) ->foo : () => number, Symbol(A.foo, Decl(deleteOperatorWithNumberType.ts, 7, 21)) +>A.foo : () => number +>A : typeof A +>foo : () => number var ResultIsBoolean11 = delete (NUMBER + NUMBER); ->ResultIsBoolean11 : boolean, Symbol(ResultIsBoolean11, Decl(deleteOperatorWithNumberType.ts, 31, 3)) +>ResultIsBoolean11 : boolean >delete (NUMBER + NUMBER) : boolean >(NUMBER + NUMBER) : number >NUMBER + NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // multiple delete operator var ResultIsBoolean12 = delete delete NUMBER; ->ResultIsBoolean12 : boolean, Symbol(ResultIsBoolean12, Decl(deleteOperatorWithNumberType.ts, 34, 3)) +>ResultIsBoolean12 : boolean >delete delete NUMBER : boolean >delete NUMBER : boolean ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsBoolean13 = delete delete delete (NUMBER + NUMBER); ->ResultIsBoolean13 : boolean, Symbol(ResultIsBoolean13, Decl(deleteOperatorWithNumberType.ts, 35, 3)) +>ResultIsBoolean13 : boolean >delete delete delete (NUMBER + NUMBER) : boolean >delete delete (NUMBER + NUMBER) : boolean >delete (NUMBER + NUMBER) : boolean >(NUMBER + NUMBER) : number >NUMBER + NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // miss assignment operators delete 1; @@ -140,36 +140,36 @@ delete 1; delete NUMBER; >delete NUMBER : boolean ->NUMBER : number, Symbol(NUMBER, Decl(deleteOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number delete NUMBER1; >delete NUMBER1 : boolean ->NUMBER1 : number[], Symbol(NUMBER1, Decl(deleteOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] delete foo(); >delete foo() : boolean >foo() : number ->foo : () => number, Symbol(foo, Decl(deleteOperatorWithNumberType.ts, 2, 31)) +>foo : () => number delete objA.a; >delete objA.a : boolean ->objA.a : number, Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number delete M.n; >delete M.n : boolean ->M.n : number, Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number delete objA.a, M.n; >delete objA.a, M.n : number >delete objA.a : boolean ->objA.a : number, Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(deleteOperatorWithNumberType.ts, 6, 9)) ->M.n : number, Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(deleteOperatorWithNumberType.ts, 11, 14)) +>objA.a : number +>objA : A +>a : number +>M.n : number +>M : typeof M +>n : number diff --git a/tests/baselines/reference/deleteOperatorWithStringType.symbols b/tests/baselines/reference/deleteOperatorWithStringType.symbols new file mode 100644 index 0000000000000..a13ddd5fa3982 --- /dev/null +++ b/tests/baselines/reference/deleteOperatorWithStringType.symbols @@ -0,0 +1,123 @@ +=== tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithStringType.ts === +// delete operator on string type +var STRING: string; +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) + +var STRING1: string[] = ["", "abc"]; +>STRING1 : Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) + +function foo(): string { return "abc"; } +>foo : Symbol(foo, Decl(deleteOperatorWithStringType.ts, 2, 36)) + +class A { +>A : Symbol(A, Decl(deleteOperatorWithStringType.ts, 4, 40)) + + public a: string; +>a : Symbol(a, Decl(deleteOperatorWithStringType.ts, 6, 9)) + + static foo() { return ""; } +>foo : Symbol(A.foo, Decl(deleteOperatorWithStringType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(deleteOperatorWithStringType.ts, 9, 1)) + + export var n: string; +>n : Symbol(n, Decl(deleteOperatorWithStringType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(deleteOperatorWithStringType.ts, 14, 3)) +>A : Symbol(A, Decl(deleteOperatorWithStringType.ts, 4, 40)) + +// string type var +var ResultIsBoolean1 = delete STRING; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(deleteOperatorWithStringType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) + +var ResultIsBoolean2 = delete STRING1; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(deleteOperatorWithStringType.ts, 18, 3)) +>STRING1 : Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) + +// string type literal +var ResultIsBoolean3 = delete ""; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(deleteOperatorWithStringType.ts, 21, 3)) + +var ResultIsBoolean4 = delete { x: "", y: "" }; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(deleteOperatorWithStringType.ts, 22, 3)) +>x : Symbol(x, Decl(deleteOperatorWithStringType.ts, 22, 31)) +>y : Symbol(y, Decl(deleteOperatorWithStringType.ts, 22, 38)) + +var ResultIsBoolean5 = delete { x: "", y: (s: string) => { return s; } }; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(deleteOperatorWithStringType.ts, 23, 3)) +>x : Symbol(x, Decl(deleteOperatorWithStringType.ts, 23, 31)) +>y : Symbol(y, Decl(deleteOperatorWithStringType.ts, 23, 38)) +>s : Symbol(s, Decl(deleteOperatorWithStringType.ts, 23, 43)) +>s : Symbol(s, Decl(deleteOperatorWithStringType.ts, 23, 43)) + +// string type expressions +var ResultIsBoolean6 = delete objA.a; +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(deleteOperatorWithStringType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) + +var ResultIsBoolean7 = delete M.n; +>ResultIsBoolean7 : Symbol(ResultIsBoolean7, Decl(deleteOperatorWithStringType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(deleteOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) + +var ResultIsBoolean8 = delete STRING1[0]; +>ResultIsBoolean8 : Symbol(ResultIsBoolean8, Decl(deleteOperatorWithStringType.ts, 28, 3)) +>STRING1 : Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) + +var ResultIsBoolean9 = delete foo(); +>ResultIsBoolean9 : Symbol(ResultIsBoolean9, Decl(deleteOperatorWithStringType.ts, 29, 3)) +>foo : Symbol(foo, Decl(deleteOperatorWithStringType.ts, 2, 36)) + +var ResultIsBoolean10 = delete A.foo(); +>ResultIsBoolean10 : Symbol(ResultIsBoolean10, Decl(deleteOperatorWithStringType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(deleteOperatorWithStringType.ts, 7, 21)) +>A : Symbol(A, Decl(deleteOperatorWithStringType.ts, 4, 40)) +>foo : Symbol(A.foo, Decl(deleteOperatorWithStringType.ts, 7, 21)) + +var ResultIsBoolean11 = delete (STRING + STRING); +>ResultIsBoolean11 : Symbol(ResultIsBoolean11, Decl(deleteOperatorWithStringType.ts, 31, 3)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) + +var ResultIsBoolean12 = delete STRING.charAt(0); +>ResultIsBoolean12 : Symbol(ResultIsBoolean12, Decl(deleteOperatorWithStringType.ts, 32, 3)) +>STRING.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + +// multiple delete operator +var ResultIsBoolean13 = delete delete STRING; +>ResultIsBoolean13 : Symbol(ResultIsBoolean13, Decl(deleteOperatorWithStringType.ts, 35, 3)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) + +var ResultIsBoolean14 = delete delete delete (STRING + STRING); +>ResultIsBoolean14 : Symbol(ResultIsBoolean14, Decl(deleteOperatorWithStringType.ts, 36, 3)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) + +// miss assignment operators +delete ""; +delete STRING; +>STRING : Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) + +delete STRING1; +>STRING1 : Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) + +delete foo(); +>foo : Symbol(foo, Decl(deleteOperatorWithStringType.ts, 2, 36)) + +delete objA.a,M.n; +>objA.a : Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(deleteOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(deleteOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) + diff --git a/tests/baselines/reference/deleteOperatorWithStringType.types b/tests/baselines/reference/deleteOperatorWithStringType.types index 3c1bd6af72746..0492aeff1760b 100644 --- a/tests/baselines/reference/deleteOperatorWithStringType.types +++ b/tests/baselines/reference/deleteOperatorWithStringType.types @@ -1,146 +1,146 @@ === tests/cases/conformance/expressions/unaryOperators/deleteOperator/deleteOperatorWithStringType.ts === // delete operator on string type var STRING: string; ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : string var STRING1: string[] = ["", "abc"]; ->STRING1 : string[], Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >["", "abc"] : string[] >"" : string >"abc" : string function foo(): string { return "abc"; } ->foo : () => string, Symbol(foo, Decl(deleteOperatorWithStringType.ts, 2, 36)) +>foo : () => string >"abc" : string class A { ->A : A, Symbol(A, Decl(deleteOperatorWithStringType.ts, 4, 40)) +>A : A public a: string; ->a : string, Symbol(a, Decl(deleteOperatorWithStringType.ts, 6, 9)) +>a : string static foo() { return ""; } ->foo : () => string, Symbol(A.foo, Decl(deleteOperatorWithStringType.ts, 7, 21)) +>foo : () => string >"" : string } module M { ->M : typeof M, Symbol(M, Decl(deleteOperatorWithStringType.ts, 9, 1)) +>M : typeof M export var n: string; ->n : string, Symbol(n, Decl(deleteOperatorWithStringType.ts, 11, 14)) +>n : string } var objA = new A(); ->objA : A, Symbol(objA, Decl(deleteOperatorWithStringType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(deleteOperatorWithStringType.ts, 4, 40)) +>A : typeof A // string type var var ResultIsBoolean1 = delete STRING; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(deleteOperatorWithStringType.ts, 17, 3)) +>ResultIsBoolean1 : boolean >delete STRING : boolean ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsBoolean2 = delete STRING1; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(deleteOperatorWithStringType.ts, 18, 3)) +>ResultIsBoolean2 : boolean >delete STRING1 : boolean ->STRING1 : string[], Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] // string type literal var ResultIsBoolean3 = delete ""; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(deleteOperatorWithStringType.ts, 21, 3)) +>ResultIsBoolean3 : boolean >delete "" : boolean >"" : string var ResultIsBoolean4 = delete { x: "", y: "" }; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(deleteOperatorWithStringType.ts, 22, 3)) +>ResultIsBoolean4 : boolean >delete { x: "", y: "" } : boolean >{ x: "", y: "" } : { x: string; y: string; } ->x : string, Symbol(x, Decl(deleteOperatorWithStringType.ts, 22, 31)) +>x : string >"" : string ->y : string, Symbol(y, Decl(deleteOperatorWithStringType.ts, 22, 38)) +>y : string >"" : string var ResultIsBoolean5 = delete { x: "", y: (s: string) => { return s; } }; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(deleteOperatorWithStringType.ts, 23, 3)) +>ResultIsBoolean5 : boolean >delete { x: "", y: (s: string) => { return s; } } : boolean >{ x: "", y: (s: string) => { return s; } } : { x: string; y: (s: string) => string; } ->x : string, Symbol(x, Decl(deleteOperatorWithStringType.ts, 23, 31)) +>x : string >"" : string ->y : (s: string) => string, Symbol(y, Decl(deleteOperatorWithStringType.ts, 23, 38)) +>y : (s: string) => string >(s: string) => { return s; } : (s: string) => string ->s : string, Symbol(s, Decl(deleteOperatorWithStringType.ts, 23, 43)) ->s : string, Symbol(s, Decl(deleteOperatorWithStringType.ts, 23, 43)) +>s : string +>s : string // string type expressions var ResultIsBoolean6 = delete objA.a; ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(deleteOperatorWithStringType.ts, 26, 3)) +>ResultIsBoolean6 : boolean >delete objA.a : boolean ->objA.a : string, Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) +>objA.a : string +>objA : A +>a : string var ResultIsBoolean7 = delete M.n; ->ResultIsBoolean7 : boolean, Symbol(ResultIsBoolean7, Decl(deleteOperatorWithStringType.ts, 27, 3)) +>ResultIsBoolean7 : boolean >delete M.n : boolean ->M.n : string, Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) +>M.n : string +>M : typeof M +>n : string var ResultIsBoolean8 = delete STRING1[0]; ->ResultIsBoolean8 : boolean, Symbol(ResultIsBoolean8, Decl(deleteOperatorWithStringType.ts, 28, 3)) +>ResultIsBoolean8 : boolean >delete STRING1[0] : boolean >STRING1[0] : string ->STRING1 : string[], Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >0 : number var ResultIsBoolean9 = delete foo(); ->ResultIsBoolean9 : boolean, Symbol(ResultIsBoolean9, Decl(deleteOperatorWithStringType.ts, 29, 3)) +>ResultIsBoolean9 : boolean >delete foo() : boolean >foo() : string ->foo : () => string, Symbol(foo, Decl(deleteOperatorWithStringType.ts, 2, 36)) +>foo : () => string var ResultIsBoolean10 = delete A.foo(); ->ResultIsBoolean10 : boolean, Symbol(ResultIsBoolean10, Decl(deleteOperatorWithStringType.ts, 30, 3)) +>ResultIsBoolean10 : boolean >delete A.foo() : boolean >A.foo() : string ->A.foo : () => string, Symbol(A.foo, Decl(deleteOperatorWithStringType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(deleteOperatorWithStringType.ts, 4, 40)) ->foo : () => string, Symbol(A.foo, Decl(deleteOperatorWithStringType.ts, 7, 21)) +>A.foo : () => string +>A : typeof A +>foo : () => string var ResultIsBoolean11 = delete (STRING + STRING); ->ResultIsBoolean11 : boolean, Symbol(ResultIsBoolean11, Decl(deleteOperatorWithStringType.ts, 31, 3)) +>ResultIsBoolean11 : boolean >delete (STRING + STRING) : boolean >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string var ResultIsBoolean12 = delete STRING.charAt(0); ->ResultIsBoolean12 : boolean, Symbol(ResultIsBoolean12, Decl(deleteOperatorWithStringType.ts, 32, 3)) +>ResultIsBoolean12 : boolean >delete STRING.charAt(0) : boolean >STRING.charAt(0) : string ->STRING.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING.charAt : (pos: number) => string +>STRING : string +>charAt : (pos: number) => string >0 : number // multiple delete operator var ResultIsBoolean13 = delete delete STRING; ->ResultIsBoolean13 : boolean, Symbol(ResultIsBoolean13, Decl(deleteOperatorWithStringType.ts, 35, 3)) +>ResultIsBoolean13 : boolean >delete delete STRING : boolean >delete STRING : boolean ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsBoolean14 = delete delete delete (STRING + STRING); ->ResultIsBoolean14 : boolean, Symbol(ResultIsBoolean14, Decl(deleteOperatorWithStringType.ts, 36, 3)) +>ResultIsBoolean14 : boolean >delete delete delete (STRING + STRING) : boolean >delete delete (STRING + STRING) : boolean >delete (STRING + STRING) : boolean >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string // miss assignment operators delete ""; @@ -149,24 +149,24 @@ delete ""; delete STRING; >delete STRING : boolean ->STRING : string, Symbol(STRING, Decl(deleteOperatorWithStringType.ts, 1, 3)) +>STRING : string delete STRING1; >delete STRING1 : boolean ->STRING1 : string[], Symbol(STRING1, Decl(deleteOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] delete foo(); >delete foo() : boolean >foo() : string ->foo : () => string, Symbol(foo, Decl(deleteOperatorWithStringType.ts, 2, 36)) +>foo : () => string delete objA.a,M.n; >delete objA.a,M.n : string >delete objA.a : boolean ->objA.a : string, Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(deleteOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(deleteOperatorWithStringType.ts, 6, 9)) ->M.n : string, Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(deleteOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(deleteOperatorWithStringType.ts, 11, 14)) +>objA.a : string +>objA : A +>a : string +>M.n : string +>M : typeof M +>n : string diff --git a/tests/baselines/reference/dependencyViaImportAlias.symbols b/tests/baselines/reference/dependencyViaImportAlias.symbols new file mode 100644 index 0000000000000..8855b8d64518f --- /dev/null +++ b/tests/baselines/reference/dependencyViaImportAlias.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/B.ts === +import a = require('A'); +>a : Symbol(a, Decl(B.ts, 0, 0)) + +import A = a.A; +>A : Symbol(A, Decl(B.ts, 0, 24)) +>a : Symbol(a, Decl(A.ts, 0, 0)) +>A : Symbol(a.A, Decl(A.ts, 0, 0)) + +export = A; +>A : Symbol(A, Decl(B.ts, 0, 24)) + +=== tests/cases/compiler/A.ts === +export class A { +>A : Symbol(A, Decl(A.ts, 0, 0)) +} diff --git a/tests/baselines/reference/dependencyViaImportAlias.types b/tests/baselines/reference/dependencyViaImportAlias.types index 267986c94d274..aa4655e44f0cd 100644 --- a/tests/baselines/reference/dependencyViaImportAlias.types +++ b/tests/baselines/reference/dependencyViaImportAlias.types @@ -1,16 +1,16 @@ === tests/cases/compiler/B.ts === import a = require('A'); ->a : typeof a, Symbol(a, Decl(B.ts, 0, 0)) +>a : typeof a import A = a.A; ->A : typeof a.A, Symbol(A, Decl(B.ts, 0, 24)) ->a : typeof a, Symbol(a, Decl(A.ts, 0, 0)) ->A : a.A, Symbol(a.A, Decl(A.ts, 0, 0)) +>A : typeof a.A +>a : typeof a +>A : a.A export = A; ->A : a.A, Symbol(A, Decl(B.ts, 0, 24)) +>A : a.A === tests/cases/compiler/A.ts === export class A { ->A : A, Symbol(A, Decl(A.ts, 0, 0)) +>A : A } diff --git a/tests/baselines/reference/deprecatedBool.symbols b/tests/baselines/reference/deprecatedBool.symbols new file mode 100644 index 0000000000000..c9c27ca945ab4 --- /dev/null +++ b/tests/baselines/reference/deprecatedBool.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/deprecatedBool.ts === +var b4: boolean; +>b4 : Symbol(b4, Decl(deprecatedBool.ts, 0, 3)) + +var bool: boolean; +>bool : Symbol(bool, Decl(deprecatedBool.ts, 1, 3)) + diff --git a/tests/baselines/reference/deprecatedBool.types b/tests/baselines/reference/deprecatedBool.types index 7f559b302c9b8..d8c70d56e5029 100644 --- a/tests/baselines/reference/deprecatedBool.types +++ b/tests/baselines/reference/deprecatedBool.types @@ -1,7 +1,7 @@ === tests/cases/compiler/deprecatedBool.ts === var b4: boolean; ->b4 : boolean, Symbol(b4, Decl(deprecatedBool.ts, 0, 3)) +>b4 : boolean var bool: boolean; ->bool : boolean, Symbol(bool, Decl(deprecatedBool.ts, 1, 3)) +>bool : boolean diff --git a/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.symbols b/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.symbols new file mode 100644 index 0000000000000..dd38483869490 --- /dev/null +++ b/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.symbols @@ -0,0 +1,34 @@ +=== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts === +class Base { +>Base : Symbol(Base, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 0, 0)) + + [x: string]: Object; +>x : Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 1, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +// ok, use assignment compatibility +class Derived extends Base { +>Derived : Symbol(Derived, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 2, 1)) +>Base : Symbol(Base, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 0, 0)) + + [x: string]: any; +>x : Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 6, 5)) +} + +class Base2 { +>Base2 : Symbol(Base2, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 7, 1)) + + [x: number]: Object; +>x : Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 10, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +// ok, use assignment compatibility +class Derived2 extends Base2 { +>Derived2 : Symbol(Derived2, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 11, 1)) +>Base2 : Symbol(Base2, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 7, 1)) + + [x: number]: any; +>x : Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 15, 5)) +} diff --git a/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.types b/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.types index 1046906c9dcb6..97940edc6e72e 100644 --- a/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.types +++ b/tests/baselines/reference/derivedClassOverridesIndexersWithAssignmentCompatibility.types @@ -1,34 +1,34 @@ === tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesIndexersWithAssignmentCompatibility.ts === class Base { ->Base : Base, Symbol(Base, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 0, 0)) +>Base : Base [x: string]: Object; ->x : string, Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 1, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object } // ok, use assignment compatibility class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 0, 0)) +>Derived : Derived +>Base : Base [x: string]: any; ->x : string, Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 6, 5)) +>x : string } class Base2 { ->Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 7, 1)) +>Base2 : Base2 [x: number]: Object; ->x : number, Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 10, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : number +>Object : Object } // ok, use assignment compatibility class Derived2 extends Base2 { ->Derived2 : Derived2, Symbol(Derived2, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 11, 1)) ->Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 7, 1)) +>Derived2 : Derived2 +>Base2 : Base2 [x: number]: any; ->x : number, Symbol(x, Decl(derivedClassOverridesIndexersWithAssignmentCompatibility.ts, 15, 5)) +>x : number } diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers.symbols b/tests/baselines/reference/derivedClassOverridesProtectedMembers.symbols new file mode 100644 index 0000000000000..3c826325b91b7 --- /dev/null +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers.symbols @@ -0,0 +1,122 @@ +=== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers.ts === + +var x: { foo: string; } +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>foo : Symbol(foo, Decl(derivedClassOverridesProtectedMembers.ts, 1, 8)) + +var y: { foo: string; bar: string; } +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>foo : Symbol(foo, Decl(derivedClassOverridesProtectedMembers.ts, 2, 8)) +>bar : Symbol(bar, Decl(derivedClassOverridesProtectedMembers.ts, 2, 21)) + +class Base { +>Base : Symbol(Base, Decl(derivedClassOverridesProtectedMembers.ts, 2, 36)) + + protected a: typeof x; +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 4, 12)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected b(a: typeof x) { } +>b : Symbol(b, Decl(derivedClassOverridesProtectedMembers.ts, 5, 26)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 6, 16)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected get c() { return x; } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 6, 32), Decl(derivedClassOverridesProtectedMembers.ts, 7, 35)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected set c(v: typeof x) { } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 6, 32), Decl(derivedClassOverridesProtectedMembers.ts, 7, 35)) +>v : Symbol(v, Decl(derivedClassOverridesProtectedMembers.ts, 8, 20)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected d: (a: typeof x) => void; +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers.ts, 8, 36)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 9, 18)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected static r: typeof x; +>r : Symbol(Base.r, Decl(derivedClassOverridesProtectedMembers.ts, 9, 39)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected static s(a: typeof x) { } +>s : Symbol(Base.s, Decl(derivedClassOverridesProtectedMembers.ts, 11, 33)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 12, 23)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected static get t() { return x; } +>t : Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers.ts, 12, 39), Decl(derivedClassOverridesProtectedMembers.ts, 13, 42)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected static set t(v: typeof x) { } +>t : Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers.ts, 12, 39), Decl(derivedClassOverridesProtectedMembers.ts, 13, 42)) +>v : Symbol(v, Decl(derivedClassOverridesProtectedMembers.ts, 14, 27)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + protected static u: (a: typeof x) => void; +>u : Symbol(Base.u, Decl(derivedClassOverridesProtectedMembers.ts, 14, 43)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 15, 25)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) + + constructor(a: typeof x) { } +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 17, 16)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers.ts, 18, 1)) +>Base : Symbol(Base, Decl(derivedClassOverridesProtectedMembers.ts, 2, 36)) + + protected a: typeof y; +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 20, 28)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected b(a: typeof y) { } +>b : Symbol(b, Decl(derivedClassOverridesProtectedMembers.ts, 21, 26)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 22, 16)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected get c() { return y; } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 22, 32), Decl(derivedClassOverridesProtectedMembers.ts, 23, 35)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected set c(v: typeof y) { } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 22, 32), Decl(derivedClassOverridesProtectedMembers.ts, 23, 35)) +>v : Symbol(v, Decl(derivedClassOverridesProtectedMembers.ts, 24, 20)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected d: (a: typeof y) => void; +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers.ts, 24, 36)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 25, 18)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected static r: typeof y; +>r : Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers.ts, 25, 39)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected static s(a: typeof y) { } +>s : Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers.ts, 27, 33)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 28, 23)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected static get t() { return y; } +>t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers.ts, 28, 39), Decl(derivedClassOverridesProtectedMembers.ts, 29, 42)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected static set t(a: typeof y) { } +>t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers.ts, 28, 39), Decl(derivedClassOverridesProtectedMembers.ts, 29, 42)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 30, 27)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + protected static u: (a: typeof y) => void; +>u : Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers.ts, 30, 43)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 31, 25)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) + + constructor(a: typeof y) { super(x) } +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 33, 16)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>super : Symbol(Base, Decl(derivedClassOverridesProtectedMembers.ts, 2, 36)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +} + diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers.types b/tests/baselines/reference/derivedClassOverridesProtectedMembers.types index 897696ff4fbd0..2695cbabe3461 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers.types +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers.types @@ -1,123 +1,123 @@ === tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers.ts === var x: { foo: string; } ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) ->foo : string, Symbol(foo, Decl(derivedClassOverridesProtectedMembers.ts, 1, 8)) +>x : { foo: string; } +>foo : string var y: { foo: string; bar: string; } ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) ->foo : string, Symbol(foo, Decl(derivedClassOverridesProtectedMembers.ts, 2, 8)) ->bar : string, Symbol(bar, Decl(derivedClassOverridesProtectedMembers.ts, 2, 21)) +>y : { foo: string; bar: string; } +>foo : string +>bar : string class Base { ->Base : Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers.ts, 2, 36)) +>Base : Base protected a: typeof x; ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 4, 12)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>a : { foo: string; } +>x : { foo: string; } protected b(a: typeof x) { } ->b : (a: { foo: string; }) => void, Symbol(b, Decl(derivedClassOverridesProtectedMembers.ts, 5, 26)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 6, 16)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>b : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } protected get c() { return x; } ->c : { foo: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 6, 32), Decl(derivedClassOverridesProtectedMembers.ts, 7, 35)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>c : { foo: string; } +>x : { foo: string; } protected set c(v: typeof x) { } ->c : { foo: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 6, 32), Decl(derivedClassOverridesProtectedMembers.ts, 7, 35)) ->v : { foo: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers.ts, 8, 20)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>c : { foo: string; } +>v : { foo: string; } +>x : { foo: string; } protected d: (a: typeof x) => void; ->d : (a: { foo: string; }) => void, Symbol(d, Decl(derivedClassOverridesProtectedMembers.ts, 8, 36)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 9, 18)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>d : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } protected static r: typeof x; ->r : { foo: string; }, Symbol(Base.r, Decl(derivedClassOverridesProtectedMembers.ts, 9, 39)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>r : { foo: string; } +>x : { foo: string; } protected static s(a: typeof x) { } ->s : (a: { foo: string; }) => void, Symbol(Base.s, Decl(derivedClassOverridesProtectedMembers.ts, 11, 33)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 12, 23)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>s : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } protected static get t() { return x; } ->t : { foo: string; }, Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers.ts, 12, 39), Decl(derivedClassOverridesProtectedMembers.ts, 13, 42)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>t : { foo: string; } +>x : { foo: string; } protected static set t(v: typeof x) { } ->t : { foo: string; }, Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers.ts, 12, 39), Decl(derivedClassOverridesProtectedMembers.ts, 13, 42)) ->v : { foo: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers.ts, 14, 27)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>t : { foo: string; } +>v : { foo: string; } +>x : { foo: string; } protected static u: (a: typeof x) => void; ->u : (a: { foo: string; }) => void, Symbol(Base.u, Decl(derivedClassOverridesProtectedMembers.ts, 14, 43)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 15, 25)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>u : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } constructor(a: typeof x) { } ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 17, 16)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>a : { foo: string; } +>x : { foo: string; } } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers.ts, 18, 1)) ->Base : Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers.ts, 2, 36)) +>Derived : Derived +>Base : Base protected a: typeof y; ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 20, 28)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected b(a: typeof y) { } ->b : (a: { foo: string; bar: string; }) => void, Symbol(b, Decl(derivedClassOverridesProtectedMembers.ts, 21, 26)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 22, 16)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>b : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected get c() { return y; } ->c : { foo: string; bar: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 22, 32), Decl(derivedClassOverridesProtectedMembers.ts, 23, 35)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>c : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected set c(v: typeof y) { } ->c : { foo: string; bar: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers.ts, 22, 32), Decl(derivedClassOverridesProtectedMembers.ts, 23, 35)) ->v : { foo: string; bar: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers.ts, 24, 20)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>c : { foo: string; bar: string; } +>v : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected d: (a: typeof y) => void; ->d : (a: { foo: string; bar: string; }) => void, Symbol(d, Decl(derivedClassOverridesProtectedMembers.ts, 24, 36)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 25, 18)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>d : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected static r: typeof y; ->r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers.ts, 25, 39)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>r : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected static s(a: typeof y) { } ->s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers.ts, 27, 33)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 28, 23)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>s : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected static get t() { return y; } ->t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers.ts, 28, 39), Decl(derivedClassOverridesProtectedMembers.ts, 29, 42)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>t : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected static set t(a: typeof y) { } ->t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers.ts, 28, 39), Decl(derivedClassOverridesProtectedMembers.ts, 29, 42)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 30, 27)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>t : { foo: string; bar: string; } +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } protected static u: (a: typeof y) => void; ->u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers.ts, 30, 43)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 31, 25)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>u : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } constructor(a: typeof y) { super(x) } ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers.ts, 33, 16)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers.ts, 2, 3)) +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } >super(x) : void ->super : typeof Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers.ts, 2, 36)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers.ts, 1, 3)) +>super : typeof Base +>x : { foo: string; } } diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.symbols b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.symbols new file mode 100644 index 0000000000000..59d062f459c3e --- /dev/null +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.symbols @@ -0,0 +1,228 @@ +=== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers2.ts === +var x: { foo: string; } +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>foo : Symbol(foo, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 8)) + +var y: { foo: string; bar: string; } +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>foo : Symbol(foo, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 8)) +>bar : Symbol(bar, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 21)) + +class Base { +>Base : Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36)) + + protected a: typeof x; +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 3, 12)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected b(a: typeof x) { } +>b : Symbol(b, Decl(derivedClassOverridesProtectedMembers2.ts, 4, 26)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 16)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected get c() { return x; } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 32), Decl(derivedClassOverridesProtectedMembers2.ts, 6, 35)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected set c(v: typeof x) { } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 32), Decl(derivedClassOverridesProtectedMembers2.ts, 6, 35)) +>v : Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 7, 20)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected d: (a: typeof x) => void ; +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 7, 36)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 8, 18)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected static r: typeof x; +>r : Symbol(Base.r, Decl(derivedClassOverridesProtectedMembers2.ts, 8, 40)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected static s(a: typeof x) { } +>s : Symbol(Base.s, Decl(derivedClassOverridesProtectedMembers2.ts, 10, 33)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 23)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected static get t() { return x; } +>t : Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 39), Decl(derivedClassOverridesProtectedMembers2.ts, 12, 42)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected static set t(v: typeof x) { } +>t : Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 39), Decl(derivedClassOverridesProtectedMembers2.ts, 12, 42)) +>v : Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 13, 27)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + protected static u: (a: typeof x) => void ; +>u : Symbol(Base.u, Decl(derivedClassOverridesProtectedMembers2.ts, 13, 43)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 14, 25)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + +constructor(a: typeof x) { } +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 16, 12)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +} + +// Increase visibility of all protected members to public +class Derived extends Base { +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>Base : Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36)) + + a: typeof y; +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + b(a: typeof y) { } +>b : Symbol(b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 6)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + get c() { return y; } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + set c(v: typeof y) { } +>c : Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) +>v : Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 10)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + d: (a: typeof y) => void; +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 8)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + static r: typeof y; +>r : Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + static s(a: typeof y) { } +>s : Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 13)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + static get t() { return y; } +>t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + static set t(a: typeof y) { } +>t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 17)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + static u: (a: typeof y) => void; +>u : Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 31, 15)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + + constructor(a: typeof y) { super(a); } +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 33, 16)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>super : Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36)) +>a : Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 33, 16)) +} + +var d: Derived = new Derived(y); +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + +var r1 = d.a; +>r1 : Symbol(r1, Decl(derivedClassOverridesProtectedMembers2.ts, 37, 3)) +>d.a : Symbol(Derived.a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28)) +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) +>a : Symbol(Derived.a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28)) + +var r2 = d.b(y); +>r2 : Symbol(r2, Decl(derivedClassOverridesProtectedMembers2.ts, 38, 3)) +>d.b : Symbol(Derived.b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16)) +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) +>b : Symbol(Derived.b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + +var r3 = d.c; +>r3 : Symbol(r3, Decl(derivedClassOverridesProtectedMembers2.ts, 39, 3)) +>d.c : Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) +>c : Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) + +var r3a = d.d; +>r3a : Symbol(r3a, Decl(derivedClassOverridesProtectedMembers2.ts, 40, 3)) +>d.d : Symbol(Derived.d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26)) +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) +>d : Symbol(Derived.d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26)) + +d.c = y; +>d.c : Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) +>d : Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) +>c : Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + +var r4 = Derived.r; +>r4 : Symbol(r4, Decl(derivedClassOverridesProtectedMembers2.ts, 42, 3)) +>Derived.r : Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>r : Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29)) + +var r5 = Derived.s(y); +>r5 : Symbol(r5, Decl(derivedClassOverridesProtectedMembers2.ts, 43, 3)) +>Derived.s : Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>s : Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + +var r6 = Derived.t; +>r6 : Symbol(r6, Decl(derivedClassOverridesProtectedMembers2.ts, 44, 3)) +>Derived.t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) + +var r6a = Derived.u; +>r6a : Symbol(r6a, Decl(derivedClassOverridesProtectedMembers2.ts, 45, 3)) +>Derived.u : Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>u : Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33)) + +Derived.t = y; +>Derived.t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) +>Derived : Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>t : Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) + +class Base2 { +>Base2 : Symbol(Base2, Decl(derivedClassOverridesProtectedMembers2.ts, 46, 14)) + + [i: string]: Object; +>i : Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 49, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [i: number]: typeof x; +>i : Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 50, 5)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +} + +class Derived2 extends Base2 { +>Derived2 : Symbol(Derived2, Decl(derivedClassOverridesProtectedMembers2.ts, 51, 1)) +>Base2 : Symbol(Base2, Decl(derivedClassOverridesProtectedMembers2.ts, 46, 14)) + + [i: string]: typeof x; +>i : Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 54, 5)) +>x : Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) + + [i: number]: typeof y; +>i : Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 55, 5)) +>y : Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +} + +var d2: Derived2; +>d2 : Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3)) +>Derived2 : Symbol(Derived2, Decl(derivedClassOverridesProtectedMembers2.ts, 51, 1)) + +var r7 = d2['']; +>r7 : Symbol(r7, Decl(derivedClassOverridesProtectedMembers2.ts, 59, 3)) +>d2 : Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3)) + +var r8 = d2[1]; +>r8 : Symbol(r8, Decl(derivedClassOverridesProtectedMembers2.ts, 60, 3)) +>d2 : Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3)) + + diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types index 8beb0cf43a15c..2799555a3a2b6 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.types @@ -1,238 +1,238 @@ === tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesProtectedMembers2.ts === var x: { foo: string; } ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) ->foo : string, Symbol(foo, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 8)) +>x : { foo: string; } +>foo : string var y: { foo: string; bar: string; } ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) ->foo : string, Symbol(foo, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 8)) ->bar : string, Symbol(bar, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 21)) +>y : { foo: string; bar: string; } +>foo : string +>bar : string class Base { ->Base : Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36)) +>Base : Base protected a: typeof x; ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 3, 12)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>a : { foo: string; } +>x : { foo: string; } protected b(a: typeof x) { } ->b : (a: { foo: string; }) => void, Symbol(b, Decl(derivedClassOverridesProtectedMembers2.ts, 4, 26)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 16)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>b : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } protected get c() { return x; } ->c : { foo: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 32), Decl(derivedClassOverridesProtectedMembers2.ts, 6, 35)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>c : { foo: string; } +>x : { foo: string; } protected set c(v: typeof x) { } ->c : { foo: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 5, 32), Decl(derivedClassOverridesProtectedMembers2.ts, 6, 35)) ->v : { foo: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 7, 20)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>c : { foo: string; } +>v : { foo: string; } +>x : { foo: string; } protected d: (a: typeof x) => void ; ->d : (a: { foo: string; }) => void, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 7, 36)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 8, 18)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>d : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } protected static r: typeof x; ->r : { foo: string; }, Symbol(Base.r, Decl(derivedClassOverridesProtectedMembers2.ts, 8, 40)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>r : { foo: string; } +>x : { foo: string; } protected static s(a: typeof x) { } ->s : (a: { foo: string; }) => void, Symbol(Base.s, Decl(derivedClassOverridesProtectedMembers2.ts, 10, 33)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 23)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>s : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } protected static get t() { return x; } ->t : { foo: string; }, Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 39), Decl(derivedClassOverridesProtectedMembers2.ts, 12, 42)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>t : { foo: string; } +>x : { foo: string; } protected static set t(v: typeof x) { } ->t : { foo: string; }, Symbol(Base.t, Decl(derivedClassOverridesProtectedMembers2.ts, 11, 39), Decl(derivedClassOverridesProtectedMembers2.ts, 12, 42)) ->v : { foo: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 13, 27)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>t : { foo: string; } +>v : { foo: string; } +>x : { foo: string; } protected static u: (a: typeof x) => void ; ->u : (a: { foo: string; }) => void, Symbol(Base.u, Decl(derivedClassOverridesProtectedMembers2.ts, 13, 43)) ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 14, 25)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>u : (a: { foo: string; }) => void +>a : { foo: string; } +>x : { foo: string; } constructor(a: typeof x) { } ->a : { foo: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 16, 12)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>a : { foo: string; } +>x : { foo: string; } } // Increase visibility of all protected members to public class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->Base : Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36)) +>Derived : Derived +>Base : Base a: typeof y; ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } b(a: typeof y) { } ->b : (a: { foo: string; bar: string; }) => void, Symbol(b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 6)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>b : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } get c() { return y; } ->c : { foo: string; bar: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>c : { foo: string; bar: string; } +>y : { foo: string; bar: string; } set c(v: typeof y) { } ->c : { foo: string; bar: string; }, Symbol(c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) ->v : { foo: string; bar: string; }, Symbol(v, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 10)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>c : { foo: string; bar: string; } +>v : { foo: string; bar: string; } +>y : { foo: string; bar: string; } d: (a: typeof y) => void; ->d : (a: { foo: string; bar: string; }) => void, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 8)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>d : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } static r: typeof y; ->r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>r : { foo: string; bar: string; } +>y : { foo: string; bar: string; } static s(a: typeof y) { } ->s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 13)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>s : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } static get t() { return y; } ->t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>t : { foo: string; bar: string; } +>y : { foo: string; bar: string; } static set t(a: typeof y) { } ->t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 17)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>t : { foo: string; bar: string; } +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } static u: (a: typeof y) => void; ->u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 31, 15)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>u : (a: { foo: string; bar: string; }) => void +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } constructor(a: typeof y) { super(a); } ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 33, 16)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>a : { foo: string; bar: string; } +>y : { foo: string; bar: string; } >super(a) : void ->super : typeof Base, Symbol(Base, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 36)) ->a : { foo: string; bar: string; }, Symbol(a, Decl(derivedClassOverridesProtectedMembers2.ts, 33, 16)) +>super : typeof Base +>a : { foo: string; bar: string; } } var d: Derived = new Derived(y); ->d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) ->Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) +>d : Derived +>Derived : Derived >new Derived(y) : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>Derived : typeof Derived +>y : { foo: string; bar: string; } var r1 = d.a; ->r1 : { foo: string; bar: string; }, Symbol(r1, Decl(derivedClassOverridesProtectedMembers2.ts, 37, 3)) ->d.a : { foo: string; bar: string; }, Symbol(Derived.a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28)) ->d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) ->a : { foo: string; bar: string; }, Symbol(Derived.a, Decl(derivedClassOverridesProtectedMembers2.ts, 20, 28)) +>r1 : { foo: string; bar: string; } +>d.a : { foo: string; bar: string; } +>d : Derived +>a : { foo: string; bar: string; } var r2 = d.b(y); ->r2 : void, Symbol(r2, Decl(derivedClassOverridesProtectedMembers2.ts, 38, 3)) +>r2 : void >d.b(y) : void ->d.b : (a: { foo: string; bar: string; }) => void, Symbol(Derived.b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16)) ->d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) ->b : (a: { foo: string; bar: string; }) => void, Symbol(Derived.b, Decl(derivedClassOverridesProtectedMembers2.ts, 21, 16)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>d.b : (a: { foo: string; bar: string; }) => void +>d : Derived +>b : (a: { foo: string; bar: string; }) => void +>y : { foo: string; bar: string; } var r3 = d.c; ->r3 : { foo: string; bar: string; }, Symbol(r3, Decl(derivedClassOverridesProtectedMembers2.ts, 39, 3)) ->d.c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) ->d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) ->c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) +>r3 : { foo: string; bar: string; } +>d.c : { foo: string; bar: string; } +>d : Derived +>c : { foo: string; bar: string; } var r3a = d.d; ->r3a : (a: { foo: string; bar: string; }) => void, Symbol(r3a, Decl(derivedClassOverridesProtectedMembers2.ts, 40, 3)) ->d.d : (a: { foo: string; bar: string; }) => void, Symbol(Derived.d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26)) ->d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) ->d : (a: { foo: string; bar: string; }) => void, Symbol(Derived.d, Decl(derivedClassOverridesProtectedMembers2.ts, 24, 26)) +>r3a : (a: { foo: string; bar: string; }) => void +>d.d : (a: { foo: string; bar: string; }) => void +>d : Derived +>d : (a: { foo: string; bar: string; }) => void d.c = y; >d.c = y : { foo: string; bar: string; } ->d.c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) ->d : Derived, Symbol(d, Decl(derivedClassOverridesProtectedMembers2.ts, 36, 3)) ->c : { foo: string; bar: string; }, Symbol(Derived.c, Decl(derivedClassOverridesProtectedMembers2.ts, 22, 22), Decl(derivedClassOverridesProtectedMembers2.ts, 23, 25)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>d.c : { foo: string; bar: string; } +>d : Derived +>c : { foo: string; bar: string; } +>y : { foo: string; bar: string; } var r4 = Derived.r; ->r4 : { foo: string; bar: string; }, Symbol(r4, Decl(derivedClassOverridesProtectedMembers2.ts, 42, 3)) ->Derived.r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29)) ->Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->r : { foo: string; bar: string; }, Symbol(Derived.r, Decl(derivedClassOverridesProtectedMembers2.ts, 25, 29)) +>r4 : { foo: string; bar: string; } +>Derived.r : { foo: string; bar: string; } +>Derived : typeof Derived +>r : { foo: string; bar: string; } var r5 = Derived.s(y); ->r5 : void, Symbol(r5, Decl(derivedClassOverridesProtectedMembers2.ts, 43, 3)) +>r5 : void >Derived.s(y) : void ->Derived.s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23)) ->Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->s : (a: { foo: string; bar: string; }) => void, Symbol(Derived.s, Decl(derivedClassOverridesProtectedMembers2.ts, 27, 23)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>Derived.s : (a: { foo: string; bar: string; }) => void +>Derived : typeof Derived +>s : (a: { foo: string; bar: string; }) => void +>y : { foo: string; bar: string; } var r6 = Derived.t; ->r6 : { foo: string; bar: string; }, Symbol(r6, Decl(derivedClassOverridesProtectedMembers2.ts, 44, 3)) ->Derived.t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) ->Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) +>r6 : { foo: string; bar: string; } +>Derived.t : { foo: string; bar: string; } +>Derived : typeof Derived +>t : { foo: string; bar: string; } var r6a = Derived.u; ->r6a : (a: { foo: string; bar: string; }) => void, Symbol(r6a, Decl(derivedClassOverridesProtectedMembers2.ts, 45, 3)) ->Derived.u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33)) ->Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->u : (a: { foo: string; bar: string; }) => void, Symbol(Derived.u, Decl(derivedClassOverridesProtectedMembers2.ts, 30, 33)) +>r6a : (a: { foo: string; bar: string; }) => void +>Derived.u : (a: { foo: string; bar: string; }) => void +>Derived : typeof Derived +>u : (a: { foo: string; bar: string; }) => void Derived.t = y; >Derived.t = y : { foo: string; bar: string; } ->Derived.t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) ->Derived : typeof Derived, Symbol(Derived, Decl(derivedClassOverridesProtectedMembers2.ts, 17, 1)) ->t : { foo: string; bar: string; }, Symbol(Derived.t, Decl(derivedClassOverridesProtectedMembers2.ts, 28, 29), Decl(derivedClassOverridesProtectedMembers2.ts, 29, 32)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>Derived.t : { foo: string; bar: string; } +>Derived : typeof Derived +>t : { foo: string; bar: string; } +>y : { foo: string; bar: string; } class Base2 { ->Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesProtectedMembers2.ts, 46, 14)) +>Base2 : Base2 [i: string]: Object; ->i : string, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 49, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>i : string +>Object : Object [i: number]: typeof x; ->i : number, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 50, 5)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>i : number +>x : { foo: string; } } class Derived2 extends Base2 { ->Derived2 : Derived2, Symbol(Derived2, Decl(derivedClassOverridesProtectedMembers2.ts, 51, 1)) ->Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesProtectedMembers2.ts, 46, 14)) +>Derived2 : Derived2 +>Base2 : Base2 [i: string]: typeof x; ->i : string, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 54, 5)) ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesProtectedMembers2.ts, 0, 3)) +>i : string +>x : { foo: string; } [i: number]: typeof y; ->i : number, Symbol(i, Decl(derivedClassOverridesProtectedMembers2.ts, 55, 5)) ->y : { foo: string; bar: string; }, Symbol(y, Decl(derivedClassOverridesProtectedMembers2.ts, 1, 3)) +>i : number +>y : { foo: string; bar: string; } } var d2: Derived2; ->d2 : Derived2, Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3)) ->Derived2 : Derived2, Symbol(Derived2, Decl(derivedClassOverridesProtectedMembers2.ts, 51, 1)) +>d2 : Derived2 +>Derived2 : Derived2 var r7 = d2['']; ->r7 : { foo: string; }, Symbol(r7, Decl(derivedClassOverridesProtectedMembers2.ts, 59, 3)) +>r7 : { foo: string; } >d2[''] : { foo: string; } ->d2 : Derived2, Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3)) +>d2 : Derived2 >'' : string var r8 = d2[1]; ->r8 : { foo: string; bar: string; }, Symbol(r8, Decl(derivedClassOverridesProtectedMembers2.ts, 60, 3)) +>r8 : { foo: string; bar: string; } >d2[1] : { foo: string; bar: string; } ->d2 : Derived2, Symbol(d2, Decl(derivedClassOverridesProtectedMembers2.ts, 58, 3)) +>d2 : Derived2 >1 : number diff --git a/tests/baselines/reference/derivedClassOverridesWithoutSubtype.symbols b/tests/baselines/reference/derivedClassOverridesWithoutSubtype.symbols new file mode 100644 index 0000000000000..452da91f034c6 --- /dev/null +++ b/tests/baselines/reference/derivedClassOverridesWithoutSubtype.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesWithoutSubtype.ts === +class Base { +>Base : Symbol(Base, Decl(derivedClassOverridesWithoutSubtype.ts, 0, 0)) + + x: { +>x : Symbol(x, Decl(derivedClassOverridesWithoutSubtype.ts, 0, 12)) + + foo: string; +>foo : Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 1, 8)) + } +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(derivedClassOverridesWithoutSubtype.ts, 4, 1)) +>Base : Symbol(Base, Decl(derivedClassOverridesWithoutSubtype.ts, 0, 0)) + + x: { +>x : Symbol(x, Decl(derivedClassOverridesWithoutSubtype.ts, 6, 28)) + + foo: any; +>foo : Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 7, 8)) + } +} + +class Base2 { +>Base2 : Symbol(Base2, Decl(derivedClassOverridesWithoutSubtype.ts, 10, 1)) + + static y: { +>y : Symbol(Base2.y, Decl(derivedClassOverridesWithoutSubtype.ts, 12, 13)) + + foo: string; +>foo : Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 13, 15)) + } +} + +class Derived2 extends Base2 { +>Derived2 : Symbol(Derived2, Decl(derivedClassOverridesWithoutSubtype.ts, 16, 1)) +>Base2 : Symbol(Base2, Decl(derivedClassOverridesWithoutSubtype.ts, 10, 1)) + + static y: { +>y : Symbol(Derived2.y, Decl(derivedClassOverridesWithoutSubtype.ts, 18, 30)) + + foo: any; +>foo : Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 19, 15)) + } +} diff --git a/tests/baselines/reference/derivedClassOverridesWithoutSubtype.types b/tests/baselines/reference/derivedClassOverridesWithoutSubtype.types index f5729a3bd654f..a46c8efa408ba 100644 --- a/tests/baselines/reference/derivedClassOverridesWithoutSubtype.types +++ b/tests/baselines/reference/derivedClassOverridesWithoutSubtype.types @@ -1,46 +1,46 @@ === tests/cases/conformance/classes/members/inheritanceAndOverriding/derivedClassOverridesWithoutSubtype.ts === class Base { ->Base : Base, Symbol(Base, Decl(derivedClassOverridesWithoutSubtype.ts, 0, 0)) +>Base : Base x: { ->x : { foo: string; }, Symbol(x, Decl(derivedClassOverridesWithoutSubtype.ts, 0, 12)) +>x : { foo: string; } foo: string; ->foo : string, Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 1, 8)) +>foo : string } } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(derivedClassOverridesWithoutSubtype.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(derivedClassOverridesWithoutSubtype.ts, 0, 0)) +>Derived : Derived +>Base : Base x: { ->x : { foo: any; }, Symbol(x, Decl(derivedClassOverridesWithoutSubtype.ts, 6, 28)) +>x : { foo: any; } foo: any; ->foo : any, Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 7, 8)) +>foo : any } } class Base2 { ->Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesWithoutSubtype.ts, 10, 1)) +>Base2 : Base2 static y: { ->y : { foo: string; }, Symbol(Base2.y, Decl(derivedClassOverridesWithoutSubtype.ts, 12, 13)) +>y : { foo: string; } foo: string; ->foo : string, Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 13, 15)) +>foo : string } } class Derived2 extends Base2 { ->Derived2 : Derived2, Symbol(Derived2, Decl(derivedClassOverridesWithoutSubtype.ts, 16, 1)) ->Base2 : Base2, Symbol(Base2, Decl(derivedClassOverridesWithoutSubtype.ts, 10, 1)) +>Derived2 : Derived2 +>Base2 : Base2 static y: { ->y : { foo: any; }, Symbol(Derived2.y, Decl(derivedClassOverridesWithoutSubtype.ts, 18, 30)) +>y : { foo: any; } foo: any; ->foo : any, Symbol(foo, Decl(derivedClassOverridesWithoutSubtype.ts, 19, 15)) +>foo : any } } diff --git a/tests/baselines/reference/derivedClasses.symbols b/tests/baselines/reference/derivedClasses.symbols new file mode 100644 index 0000000000000..f265c2dce538f --- /dev/null +++ b/tests/baselines/reference/derivedClasses.symbols @@ -0,0 +1,77 @@ +=== tests/cases/compiler/derivedClasses.ts === +class Red extends Color { +>Red : Symbol(Red, Decl(derivedClasses.ts, 0, 0)) +>Color : Symbol(Color, Decl(derivedClasses.ts, 5, 1)) + + public shade() { +>shade : Symbol(shade, Decl(derivedClasses.ts, 0, 25)) + + var getHue = () => { return this.hue(); }; +>getHue : Symbol(getHue, Decl(derivedClasses.ts, 2, 8)) +>this.hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>this : Symbol(Red, Decl(derivedClasses.ts, 0, 0)) +>hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) + + return getHue() + " red"; +>getHue : Symbol(getHue, Decl(derivedClasses.ts, 2, 8)) + } +} + +class Color { +>Color : Symbol(Color, Decl(derivedClasses.ts, 5, 1)) + + public shade() { return "some shade"; } +>shade : Symbol(shade, Decl(derivedClasses.ts, 7, 13)) + + public hue() { return "some hue"; } +>hue : Symbol(hue, Decl(derivedClasses.ts, 8, 43)) +} + +class Blue extends Color { +>Blue : Symbol(Blue, Decl(derivedClasses.ts, 10, 1)) +>Color : Symbol(Color, Decl(derivedClasses.ts, 5, 1)) + + public shade() { +>shade : Symbol(shade, Decl(derivedClasses.ts, 12, 26)) + + var getHue = () => { return this.hue(); }; +>getHue : Symbol(getHue, Decl(derivedClasses.ts, 15, 8)) +>this.hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>this : Symbol(Blue, Decl(derivedClasses.ts, 10, 1)) +>hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) + + return getHue() + " blue"; +>getHue : Symbol(getHue, Decl(derivedClasses.ts, 15, 8)) + } +} + +var r = new Red(); +>r : Symbol(r, Decl(derivedClasses.ts, 20, 3)) +>Red : Symbol(Red, Decl(derivedClasses.ts, 0, 0)) + +var b = new Blue(); +>b : Symbol(b, Decl(derivedClasses.ts, 21, 3)) +>Blue : Symbol(Blue, Decl(derivedClasses.ts, 10, 1)) + +r.shade(); +>r.shade : Symbol(Red.shade, Decl(derivedClasses.ts, 0, 25)) +>r : Symbol(r, Decl(derivedClasses.ts, 20, 3)) +>shade : Symbol(Red.shade, Decl(derivedClasses.ts, 0, 25)) + +r.hue(); +>r.hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>r : Symbol(r, Decl(derivedClasses.ts, 20, 3)) +>hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) + +b.shade(); +>b.shade : Symbol(Blue.shade, Decl(derivedClasses.ts, 12, 26)) +>b : Symbol(b, Decl(derivedClasses.ts, 21, 3)) +>shade : Symbol(Blue.shade, Decl(derivedClasses.ts, 12, 26)) + +b.hue(); +>b.hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>b : Symbol(b, Decl(derivedClasses.ts, 21, 3)) +>hue : Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) + + + diff --git a/tests/baselines/reference/derivedClasses.types b/tests/baselines/reference/derivedClasses.types index 33a4e11e3699a..906cfb2741c7c 100644 --- a/tests/baselines/reference/derivedClasses.types +++ b/tests/baselines/reference/derivedClasses.types @@ -1,95 +1,95 @@ === tests/cases/compiler/derivedClasses.ts === class Red extends Color { ->Red : Red, Symbol(Red, Decl(derivedClasses.ts, 0, 0)) ->Color : Color, Symbol(Color, Decl(derivedClasses.ts, 5, 1)) +>Red : Red +>Color : Color public shade() { ->shade : () => string, Symbol(shade, Decl(derivedClasses.ts, 0, 25)) +>shade : () => string var getHue = () => { return this.hue(); }; ->getHue : () => string, Symbol(getHue, Decl(derivedClasses.ts, 2, 8)) +>getHue : () => string >() => { return this.hue(); } : () => string >this.hue() : string ->this.hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) ->this : Red, Symbol(Red, Decl(derivedClasses.ts, 0, 0)) ->hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>this.hue : () => string +>this : Red +>hue : () => string return getHue() + " red"; >getHue() + " red" : string >getHue() : string ->getHue : () => string, Symbol(getHue, Decl(derivedClasses.ts, 2, 8)) +>getHue : () => string >" red" : string } } class Color { ->Color : Color, Symbol(Color, Decl(derivedClasses.ts, 5, 1)) +>Color : Color public shade() { return "some shade"; } ->shade : () => string, Symbol(shade, Decl(derivedClasses.ts, 7, 13)) +>shade : () => string >"some shade" : string public hue() { return "some hue"; } ->hue : () => string, Symbol(hue, Decl(derivedClasses.ts, 8, 43)) +>hue : () => string >"some hue" : string } class Blue extends Color { ->Blue : Blue, Symbol(Blue, Decl(derivedClasses.ts, 10, 1)) ->Color : Color, Symbol(Color, Decl(derivedClasses.ts, 5, 1)) +>Blue : Blue +>Color : Color public shade() { ->shade : () => string, Symbol(shade, Decl(derivedClasses.ts, 12, 26)) +>shade : () => string var getHue = () => { return this.hue(); }; ->getHue : () => string, Symbol(getHue, Decl(derivedClasses.ts, 15, 8)) +>getHue : () => string >() => { return this.hue(); } : () => string >this.hue() : string ->this.hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) ->this : Blue, Symbol(Blue, Decl(derivedClasses.ts, 10, 1)) ->hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>this.hue : () => string +>this : Blue +>hue : () => string return getHue() + " blue"; >getHue() + " blue" : string >getHue() : string ->getHue : () => string, Symbol(getHue, Decl(derivedClasses.ts, 15, 8)) +>getHue : () => string >" blue" : string } } var r = new Red(); ->r : Red, Symbol(r, Decl(derivedClasses.ts, 20, 3)) +>r : Red >new Red() : Red ->Red : typeof Red, Symbol(Red, Decl(derivedClasses.ts, 0, 0)) +>Red : typeof Red var b = new Blue(); ->b : Blue, Symbol(b, Decl(derivedClasses.ts, 21, 3)) +>b : Blue >new Blue() : Blue ->Blue : typeof Blue, Symbol(Blue, Decl(derivedClasses.ts, 10, 1)) +>Blue : typeof Blue r.shade(); >r.shade() : string ->r.shade : () => string, Symbol(Red.shade, Decl(derivedClasses.ts, 0, 25)) ->r : Red, Symbol(r, Decl(derivedClasses.ts, 20, 3)) ->shade : () => string, Symbol(Red.shade, Decl(derivedClasses.ts, 0, 25)) +>r.shade : () => string +>r : Red +>shade : () => string r.hue(); >r.hue() : string ->r.hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) ->r : Red, Symbol(r, Decl(derivedClasses.ts, 20, 3)) ->hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>r.hue : () => string +>r : Red +>hue : () => string b.shade(); >b.shade() : string ->b.shade : () => string, Symbol(Blue.shade, Decl(derivedClasses.ts, 12, 26)) ->b : Blue, Symbol(b, Decl(derivedClasses.ts, 21, 3)) ->shade : () => string, Symbol(Blue.shade, Decl(derivedClasses.ts, 12, 26)) +>b.shade : () => string +>b : Blue +>shade : () => string b.hue(); >b.hue() : string ->b.hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) ->b : Blue, Symbol(b, Decl(derivedClasses.ts, 21, 3)) ->hue : () => string, Symbol(Color.hue, Decl(derivedClasses.ts, 8, 43)) +>b.hue : () => string +>b : Blue +>hue : () => string diff --git a/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.symbols b/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.symbols new file mode 100644 index 0000000000000..5cd63ba900881 --- /dev/null +++ b/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/derivedInterfaceDoesNotHideBaseSignatures.ts === +// Derived interfaces no longer hide signatures from base types, so these signatures are always compatible. +interface Base { +>Base : Symbol(Base, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 0, 0)) + + (): string; + new (x: string): number; +>x : Symbol(x, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 3, 9)) +} + +interface Derived extends Base { +>Derived : Symbol(Derived, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 4, 1)) +>Base : Symbol(Base, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 0, 0)) + + (): number; + new (x: string): string; +>x : Symbol(x, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 8, 9)) +} diff --git a/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.types b/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.types index ae3d720731197..7ee090b7de3b9 100644 --- a/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.types +++ b/tests/baselines/reference/derivedInterfaceDoesNotHideBaseSignatures.types @@ -1,18 +1,18 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/derivedInterfaceDoesNotHideBaseSignatures.ts === // Derived interfaces no longer hide signatures from base types, so these signatures are always compatible. interface Base { ->Base : Base, Symbol(Base, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 0, 0)) +>Base : Base (): string; new (x: string): number; ->x : string, Symbol(x, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 3, 9)) +>x : string } interface Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 0, 0)) +>Derived : Derived +>Base : Base (): number; new (x: string): string; ->x : string, Symbol(x, Decl(derivedInterfaceDoesNotHideBaseSignatures.ts, 8, 9)) +>x : string } diff --git a/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.symbols b/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.symbols new file mode 100644 index 0000000000000..e935d7bf66aa2 --- /dev/null +++ b/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.symbols @@ -0,0 +1,56 @@ +=== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts === +class Base { +>Base : Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) + + foo(x: { a: number }): { a: number } { +>foo : Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>x : Symbol(x, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 1, 8)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 1, 12)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 1, 28)) + + return null; + } +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 4, 1)) +>Base : Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) + + foo(x: { a: number; b: number }): { a: number; b: number } { +>foo : Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 6, 28)) +>x : Symbol(x, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 8)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 12)) +>b : Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 23)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 39)) +>b : Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 50)) + + return null; + } + + bar() { +>bar : Symbol(bar, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 9, 5)) + + var r = super.foo({ a: 1 }); // { a: number } +>r : Symbol(r, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 12, 11)) +>super.foo : Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>super : Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) +>foo : Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 12, 27)) + + var r2 = super.foo({ a: 1, b: 2 }); // { a: number } +>r2 : Symbol(r2, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 13, 11)) +>super.foo : Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>super : Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) +>foo : Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 13, 28)) +>b : Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 13, 34)) + + var r3 = this.foo({ a: 1, b: 2 }); // { a: number; b: number; } +>r3 : Symbol(r3, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 14, 11)) +>this.foo : Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 6, 28)) +>this : Symbol(Derived, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 4, 1)) +>foo : Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 6, 28)) +>a : Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 14, 27)) +>b : Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 14, 33)) + } +} diff --git a/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types b/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types index 9a68b733f8125..d8d9f657255af 100644 --- a/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types +++ b/tests/baselines/reference/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.types @@ -1,12 +1,12 @@ === tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts === class Base { ->Base : Base, Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) +>Base : Base foo(x: { a: number }): { a: number } { ->foo : (x: { a: number; }) => { a: number; }, Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) ->x : { a: number; }, Symbol(x, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 1, 8)) ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 1, 12)) ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 1, 28)) +>foo : (x: { a: number; }) => { a: number; } +>x : { a: number; } +>a : number +>a : number return null; >null : null @@ -14,56 +14,56 @@ class Base { } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 4, 1)) ->Base : Base, Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) +>Derived : Derived +>Base : Base foo(x: { a: number; b: number }): { a: number; b: number } { ->foo : (x: { a: number; b: number; }) => { a: number; b: number; }, Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 6, 28)) ->x : { a: number; b: number; }, Symbol(x, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 8)) ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 12)) ->b : number, Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 23)) ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 39)) ->b : number, Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 7, 50)) +>foo : (x: { a: number; b: number; }) => { a: number; b: number; } +>x : { a: number; b: number; } +>a : number +>b : number +>a : number +>b : number return null; >null : null } bar() { ->bar : () => void, Symbol(bar, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 9, 5)) +>bar : () => void var r = super.foo({ a: 1 }); // { a: number } ->r : { a: number; }, Symbol(r, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 12, 11)) +>r : { a: number; } >super.foo({ a: 1 }) : { a: number; } ->super.foo : (x: { a: number; }) => { a: number; }, Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) ->super : Base, Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) ->foo : (x: { a: number; }) => { a: number; }, Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>super.foo : (x: { a: number; }) => { a: number; } +>super : Base +>foo : (x: { a: number; }) => { a: number; } >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 12, 27)) +>a : number >1 : number var r2 = super.foo({ a: 1, b: 2 }); // { a: number } ->r2 : { a: number; }, Symbol(r2, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 13, 11)) +>r2 : { a: number; } >super.foo({ a: 1, b: 2 }) : { a: number; } ->super.foo : (x: { a: number; }) => { a: number; }, Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) ->super : Base, Symbol(Base, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 0)) ->foo : (x: { a: number; }) => { a: number; }, Symbol(Base.foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 0, 12)) +>super.foo : (x: { a: number; }) => { a: number; } +>super : Base +>foo : (x: { a: number; }) => { a: number; } >{ a: 1, b: 2 } : { a: number; b: number; } ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 13, 28)) +>a : number >1 : number ->b : number, Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 13, 34)) +>b : number >2 : number var r3 = this.foo({ a: 1, b: 2 }); // { a: number; b: number; } ->r3 : { a: number; b: number; }, Symbol(r3, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 14, 11)) +>r3 : { a: number; b: number; } >this.foo({ a: 1, b: 2 }) : { a: number; b: number; } ->this.foo : (x: { a: number; b: number; }) => { a: number; b: number; }, Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 6, 28)) ->this : Derived, Symbol(Derived, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 4, 1)) ->foo : (x: { a: number; b: number; }) => { a: number; b: number; }, Symbol(foo, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 6, 28)) +>this.foo : (x: { a: number; b: number; }) => { a: number; b: number; } +>this : Derived +>foo : (x: { a: number; b: number; }) => { a: number; b: number; } >{ a: 1, b: 2 } : { a: number; b: number; } ->a : number, Symbol(a, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 14, 27)) +>a : number >1 : number ->b : number, Symbol(b, Decl(derivedTypeAccessesHiddenBaseCallViaSuperPropertyAccess.ts, 14, 33)) +>b : number >2 : number } } diff --git a/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.symbols b/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.symbols new file mode 100644 index 0000000000000..e0f41b72f76e0 --- /dev/null +++ b/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.symbols @@ -0,0 +1,52 @@ +=== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.ts === +class Base { +>Base : Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 12)) +} + +class Derived { +>Derived : Symbol(Derived, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 2, 1)) + + foo: string; +>foo : Symbol(foo, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 4, 15)) + + bar: number; +>bar : Symbol(bar, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 5, 16)) +} + +class Derived2 extends Base { +>Derived2 : Symbol(Derived2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 7, 1)) +>Base : Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) + + bar: string; +>bar : Symbol(bar, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 9, 29)) +} + +var b: Base; +>b : Symbol(b, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 13, 3)) +>Base : Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) + +var d1: Derived; +>d1 : Symbol(d1, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 14, 3)) +>Derived : Symbol(Derived, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 2, 1)) + +var d2: Derived2; +>d2 : Symbol(d2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 15, 3)) +>Derived2 : Symbol(Derived2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 7, 1)) + +b = d1; +>b : Symbol(b, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 13, 3)) +>d1 : Symbol(d1, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 14, 3)) + +b = d2; +>b : Symbol(b, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 13, 3)) +>d2 : Symbol(d2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 15, 3)) + +var r: Base[] = [d1, d2]; +>r : Symbol(r, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 19, 3)) +>Base : Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) +>d1 : Symbol(d1, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 14, 3)) +>d2 : Symbol(d2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 15, 3)) + diff --git a/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types b/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types index 666422939e766..36b85d7950c6e 100644 --- a/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types +++ b/tests/baselines/reference/derivedTypeDoesNotRequireExtendsClause.types @@ -1,55 +1,55 @@ === tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/derivedTypeDoesNotRequireExtendsClause.ts === class Base { ->Base : Base, Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) +>Base : Base foo: string; ->foo : string, Symbol(foo, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 12)) +>foo : string } class Derived { ->Derived : Derived, Symbol(Derived, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 2, 1)) +>Derived : Derived foo: string; ->foo : string, Symbol(foo, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 4, 15)) +>foo : string bar: number; ->bar : number, Symbol(bar, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 5, 16)) +>bar : number } class Derived2 extends Base { ->Derived2 : Derived2, Symbol(Derived2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 7, 1)) ->Base : Base, Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) +>Derived2 : Derived2 +>Base : Base bar: string; ->bar : string, Symbol(bar, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 9, 29)) +>bar : string } var b: Base; ->b : Base, Symbol(b, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 13, 3)) ->Base : Base, Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) +>b : Base +>Base : Base var d1: Derived; ->d1 : Derived, Symbol(d1, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 14, 3)) ->Derived : Derived, Symbol(Derived, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 2, 1)) +>d1 : Derived +>Derived : Derived var d2: Derived2; ->d2 : Derived2, Symbol(d2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 15, 3)) ->Derived2 : Derived2, Symbol(Derived2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 7, 1)) +>d2 : Derived2 +>Derived2 : Derived2 b = d1; >b = d1 : Derived ->b : Base, Symbol(b, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 13, 3)) ->d1 : Derived, Symbol(d1, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 14, 3)) +>b : Base +>d1 : Derived b = d2; >b = d2 : Derived2 ->b : Base, Symbol(b, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 13, 3)) ->d2 : Derived2, Symbol(d2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 15, 3)) +>b : Base +>d2 : Derived2 var r: Base[] = [d1, d2]; ->r : Base[], Symbol(r, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 19, 3)) ->Base : Base, Symbol(Base, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 0, 0)) +>r : Base[] +>Base : Base >[d1, d2] : (Derived | Derived2)[] ->d1 : Derived, Symbol(d1, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 14, 3)) ->d2 : Derived2, Symbol(d2, Decl(derivedTypeDoesNotRequireExtendsClause.ts, 15, 3)) +>d1 : Derived +>d2 : Derived2 diff --git a/tests/baselines/reference/detachedCommentAtStartOfConstructor1.symbols b/tests/baselines/reference/detachedCommentAtStartOfConstructor1.symbols new file mode 100644 index 0000000000000..9590abaa4608c --- /dev/null +++ b/tests/baselines/reference/detachedCommentAtStartOfConstructor1.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/detachedCommentAtStartOfConstructor1.ts === +class TestFile { +>TestFile : Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 0)) + + public message: string; +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 16)) + + public name; +>name : Symbol(name, Decl(detachedCommentAtStartOfConstructor1.ts, 1, 27)) + + constructor(message: string) { +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 3, 16)) + + /// Test summary + /// + var getMessage = () => message + this.name; +>getMessage : Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor1.ts, 6, 11)) +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 3, 16)) +>this.name : Symbol(name, Decl(detachedCommentAtStartOfConstructor1.ts, 1, 27)) +>this : Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 0)) +>name : Symbol(name, Decl(detachedCommentAtStartOfConstructor1.ts, 1, 27)) + + this.message = getMessage(); +>this.message : Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 16)) +>this : Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 0)) +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 16)) +>getMessage : Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor1.ts, 6, 11)) + } +} diff --git a/tests/baselines/reference/detachedCommentAtStartOfConstructor1.types b/tests/baselines/reference/detachedCommentAtStartOfConstructor1.types index f2119dd582fc1..392821de7519a 100644 --- a/tests/baselines/reference/detachedCommentAtStartOfConstructor1.types +++ b/tests/baselines/reference/detachedCommentAtStartOfConstructor1.types @@ -1,33 +1,33 @@ === tests/cases/compiler/detachedCommentAtStartOfConstructor1.ts === class TestFile { ->TestFile : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 0)) +>TestFile : TestFile public message: string; ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 16)) +>message : string public name; ->name : any, Symbol(name, Decl(detachedCommentAtStartOfConstructor1.ts, 1, 27)) +>name : any constructor(message: string) { ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 3, 16)) +>message : string /// Test summary /// var getMessage = () => message + this.name; ->getMessage : () => string, Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor1.ts, 6, 11)) +>getMessage : () => string >() => message + this.name : () => string >message + this.name : string ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 3, 16)) ->this.name : any, Symbol(name, Decl(detachedCommentAtStartOfConstructor1.ts, 1, 27)) ->this : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 0)) ->name : any, Symbol(name, Decl(detachedCommentAtStartOfConstructor1.ts, 1, 27)) +>message : string +>this.name : any +>this : TestFile +>name : any this.message = getMessage(); >this.message = getMessage() : string ->this.message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 16)) ->this : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 0)) ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor1.ts, 0, 16)) +>this.message : string +>this : TestFile +>message : string >getMessage() : string ->getMessage : () => string, Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor1.ts, 6, 11)) +>getMessage : () => string } } diff --git a/tests/baselines/reference/detachedCommentAtStartOfConstructor2.symbols b/tests/baselines/reference/detachedCommentAtStartOfConstructor2.symbols new file mode 100644 index 0000000000000..78af94300342f --- /dev/null +++ b/tests/baselines/reference/detachedCommentAtStartOfConstructor2.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/detachedCommentAtStartOfConstructor2.ts === +class TestFile { +>TestFile : Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 0)) + + public message: string; +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 16)) + + public name: string; +>name : Symbol(name, Decl(detachedCommentAtStartOfConstructor2.ts, 1, 27)) + + constructor(message: string) { +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 3, 16)) + + /// Test summary + /// + + var getMessage = () => message + this.name; +>getMessage : Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor2.ts, 7, 11)) +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 3, 16)) +>this.name : Symbol(name, Decl(detachedCommentAtStartOfConstructor2.ts, 1, 27)) +>this : Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 0)) +>name : Symbol(name, Decl(detachedCommentAtStartOfConstructor2.ts, 1, 27)) + + this.message = getMessage(); +>this.message : Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 16)) +>this : Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 0)) +>message : Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 16)) +>getMessage : Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor2.ts, 7, 11)) + } +} diff --git a/tests/baselines/reference/detachedCommentAtStartOfConstructor2.types b/tests/baselines/reference/detachedCommentAtStartOfConstructor2.types index c58f561e46be2..b413cd557a5ee 100644 --- a/tests/baselines/reference/detachedCommentAtStartOfConstructor2.types +++ b/tests/baselines/reference/detachedCommentAtStartOfConstructor2.types @@ -1,34 +1,34 @@ === tests/cases/compiler/detachedCommentAtStartOfConstructor2.ts === class TestFile { ->TestFile : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 0)) +>TestFile : TestFile public message: string; ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 16)) +>message : string public name: string; ->name : string, Symbol(name, Decl(detachedCommentAtStartOfConstructor2.ts, 1, 27)) +>name : string constructor(message: string) { ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 3, 16)) +>message : string /// Test summary /// var getMessage = () => message + this.name; ->getMessage : () => string, Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor2.ts, 7, 11)) +>getMessage : () => string >() => message + this.name : () => string >message + this.name : string ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 3, 16)) ->this.name : string, Symbol(name, Decl(detachedCommentAtStartOfConstructor2.ts, 1, 27)) ->this : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 0)) ->name : string, Symbol(name, Decl(detachedCommentAtStartOfConstructor2.ts, 1, 27)) +>message : string +>this.name : string +>this : TestFile +>name : string this.message = getMessage(); >this.message = getMessage() : string ->this.message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 16)) ->this : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 0)) ->message : string, Symbol(message, Decl(detachedCommentAtStartOfConstructor2.ts, 0, 16)) +>this.message : string +>this : TestFile +>message : string >getMessage() : string ->getMessage : () => string, Symbol(getMessage, Decl(detachedCommentAtStartOfConstructor2.ts, 7, 11)) +>getMessage : () => string } } diff --git a/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.symbols b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.symbols new file mode 100644 index 0000000000000..aa34885d79b80 --- /dev/null +++ b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/detachedCommentAtStartOfLambdaFunction1.ts === +class TestFile { +>TestFile : Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 0)) + + name: string; +>name : Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 16)) + + foo(message: string): () => string { +>foo : Symbol(foo, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 1, 17)) +>message : Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 2, 8)) + + return (...x: string[]) => +>x : Symbol(x, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 3, 16)) + + /// Test summary + /// + /// + message + this.name; +>message : Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 2, 8)) +>this.name : Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 16)) +>this : Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 0)) +>name : Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 16)) + } +} diff --git a/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.types b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.types index e3af985566449..016a123c5c1c1 100644 --- a/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.types +++ b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction1.types @@ -1,26 +1,26 @@ === tests/cases/compiler/detachedCommentAtStartOfLambdaFunction1.ts === class TestFile { ->TestFile : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 0)) +>TestFile : TestFile name: string; ->name : string, Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 16)) +>name : string foo(message: string): () => string { ->foo : (message: string) => () => string, Symbol(foo, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 1, 17)) ->message : string, Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 2, 8)) +>foo : (message: string) => () => string +>message : string return (...x: string[]) => >(...x: string[]) => /// Test summary /// /// message + this.name : (...x: string[]) => string ->x : string[], Symbol(x, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 3, 16)) +>x : string[] /// Test summary /// /// message + this.name; >message + this.name : string ->message : string, Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 2, 8)) ->this.name : string, Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 16)) ->this : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 0)) ->name : string, Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction1.ts, 0, 16)) +>message : string +>this.name : string +>this : TestFile +>name : string } } diff --git a/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.symbols b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.symbols new file mode 100644 index 0000000000000..29cef430c3a72 --- /dev/null +++ b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/detachedCommentAtStartOfLambdaFunction2.ts === +class TestFile { +>TestFile : Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 0)) + + name: string; +>name : Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 16)) + + foo(message: string): () => string { +>foo : Symbol(foo, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 1, 17)) +>message : Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 2, 8)) + + return (...x: string[]) => +>x : Symbol(x, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 3, 16)) + + /// Test summary + /// + /// + + message + this.name; +>message : Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 2, 8)) +>this.name : Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 16)) +>this : Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 0)) +>name : Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 16)) + } +} diff --git a/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.types b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.types index 7693438911ab4..2199a4490b555 100644 --- a/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.types +++ b/tests/baselines/reference/detachedCommentAtStartOfLambdaFunction2.types @@ -1,17 +1,17 @@ === tests/cases/compiler/detachedCommentAtStartOfLambdaFunction2.ts === class TestFile { ->TestFile : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 0)) +>TestFile : TestFile name: string; ->name : string, Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 16)) +>name : string foo(message: string): () => string { ->foo : (message: string) => () => string, Symbol(foo, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 1, 17)) ->message : string, Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 2, 8)) +>foo : (message: string) => () => string +>message : string return (...x: string[]) => >(...x: string[]) => /// Test summary /// /// message + this.name : (...x: string[]) => string ->x : string[], Symbol(x, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 3, 16)) +>x : string[] /// Test summary /// @@ -19,9 +19,9 @@ class TestFile { message + this.name; >message + this.name : string ->message : string, Symbol(message, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 2, 8)) ->this.name : string, Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 16)) ->this : TestFile, Symbol(TestFile, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 0)) ->name : string, Symbol(name, Decl(detachedCommentAtStartOfLambdaFunction2.ts, 0, 16)) +>message : string +>this.name : string +>this : TestFile +>name : string } } diff --git a/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.symbols b/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.symbols new file mode 100644 index 0000000000000..7aaf3b98f4ae2 --- /dev/null +++ b/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/doNotWidenAtObjectLiteralPropertyAssignment.ts === +interface ITestEventInterval { +>ITestEventInterval : Symbol(ITestEventInterval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 0, 0)) + + begin: number; +>begin : Symbol(begin, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 0, 30)) +} + +interface IIntervalTreeNode { +>IIntervalTreeNode : Symbol(IIntervalTreeNode, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 2, 1)) + + interval: ITestEventInterval; +>interval : Symbol(interval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 4, 29)) +>ITestEventInterval : Symbol(ITestEventInterval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 0, 0)) + + children?: IIntervalTreeNode[]; +>children : Symbol(children, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 5, 33)) +>IIntervalTreeNode : Symbol(IIntervalTreeNode, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 2, 1)) +} + +var test: IIntervalTreeNode[] = [{ interval: { begin: 0 }, children: null }]; // was error here because best common type is {} +>test : Symbol(test, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 3)) +>IIntervalTreeNode : Symbol(IIntervalTreeNode, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 2, 1)) +>interval : Symbol(interval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 34)) +>begin : Symbol(begin, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 46)) +>children : Symbol(children, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 58)) + diff --git a/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types b/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types index b569c246f1a9c..f151b5841c0a0 100644 --- a/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types +++ b/tests/baselines/reference/doNotWidenAtObjectLiteralPropertyAssignment.types @@ -1,32 +1,32 @@ === tests/cases/compiler/doNotWidenAtObjectLiteralPropertyAssignment.ts === interface ITestEventInterval { ->ITestEventInterval : ITestEventInterval, Symbol(ITestEventInterval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 0, 0)) +>ITestEventInterval : ITestEventInterval begin: number; ->begin : number, Symbol(begin, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 0, 30)) +>begin : number } interface IIntervalTreeNode { ->IIntervalTreeNode : IIntervalTreeNode, Symbol(IIntervalTreeNode, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 2, 1)) +>IIntervalTreeNode : IIntervalTreeNode interval: ITestEventInterval; ->interval : ITestEventInterval, Symbol(interval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 4, 29)) ->ITestEventInterval : ITestEventInterval, Symbol(ITestEventInterval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 0, 0)) +>interval : ITestEventInterval +>ITestEventInterval : ITestEventInterval children?: IIntervalTreeNode[]; ->children : IIntervalTreeNode[], Symbol(children, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 5, 33)) ->IIntervalTreeNode : IIntervalTreeNode, Symbol(IIntervalTreeNode, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 2, 1)) +>children : IIntervalTreeNode[] +>IIntervalTreeNode : IIntervalTreeNode } var test: IIntervalTreeNode[] = [{ interval: { begin: 0 }, children: null }]; // was error here because best common type is {} ->test : IIntervalTreeNode[], Symbol(test, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 3)) ->IIntervalTreeNode : IIntervalTreeNode, Symbol(IIntervalTreeNode, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 2, 1)) +>test : IIntervalTreeNode[] +>IIntervalTreeNode : IIntervalTreeNode >[{ interval: { begin: 0 }, children: null }] : { interval: { begin: number; }; children: null; }[] >{ interval: { begin: 0 }, children: null } : { interval: { begin: number; }; children: null; } ->interval : { begin: number; }, Symbol(interval, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 34)) +>interval : { begin: number; } >{ begin: 0 } : { begin: number; } ->begin : number, Symbol(begin, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 46)) +>begin : number >0 : number ->children : null, Symbol(children, Decl(doNotWidenAtObjectLiteralPropertyAssignment.ts, 9, 58)) +>children : null >null : null diff --git a/tests/baselines/reference/doWhileBreakStatements.symbols b/tests/baselines/reference/doWhileBreakStatements.symbols new file mode 100644 index 0000000000000..7d9db9a5ebb51 --- /dev/null +++ b/tests/baselines/reference/doWhileBreakStatements.symbols @@ -0,0 +1,41 @@ +=== tests/cases/conformance/statements/breakStatements/doWhileBreakStatements.ts === +do { + break; +} while(true) + +ONE: +do { + break ONE; +} +while (true) + +TWO: +THREE: +do { + break THREE; +}while (true) + +FOUR: +do { + FIVE: + do { + break FOUR; + }while (true) +}while (true) + +do { + SIX: + do break SIX; while(true) +}while (true) + +SEVEN: +do do do break SEVEN; while (true) while (true) while (true) + +EIGHT: +do{ + var fn = function () { } +>fn : Symbol(fn, Decl(doWhileBreakStatements.ts, 34, 7)) + + break EIGHT; +}while(true) + diff --git a/tests/baselines/reference/doWhileBreakStatements.types b/tests/baselines/reference/doWhileBreakStatements.types index cfca22250d1fc..c3ca932910a5e 100644 --- a/tests/baselines/reference/doWhileBreakStatements.types +++ b/tests/baselines/reference/doWhileBreakStatements.types @@ -69,7 +69,7 @@ EIGHT: do{ var fn = function () { } ->fn : () => void, Symbol(fn, Decl(doWhileBreakStatements.ts, 34, 7)) +>fn : () => void >function () { } : () => void break EIGHT; diff --git a/tests/baselines/reference/doWhileContinueStatements.symbols b/tests/baselines/reference/doWhileContinueStatements.symbols new file mode 100644 index 0000000000000..e4c6d577d5aa4 --- /dev/null +++ b/tests/baselines/reference/doWhileContinueStatements.symbols @@ -0,0 +1,41 @@ +=== tests/cases/conformance/statements/continueStatements/doWhileContinueStatements.ts === +do { + continue; +} while(true) + +ONE: +do { + continue ONE; +} +while (true) + +TWO: +THREE: +do { + continue THREE; +}while (true) + +FOUR: +do { + FIVE: + do { + continue FOUR; + }while (true) +}while (true) + +do { + SIX: + do continue SIX; while(true) +}while (true) + +SEVEN: +do do do continue SEVEN; while (true) while (true) while (true) + +EIGHT: +do{ + var fn = function () { } +>fn : Symbol(fn, Decl(doWhileContinueStatements.ts, 34, 7)) + + continue EIGHT; +}while(true) + diff --git a/tests/baselines/reference/doWhileContinueStatements.types b/tests/baselines/reference/doWhileContinueStatements.types index 4ea7793148692..90c9f59842a8c 100644 --- a/tests/baselines/reference/doWhileContinueStatements.types +++ b/tests/baselines/reference/doWhileContinueStatements.types @@ -69,7 +69,7 @@ EIGHT: do{ var fn = function () { } ->fn : () => void, Symbol(fn, Decl(doWhileContinueStatements.ts, 34, 7)) +>fn : () => void >function () { } : () => void continue EIGHT; diff --git a/tests/baselines/reference/doWhileLoop.symbols b/tests/baselines/reference/doWhileLoop.symbols new file mode 100644 index 0000000000000..ec213e46ec20e --- /dev/null +++ b/tests/baselines/reference/doWhileLoop.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/doWhileLoop.ts === +do { } while (false); +var n; +>n : Symbol(n, Decl(doWhileLoop.ts, 1, 3)) + diff --git a/tests/baselines/reference/doWhileLoop.types b/tests/baselines/reference/doWhileLoop.types index 633235210d785..9d1767b45aafd 100644 --- a/tests/baselines/reference/doWhileLoop.types +++ b/tests/baselines/reference/doWhileLoop.types @@ -3,5 +3,5 @@ do { } while (false); >false : boolean var n; ->n : any, Symbol(n, Decl(doWhileLoop.ts, 1, 3)) +>n : any diff --git a/tests/baselines/reference/dottedModuleName2.symbols b/tests/baselines/reference/dottedModuleName2.symbols new file mode 100644 index 0000000000000..a26de2987bad2 --- /dev/null +++ b/tests/baselines/reference/dottedModuleName2.symbols @@ -0,0 +1,76 @@ +=== tests/cases/compiler/dottedModuleName2.ts === +module A.B { +>A : Symbol(A, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) +>B : Symbol(B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) + + export var x = 1; +>x : Symbol(x, Decl(dottedModuleName2.ts, 2, 12)) + +} + + + +module AA { export module B { +>AA : Symbol(AA, Decl(dottedModuleName2.ts, 4, 1)) +>B : Symbol(B, Decl(dottedModuleName2.ts, 8, 11)) + + export var x = 1; +>x : Symbol(x, Decl(dottedModuleName2.ts, 10, 12)) + +} } + + + +var tmpOK = AA.B.x; +>tmpOK : Symbol(tmpOK, Decl(dottedModuleName2.ts, 16, 3)) +>AA.B.x : Symbol(AA.B.x, Decl(dottedModuleName2.ts, 10, 12)) +>AA.B : Symbol(AA.B, Decl(dottedModuleName2.ts, 8, 11)) +>AA : Symbol(AA, Decl(dottedModuleName2.ts, 4, 1)) +>B : Symbol(AA.B, Decl(dottedModuleName2.ts, 8, 11)) +>x : Symbol(AA.B.x, Decl(dottedModuleName2.ts, 10, 12)) + +var tmpError = A.B.x; +>tmpError : Symbol(tmpError, Decl(dottedModuleName2.ts, 18, 3)) +>A.B.x : Symbol(A.B.x, Decl(dottedModuleName2.ts, 2, 12)) +>A.B : Symbol(A.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) +>A : Symbol(A, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) +>B : Symbol(A.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) +>x : Symbol(A.B.x, Decl(dottedModuleName2.ts, 2, 12)) + + +module A.B.C +>A : Symbol(A, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) +>B : Symbol(B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) +>C : Symbol(C, Decl(dottedModuleName2.ts, 21, 11)) + +{ + + export var x = 1; +>x : Symbol(x, Decl(dottedModuleName2.ts, 25, 14)) + +} + + + +module M +>M : Symbol(M, Decl(dottedModuleName2.ts, 27, 1)) + +{ + + import X1 = A; +>X1 : Symbol(X1, Decl(dottedModuleName2.ts, 33, 1)) +>A : Symbol(X1, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) + + import X2 = A.B; +>X2 : Symbol(X2, Decl(dottedModuleName2.ts, 35, 18)) +>A : Symbol(X1, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) +>B : Symbol(X1.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) + + import X3 = A.B.C; +>X3 : Symbol(X3, Decl(dottedModuleName2.ts, 37, 20)) +>A : Symbol(X1, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) +>B : Symbol(X1.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) +>C : Symbol(X2.C, Decl(dottedModuleName2.ts, 21, 11)) + +} + diff --git a/tests/baselines/reference/dottedModuleName2.types b/tests/baselines/reference/dottedModuleName2.types index e734692d35fdb..869bbfb4cfc91 100644 --- a/tests/baselines/reference/dottedModuleName2.types +++ b/tests/baselines/reference/dottedModuleName2.types @@ -1,10 +1,10 @@ === tests/cases/compiler/dottedModuleName2.ts === module A.B { ->A : typeof A, Symbol(A, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) ->B : typeof B, Symbol(B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) +>A : typeof A +>B : typeof B export var x = 1; ->x : number, Symbol(x, Decl(dottedModuleName2.ts, 2, 12)) +>x : number >1 : number } @@ -12,11 +12,11 @@ module A.B { module AA { export module B { ->AA : typeof AA, Symbol(AA, Decl(dottedModuleName2.ts, 4, 1)) ->B : typeof B, Symbol(B, Decl(dottedModuleName2.ts, 8, 11)) +>AA : typeof AA +>B : typeof B export var x = 1; ->x : number, Symbol(x, Decl(dottedModuleName2.ts, 10, 12)) +>x : number >1 : number } } @@ -24,31 +24,31 @@ module AA { export module B { var tmpOK = AA.B.x; ->tmpOK : number, Symbol(tmpOK, Decl(dottedModuleName2.ts, 16, 3)) ->AA.B.x : number, Symbol(AA.B.x, Decl(dottedModuleName2.ts, 10, 12)) ->AA.B : typeof AA.B, Symbol(AA.B, Decl(dottedModuleName2.ts, 8, 11)) ->AA : typeof AA, Symbol(AA, Decl(dottedModuleName2.ts, 4, 1)) ->B : typeof AA.B, Symbol(AA.B, Decl(dottedModuleName2.ts, 8, 11)) ->x : number, Symbol(AA.B.x, Decl(dottedModuleName2.ts, 10, 12)) +>tmpOK : number +>AA.B.x : number +>AA.B : typeof AA.B +>AA : typeof AA +>B : typeof AA.B +>x : number var tmpError = A.B.x; ->tmpError : number, Symbol(tmpError, Decl(dottedModuleName2.ts, 18, 3)) ->A.B.x : number, Symbol(A.B.x, Decl(dottedModuleName2.ts, 2, 12)) ->A.B : typeof A.B, Symbol(A.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) ->A : typeof A, Symbol(A, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) ->B : typeof A.B, Symbol(A.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) ->x : number, Symbol(A.B.x, Decl(dottedModuleName2.ts, 2, 12)) +>tmpError : number +>A.B.x : number +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>x : number module A.B.C ->A : typeof A, Symbol(A, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) ->B : typeof B, Symbol(B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) ->C : typeof C, Symbol(C, Decl(dottedModuleName2.ts, 21, 11)) +>A : typeof A +>B : typeof B +>C : typeof C { export var x = 1; ->x : number, Symbol(x, Decl(dottedModuleName2.ts, 25, 14)) +>x : number >1 : number } @@ -56,24 +56,24 @@ module A.B.C module M ->M : any, Symbol(M, Decl(dottedModuleName2.ts, 27, 1)) +>M : any { import X1 = A; ->X1 : typeof X1, Symbol(X1, Decl(dottedModuleName2.ts, 33, 1)) ->A : typeof X1, Symbol(X1, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) +>X1 : typeof X1 +>A : typeof X1 import X2 = A.B; ->X2 : typeof X1.B, Symbol(X2, Decl(dottedModuleName2.ts, 35, 18)) ->A : typeof X1, Symbol(X1, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) ->B : typeof X1.B, Symbol(X1.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) +>X2 : typeof X1.B +>A : typeof X1 +>B : typeof X1.B import X3 = A.B.C; ->X3 : typeof X2.C, Symbol(X3, Decl(dottedModuleName2.ts, 37, 20)) ->A : typeof X1, Symbol(X1, Decl(dottedModuleName2.ts, 0, 0), Decl(dottedModuleName2.ts, 18, 21)) ->B : typeof X1.B, Symbol(X1.B, Decl(dottedModuleName2.ts, 0, 9), Decl(dottedModuleName2.ts, 21, 9)) ->C : typeof X2.C, Symbol(X2.C, Decl(dottedModuleName2.ts, 21, 11)) +>X3 : typeof X2.C +>A : typeof X1 +>B : typeof X1.B +>C : typeof X2.C } diff --git a/tests/baselines/reference/dottedSymbolResolution1.symbols b/tests/baselines/reference/dottedSymbolResolution1.symbols new file mode 100644 index 0000000000000..25ff8a6fe9200 --- /dev/null +++ b/tests/baselines/reference/dottedSymbolResolution1.symbols @@ -0,0 +1,81 @@ +=== tests/cases/compiler/dottedSymbolResolution1.ts === +interface JQuery { +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) + + find(selector: string): JQuery; +>find : Symbol(find, Decl(dottedSymbolResolution1.ts, 0, 18)) +>selector : Symbol(selector, Decl(dottedSymbolResolution1.ts, 1, 9)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +} + +interface JQueryStatic { +>JQueryStatic : Symbol(JQueryStatic, Decl(dottedSymbolResolution1.ts, 2, 1)) + + (selector: string): JQuery; +>selector : Symbol(selector, Decl(dottedSymbolResolution1.ts, 6, 5)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) + + (object: JQuery): JQuery; +>object : Symbol(object, Decl(dottedSymbolResolution1.ts, 7, 5)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +} + +class Base { foo() { } } +>Base : Symbol(Base, Decl(dottedSymbolResolution1.ts, 8, 1)) +>foo : Symbol(foo, Decl(dottedSymbolResolution1.ts, 10, 12)) + +function each(collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; +>each : Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) +>collection : Symbol(collection, Decl(dottedSymbolResolution1.ts, 12, 14)) +>callback : Symbol(callback, Decl(dottedSymbolResolution1.ts, 12, 33)) +>indexInArray : Symbol(indexInArray, Decl(dottedSymbolResolution1.ts, 12, 45)) +>valueOfElement : Symbol(valueOfElement, Decl(dottedSymbolResolution1.ts, 12, 63)) + +function each(collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; +>each : Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) +>collection : Symbol(collection, Decl(dottedSymbolResolution1.ts, 13, 14)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>callback : Symbol(callback, Decl(dottedSymbolResolution1.ts, 13, 33)) +>indexInArray : Symbol(indexInArray, Decl(dottedSymbolResolution1.ts, 13, 45)) +>valueOfElement : Symbol(valueOfElement, Decl(dottedSymbolResolution1.ts, 13, 66)) +>Base : Symbol(Base, Decl(dottedSymbolResolution1.ts, 8, 1)) + +function each(collection: any, callback: (indexInArray: any, valueOfElement: any) => any): any { +>each : Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) +>collection : Symbol(collection, Decl(dottedSymbolResolution1.ts, 14, 14)) +>callback : Symbol(callback, Decl(dottedSymbolResolution1.ts, 14, 30)) +>indexInArray : Symbol(indexInArray, Decl(dottedSymbolResolution1.ts, 14, 42)) +>valueOfElement : Symbol(valueOfElement, Decl(dottedSymbolResolution1.ts, 14, 60)) + + return null; +} + +function _setBarAndText(): void { +>_setBarAndText : Symbol(_setBarAndText, Decl(dottedSymbolResolution1.ts, 16, 1)) + + var x: JQuery, $: JQueryStatic +>x : Symbol(x, Decl(dottedSymbolResolution1.ts, 19, 7)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>$ : Symbol($, Decl(dottedSymbolResolution1.ts, 19, 18)) +>JQueryStatic : Symbol(JQueryStatic, Decl(dottedSymbolResolution1.ts, 2, 1)) + + each(x.find(" "), function () { +>each : Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) +>x.find : Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) +>x : Symbol(x, Decl(dottedSymbolResolution1.ts, 19, 7)) +>find : Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) + + var $this: JQuery = $(''), +>$this : Symbol($this, Decl(dottedSymbolResolution1.ts, 21, 11)) +>JQuery : Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>$ : Symbol($, Decl(dottedSymbolResolution1.ts, 19, 18)) + + thisBar = $this.find(".fx-usagebars-calloutbar-this"); // bug lead to 'could not find dotted symbol' here +>thisBar : Symbol(thisBar, Decl(dottedSymbolResolution1.ts, 21, 34)) +>$this.find : Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) +>$this : Symbol($this, Decl(dottedSymbolResolution1.ts, 21, 11)) +>find : Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) + + } ); +} diff --git a/tests/baselines/reference/dottedSymbolResolution1.types b/tests/baselines/reference/dottedSymbolResolution1.types index 620d33706a048..cf5a5e3ba9d7a 100644 --- a/tests/baselines/reference/dottedSymbolResolution1.types +++ b/tests/baselines/reference/dottedSymbolResolution1.types @@ -1,89 +1,89 @@ === tests/cases/compiler/dottedSymbolResolution1.ts === interface JQuery { ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>JQuery : JQuery find(selector: string): JQuery; ->find : (selector: string) => JQuery, Symbol(find, Decl(dottedSymbolResolution1.ts, 0, 18)) ->selector : string, Symbol(selector, Decl(dottedSymbolResolution1.ts, 1, 9)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>find : (selector: string) => JQuery +>selector : string +>JQuery : JQuery } interface JQueryStatic { ->JQueryStatic : JQueryStatic, Symbol(JQueryStatic, Decl(dottedSymbolResolution1.ts, 2, 1)) +>JQueryStatic : JQueryStatic (selector: string): JQuery; ->selector : string, Symbol(selector, Decl(dottedSymbolResolution1.ts, 6, 5)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>selector : string +>JQuery : JQuery (object: JQuery): JQuery; ->object : JQuery, Symbol(object, Decl(dottedSymbolResolution1.ts, 7, 5)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>object : JQuery +>JQuery : JQuery +>JQuery : JQuery } class Base { foo() { } } ->Base : Base, Symbol(Base, Decl(dottedSymbolResolution1.ts, 8, 1)) ->foo : () => void, Symbol(foo, Decl(dottedSymbolResolution1.ts, 10, 12)) +>Base : Base +>foo : () => void function each(collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; ->each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; }, Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) ->collection : string, Symbol(collection, Decl(dottedSymbolResolution1.ts, 12, 14)) ->callback : (indexInArray: any, valueOfElement: any) => any, Symbol(callback, Decl(dottedSymbolResolution1.ts, 12, 33)) ->indexInArray : any, Symbol(indexInArray, Decl(dottedSymbolResolution1.ts, 12, 45)) ->valueOfElement : any, Symbol(valueOfElement, Decl(dottedSymbolResolution1.ts, 12, 63)) +>each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; } +>collection : string +>callback : (indexInArray: any, valueOfElement: any) => any +>indexInArray : any +>valueOfElement : any function each(collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; ->each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; }, Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) ->collection : JQuery, Symbol(collection, Decl(dottedSymbolResolution1.ts, 13, 14)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) ->callback : (indexInArray: number, valueOfElement: Base) => any, Symbol(callback, Decl(dottedSymbolResolution1.ts, 13, 33)) ->indexInArray : number, Symbol(indexInArray, Decl(dottedSymbolResolution1.ts, 13, 45)) ->valueOfElement : Base, Symbol(valueOfElement, Decl(dottedSymbolResolution1.ts, 13, 66)) ->Base : Base, Symbol(Base, Decl(dottedSymbolResolution1.ts, 8, 1)) +>each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; } +>collection : JQuery +>JQuery : JQuery +>callback : (indexInArray: number, valueOfElement: Base) => any +>indexInArray : number +>valueOfElement : Base +>Base : Base function each(collection: any, callback: (indexInArray: any, valueOfElement: any) => any): any { ->each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; }, Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) ->collection : any, Symbol(collection, Decl(dottedSymbolResolution1.ts, 14, 14)) ->callback : (indexInArray: any, valueOfElement: any) => any, Symbol(callback, Decl(dottedSymbolResolution1.ts, 14, 30)) ->indexInArray : any, Symbol(indexInArray, Decl(dottedSymbolResolution1.ts, 14, 42)) ->valueOfElement : any, Symbol(valueOfElement, Decl(dottedSymbolResolution1.ts, 14, 60)) +>each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; } +>collection : any +>callback : (indexInArray: any, valueOfElement: any) => any +>indexInArray : any +>valueOfElement : any return null; >null : null } function _setBarAndText(): void { ->_setBarAndText : () => void, Symbol(_setBarAndText, Decl(dottedSymbolResolution1.ts, 16, 1)) +>_setBarAndText : () => void var x: JQuery, $: JQueryStatic ->x : JQuery, Symbol(x, Decl(dottedSymbolResolution1.ts, 19, 7)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) ->$ : JQueryStatic, Symbol($, Decl(dottedSymbolResolution1.ts, 19, 18)) ->JQueryStatic : JQueryStatic, Symbol(JQueryStatic, Decl(dottedSymbolResolution1.ts, 2, 1)) +>x : JQuery +>JQuery : JQuery +>$ : JQueryStatic +>JQueryStatic : JQueryStatic each(x.find(" "), function () { >each(x.find(" "), function () { var $this: JQuery = $(''), thisBar = $this.find(".fx-usagebars-calloutbar-this"); // bug lead to 'could not find dotted symbol' here } ) : any ->each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; }, Symbol(each, Decl(dottedSymbolResolution1.ts, 10, 24), Decl(dottedSymbolResolution1.ts, 12, 98), Decl(dottedSymbolResolution1.ts, 13, 102)) +>each : { (collection: string, callback: (indexInArray: any, valueOfElement: any) => any): any; (collection: JQuery, callback: (indexInArray: number, valueOfElement: Base) => any): any; } >x.find(" ") : JQuery ->x.find : (selector: string) => JQuery, Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) ->x : JQuery, Symbol(x, Decl(dottedSymbolResolution1.ts, 19, 7)) ->find : (selector: string) => JQuery, Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) +>x.find : (selector: string) => JQuery +>x : JQuery +>find : (selector: string) => JQuery >" " : string >function () { var $this: JQuery = $(''), thisBar = $this.find(".fx-usagebars-calloutbar-this"); // bug lead to 'could not find dotted symbol' here } : () => void var $this: JQuery = $(''), ->$this : JQuery, Symbol($this, Decl(dottedSymbolResolution1.ts, 21, 11)) ->JQuery : JQuery, Symbol(JQuery, Decl(dottedSymbolResolution1.ts, 0, 0)) +>$this : JQuery +>JQuery : JQuery >$('') : JQuery ->$ : JQueryStatic, Symbol($, Decl(dottedSymbolResolution1.ts, 19, 18)) +>$ : JQueryStatic >'' : string thisBar = $this.find(".fx-usagebars-calloutbar-this"); // bug lead to 'could not find dotted symbol' here ->thisBar : JQuery, Symbol(thisBar, Decl(dottedSymbolResolution1.ts, 21, 34)) +>thisBar : JQuery >$this.find(".fx-usagebars-calloutbar-this") : JQuery ->$this.find : (selector: string) => JQuery, Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) ->$this : JQuery, Symbol($this, Decl(dottedSymbolResolution1.ts, 21, 11)) ->find : (selector: string) => JQuery, Symbol(JQuery.find, Decl(dottedSymbolResolution1.ts, 0, 18)) +>$this.find : (selector: string) => JQuery +>$this : JQuery +>find : (selector: string) => JQuery >".fx-usagebars-calloutbar-this" : string } ); diff --git a/tests/baselines/reference/downlevelLetConst10.symbols b/tests/baselines/reference/downlevelLetConst10.symbols new file mode 100644 index 0000000000000..ba0aac7adb553 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst10.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/downlevelLetConst10.ts === +let a: number = 1 +>a : Symbol(a, Decl(downlevelLetConst10.ts, 0, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst10.types b/tests/baselines/reference/downlevelLetConst10.types index 3b272dfbe6062..3d700b0694d24 100644 --- a/tests/baselines/reference/downlevelLetConst10.types +++ b/tests/baselines/reference/downlevelLetConst10.types @@ -1,5 +1,5 @@ === tests/cases/compiler/downlevelLetConst10.ts === let a: number = 1 ->a : number, Symbol(a, Decl(downlevelLetConst10.ts, 0, 3)) +>a : number >1 : number diff --git a/tests/baselines/reference/downlevelLetConst12.symbols b/tests/baselines/reference/downlevelLetConst12.symbols new file mode 100644 index 0000000000000..d1c7fe3ea5b9e --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst12.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/downlevelLetConst12.ts === + +'use strict' +// top level let\const should not be renamed +let foo; +>foo : Symbol(foo, Decl(downlevelLetConst12.ts, 3, 3)) + +const bar = 1; +>bar : Symbol(bar, Decl(downlevelLetConst12.ts, 4, 5)) + +let [baz] = []; +>baz : Symbol(baz, Decl(downlevelLetConst12.ts, 6, 5)) + +let {a: baz2} = { a: 1 }; +>baz2 : Symbol(baz2, Decl(downlevelLetConst12.ts, 7, 5)) +>a : Symbol(a, Decl(downlevelLetConst12.ts, 7, 17)) + +const [baz3] = [] +>baz3 : Symbol(baz3, Decl(downlevelLetConst12.ts, 9, 7)) + +const {a: baz4} = { a: 1 }; +>baz4 : Symbol(baz4, Decl(downlevelLetConst12.ts, 10, 7)) +>a : Symbol(a, Decl(downlevelLetConst12.ts, 10, 19)) + diff --git a/tests/baselines/reference/downlevelLetConst12.types b/tests/baselines/reference/downlevelLetConst12.types index cf7aa8931c272..51d3b8eb08610 100644 --- a/tests/baselines/reference/downlevelLetConst12.types +++ b/tests/baselines/reference/downlevelLetConst12.types @@ -5,31 +5,31 @@ // top level let\const should not be renamed let foo; ->foo : any, Symbol(foo, Decl(downlevelLetConst12.ts, 3, 3)) +>foo : any const bar = 1; ->bar : number, Symbol(bar, Decl(downlevelLetConst12.ts, 4, 5)) +>bar : number >1 : number let [baz] = []; ->baz : any, Symbol(baz, Decl(downlevelLetConst12.ts, 6, 5)) +>baz : any >[] : undefined[] let {a: baz2} = { a: 1 }; >a : any ->baz2 : number, Symbol(baz2, Decl(downlevelLetConst12.ts, 7, 5)) +>baz2 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst12.ts, 7, 17)) +>a : number >1 : number const [baz3] = [] ->baz3 : any, Symbol(baz3, Decl(downlevelLetConst12.ts, 9, 7)) +>baz3 : any >[] : undefined[] const {a: baz4} = { a: 1 }; >a : any ->baz4 : number, Symbol(baz4, Decl(downlevelLetConst12.ts, 10, 7)) +>baz4 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst12.ts, 10, 19)) +>a : number >1 : number diff --git a/tests/baselines/reference/downlevelLetConst13.symbols b/tests/baselines/reference/downlevelLetConst13.symbols new file mode 100644 index 0000000000000..1b06184f2b3d4 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst13.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/downlevelLetConst13.ts === + +'use strict' +// exported let\const bindings should not be renamed + +export let foo = 10; +>foo : Symbol(foo, Decl(downlevelLetConst13.ts, 4, 10)) + +export const bar = "123" +>bar : Symbol(bar, Decl(downlevelLetConst13.ts, 5, 12)) + +export let [bar1] = [1]; +>bar1 : Symbol(bar1, Decl(downlevelLetConst13.ts, 6, 12)) + +export const [bar2] = [2]; +>bar2 : Symbol(bar2, Decl(downlevelLetConst13.ts, 7, 14)) + +export let {a: bar3} = { a: 1 }; +>bar3 : Symbol(bar3, Decl(downlevelLetConst13.ts, 8, 12)) +>a : Symbol(a, Decl(downlevelLetConst13.ts, 8, 24)) + +export const {a: bar4} = { a: 1 }; +>bar4 : Symbol(bar4, Decl(downlevelLetConst13.ts, 9, 14)) +>a : Symbol(a, Decl(downlevelLetConst13.ts, 9, 26)) + +export module M { +>M : Symbol(M, Decl(downlevelLetConst13.ts, 9, 34)) + + export let baz = 100; +>baz : Symbol(baz, Decl(downlevelLetConst13.ts, 12, 14)) + + export const baz2 = true; +>baz2 : Symbol(baz2, Decl(downlevelLetConst13.ts, 13, 16)) + + export let [bar5] = [1]; +>bar5 : Symbol(bar5, Decl(downlevelLetConst13.ts, 14, 16)) + + export const [bar6] = [2]; +>bar6 : Symbol(bar6, Decl(downlevelLetConst13.ts, 15, 18)) + + export let {a: bar7} = { a: 1 }; +>bar7 : Symbol(bar7, Decl(downlevelLetConst13.ts, 16, 16)) +>a : Symbol(a, Decl(downlevelLetConst13.ts, 16, 28)) + + export const {a: bar8} = { a: 1 }; +>bar8 : Symbol(bar8, Decl(downlevelLetConst13.ts, 17, 18)) +>a : Symbol(a, Decl(downlevelLetConst13.ts, 17, 30)) +} diff --git a/tests/baselines/reference/downlevelLetConst13.types b/tests/baselines/reference/downlevelLetConst13.types index 91318e6502c22..0453d3a6ad376 100644 --- a/tests/baselines/reference/downlevelLetConst13.types +++ b/tests/baselines/reference/downlevelLetConst13.types @@ -6,69 +6,69 @@ // exported let\const bindings should not be renamed export let foo = 10; ->foo : number, Symbol(foo, Decl(downlevelLetConst13.ts, 4, 10)) +>foo : number >10 : number export const bar = "123" ->bar : string, Symbol(bar, Decl(downlevelLetConst13.ts, 5, 12)) +>bar : string >"123" : string export let [bar1] = [1]; ->bar1 : number, Symbol(bar1, Decl(downlevelLetConst13.ts, 6, 12)) +>bar1 : number >[1] : [number] >1 : number export const [bar2] = [2]; ->bar2 : number, Symbol(bar2, Decl(downlevelLetConst13.ts, 7, 14)) +>bar2 : number >[2] : [number] >2 : number export let {a: bar3} = { a: 1 }; >a : any ->bar3 : number, Symbol(bar3, Decl(downlevelLetConst13.ts, 8, 12)) +>bar3 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst13.ts, 8, 24)) +>a : number >1 : number export const {a: bar4} = { a: 1 }; >a : any ->bar4 : number, Symbol(bar4, Decl(downlevelLetConst13.ts, 9, 14)) +>bar4 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst13.ts, 9, 26)) +>a : number >1 : number export module M { ->M : typeof M, Symbol(M, Decl(downlevelLetConst13.ts, 9, 34)) +>M : typeof M export let baz = 100; ->baz : number, Symbol(baz, Decl(downlevelLetConst13.ts, 12, 14)) +>baz : number >100 : number export const baz2 = true; ->baz2 : boolean, Symbol(baz2, Decl(downlevelLetConst13.ts, 13, 16)) +>baz2 : boolean >true : boolean export let [bar5] = [1]; ->bar5 : number, Symbol(bar5, Decl(downlevelLetConst13.ts, 14, 16)) +>bar5 : number >[1] : [number] >1 : number export const [bar6] = [2]; ->bar6 : number, Symbol(bar6, Decl(downlevelLetConst13.ts, 15, 18)) +>bar6 : number >[2] : [number] >2 : number export let {a: bar7} = { a: 1 }; >a : any ->bar7 : number, Symbol(bar7, Decl(downlevelLetConst13.ts, 16, 16)) +>bar7 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst13.ts, 16, 28)) +>a : number >1 : number export const {a: bar8} = { a: 1 }; >a : any ->bar8 : number, Symbol(bar8, Decl(downlevelLetConst13.ts, 17, 18)) +>bar8 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst13.ts, 17, 30)) +>a : number >1 : number } diff --git a/tests/baselines/reference/downlevelLetConst14.symbols b/tests/baselines/reference/downlevelLetConst14.symbols new file mode 100644 index 0000000000000..bf3450af71cda --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst14.symbols @@ -0,0 +1,147 @@ +=== tests/cases/compiler/downlevelLetConst14.ts === +'use strict' +declare function use(a: any); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>a : Symbol(a, Decl(downlevelLetConst14.ts, 1, 21)) + +var x = 10; +>x : Symbol(x, Decl(downlevelLetConst14.ts, 3, 3)) + +var z0, z1, z2, z3; +>z0 : Symbol(z0, Decl(downlevelLetConst14.ts, 4, 3)) +>z1 : Symbol(z1, Decl(downlevelLetConst14.ts, 4, 7)) +>z2 : Symbol(z2, Decl(downlevelLetConst14.ts, 4, 11)) +>z3 : Symbol(z3, Decl(downlevelLetConst14.ts, 4, 15)) +{ + let x = 20; +>x : Symbol(x, Decl(downlevelLetConst14.ts, 6, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst14.ts, 6, 7)) + + let [z0] = [1]; +>z0 : Symbol(z0, Decl(downlevelLetConst14.ts, 9, 9)) + + use(z0); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z0 : Symbol(z0, Decl(downlevelLetConst14.ts, 9, 9)) + + let [z1] = [1] +>z1 : Symbol(z1, Decl(downlevelLetConst14.ts, 11, 9)) + + use(z1); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z1 : Symbol(z1, Decl(downlevelLetConst14.ts, 11, 9)) + + let {a: z2} = { a: 1 }; +>z2 : Symbol(z2, Decl(downlevelLetConst14.ts, 13, 9)) +>a : Symbol(a, Decl(downlevelLetConst14.ts, 13, 19)) + + use(z2); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z2 : Symbol(z2, Decl(downlevelLetConst14.ts, 13, 9)) + + let {a: z3} = { a: 1 }; +>z3 : Symbol(z3, Decl(downlevelLetConst14.ts, 15, 9)) +>a : Symbol(a, Decl(downlevelLetConst14.ts, 15, 19)) + + use(z3); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z3 : Symbol(z3, Decl(downlevelLetConst14.ts, 15, 9)) +} +use(x); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst14.ts, 3, 3)) + +use(z0); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z0 : Symbol(z0, Decl(downlevelLetConst14.ts, 4, 3)) + +use(z1); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z1 : Symbol(z1, Decl(downlevelLetConst14.ts, 4, 7)) + +use(z2); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z2 : Symbol(z2, Decl(downlevelLetConst14.ts, 4, 11)) + +use(z3); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z3 : Symbol(z3, Decl(downlevelLetConst14.ts, 4, 15)) + +var z6; +>z6 : Symbol(z6, Decl(downlevelLetConst14.ts, 23, 3)) + +var y = true; +>y : Symbol(y, Decl(downlevelLetConst14.ts, 24, 3)) +{ + let y = ""; +>y : Symbol(y, Decl(downlevelLetConst14.ts, 26, 7)) + + let [z6] = [true] +>z6 : Symbol(z6, Decl(downlevelLetConst14.ts, 27, 9)) + { + let y = 1; +>y : Symbol(y, Decl(downlevelLetConst14.ts, 29, 11)) + + let {a: z6} = {a: 1} +>z6 : Symbol(z6, Decl(downlevelLetConst14.ts, 30, 13)) +>a : Symbol(a, Decl(downlevelLetConst14.ts, 30, 23)) + + use(y); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst14.ts, 29, 11)) + + use(z6); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z6 : Symbol(z6, Decl(downlevelLetConst14.ts, 30, 13)) + } + use(y); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst14.ts, 26, 7)) + + use(z6); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z6 : Symbol(z6, Decl(downlevelLetConst14.ts, 27, 9)) +} +use(y); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst14.ts, 24, 3)) + +use(z6); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z6 : Symbol(z6, Decl(downlevelLetConst14.ts, 23, 3)) + +var z = false; +>z : Symbol(z, Decl(downlevelLetConst14.ts, 40, 3)) + +var z5 = 1; +>z5 : Symbol(z5, Decl(downlevelLetConst14.ts, 41, 3)) +{ + let z = ""; +>z : Symbol(z, Decl(downlevelLetConst14.ts, 43, 7)) + + let [z5] = [5]; +>z5 : Symbol(z5, Decl(downlevelLetConst14.ts, 44, 9)) + { + let _z = 1; +>_z : Symbol(_z, Decl(downlevelLetConst14.ts, 46, 11)) + + let {a: _z5} = { a: 1 }; +>_z5 : Symbol(_z5, Decl(downlevelLetConst14.ts, 47, 13)) +>a : Symbol(a, Decl(downlevelLetConst14.ts, 47, 24)) + + // try to step on generated name + use(_z); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>_z : Symbol(_z, Decl(downlevelLetConst14.ts, 46, 11)) + } + use(z); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>z : Symbol(z, Decl(downlevelLetConst14.ts, 43, 7)) +} +use(y); +>use : Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst14.ts, 24, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst14.types b/tests/baselines/reference/downlevelLetConst14.types index 67f171b0d3c20..ea6aadfe2a807 100644 --- a/tests/baselines/reference/downlevelLetConst14.types +++ b/tests/baselines/reference/downlevelLetConst14.types @@ -3,195 +3,195 @@ >'use strict' : string declare function use(a: any); ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->a : any, Symbol(a, Decl(downlevelLetConst14.ts, 1, 21)) +>use : (a: any) => any +>a : any var x = 10; ->x : number, Symbol(x, Decl(downlevelLetConst14.ts, 3, 3)) +>x : number >10 : number var z0, z1, z2, z3; ->z0 : any, Symbol(z0, Decl(downlevelLetConst14.ts, 4, 3)) ->z1 : any, Symbol(z1, Decl(downlevelLetConst14.ts, 4, 7)) ->z2 : any, Symbol(z2, Decl(downlevelLetConst14.ts, 4, 11)) ->z3 : any, Symbol(z3, Decl(downlevelLetConst14.ts, 4, 15)) +>z0 : any +>z1 : any +>z2 : any +>z3 : any { let x = 20; ->x : number, Symbol(x, Decl(downlevelLetConst14.ts, 6, 7)) +>x : number >20 : number use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst14.ts, 6, 7)) +>use : (a: any) => any +>x : number let [z0] = [1]; ->z0 : number, Symbol(z0, Decl(downlevelLetConst14.ts, 9, 9)) +>z0 : number >[1] : [number] >1 : number use(z0); >use(z0) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z0 : number, Symbol(z0, Decl(downlevelLetConst14.ts, 9, 9)) +>use : (a: any) => any +>z0 : number let [z1] = [1] ->z1 : number, Symbol(z1, Decl(downlevelLetConst14.ts, 11, 9)) +>z1 : number >[1] : [number] >1 : number use(z1); >use(z1) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z1 : number, Symbol(z1, Decl(downlevelLetConst14.ts, 11, 9)) +>use : (a: any) => any +>z1 : number let {a: z2} = { a: 1 }; >a : any ->z2 : number, Symbol(z2, Decl(downlevelLetConst14.ts, 13, 9)) +>z2 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst14.ts, 13, 19)) +>a : number >1 : number use(z2); >use(z2) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z2 : number, Symbol(z2, Decl(downlevelLetConst14.ts, 13, 9)) +>use : (a: any) => any +>z2 : number let {a: z3} = { a: 1 }; >a : any ->z3 : number, Symbol(z3, Decl(downlevelLetConst14.ts, 15, 9)) +>z3 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst14.ts, 15, 19)) +>a : number >1 : number use(z3); >use(z3) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z3 : number, Symbol(z3, Decl(downlevelLetConst14.ts, 15, 9)) +>use : (a: any) => any +>z3 : number } use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst14.ts, 3, 3)) +>use : (a: any) => any +>x : number use(z0); >use(z0) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z0 : any, Symbol(z0, Decl(downlevelLetConst14.ts, 4, 3)) +>use : (a: any) => any +>z0 : any use(z1); >use(z1) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z1 : any, Symbol(z1, Decl(downlevelLetConst14.ts, 4, 7)) +>use : (a: any) => any +>z1 : any use(z2); >use(z2) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z2 : any, Symbol(z2, Decl(downlevelLetConst14.ts, 4, 11)) +>use : (a: any) => any +>z2 : any use(z3); >use(z3) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z3 : any, Symbol(z3, Decl(downlevelLetConst14.ts, 4, 15)) +>use : (a: any) => any +>z3 : any var z6; ->z6 : any, Symbol(z6, Decl(downlevelLetConst14.ts, 23, 3)) +>z6 : any var y = true; ->y : boolean, Symbol(y, Decl(downlevelLetConst14.ts, 24, 3)) +>y : boolean >true : boolean { let y = ""; ->y : string, Symbol(y, Decl(downlevelLetConst14.ts, 26, 7)) +>y : string >"" : string let [z6] = [true] ->z6 : boolean, Symbol(z6, Decl(downlevelLetConst14.ts, 27, 9)) +>z6 : boolean >[true] : [boolean] >true : boolean { let y = 1; ->y : number, Symbol(y, Decl(downlevelLetConst14.ts, 29, 11)) +>y : number >1 : number let {a: z6} = {a: 1} >a : any ->z6 : number, Symbol(z6, Decl(downlevelLetConst14.ts, 30, 13)) +>z6 : number >{a: 1} : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst14.ts, 30, 23)) +>a : number >1 : number use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->y : number, Symbol(y, Decl(downlevelLetConst14.ts, 29, 11)) +>use : (a: any) => any +>y : number use(z6); >use(z6) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z6 : number, Symbol(z6, Decl(downlevelLetConst14.ts, 30, 13)) +>use : (a: any) => any +>z6 : number } use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->y : string, Symbol(y, Decl(downlevelLetConst14.ts, 26, 7)) +>use : (a: any) => any +>y : string use(z6); >use(z6) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z6 : boolean, Symbol(z6, Decl(downlevelLetConst14.ts, 27, 9)) +>use : (a: any) => any +>z6 : boolean } use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->y : boolean, Symbol(y, Decl(downlevelLetConst14.ts, 24, 3)) +>use : (a: any) => any +>y : boolean use(z6); >use(z6) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z6 : any, Symbol(z6, Decl(downlevelLetConst14.ts, 23, 3)) +>use : (a: any) => any +>z6 : any var z = false; ->z : boolean, Symbol(z, Decl(downlevelLetConst14.ts, 40, 3)) +>z : boolean >false : boolean var z5 = 1; ->z5 : number, Symbol(z5, Decl(downlevelLetConst14.ts, 41, 3)) +>z5 : number >1 : number { let z = ""; ->z : string, Symbol(z, Decl(downlevelLetConst14.ts, 43, 7)) +>z : string >"" : string let [z5] = [5]; ->z5 : number, Symbol(z5, Decl(downlevelLetConst14.ts, 44, 9)) +>z5 : number >[5] : [number] >5 : number { let _z = 1; ->_z : number, Symbol(_z, Decl(downlevelLetConst14.ts, 46, 11)) +>_z : number >1 : number let {a: _z5} = { a: 1 }; >a : any ->_z5 : number, Symbol(_z5, Decl(downlevelLetConst14.ts, 47, 13)) +>_z5 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst14.ts, 47, 24)) +>a : number >1 : number // try to step on generated name use(_z); >use(_z) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->_z : number, Symbol(_z, Decl(downlevelLetConst14.ts, 46, 11)) +>use : (a: any) => any +>_z : number } use(z); >use(z) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->z : string, Symbol(z, Decl(downlevelLetConst14.ts, 43, 7)) +>use : (a: any) => any +>z : string } use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst14.ts, 0, 12)) ->y : boolean, Symbol(y, Decl(downlevelLetConst14.ts, 24, 3)) +>use : (a: any) => any +>y : boolean diff --git a/tests/baselines/reference/downlevelLetConst15.symbols b/tests/baselines/reference/downlevelLetConst15.symbols new file mode 100644 index 0000000000000..159e5a6d67665 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst15.symbols @@ -0,0 +1,149 @@ +=== tests/cases/compiler/downlevelLetConst15.ts === +'use strict' +declare function use(a: any); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>a : Symbol(a, Decl(downlevelLetConst15.ts, 1, 21)) + +var x = 10; +>x : Symbol(x, Decl(downlevelLetConst15.ts, 3, 3)) + +var z0, z1, z2, z3; +>z0 : Symbol(z0, Decl(downlevelLetConst15.ts, 4, 3)) +>z1 : Symbol(z1, Decl(downlevelLetConst15.ts, 4, 7)) +>z2 : Symbol(z2, Decl(downlevelLetConst15.ts, 4, 11)) +>z3 : Symbol(z3, Decl(downlevelLetConst15.ts, 4, 15)) +{ + const x = 20; +>x : Symbol(x, Decl(downlevelLetConst15.ts, 6, 9)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst15.ts, 6, 9)) + + const [z0] = [1]; +>z0 : Symbol(z0, Decl(downlevelLetConst15.ts, 9, 11)) + + use(z0); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z0 : Symbol(z0, Decl(downlevelLetConst15.ts, 9, 11)) + + const [{a: z1}] = [{a: 1}] +>z1 : Symbol(z1, Decl(downlevelLetConst15.ts, 11, 12)) +>a : Symbol(a, Decl(downlevelLetConst15.ts, 11, 24)) + + use(z1); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z1 : Symbol(z1, Decl(downlevelLetConst15.ts, 11, 12)) + + const {a: z2} = { a: 1 }; +>z2 : Symbol(z2, Decl(downlevelLetConst15.ts, 13, 11)) +>a : Symbol(a, Decl(downlevelLetConst15.ts, 13, 21)) + + use(z2); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z2 : Symbol(z2, Decl(downlevelLetConst15.ts, 13, 11)) + + const {a: {b: z3}} = { a: {b: 1} }; +>z3 : Symbol(z3, Decl(downlevelLetConst15.ts, 15, 15)) +>a : Symbol(a, Decl(downlevelLetConst15.ts, 15, 26)) +>b : Symbol(b, Decl(downlevelLetConst15.ts, 15, 31)) + + use(z3); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z3 : Symbol(z3, Decl(downlevelLetConst15.ts, 15, 15)) +} +use(x); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst15.ts, 3, 3)) + +use(z0); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z0 : Symbol(z0, Decl(downlevelLetConst15.ts, 4, 3)) + +use(z1); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z1 : Symbol(z1, Decl(downlevelLetConst15.ts, 4, 7)) + +use(z2); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z2 : Symbol(z2, Decl(downlevelLetConst15.ts, 4, 11)) + +use(z3); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z3 : Symbol(z3, Decl(downlevelLetConst15.ts, 4, 15)) + +var z6; +>z6 : Symbol(z6, Decl(downlevelLetConst15.ts, 23, 3)) + +var y = true; +>y : Symbol(y, Decl(downlevelLetConst15.ts, 24, 3)) +{ + const y = ""; +>y : Symbol(y, Decl(downlevelLetConst15.ts, 26, 9)) + + const [z6] = [true] +>z6 : Symbol(z6, Decl(downlevelLetConst15.ts, 27, 11)) + { + const y = 1; +>y : Symbol(y, Decl(downlevelLetConst15.ts, 29, 13)) + + const {a: z6} = { a: 1 } +>z6 : Symbol(z6, Decl(downlevelLetConst15.ts, 30, 15)) +>a : Symbol(a, Decl(downlevelLetConst15.ts, 30, 25)) + + use(y); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst15.ts, 29, 13)) + + use(z6); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z6 : Symbol(z6, Decl(downlevelLetConst15.ts, 30, 15)) + } + use(y); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst15.ts, 26, 9)) + + use(z6); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z6 : Symbol(z6, Decl(downlevelLetConst15.ts, 27, 11)) +} +use(y); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst15.ts, 24, 3)) + +use(z6); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z6 : Symbol(z6, Decl(downlevelLetConst15.ts, 23, 3)) + +var z = false; +>z : Symbol(z, Decl(downlevelLetConst15.ts, 40, 3)) + +var z5 = 1; +>z5 : Symbol(z5, Decl(downlevelLetConst15.ts, 41, 3)) +{ + const z = ""; +>z : Symbol(z, Decl(downlevelLetConst15.ts, 43, 9)) + + const [z5] = [5]; +>z5 : Symbol(z5, Decl(downlevelLetConst15.ts, 44, 11)) + { + const _z = 1; +>_z : Symbol(_z, Decl(downlevelLetConst15.ts, 46, 13)) + + const {a: _z5} = { a: 1 }; +>_z5 : Symbol(_z5, Decl(downlevelLetConst15.ts, 47, 15)) +>a : Symbol(a, Decl(downlevelLetConst15.ts, 47, 26)) + + // try to step on generated name + use(_z); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>_z : Symbol(_z, Decl(downlevelLetConst15.ts, 46, 13)) + } + use(z); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>z : Symbol(z, Decl(downlevelLetConst15.ts, 43, 9)) +} +use(y); +>use : Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) +>y : Symbol(y, Decl(downlevelLetConst15.ts, 24, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst15.types b/tests/baselines/reference/downlevelLetConst15.types index abeaa0d1e1478..72b29e3fe6680 100644 --- a/tests/baselines/reference/downlevelLetConst15.types +++ b/tests/baselines/reference/downlevelLetConst15.types @@ -3,201 +3,201 @@ >'use strict' : string declare function use(a: any); ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->a : any, Symbol(a, Decl(downlevelLetConst15.ts, 1, 21)) +>use : (a: any) => any +>a : any var x = 10; ->x : number, Symbol(x, Decl(downlevelLetConst15.ts, 3, 3)) +>x : number >10 : number var z0, z1, z2, z3; ->z0 : any, Symbol(z0, Decl(downlevelLetConst15.ts, 4, 3)) ->z1 : any, Symbol(z1, Decl(downlevelLetConst15.ts, 4, 7)) ->z2 : any, Symbol(z2, Decl(downlevelLetConst15.ts, 4, 11)) ->z3 : any, Symbol(z3, Decl(downlevelLetConst15.ts, 4, 15)) +>z0 : any +>z1 : any +>z2 : any +>z3 : any { const x = 20; ->x : number, Symbol(x, Decl(downlevelLetConst15.ts, 6, 9)) +>x : number >20 : number use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst15.ts, 6, 9)) +>use : (a: any) => any +>x : number const [z0] = [1]; ->z0 : number, Symbol(z0, Decl(downlevelLetConst15.ts, 9, 11)) +>z0 : number >[1] : [number] >1 : number use(z0); >use(z0) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z0 : number, Symbol(z0, Decl(downlevelLetConst15.ts, 9, 11)) +>use : (a: any) => any +>z0 : number const [{a: z1}] = [{a: 1}] >a : any ->z1 : number, Symbol(z1, Decl(downlevelLetConst15.ts, 11, 12)) +>z1 : number >[{a: 1}] : [{ a: number; }] >{a: 1} : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst15.ts, 11, 24)) +>a : number >1 : number use(z1); >use(z1) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z1 : number, Symbol(z1, Decl(downlevelLetConst15.ts, 11, 12)) +>use : (a: any) => any +>z1 : number const {a: z2} = { a: 1 }; >a : any ->z2 : number, Symbol(z2, Decl(downlevelLetConst15.ts, 13, 11)) +>z2 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst15.ts, 13, 21)) +>a : number >1 : number use(z2); >use(z2) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z2 : number, Symbol(z2, Decl(downlevelLetConst15.ts, 13, 11)) +>use : (a: any) => any +>z2 : number const {a: {b: z3}} = { a: {b: 1} }; >a : any >b : any ->z3 : number, Symbol(z3, Decl(downlevelLetConst15.ts, 15, 15)) +>z3 : number >{ a: {b: 1} } : { a: { b: number; }; } ->a : { b: number; }, Symbol(a, Decl(downlevelLetConst15.ts, 15, 26)) +>a : { b: number; } >{b: 1} : { b: number; } ->b : number, Symbol(b, Decl(downlevelLetConst15.ts, 15, 31)) +>b : number >1 : number use(z3); >use(z3) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z3 : number, Symbol(z3, Decl(downlevelLetConst15.ts, 15, 15)) +>use : (a: any) => any +>z3 : number } use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst15.ts, 3, 3)) +>use : (a: any) => any +>x : number use(z0); >use(z0) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z0 : any, Symbol(z0, Decl(downlevelLetConst15.ts, 4, 3)) +>use : (a: any) => any +>z0 : any use(z1); >use(z1) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z1 : any, Symbol(z1, Decl(downlevelLetConst15.ts, 4, 7)) +>use : (a: any) => any +>z1 : any use(z2); >use(z2) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z2 : any, Symbol(z2, Decl(downlevelLetConst15.ts, 4, 11)) +>use : (a: any) => any +>z2 : any use(z3); >use(z3) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z3 : any, Symbol(z3, Decl(downlevelLetConst15.ts, 4, 15)) +>use : (a: any) => any +>z3 : any var z6; ->z6 : any, Symbol(z6, Decl(downlevelLetConst15.ts, 23, 3)) +>z6 : any var y = true; ->y : boolean, Symbol(y, Decl(downlevelLetConst15.ts, 24, 3)) +>y : boolean >true : boolean { const y = ""; ->y : string, Symbol(y, Decl(downlevelLetConst15.ts, 26, 9)) +>y : string >"" : string const [z6] = [true] ->z6 : boolean, Symbol(z6, Decl(downlevelLetConst15.ts, 27, 11)) +>z6 : boolean >[true] : [boolean] >true : boolean { const y = 1; ->y : number, Symbol(y, Decl(downlevelLetConst15.ts, 29, 13)) +>y : number >1 : number const {a: z6} = { a: 1 } >a : any ->z6 : number, Symbol(z6, Decl(downlevelLetConst15.ts, 30, 15)) +>z6 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst15.ts, 30, 25)) +>a : number >1 : number use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->y : number, Symbol(y, Decl(downlevelLetConst15.ts, 29, 13)) +>use : (a: any) => any +>y : number use(z6); >use(z6) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z6 : number, Symbol(z6, Decl(downlevelLetConst15.ts, 30, 15)) +>use : (a: any) => any +>z6 : number } use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->y : string, Symbol(y, Decl(downlevelLetConst15.ts, 26, 9)) +>use : (a: any) => any +>y : string use(z6); >use(z6) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z6 : boolean, Symbol(z6, Decl(downlevelLetConst15.ts, 27, 11)) +>use : (a: any) => any +>z6 : boolean } use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->y : boolean, Symbol(y, Decl(downlevelLetConst15.ts, 24, 3)) +>use : (a: any) => any +>y : boolean use(z6); >use(z6) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z6 : any, Symbol(z6, Decl(downlevelLetConst15.ts, 23, 3)) +>use : (a: any) => any +>z6 : any var z = false; ->z : boolean, Symbol(z, Decl(downlevelLetConst15.ts, 40, 3)) +>z : boolean >false : boolean var z5 = 1; ->z5 : number, Symbol(z5, Decl(downlevelLetConst15.ts, 41, 3)) +>z5 : number >1 : number { const z = ""; ->z : string, Symbol(z, Decl(downlevelLetConst15.ts, 43, 9)) +>z : string >"" : string const [z5] = [5]; ->z5 : number, Symbol(z5, Decl(downlevelLetConst15.ts, 44, 11)) +>z5 : number >[5] : [number] >5 : number { const _z = 1; ->_z : number, Symbol(_z, Decl(downlevelLetConst15.ts, 46, 13)) +>_z : number >1 : number const {a: _z5} = { a: 1 }; >a : any ->_z5 : number, Symbol(_z5, Decl(downlevelLetConst15.ts, 47, 15)) +>_z5 : number >{ a: 1 } : { a: number; } ->a : number, Symbol(a, Decl(downlevelLetConst15.ts, 47, 26)) +>a : number >1 : number // try to step on generated name use(_z); >use(_z) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->_z : number, Symbol(_z, Decl(downlevelLetConst15.ts, 46, 13)) +>use : (a: any) => any +>_z : number } use(z); >use(z) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->z : string, Symbol(z, Decl(downlevelLetConst15.ts, 43, 9)) +>use : (a: any) => any +>z : string } use(y); >use(y) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst15.ts, 0, 12)) ->y : boolean, Symbol(y, Decl(downlevelLetConst15.ts, 24, 3)) +>use : (a: any) => any +>y : boolean diff --git a/tests/baselines/reference/downlevelLetConst17.symbols b/tests/baselines/reference/downlevelLetConst17.symbols new file mode 100644 index 0000000000000..809a835774c51 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst17.symbols @@ -0,0 +1,134 @@ +=== tests/cases/compiler/downlevelLetConst17.ts === +'use strict' + +declare function use(a: any); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>a : Symbol(a, Decl(downlevelLetConst17.ts, 2, 21)) + +var x; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 4, 3)) + +for (let x = 10; ;) { +>x : Symbol(x, Decl(downlevelLetConst17.ts, 5, 8)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 5, 8)) +} +use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 4, 3)) + +for (const x = 10; ;) { +>x : Symbol(x, Decl(downlevelLetConst17.ts, 10, 10)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 10, 10)) +} + +for (; ;) { + let x = 10; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 15, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 15, 7)) + + x = 1; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 15, 7)) +} + +for (; ;) { + const x = 10; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 21, 9)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 21, 9)) +} + +for (let x; ;) { +>x : Symbol(x, Decl(downlevelLetConst17.ts, 25, 8)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 25, 8)) + + x = 1; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 25, 8)) +} + +for (; ;) { + let x; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 31, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 31, 7)) + + x = 1; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 31, 7)) +} + +while (true) { + let x; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 37, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 37, 7)) +} + +while (true) { + const x = true; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 42, 9)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 42, 9)) +} + +do { + let x; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 47, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 47, 7)) + +} while (true); + +do { + let x; +>x : Symbol(x, Decl(downlevelLetConst17.ts, 52, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 52, 7)) + +} while (true); + +for (let x in []) { +>x : Symbol(x, Decl(downlevelLetConst17.ts, 56, 8)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 56, 8)) +} + +for (const x in []) { +>x : Symbol(x, Decl(downlevelLetConst17.ts, 60, 10)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 60, 10)) +} + +for (const x of []) { +>x : Symbol(x, Decl(downlevelLetConst17.ts, 64, 10)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst17.ts, 64, 10)) +} diff --git a/tests/baselines/reference/downlevelLetConst17.types b/tests/baselines/reference/downlevelLetConst17.types index e8042e49b4bd6..824abcc76be52 100644 --- a/tests/baselines/reference/downlevelLetConst17.types +++ b/tests/baselines/reference/downlevelLetConst17.types @@ -3,89 +3,89 @@ >'use strict' : string declare function use(a: any); ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->a : any, Symbol(a, Decl(downlevelLetConst17.ts, 2, 21)) +>use : (a: any) => any +>a : any var x; ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 4, 3)) +>x : any for (let x = 10; ;) { ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 5, 8)) +>x : number >10 : number use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 5, 8)) +>use : (a: any) => any +>x : number } use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 4, 3)) +>use : (a: any) => any +>x : any for (const x = 10; ;) { ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 10, 10)) +>x : number >10 : number use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 10, 10)) +>use : (a: any) => any +>x : number } for (; ;) { let x = 10; ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 15, 7)) +>x : number >10 : number use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 15, 7)) +>use : (a: any) => any +>x : number x = 1; >x = 1 : number ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 15, 7)) +>x : number >1 : number } for (; ;) { const x = 10; ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 21, 9)) +>x : number >10 : number use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : number, Symbol(x, Decl(downlevelLetConst17.ts, 21, 9)) +>use : (a: any) => any +>x : number } for (let x; ;) { ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 25, 8)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 25, 8)) +>use : (a: any) => any +>x : any x = 1; >x = 1 : number ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 25, 8)) +>x : any >1 : number } for (; ;) { let x; ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 31, 7)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 31, 7)) +>use : (a: any) => any +>x : any x = 1; >x = 1 : number ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 31, 7)) +>x : any >1 : number } @@ -93,77 +93,77 @@ while (true) { >true : boolean let x; ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 37, 7)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 37, 7)) +>use : (a: any) => any +>x : any } while (true) { >true : boolean const x = true; ->x : boolean, Symbol(x, Decl(downlevelLetConst17.ts, 42, 9)) +>x : boolean >true : boolean use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : boolean, Symbol(x, Decl(downlevelLetConst17.ts, 42, 9)) +>use : (a: any) => any +>x : boolean } do { let x; ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 47, 7)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 47, 7)) +>use : (a: any) => any +>x : any } while (true); >true : boolean do { let x; ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 52, 7)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 52, 7)) +>use : (a: any) => any +>x : any } while (true); >true : boolean for (let x in []) { ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 56, 8)) +>x : any >[] : undefined[] use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 56, 8)) +>use : (a: any) => any +>x : any } for (const x in []) { ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 60, 10)) +>x : any >[] : undefined[] use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 60, 10)) +>use : (a: any) => any +>x : any } for (const x of []) { ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 64, 10)) +>x : any >[] : undefined[] use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst17.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst17.ts, 64, 10)) +>use : (a: any) => any +>x : any } diff --git a/tests/baselines/reference/downlevelLetConst19.symbols b/tests/baselines/reference/downlevelLetConst19.symbols new file mode 100644 index 0000000000000..9ed23e4344703 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst19.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/downlevelLetConst19.ts === +'use strict' +declare function use(a: any); +>use : Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) +>a : Symbol(a, Decl(downlevelLetConst19.ts, 1, 21)) + +var x; +>x : Symbol(x, Decl(downlevelLetConst19.ts, 2, 3)) + +function a() { +>a : Symbol(a, Decl(downlevelLetConst19.ts, 2, 6)) + { + let x; +>x : Symbol(x, Decl(downlevelLetConst19.ts, 5, 7)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst19.ts, 5, 7)) + + function b() { +>b : Symbol(b, Decl(downlevelLetConst19.ts, 6, 11)) + { + let x; +>x : Symbol(x, Decl(downlevelLetConst19.ts, 10, 15)) + + use(x); +>use : Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst19.ts, 10, 15)) + } + use(x); +>use : Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst19.ts, 5, 7)) + } + } + use(x) +>use : Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst19.ts, 2, 3)) +} +use(x) +>use : Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) +>x : Symbol(x, Decl(downlevelLetConst19.ts, 2, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst19.types b/tests/baselines/reference/downlevelLetConst19.types index 0873a976b09ff..687033c195ae1 100644 --- a/tests/baselines/reference/downlevelLetConst19.types +++ b/tests/baselines/reference/downlevelLetConst19.types @@ -3,47 +3,47 @@ >'use strict' : string declare function use(a: any); ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) ->a : any, Symbol(a, Decl(downlevelLetConst19.ts, 1, 21)) +>use : (a: any) => any +>a : any var x; ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 2, 3)) +>x : any function a() { ->a : () => void, Symbol(a, Decl(downlevelLetConst19.ts, 2, 6)) +>a : () => void { let x; ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 5, 7)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 5, 7)) +>use : (a: any) => any +>x : any function b() { ->b : () => void, Symbol(b, Decl(downlevelLetConst19.ts, 6, 11)) +>b : () => void { let x; ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 10, 15)) +>x : any use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 10, 15)) +>use : (a: any) => any +>x : any } use(x); >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 5, 7)) +>use : (a: any) => any +>x : any } } use(x) >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 2, 3)) +>use : (a: any) => any +>x : any } use(x) >use(x) : any ->use : (a: any) => any, Symbol(use, Decl(downlevelLetConst19.ts, 0, 12)) ->x : any, Symbol(x, Decl(downlevelLetConst19.ts, 2, 3)) +>use : (a: any) => any +>x : any diff --git a/tests/baselines/reference/downlevelLetConst3.symbols b/tests/baselines/reference/downlevelLetConst3.symbols new file mode 100644 index 0000000000000..26732da33525c --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst3.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/downlevelLetConst3.ts === +const a = 1 +>a : Symbol(a, Decl(downlevelLetConst3.ts, 0, 5)) + diff --git a/tests/baselines/reference/downlevelLetConst3.types b/tests/baselines/reference/downlevelLetConst3.types index d1eb3f8d46fd6..cf8def45e3cd7 100644 --- a/tests/baselines/reference/downlevelLetConst3.types +++ b/tests/baselines/reference/downlevelLetConst3.types @@ -1,5 +1,5 @@ === tests/cases/compiler/downlevelLetConst3.ts === const a = 1 ->a : number, Symbol(a, Decl(downlevelLetConst3.ts, 0, 5)) +>a : number >1 : number diff --git a/tests/baselines/reference/downlevelLetConst5.symbols b/tests/baselines/reference/downlevelLetConst5.symbols new file mode 100644 index 0000000000000..93181df78dee1 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst5.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/downlevelLetConst5.ts === +const a: number = 1 +>a : Symbol(a, Decl(downlevelLetConst5.ts, 0, 5)) + diff --git a/tests/baselines/reference/downlevelLetConst5.types b/tests/baselines/reference/downlevelLetConst5.types index 4533be88818b4..2cdf6ff53cc85 100644 --- a/tests/baselines/reference/downlevelLetConst5.types +++ b/tests/baselines/reference/downlevelLetConst5.types @@ -1,5 +1,5 @@ === tests/cases/compiler/downlevelLetConst5.ts === const a: number = 1 ->a : number, Symbol(a, Decl(downlevelLetConst5.ts, 0, 5)) +>a : number >1 : number diff --git a/tests/baselines/reference/downlevelLetConst7.symbols b/tests/baselines/reference/downlevelLetConst7.symbols new file mode 100644 index 0000000000000..1db555c427305 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst7.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/downlevelLetConst7.ts === +let a +>a : Symbol(a, Decl(downlevelLetConst7.ts, 0, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst7.types b/tests/baselines/reference/downlevelLetConst7.types index 3022946eb3ca1..9c76479ecf50b 100644 --- a/tests/baselines/reference/downlevelLetConst7.types +++ b/tests/baselines/reference/downlevelLetConst7.types @@ -1,4 +1,4 @@ === tests/cases/compiler/downlevelLetConst7.ts === let a ->a : any, Symbol(a, Decl(downlevelLetConst7.ts, 0, 3)) +>a : any diff --git a/tests/baselines/reference/downlevelLetConst8.symbols b/tests/baselines/reference/downlevelLetConst8.symbols new file mode 100644 index 0000000000000..68e8e06c2c115 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst8.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/downlevelLetConst8.ts === +let a = 1 +>a : Symbol(a, Decl(downlevelLetConst8.ts, 0, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst8.types b/tests/baselines/reference/downlevelLetConst8.types index 9ad7bd00045a5..c941d67350374 100644 --- a/tests/baselines/reference/downlevelLetConst8.types +++ b/tests/baselines/reference/downlevelLetConst8.types @@ -1,5 +1,5 @@ === tests/cases/compiler/downlevelLetConst8.ts === let a = 1 ->a : number, Symbol(a, Decl(downlevelLetConst8.ts, 0, 3)) +>a : number >1 : number diff --git a/tests/baselines/reference/downlevelLetConst9.symbols b/tests/baselines/reference/downlevelLetConst9.symbols new file mode 100644 index 0000000000000..7b11987ea08e6 --- /dev/null +++ b/tests/baselines/reference/downlevelLetConst9.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/downlevelLetConst9.ts === +let a: number +>a : Symbol(a, Decl(downlevelLetConst9.ts, 0, 3)) + diff --git a/tests/baselines/reference/downlevelLetConst9.types b/tests/baselines/reference/downlevelLetConst9.types index bb40880ec34a6..cab9ac82a6058 100644 --- a/tests/baselines/reference/downlevelLetConst9.types +++ b/tests/baselines/reference/downlevelLetConst9.types @@ -1,4 +1,4 @@ === tests/cases/compiler/downlevelLetConst9.ts === let a: number ->a : number, Symbol(a, Decl(downlevelLetConst9.ts, 0, 3)) +>a : number diff --git a/tests/baselines/reference/duplicateAnonymousInners1.symbols b/tests/baselines/reference/duplicateAnonymousInners1.symbols new file mode 100644 index 0000000000000..8cf2a3301c365 --- /dev/null +++ b/tests/baselines/reference/duplicateAnonymousInners1.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/duplicateAnonymousInners1.ts === +module Foo { +>Foo : Symbol(Foo, Decl(duplicateAnonymousInners1.ts, 0, 0), Decl(duplicateAnonymousInners1.ts, 10, 1)) + + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousInners1.ts, 0, 12)) + + } + + class Inner {} +>Inner : Symbol(Inner, Decl(duplicateAnonymousInners1.ts, 4, 5)) + + // Inner should show up in intellisense + + export var Outer=0; +>Outer : Symbol(Outer, Decl(duplicateAnonymousInners1.ts, 9, 14)) +} + + +module Foo { +>Foo : Symbol(Foo, Decl(duplicateAnonymousInners1.ts, 0, 0), Decl(duplicateAnonymousInners1.ts, 10, 1)) + + // Should not be an error + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousInners1.ts, 13, 12)) + + } + + // Inner should not show up in intellisense + // Outer should show up in intellisense + +} + diff --git a/tests/baselines/reference/duplicateAnonymousInners1.types b/tests/baselines/reference/duplicateAnonymousInners1.types index 46ef59b975b0b..6840e5a14f6b4 100644 --- a/tests/baselines/reference/duplicateAnonymousInners1.types +++ b/tests/baselines/reference/duplicateAnonymousInners1.types @@ -1,29 +1,29 @@ === tests/cases/compiler/duplicateAnonymousInners1.ts === module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(duplicateAnonymousInners1.ts, 0, 0), Decl(duplicateAnonymousInners1.ts, 10, 1)) +>Foo : typeof Foo class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousInners1.ts, 0, 12)) +>Helper : Helper } class Inner {} ->Inner : Inner, Symbol(Inner, Decl(duplicateAnonymousInners1.ts, 4, 5)) +>Inner : Inner // Inner should show up in intellisense export var Outer=0; ->Outer : number, Symbol(Outer, Decl(duplicateAnonymousInners1.ts, 9, 14)) +>Outer : number >0 : number } module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(duplicateAnonymousInners1.ts, 0, 0), Decl(duplicateAnonymousInners1.ts, 10, 1)) +>Foo : typeof Foo // Should not be an error class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousInners1.ts, 13, 12)) +>Helper : Helper } diff --git a/tests/baselines/reference/duplicateAnonymousModuleClasses.symbols b/tests/baselines/reference/duplicateAnonymousModuleClasses.symbols new file mode 100644 index 0000000000000..60120c093757f --- /dev/null +++ b/tests/baselines/reference/duplicateAnonymousModuleClasses.symbols @@ -0,0 +1,71 @@ +=== tests/cases/compiler/duplicateAnonymousModuleClasses.ts === +module F { +>F : Symbol(F, Decl(duplicateAnonymousModuleClasses.ts, 0, 0), Decl(duplicateAnonymousModuleClasses.ts, 6, 1)) + + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 0, 10)) + + } + +} + + +module F { +>F : Symbol(F, Decl(duplicateAnonymousModuleClasses.ts, 0, 0), Decl(duplicateAnonymousModuleClasses.ts, 6, 1)) + + // Should not be an error + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 9, 10)) + + } + +} + +module Foo { +>Foo : Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 16, 1), Decl(duplicateAnonymousModuleClasses.ts, 24, 1)) + + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 18, 12)) + + } + +} + + +module Foo { +>Foo : Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 16, 1), Decl(duplicateAnonymousModuleClasses.ts, 24, 1)) + + // Should not be an error + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 27, 12)) + + } + +} + +module Gar { +>Gar : Symbol(Gar, Decl(duplicateAnonymousModuleClasses.ts, 34, 1)) + + module Foo { +>Foo : Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 36, 12), Decl(duplicateAnonymousModuleClasses.ts, 43, 5)) + + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 37, 16)) + + } + + } + + + module Foo { +>Foo : Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 36, 12), Decl(duplicateAnonymousModuleClasses.ts, 43, 5)) + + // Should not be an error + class Helper { +>Helper : Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 46, 16)) + + } + + } +} + diff --git a/tests/baselines/reference/duplicateAnonymousModuleClasses.types b/tests/baselines/reference/duplicateAnonymousModuleClasses.types index 0e02785ae2cfb..eebe5f721d902 100644 --- a/tests/baselines/reference/duplicateAnonymousModuleClasses.types +++ b/tests/baselines/reference/duplicateAnonymousModuleClasses.types @@ -1,9 +1,9 @@ === tests/cases/compiler/duplicateAnonymousModuleClasses.ts === module F { ->F : typeof F, Symbol(F, Decl(duplicateAnonymousModuleClasses.ts, 0, 0), Decl(duplicateAnonymousModuleClasses.ts, 6, 1)) +>F : typeof F class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 0, 10)) +>Helper : Helper } @@ -11,21 +11,21 @@ module F { module F { ->F : typeof F, Symbol(F, Decl(duplicateAnonymousModuleClasses.ts, 0, 0), Decl(duplicateAnonymousModuleClasses.ts, 6, 1)) +>F : typeof F // Should not be an error class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 9, 10)) +>Helper : Helper } } module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 16, 1), Decl(duplicateAnonymousModuleClasses.ts, 24, 1)) +>Foo : typeof Foo class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 18, 12)) +>Helper : Helper } @@ -33,24 +33,24 @@ module Foo { module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 16, 1), Decl(duplicateAnonymousModuleClasses.ts, 24, 1)) +>Foo : typeof Foo // Should not be an error class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 27, 12)) +>Helper : Helper } } module Gar { ->Gar : typeof Gar, Symbol(Gar, Decl(duplicateAnonymousModuleClasses.ts, 34, 1)) +>Gar : typeof Gar module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 36, 12), Decl(duplicateAnonymousModuleClasses.ts, 43, 5)) +>Foo : typeof Foo class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 37, 16)) +>Helper : Helper } @@ -58,11 +58,11 @@ module Gar { module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(duplicateAnonymousModuleClasses.ts, 36, 12), Decl(duplicateAnonymousModuleClasses.ts, 43, 5)) +>Foo : typeof Foo // Should not be an error class Helper { ->Helper : Helper, Symbol(Helper, Decl(duplicateAnonymousModuleClasses.ts, 46, 16)) +>Helper : Helper } diff --git a/tests/baselines/reference/duplicateConstructSignature.symbols b/tests/baselines/reference/duplicateConstructSignature.symbols new file mode 100644 index 0000000000000..e34f9738d8b77 --- /dev/null +++ b/tests/baselines/reference/duplicateConstructSignature.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/duplicateConstructSignature.ts === +interface I { +>I : Symbol(I, Decl(duplicateConstructSignature.ts, 0, 0)) + + (): number; + (): string; +} diff --git a/tests/baselines/reference/duplicateConstructSignature.types b/tests/baselines/reference/duplicateConstructSignature.types index 39f9bb8313a75..5c33f09f8d60f 100644 --- a/tests/baselines/reference/duplicateConstructSignature.types +++ b/tests/baselines/reference/duplicateConstructSignature.types @@ -1,6 +1,6 @@ === tests/cases/compiler/duplicateConstructSignature.ts === interface I { ->I : I, Symbol(I, Decl(duplicateConstructSignature.ts, 0, 0)) +>I : I (): number; (): string; diff --git a/tests/baselines/reference/duplicateConstructSignature2.symbols b/tests/baselines/reference/duplicateConstructSignature2.symbols new file mode 100644 index 0000000000000..f07e3f39b4cec --- /dev/null +++ b/tests/baselines/reference/duplicateConstructSignature2.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/duplicateConstructSignature2.ts === +interface I { +>I : Symbol(I, Decl(duplicateConstructSignature2.ts, 0, 0)) +>T : Symbol(T, Decl(duplicateConstructSignature2.ts, 0, 12)) + + (x: T): number; +>x : Symbol(x, Decl(duplicateConstructSignature2.ts, 1, 5)) +>T : Symbol(T, Decl(duplicateConstructSignature2.ts, 0, 12)) + + (x: T): string; +>x : Symbol(x, Decl(duplicateConstructSignature2.ts, 2, 5)) +>T : Symbol(T, Decl(duplicateConstructSignature2.ts, 0, 12)) +} diff --git a/tests/baselines/reference/duplicateConstructSignature2.types b/tests/baselines/reference/duplicateConstructSignature2.types index d76bd3c53098f..946286659638b 100644 --- a/tests/baselines/reference/duplicateConstructSignature2.types +++ b/tests/baselines/reference/duplicateConstructSignature2.types @@ -1,13 +1,13 @@ === tests/cases/compiler/duplicateConstructSignature2.ts === interface I { ->I : I, Symbol(I, Decl(duplicateConstructSignature2.ts, 0, 0)) ->T : T, Symbol(T, Decl(duplicateConstructSignature2.ts, 0, 12)) +>I : I +>T : T (x: T): number; ->x : T, Symbol(x, Decl(duplicateConstructSignature2.ts, 1, 5)) ->T : T, Symbol(T, Decl(duplicateConstructSignature2.ts, 0, 12)) +>x : T +>T : T (x: T): string; ->x : T, Symbol(x, Decl(duplicateConstructSignature2.ts, 2, 5)) ->T : T, Symbol(T, Decl(duplicateConstructSignature2.ts, 0, 12)) +>x : T +>T : T } diff --git a/tests/baselines/reference/duplicateConstructorOverloadSignature.symbols b/tests/baselines/reference/duplicateConstructorOverloadSignature.symbols new file mode 100644 index 0000000000000..a5313302e13a9 --- /dev/null +++ b/tests/baselines/reference/duplicateConstructorOverloadSignature.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/duplicateConstructorOverloadSignature.ts === +class C { +>C : Symbol(C, Decl(duplicateConstructorOverloadSignature.ts, 0, 0)) + + constructor(x: number); +>x : Symbol(x, Decl(duplicateConstructorOverloadSignature.ts, 1, 16)) + + constructor(x: number); +>x : Symbol(x, Decl(duplicateConstructorOverloadSignature.ts, 2, 16)) + + constructor(x: any) { } +>x : Symbol(x, Decl(duplicateConstructorOverloadSignature.ts, 3, 16)) +} diff --git a/tests/baselines/reference/duplicateConstructorOverloadSignature.types b/tests/baselines/reference/duplicateConstructorOverloadSignature.types index 5d5a04e406ad4..45df269706af1 100644 --- a/tests/baselines/reference/duplicateConstructorOverloadSignature.types +++ b/tests/baselines/reference/duplicateConstructorOverloadSignature.types @@ -1,13 +1,13 @@ === tests/cases/compiler/duplicateConstructorOverloadSignature.ts === class C { ->C : C, Symbol(C, Decl(duplicateConstructorOverloadSignature.ts, 0, 0)) +>C : C constructor(x: number); ->x : number, Symbol(x, Decl(duplicateConstructorOverloadSignature.ts, 1, 16)) +>x : number constructor(x: number); ->x : number, Symbol(x, Decl(duplicateConstructorOverloadSignature.ts, 2, 16)) +>x : number constructor(x: any) { } ->x : any, Symbol(x, Decl(duplicateConstructorOverloadSignature.ts, 3, 16)) +>x : any } diff --git a/tests/baselines/reference/duplicateConstructorOverloadSignature2.symbols b/tests/baselines/reference/duplicateConstructorOverloadSignature2.symbols new file mode 100644 index 0000000000000..c3c08ece56df0 --- /dev/null +++ b/tests/baselines/reference/duplicateConstructorOverloadSignature2.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/duplicateConstructorOverloadSignature2.ts === +class C { +>C : Symbol(C, Decl(duplicateConstructorOverloadSignature2.ts, 0, 0)) +>T : Symbol(T, Decl(duplicateConstructorOverloadSignature2.ts, 0, 8)) + + constructor(x: T); +>x : Symbol(x, Decl(duplicateConstructorOverloadSignature2.ts, 1, 16)) +>T : Symbol(T, Decl(duplicateConstructorOverloadSignature2.ts, 0, 8)) + + constructor(x: T); +>x : Symbol(x, Decl(duplicateConstructorOverloadSignature2.ts, 2, 16)) +>T : Symbol(T, Decl(duplicateConstructorOverloadSignature2.ts, 0, 8)) + + constructor(x: any) { } +>x : Symbol(x, Decl(duplicateConstructorOverloadSignature2.ts, 3, 16)) +} diff --git a/tests/baselines/reference/duplicateConstructorOverloadSignature2.types b/tests/baselines/reference/duplicateConstructorOverloadSignature2.types index 7e0514bb7ff47..780774e254554 100644 --- a/tests/baselines/reference/duplicateConstructorOverloadSignature2.types +++ b/tests/baselines/reference/duplicateConstructorOverloadSignature2.types @@ -1,16 +1,16 @@ === tests/cases/compiler/duplicateConstructorOverloadSignature2.ts === class C { ->C : C, Symbol(C, Decl(duplicateConstructorOverloadSignature2.ts, 0, 0)) ->T : T, Symbol(T, Decl(duplicateConstructorOverloadSignature2.ts, 0, 8)) +>C : C +>T : T constructor(x: T); ->x : T, Symbol(x, Decl(duplicateConstructorOverloadSignature2.ts, 1, 16)) ->T : T, Symbol(T, Decl(duplicateConstructorOverloadSignature2.ts, 0, 8)) +>x : T +>T : T constructor(x: T); ->x : T, Symbol(x, Decl(duplicateConstructorOverloadSignature2.ts, 2, 16)) ->T : T, Symbol(T, Decl(duplicateConstructorOverloadSignature2.ts, 0, 8)) +>x : T +>T : T constructor(x: any) { } ->x : any, Symbol(x, Decl(duplicateConstructorOverloadSignature2.ts, 3, 16)) +>x : any } diff --git a/tests/baselines/reference/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols b/tests/baselines/reference/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols new file mode 100644 index 0000000000000..61cc569b965f5 --- /dev/null +++ b/tests/baselines/reference/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/duplicateIdentifierShouldNotShortCircuitBaseTypeBinding.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/duplicateLabel3.symbols b/tests/baselines/reference/duplicateLabel3.symbols new file mode 100644 index 0000000000000..07d0ded29232e --- /dev/null +++ b/tests/baselines/reference/duplicateLabel3.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/duplicateLabel3.ts === +target: +while (true) { + function f() { +>f : Symbol(f, Decl(duplicateLabel3.ts, 1, 14)) + + target: + while (true) { + } + } +} diff --git a/tests/baselines/reference/duplicateLabel3.types b/tests/baselines/reference/duplicateLabel3.types index e1311383edd0a..8d75b08c768d1 100644 --- a/tests/baselines/reference/duplicateLabel3.types +++ b/tests/baselines/reference/duplicateLabel3.types @@ -6,7 +6,7 @@ while (true) { >true : boolean function f() { ->f : () => void, Symbol(f, Decl(duplicateLabel3.ts, 1, 14)) +>f : () => void target: >target : any diff --git a/tests/baselines/reference/duplicateLabel4.symbols b/tests/baselines/reference/duplicateLabel4.symbols new file mode 100644 index 0000000000000..c671abcef35d6 --- /dev/null +++ b/tests/baselines/reference/duplicateLabel4.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/duplicateLabel4.ts === +target: +No type information for this code.while (true) { +No type information for this code.} +No type information for this code. +No type information for this code.target: +No type information for this code.while (true) { +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.symbols b/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.symbols new file mode 100644 index 0000000000000..4191616255387 --- /dev/null +++ b/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/duplicateOverloadInTypeAugmentation1.ts === +interface Array { +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 0)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) + + reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, +>reduce : Symbol(reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) +>callbackfn : Symbol(callbackfn, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 11)) +>previousValue : Symbol(previousValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 24)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>currentValue : Symbol(currentValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 41)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>currentIndex : Symbol(currentIndex, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 58)) +>array : Symbol(array, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 80)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) + + initialValue?: T): T; +>initialValue : Symbol(initialValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 98)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) + + reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, +>reduce : Symbol(reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) +>U : Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) +>callbackfn : Symbol(callbackfn, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 14)) +>previousValue : Symbol(previousValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 27)) +>U : Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) +>currentValue : Symbol(currentValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 44)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>currentIndex : Symbol(currentIndex, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 61)) +>array : Symbol(array, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 83)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>U : Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) + + initialValue: U): U; +>initialValue : Symbol(initialValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 101)) +>U : Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) +>U : Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) +} +var a: Array; +>a : Symbol(a, Decl(duplicateOverloadInTypeAugmentation1.ts, 6, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 0)) + +var r5 = a.reduce((x, y) => x + y); +>r5 : Symbol(r5, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 3)) +>a.reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) +>a : Symbol(a, Decl(duplicateOverloadInTypeAugmentation1.ts, 6, 3)) +>reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) +>x : Symbol(x, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 19)) +>y : Symbol(y, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 21)) +>x : Symbol(x, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 19)) +>y : Symbol(y, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 21)) + diff --git a/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types b/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types index 06e033f418e5e..bc7214eb6b941 100644 --- a/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types +++ b/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types @@ -1,57 +1,57 @@ === tests/cases/compiler/duplicateOverloadInTypeAugmentation1.ts === interface Array { ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 0)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>Array : T[] +>T : T reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, ->reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }, Symbol(reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) ->callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, Symbol(callbackfn, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 11)) ->previousValue : T, Symbol(previousValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 24)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) ->currentValue : T, Symbol(currentValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 41)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) ->currentIndex : number, Symbol(currentIndex, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 58)) ->array : T[], Symbol(array, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 80)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T +>previousValue : T +>T : T +>currentValue : T +>T : T +>currentIndex : number +>array : T[] +>T : T +>T : T initialValue?: T): T; ->initialValue : T, Symbol(initialValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 1, 98)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) +>initialValue : T +>T : T +>T : T reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, ->reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }, Symbol(reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) ->U : U, Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) ->callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, Symbol(callbackfn, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 14)) ->previousValue : U, Symbol(previousValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 27)) ->U : U, Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) ->currentValue : T, Symbol(currentValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 44)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) ->currentIndex : number, Symbol(currentIndex, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 61)) ->array : T[], Symbol(array, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 83)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 16)) ->U : U, Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) +>reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>U : U +>callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U +>previousValue : U +>U : U +>currentValue : T +>T : T +>currentIndex : number +>array : T[] +>T : T +>U : U initialValue: U): U; ->initialValue : U, Symbol(initialValue, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 101)) ->U : U, Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) ->U : U, Symbol(U, Decl(duplicateOverloadInTypeAugmentation1.ts, 3, 11)) +>initialValue : U +>U : U +>U : U } var a: Array; ->a : string[], Symbol(a, Decl(duplicateOverloadInTypeAugmentation1.ts, 6, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 0)) +>a : string[] +>Array : T[] var r5 = a.reduce((x, y) => x + y); ->r5 : string, Symbol(r5, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 3)) +>r5 : string >a.reduce((x, y) => x + y) : string ->a.reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) ->a : string[], Symbol(a, Decl(duplicateOverloadInTypeAugmentation1.ts, 6, 3)) ->reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120), Decl(duplicateOverloadInTypeAugmentation1.ts, 0, 20), Decl(duplicateOverloadInTypeAugmentation1.ts, 2, 29)) +>a.reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } +>a : string[] +>reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } >(x, y) => x + y : (x: string, y: string) => string ->x : string, Symbol(x, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 19)) ->y : string, Symbol(y, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 21)) +>x : string +>y : string >x + y : string ->x : string, Symbol(x, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 19)) ->y : string, Symbol(y, Decl(duplicateOverloadInTypeAugmentation1.ts, 7, 21)) +>x : string +>y : string diff --git a/tests/baselines/reference/duplicateVarAndImport.symbols b/tests/baselines/reference/duplicateVarAndImport.symbols new file mode 100644 index 0000000000000..597713b1f3020 --- /dev/null +++ b/tests/baselines/reference/duplicateVarAndImport.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/duplicateVarAndImport.ts === +// no error since module is not instantiated + +var a; +>a : Symbol(a, Decl(duplicateVarAndImport.ts, 2, 3), Decl(duplicateVarAndImport.ts, 3, 12)) + +module M { } +>M : Symbol(M, Decl(duplicateVarAndImport.ts, 2, 6)) + +import a = M; +>a : Symbol(a, Decl(duplicateVarAndImport.ts, 2, 3), Decl(duplicateVarAndImport.ts, 3, 12)) +>M : Symbol(M, Decl(duplicateVarAndImport.ts, 2, 6)) + diff --git a/tests/baselines/reference/duplicateVarAndImport.types b/tests/baselines/reference/duplicateVarAndImport.types index 00ceaaaa35bc7..4e60c4ecf2020 100644 --- a/tests/baselines/reference/duplicateVarAndImport.types +++ b/tests/baselines/reference/duplicateVarAndImport.types @@ -2,12 +2,12 @@ // no error since module is not instantiated var a; ->a : any, Symbol(a, Decl(duplicateVarAndImport.ts, 2, 3), Decl(duplicateVarAndImport.ts, 3, 12)) +>a : any module M { } ->M : any, Symbol(M, Decl(duplicateVarAndImport.ts, 2, 6)) +>M : any import a = M; ->a : any, Symbol(a, Decl(duplicateVarAndImport.ts, 2, 3), Decl(duplicateVarAndImport.ts, 3, 12)) ->M : any, Symbol(M, Decl(duplicateVarAndImport.ts, 2, 6)) +>a : any +>M : any diff --git a/tests/baselines/reference/duplicateVariableDeclaration1.symbols b/tests/baselines/reference/duplicateVariableDeclaration1.symbols new file mode 100644 index 0000000000000..02b85a89a1f39 --- /dev/null +++ b/tests/baselines/reference/duplicateVariableDeclaration1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/duplicateVariableDeclaration1.ts === +var v +>v : Symbol(v, Decl(duplicateVariableDeclaration1.ts, 0, 3), Decl(duplicateVariableDeclaration1.ts, 1, 3)) + +var v +>v : Symbol(v, Decl(duplicateVariableDeclaration1.ts, 0, 3), Decl(duplicateVariableDeclaration1.ts, 1, 3)) + diff --git a/tests/baselines/reference/duplicateVariableDeclaration1.types b/tests/baselines/reference/duplicateVariableDeclaration1.types index a3e566c31e093..0da31840cfd2e 100644 --- a/tests/baselines/reference/duplicateVariableDeclaration1.types +++ b/tests/baselines/reference/duplicateVariableDeclaration1.types @@ -1,7 +1,7 @@ === tests/cases/compiler/duplicateVariableDeclaration1.ts === var v ->v : any, Symbol(v, Decl(duplicateVariableDeclaration1.ts, 0, 3), Decl(duplicateVariableDeclaration1.ts, 1, 3)) +>v : any var v ->v : any, Symbol(v, Decl(duplicateVariableDeclaration1.ts, 0, 3), Decl(duplicateVariableDeclaration1.ts, 1, 3)) +>v : any diff --git a/tests/baselines/reference/duplicateVariablesByScope.symbols b/tests/baselines/reference/duplicateVariablesByScope.symbols new file mode 100644 index 0000000000000..bc94dc9b80779 --- /dev/null +++ b/tests/baselines/reference/duplicateVariablesByScope.symbols @@ -0,0 +1,56 @@ +=== tests/cases/compiler/duplicateVariablesByScope.ts === +// duplicate local variables are only reported at global scope + +module M { +>M : Symbol(M, Decl(duplicateVariablesByScope.ts, 0, 0)) + + for (var j = 0; j < 10; j++) { +>j : Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) + } + + for (var j = 0; j < 10; j++) { +>j : Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) + } +} + +function foo() { +>foo : Symbol(foo, Decl(duplicateVariablesByScope.ts, 8, 1)) + + var x = 2; +>x : Symbol(x, Decl(duplicateVariablesByScope.ts, 11, 7), Decl(duplicateVariablesByScope.ts, 12, 7)) + + var x = 1; +>x : Symbol(x, Decl(duplicateVariablesByScope.ts, 11, 7), Decl(duplicateVariablesByScope.ts, 12, 7)) + + if (true) { + var result = 1; +>result : Symbol(result, Decl(duplicateVariablesByScope.ts, 14, 11), Decl(duplicateVariablesByScope.ts, 17, 11)) + } + else { + var result = 2; +>result : Symbol(result, Decl(duplicateVariablesByScope.ts, 14, 11), Decl(duplicateVariablesByScope.ts, 17, 11)) + } +} + +class C { +>C : Symbol(C, Decl(duplicateVariablesByScope.ts, 19, 1)) + + foo() { +>foo : Symbol(foo, Decl(duplicateVariablesByScope.ts, 21, 9)) + + try { + var x = 1; +>x : Symbol(x, Decl(duplicateVariablesByScope.ts, 24, 15), Decl(duplicateVariablesByScope.ts, 27, 15)) + } + catch (e) { +>e : Symbol(e, Decl(duplicateVariablesByScope.ts, 26, 15)) + + var x = 2; +>x : Symbol(x, Decl(duplicateVariablesByScope.ts, 24, 15), Decl(duplicateVariablesByScope.ts, 27, 15)) + } + } +} diff --git a/tests/baselines/reference/duplicateVariablesByScope.types b/tests/baselines/reference/duplicateVariablesByScope.types index 0bf7d32ad4e54..42d8cae2a3c86 100644 --- a/tests/baselines/reference/duplicateVariablesByScope.types +++ b/tests/baselines/reference/duplicateVariablesByScope.types @@ -2,70 +2,70 @@ // duplicate local variables are only reported at global scope module M { ->M : typeof M, Symbol(M, Decl(duplicateVariablesByScope.ts, 0, 0)) +>M : typeof M for (var j = 0; j < 10; j++) { ->j : number, Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : number >0 : number >j < 10 : boolean ->j : number, Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : number >10 : number >j++ : number ->j : number, Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : number } for (var j = 0; j < 10; j++) { ->j : number, Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : number >0 : number >j < 10 : boolean ->j : number, Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : number >10 : number >j++ : number ->j : number, Symbol(j, Decl(duplicateVariablesByScope.ts, 3, 12), Decl(duplicateVariablesByScope.ts, 6, 12)) +>j : number } } function foo() { ->foo : () => void, Symbol(foo, Decl(duplicateVariablesByScope.ts, 8, 1)) +>foo : () => void var x = 2; ->x : number, Symbol(x, Decl(duplicateVariablesByScope.ts, 11, 7), Decl(duplicateVariablesByScope.ts, 12, 7)) +>x : number >2 : number var x = 1; ->x : number, Symbol(x, Decl(duplicateVariablesByScope.ts, 11, 7), Decl(duplicateVariablesByScope.ts, 12, 7)) +>x : number >1 : number if (true) { >true : boolean var result = 1; ->result : number, Symbol(result, Decl(duplicateVariablesByScope.ts, 14, 11), Decl(duplicateVariablesByScope.ts, 17, 11)) +>result : number >1 : number } else { var result = 2; ->result : number, Symbol(result, Decl(duplicateVariablesByScope.ts, 14, 11), Decl(duplicateVariablesByScope.ts, 17, 11)) +>result : number >2 : number } } class C { ->C : C, Symbol(C, Decl(duplicateVariablesByScope.ts, 19, 1)) +>C : C foo() { ->foo : () => void, Symbol(foo, Decl(duplicateVariablesByScope.ts, 21, 9)) +>foo : () => void try { var x = 1; ->x : number, Symbol(x, Decl(duplicateVariablesByScope.ts, 24, 15), Decl(duplicateVariablesByScope.ts, 27, 15)) +>x : number >1 : number } catch (e) { ->e : any, Symbol(e, Decl(duplicateVariablesByScope.ts, 26, 15)) +>e : any var x = 2; ->x : number, Symbol(x, Decl(duplicateVariablesByScope.ts, 24, 15), Decl(duplicateVariablesByScope.ts, 27, 15)) +>x : number >2 : number } } diff --git a/tests/baselines/reference/dynamicModuleTypecheckError.symbols b/tests/baselines/reference/dynamicModuleTypecheckError.symbols new file mode 100644 index 0000000000000..ff141fe72e297 --- /dev/null +++ b/tests/baselines/reference/dynamicModuleTypecheckError.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/dynamicModuleTypecheckError.ts === +export var x = 1; +>x : Symbol(x, Decl(dynamicModuleTypecheckError.ts, 0, 10)) + +for(var i = 0; i < 30; i++) { +>i : Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) +>i : Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) +>i : Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) + + x = i * 1000; // should not be an error here +>x : Symbol(x, Decl(dynamicModuleTypecheckError.ts, 0, 10)) +>i : Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) + +} + diff --git a/tests/baselines/reference/dynamicModuleTypecheckError.types b/tests/baselines/reference/dynamicModuleTypecheckError.types index ef6b7286864a1..e50107f328b90 100644 --- a/tests/baselines/reference/dynamicModuleTypecheckError.types +++ b/tests/baselines/reference/dynamicModuleTypecheckError.types @@ -1,22 +1,22 @@ === tests/cases/compiler/dynamicModuleTypecheckError.ts === export var x = 1; ->x : number, Symbol(x, Decl(dynamicModuleTypecheckError.ts, 0, 10)) +>x : number >1 : number for(var i = 0; i < 30; i++) { ->i : number, Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) +>i : number >0 : number >i < 30 : boolean ->i : number, Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) +>i : number >30 : number >i++ : number ->i : number, Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) +>i : number x = i * 1000; // should not be an error here >x = i * 1000 : number ->x : number, Symbol(x, Decl(dynamicModuleTypecheckError.ts, 0, 10)) +>x : number >i * 1000 : number ->i : number, Symbol(i, Decl(dynamicModuleTypecheckError.ts, 2, 7)) +>i : number >1000 : number } diff --git a/tests/baselines/reference/elidingImportNames.symbols b/tests/baselines/reference/elidingImportNames.symbols new file mode 100644 index 0000000000000..02646b5c3e292 --- /dev/null +++ b/tests/baselines/reference/elidingImportNames.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/elidingImportNames_test.ts === + +import a = require('elidingImportNames_main'); // alias used in typeof +>a : Symbol(a, Decl(elidingImportNames_test.ts, 0, 0)) + +var b = a; +>b : Symbol(b, Decl(elidingImportNames_test.ts, 2, 3)) +>a : Symbol(a, Decl(elidingImportNames_test.ts, 0, 0)) + +var x: typeof a; +>x : Symbol(x, Decl(elidingImportNames_test.ts, 3, 3)) +>a : Symbol(a, Decl(elidingImportNames_test.ts, 0, 0)) + +import a2 = require('elidingImportNames_main1'); // alias not used in typeof +>a2 : Symbol(a2, Decl(elidingImportNames_test.ts, 3, 16)) + +var b2 = a2; +>b2 : Symbol(b2, Decl(elidingImportNames_test.ts, 5, 3)) +>a2 : Symbol(a2, Decl(elidingImportNames_test.ts, 3, 16)) + + +=== tests/cases/compiler/elidingImportNames_main.ts === +export var main = 10; +>main : Symbol(main, Decl(elidingImportNames_main.ts, 0, 10)) + +=== tests/cases/compiler/elidingImportNames_main1.ts === +export var main = 10; +>main : Symbol(main, Decl(elidingImportNames_main1.ts, 0, 10)) + diff --git a/tests/baselines/reference/elidingImportNames.types b/tests/baselines/reference/elidingImportNames.types index 361ad9ce95e13..65bd16a6d97c4 100644 --- a/tests/baselines/reference/elidingImportNames.types +++ b/tests/baselines/reference/elidingImportNames.types @@ -1,31 +1,31 @@ === tests/cases/compiler/elidingImportNames_test.ts === import a = require('elidingImportNames_main'); // alias used in typeof ->a : typeof a, Symbol(a, Decl(elidingImportNames_test.ts, 0, 0)) +>a : typeof a var b = a; ->b : typeof a, Symbol(b, Decl(elidingImportNames_test.ts, 2, 3)) ->a : typeof a, Symbol(a, Decl(elidingImportNames_test.ts, 0, 0)) +>b : typeof a +>a : typeof a var x: typeof a; ->x : typeof a, Symbol(x, Decl(elidingImportNames_test.ts, 3, 3)) ->a : typeof a, Symbol(a, Decl(elidingImportNames_test.ts, 0, 0)) +>x : typeof a +>a : typeof a import a2 = require('elidingImportNames_main1'); // alias not used in typeof ->a2 : typeof a2, Symbol(a2, Decl(elidingImportNames_test.ts, 3, 16)) +>a2 : typeof a2 var b2 = a2; ->b2 : typeof a2, Symbol(b2, Decl(elidingImportNames_test.ts, 5, 3)) ->a2 : typeof a2, Symbol(a2, Decl(elidingImportNames_test.ts, 3, 16)) +>b2 : typeof a2 +>a2 : typeof a2 === tests/cases/compiler/elidingImportNames_main.ts === export var main = 10; ->main : number, Symbol(main, Decl(elidingImportNames_main.ts, 0, 10)) +>main : number >10 : number === tests/cases/compiler/elidingImportNames_main1.ts === export var main = 10; ->main : number, Symbol(main, Decl(elidingImportNames_main1.ts, 0, 10)) +>main : number >10 : number diff --git a/tests/baselines/reference/emitArrowFunction.symbols b/tests/baselines/reference/emitArrowFunction.symbols new file mode 100644 index 0000000000000..33de13d877c68 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunction.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts === +var f1 = () => { } +>f1 : Symbol(f1, Decl(emitArrowFunction.ts, 0, 3)) + +var f2 = (x: string, y: string) => { } +>f2 : Symbol(f2, Decl(emitArrowFunction.ts, 1, 3)) +>x : Symbol(x, Decl(emitArrowFunction.ts, 1, 10)) +>y : Symbol(y, Decl(emitArrowFunction.ts, 1, 20)) + +var f3 = (x: string, y: number, ...rest) => { } +>f3 : Symbol(f3, Decl(emitArrowFunction.ts, 2, 3)) +>x : Symbol(x, Decl(emitArrowFunction.ts, 2, 10)) +>y : Symbol(y, Decl(emitArrowFunction.ts, 2, 20)) +>rest : Symbol(rest, Decl(emitArrowFunction.ts, 2, 31)) + +var f4 = (x: string, y: number, z = 10) => { } +>f4 : Symbol(f4, Decl(emitArrowFunction.ts, 3, 3)) +>x : Symbol(x, Decl(emitArrowFunction.ts, 3, 10)) +>y : Symbol(y, Decl(emitArrowFunction.ts, 3, 20)) +>z : Symbol(z, Decl(emitArrowFunction.ts, 3, 31)) + +function foo(func: () => boolean) { } +>foo : Symbol(foo, Decl(emitArrowFunction.ts, 3, 46)) +>func : Symbol(func, Decl(emitArrowFunction.ts, 4, 13)) + +foo(() => true); +>foo : Symbol(foo, Decl(emitArrowFunction.ts, 3, 46)) + +foo(() => { return false; }); +>foo : Symbol(foo, Decl(emitArrowFunction.ts, 3, 46)) + diff --git a/tests/baselines/reference/emitArrowFunction.types b/tests/baselines/reference/emitArrowFunction.types index 4cbb5bff2edeb..2ac9ef07af42e 100644 --- a/tests/baselines/reference/emitArrowFunction.types +++ b/tests/baselines/reference/emitArrowFunction.types @@ -1,42 +1,42 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunction.ts === var f1 = () => { } ->f1 : () => void, Symbol(f1, Decl(emitArrowFunction.ts, 0, 3)) +>f1 : () => void >() => { } : () => void var f2 = (x: string, y: string) => { } ->f2 : (x: string, y: string) => void, Symbol(f2, Decl(emitArrowFunction.ts, 1, 3)) +>f2 : (x: string, y: string) => void >(x: string, y: string) => { } : (x: string, y: string) => void ->x : string, Symbol(x, Decl(emitArrowFunction.ts, 1, 10)) ->y : string, Symbol(y, Decl(emitArrowFunction.ts, 1, 20)) +>x : string +>y : string var f3 = (x: string, y: number, ...rest) => { } ->f3 : (x: string, y: number, ...rest: any[]) => void, Symbol(f3, Decl(emitArrowFunction.ts, 2, 3)) +>f3 : (x: string, y: number, ...rest: any[]) => void >(x: string, y: number, ...rest) => { } : (x: string, y: number, ...rest: any[]) => void ->x : string, Symbol(x, Decl(emitArrowFunction.ts, 2, 10)) ->y : number, Symbol(y, Decl(emitArrowFunction.ts, 2, 20)) ->rest : any[], Symbol(rest, Decl(emitArrowFunction.ts, 2, 31)) +>x : string +>y : number +>rest : any[] var f4 = (x: string, y: number, z = 10) => { } ->f4 : (x: string, y: number, z?: number) => void, Symbol(f4, Decl(emitArrowFunction.ts, 3, 3)) +>f4 : (x: string, y: number, z?: number) => void >(x: string, y: number, z = 10) => { } : (x: string, y: number, z?: number) => void ->x : string, Symbol(x, Decl(emitArrowFunction.ts, 3, 10)) ->y : number, Symbol(y, Decl(emitArrowFunction.ts, 3, 20)) ->z : number, Symbol(z, Decl(emitArrowFunction.ts, 3, 31)) +>x : string +>y : number +>z : number >10 : number function foo(func: () => boolean) { } ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunction.ts, 3, 46)) ->func : () => boolean, Symbol(func, Decl(emitArrowFunction.ts, 4, 13)) +>foo : (func: () => boolean) => void +>func : () => boolean foo(() => true); >foo(() => true) : void ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunction.ts, 3, 46)) +>foo : (func: () => boolean) => void >() => true : () => boolean >true : boolean foo(() => { return false; }); >foo(() => { return false; }) : void ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunction.ts, 3, 46)) +>foo : (func: () => boolean) => void >() => { return false; } : () => boolean >false : boolean diff --git a/tests/baselines/reference/emitArrowFunctionAsIs.symbols b/tests/baselines/reference/emitArrowFunctionAsIs.symbols new file mode 100644 index 0000000000000..d853996ccd9b9 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionAsIs.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts === +var arrow1 = a => { }; +>arrow1 : Symbol(arrow1, Decl(emitArrowFunctionAsIs.ts, 0, 3)) +>a : Symbol(a, Decl(emitArrowFunctionAsIs.ts, 0, 12)) + +var arrow2 = (a) => { }; +>arrow2 : Symbol(arrow2, Decl(emitArrowFunctionAsIs.ts, 1, 3)) +>a : Symbol(a, Decl(emitArrowFunctionAsIs.ts, 1, 14)) + +var arrow3 = (a, b) => { }; +>arrow3 : Symbol(arrow3, Decl(emitArrowFunctionAsIs.ts, 3, 3)) +>a : Symbol(a, Decl(emitArrowFunctionAsIs.ts, 3, 14)) +>b : Symbol(b, Decl(emitArrowFunctionAsIs.ts, 3, 16)) + diff --git a/tests/baselines/reference/emitArrowFunctionAsIs.types b/tests/baselines/reference/emitArrowFunctionAsIs.types index 35c2073ae8478..1ab5de9724a77 100644 --- a/tests/baselines/reference/emitArrowFunctionAsIs.types +++ b/tests/baselines/reference/emitArrowFunctionAsIs.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIs.ts === var arrow1 = a => { }; ->arrow1 : (a: any) => void, Symbol(arrow1, Decl(emitArrowFunctionAsIs.ts, 0, 3)) +>arrow1 : (a: any) => void >a => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionAsIs.ts, 0, 12)) +>a : any var arrow2 = (a) => { }; ->arrow2 : (a: any) => void, Symbol(arrow2, Decl(emitArrowFunctionAsIs.ts, 1, 3)) +>arrow2 : (a: any) => void >(a) => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionAsIs.ts, 1, 14)) +>a : any var arrow3 = (a, b) => { }; ->arrow3 : (a: any, b: any) => void, Symbol(arrow3, Decl(emitArrowFunctionAsIs.ts, 3, 3)) +>arrow3 : (a: any, b: any) => void >(a, b) => { } : (a: any, b: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionAsIs.ts, 3, 14)) ->b : any, Symbol(b, Decl(emitArrowFunctionAsIs.ts, 3, 16)) +>a : any +>b : any diff --git a/tests/baselines/reference/emitArrowFunctionAsIsES6.symbols b/tests/baselines/reference/emitArrowFunctionAsIsES6.symbols new file mode 100644 index 0000000000000..c435db556484a --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionAsIsES6.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts === +var arrow1 = a => { }; +>arrow1 : Symbol(arrow1, Decl(emitArrowFunctionAsIsES6.ts, 0, 3)) +>a : Symbol(a, Decl(emitArrowFunctionAsIsES6.ts, 0, 12)) + +var arrow2 = (a) => { }; +>arrow2 : Symbol(arrow2, Decl(emitArrowFunctionAsIsES6.ts, 1, 3)) +>a : Symbol(a, Decl(emitArrowFunctionAsIsES6.ts, 1, 14)) + +var arrow3 = (a, b) => { }; +>arrow3 : Symbol(arrow3, Decl(emitArrowFunctionAsIsES6.ts, 3, 3)) +>a : Symbol(a, Decl(emitArrowFunctionAsIsES6.ts, 3, 14)) +>b : Symbol(b, Decl(emitArrowFunctionAsIsES6.ts, 3, 16)) + diff --git a/tests/baselines/reference/emitArrowFunctionAsIsES6.types b/tests/baselines/reference/emitArrowFunctionAsIsES6.types index 7bfea6cce64f4..6b8c9e54bbe4c 100644 --- a/tests/baselines/reference/emitArrowFunctionAsIsES6.types +++ b/tests/baselines/reference/emitArrowFunctionAsIsES6.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionAsIsES6.ts === var arrow1 = a => { }; ->arrow1 : (a: any) => void, Symbol(arrow1, Decl(emitArrowFunctionAsIsES6.ts, 0, 3)) +>arrow1 : (a: any) => void >a => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionAsIsES6.ts, 0, 12)) +>a : any var arrow2 = (a) => { }; ->arrow2 : (a: any) => void, Symbol(arrow2, Decl(emitArrowFunctionAsIsES6.ts, 1, 3)) +>arrow2 : (a: any) => void >(a) => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionAsIsES6.ts, 1, 14)) +>a : any var arrow3 = (a, b) => { }; ->arrow3 : (a: any, b: any) => void, Symbol(arrow3, Decl(emitArrowFunctionAsIsES6.ts, 3, 3)) +>arrow3 : (a: any, b: any) => void >(a, b) => { } : (a: any, b: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionAsIsES6.ts, 3, 14)) ->b : any, Symbol(b, Decl(emitArrowFunctionAsIsES6.ts, 3, 16)) +>a : any +>b : any diff --git a/tests/baselines/reference/emitArrowFunctionES6.symbols b/tests/baselines/reference/emitArrowFunctionES6.symbols new file mode 100644 index 0000000000000..06f83f7f6f0b3 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionES6.symbols @@ -0,0 +1,74 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts === +var f1 = () => { } +>f1 : Symbol(f1, Decl(emitArrowFunctionES6.ts, 0, 3)) + +var f2 = (x: string, y: string) => { } +>f2 : Symbol(f2, Decl(emitArrowFunctionES6.ts, 1, 3)) +>x : Symbol(x, Decl(emitArrowFunctionES6.ts, 1, 10)) +>y : Symbol(y, Decl(emitArrowFunctionES6.ts, 1, 20)) + +var f3 = (x: string, y: number, ...rest) => { } +>f3 : Symbol(f3, Decl(emitArrowFunctionES6.ts, 2, 3)) +>x : Symbol(x, Decl(emitArrowFunctionES6.ts, 2, 10)) +>y : Symbol(y, Decl(emitArrowFunctionES6.ts, 2, 20)) +>rest : Symbol(rest, Decl(emitArrowFunctionES6.ts, 2, 31)) + +var f4 = (x: string, y: number, z=10) => { } +>f4 : Symbol(f4, Decl(emitArrowFunctionES6.ts, 3, 3)) +>x : Symbol(x, Decl(emitArrowFunctionES6.ts, 3, 10)) +>y : Symbol(y, Decl(emitArrowFunctionES6.ts, 3, 20)) +>z : Symbol(z, Decl(emitArrowFunctionES6.ts, 3, 31)) + +function foo(func: () => boolean) { } +>foo : Symbol(foo, Decl(emitArrowFunctionES6.ts, 3, 44)) +>func : Symbol(func, Decl(emitArrowFunctionES6.ts, 4, 13)) + +foo(() => true); +>foo : Symbol(foo, Decl(emitArrowFunctionES6.ts, 3, 44)) + +foo(() => { return false; }); +>foo : Symbol(foo, Decl(emitArrowFunctionES6.ts, 3, 44)) + +// Binding patterns in arrow functions +var p1 = ([a]) => { }; +>p1 : Symbol(p1, Decl(emitArrowFunctionES6.ts, 9, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 9, 11)) + +var p2 = ([...a]) => { }; +>p2 : Symbol(p2, Decl(emitArrowFunctionES6.ts, 10, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 10, 11)) + +var p3 = ([, a]) => { }; +>p3 : Symbol(p3, Decl(emitArrowFunctionES6.ts, 11, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 11, 12)) + +var p4 = ([, ...a]) => { }; +>p4 : Symbol(p4, Decl(emitArrowFunctionES6.ts, 12, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 12, 12)) + +var p5 = ([a = 1]) => { }; +>p5 : Symbol(p5, Decl(emitArrowFunctionES6.ts, 13, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 13, 11)) + +var p6 = ({ a }) => { }; +>p6 : Symbol(p6, Decl(emitArrowFunctionES6.ts, 14, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 14, 11)) + +var p7 = ({ a: { b } }) => { }; +>p7 : Symbol(p7, Decl(emitArrowFunctionES6.ts, 15, 3)) +>b : Symbol(b, Decl(emitArrowFunctionES6.ts, 15, 16)) + +var p8 = ({ a = 1 }) => { }; +>p8 : Symbol(p8, Decl(emitArrowFunctionES6.ts, 16, 3)) +>a : Symbol(a, Decl(emitArrowFunctionES6.ts, 16, 11)) + +var p9 = ({ a: { b = 1 } = { b: 1 } }) => { }; +>p9 : Symbol(p9, Decl(emitArrowFunctionES6.ts, 17, 3)) +>b : Symbol(b, Decl(emitArrowFunctionES6.ts, 17, 16)) +>b : Symbol(b, Decl(emitArrowFunctionES6.ts, 17, 28)) + +var p10 = ([{ value, done }]) => { }; +>p10 : Symbol(p10, Decl(emitArrowFunctionES6.ts, 18, 3)) +>value : Symbol(value, Decl(emitArrowFunctionES6.ts, 18, 13)) +>done : Symbol(done, Decl(emitArrowFunctionES6.ts, 18, 20)) + diff --git a/tests/baselines/reference/emitArrowFunctionES6.types b/tests/baselines/reference/emitArrowFunctionES6.types index d71abc8d976c2..e2ad176fd7dcb 100644 --- a/tests/baselines/reference/emitArrowFunctionES6.types +++ b/tests/baselines/reference/emitArrowFunctionES6.types @@ -1,104 +1,104 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionES6.ts === var f1 = () => { } ->f1 : () => void, Symbol(f1, Decl(emitArrowFunctionES6.ts, 0, 3)) +>f1 : () => void >() => { } : () => void var f2 = (x: string, y: string) => { } ->f2 : (x: string, y: string) => void, Symbol(f2, Decl(emitArrowFunctionES6.ts, 1, 3)) +>f2 : (x: string, y: string) => void >(x: string, y: string) => { } : (x: string, y: string) => void ->x : string, Symbol(x, Decl(emitArrowFunctionES6.ts, 1, 10)) ->y : string, Symbol(y, Decl(emitArrowFunctionES6.ts, 1, 20)) +>x : string +>y : string var f3 = (x: string, y: number, ...rest) => { } ->f3 : (x: string, y: number, ...rest: any[]) => void, Symbol(f3, Decl(emitArrowFunctionES6.ts, 2, 3)) +>f3 : (x: string, y: number, ...rest: any[]) => void >(x: string, y: number, ...rest) => { } : (x: string, y: number, ...rest: any[]) => void ->x : string, Symbol(x, Decl(emitArrowFunctionES6.ts, 2, 10)) ->y : number, Symbol(y, Decl(emitArrowFunctionES6.ts, 2, 20)) ->rest : any[], Symbol(rest, Decl(emitArrowFunctionES6.ts, 2, 31)) +>x : string +>y : number +>rest : any[] var f4 = (x: string, y: number, z=10) => { } ->f4 : (x: string, y: number, z?: number) => void, Symbol(f4, Decl(emitArrowFunctionES6.ts, 3, 3)) +>f4 : (x: string, y: number, z?: number) => void >(x: string, y: number, z=10) => { } : (x: string, y: number, z?: number) => void ->x : string, Symbol(x, Decl(emitArrowFunctionES6.ts, 3, 10)) ->y : number, Symbol(y, Decl(emitArrowFunctionES6.ts, 3, 20)) ->z : number, Symbol(z, Decl(emitArrowFunctionES6.ts, 3, 31)) +>x : string +>y : number +>z : number >10 : number function foo(func: () => boolean) { } ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionES6.ts, 3, 44)) ->func : () => boolean, Symbol(func, Decl(emitArrowFunctionES6.ts, 4, 13)) +>foo : (func: () => boolean) => void +>func : () => boolean foo(() => true); >foo(() => true) : void ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionES6.ts, 3, 44)) +>foo : (func: () => boolean) => void >() => true : () => boolean >true : boolean foo(() => { return false; }); >foo(() => { return false; }) : void ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionES6.ts, 3, 44)) +>foo : (func: () => boolean) => void >() => { return false; } : () => boolean >false : boolean // Binding patterns in arrow functions var p1 = ([a]) => { }; ->p1 : ([a]: [any]) => void, Symbol(p1, Decl(emitArrowFunctionES6.ts, 9, 3)) +>p1 : ([a]: [any]) => void >([a]) => { } : ([a]: [any]) => void ->a : any, Symbol(a, Decl(emitArrowFunctionES6.ts, 9, 11)) +>a : any var p2 = ([...a]) => { }; ->p2 : ([...a]: Iterable) => void, Symbol(p2, Decl(emitArrowFunctionES6.ts, 10, 3)) +>p2 : ([...a]: Iterable) => void >([...a]) => { } : ([...a]: Iterable) => void ->a : any[], Symbol(a, Decl(emitArrowFunctionES6.ts, 10, 11)) +>a : any[] var p3 = ([, a]) => { }; ->p3 : ([, a]: [any, any]) => void, Symbol(p3, Decl(emitArrowFunctionES6.ts, 11, 3)) +>p3 : ([, a]: [any, any]) => void >([, a]) => { } : ([, a]: [any, any]) => void > : undefined ->a : any, Symbol(a, Decl(emitArrowFunctionES6.ts, 11, 12)) +>a : any var p4 = ([, ...a]) => { }; ->p4 : ([, ...a]: Iterable) => void, Symbol(p4, Decl(emitArrowFunctionES6.ts, 12, 3)) +>p4 : ([, ...a]: Iterable) => void >([, ...a]) => { } : ([, ...a]: Iterable) => void > : undefined ->a : any[], Symbol(a, Decl(emitArrowFunctionES6.ts, 12, 12)) +>a : any[] var p5 = ([a = 1]) => { }; ->p5 : ([a = 1]: [number]) => void, Symbol(p5, Decl(emitArrowFunctionES6.ts, 13, 3)) +>p5 : ([a = 1]: [number]) => void >([a = 1]) => { } : ([a = 1]: [number]) => void ->a : number, Symbol(a, Decl(emitArrowFunctionES6.ts, 13, 11)) +>a : number >1 : number var p6 = ({ a }) => { }; ->p6 : ({ a }: { a: any; }) => void, Symbol(p6, Decl(emitArrowFunctionES6.ts, 14, 3)) +>p6 : ({ a }: { a: any; }) => void >({ a }) => { } : ({ a }: { a: any; }) => void ->a : any, Symbol(a, Decl(emitArrowFunctionES6.ts, 14, 11)) +>a : any var p7 = ({ a: { b } }) => { }; ->p7 : ({ a: { b } }: { a: { b: any; }; }) => void, Symbol(p7, Decl(emitArrowFunctionES6.ts, 15, 3)) +>p7 : ({ a: { b } }: { a: { b: any; }; }) => void >({ a: { b } }) => { } : ({ a: { b } }: { a: { b: any; }; }) => void >a : any ->b : any, Symbol(b, Decl(emitArrowFunctionES6.ts, 15, 16)) +>b : any var p8 = ({ a = 1 }) => { }; ->p8 : ({ a = 1 }: { a?: number; }) => void, Symbol(p8, Decl(emitArrowFunctionES6.ts, 16, 3)) +>p8 : ({ a = 1 }: { a?: number; }) => void >({ a = 1 }) => { } : ({ a = 1 }: { a?: number; }) => void ->a : number, Symbol(a, Decl(emitArrowFunctionES6.ts, 16, 11)) +>a : number >1 : number var p9 = ({ a: { b = 1 } = { b: 1 } }) => { }; ->p9 : ({ a: { b = 1 } = { b: 1 } }: { a?: { b: number; }; }) => void, Symbol(p9, Decl(emitArrowFunctionES6.ts, 17, 3)) +>p9 : ({ a: { b = 1 } = { b: 1 } }: { a?: { b: number; }; }) => void >({ a: { b = 1 } = { b: 1 } }) => { } : ({ a: { b = 1 } = { b: 1 } }: { a?: { b: number; }; }) => void >a : any ->b : number, Symbol(b, Decl(emitArrowFunctionES6.ts, 17, 16)) +>b : number >1 : number >{ b: 1 } : { b: number; } ->b : number, Symbol(b, Decl(emitArrowFunctionES6.ts, 17, 28)) +>b : number >1 : number var p10 = ([{ value, done }]) => { }; ->p10 : ([{ value, done }]: [{ value: any; done: any; }]) => void, Symbol(p10, Decl(emitArrowFunctionES6.ts, 18, 3)) +>p10 : ([{ value, done }]: [{ value: any; done: any; }]) => void >([{ value, done }]) => { } : ([{ value, done }]: [{ value: any; done: any; }]) => void ->value : any, Symbol(value, Decl(emitArrowFunctionES6.ts, 18, 13)) ->done : any, Symbol(done, Decl(emitArrowFunctionES6.ts, 18, 20)) +>value : any +>done : any diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturing.symbols b/tests/baselines/reference/emitArrowFunctionThisCapturing.symbols new file mode 100644 index 0000000000000..ad62a0df5be92 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionThisCapturing.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts === +var f1 = () => { +>f1 : Symbol(f1, Decl(emitArrowFunctionThisCapturing.ts, 0, 3)) + + this.age = 10 +}; + +var f2 = (x: string) => { +>f2 : Symbol(f2, Decl(emitArrowFunctionThisCapturing.ts, 4, 3)) +>x : Symbol(x, Decl(emitArrowFunctionThisCapturing.ts, 4, 10)) + + this.name = x +>x : Symbol(x, Decl(emitArrowFunctionThisCapturing.ts, 4, 10)) +} + +function foo(func: () => boolean) { } +>foo : Symbol(foo, Decl(emitArrowFunctionThisCapturing.ts, 6, 1)) +>func : Symbol(func, Decl(emitArrowFunctionThisCapturing.ts, 8, 13)) + +foo(() => { +>foo : Symbol(foo, Decl(emitArrowFunctionThisCapturing.ts, 6, 1)) + + this.age = 100; + return true; +}); + diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturing.types b/tests/baselines/reference/emitArrowFunctionThisCapturing.types index 972f23755d1fa..2cfe06579afe0 100644 --- a/tests/baselines/reference/emitArrowFunctionThisCapturing.types +++ b/tests/baselines/reference/emitArrowFunctionThisCapturing.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturing.ts === var f1 = () => { ->f1 : () => void, Symbol(f1, Decl(emitArrowFunctionThisCapturing.ts, 0, 3)) +>f1 : () => void >() => { this.age = 10} : () => void this.age = 10 @@ -13,25 +13,25 @@ var f1 = () => { }; var f2 = (x: string) => { ->f2 : (x: string) => void, Symbol(f2, Decl(emitArrowFunctionThisCapturing.ts, 4, 3)) +>f2 : (x: string) => void >(x: string) => { this.name = x} : (x: string) => void ->x : string, Symbol(x, Decl(emitArrowFunctionThisCapturing.ts, 4, 10)) +>x : string this.name = x >this.name = x : string >this.name : any >this : any >name : any ->x : string, Symbol(x, Decl(emitArrowFunctionThisCapturing.ts, 4, 10)) +>x : string } function foo(func: () => boolean) { } ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionThisCapturing.ts, 6, 1)) ->func : () => boolean, Symbol(func, Decl(emitArrowFunctionThisCapturing.ts, 8, 13)) +>foo : (func: () => boolean) => void +>func : () => boolean foo(() => { >foo(() => { this.age = 100; return true;}) : void ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionThisCapturing.ts, 6, 1)) +>foo : (func: () => boolean) => void >() => { this.age = 100; return true;} : () => boolean this.age = 100; diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.symbols b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.symbols new file mode 100644 index 0000000000000..0e8855dd680c5 --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts === +var f1 = () => { +>f1 : Symbol(f1, Decl(emitArrowFunctionThisCapturingES6.ts, 0, 3)) + + this.age = 10 +}; + +var f2 = (x: string) => { +>f2 : Symbol(f2, Decl(emitArrowFunctionThisCapturingES6.ts, 4, 3)) +>x : Symbol(x, Decl(emitArrowFunctionThisCapturingES6.ts, 4, 10)) + + this.name = x +>x : Symbol(x, Decl(emitArrowFunctionThisCapturingES6.ts, 4, 10)) +} + +function foo(func: () => boolean){ } +>foo : Symbol(foo, Decl(emitArrowFunctionThisCapturingES6.ts, 6, 1)) +>func : Symbol(func, Decl(emitArrowFunctionThisCapturingES6.ts, 8, 13)) + +foo(() => { +>foo : Symbol(foo, Decl(emitArrowFunctionThisCapturingES6.ts, 6, 1)) + + this.age = 100; + return true; +}); + diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types index c6c5624719bae..cc5405cebb4e1 100644 --- a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types +++ b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionThisCapturingES6.ts === var f1 = () => { ->f1 : () => void, Symbol(f1, Decl(emitArrowFunctionThisCapturingES6.ts, 0, 3)) +>f1 : () => void >() => { this.age = 10} : () => void this.age = 10 @@ -13,25 +13,25 @@ var f1 = () => { }; var f2 = (x: string) => { ->f2 : (x: string) => void, Symbol(f2, Decl(emitArrowFunctionThisCapturingES6.ts, 4, 3)) +>f2 : (x: string) => void >(x: string) => { this.name = x} : (x: string) => void ->x : string, Symbol(x, Decl(emitArrowFunctionThisCapturingES6.ts, 4, 10)) +>x : string this.name = x >this.name = x : string >this.name : any >this : any >name : any ->x : string, Symbol(x, Decl(emitArrowFunctionThisCapturingES6.ts, 4, 10)) +>x : string } function foo(func: () => boolean){ } ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionThisCapturingES6.ts, 6, 1)) ->func : () => boolean, Symbol(func, Decl(emitArrowFunctionThisCapturingES6.ts, 8, 13)) +>foo : (func: () => boolean) => void +>func : () => boolean foo(() => { >foo(() => { this.age = 100; return true;}) : void ->foo : (func: () => boolean) => void, Symbol(foo, Decl(emitArrowFunctionThisCapturingES6.ts, 6, 1)) +>foo : (func: () => boolean) => void >() => { this.age = 100; return true;} : () => boolean this.age = 100; diff --git a/tests/baselines/reference/emitArrowFunctionsAsIs.symbols b/tests/baselines/reference/emitArrowFunctionsAsIs.symbols new file mode 100644 index 0000000000000..73c68bd194d6f --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionsAsIs.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts === +var arrow1 = a => { }; +>arrow1 : Symbol(arrow1, Decl(emitArrowFunctionsAsIs.ts, 0, 3)) +>a : Symbol(a, Decl(emitArrowFunctionsAsIs.ts, 0, 12)) + +var arrow2 = (a) => { }; +>arrow2 : Symbol(arrow2, Decl(emitArrowFunctionsAsIs.ts, 1, 3)) +>a : Symbol(a, Decl(emitArrowFunctionsAsIs.ts, 1, 14)) + +var arrow3 = (a, b) => { }; +>arrow3 : Symbol(arrow3, Decl(emitArrowFunctionsAsIs.ts, 3, 3)) +>a : Symbol(a, Decl(emitArrowFunctionsAsIs.ts, 3, 14)) +>b : Symbol(b, Decl(emitArrowFunctionsAsIs.ts, 3, 16)) + diff --git a/tests/baselines/reference/emitArrowFunctionsAsIs.types b/tests/baselines/reference/emitArrowFunctionsAsIs.types index 0771308a005b4..36dae7e9c5a4b 100644 --- a/tests/baselines/reference/emitArrowFunctionsAsIs.types +++ b/tests/baselines/reference/emitArrowFunctionsAsIs.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIs.ts === var arrow1 = a => { }; ->arrow1 : (a: any) => void, Symbol(arrow1, Decl(emitArrowFunctionsAsIs.ts, 0, 3)) +>arrow1 : (a: any) => void >a => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionsAsIs.ts, 0, 12)) +>a : any var arrow2 = (a) => { }; ->arrow2 : (a: any) => void, Symbol(arrow2, Decl(emitArrowFunctionsAsIs.ts, 1, 3)) +>arrow2 : (a: any) => void >(a) => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionsAsIs.ts, 1, 14)) +>a : any var arrow3 = (a, b) => { }; ->arrow3 : (a: any, b: any) => void, Symbol(arrow3, Decl(emitArrowFunctionsAsIs.ts, 3, 3)) +>arrow3 : (a: any, b: any) => void >(a, b) => { } : (a: any, b: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionsAsIs.ts, 3, 14)) ->b : any, Symbol(b, Decl(emitArrowFunctionsAsIs.ts, 3, 16)) +>a : any +>b : any diff --git a/tests/baselines/reference/emitArrowFunctionsAsIsES6.symbols b/tests/baselines/reference/emitArrowFunctionsAsIsES6.symbols new file mode 100644 index 0000000000000..73f4df744e86b --- /dev/null +++ b/tests/baselines/reference/emitArrowFunctionsAsIsES6.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts === +var arrow1 = a => { }; +>arrow1 : Symbol(arrow1, Decl(emitArrowFunctionsAsIsES6.ts, 0, 3)) +>a : Symbol(a, Decl(emitArrowFunctionsAsIsES6.ts, 0, 12)) + +var arrow2 = (a) => { }; +>arrow2 : Symbol(arrow2, Decl(emitArrowFunctionsAsIsES6.ts, 1, 3)) +>a : Symbol(a, Decl(emitArrowFunctionsAsIsES6.ts, 1, 14)) + +var arrow3 = (a, b) => { }; +>arrow3 : Symbol(arrow3, Decl(emitArrowFunctionsAsIsES6.ts, 3, 3)) +>a : Symbol(a, Decl(emitArrowFunctionsAsIsES6.ts, 3, 14)) +>b : Symbol(b, Decl(emitArrowFunctionsAsIsES6.ts, 3, 16)) + diff --git a/tests/baselines/reference/emitArrowFunctionsAsIsES6.types b/tests/baselines/reference/emitArrowFunctionsAsIsES6.types index 96ce709da56f5..4073355d259f0 100644 --- a/tests/baselines/reference/emitArrowFunctionsAsIsES6.types +++ b/tests/baselines/reference/emitArrowFunctionsAsIsES6.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/arrowFunction/emitArrowFunctionsAsIsES6.ts === var arrow1 = a => { }; ->arrow1 : (a: any) => void, Symbol(arrow1, Decl(emitArrowFunctionsAsIsES6.ts, 0, 3)) +>arrow1 : (a: any) => void >a => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionsAsIsES6.ts, 0, 12)) +>a : any var arrow2 = (a) => { }; ->arrow2 : (a: any) => void, Symbol(arrow2, Decl(emitArrowFunctionsAsIsES6.ts, 1, 3)) +>arrow2 : (a: any) => void >(a) => { } : (a: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionsAsIsES6.ts, 1, 14)) +>a : any var arrow3 = (a, b) => { }; ->arrow3 : (a: any, b: any) => void, Symbol(arrow3, Decl(emitArrowFunctionsAsIsES6.ts, 3, 3)) +>arrow3 : (a: any, b: any) => void >(a, b) => { } : (a: any, b: any) => void ->a : any, Symbol(a, Decl(emitArrowFunctionsAsIsES6.ts, 3, 14)) ->b : any, Symbol(b, Decl(emitArrowFunctionsAsIsES6.ts, 3, 16)) +>a : any +>b : any diff --git a/tests/baselines/reference/emitBOM.symbols b/tests/baselines/reference/emitBOM.symbols new file mode 100644 index 0000000000000..85f495580d7e6 --- /dev/null +++ b/tests/baselines/reference/emitBOM.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/emitBOM.ts === + +// JS and d.ts output should have a BOM but not the sourcemap +var x; +>x : Symbol(x, Decl(emitBOM.ts, 2, 3)) + diff --git a/tests/baselines/reference/emitBOM.types b/tests/baselines/reference/emitBOM.types index 7482d6529ca5d..b38fd19c8f4af 100644 --- a/tests/baselines/reference/emitBOM.types +++ b/tests/baselines/reference/emitBOM.types @@ -2,5 +2,5 @@ // JS and d.ts output should have a BOM but not the sourcemap var x; ->x : any, Symbol(x, Decl(emitBOM.ts, 2, 3)) +>x : any diff --git a/tests/baselines/reference/emitClassDeclarationOverloadInES6.symbols b/tests/baselines/reference/emitClassDeclarationOverloadInES6.symbols new file mode 100644 index 0000000000000..8a3b157d546e2 --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationOverloadInES6.symbols @@ -0,0 +1,22 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationOverloadInES6.ts === +class C { +>C : Symbol(C, Decl(emitClassDeclarationOverloadInES6.ts, 0, 0)) + + constructor(y: any) +>y : Symbol(y, Decl(emitClassDeclarationOverloadInES6.ts, 1, 16)) + + constructor(x: number) { +>x : Symbol(x, Decl(emitClassDeclarationOverloadInES6.ts, 2, 16)) + } +} + +class D { +>D : Symbol(D, Decl(emitClassDeclarationOverloadInES6.ts, 4, 1)) + + constructor(y: any) +>y : Symbol(y, Decl(emitClassDeclarationOverloadInES6.ts, 7, 16)) + + constructor(x: number, z="hello") {} +>x : Symbol(x, Decl(emitClassDeclarationOverloadInES6.ts, 8, 16)) +>z : Symbol(z, Decl(emitClassDeclarationOverloadInES6.ts, 8, 26)) +} diff --git a/tests/baselines/reference/emitClassDeclarationOverloadInES6.types b/tests/baselines/reference/emitClassDeclarationOverloadInES6.types index bb91c2bdf9421..94cc2c88ddc31 100644 --- a/tests/baselines/reference/emitClassDeclarationOverloadInES6.types +++ b/tests/baselines/reference/emitClassDeclarationOverloadInES6.types @@ -1,23 +1,23 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationOverloadInES6.ts === class C { ->C : C, Symbol(C, Decl(emitClassDeclarationOverloadInES6.ts, 0, 0)) +>C : C constructor(y: any) ->y : any, Symbol(y, Decl(emitClassDeclarationOverloadInES6.ts, 1, 16)) +>y : any constructor(x: number) { ->x : number, Symbol(x, Decl(emitClassDeclarationOverloadInES6.ts, 2, 16)) +>x : number } } class D { ->D : D, Symbol(D, Decl(emitClassDeclarationOverloadInES6.ts, 4, 1)) +>D : D constructor(y: any) ->y : any, Symbol(y, Decl(emitClassDeclarationOverloadInES6.ts, 7, 16)) +>y : any constructor(x: number, z="hello") {} ->x : number, Symbol(x, Decl(emitClassDeclarationOverloadInES6.ts, 8, 16)) ->z : string, Symbol(z, Decl(emitClassDeclarationOverloadInES6.ts, 8, 26)) +>x : number +>z : string >"hello" : string } diff --git a/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.symbols new file mode 100644 index 0000000000000..8186b029471b5 --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.symbols @@ -0,0 +1,58 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithConstructorInES6.ts === +class A { +>A : Symbol(A, Decl(emitClassDeclarationWithConstructorInES6.ts, 0, 0)) + + y: number; +>y : Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 0, 9)) + + constructor(x: number) { +>x : Symbol(x, Decl(emitClassDeclarationWithConstructorInES6.ts, 2, 16)) + } + foo(a: any); +>foo : Symbol(foo, Decl(emitClassDeclarationWithConstructorInES6.ts, 3, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 4, 16)) +>a : Symbol(a, Decl(emitClassDeclarationWithConstructorInES6.ts, 4, 8)) + + foo() { } +>foo : Symbol(foo, Decl(emitClassDeclarationWithConstructorInES6.ts, 3, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 4, 16)) +} + +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithConstructorInES6.ts, 6, 1)) + + y: number; +>y : Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 8, 9)) + + x: string = "hello"; +>x : Symbol(x, Decl(emitClassDeclarationWithConstructorInES6.ts, 9, 14)) + + _bar: string; +>_bar : Symbol(_bar, Decl(emitClassDeclarationWithConstructorInES6.ts, 10, 24)) + + constructor(x: number, z = "hello", ...args) { +>x : Symbol(x, Decl(emitClassDeclarationWithConstructorInES6.ts, 13, 16)) +>z : Symbol(z, Decl(emitClassDeclarationWithConstructorInES6.ts, 13, 26)) +>args : Symbol(args, Decl(emitClassDeclarationWithConstructorInES6.ts, 13, 39)) + + this.y = 10; +>this.y : Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 8, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithConstructorInES6.ts, 6, 1)) +>y : Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 8, 9)) + } + baz(...args): string; +>baz : Symbol(baz, Decl(emitClassDeclarationWithConstructorInES6.ts, 15, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 16, 25)) +>args : Symbol(args, Decl(emitClassDeclarationWithConstructorInES6.ts, 16, 8)) + + baz(z: string, v: number): string { +>baz : Symbol(baz, Decl(emitClassDeclarationWithConstructorInES6.ts, 15, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 16, 25)) +>z : Symbol(z, Decl(emitClassDeclarationWithConstructorInES6.ts, 17, 8)) +>v : Symbol(v, Decl(emitClassDeclarationWithConstructorInES6.ts, 17, 18)) + + return this._bar; +>this._bar : Symbol(_bar, Decl(emitClassDeclarationWithConstructorInES6.ts, 10, 24)) +>this : Symbol(B, Decl(emitClassDeclarationWithConstructorInES6.ts, 6, 1)) +>_bar : Symbol(_bar, Decl(emitClassDeclarationWithConstructorInES6.ts, 10, 24)) + } +} + + + diff --git a/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.types b/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.types index cb3d3cff57916..ecb48cb304791 100644 --- a/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithConstructorInES6.types @@ -1,60 +1,60 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithConstructorInES6.ts === class A { ->A : A, Symbol(A, Decl(emitClassDeclarationWithConstructorInES6.ts, 0, 0)) +>A : A y: number; ->y : number, Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 0, 9)) +>y : number constructor(x: number) { ->x : number, Symbol(x, Decl(emitClassDeclarationWithConstructorInES6.ts, 2, 16)) +>x : number } foo(a: any); ->foo : (a: any) => any, Symbol(foo, Decl(emitClassDeclarationWithConstructorInES6.ts, 3, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 4, 16)) ->a : any, Symbol(a, Decl(emitClassDeclarationWithConstructorInES6.ts, 4, 8)) +>foo : (a: any) => any +>a : any foo() { } ->foo : (a: any) => any, Symbol(foo, Decl(emitClassDeclarationWithConstructorInES6.ts, 3, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 4, 16)) +>foo : (a: any) => any } class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithConstructorInES6.ts, 6, 1)) +>B : B y: number; ->y : number, Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 8, 9)) +>y : number x: string = "hello"; ->x : string, Symbol(x, Decl(emitClassDeclarationWithConstructorInES6.ts, 9, 14)) +>x : string >"hello" : string _bar: string; ->_bar : string, Symbol(_bar, Decl(emitClassDeclarationWithConstructorInES6.ts, 10, 24)) +>_bar : string constructor(x: number, z = "hello", ...args) { ->x : number, Symbol(x, Decl(emitClassDeclarationWithConstructorInES6.ts, 13, 16)) ->z : string, Symbol(z, Decl(emitClassDeclarationWithConstructorInES6.ts, 13, 26)) +>x : number +>z : string >"hello" : string ->args : any[], Symbol(args, Decl(emitClassDeclarationWithConstructorInES6.ts, 13, 39)) +>args : any[] this.y = 10; >this.y = 10 : number ->this.y : number, Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 8, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithConstructorInES6.ts, 6, 1)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithConstructorInES6.ts, 8, 9)) +>this.y : number +>this : B +>y : number >10 : number } baz(...args): string; ->baz : (...args: any[]) => string, Symbol(baz, Decl(emitClassDeclarationWithConstructorInES6.ts, 15, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 16, 25)) ->args : any[], Symbol(args, Decl(emitClassDeclarationWithConstructorInES6.ts, 16, 8)) +>baz : (...args: any[]) => string +>args : any[] baz(z: string, v: number): string { ->baz : (...args: any[]) => string, Symbol(baz, Decl(emitClassDeclarationWithConstructorInES6.ts, 15, 5), Decl(emitClassDeclarationWithConstructorInES6.ts, 16, 25)) ->z : string, Symbol(z, Decl(emitClassDeclarationWithConstructorInES6.ts, 17, 8)) ->v : number, Symbol(v, Decl(emitClassDeclarationWithConstructorInES6.ts, 17, 18)) +>baz : (...args: any[]) => string +>z : string +>v : number return this._bar; ->this._bar : string, Symbol(_bar, Decl(emitClassDeclarationWithConstructorInES6.ts, 10, 24)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithConstructorInES6.ts, 6, 1)) ->_bar : string, Symbol(_bar, Decl(emitClassDeclarationWithConstructorInES6.ts, 10, 24)) +>this._bar : string +>this : B +>_bar : string } } diff --git a/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.symbols new file mode 100644 index 0000000000000..f93b3bafcd34c --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts === +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) +>T : Symbol(T, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 8)) + + constructor(a: T) { } +>a : Symbol(a, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 1, 16)) +>T : Symbol(T, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 8)) +} +class C extends B { } +>C : Symbol(C, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 2, 1)) +>B : Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) + +class D extends B { +>D : Symbol(D, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 3, 29)) +>B : Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) + + constructor(a: any) +>a : Symbol(a, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 5, 16)) + + constructor(b: number) { +>b : Symbol(b, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 6, 16)) + + super(b); +>super : Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) +>b : Symbol(b, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 6, 16)) + } +} diff --git a/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.types b/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.types index 969fa6e4c6581..0f546fa7b8620 100644 --- a/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithExtensionAndTypeArgumentInES6.types @@ -1,29 +1,29 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts === class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 8)) +>B : B +>T : T constructor(a: T) { } ->a : T, Symbol(a, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 1, 16)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 8)) +>a : T +>T : T } class C extends B { } ->C : C, Symbol(C, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 2, 1)) ->B : B, Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) +>C : C +>B : B class D extends B { ->D : D, Symbol(D, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 3, 29)) ->B : B, Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) +>D : D +>B : B constructor(a: any) ->a : any, Symbol(a, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 5, 16)) +>a : any constructor(b: number) { ->b : number, Symbol(b, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 6, 16)) +>b : number super(b); >super(b) : void ->super : typeof B, Symbol(B, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 0, 0)) ->b : number, Symbol(b, Decl(emitClassDeclarationWithExtensionAndTypeArgumentInES6.ts, 6, 16)) +>super : typeof B +>b : number } } diff --git a/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.symbols new file mode 100644 index 0000000000000..586a924a26041 --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.symbols @@ -0,0 +1,57 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithExtensionInES6.ts === +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 0)) + + baz(a: string, y = 10) { } +>baz : Symbol(baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 9)) +>a : Symbol(a, Decl(emitClassDeclarationWithExtensionInES6.ts, 1, 8)) +>y : Symbol(y, Decl(emitClassDeclarationWithExtensionInES6.ts, 1, 18)) +} +class C extends B { +>C : Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) +>B : Symbol(B, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 0)) + + foo() { } +>foo : Symbol(foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 3, 19)) + + baz(a: string, y:number) { +>baz : Symbol(baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 4, 13)) +>a : Symbol(a, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 8)) +>y : Symbol(y, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 18)) + + super.baz(a, y); +>super.baz : Symbol(B.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 9)) +>super : Symbol(B, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 0)) +>baz : Symbol(B.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 9)) +>a : Symbol(a, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 8)) +>y : Symbol(y, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 18)) + } +} +class D extends C { +>D : Symbol(D, Decl(emitClassDeclarationWithExtensionInES6.ts, 8, 1)) +>C : Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) + + constructor() { + super(); +>super : Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) + } + + foo() { +>foo : Symbol(foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 12, 5)) + + super.foo(); +>super.foo : Symbol(C.foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 3, 19)) +>super : Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) +>foo : Symbol(C.foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 3, 19)) + } + + baz() { +>baz : Symbol(baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 16, 5)) + + super.baz("hello", 10); +>super.baz : Symbol(C.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 4, 13)) +>super : Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) +>baz : Symbol(C.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 4, 13)) + } +} + diff --git a/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.types b/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.types index 29f7fb99250a3..7267af2fde057 100644 --- a/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithExtensionInES6.types @@ -1,62 +1,62 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithExtensionInES6.ts === class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 0)) +>B : B baz(a: string, y = 10) { } ->baz : (a: string, y?: number) => void, Symbol(baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 9)) ->a : string, Symbol(a, Decl(emitClassDeclarationWithExtensionInES6.ts, 1, 8)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithExtensionInES6.ts, 1, 18)) +>baz : (a: string, y?: number) => void +>a : string +>y : number >10 : number } class C extends B { ->C : C, Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) ->B : B, Symbol(B, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 0)) +>C : C +>B : B foo() { } ->foo : () => void, Symbol(foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 3, 19)) +>foo : () => void baz(a: string, y:number) { ->baz : (a: string, y: number) => void, Symbol(baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 4, 13)) ->a : string, Symbol(a, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 8)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 18)) +>baz : (a: string, y: number) => void +>a : string +>y : number super.baz(a, y); >super.baz(a, y) : void ->super.baz : (a: string, y?: number) => void, Symbol(B.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 9)) ->super : B, Symbol(B, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 0)) ->baz : (a: string, y?: number) => void, Symbol(B.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 0, 9)) ->a : string, Symbol(a, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 8)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithExtensionInES6.ts, 5, 18)) +>super.baz : (a: string, y?: number) => void +>super : B +>baz : (a: string, y?: number) => void +>a : string +>y : number } } class D extends C { ->D : D, Symbol(D, Decl(emitClassDeclarationWithExtensionInES6.ts, 8, 1)) ->C : C, Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) +>D : D +>C : C constructor() { super(); >super() : void ->super : typeof C, Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) +>super : typeof C } foo() { ->foo : () => void, Symbol(foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 12, 5)) +>foo : () => void super.foo(); >super.foo() : void ->super.foo : () => void, Symbol(C.foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 3, 19)) ->super : C, Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) ->foo : () => void, Symbol(C.foo, Decl(emitClassDeclarationWithExtensionInES6.ts, 3, 19)) +>super.foo : () => void +>super : C +>foo : () => void } baz() { ->baz : () => void, Symbol(baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 16, 5)) +>baz : () => void super.baz("hello", 10); >super.baz("hello", 10) : void ->super.baz : (a: string, y: number) => void, Symbol(C.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 4, 13)) ->super : C, Symbol(C, Decl(emitClassDeclarationWithExtensionInES6.ts, 2, 1)) ->baz : (a: string, y: number) => void, Symbol(C.baz, Decl(emitClassDeclarationWithExtensionInES6.ts, 4, 13)) +>super.baz : (a: string, y: number) => void +>super : C +>baz : (a: string, y: number) => void >"hello" : string >10 : number } diff --git a/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.symbols new file mode 100644 index 0000000000000..2d249348f9bad --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.symbols @@ -0,0 +1,48 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithGetterSetterInES6.ts === +class C { +>C : Symbol(C, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 0)) + + _name: string; +>_name : Symbol(_name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 9)) + + get name(): string { +>name : Symbol(name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 1, 18)) + + return this._name; +>this._name : Symbol(_name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 9)) +>this : Symbol(C, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 0)) +>_name : Symbol(_name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 9)) + } + static get name2(): string { +>name2 : Symbol(C.name2, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 4, 5)) + + return "BYE"; + } + static get ["computedname"]() { + return ""; + } + get ["computedname"]() { + return ""; + } + get ["computedname"]() { + return ""; + } + + set ["computedname"](x: any) { +>x : Symbol(x, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 18, 25)) + } + set ["computedname"](y: string) { +>y : Symbol(y, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 20, 25)) + } + + set foo(a: string) { } +>foo : Symbol(foo, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 21, 5)) +>a : Symbol(a, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 23, 12)) + + static set bar(b: number) { } +>bar : Symbol(C.bar, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 23, 26)) +>b : Symbol(b, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 24, 19)) + + static set ["computedname"](b: string) { } +>b : Symbol(b, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 25, 32)) +} diff --git a/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.types b/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.types index 7be87519ab9ad..b26d6b3dd8132 100644 --- a/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithGetterSetterInES6.types @@ -1,20 +1,20 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithGetterSetterInES6.ts === class C { ->C : C, Symbol(C, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 0)) +>C : C _name: string; ->_name : string, Symbol(_name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 9)) +>_name : string get name(): string { ->name : string, Symbol(name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 1, 18)) +>name : string return this._name; ->this._name : string, Symbol(_name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 9)) ->this : C, Symbol(C, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 0)) ->_name : string, Symbol(_name, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 0, 9)) +>this._name : string +>this : C +>_name : string } static get name2(): string { ->name2 : string, Symbol(C.name2, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 4, 5)) +>name2 : string return "BYE"; >"BYE" : string @@ -40,22 +40,22 @@ class C { set ["computedname"](x: any) { >"computedname" : string ->x : any, Symbol(x, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 18, 25)) +>x : any } set ["computedname"](y: string) { >"computedname" : string ->y : string, Symbol(y, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 20, 25)) +>y : string } set foo(a: string) { } ->foo : string, Symbol(foo, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 21, 5)) ->a : string, Symbol(a, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 23, 12)) +>foo : string +>a : string static set bar(b: number) { } ->bar : number, Symbol(C.bar, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 23, 26)) ->b : number, Symbol(b, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 24, 19)) +>bar : number +>b : number static set ["computedname"](b: string) { } >"computedname" : string ->b : string, Symbol(b, Decl(emitClassDeclarationWithGetterSetterInES6.ts, 25, 32)) +>b : string } diff --git a/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.symbols new file mode 100644 index 0000000000000..fdceb9831c1df --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithLiteralPropertyNameInES6.ts === +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithLiteralPropertyNameInES6.ts, 0, 0)) + + "hello" = 10; + 0b110 = "world"; + 0o23534 = "WORLD"; + 20 = "twenty"; + "foo"() { } + 0b1110() {} + 11() { } + interface() { } +>interface : Symbol(interface, Decl(emitClassDeclarationWithLiteralPropertyNameInES6.ts, 7, 12)) + + static "hi" = 10000; + static 22 = "twenty-two"; + static 0b101 = "binary"; + static 0o3235 = "octal"; +} diff --git a/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.types b/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.types index 3463ee198f367..d4bc18539ddcf 100644 --- a/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithLiteralPropertyNameInES6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithLiteralPropertyNameInES6.ts === class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithLiteralPropertyNameInES6.ts, 0, 0)) +>B : B "hello" = 10; >10 : number @@ -18,7 +18,7 @@ class B { 0b1110() {} 11() { } interface() { } ->interface : () => void, Symbol(interface, Decl(emitClassDeclarationWithLiteralPropertyNameInES6.ts, 7, 12)) +>interface : () => void static "hi" = 10000; >10000 : number diff --git a/tests/baselines/reference/emitClassDeclarationWithMethodInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithMethodInES6.symbols new file mode 100644 index 0000000000000..b7a4dbbf341a1 --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithMethodInES6.symbols @@ -0,0 +1,56 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithMethodInES6.ts === +class D { +>D : Symbol(D, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 0)) + + _bar: string; +>_bar : Symbol(_bar, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 9)) + + foo() { } +>foo : Symbol(foo, Decl(emitClassDeclarationWithMethodInES6.ts, 1, 17)) + + ["computedName"]() { } + ["computedName"](a: string) { } +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 4, 21)) + + ["computedName"](a: string): number { return 1; } +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 5, 21)) + + bar(): string { +>bar : Symbol(bar, Decl(emitClassDeclarationWithMethodInES6.ts, 5, 53)) + + return this._bar; +>this._bar : Symbol(_bar, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 9)) +>this : Symbol(D, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 0)) +>_bar : Symbol(_bar, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 9)) + } + baz(a: any, x: string): string { +>baz : Symbol(baz, Decl(emitClassDeclarationWithMethodInES6.ts, 8, 5)) +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 9, 8)) +>x : Symbol(x, Decl(emitClassDeclarationWithMethodInES6.ts, 9, 15)) + + return "HELLO"; + } + static ["computedname"]() { } + static ["computedname"](a: string) { } +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 13, 28)) + + static ["computedname"](a: string): boolean { return true; } +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 14, 28)) + + static staticMethod() { +>staticMethod : Symbol(D.staticMethod, Decl(emitClassDeclarationWithMethodInES6.ts, 14, 64)) + + var x = 1 + 2; +>x : Symbol(x, Decl(emitClassDeclarationWithMethodInES6.ts, 16, 11)) + + return x +>x : Symbol(x, Decl(emitClassDeclarationWithMethodInES6.ts, 16, 11)) + } + static foo(a: string) { } +>foo : Symbol(D.foo, Decl(emitClassDeclarationWithMethodInES6.ts, 18, 5)) +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 19, 15)) + + static bar(a: string): number { return 1; } +>bar : Symbol(D.bar, Decl(emitClassDeclarationWithMethodInES6.ts, 19, 29)) +>a : Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 20, 15)) +} diff --git a/tests/baselines/reference/emitClassDeclarationWithMethodInES6.types b/tests/baselines/reference/emitClassDeclarationWithMethodInES6.types index 052636315d2dc..d3e75c9235c4f 100644 --- a/tests/baselines/reference/emitClassDeclarationWithMethodInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithMethodInES6.types @@ -1,37 +1,37 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithMethodInES6.ts === class D { ->D : D, Symbol(D, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 0)) +>D : D _bar: string; ->_bar : string, Symbol(_bar, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 9)) +>_bar : string foo() { } ->foo : () => void, Symbol(foo, Decl(emitClassDeclarationWithMethodInES6.ts, 1, 17)) +>foo : () => void ["computedName"]() { } >"computedName" : string ["computedName"](a: string) { } >"computedName" : string ->a : string, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 4, 21)) +>a : string ["computedName"](a: string): number { return 1; } >"computedName" : string ->a : string, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 5, 21)) +>a : string >1 : number bar(): string { ->bar : () => string, Symbol(bar, Decl(emitClassDeclarationWithMethodInES6.ts, 5, 53)) +>bar : () => string return this._bar; ->this._bar : string, Symbol(_bar, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 9)) ->this : D, Symbol(D, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 0)) ->_bar : string, Symbol(_bar, Decl(emitClassDeclarationWithMethodInES6.ts, 0, 9)) +>this._bar : string +>this : D +>_bar : string } baz(a: any, x: string): string { ->baz : (a: any, x: string) => string, Symbol(baz, Decl(emitClassDeclarationWithMethodInES6.ts, 8, 5)) ->a : any, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 9, 8)) ->x : string, Symbol(x, Decl(emitClassDeclarationWithMethodInES6.ts, 9, 15)) +>baz : (a: any, x: string) => string +>a : any +>x : string return "HELLO"; >"HELLO" : string @@ -41,31 +41,31 @@ class D { static ["computedname"](a: string) { } >"computedname" : string ->a : string, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 13, 28)) +>a : string static ["computedname"](a: string): boolean { return true; } >"computedname" : string ->a : string, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 14, 28)) +>a : string >true : boolean static staticMethod() { ->staticMethod : () => number, Symbol(D.staticMethod, Decl(emitClassDeclarationWithMethodInES6.ts, 14, 64)) +>staticMethod : () => number var x = 1 + 2; ->x : number, Symbol(x, Decl(emitClassDeclarationWithMethodInES6.ts, 16, 11)) +>x : number >1 + 2 : number >1 : number >2 : number return x ->x : number, Symbol(x, Decl(emitClassDeclarationWithMethodInES6.ts, 16, 11)) +>x : number } static foo(a: string) { } ->foo : (a: string) => void, Symbol(D.foo, Decl(emitClassDeclarationWithMethodInES6.ts, 18, 5)) ->a : string, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 19, 15)) +>foo : (a: string) => void +>a : string static bar(a: string): number { return 1; } ->bar : (a: string) => number, Symbol(D.bar, Decl(emitClassDeclarationWithMethodInES6.ts, 19, 29)) ->a : string, Symbol(a, Decl(emitClassDeclarationWithMethodInES6.ts, 20, 15)) +>bar : (a: string) => number +>a : string >1 : number } diff --git a/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.symbols new file mode 100644 index 0000000000000..67878625bdaae --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.symbols @@ -0,0 +1,53 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAssignmentInES6.ts === +class C { +>C : Symbol(C, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 0, 0)) + + x: string = "Hello world"; +>x : Symbol(x, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 0, 9)) +} + +class D { +>D : Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) + + x: string = "Hello world"; +>x : Symbol(x, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 4, 9)) + + y: number; +>y : Symbol(y, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 5, 30)) + + constructor() { + this.y = 10; +>this.y : Symbol(y, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 5, 30)) +>this : Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) +>y : Symbol(y, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 5, 30)) + } +} + +class E extends D{ +>E : Symbol(E, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 10, 1)) +>D : Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) + + z: boolean = true; +>z : Symbol(z, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 12, 18)) +} + +class F extends D{ +>F : Symbol(F, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 14, 1)) +>D : Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) + + z: boolean = true; +>z : Symbol(z, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 16, 18)) + + j: string; +>j : Symbol(j, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 17, 22)) + + constructor() { + super(); +>super : Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) + + this.j = "HI"; +>this.j : Symbol(j, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 17, 22)) +>this : Symbol(F, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 14, 1)) +>j : Symbol(j, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 17, 22)) + } +} diff --git a/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.types b/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.types index 6d41ce814389c..f3504d655edbf 100644 --- a/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithPropertyAssignmentInES6.types @@ -1,62 +1,62 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithPropertyAssignmentInES6.ts === class C { ->C : C, Symbol(C, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 0, 0)) +>C : C x: string = "Hello world"; ->x : string, Symbol(x, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 0, 9)) +>x : string >"Hello world" : string } class D { ->D : D, Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) +>D : D x: string = "Hello world"; ->x : string, Symbol(x, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 4, 9)) +>x : string >"Hello world" : string y: number; ->y : number, Symbol(y, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 5, 30)) +>y : number constructor() { this.y = 10; >this.y = 10 : number ->this.y : number, Symbol(y, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 5, 30)) ->this : D, Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 5, 30)) +>this.y : number +>this : D +>y : number >10 : number } } class E extends D{ ->E : E, Symbol(E, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 10, 1)) ->D : D, Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) +>E : E +>D : D z: boolean = true; ->z : boolean, Symbol(z, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 12, 18)) +>z : boolean >true : boolean } class F extends D{ ->F : F, Symbol(F, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 14, 1)) ->D : D, Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) +>F : F +>D : D z: boolean = true; ->z : boolean, Symbol(z, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 16, 18)) +>z : boolean >true : boolean j: string; ->j : string, Symbol(j, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 17, 22)) +>j : string constructor() { super(); >super() : void ->super : typeof D, Symbol(D, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 2, 1)) +>super : typeof D this.j = "HI"; >this.j = "HI" : string ->this.j : string, Symbol(j, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 17, 22)) ->this : F, Symbol(F, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 14, 1)) ->j : string, Symbol(j, Decl(emitClassDeclarationWithPropertyAssignmentInES6.ts, 17, 22)) +>this.j : string +>this : F +>j : string >"HI" : string } } diff --git a/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.symbols new file mode 100644 index 0000000000000..1b64646f788a3 --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithStaticPropertyAssignmentInES6.ts === +class C { +>C : Symbol(C, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 0, 0)) + + static z: string = "Foo"; +>z : Symbol(C.z, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 0, 9)) +} + +class D { +>D : Symbol(D, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 2, 1)) + + x = 20000; +>x : Symbol(x, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 4, 9)) + + static b = true; +>b : Symbol(D.b, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 5, 14)) +} + diff --git a/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.types b/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.types index a97b76dfbe110..58d328e3e5d76 100644 --- a/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithStaticPropertyAssignmentInES6.types @@ -1,21 +1,21 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithStaticPropertyAssignmentInES6.ts === class C { ->C : C, Symbol(C, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 0, 0)) +>C : C static z: string = "Foo"; ->z : string, Symbol(C.z, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 0, 9)) +>z : string >"Foo" : string } class D { ->D : D, Symbol(D, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 2, 1)) +>D : D x = 20000; ->x : number, Symbol(x, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 4, 9)) +>x : number >20000 : number static b = true; ->b : boolean, Symbol(D.b, Decl(emitClassDeclarationWithStaticPropertyAssignmentInES6.ts, 5, 14)) +>b : boolean >true : boolean } diff --git a/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.symbols b/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.symbols new file mode 100644 index 0000000000000..13ce54e0641be --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.symbols @@ -0,0 +1,24 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithSuperMethodCall01.ts === + +class Parent { +>Parent : Symbol(Parent, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 1, 14)) + } +} + +class Foo extends Parent { +>Foo : Symbol(Foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 4, 1)) +>Parent : Symbol(Parent, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 6, 26)) + + var x = () => super.foo(); +>x : Symbol(x, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 8, 11)) +>super.foo : Symbol(Parent.foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 1, 14)) +>super : Symbol(Parent, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 0, 0)) +>foo : Symbol(Parent.foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 1, 14)) + } +} diff --git a/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.types b/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.types index 285fe704f11b3..8b68af897acfa 100644 --- a/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.types +++ b/tests/baselines/reference/emitClassDeclarationWithSuperMethodCall01.types @@ -1,26 +1,26 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithSuperMethodCall01.ts === class Parent { ->Parent : Parent, Symbol(Parent, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 0, 0)) +>Parent : Parent foo() { ->foo : () => void, Symbol(foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 1, 14)) +>foo : () => void } } class Foo extends Parent { ->Foo : Foo, Symbol(Foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 4, 1)) ->Parent : Parent, Symbol(Parent, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 0, 0)) +>Foo : Foo +>Parent : Parent foo() { ->foo : () => void, Symbol(foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 6, 26)) +>foo : () => void var x = () => super.foo(); ->x : () => void, Symbol(x, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 8, 11)) +>x : () => void >() => super.foo() : () => void >super.foo() : void ->super.foo : () => void, Symbol(Parent.foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 1, 14)) ->super : Parent, Symbol(Parent, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 0, 0)) ->foo : () => void, Symbol(Parent.foo, Decl(emitClassDeclarationWithSuperMethodCall01.ts, 1, 14)) +>super.foo : () => void +>super : Parent +>foo : () => void } } diff --git a/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.symbols new file mode 100644 index 0000000000000..32220451b9cfa --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.symbols @@ -0,0 +1,49 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithThisKeywordInES6.ts === +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) + + x = 10; +>x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) + + constructor() { + this.x = 10; +>this.x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) + } + static log(a: number) { } +>log : Symbol(B.log, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 4, 5)) +>a : Symbol(a, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 5, 15)) + + foo() { +>foo : Symbol(foo, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 5, 29)) + + B.log(this.x); +>B.log : Symbol(B.log, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 4, 5)) +>B : Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) +>log : Symbol(B.log, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 4, 5)) +>this.x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) + } + + get X() { +>X : Symbol(X, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 8, 5)) + + return this.x; +>this.x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) + } + + set bX(y: number) { +>bX : Symbol(bX, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 12, 5)) +>y : Symbol(y, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 14, 11)) + + this.x = y; +>this.x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>y : Symbol(y, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 14, 11)) + } +} diff --git a/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.types b/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.types index 764d0cffee78a..14c57a60bc43e 100644 --- a/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithThisKeywordInES6.types @@ -1,54 +1,54 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithThisKeywordInES6.ts === class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) +>B : B x = 10; ->x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>x : number >10 : number constructor() { this.x = 10; >this.x = 10 : number ->this.x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) ->x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>this.x : number +>this : B +>x : number >10 : number } static log(a: number) { } ->log : (a: number) => void, Symbol(B.log, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 4, 5)) ->a : number, Symbol(a, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 5, 15)) +>log : (a: number) => void +>a : number foo() { ->foo : () => void, Symbol(foo, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 5, 29)) +>foo : () => void B.log(this.x); >B.log(this.x) : void ->B.log : (a: number) => void, Symbol(B.log, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 4, 5)) ->B : typeof B, Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) ->log : (a: number) => void, Symbol(B.log, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 4, 5)) ->this.x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) ->x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>B.log : (a: number) => void +>B : typeof B +>log : (a: number) => void +>this.x : number +>this : B +>x : number } get X() { ->X : number, Symbol(X, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 8, 5)) +>X : number return this.x; ->this.x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) ->x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) +>this.x : number +>this : B +>x : number } set bX(y: number) { ->bX : number, Symbol(bX, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 12, 5)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 14, 11)) +>bX : number +>y : number this.x = y; >this.x = y : number ->this.x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 0)) ->x : number, Symbol(x, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 0, 9)) ->y : number, Symbol(y, Decl(emitClassDeclarationWithThisKeywordInES6.ts, 14, 11)) +>this.x : number +>this : B +>x : number +>y : number } } diff --git a/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.symbols new file mode 100644 index 0000000000000..092dbf10c7b9e --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.symbols @@ -0,0 +1,73 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts === +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + x: T; +>x : Symbol(x, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 12)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + B: T; +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + constructor(a: any) +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 4, 16)) + + constructor(a: any,b: T) +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 5, 16)) +>b : Symbol(b, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 5, 23)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + constructor(a: T) { this.B = a;} +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 16)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>this.B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 16)) + + foo(a: T) +>foo : Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 8)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + foo(a: any) +>foo : Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 8)) + + foo(b: string) +>foo : Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) +>b : Symbol(b, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 8)) + + foo(): T { +>foo : Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + return this.x; +>this.x : Symbol(x, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 12)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 12)) + } + + get BB(): T { +>BB : Symbol(BB, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 13, 5)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + return this.B; +>this.B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) + } + set BBWith(c: T) { +>BBWith : Symbol(BBWith, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 17, 5)) +>c : Symbol(c, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 18, 15)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) + + this.B = c; +>this.B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>c : Symbol(c, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 18, 15)) + } +} diff --git a/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.types b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.types index b25a864c8f95b..ba515168a5d7d 100644 --- a/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentAndOverloadInES6.types @@ -1,75 +1,75 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts === class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>B : B +>T : T x: T; ->x : T, Symbol(x, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 12)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>x : T +>T : T B: T; ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>B : T +>T : T constructor(a: any) ->a : any, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 4, 16)) +>a : any constructor(a: any,b: T) ->a : any, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 5, 16)) ->b : T, Symbol(b, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 5, 23)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>a : any +>b : T +>T : T constructor(a: T) { this.B = a;} ->a : T, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 16)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>a : T +>T : T >this.B = a : T ->this.B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) ->a : T, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 16)) +>this.B : T +>this : B +>B : T +>a : T foo(a: T) ->foo : { (a: T): any; (a: any): any; (b: string): any; }, Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) ->a : T, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 8)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>foo : { (a: T): any; (a: any): any; (b: string): any; } +>a : T +>T : T foo(a: any) ->foo : { (a: T): any; (a: any): any; (b: string): any; }, Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) ->a : any, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 8)) +>foo : { (a: T): any; (a: any): any; (b: string): any; } +>a : any foo(b: string) ->foo : { (a: T): any; (a: any): any; (b: string): any; }, Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) ->b : string, Symbol(b, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 8)) +>foo : { (a: T): any; (a: any): any; (b: string): any; } +>b : string foo(): T { ->foo : { (a: T): any; (a: any): any; (b: string): any; }, Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 6, 36), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 8, 13), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 9, 15), Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 10, 18)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>foo : { (a: T): any; (a: any): any; (b: string): any; } +>T : T return this.x; ->this.x : T, Symbol(x, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 12)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) ->x : T, Symbol(x, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 12)) +>this.x : T +>this : B +>x : T } get BB(): T { ->BB : T, Symbol(BB, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 13, 5)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>BB : T +>T : T return this.B; ->this.B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) +>this.B : T +>this : B +>B : T } set BBWith(c: T) { ->BBWith : T, Symbol(BBWith, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 17, 5)) ->c : T, Symbol(c, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 18, 15)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 8)) +>BBWith : T +>c : T +>T : T this.B = c; >this.B = c : T ->this.B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 0, 0)) ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 1, 9)) ->c : T, Symbol(c, Decl(emitClassDeclarationWithTypeArgumentAndOverloadInES6.ts, 18, 15)) +>this.B : T +>this : B +>B : T +>c : T } } diff --git a/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.symbols b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.symbols new file mode 100644 index 0000000000000..58f44b69f01b9 --- /dev/null +++ b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.symbols @@ -0,0 +1,51 @@ +=== tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithTypeArgumentInES6.ts === +class B { +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) + + x: T; +>x : Symbol(x, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 12)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) + + B: T; +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) + + constructor(a: T) { this.B = a;} +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 3, 16)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>this.B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>a : Symbol(a, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 3, 16)) + + foo(): T { +>foo : Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 3, 36)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) + + return this.x; +>this.x : Symbol(x, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 12)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 12)) + } + get BB(): T { +>BB : Symbol(BB, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 6, 5)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) + + return this.B; +>this.B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) + } + set BBWith(c: T) { +>BBWith : Symbol(BBWith, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 9, 5)) +>c : Symbol(c, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 10, 15)) +>T : Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) + + this.B = c; +>this.B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>this : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) +>B : Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>c : Symbol(c, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 10, 15)) + } +} diff --git a/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.types b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.types index 44e01c7141abd..8081d044e359e 100644 --- a/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.types +++ b/tests/baselines/reference/emitClassDeclarationWithTypeArgumentInES6.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/classDeclaration/emitClassDeclarationWithTypeArgumentInES6.ts === class B { ->B : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>B : B +>T : T x: T; ->x : T, Symbol(x, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 12)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>x : T +>T : T B: T; ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>B : T +>T : T constructor(a: T) { this.B = a;} ->a : T, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 3, 16)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>a : T +>T : T >this.B = a : T ->this.B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) ->a : T, Symbol(a, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 3, 16)) +>this.B : T +>this : B +>B : T +>a : T foo(): T { ->foo : () => T, Symbol(foo, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 3, 36)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>foo : () => T +>T : T return this.x; ->this.x : T, Symbol(x, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 12)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) ->x : T, Symbol(x, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 12)) +>this.x : T +>this : B +>x : T } get BB(): T { ->BB : T, Symbol(BB, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 6, 5)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>BB : T +>T : T return this.B; ->this.B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) +>this.B : T +>this : B +>B : T } set BBWith(c: T) { ->BBWith : T, Symbol(BBWith, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 9, 5)) ->c : T, Symbol(c, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 10, 15)) ->T : T, Symbol(T, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 8)) +>BBWith : T +>c : T +>T : T this.B = c; >this.B = c : T ->this.B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) ->this : B, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 0, 0)) ->B : T, Symbol(B, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 1, 9)) ->c : T, Symbol(c, Decl(emitClassDeclarationWithTypeArgumentInES6.ts, 10, 15)) +>this.B : T +>this : B +>B : T +>c : T } } diff --git a/tests/baselines/reference/emitCommentsOnlyFile.symbols b/tests/baselines/reference/emitCommentsOnlyFile.symbols new file mode 100644 index 0000000000000..38b23eb128d56 --- /dev/null +++ b/tests/baselines/reference/emitCommentsOnlyFile.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/emitCommentsOnlyFile.ts === + +No type information for this code./** +No type information for this code.* @name Foo +No type information for this code.* @class +No type information for this code.*/ +No type information for this code./**#@+ +No type information for this code.* @memberOf Foo# +No type information for this code.* @field +No type information for this code.*/ +No type information for this code./** +No type information for this code.* @name bar +No type information for this code.* @type Object[] +No type information for this code.*/ +No type information for this code./**#@-*/ +No type information for this code./** +No type information for this code.* @name Foo2 +No type information for this code.* @class +No type information for this code.*/ +No type information for this code./**#@+ +No type information for this code.* @memberOf Foo2# +No type information for this code.* @field +No type information for this code.*/ +No type information for this code./** +No type information for this code.* @name bar +No type information for this code.* @type Object[] +No type information for this code.*/ +No type information for this code./**#@-*/ +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/emitDefaultParametersFunction.symbols b/tests/baselines/reference/emitDefaultParametersFunction.symbols new file mode 100644 index 0000000000000..c6c68ca1c70f5 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunction.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts === +function foo(x: string, y = 10) { } +>foo : Symbol(foo, Decl(emitDefaultParametersFunction.ts, 0, 0)) +>x : Symbol(x, Decl(emitDefaultParametersFunction.ts, 0, 13)) +>y : Symbol(y, Decl(emitDefaultParametersFunction.ts, 0, 23)) + +function baz(x: string, y = 5, ...rest) { } +>baz : Symbol(baz, Decl(emitDefaultParametersFunction.ts, 0, 35)) +>x : Symbol(x, Decl(emitDefaultParametersFunction.ts, 1, 13)) +>y : Symbol(y, Decl(emitDefaultParametersFunction.ts, 1, 23)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunction.ts, 1, 30)) + +function bar(y = 10) { } +>bar : Symbol(bar, Decl(emitDefaultParametersFunction.ts, 1, 43)) +>y : Symbol(y, Decl(emitDefaultParametersFunction.ts, 2, 13)) + +function bar1(y = 10, ...rest) { } +>bar1 : Symbol(bar1, Decl(emitDefaultParametersFunction.ts, 2, 24)) +>y : Symbol(y, Decl(emitDefaultParametersFunction.ts, 3, 14)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunction.ts, 3, 21)) + diff --git a/tests/baselines/reference/emitDefaultParametersFunction.types b/tests/baselines/reference/emitDefaultParametersFunction.types index 0afbc3beb09d4..5c27d3ddf3d88 100644 --- a/tests/baselines/reference/emitDefaultParametersFunction.types +++ b/tests/baselines/reference/emitDefaultParametersFunction.types @@ -1,25 +1,25 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunction.ts === function foo(x: string, y = 10) { } ->foo : (x: string, y?: number) => void, Symbol(foo, Decl(emitDefaultParametersFunction.ts, 0, 0)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunction.ts, 0, 13)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunction.ts, 0, 23)) +>foo : (x: string, y?: number) => void +>x : string +>y : number >10 : number function baz(x: string, y = 5, ...rest) { } ->baz : (x: string, y?: number, ...rest: any[]) => void, Symbol(baz, Decl(emitDefaultParametersFunction.ts, 0, 35)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunction.ts, 1, 13)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunction.ts, 1, 23)) +>baz : (x: string, y?: number, ...rest: any[]) => void +>x : string +>y : number >5 : number ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunction.ts, 1, 30)) +>rest : any[] function bar(y = 10) { } ->bar : (y?: number) => void, Symbol(bar, Decl(emitDefaultParametersFunction.ts, 1, 43)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunction.ts, 2, 13)) +>bar : (y?: number) => void +>y : number >10 : number function bar1(y = 10, ...rest) { } ->bar1 : (y?: number, ...rest: any[]) => void, Symbol(bar1, Decl(emitDefaultParametersFunction.ts, 2, 24)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunction.ts, 3, 14)) +>bar1 : (y?: number, ...rest: any[]) => void +>y : number >10 : number ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunction.ts, 3, 21)) +>rest : any[] diff --git a/tests/baselines/reference/emitDefaultParametersFunctionES6.symbols b/tests/baselines/reference/emitDefaultParametersFunctionES6.symbols new file mode 100644 index 0000000000000..49e1cad020e23 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionES6.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts === +function foo(x: string, y = 10) { } +>foo : Symbol(foo, Decl(emitDefaultParametersFunctionES6.ts, 0, 0)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionES6.ts, 0, 13)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 0, 23)) + +function baz(x: string, y = 5, ...rest) { } +>baz : Symbol(baz, Decl(emitDefaultParametersFunctionES6.ts, 0, 35)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionES6.ts, 1, 13)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 1, 23)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionES6.ts, 1, 30)) + +function bar(y = 10) { } +>bar : Symbol(bar, Decl(emitDefaultParametersFunctionES6.ts, 1, 43)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 2, 13)) + +function bar1(y = 10, ...rest) { } +>bar1 : Symbol(bar1, Decl(emitDefaultParametersFunctionES6.ts, 2, 24)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 3, 14)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionES6.ts, 3, 21)) + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionES6.types b/tests/baselines/reference/emitDefaultParametersFunctionES6.types index 687f0ff0c4040..e3124c75333bb 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionES6.types +++ b/tests/baselines/reference/emitDefaultParametersFunctionES6.types @@ -1,25 +1,25 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionES6.ts === function foo(x: string, y = 10) { } ->foo : (x: string, y?: number) => void, Symbol(foo, Decl(emitDefaultParametersFunctionES6.ts, 0, 0)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionES6.ts, 0, 13)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 0, 23)) +>foo : (x: string, y?: number) => void +>x : string +>y : number >10 : number function baz(x: string, y = 5, ...rest) { } ->baz : (x: string, y?: number, ...rest: any[]) => void, Symbol(baz, Decl(emitDefaultParametersFunctionES6.ts, 0, 35)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionES6.ts, 1, 13)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 1, 23)) +>baz : (x: string, y?: number, ...rest: any[]) => void +>x : string +>y : number >5 : number ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionES6.ts, 1, 30)) +>rest : any[] function bar(y = 10) { } ->bar : (y?: number) => void, Symbol(bar, Decl(emitDefaultParametersFunctionES6.ts, 1, 43)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 2, 13)) +>bar : (y?: number) => void +>y : number >10 : number function bar1(y = 10, ...rest) { } ->bar1 : (y?: number, ...rest: any[]) => void, Symbol(bar1, Decl(emitDefaultParametersFunctionES6.ts, 2, 24)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunctionES6.ts, 3, 14)) +>bar1 : (y?: number, ...rest: any[]) => void +>y : number >10 : number ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionES6.ts, 3, 21)) +>rest : any[] diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpression.symbols b/tests/baselines/reference/emitDefaultParametersFunctionExpression.symbols new file mode 100644 index 0000000000000..59c9c2207878e --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpression.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts === +var lambda1 = (y = "hello") => { } +>lambda1 : Symbol(lambda1, Decl(emitDefaultParametersFunctionExpression.ts, 0, 3)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 0, 15)) + +var lambda2 = (x: number, y = "hello") => { } +>lambda2 : Symbol(lambda2, Decl(emitDefaultParametersFunctionExpression.ts, 1, 3)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionExpression.ts, 1, 15)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 1, 25)) + +var lambda3 = (x: number, y = "hello", ...rest) => { } +>lambda3 : Symbol(lambda3, Decl(emitDefaultParametersFunctionExpression.ts, 2, 3)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionExpression.ts, 2, 15)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 2, 25)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 2, 38)) + +var lambda4 = (y = "hello", ...rest) => { } +>lambda4 : Symbol(lambda4, Decl(emitDefaultParametersFunctionExpression.ts, 3, 3)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 3, 15)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 3, 27)) + +var x = function (str = "hello", ...rest) { } +>x : Symbol(x, Decl(emitDefaultParametersFunctionExpression.ts, 5, 3)) +>str : Symbol(str, Decl(emitDefaultParametersFunctionExpression.ts, 5, 18)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 5, 32)) + +var y = (function (num = 10, boo = false, ...rest) { })() +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 6, 3)) +>num : Symbol(num, Decl(emitDefaultParametersFunctionExpression.ts, 6, 19)) +>boo : Symbol(boo, Decl(emitDefaultParametersFunctionExpression.ts, 6, 28)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 6, 41)) + +var z = (function (num: number, boo = false, ...rest) { })(10) +>z : Symbol(z, Decl(emitDefaultParametersFunctionExpression.ts, 7, 3)) +>num : Symbol(num, Decl(emitDefaultParametersFunctionExpression.ts, 7, 19)) +>boo : Symbol(boo, Decl(emitDefaultParametersFunctionExpression.ts, 7, 31)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 7, 44)) + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpression.types b/tests/baselines/reference/emitDefaultParametersFunctionExpression.types index 2b689f45ef66f..61ba3200e36a0 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionExpression.types +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpression.types @@ -1,58 +1,58 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpression.ts === var lambda1 = (y = "hello") => { } ->lambda1 : (y?: string) => void, Symbol(lambda1, Decl(emitDefaultParametersFunctionExpression.ts, 0, 3)) +>lambda1 : (y?: string) => void >(y = "hello") => { } : (y?: string) => void ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 0, 15)) +>y : string >"hello" : string var lambda2 = (x: number, y = "hello") => { } ->lambda2 : (x: number, y?: string) => void, Symbol(lambda2, Decl(emitDefaultParametersFunctionExpression.ts, 1, 3)) +>lambda2 : (x: number, y?: string) => void >(x: number, y = "hello") => { } : (x: number, y?: string) => void ->x : number, Symbol(x, Decl(emitDefaultParametersFunctionExpression.ts, 1, 15)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 1, 25)) +>x : number +>y : string >"hello" : string var lambda3 = (x: number, y = "hello", ...rest) => { } ->lambda3 : (x: number, y?: string, ...rest: any[]) => void, Symbol(lambda3, Decl(emitDefaultParametersFunctionExpression.ts, 2, 3)) +>lambda3 : (x: number, y?: string, ...rest: any[]) => void >(x: number, y = "hello", ...rest) => { } : (x: number, y?: string, ...rest: any[]) => void ->x : number, Symbol(x, Decl(emitDefaultParametersFunctionExpression.ts, 2, 15)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 2, 25)) +>x : number +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 2, 38)) +>rest : any[] var lambda4 = (y = "hello", ...rest) => { } ->lambda4 : (y?: string, ...rest: any[]) => void, Symbol(lambda4, Decl(emitDefaultParametersFunctionExpression.ts, 3, 3)) +>lambda4 : (y?: string, ...rest: any[]) => void >(y = "hello", ...rest) => { } : (y?: string, ...rest: any[]) => void ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 3, 15)) +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 3, 27)) +>rest : any[] var x = function (str = "hello", ...rest) { } ->x : (str?: string, ...rest: any[]) => void, Symbol(x, Decl(emitDefaultParametersFunctionExpression.ts, 5, 3)) +>x : (str?: string, ...rest: any[]) => void >function (str = "hello", ...rest) { } : (str?: string, ...rest: any[]) => void ->str : string, Symbol(str, Decl(emitDefaultParametersFunctionExpression.ts, 5, 18)) +>str : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 5, 32)) +>rest : any[] var y = (function (num = 10, boo = false, ...rest) { })() ->y : void, Symbol(y, Decl(emitDefaultParametersFunctionExpression.ts, 6, 3)) +>y : void >(function (num = 10, boo = false, ...rest) { })() : void >(function (num = 10, boo = false, ...rest) { }) : (num?: number, boo?: boolean, ...rest: any[]) => void >function (num = 10, boo = false, ...rest) { } : (num?: number, boo?: boolean, ...rest: any[]) => void ->num : number, Symbol(num, Decl(emitDefaultParametersFunctionExpression.ts, 6, 19)) +>num : number >10 : number ->boo : boolean, Symbol(boo, Decl(emitDefaultParametersFunctionExpression.ts, 6, 28)) +>boo : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 6, 41)) +>rest : any[] var z = (function (num: number, boo = false, ...rest) { })(10) ->z : void, Symbol(z, Decl(emitDefaultParametersFunctionExpression.ts, 7, 3)) +>z : void >(function (num: number, boo = false, ...rest) { })(10) : void >(function (num: number, boo = false, ...rest) { }) : (num: number, boo?: boolean, ...rest: any[]) => void >function (num: number, boo = false, ...rest) { } : (num: number, boo?: boolean, ...rest: any[]) => void ->num : number, Symbol(num, Decl(emitDefaultParametersFunctionExpression.ts, 7, 19)) ->boo : boolean, Symbol(boo, Decl(emitDefaultParametersFunctionExpression.ts, 7, 31)) +>num : number +>boo : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpression.ts, 7, 44)) +>rest : any[] >10 : number diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.symbols b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.symbols new file mode 100644 index 0000000000000..36eef9b9a1d06 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts === +var lambda1 = (y = "hello") => { } +>lambda1 : Symbol(lambda1, Decl(emitDefaultParametersFunctionExpressionES6.ts, 0, 3)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 0, 15)) + +var lambda2 = (x: number, y = "hello") => { } +>lambda2 : Symbol(lambda2, Decl(emitDefaultParametersFunctionExpressionES6.ts, 1, 3)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionExpressionES6.ts, 1, 15)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 1, 25)) + +var lambda3 = (x: number, y = "hello", ...rest) => { } +>lambda3 : Symbol(lambda3, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 3)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 15)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 25)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 38)) + +var lambda4 = (y = "hello", ...rest) => { } +>lambda4 : Symbol(lambda4, Decl(emitDefaultParametersFunctionExpressionES6.ts, 3, 3)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 3, 15)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 3, 27)) + +var x = function (str = "hello", ...rest) { } +>x : Symbol(x, Decl(emitDefaultParametersFunctionExpressionES6.ts, 5, 3)) +>str : Symbol(str, Decl(emitDefaultParametersFunctionExpressionES6.ts, 5, 18)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 5, 32)) + +var y = (function (num = 10, boo = false, ...rest) { })() +>y : Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 3)) +>num : Symbol(num, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 19)) +>boo : Symbol(boo, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 28)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 41)) + +var z = (function (num: number, boo = false, ...rest) { })(10) +>z : Symbol(z, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 3)) +>num : Symbol(num, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 19)) +>boo : Symbol(boo, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 31)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 44)) + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types index 059b983b5e0f3..76f2c863a26e8 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.types @@ -1,58 +1,58 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionExpressionES6.ts === var lambda1 = (y = "hello") => { } ->lambda1 : (y?: string) => void, Symbol(lambda1, Decl(emitDefaultParametersFunctionExpressionES6.ts, 0, 3)) +>lambda1 : (y?: string) => void >(y = "hello") => { } : (y?: string) => void ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 0, 15)) +>y : string >"hello" : string var lambda2 = (x: number, y = "hello") => { } ->lambda2 : (x: number, y?: string) => void, Symbol(lambda2, Decl(emitDefaultParametersFunctionExpressionES6.ts, 1, 3)) +>lambda2 : (x: number, y?: string) => void >(x: number, y = "hello") => { } : (x: number, y?: string) => void ->x : number, Symbol(x, Decl(emitDefaultParametersFunctionExpressionES6.ts, 1, 15)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 1, 25)) +>x : number +>y : string >"hello" : string var lambda3 = (x: number, y = "hello", ...rest) => { } ->lambda3 : (x: number, y?: string, ...rest: any[]) => void, Symbol(lambda3, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 3)) +>lambda3 : (x: number, y?: string, ...rest: any[]) => void >(x: number, y = "hello", ...rest) => { } : (x: number, y?: string, ...rest: any[]) => void ->x : number, Symbol(x, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 15)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 25)) +>x : number +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 2, 38)) +>rest : any[] var lambda4 = (y = "hello", ...rest) => { } ->lambda4 : (y?: string, ...rest: any[]) => void, Symbol(lambda4, Decl(emitDefaultParametersFunctionExpressionES6.ts, 3, 3)) +>lambda4 : (y?: string, ...rest: any[]) => void >(y = "hello", ...rest) => { } : (y?: string, ...rest: any[]) => void ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 3, 15)) +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 3, 27)) +>rest : any[] var x = function (str = "hello", ...rest) { } ->x : (str?: string, ...rest: any[]) => void, Symbol(x, Decl(emitDefaultParametersFunctionExpressionES6.ts, 5, 3)) +>x : (str?: string, ...rest: any[]) => void >function (str = "hello", ...rest) { } : (str?: string, ...rest: any[]) => void ->str : string, Symbol(str, Decl(emitDefaultParametersFunctionExpressionES6.ts, 5, 18)) +>str : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 5, 32)) +>rest : any[] var y = (function (num = 10, boo = false, ...rest) { })() ->y : void, Symbol(y, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 3)) +>y : void >(function (num = 10, boo = false, ...rest) { })() : void >(function (num = 10, boo = false, ...rest) { }) : (num?: number, boo?: boolean, ...rest: any[]) => void >function (num = 10, boo = false, ...rest) { } : (num?: number, boo?: boolean, ...rest: any[]) => void ->num : number, Symbol(num, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 19)) +>num : number >10 : number ->boo : boolean, Symbol(boo, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 28)) +>boo : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 6, 41)) +>rest : any[] var z = (function (num: number, boo = false, ...rest) { })(10) ->z : void, Symbol(z, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 3)) +>z : void >(function (num: number, boo = false, ...rest) { })(10) : void >(function (num: number, boo = false, ...rest) { }) : (num: number, boo?: boolean, ...rest: any[]) => void >function (num: number, boo = false, ...rest) { } : (num: number, boo?: boolean, ...rest: any[]) => void ->num : number, Symbol(num, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 19)) ->boo : boolean, Symbol(boo, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 31)) +>num : number +>boo : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionExpressionES6.ts, 7, 44)) +>rest : any[] >10 : number diff --git a/tests/baselines/reference/emitDefaultParametersFunctionProperty.symbols b/tests/baselines/reference/emitDefaultParametersFunctionProperty.symbols new file mode 100644 index 0000000000000..f377e8bd69631 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionProperty.symbols @@ -0,0 +1,27 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts === +var obj2 = { +>obj2 : Symbol(obj2, Decl(emitDefaultParametersFunctionProperty.ts, 0, 3)) + + func1(y = 10, ...rest) { }, +>func1 : Symbol(func1, Decl(emitDefaultParametersFunctionProperty.ts, 0, 12)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionProperty.ts, 1, 10)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionProperty.ts, 1, 17)) + + func2(x = "hello") { }, +>func2 : Symbol(func2, Decl(emitDefaultParametersFunctionProperty.ts, 1, 31)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionProperty.ts, 2, 10)) + + func3(x: string, z: number, y = "hello") { }, +>func3 : Symbol(func3, Decl(emitDefaultParametersFunctionProperty.ts, 2, 27)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionProperty.ts, 3, 10)) +>z : Symbol(z, Decl(emitDefaultParametersFunctionProperty.ts, 3, 20)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionProperty.ts, 3, 31)) + + func4(x: string, z: number, y = "hello", ...rest) { }, +>func4 : Symbol(func4, Decl(emitDefaultParametersFunctionProperty.ts, 3, 49)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionProperty.ts, 4, 10)) +>z : Symbol(z, Decl(emitDefaultParametersFunctionProperty.ts, 4, 20)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionProperty.ts, 4, 31)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionProperty.ts, 4, 44)) +} + diff --git a/tests/baselines/reference/emitDefaultParametersFunctionProperty.types b/tests/baselines/reference/emitDefaultParametersFunctionProperty.types index a595dd3a4e3cf..8a703fd114feb 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionProperty.types +++ b/tests/baselines/reference/emitDefaultParametersFunctionProperty.types @@ -1,32 +1,32 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionProperty.ts === var obj2 = { ->obj2 : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; }, Symbol(obj2, Decl(emitDefaultParametersFunctionProperty.ts, 0, 3)) +>obj2 : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } >{ func1(y = 10, ...rest) { }, func2(x = "hello") { }, func3(x: string, z: number, y = "hello") { }, func4(x: string, z: number, y = "hello", ...rest) { },} : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } func1(y = 10, ...rest) { }, ->func1 : (y?: number, ...rest: any[]) => void, Symbol(func1, Decl(emitDefaultParametersFunctionProperty.ts, 0, 12)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunctionProperty.ts, 1, 10)) +>func1 : (y?: number, ...rest: any[]) => void +>y : number >10 : number ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionProperty.ts, 1, 17)) +>rest : any[] func2(x = "hello") { }, ->func2 : (x?: string) => void, Symbol(func2, Decl(emitDefaultParametersFunctionProperty.ts, 1, 31)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionProperty.ts, 2, 10)) +>func2 : (x?: string) => void +>x : string >"hello" : string func3(x: string, z: number, y = "hello") { }, ->func3 : (x: string, z: number, y?: string) => void, Symbol(func3, Decl(emitDefaultParametersFunctionProperty.ts, 2, 27)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionProperty.ts, 3, 10)) ->z : number, Symbol(z, Decl(emitDefaultParametersFunctionProperty.ts, 3, 20)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionProperty.ts, 3, 31)) +>func3 : (x: string, z: number, y?: string) => void +>x : string +>z : number +>y : string >"hello" : string func4(x: string, z: number, y = "hello", ...rest) { }, ->func4 : (x: string, z: number, y?: string, ...rest: any[]) => void, Symbol(func4, Decl(emitDefaultParametersFunctionProperty.ts, 3, 49)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionProperty.ts, 4, 10)) ->z : number, Symbol(z, Decl(emitDefaultParametersFunctionProperty.ts, 4, 20)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionProperty.ts, 4, 31)) +>func4 : (x: string, z: number, y?: string, ...rest: any[]) => void +>x : string +>z : number +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionProperty.ts, 4, 44)) +>rest : any[] } diff --git a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.symbols b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.symbols new file mode 100644 index 0000000000000..88bad28bbf89a --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts === +var obj2 = { +>obj2 : Symbol(obj2, Decl(emitDefaultParametersFunctionPropertyES6.ts, 0, 3)) + + func1(y = 10, ...rest) { }, +>func1 : Symbol(func1, Decl(emitDefaultParametersFunctionPropertyES6.ts, 0, 12)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionPropertyES6.ts, 1, 10)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionPropertyES6.ts, 1, 17)) + + func2(x = "hello") { }, +>func2 : Symbol(func2, Decl(emitDefaultParametersFunctionPropertyES6.ts, 1, 31)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionPropertyES6.ts, 2, 10)) + + func3(x: string, z: number, y = "hello") { }, +>func3 : Symbol(func3, Decl(emitDefaultParametersFunctionPropertyES6.ts, 2, 27)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 10)) +>z : Symbol(z, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 20)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 31)) + + func4(x: string, z: number, y = "hello", ...rest) { }, +>func4 : Symbol(func4, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 49)) +>x : Symbol(x, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 10)) +>z : Symbol(z, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 20)) +>y : Symbol(y, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 31)) +>rest : Symbol(rest, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 44)) +} diff --git a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types index 65fbe778340b4..1edd505c0b51b 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types +++ b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.types @@ -1,31 +1,31 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersFunctionPropertyES6.ts === var obj2 = { ->obj2 : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; }, Symbol(obj2, Decl(emitDefaultParametersFunctionPropertyES6.ts, 0, 3)) +>obj2 : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } >{ func1(y = 10, ...rest) { }, func2(x = "hello") { }, func3(x: string, z: number, y = "hello") { }, func4(x: string, z: number, y = "hello", ...rest) { },} : { func1(y?: number, ...rest: any[]): void; func2(x?: string): void; func3(x: string, z: number, y?: string): void; func4(x: string, z: number, y?: string, ...rest: any[]): void; } func1(y = 10, ...rest) { }, ->func1 : (y?: number, ...rest: any[]) => void, Symbol(func1, Decl(emitDefaultParametersFunctionPropertyES6.ts, 0, 12)) ->y : number, Symbol(y, Decl(emitDefaultParametersFunctionPropertyES6.ts, 1, 10)) +>func1 : (y?: number, ...rest: any[]) => void +>y : number >10 : number ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionPropertyES6.ts, 1, 17)) +>rest : any[] func2(x = "hello") { }, ->func2 : (x?: string) => void, Symbol(func2, Decl(emitDefaultParametersFunctionPropertyES6.ts, 1, 31)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionPropertyES6.ts, 2, 10)) +>func2 : (x?: string) => void +>x : string >"hello" : string func3(x: string, z: number, y = "hello") { }, ->func3 : (x: string, z: number, y?: string) => void, Symbol(func3, Decl(emitDefaultParametersFunctionPropertyES6.ts, 2, 27)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 10)) ->z : number, Symbol(z, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 20)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 31)) +>func3 : (x: string, z: number, y?: string) => void +>x : string +>z : number +>y : string >"hello" : string func4(x: string, z: number, y = "hello", ...rest) { }, ->func4 : (x: string, z: number, y?: string, ...rest: any[]) => void, Symbol(func4, Decl(emitDefaultParametersFunctionPropertyES6.ts, 3, 49)) ->x : string, Symbol(x, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 10)) ->z : number, Symbol(z, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 20)) ->y : string, Symbol(y, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 31)) +>func4 : (x: string, z: number, y?: string, ...rest: any[]) => void +>x : string +>z : number +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersFunctionPropertyES6.ts, 4, 44)) +>rest : any[] } diff --git a/tests/baselines/reference/emitDefaultParametersMethod.symbols b/tests/baselines/reference/emitDefaultParametersMethod.symbols new file mode 100644 index 0000000000000..866380e2dd50f --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersMethod.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts === +class C { +>C : Symbol(C, Decl(emitDefaultParametersMethod.ts, 0, 0)) + + constructor(t: boolean, z: string, x: number, y = "hello") { } +>t : Symbol(t, Decl(emitDefaultParametersMethod.ts, 1, 16)) +>z : Symbol(z, Decl(emitDefaultParametersMethod.ts, 1, 27)) +>x : Symbol(x, Decl(emitDefaultParametersMethod.ts, 1, 38)) +>y : Symbol(y, Decl(emitDefaultParametersMethod.ts, 1, 49)) + + public foo(x: string, t = false) { } +>foo : Symbol(foo, Decl(emitDefaultParametersMethod.ts, 1, 66)) +>x : Symbol(x, Decl(emitDefaultParametersMethod.ts, 3, 15)) +>t : Symbol(t, Decl(emitDefaultParametersMethod.ts, 3, 25)) + + public foo1(x: string, t = false, ...rest) { } +>foo1 : Symbol(foo1, Decl(emitDefaultParametersMethod.ts, 3, 40)) +>x : Symbol(x, Decl(emitDefaultParametersMethod.ts, 4, 16)) +>t : Symbol(t, Decl(emitDefaultParametersMethod.ts, 4, 26)) +>rest : Symbol(rest, Decl(emitDefaultParametersMethod.ts, 4, 37)) + + public bar(t = false) { } +>bar : Symbol(bar, Decl(emitDefaultParametersMethod.ts, 4, 50)) +>t : Symbol(t, Decl(emitDefaultParametersMethod.ts, 5, 15)) + + public boo(t = false, ...rest) { } +>boo : Symbol(boo, Decl(emitDefaultParametersMethod.ts, 5, 29)) +>t : Symbol(t, Decl(emitDefaultParametersMethod.ts, 6, 15)) +>rest : Symbol(rest, Decl(emitDefaultParametersMethod.ts, 6, 25)) +} + +class D { +>D : Symbol(D, Decl(emitDefaultParametersMethod.ts, 7, 1)) + + constructor(y = "hello") { } +>y : Symbol(y, Decl(emitDefaultParametersMethod.ts, 10, 16)) +} + +class E { +>E : Symbol(E, Decl(emitDefaultParametersMethod.ts, 11, 1)) + + constructor(y = "hello", ...rest) { } +>y : Symbol(y, Decl(emitDefaultParametersMethod.ts, 14, 16)) +>rest : Symbol(rest, Decl(emitDefaultParametersMethod.ts, 14, 28)) +} + diff --git a/tests/baselines/reference/emitDefaultParametersMethod.types b/tests/baselines/reference/emitDefaultParametersMethod.types index d142243ba3250..ce7dd2542fa7e 100644 --- a/tests/baselines/reference/emitDefaultParametersMethod.types +++ b/tests/baselines/reference/emitDefaultParametersMethod.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethod.ts === class C { ->C : C, Symbol(C, Decl(emitDefaultParametersMethod.ts, 0, 0)) +>C : C constructor(t: boolean, z: string, x: number, y = "hello") { } ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethod.ts, 1, 16)) ->z : string, Symbol(z, Decl(emitDefaultParametersMethod.ts, 1, 27)) ->x : number, Symbol(x, Decl(emitDefaultParametersMethod.ts, 1, 38)) ->y : string, Symbol(y, Decl(emitDefaultParametersMethod.ts, 1, 49)) +>t : boolean +>z : string +>x : number +>y : string >"hello" : string public foo(x: string, t = false) { } ->foo : (x: string, t?: boolean) => void, Symbol(foo, Decl(emitDefaultParametersMethod.ts, 1, 66)) ->x : string, Symbol(x, Decl(emitDefaultParametersMethod.ts, 3, 15)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethod.ts, 3, 25)) +>foo : (x: string, t?: boolean) => void +>x : string +>t : boolean >false : boolean public foo1(x: string, t = false, ...rest) { } ->foo1 : (x: string, t?: boolean, ...rest: any[]) => void, Symbol(foo1, Decl(emitDefaultParametersMethod.ts, 3, 40)) ->x : string, Symbol(x, Decl(emitDefaultParametersMethod.ts, 4, 16)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethod.ts, 4, 26)) +>foo1 : (x: string, t?: boolean, ...rest: any[]) => void +>x : string +>t : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersMethod.ts, 4, 37)) +>rest : any[] public bar(t = false) { } ->bar : (t?: boolean) => void, Symbol(bar, Decl(emitDefaultParametersMethod.ts, 4, 50)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethod.ts, 5, 15)) +>bar : (t?: boolean) => void +>t : boolean >false : boolean public boo(t = false, ...rest) { } ->boo : (t?: boolean, ...rest: any[]) => void, Symbol(boo, Decl(emitDefaultParametersMethod.ts, 5, 29)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethod.ts, 6, 15)) +>boo : (t?: boolean, ...rest: any[]) => void +>t : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersMethod.ts, 6, 25)) +>rest : any[] } class D { ->D : D, Symbol(D, Decl(emitDefaultParametersMethod.ts, 7, 1)) +>D : D constructor(y = "hello") { } ->y : string, Symbol(y, Decl(emitDefaultParametersMethod.ts, 10, 16)) +>y : string >"hello" : string } class E { ->E : E, Symbol(E, Decl(emitDefaultParametersMethod.ts, 11, 1)) +>E : E constructor(y = "hello", ...rest) { } ->y : string, Symbol(y, Decl(emitDefaultParametersMethod.ts, 14, 16)) +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersMethod.ts, 14, 28)) +>rest : any[] } diff --git a/tests/baselines/reference/emitDefaultParametersMethodES6.symbols b/tests/baselines/reference/emitDefaultParametersMethodES6.symbols new file mode 100644 index 0000000000000..ce23b016bcfd5 --- /dev/null +++ b/tests/baselines/reference/emitDefaultParametersMethodES6.symbols @@ -0,0 +1,45 @@ +=== tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts === +class C { +>C : Symbol(C, Decl(emitDefaultParametersMethodES6.ts, 0, 0)) + + constructor(t: boolean, z: string, x: number, y = "hello") { } +>t : Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 1, 16)) +>z : Symbol(z, Decl(emitDefaultParametersMethodES6.ts, 1, 27)) +>x : Symbol(x, Decl(emitDefaultParametersMethodES6.ts, 1, 38)) +>y : Symbol(y, Decl(emitDefaultParametersMethodES6.ts, 1, 49)) + + public foo(x: string, t = false) { } +>foo : Symbol(foo, Decl(emitDefaultParametersMethodES6.ts, 1, 66)) +>x : Symbol(x, Decl(emitDefaultParametersMethodES6.ts, 3, 15)) +>t : Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 3, 25)) + + public foo1(x: string, t = false, ...rest) { } +>foo1 : Symbol(foo1, Decl(emitDefaultParametersMethodES6.ts, 3, 40)) +>x : Symbol(x, Decl(emitDefaultParametersMethodES6.ts, 4, 16)) +>t : Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 4, 26)) +>rest : Symbol(rest, Decl(emitDefaultParametersMethodES6.ts, 4, 37)) + + public bar(t = false) { } +>bar : Symbol(bar, Decl(emitDefaultParametersMethodES6.ts, 4, 50)) +>t : Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 5, 15)) + + public boo(t = false, ...rest) { } +>boo : Symbol(boo, Decl(emitDefaultParametersMethodES6.ts, 5, 29)) +>t : Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 6, 15)) +>rest : Symbol(rest, Decl(emitDefaultParametersMethodES6.ts, 6, 25)) +} + +class D { +>D : Symbol(D, Decl(emitDefaultParametersMethodES6.ts, 7, 1)) + + constructor(y = "hello") { } +>y : Symbol(y, Decl(emitDefaultParametersMethodES6.ts, 10, 16)) +} + +class E { +>E : Symbol(E, Decl(emitDefaultParametersMethodES6.ts, 11, 1)) + + constructor(y = "hello", ...rest) { } +>y : Symbol(y, Decl(emitDefaultParametersMethodES6.ts, 14, 16)) +>rest : Symbol(rest, Decl(emitDefaultParametersMethodES6.ts, 14, 28)) +} diff --git a/tests/baselines/reference/emitDefaultParametersMethodES6.types b/tests/baselines/reference/emitDefaultParametersMethodES6.types index 4b8c9c7281d73..09096d153bf19 100644 --- a/tests/baselines/reference/emitDefaultParametersMethodES6.types +++ b/tests/baselines/reference/emitDefaultParametersMethodES6.types @@ -1,52 +1,52 @@ === tests/cases/conformance/es6/defaultParameters/emitDefaultParametersMethodES6.ts === class C { ->C : C, Symbol(C, Decl(emitDefaultParametersMethodES6.ts, 0, 0)) +>C : C constructor(t: boolean, z: string, x: number, y = "hello") { } ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 1, 16)) ->z : string, Symbol(z, Decl(emitDefaultParametersMethodES6.ts, 1, 27)) ->x : number, Symbol(x, Decl(emitDefaultParametersMethodES6.ts, 1, 38)) ->y : string, Symbol(y, Decl(emitDefaultParametersMethodES6.ts, 1, 49)) +>t : boolean +>z : string +>x : number +>y : string >"hello" : string public foo(x: string, t = false) { } ->foo : (x: string, t?: boolean) => void, Symbol(foo, Decl(emitDefaultParametersMethodES6.ts, 1, 66)) ->x : string, Symbol(x, Decl(emitDefaultParametersMethodES6.ts, 3, 15)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 3, 25)) +>foo : (x: string, t?: boolean) => void +>x : string +>t : boolean >false : boolean public foo1(x: string, t = false, ...rest) { } ->foo1 : (x: string, t?: boolean, ...rest: any[]) => void, Symbol(foo1, Decl(emitDefaultParametersMethodES6.ts, 3, 40)) ->x : string, Symbol(x, Decl(emitDefaultParametersMethodES6.ts, 4, 16)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 4, 26)) +>foo1 : (x: string, t?: boolean, ...rest: any[]) => void +>x : string +>t : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersMethodES6.ts, 4, 37)) +>rest : any[] public bar(t = false) { } ->bar : (t?: boolean) => void, Symbol(bar, Decl(emitDefaultParametersMethodES6.ts, 4, 50)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 5, 15)) +>bar : (t?: boolean) => void +>t : boolean >false : boolean public boo(t = false, ...rest) { } ->boo : (t?: boolean, ...rest: any[]) => void, Symbol(boo, Decl(emitDefaultParametersMethodES6.ts, 5, 29)) ->t : boolean, Symbol(t, Decl(emitDefaultParametersMethodES6.ts, 6, 15)) +>boo : (t?: boolean, ...rest: any[]) => void +>t : boolean >false : boolean ->rest : any[], Symbol(rest, Decl(emitDefaultParametersMethodES6.ts, 6, 25)) +>rest : any[] } class D { ->D : D, Symbol(D, Decl(emitDefaultParametersMethodES6.ts, 7, 1)) +>D : D constructor(y = "hello") { } ->y : string, Symbol(y, Decl(emitDefaultParametersMethodES6.ts, 10, 16)) +>y : string >"hello" : string } class E { ->E : E, Symbol(E, Decl(emitDefaultParametersMethodES6.ts, 11, 1)) +>E : E constructor(y = "hello", ...rest) { } ->y : string, Symbol(y, Decl(emitDefaultParametersMethodES6.ts, 14, 16)) +>y : string >"hello" : string ->rest : any[], Symbol(rest, Decl(emitDefaultParametersMethodES6.ts, 14, 28)) +>rest : any[] } diff --git a/tests/baselines/reference/emitMemberAccessExpression.symbols b/tests/baselines/reference/emitMemberAccessExpression.symbols new file mode 100644 index 0000000000000..64302521706af --- /dev/null +++ b/tests/baselines/reference/emitMemberAccessExpression.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/emitMemberAccessExpression_file3.ts === +/// +/// +declare var OData: any; +>OData : Symbol(OData, Decl(emitMemberAccessExpression_file3.ts, 2, 11)) + +module Microsoft.PeopleAtWork.Model { +>Microsoft : Symbol(Microsoft, Decl(emitMemberAccessExpression_file2.ts, 1, 13), Decl(emitMemberAccessExpression_file3.ts, 2, 23)) +>PeopleAtWork : Symbol(PeopleAtWork, Decl(emitMemberAccessExpression_file2.ts, 2, 17), Decl(emitMemberAccessExpression_file3.ts, 3, 17)) +>Model : Symbol(Model, Decl(emitMemberAccessExpression_file2.ts, 2, 30), Decl(emitMemberAccessExpression_file3.ts, 3, 30)) + + export class KnockoutExtentions { +>KnockoutExtentions : Symbol(KnockoutExtentions, Decl(emitMemberAccessExpression_file3.ts, 3, 37)) + } +} +=== tests/cases/compiler/emitMemberAccessExpression_file1.ts === +/// +No type information for this code."use strict"; +No type information for this code. +No type information for this code.=== tests/cases/compiler/emitMemberAccessExpression_file2.ts === +/// +"use strict"; +module Microsoft.PeopleAtWork.Model { +>Microsoft : Symbol(Microsoft, Decl(emitMemberAccessExpression_file2.ts, 1, 13), Decl(emitMemberAccessExpression_file3.ts, 2, 23)) +>PeopleAtWork : Symbol(PeopleAtWork, Decl(emitMemberAccessExpression_file2.ts, 2, 17), Decl(emitMemberAccessExpression_file3.ts, 3, 17)) +>Model : Symbol(Model, Decl(emitMemberAccessExpression_file2.ts, 2, 30), Decl(emitMemberAccessExpression_file3.ts, 3, 30)) + + export class _Person { +>_Person : Symbol(_Person, Decl(emitMemberAccessExpression_file2.ts, 2, 37)) + + public populate(raw: any) { +>populate : Symbol(populate, Decl(emitMemberAccessExpression_file2.ts, 3, 26)) +>raw : Symbol(raw, Decl(emitMemberAccessExpression_file2.ts, 4, 24)) + + var res = Model.KnockoutExtentions; +>res : Symbol(res, Decl(emitMemberAccessExpression_file2.ts, 5, 15)) +>Model.KnockoutExtentions : Symbol(KnockoutExtentions, Decl(emitMemberAccessExpression_file3.ts, 3, 37)) +>Model : Symbol(Model, Decl(emitMemberAccessExpression_file2.ts, 2, 30), Decl(emitMemberAccessExpression_file3.ts, 3, 30)) +>KnockoutExtentions : Symbol(KnockoutExtentions, Decl(emitMemberAccessExpression_file3.ts, 3, 37)) + } + } +} + diff --git a/tests/baselines/reference/emitMemberAccessExpression.types b/tests/baselines/reference/emitMemberAccessExpression.types index e8a7e9962c890..7a32e452aec1c 100644 --- a/tests/baselines/reference/emitMemberAccessExpression.types +++ b/tests/baselines/reference/emitMemberAccessExpression.types @@ -2,15 +2,15 @@ /// /// declare var OData: any; ->OData : any, Symbol(OData, Decl(emitMemberAccessExpression_file3.ts, 2, 11)) +>OData : any module Microsoft.PeopleAtWork.Model { ->Microsoft : typeof Microsoft, Symbol(Microsoft, Decl(emitMemberAccessExpression_file2.ts, 1, 13), Decl(emitMemberAccessExpression_file3.ts, 2, 23)) ->PeopleAtWork : typeof PeopleAtWork, Symbol(PeopleAtWork, Decl(emitMemberAccessExpression_file2.ts, 2, 17), Decl(emitMemberAccessExpression_file3.ts, 3, 17)) ->Model : typeof Model, Symbol(Model, Decl(emitMemberAccessExpression_file2.ts, 2, 30), Decl(emitMemberAccessExpression_file3.ts, 3, 30)) +>Microsoft : typeof Microsoft +>PeopleAtWork : typeof PeopleAtWork +>Model : typeof Model export class KnockoutExtentions { ->KnockoutExtentions : KnockoutExtentions, Symbol(KnockoutExtentions, Decl(emitMemberAccessExpression_file3.ts, 3, 37)) +>KnockoutExtentions : KnockoutExtentions } } === tests/cases/compiler/emitMemberAccessExpression_file1.ts === @@ -24,22 +24,22 @@ module Microsoft.PeopleAtWork.Model { >"use strict" : string module Microsoft.PeopleAtWork.Model { ->Microsoft : typeof Microsoft, Symbol(Microsoft, Decl(emitMemberAccessExpression_file2.ts, 1, 13), Decl(emitMemberAccessExpression_file3.ts, 2, 23)) ->PeopleAtWork : typeof PeopleAtWork, Symbol(PeopleAtWork, Decl(emitMemberAccessExpression_file2.ts, 2, 17), Decl(emitMemberAccessExpression_file3.ts, 3, 17)) ->Model : typeof Model, Symbol(Model, Decl(emitMemberAccessExpression_file2.ts, 2, 30), Decl(emitMemberAccessExpression_file3.ts, 3, 30)) +>Microsoft : typeof Microsoft +>PeopleAtWork : typeof PeopleAtWork +>Model : typeof Model export class _Person { ->_Person : _Person, Symbol(_Person, Decl(emitMemberAccessExpression_file2.ts, 2, 37)) +>_Person : _Person public populate(raw: any) { ->populate : (raw: any) => void, Symbol(populate, Decl(emitMemberAccessExpression_file2.ts, 3, 26)) ->raw : any, Symbol(raw, Decl(emitMemberAccessExpression_file2.ts, 4, 24)) +>populate : (raw: any) => void +>raw : any var res = Model.KnockoutExtentions; ->res : typeof KnockoutExtentions, Symbol(res, Decl(emitMemberAccessExpression_file2.ts, 5, 15)) ->Model.KnockoutExtentions : typeof KnockoutExtentions, Symbol(KnockoutExtentions, Decl(emitMemberAccessExpression_file3.ts, 3, 37)) ->Model : typeof Model, Symbol(Model, Decl(emitMemberAccessExpression_file2.ts, 2, 30), Decl(emitMemberAccessExpression_file3.ts, 3, 30)) ->KnockoutExtentions : typeof KnockoutExtentions, Symbol(KnockoutExtentions, Decl(emitMemberAccessExpression_file3.ts, 3, 37)) +>res : typeof KnockoutExtentions +>Model.KnockoutExtentions : typeof KnockoutExtentions +>Model : typeof Model +>KnockoutExtentions : typeof KnockoutExtentions } } } diff --git a/tests/baselines/reference/emitPostComments.symbols b/tests/baselines/reference/emitPostComments.symbols new file mode 100644 index 0000000000000..296d8081058ea --- /dev/null +++ b/tests/baselines/reference/emitPostComments.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/emitPostComments.ts === + +var y = 10; +>y : Symbol(y, Decl(emitPostComments.ts, 1, 3)) + +/** +* @name Foo +* @class +*/ +/**#@+ +* @memberOf Foo# +* @field +*/ +/** +* @name bar +* @type Object[] +*/ +/**#@-*/ +/** +* @name Foo2 +* @class +*/ +/**#@+ +* @memberOf Foo2# +* @field +*/ +/** +* @name bar +* @type Object[] +*/ +/**#@-*/ + diff --git a/tests/baselines/reference/emitPostComments.types b/tests/baselines/reference/emitPostComments.types index 70319c1db167a..5b5a05931d49f 100644 --- a/tests/baselines/reference/emitPostComments.types +++ b/tests/baselines/reference/emitPostComments.types @@ -1,7 +1,7 @@ === tests/cases/compiler/emitPostComments.ts === var y = 10; ->y : number, Symbol(y, Decl(emitPostComments.ts, 1, 3)) +>y : number >10 : number /** diff --git a/tests/baselines/reference/emitPreComments.symbols b/tests/baselines/reference/emitPreComments.symbols new file mode 100644 index 0000000000000..c90547bb6b851 --- /dev/null +++ b/tests/baselines/reference/emitPreComments.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/emitPreComments.ts === + +// This is pre comment +var y = 10; +>y : Symbol(y, Decl(emitPreComments.ts, 2, 3)) + +/** +* @name Foo +* @class +*/ +/**#@+ +* @memberOf Foo# +* @field +*/ +/** +* @name bar +* @type Object[] +*/ +/**#@-*/ +/** +* @name Foo2 +* @class +*/ +/**#@+ +* @memberOf Foo2# +* @field +*/ +/** +* @name bar +* @type Object[] +*/ +/**#@-*/ + diff --git a/tests/baselines/reference/emitPreComments.types b/tests/baselines/reference/emitPreComments.types index 2cc79cfff3b25..c0378350de3d3 100644 --- a/tests/baselines/reference/emitPreComments.types +++ b/tests/baselines/reference/emitPreComments.types @@ -2,7 +2,7 @@ // This is pre comment var y = 10; ->y : number, Symbol(y, Decl(emitPreComments.ts, 2, 3)) +>y : number >10 : number /** diff --git a/tests/baselines/reference/emitRestParametersFunction.symbols b/tests/baselines/reference/emitRestParametersFunction.symbols new file mode 100644 index 0000000000000..c9f9587d805c8 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunction.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts === +function bar(...rest) { } +>bar : Symbol(bar, Decl(emitRestParametersFunction.ts, 0, 0)) +>rest : Symbol(rest, Decl(emitRestParametersFunction.ts, 0, 13)) + +function foo(x: number, y: string, ...rest) { } +>foo : Symbol(foo, Decl(emitRestParametersFunction.ts, 0, 25)) +>x : Symbol(x, Decl(emitRestParametersFunction.ts, 1, 13)) +>y : Symbol(y, Decl(emitRestParametersFunction.ts, 1, 23)) +>rest : Symbol(rest, Decl(emitRestParametersFunction.ts, 1, 34)) + diff --git a/tests/baselines/reference/emitRestParametersFunction.types b/tests/baselines/reference/emitRestParametersFunction.types index f3f1815d15d74..a65adb5770273 100644 --- a/tests/baselines/reference/emitRestParametersFunction.types +++ b/tests/baselines/reference/emitRestParametersFunction.types @@ -1,11 +1,11 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersFunction.ts === function bar(...rest) { } ->bar : (...rest: any[]) => void, Symbol(bar, Decl(emitRestParametersFunction.ts, 0, 0)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunction.ts, 0, 13)) +>bar : (...rest: any[]) => void +>rest : any[] function foo(x: number, y: string, ...rest) { } ->foo : (x: number, y: string, ...rest: any[]) => void, Symbol(foo, Decl(emitRestParametersFunction.ts, 0, 25)) ->x : number, Symbol(x, Decl(emitRestParametersFunction.ts, 1, 13)) ->y : string, Symbol(y, Decl(emitRestParametersFunction.ts, 1, 23)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunction.ts, 1, 34)) +>foo : (x: number, y: string, ...rest: any[]) => void +>x : number +>y : string +>rest : any[] diff --git a/tests/baselines/reference/emitRestParametersFunctionES6.symbols b/tests/baselines/reference/emitRestParametersFunctionES6.symbols new file mode 100644 index 0000000000000..efe743eb31649 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionES6.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts === +function bar(...rest) { } +>bar : Symbol(bar, Decl(emitRestParametersFunctionES6.ts, 0, 0)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionES6.ts, 0, 13)) + +function foo(x: number, y: string, ...rest) { } +>foo : Symbol(foo, Decl(emitRestParametersFunctionES6.ts, 0, 25)) +>x : Symbol(x, Decl(emitRestParametersFunctionES6.ts, 1, 13)) +>y : Symbol(y, Decl(emitRestParametersFunctionES6.ts, 1, 23)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionES6.ts, 1, 34)) + diff --git a/tests/baselines/reference/emitRestParametersFunctionES6.types b/tests/baselines/reference/emitRestParametersFunctionES6.types index c4f410f409832..5689d64c4df67 100644 --- a/tests/baselines/reference/emitRestParametersFunctionES6.types +++ b/tests/baselines/reference/emitRestParametersFunctionES6.types @@ -1,11 +1,11 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersFunctionES6.ts === function bar(...rest) { } ->bar : (...rest: any[]) => void, Symbol(bar, Decl(emitRestParametersFunctionES6.ts, 0, 0)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionES6.ts, 0, 13)) +>bar : (...rest: any[]) => void +>rest : any[] function foo(x: number, y: string, ...rest) { } ->foo : (x: number, y: string, ...rest: any[]) => void, Symbol(foo, Decl(emitRestParametersFunctionES6.ts, 0, 25)) ->x : number, Symbol(x, Decl(emitRestParametersFunctionES6.ts, 1, 13)) ->y : string, Symbol(y, Decl(emitRestParametersFunctionES6.ts, 1, 23)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionES6.ts, 1, 34)) +>foo : (x: number, y: string, ...rest: any[]) => void +>x : number +>y : string +>rest : any[] diff --git a/tests/baselines/reference/emitRestParametersFunctionExpression.symbols b/tests/baselines/reference/emitRestParametersFunctionExpression.symbols new file mode 100644 index 0000000000000..8a42e7b5296e0 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionExpression.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts === +var funcExp = (...rest) => { } +>funcExp : Symbol(funcExp, Decl(emitRestParametersFunctionExpression.ts, 0, 3)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 0, 15)) + +var funcExp1 = (X: number, ...rest) => { } +>funcExp1 : Symbol(funcExp1, Decl(emitRestParametersFunctionExpression.ts, 1, 3)) +>X : Symbol(X, Decl(emitRestParametersFunctionExpression.ts, 1, 16)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 1, 26)) + +var funcExp2 = function (...rest) { } +>funcExp2 : Symbol(funcExp2, Decl(emitRestParametersFunctionExpression.ts, 2, 3)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 2, 25)) + +var funcExp3 = (function (...rest) { })() +>funcExp3 : Symbol(funcExp3, Decl(emitRestParametersFunctionExpression.ts, 3, 3)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 3, 26)) + diff --git a/tests/baselines/reference/emitRestParametersFunctionExpression.types b/tests/baselines/reference/emitRestParametersFunctionExpression.types index 68a005274bd34..9f08b9d9d83f8 100644 --- a/tests/baselines/reference/emitRestParametersFunctionExpression.types +++ b/tests/baselines/reference/emitRestParametersFunctionExpression.types @@ -1,24 +1,24 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpression.ts === var funcExp = (...rest) => { } ->funcExp : (...rest: any[]) => void, Symbol(funcExp, Decl(emitRestParametersFunctionExpression.ts, 0, 3)) +>funcExp : (...rest: any[]) => void >(...rest) => { } : (...rest: any[]) => void ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 0, 15)) +>rest : any[] var funcExp1 = (X: number, ...rest) => { } ->funcExp1 : (X: number, ...rest: any[]) => void, Symbol(funcExp1, Decl(emitRestParametersFunctionExpression.ts, 1, 3)) +>funcExp1 : (X: number, ...rest: any[]) => void >(X: number, ...rest) => { } : (X: number, ...rest: any[]) => void ->X : number, Symbol(X, Decl(emitRestParametersFunctionExpression.ts, 1, 16)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 1, 26)) +>X : number +>rest : any[] var funcExp2 = function (...rest) { } ->funcExp2 : (...rest: any[]) => void, Symbol(funcExp2, Decl(emitRestParametersFunctionExpression.ts, 2, 3)) +>funcExp2 : (...rest: any[]) => void >function (...rest) { } : (...rest: any[]) => void ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 2, 25)) +>rest : any[] var funcExp3 = (function (...rest) { })() ->funcExp3 : void, Symbol(funcExp3, Decl(emitRestParametersFunctionExpression.ts, 3, 3)) +>funcExp3 : void >(function (...rest) { })() : void >(function (...rest) { }) : (...rest: any[]) => void >function (...rest) { } : (...rest: any[]) => void ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpression.ts, 3, 26)) +>rest : any[] diff --git a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.symbols b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.symbols new file mode 100644 index 0000000000000..cf39ed21a8820 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts === +var funcExp = (...rest) => { } +>funcExp : Symbol(funcExp, Decl(emitRestParametersFunctionExpressionES6.ts, 0, 3)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 0, 15)) + +var funcExp1 = (X: number, ...rest) => { } +>funcExp1 : Symbol(funcExp1, Decl(emitRestParametersFunctionExpressionES6.ts, 1, 3)) +>X : Symbol(X, Decl(emitRestParametersFunctionExpressionES6.ts, 1, 16)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 1, 26)) + +var funcExp2 = function (...rest) { } +>funcExp2 : Symbol(funcExp2, Decl(emitRestParametersFunctionExpressionES6.ts, 2, 3)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 2, 25)) + +var funcExp3 = (function (...rest) { })() +>funcExp3 : Symbol(funcExp3, Decl(emitRestParametersFunctionExpressionES6.ts, 3, 3)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 3, 26)) + diff --git a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types index 2d343dd2c0e7a..224cb37367a44 100644 --- a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types +++ b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.types @@ -1,24 +1,24 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersFunctionExpressionES6.ts === var funcExp = (...rest) => { } ->funcExp : (...rest: any[]) => void, Symbol(funcExp, Decl(emitRestParametersFunctionExpressionES6.ts, 0, 3)) +>funcExp : (...rest: any[]) => void >(...rest) => { } : (...rest: any[]) => void ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 0, 15)) +>rest : any[] var funcExp1 = (X: number, ...rest) => { } ->funcExp1 : (X: number, ...rest: any[]) => void, Symbol(funcExp1, Decl(emitRestParametersFunctionExpressionES6.ts, 1, 3)) +>funcExp1 : (X: number, ...rest: any[]) => void >(X: number, ...rest) => { } : (X: number, ...rest: any[]) => void ->X : number, Symbol(X, Decl(emitRestParametersFunctionExpressionES6.ts, 1, 16)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 1, 26)) +>X : number +>rest : any[] var funcExp2 = function (...rest) { } ->funcExp2 : (...rest: any[]) => void, Symbol(funcExp2, Decl(emitRestParametersFunctionExpressionES6.ts, 2, 3)) +>funcExp2 : (...rest: any[]) => void >function (...rest) { } : (...rest: any[]) => void ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 2, 25)) +>rest : any[] var funcExp3 = (function (...rest) { })() ->funcExp3 : void, Symbol(funcExp3, Decl(emitRestParametersFunctionExpressionES6.ts, 3, 3)) +>funcExp3 : void >(function (...rest) { })() : void >(function (...rest) { }) : (...rest: any[]) => void >function (...rest) { } : (...rest: any[]) => void ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionExpressionES6.ts, 3, 26)) +>rest : any[] diff --git a/tests/baselines/reference/emitRestParametersFunctionProperty.symbols b/tests/baselines/reference/emitRestParametersFunctionProperty.symbols new file mode 100644 index 0000000000000..2a0505831b9f3 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionProperty.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts === +var obj: { +>obj : Symbol(obj, Decl(emitRestParametersFunctionProperty.ts, 0, 3)) + + func1: (...rest) => void +>func1 : Symbol(func1, Decl(emitRestParametersFunctionProperty.ts, 0, 10)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionProperty.ts, 1, 12)) +} + +var obj2 = { +>obj2 : Symbol(obj2, Decl(emitRestParametersFunctionProperty.ts, 4, 3)) + + func(...rest) { } +>func : Symbol(func, Decl(emitRestParametersFunctionProperty.ts, 4, 12)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionProperty.ts, 5, 9)) +} diff --git a/tests/baselines/reference/emitRestParametersFunctionProperty.types b/tests/baselines/reference/emitRestParametersFunctionProperty.types index 2ca5586c21727..8242e742ee062 100644 --- a/tests/baselines/reference/emitRestParametersFunctionProperty.types +++ b/tests/baselines/reference/emitRestParametersFunctionProperty.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersFunctionProperty.ts === var obj: { ->obj : { func1: (...rest: any[]) => void; }, Symbol(obj, Decl(emitRestParametersFunctionProperty.ts, 0, 3)) +>obj : { func1: (...rest: any[]) => void; } func1: (...rest) => void ->func1 : (...rest: any[]) => void, Symbol(func1, Decl(emitRestParametersFunctionProperty.ts, 0, 10)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionProperty.ts, 1, 12)) +>func1 : (...rest: any[]) => void +>rest : any[] } var obj2 = { ->obj2 : { func(...rest: any[]): void; }, Symbol(obj2, Decl(emitRestParametersFunctionProperty.ts, 4, 3)) +>obj2 : { func(...rest: any[]): void; } >{ func(...rest) { }} : { func(...rest: any[]): void; } func(...rest) { } ->func : (...rest: any[]) => void, Symbol(func, Decl(emitRestParametersFunctionProperty.ts, 4, 12)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionProperty.ts, 5, 9)) +>func : (...rest: any[]) => void +>rest : any[] } diff --git a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.symbols b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.symbols new file mode 100644 index 0000000000000..a6b00757eec93 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersFunctionPropertyES6.ts === +var obj: { +>obj : Symbol(obj, Decl(emitRestParametersFunctionPropertyES6.ts, 0, 3)) + + func1: (...rest) => void +>func1 : Symbol(func1, Decl(emitRestParametersFunctionPropertyES6.ts, 0, 10)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionPropertyES6.ts, 1, 12)) +} + +var obj2 = { +>obj2 : Symbol(obj2, Decl(emitRestParametersFunctionPropertyES6.ts, 4, 3)) + + func(...rest) { } +>func : Symbol(func, Decl(emitRestParametersFunctionPropertyES6.ts, 4, 12)) +>rest : Symbol(rest, Decl(emitRestParametersFunctionPropertyES6.ts, 5, 9)) +} diff --git a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types index ba840c9b9a3fc..07a008cd4c097 100644 --- a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types +++ b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersFunctionPropertyES6.ts === var obj: { ->obj : { func1: (...rest: any[]) => void; }, Symbol(obj, Decl(emitRestParametersFunctionPropertyES6.ts, 0, 3)) +>obj : { func1: (...rest: any[]) => void; } func1: (...rest) => void ->func1 : (...rest: any[]) => void, Symbol(func1, Decl(emitRestParametersFunctionPropertyES6.ts, 0, 10)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionPropertyES6.ts, 1, 12)) +>func1 : (...rest: any[]) => void +>rest : any[] } var obj2 = { ->obj2 : { func(...rest: any[]): void; }, Symbol(obj2, Decl(emitRestParametersFunctionPropertyES6.ts, 4, 3)) +>obj2 : { func(...rest: any[]): void; } >{ func(...rest) { }} : { func(...rest: any[]): void; } func(...rest) { } ->func : (...rest: any[]) => void, Symbol(func, Decl(emitRestParametersFunctionPropertyES6.ts, 4, 12)) ->rest : any[], Symbol(rest, Decl(emitRestParametersFunctionPropertyES6.ts, 5, 9)) +>func : (...rest: any[]) => void +>rest : any[] } diff --git a/tests/baselines/reference/emitRestParametersMethod.symbols b/tests/baselines/reference/emitRestParametersMethod.symbols new file mode 100644 index 0000000000000..2bfbda925bfd5 --- /dev/null +++ b/tests/baselines/reference/emitRestParametersMethod.symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersMethod.ts === +class C { +>C : Symbol(C, Decl(emitRestParametersMethod.ts, 0, 0)) + + constructor(name: string, ...rest) { } +>name : Symbol(name, Decl(emitRestParametersMethod.ts, 1, 16)) +>rest : Symbol(rest, Decl(emitRestParametersMethod.ts, 1, 29)) + + public bar(...rest) { } +>bar : Symbol(bar, Decl(emitRestParametersMethod.ts, 1, 42)) +>rest : Symbol(rest, Decl(emitRestParametersMethod.ts, 3, 15)) + + public foo(x: number, ...rest) { } +>foo : Symbol(foo, Decl(emitRestParametersMethod.ts, 3, 27)) +>x : Symbol(x, Decl(emitRestParametersMethod.ts, 4, 15)) +>rest : Symbol(rest, Decl(emitRestParametersMethod.ts, 4, 25)) +} + +class D { +>D : Symbol(D, Decl(emitRestParametersMethod.ts, 5, 1)) + + constructor(...rest) { } +>rest : Symbol(rest, Decl(emitRestParametersMethod.ts, 8, 16)) + + public bar(...rest) { } +>bar : Symbol(bar, Decl(emitRestParametersMethod.ts, 8, 28)) +>rest : Symbol(rest, Decl(emitRestParametersMethod.ts, 10, 15)) + + public foo(x: number, ...rest) { } +>foo : Symbol(foo, Decl(emitRestParametersMethod.ts, 10, 27)) +>x : Symbol(x, Decl(emitRestParametersMethod.ts, 11, 15)) +>rest : Symbol(rest, Decl(emitRestParametersMethod.ts, 11, 25)) +} diff --git a/tests/baselines/reference/emitRestParametersMethod.types b/tests/baselines/reference/emitRestParametersMethod.types index 4e9f03cb6d3fe..c94561ca7374b 100644 --- a/tests/baselines/reference/emitRestParametersMethod.types +++ b/tests/baselines/reference/emitRestParametersMethod.types @@ -1,33 +1,33 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersMethod.ts === class C { ->C : C, Symbol(C, Decl(emitRestParametersMethod.ts, 0, 0)) +>C : C constructor(name: string, ...rest) { } ->name : string, Symbol(name, Decl(emitRestParametersMethod.ts, 1, 16)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethod.ts, 1, 29)) +>name : string +>rest : any[] public bar(...rest) { } ->bar : (...rest: any[]) => void, Symbol(bar, Decl(emitRestParametersMethod.ts, 1, 42)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethod.ts, 3, 15)) +>bar : (...rest: any[]) => void +>rest : any[] public foo(x: number, ...rest) { } ->foo : (x: number, ...rest: any[]) => void, Symbol(foo, Decl(emitRestParametersMethod.ts, 3, 27)) ->x : number, Symbol(x, Decl(emitRestParametersMethod.ts, 4, 15)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethod.ts, 4, 25)) +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] } class D { ->D : D, Symbol(D, Decl(emitRestParametersMethod.ts, 5, 1)) +>D : D constructor(...rest) { } ->rest : any[], Symbol(rest, Decl(emitRestParametersMethod.ts, 8, 16)) +>rest : any[] public bar(...rest) { } ->bar : (...rest: any[]) => void, Symbol(bar, Decl(emitRestParametersMethod.ts, 8, 28)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethod.ts, 10, 15)) +>bar : (...rest: any[]) => void +>rest : any[] public foo(x: number, ...rest) { } ->foo : (x: number, ...rest: any[]) => void, Symbol(foo, Decl(emitRestParametersMethod.ts, 10, 27)) ->x : number, Symbol(x, Decl(emitRestParametersMethod.ts, 11, 15)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethod.ts, 11, 25)) +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] } diff --git a/tests/baselines/reference/emitRestParametersMethodES6.symbols b/tests/baselines/reference/emitRestParametersMethodES6.symbols new file mode 100644 index 0000000000000..e79ab9bb26e8f --- /dev/null +++ b/tests/baselines/reference/emitRestParametersMethodES6.symbols @@ -0,0 +1,34 @@ +=== tests/cases/conformance/es6/restParameters/emitRestParametersMethodES6.ts === +class C { +>C : Symbol(C, Decl(emitRestParametersMethodES6.ts, 0, 0)) + + constructor(name: string, ...rest) { } +>name : Symbol(name, Decl(emitRestParametersMethodES6.ts, 1, 16)) +>rest : Symbol(rest, Decl(emitRestParametersMethodES6.ts, 1, 29)) + + public bar(...rest) { } +>bar : Symbol(bar, Decl(emitRestParametersMethodES6.ts, 1, 42)) +>rest : Symbol(rest, Decl(emitRestParametersMethodES6.ts, 3, 15)) + + public foo(x: number, ...rest) { } +>foo : Symbol(foo, Decl(emitRestParametersMethodES6.ts, 3, 27)) +>x : Symbol(x, Decl(emitRestParametersMethodES6.ts, 4, 15)) +>rest : Symbol(rest, Decl(emitRestParametersMethodES6.ts, 4, 25)) +} + +class D { +>D : Symbol(D, Decl(emitRestParametersMethodES6.ts, 5, 1)) + + constructor(...rest) { } +>rest : Symbol(rest, Decl(emitRestParametersMethodES6.ts, 8, 16)) + + public bar(...rest) { } +>bar : Symbol(bar, Decl(emitRestParametersMethodES6.ts, 8, 28)) +>rest : Symbol(rest, Decl(emitRestParametersMethodES6.ts, 10, 15)) + + public foo(x: number, ...rest) { } +>foo : Symbol(foo, Decl(emitRestParametersMethodES6.ts, 10, 27)) +>x : Symbol(x, Decl(emitRestParametersMethodES6.ts, 11, 15)) +>rest : Symbol(rest, Decl(emitRestParametersMethodES6.ts, 11, 25)) +} + diff --git a/tests/baselines/reference/emitRestParametersMethodES6.types b/tests/baselines/reference/emitRestParametersMethodES6.types index 48d3fdd229215..4555a5c666d51 100644 --- a/tests/baselines/reference/emitRestParametersMethodES6.types +++ b/tests/baselines/reference/emitRestParametersMethodES6.types @@ -1,34 +1,34 @@ === tests/cases/conformance/es6/restParameters/emitRestParametersMethodES6.ts === class C { ->C : C, Symbol(C, Decl(emitRestParametersMethodES6.ts, 0, 0)) +>C : C constructor(name: string, ...rest) { } ->name : string, Symbol(name, Decl(emitRestParametersMethodES6.ts, 1, 16)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethodES6.ts, 1, 29)) +>name : string +>rest : any[] public bar(...rest) { } ->bar : (...rest: any[]) => void, Symbol(bar, Decl(emitRestParametersMethodES6.ts, 1, 42)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethodES6.ts, 3, 15)) +>bar : (...rest: any[]) => void +>rest : any[] public foo(x: number, ...rest) { } ->foo : (x: number, ...rest: any[]) => void, Symbol(foo, Decl(emitRestParametersMethodES6.ts, 3, 27)) ->x : number, Symbol(x, Decl(emitRestParametersMethodES6.ts, 4, 15)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethodES6.ts, 4, 25)) +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] } class D { ->D : D, Symbol(D, Decl(emitRestParametersMethodES6.ts, 5, 1)) +>D : D constructor(...rest) { } ->rest : any[], Symbol(rest, Decl(emitRestParametersMethodES6.ts, 8, 16)) +>rest : any[] public bar(...rest) { } ->bar : (...rest: any[]) => void, Symbol(bar, Decl(emitRestParametersMethodES6.ts, 8, 28)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethodES6.ts, 10, 15)) +>bar : (...rest: any[]) => void +>rest : any[] public foo(x: number, ...rest) { } ->foo : (x: number, ...rest: any[]) => void, Symbol(foo, Decl(emitRestParametersMethodES6.ts, 10, 27)) ->x : number, Symbol(x, Decl(emitRestParametersMethodES6.ts, 11, 15)) ->rest : any[], Symbol(rest, Decl(emitRestParametersMethodES6.ts, 11, 25)) +>foo : (x: number, ...rest: any[]) => void +>x : number +>rest : any[] } diff --git a/tests/baselines/reference/emptyEnum.symbols b/tests/baselines/reference/emptyEnum.symbols new file mode 100644 index 0000000000000..c586c8879f524 --- /dev/null +++ b/tests/baselines/reference/emptyEnum.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/emptyEnum.ts === +enum E { +>E : Symbol(E, Decl(emptyEnum.ts, 0, 0)) +} diff --git a/tests/baselines/reference/emptyEnum.types b/tests/baselines/reference/emptyEnum.types index 4212bb9880130..000434dcc480c 100644 --- a/tests/baselines/reference/emptyEnum.types +++ b/tests/baselines/reference/emptyEnum.types @@ -1,4 +1,4 @@ === tests/cases/compiler/emptyEnum.ts === enum E { ->E : E, Symbol(E, Decl(emptyEnum.ts, 0, 0)) +>E : E } diff --git a/tests/baselines/reference/emptyExpr.symbols b/tests/baselines/reference/emptyExpr.symbols new file mode 100644 index 0000000000000..e699404332f09 --- /dev/null +++ b/tests/baselines/reference/emptyExpr.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/emptyExpr.ts === +[{},] +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/emptyFile-declaration.symbols b/tests/baselines/reference/emptyFile-declaration.symbols new file mode 100644 index 0000000000000..496fbbb807df4 --- /dev/null +++ b/tests/baselines/reference/emptyFile-declaration.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/emptyFile-declaration.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/emptyFile-souremap.symbols b/tests/baselines/reference/emptyFile-souremap.symbols new file mode 100644 index 0000000000000..5c7f48cfb4994 --- /dev/null +++ b/tests/baselines/reference/emptyFile-souremap.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/emptyFile-souremap.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/emptyFile.symbols b/tests/baselines/reference/emptyFile.symbols new file mode 100644 index 0000000000000..95478466b8aec --- /dev/null +++ b/tests/baselines/reference/emptyFile.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/emptyFile.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/emptyIndexer.symbols b/tests/baselines/reference/emptyIndexer.symbols new file mode 100644 index 0000000000000..6c3bad0234966 --- /dev/null +++ b/tests/baselines/reference/emptyIndexer.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/emptyIndexer.ts === +interface I1 { +>I1 : Symbol(I1, Decl(emptyIndexer.ts, 0, 0)) + + m(): number; +>m : Symbol(m, Decl(emptyIndexer.ts, 0, 14)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(emptyIndexer.ts, 2, 1)) + + [s:string]: I1; +>s : Symbol(s, Decl(emptyIndexer.ts, 5, 2)) +>I1 : Symbol(I1, Decl(emptyIndexer.ts, 0, 0)) +} + + +var x: I2; +>x : Symbol(x, Decl(emptyIndexer.ts, 9, 3)) +>I2 : Symbol(I2, Decl(emptyIndexer.ts, 2, 1)) + +var n = x[''].m(); // should not crash compiler +>n : Symbol(n, Decl(emptyIndexer.ts, 11, 3)) +>x[''].m : Symbol(I1.m, Decl(emptyIndexer.ts, 0, 14)) +>x : Symbol(x, Decl(emptyIndexer.ts, 9, 3)) +>m : Symbol(I1.m, Decl(emptyIndexer.ts, 0, 14)) + diff --git a/tests/baselines/reference/emptyIndexer.types b/tests/baselines/reference/emptyIndexer.types index be9be71e701e1..5361ed4d7f4e3 100644 --- a/tests/baselines/reference/emptyIndexer.types +++ b/tests/baselines/reference/emptyIndexer.types @@ -1,30 +1,30 @@ === tests/cases/compiler/emptyIndexer.ts === interface I1 { ->I1 : I1, Symbol(I1, Decl(emptyIndexer.ts, 0, 0)) +>I1 : I1 m(): number; ->m : () => number, Symbol(m, Decl(emptyIndexer.ts, 0, 14)) +>m : () => number } interface I2 { ->I2 : I2, Symbol(I2, Decl(emptyIndexer.ts, 2, 1)) +>I2 : I2 [s:string]: I1; ->s : string, Symbol(s, Decl(emptyIndexer.ts, 5, 2)) ->I1 : I1, Symbol(I1, Decl(emptyIndexer.ts, 0, 0)) +>s : string +>I1 : I1 } var x: I2; ->x : I2, Symbol(x, Decl(emptyIndexer.ts, 9, 3)) ->I2 : I2, Symbol(I2, Decl(emptyIndexer.ts, 2, 1)) +>x : I2 +>I2 : I2 var n = x[''].m(); // should not crash compiler ->n : number, Symbol(n, Decl(emptyIndexer.ts, 11, 3)) +>n : number >x[''].m() : number ->x[''].m : () => number, Symbol(I1.m, Decl(emptyIndexer.ts, 0, 14)) +>x[''].m : () => number >x[''] : I1 ->x : I2, Symbol(x, Decl(emptyIndexer.ts, 9, 3)) +>x : I2 >'' : string ->m : () => number, Symbol(I1.m, Decl(emptyIndexer.ts, 0, 14)) +>m : () => number diff --git a/tests/baselines/reference/enumBasics.symbols b/tests/baselines/reference/enumBasics.symbols new file mode 100644 index 0000000000000..32bbfc3124e5c --- /dev/null +++ b/tests/baselines/reference/enumBasics.symbols @@ -0,0 +1,210 @@ +=== tests/cases/conformance/enums/enumBasics.ts === +// Enum without initializers have first member = 0 and successive members = N + 1 +enum E1 { +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) + + A, +>A : Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) + + B, +>B : Symbol(E1.B, Decl(enumBasics.ts, 2, 6)) + + C +>C : Symbol(E1.C, Decl(enumBasics.ts, 3, 6)) +} + +// Enum type is a subtype of Number +var x: number = E1.A; +>x : Symbol(x, Decl(enumBasics.ts, 8, 3)) +>E1.A : Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>A : Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) + +// Enum object type is anonymous with properties of the enum type and numeric indexer +var e = E1; +>e : Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) + +var e: { +>e : Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) + + A: E1; +>A : Symbol(A, Decl(enumBasics.ts, 12, 8)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) + + B: E1; +>B : Symbol(B, Decl(enumBasics.ts, 13, 10)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) + + C: E1; +>C : Symbol(C, Decl(enumBasics.ts, 14, 10)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) + + [n: number]: string; +>n : Symbol(n, Decl(enumBasics.ts, 16, 5)) + +}; +var e: typeof E1; +>e : Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) + +// Reverse mapping of enum returns string name of property +var s = E1[e.A]; +>s : Symbol(s, Decl(enumBasics.ts, 21, 3), Decl(enumBasics.ts, 22, 3)) +>E1 : Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>e.A : Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) +>e : Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) +>A : Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) + +var s: string; +>s : Symbol(s, Decl(enumBasics.ts, 21, 3), Decl(enumBasics.ts, 22, 3)) + + +// Enum with only constant members +enum E2 { +>E2 : Symbol(E2, Decl(enumBasics.ts, 22, 14)) + + A = 1, B = 2, C = 3 +>A : Symbol(E2.A, Decl(enumBasics.ts, 26, 9)) +>B : Symbol(E2.B, Decl(enumBasics.ts, 27, 10)) +>C : Symbol(E2.C, Decl(enumBasics.ts, 27, 17)) +} + +// Enum with only computed members +enum E3 { +>E3 : Symbol(E3, Decl(enumBasics.ts, 28, 1)) + + X = 'foo'.length, Y = 4 + 3, Z = +'foo' +>X : Symbol(E3.X, Decl(enumBasics.ts, 31, 9)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>Y : Symbol(E3.Y, Decl(enumBasics.ts, 32, 21)) +>Z : Symbol(E3.Z, Decl(enumBasics.ts, 32, 32)) +} + +// Enum with constant members followed by computed members +enum E4 { +>E4 : Symbol(E4, Decl(enumBasics.ts, 33, 1)) + + X = 0, Y, Z = 'foo'.length +>X : Symbol(E4.X, Decl(enumBasics.ts, 36, 9)) +>Y : Symbol(E4.Y, Decl(enumBasics.ts, 37, 10)) +>Z : Symbol(E4.Z, Decl(enumBasics.ts, 37, 13)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +} + +// Enum with > 2 constant members with no initializer for first member, non zero initializer for second element +enum E5 { +>E5 : Symbol(E5, Decl(enumBasics.ts, 38, 1)) + + A, +>A : Symbol(E5.A, Decl(enumBasics.ts, 41, 9)) + + B = 3, +>B : Symbol(E5.B, Decl(enumBasics.ts, 42, 6)) + + C // 4 +>C : Symbol(E5.C, Decl(enumBasics.ts, 43, 10)) +} + +enum E6 { +>E6 : Symbol(E6, Decl(enumBasics.ts, 45, 1)) + + A, +>A : Symbol(E6.A, Decl(enumBasics.ts, 47, 9)) + + B = 0, +>B : Symbol(E6.B, Decl(enumBasics.ts, 48, 6)) + + C // 1 +>C : Symbol(E6.C, Decl(enumBasics.ts, 49, 10)) +} + +// Enum with computed member initializer of type 'any' +enum E7 { +>E7 : Symbol(E7, Decl(enumBasics.ts, 51, 1)) + + A = 'foo'['foo'] +>A : Symbol(E7.A, Decl(enumBasics.ts, 54, 9)) +} + +// Enum with computed member initializer of type number +enum E8 { +>E8 : Symbol(E8, Decl(enumBasics.ts, 56, 1)) + + B = 'foo'['foo'] +>B : Symbol(E8.B, Decl(enumBasics.ts, 59, 9)) +} + +//Enum with computed member intializer of same enum type +enum E9 { +>E9 : Symbol(E9, Decl(enumBasics.ts, 61, 1)) + + A, +>A : Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) + + B = A +>B : Symbol(E9.B, Decl(enumBasics.ts, 65, 6)) +>A : Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) +} + +// (refer to .js to validate) +// Enum constant members are propagated +var doNotPropagate = [ +>doNotPropagate : Symbol(doNotPropagate, Decl(enumBasics.ts, 71, 3)) + + E8.B, E7.A, E4.Z, E3.X, E3.Y, E3.Z +>E8.B : Symbol(E8.B, Decl(enumBasics.ts, 59, 9)) +>E8 : Symbol(E8, Decl(enumBasics.ts, 56, 1)) +>B : Symbol(E8.B, Decl(enumBasics.ts, 59, 9)) +>E7.A : Symbol(E7.A, Decl(enumBasics.ts, 54, 9)) +>E7 : Symbol(E7, Decl(enumBasics.ts, 51, 1)) +>A : Symbol(E7.A, Decl(enumBasics.ts, 54, 9)) +>E4.Z : Symbol(E4.Z, Decl(enumBasics.ts, 37, 13)) +>E4 : Symbol(E4, Decl(enumBasics.ts, 33, 1)) +>Z : Symbol(E4.Z, Decl(enumBasics.ts, 37, 13)) +>E3.X : Symbol(E3.X, Decl(enumBasics.ts, 31, 9)) +>E3 : Symbol(E3, Decl(enumBasics.ts, 28, 1)) +>X : Symbol(E3.X, Decl(enumBasics.ts, 31, 9)) +>E3.Y : Symbol(E3.Y, Decl(enumBasics.ts, 32, 21)) +>E3 : Symbol(E3, Decl(enumBasics.ts, 28, 1)) +>Y : Symbol(E3.Y, Decl(enumBasics.ts, 32, 21)) +>E3.Z : Symbol(E3.Z, Decl(enumBasics.ts, 32, 32)) +>E3 : Symbol(E3, Decl(enumBasics.ts, 28, 1)) +>Z : Symbol(E3.Z, Decl(enumBasics.ts, 32, 32)) + +]; +// Enum computed members are not propagated +var doPropagate = [ +>doPropagate : Symbol(doPropagate, Decl(enumBasics.ts, 75, 3)) + + E9.A, E9.B, E6.B, E6.C, E6.A, E5.A, E5.B, E5.C +>E9.A : Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) +>E9 : Symbol(E9, Decl(enumBasics.ts, 61, 1)) +>A : Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) +>E9.B : Symbol(E9.B, Decl(enumBasics.ts, 65, 6)) +>E9 : Symbol(E9, Decl(enumBasics.ts, 61, 1)) +>B : Symbol(E9.B, Decl(enumBasics.ts, 65, 6)) +>E6.B : Symbol(E6.B, Decl(enumBasics.ts, 48, 6)) +>E6 : Symbol(E6, Decl(enumBasics.ts, 45, 1)) +>B : Symbol(E6.B, Decl(enumBasics.ts, 48, 6)) +>E6.C : Symbol(E6.C, Decl(enumBasics.ts, 49, 10)) +>E6 : Symbol(E6, Decl(enumBasics.ts, 45, 1)) +>C : Symbol(E6.C, Decl(enumBasics.ts, 49, 10)) +>E6.A : Symbol(E6.A, Decl(enumBasics.ts, 47, 9)) +>E6 : Symbol(E6, Decl(enumBasics.ts, 45, 1)) +>A : Symbol(E6.A, Decl(enumBasics.ts, 47, 9)) +>E5.A : Symbol(E5.A, Decl(enumBasics.ts, 41, 9)) +>E5 : Symbol(E5, Decl(enumBasics.ts, 38, 1)) +>A : Symbol(E5.A, Decl(enumBasics.ts, 41, 9)) +>E5.B : Symbol(E5.B, Decl(enumBasics.ts, 42, 6)) +>E5 : Symbol(E5, Decl(enumBasics.ts, 38, 1)) +>B : Symbol(E5.B, Decl(enumBasics.ts, 42, 6)) +>E5.C : Symbol(E5.C, Decl(enumBasics.ts, 43, 10)) +>E5 : Symbol(E5, Decl(enumBasics.ts, 38, 1)) +>C : Symbol(E5.C, Decl(enumBasics.ts, 43, 10)) + +]; + + diff --git a/tests/baselines/reference/enumBasics.types b/tests/baselines/reference/enumBasics.types index 01b0cc1b33428..6a147f01062ef 100644 --- a/tests/baselines/reference/enumBasics.types +++ b/tests/baselines/reference/enumBasics.types @@ -1,146 +1,146 @@ === tests/cases/conformance/enums/enumBasics.ts === // Enum without initializers have first member = 0 and successive members = N + 1 enum E1 { ->E1 : E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>E1 : E1 A, ->A : E1, Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) +>A : E1 B, ->B : E1, Symbol(E1.B, Decl(enumBasics.ts, 2, 6)) +>B : E1 C ->C : E1, Symbol(E1.C, Decl(enumBasics.ts, 3, 6)) +>C : E1 } // Enum type is a subtype of Number var x: number = E1.A; ->x : number, Symbol(x, Decl(enumBasics.ts, 8, 3)) ->E1.A : E1, Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) ->E1 : typeof E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) ->A : E1, Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) +>x : number +>E1.A : E1 +>E1 : typeof E1 +>A : E1 // Enum object type is anonymous with properties of the enum type and numeric indexer var e = E1; ->e : typeof E1, Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) ->E1 : typeof E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>e : typeof E1 +>E1 : typeof E1 var e: { ->e : typeof E1, Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) +>e : typeof E1 A: E1; ->A : E1, Symbol(A, Decl(enumBasics.ts, 12, 8)) ->E1 : E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>A : E1 +>E1 : E1 B: E1; ->B : E1, Symbol(B, Decl(enumBasics.ts, 13, 10)) ->E1 : E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>B : E1 +>E1 : E1 C: E1; ->C : E1, Symbol(C, Decl(enumBasics.ts, 14, 10)) ->E1 : E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>C : E1 +>E1 : E1 [n: number]: string; ->n : number, Symbol(n, Decl(enumBasics.ts, 16, 5)) +>n : number }; var e: typeof E1; ->e : typeof E1, Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) ->E1 : typeof E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) +>e : typeof E1 +>E1 : typeof E1 // Reverse mapping of enum returns string name of property var s = E1[e.A]; ->s : string, Symbol(s, Decl(enumBasics.ts, 21, 3), Decl(enumBasics.ts, 22, 3)) +>s : string >E1[e.A] : string ->E1 : typeof E1, Symbol(E1, Decl(enumBasics.ts, 0, 0)) ->e.A : E1, Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) ->e : typeof E1, Symbol(e, Decl(enumBasics.ts, 11, 3), Decl(enumBasics.ts, 12, 3), Decl(enumBasics.ts, 18, 3)) ->A : E1, Symbol(E1.A, Decl(enumBasics.ts, 1, 9)) +>E1 : typeof E1 +>e.A : E1 +>e : typeof E1 +>A : E1 var s: string; ->s : string, Symbol(s, Decl(enumBasics.ts, 21, 3), Decl(enumBasics.ts, 22, 3)) +>s : string // Enum with only constant members enum E2 { ->E2 : E2, Symbol(E2, Decl(enumBasics.ts, 22, 14)) +>E2 : E2 A = 1, B = 2, C = 3 ->A : E2, Symbol(E2.A, Decl(enumBasics.ts, 26, 9)) +>A : E2 >1 : number ->B : E2, Symbol(E2.B, Decl(enumBasics.ts, 27, 10)) +>B : E2 >2 : number ->C : E2, Symbol(E2.C, Decl(enumBasics.ts, 27, 17)) +>C : E2 >3 : number } // Enum with only computed members enum E3 { ->E3 : E3, Symbol(E3, Decl(enumBasics.ts, 28, 1)) +>E3 : E3 X = 'foo'.length, Y = 4 + 3, Z = +'foo' ->X : E3, Symbol(E3.X, Decl(enumBasics.ts, 31, 9)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>X : E3 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->Y : E3, Symbol(E3.Y, Decl(enumBasics.ts, 32, 21)) +>length : number +>Y : E3 >4 + 3 : number >4 : number >3 : number ->Z : E3, Symbol(E3.Z, Decl(enumBasics.ts, 32, 32)) +>Z : E3 >+'foo' : number >'foo' : string } // Enum with constant members followed by computed members enum E4 { ->E4 : E4, Symbol(E4, Decl(enumBasics.ts, 33, 1)) +>E4 : E4 X = 0, Y, Z = 'foo'.length ->X : E4, Symbol(E4.X, Decl(enumBasics.ts, 36, 9)) +>X : E4 >0 : number ->Y : E4, Symbol(E4.Y, Decl(enumBasics.ts, 37, 10)) ->Z : E4, Symbol(E4.Z, Decl(enumBasics.ts, 37, 13)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>Y : E4 +>Z : E4 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number } // Enum with > 2 constant members with no initializer for first member, non zero initializer for second element enum E5 { ->E5 : E5, Symbol(E5, Decl(enumBasics.ts, 38, 1)) +>E5 : E5 A, ->A : E5, Symbol(E5.A, Decl(enumBasics.ts, 41, 9)) +>A : E5 B = 3, ->B : E5, Symbol(E5.B, Decl(enumBasics.ts, 42, 6)) +>B : E5 >3 : number C // 4 ->C : E5, Symbol(E5.C, Decl(enumBasics.ts, 43, 10)) +>C : E5 } enum E6 { ->E6 : E6, Symbol(E6, Decl(enumBasics.ts, 45, 1)) +>E6 : E6 A, ->A : E6, Symbol(E6.A, Decl(enumBasics.ts, 47, 9)) +>A : E6 B = 0, ->B : E6, Symbol(E6.B, Decl(enumBasics.ts, 48, 6)) +>B : E6 >0 : number C // 1 ->C : E6, Symbol(E6.C, Decl(enumBasics.ts, 49, 10)) +>C : E6 } // Enum with computed member initializer of type 'any' enum E7 { ->E7 : E7, Symbol(E7, Decl(enumBasics.ts, 51, 1)) +>E7 : E7 A = 'foo'['foo'] ->A : E7, Symbol(E7.A, Decl(enumBasics.ts, 54, 9)) +>A : E7 >'foo'['foo'] : any >'foo' : string >'foo' : string @@ -148,10 +148,10 @@ enum E7 { // Enum with computed member initializer of type number enum E8 { ->E8 : E8, Symbol(E8, Decl(enumBasics.ts, 56, 1)) +>E8 : E8 B = 'foo'['foo'] ->B : E8, Symbol(E8.B, Decl(enumBasics.ts, 59, 9)) +>B : E8 >'foo'['foo'] : any >'foo' : string >'foo' : string @@ -159,73 +159,73 @@ enum E8 { //Enum with computed member intializer of same enum type enum E9 { ->E9 : E9, Symbol(E9, Decl(enumBasics.ts, 61, 1)) +>E9 : E9 A, ->A : E9, Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) +>A : E9 B = A ->B : E9, Symbol(E9.B, Decl(enumBasics.ts, 65, 6)) ->A : E9, Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) +>B : E9 +>A : E9 } // (refer to .js to validate) // Enum constant members are propagated var doNotPropagate = [ ->doNotPropagate : (E3 | E4 | E7 | E8)[], Symbol(doNotPropagate, Decl(enumBasics.ts, 71, 3)) +>doNotPropagate : (E3 | E4 | E7 | E8)[] >[ E8.B, E7.A, E4.Z, E3.X, E3.Y, E3.Z] : (E3 | E4 | E7 | E8)[] E8.B, E7.A, E4.Z, E3.X, E3.Y, E3.Z ->E8.B : E8, Symbol(E8.B, Decl(enumBasics.ts, 59, 9)) ->E8 : typeof E8, Symbol(E8, Decl(enumBasics.ts, 56, 1)) ->B : E8, Symbol(E8.B, Decl(enumBasics.ts, 59, 9)) ->E7.A : E7, Symbol(E7.A, Decl(enumBasics.ts, 54, 9)) ->E7 : typeof E7, Symbol(E7, Decl(enumBasics.ts, 51, 1)) ->A : E7, Symbol(E7.A, Decl(enumBasics.ts, 54, 9)) ->E4.Z : E4, Symbol(E4.Z, Decl(enumBasics.ts, 37, 13)) ->E4 : typeof E4, Symbol(E4, Decl(enumBasics.ts, 33, 1)) ->Z : E4, Symbol(E4.Z, Decl(enumBasics.ts, 37, 13)) ->E3.X : E3, Symbol(E3.X, Decl(enumBasics.ts, 31, 9)) ->E3 : typeof E3, Symbol(E3, Decl(enumBasics.ts, 28, 1)) ->X : E3, Symbol(E3.X, Decl(enumBasics.ts, 31, 9)) ->E3.Y : E3, Symbol(E3.Y, Decl(enumBasics.ts, 32, 21)) ->E3 : typeof E3, Symbol(E3, Decl(enumBasics.ts, 28, 1)) ->Y : E3, Symbol(E3.Y, Decl(enumBasics.ts, 32, 21)) ->E3.Z : E3, Symbol(E3.Z, Decl(enumBasics.ts, 32, 32)) ->E3 : typeof E3, Symbol(E3, Decl(enumBasics.ts, 28, 1)) ->Z : E3, Symbol(E3.Z, Decl(enumBasics.ts, 32, 32)) +>E8.B : E8 +>E8 : typeof E8 +>B : E8 +>E7.A : E7 +>E7 : typeof E7 +>A : E7 +>E4.Z : E4 +>E4 : typeof E4 +>Z : E4 +>E3.X : E3 +>E3 : typeof E3 +>X : E3 +>E3.Y : E3 +>E3 : typeof E3 +>Y : E3 +>E3.Z : E3 +>E3 : typeof E3 +>Z : E3 ]; // Enum computed members are not propagated var doPropagate = [ ->doPropagate : (E5 | E6 | E9)[], Symbol(doPropagate, Decl(enumBasics.ts, 75, 3)) +>doPropagate : (E5 | E6 | E9)[] >[ E9.A, E9.B, E6.B, E6.C, E6.A, E5.A, E5.B, E5.C] : (E5 | E6 | E9)[] E9.A, E9.B, E6.B, E6.C, E6.A, E5.A, E5.B, E5.C ->E9.A : E9, Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) ->E9 : typeof E9, Symbol(E9, Decl(enumBasics.ts, 61, 1)) ->A : E9, Symbol(E9.A, Decl(enumBasics.ts, 64, 9)) ->E9.B : E9, Symbol(E9.B, Decl(enumBasics.ts, 65, 6)) ->E9 : typeof E9, Symbol(E9, Decl(enumBasics.ts, 61, 1)) ->B : E9, Symbol(E9.B, Decl(enumBasics.ts, 65, 6)) ->E6.B : E6, Symbol(E6.B, Decl(enumBasics.ts, 48, 6)) ->E6 : typeof E6, Symbol(E6, Decl(enumBasics.ts, 45, 1)) ->B : E6, Symbol(E6.B, Decl(enumBasics.ts, 48, 6)) ->E6.C : E6, Symbol(E6.C, Decl(enumBasics.ts, 49, 10)) ->E6 : typeof E6, Symbol(E6, Decl(enumBasics.ts, 45, 1)) ->C : E6, Symbol(E6.C, Decl(enumBasics.ts, 49, 10)) ->E6.A : E6, Symbol(E6.A, Decl(enumBasics.ts, 47, 9)) ->E6 : typeof E6, Symbol(E6, Decl(enumBasics.ts, 45, 1)) ->A : E6, Symbol(E6.A, Decl(enumBasics.ts, 47, 9)) ->E5.A : E5, Symbol(E5.A, Decl(enumBasics.ts, 41, 9)) ->E5 : typeof E5, Symbol(E5, Decl(enumBasics.ts, 38, 1)) ->A : E5, Symbol(E5.A, Decl(enumBasics.ts, 41, 9)) ->E5.B : E5, Symbol(E5.B, Decl(enumBasics.ts, 42, 6)) ->E5 : typeof E5, Symbol(E5, Decl(enumBasics.ts, 38, 1)) ->B : E5, Symbol(E5.B, Decl(enumBasics.ts, 42, 6)) ->E5.C : E5, Symbol(E5.C, Decl(enumBasics.ts, 43, 10)) ->E5 : typeof E5, Symbol(E5, Decl(enumBasics.ts, 38, 1)) ->C : E5, Symbol(E5.C, Decl(enumBasics.ts, 43, 10)) +>E9.A : E9 +>E9 : typeof E9 +>A : E9 +>E9.B : E9 +>E9 : typeof E9 +>B : E9 +>E6.B : E6 +>E6 : typeof E6 +>B : E6 +>E6.C : E6 +>E6 : typeof E6 +>C : E6 +>E6.A : E6 +>E6 : typeof E6 +>A : E6 +>E5.A : E5 +>E5 : typeof E5 +>A : E5 +>E5.B : E5 +>E5 : typeof E5 +>B : E5 +>E5.C : E5 +>E5 : typeof E5 +>C : E5 ]; diff --git a/tests/baselines/reference/enumCodeGenNewLines1.symbols b/tests/baselines/reference/enumCodeGenNewLines1.symbols new file mode 100644 index 0000000000000..c995cd60f75c7 --- /dev/null +++ b/tests/baselines/reference/enumCodeGenNewLines1.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/enumCodeGenNewLines1.ts === +enum foo { +>foo : Symbol(foo, Decl(enumCodeGenNewLines1.ts, 0, 0)) + + b = 1, +>b : Symbol(foo.b, Decl(enumCodeGenNewLines1.ts, 0, 10)) + + c = 2, +>c : Symbol(foo.c, Decl(enumCodeGenNewLines1.ts, 1, 8)) + + d = 3 +>d : Symbol(foo.d, Decl(enumCodeGenNewLines1.ts, 2, 8)) +} + diff --git a/tests/baselines/reference/enumCodeGenNewLines1.types b/tests/baselines/reference/enumCodeGenNewLines1.types index 95574577b0c40..6321511ef2dac 100644 --- a/tests/baselines/reference/enumCodeGenNewLines1.types +++ b/tests/baselines/reference/enumCodeGenNewLines1.types @@ -1,17 +1,17 @@ === tests/cases/compiler/enumCodeGenNewLines1.ts === enum foo { ->foo : foo, Symbol(foo, Decl(enumCodeGenNewLines1.ts, 0, 0)) +>foo : foo b = 1, ->b : foo, Symbol(foo.b, Decl(enumCodeGenNewLines1.ts, 0, 10)) +>b : foo >1 : number c = 2, ->c : foo, Symbol(foo.c, Decl(enumCodeGenNewLines1.ts, 1, 8)) +>c : foo >2 : number d = 3 ->d : foo, Symbol(foo.d, Decl(enumCodeGenNewLines1.ts, 2, 8)) +>d : foo >3 : number } diff --git a/tests/baselines/reference/enumDecl1.symbols b/tests/baselines/reference/enumDecl1.symbols new file mode 100644 index 0000000000000..fc8d900ff042d --- /dev/null +++ b/tests/baselines/reference/enumDecl1.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/enumDecl1.ts === + +declare module mAmbient { +>mAmbient : Symbol(mAmbient, Decl(enumDecl1.ts, 0, 0)) + + enum e { +>e : Symbol(e, Decl(enumDecl1.ts, 1, 25)) + + x, +>x : Symbol(e.x, Decl(enumDecl1.ts, 2, 12)) + + y, +>y : Symbol(e.y, Decl(enumDecl1.ts, 3, 10)) + + z +>z : Symbol(e.z, Decl(enumDecl1.ts, 4, 10)) + } +} + diff --git a/tests/baselines/reference/enumDecl1.types b/tests/baselines/reference/enumDecl1.types index 134ea2fe6f303..22d2b6b4d69a1 100644 --- a/tests/baselines/reference/enumDecl1.types +++ b/tests/baselines/reference/enumDecl1.types @@ -1,19 +1,19 @@ === tests/cases/compiler/enumDecl1.ts === declare module mAmbient { ->mAmbient : typeof mAmbient, Symbol(mAmbient, Decl(enumDecl1.ts, 0, 0)) +>mAmbient : typeof mAmbient enum e { ->e : e, Symbol(e, Decl(enumDecl1.ts, 1, 25)) +>e : e x, ->x : e, Symbol(e.x, Decl(enumDecl1.ts, 2, 12)) +>x : e y, ->y : e, Symbol(e.y, Decl(enumDecl1.ts, 3, 10)) +>y : e z ->z : e, Symbol(e.z, Decl(enumDecl1.ts, 4, 10)) +>z : e } } diff --git a/tests/baselines/reference/enumFromExternalModule.symbols b/tests/baselines/reference/enumFromExternalModule.symbols new file mode 100644 index 0000000000000..90ff7cd7aac2e --- /dev/null +++ b/tests/baselines/reference/enumFromExternalModule.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/enumFromExternalModule_1.ts === +/// +import f = require('enumFromExternalModule_0'); +>f : Symbol(f, Decl(enumFromExternalModule_1.ts, 0, 0)) + +var x = f.Mode.Open; +>x : Symbol(x, Decl(enumFromExternalModule_1.ts, 3, 3)) +>f.Mode.Open : Symbol(f.Mode.Open, Decl(enumFromExternalModule_0.ts, 0, 18)) +>f.Mode : Symbol(f.Mode, Decl(enumFromExternalModule_0.ts, 0, 0)) +>f : Symbol(f, Decl(enumFromExternalModule_1.ts, 0, 0)) +>Mode : Symbol(f.Mode, Decl(enumFromExternalModule_0.ts, 0, 0)) +>Open : Symbol(f.Mode.Open, Decl(enumFromExternalModule_0.ts, 0, 18)) + +=== tests/cases/compiler/enumFromExternalModule_0.ts === +export enum Mode { Open } +>Mode : Symbol(Mode, Decl(enumFromExternalModule_0.ts, 0, 0)) +>Open : Symbol(Mode.Open, Decl(enumFromExternalModule_0.ts, 0, 18)) + diff --git a/tests/baselines/reference/enumFromExternalModule.types b/tests/baselines/reference/enumFromExternalModule.types index fecbd500dde7f..554ac17ec67c0 100644 --- a/tests/baselines/reference/enumFromExternalModule.types +++ b/tests/baselines/reference/enumFromExternalModule.types @@ -1,18 +1,18 @@ === tests/cases/compiler/enumFromExternalModule_1.ts === /// import f = require('enumFromExternalModule_0'); ->f : typeof f, Symbol(f, Decl(enumFromExternalModule_1.ts, 0, 0)) +>f : typeof f var x = f.Mode.Open; ->x : f.Mode, Symbol(x, Decl(enumFromExternalModule_1.ts, 3, 3)) ->f.Mode.Open : f.Mode, Symbol(f.Mode.Open, Decl(enumFromExternalModule_0.ts, 0, 18)) ->f.Mode : typeof f.Mode, Symbol(f.Mode, Decl(enumFromExternalModule_0.ts, 0, 0)) ->f : typeof f, Symbol(f, Decl(enumFromExternalModule_1.ts, 0, 0)) ->Mode : typeof f.Mode, Symbol(f.Mode, Decl(enumFromExternalModule_0.ts, 0, 0)) ->Open : f.Mode, Symbol(f.Mode.Open, Decl(enumFromExternalModule_0.ts, 0, 18)) +>x : f.Mode +>f.Mode.Open : f.Mode +>f.Mode : typeof f.Mode +>f : typeof f +>Mode : typeof f.Mode +>Open : f.Mode === tests/cases/compiler/enumFromExternalModule_0.ts === export enum Mode { Open } ->Mode : Mode, Symbol(Mode, Decl(enumFromExternalModule_0.ts, 0, 0)) ->Open : Mode, Symbol(Mode.Open, Decl(enumFromExternalModule_0.ts, 0, 18)) +>Mode : Mode +>Open : Mode diff --git a/tests/baselines/reference/enumIndexer.symbols b/tests/baselines/reference/enumIndexer.symbols new file mode 100644 index 0000000000000..3f65044c2ec55 --- /dev/null +++ b/tests/baselines/reference/enumIndexer.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/enumIndexer.ts === +enum MyEnumType { +>MyEnumType : Symbol(MyEnumType, Decl(enumIndexer.ts, 0, 0)) + + foo, bar +>foo : Symbol(MyEnumType.foo, Decl(enumIndexer.ts, 0, 17)) +>bar : Symbol(MyEnumType.bar, Decl(enumIndexer.ts, 1, 8)) +} +var _arr = [{ key: 'foo' }, { key: 'bar' }] +>_arr : Symbol(_arr, Decl(enumIndexer.ts, 3, 3)) +>key : Symbol(key, Decl(enumIndexer.ts, 3, 13)) +>key : Symbol(key, Decl(enumIndexer.ts, 3, 29)) + +var enumValue = MyEnumType.foo; +>enumValue : Symbol(enumValue, Decl(enumIndexer.ts, 4, 3)) +>MyEnumType.foo : Symbol(MyEnumType.foo, Decl(enumIndexer.ts, 0, 17)) +>MyEnumType : Symbol(MyEnumType, Decl(enumIndexer.ts, 0, 0)) +>foo : Symbol(MyEnumType.foo, Decl(enumIndexer.ts, 0, 17)) + +var x = _arr.map(o => MyEnumType[o.key] === enumValue); // these are not same type +>x : Symbol(x, Decl(enumIndexer.ts, 5, 3)) +>_arr.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>_arr : Symbol(_arr, Decl(enumIndexer.ts, 3, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>o : Symbol(o, Decl(enumIndexer.ts, 5, 17)) +>MyEnumType : Symbol(MyEnumType, Decl(enumIndexer.ts, 0, 0)) +>o.key : Symbol(key, Decl(enumIndexer.ts, 3, 13)) +>o : Symbol(o, Decl(enumIndexer.ts, 5, 17)) +>key : Symbol(key, Decl(enumIndexer.ts, 3, 13)) +>enumValue : Symbol(enumValue, Decl(enumIndexer.ts, 4, 3)) + diff --git a/tests/baselines/reference/enumIndexer.types b/tests/baselines/reference/enumIndexer.types index d48a9ae908e52..cbc43176b01be 100644 --- a/tests/baselines/reference/enumIndexer.types +++ b/tests/baselines/reference/enumIndexer.types @@ -1,40 +1,40 @@ === tests/cases/compiler/enumIndexer.ts === enum MyEnumType { ->MyEnumType : MyEnumType, Symbol(MyEnumType, Decl(enumIndexer.ts, 0, 0)) +>MyEnumType : MyEnumType foo, bar ->foo : MyEnumType, Symbol(MyEnumType.foo, Decl(enumIndexer.ts, 0, 17)) ->bar : MyEnumType, Symbol(MyEnumType.bar, Decl(enumIndexer.ts, 1, 8)) +>foo : MyEnumType +>bar : MyEnumType } var _arr = [{ key: 'foo' }, { key: 'bar' }] ->_arr : { key: string; }[], Symbol(_arr, Decl(enumIndexer.ts, 3, 3)) +>_arr : { key: string; }[] >[{ key: 'foo' }, { key: 'bar' }] : { key: string; }[] >{ key: 'foo' } : { key: string; } ->key : string, Symbol(key, Decl(enumIndexer.ts, 3, 13)) +>key : string >'foo' : string >{ key: 'bar' } : { key: string; } ->key : string, Symbol(key, Decl(enumIndexer.ts, 3, 29)) +>key : string >'bar' : string var enumValue = MyEnumType.foo; ->enumValue : MyEnumType, Symbol(enumValue, Decl(enumIndexer.ts, 4, 3)) ->MyEnumType.foo : MyEnumType, Symbol(MyEnumType.foo, Decl(enumIndexer.ts, 0, 17)) ->MyEnumType : typeof MyEnumType, Symbol(MyEnumType, Decl(enumIndexer.ts, 0, 0)) ->foo : MyEnumType, Symbol(MyEnumType.foo, Decl(enumIndexer.ts, 0, 17)) +>enumValue : MyEnumType +>MyEnumType.foo : MyEnumType +>MyEnumType : typeof MyEnumType +>foo : MyEnumType var x = _arr.map(o => MyEnumType[o.key] === enumValue); // these are not same type ->x : boolean[], Symbol(x, Decl(enumIndexer.ts, 5, 3)) +>x : boolean[] >_arr.map(o => MyEnumType[o.key] === enumValue) : boolean[] ->_arr.map : (callbackfn: (value: { key: string; }, index: number, array: { key: string; }[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->_arr : { key: string; }[], Symbol(_arr, Decl(enumIndexer.ts, 3, 3)) ->map : (callbackfn: (value: { key: string; }, index: number, array: { key: string; }[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>_arr.map : (callbackfn: (value: { key: string; }, index: number, array: { key: string; }[]) => U, thisArg?: any) => U[] +>_arr : { key: string; }[] +>map : (callbackfn: (value: { key: string; }, index: number, array: { key: string; }[]) => U, thisArg?: any) => U[] >o => MyEnumType[o.key] === enumValue : (o: { key: string; }) => boolean ->o : { key: string; }, Symbol(o, Decl(enumIndexer.ts, 5, 17)) +>o : { key: string; } >MyEnumType[o.key] === enumValue : boolean >MyEnumType[o.key] : any ->MyEnumType : typeof MyEnumType, Symbol(MyEnumType, Decl(enumIndexer.ts, 0, 0)) ->o.key : string, Symbol(key, Decl(enumIndexer.ts, 3, 13)) ->o : { key: string; }, Symbol(o, Decl(enumIndexer.ts, 5, 17)) ->key : string, Symbol(key, Decl(enumIndexer.ts, 3, 13)) ->enumValue : MyEnumType, Symbol(enumValue, Decl(enumIndexer.ts, 4, 3)) +>MyEnumType : typeof MyEnumType +>o.key : string +>o : { key: string; } +>key : string +>enumValue : MyEnumType diff --git a/tests/baselines/reference/enumMapBackIntoItself.symbols b/tests/baselines/reference/enumMapBackIntoItself.symbols new file mode 100644 index 0000000000000..49464c5522da7 --- /dev/null +++ b/tests/baselines/reference/enumMapBackIntoItself.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/enumMapBackIntoItself.ts === +enum TShirtSize { +>TShirtSize : Symbol(TShirtSize, Decl(enumMapBackIntoItself.ts, 0, 0)) + + Small, +>Small : Symbol(TShirtSize.Small, Decl(enumMapBackIntoItself.ts, 0, 17)) + + Medium, +>Medium : Symbol(TShirtSize.Medium, Decl(enumMapBackIntoItself.ts, 1, 9)) + + Large +>Large : Symbol(TShirtSize.Large, Decl(enumMapBackIntoItself.ts, 2, 10)) +} +var mySize = TShirtSize.Large; +>mySize : Symbol(mySize, Decl(enumMapBackIntoItself.ts, 5, 3)) +>TShirtSize.Large : Symbol(TShirtSize.Large, Decl(enumMapBackIntoItself.ts, 2, 10)) +>TShirtSize : Symbol(TShirtSize, Decl(enumMapBackIntoItself.ts, 0, 0)) +>Large : Symbol(TShirtSize.Large, Decl(enumMapBackIntoItself.ts, 2, 10)) + +var test = TShirtSize[mySize]; +>test : Symbol(test, Decl(enumMapBackIntoItself.ts, 6, 3)) +>TShirtSize : Symbol(TShirtSize, Decl(enumMapBackIntoItself.ts, 0, 0)) +>mySize : Symbol(mySize, Decl(enumMapBackIntoItself.ts, 5, 3)) + +// specifically checking output here, bug was that test used to be undefined at runtime +test + '' +>test : Symbol(test, Decl(enumMapBackIntoItself.ts, 6, 3)) + diff --git a/tests/baselines/reference/enumMapBackIntoItself.types b/tests/baselines/reference/enumMapBackIntoItself.types index 7d169e8717fab..ab26094512b06 100644 --- a/tests/baselines/reference/enumMapBackIntoItself.types +++ b/tests/baselines/reference/enumMapBackIntoItself.types @@ -1,31 +1,31 @@ === tests/cases/compiler/enumMapBackIntoItself.ts === enum TShirtSize { ->TShirtSize : TShirtSize, Symbol(TShirtSize, Decl(enumMapBackIntoItself.ts, 0, 0)) +>TShirtSize : TShirtSize Small, ->Small : TShirtSize, Symbol(TShirtSize.Small, Decl(enumMapBackIntoItself.ts, 0, 17)) +>Small : TShirtSize Medium, ->Medium : TShirtSize, Symbol(TShirtSize.Medium, Decl(enumMapBackIntoItself.ts, 1, 9)) +>Medium : TShirtSize Large ->Large : TShirtSize, Symbol(TShirtSize.Large, Decl(enumMapBackIntoItself.ts, 2, 10)) +>Large : TShirtSize } var mySize = TShirtSize.Large; ->mySize : TShirtSize, Symbol(mySize, Decl(enumMapBackIntoItself.ts, 5, 3)) ->TShirtSize.Large : TShirtSize, Symbol(TShirtSize.Large, Decl(enumMapBackIntoItself.ts, 2, 10)) ->TShirtSize : typeof TShirtSize, Symbol(TShirtSize, Decl(enumMapBackIntoItself.ts, 0, 0)) ->Large : TShirtSize, Symbol(TShirtSize.Large, Decl(enumMapBackIntoItself.ts, 2, 10)) +>mySize : TShirtSize +>TShirtSize.Large : TShirtSize +>TShirtSize : typeof TShirtSize +>Large : TShirtSize var test = TShirtSize[mySize]; ->test : string, Symbol(test, Decl(enumMapBackIntoItself.ts, 6, 3)) +>test : string >TShirtSize[mySize] : string ->TShirtSize : typeof TShirtSize, Symbol(TShirtSize, Decl(enumMapBackIntoItself.ts, 0, 0)) ->mySize : TShirtSize, Symbol(mySize, Decl(enumMapBackIntoItself.ts, 5, 3)) +>TShirtSize : typeof TShirtSize +>mySize : TShirtSize // specifically checking output here, bug was that test used to be undefined at runtime test + '' >test + '' : string ->test : string, Symbol(test, Decl(enumMapBackIntoItself.ts, 6, 3)) +>test : string >'' : string diff --git a/tests/baselines/reference/enumMerging.symbols b/tests/baselines/reference/enumMerging.symbols new file mode 100644 index 0000000000000..414dd83995292 --- /dev/null +++ b/tests/baselines/reference/enumMerging.symbols @@ -0,0 +1,201 @@ +=== tests/cases/conformance/enums/enumMerging.ts === +// Enum with only constant members across 2 declarations with the same root module +// Enum with initializer in all declarations with constant members with the same root module +module M1 { +>M1 : Symbol(M1, Decl(enumMerging.ts, 0, 0)) + + enum EImpl1 { +>EImpl1 : Symbol(EImpl1, Decl(enumMerging.ts, 2, 11), Decl(enumMerging.ts, 5, 5)) + + A, B, C +>A : Symbol(EImpl1.A, Decl(enumMerging.ts, 3, 17)) +>B : Symbol(EImpl1.B, Decl(enumMerging.ts, 4, 10)) +>C : Symbol(EImpl1.C, Decl(enumMerging.ts, 4, 13)) + } + + enum EImpl1 { +>EImpl1 : Symbol(EImpl1, Decl(enumMerging.ts, 2, 11), Decl(enumMerging.ts, 5, 5)) + + D = 1, E, F +>D : Symbol(EImpl1.D, Decl(enumMerging.ts, 7, 17)) +>E : Symbol(EImpl1.E, Decl(enumMerging.ts, 8, 14)) +>F : Symbol(EImpl1.F, Decl(enumMerging.ts, 8, 17)) + } + + export enum EConst1 { +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) + + A = 3, B = 2, C = 1 +>A : Symbol(EConst1.A, Decl(enumMerging.ts, 11, 25)) +>B : Symbol(EConst1.B, Decl(enumMerging.ts, 12, 14)) +>C : Symbol(EConst1.C, Decl(enumMerging.ts, 12, 21)) + } + + export enum EConst1 { +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) + + D = 7, E = 9, F = 8 +>D : Symbol(EConst1.D, Decl(enumMerging.ts, 15, 25)) +>E : Symbol(EConst1.E, Decl(enumMerging.ts, 16, 14)) +>F : Symbol(EConst1.F, Decl(enumMerging.ts, 16, 21)) + } + + var x = [EConst1.A, EConst1.B, EConst1.C, EConst1.D, EConst1.E, EConst1.F]; +>x : Symbol(x, Decl(enumMerging.ts, 19, 7)) +>EConst1.A : Symbol(EConst1.A, Decl(enumMerging.ts, 11, 25)) +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>A : Symbol(EConst1.A, Decl(enumMerging.ts, 11, 25)) +>EConst1.B : Symbol(EConst1.B, Decl(enumMerging.ts, 12, 14)) +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>B : Symbol(EConst1.B, Decl(enumMerging.ts, 12, 14)) +>EConst1.C : Symbol(EConst1.C, Decl(enumMerging.ts, 12, 21)) +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>C : Symbol(EConst1.C, Decl(enumMerging.ts, 12, 21)) +>EConst1.D : Symbol(EConst1.D, Decl(enumMerging.ts, 15, 25)) +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>D : Symbol(EConst1.D, Decl(enumMerging.ts, 15, 25)) +>EConst1.E : Symbol(EConst1.E, Decl(enumMerging.ts, 16, 14)) +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>E : Symbol(EConst1.E, Decl(enumMerging.ts, 16, 14)) +>EConst1.F : Symbol(EConst1.F, Decl(enumMerging.ts, 16, 21)) +>EConst1 : Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>F : Symbol(EConst1.F, Decl(enumMerging.ts, 16, 21)) +} + +// Enum with only computed members across 2 declarations with the same root module +module M2 { +>M2 : Symbol(M2, Decl(enumMerging.ts, 20, 1)) + + export enum EComp2 { +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) + + A = 'foo'.length, B = 'foo'.length, C = 'foo'.length +>A : Symbol(EComp2.A, Decl(enumMerging.ts, 24, 24)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>B : Symbol(EComp2.B, Decl(enumMerging.ts, 25, 25)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>C : Symbol(EComp2.C, Decl(enumMerging.ts, 25, 43)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + } + + export enum EComp2 { +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) + + D = 'foo'.length, E = 'foo'.length, F = 'foo'.length +>D : Symbol(EComp2.D, Decl(enumMerging.ts, 28, 24)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>E : Symbol(EComp2.E, Decl(enumMerging.ts, 29, 25)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>F : Symbol(EComp2.F, Decl(enumMerging.ts, 29, 43)) +>'foo'.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + } + + var x = [EComp2.A, EComp2.B, EComp2.C, EComp2.D, EComp2.E, EComp2.F]; +>x : Symbol(x, Decl(enumMerging.ts, 32, 7)) +>EComp2.A : Symbol(EComp2.A, Decl(enumMerging.ts, 24, 24)) +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>A : Symbol(EComp2.A, Decl(enumMerging.ts, 24, 24)) +>EComp2.B : Symbol(EComp2.B, Decl(enumMerging.ts, 25, 25)) +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>B : Symbol(EComp2.B, Decl(enumMerging.ts, 25, 25)) +>EComp2.C : Symbol(EComp2.C, Decl(enumMerging.ts, 25, 43)) +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>C : Symbol(EComp2.C, Decl(enumMerging.ts, 25, 43)) +>EComp2.D : Symbol(EComp2.D, Decl(enumMerging.ts, 28, 24)) +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>D : Symbol(EComp2.D, Decl(enumMerging.ts, 28, 24)) +>EComp2.E : Symbol(EComp2.E, Decl(enumMerging.ts, 29, 25)) +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>E : Symbol(EComp2.E, Decl(enumMerging.ts, 29, 25)) +>EComp2.F : Symbol(EComp2.F, Decl(enumMerging.ts, 29, 43)) +>EComp2 : Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>F : Symbol(EComp2.F, Decl(enumMerging.ts, 29, 43)) +} + +// Enum with initializer in only one of two declarations with constant members with the same root module +module M3 { +>M3 : Symbol(M3, Decl(enumMerging.ts, 33, 1)) + + enum EInit { +>EInit : Symbol(EInit, Decl(enumMerging.ts, 36, 11), Decl(enumMerging.ts, 40, 5)) + + A, +>A : Symbol(EInit.A, Decl(enumMerging.ts, 37, 16)) + + B +>B : Symbol(EInit.B, Decl(enumMerging.ts, 38, 10)) + } + + enum EInit { +>EInit : Symbol(EInit, Decl(enumMerging.ts, 36, 11), Decl(enumMerging.ts, 40, 5)) + + C = 1, D, E +>C : Symbol(EInit.C, Decl(enumMerging.ts, 42, 16)) +>D : Symbol(EInit.D, Decl(enumMerging.ts, 43, 14)) +>E : Symbol(EInit.E, Decl(enumMerging.ts, 43, 17)) + } +} + +// Enums with same name but different root module +module M4 { +>M4 : Symbol(M4, Decl(enumMerging.ts, 45, 1)) + + export enum Color { Red, Green, Blue } +>Color : Symbol(Color, Decl(enumMerging.ts, 48, 11)) +>Red : Symbol(Color.Red, Decl(enumMerging.ts, 49, 23)) +>Green : Symbol(Color.Green, Decl(enumMerging.ts, 49, 28)) +>Blue : Symbol(Color.Blue, Decl(enumMerging.ts, 49, 35)) +} +module M5 { +>M5 : Symbol(M5, Decl(enumMerging.ts, 50, 1)) + + export enum Color { Red, Green, Blue } +>Color : Symbol(Color, Decl(enumMerging.ts, 51, 11)) +>Red : Symbol(Color.Red, Decl(enumMerging.ts, 52, 23)) +>Green : Symbol(Color.Green, Decl(enumMerging.ts, 52, 28)) +>Blue : Symbol(Color.Blue, Decl(enumMerging.ts, 52, 35)) +} + +module M6.A { +>M6 : Symbol(M6, Decl(enumMerging.ts, 53, 1), Decl(enumMerging.ts, 57, 1)) +>A : Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) + + export enum Color { Red, Green, Blue } +>Color : Symbol(Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) +>Red : Symbol(Color.Red, Decl(enumMerging.ts, 56, 23)) +>Green : Symbol(Color.Green, Decl(enumMerging.ts, 56, 28)) +>Blue : Symbol(Color.Blue, Decl(enumMerging.ts, 56, 35)) +} +module M6 { +>M6 : Symbol(M6, Decl(enumMerging.ts, 53, 1), Decl(enumMerging.ts, 57, 1)) + + export module A { +>A : Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) + + export enum Color { Yellow = 1 } +>Color : Symbol(Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) +>Yellow : Symbol(Color.Yellow, Decl(enumMerging.ts, 60, 27)) + } + var t = A.Color.Yellow; +>t : Symbol(t, Decl(enumMerging.ts, 62, 7)) +>A.Color.Yellow : Symbol(A.Color.Yellow, Decl(enumMerging.ts, 60, 27)) +>A.Color : Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) +>A : Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) +>Color : Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) +>Yellow : Symbol(A.Color.Yellow, Decl(enumMerging.ts, 60, 27)) + + t = A.Color.Red; +>t : Symbol(t, Decl(enumMerging.ts, 62, 7)) +>A.Color.Red : Symbol(A.Color.Red, Decl(enumMerging.ts, 56, 23)) +>A.Color : Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) +>A : Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) +>Color : Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) +>Red : Symbol(A.Color.Red, Decl(enumMerging.ts, 56, 23)) +} + diff --git a/tests/baselines/reference/enumMerging.types b/tests/baselines/reference/enumMerging.types index cb15fea366248..85eb360249fb6 100644 --- a/tests/baselines/reference/enumMerging.types +++ b/tests/baselines/reference/enumMerging.types @@ -2,218 +2,218 @@ // Enum with only constant members across 2 declarations with the same root module // Enum with initializer in all declarations with constant members with the same root module module M1 { ->M1 : typeof M1, Symbol(M1, Decl(enumMerging.ts, 0, 0)) +>M1 : typeof M1 enum EImpl1 { ->EImpl1 : EImpl1, Symbol(EImpl1, Decl(enumMerging.ts, 2, 11), Decl(enumMerging.ts, 5, 5)) +>EImpl1 : EImpl1 A, B, C ->A : EImpl1, Symbol(EImpl1.A, Decl(enumMerging.ts, 3, 17)) ->B : EImpl1, Symbol(EImpl1.B, Decl(enumMerging.ts, 4, 10)) ->C : EImpl1, Symbol(EImpl1.C, Decl(enumMerging.ts, 4, 13)) +>A : EImpl1 +>B : EImpl1 +>C : EImpl1 } enum EImpl1 { ->EImpl1 : EImpl1, Symbol(EImpl1, Decl(enumMerging.ts, 2, 11), Decl(enumMerging.ts, 5, 5)) +>EImpl1 : EImpl1 D = 1, E, F ->D : EImpl1, Symbol(EImpl1.D, Decl(enumMerging.ts, 7, 17)) +>D : EImpl1 >1 : number ->E : EImpl1, Symbol(EImpl1.E, Decl(enumMerging.ts, 8, 14)) ->F : EImpl1, Symbol(EImpl1.F, Decl(enumMerging.ts, 8, 17)) +>E : EImpl1 +>F : EImpl1 } export enum EConst1 { ->EConst1 : EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>EConst1 : EConst1 A = 3, B = 2, C = 1 ->A : EConst1, Symbol(EConst1.A, Decl(enumMerging.ts, 11, 25)) +>A : EConst1 >3 : number ->B : EConst1, Symbol(EConst1.B, Decl(enumMerging.ts, 12, 14)) +>B : EConst1 >2 : number ->C : EConst1, Symbol(EConst1.C, Decl(enumMerging.ts, 12, 21)) +>C : EConst1 >1 : number } export enum EConst1 { ->EConst1 : EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) +>EConst1 : EConst1 D = 7, E = 9, F = 8 ->D : EConst1, Symbol(EConst1.D, Decl(enumMerging.ts, 15, 25)) +>D : EConst1 >7 : number ->E : EConst1, Symbol(EConst1.E, Decl(enumMerging.ts, 16, 14)) +>E : EConst1 >9 : number ->F : EConst1, Symbol(EConst1.F, Decl(enumMerging.ts, 16, 21)) +>F : EConst1 >8 : number } var x = [EConst1.A, EConst1.B, EConst1.C, EConst1.D, EConst1.E, EConst1.F]; ->x : EConst1[], Symbol(x, Decl(enumMerging.ts, 19, 7)) +>x : EConst1[] >[EConst1.A, EConst1.B, EConst1.C, EConst1.D, EConst1.E, EConst1.F] : EConst1[] ->EConst1.A : EConst1, Symbol(EConst1.A, Decl(enumMerging.ts, 11, 25)) ->EConst1 : typeof EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) ->A : EConst1, Symbol(EConst1.A, Decl(enumMerging.ts, 11, 25)) ->EConst1.B : EConst1, Symbol(EConst1.B, Decl(enumMerging.ts, 12, 14)) ->EConst1 : typeof EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) ->B : EConst1, Symbol(EConst1.B, Decl(enumMerging.ts, 12, 14)) ->EConst1.C : EConst1, Symbol(EConst1.C, Decl(enumMerging.ts, 12, 21)) ->EConst1 : typeof EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) ->C : EConst1, Symbol(EConst1.C, Decl(enumMerging.ts, 12, 21)) ->EConst1.D : EConst1, Symbol(EConst1.D, Decl(enumMerging.ts, 15, 25)) ->EConst1 : typeof EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) ->D : EConst1, Symbol(EConst1.D, Decl(enumMerging.ts, 15, 25)) ->EConst1.E : EConst1, Symbol(EConst1.E, Decl(enumMerging.ts, 16, 14)) ->EConst1 : typeof EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) ->E : EConst1, Symbol(EConst1.E, Decl(enumMerging.ts, 16, 14)) ->EConst1.F : EConst1, Symbol(EConst1.F, Decl(enumMerging.ts, 16, 21)) ->EConst1 : typeof EConst1, Symbol(EConst1, Decl(enumMerging.ts, 9, 5), Decl(enumMerging.ts, 13, 5)) ->F : EConst1, Symbol(EConst1.F, Decl(enumMerging.ts, 16, 21)) +>EConst1.A : EConst1 +>EConst1 : typeof EConst1 +>A : EConst1 +>EConst1.B : EConst1 +>EConst1 : typeof EConst1 +>B : EConst1 +>EConst1.C : EConst1 +>EConst1 : typeof EConst1 +>C : EConst1 +>EConst1.D : EConst1 +>EConst1 : typeof EConst1 +>D : EConst1 +>EConst1.E : EConst1 +>EConst1 : typeof EConst1 +>E : EConst1 +>EConst1.F : EConst1 +>EConst1 : typeof EConst1 +>F : EConst1 } // Enum with only computed members across 2 declarations with the same root module module M2 { ->M2 : typeof M2, Symbol(M2, Decl(enumMerging.ts, 20, 1)) +>M2 : typeof M2 export enum EComp2 { ->EComp2 : EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>EComp2 : EComp2 A = 'foo'.length, B = 'foo'.length, C = 'foo'.length ->A : EComp2, Symbol(EComp2.A, Decl(enumMerging.ts, 24, 24)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>A : EComp2 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->B : EComp2, Symbol(EComp2.B, Decl(enumMerging.ts, 25, 25)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number +>B : EComp2 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->C : EComp2, Symbol(EComp2.C, Decl(enumMerging.ts, 25, 43)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number +>C : EComp2 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number } export enum EComp2 { ->EComp2 : EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) +>EComp2 : EComp2 D = 'foo'.length, E = 'foo'.length, F = 'foo'.length ->D : EComp2, Symbol(EComp2.D, Decl(enumMerging.ts, 28, 24)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>D : EComp2 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->E : EComp2, Symbol(EComp2.E, Decl(enumMerging.ts, 29, 25)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number +>E : EComp2 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->F : EComp2, Symbol(EComp2.F, Decl(enumMerging.ts, 29, 43)) ->'foo'.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number +>F : EComp2 +>'foo'.length : number >'foo' : string ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>length : number } var x = [EComp2.A, EComp2.B, EComp2.C, EComp2.D, EComp2.E, EComp2.F]; ->x : EComp2[], Symbol(x, Decl(enumMerging.ts, 32, 7)) +>x : EComp2[] >[EComp2.A, EComp2.B, EComp2.C, EComp2.D, EComp2.E, EComp2.F] : EComp2[] ->EComp2.A : EComp2, Symbol(EComp2.A, Decl(enumMerging.ts, 24, 24)) ->EComp2 : typeof EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) ->A : EComp2, Symbol(EComp2.A, Decl(enumMerging.ts, 24, 24)) ->EComp2.B : EComp2, Symbol(EComp2.B, Decl(enumMerging.ts, 25, 25)) ->EComp2 : typeof EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) ->B : EComp2, Symbol(EComp2.B, Decl(enumMerging.ts, 25, 25)) ->EComp2.C : EComp2, Symbol(EComp2.C, Decl(enumMerging.ts, 25, 43)) ->EComp2 : typeof EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) ->C : EComp2, Symbol(EComp2.C, Decl(enumMerging.ts, 25, 43)) ->EComp2.D : EComp2, Symbol(EComp2.D, Decl(enumMerging.ts, 28, 24)) ->EComp2 : typeof EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) ->D : EComp2, Symbol(EComp2.D, Decl(enumMerging.ts, 28, 24)) ->EComp2.E : EComp2, Symbol(EComp2.E, Decl(enumMerging.ts, 29, 25)) ->EComp2 : typeof EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) ->E : EComp2, Symbol(EComp2.E, Decl(enumMerging.ts, 29, 25)) ->EComp2.F : EComp2, Symbol(EComp2.F, Decl(enumMerging.ts, 29, 43)) ->EComp2 : typeof EComp2, Symbol(EComp2, Decl(enumMerging.ts, 23, 11), Decl(enumMerging.ts, 26, 5)) ->F : EComp2, Symbol(EComp2.F, Decl(enumMerging.ts, 29, 43)) +>EComp2.A : EComp2 +>EComp2 : typeof EComp2 +>A : EComp2 +>EComp2.B : EComp2 +>EComp2 : typeof EComp2 +>B : EComp2 +>EComp2.C : EComp2 +>EComp2 : typeof EComp2 +>C : EComp2 +>EComp2.D : EComp2 +>EComp2 : typeof EComp2 +>D : EComp2 +>EComp2.E : EComp2 +>EComp2 : typeof EComp2 +>E : EComp2 +>EComp2.F : EComp2 +>EComp2 : typeof EComp2 +>F : EComp2 } // Enum with initializer in only one of two declarations with constant members with the same root module module M3 { ->M3 : typeof M3, Symbol(M3, Decl(enumMerging.ts, 33, 1)) +>M3 : typeof M3 enum EInit { ->EInit : EInit, Symbol(EInit, Decl(enumMerging.ts, 36, 11), Decl(enumMerging.ts, 40, 5)) +>EInit : EInit A, ->A : EInit, Symbol(EInit.A, Decl(enumMerging.ts, 37, 16)) +>A : EInit B ->B : EInit, Symbol(EInit.B, Decl(enumMerging.ts, 38, 10)) +>B : EInit } enum EInit { ->EInit : EInit, Symbol(EInit, Decl(enumMerging.ts, 36, 11), Decl(enumMerging.ts, 40, 5)) +>EInit : EInit C = 1, D, E ->C : EInit, Symbol(EInit.C, Decl(enumMerging.ts, 42, 16)) +>C : EInit >1 : number ->D : EInit, Symbol(EInit.D, Decl(enumMerging.ts, 43, 14)) ->E : EInit, Symbol(EInit.E, Decl(enumMerging.ts, 43, 17)) +>D : EInit +>E : EInit } } // Enums with same name but different root module module M4 { ->M4 : typeof M4, Symbol(M4, Decl(enumMerging.ts, 45, 1)) +>M4 : typeof M4 export enum Color { Red, Green, Blue } ->Color : Color, Symbol(Color, Decl(enumMerging.ts, 48, 11)) ->Red : Color, Symbol(Color.Red, Decl(enumMerging.ts, 49, 23)) ->Green : Color, Symbol(Color.Green, Decl(enumMerging.ts, 49, 28)) ->Blue : Color, Symbol(Color.Blue, Decl(enumMerging.ts, 49, 35)) +>Color : Color +>Red : Color +>Green : Color +>Blue : Color } module M5 { ->M5 : typeof M5, Symbol(M5, Decl(enumMerging.ts, 50, 1)) +>M5 : typeof M5 export enum Color { Red, Green, Blue } ->Color : Color, Symbol(Color, Decl(enumMerging.ts, 51, 11)) ->Red : Color, Symbol(Color.Red, Decl(enumMerging.ts, 52, 23)) ->Green : Color, Symbol(Color.Green, Decl(enumMerging.ts, 52, 28)) ->Blue : Color, Symbol(Color.Blue, Decl(enumMerging.ts, 52, 35)) +>Color : Color +>Red : Color +>Green : Color +>Blue : Color } module M6.A { ->M6 : typeof M6, Symbol(M6, Decl(enumMerging.ts, 53, 1), Decl(enumMerging.ts, 57, 1)) ->A : typeof A, Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) +>M6 : typeof M6 +>A : typeof A export enum Color { Red, Green, Blue } ->Color : Color, Symbol(Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) ->Red : Color, Symbol(Color.Red, Decl(enumMerging.ts, 56, 23)) ->Green : Color, Symbol(Color.Green, Decl(enumMerging.ts, 56, 28)) ->Blue : Color, Symbol(Color.Blue, Decl(enumMerging.ts, 56, 35)) +>Color : Color +>Red : Color +>Green : Color +>Blue : Color } module M6 { ->M6 : typeof M6, Symbol(M6, Decl(enumMerging.ts, 53, 1), Decl(enumMerging.ts, 57, 1)) +>M6 : typeof M6 export module A { ->A : typeof A, Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) +>A : typeof A export enum Color { Yellow = 1 } ->Color : Color, Symbol(Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) ->Yellow : Color, Symbol(Color.Yellow, Decl(enumMerging.ts, 60, 27)) +>Color : Color +>Yellow : Color >1 : number } var t = A.Color.Yellow; ->t : A.Color, Symbol(t, Decl(enumMerging.ts, 62, 7)) ->A.Color.Yellow : A.Color, Symbol(A.Color.Yellow, Decl(enumMerging.ts, 60, 27)) ->A.Color : typeof A.Color, Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) ->A : typeof A, Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) ->Color : typeof A.Color, Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) ->Yellow : A.Color, Symbol(A.Color.Yellow, Decl(enumMerging.ts, 60, 27)) +>t : A.Color +>A.Color.Yellow : A.Color +>A.Color : typeof A.Color +>A : typeof A +>Color : typeof A.Color +>Yellow : A.Color t = A.Color.Red; >t = A.Color.Red : A.Color ->t : A.Color, Symbol(t, Decl(enumMerging.ts, 62, 7)) ->A.Color.Red : A.Color, Symbol(A.Color.Red, Decl(enumMerging.ts, 56, 23)) ->A.Color : typeof A.Color, Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) ->A : typeof A, Symbol(A, Decl(enumMerging.ts, 55, 10), Decl(enumMerging.ts, 58, 11)) ->Color : typeof A.Color, Symbol(A.Color, Decl(enumMerging.ts, 55, 13), Decl(enumMerging.ts, 59, 21)) ->Red : A.Color, Symbol(A.Color.Red, Decl(enumMerging.ts, 56, 23)) +>t : A.Color +>A.Color.Red : A.Color +>A.Color : typeof A.Color +>A : typeof A +>Color : typeof A.Color +>Red : A.Color } diff --git a/tests/baselines/reference/enumNegativeLiteral1.symbols b/tests/baselines/reference/enumNegativeLiteral1.symbols new file mode 100644 index 0000000000000..cfb7c52ecb22f --- /dev/null +++ b/tests/baselines/reference/enumNegativeLiteral1.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/enumNegativeLiteral1.ts === +enum E { +>E : Symbol(E, Decl(enumNegativeLiteral1.ts, 0, 0)) + + a = -5, b, c +>a : Symbol(E.a, Decl(enumNegativeLiteral1.ts, 0, 8)) +>b : Symbol(E.b, Decl(enumNegativeLiteral1.ts, 1, 11)) +>c : Symbol(E.c, Decl(enumNegativeLiteral1.ts, 1, 14)) +} + diff --git a/tests/baselines/reference/enumNegativeLiteral1.types b/tests/baselines/reference/enumNegativeLiteral1.types index 1d54c063a5f66..31ecbc11aa2b1 100644 --- a/tests/baselines/reference/enumNegativeLiteral1.types +++ b/tests/baselines/reference/enumNegativeLiteral1.types @@ -1,12 +1,12 @@ === tests/cases/compiler/enumNegativeLiteral1.ts === enum E { ->E : E, Symbol(E, Decl(enumNegativeLiteral1.ts, 0, 0)) +>E : E a = -5, b, c ->a : E, Symbol(E.a, Decl(enumNegativeLiteral1.ts, 0, 8)) +>a : E >-5 : number >5 : number ->b : E, Symbol(E.b, Decl(enumNegativeLiteral1.ts, 1, 11)) ->c : E, Symbol(E.c, Decl(enumNegativeLiteral1.ts, 1, 14)) +>b : E +>c : E } diff --git a/tests/baselines/reference/enumNumbering1.symbols b/tests/baselines/reference/enumNumbering1.symbols new file mode 100644 index 0000000000000..7722b5bad7813 --- /dev/null +++ b/tests/baselines/reference/enumNumbering1.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/enumNumbering1.ts === +enum Test { +>Test : Symbol(Test, Decl(enumNumbering1.ts, 0, 0)) + + A, +>A : Symbol(Test.A, Decl(enumNumbering1.ts, 0, 11)) + + B, +>B : Symbol(Test.B, Decl(enumNumbering1.ts, 1, 6)) + + C = Math.floor(Math.random() * 1000), +>C : Symbol(Test.C, Decl(enumNumbering1.ts, 2, 6)) +>Math.floor : Symbol(Math.floor, Decl(lib.d.ts, 582, 27)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>floor : Symbol(Math.floor, Decl(lib.d.ts, 582, 27)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) + + D = 10, +>D : Symbol(Test.D, Decl(enumNumbering1.ts, 3, 41)) + + E // Error but shouldn't be +>E : Symbol(Test.E, Decl(enumNumbering1.ts, 4, 11)) +} + diff --git a/tests/baselines/reference/enumNumbering1.types b/tests/baselines/reference/enumNumbering1.types index 7216337fdde57..81bb0325b7a7e 100644 --- a/tests/baselines/reference/enumNumbering1.types +++ b/tests/baselines/reference/enumNumbering1.types @@ -1,31 +1,31 @@ === tests/cases/compiler/enumNumbering1.ts === enum Test { ->Test : Test, Symbol(Test, Decl(enumNumbering1.ts, 0, 0)) +>Test : Test A, ->A : Test, Symbol(Test.A, Decl(enumNumbering1.ts, 0, 11)) +>A : Test B, ->B : Test, Symbol(Test.B, Decl(enumNumbering1.ts, 1, 6)) +>B : Test C = Math.floor(Math.random() * 1000), ->C : Test, Symbol(Test.C, Decl(enumNumbering1.ts, 2, 6)) +>C : Test >Math.floor(Math.random() * 1000) : number ->Math.floor : (x: number) => number, Symbol(Math.floor, Decl(lib.d.ts, 582, 27)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->floor : (x: number) => number, Symbol(Math.floor, Decl(lib.d.ts, 582, 27)) +>Math.floor : (x: number) => number +>Math : Math +>floor : (x: number) => number >Math.random() * 1000 : number >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >1000 : number D = 10, ->D : Test, Symbol(Test.D, Decl(enumNumbering1.ts, 3, 41)) +>D : Test >10 : number E // Error but shouldn't be ->E : Test, Symbol(Test.E, Decl(enumNumbering1.ts, 4, 11)) +>E : Test } diff --git a/tests/baselines/reference/enumOperations.symbols b/tests/baselines/reference/enumOperations.symbols new file mode 100644 index 0000000000000..392b8bd648ff9 --- /dev/null +++ b/tests/baselines/reference/enumOperations.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/enumOperations.ts === +enum Enum { None = 0 } +>Enum : Symbol(Enum, Decl(enumOperations.ts, 0, 0)) +>None : Symbol(Enum.None, Decl(enumOperations.ts, 0, 11)) + +var enumType: Enum = Enum.None; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>Enum : Symbol(Enum, Decl(enumOperations.ts, 0, 0)) +>Enum.None : Symbol(Enum.None, Decl(enumOperations.ts, 0, 11)) +>Enum : Symbol(Enum, Decl(enumOperations.ts, 0, 0)) +>None : Symbol(Enum.None, Decl(enumOperations.ts, 0, 11)) + +var numberType: number = 0; +>numberType : Symbol(numberType, Decl(enumOperations.ts, 2, 3)) + +var anyType: any = 0; +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType ^ numberType; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>numberType : Symbol(numberType, Decl(enumOperations.ts, 2, 3)) + +numberType ^ anyType; +>numberType : Symbol(numberType, Decl(enumOperations.ts, 2, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType & anyType; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType | anyType; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType ^ anyType; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +~anyType; +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType <enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType >>anyType; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + +enumType >>>anyType; +>enumType : Symbol(enumType, Decl(enumOperations.ts, 1, 3)) +>anyType : Symbol(anyType, Decl(enumOperations.ts, 3, 3)) + diff --git a/tests/baselines/reference/enumOperations.types b/tests/baselines/reference/enumOperations.types index 9e56bebcaa0eb..232ecc5e71b29 100644 --- a/tests/baselines/reference/enumOperations.types +++ b/tests/baselines/reference/enumOperations.types @@ -1,65 +1,65 @@ === tests/cases/compiler/enumOperations.ts === enum Enum { None = 0 } ->Enum : Enum, Symbol(Enum, Decl(enumOperations.ts, 0, 0)) ->None : Enum, Symbol(Enum.None, Decl(enumOperations.ts, 0, 11)) +>Enum : Enum +>None : Enum >0 : number var enumType: Enum = Enum.None; ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->Enum : Enum, Symbol(Enum, Decl(enumOperations.ts, 0, 0)) ->Enum.None : Enum, Symbol(Enum.None, Decl(enumOperations.ts, 0, 11)) ->Enum : typeof Enum, Symbol(Enum, Decl(enumOperations.ts, 0, 0)) ->None : Enum, Symbol(Enum.None, Decl(enumOperations.ts, 0, 11)) +>enumType : Enum +>Enum : Enum +>Enum.None : Enum +>Enum : typeof Enum +>None : Enum var numberType: number = 0; ->numberType : number, Symbol(numberType, Decl(enumOperations.ts, 2, 3)) +>numberType : number >0 : number var anyType: any = 0; ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>anyType : any >0 : number enumType ^ numberType; >enumType ^ numberType : number ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->numberType : number, Symbol(numberType, Decl(enumOperations.ts, 2, 3)) +>enumType : Enum +>numberType : number numberType ^ anyType; >numberType ^ anyType : number ->numberType : number, Symbol(numberType, Decl(enumOperations.ts, 2, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>numberType : number +>anyType : any enumType & anyType; >enumType & anyType : number ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>enumType : Enum +>anyType : any enumType | anyType; >enumType | anyType : number ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>enumType : Enum +>anyType : any enumType ^ anyType; >enumType ^ anyType : number ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>enumType : Enum +>anyType : any ~anyType; >~anyType : number ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>anyType : any enumType <enumType <enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>enumType : Enum +>anyType : any enumType >>anyType; >enumType >>anyType : number ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>enumType : Enum +>anyType : any enumType >>>anyType; >enumType >>>anyType : number ->enumType : Enum, Symbol(enumType, Decl(enumOperations.ts, 1, 3)) ->anyType : any, Symbol(anyType, Decl(enumOperations.ts, 3, 3)) +>enumType : Enum +>anyType : any diff --git a/tests/baselines/reference/enumWithQuotedElementName1.symbols b/tests/baselines/reference/enumWithQuotedElementName1.symbols new file mode 100644 index 0000000000000..48f861f9726bf --- /dev/null +++ b/tests/baselines/reference/enumWithQuotedElementName1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/enumWithQuotedElementName1.ts === +enum E { +>E : Symbol(E, Decl(enumWithQuotedElementName1.ts, 0, 0)) + + 'fo"o', +} diff --git a/tests/baselines/reference/enumWithQuotedElementName1.types b/tests/baselines/reference/enumWithQuotedElementName1.types index 17d979bceeb70..135a74a510324 100644 --- a/tests/baselines/reference/enumWithQuotedElementName1.types +++ b/tests/baselines/reference/enumWithQuotedElementName1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/enumWithQuotedElementName1.ts === enum E { ->E : E, Symbol(E, Decl(enumWithQuotedElementName1.ts, 0, 0)) +>E : E 'fo"o', } diff --git a/tests/baselines/reference/enumWithQuotedElementName2.symbols b/tests/baselines/reference/enumWithQuotedElementName2.symbols new file mode 100644 index 0000000000000..245eaa55748f1 --- /dev/null +++ b/tests/baselines/reference/enumWithQuotedElementName2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/enumWithQuotedElementName2.ts === +enum E { +>E : Symbol(E, Decl(enumWithQuotedElementName2.ts, 0, 0)) + + "fo'o", +} diff --git a/tests/baselines/reference/enumWithQuotedElementName2.types b/tests/baselines/reference/enumWithQuotedElementName2.types index 92be6205b5a28..ab222764f7564 100644 --- a/tests/baselines/reference/enumWithQuotedElementName2.types +++ b/tests/baselines/reference/enumWithQuotedElementName2.types @@ -1,6 +1,6 @@ === tests/cases/compiler/enumWithQuotedElementName2.ts === enum E { ->E : E, Symbol(E, Decl(enumWithQuotedElementName2.ts, 0, 0)) +>E : E "fo'o", } diff --git a/tests/baselines/reference/enumWithUnicodeEscape1.symbols b/tests/baselines/reference/enumWithUnicodeEscape1.symbols new file mode 100644 index 0000000000000..a146f87247d29 --- /dev/null +++ b/tests/baselines/reference/enumWithUnicodeEscape1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/enumWithUnicodeEscape1.ts === +enum E { +>E : Symbol(E, Decl(enumWithUnicodeEscape1.ts, 0, 0)) + + 'gold \u2730' +} + diff --git a/tests/baselines/reference/enumWithUnicodeEscape1.types b/tests/baselines/reference/enumWithUnicodeEscape1.types index e580f2665b561..8376685ca6b84 100644 --- a/tests/baselines/reference/enumWithUnicodeEscape1.types +++ b/tests/baselines/reference/enumWithUnicodeEscape1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/enumWithUnicodeEscape1.ts === enum E { ->E : E, Symbol(E, Decl(enumWithUnicodeEscape1.ts, 0, 0)) +>E : E 'gold \u2730' } diff --git a/tests/baselines/reference/enumsWithMultipleDeclarations3.symbols b/tests/baselines/reference/enumsWithMultipleDeclarations3.symbols new file mode 100644 index 0000000000000..b9e575db9c1dc --- /dev/null +++ b/tests/baselines/reference/enumsWithMultipleDeclarations3.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/enumsWithMultipleDeclarations3.ts === +module E { +>E : Symbol(E, Decl(enumsWithMultipleDeclarations3.ts, 0, 0), Decl(enumsWithMultipleDeclarations3.ts, 1, 1)) +} + +enum E { +>E : Symbol(E, Decl(enumsWithMultipleDeclarations3.ts, 0, 0), Decl(enumsWithMultipleDeclarations3.ts, 1, 1)) + + A +>A : Symbol(E.A, Decl(enumsWithMultipleDeclarations3.ts, 3, 8)) +} diff --git a/tests/baselines/reference/enumsWithMultipleDeclarations3.types b/tests/baselines/reference/enumsWithMultipleDeclarations3.types index 8d3a8e2cec2b9..2b761c780e91f 100644 --- a/tests/baselines/reference/enumsWithMultipleDeclarations3.types +++ b/tests/baselines/reference/enumsWithMultipleDeclarations3.types @@ -1,11 +1,11 @@ === tests/cases/compiler/enumsWithMultipleDeclarations3.ts === module E { ->E : typeof E, Symbol(E, Decl(enumsWithMultipleDeclarations3.ts, 0, 0), Decl(enumsWithMultipleDeclarations3.ts, 1, 1)) +>E : typeof E } enum E { ->E : E, Symbol(E, Decl(enumsWithMultipleDeclarations3.ts, 0, 0), Decl(enumsWithMultipleDeclarations3.ts, 1, 1)) +>E : E A ->A : E, Symbol(E.A, Decl(enumsWithMultipleDeclarations3.ts, 3, 8)) +>A : E } diff --git a/tests/baselines/reference/es3-amd.symbols b/tests/baselines/reference/es3-amd.symbols new file mode 100644 index 0000000000000..f6d1211ad4e18 --- /dev/null +++ b/tests/baselines/reference/es3-amd.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es3-amd.ts === + +class A +>A : Symbol(A, Decl(es3-amd.ts, 0, 0)) +{ + constructor () + { + + } + + public B() +>B : Symbol(B, Decl(es3-amd.ts, 6, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es3-amd.types b/tests/baselines/reference/es3-amd.types index 28aad37099f0f..1e9fdbd582f83 100644 --- a/tests/baselines/reference/es3-amd.types +++ b/tests/baselines/reference/es3-amd.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es3-amd.ts === class A ->A : A, Symbol(A, Decl(es3-amd.ts, 0, 0)) +>A : A { constructor () { @@ -9,7 +9,7 @@ class A } public B() ->B : () => number, Symbol(B, Decl(es3-amd.ts, 6, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es3-declaration-amd.symbols b/tests/baselines/reference/es3-declaration-amd.symbols new file mode 100644 index 0000000000000..aec4af2bb60be --- /dev/null +++ b/tests/baselines/reference/es3-declaration-amd.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es3-declaration-amd.ts === + +class A +>A : Symbol(A, Decl(es3-declaration-amd.ts, 0, 0)) +{ + constructor () + { + + } + + public B() +>B : Symbol(B, Decl(es3-declaration-amd.ts, 6, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es3-declaration-amd.types b/tests/baselines/reference/es3-declaration-amd.types index 7c455efc47fb9..daf0bb5d74e37 100644 --- a/tests/baselines/reference/es3-declaration-amd.types +++ b/tests/baselines/reference/es3-declaration-amd.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es3-declaration-amd.ts === class A ->A : A, Symbol(A, Decl(es3-declaration-amd.ts, 0, 0)) +>A : A { constructor () { @@ -9,7 +9,7 @@ class A } public B() ->B : () => number, Symbol(B, Decl(es3-declaration-amd.ts, 6, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es3-sourcemap-amd.symbols b/tests/baselines/reference/es3-sourcemap-amd.symbols new file mode 100644 index 0000000000000..ca20348a0f59b --- /dev/null +++ b/tests/baselines/reference/es3-sourcemap-amd.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es3-sourcemap-amd.ts === + +class A +>A : Symbol(A, Decl(es3-sourcemap-amd.ts, 0, 0)) +{ + constructor () + { + + } + + public B() +>B : Symbol(B, Decl(es3-sourcemap-amd.ts, 6, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es3-sourcemap-amd.types b/tests/baselines/reference/es3-sourcemap-amd.types index f99e56b7030ea..d3f712211e4d3 100644 --- a/tests/baselines/reference/es3-sourcemap-amd.types +++ b/tests/baselines/reference/es3-sourcemap-amd.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es3-sourcemap-amd.ts === class A ->A : A, Symbol(A, Decl(es3-sourcemap-amd.ts, 0, 0)) +>A : A { constructor () { @@ -9,7 +9,7 @@ class A } public B() ->B : () => number, Symbol(B, Decl(es3-sourcemap-amd.ts, 6, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es5-amd.symbols b/tests/baselines/reference/es5-amd.symbols new file mode 100644 index 0000000000000..cf99349fc1d66 --- /dev/null +++ b/tests/baselines/reference/es5-amd.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es5-amd.ts === + +class A +>A : Symbol(A, Decl(es5-amd.ts, 0, 0)) +{ + constructor () + { + + } + + public B() +>B : Symbol(B, Decl(es5-amd.ts, 6, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es5-amd.types b/tests/baselines/reference/es5-amd.types index ad4c5a58e3705..7dd9e8b281a1b 100644 --- a/tests/baselines/reference/es5-amd.types +++ b/tests/baselines/reference/es5-amd.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es5-amd.ts === class A ->A : A, Symbol(A, Decl(es5-amd.ts, 0, 0)) +>A : A { constructor () { @@ -9,7 +9,7 @@ class A } public B() ->B : () => number, Symbol(B, Decl(es5-amd.ts, 6, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es5-declaration-amd.symbols b/tests/baselines/reference/es5-declaration-amd.symbols new file mode 100644 index 0000000000000..a2504a0ea843e --- /dev/null +++ b/tests/baselines/reference/es5-declaration-amd.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es5-declaration-amd.ts === + +class A +>A : Symbol(A, Decl(es5-declaration-amd.ts, 0, 0)) +{ + constructor () + { + + } + + public B() +>B : Symbol(B, Decl(es5-declaration-amd.ts, 6, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es5-declaration-amd.types b/tests/baselines/reference/es5-declaration-amd.types index 05f53d7835176..ead96c35de169 100644 --- a/tests/baselines/reference/es5-declaration-amd.types +++ b/tests/baselines/reference/es5-declaration-amd.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es5-declaration-amd.ts === class A ->A : A, Symbol(A, Decl(es5-declaration-amd.ts, 0, 0)) +>A : A { constructor () { @@ -9,7 +9,7 @@ class A } public B() ->B : () => number, Symbol(B, Decl(es5-declaration-amd.ts, 6, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es5-souremap-amd.symbols b/tests/baselines/reference/es5-souremap-amd.symbols new file mode 100644 index 0000000000000..14b22cc74c66e --- /dev/null +++ b/tests/baselines/reference/es5-souremap-amd.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es5-souremap-amd.ts === + +class A +>A : Symbol(A, Decl(es5-souremap-amd.ts, 0, 0)) +{ + constructor () + { + + } + + public B() +>B : Symbol(B, Decl(es5-souremap-amd.ts, 6, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es5-souremap-amd.types b/tests/baselines/reference/es5-souremap-amd.types index 31cddab53865e..67606d7f1ff4c 100644 --- a/tests/baselines/reference/es5-souremap-amd.types +++ b/tests/baselines/reference/es5-souremap-amd.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es5-souremap-amd.ts === class A ->A : A, Symbol(A, Decl(es5-souremap-amd.ts, 0, 0)) +>A : A { constructor () { @@ -9,7 +9,7 @@ class A } public B() ->B : () => number, Symbol(B, Decl(es5-souremap-amd.ts, 6, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es5ExportDefaultClassDeclaration.symbols b/tests/baselines/reference/es5ExportDefaultClassDeclaration.symbols new file mode 100644 index 0000000000000..24196766dfaff --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultClassDeclaration.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/es5ExportDefaultClassDeclaration.ts === + +export default class C { +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration.ts, 0, 0)) + + method() { } +>method : Symbol(method, Decl(es5ExportDefaultClassDeclaration.ts, 1, 24)) +} + diff --git a/tests/baselines/reference/es5ExportDefaultClassDeclaration.types b/tests/baselines/reference/es5ExportDefaultClassDeclaration.types index a95f5c2167b33..34fb87fcbb2bb 100644 --- a/tests/baselines/reference/es5ExportDefaultClassDeclaration.types +++ b/tests/baselines/reference/es5ExportDefaultClassDeclaration.types @@ -1,9 +1,9 @@ === tests/cases/compiler/es5ExportDefaultClassDeclaration.ts === export default class C { ->C : C, Symbol(C, Decl(es5ExportDefaultClassDeclaration.ts, 0, 0)) +>C : C method() { } ->method : () => void, Symbol(method, Decl(es5ExportDefaultClassDeclaration.ts, 1, 24)) +>method : () => void } diff --git a/tests/baselines/reference/es5ExportDefaultClassDeclaration2.symbols b/tests/baselines/reference/es5ExportDefaultClassDeclaration2.symbols new file mode 100644 index 0000000000000..0780ff7a3c882 --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultClassDeclaration2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/es5ExportDefaultClassDeclaration2.ts === + +export default class { + method() { } +>method : Symbol(method, Decl(es5ExportDefaultClassDeclaration2.ts, 1, 22)) +} + diff --git a/tests/baselines/reference/es5ExportDefaultClassDeclaration2.types b/tests/baselines/reference/es5ExportDefaultClassDeclaration2.types index dbf89b2fa35af..e4c7a59e0e740 100644 --- a/tests/baselines/reference/es5ExportDefaultClassDeclaration2.types +++ b/tests/baselines/reference/es5ExportDefaultClassDeclaration2.types @@ -2,6 +2,6 @@ export default class { method() { } ->method : () => void, Symbol(method, Decl(es5ExportDefaultClassDeclaration2.ts, 1, 22)) +>method : () => void } diff --git a/tests/baselines/reference/es5ExportDefaultClassDeclaration3.symbols b/tests/baselines/reference/es5ExportDefaultClassDeclaration3.symbols new file mode 100644 index 0000000000000..b5262b94688bb --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultClassDeclaration3.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/es5ExportDefaultClassDeclaration3.ts === + +var before: C = new C(); +>before : Symbol(before, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 3)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) + +export default class C { +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) + + method(): C { +>method : Symbol(method, Decl(es5ExportDefaultClassDeclaration3.ts, 3, 24)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) + + return new C(); +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) + } +} + +var after: C = new C(); +>after : Symbol(after, Decl(es5ExportDefaultClassDeclaration3.ts, 9, 3)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) + +var t: typeof C = C; +>t : Symbol(t, Decl(es5ExportDefaultClassDeclaration3.ts, 11, 3)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) + + diff --git a/tests/baselines/reference/es5ExportDefaultClassDeclaration3.types b/tests/baselines/reference/es5ExportDefaultClassDeclaration3.types index b940f21d97b40..1ed302ac45eb0 100644 --- a/tests/baselines/reference/es5ExportDefaultClassDeclaration3.types +++ b/tests/baselines/reference/es5ExportDefaultClassDeclaration3.types @@ -1,33 +1,33 @@ === tests/cases/compiler/es5ExportDefaultClassDeclaration3.ts === var before: C = new C(); ->before : C, Symbol(before, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 3)) ->C : C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>before : C +>C : C >new C() : C ->C : typeof C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : typeof C export default class C { ->C : C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : C method(): C { ->method : () => C, Symbol(method, Decl(es5ExportDefaultClassDeclaration3.ts, 3, 24)) ->C : C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>method : () => C +>C : C return new C(); >new C() : C ->C : typeof C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : typeof C } } var after: C = new C(); ->after : C, Symbol(after, Decl(es5ExportDefaultClassDeclaration3.ts, 9, 3)) ->C : C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>after : C +>C : C >new C() : C ->C : typeof C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>C : typeof C var t: typeof C = C; ->t : typeof C, Symbol(t, Decl(es5ExportDefaultClassDeclaration3.ts, 11, 3)) ->C : typeof C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) ->C : typeof C, Symbol(C, Decl(es5ExportDefaultClassDeclaration3.ts, 1, 24)) +>t : typeof C +>C : typeof C +>C : typeof C diff --git a/tests/baselines/reference/es5ExportDefaultExpression.symbols b/tests/baselines/reference/es5ExportDefaultExpression.symbols new file mode 100644 index 0000000000000..3f9f11e283af5 --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultExpression.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/es5ExportDefaultExpression.ts === + +No type information for this code.export default (1 + 2); +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.symbols b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.symbols new file mode 100644 index 0000000000000..6c80a2532e3f9 --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/es5ExportDefaultFunctionDeclaration.ts === + +export default function f() { } +>f : Symbol(f, Decl(es5ExportDefaultFunctionDeclaration.ts, 0, 0)) + diff --git a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.types b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.types index 6fe83abb179d6..446bd8e2a3144 100644 --- a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.types +++ b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration.types @@ -1,5 +1,5 @@ === tests/cases/compiler/es5ExportDefaultFunctionDeclaration.ts === export default function f() { } ->f : () => void, Symbol(f, Decl(es5ExportDefaultFunctionDeclaration.ts, 0, 0)) +>f : () => void diff --git a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration2.symbols b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration2.symbols new file mode 100644 index 0000000000000..1b9f9d2615114 --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/es5ExportDefaultFunctionDeclaration2.ts === + +No type information for this code.export default function () { } +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.symbols b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.symbols new file mode 100644 index 0000000000000..921a3304e0160 --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/es5ExportDefaultFunctionDeclaration3.ts === + +var before: typeof func = func(); +>before : Symbol(before, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 3)) +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) + +export default function func(): typeof func { +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) + + return func; +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +} + +var after: typeof func = func(); +>after : Symbol(after, Decl(es5ExportDefaultFunctionDeclaration3.ts, 7, 3)) +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) + diff --git a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.types b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.types index 4a6323f60db24..d3a8ff92b2f91 100644 --- a/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.types +++ b/tests/baselines/reference/es5ExportDefaultFunctionDeclaration3.types @@ -1,22 +1,22 @@ === tests/cases/compiler/es5ExportDefaultFunctionDeclaration3.ts === var before: typeof func = func(); ->before : () => typeof func, Symbol(before, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 3)) ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>before : () => typeof func +>func : () => typeof func >func() : () => typeof func ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : () => typeof func export default function func(): typeof func { ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : () => typeof func +>func : () => typeof func return func; ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : () => typeof func } var after: typeof func = func(); ->after : () => typeof func, Symbol(after, Decl(es5ExportDefaultFunctionDeclaration3.ts, 7, 3)) ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>after : () => typeof func +>func : () => typeof func >func() : () => typeof func ->func : () => typeof func, Symbol(func, Decl(es5ExportDefaultFunctionDeclaration3.ts, 1, 33)) +>func : () => typeof func diff --git a/tests/baselines/reference/es5ExportDefaultIdentifier.symbols b/tests/baselines/reference/es5ExportDefaultIdentifier.symbols new file mode 100644 index 0000000000000..78b9a54947ae4 --- /dev/null +++ b/tests/baselines/reference/es5ExportDefaultIdentifier.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/es5ExportDefaultIdentifier.ts === + +export function f() { } +>f : Symbol(f, Decl(es5ExportDefaultIdentifier.ts, 0, 0)) + +export default f; +>f : Symbol(f, Decl(es5ExportDefaultIdentifier.ts, 0, 0)) + diff --git a/tests/baselines/reference/es5ExportDefaultIdentifier.types b/tests/baselines/reference/es5ExportDefaultIdentifier.types index 72febf3dca903..d57f757507031 100644 --- a/tests/baselines/reference/es5ExportDefaultIdentifier.types +++ b/tests/baselines/reference/es5ExportDefaultIdentifier.types @@ -1,8 +1,8 @@ === tests/cases/compiler/es5ExportDefaultIdentifier.ts === export function f() { } ->f : () => void, Symbol(f, Decl(es5ExportDefaultIdentifier.ts, 0, 0)) +>f : () => void export default f; ->f : () => void, Symbol(f, Decl(es5ExportDefaultIdentifier.ts, 0, 0)) +>f : () => void diff --git a/tests/baselines/reference/es5ExportEqualsDts.symbols b/tests/baselines/reference/es5ExportEqualsDts.symbols new file mode 100644 index 0000000000000..52bf357d17753 --- /dev/null +++ b/tests/baselines/reference/es5ExportEqualsDts.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/es5ExportEqualsDts.ts === + +class A { +>A : Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) + + foo() { +>foo : Symbol(foo, Decl(es5ExportEqualsDts.ts, 1, 9)) + + var aVal: A.B; +>aVal : Symbol(aVal, Decl(es5ExportEqualsDts.ts, 3, 11)) +>A : Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) +>B : Symbol(A.B, Decl(es5ExportEqualsDts.ts, 8, 10)) + + return aVal; +>aVal : Symbol(aVal, Decl(es5ExportEqualsDts.ts, 3, 11)) + } +} + +module A { +>A : Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) + + export interface B { } +>B : Symbol(B, Decl(es5ExportEqualsDts.ts, 8, 10)) +} + +export = A +>A : Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) + diff --git a/tests/baselines/reference/es5ExportEqualsDts.types b/tests/baselines/reference/es5ExportEqualsDts.types index 20a90a9fab284..265fda6c76cfb 100644 --- a/tests/baselines/reference/es5ExportEqualsDts.types +++ b/tests/baselines/reference/es5ExportEqualsDts.types @@ -1,28 +1,28 @@ === tests/cases/compiler/es5ExportEqualsDts.ts === class A { ->A : A, Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) +>A : A foo() { ->foo : () => A.B, Symbol(foo, Decl(es5ExportEqualsDts.ts, 1, 9)) +>foo : () => A.B var aVal: A.B; ->aVal : A.B, Symbol(aVal, Decl(es5ExportEqualsDts.ts, 3, 11)) ->A : any, Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) ->B : A.B, Symbol(A.B, Decl(es5ExportEqualsDts.ts, 8, 10)) +>aVal : A.B +>A : any +>B : A.B return aVal; ->aVal : A.B, Symbol(aVal, Decl(es5ExportEqualsDts.ts, 3, 11)) +>aVal : A.B } } module A { ->A : typeof A, Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) +>A : typeof A export interface B { } ->B : B, Symbol(B, Decl(es5ExportEqualsDts.ts, 8, 10)) +>B : B } export = A ->A : A, Symbol(A, Decl(es5ExportEqualsDts.ts, 0, 0), Decl(es5ExportEqualsDts.ts, 6, 1)) +>A : A diff --git a/tests/baselines/reference/es5ModuleWithModuleGenAmd.symbols b/tests/baselines/reference/es5ModuleWithModuleGenAmd.symbols new file mode 100644 index 0000000000000..1a853eb37d0a4 --- /dev/null +++ b/tests/baselines/reference/es5ModuleWithModuleGenAmd.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/es5ModuleWithModuleGenAmd.ts === +export class A +>A : Symbol(A, Decl(es5ModuleWithModuleGenAmd.ts, 0, 0)) +{ + constructor () + { + } + + public B() +>B : Symbol(B, Decl(es5ModuleWithModuleGenAmd.ts, 4, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es5ModuleWithModuleGenAmd.types b/tests/baselines/reference/es5ModuleWithModuleGenAmd.types index b92eb7f5a710f..4ae6698d06aa8 100644 --- a/tests/baselines/reference/es5ModuleWithModuleGenAmd.types +++ b/tests/baselines/reference/es5ModuleWithModuleGenAmd.types @@ -1,13 +1,13 @@ === tests/cases/compiler/es5ModuleWithModuleGenAmd.ts === export class A ->A : A, Symbol(A, Decl(es5ModuleWithModuleGenAmd.ts, 0, 0)) +>A : A { constructor () { } public B() ->B : () => number, Symbol(B, Decl(es5ModuleWithModuleGenAmd.ts, 4, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.symbols b/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.symbols new file mode 100644 index 0000000000000..a69ce05f1ae2b --- /dev/null +++ b/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/es5ModuleWithModuleGenCommonjs.ts === +export class A +>A : Symbol(A, Decl(es5ModuleWithModuleGenCommonjs.ts, 0, 0)) +{ + constructor () + { + } + + public B() +>B : Symbol(B, Decl(es5ModuleWithModuleGenCommonjs.ts, 4, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.types b/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.types index 3300e1de5b22e..425afed82d28e 100644 --- a/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.types +++ b/tests/baselines/reference/es5ModuleWithModuleGenCommonjs.types @@ -1,13 +1,13 @@ === tests/cases/compiler/es5ModuleWithModuleGenCommonjs.ts === export class A ->A : A, Symbol(A, Decl(es5ModuleWithModuleGenCommonjs.ts, 0, 0)) +>A : A { constructor () { } public B() ->B : () => number, Symbol(B, Decl(es5ModuleWithModuleGenCommonjs.ts, 4, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es6ClassSuperCodegenBug.symbols b/tests/baselines/reference/es6ClassSuperCodegenBug.symbols new file mode 100644 index 0000000000000..d520ec3ceb1c3 --- /dev/null +++ b/tests/baselines/reference/es6ClassSuperCodegenBug.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/es6ClassSuperCodegenBug.ts === +class A { +>A : Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) + + constructor(str1:string, str2:string) {} +>str1 : Symbol(str1, Decl(es6ClassSuperCodegenBug.ts, 1, 13)) +>str2 : Symbol(str2, Decl(es6ClassSuperCodegenBug.ts, 1, 25)) +} +class B extends A { +>B : Symbol(B, Decl(es6ClassSuperCodegenBug.ts, 2, 1)) +>A : Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) + + constructor() { + if (true) { + super('a1', 'b1'); +>super : Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) + + } else { + super('a2', 'b2'); +>super : Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) + } + } +} + diff --git a/tests/baselines/reference/es6ClassSuperCodegenBug.types b/tests/baselines/reference/es6ClassSuperCodegenBug.types index 02abd049de7df..bdf8ebde8f23e 100644 --- a/tests/baselines/reference/es6ClassSuperCodegenBug.types +++ b/tests/baselines/reference/es6ClassSuperCodegenBug.types @@ -1,14 +1,14 @@ === tests/cases/compiler/es6ClassSuperCodegenBug.ts === class A { ->A : A, Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) +>A : A constructor(str1:string, str2:string) {} ->str1 : string, Symbol(str1, Decl(es6ClassSuperCodegenBug.ts, 1, 13)) ->str2 : string, Symbol(str2, Decl(es6ClassSuperCodegenBug.ts, 1, 25)) +>str1 : string +>str2 : string } class B extends A { ->B : B, Symbol(B, Decl(es6ClassSuperCodegenBug.ts, 2, 1)) ->A : A, Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) +>B : B +>A : A constructor() { if (true) { @@ -16,14 +16,14 @@ class B extends A { super('a1', 'b1'); >super('a1', 'b1') : void ->super : typeof A, Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) +>super : typeof A >'a1' : string >'b1' : string } else { super('a2', 'b2'); >super('a2', 'b2') : void ->super : typeof A, Symbol(A, Decl(es6ClassSuperCodegenBug.ts, 0, 0)) +>super : typeof A >'a2' : string >'b2' : string } diff --git a/tests/baselines/reference/es6ClassTest3.symbols b/tests/baselines/reference/es6ClassTest3.symbols new file mode 100644 index 0000000000000..cf2284e95ee3b --- /dev/null +++ b/tests/baselines/reference/es6ClassTest3.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/es6ClassTest3.ts === +module M { +>M : Symbol(M, Decl(es6ClassTest3.ts, 0, 0)) + + class Visibility { +>Visibility : Symbol(Visibility, Decl(es6ClassTest3.ts, 0, 10)) + + public foo() { }; +>foo : Symbol(foo, Decl(es6ClassTest3.ts, 1, 19)) + + private bar() { }; +>bar : Symbol(bar, Decl(es6ClassTest3.ts, 2, 22)) + + private x: number; +>x : Symbol(x, Decl(es6ClassTest3.ts, 3, 23)) + + public y: number; +>y : Symbol(y, Decl(es6ClassTest3.ts, 4, 26)) + + public z: number; +>z : Symbol(z, Decl(es6ClassTest3.ts, 5, 22)) + + constructor() { + this.x = 1; +>this.x : Symbol(x, Decl(es6ClassTest3.ts, 3, 23)) +>this : Symbol(Visibility, Decl(es6ClassTest3.ts, 0, 10)) +>x : Symbol(x, Decl(es6ClassTest3.ts, 3, 23)) + + this.y = 2; +>this.y : Symbol(y, Decl(es6ClassTest3.ts, 4, 26)) +>this : Symbol(Visibility, Decl(es6ClassTest3.ts, 0, 10)) +>y : Symbol(y, Decl(es6ClassTest3.ts, 4, 26)) + } + } +} diff --git a/tests/baselines/reference/es6ClassTest3.types b/tests/baselines/reference/es6ClassTest3.types index 663356ef80d24..d73007f211b78 100644 --- a/tests/baselines/reference/es6ClassTest3.types +++ b/tests/baselines/reference/es6ClassTest3.types @@ -1,38 +1,38 @@ === tests/cases/compiler/es6ClassTest3.ts === module M { ->M : typeof M, Symbol(M, Decl(es6ClassTest3.ts, 0, 0)) +>M : typeof M class Visibility { ->Visibility : Visibility, Symbol(Visibility, Decl(es6ClassTest3.ts, 0, 10)) +>Visibility : Visibility public foo() { }; ->foo : () => void, Symbol(foo, Decl(es6ClassTest3.ts, 1, 19)) +>foo : () => void private bar() { }; ->bar : () => void, Symbol(bar, Decl(es6ClassTest3.ts, 2, 22)) +>bar : () => void private x: number; ->x : number, Symbol(x, Decl(es6ClassTest3.ts, 3, 23)) +>x : number public y: number; ->y : number, Symbol(y, Decl(es6ClassTest3.ts, 4, 26)) +>y : number public z: number; ->z : number, Symbol(z, Decl(es6ClassTest3.ts, 5, 22)) +>z : number constructor() { this.x = 1; >this.x = 1 : number ->this.x : number, Symbol(x, Decl(es6ClassTest3.ts, 3, 23)) ->this : Visibility, Symbol(Visibility, Decl(es6ClassTest3.ts, 0, 10)) ->x : number, Symbol(x, Decl(es6ClassTest3.ts, 3, 23)) +>this.x : number +>this : Visibility +>x : number >1 : number this.y = 2; >this.y = 2 : number ->this.y : number, Symbol(y, Decl(es6ClassTest3.ts, 4, 26)) ->this : Visibility, Symbol(Visibility, Decl(es6ClassTest3.ts, 0, 10)) ->y : number, Symbol(y, Decl(es6ClassTest3.ts, 4, 26)) +>this.y : number +>this : Visibility +>y : number >2 : number } } diff --git a/tests/baselines/reference/es6ClassTest4.symbols b/tests/baselines/reference/es6ClassTest4.symbols new file mode 100644 index 0000000000000..41a329a3d5153 --- /dev/null +++ b/tests/baselines/reference/es6ClassTest4.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/es6ClassTest4.ts === +declare class Point +>Point : Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) +{ + x: number; +>x : Symbol(x, Decl(es6ClassTest4.ts, 1, 1)) + + y: number; +>y : Symbol(y, Decl(es6ClassTest4.ts, 2, 14)) + + add(dx: number, dy: number): Point; +>add : Symbol(add, Decl(es6ClassTest4.ts, 3, 14)) +>dx : Symbol(dx, Decl(es6ClassTest4.ts, 4, 8)) +>dy : Symbol(dy, Decl(es6ClassTest4.ts, 4, 19)) +>Point : Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) + + mult(p: Point): Point; +>mult : Symbol(mult, Decl(es6ClassTest4.ts, 4, 39)) +>p : Symbol(p, Decl(es6ClassTest4.ts, 5, 9)) +>Point : Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) +>Point : Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) + + static origin: Point; +>origin : Symbol(Point.origin, Decl(es6ClassTest4.ts, 5, 26)) +>Point : Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) + + constructor(x: number, y: number); +>x : Symbol(x, Decl(es6ClassTest4.ts, 7, 16)) +>y : Symbol(y, Decl(es6ClassTest4.ts, 7, 26)) +} + diff --git a/tests/baselines/reference/es6ClassTest4.types b/tests/baselines/reference/es6ClassTest4.types index 58a489e616b33..53669dada731b 100644 --- a/tests/baselines/reference/es6ClassTest4.types +++ b/tests/baselines/reference/es6ClassTest4.types @@ -1,31 +1,31 @@ === tests/cases/compiler/es6ClassTest4.ts === declare class Point ->Point : Point, Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) +>Point : Point { x: number; ->x : number, Symbol(x, Decl(es6ClassTest4.ts, 1, 1)) +>x : number y: number; ->y : number, Symbol(y, Decl(es6ClassTest4.ts, 2, 14)) +>y : number add(dx: number, dy: number): Point; ->add : (dx: number, dy: number) => Point, Symbol(add, Decl(es6ClassTest4.ts, 3, 14)) ->dx : number, Symbol(dx, Decl(es6ClassTest4.ts, 4, 8)) ->dy : number, Symbol(dy, Decl(es6ClassTest4.ts, 4, 19)) ->Point : Point, Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) +>add : (dx: number, dy: number) => Point +>dx : number +>dy : number +>Point : Point mult(p: Point): Point; ->mult : (p: Point) => Point, Symbol(mult, Decl(es6ClassTest4.ts, 4, 39)) ->p : Point, Symbol(p, Decl(es6ClassTest4.ts, 5, 9)) ->Point : Point, Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) ->Point : Point, Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) +>mult : (p: Point) => Point +>p : Point +>Point : Point +>Point : Point static origin: Point; ->origin : Point, Symbol(Point.origin, Decl(es6ClassTest4.ts, 5, 26)) ->Point : Point, Symbol(Point, Decl(es6ClassTest4.ts, 0, 0)) +>origin : Point +>Point : Point constructor(x: number, y: number); ->x : number, Symbol(x, Decl(es6ClassTest4.ts, 7, 16)) ->y : number, Symbol(y, Decl(es6ClassTest4.ts, 7, 26)) +>x : number +>y : number } diff --git a/tests/baselines/reference/es6ClassTest5.symbols b/tests/baselines/reference/es6ClassTest5.symbols new file mode 100644 index 0000000000000..89c6921e1635d --- /dev/null +++ b/tests/baselines/reference/es6ClassTest5.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/es6ClassTest5.ts === +class C1T5 { +>C1T5 : Symbol(C1T5, Decl(es6ClassTest5.ts, 0, 0)) + + foo: (i: number, s: string) => number = +>foo : Symbol(foo, Decl(es6ClassTest5.ts, 0, 12)) +>i : Symbol(i, Decl(es6ClassTest5.ts, 1, 10)) +>s : Symbol(s, Decl(es6ClassTest5.ts, 1, 20)) + + (i) => { +>i : Symbol(i, Decl(es6ClassTest5.ts, 2, 6)) + + return i; +>i : Symbol(i, Decl(es6ClassTest5.ts, 2, 6)) + } +} +module C2T5 {} +>C2T5 : Symbol(C2T5, Decl(es6ClassTest5.ts, 5, 1)) + +class bigClass { +>bigClass : Symbol(bigClass, Decl(es6ClassTest5.ts, 6, 14)) + + public break = 1; +>break : Symbol(break, Decl(es6ClassTest5.ts, 8, 17)) +} + diff --git a/tests/baselines/reference/es6ClassTest5.types b/tests/baselines/reference/es6ClassTest5.types index d495ffac19ace..087a80170ede6 100644 --- a/tests/baselines/reference/es6ClassTest5.types +++ b/tests/baselines/reference/es6ClassTest5.types @@ -1,28 +1,28 @@ === tests/cases/compiler/es6ClassTest5.ts === class C1T5 { ->C1T5 : C1T5, Symbol(C1T5, Decl(es6ClassTest5.ts, 0, 0)) +>C1T5 : C1T5 foo: (i: number, s: string) => number = ->foo : (i: number, s: string) => number, Symbol(foo, Decl(es6ClassTest5.ts, 0, 12)) ->i : number, Symbol(i, Decl(es6ClassTest5.ts, 1, 10)) ->s : string, Symbol(s, Decl(es6ClassTest5.ts, 1, 20)) +>foo : (i: number, s: string) => number +>i : number +>s : string (i) => { >(i) => { return i; } : (i: number) => number ->i : number, Symbol(i, Decl(es6ClassTest5.ts, 2, 6)) +>i : number return i; ->i : number, Symbol(i, Decl(es6ClassTest5.ts, 2, 6)) +>i : number } } module C2T5 {} ->C2T5 : any, Symbol(C2T5, Decl(es6ClassTest5.ts, 5, 1)) +>C2T5 : any class bigClass { ->bigClass : bigClass, Symbol(bigClass, Decl(es6ClassTest5.ts, 6, 14)) +>bigClass : bigClass public break = 1; ->break : number, Symbol(break, Decl(es6ClassTest5.ts, 8, 17)) +>break : number >1 : number } diff --git a/tests/baselines/reference/es6ClassTest7.symbols b/tests/baselines/reference/es6ClassTest7.symbols new file mode 100644 index 0000000000000..02ba6e43186b6 --- /dev/null +++ b/tests/baselines/reference/es6ClassTest7.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/es6ClassTest7.ts === +declare module M { +>M : Symbol(M, Decl(es6ClassTest7.ts, 0, 0)) + + export class Foo { +>Foo : Symbol(Foo, Decl(es6ClassTest7.ts, 0, 18)) + } +} + +class Bar extends M.Foo { +>Bar : Symbol(Bar, Decl(es6ClassTest7.ts, 3, 1)) +>M.Foo : Symbol(M.Foo, Decl(es6ClassTest7.ts, 0, 18)) +>M : Symbol(M, Decl(es6ClassTest7.ts, 0, 0)) +>Foo : Symbol(M.Foo, Decl(es6ClassTest7.ts, 0, 18)) +} + diff --git a/tests/baselines/reference/es6ClassTest7.types b/tests/baselines/reference/es6ClassTest7.types index 39f016f96e92c..f92ddad6e827c 100644 --- a/tests/baselines/reference/es6ClassTest7.types +++ b/tests/baselines/reference/es6ClassTest7.types @@ -1,16 +1,16 @@ === tests/cases/compiler/es6ClassTest7.ts === declare module M { ->M : typeof M, Symbol(M, Decl(es6ClassTest7.ts, 0, 0)) +>M : typeof M export class Foo { ->Foo : Foo, Symbol(Foo, Decl(es6ClassTest7.ts, 0, 18)) +>Foo : Foo } } class Bar extends M.Foo { ->Bar : Bar, Symbol(Bar, Decl(es6ClassTest7.ts, 3, 1)) ->M.Foo : any, Symbol(M.Foo, Decl(es6ClassTest7.ts, 0, 18)) ->M : typeof M, Symbol(M, Decl(es6ClassTest7.ts, 0, 0)) ->Foo : M.Foo, Symbol(M.Foo, Decl(es6ClassTest7.ts, 0, 18)) +>Bar : Bar +>M.Foo : any +>M : typeof M +>Foo : M.Foo } diff --git a/tests/baselines/reference/es6ClassTest8.symbols b/tests/baselines/reference/es6ClassTest8.symbols new file mode 100644 index 0000000000000..b02b80e7017ec --- /dev/null +++ b/tests/baselines/reference/es6ClassTest8.symbols @@ -0,0 +1,162 @@ +=== tests/cases/compiler/es6ClassTest8.ts === +function f1(x:any) {return x;} +>f1 : Symbol(f1, Decl(es6ClassTest8.ts, 0, 0)) +>x : Symbol(x, Decl(es6ClassTest8.ts, 0, 12)) +>x : Symbol(x, Decl(es6ClassTest8.ts, 0, 12)) + +class C { +>C : Symbol(C, Decl(es6ClassTest8.ts, 0, 30)) + + constructor() { + var bar:any = (function() { +>bar : Symbol(bar, Decl(es6ClassTest8.ts, 4, 11)) + + return bar; // 'bar' should be resolvable +>bar : Symbol(bar, Decl(es6ClassTest8.ts, 4, 11)) + + }); + var b = f1(f1(bar)); +>b : Symbol(b, Decl(es6ClassTest8.ts, 7, 11)) +>f1 : Symbol(f1, Decl(es6ClassTest8.ts, 0, 0)) +>f1 : Symbol(f1, Decl(es6ClassTest8.ts, 0, 0)) +>bar : Symbol(bar, Decl(es6ClassTest8.ts, 4, 11)) + } + +} + +class Vector { +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + static norm(v:Vector):Vector {return null;} +>norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>v : Symbol(v, Decl(es6ClassTest8.ts, 13, 16)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + static minus(v1:Vector, v2:Vector):Vector {return null;} +>minus : Symbol(Vector.minus, Decl(es6ClassTest8.ts, 13, 47)) +>v1 : Symbol(v1, Decl(es6ClassTest8.ts, 14, 17)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>v2 : Symbol(v2, Decl(es6ClassTest8.ts, 14, 27)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + static times(v1:Vector, v2:Vector):Vector {return null;} +>times : Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) +>v1 : Symbol(v1, Decl(es6ClassTest8.ts, 15, 17)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>v2 : Symbol(v2, Decl(es6ClassTest8.ts, 15, 27)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + static cross(v1:Vector, v2:Vector):Vector {return null;} +>cross : Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) +>v1 : Symbol(v1, Decl(es6ClassTest8.ts, 16, 17)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>v2 : Symbol(v2, Decl(es6ClassTest8.ts, 16, 27)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + constructor(public x: number, +>x : Symbol(x, Decl(es6ClassTest8.ts, 18, 16)) + + public y: number, +>y : Symbol(y, Decl(es6ClassTest8.ts, 18, 33)) + + public z: number) { +>z : Symbol(z, Decl(es6ClassTest8.ts, 19, 33)) + } + + static dot(v1:Vector, v2:Vector):Vector {return null;} +>dot : Symbol(Vector.dot, Decl(es6ClassTest8.ts, 21, 5)) +>v1 : Symbol(v1, Decl(es6ClassTest8.ts, 23, 15)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>v2 : Symbol(v2, Decl(es6ClassTest8.ts, 23, 25)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + +} + +class Camera { +>Camera : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) + + public forward: Vector; +>forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + public right: Vector; +>right : Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + public up: Vector; +>up : Symbol(up, Decl(es6ClassTest8.ts, 29, 25)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + constructor(public pos: Vector, lookAt: Vector) { +>pos : Symbol(pos, Decl(es6ClassTest8.ts, 31, 16)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>lookAt : Symbol(lookAt, Decl(es6ClassTest8.ts, 31, 35)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + var down = new Vector(0.0, -1.0, 0.0); +>down : Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) + + this.forward = Vector.norm(Vector.minus(lookAt,this.pos)); +>this.forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>Vector.norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector.minus : Symbol(Vector.minus, Decl(es6ClassTest8.ts, 13, 47)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>minus : Symbol(Vector.minus, Decl(es6ClassTest8.ts, 13, 47)) +>lookAt : Symbol(lookAt, Decl(es6ClassTest8.ts, 31, 35)) +>this.pos : Symbol(pos, Decl(es6ClassTest8.ts, 31, 16)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>pos : Symbol(pos, Decl(es6ClassTest8.ts, 31, 16)) + + this.right = Vector.times(down, Vector.norm(Vector.cross(this.forward, down))); +>this.right : Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>right : Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) +>Vector.times : Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>times : Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) +>down : Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>Vector.norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector.cross : Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>cross : Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) +>this.forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>down : Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) + + this.up = Vector.times(down, Vector.norm(Vector.cross(this.forward, this.right))); +>this.up : Symbol(up, Decl(es6ClassTest8.ts, 29, 25)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>up : Symbol(up, Decl(es6ClassTest8.ts, 29, 25)) +>Vector.times : Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>times : Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) +>down : Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>Vector.norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>norm : Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector.cross : Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) +>Vector : Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>cross : Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) +>this.forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>forward : Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>this.right : Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) +>this : Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>right : Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) + } +} + + diff --git a/tests/baselines/reference/es6ClassTest8.types b/tests/baselines/reference/es6ClassTest8.types index 149e8cf3cd45c..622f81f1d104c 100644 --- a/tests/baselines/reference/es6ClassTest8.types +++ b/tests/baselines/reference/es6ClassTest8.types @@ -1,116 +1,116 @@ === tests/cases/compiler/es6ClassTest8.ts === function f1(x:any) {return x;} ->f1 : (x: any) => any, Symbol(f1, Decl(es6ClassTest8.ts, 0, 0)) ->x : any, Symbol(x, Decl(es6ClassTest8.ts, 0, 12)) ->x : any, Symbol(x, Decl(es6ClassTest8.ts, 0, 12)) +>f1 : (x: any) => any +>x : any +>x : any class C { ->C : C, Symbol(C, Decl(es6ClassTest8.ts, 0, 30)) +>C : C constructor() { var bar:any = (function() { ->bar : any, Symbol(bar, Decl(es6ClassTest8.ts, 4, 11)) +>bar : any >(function() { return bar; // 'bar' should be resolvable }) : () => any >function() { return bar; // 'bar' should be resolvable } : () => any return bar; // 'bar' should be resolvable ->bar : any, Symbol(bar, Decl(es6ClassTest8.ts, 4, 11)) +>bar : any }); var b = f1(f1(bar)); ->b : any, Symbol(b, Decl(es6ClassTest8.ts, 7, 11)) +>b : any >f1(f1(bar)) : any ->f1 : (x: any) => any, Symbol(f1, Decl(es6ClassTest8.ts, 0, 0)) +>f1 : (x: any) => any >f1(bar) : any ->f1 : (x: any) => any, Symbol(f1, Decl(es6ClassTest8.ts, 0, 0)) ->bar : any, Symbol(bar, Decl(es6ClassTest8.ts, 4, 11)) +>f1 : (x: any) => any +>bar : any } } class Vector { ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : Vector static norm(v:Vector):Vector {return null;} ->norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) ->v : Vector, Symbol(v, Decl(es6ClassTest8.ts, 13, 16)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>norm : (v: Vector) => Vector +>v : Vector +>Vector : Vector +>Vector : Vector >null : null static minus(v1:Vector, v2:Vector):Vector {return null;} ->minus : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.minus, Decl(es6ClassTest8.ts, 13, 47)) ->v1 : Vector, Symbol(v1, Decl(es6ClassTest8.ts, 14, 17)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->v2 : Vector, Symbol(v2, Decl(es6ClassTest8.ts, 14, 27)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>minus : (v1: Vector, v2: Vector) => Vector +>v1 : Vector +>Vector : Vector +>v2 : Vector +>Vector : Vector +>Vector : Vector >null : null static times(v1:Vector, v2:Vector):Vector {return null;} ->times : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) ->v1 : Vector, Symbol(v1, Decl(es6ClassTest8.ts, 15, 17)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->v2 : Vector, Symbol(v2, Decl(es6ClassTest8.ts, 15, 27)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>times : (v1: Vector, v2: Vector) => Vector +>v1 : Vector +>Vector : Vector +>v2 : Vector +>Vector : Vector +>Vector : Vector >null : null static cross(v1:Vector, v2:Vector):Vector {return null;} ->cross : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) ->v1 : Vector, Symbol(v1, Decl(es6ClassTest8.ts, 16, 17)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->v2 : Vector, Symbol(v2, Decl(es6ClassTest8.ts, 16, 27)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>cross : (v1: Vector, v2: Vector) => Vector +>v1 : Vector +>Vector : Vector +>v2 : Vector +>Vector : Vector +>Vector : Vector >null : null constructor(public x: number, ->x : number, Symbol(x, Decl(es6ClassTest8.ts, 18, 16)) +>x : number public y: number, ->y : number, Symbol(y, Decl(es6ClassTest8.ts, 18, 33)) +>y : number public z: number) { ->z : number, Symbol(z, Decl(es6ClassTest8.ts, 19, 33)) +>z : number } static dot(v1:Vector, v2:Vector):Vector {return null;} ->dot : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.dot, Decl(es6ClassTest8.ts, 21, 5)) ->v1 : Vector, Symbol(v1, Decl(es6ClassTest8.ts, 23, 15)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->v2 : Vector, Symbol(v2, Decl(es6ClassTest8.ts, 23, 25)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>dot : (v1: Vector, v2: Vector) => Vector +>v1 : Vector +>Vector : Vector +>v2 : Vector +>Vector : Vector +>Vector : Vector >null : null } class Camera { ->Camera : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) +>Camera : Camera public forward: Vector; ->forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>forward : Vector +>Vector : Vector public right: Vector; ->right : Vector, Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>right : Vector +>Vector : Vector public up: Vector; ->up : Vector, Symbol(up, Decl(es6ClassTest8.ts, 29, 25)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>up : Vector +>Vector : Vector constructor(public pos: Vector, lookAt: Vector) { ->pos : Vector, Symbol(pos, Decl(es6ClassTest8.ts, 31, 16)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->lookAt : Vector, Symbol(lookAt, Decl(es6ClassTest8.ts, 31, 35)) ->Vector : Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>pos : Vector +>Vector : Vector +>lookAt : Vector +>Vector : Vector var down = new Vector(0.0, -1.0, 0.0); ->down : Vector, Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>down : Vector >new Vector(0.0, -1.0, 0.0) : Vector ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) +>Vector : typeof Vector >0.0 : number >-1.0 : number >1.0 : number @@ -118,69 +118,69 @@ class Camera { this.forward = Vector.norm(Vector.minus(lookAt,this.pos)); >this.forward = Vector.norm(Vector.minus(lookAt,this.pos)) : Vector ->this.forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) +>this.forward : Vector +>this : Camera +>forward : Vector >Vector.norm(Vector.minus(lookAt,this.pos)) : Vector ->Vector.norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector.norm : (v: Vector) => Vector +>Vector : typeof Vector +>norm : (v: Vector) => Vector >Vector.minus(lookAt,this.pos) : Vector ->Vector.minus : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.minus, Decl(es6ClassTest8.ts, 13, 47)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->minus : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.minus, Decl(es6ClassTest8.ts, 13, 47)) ->lookAt : Vector, Symbol(lookAt, Decl(es6ClassTest8.ts, 31, 35)) ->this.pos : Vector, Symbol(pos, Decl(es6ClassTest8.ts, 31, 16)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->pos : Vector, Symbol(pos, Decl(es6ClassTest8.ts, 31, 16)) +>Vector.minus : (v1: Vector, v2: Vector) => Vector +>Vector : typeof Vector +>minus : (v1: Vector, v2: Vector) => Vector +>lookAt : Vector +>this.pos : Vector +>this : Camera +>pos : Vector this.right = Vector.times(down, Vector.norm(Vector.cross(this.forward, down))); >this.right = Vector.times(down, Vector.norm(Vector.cross(this.forward, down))) : Vector ->this.right : Vector, Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->right : Vector, Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) +>this.right : Vector +>this : Camera +>right : Vector >Vector.times(down, Vector.norm(Vector.cross(this.forward, down))) : Vector ->Vector.times : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->times : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) ->down : Vector, Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>Vector.times : (v1: Vector, v2: Vector) => Vector +>Vector : typeof Vector +>times : (v1: Vector, v2: Vector) => Vector +>down : Vector >Vector.norm(Vector.cross(this.forward, down)) : Vector ->Vector.norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector.norm : (v: Vector) => Vector +>Vector : typeof Vector +>norm : (v: Vector) => Vector >Vector.cross(this.forward, down) : Vector ->Vector.cross : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->cross : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) ->this.forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) ->down : Vector, Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>Vector.cross : (v1: Vector, v2: Vector) => Vector +>Vector : typeof Vector +>cross : (v1: Vector, v2: Vector) => Vector +>this.forward : Vector +>this : Camera +>forward : Vector +>down : Vector this.up = Vector.times(down, Vector.norm(Vector.cross(this.forward, this.right))); >this.up = Vector.times(down, Vector.norm(Vector.cross(this.forward, this.right))) : Vector ->this.up : Vector, Symbol(up, Decl(es6ClassTest8.ts, 29, 25)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->up : Vector, Symbol(up, Decl(es6ClassTest8.ts, 29, 25)) +>this.up : Vector +>this : Camera +>up : Vector >Vector.times(down, Vector.norm(Vector.cross(this.forward, this.right))) : Vector ->Vector.times : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->times : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.times, Decl(es6ClassTest8.ts, 14, 60)) ->down : Vector, Symbol(down, Decl(es6ClassTest8.ts, 32, 11)) +>Vector.times : (v1: Vector, v2: Vector) => Vector +>Vector : typeof Vector +>times : (v1: Vector, v2: Vector) => Vector +>down : Vector >Vector.norm(Vector.cross(this.forward, this.right)) : Vector ->Vector.norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->norm : (v: Vector) => Vector, Symbol(Vector.norm, Decl(es6ClassTest8.ts, 12, 14)) +>Vector.norm : (v: Vector) => Vector +>Vector : typeof Vector +>norm : (v: Vector) => Vector >Vector.cross(this.forward, this.right) : Vector ->Vector.cross : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) ->Vector : typeof Vector, Symbol(Vector, Decl(es6ClassTest8.ts, 10, 1)) ->cross : (v1: Vector, v2: Vector) => Vector, Symbol(Vector.cross, Decl(es6ClassTest8.ts, 15, 60)) ->this.forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->forward : Vector, Symbol(forward, Decl(es6ClassTest8.ts, 27, 14)) ->this.right : Vector, Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) ->this : Camera, Symbol(Camera, Decl(es6ClassTest8.ts, 25, 1)) ->right : Vector, Symbol(right, Decl(es6ClassTest8.ts, 28, 27)) +>Vector.cross : (v1: Vector, v2: Vector) => Vector +>Vector : typeof Vector +>cross : (v1: Vector, v2: Vector) => Vector +>this.forward : Vector +>this : Camera +>forward : Vector +>this.right : Vector +>this : Camera +>right : Vector } } diff --git a/tests/baselines/reference/es6ExportAll.symbols b/tests/baselines/reference/es6ExportAll.symbols new file mode 100644 index 0000000000000..c2a575f5e5c0b --- /dev/null +++ b/tests/baselines/reference/es6ExportAll.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/server.ts === + +export class c { +>c : Symbol(c, Decl(server.ts, 0, 0)) +} +export interface i { +>i : Symbol(i, Decl(server.ts, 2, 1)) +} +export module m { +>m : Symbol(m, Decl(server.ts, 4, 1)) + + export var x = 10; +>x : Symbol(x, Decl(server.ts, 6, 14)) +} +export var x = 10; +>x : Symbol(x, Decl(server.ts, 8, 10)) + +export module uninstantiated { +>uninstantiated : Symbol(uninstantiated, Decl(server.ts, 8, 18)) +} + +=== tests/cases/compiler/client.ts === +export * from "server"; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ExportAll.types b/tests/baselines/reference/es6ExportAll.types index 7e661daf234ee..876ff152e2ce4 100644 --- a/tests/baselines/reference/es6ExportAll.types +++ b/tests/baselines/reference/es6ExportAll.types @@ -1,24 +1,24 @@ === tests/cases/compiler/server.ts === export class c { ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c } export interface i { ->i : i, Symbol(i, Decl(server.ts, 2, 1)) +>i : i } export module m { ->m : typeof m, Symbol(m, Decl(server.ts, 4, 1)) +>m : typeof m export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 6, 14)) +>x : number >10 : number } export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 8, 10)) +>x : number >10 : number export module uninstantiated { ->uninstantiated : any, Symbol(uninstantiated, Decl(server.ts, 8, 18)) +>uninstantiated : any } === tests/cases/compiler/client.ts === diff --git a/tests/baselines/reference/es6ExportAllInEs5.symbols b/tests/baselines/reference/es6ExportAllInEs5.symbols new file mode 100644 index 0000000000000..c2a575f5e5c0b --- /dev/null +++ b/tests/baselines/reference/es6ExportAllInEs5.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/server.ts === + +export class c { +>c : Symbol(c, Decl(server.ts, 0, 0)) +} +export interface i { +>i : Symbol(i, Decl(server.ts, 2, 1)) +} +export module m { +>m : Symbol(m, Decl(server.ts, 4, 1)) + + export var x = 10; +>x : Symbol(x, Decl(server.ts, 6, 14)) +} +export var x = 10; +>x : Symbol(x, Decl(server.ts, 8, 10)) + +export module uninstantiated { +>uninstantiated : Symbol(uninstantiated, Decl(server.ts, 8, 18)) +} + +=== tests/cases/compiler/client.ts === +export * from "server"; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ExportAllInEs5.types b/tests/baselines/reference/es6ExportAllInEs5.types index 7e661daf234ee..876ff152e2ce4 100644 --- a/tests/baselines/reference/es6ExportAllInEs5.types +++ b/tests/baselines/reference/es6ExportAllInEs5.types @@ -1,24 +1,24 @@ === tests/cases/compiler/server.ts === export class c { ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c } export interface i { ->i : i, Symbol(i, Decl(server.ts, 2, 1)) +>i : i } export module m { ->m : typeof m, Symbol(m, Decl(server.ts, 4, 1)) +>m : typeof m export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 6, 14)) +>x : number >10 : number } export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 8, 10)) +>x : number >10 : number export module uninstantiated { ->uninstantiated : any, Symbol(uninstantiated, Decl(server.ts, 8, 18)) +>uninstantiated : any } === tests/cases/compiler/client.ts === diff --git a/tests/baselines/reference/es6ExportClause.symbols b/tests/baselines/reference/es6ExportClause.symbols new file mode 100644 index 0000000000000..fe4de21a00f9c --- /dev/null +++ b/tests/baselines/reference/es6ExportClause.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/es6ExportClause.ts === + +class c { +>c : Symbol(c, Decl(es6ExportClause.ts, 0, 0)) +} +interface i { +>i : Symbol(i, Decl(es6ExportClause.ts, 2, 1)) +} +module m { +>m : Symbol(m, Decl(es6ExportClause.ts, 4, 1)) + + export var x = 10; +>x : Symbol(x, Decl(es6ExportClause.ts, 6, 14)) +} +var x = 10; +>x : Symbol(x, Decl(es6ExportClause.ts, 8, 3)) + +module uninstantiated { +>uninstantiated : Symbol(uninstantiated, Decl(es6ExportClause.ts, 8, 11)) +} +export { c }; +>c : Symbol(c, Decl(es6ExportClause.ts, 11, 8)) + +export { c as c2 }; +>c : Symbol(c2, Decl(es6ExportClause.ts, 12, 8)) +>c2 : Symbol(c2, Decl(es6ExportClause.ts, 12, 8)) + +export { i, m as instantiatedModule }; +>i : Symbol(i, Decl(es6ExportClause.ts, 13, 8)) +>m : Symbol(instantiatedModule, Decl(es6ExportClause.ts, 13, 11)) +>instantiatedModule : Symbol(instantiatedModule, Decl(es6ExportClause.ts, 13, 11)) + +export { uninstantiated }; +>uninstantiated : Symbol(uninstantiated, Decl(es6ExportClause.ts, 14, 8)) + +export { x }; +>x : Symbol(x, Decl(es6ExportClause.ts, 15, 8)) + diff --git a/tests/baselines/reference/es6ExportClause.types b/tests/baselines/reference/es6ExportClause.types index 2a6c6dd91bc7b..b0d544201a4d3 100644 --- a/tests/baselines/reference/es6ExportClause.types +++ b/tests/baselines/reference/es6ExportClause.types @@ -1,40 +1,40 @@ === tests/cases/compiler/es6ExportClause.ts === class c { ->c : c, Symbol(c, Decl(es6ExportClause.ts, 0, 0)) +>c : c } interface i { ->i : i, Symbol(i, Decl(es6ExportClause.ts, 2, 1)) +>i : i } module m { ->m : typeof m, Symbol(m, Decl(es6ExportClause.ts, 4, 1)) +>m : typeof m export var x = 10; ->x : number, Symbol(x, Decl(es6ExportClause.ts, 6, 14)) +>x : number >10 : number } var x = 10; ->x : number, Symbol(x, Decl(es6ExportClause.ts, 8, 3)) +>x : number >10 : number module uninstantiated { ->uninstantiated : any, Symbol(uninstantiated, Decl(es6ExportClause.ts, 8, 11)) +>uninstantiated : any } export { c }; ->c : typeof c, Symbol(c, Decl(es6ExportClause.ts, 11, 8)) +>c : typeof c export { c as c2 }; ->c : typeof c, Symbol(c2, Decl(es6ExportClause.ts, 12, 8)) ->c2 : typeof c, Symbol(c2, Decl(es6ExportClause.ts, 12, 8)) +>c : typeof c +>c2 : typeof c export { i, m as instantiatedModule }; ->i : any, Symbol(i, Decl(es6ExportClause.ts, 13, 8)) ->m : typeof m, Symbol(instantiatedModule, Decl(es6ExportClause.ts, 13, 11)) ->instantiatedModule : typeof m, Symbol(instantiatedModule, Decl(es6ExportClause.ts, 13, 11)) +>i : any +>m : typeof m +>instantiatedModule : typeof m export { uninstantiated }; ->uninstantiated : any, Symbol(uninstantiated, Decl(es6ExportClause.ts, 14, 8)) +>uninstantiated : any export { x }; ->x : number, Symbol(x, Decl(es6ExportClause.ts, 15, 8)) +>x : number diff --git a/tests/baselines/reference/es6ExportClauseInEs5.symbols b/tests/baselines/reference/es6ExportClauseInEs5.symbols new file mode 100644 index 0000000000000..5590b907eecb9 --- /dev/null +++ b/tests/baselines/reference/es6ExportClauseInEs5.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/es6ExportClauseInEs5.ts === + +class c { +>c : Symbol(c, Decl(es6ExportClauseInEs5.ts, 0, 0)) +} +interface i { +>i : Symbol(i, Decl(es6ExportClauseInEs5.ts, 2, 1)) +} +module m { +>m : Symbol(m, Decl(es6ExportClauseInEs5.ts, 4, 1)) + + export var x = 10; +>x : Symbol(x, Decl(es6ExportClauseInEs5.ts, 6, 14)) +} +var x = 10; +>x : Symbol(x, Decl(es6ExportClauseInEs5.ts, 8, 3)) + +module uninstantiated { +>uninstantiated : Symbol(uninstantiated, Decl(es6ExportClauseInEs5.ts, 8, 11)) +} +export { c }; +>c : Symbol(c, Decl(es6ExportClauseInEs5.ts, 11, 8)) + +export { c as c2 }; +>c : Symbol(c2, Decl(es6ExportClauseInEs5.ts, 12, 8)) +>c2 : Symbol(c2, Decl(es6ExportClauseInEs5.ts, 12, 8)) + +export { i, m as instantiatedModule }; +>i : Symbol(i, Decl(es6ExportClauseInEs5.ts, 13, 8)) +>m : Symbol(instantiatedModule, Decl(es6ExportClauseInEs5.ts, 13, 11)) +>instantiatedModule : Symbol(instantiatedModule, Decl(es6ExportClauseInEs5.ts, 13, 11)) + +export { uninstantiated }; +>uninstantiated : Symbol(uninstantiated, Decl(es6ExportClauseInEs5.ts, 14, 8)) + +export { x }; +>x : Symbol(x, Decl(es6ExportClauseInEs5.ts, 15, 8)) + diff --git a/tests/baselines/reference/es6ExportClauseInEs5.types b/tests/baselines/reference/es6ExportClauseInEs5.types index 584af08064d68..c6ef9033bf180 100644 --- a/tests/baselines/reference/es6ExportClauseInEs5.types +++ b/tests/baselines/reference/es6ExportClauseInEs5.types @@ -1,40 +1,40 @@ === tests/cases/compiler/es6ExportClauseInEs5.ts === class c { ->c : c, Symbol(c, Decl(es6ExportClauseInEs5.ts, 0, 0)) +>c : c } interface i { ->i : i, Symbol(i, Decl(es6ExportClauseInEs5.ts, 2, 1)) +>i : i } module m { ->m : typeof m, Symbol(m, Decl(es6ExportClauseInEs5.ts, 4, 1)) +>m : typeof m export var x = 10; ->x : number, Symbol(x, Decl(es6ExportClauseInEs5.ts, 6, 14)) +>x : number >10 : number } var x = 10; ->x : number, Symbol(x, Decl(es6ExportClauseInEs5.ts, 8, 3)) +>x : number >10 : number module uninstantiated { ->uninstantiated : any, Symbol(uninstantiated, Decl(es6ExportClauseInEs5.ts, 8, 11)) +>uninstantiated : any } export { c }; ->c : typeof c, Symbol(c, Decl(es6ExportClauseInEs5.ts, 11, 8)) +>c : typeof c export { c as c2 }; ->c : typeof c, Symbol(c2, Decl(es6ExportClauseInEs5.ts, 12, 8)) ->c2 : typeof c, Symbol(c2, Decl(es6ExportClauseInEs5.ts, 12, 8)) +>c : typeof c +>c2 : typeof c export { i, m as instantiatedModule }; ->i : any, Symbol(i, Decl(es6ExportClauseInEs5.ts, 13, 8)) ->m : typeof m, Symbol(instantiatedModule, Decl(es6ExportClauseInEs5.ts, 13, 11)) ->instantiatedModule : typeof m, Symbol(instantiatedModule, Decl(es6ExportClauseInEs5.ts, 13, 11)) +>i : any +>m : typeof m +>instantiatedModule : typeof m export { uninstantiated }; ->uninstantiated : any, Symbol(uninstantiated, Decl(es6ExportClauseInEs5.ts, 14, 8)) +>uninstantiated : any export { x }; ->x : number, Symbol(x, Decl(es6ExportClauseInEs5.ts, 15, 8)) +>x : number diff --git a/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.symbols b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.symbols new file mode 100644 index 0000000000000..731a0fdcc30c2 --- /dev/null +++ b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/server.ts === + +export class c { +>c : Symbol(c, Decl(server.ts, 0, 0)) +} +export interface i { +>i : Symbol(i, Decl(server.ts, 2, 1)) +} +export module m { +>m : Symbol(m, Decl(server.ts, 4, 1)) + + export var x = 10; +>x : Symbol(x, Decl(server.ts, 6, 14)) +} +export var x = 10; +>x : Symbol(x, Decl(server.ts, 8, 10)) + +export module uninstantiated { +>uninstantiated : Symbol(uninstantiated, Decl(server.ts, 8, 18)) +} + +=== tests/cases/compiler/client.ts === +export { c } from "server"; +>c : Symbol(c, Decl(client.ts, 0, 8)) + +export { c as c2 } from "server"; +>c : Symbol(c2, Decl(client.ts, 1, 8)) +>c2 : Symbol(c2, Decl(client.ts, 1, 8)) + +export { i, m as instantiatedModule } from "server"; +>i : Symbol(i, Decl(client.ts, 2, 8)) +>m : Symbol(instantiatedModule, Decl(client.ts, 2, 11)) +>instantiatedModule : Symbol(instantiatedModule, Decl(client.ts, 2, 11)) + +export { uninstantiated } from "server"; +>uninstantiated : Symbol(uninstantiated, Decl(client.ts, 3, 8)) + +export { x } from "server"; +>x : Symbol(x, Decl(client.ts, 4, 8)) + diff --git a/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.types b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.types index dd6f31182f5e0..9d87ec9925dee 100644 --- a/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.types +++ b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifier.types @@ -1,42 +1,42 @@ === tests/cases/compiler/server.ts === export class c { ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c } export interface i { ->i : i, Symbol(i, Decl(server.ts, 2, 1)) +>i : i } export module m { ->m : typeof m, Symbol(m, Decl(server.ts, 4, 1)) +>m : typeof m export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 6, 14)) +>x : number >10 : number } export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 8, 10)) +>x : number >10 : number export module uninstantiated { ->uninstantiated : any, Symbol(uninstantiated, Decl(server.ts, 8, 18)) +>uninstantiated : any } === tests/cases/compiler/client.ts === export { c } from "server"; ->c : typeof c, Symbol(c, Decl(client.ts, 0, 8)) +>c : typeof c export { c as c2 } from "server"; ->c : typeof c, Symbol(c2, Decl(client.ts, 1, 8)) ->c2 : typeof c, Symbol(c2, Decl(client.ts, 1, 8)) +>c : typeof c +>c2 : typeof c export { i, m as instantiatedModule } from "server"; ->i : any, Symbol(i, Decl(client.ts, 2, 8)) ->m : typeof instantiatedModule, Symbol(instantiatedModule, Decl(client.ts, 2, 11)) ->instantiatedModule : typeof instantiatedModule, Symbol(instantiatedModule, Decl(client.ts, 2, 11)) +>i : any +>m : typeof instantiatedModule +>instantiatedModule : typeof instantiatedModule export { uninstantiated } from "server"; ->uninstantiated : any, Symbol(uninstantiated, Decl(client.ts, 3, 8)) +>uninstantiated : any export { x } from "server"; ->x : number, Symbol(x, Decl(client.ts, 4, 8)) +>x : number diff --git a/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.symbols b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.symbols new file mode 100644 index 0000000000000..731a0fdcc30c2 --- /dev/null +++ b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/server.ts === + +export class c { +>c : Symbol(c, Decl(server.ts, 0, 0)) +} +export interface i { +>i : Symbol(i, Decl(server.ts, 2, 1)) +} +export module m { +>m : Symbol(m, Decl(server.ts, 4, 1)) + + export var x = 10; +>x : Symbol(x, Decl(server.ts, 6, 14)) +} +export var x = 10; +>x : Symbol(x, Decl(server.ts, 8, 10)) + +export module uninstantiated { +>uninstantiated : Symbol(uninstantiated, Decl(server.ts, 8, 18)) +} + +=== tests/cases/compiler/client.ts === +export { c } from "server"; +>c : Symbol(c, Decl(client.ts, 0, 8)) + +export { c as c2 } from "server"; +>c : Symbol(c2, Decl(client.ts, 1, 8)) +>c2 : Symbol(c2, Decl(client.ts, 1, 8)) + +export { i, m as instantiatedModule } from "server"; +>i : Symbol(i, Decl(client.ts, 2, 8)) +>m : Symbol(instantiatedModule, Decl(client.ts, 2, 11)) +>instantiatedModule : Symbol(instantiatedModule, Decl(client.ts, 2, 11)) + +export { uninstantiated } from "server"; +>uninstantiated : Symbol(uninstantiated, Decl(client.ts, 3, 8)) + +export { x } from "server"; +>x : Symbol(x, Decl(client.ts, 4, 8)) + diff --git a/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.types b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.types index dd6f31182f5e0..9d87ec9925dee 100644 --- a/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.types +++ b/tests/baselines/reference/es6ExportClauseWithoutModuleSpecifierInEs5.types @@ -1,42 +1,42 @@ === tests/cases/compiler/server.ts === export class c { ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c } export interface i { ->i : i, Symbol(i, Decl(server.ts, 2, 1)) +>i : i } export module m { ->m : typeof m, Symbol(m, Decl(server.ts, 4, 1)) +>m : typeof m export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 6, 14)) +>x : number >10 : number } export var x = 10; ->x : number, Symbol(x, Decl(server.ts, 8, 10)) +>x : number >10 : number export module uninstantiated { ->uninstantiated : any, Symbol(uninstantiated, Decl(server.ts, 8, 18)) +>uninstantiated : any } === tests/cases/compiler/client.ts === export { c } from "server"; ->c : typeof c, Symbol(c, Decl(client.ts, 0, 8)) +>c : typeof c export { c as c2 } from "server"; ->c : typeof c, Symbol(c2, Decl(client.ts, 1, 8)) ->c2 : typeof c, Symbol(c2, Decl(client.ts, 1, 8)) +>c : typeof c +>c2 : typeof c export { i, m as instantiatedModule } from "server"; ->i : any, Symbol(i, Decl(client.ts, 2, 8)) ->m : typeof instantiatedModule, Symbol(instantiatedModule, Decl(client.ts, 2, 11)) ->instantiatedModule : typeof instantiatedModule, Symbol(instantiatedModule, Decl(client.ts, 2, 11)) +>i : any +>m : typeof instantiatedModule +>instantiatedModule : typeof instantiatedModule export { uninstantiated } from "server"; ->uninstantiated : any, Symbol(uninstantiated, Decl(client.ts, 3, 8)) +>uninstantiated : any export { x } from "server"; ->x : number, Symbol(x, Decl(client.ts, 4, 8)) +>x : number diff --git a/tests/baselines/reference/es6ExportDefaultClassDeclaration.symbols b/tests/baselines/reference/es6ExportDefaultClassDeclaration.symbols new file mode 100644 index 0000000000000..02aa55751904f --- /dev/null +++ b/tests/baselines/reference/es6ExportDefaultClassDeclaration.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/es6ExportDefaultClassDeclaration.ts === + +export default class C { +>C : Symbol(C, Decl(es6ExportDefaultClassDeclaration.ts, 0, 0)) + + method() { } +>method : Symbol(method, Decl(es6ExportDefaultClassDeclaration.ts, 1, 24)) +} + diff --git a/tests/baselines/reference/es6ExportDefaultClassDeclaration.types b/tests/baselines/reference/es6ExportDefaultClassDeclaration.types index 7611544348e5a..59e74fc1257c5 100644 --- a/tests/baselines/reference/es6ExportDefaultClassDeclaration.types +++ b/tests/baselines/reference/es6ExportDefaultClassDeclaration.types @@ -1,9 +1,9 @@ === tests/cases/compiler/es6ExportDefaultClassDeclaration.ts === export default class C { ->C : C, Symbol(C, Decl(es6ExportDefaultClassDeclaration.ts, 0, 0)) +>C : C method() { } ->method : () => void, Symbol(method, Decl(es6ExportDefaultClassDeclaration.ts, 1, 24)) +>method : () => void } diff --git a/tests/baselines/reference/es6ExportDefaultClassDeclaration2.symbols b/tests/baselines/reference/es6ExportDefaultClassDeclaration2.symbols new file mode 100644 index 0000000000000..168c402d3e42b --- /dev/null +++ b/tests/baselines/reference/es6ExportDefaultClassDeclaration2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/es6ExportDefaultClassDeclaration2.ts === + +export default class { + method() { } +>method : Symbol(method, Decl(es6ExportDefaultClassDeclaration2.ts, 1, 22)) +} + diff --git a/tests/baselines/reference/es6ExportDefaultClassDeclaration2.types b/tests/baselines/reference/es6ExportDefaultClassDeclaration2.types index 8118ddcdc5abc..513cacf05e4d0 100644 --- a/tests/baselines/reference/es6ExportDefaultClassDeclaration2.types +++ b/tests/baselines/reference/es6ExportDefaultClassDeclaration2.types @@ -2,6 +2,6 @@ export default class { method() { } ->method : () => void, Symbol(method, Decl(es6ExportDefaultClassDeclaration2.ts, 1, 22)) +>method : () => void } diff --git a/tests/baselines/reference/es6ExportDefaultExpression.symbols b/tests/baselines/reference/es6ExportDefaultExpression.symbols new file mode 100644 index 0000000000000..f80acc12900ca --- /dev/null +++ b/tests/baselines/reference/es6ExportDefaultExpression.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/es6ExportDefaultExpression.ts === + +No type information for this code.export default (1 + 2); +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.symbols b/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.symbols new file mode 100644 index 0000000000000..4050ac975455b --- /dev/null +++ b/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/es6ExportDefaultFunctionDeclaration.ts === + +export default function f() { } +>f : Symbol(f, Decl(es6ExportDefaultFunctionDeclaration.ts, 0, 0)) + diff --git a/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.types b/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.types index 2ca2638ec87fb..6179bde9613aa 100644 --- a/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.types +++ b/tests/baselines/reference/es6ExportDefaultFunctionDeclaration.types @@ -1,5 +1,5 @@ === tests/cases/compiler/es6ExportDefaultFunctionDeclaration.ts === export default function f() { } ->f : () => void, Symbol(f, Decl(es6ExportDefaultFunctionDeclaration.ts, 0, 0)) +>f : () => void diff --git a/tests/baselines/reference/es6ExportDefaultFunctionDeclaration2.symbols b/tests/baselines/reference/es6ExportDefaultFunctionDeclaration2.symbols new file mode 100644 index 0000000000000..3cb2fc9b1cd0c --- /dev/null +++ b/tests/baselines/reference/es6ExportDefaultFunctionDeclaration2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/es6ExportDefaultFunctionDeclaration2.ts === + +No type information for this code.export default function () { } +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ExportDefaultIdentifier.symbols b/tests/baselines/reference/es6ExportDefaultIdentifier.symbols new file mode 100644 index 0000000000000..29b932aaeda92 --- /dev/null +++ b/tests/baselines/reference/es6ExportDefaultIdentifier.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/es6ExportDefaultIdentifier.ts === + +export function f() { } +>f : Symbol(f, Decl(es6ExportDefaultIdentifier.ts, 0, 0)) + +export default f; +>f : Symbol(f, Decl(es6ExportDefaultIdentifier.ts, 0, 0)) + diff --git a/tests/baselines/reference/es6ExportDefaultIdentifier.types b/tests/baselines/reference/es6ExportDefaultIdentifier.types index e758ae6721df7..81dc168efd0cf 100644 --- a/tests/baselines/reference/es6ExportDefaultIdentifier.types +++ b/tests/baselines/reference/es6ExportDefaultIdentifier.types @@ -1,8 +1,8 @@ === tests/cases/compiler/es6ExportDefaultIdentifier.ts === export function f() { } ->f : () => void, Symbol(f, Decl(es6ExportDefaultIdentifier.ts, 0, 0)) +>f : () => void export default f; ->f : () => void, Symbol(f, Decl(es6ExportDefaultIdentifier.ts, 0, 0)) +>f : () => void diff --git a/tests/baselines/reference/es6ImportDefaultBinding.symbols b/tests/baselines/reference/es6ImportDefaultBinding.symbols new file mode 100644 index 0000000000000..d1e76d7075acc --- /dev/null +++ b/tests/baselines/reference/es6ImportDefaultBinding.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/es6ImportDefaultBinding_0.ts === + +var a = 10; +>a : Symbol(a, Decl(es6ImportDefaultBinding_0.ts, 1, 3)) + +export default a; +>a : Symbol(a, Decl(es6ImportDefaultBinding_0.ts, 1, 3)) + +=== tests/cases/compiler/es6ImportDefaultBinding_1.ts === +import defaultBinding from "es6ImportDefaultBinding_0"; +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBinding_1.ts, 0, 6)) + +var x = defaultBinding; +>x : Symbol(x, Decl(es6ImportDefaultBinding_1.ts, 1, 3)) +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBinding_1.ts, 0, 6)) + +import defaultBinding2 from "es6ImportDefaultBinding_0"; // elide this import since defaultBinding2 is not used +>defaultBinding2 : Symbol(defaultBinding2, Decl(es6ImportDefaultBinding_1.ts, 2, 6)) + diff --git a/tests/baselines/reference/es6ImportDefaultBinding.types b/tests/baselines/reference/es6ImportDefaultBinding.types index 8d0089168631f..6aa71ddf6ff24 100644 --- a/tests/baselines/reference/es6ImportDefaultBinding.types +++ b/tests/baselines/reference/es6ImportDefaultBinding.types @@ -1,20 +1,20 @@ === tests/cases/compiler/es6ImportDefaultBinding_0.ts === var a = 10; ->a : number, Symbol(a, Decl(es6ImportDefaultBinding_0.ts, 1, 3)) +>a : number >10 : number export default a; ->a : number, Symbol(a, Decl(es6ImportDefaultBinding_0.ts, 1, 3)) +>a : number === tests/cases/compiler/es6ImportDefaultBinding_1.ts === import defaultBinding from "es6ImportDefaultBinding_0"; ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBinding_1.ts, 0, 6)) +>defaultBinding : number var x = defaultBinding; ->x : number, Symbol(x, Decl(es6ImportDefaultBinding_1.ts, 1, 3)) ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBinding_1.ts, 0, 6)) +>x : number +>defaultBinding : number import defaultBinding2 from "es6ImportDefaultBinding_0"; // elide this import since defaultBinding2 is not used ->defaultBinding2 : number, Symbol(defaultBinding2, Decl(es6ImportDefaultBinding_1.ts, 2, 6)) +>defaultBinding2 : number diff --git a/tests/baselines/reference/es6ImportDefaultBindingAmd.symbols b/tests/baselines/reference/es6ImportDefaultBindingAmd.symbols new file mode 100644 index 0000000000000..cab731104bd3d --- /dev/null +++ b/tests/baselines/reference/es6ImportDefaultBindingAmd.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/es6ImportDefaultBindingAmd_0.ts === + +var a = 10; +>a : Symbol(a, Decl(es6ImportDefaultBindingAmd_0.ts, 1, 3)) + +export default a; +>a : Symbol(a, Decl(es6ImportDefaultBindingAmd_0.ts, 1, 3)) + +=== tests/cases/compiler/es6ImportDefaultBindingAmd_1.ts === +import defaultBinding from "es6ImportDefaultBindingAmd_0"; +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBindingAmd_1.ts, 0, 6)) + +var x = defaultBinding; +>x : Symbol(x, Decl(es6ImportDefaultBindingAmd_1.ts, 1, 3)) +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBindingAmd_1.ts, 0, 6)) + +import defaultBinding2 from "es6ImportDefaultBindingAmd_0"; // elide this import since defaultBinding2 is not used +>defaultBinding2 : Symbol(defaultBinding2, Decl(es6ImportDefaultBindingAmd_1.ts, 2, 6)) + diff --git a/tests/baselines/reference/es6ImportDefaultBindingAmd.types b/tests/baselines/reference/es6ImportDefaultBindingAmd.types index 48b3cb49560c8..740ff2c0e14e1 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingAmd.types +++ b/tests/baselines/reference/es6ImportDefaultBindingAmd.types @@ -1,20 +1,20 @@ === tests/cases/compiler/es6ImportDefaultBindingAmd_0.ts === var a = 10; ->a : number, Symbol(a, Decl(es6ImportDefaultBindingAmd_0.ts, 1, 3)) +>a : number >10 : number export default a; ->a : number, Symbol(a, Decl(es6ImportDefaultBindingAmd_0.ts, 1, 3)) +>a : number === tests/cases/compiler/es6ImportDefaultBindingAmd_1.ts === import defaultBinding from "es6ImportDefaultBindingAmd_0"; ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBindingAmd_1.ts, 0, 6)) +>defaultBinding : number var x = defaultBinding; ->x : number, Symbol(x, Decl(es6ImportDefaultBindingAmd_1.ts, 1, 3)) ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBindingAmd_1.ts, 0, 6)) +>x : number +>defaultBinding : number import defaultBinding2 from "es6ImportDefaultBindingAmd_0"; // elide this import since defaultBinding2 is not used ->defaultBinding2 : number, Symbol(defaultBinding2, Decl(es6ImportDefaultBindingAmd_1.ts, 2, 6)) +>defaultBinding2 : number diff --git a/tests/baselines/reference/es6ImportDefaultBindingDts.symbols b/tests/baselines/reference/es6ImportDefaultBindingDts.symbols new file mode 100644 index 0000000000000..1ca93aa664114 --- /dev/null +++ b/tests/baselines/reference/es6ImportDefaultBindingDts.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/server.ts === + +class c { } +>c : Symbol(c, Decl(server.ts, 0, 0)) + +export default c; +>c : Symbol(c, Decl(server.ts, 0, 0)) + +=== tests/cases/compiler/client.ts === +import defaultBinding from "server"; +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 6)) + +export var x = new defaultBinding(); +>x : Symbol(x, Decl(client.ts, 1, 10)) +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 6)) + +import defaultBinding2 from "server"; // elide this import since defaultBinding2 is not used +>defaultBinding2 : Symbol(defaultBinding2, Decl(client.ts, 2, 6)) + diff --git a/tests/baselines/reference/es6ImportDefaultBindingDts.types b/tests/baselines/reference/es6ImportDefaultBindingDts.types index 8ee2d2245d086..65754d806802b 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingDts.types +++ b/tests/baselines/reference/es6ImportDefaultBindingDts.types @@ -1,20 +1,20 @@ === tests/cases/compiler/server.ts === class c { } ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c export default c; ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c === tests/cases/compiler/client.ts === import defaultBinding from "server"; ->defaultBinding : typeof defaultBinding, Symbol(defaultBinding, Decl(client.ts, 0, 6)) +>defaultBinding : typeof defaultBinding export var x = new defaultBinding(); ->x : defaultBinding, Symbol(x, Decl(client.ts, 1, 10)) +>x : defaultBinding >new defaultBinding() : defaultBinding ->defaultBinding : typeof defaultBinding, Symbol(defaultBinding, Decl(client.ts, 0, 6)) +>defaultBinding : typeof defaultBinding import defaultBinding2 from "server"; // elide this import since defaultBinding2 is not used ->defaultBinding2 : typeof defaultBinding, Symbol(defaultBinding2, Decl(client.ts, 2, 6)) +>defaultBinding2 : typeof defaultBinding diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.symbols b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.symbols new file mode 100644 index 0000000000000..a62cdfec87310 --- /dev/null +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts === + +var a = 10; +>a : Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts, 1, 3)) + +export default a; +>a : Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts, 1, 3)) + +=== tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts === +import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBinding_0"; +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 0, 6)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 0, 22)) + +var x: number = defaultBinding; +>x : Symbol(x, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 1, 3)) +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 0, 6)) + diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.types b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.types index 6bb5e8e737d75..6d3f015c783df 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.types +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1.types @@ -1,18 +1,18 @@ === tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts === var a = 10; ->a : number, Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts, 1, 3)) +>a : number >10 : number export default a; ->a : number, Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_0.ts, 1, 3)) +>a : number === tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts === import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBinding_0"; ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 0, 6)) ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 0, 22)) +>defaultBinding : number +>nameSpaceBinding : typeof nameSpaceBinding var x: number = defaultBinding; ->x : number, Symbol(x, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 1, 3)) ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBinding_1.ts, 0, 6)) +>x : number +>defaultBinding : number diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.symbols b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.symbols new file mode 100644 index 0000000000000..d4a9c289e60f9 --- /dev/null +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0.ts === + +var a = 10; +>a : Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0.ts, 1, 3)) + +export default a; +>a : Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0.ts, 1, 3)) + +=== tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts === +import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0"; +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 0, 6)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 0, 22)) + +var x: number = defaultBinding; +>x : Symbol(x, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 1, 3)) +>defaultBinding : Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 0, 6)) + diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.types b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.types index ce8812891ccf9..4a05b57e30475 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.types +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBinding1InEs5.types @@ -1,18 +1,18 @@ === tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0.ts === var a = 10; ->a : number, Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0.ts, 1, 3)) +>a : number >10 : number export default a; ->a : number, Symbol(a, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0.ts, 1, 3)) +>a : number === tests/cases/compiler/es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts === import defaultBinding, * as nameSpaceBinding from "es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_0"; ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 0, 6)) ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 0, 22)) +>defaultBinding : number +>nameSpaceBinding : typeof nameSpaceBinding var x: number = defaultBinding; ->x : number, Symbol(x, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 1, 3)) ->defaultBinding : number, Symbol(defaultBinding, Decl(es6ImportDefaultBindingFollowedWithNamespaceBindingInEs5_1.ts, 0, 6)) +>x : number +>defaultBinding : number diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.symbols b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.symbols new file mode 100644 index 0000000000000..28f1e4cc4d73d --- /dev/null +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/server.ts === + +class a { } +>a : Symbol(a, Decl(server.ts, 0, 0)) + +export default a; +>a : Symbol(a, Decl(server.ts, 0, 0)) + +=== tests/cases/compiler/client.ts === +import defaultBinding, * as nameSpaceBinding from "server"; +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 6)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 22)) + +export var x = new defaultBinding(); +>x : Symbol(x, Decl(client.ts, 1, 10)) +>defaultBinding : Symbol(defaultBinding, Decl(client.ts, 0, 6)) + diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.types b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.types index 449978f3c57d9..990bae10af6d3 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.types +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamespaceBindingDts1.types @@ -1,18 +1,18 @@ === tests/cases/compiler/server.ts === class a { } ->a : a, Symbol(a, Decl(server.ts, 0, 0)) +>a : a export default a; ->a : a, Symbol(a, Decl(server.ts, 0, 0)) +>a : a === tests/cases/compiler/client.ts === import defaultBinding, * as nameSpaceBinding from "server"; ->defaultBinding : typeof defaultBinding, Symbol(defaultBinding, Decl(client.ts, 0, 6)) ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(client.ts, 0, 22)) +>defaultBinding : typeof defaultBinding +>nameSpaceBinding : typeof nameSpaceBinding export var x = new defaultBinding(); ->x : defaultBinding, Symbol(x, Decl(client.ts, 1, 10)) +>x : defaultBinding >new defaultBinding() : defaultBinding ->defaultBinding : typeof defaultBinding, Symbol(defaultBinding, Decl(client.ts, 0, 6)) +>defaultBinding : typeof defaultBinding diff --git a/tests/baselines/reference/es6ImportNameSpaceImportAmd.symbols b/tests/baselines/reference/es6ImportNameSpaceImportAmd.symbols new file mode 100644 index 0000000000000..24c67cd6f4753 --- /dev/null +++ b/tests/baselines/reference/es6ImportNameSpaceImportAmd.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/es6ImportNameSpaceImportAmd_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportNameSpaceImportAmd_0.ts, 1, 10)) + +=== tests/cases/compiler/es6ImportNameSpaceImportAmd_1.ts === +import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0"; +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportAmd_1.ts, 0, 6)) + +var x = nameSpaceBinding.a; +>x : Symbol(x, Decl(es6ImportNameSpaceImportAmd_1.ts, 1, 3)) +>nameSpaceBinding.a : Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportAmd_0.ts, 1, 10)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportAmd_1.ts, 0, 6)) +>a : Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportAmd_0.ts, 1, 10)) + +import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0"; // elide this +>nameSpaceBinding2 : Symbol(nameSpaceBinding2, Decl(es6ImportNameSpaceImportAmd_1.ts, 2, 6)) + diff --git a/tests/baselines/reference/es6ImportNameSpaceImportAmd.types b/tests/baselines/reference/es6ImportNameSpaceImportAmd.types index 4c070e28f5b0e..beb6860c73eeb 100644 --- a/tests/baselines/reference/es6ImportNameSpaceImportAmd.types +++ b/tests/baselines/reference/es6ImportNameSpaceImportAmd.types @@ -1,19 +1,19 @@ === tests/cases/compiler/es6ImportNameSpaceImportAmd_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportNameSpaceImportAmd_0.ts, 1, 10)) +>a : number >10 : number === tests/cases/compiler/es6ImportNameSpaceImportAmd_1.ts === import * as nameSpaceBinding from "es6ImportNameSpaceImportAmd_0"; ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportAmd_1.ts, 0, 6)) +>nameSpaceBinding : typeof nameSpaceBinding var x = nameSpaceBinding.a; ->x : number, Symbol(x, Decl(es6ImportNameSpaceImportAmd_1.ts, 1, 3)) ->nameSpaceBinding.a : number, Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportAmd_0.ts, 1, 10)) ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportAmd_1.ts, 0, 6)) ->a : number, Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportAmd_0.ts, 1, 10)) +>x : number +>nameSpaceBinding.a : number +>nameSpaceBinding : typeof nameSpaceBinding +>a : number import * as nameSpaceBinding2 from "es6ImportNameSpaceImportAmd_0"; // elide this ->nameSpaceBinding2 : typeof nameSpaceBinding, Symbol(nameSpaceBinding2, Decl(es6ImportNameSpaceImportAmd_1.ts, 2, 6)) +>nameSpaceBinding2 : typeof nameSpaceBinding diff --git a/tests/baselines/reference/es6ImportNameSpaceImportDts.symbols b/tests/baselines/reference/es6ImportNameSpaceImportDts.symbols new file mode 100644 index 0000000000000..8104cbcce50bf --- /dev/null +++ b/tests/baselines/reference/es6ImportNameSpaceImportDts.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/server.ts === + +export class c { }; +>c : Symbol(c, Decl(server.ts, 0, 0)) + +=== tests/cases/compiler/client.ts === +import * as nameSpaceBinding from "server"; +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 6)) + +export var x = new nameSpaceBinding.c(); +>x : Symbol(x, Decl(client.ts, 1, 10)) +>nameSpaceBinding.c : Symbol(nameSpaceBinding.c, Decl(server.ts, 0, 0)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(client.ts, 0, 6)) +>c : Symbol(nameSpaceBinding.c, Decl(server.ts, 0, 0)) + +import * as nameSpaceBinding2 from "server"; // unreferenced +>nameSpaceBinding2 : Symbol(nameSpaceBinding2, Decl(client.ts, 2, 6)) + diff --git a/tests/baselines/reference/es6ImportNameSpaceImportDts.types b/tests/baselines/reference/es6ImportNameSpaceImportDts.types index 5d93d5ca9f380..345d593b1437b 100644 --- a/tests/baselines/reference/es6ImportNameSpaceImportDts.types +++ b/tests/baselines/reference/es6ImportNameSpaceImportDts.types @@ -1,19 +1,19 @@ === tests/cases/compiler/server.ts === export class c { }; ->c : c, Symbol(c, Decl(server.ts, 0, 0)) +>c : c === tests/cases/compiler/client.ts === import * as nameSpaceBinding from "server"; ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(client.ts, 0, 6)) +>nameSpaceBinding : typeof nameSpaceBinding export var x = new nameSpaceBinding.c(); ->x : nameSpaceBinding.c, Symbol(x, Decl(client.ts, 1, 10)) +>x : nameSpaceBinding.c >new nameSpaceBinding.c() : nameSpaceBinding.c ->nameSpaceBinding.c : typeof nameSpaceBinding.c, Symbol(nameSpaceBinding.c, Decl(server.ts, 0, 0)) ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(client.ts, 0, 6)) ->c : typeof nameSpaceBinding.c, Symbol(nameSpaceBinding.c, Decl(server.ts, 0, 0)) +>nameSpaceBinding.c : typeof nameSpaceBinding.c +>nameSpaceBinding : typeof nameSpaceBinding +>c : typeof nameSpaceBinding.c import * as nameSpaceBinding2 from "server"; // unreferenced ->nameSpaceBinding2 : typeof nameSpaceBinding, Symbol(nameSpaceBinding2, Decl(client.ts, 2, 6)) +>nameSpaceBinding2 : typeof nameSpaceBinding diff --git a/tests/baselines/reference/es6ImportNameSpaceImportInEs5.symbols b/tests/baselines/reference/es6ImportNameSpaceImportInEs5.symbols new file mode 100644 index 0000000000000..119787de817bc --- /dev/null +++ b/tests/baselines/reference/es6ImportNameSpaceImportInEs5.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/es6ImportNameSpaceImportInEs5_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportNameSpaceImportInEs5_0.ts, 1, 10)) + +=== tests/cases/compiler/es6ImportNameSpaceImportInEs5_1.ts === +import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0"; +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportInEs5_1.ts, 0, 6)) + +var x = nameSpaceBinding.a; +>x : Symbol(x, Decl(es6ImportNameSpaceImportInEs5_1.ts, 1, 3)) +>nameSpaceBinding.a : Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportInEs5_0.ts, 1, 10)) +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportInEs5_1.ts, 0, 6)) +>a : Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportInEs5_0.ts, 1, 10)) + +import * as nameSpaceBinding2 from "es6ImportNameSpaceImportInEs5_0"; // elide this +>nameSpaceBinding2 : Symbol(nameSpaceBinding2, Decl(es6ImportNameSpaceImportInEs5_1.ts, 2, 6)) + diff --git a/tests/baselines/reference/es6ImportNameSpaceImportInEs5.types b/tests/baselines/reference/es6ImportNameSpaceImportInEs5.types index d58ff71dda5dc..01531cd233d48 100644 --- a/tests/baselines/reference/es6ImportNameSpaceImportInEs5.types +++ b/tests/baselines/reference/es6ImportNameSpaceImportInEs5.types @@ -1,19 +1,19 @@ === tests/cases/compiler/es6ImportNameSpaceImportInEs5_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportNameSpaceImportInEs5_0.ts, 1, 10)) +>a : number >10 : number === tests/cases/compiler/es6ImportNameSpaceImportInEs5_1.ts === import * as nameSpaceBinding from "es6ImportNameSpaceImportInEs5_0"; ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportInEs5_1.ts, 0, 6)) +>nameSpaceBinding : typeof nameSpaceBinding var x = nameSpaceBinding.a; ->x : number, Symbol(x, Decl(es6ImportNameSpaceImportInEs5_1.ts, 1, 3)) ->nameSpaceBinding.a : number, Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportInEs5_0.ts, 1, 10)) ->nameSpaceBinding : typeof nameSpaceBinding, Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportInEs5_1.ts, 0, 6)) ->a : number, Symbol(nameSpaceBinding.a, Decl(es6ImportNameSpaceImportInEs5_0.ts, 1, 10)) +>x : number +>nameSpaceBinding.a : number +>nameSpaceBinding : typeof nameSpaceBinding +>a : number import * as nameSpaceBinding2 from "es6ImportNameSpaceImportInEs5_0"; // elide this ->nameSpaceBinding2 : typeof nameSpaceBinding, Symbol(nameSpaceBinding2, Decl(es6ImportNameSpaceImportInEs5_1.ts, 2, 6)) +>nameSpaceBinding2 : typeof nameSpaceBinding diff --git a/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.symbols b/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.symbols new file mode 100644 index 0000000000000..6a443d1fa0024 --- /dev/null +++ b/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports_0.ts === + +var a = 10; +>a : Symbol(a, Decl(es6ImportNameSpaceImportNoNamedExports_0.ts, 1, 3)) + +export = a; +>a : Symbol(a, Decl(es6ImportNameSpaceImportNoNamedExports_0.ts, 1, 3)) + +=== tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports_1.ts === +import * as nameSpaceBinding from "es6ImportNameSpaceImportNoNamedExports_0"; // error +>nameSpaceBinding : Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportNoNamedExports_1.ts, 0, 6)) + diff --git a/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.types b/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.types index cee67ddde379a..2cc4844dd4254 100644 --- a/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.types +++ b/tests/baselines/reference/es6ImportNameSpaceImportNoNamedExports.types @@ -1,13 +1,13 @@ === tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports_0.ts === var a = 10; ->a : number, Symbol(a, Decl(es6ImportNameSpaceImportNoNamedExports_0.ts, 1, 3)) +>a : number >10 : number export = a; ->a : number, Symbol(a, Decl(es6ImportNameSpaceImportNoNamedExports_0.ts, 1, 3)) +>a : number === tests/cases/compiler/es6ImportNameSpaceImportNoNamedExports_1.ts === import * as nameSpaceBinding from "es6ImportNameSpaceImportNoNamedExports_0"; // error ->nameSpaceBinding : number, Symbol(nameSpaceBinding, Decl(es6ImportNameSpaceImportNoNamedExports_1.ts, 0, 6)) +>nameSpaceBinding : number diff --git a/tests/baselines/reference/es6ImportNamedImportAmd.symbols b/tests/baselines/reference/es6ImportNamedImportAmd.symbols new file mode 100644 index 0000000000000..2feaf603f4082 --- /dev/null +++ b/tests/baselines/reference/es6ImportNamedImportAmd.symbols @@ -0,0 +1,123 @@ +=== tests/cases/compiler/es6ImportNamedImportAmd_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportNamedImportAmd_0.ts, 1, 10)) + +export var x = a; +>x : Symbol(x, Decl(es6ImportNamedImportAmd_0.ts, 2, 10)) +>a : Symbol(a, Decl(es6ImportNamedImportAmd_0.ts, 1, 10)) + +export var m = a; +>m : Symbol(m, Decl(es6ImportNamedImportAmd_0.ts, 3, 10)) +>a : Symbol(a, Decl(es6ImportNamedImportAmd_0.ts, 1, 10)) + +export var a1 = 10; +>a1 : Symbol(a1, Decl(es6ImportNamedImportAmd_0.ts, 4, 10)) + +export var x1 = 10; +>x1 : Symbol(x1, Decl(es6ImportNamedImportAmd_0.ts, 5, 10)) + +export var z1 = 10; +>z1 : Symbol(z1, Decl(es6ImportNamedImportAmd_0.ts, 6, 10)) + +export var z2 = 10; +>z2 : Symbol(z2, Decl(es6ImportNamedImportAmd_0.ts, 7, 10)) + +export var aaaa = 10; +>aaaa : Symbol(aaaa, Decl(es6ImportNamedImportAmd_0.ts, 8, 10)) + +=== tests/cases/compiler/es6ImportNamedImportAmd_1.ts === +import { } from "es6ImportNamedImportAmd_0"; +import { a } from "es6ImportNamedImportAmd_0"; +>a : Symbol(a, Decl(es6ImportNamedImportAmd_1.ts, 1, 8)) + +var xxxx = a; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>a : Symbol(a, Decl(es6ImportNamedImportAmd_1.ts, 1, 8)) + +import { a as b } from "es6ImportNamedImportAmd_0"; +>a : Symbol(b, Decl(es6ImportNamedImportAmd_1.ts, 3, 8)) +>b : Symbol(b, Decl(es6ImportNamedImportAmd_1.ts, 3, 8)) + +var xxxx = b; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>b : Symbol(b, Decl(es6ImportNamedImportAmd_1.ts, 3, 8)) + +import { x, a as y } from "es6ImportNamedImportAmd_0"; +>x : Symbol(x, Decl(es6ImportNamedImportAmd_1.ts, 5, 8)) +>a : Symbol(y, Decl(es6ImportNamedImportAmd_1.ts, 5, 11)) +>y : Symbol(y, Decl(es6ImportNamedImportAmd_1.ts, 5, 11)) + +var xxxx = x; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>x : Symbol(x, Decl(es6ImportNamedImportAmd_1.ts, 5, 8)) + +var xxxx = y; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>y : Symbol(y, Decl(es6ImportNamedImportAmd_1.ts, 5, 11)) + +import { x as z, } from "es6ImportNamedImportAmd_0"; +>x : Symbol(z, Decl(es6ImportNamedImportAmd_1.ts, 8, 8)) +>z : Symbol(z, Decl(es6ImportNamedImportAmd_1.ts, 8, 8)) + +var xxxx = z; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>z : Symbol(z, Decl(es6ImportNamedImportAmd_1.ts, 8, 8)) + +import { m, } from "es6ImportNamedImportAmd_0"; +>m : Symbol(m, Decl(es6ImportNamedImportAmd_1.ts, 10, 8)) + +var xxxx = m; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>m : Symbol(m, Decl(es6ImportNamedImportAmd_1.ts, 10, 8)) + +import { a1, x1 } from "es6ImportNamedImportAmd_0"; +>a1 : Symbol(a1, Decl(es6ImportNamedImportAmd_1.ts, 12, 8)) +>x1 : Symbol(x1, Decl(es6ImportNamedImportAmd_1.ts, 12, 12)) + +var xxxx = a1; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>a1 : Symbol(a1, Decl(es6ImportNamedImportAmd_1.ts, 12, 8)) + +var xxxx = x1; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>x1 : Symbol(x1, Decl(es6ImportNamedImportAmd_1.ts, 12, 12)) + +import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0"; +>a1 : Symbol(a11, Decl(es6ImportNamedImportAmd_1.ts, 15, 8)) +>a11 : Symbol(a11, Decl(es6ImportNamedImportAmd_1.ts, 15, 8)) +>x1 : Symbol(x11, Decl(es6ImportNamedImportAmd_1.ts, 15, 19)) +>x11 : Symbol(x11, Decl(es6ImportNamedImportAmd_1.ts, 15, 19)) + +var xxxx = a11; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>a11 : Symbol(a11, Decl(es6ImportNamedImportAmd_1.ts, 15, 8)) + +var xxxx = x11; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) +>x11 : Symbol(x11, Decl(es6ImportNamedImportAmd_1.ts, 15, 19)) + +import { z1 } from "es6ImportNamedImportAmd_0"; +>z1 : Symbol(z1, Decl(es6ImportNamedImportAmd_1.ts, 18, 8)) + +var z111 = z1; +>z111 : Symbol(z111, Decl(es6ImportNamedImportAmd_1.ts, 19, 3)) +>z1 : Symbol(z1, Decl(es6ImportNamedImportAmd_1.ts, 18, 8)) + +import { z2 as z3 } from "es6ImportNamedImportAmd_0"; +>z2 : Symbol(z3, Decl(es6ImportNamedImportAmd_1.ts, 20, 8)) +>z3 : Symbol(z3, Decl(es6ImportNamedImportAmd_1.ts, 20, 8)) + +var z2 = z3; // z2 shouldn't give redeclare error +>z2 : Symbol(z2, Decl(es6ImportNamedImportAmd_1.ts, 21, 3)) +>z3 : Symbol(z3, Decl(es6ImportNamedImportAmd_1.ts, 20, 8)) + +// These are elided +import { aaaa } from "es6ImportNamedImportAmd_0"; +>aaaa : Symbol(aaaa, Decl(es6ImportNamedImportAmd_1.ts, 24, 8)) + +// These are elided +import { aaaa as bbbb } from "es6ImportNamedImportAmd_0"; +>aaaa : Symbol(bbbb, Decl(es6ImportNamedImportAmd_1.ts, 26, 8)) +>bbbb : Symbol(bbbb, Decl(es6ImportNamedImportAmd_1.ts, 26, 8)) + diff --git a/tests/baselines/reference/es6ImportNamedImportAmd.types b/tests/baselines/reference/es6ImportNamedImportAmd.types index 0c57bc5a04e08..45ca9c085470e 100644 --- a/tests/baselines/reference/es6ImportNamedImportAmd.types +++ b/tests/baselines/reference/es6ImportNamedImportAmd.types @@ -1,129 +1,129 @@ === tests/cases/compiler/es6ImportNamedImportAmd_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportNamedImportAmd_0.ts, 1, 10)) +>a : number >10 : number export var x = a; ->x : number, Symbol(x, Decl(es6ImportNamedImportAmd_0.ts, 2, 10)) ->a : number, Symbol(a, Decl(es6ImportNamedImportAmd_0.ts, 1, 10)) +>x : number +>a : number export var m = a; ->m : number, Symbol(m, Decl(es6ImportNamedImportAmd_0.ts, 3, 10)) ->a : number, Symbol(a, Decl(es6ImportNamedImportAmd_0.ts, 1, 10)) +>m : number +>a : number export var a1 = 10; ->a1 : number, Symbol(a1, Decl(es6ImportNamedImportAmd_0.ts, 4, 10)) +>a1 : number >10 : number export var x1 = 10; ->x1 : number, Symbol(x1, Decl(es6ImportNamedImportAmd_0.ts, 5, 10)) +>x1 : number >10 : number export var z1 = 10; ->z1 : number, Symbol(z1, Decl(es6ImportNamedImportAmd_0.ts, 6, 10)) +>z1 : number >10 : number export var z2 = 10; ->z2 : number, Symbol(z2, Decl(es6ImportNamedImportAmd_0.ts, 7, 10)) +>z2 : number >10 : number export var aaaa = 10; ->aaaa : number, Symbol(aaaa, Decl(es6ImportNamedImportAmd_0.ts, 8, 10)) +>aaaa : number >10 : number === tests/cases/compiler/es6ImportNamedImportAmd_1.ts === import { } from "es6ImportNamedImportAmd_0"; import { a } from "es6ImportNamedImportAmd_0"; ->a : number, Symbol(a, Decl(es6ImportNamedImportAmd_1.ts, 1, 8)) +>a : number var xxxx = a; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->a : number, Symbol(a, Decl(es6ImportNamedImportAmd_1.ts, 1, 8)) +>xxxx : number +>a : number import { a as b } from "es6ImportNamedImportAmd_0"; ->a : number, Symbol(b, Decl(es6ImportNamedImportAmd_1.ts, 3, 8)) ->b : number, Symbol(b, Decl(es6ImportNamedImportAmd_1.ts, 3, 8)) +>a : number +>b : number var xxxx = b; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->b : number, Symbol(b, Decl(es6ImportNamedImportAmd_1.ts, 3, 8)) +>xxxx : number +>b : number import { x, a as y } from "es6ImportNamedImportAmd_0"; ->x : number, Symbol(x, Decl(es6ImportNamedImportAmd_1.ts, 5, 8)) ->a : number, Symbol(y, Decl(es6ImportNamedImportAmd_1.ts, 5, 11)) ->y : number, Symbol(y, Decl(es6ImportNamedImportAmd_1.ts, 5, 11)) +>x : number +>a : number +>y : number var xxxx = x; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->x : number, Symbol(x, Decl(es6ImportNamedImportAmd_1.ts, 5, 8)) +>xxxx : number +>x : number var xxxx = y; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->y : number, Symbol(y, Decl(es6ImportNamedImportAmd_1.ts, 5, 11)) +>xxxx : number +>y : number import { x as z, } from "es6ImportNamedImportAmd_0"; ->x : number, Symbol(z, Decl(es6ImportNamedImportAmd_1.ts, 8, 8)) ->z : number, Symbol(z, Decl(es6ImportNamedImportAmd_1.ts, 8, 8)) +>x : number +>z : number var xxxx = z; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->z : number, Symbol(z, Decl(es6ImportNamedImportAmd_1.ts, 8, 8)) +>xxxx : number +>z : number import { m, } from "es6ImportNamedImportAmd_0"; ->m : number, Symbol(m, Decl(es6ImportNamedImportAmd_1.ts, 10, 8)) +>m : number var xxxx = m; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->m : number, Symbol(m, Decl(es6ImportNamedImportAmd_1.ts, 10, 8)) +>xxxx : number +>m : number import { a1, x1 } from "es6ImportNamedImportAmd_0"; ->a1 : number, Symbol(a1, Decl(es6ImportNamedImportAmd_1.ts, 12, 8)) ->x1 : number, Symbol(x1, Decl(es6ImportNamedImportAmd_1.ts, 12, 12)) +>a1 : number +>x1 : number var xxxx = a1; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->a1 : number, Symbol(a1, Decl(es6ImportNamedImportAmd_1.ts, 12, 8)) +>xxxx : number +>a1 : number var xxxx = x1; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->x1 : number, Symbol(x1, Decl(es6ImportNamedImportAmd_1.ts, 12, 12)) +>xxxx : number +>x1 : number import { a1 as a11, x1 as x11 } from "es6ImportNamedImportAmd_0"; ->a1 : number, Symbol(a11, Decl(es6ImportNamedImportAmd_1.ts, 15, 8)) ->a11 : number, Symbol(a11, Decl(es6ImportNamedImportAmd_1.ts, 15, 8)) ->x1 : number, Symbol(x11, Decl(es6ImportNamedImportAmd_1.ts, 15, 19)) ->x11 : number, Symbol(x11, Decl(es6ImportNamedImportAmd_1.ts, 15, 19)) +>a1 : number +>a11 : number +>x1 : number +>x11 : number var xxxx = a11; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->a11 : number, Symbol(a11, Decl(es6ImportNamedImportAmd_1.ts, 15, 8)) +>xxxx : number +>a11 : number var xxxx = x11; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportAmd_1.ts, 2, 3), Decl(es6ImportNamedImportAmd_1.ts, 4, 3), Decl(es6ImportNamedImportAmd_1.ts, 6, 3), Decl(es6ImportNamedImportAmd_1.ts, 7, 3), Decl(es6ImportNamedImportAmd_1.ts, 9, 3), Decl(es6ImportNamedImportAmd_1.ts, 11, 3), Decl(es6ImportNamedImportAmd_1.ts, 13, 3), Decl(es6ImportNamedImportAmd_1.ts, 14, 3), Decl(es6ImportNamedImportAmd_1.ts, 16, 3), Decl(es6ImportNamedImportAmd_1.ts, 17, 3)) ->x11 : number, Symbol(x11, Decl(es6ImportNamedImportAmd_1.ts, 15, 19)) +>xxxx : number +>x11 : number import { z1 } from "es6ImportNamedImportAmd_0"; ->z1 : number, Symbol(z1, Decl(es6ImportNamedImportAmd_1.ts, 18, 8)) +>z1 : number var z111 = z1; ->z111 : number, Symbol(z111, Decl(es6ImportNamedImportAmd_1.ts, 19, 3)) ->z1 : number, Symbol(z1, Decl(es6ImportNamedImportAmd_1.ts, 18, 8)) +>z111 : number +>z1 : number import { z2 as z3 } from "es6ImportNamedImportAmd_0"; ->z2 : number, Symbol(z3, Decl(es6ImportNamedImportAmd_1.ts, 20, 8)) ->z3 : number, Symbol(z3, Decl(es6ImportNamedImportAmd_1.ts, 20, 8)) +>z2 : number +>z3 : number var z2 = z3; // z2 shouldn't give redeclare error ->z2 : number, Symbol(z2, Decl(es6ImportNamedImportAmd_1.ts, 21, 3)) ->z3 : number, Symbol(z3, Decl(es6ImportNamedImportAmd_1.ts, 20, 8)) +>z2 : number +>z3 : number // These are elided import { aaaa } from "es6ImportNamedImportAmd_0"; ->aaaa : number, Symbol(aaaa, Decl(es6ImportNamedImportAmd_1.ts, 24, 8)) +>aaaa : number // These are elided import { aaaa as bbbb } from "es6ImportNamedImportAmd_0"; ->aaaa : number, Symbol(bbbb, Decl(es6ImportNamedImportAmd_1.ts, 26, 8)) ->bbbb : number, Symbol(bbbb, Decl(es6ImportNamedImportAmd_1.ts, 26, 8)) +>aaaa : number +>bbbb : number diff --git a/tests/baselines/reference/es6ImportNamedImportDts.symbols b/tests/baselines/reference/es6ImportNamedImportDts.symbols new file mode 100644 index 0000000000000..2e3b2735b3d87 --- /dev/null +++ b/tests/baselines/reference/es6ImportNamedImportDts.symbols @@ -0,0 +1,138 @@ +=== tests/cases/compiler/server.ts === + +export class a { } +>a : Symbol(a, Decl(server.ts, 0, 0)) + +export class a11 { } +>a11 : Symbol(a11, Decl(server.ts, 1, 18)) + +export class a12 { } +>a12 : Symbol(a12, Decl(server.ts, 2, 20)) + +export class x { } +>x : Symbol(x, Decl(server.ts, 3, 20)) + +export class x11 { } +>x11 : Symbol(x11, Decl(server.ts, 4, 18)) + +export class m { } +>m : Symbol(m, Decl(server.ts, 5, 20)) + +export class a1 { } +>a1 : Symbol(a1, Decl(server.ts, 6, 18)) + +export class x1 { } +>x1 : Symbol(x1, Decl(server.ts, 7, 19)) + +export class a111 { } +>a111 : Symbol(a111, Decl(server.ts, 8, 19)) + +export class x111 { } +>x111 : Symbol(x111, Decl(server.ts, 9, 21)) + +export class z1 { } +>z1 : Symbol(z1, Decl(server.ts, 10, 21)) + +export class z2 { } +>z2 : Symbol(z2, Decl(server.ts, 11, 19)) + +export class aaaa { } +>aaaa : Symbol(aaaa, Decl(server.ts, 12, 19)) + +export class aaaa1 { } +>aaaa1 : Symbol(aaaa1, Decl(server.ts, 13, 21)) + +=== tests/cases/compiler/client.ts === +import { } from "server"; +import { a } from "server"; +>a : Symbol(a, Decl(client.ts, 1, 8)) + +export var xxxx = new a(); +>xxxx : Symbol(xxxx, Decl(client.ts, 2, 10)) +>a : Symbol(a, Decl(client.ts, 1, 8)) + +import { a11 as b } from "server"; +>a11 : Symbol(b, Decl(client.ts, 3, 8)) +>b : Symbol(b, Decl(client.ts, 3, 8)) + +export var xxxx1 = new b(); +>xxxx1 : Symbol(xxxx1, Decl(client.ts, 4, 10)) +>b : Symbol(b, Decl(client.ts, 3, 8)) + +import { x, a12 as y } from "server"; +>x : Symbol(x, Decl(client.ts, 5, 8)) +>a12 : Symbol(y, Decl(client.ts, 5, 11)) +>y : Symbol(y, Decl(client.ts, 5, 11)) + +export var xxxx2 = new x(); +>xxxx2 : Symbol(xxxx2, Decl(client.ts, 6, 10)) +>x : Symbol(x, Decl(client.ts, 5, 8)) + +export var xxxx3 = new y(); +>xxxx3 : Symbol(xxxx3, Decl(client.ts, 7, 10)) +>y : Symbol(y, Decl(client.ts, 5, 11)) + +import { x11 as z, } from "server"; +>x11 : Symbol(z, Decl(client.ts, 8, 8)) +>z : Symbol(z, Decl(client.ts, 8, 8)) + +export var xxxx4 = new z(); +>xxxx4 : Symbol(xxxx4, Decl(client.ts, 9, 10)) +>z : Symbol(z, Decl(client.ts, 8, 8)) + +import { m, } from "server"; +>m : Symbol(m, Decl(client.ts, 10, 8)) + +export var xxxx5 = new m(); +>xxxx5 : Symbol(xxxx5, Decl(client.ts, 11, 10)) +>m : Symbol(m, Decl(client.ts, 10, 8)) + +import { a1, x1 } from "server"; +>a1 : Symbol(a1, Decl(client.ts, 12, 8)) +>x1 : Symbol(x1, Decl(client.ts, 12, 12)) + +export var xxxx6 = new a1(); +>xxxx6 : Symbol(xxxx6, Decl(client.ts, 13, 10)) +>a1 : Symbol(a1, Decl(client.ts, 12, 8)) + +export var xxxx7 = new x1(); +>xxxx7 : Symbol(xxxx7, Decl(client.ts, 14, 10)) +>x1 : Symbol(x1, Decl(client.ts, 12, 12)) + +import { a111 as a11, x111 as x11 } from "server"; +>a111 : Symbol(a11, Decl(client.ts, 15, 8)) +>a11 : Symbol(a11, Decl(client.ts, 15, 8)) +>x111 : Symbol(x11, Decl(client.ts, 15, 21)) +>x11 : Symbol(x11, Decl(client.ts, 15, 21)) + +export var xxxx8 = new a11(); +>xxxx8 : Symbol(xxxx8, Decl(client.ts, 16, 10)) +>a11 : Symbol(a11, Decl(client.ts, 15, 8)) + +export var xxxx9 = new x11(); +>xxxx9 : Symbol(xxxx9, Decl(client.ts, 17, 10)) +>x11 : Symbol(x11, Decl(client.ts, 15, 21)) + +import { z1 } from "server"; +>z1 : Symbol(z1, Decl(client.ts, 18, 8)) + +export var z111 = new z1(); +>z111 : Symbol(z111, Decl(client.ts, 19, 10)) +>z1 : Symbol(z1, Decl(client.ts, 18, 8)) + +import { z2 as z3 } from "server"; +>z2 : Symbol(z3, Decl(client.ts, 20, 8)) +>z3 : Symbol(z3, Decl(client.ts, 20, 8)) + +export var z2 = new z3(); // z2 shouldn't give redeclare error +>z2 : Symbol(z2, Decl(client.ts, 21, 10)) +>z3 : Symbol(z3, Decl(client.ts, 20, 8)) + +// not referenced +import { aaaa } from "server"; +>aaaa : Symbol(aaaa, Decl(client.ts, 24, 8)) + +import { aaaa1 as bbbb } from "server"; +>aaaa1 : Symbol(bbbb, Decl(client.ts, 25, 8)) +>bbbb : Symbol(bbbb, Decl(client.ts, 25, 8)) + diff --git a/tests/baselines/reference/es6ImportNamedImportDts.types b/tests/baselines/reference/es6ImportNamedImportDts.types index c3559c4e91de0..93bd55716a514 100644 --- a/tests/baselines/reference/es6ImportNamedImportDts.types +++ b/tests/baselines/reference/es6ImportNamedImportDts.types @@ -1,150 +1,150 @@ === tests/cases/compiler/server.ts === export class a { } ->a : a, Symbol(a, Decl(server.ts, 0, 0)) +>a : a export class a11 { } ->a11 : a11, Symbol(a11, Decl(server.ts, 1, 18)) +>a11 : a11 export class a12 { } ->a12 : a12, Symbol(a12, Decl(server.ts, 2, 20)) +>a12 : a12 export class x { } ->x : x, Symbol(x, Decl(server.ts, 3, 20)) +>x : x export class x11 { } ->x11 : x11, Symbol(x11, Decl(server.ts, 4, 18)) +>x11 : x11 export class m { } ->m : m, Symbol(m, Decl(server.ts, 5, 20)) +>m : m export class a1 { } ->a1 : a1, Symbol(a1, Decl(server.ts, 6, 18)) +>a1 : a1 export class x1 { } ->x1 : x1, Symbol(x1, Decl(server.ts, 7, 19)) +>x1 : x1 export class a111 { } ->a111 : a111, Symbol(a111, Decl(server.ts, 8, 19)) +>a111 : a111 export class x111 { } ->x111 : x111, Symbol(x111, Decl(server.ts, 9, 21)) +>x111 : x111 export class z1 { } ->z1 : z1, Symbol(z1, Decl(server.ts, 10, 21)) +>z1 : z1 export class z2 { } ->z2 : z2, Symbol(z2, Decl(server.ts, 11, 19)) +>z2 : z2 export class aaaa { } ->aaaa : aaaa, Symbol(aaaa, Decl(server.ts, 12, 19)) +>aaaa : aaaa export class aaaa1 { } ->aaaa1 : aaaa1, Symbol(aaaa1, Decl(server.ts, 13, 21)) +>aaaa1 : aaaa1 === tests/cases/compiler/client.ts === import { } from "server"; import { a } from "server"; ->a : typeof a, Symbol(a, Decl(client.ts, 1, 8)) +>a : typeof a export var xxxx = new a(); ->xxxx : a, Symbol(xxxx, Decl(client.ts, 2, 10)) +>xxxx : a >new a() : a ->a : typeof a, Symbol(a, Decl(client.ts, 1, 8)) +>a : typeof a import { a11 as b } from "server"; ->a11 : typeof b, Symbol(b, Decl(client.ts, 3, 8)) ->b : typeof b, Symbol(b, Decl(client.ts, 3, 8)) +>a11 : typeof b +>b : typeof b export var xxxx1 = new b(); ->xxxx1 : b, Symbol(xxxx1, Decl(client.ts, 4, 10)) +>xxxx1 : b >new b() : b ->b : typeof b, Symbol(b, Decl(client.ts, 3, 8)) +>b : typeof b import { x, a12 as y } from "server"; ->x : typeof x, Symbol(x, Decl(client.ts, 5, 8)) ->a12 : typeof y, Symbol(y, Decl(client.ts, 5, 11)) ->y : typeof y, Symbol(y, Decl(client.ts, 5, 11)) +>x : typeof x +>a12 : typeof y +>y : typeof y export var xxxx2 = new x(); ->xxxx2 : x, Symbol(xxxx2, Decl(client.ts, 6, 10)) +>xxxx2 : x >new x() : x ->x : typeof x, Symbol(x, Decl(client.ts, 5, 8)) +>x : typeof x export var xxxx3 = new y(); ->xxxx3 : y, Symbol(xxxx3, Decl(client.ts, 7, 10)) +>xxxx3 : y >new y() : y ->y : typeof y, Symbol(y, Decl(client.ts, 5, 11)) +>y : typeof y import { x11 as z, } from "server"; ->x11 : typeof z, Symbol(z, Decl(client.ts, 8, 8)) ->z : typeof z, Symbol(z, Decl(client.ts, 8, 8)) +>x11 : typeof z +>z : typeof z export var xxxx4 = new z(); ->xxxx4 : z, Symbol(xxxx4, Decl(client.ts, 9, 10)) +>xxxx4 : z >new z() : z ->z : typeof z, Symbol(z, Decl(client.ts, 8, 8)) +>z : typeof z import { m, } from "server"; ->m : typeof m, Symbol(m, Decl(client.ts, 10, 8)) +>m : typeof m export var xxxx5 = new m(); ->xxxx5 : m, Symbol(xxxx5, Decl(client.ts, 11, 10)) +>xxxx5 : m >new m() : m ->m : typeof m, Symbol(m, Decl(client.ts, 10, 8)) +>m : typeof m import { a1, x1 } from "server"; ->a1 : typeof a1, Symbol(a1, Decl(client.ts, 12, 8)) ->x1 : typeof x1, Symbol(x1, Decl(client.ts, 12, 12)) +>a1 : typeof a1 +>x1 : typeof x1 export var xxxx6 = new a1(); ->xxxx6 : a1, Symbol(xxxx6, Decl(client.ts, 13, 10)) +>xxxx6 : a1 >new a1() : a1 ->a1 : typeof a1, Symbol(a1, Decl(client.ts, 12, 8)) +>a1 : typeof a1 export var xxxx7 = new x1(); ->xxxx7 : x1, Symbol(xxxx7, Decl(client.ts, 14, 10)) +>xxxx7 : x1 >new x1() : x1 ->x1 : typeof x1, Symbol(x1, Decl(client.ts, 12, 12)) +>x1 : typeof x1 import { a111 as a11, x111 as x11 } from "server"; ->a111 : typeof a11, Symbol(a11, Decl(client.ts, 15, 8)) ->a11 : typeof a11, Symbol(a11, Decl(client.ts, 15, 8)) ->x111 : typeof x11, Symbol(x11, Decl(client.ts, 15, 21)) ->x11 : typeof x11, Symbol(x11, Decl(client.ts, 15, 21)) +>a111 : typeof a11 +>a11 : typeof a11 +>x111 : typeof x11 +>x11 : typeof x11 export var xxxx8 = new a11(); ->xxxx8 : a11, Symbol(xxxx8, Decl(client.ts, 16, 10)) +>xxxx8 : a11 >new a11() : a11 ->a11 : typeof a11, Symbol(a11, Decl(client.ts, 15, 8)) +>a11 : typeof a11 export var xxxx9 = new x11(); ->xxxx9 : x11, Symbol(xxxx9, Decl(client.ts, 17, 10)) +>xxxx9 : x11 >new x11() : x11 ->x11 : typeof x11, Symbol(x11, Decl(client.ts, 15, 21)) +>x11 : typeof x11 import { z1 } from "server"; ->z1 : typeof z1, Symbol(z1, Decl(client.ts, 18, 8)) +>z1 : typeof z1 export var z111 = new z1(); ->z111 : z1, Symbol(z111, Decl(client.ts, 19, 10)) +>z111 : z1 >new z1() : z1 ->z1 : typeof z1, Symbol(z1, Decl(client.ts, 18, 8)) +>z1 : typeof z1 import { z2 as z3 } from "server"; ->z2 : typeof z3, Symbol(z3, Decl(client.ts, 20, 8)) ->z3 : typeof z3, Symbol(z3, Decl(client.ts, 20, 8)) +>z2 : typeof z3 +>z3 : typeof z3 export var z2 = new z3(); // z2 shouldn't give redeclare error ->z2 : z3, Symbol(z2, Decl(client.ts, 21, 10)) +>z2 : z3 >new z3() : z3 ->z3 : typeof z3, Symbol(z3, Decl(client.ts, 20, 8)) +>z3 : typeof z3 // not referenced import { aaaa } from "server"; ->aaaa : typeof aaaa, Symbol(aaaa, Decl(client.ts, 24, 8)) +>aaaa : typeof aaaa import { aaaa1 as bbbb } from "server"; ->aaaa1 : typeof bbbb, Symbol(bbbb, Decl(client.ts, 25, 8)) ->bbbb : typeof bbbb, Symbol(bbbb, Decl(client.ts, 25, 8)) +>aaaa1 : typeof bbbb +>bbbb : typeof bbbb diff --git a/tests/baselines/reference/es6ImportNamedImportInEs5.symbols b/tests/baselines/reference/es6ImportNamedImportInEs5.symbols new file mode 100644 index 0000000000000..546487514cef1 --- /dev/null +++ b/tests/baselines/reference/es6ImportNamedImportInEs5.symbols @@ -0,0 +1,123 @@ +=== tests/cases/compiler/es6ImportNamedImportInEs5_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportNamedImportInEs5_0.ts, 1, 10)) + +export var x = a; +>x : Symbol(x, Decl(es6ImportNamedImportInEs5_0.ts, 2, 10)) +>a : Symbol(a, Decl(es6ImportNamedImportInEs5_0.ts, 1, 10)) + +export var m = a; +>m : Symbol(m, Decl(es6ImportNamedImportInEs5_0.ts, 3, 10)) +>a : Symbol(a, Decl(es6ImportNamedImportInEs5_0.ts, 1, 10)) + +export var a1 = 10; +>a1 : Symbol(a1, Decl(es6ImportNamedImportInEs5_0.ts, 4, 10)) + +export var x1 = 10; +>x1 : Symbol(x1, Decl(es6ImportNamedImportInEs5_0.ts, 5, 10)) + +export var z1 = 10; +>z1 : Symbol(z1, Decl(es6ImportNamedImportInEs5_0.ts, 6, 10)) + +export var z2 = 10; +>z2 : Symbol(z2, Decl(es6ImportNamedImportInEs5_0.ts, 7, 10)) + +export var aaaa = 10; +>aaaa : Symbol(aaaa, Decl(es6ImportNamedImportInEs5_0.ts, 8, 10)) + +=== tests/cases/compiler/es6ImportNamedImportInEs5_1.ts === +import { } from "es6ImportNamedImportInEs5_0"; +import { a } from "es6ImportNamedImportInEs5_0"; +>a : Symbol(a, Decl(es6ImportNamedImportInEs5_1.ts, 1, 8)) + +var xxxx = a; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>a : Symbol(a, Decl(es6ImportNamedImportInEs5_1.ts, 1, 8)) + +import { a as b } from "es6ImportNamedImportInEs5_0"; +>a : Symbol(b, Decl(es6ImportNamedImportInEs5_1.ts, 3, 8)) +>b : Symbol(b, Decl(es6ImportNamedImportInEs5_1.ts, 3, 8)) + +var xxxx = b; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>b : Symbol(b, Decl(es6ImportNamedImportInEs5_1.ts, 3, 8)) + +import { x, a as y } from "es6ImportNamedImportInEs5_0"; +>x : Symbol(x, Decl(es6ImportNamedImportInEs5_1.ts, 5, 8)) +>a : Symbol(y, Decl(es6ImportNamedImportInEs5_1.ts, 5, 11)) +>y : Symbol(y, Decl(es6ImportNamedImportInEs5_1.ts, 5, 11)) + +var xxxx = x; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>x : Symbol(x, Decl(es6ImportNamedImportInEs5_1.ts, 5, 8)) + +var xxxx = y; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>y : Symbol(y, Decl(es6ImportNamedImportInEs5_1.ts, 5, 11)) + +import { x as z, } from "es6ImportNamedImportInEs5_0"; +>x : Symbol(z, Decl(es6ImportNamedImportInEs5_1.ts, 8, 8)) +>z : Symbol(z, Decl(es6ImportNamedImportInEs5_1.ts, 8, 8)) + +var xxxx = z; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>z : Symbol(z, Decl(es6ImportNamedImportInEs5_1.ts, 8, 8)) + +import { m, } from "es6ImportNamedImportInEs5_0"; +>m : Symbol(m, Decl(es6ImportNamedImportInEs5_1.ts, 10, 8)) + +var xxxx = m; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>m : Symbol(m, Decl(es6ImportNamedImportInEs5_1.ts, 10, 8)) + +import { a1, x1 } from "es6ImportNamedImportInEs5_0"; +>a1 : Symbol(a1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 8)) +>x1 : Symbol(x1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 12)) + +var xxxx = a1; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>a1 : Symbol(a1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 8)) + +var xxxx = x1; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>x1 : Symbol(x1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 12)) + +import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0"; +>a1 : Symbol(a11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 8)) +>a11 : Symbol(a11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 8)) +>x1 : Symbol(x11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 19)) +>x11 : Symbol(x11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 19)) + +var xxxx = a11; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>a11 : Symbol(a11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 8)) + +var xxxx = x11; +>xxxx : Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) +>x11 : Symbol(x11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 19)) + +import { z1 } from "es6ImportNamedImportInEs5_0"; +>z1 : Symbol(z1, Decl(es6ImportNamedImportInEs5_1.ts, 18, 8)) + +var z111 = z1; +>z111 : Symbol(z111, Decl(es6ImportNamedImportInEs5_1.ts, 19, 3)) +>z1 : Symbol(z1, Decl(es6ImportNamedImportInEs5_1.ts, 18, 8)) + +import { z2 as z3 } from "es6ImportNamedImportInEs5_0"; +>z2 : Symbol(z3, Decl(es6ImportNamedImportInEs5_1.ts, 20, 8)) +>z3 : Symbol(z3, Decl(es6ImportNamedImportInEs5_1.ts, 20, 8)) + +var z2 = z3; // z2 shouldn't give redeclare error +>z2 : Symbol(z2, Decl(es6ImportNamedImportInEs5_1.ts, 21, 3)) +>z3 : Symbol(z3, Decl(es6ImportNamedImportInEs5_1.ts, 20, 8)) + +// These are elided +import { aaaa } from "es6ImportNamedImportInEs5_0"; +>aaaa : Symbol(aaaa, Decl(es6ImportNamedImportInEs5_1.ts, 24, 8)) + +// These are elided +import { aaaa as bbbb } from "es6ImportNamedImportInEs5_0"; +>aaaa : Symbol(bbbb, Decl(es6ImportNamedImportInEs5_1.ts, 26, 8)) +>bbbb : Symbol(bbbb, Decl(es6ImportNamedImportInEs5_1.ts, 26, 8)) + diff --git a/tests/baselines/reference/es6ImportNamedImportInEs5.types b/tests/baselines/reference/es6ImportNamedImportInEs5.types index 7877c46d70dea..95f784c5eacc6 100644 --- a/tests/baselines/reference/es6ImportNamedImportInEs5.types +++ b/tests/baselines/reference/es6ImportNamedImportInEs5.types @@ -1,129 +1,129 @@ === tests/cases/compiler/es6ImportNamedImportInEs5_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportNamedImportInEs5_0.ts, 1, 10)) +>a : number >10 : number export var x = a; ->x : number, Symbol(x, Decl(es6ImportNamedImportInEs5_0.ts, 2, 10)) ->a : number, Symbol(a, Decl(es6ImportNamedImportInEs5_0.ts, 1, 10)) +>x : number +>a : number export var m = a; ->m : number, Symbol(m, Decl(es6ImportNamedImportInEs5_0.ts, 3, 10)) ->a : number, Symbol(a, Decl(es6ImportNamedImportInEs5_0.ts, 1, 10)) +>m : number +>a : number export var a1 = 10; ->a1 : number, Symbol(a1, Decl(es6ImportNamedImportInEs5_0.ts, 4, 10)) +>a1 : number >10 : number export var x1 = 10; ->x1 : number, Symbol(x1, Decl(es6ImportNamedImportInEs5_0.ts, 5, 10)) +>x1 : number >10 : number export var z1 = 10; ->z1 : number, Symbol(z1, Decl(es6ImportNamedImportInEs5_0.ts, 6, 10)) +>z1 : number >10 : number export var z2 = 10; ->z2 : number, Symbol(z2, Decl(es6ImportNamedImportInEs5_0.ts, 7, 10)) +>z2 : number >10 : number export var aaaa = 10; ->aaaa : number, Symbol(aaaa, Decl(es6ImportNamedImportInEs5_0.ts, 8, 10)) +>aaaa : number >10 : number === tests/cases/compiler/es6ImportNamedImportInEs5_1.ts === import { } from "es6ImportNamedImportInEs5_0"; import { a } from "es6ImportNamedImportInEs5_0"; ->a : number, Symbol(a, Decl(es6ImportNamedImportInEs5_1.ts, 1, 8)) +>a : number var xxxx = a; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->a : number, Symbol(a, Decl(es6ImportNamedImportInEs5_1.ts, 1, 8)) +>xxxx : number +>a : number import { a as b } from "es6ImportNamedImportInEs5_0"; ->a : number, Symbol(b, Decl(es6ImportNamedImportInEs5_1.ts, 3, 8)) ->b : number, Symbol(b, Decl(es6ImportNamedImportInEs5_1.ts, 3, 8)) +>a : number +>b : number var xxxx = b; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->b : number, Symbol(b, Decl(es6ImportNamedImportInEs5_1.ts, 3, 8)) +>xxxx : number +>b : number import { x, a as y } from "es6ImportNamedImportInEs5_0"; ->x : number, Symbol(x, Decl(es6ImportNamedImportInEs5_1.ts, 5, 8)) ->a : number, Symbol(y, Decl(es6ImportNamedImportInEs5_1.ts, 5, 11)) ->y : number, Symbol(y, Decl(es6ImportNamedImportInEs5_1.ts, 5, 11)) +>x : number +>a : number +>y : number var xxxx = x; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->x : number, Symbol(x, Decl(es6ImportNamedImportInEs5_1.ts, 5, 8)) +>xxxx : number +>x : number var xxxx = y; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->y : number, Symbol(y, Decl(es6ImportNamedImportInEs5_1.ts, 5, 11)) +>xxxx : number +>y : number import { x as z, } from "es6ImportNamedImportInEs5_0"; ->x : number, Symbol(z, Decl(es6ImportNamedImportInEs5_1.ts, 8, 8)) ->z : number, Symbol(z, Decl(es6ImportNamedImportInEs5_1.ts, 8, 8)) +>x : number +>z : number var xxxx = z; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->z : number, Symbol(z, Decl(es6ImportNamedImportInEs5_1.ts, 8, 8)) +>xxxx : number +>z : number import { m, } from "es6ImportNamedImportInEs5_0"; ->m : number, Symbol(m, Decl(es6ImportNamedImportInEs5_1.ts, 10, 8)) +>m : number var xxxx = m; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->m : number, Symbol(m, Decl(es6ImportNamedImportInEs5_1.ts, 10, 8)) +>xxxx : number +>m : number import { a1, x1 } from "es6ImportNamedImportInEs5_0"; ->a1 : number, Symbol(a1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 8)) ->x1 : number, Symbol(x1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 12)) +>a1 : number +>x1 : number var xxxx = a1; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->a1 : number, Symbol(a1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 8)) +>xxxx : number +>a1 : number var xxxx = x1; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->x1 : number, Symbol(x1, Decl(es6ImportNamedImportInEs5_1.ts, 12, 12)) +>xxxx : number +>x1 : number import { a1 as a11, x1 as x11 } from "es6ImportNamedImportInEs5_0"; ->a1 : number, Symbol(a11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 8)) ->a11 : number, Symbol(a11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 8)) ->x1 : number, Symbol(x11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 19)) ->x11 : number, Symbol(x11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 19)) +>a1 : number +>a11 : number +>x1 : number +>x11 : number var xxxx = a11; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->a11 : number, Symbol(a11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 8)) +>xxxx : number +>a11 : number var xxxx = x11; ->xxxx : number, Symbol(xxxx, Decl(es6ImportNamedImportInEs5_1.ts, 2, 3), Decl(es6ImportNamedImportInEs5_1.ts, 4, 3), Decl(es6ImportNamedImportInEs5_1.ts, 6, 3), Decl(es6ImportNamedImportInEs5_1.ts, 7, 3), Decl(es6ImportNamedImportInEs5_1.ts, 9, 3), Decl(es6ImportNamedImportInEs5_1.ts, 11, 3), Decl(es6ImportNamedImportInEs5_1.ts, 13, 3), Decl(es6ImportNamedImportInEs5_1.ts, 14, 3), Decl(es6ImportNamedImportInEs5_1.ts, 16, 3), Decl(es6ImportNamedImportInEs5_1.ts, 17, 3)) ->x11 : number, Symbol(x11, Decl(es6ImportNamedImportInEs5_1.ts, 15, 19)) +>xxxx : number +>x11 : number import { z1 } from "es6ImportNamedImportInEs5_0"; ->z1 : number, Symbol(z1, Decl(es6ImportNamedImportInEs5_1.ts, 18, 8)) +>z1 : number var z111 = z1; ->z111 : number, Symbol(z111, Decl(es6ImportNamedImportInEs5_1.ts, 19, 3)) ->z1 : number, Symbol(z1, Decl(es6ImportNamedImportInEs5_1.ts, 18, 8)) +>z111 : number +>z1 : number import { z2 as z3 } from "es6ImportNamedImportInEs5_0"; ->z2 : number, Symbol(z3, Decl(es6ImportNamedImportInEs5_1.ts, 20, 8)) ->z3 : number, Symbol(z3, Decl(es6ImportNamedImportInEs5_1.ts, 20, 8)) +>z2 : number +>z3 : number var z2 = z3; // z2 shouldn't give redeclare error ->z2 : number, Symbol(z2, Decl(es6ImportNamedImportInEs5_1.ts, 21, 3)) ->z3 : number, Symbol(z3, Decl(es6ImportNamedImportInEs5_1.ts, 20, 8)) +>z2 : number +>z3 : number // These are elided import { aaaa } from "es6ImportNamedImportInEs5_0"; ->aaaa : number, Symbol(aaaa, Decl(es6ImportNamedImportInEs5_1.ts, 24, 8)) +>aaaa : number // These are elided import { aaaa as bbbb } from "es6ImportNamedImportInEs5_0"; ->aaaa : number, Symbol(bbbb, Decl(es6ImportNamedImportInEs5_1.ts, 26, 8)) ->bbbb : number, Symbol(bbbb, Decl(es6ImportNamedImportInEs5_1.ts, 26, 8)) +>aaaa : number +>bbbb : number diff --git a/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.symbols b/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.symbols new file mode 100644 index 0000000000000..2598735d6d85d --- /dev/null +++ b/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_0.ts === + +export module a { +>a : Symbol(a, Decl(es6ImportNamedImportInIndirectExportAssignment_0.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(es6ImportNamedImportInIndirectExportAssignment_0.ts, 1, 17)) + } +} + +=== tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts === +import { a } from "es6ImportNamedImportInIndirectExportAssignment_0"; +>a : Symbol(a, Decl(es6ImportNamedImportInIndirectExportAssignment_1.ts, 0, 8)) + +import x = a; +>x : Symbol(x, Decl(es6ImportNamedImportInIndirectExportAssignment_1.ts, 0, 69)) +>a : Symbol(a, Decl(es6ImportNamedImportInIndirectExportAssignment_0.ts, 0, 0)) + +export = x; +>x : Symbol(x, Decl(es6ImportNamedImportInIndirectExportAssignment_1.ts, 0, 69)) + diff --git a/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.types b/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.types index 014acefb72c17..36792ece82e45 100644 --- a/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.types +++ b/tests/baselines/reference/es6ImportNamedImportInIndirectExportAssignment.types @@ -1,21 +1,21 @@ === tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_0.ts === export module a { ->a : typeof a, Symbol(a, Decl(es6ImportNamedImportInIndirectExportAssignment_0.ts, 0, 0)) +>a : typeof a export class c { ->c : c, Symbol(c, Decl(es6ImportNamedImportInIndirectExportAssignment_0.ts, 1, 17)) +>c : c } } === tests/cases/compiler/es6ImportNamedImportInIndirectExportAssignment_1.ts === import { a } from "es6ImportNamedImportInIndirectExportAssignment_0"; ->a : typeof a, Symbol(a, Decl(es6ImportNamedImportInIndirectExportAssignment_1.ts, 0, 8)) +>a : typeof a import x = a; ->x : typeof a, Symbol(x, Decl(es6ImportNamedImportInIndirectExportAssignment_1.ts, 0, 69)) ->a : typeof a, Symbol(a, Decl(es6ImportNamedImportInIndirectExportAssignment_0.ts, 0, 0)) +>x : typeof a +>a : typeof a export = x; ->x : typeof a, Symbol(x, Decl(es6ImportNamedImportInIndirectExportAssignment_1.ts, 0, 69)) +>x : typeof a diff --git a/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.symbols b/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.symbols new file mode 100644 index 0000000000000..e294124c6f4c6 --- /dev/null +++ b/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/server.ts === + +export interface I { +>I : Symbol(I, Decl(server.ts, 0, 0)) + + prop: string; +>prop : Symbol(prop, Decl(server.ts, 1, 20)) +} +export interface I2 { +>I2 : Symbol(I2, Decl(server.ts, 3, 1)) + + prop2: string; +>prop2 : Symbol(prop2, Decl(server.ts, 4, 21)) +} +export class C implements I { +>C : Symbol(C, Decl(server.ts, 6, 1)) +>I : Symbol(I, Decl(server.ts, 0, 0)) + + prop = "hello"; +>prop : Symbol(prop, Decl(server.ts, 7, 29)) +} +export class C2 implements I2 { +>C2 : Symbol(C2, Decl(server.ts, 9, 1)) +>I2 : Symbol(I2, Decl(server.ts, 3, 1)) + + prop2 = "world"; +>prop2 : Symbol(prop2, Decl(server.ts, 10, 31)) +} + +=== tests/cases/compiler/client.ts === +import { C, I, C2 } from "server"; // Shouldnt emit I and C2 into the js file and emit C and I in .d.ts file +>C : Symbol(C, Decl(client.ts, 0, 8)) +>I : Symbol(I, Decl(client.ts, 0, 11)) +>C2 : Symbol(C2, Decl(client.ts, 0, 14)) + +export type cValInterface = I; +>cValInterface : Symbol(cValInterface, Decl(client.ts, 0, 34)) +>I : Symbol(I, Decl(client.ts, 0, 11)) + +export var cVal = new C(); +>cVal : Symbol(cVal, Decl(client.ts, 2, 10)) +>C : Symbol(C, Decl(client.ts, 0, 8)) + diff --git a/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.types b/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.types index 7d0b80a2e7f72..12e5271c8b0ea 100644 --- a/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.types +++ b/tests/baselines/reference/es6ImportNamedImportWithTypesAndValues.types @@ -1,46 +1,46 @@ === tests/cases/compiler/server.ts === export interface I { ->I : I, Symbol(I, Decl(server.ts, 0, 0)) +>I : I prop: string; ->prop : string, Symbol(prop, Decl(server.ts, 1, 20)) +>prop : string } export interface I2 { ->I2 : I2, Symbol(I2, Decl(server.ts, 3, 1)) +>I2 : I2 prop2: string; ->prop2 : string, Symbol(prop2, Decl(server.ts, 4, 21)) +>prop2 : string } export class C implements I { ->C : C, Symbol(C, Decl(server.ts, 6, 1)) ->I : I, Symbol(I, Decl(server.ts, 0, 0)) +>C : C +>I : I prop = "hello"; ->prop : string, Symbol(prop, Decl(server.ts, 7, 29)) +>prop : string >"hello" : string } export class C2 implements I2 { ->C2 : C2, Symbol(C2, Decl(server.ts, 9, 1)) ->I2 : I2, Symbol(I2, Decl(server.ts, 3, 1)) +>C2 : C2 +>I2 : I2 prop2 = "world"; ->prop2 : string, Symbol(prop2, Decl(server.ts, 10, 31)) +>prop2 : string >"world" : string } === tests/cases/compiler/client.ts === import { C, I, C2 } from "server"; // Shouldnt emit I and C2 into the js file and emit C and I in .d.ts file ->C : typeof C, Symbol(C, Decl(client.ts, 0, 8)) ->I : any, Symbol(I, Decl(client.ts, 0, 11)) ->C2 : typeof C2, Symbol(C2, Decl(client.ts, 0, 14)) +>C : typeof C +>I : any +>C2 : typeof C2 export type cValInterface = I; ->cValInterface : I, Symbol(cValInterface, Decl(client.ts, 0, 34)) ->I : I, Symbol(I, Decl(client.ts, 0, 11)) +>cValInterface : I +>I : I export var cVal = new C(); ->cVal : C, Symbol(cVal, Decl(client.ts, 2, 10)) +>cVal : C >new C() : C ->C : typeof C, Symbol(C, Decl(client.ts, 0, 8)) +>C : typeof C diff --git a/tests/baselines/reference/es6ImportWithoutFromClause.symbols b/tests/baselines/reference/es6ImportWithoutFromClause.symbols new file mode 100644 index 0000000000000..31eafdf655c5f --- /dev/null +++ b/tests/baselines/reference/es6ImportWithoutFromClause.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/es6ImportWithoutFromClause_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportWithoutFromClause_0.ts, 1, 10)) + +=== tests/cases/compiler/es6ImportWithoutFromClause_1.ts === +import "es6ImportWithoutFromClause_0"; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ImportWithoutFromClause.types b/tests/baselines/reference/es6ImportWithoutFromClause.types index e647ff81101b3..d46a4a7487c95 100644 --- a/tests/baselines/reference/es6ImportWithoutFromClause.types +++ b/tests/baselines/reference/es6ImportWithoutFromClause.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es6ImportWithoutFromClause_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportWithoutFromClause_0.ts, 1, 10)) +>a : number >10 : number === tests/cases/compiler/es6ImportWithoutFromClause_1.ts === diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseAmd.symbols b/tests/baselines/reference/es6ImportWithoutFromClauseAmd.symbols new file mode 100644 index 0000000000000..36e1e79f0b579 --- /dev/null +++ b/tests/baselines/reference/es6ImportWithoutFromClauseAmd.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/es6ImportWithoutFromClauseAmd_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportWithoutFromClauseAmd_0.ts, 1, 10)) + +=== tests/cases/compiler/es6ImportWithoutFromClauseAmd_1.ts === +export var b = 10; +>b : Symbol(b, Decl(es6ImportWithoutFromClauseAmd_1.ts, 0, 10)) + +=== tests/cases/compiler/es6ImportWithoutFromClauseAmd_2.ts === +import "es6ImportWithoutFromClauseAmd_0"; +import "es6ImportWithoutFromClauseAmd_2"; +var _a = 10; +>_a : Symbol(_a, Decl(es6ImportWithoutFromClauseAmd_2.ts, 2, 3)) + +var _b = 10; +>_b : Symbol(_b, Decl(es6ImportWithoutFromClauseAmd_2.ts, 3, 3)) + diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseAmd.types b/tests/baselines/reference/es6ImportWithoutFromClauseAmd.types index 9ec0936f6bae1..3314b12d18925 100644 --- a/tests/baselines/reference/es6ImportWithoutFromClauseAmd.types +++ b/tests/baselines/reference/es6ImportWithoutFromClauseAmd.types @@ -1,22 +1,22 @@ === tests/cases/compiler/es6ImportWithoutFromClauseAmd_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportWithoutFromClauseAmd_0.ts, 1, 10)) +>a : number >10 : number === tests/cases/compiler/es6ImportWithoutFromClauseAmd_1.ts === export var b = 10; ->b : number, Symbol(b, Decl(es6ImportWithoutFromClauseAmd_1.ts, 0, 10)) +>b : number >10 : number === tests/cases/compiler/es6ImportWithoutFromClauseAmd_2.ts === import "es6ImportWithoutFromClauseAmd_0"; import "es6ImportWithoutFromClauseAmd_2"; var _a = 10; ->_a : number, Symbol(_a, Decl(es6ImportWithoutFromClauseAmd_2.ts, 2, 3)) +>_a : number >10 : number var _b = 10; ->_b : number, Symbol(_b, Decl(es6ImportWithoutFromClauseAmd_2.ts, 3, 3)) +>_b : number >10 : number diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.symbols b/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.symbols new file mode 100644 index 0000000000000..c8db6eff479d4 --- /dev/null +++ b/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/es6ImportWithoutFromClauseInEs5_0.ts === + +export var a = 10; +>a : Symbol(a, Decl(es6ImportWithoutFromClauseInEs5_0.ts, 1, 10)) + +=== tests/cases/compiler/es6ImportWithoutFromClauseInEs5_1.ts === +import "es6ImportWithoutFromClauseInEs5_0"; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.types b/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.types index 46a70b1e3fe11..ee95c07bb751e 100644 --- a/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.types +++ b/tests/baselines/reference/es6ImportWithoutFromClauseInEs5.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es6ImportWithoutFromClauseInEs5_0.ts === export var a = 10; ->a : number, Symbol(a, Decl(es6ImportWithoutFromClauseInEs5_0.ts, 1, 10)) +>a : number >10 : number === tests/cases/compiler/es6ImportWithoutFromClauseInEs5_1.ts === diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.symbols b/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.symbols new file mode 100644 index 0000000000000..0fe8e68e1a3c4 --- /dev/null +++ b/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/es6ImportWithoutFromClauseNonInstantiatedModule_0.ts === + +export interface i { +>i : Symbol(i, Decl(es6ImportWithoutFromClauseNonInstantiatedModule_0.ts, 0, 0)) +} + +=== tests/cases/compiler/es6ImportWithoutFromClauseNonInstantiatedModule_1.ts === +import "es6ImportWithoutFromClauseNonInstantiatedModule_0"; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.types b/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.types index 286c84886eed0..2be3f67f1e963 100644 --- a/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.types +++ b/tests/baselines/reference/es6ImportWithoutFromClauseNonInstantiatedModule.types @@ -1,7 +1,7 @@ === tests/cases/compiler/es6ImportWithoutFromClauseNonInstantiatedModule_0.ts === export interface i { ->i : i, Symbol(i, Decl(es6ImportWithoutFromClauseNonInstantiatedModule_0.ts, 0, 0)) +>i : i } === tests/cases/compiler/es6ImportWithoutFromClauseNonInstantiatedModule_1.ts === diff --git a/tests/baselines/reference/es6Module.symbols b/tests/baselines/reference/es6Module.symbols new file mode 100644 index 0000000000000..8887adfff371f --- /dev/null +++ b/tests/baselines/reference/es6Module.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/es6Module.ts === +export class A +>A : Symbol(A, Decl(es6Module.ts, 0, 0)) +{ + constructor () + { + } + + public B() +>B : Symbol(B, Decl(es6Module.ts, 4, 5)) + { + return 42; + } +} diff --git a/tests/baselines/reference/es6Module.types b/tests/baselines/reference/es6Module.types index cbb3bea844e04..b55b58e8883e0 100644 --- a/tests/baselines/reference/es6Module.types +++ b/tests/baselines/reference/es6Module.types @@ -1,13 +1,13 @@ === tests/cases/compiler/es6Module.ts === export class A ->A : A, Symbol(A, Decl(es6Module.ts, 0, 0)) +>A : A { constructor () { } public B() ->B : () => number, Symbol(B, Decl(es6Module.ts, 4, 5)) +>B : () => number { return 42; >42 : number diff --git a/tests/baselines/reference/es6ModuleClassDeclaration.symbols b/tests/baselines/reference/es6ModuleClassDeclaration.symbols new file mode 100644 index 0000000000000..5ad84b94f0a27 --- /dev/null +++ b/tests/baselines/reference/es6ModuleClassDeclaration.symbols @@ -0,0 +1,222 @@ +=== tests/cases/compiler/es6ModuleClassDeclaration.ts === +export class c { +>c : Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) + + constructor() { + } + private x = 10; +>x : Symbol(x, Decl(es6ModuleClassDeclaration.ts, 2, 5)) + + public y = 30; +>y : Symbol(y, Decl(es6ModuleClassDeclaration.ts, 3, 19)) + + static k = 20; +>k : Symbol(c.k, Decl(es6ModuleClassDeclaration.ts, 4, 18)) + + private static l = 30; +>l : Symbol(c.l, Decl(es6ModuleClassDeclaration.ts, 5, 18)) + + private method1() { +>method1 : Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 6, 26)) + } + public method2() { +>method2 : Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 8, 5)) + } + static method3() { +>method3 : Symbol(c.method3, Decl(es6ModuleClassDeclaration.ts, 10, 5)) + } + private static method4() { +>method4 : Symbol(c.method4, Decl(es6ModuleClassDeclaration.ts, 12, 5)) + } +} +class c2 { +>c2 : Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) + + constructor() { + } + private x = 10; +>x : Symbol(x, Decl(es6ModuleClassDeclaration.ts, 18, 5)) + + public y = 30; +>y : Symbol(y, Decl(es6ModuleClassDeclaration.ts, 19, 19)) + + static k = 20; +>k : Symbol(c2.k, Decl(es6ModuleClassDeclaration.ts, 20, 18)) + + private static l = 30; +>l : Symbol(c2.l, Decl(es6ModuleClassDeclaration.ts, 21, 18)) + + private method1() { +>method1 : Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 22, 26)) + } + public method2() { +>method2 : Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 24, 5)) + } + static method3() { +>method3 : Symbol(c2.method3, Decl(es6ModuleClassDeclaration.ts, 26, 5)) + } + private static method4() { +>method4 : Symbol(c2.method4, Decl(es6ModuleClassDeclaration.ts, 28, 5)) + } +} +new c(); +>c : Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) + +new c2(); +>c2 : Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleClassDeclaration.ts, 33, 9)) + + export class c3 { +>c3 : Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) + + constructor() { + } + private x = 10; +>x : Symbol(x, Decl(es6ModuleClassDeclaration.ts, 38, 9)) + + public y = 30; +>y : Symbol(y, Decl(es6ModuleClassDeclaration.ts, 39, 23)) + + static k = 20; +>k : Symbol(c3.k, Decl(es6ModuleClassDeclaration.ts, 40, 22)) + + private static l = 30; +>l : Symbol(c3.l, Decl(es6ModuleClassDeclaration.ts, 41, 22)) + + private method1() { +>method1 : Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 42, 30)) + } + public method2() { +>method2 : Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 44, 9)) + } + static method3() { +>method3 : Symbol(c3.method3, Decl(es6ModuleClassDeclaration.ts, 46, 9)) + } + private static method4() { +>method4 : Symbol(c3.method4, Decl(es6ModuleClassDeclaration.ts, 48, 9)) + } + } + class c4 { +>c4 : Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 51, 5)) + + constructor() { + } + private x = 10; +>x : Symbol(x, Decl(es6ModuleClassDeclaration.ts, 54, 9)) + + public y = 30; +>y : Symbol(y, Decl(es6ModuleClassDeclaration.ts, 55, 23)) + + static k = 20; +>k : Symbol(c4.k, Decl(es6ModuleClassDeclaration.ts, 56, 22)) + + private static l = 30; +>l : Symbol(c4.l, Decl(es6ModuleClassDeclaration.ts, 57, 22)) + + private method1() { +>method1 : Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 58, 30)) + } + public method2() { +>method2 : Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 60, 9)) + } + static method3() { +>method3 : Symbol(c4.method3, Decl(es6ModuleClassDeclaration.ts, 62, 9)) + } + private static method4() { +>method4 : Symbol(c4.method4, Decl(es6ModuleClassDeclaration.ts, 64, 9)) + } + } + new c(); +>c : Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) + + new c2(); +>c2 : Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) + + new c3(); +>c3 : Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) + + new c4(); +>c4 : Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 51, 5)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleClassDeclaration.ts, 72, 1)) + + export class c3 { +>c3 : Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 73, 11)) + + constructor() { + } + private x = 10; +>x : Symbol(x, Decl(es6ModuleClassDeclaration.ts, 76, 9)) + + public y = 30; +>y : Symbol(y, Decl(es6ModuleClassDeclaration.ts, 77, 23)) + + static k = 20; +>k : Symbol(c3.k, Decl(es6ModuleClassDeclaration.ts, 78, 22)) + + private static l = 30; +>l : Symbol(c3.l, Decl(es6ModuleClassDeclaration.ts, 79, 22)) + + private method1() { +>method1 : Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 80, 30)) + } + public method2() { +>method2 : Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 82, 9)) + } + static method3() { +>method3 : Symbol(c3.method3, Decl(es6ModuleClassDeclaration.ts, 84, 9)) + } + private static method4() { +>method4 : Symbol(c3.method4, Decl(es6ModuleClassDeclaration.ts, 86, 9)) + } + } + class c4 { +>c4 : Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 89, 5)) + + constructor() { + } + private x = 10; +>x : Symbol(x, Decl(es6ModuleClassDeclaration.ts, 92, 9)) + + public y = 30; +>y : Symbol(y, Decl(es6ModuleClassDeclaration.ts, 93, 23)) + + static k = 20; +>k : Symbol(c4.k, Decl(es6ModuleClassDeclaration.ts, 94, 22)) + + private static l = 30; +>l : Symbol(c4.l, Decl(es6ModuleClassDeclaration.ts, 95, 22)) + + private method1() { +>method1 : Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 96, 30)) + } + public method2() { +>method2 : Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 98, 9)) + } + static method3() { +>method3 : Symbol(c4.method3, Decl(es6ModuleClassDeclaration.ts, 100, 9)) + } + private static method4() { +>method4 : Symbol(c4.method4, Decl(es6ModuleClassDeclaration.ts, 102, 9)) + } + } + new c(); +>c : Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) + + new c2(); +>c2 : Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) + + new c3(); +>c3 : Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 73, 11)) + + new c4(); +>c4 : Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 89, 5)) + + new m1.c3(); +>m1.c3 : Symbol(m1.c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) +>m1 : Symbol(m1, Decl(es6ModuleClassDeclaration.ts, 33, 9)) +>c3 : Symbol(m1.c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) +} diff --git a/tests/baselines/reference/es6ModuleClassDeclaration.types b/tests/baselines/reference/es6ModuleClassDeclaration.types index 442b5031b48ef..e354d266abe70 100644 --- a/tests/baselines/reference/es6ModuleClassDeclaration.types +++ b/tests/baselines/reference/es6ModuleClassDeclaration.types @@ -1,257 +1,257 @@ === tests/cases/compiler/es6ModuleClassDeclaration.ts === export class c { ->c : c, Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) +>c : c constructor() { } private x = 10; ->x : number, Symbol(x, Decl(es6ModuleClassDeclaration.ts, 2, 5)) +>x : number >10 : number public y = 30; ->y : number, Symbol(y, Decl(es6ModuleClassDeclaration.ts, 3, 19)) +>y : number >30 : number static k = 20; ->k : number, Symbol(c.k, Decl(es6ModuleClassDeclaration.ts, 4, 18)) +>k : number >20 : number private static l = 30; ->l : number, Symbol(c.l, Decl(es6ModuleClassDeclaration.ts, 5, 18)) +>l : number >30 : number private method1() { ->method1 : () => void, Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 6, 26)) +>method1 : () => void } public method2() { ->method2 : () => void, Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 8, 5)) +>method2 : () => void } static method3() { ->method3 : () => void, Symbol(c.method3, Decl(es6ModuleClassDeclaration.ts, 10, 5)) +>method3 : () => void } private static method4() { ->method4 : () => void, Symbol(c.method4, Decl(es6ModuleClassDeclaration.ts, 12, 5)) +>method4 : () => void } } class c2 { ->c2 : c2, Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) +>c2 : c2 constructor() { } private x = 10; ->x : number, Symbol(x, Decl(es6ModuleClassDeclaration.ts, 18, 5)) +>x : number >10 : number public y = 30; ->y : number, Symbol(y, Decl(es6ModuleClassDeclaration.ts, 19, 19)) +>y : number >30 : number static k = 20; ->k : number, Symbol(c2.k, Decl(es6ModuleClassDeclaration.ts, 20, 18)) +>k : number >20 : number private static l = 30; ->l : number, Symbol(c2.l, Decl(es6ModuleClassDeclaration.ts, 21, 18)) +>l : number >30 : number private method1() { ->method1 : () => void, Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 22, 26)) +>method1 : () => void } public method2() { ->method2 : () => void, Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 24, 5)) +>method2 : () => void } static method3() { ->method3 : () => void, Symbol(c2.method3, Decl(es6ModuleClassDeclaration.ts, 26, 5)) +>method3 : () => void } private static method4() { ->method4 : () => void, Symbol(c2.method4, Decl(es6ModuleClassDeclaration.ts, 28, 5)) +>method4 : () => void } } new c(); >new c() : c ->c : typeof c, Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) +>c : typeof c new c2(); >new c2() : c2 ->c2 : typeof c2, Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) +>c2 : typeof c2 export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleClassDeclaration.ts, 33, 9)) +>m1 : typeof m1 export class c3 { ->c3 : c3, Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) +>c3 : c3 constructor() { } private x = 10; ->x : number, Symbol(x, Decl(es6ModuleClassDeclaration.ts, 38, 9)) +>x : number >10 : number public y = 30; ->y : number, Symbol(y, Decl(es6ModuleClassDeclaration.ts, 39, 23)) +>y : number >30 : number static k = 20; ->k : number, Symbol(c3.k, Decl(es6ModuleClassDeclaration.ts, 40, 22)) +>k : number >20 : number private static l = 30; ->l : number, Symbol(c3.l, Decl(es6ModuleClassDeclaration.ts, 41, 22)) +>l : number >30 : number private method1() { ->method1 : () => void, Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 42, 30)) +>method1 : () => void } public method2() { ->method2 : () => void, Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 44, 9)) +>method2 : () => void } static method3() { ->method3 : () => void, Symbol(c3.method3, Decl(es6ModuleClassDeclaration.ts, 46, 9)) +>method3 : () => void } private static method4() { ->method4 : () => void, Symbol(c3.method4, Decl(es6ModuleClassDeclaration.ts, 48, 9)) +>method4 : () => void } } class c4 { ->c4 : c4, Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 51, 5)) +>c4 : c4 constructor() { } private x = 10; ->x : number, Symbol(x, Decl(es6ModuleClassDeclaration.ts, 54, 9)) +>x : number >10 : number public y = 30; ->y : number, Symbol(y, Decl(es6ModuleClassDeclaration.ts, 55, 23)) +>y : number >30 : number static k = 20; ->k : number, Symbol(c4.k, Decl(es6ModuleClassDeclaration.ts, 56, 22)) +>k : number >20 : number private static l = 30; ->l : number, Symbol(c4.l, Decl(es6ModuleClassDeclaration.ts, 57, 22)) +>l : number >30 : number private method1() { ->method1 : () => void, Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 58, 30)) +>method1 : () => void } public method2() { ->method2 : () => void, Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 60, 9)) +>method2 : () => void } static method3() { ->method3 : () => void, Symbol(c4.method3, Decl(es6ModuleClassDeclaration.ts, 62, 9)) +>method3 : () => void } private static method4() { ->method4 : () => void, Symbol(c4.method4, Decl(es6ModuleClassDeclaration.ts, 64, 9)) +>method4 : () => void } } new c(); >new c() : c ->c : typeof c, Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) +>c : typeof c new c2(); >new c2() : c2 ->c2 : typeof c2, Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) +>c2 : typeof c2 new c3(); >new c3() : c3 ->c3 : typeof c3, Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) +>c3 : typeof c3 new c4(); >new c4() : c4 ->c4 : typeof c4, Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 51, 5)) +>c4 : typeof c4 } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleClassDeclaration.ts, 72, 1)) +>m2 : typeof m2 export class c3 { ->c3 : c3, Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 73, 11)) +>c3 : c3 constructor() { } private x = 10; ->x : number, Symbol(x, Decl(es6ModuleClassDeclaration.ts, 76, 9)) +>x : number >10 : number public y = 30; ->y : number, Symbol(y, Decl(es6ModuleClassDeclaration.ts, 77, 23)) +>y : number >30 : number static k = 20; ->k : number, Symbol(c3.k, Decl(es6ModuleClassDeclaration.ts, 78, 22)) +>k : number >20 : number private static l = 30; ->l : number, Symbol(c3.l, Decl(es6ModuleClassDeclaration.ts, 79, 22)) +>l : number >30 : number private method1() { ->method1 : () => void, Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 80, 30)) +>method1 : () => void } public method2() { ->method2 : () => void, Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 82, 9)) +>method2 : () => void } static method3() { ->method3 : () => void, Symbol(c3.method3, Decl(es6ModuleClassDeclaration.ts, 84, 9)) +>method3 : () => void } private static method4() { ->method4 : () => void, Symbol(c3.method4, Decl(es6ModuleClassDeclaration.ts, 86, 9)) +>method4 : () => void } } class c4 { ->c4 : c4, Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 89, 5)) +>c4 : c4 constructor() { } private x = 10; ->x : number, Symbol(x, Decl(es6ModuleClassDeclaration.ts, 92, 9)) +>x : number >10 : number public y = 30; ->y : number, Symbol(y, Decl(es6ModuleClassDeclaration.ts, 93, 23)) +>y : number >30 : number static k = 20; ->k : number, Symbol(c4.k, Decl(es6ModuleClassDeclaration.ts, 94, 22)) +>k : number >20 : number private static l = 30; ->l : number, Symbol(c4.l, Decl(es6ModuleClassDeclaration.ts, 95, 22)) +>l : number >30 : number private method1() { ->method1 : () => void, Symbol(method1, Decl(es6ModuleClassDeclaration.ts, 96, 30)) +>method1 : () => void } public method2() { ->method2 : () => void, Symbol(method2, Decl(es6ModuleClassDeclaration.ts, 98, 9)) +>method2 : () => void } static method3() { ->method3 : () => void, Symbol(c4.method3, Decl(es6ModuleClassDeclaration.ts, 100, 9)) +>method3 : () => void } private static method4() { ->method4 : () => void, Symbol(c4.method4, Decl(es6ModuleClassDeclaration.ts, 102, 9)) +>method4 : () => void } } new c(); >new c() : c ->c : typeof c, Symbol(c, Decl(es6ModuleClassDeclaration.ts, 0, 0)) +>c : typeof c new c2(); >new c2() : c2 ->c2 : typeof c2, Symbol(c2, Decl(es6ModuleClassDeclaration.ts, 15, 1)) +>c2 : typeof c2 new c3(); >new c3() : c3 ->c3 : typeof c3, Symbol(c3, Decl(es6ModuleClassDeclaration.ts, 73, 11)) +>c3 : typeof c3 new c4(); >new c4() : c4 ->c4 : typeof c4, Symbol(c4, Decl(es6ModuleClassDeclaration.ts, 89, 5)) +>c4 : typeof c4 new m1.c3(); >new m1.c3() : m1.c3 ->m1.c3 : typeof m1.c3, Symbol(m1.c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleClassDeclaration.ts, 33, 9)) ->c3 : typeof m1.c3, Symbol(m1.c3, Decl(es6ModuleClassDeclaration.ts, 35, 18)) +>m1.c3 : typeof m1.c3 +>m1 : typeof m1 +>c3 : typeof m1.c3 } diff --git a/tests/baselines/reference/es6ModuleConst.symbols b/tests/baselines/reference/es6ModuleConst.symbols new file mode 100644 index 0000000000000..539188ce1cc48 --- /dev/null +++ b/tests/baselines/reference/es6ModuleConst.symbols @@ -0,0 +1,70 @@ +=== tests/cases/compiler/es6ModuleConst.ts === +export const a = "hello"; +>a : Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) + +export const x: string = a, y = x; +>x : Symbol(x, Decl(es6ModuleConst.ts, 1, 12)) +>a : Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) +>y : Symbol(y, Decl(es6ModuleConst.ts, 1, 27)) +>x : Symbol(x, Decl(es6ModuleConst.ts, 1, 12)) + +const b = y; +>b : Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) +>y : Symbol(y, Decl(es6ModuleConst.ts, 1, 27)) + +const c: string = b, d = c; +>c : Symbol(c, Decl(es6ModuleConst.ts, 3, 5)) +>b : Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) +>d : Symbol(d, Decl(es6ModuleConst.ts, 3, 20)) +>c : Symbol(c, Decl(es6ModuleConst.ts, 3, 5)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleConst.ts, 3, 27)) + + export const k = a; +>k : Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) +>a : Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) + + export const l: string = b, m = k; +>l : Symbol(l, Decl(es6ModuleConst.ts, 6, 16)) +>b : Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) +>m : Symbol(m, Decl(es6ModuleConst.ts, 6, 31)) +>k : Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) + + const n = m1.k; +>n : Symbol(n, Decl(es6ModuleConst.ts, 7, 9)) +>m1.k : Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) +>m1 : Symbol(m1, Decl(es6ModuleConst.ts, 3, 27)) +>k : Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) + + const o: string = n, p = k; +>o : Symbol(o, Decl(es6ModuleConst.ts, 8, 9)) +>n : Symbol(n, Decl(es6ModuleConst.ts, 7, 9)) +>p : Symbol(p, Decl(es6ModuleConst.ts, 8, 24)) +>k : Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleConst.ts, 9, 1)) + + export const k = a; +>k : Symbol(k, Decl(es6ModuleConst.ts, 11, 16)) +>a : Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) + + export const l: string = b, m = k; +>l : Symbol(l, Decl(es6ModuleConst.ts, 12, 16)) +>b : Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) +>m : Symbol(m, Decl(es6ModuleConst.ts, 12, 31)) +>k : Symbol(k, Decl(es6ModuleConst.ts, 11, 16)) + + const n = m1.k; +>n : Symbol(n, Decl(es6ModuleConst.ts, 13, 9)) +>m1.k : Symbol(m1.k, Decl(es6ModuleConst.ts, 5, 16)) +>m1 : Symbol(m1, Decl(es6ModuleConst.ts, 3, 27)) +>k : Symbol(m1.k, Decl(es6ModuleConst.ts, 5, 16)) + + const o: string = n, p = k; +>o : Symbol(o, Decl(es6ModuleConst.ts, 14, 9)) +>n : Symbol(n, Decl(es6ModuleConst.ts, 13, 9)) +>p : Symbol(p, Decl(es6ModuleConst.ts, 14, 24)) +>k : Symbol(k, Decl(es6ModuleConst.ts, 11, 16)) +} diff --git a/tests/baselines/reference/es6ModuleConst.types b/tests/baselines/reference/es6ModuleConst.types index f9fadeaba36c3..99b9f7c298046 100644 --- a/tests/baselines/reference/es6ModuleConst.types +++ b/tests/baselines/reference/es6ModuleConst.types @@ -1,71 +1,71 @@ === tests/cases/compiler/es6ModuleConst.ts === export const a = "hello"; ->a : string, Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) +>a : string >"hello" : string export const x: string = a, y = x; ->x : string, Symbol(x, Decl(es6ModuleConst.ts, 1, 12)) ->a : string, Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) ->y : string, Symbol(y, Decl(es6ModuleConst.ts, 1, 27)) ->x : string, Symbol(x, Decl(es6ModuleConst.ts, 1, 12)) +>x : string +>a : string +>y : string +>x : string const b = y; ->b : string, Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) ->y : string, Symbol(y, Decl(es6ModuleConst.ts, 1, 27)) +>b : string +>y : string const c: string = b, d = c; ->c : string, Symbol(c, Decl(es6ModuleConst.ts, 3, 5)) ->b : string, Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) ->d : string, Symbol(d, Decl(es6ModuleConst.ts, 3, 20)) ->c : string, Symbol(c, Decl(es6ModuleConst.ts, 3, 5)) +>c : string +>b : string +>d : string +>c : string export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConst.ts, 3, 27)) +>m1 : typeof m1 export const k = a; ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) ->a : string, Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) +>k : string +>a : string export const l: string = b, m = k; ->l : string, Symbol(l, Decl(es6ModuleConst.ts, 6, 16)) ->b : string, Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) ->m : string, Symbol(m, Decl(es6ModuleConst.ts, 6, 31)) ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) +>l : string +>b : string +>m : string +>k : string const n = m1.k; ->n : string, Symbol(n, Decl(es6ModuleConst.ts, 7, 9)) ->m1.k : string, Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConst.ts, 3, 27)) ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) +>n : string +>m1.k : string +>m1 : typeof m1 +>k : string const o: string = n, p = k; ->o : string, Symbol(o, Decl(es6ModuleConst.ts, 8, 9)) ->n : string, Symbol(n, Decl(es6ModuleConst.ts, 7, 9)) ->p : string, Symbol(p, Decl(es6ModuleConst.ts, 8, 24)) ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 5, 16)) +>o : string +>n : string +>p : string +>k : string } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleConst.ts, 9, 1)) +>m2 : typeof m2 export const k = a; ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 11, 16)) ->a : string, Symbol(a, Decl(es6ModuleConst.ts, 0, 12)) +>k : string +>a : string export const l: string = b, m = k; ->l : string, Symbol(l, Decl(es6ModuleConst.ts, 12, 16)) ->b : string, Symbol(b, Decl(es6ModuleConst.ts, 2, 5)) ->m : string, Symbol(m, Decl(es6ModuleConst.ts, 12, 31)) ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 11, 16)) +>l : string +>b : string +>m : string +>k : string const n = m1.k; ->n : string, Symbol(n, Decl(es6ModuleConst.ts, 13, 9)) ->m1.k : string, Symbol(m1.k, Decl(es6ModuleConst.ts, 5, 16)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConst.ts, 3, 27)) ->k : string, Symbol(m1.k, Decl(es6ModuleConst.ts, 5, 16)) +>n : string +>m1.k : string +>m1 : typeof m1 +>k : string const o: string = n, p = k; ->o : string, Symbol(o, Decl(es6ModuleConst.ts, 14, 9)) ->n : string, Symbol(n, Decl(es6ModuleConst.ts, 13, 9)) ->p : string, Symbol(p, Decl(es6ModuleConst.ts, 14, 24)) ->k : string, Symbol(k, Decl(es6ModuleConst.ts, 11, 16)) +>o : string +>n : string +>p : string +>k : string } diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration.symbols b/tests/baselines/reference/es6ModuleConstEnumDeclaration.symbols new file mode 100644 index 0000000000000..391ef85c5993f --- /dev/null +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration.symbols @@ -0,0 +1,147 @@ +=== tests/cases/compiler/es6ModuleConstEnumDeclaration.ts === +export const enum e1 { +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) + + a, +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) + + b, +>b : Symbol(e1.b, Decl(es6ModuleConstEnumDeclaration.ts, 1, 6)) + + c +>c : Symbol(e1.c, Decl(es6ModuleConstEnumDeclaration.ts, 2, 6)) +} +const enum e2 { +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) + + x, +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) + + y, +>y : Symbol(e2.y, Decl(es6ModuleConstEnumDeclaration.ts, 6, 6)) + + z +>z : Symbol(e2.z, Decl(es6ModuleConstEnumDeclaration.ts, 7, 6)) +} +var x = e1.a; +>x : Symbol(x, Decl(es6ModuleConstEnumDeclaration.ts, 10, 3)) +>e1.a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) + +var y = e2.x; +>y : Symbol(y, Decl(es6ModuleConstEnumDeclaration.ts, 11, 3)) +>e2.x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleConstEnumDeclaration.ts, 11, 13)) + + export const enum e3 { +>e3 : Symbol(e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) + + a, +>a : Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) + + b, +>b : Symbol(e3.b, Decl(es6ModuleConstEnumDeclaration.ts, 14, 10)) + + c +>c : Symbol(e3.c, Decl(es6ModuleConstEnumDeclaration.ts, 15, 10)) + } + const enum e4 { +>e4 : Symbol(e4, Decl(es6ModuleConstEnumDeclaration.ts, 17, 5)) + + x, +>x : Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration.ts, 18, 19)) + + y, +>y : Symbol(e4.y, Decl(es6ModuleConstEnumDeclaration.ts, 19, 10)) + + z +>z : Symbol(e4.z, Decl(es6ModuleConstEnumDeclaration.ts, 20, 10)) + } + var x1 = e1.a; +>x1 : Symbol(x1, Decl(es6ModuleConstEnumDeclaration.ts, 23, 7)) +>e1.a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) + + var y1 = e2.x; +>y1 : Symbol(y1, Decl(es6ModuleConstEnumDeclaration.ts, 24, 7)) +>e2.x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) + + var x2 = e3.a; +>x2 : Symbol(x2, Decl(es6ModuleConstEnumDeclaration.ts, 25, 7)) +>e3.a : Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) +>e3 : Symbol(e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) +>a : Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) + + var y2 = e4.x; +>y2 : Symbol(y2, Decl(es6ModuleConstEnumDeclaration.ts, 26, 7)) +>e4.x : Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration.ts, 18, 19)) +>e4 : Symbol(e4, Decl(es6ModuleConstEnumDeclaration.ts, 17, 5)) +>x : Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration.ts, 18, 19)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleConstEnumDeclaration.ts, 27, 1)) + + export const enum e5 { +>e5 : Symbol(e5, Decl(es6ModuleConstEnumDeclaration.ts, 28, 11)) + + a, +>a : Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration.ts, 29, 26)) + + b, +>b : Symbol(e5.b, Decl(es6ModuleConstEnumDeclaration.ts, 30, 10)) + + c +>c : Symbol(e5.c, Decl(es6ModuleConstEnumDeclaration.ts, 31, 10)) + } + const enum e6 { +>e6 : Symbol(e6, Decl(es6ModuleConstEnumDeclaration.ts, 33, 5)) + + x, +>x : Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration.ts, 34, 19)) + + y, +>y : Symbol(e6.y, Decl(es6ModuleConstEnumDeclaration.ts, 35, 10)) + + z +>z : Symbol(e6.z, Decl(es6ModuleConstEnumDeclaration.ts, 36, 10)) + } + var x1 = e1.a; +>x1 : Symbol(x1, Decl(es6ModuleConstEnumDeclaration.ts, 39, 7)) +>e1.a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) + + var y1 = e2.x; +>y1 : Symbol(y1, Decl(es6ModuleConstEnumDeclaration.ts, 40, 7)) +>e2.x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) + + var x2 = e5.a; +>x2 : Symbol(x2, Decl(es6ModuleConstEnumDeclaration.ts, 41, 7)) +>e5.a : Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration.ts, 29, 26)) +>e5 : Symbol(e5, Decl(es6ModuleConstEnumDeclaration.ts, 28, 11)) +>a : Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration.ts, 29, 26)) + + var y2 = e6.x; +>y2 : Symbol(y2, Decl(es6ModuleConstEnumDeclaration.ts, 42, 7)) +>e6.x : Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration.ts, 34, 19)) +>e6 : Symbol(e6, Decl(es6ModuleConstEnumDeclaration.ts, 33, 5)) +>x : Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration.ts, 34, 19)) + + var x3 = m1.e3.a; +>x3 : Symbol(x3, Decl(es6ModuleConstEnumDeclaration.ts, 43, 7)) +>m1.e3.a : Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) +>m1.e3 : Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) +>m1 : Symbol(m1, Decl(es6ModuleConstEnumDeclaration.ts, 11, 13)) +>e3 : Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) +>a : Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) +} diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration.types b/tests/baselines/reference/es6ModuleConstEnumDeclaration.types index 728e4e61efcab..fae819f93b06f 100644 --- a/tests/baselines/reference/es6ModuleConstEnumDeclaration.types +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration.types @@ -1,147 +1,147 @@ === tests/cases/compiler/es6ModuleConstEnumDeclaration.ts === export const enum e1 { ->e1 : e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) +>e1 : e1 a, ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>a : e1 b, ->b : e1, Symbol(e1.b, Decl(es6ModuleConstEnumDeclaration.ts, 1, 6)) +>b : e1 c ->c : e1, Symbol(e1.c, Decl(es6ModuleConstEnumDeclaration.ts, 2, 6)) +>c : e1 } const enum e2 { ->e2 : e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) +>e2 : e2 x, ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>x : e2 y, ->y : e2, Symbol(e2.y, Decl(es6ModuleConstEnumDeclaration.ts, 6, 6)) +>y : e2 z ->z : e2, Symbol(e2.z, Decl(es6ModuleConstEnumDeclaration.ts, 7, 6)) +>z : e2 } var x = e1.a; ->x : e1, Symbol(x, Decl(es6ModuleConstEnumDeclaration.ts, 10, 3)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>x : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y = e2.x; ->y : e2, Symbol(y, Decl(es6ModuleConstEnumDeclaration.ts, 11, 3)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>y : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConstEnumDeclaration.ts, 11, 13)) +>m1 : typeof m1 export const enum e3 { ->e3 : e3, Symbol(e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) +>e3 : e3 a, ->a : e3, Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) +>a : e3 b, ->b : e3, Symbol(e3.b, Decl(es6ModuleConstEnumDeclaration.ts, 14, 10)) +>b : e3 c ->c : e3, Symbol(e3.c, Decl(es6ModuleConstEnumDeclaration.ts, 15, 10)) +>c : e3 } const enum e4 { ->e4 : e4, Symbol(e4, Decl(es6ModuleConstEnumDeclaration.ts, 17, 5)) +>e4 : e4 x, ->x : e4, Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration.ts, 18, 19)) +>x : e4 y, ->y : e4, Symbol(e4.y, Decl(es6ModuleConstEnumDeclaration.ts, 19, 10)) +>y : e4 z ->z : e4, Symbol(e4.z, Decl(es6ModuleConstEnumDeclaration.ts, 20, 10)) +>z : e4 } var x1 = e1.a; ->x1 : e1, Symbol(x1, Decl(es6ModuleConstEnumDeclaration.ts, 23, 7)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>x1 : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y1 = e2.x; ->y1 : e2, Symbol(y1, Decl(es6ModuleConstEnumDeclaration.ts, 24, 7)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>y1 : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 var x2 = e3.a; ->x2 : e3, Symbol(x2, Decl(es6ModuleConstEnumDeclaration.ts, 25, 7)) ->e3.a : e3, Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) ->e3 : typeof e3, Symbol(e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) ->a : e3, Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) +>x2 : e3 +>e3.a : e3 +>e3 : typeof e3 +>a : e3 var y2 = e4.x; ->y2 : e4, Symbol(y2, Decl(es6ModuleConstEnumDeclaration.ts, 26, 7)) ->e4.x : e4, Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration.ts, 18, 19)) ->e4 : typeof e4, Symbol(e4, Decl(es6ModuleConstEnumDeclaration.ts, 17, 5)) ->x : e4, Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration.ts, 18, 19)) +>y2 : e4 +>e4.x : e4 +>e4 : typeof e4 +>x : e4 } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleConstEnumDeclaration.ts, 27, 1)) +>m2 : typeof m2 export const enum e5 { ->e5 : e5, Symbol(e5, Decl(es6ModuleConstEnumDeclaration.ts, 28, 11)) +>e5 : e5 a, ->a : e5, Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration.ts, 29, 26)) +>a : e5 b, ->b : e5, Symbol(e5.b, Decl(es6ModuleConstEnumDeclaration.ts, 30, 10)) +>b : e5 c ->c : e5, Symbol(e5.c, Decl(es6ModuleConstEnumDeclaration.ts, 31, 10)) +>c : e5 } const enum e6 { ->e6 : e6, Symbol(e6, Decl(es6ModuleConstEnumDeclaration.ts, 33, 5)) +>e6 : e6 x, ->x : e6, Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration.ts, 34, 19)) +>x : e6 y, ->y : e6, Symbol(e6.y, Decl(es6ModuleConstEnumDeclaration.ts, 35, 10)) +>y : e6 z ->z : e6, Symbol(e6.z, Decl(es6ModuleConstEnumDeclaration.ts, 36, 10)) +>z : e6 } var x1 = e1.a; ->x1 : e1, Symbol(x1, Decl(es6ModuleConstEnumDeclaration.ts, 39, 7)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration.ts, 0, 22)) +>x1 : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y1 = e2.x; ->y1 : e2, Symbol(y1, Decl(es6ModuleConstEnumDeclaration.ts, 40, 7)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration.ts, 4, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration.ts, 5, 15)) +>y1 : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 var x2 = e5.a; ->x2 : e5, Symbol(x2, Decl(es6ModuleConstEnumDeclaration.ts, 41, 7)) ->e5.a : e5, Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration.ts, 29, 26)) ->e5 : typeof e5, Symbol(e5, Decl(es6ModuleConstEnumDeclaration.ts, 28, 11)) ->a : e5, Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration.ts, 29, 26)) +>x2 : e5 +>e5.a : e5 +>e5 : typeof e5 +>a : e5 var y2 = e6.x; ->y2 : e6, Symbol(y2, Decl(es6ModuleConstEnumDeclaration.ts, 42, 7)) ->e6.x : e6, Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration.ts, 34, 19)) ->e6 : typeof e6, Symbol(e6, Decl(es6ModuleConstEnumDeclaration.ts, 33, 5)) ->x : e6, Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration.ts, 34, 19)) +>y2 : e6 +>e6.x : e6 +>e6 : typeof e6 +>x : e6 var x3 = m1.e3.a; ->x3 : m1.e3, Symbol(x3, Decl(es6ModuleConstEnumDeclaration.ts, 43, 7)) ->m1.e3.a : m1.e3, Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) ->m1.e3 : typeof m1.e3, Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConstEnumDeclaration.ts, 11, 13)) ->e3 : typeof m1.e3, Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration.ts, 12, 18)) ->a : m1.e3, Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration.ts, 13, 26)) +>x3 : m1.e3 +>m1.e3.a : m1.e3 +>m1.e3 : typeof m1.e3 +>m1 : typeof m1 +>e3 : typeof m1.e3 +>a : m1.e3 } diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.symbols b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.symbols new file mode 100644 index 0000000000000..2e756cf287546 --- /dev/null +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.symbols @@ -0,0 +1,148 @@ +=== tests/cases/compiler/es6ModuleConstEnumDeclaration2.ts === + +export const enum e1 { +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) + + a, +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) + + b, +>b : Symbol(e1.b, Decl(es6ModuleConstEnumDeclaration2.ts, 2, 6)) + + c +>c : Symbol(e1.c, Decl(es6ModuleConstEnumDeclaration2.ts, 3, 6)) +} +const enum e2 { +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) + + x, +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) + + y, +>y : Symbol(e2.y, Decl(es6ModuleConstEnumDeclaration2.ts, 7, 6)) + + z +>z : Symbol(e2.z, Decl(es6ModuleConstEnumDeclaration2.ts, 8, 6)) +} +var x = e1.a; +>x : Symbol(x, Decl(es6ModuleConstEnumDeclaration2.ts, 11, 3)) +>e1.a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) + +var y = e2.x; +>y : Symbol(y, Decl(es6ModuleConstEnumDeclaration2.ts, 12, 3)) +>e2.x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleConstEnumDeclaration2.ts, 12, 13)) + + export const enum e3 { +>e3 : Symbol(e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) + + a, +>a : Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) + + b, +>b : Symbol(e3.b, Decl(es6ModuleConstEnumDeclaration2.ts, 15, 10)) + + c +>c : Symbol(e3.c, Decl(es6ModuleConstEnumDeclaration2.ts, 16, 10)) + } + const enum e4 { +>e4 : Symbol(e4, Decl(es6ModuleConstEnumDeclaration2.ts, 18, 5)) + + x, +>x : Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration2.ts, 19, 19)) + + y, +>y : Symbol(e4.y, Decl(es6ModuleConstEnumDeclaration2.ts, 20, 10)) + + z +>z : Symbol(e4.z, Decl(es6ModuleConstEnumDeclaration2.ts, 21, 10)) + } + var x1 = e1.a; +>x1 : Symbol(x1, Decl(es6ModuleConstEnumDeclaration2.ts, 24, 7)) +>e1.a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) + + var y1 = e2.x; +>y1 : Symbol(y1, Decl(es6ModuleConstEnumDeclaration2.ts, 25, 7)) +>e2.x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) + + var x2 = e3.a; +>x2 : Symbol(x2, Decl(es6ModuleConstEnumDeclaration2.ts, 26, 7)) +>e3.a : Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) +>e3 : Symbol(e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) +>a : Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) + + var y2 = e4.x; +>y2 : Symbol(y2, Decl(es6ModuleConstEnumDeclaration2.ts, 27, 7)) +>e4.x : Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration2.ts, 19, 19)) +>e4 : Symbol(e4, Decl(es6ModuleConstEnumDeclaration2.ts, 18, 5)) +>x : Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration2.ts, 19, 19)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleConstEnumDeclaration2.ts, 28, 1)) + + export const enum e5 { +>e5 : Symbol(e5, Decl(es6ModuleConstEnumDeclaration2.ts, 29, 11)) + + a, +>a : Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration2.ts, 30, 26)) + + b, +>b : Symbol(e5.b, Decl(es6ModuleConstEnumDeclaration2.ts, 31, 10)) + + c +>c : Symbol(e5.c, Decl(es6ModuleConstEnumDeclaration2.ts, 32, 10)) + } + const enum e6 { +>e6 : Symbol(e6, Decl(es6ModuleConstEnumDeclaration2.ts, 34, 5)) + + x, +>x : Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration2.ts, 35, 19)) + + y, +>y : Symbol(e6.y, Decl(es6ModuleConstEnumDeclaration2.ts, 36, 10)) + + z +>z : Symbol(e6.z, Decl(es6ModuleConstEnumDeclaration2.ts, 37, 10)) + } + var x1 = e1.a; +>x1 : Symbol(x1, Decl(es6ModuleConstEnumDeclaration2.ts, 40, 7)) +>e1.a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>e1 : Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) + + var y1 = e2.x; +>y1 : Symbol(y1, Decl(es6ModuleConstEnumDeclaration2.ts, 41, 7)) +>e2.x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>e2 : Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) +>x : Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) + + var x2 = e5.a; +>x2 : Symbol(x2, Decl(es6ModuleConstEnumDeclaration2.ts, 42, 7)) +>e5.a : Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration2.ts, 30, 26)) +>e5 : Symbol(e5, Decl(es6ModuleConstEnumDeclaration2.ts, 29, 11)) +>a : Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration2.ts, 30, 26)) + + var y2 = e6.x; +>y2 : Symbol(y2, Decl(es6ModuleConstEnumDeclaration2.ts, 43, 7)) +>e6.x : Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration2.ts, 35, 19)) +>e6 : Symbol(e6, Decl(es6ModuleConstEnumDeclaration2.ts, 34, 5)) +>x : Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration2.ts, 35, 19)) + + var x3 = m1.e3.a; +>x3 : Symbol(x3, Decl(es6ModuleConstEnumDeclaration2.ts, 44, 7)) +>m1.e3.a : Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) +>m1.e3 : Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) +>m1 : Symbol(m1, Decl(es6ModuleConstEnumDeclaration2.ts, 12, 13)) +>e3 : Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) +>a : Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) +} diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.types b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.types index 6847de2a3d6a2..c43a938c9b6a8 100644 --- a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.types +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.types @@ -1,148 +1,148 @@ === tests/cases/compiler/es6ModuleConstEnumDeclaration2.ts === export const enum e1 { ->e1 : e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) +>e1 : e1 a, ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>a : e1 b, ->b : e1, Symbol(e1.b, Decl(es6ModuleConstEnumDeclaration2.ts, 2, 6)) +>b : e1 c ->c : e1, Symbol(e1.c, Decl(es6ModuleConstEnumDeclaration2.ts, 3, 6)) +>c : e1 } const enum e2 { ->e2 : e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) +>e2 : e2 x, ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>x : e2 y, ->y : e2, Symbol(e2.y, Decl(es6ModuleConstEnumDeclaration2.ts, 7, 6)) +>y : e2 z ->z : e2, Symbol(e2.z, Decl(es6ModuleConstEnumDeclaration2.ts, 8, 6)) +>z : e2 } var x = e1.a; ->x : e1, Symbol(x, Decl(es6ModuleConstEnumDeclaration2.ts, 11, 3)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>x : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y = e2.x; ->y : e2, Symbol(y, Decl(es6ModuleConstEnumDeclaration2.ts, 12, 3)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>y : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConstEnumDeclaration2.ts, 12, 13)) +>m1 : typeof m1 export const enum e3 { ->e3 : e3, Symbol(e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) +>e3 : e3 a, ->a : e3, Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) +>a : e3 b, ->b : e3, Symbol(e3.b, Decl(es6ModuleConstEnumDeclaration2.ts, 15, 10)) +>b : e3 c ->c : e3, Symbol(e3.c, Decl(es6ModuleConstEnumDeclaration2.ts, 16, 10)) +>c : e3 } const enum e4 { ->e4 : e4, Symbol(e4, Decl(es6ModuleConstEnumDeclaration2.ts, 18, 5)) +>e4 : e4 x, ->x : e4, Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration2.ts, 19, 19)) +>x : e4 y, ->y : e4, Symbol(e4.y, Decl(es6ModuleConstEnumDeclaration2.ts, 20, 10)) +>y : e4 z ->z : e4, Symbol(e4.z, Decl(es6ModuleConstEnumDeclaration2.ts, 21, 10)) +>z : e4 } var x1 = e1.a; ->x1 : e1, Symbol(x1, Decl(es6ModuleConstEnumDeclaration2.ts, 24, 7)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>x1 : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y1 = e2.x; ->y1 : e2, Symbol(y1, Decl(es6ModuleConstEnumDeclaration2.ts, 25, 7)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>y1 : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 var x2 = e3.a; ->x2 : e3, Symbol(x2, Decl(es6ModuleConstEnumDeclaration2.ts, 26, 7)) ->e3.a : e3, Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) ->e3 : typeof e3, Symbol(e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) ->a : e3, Symbol(e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) +>x2 : e3 +>e3.a : e3 +>e3 : typeof e3 +>a : e3 var y2 = e4.x; ->y2 : e4, Symbol(y2, Decl(es6ModuleConstEnumDeclaration2.ts, 27, 7)) ->e4.x : e4, Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration2.ts, 19, 19)) ->e4 : typeof e4, Symbol(e4, Decl(es6ModuleConstEnumDeclaration2.ts, 18, 5)) ->x : e4, Symbol(e4.x, Decl(es6ModuleConstEnumDeclaration2.ts, 19, 19)) +>y2 : e4 +>e4.x : e4 +>e4 : typeof e4 +>x : e4 } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleConstEnumDeclaration2.ts, 28, 1)) +>m2 : typeof m2 export const enum e5 { ->e5 : e5, Symbol(e5, Decl(es6ModuleConstEnumDeclaration2.ts, 29, 11)) +>e5 : e5 a, ->a : e5, Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration2.ts, 30, 26)) +>a : e5 b, ->b : e5, Symbol(e5.b, Decl(es6ModuleConstEnumDeclaration2.ts, 31, 10)) +>b : e5 c ->c : e5, Symbol(e5.c, Decl(es6ModuleConstEnumDeclaration2.ts, 32, 10)) +>c : e5 } const enum e6 { ->e6 : e6, Symbol(e6, Decl(es6ModuleConstEnumDeclaration2.ts, 34, 5)) +>e6 : e6 x, ->x : e6, Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration2.ts, 35, 19)) +>x : e6 y, ->y : e6, Symbol(e6.y, Decl(es6ModuleConstEnumDeclaration2.ts, 36, 10)) +>y : e6 z ->z : e6, Symbol(e6.z, Decl(es6ModuleConstEnumDeclaration2.ts, 37, 10)) +>z : e6 } var x1 = e1.a; ->x1 : e1, Symbol(x1, Decl(es6ModuleConstEnumDeclaration2.ts, 40, 7)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleConstEnumDeclaration2.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleConstEnumDeclaration2.ts, 1, 22)) +>x1 : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y1 = e2.x; ->y1 : e2, Symbol(y1, Decl(es6ModuleConstEnumDeclaration2.ts, 41, 7)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleConstEnumDeclaration2.ts, 5, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleConstEnumDeclaration2.ts, 6, 15)) +>y1 : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 var x2 = e5.a; ->x2 : e5, Symbol(x2, Decl(es6ModuleConstEnumDeclaration2.ts, 42, 7)) ->e5.a : e5, Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration2.ts, 30, 26)) ->e5 : typeof e5, Symbol(e5, Decl(es6ModuleConstEnumDeclaration2.ts, 29, 11)) ->a : e5, Symbol(e5.a, Decl(es6ModuleConstEnumDeclaration2.ts, 30, 26)) +>x2 : e5 +>e5.a : e5 +>e5 : typeof e5 +>a : e5 var y2 = e6.x; ->y2 : e6, Symbol(y2, Decl(es6ModuleConstEnumDeclaration2.ts, 43, 7)) ->e6.x : e6, Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration2.ts, 35, 19)) ->e6 : typeof e6, Symbol(e6, Decl(es6ModuleConstEnumDeclaration2.ts, 34, 5)) ->x : e6, Symbol(e6.x, Decl(es6ModuleConstEnumDeclaration2.ts, 35, 19)) +>y2 : e6 +>e6.x : e6 +>e6 : typeof e6 +>x : e6 var x3 = m1.e3.a; ->x3 : m1.e3, Symbol(x3, Decl(es6ModuleConstEnumDeclaration2.ts, 44, 7)) ->m1.e3.a : m1.e3, Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) ->m1.e3 : typeof m1.e3, Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleConstEnumDeclaration2.ts, 12, 13)) ->e3 : typeof m1.e3, Symbol(m1.e3, Decl(es6ModuleConstEnumDeclaration2.ts, 13, 18)) ->a : m1.e3, Symbol(m1.e3.a, Decl(es6ModuleConstEnumDeclaration2.ts, 14, 26)) +>x3 : m1.e3 +>m1.e3.a : m1.e3 +>m1.e3 : typeof m1.e3 +>m1 : typeof m1 +>e3 : typeof m1.e3 +>a : m1.e3 } diff --git a/tests/baselines/reference/es6ModuleEnumDeclaration.symbols b/tests/baselines/reference/es6ModuleEnumDeclaration.symbols new file mode 100644 index 0000000000000..eb7dd8bfb29f9 --- /dev/null +++ b/tests/baselines/reference/es6ModuleEnumDeclaration.symbols @@ -0,0 +1,147 @@ +=== tests/cases/compiler/es6ModuleEnumDeclaration.ts === +export enum e1 { +>e1 : Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) + + a, +>a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) + + b, +>b : Symbol(e1.b, Decl(es6ModuleEnumDeclaration.ts, 1, 6)) + + c +>c : Symbol(e1.c, Decl(es6ModuleEnumDeclaration.ts, 2, 6)) +} +enum e2 { +>e2 : Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) + + x, +>x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) + + y, +>y : Symbol(e2.y, Decl(es6ModuleEnumDeclaration.ts, 6, 6)) + + z +>z : Symbol(e2.z, Decl(es6ModuleEnumDeclaration.ts, 7, 6)) +} +var x = e1.a; +>x : Symbol(x, Decl(es6ModuleEnumDeclaration.ts, 10, 3)) +>e1.a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>e1 : Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) + +var y = e2.x; +>y : Symbol(y, Decl(es6ModuleEnumDeclaration.ts, 11, 3)) +>e2.x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>e2 : Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) +>x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleEnumDeclaration.ts, 11, 13)) + + export enum e3 { +>e3 : Symbol(e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) + + a, +>a : Symbol(e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) + + b, +>b : Symbol(e3.b, Decl(es6ModuleEnumDeclaration.ts, 14, 10)) + + c +>c : Symbol(e3.c, Decl(es6ModuleEnumDeclaration.ts, 15, 10)) + } + enum e4 { +>e4 : Symbol(e4, Decl(es6ModuleEnumDeclaration.ts, 17, 5)) + + x, +>x : Symbol(e4.x, Decl(es6ModuleEnumDeclaration.ts, 18, 13)) + + y, +>y : Symbol(e4.y, Decl(es6ModuleEnumDeclaration.ts, 19, 10)) + + z +>z : Symbol(e4.z, Decl(es6ModuleEnumDeclaration.ts, 20, 10)) + } + var x1 = e1.a; +>x1 : Symbol(x1, Decl(es6ModuleEnumDeclaration.ts, 23, 7)) +>e1.a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>e1 : Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) + + var y1 = e2.x; +>y1 : Symbol(y1, Decl(es6ModuleEnumDeclaration.ts, 24, 7)) +>e2.x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>e2 : Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) +>x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) + + var x2 = e3.a; +>x2 : Symbol(x2, Decl(es6ModuleEnumDeclaration.ts, 25, 7)) +>e3.a : Symbol(e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) +>e3 : Symbol(e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) +>a : Symbol(e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) + + var y2 = e4.x; +>y2 : Symbol(y2, Decl(es6ModuleEnumDeclaration.ts, 26, 7)) +>e4.x : Symbol(e4.x, Decl(es6ModuleEnumDeclaration.ts, 18, 13)) +>e4 : Symbol(e4, Decl(es6ModuleEnumDeclaration.ts, 17, 5)) +>x : Symbol(e4.x, Decl(es6ModuleEnumDeclaration.ts, 18, 13)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleEnumDeclaration.ts, 27, 1)) + + export enum e5 { +>e5 : Symbol(e5, Decl(es6ModuleEnumDeclaration.ts, 28, 11)) + + a, +>a : Symbol(e5.a, Decl(es6ModuleEnumDeclaration.ts, 29, 20)) + + b, +>b : Symbol(e5.b, Decl(es6ModuleEnumDeclaration.ts, 30, 10)) + + c +>c : Symbol(e5.c, Decl(es6ModuleEnumDeclaration.ts, 31, 10)) + } + enum e6 { +>e6 : Symbol(e6, Decl(es6ModuleEnumDeclaration.ts, 33, 5)) + + x, +>x : Symbol(e6.x, Decl(es6ModuleEnumDeclaration.ts, 34, 13)) + + y, +>y : Symbol(e6.y, Decl(es6ModuleEnumDeclaration.ts, 35, 10)) + + z +>z : Symbol(e6.z, Decl(es6ModuleEnumDeclaration.ts, 36, 10)) + } + var x1 = e1.a; +>x1 : Symbol(x1, Decl(es6ModuleEnumDeclaration.ts, 39, 7)) +>e1.a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>e1 : Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) +>a : Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) + + var y1 = e2.x; +>y1 : Symbol(y1, Decl(es6ModuleEnumDeclaration.ts, 40, 7)) +>e2.x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>e2 : Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) +>x : Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) + + var x2 = e5.a; +>x2 : Symbol(x2, Decl(es6ModuleEnumDeclaration.ts, 41, 7)) +>e5.a : Symbol(e5.a, Decl(es6ModuleEnumDeclaration.ts, 29, 20)) +>e5 : Symbol(e5, Decl(es6ModuleEnumDeclaration.ts, 28, 11)) +>a : Symbol(e5.a, Decl(es6ModuleEnumDeclaration.ts, 29, 20)) + + var y2 = e6.x; +>y2 : Symbol(y2, Decl(es6ModuleEnumDeclaration.ts, 42, 7)) +>e6.x : Symbol(e6.x, Decl(es6ModuleEnumDeclaration.ts, 34, 13)) +>e6 : Symbol(e6, Decl(es6ModuleEnumDeclaration.ts, 33, 5)) +>x : Symbol(e6.x, Decl(es6ModuleEnumDeclaration.ts, 34, 13)) + + var x3 = m1.e3.a; +>x3 : Symbol(x3, Decl(es6ModuleEnumDeclaration.ts, 43, 7)) +>m1.e3.a : Symbol(m1.e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) +>m1.e3 : Symbol(m1.e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) +>m1 : Symbol(m1, Decl(es6ModuleEnumDeclaration.ts, 11, 13)) +>e3 : Symbol(m1.e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) +>a : Symbol(m1.e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) +} diff --git a/tests/baselines/reference/es6ModuleEnumDeclaration.types b/tests/baselines/reference/es6ModuleEnumDeclaration.types index 0e893a94f4610..4b856fee00902 100644 --- a/tests/baselines/reference/es6ModuleEnumDeclaration.types +++ b/tests/baselines/reference/es6ModuleEnumDeclaration.types @@ -1,147 +1,147 @@ === tests/cases/compiler/es6ModuleEnumDeclaration.ts === export enum e1 { ->e1 : e1, Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) +>e1 : e1 a, ->a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>a : e1 b, ->b : e1, Symbol(e1.b, Decl(es6ModuleEnumDeclaration.ts, 1, 6)) +>b : e1 c ->c : e1, Symbol(e1.c, Decl(es6ModuleEnumDeclaration.ts, 2, 6)) +>c : e1 } enum e2 { ->e2 : e2, Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) +>e2 : e2 x, ->x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>x : e2 y, ->y : e2, Symbol(e2.y, Decl(es6ModuleEnumDeclaration.ts, 6, 6)) +>y : e2 z ->z : e2, Symbol(e2.z, Decl(es6ModuleEnumDeclaration.ts, 7, 6)) +>z : e2 } var x = e1.a; ->x : e1, Symbol(x, Decl(es6ModuleEnumDeclaration.ts, 10, 3)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>x : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y = e2.x; ->y : e2, Symbol(y, Decl(es6ModuleEnumDeclaration.ts, 11, 3)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>y : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleEnumDeclaration.ts, 11, 13)) +>m1 : typeof m1 export enum e3 { ->e3 : e3, Symbol(e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) +>e3 : e3 a, ->a : e3, Symbol(e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) +>a : e3 b, ->b : e3, Symbol(e3.b, Decl(es6ModuleEnumDeclaration.ts, 14, 10)) +>b : e3 c ->c : e3, Symbol(e3.c, Decl(es6ModuleEnumDeclaration.ts, 15, 10)) +>c : e3 } enum e4 { ->e4 : e4, Symbol(e4, Decl(es6ModuleEnumDeclaration.ts, 17, 5)) +>e4 : e4 x, ->x : e4, Symbol(e4.x, Decl(es6ModuleEnumDeclaration.ts, 18, 13)) +>x : e4 y, ->y : e4, Symbol(e4.y, Decl(es6ModuleEnumDeclaration.ts, 19, 10)) +>y : e4 z ->z : e4, Symbol(e4.z, Decl(es6ModuleEnumDeclaration.ts, 20, 10)) +>z : e4 } var x1 = e1.a; ->x1 : e1, Symbol(x1, Decl(es6ModuleEnumDeclaration.ts, 23, 7)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>x1 : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y1 = e2.x; ->y1 : e2, Symbol(y1, Decl(es6ModuleEnumDeclaration.ts, 24, 7)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>y1 : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 var x2 = e3.a; ->x2 : e3, Symbol(x2, Decl(es6ModuleEnumDeclaration.ts, 25, 7)) ->e3.a : e3, Symbol(e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) ->e3 : typeof e3, Symbol(e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) ->a : e3, Symbol(e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) +>x2 : e3 +>e3.a : e3 +>e3 : typeof e3 +>a : e3 var y2 = e4.x; ->y2 : e4, Symbol(y2, Decl(es6ModuleEnumDeclaration.ts, 26, 7)) ->e4.x : e4, Symbol(e4.x, Decl(es6ModuleEnumDeclaration.ts, 18, 13)) ->e4 : typeof e4, Symbol(e4, Decl(es6ModuleEnumDeclaration.ts, 17, 5)) ->x : e4, Symbol(e4.x, Decl(es6ModuleEnumDeclaration.ts, 18, 13)) +>y2 : e4 +>e4.x : e4 +>e4 : typeof e4 +>x : e4 } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleEnumDeclaration.ts, 27, 1)) +>m2 : typeof m2 export enum e5 { ->e5 : e5, Symbol(e5, Decl(es6ModuleEnumDeclaration.ts, 28, 11)) +>e5 : e5 a, ->a : e5, Symbol(e5.a, Decl(es6ModuleEnumDeclaration.ts, 29, 20)) +>a : e5 b, ->b : e5, Symbol(e5.b, Decl(es6ModuleEnumDeclaration.ts, 30, 10)) +>b : e5 c ->c : e5, Symbol(e5.c, Decl(es6ModuleEnumDeclaration.ts, 31, 10)) +>c : e5 } enum e6 { ->e6 : e6, Symbol(e6, Decl(es6ModuleEnumDeclaration.ts, 33, 5)) +>e6 : e6 x, ->x : e6, Symbol(e6.x, Decl(es6ModuleEnumDeclaration.ts, 34, 13)) +>x : e6 y, ->y : e6, Symbol(e6.y, Decl(es6ModuleEnumDeclaration.ts, 35, 10)) +>y : e6 z ->z : e6, Symbol(e6.z, Decl(es6ModuleEnumDeclaration.ts, 36, 10)) +>z : e6 } var x1 = e1.a; ->x1 : e1, Symbol(x1, Decl(es6ModuleEnumDeclaration.ts, 39, 7)) ->e1.a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) ->e1 : typeof e1, Symbol(e1, Decl(es6ModuleEnumDeclaration.ts, 0, 0)) ->a : e1, Symbol(e1.a, Decl(es6ModuleEnumDeclaration.ts, 0, 16)) +>x1 : e1 +>e1.a : e1 +>e1 : typeof e1 +>a : e1 var y1 = e2.x; ->y1 : e2, Symbol(y1, Decl(es6ModuleEnumDeclaration.ts, 40, 7)) ->e2.x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) ->e2 : typeof e2, Symbol(e2, Decl(es6ModuleEnumDeclaration.ts, 4, 1)) ->x : e2, Symbol(e2.x, Decl(es6ModuleEnumDeclaration.ts, 5, 9)) +>y1 : e2 +>e2.x : e2 +>e2 : typeof e2 +>x : e2 var x2 = e5.a; ->x2 : e5, Symbol(x2, Decl(es6ModuleEnumDeclaration.ts, 41, 7)) ->e5.a : e5, Symbol(e5.a, Decl(es6ModuleEnumDeclaration.ts, 29, 20)) ->e5 : typeof e5, Symbol(e5, Decl(es6ModuleEnumDeclaration.ts, 28, 11)) ->a : e5, Symbol(e5.a, Decl(es6ModuleEnumDeclaration.ts, 29, 20)) +>x2 : e5 +>e5.a : e5 +>e5 : typeof e5 +>a : e5 var y2 = e6.x; ->y2 : e6, Symbol(y2, Decl(es6ModuleEnumDeclaration.ts, 42, 7)) ->e6.x : e6, Symbol(e6.x, Decl(es6ModuleEnumDeclaration.ts, 34, 13)) ->e6 : typeof e6, Symbol(e6, Decl(es6ModuleEnumDeclaration.ts, 33, 5)) ->x : e6, Symbol(e6.x, Decl(es6ModuleEnumDeclaration.ts, 34, 13)) +>y2 : e6 +>e6.x : e6 +>e6 : typeof e6 +>x : e6 var x3 = m1.e3.a; ->x3 : m1.e3, Symbol(x3, Decl(es6ModuleEnumDeclaration.ts, 43, 7)) ->m1.e3.a : m1.e3, Symbol(m1.e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) ->m1.e3 : typeof m1.e3, Symbol(m1.e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleEnumDeclaration.ts, 11, 13)) ->e3 : typeof m1.e3, Symbol(m1.e3, Decl(es6ModuleEnumDeclaration.ts, 12, 18)) ->a : m1.e3, Symbol(m1.e3.a, Decl(es6ModuleEnumDeclaration.ts, 13, 20)) +>x3 : m1.e3 +>m1.e3.a : m1.e3 +>m1.e3 : typeof m1.e3 +>m1 : typeof m1 +>e3 : typeof m1.e3 +>a : m1.e3 } diff --git a/tests/baselines/reference/es6ModuleFunctionDeclaration.symbols b/tests/baselines/reference/es6ModuleFunctionDeclaration.symbols new file mode 100644 index 0000000000000..e58c40ed3efe6 --- /dev/null +++ b/tests/baselines/reference/es6ModuleFunctionDeclaration.symbols @@ -0,0 +1,60 @@ +=== tests/cases/compiler/es6ModuleFunctionDeclaration.ts === +export function foo() { +>foo : Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) +} +function foo2() { +>foo2 : Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) +} +foo(); +>foo : Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) + +foo2(); +>foo2 : Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleFunctionDeclaration.ts, 5, 7)) + + export function foo3() { +>foo3 : Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) + } + function foo4() { +>foo4 : Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 9, 5)) + } + foo(); +>foo : Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) + + foo2(); +>foo2 : Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) + + foo3(); +>foo3 : Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) + + foo4(); +>foo4 : Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 9, 5)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleFunctionDeclaration.ts, 16, 1)) + + export function foo3() { +>foo3 : Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 17, 11)) + } + function foo4() { +>foo4 : Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 19, 5)) + } + foo(); +>foo : Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) + + foo2(); +>foo2 : Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) + + foo3(); +>foo3 : Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 17, 11)) + + foo4(); +>foo4 : Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 19, 5)) + + m1.foo3(); +>m1.foo3 : Symbol(m1.foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) +>m1 : Symbol(m1, Decl(es6ModuleFunctionDeclaration.ts, 5, 7)) +>foo3 : Symbol(m1.foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) +} diff --git a/tests/baselines/reference/es6ModuleFunctionDeclaration.types b/tests/baselines/reference/es6ModuleFunctionDeclaration.types index 9c124ba76480c..b1252c1e8bcd3 100644 --- a/tests/baselines/reference/es6ModuleFunctionDeclaration.types +++ b/tests/baselines/reference/es6ModuleFunctionDeclaration.types @@ -1,71 +1,71 @@ === tests/cases/compiler/es6ModuleFunctionDeclaration.ts === export function foo() { ->foo : () => void, Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) +>foo : () => void } function foo2() { ->foo2 : () => void, Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) +>foo2 : () => void } foo(); >foo() : void ->foo : () => void, Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) +>foo : () => void foo2(); >foo2() : void ->foo2 : () => void, Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) +>foo2 : () => void export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleFunctionDeclaration.ts, 5, 7)) +>m1 : typeof m1 export function foo3() { ->foo3 : () => void, Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) +>foo3 : () => void } function foo4() { ->foo4 : () => void, Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 9, 5)) +>foo4 : () => void } foo(); >foo() : void ->foo : () => void, Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) +>foo : () => void foo2(); >foo2() : void ->foo2 : () => void, Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) +>foo2 : () => void foo3(); >foo3() : void ->foo3 : () => void, Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) +>foo3 : () => void foo4(); >foo4() : void ->foo4 : () => void, Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 9, 5)) +>foo4 : () => void } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleFunctionDeclaration.ts, 16, 1)) +>m2 : typeof m2 export function foo3() { ->foo3 : () => void, Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 17, 11)) +>foo3 : () => void } function foo4() { ->foo4 : () => void, Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 19, 5)) +>foo4 : () => void } foo(); >foo() : void ->foo : () => void, Symbol(foo, Decl(es6ModuleFunctionDeclaration.ts, 0, 0)) +>foo : () => void foo2(); >foo2() : void ->foo2 : () => void, Symbol(foo2, Decl(es6ModuleFunctionDeclaration.ts, 1, 1)) +>foo2 : () => void foo3(); >foo3() : void ->foo3 : () => void, Symbol(foo3, Decl(es6ModuleFunctionDeclaration.ts, 17, 11)) +>foo3 : () => void foo4(); >foo4() : void ->foo4 : () => void, Symbol(foo4, Decl(es6ModuleFunctionDeclaration.ts, 19, 5)) +>foo4 : () => void m1.foo3(); >m1.foo3() : void ->m1.foo3 : () => void, Symbol(m1.foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleFunctionDeclaration.ts, 5, 7)) ->foo3 : () => void, Symbol(m1.foo3, Decl(es6ModuleFunctionDeclaration.ts, 7, 18)) +>m1.foo3 : () => void +>m1 : typeof m1 +>foo3 : () => void } diff --git a/tests/baselines/reference/es6ModuleInternalImport.symbols b/tests/baselines/reference/es6ModuleInternalImport.symbols new file mode 100644 index 0000000000000..146549d57670e --- /dev/null +++ b/tests/baselines/reference/es6ModuleInternalImport.symbols @@ -0,0 +1,77 @@ +=== tests/cases/compiler/es6ModuleInternalImport.ts === +export module m { +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) + + export var a = 10; +>a : Symbol(a, Decl(es6ModuleInternalImport.ts, 1, 14)) +} +export import a1 = m.a; +>a1 : Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>a : Symbol(a2, Decl(es6ModuleInternalImport.ts, 1, 14)) + +import a2 = m.a; +>a2 : Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>a : Symbol(a2, Decl(es6ModuleInternalImport.ts, 1, 14)) + +var x = a1 + a2; +>x : Symbol(x, Decl(es6ModuleInternalImport.ts, 5, 3)) +>a1 : Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) +>a2 : Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleInternalImport.ts, 5, 16)) + + export import a3 = m.a; +>a3 : Symbol(a3, Decl(es6ModuleInternalImport.ts, 6, 18)) +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>a : Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) + + import a4 = m.a; +>a4 : Symbol(a4, Decl(es6ModuleInternalImport.ts, 7, 27)) +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>a : Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) + + var x = a1 + a2; +>x : Symbol(x, Decl(es6ModuleInternalImport.ts, 9, 7)) +>a1 : Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) +>a2 : Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) + + var x2 = a3 + a4; +>x2 : Symbol(x2, Decl(es6ModuleInternalImport.ts, 10, 7)) +>a3 : Symbol(a3, Decl(es6ModuleInternalImport.ts, 6, 18)) +>a4 : Symbol(a4, Decl(es6ModuleInternalImport.ts, 7, 27)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleInternalImport.ts, 11, 1)) + + export import a3 = m.a; +>a3 : Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>a : Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) + + import a4 = m.a; +>a4 : Symbol(a4, Decl(es6ModuleInternalImport.ts, 13, 27)) +>m : Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>a : Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) + + var x = a1 + a2; +>x : Symbol(x, Decl(es6ModuleInternalImport.ts, 15, 7)) +>a1 : Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) +>a2 : Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) + + var x2 = a3 + a4; +>x2 : Symbol(x2, Decl(es6ModuleInternalImport.ts, 16, 7)) +>a3 : Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) +>a4 : Symbol(a4, Decl(es6ModuleInternalImport.ts, 13, 27)) + + var x4 = m1.a3 + m2.a3; +>x4 : Symbol(x4, Decl(es6ModuleInternalImport.ts, 17, 7)) +>m1.a3 : Symbol(m1.a3, Decl(es6ModuleInternalImport.ts, 6, 18)) +>m1 : Symbol(m1, Decl(es6ModuleInternalImport.ts, 5, 16)) +>a3 : Symbol(m1.a3, Decl(es6ModuleInternalImport.ts, 6, 18)) +>m2.a3 : Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) +>m2 : Symbol(m2, Decl(es6ModuleInternalImport.ts, 11, 1)) +>a3 : Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) +} diff --git a/tests/baselines/reference/es6ModuleInternalImport.types b/tests/baselines/reference/es6ModuleInternalImport.types index 6190df165a2f2..5d7fd527afd31 100644 --- a/tests/baselines/reference/es6ModuleInternalImport.types +++ b/tests/baselines/reference/es6ModuleInternalImport.types @@ -1,84 +1,84 @@ === tests/cases/compiler/es6ModuleInternalImport.ts === export module m { ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) +>m : typeof m export var a = 10; ->a : number, Symbol(a, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a : number >10 : number } export import a1 = m.a; ->a1 : number, Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) ->a : number, Symbol(a2, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a1 : number +>m : typeof m +>a : number import a2 = m.a; ->a2 : number, Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) ->a : number, Symbol(a2, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a2 : number +>m : typeof m +>a : number var x = a1 + a2; ->x : number, Symbol(x, Decl(es6ModuleInternalImport.ts, 5, 3)) +>x : number >a1 + a2 : number ->a1 : number, Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) ->a2 : number, Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) +>a1 : number +>a2 : number export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleInternalImport.ts, 5, 16)) +>m1 : typeof m1 export import a3 = m.a; ->a3 : number, Symbol(a3, Decl(es6ModuleInternalImport.ts, 6, 18)) ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) ->a : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a3 : number +>m : typeof m +>a : number import a4 = m.a; ->a4 : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 7, 27)) ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) ->a : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a4 : number +>m : typeof m +>a : number var x = a1 + a2; ->x : number, Symbol(x, Decl(es6ModuleInternalImport.ts, 9, 7)) +>x : number >a1 + a2 : number ->a1 : number, Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) ->a2 : number, Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) +>a1 : number +>a2 : number var x2 = a3 + a4; ->x2 : number, Symbol(x2, Decl(es6ModuleInternalImport.ts, 10, 7)) +>x2 : number >a3 + a4 : number ->a3 : number, Symbol(a3, Decl(es6ModuleInternalImport.ts, 6, 18)) ->a4 : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 7, 27)) +>a3 : number +>a4 : number } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleInternalImport.ts, 11, 1)) +>m2 : typeof m2 export import a3 = m.a; ->a3 : number, Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) ->a : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a3 : number +>m : typeof m +>a : number import a4 = m.a; ->a4 : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 13, 27)) ->m : typeof m, Symbol(m, Decl(es6ModuleInternalImport.ts, 0, 0)) ->a : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 1, 14)) +>a4 : number +>m : typeof m +>a : number var x = a1 + a2; ->x : number, Symbol(x, Decl(es6ModuleInternalImport.ts, 15, 7)) +>x : number >a1 + a2 : number ->a1 : number, Symbol(a1, Decl(es6ModuleInternalImport.ts, 2, 1)) ->a2 : number, Symbol(a2, Decl(es6ModuleInternalImport.ts, 3, 23)) +>a1 : number +>a2 : number var x2 = a3 + a4; ->x2 : number, Symbol(x2, Decl(es6ModuleInternalImport.ts, 16, 7)) +>x2 : number >a3 + a4 : number ->a3 : number, Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) ->a4 : number, Symbol(a4, Decl(es6ModuleInternalImport.ts, 13, 27)) +>a3 : number +>a4 : number var x4 = m1.a3 + m2.a3; ->x4 : number, Symbol(x4, Decl(es6ModuleInternalImport.ts, 17, 7)) +>x4 : number >m1.a3 + m2.a3 : number ->m1.a3 : number, Symbol(m1.a3, Decl(es6ModuleInternalImport.ts, 6, 18)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleInternalImport.ts, 5, 16)) ->a3 : number, Symbol(m1.a3, Decl(es6ModuleInternalImport.ts, 6, 18)) ->m2.a3 : number, Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleInternalImport.ts, 11, 1)) ->a3 : number, Symbol(a3, Decl(es6ModuleInternalImport.ts, 12, 11)) +>m1.a3 : number +>m1 : typeof m1 +>a3 : number +>m2.a3 : number +>m2 : typeof m2 +>a3 : number } diff --git a/tests/baselines/reference/es6ModuleLet.symbols b/tests/baselines/reference/es6ModuleLet.symbols new file mode 100644 index 0000000000000..f81f128e85043 --- /dev/null +++ b/tests/baselines/reference/es6ModuleLet.symbols @@ -0,0 +1,70 @@ +=== tests/cases/compiler/es6ModuleLet.ts === +export let a = "hello"; +>a : Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) + +export let x: string = a, y = x; +>x : Symbol(x, Decl(es6ModuleLet.ts, 1, 10)) +>a : Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) +>y : Symbol(y, Decl(es6ModuleLet.ts, 1, 25)) +>x : Symbol(x, Decl(es6ModuleLet.ts, 1, 10)) + +let b = y; +>b : Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) +>y : Symbol(y, Decl(es6ModuleLet.ts, 1, 25)) + +let c: string = b, d = c; +>c : Symbol(c, Decl(es6ModuleLet.ts, 3, 3)) +>b : Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) +>d : Symbol(d, Decl(es6ModuleLet.ts, 3, 18)) +>c : Symbol(c, Decl(es6ModuleLet.ts, 3, 3)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleLet.ts, 3, 25)) + + export let k = a; +>k : Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) +>a : Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) + + export let l: string = b, m = k; +>l : Symbol(l, Decl(es6ModuleLet.ts, 6, 14)) +>b : Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) +>m : Symbol(m, Decl(es6ModuleLet.ts, 6, 29)) +>k : Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) + + let n = m1.k; +>n : Symbol(n, Decl(es6ModuleLet.ts, 7, 7)) +>m1.k : Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) +>m1 : Symbol(m1, Decl(es6ModuleLet.ts, 3, 25)) +>k : Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) + + let o: string = n, p = k; +>o : Symbol(o, Decl(es6ModuleLet.ts, 8, 7)) +>n : Symbol(n, Decl(es6ModuleLet.ts, 7, 7)) +>p : Symbol(p, Decl(es6ModuleLet.ts, 8, 22)) +>k : Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleLet.ts, 9, 1)) + + export let k = a; +>k : Symbol(k, Decl(es6ModuleLet.ts, 11, 14)) +>a : Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) + + export let l: string = b, m = k; +>l : Symbol(l, Decl(es6ModuleLet.ts, 12, 14)) +>b : Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) +>m : Symbol(m, Decl(es6ModuleLet.ts, 12, 29)) +>k : Symbol(k, Decl(es6ModuleLet.ts, 11, 14)) + + let n = m1.k; +>n : Symbol(n, Decl(es6ModuleLet.ts, 13, 7)) +>m1.k : Symbol(m1.k, Decl(es6ModuleLet.ts, 5, 14)) +>m1 : Symbol(m1, Decl(es6ModuleLet.ts, 3, 25)) +>k : Symbol(m1.k, Decl(es6ModuleLet.ts, 5, 14)) + + let o: string = n, p = k; +>o : Symbol(o, Decl(es6ModuleLet.ts, 14, 7)) +>n : Symbol(n, Decl(es6ModuleLet.ts, 13, 7)) +>p : Symbol(p, Decl(es6ModuleLet.ts, 14, 22)) +>k : Symbol(k, Decl(es6ModuleLet.ts, 11, 14)) +} diff --git a/tests/baselines/reference/es6ModuleLet.types b/tests/baselines/reference/es6ModuleLet.types index 47492576ce686..9e670c0a1e17b 100644 --- a/tests/baselines/reference/es6ModuleLet.types +++ b/tests/baselines/reference/es6ModuleLet.types @@ -1,71 +1,71 @@ === tests/cases/compiler/es6ModuleLet.ts === export let a = "hello"; ->a : string, Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) +>a : string >"hello" : string export let x: string = a, y = x; ->x : string, Symbol(x, Decl(es6ModuleLet.ts, 1, 10)) ->a : string, Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) ->y : string, Symbol(y, Decl(es6ModuleLet.ts, 1, 25)) ->x : string, Symbol(x, Decl(es6ModuleLet.ts, 1, 10)) +>x : string +>a : string +>y : string +>x : string let b = y; ->b : string, Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) ->y : string, Symbol(y, Decl(es6ModuleLet.ts, 1, 25)) +>b : string +>y : string let c: string = b, d = c; ->c : string, Symbol(c, Decl(es6ModuleLet.ts, 3, 3)) ->b : string, Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) ->d : string, Symbol(d, Decl(es6ModuleLet.ts, 3, 18)) ->c : string, Symbol(c, Decl(es6ModuleLet.ts, 3, 3)) +>c : string +>b : string +>d : string +>c : string export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleLet.ts, 3, 25)) +>m1 : typeof m1 export let k = a; ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) ->a : string, Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) +>k : string +>a : string export let l: string = b, m = k; ->l : string, Symbol(l, Decl(es6ModuleLet.ts, 6, 14)) ->b : string, Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) ->m : string, Symbol(m, Decl(es6ModuleLet.ts, 6, 29)) ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) +>l : string +>b : string +>m : string +>k : string let n = m1.k; ->n : string, Symbol(n, Decl(es6ModuleLet.ts, 7, 7)) ->m1.k : string, Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleLet.ts, 3, 25)) ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) +>n : string +>m1.k : string +>m1 : typeof m1 +>k : string let o: string = n, p = k; ->o : string, Symbol(o, Decl(es6ModuleLet.ts, 8, 7)) ->n : string, Symbol(n, Decl(es6ModuleLet.ts, 7, 7)) ->p : string, Symbol(p, Decl(es6ModuleLet.ts, 8, 22)) ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 5, 14)) +>o : string +>n : string +>p : string +>k : string } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleLet.ts, 9, 1)) +>m2 : typeof m2 export let k = a; ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 11, 14)) ->a : string, Symbol(a, Decl(es6ModuleLet.ts, 0, 10)) +>k : string +>a : string export let l: string = b, m = k; ->l : string, Symbol(l, Decl(es6ModuleLet.ts, 12, 14)) ->b : string, Symbol(b, Decl(es6ModuleLet.ts, 2, 3)) ->m : string, Symbol(m, Decl(es6ModuleLet.ts, 12, 29)) ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 11, 14)) +>l : string +>b : string +>m : string +>k : string let n = m1.k; ->n : string, Symbol(n, Decl(es6ModuleLet.ts, 13, 7)) ->m1.k : string, Symbol(m1.k, Decl(es6ModuleLet.ts, 5, 14)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleLet.ts, 3, 25)) ->k : string, Symbol(m1.k, Decl(es6ModuleLet.ts, 5, 14)) +>n : string +>m1.k : string +>m1 : typeof m1 +>k : string let o: string = n, p = k; ->o : string, Symbol(o, Decl(es6ModuleLet.ts, 14, 7)) ->n : string, Symbol(n, Decl(es6ModuleLet.ts, 13, 7)) ->p : string, Symbol(p, Decl(es6ModuleLet.ts, 14, 22)) ->k : string, Symbol(k, Decl(es6ModuleLet.ts, 11, 14)) +>o : string +>n : string +>p : string +>k : string } diff --git a/tests/baselines/reference/es6ModuleModuleDeclaration.symbols b/tests/baselines/reference/es6ModuleModuleDeclaration.symbols new file mode 100644 index 0000000000000..9fb3cbb252490 --- /dev/null +++ b/tests/baselines/reference/es6ModuleModuleDeclaration.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/es6ModuleModuleDeclaration.ts === +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleModuleDeclaration.ts, 0, 0)) + + export var a = 10; +>a : Symbol(a, Decl(es6ModuleModuleDeclaration.ts, 1, 14)) + + var b = 10; +>b : Symbol(b, Decl(es6ModuleModuleDeclaration.ts, 2, 7)) + + export module innerExportedModule { +>innerExportedModule : Symbol(innerExportedModule, Decl(es6ModuleModuleDeclaration.ts, 2, 15)) + + export var k = 10; +>k : Symbol(k, Decl(es6ModuleModuleDeclaration.ts, 4, 18)) + + var l = 10; +>l : Symbol(l, Decl(es6ModuleModuleDeclaration.ts, 5, 11)) + } + export module innerNonExportedModule { +>innerNonExportedModule : Symbol(innerNonExportedModule, Decl(es6ModuleModuleDeclaration.ts, 6, 5)) + + export var x = 10; +>x : Symbol(x, Decl(es6ModuleModuleDeclaration.ts, 8, 18)) + + var y = 10; +>y : Symbol(y, Decl(es6ModuleModuleDeclaration.ts, 9, 11)) + } +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleModuleDeclaration.ts, 11, 1)) + + export var a = 10; +>a : Symbol(a, Decl(es6ModuleModuleDeclaration.ts, 13, 14)) + + var b = 10; +>b : Symbol(b, Decl(es6ModuleModuleDeclaration.ts, 14, 7)) + + export module innerExportedModule { +>innerExportedModule : Symbol(innerExportedModule, Decl(es6ModuleModuleDeclaration.ts, 14, 15)) + + export var k = 10; +>k : Symbol(k, Decl(es6ModuleModuleDeclaration.ts, 16, 18)) + + var l = 10; +>l : Symbol(l, Decl(es6ModuleModuleDeclaration.ts, 17, 11)) + } + export module innerNonExportedModule { +>innerNonExportedModule : Symbol(innerNonExportedModule, Decl(es6ModuleModuleDeclaration.ts, 18, 5)) + + export var x = 10; +>x : Symbol(x, Decl(es6ModuleModuleDeclaration.ts, 20, 18)) + + var y = 10; +>y : Symbol(y, Decl(es6ModuleModuleDeclaration.ts, 21, 11)) + } +} diff --git a/tests/baselines/reference/es6ModuleModuleDeclaration.types b/tests/baselines/reference/es6ModuleModuleDeclaration.types index 781b13fd9b4a7..6fb5a7c98f5cd 100644 --- a/tests/baselines/reference/es6ModuleModuleDeclaration.types +++ b/tests/baselines/reference/es6ModuleModuleDeclaration.types @@ -1,69 +1,69 @@ === tests/cases/compiler/es6ModuleModuleDeclaration.ts === export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleModuleDeclaration.ts, 0, 0)) +>m1 : typeof m1 export var a = 10; ->a : number, Symbol(a, Decl(es6ModuleModuleDeclaration.ts, 1, 14)) +>a : number >10 : number var b = 10; ->b : number, Symbol(b, Decl(es6ModuleModuleDeclaration.ts, 2, 7)) +>b : number >10 : number export module innerExportedModule { ->innerExportedModule : typeof innerExportedModule, Symbol(innerExportedModule, Decl(es6ModuleModuleDeclaration.ts, 2, 15)) +>innerExportedModule : typeof innerExportedModule export var k = 10; ->k : number, Symbol(k, Decl(es6ModuleModuleDeclaration.ts, 4, 18)) +>k : number >10 : number var l = 10; ->l : number, Symbol(l, Decl(es6ModuleModuleDeclaration.ts, 5, 11)) +>l : number >10 : number } export module innerNonExportedModule { ->innerNonExportedModule : typeof innerNonExportedModule, Symbol(innerNonExportedModule, Decl(es6ModuleModuleDeclaration.ts, 6, 5)) +>innerNonExportedModule : typeof innerNonExportedModule export var x = 10; ->x : number, Symbol(x, Decl(es6ModuleModuleDeclaration.ts, 8, 18)) +>x : number >10 : number var y = 10; ->y : number, Symbol(y, Decl(es6ModuleModuleDeclaration.ts, 9, 11)) +>y : number >10 : number } } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleModuleDeclaration.ts, 11, 1)) +>m2 : typeof m2 export var a = 10; ->a : number, Symbol(a, Decl(es6ModuleModuleDeclaration.ts, 13, 14)) +>a : number >10 : number var b = 10; ->b : number, Symbol(b, Decl(es6ModuleModuleDeclaration.ts, 14, 7)) +>b : number >10 : number export module innerExportedModule { ->innerExportedModule : typeof innerExportedModule, Symbol(innerExportedModule, Decl(es6ModuleModuleDeclaration.ts, 14, 15)) +>innerExportedModule : typeof innerExportedModule export var k = 10; ->k : number, Symbol(k, Decl(es6ModuleModuleDeclaration.ts, 16, 18)) +>k : number >10 : number var l = 10; ->l : number, Symbol(l, Decl(es6ModuleModuleDeclaration.ts, 17, 11)) +>l : number >10 : number } export module innerNonExportedModule { ->innerNonExportedModule : typeof innerNonExportedModule, Symbol(innerNonExportedModule, Decl(es6ModuleModuleDeclaration.ts, 18, 5)) +>innerNonExportedModule : typeof innerNonExportedModule export var x = 10; ->x : number, Symbol(x, Decl(es6ModuleModuleDeclaration.ts, 20, 18)) +>x : number >10 : number var y = 10; ->y : number, Symbol(y, Decl(es6ModuleModuleDeclaration.ts, 21, 11)) +>y : number >10 : number } } diff --git a/tests/baselines/reference/es6ModuleVariableStatement.symbols b/tests/baselines/reference/es6ModuleVariableStatement.symbols new file mode 100644 index 0000000000000..744dd580ba4dd --- /dev/null +++ b/tests/baselines/reference/es6ModuleVariableStatement.symbols @@ -0,0 +1,70 @@ +=== tests/cases/compiler/es6ModuleVariableStatement.ts === +export var a = "hello"; +>a : Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) + +export var x: string = a, y = x; +>x : Symbol(x, Decl(es6ModuleVariableStatement.ts, 1, 10)) +>a : Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) +>y : Symbol(y, Decl(es6ModuleVariableStatement.ts, 1, 25)) +>x : Symbol(x, Decl(es6ModuleVariableStatement.ts, 1, 10)) + +var b = y; +>b : Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) +>y : Symbol(y, Decl(es6ModuleVariableStatement.ts, 1, 25)) + +var c: string = b, d = c; +>c : Symbol(c, Decl(es6ModuleVariableStatement.ts, 3, 3)) +>b : Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) +>d : Symbol(d, Decl(es6ModuleVariableStatement.ts, 3, 18)) +>c : Symbol(c, Decl(es6ModuleVariableStatement.ts, 3, 3)) + +export module m1 { +>m1 : Symbol(m1, Decl(es6ModuleVariableStatement.ts, 3, 25)) + + export var k = a; +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>a : Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) + + export var l: string = b, m = k; +>l : Symbol(l, Decl(es6ModuleVariableStatement.ts, 6, 14)) +>b : Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) +>m : Symbol(m, Decl(es6ModuleVariableStatement.ts, 6, 29)) +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) + + var n = m1.k; +>n : Symbol(n, Decl(es6ModuleVariableStatement.ts, 7, 7)) +>m1.k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>m1 : Symbol(m1, Decl(es6ModuleVariableStatement.ts, 3, 25)) +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) + + var o: string = n, p = k; +>o : Symbol(o, Decl(es6ModuleVariableStatement.ts, 8, 7)) +>n : Symbol(n, Decl(es6ModuleVariableStatement.ts, 7, 7)) +>p : Symbol(p, Decl(es6ModuleVariableStatement.ts, 8, 22)) +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +} +module m2 { +>m2 : Symbol(m2, Decl(es6ModuleVariableStatement.ts, 9, 1)) + + export var k = a; +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 11, 14)) +>a : Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) + + export var l: string = b, m = k; +>l : Symbol(l, Decl(es6ModuleVariableStatement.ts, 12, 14)) +>b : Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) +>m : Symbol(m, Decl(es6ModuleVariableStatement.ts, 12, 29)) +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 11, 14)) + + var n = m1.k; +>n : Symbol(n, Decl(es6ModuleVariableStatement.ts, 13, 7)) +>m1.k : Symbol(m1.k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>m1 : Symbol(m1, Decl(es6ModuleVariableStatement.ts, 3, 25)) +>k : Symbol(m1.k, Decl(es6ModuleVariableStatement.ts, 5, 14)) + + var o: string = n, p = k; +>o : Symbol(o, Decl(es6ModuleVariableStatement.ts, 14, 7)) +>n : Symbol(n, Decl(es6ModuleVariableStatement.ts, 13, 7)) +>p : Symbol(p, Decl(es6ModuleVariableStatement.ts, 14, 22)) +>k : Symbol(k, Decl(es6ModuleVariableStatement.ts, 11, 14)) +} diff --git a/tests/baselines/reference/es6ModuleVariableStatement.types b/tests/baselines/reference/es6ModuleVariableStatement.types index 4c63bd32e495b..520430199e4d7 100644 --- a/tests/baselines/reference/es6ModuleVariableStatement.types +++ b/tests/baselines/reference/es6ModuleVariableStatement.types @@ -1,71 +1,71 @@ === tests/cases/compiler/es6ModuleVariableStatement.ts === export var a = "hello"; ->a : string, Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) +>a : string >"hello" : string export var x: string = a, y = x; ->x : string, Symbol(x, Decl(es6ModuleVariableStatement.ts, 1, 10)) ->a : string, Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) ->y : string, Symbol(y, Decl(es6ModuleVariableStatement.ts, 1, 25)) ->x : string, Symbol(x, Decl(es6ModuleVariableStatement.ts, 1, 10)) +>x : string +>a : string +>y : string +>x : string var b = y; ->b : string, Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) ->y : string, Symbol(y, Decl(es6ModuleVariableStatement.ts, 1, 25)) +>b : string +>y : string var c: string = b, d = c; ->c : string, Symbol(c, Decl(es6ModuleVariableStatement.ts, 3, 3)) ->b : string, Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) ->d : string, Symbol(d, Decl(es6ModuleVariableStatement.ts, 3, 18)) ->c : string, Symbol(c, Decl(es6ModuleVariableStatement.ts, 3, 3)) +>c : string +>b : string +>d : string +>c : string export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleVariableStatement.ts, 3, 25)) +>m1 : typeof m1 export var k = a; ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) ->a : string, Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) +>k : string +>a : string export var l: string = b, m = k; ->l : string, Symbol(l, Decl(es6ModuleVariableStatement.ts, 6, 14)) ->b : string, Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) ->m : string, Symbol(m, Decl(es6ModuleVariableStatement.ts, 6, 29)) ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>l : string +>b : string +>m : string +>k : string var n = m1.k; ->n : string, Symbol(n, Decl(es6ModuleVariableStatement.ts, 7, 7)) ->m1.k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleVariableStatement.ts, 3, 25)) ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>n : string +>m1.k : string +>m1 : typeof m1 +>k : string var o: string = n, p = k; ->o : string, Symbol(o, Decl(es6ModuleVariableStatement.ts, 8, 7)) ->n : string, Symbol(n, Decl(es6ModuleVariableStatement.ts, 7, 7)) ->p : string, Symbol(p, Decl(es6ModuleVariableStatement.ts, 8, 22)) ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>o : string +>n : string +>p : string +>k : string } module m2 { ->m2 : typeof m2, Symbol(m2, Decl(es6ModuleVariableStatement.ts, 9, 1)) +>m2 : typeof m2 export var k = a; ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 11, 14)) ->a : string, Symbol(a, Decl(es6ModuleVariableStatement.ts, 0, 10)) +>k : string +>a : string export var l: string = b, m = k; ->l : string, Symbol(l, Decl(es6ModuleVariableStatement.ts, 12, 14)) ->b : string, Symbol(b, Decl(es6ModuleVariableStatement.ts, 2, 3)) ->m : string, Symbol(m, Decl(es6ModuleVariableStatement.ts, 12, 29)) ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 11, 14)) +>l : string +>b : string +>m : string +>k : string var n = m1.k; ->n : string, Symbol(n, Decl(es6ModuleVariableStatement.ts, 13, 7)) ->m1.k : string, Symbol(m1.k, Decl(es6ModuleVariableStatement.ts, 5, 14)) ->m1 : typeof m1, Symbol(m1, Decl(es6ModuleVariableStatement.ts, 3, 25)) ->k : string, Symbol(m1.k, Decl(es6ModuleVariableStatement.ts, 5, 14)) +>n : string +>m1.k : string +>m1 : typeof m1 +>k : string var o: string = n, p = k; ->o : string, Symbol(o, Decl(es6ModuleVariableStatement.ts, 14, 7)) ->n : string, Symbol(n, Decl(es6ModuleVariableStatement.ts, 13, 7)) ->p : string, Symbol(p, Decl(es6ModuleVariableStatement.ts, 14, 22)) ->k : string, Symbol(k, Decl(es6ModuleVariableStatement.ts, 11, 14)) +>o : string +>n : string +>p : string +>k : string } diff --git a/tests/baselines/reference/escapedIdentifiers.symbols b/tests/baselines/reference/escapedIdentifiers.symbols new file mode 100644 index 0000000000000..6c84b25647f6a --- /dev/null +++ b/tests/baselines/reference/escapedIdentifiers.symbols @@ -0,0 +1,260 @@ +=== tests/cases/compiler/escapedIdentifiers.ts === +/* + 0 .. \u0030 + 9 .. \u0039 + + A .. \u0041 + Z .. \u005a + + a .. \u0061 + z .. \u00za +*/ + +// var decl +var \u0061 = 1; +>\u0061 : Symbol(\u0061, Decl(escapedIdentifiers.ts, 12, 3)) + +a ++; +>a : Symbol(\u0061, Decl(escapedIdentifiers.ts, 12, 3)) + +\u0061 ++; +>\u0061 : Symbol(\u0061, Decl(escapedIdentifiers.ts, 12, 3)) + +var b = 1; +>b : Symbol(b, Decl(escapedIdentifiers.ts, 16, 3)) + +b ++; +>b : Symbol(b, Decl(escapedIdentifiers.ts, 16, 3)) + +\u0062 ++; +>\u0062 : Symbol(b, Decl(escapedIdentifiers.ts, 16, 3)) + +// modules +module moduleType1 { +>moduleType1 : Symbol(moduleType1, Decl(escapedIdentifiers.ts, 18, 10)) + + export var baz1: number; +>baz1 : Symbol(baz1, Decl(escapedIdentifiers.ts, 22, 14)) +} +module moduleType\u0032 { +>moduleType\u0032 : Symbol(moduleType\u0032, Decl(escapedIdentifiers.ts, 23, 1)) + + export var baz2: number; +>baz2 : Symbol(baz2, Decl(escapedIdentifiers.ts, 25, 14)) +} + +moduleType1.baz1 = 3; +>moduleType1.baz1 : Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) +>moduleType1 : Symbol(moduleType1, Decl(escapedIdentifiers.ts, 18, 10)) +>baz1 : Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) + +moduleType\u0031.baz1 = 3; +>moduleType\u0031.baz1 : Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) +>moduleType\u0031 : Symbol(moduleType1, Decl(escapedIdentifiers.ts, 18, 10)) +>baz1 : Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) + +moduleType2.baz2 = 3; +>moduleType2.baz2 : Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) +>moduleType2 : Symbol(moduleType\u0032, Decl(escapedIdentifiers.ts, 23, 1)) +>baz2 : Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) + +moduleType\u0032.baz2 = 3; +>moduleType\u0032.baz2 : Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) +>moduleType\u0032 : Symbol(moduleType\u0032, Decl(escapedIdentifiers.ts, 23, 1)) +>baz2 : Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) + +// classes + +class classType1 { +>classType1 : Symbol(classType1, Decl(escapedIdentifiers.ts, 31, 26)) + + public foo1: number; +>foo1 : Symbol(foo1, Decl(escapedIdentifiers.ts, 35, 18)) +} +class classType\u0032 { +>classType\u0032 : Symbol(classType\u0032, Decl(escapedIdentifiers.ts, 37, 1)) + + public foo2: number; +>foo2 : Symbol(foo2, Decl(escapedIdentifiers.ts, 38, 23)) +} + +var classType1Object1 = new classType1(); +>classType1Object1 : Symbol(classType1Object1, Decl(escapedIdentifiers.ts, 42, 3)) +>classType1 : Symbol(classType1, Decl(escapedIdentifiers.ts, 31, 26)) + +classType1Object1.foo1 = 2; +>classType1Object1.foo1 : Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) +>classType1Object1 : Symbol(classType1Object1, Decl(escapedIdentifiers.ts, 42, 3)) +>foo1 : Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) + +var classType1Object2 = new classType\u0031(); +>classType1Object2 : Symbol(classType1Object2, Decl(escapedIdentifiers.ts, 44, 3)) +>classType\u0031 : Symbol(classType1, Decl(escapedIdentifiers.ts, 31, 26)) + +classType1Object2.foo1 = 2; +>classType1Object2.foo1 : Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) +>classType1Object2 : Symbol(classType1Object2, Decl(escapedIdentifiers.ts, 44, 3)) +>foo1 : Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) + +var classType2Object1 = new classType2(); +>classType2Object1 : Symbol(classType2Object1, Decl(escapedIdentifiers.ts, 46, 3)) +>classType2 : Symbol(classType\u0032, Decl(escapedIdentifiers.ts, 37, 1)) + +classType2Object1.foo2 = 2; +>classType2Object1.foo2 : Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) +>classType2Object1 : Symbol(classType2Object1, Decl(escapedIdentifiers.ts, 46, 3)) +>foo2 : Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) + +var classType2Object2 = new classType\u0032(); +>classType2Object2 : Symbol(classType2Object2, Decl(escapedIdentifiers.ts, 48, 3)) +>classType\u0032 : Symbol(classType\u0032, Decl(escapedIdentifiers.ts, 37, 1)) + +classType2Object2.foo2 = 2; +>classType2Object2.foo2 : Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) +>classType2Object2 : Symbol(classType2Object2, Decl(escapedIdentifiers.ts, 48, 3)) +>foo2 : Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) + +// interfaces +interface interfaceType1 { +>interfaceType1 : Symbol(interfaceType1, Decl(escapedIdentifiers.ts, 49, 27)) + + bar1: number; +>bar1 : Symbol(bar1, Decl(escapedIdentifiers.ts, 52, 26)) +} +interface interfaceType\u0032 { +>interfaceType\u0032 : Symbol(interfaceType\u0032, Decl(escapedIdentifiers.ts, 54, 1)) + + bar2: number; +>bar2 : Symbol(bar2, Decl(escapedIdentifiers.ts, 55, 31)) +} + +var interfaceType1Object1 = { bar1: 0 }; +>interfaceType1Object1 : Symbol(interfaceType1Object1, Decl(escapedIdentifiers.ts, 59, 3)) +>interfaceType1 : Symbol(interfaceType1, Decl(escapedIdentifiers.ts, 49, 27)) +>bar1 : Symbol(bar1, Decl(escapedIdentifiers.ts, 59, 45)) + +interfaceType1Object1.bar1 = 2; +>interfaceType1Object1.bar1 : Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) +>interfaceType1Object1 : Symbol(interfaceType1Object1, Decl(escapedIdentifiers.ts, 59, 3)) +>bar1 : Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) + +var interfaceType1Object2 = { bar1: 0 }; +>interfaceType1Object2 : Symbol(interfaceType1Object2, Decl(escapedIdentifiers.ts, 61, 3)) +>interfaceType\u0031 : Symbol(interfaceType1, Decl(escapedIdentifiers.ts, 49, 27)) +>bar1 : Symbol(bar1, Decl(escapedIdentifiers.ts, 61, 50)) + +interfaceType1Object2.bar1 = 2; +>interfaceType1Object2.bar1 : Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) +>interfaceType1Object2 : Symbol(interfaceType1Object2, Decl(escapedIdentifiers.ts, 61, 3)) +>bar1 : Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) + +var interfaceType2Object1 = { bar2: 0 }; +>interfaceType2Object1 : Symbol(interfaceType2Object1, Decl(escapedIdentifiers.ts, 63, 3)) +>interfaceType2 : Symbol(interfaceType\u0032, Decl(escapedIdentifiers.ts, 54, 1)) +>bar2 : Symbol(bar2, Decl(escapedIdentifiers.ts, 63, 45)) + +interfaceType2Object1.bar2 = 2; +>interfaceType2Object1.bar2 : Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) +>interfaceType2Object1 : Symbol(interfaceType2Object1, Decl(escapedIdentifiers.ts, 63, 3)) +>bar2 : Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) + +var interfaceType2Object2 = { bar2: 0 }; +>interfaceType2Object2 : Symbol(interfaceType2Object2, Decl(escapedIdentifiers.ts, 65, 3)) +>interfaceType\u0032 : Symbol(interfaceType\u0032, Decl(escapedIdentifiers.ts, 54, 1)) +>bar2 : Symbol(bar2, Decl(escapedIdentifiers.ts, 65, 50)) + +interfaceType2Object2.bar2 = 2; +>interfaceType2Object2.bar2 : Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) +>interfaceType2Object2 : Symbol(interfaceType2Object2, Decl(escapedIdentifiers.ts, 65, 3)) +>bar2 : Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) + + +// arguments +class testClass { +>testClass : Symbol(testClass, Decl(escapedIdentifiers.ts, 66, 31)) + + public func(arg1: number, arg\u0032: string, arg\u0033: boolean, arg4: number) { +>func : Symbol(func, Decl(escapedIdentifiers.ts, 70, 17)) +>arg1 : Symbol(arg1, Decl(escapedIdentifiers.ts, 71, 16)) +>arg\u0032 : Symbol(arg\u0032, Decl(escapedIdentifiers.ts, 71, 29)) +>arg\u0033 : Symbol(arg\u0033, Decl(escapedIdentifiers.ts, 71, 48)) +>arg4 : Symbol(arg4, Decl(escapedIdentifiers.ts, 71, 68)) + + arg\u0031 = 1; +>arg\u0031 : Symbol(arg1, Decl(escapedIdentifiers.ts, 71, 16)) + + arg2 = 'string'; +>arg2 : Symbol(arg\u0032, Decl(escapedIdentifiers.ts, 71, 29)) + + arg\u0033 = true; +>arg\u0033 : Symbol(arg\u0033, Decl(escapedIdentifiers.ts, 71, 48)) + + arg4 = 2; +>arg4 : Symbol(arg4, Decl(escapedIdentifiers.ts, 71, 68)) + } +} + +// constructors +class constructorTestClass { +>constructorTestClass : Symbol(constructorTestClass, Decl(escapedIdentifiers.ts, 77, 1)) + + constructor (public arg1: number,public arg\u0032: string,public arg\u0033: boolean,public arg4: number) { +>arg1 : Symbol(arg1, Decl(escapedIdentifiers.ts, 81, 17)) +>arg\u0032 : Symbol(arg\u0032, Decl(escapedIdentifiers.ts, 81, 37)) +>arg\u0033 : Symbol(arg\u0033, Decl(escapedIdentifiers.ts, 81, 62)) +>arg4 : Symbol(arg4, Decl(escapedIdentifiers.ts, 81, 88)) + } +} +var constructorTestObject = new constructorTestClass(1, 'string', true, 2); +>constructorTestObject : Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) +>constructorTestClass : Symbol(constructorTestClass, Decl(escapedIdentifiers.ts, 77, 1)) + +constructorTestObject.arg\u0031 = 1; +>constructorTestObject.arg\u0031 : Symbol(constructorTestClass.arg1, Decl(escapedIdentifiers.ts, 81, 17)) +>constructorTestObject : Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) +>arg\u0031 : Symbol(constructorTestClass.arg1, Decl(escapedIdentifiers.ts, 81, 17)) + +constructorTestObject.arg2 = 'string'; +>constructorTestObject.arg2 : Symbol(constructorTestClass.arg\u0032, Decl(escapedIdentifiers.ts, 81, 37)) +>constructorTestObject : Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) +>arg2 : Symbol(constructorTestClass.arg\u0032, Decl(escapedIdentifiers.ts, 81, 37)) + +constructorTestObject.arg\u0033 = true; +>constructorTestObject.arg\u0033 : Symbol(constructorTestClass.arg\u0033, Decl(escapedIdentifiers.ts, 81, 62)) +>constructorTestObject : Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) +>arg\u0033 : Symbol(constructorTestClass.arg\u0033, Decl(escapedIdentifiers.ts, 81, 62)) + +constructorTestObject.arg4 = 2; +>constructorTestObject.arg4 : Symbol(constructorTestClass.arg4, Decl(escapedIdentifiers.ts, 81, 88)) +>constructorTestObject : Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) +>arg4 : Symbol(constructorTestClass.arg4, Decl(escapedIdentifiers.ts, 81, 88)) + +// Lables + +l\u0061bel1: + while (false) + { + while(false) + continue label1; // it will go to next iteration of outer loop + } + +label2: + while (false) + { + while(false) + continue l\u0061bel2; // it will go to next iteration of outer loop + } + +label3: + while (false) + { + while(false) + continue label3; // it will go to next iteration of outer loop + } + +l\u0061bel4: + while (false) + { + while(false) + continue l\u0061bel4; // it will go to next iteration of outer loop + } diff --git a/tests/baselines/reference/escapedIdentifiers.types b/tests/baselines/reference/escapedIdentifiers.types index 5b618c9cfa84b..b32d21a48cb5e 100644 --- a/tests/baselines/reference/escapedIdentifiers.types +++ b/tests/baselines/reference/escapedIdentifiers.types @@ -12,257 +12,257 @@ // var decl var \u0061 = 1; ->\u0061 : number, Symbol(\u0061, Decl(escapedIdentifiers.ts, 12, 3)) +>\u0061 : number >1 : number a ++; >a ++ : number ->a : number, Symbol(\u0061, Decl(escapedIdentifiers.ts, 12, 3)) +>a : number \u0061 ++; >\u0061 ++ : number ->\u0061 : number, Symbol(\u0061, Decl(escapedIdentifiers.ts, 12, 3)) +>\u0061 : number var b = 1; ->b : number, Symbol(b, Decl(escapedIdentifiers.ts, 16, 3)) +>b : number >1 : number b ++; >b ++ : number ->b : number, Symbol(b, Decl(escapedIdentifiers.ts, 16, 3)) +>b : number \u0062 ++; >\u0062 ++ : number ->\u0062 : number, Symbol(b, Decl(escapedIdentifiers.ts, 16, 3)) +>\u0062 : number // modules module moduleType1 { ->moduleType1 : typeof moduleType1, Symbol(moduleType1, Decl(escapedIdentifiers.ts, 18, 10)) +>moduleType1 : typeof moduleType1 export var baz1: number; ->baz1 : number, Symbol(baz1, Decl(escapedIdentifiers.ts, 22, 14)) +>baz1 : number } module moduleType\u0032 { ->moduleType\u0032 : typeof moduleType\u0032, Symbol(moduleType\u0032, Decl(escapedIdentifiers.ts, 23, 1)) +>moduleType\u0032 : typeof moduleType\u0032 export var baz2: number; ->baz2 : number, Symbol(baz2, Decl(escapedIdentifiers.ts, 25, 14)) +>baz2 : number } moduleType1.baz1 = 3; >moduleType1.baz1 = 3 : number ->moduleType1.baz1 : number, Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) ->moduleType1 : typeof moduleType1, Symbol(moduleType1, Decl(escapedIdentifiers.ts, 18, 10)) ->baz1 : number, Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) +>moduleType1.baz1 : number +>moduleType1 : typeof moduleType1 +>baz1 : number >3 : number moduleType\u0031.baz1 = 3; >moduleType\u0031.baz1 = 3 : number ->moduleType\u0031.baz1 : number, Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) ->moduleType\u0031 : typeof moduleType1, Symbol(moduleType1, Decl(escapedIdentifiers.ts, 18, 10)) ->baz1 : number, Symbol(moduleType1.baz1, Decl(escapedIdentifiers.ts, 22, 14)) +>moduleType\u0031.baz1 : number +>moduleType\u0031 : typeof moduleType1 +>baz1 : number >3 : number moduleType2.baz2 = 3; >moduleType2.baz2 = 3 : number ->moduleType2.baz2 : number, Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) ->moduleType2 : typeof moduleType\u0032, Symbol(moduleType\u0032, Decl(escapedIdentifiers.ts, 23, 1)) ->baz2 : number, Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) +>moduleType2.baz2 : number +>moduleType2 : typeof moduleType\u0032 +>baz2 : number >3 : number moduleType\u0032.baz2 = 3; >moduleType\u0032.baz2 = 3 : number ->moduleType\u0032.baz2 : number, Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) ->moduleType\u0032 : typeof moduleType\u0032, Symbol(moduleType\u0032, Decl(escapedIdentifiers.ts, 23, 1)) ->baz2 : number, Symbol(moduleType\u0032.baz2, Decl(escapedIdentifiers.ts, 25, 14)) +>moduleType\u0032.baz2 : number +>moduleType\u0032 : typeof moduleType\u0032 +>baz2 : number >3 : number // classes class classType1 { ->classType1 : classType1, Symbol(classType1, Decl(escapedIdentifiers.ts, 31, 26)) +>classType1 : classType1 public foo1: number; ->foo1 : number, Symbol(foo1, Decl(escapedIdentifiers.ts, 35, 18)) +>foo1 : number } class classType\u0032 { ->classType\u0032 : classType\u0032, Symbol(classType\u0032, Decl(escapedIdentifiers.ts, 37, 1)) +>classType\u0032 : classType\u0032 public foo2: number; ->foo2 : number, Symbol(foo2, Decl(escapedIdentifiers.ts, 38, 23)) +>foo2 : number } var classType1Object1 = new classType1(); ->classType1Object1 : classType1, Symbol(classType1Object1, Decl(escapedIdentifiers.ts, 42, 3)) +>classType1Object1 : classType1 >new classType1() : classType1 ->classType1 : typeof classType1, Symbol(classType1, Decl(escapedIdentifiers.ts, 31, 26)) +>classType1 : typeof classType1 classType1Object1.foo1 = 2; >classType1Object1.foo1 = 2 : number ->classType1Object1.foo1 : number, Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) ->classType1Object1 : classType1, Symbol(classType1Object1, Decl(escapedIdentifiers.ts, 42, 3)) ->foo1 : number, Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) +>classType1Object1.foo1 : number +>classType1Object1 : classType1 +>foo1 : number >2 : number var classType1Object2 = new classType\u0031(); ->classType1Object2 : classType1, Symbol(classType1Object2, Decl(escapedIdentifiers.ts, 44, 3)) +>classType1Object2 : classType1 >new classType\u0031() : classType1 ->classType\u0031 : typeof classType1, Symbol(classType1, Decl(escapedIdentifiers.ts, 31, 26)) +>classType\u0031 : typeof classType1 classType1Object2.foo1 = 2; >classType1Object2.foo1 = 2 : number ->classType1Object2.foo1 : number, Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) ->classType1Object2 : classType1, Symbol(classType1Object2, Decl(escapedIdentifiers.ts, 44, 3)) ->foo1 : number, Symbol(classType1.foo1, Decl(escapedIdentifiers.ts, 35, 18)) +>classType1Object2.foo1 : number +>classType1Object2 : classType1 +>foo1 : number >2 : number var classType2Object1 = new classType2(); ->classType2Object1 : classType\u0032, Symbol(classType2Object1, Decl(escapedIdentifiers.ts, 46, 3)) +>classType2Object1 : classType\u0032 >new classType2() : classType\u0032 ->classType2 : typeof classType\u0032, Symbol(classType\u0032, Decl(escapedIdentifiers.ts, 37, 1)) +>classType2 : typeof classType\u0032 classType2Object1.foo2 = 2; >classType2Object1.foo2 = 2 : number ->classType2Object1.foo2 : number, Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) ->classType2Object1 : classType\u0032, Symbol(classType2Object1, Decl(escapedIdentifiers.ts, 46, 3)) ->foo2 : number, Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) +>classType2Object1.foo2 : number +>classType2Object1 : classType\u0032 +>foo2 : number >2 : number var classType2Object2 = new classType\u0032(); ->classType2Object2 : classType\u0032, Symbol(classType2Object2, Decl(escapedIdentifiers.ts, 48, 3)) +>classType2Object2 : classType\u0032 >new classType\u0032() : classType\u0032 ->classType\u0032 : typeof classType\u0032, Symbol(classType\u0032, Decl(escapedIdentifiers.ts, 37, 1)) +>classType\u0032 : typeof classType\u0032 classType2Object2.foo2 = 2; >classType2Object2.foo2 = 2 : number ->classType2Object2.foo2 : number, Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) ->classType2Object2 : classType\u0032, Symbol(classType2Object2, Decl(escapedIdentifiers.ts, 48, 3)) ->foo2 : number, Symbol(classType\u0032.foo2, Decl(escapedIdentifiers.ts, 38, 23)) +>classType2Object2.foo2 : number +>classType2Object2 : classType\u0032 +>foo2 : number >2 : number // interfaces interface interfaceType1 { ->interfaceType1 : interfaceType1, Symbol(interfaceType1, Decl(escapedIdentifiers.ts, 49, 27)) +>interfaceType1 : interfaceType1 bar1: number; ->bar1 : number, Symbol(bar1, Decl(escapedIdentifiers.ts, 52, 26)) +>bar1 : number } interface interfaceType\u0032 { ->interfaceType\u0032 : interfaceType\u0032, Symbol(interfaceType\u0032, Decl(escapedIdentifiers.ts, 54, 1)) +>interfaceType\u0032 : interfaceType\u0032 bar2: number; ->bar2 : number, Symbol(bar2, Decl(escapedIdentifiers.ts, 55, 31)) +>bar2 : number } var interfaceType1Object1 = { bar1: 0 }; ->interfaceType1Object1 : interfaceType1, Symbol(interfaceType1Object1, Decl(escapedIdentifiers.ts, 59, 3)) +>interfaceType1Object1 : interfaceType1 >{ bar1: 0 } : interfaceType1 ->interfaceType1 : interfaceType1, Symbol(interfaceType1, Decl(escapedIdentifiers.ts, 49, 27)) +>interfaceType1 : interfaceType1 >{ bar1: 0 } : { bar1: number; } ->bar1 : number, Symbol(bar1, Decl(escapedIdentifiers.ts, 59, 45)) +>bar1 : number >0 : number interfaceType1Object1.bar1 = 2; >interfaceType1Object1.bar1 = 2 : number ->interfaceType1Object1.bar1 : number, Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) ->interfaceType1Object1 : interfaceType1, Symbol(interfaceType1Object1, Decl(escapedIdentifiers.ts, 59, 3)) ->bar1 : number, Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) +>interfaceType1Object1.bar1 : number +>interfaceType1Object1 : interfaceType1 +>bar1 : number >2 : number var interfaceType1Object2 = { bar1: 0 }; ->interfaceType1Object2 : interfaceType1, Symbol(interfaceType1Object2, Decl(escapedIdentifiers.ts, 61, 3)) +>interfaceType1Object2 : interfaceType1 >{ bar1: 0 } : interfaceType1 ->interfaceType\u0031 : interfaceType1, Symbol(interfaceType1, Decl(escapedIdentifiers.ts, 49, 27)) +>interfaceType\u0031 : interfaceType1 >{ bar1: 0 } : { bar1: number; } ->bar1 : number, Symbol(bar1, Decl(escapedIdentifiers.ts, 61, 50)) +>bar1 : number >0 : number interfaceType1Object2.bar1 = 2; >interfaceType1Object2.bar1 = 2 : number ->interfaceType1Object2.bar1 : number, Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) ->interfaceType1Object2 : interfaceType1, Symbol(interfaceType1Object2, Decl(escapedIdentifiers.ts, 61, 3)) ->bar1 : number, Symbol(interfaceType1.bar1, Decl(escapedIdentifiers.ts, 52, 26)) +>interfaceType1Object2.bar1 : number +>interfaceType1Object2 : interfaceType1 +>bar1 : number >2 : number var interfaceType2Object1 = { bar2: 0 }; ->interfaceType2Object1 : interfaceType\u0032, Symbol(interfaceType2Object1, Decl(escapedIdentifiers.ts, 63, 3)) +>interfaceType2Object1 : interfaceType\u0032 >{ bar2: 0 } : interfaceType\u0032 ->interfaceType2 : interfaceType\u0032, Symbol(interfaceType\u0032, Decl(escapedIdentifiers.ts, 54, 1)) +>interfaceType2 : interfaceType\u0032 >{ bar2: 0 } : { bar2: number; } ->bar2 : number, Symbol(bar2, Decl(escapedIdentifiers.ts, 63, 45)) +>bar2 : number >0 : number interfaceType2Object1.bar2 = 2; >interfaceType2Object1.bar2 = 2 : number ->interfaceType2Object1.bar2 : number, Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) ->interfaceType2Object1 : interfaceType\u0032, Symbol(interfaceType2Object1, Decl(escapedIdentifiers.ts, 63, 3)) ->bar2 : number, Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) +>interfaceType2Object1.bar2 : number +>interfaceType2Object1 : interfaceType\u0032 +>bar2 : number >2 : number var interfaceType2Object2 = { bar2: 0 }; ->interfaceType2Object2 : interfaceType\u0032, Symbol(interfaceType2Object2, Decl(escapedIdentifiers.ts, 65, 3)) +>interfaceType2Object2 : interfaceType\u0032 >{ bar2: 0 } : interfaceType\u0032 ->interfaceType\u0032 : interfaceType\u0032, Symbol(interfaceType\u0032, Decl(escapedIdentifiers.ts, 54, 1)) +>interfaceType\u0032 : interfaceType\u0032 >{ bar2: 0 } : { bar2: number; } ->bar2 : number, Symbol(bar2, Decl(escapedIdentifiers.ts, 65, 50)) +>bar2 : number >0 : number interfaceType2Object2.bar2 = 2; >interfaceType2Object2.bar2 = 2 : number ->interfaceType2Object2.bar2 : number, Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) ->interfaceType2Object2 : interfaceType\u0032, Symbol(interfaceType2Object2, Decl(escapedIdentifiers.ts, 65, 3)) ->bar2 : number, Symbol(interfaceType\u0032.bar2, Decl(escapedIdentifiers.ts, 55, 31)) +>interfaceType2Object2.bar2 : number +>interfaceType2Object2 : interfaceType\u0032 +>bar2 : number >2 : number // arguments class testClass { ->testClass : testClass, Symbol(testClass, Decl(escapedIdentifiers.ts, 66, 31)) +>testClass : testClass public func(arg1: number, arg\u0032: string, arg\u0033: boolean, arg4: number) { ->func : (arg1: number, arg\u0032: string, arg\u0033: boolean, arg4: number) => void, Symbol(func, Decl(escapedIdentifiers.ts, 70, 17)) ->arg1 : number, Symbol(arg1, Decl(escapedIdentifiers.ts, 71, 16)) ->arg\u0032 : string, Symbol(arg\u0032, Decl(escapedIdentifiers.ts, 71, 29)) ->arg\u0033 : boolean, Symbol(arg\u0033, Decl(escapedIdentifiers.ts, 71, 48)) ->arg4 : number, Symbol(arg4, Decl(escapedIdentifiers.ts, 71, 68)) +>func : (arg1: number, arg\u0032: string, arg\u0033: boolean, arg4: number) => void +>arg1 : number +>arg\u0032 : string +>arg\u0033 : boolean +>arg4 : number arg\u0031 = 1; >arg\u0031 = 1 : number ->arg\u0031 : number, Symbol(arg1, Decl(escapedIdentifiers.ts, 71, 16)) +>arg\u0031 : number >1 : number arg2 = 'string'; >arg2 = 'string' : string ->arg2 : string, Symbol(arg\u0032, Decl(escapedIdentifiers.ts, 71, 29)) +>arg2 : string >'string' : string arg\u0033 = true; >arg\u0033 = true : boolean ->arg\u0033 : boolean, Symbol(arg\u0033, Decl(escapedIdentifiers.ts, 71, 48)) +>arg\u0033 : boolean >true : boolean arg4 = 2; >arg4 = 2 : number ->arg4 : number, Symbol(arg4, Decl(escapedIdentifiers.ts, 71, 68)) +>arg4 : number >2 : number } } // constructors class constructorTestClass { ->constructorTestClass : constructorTestClass, Symbol(constructorTestClass, Decl(escapedIdentifiers.ts, 77, 1)) +>constructorTestClass : constructorTestClass constructor (public arg1: number,public arg\u0032: string,public arg\u0033: boolean,public arg4: number) { ->arg1 : number, Symbol(arg1, Decl(escapedIdentifiers.ts, 81, 17)) ->arg\u0032 : string, Symbol(arg\u0032, Decl(escapedIdentifiers.ts, 81, 37)) ->arg\u0033 : boolean, Symbol(arg\u0033, Decl(escapedIdentifiers.ts, 81, 62)) ->arg4 : number, Symbol(arg4, Decl(escapedIdentifiers.ts, 81, 88)) +>arg1 : number +>arg\u0032 : string +>arg\u0033 : boolean +>arg4 : number } } var constructorTestObject = new constructorTestClass(1, 'string', true, 2); ->constructorTestObject : constructorTestClass, Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) +>constructorTestObject : constructorTestClass >new constructorTestClass(1, 'string', true, 2) : constructorTestClass ->constructorTestClass : typeof constructorTestClass, Symbol(constructorTestClass, Decl(escapedIdentifiers.ts, 77, 1)) +>constructorTestClass : typeof constructorTestClass >1 : number >'string' : string >true : boolean @@ -270,30 +270,30 @@ var constructorTestObject = new constructorTestClass(1, 'string', true, 2); constructorTestObject.arg\u0031 = 1; >constructorTestObject.arg\u0031 = 1 : number ->constructorTestObject.arg\u0031 : number, Symbol(constructorTestClass.arg1, Decl(escapedIdentifiers.ts, 81, 17)) ->constructorTestObject : constructorTestClass, Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) ->arg\u0031 : number, Symbol(constructorTestClass.arg1, Decl(escapedIdentifiers.ts, 81, 17)) +>constructorTestObject.arg\u0031 : number +>constructorTestObject : constructorTestClass +>arg\u0031 : number >1 : number constructorTestObject.arg2 = 'string'; >constructorTestObject.arg2 = 'string' : string ->constructorTestObject.arg2 : string, Symbol(constructorTestClass.arg\u0032, Decl(escapedIdentifiers.ts, 81, 37)) ->constructorTestObject : constructorTestClass, Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) ->arg2 : string, Symbol(constructorTestClass.arg\u0032, Decl(escapedIdentifiers.ts, 81, 37)) +>constructorTestObject.arg2 : string +>constructorTestObject : constructorTestClass +>arg2 : string >'string' : string constructorTestObject.arg\u0033 = true; >constructorTestObject.arg\u0033 = true : boolean ->constructorTestObject.arg\u0033 : boolean, Symbol(constructorTestClass.arg\u0033, Decl(escapedIdentifiers.ts, 81, 62)) ->constructorTestObject : constructorTestClass, Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) ->arg\u0033 : boolean, Symbol(constructorTestClass.arg\u0033, Decl(escapedIdentifiers.ts, 81, 62)) +>constructorTestObject.arg\u0033 : boolean +>constructorTestObject : constructorTestClass +>arg\u0033 : boolean >true : boolean constructorTestObject.arg4 = 2; >constructorTestObject.arg4 = 2 : number ->constructorTestObject.arg4 : number, Symbol(constructorTestClass.arg4, Decl(escapedIdentifiers.ts, 81, 88)) ->constructorTestObject : constructorTestClass, Symbol(constructorTestObject, Decl(escapedIdentifiers.ts, 84, 3)) ->arg4 : number, Symbol(constructorTestClass.arg4, Decl(escapedIdentifiers.ts, 81, 88)) +>constructorTestObject.arg4 : number +>constructorTestObject : constructorTestClass +>arg4 : number >2 : number // Lables diff --git a/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.symbols b/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.symbols new file mode 100644 index 0000000000000..b629c5bd8750c --- /dev/null +++ b/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.symbols @@ -0,0 +1,79 @@ +=== tests/cases/compiler/escapedReservedCompilerNamedIdentifier.ts === +// double underscores +var __proto__ = 10; +>__proto__ : Symbol(__proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 1, 3)) + +var o = { +>o : Symbol(o, Decl(escapedReservedCompilerNamedIdentifier.ts, 2, 3)) + + "__proto__": 0 +}; +var b = o["__proto__"]; +>b : Symbol(b, Decl(escapedReservedCompilerNamedIdentifier.ts, 5, 3)) +>o : Symbol(o, Decl(escapedReservedCompilerNamedIdentifier.ts, 2, 3)) +>"__proto__" : Symbol("__proto__", Decl(escapedReservedCompilerNamedIdentifier.ts, 2, 9)) + +var o1 = { +>o1 : Symbol(o1, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 3)) + + __proto__: 0 +>__proto__ : Symbol(__proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 10)) + +}; +var b1 = o1["__proto__"]; +>b1 : Symbol(b1, Decl(escapedReservedCompilerNamedIdentifier.ts, 9, 3)) +>o1 : Symbol(o1, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 3)) +>"__proto__" : Symbol(__proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 10)) + +// Triple underscores +var ___proto__ = 10; +>___proto__ : Symbol(___proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 11, 3)) + +var o2 = { +>o2 : Symbol(o2, Decl(escapedReservedCompilerNamedIdentifier.ts, 12, 3)) + + "___proto__": 0 +}; +var b2 = o2["___proto__"]; +>b2 : Symbol(b2, Decl(escapedReservedCompilerNamedIdentifier.ts, 15, 3)) +>o2 : Symbol(o2, Decl(escapedReservedCompilerNamedIdentifier.ts, 12, 3)) +>"___proto__" : Symbol("___proto__", Decl(escapedReservedCompilerNamedIdentifier.ts, 12, 10)) + +var o3 = { +>o3 : Symbol(o3, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 3)) + + ___proto__: 0 +>___proto__ : Symbol(___proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 10)) + +}; +var b3 = o3["___proto__"]; +>b3 : Symbol(b3, Decl(escapedReservedCompilerNamedIdentifier.ts, 19, 3)) +>o3 : Symbol(o3, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 3)) +>"___proto__" : Symbol(___proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 10)) + +// One underscore +var _proto__ = 10; +>_proto__ : Symbol(_proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 21, 3)) + +var o4 = { +>o4 : Symbol(o4, Decl(escapedReservedCompilerNamedIdentifier.ts, 22, 3)) + + "_proto__": 0 +}; +var b4 = o4["_proto__"]; +>b4 : Symbol(b4, Decl(escapedReservedCompilerNamedIdentifier.ts, 25, 3)) +>o4 : Symbol(o4, Decl(escapedReservedCompilerNamedIdentifier.ts, 22, 3)) +>"_proto__" : Symbol("_proto__", Decl(escapedReservedCompilerNamedIdentifier.ts, 22, 10)) + +var o5 = { +>o5 : Symbol(o5, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 3)) + + _proto__: 0 +>_proto__ : Symbol(_proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 10)) + +}; +var b5 = o5["_proto__"]; +>b5 : Symbol(b5, Decl(escapedReservedCompilerNamedIdentifier.ts, 29, 3)) +>o5 : Symbol(o5, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 3)) +>"_proto__" : Symbol(_proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 10)) + diff --git a/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.types b/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.types index e702ec2df35a4..1ebbf8aedb2b5 100644 --- a/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.types +++ b/tests/baselines/reference/escapedReservedCompilerNamedIdentifier.types @@ -1,11 +1,11 @@ === tests/cases/compiler/escapedReservedCompilerNamedIdentifier.ts === // double underscores var __proto__ = 10; ->__proto__ : number, Symbol(__proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 1, 3)) +>__proto__ : number >10 : number var o = { ->o : { "__proto__": number; }, Symbol(o, Decl(escapedReservedCompilerNamedIdentifier.ts, 2, 3)) +>o : { "__proto__": number; } >{ "__proto__": 0} : { "__proto__": number; } "__proto__": 0 @@ -13,33 +13,33 @@ var o = { }; var b = o["__proto__"]; ->b : number, Symbol(b, Decl(escapedReservedCompilerNamedIdentifier.ts, 5, 3)) +>b : number >o["__proto__"] : number ->o : { "__proto__": number; }, Symbol(o, Decl(escapedReservedCompilerNamedIdentifier.ts, 2, 3)) ->"__proto__" : string, Symbol("__proto__", Decl(escapedReservedCompilerNamedIdentifier.ts, 2, 9)) +>o : { "__proto__": number; } +>"__proto__" : string var o1 = { ->o1 : { __proto__: number; }, Symbol(o1, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 3)) +>o1 : { __proto__: number; } >{ __proto__: 0} : { __proto__: number; } __proto__: 0 ->__proto__ : number, Symbol(__proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 10)) +>__proto__ : number >0 : number }; var b1 = o1["__proto__"]; ->b1 : number, Symbol(b1, Decl(escapedReservedCompilerNamedIdentifier.ts, 9, 3)) +>b1 : number >o1["__proto__"] : number ->o1 : { __proto__: number; }, Symbol(o1, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 3)) ->"__proto__" : string, Symbol(__proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 6, 10)) +>o1 : { __proto__: number; } +>"__proto__" : string // Triple underscores var ___proto__ = 10; ->___proto__ : number, Symbol(___proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 11, 3)) +>___proto__ : number >10 : number var o2 = { ->o2 : { "___proto__": number; }, Symbol(o2, Decl(escapedReservedCompilerNamedIdentifier.ts, 12, 3)) +>o2 : { "___proto__": number; } >{ "___proto__": 0} : { "___proto__": number; } "___proto__": 0 @@ -47,33 +47,33 @@ var o2 = { }; var b2 = o2["___proto__"]; ->b2 : number, Symbol(b2, Decl(escapedReservedCompilerNamedIdentifier.ts, 15, 3)) +>b2 : number >o2["___proto__"] : number ->o2 : { "___proto__": number; }, Symbol(o2, Decl(escapedReservedCompilerNamedIdentifier.ts, 12, 3)) ->"___proto__" : string, Symbol("___proto__", Decl(escapedReservedCompilerNamedIdentifier.ts, 12, 10)) +>o2 : { "___proto__": number; } +>"___proto__" : string var o3 = { ->o3 : { ___proto__: number; }, Symbol(o3, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 3)) +>o3 : { ___proto__: number; } >{ ___proto__: 0} : { ___proto__: number; } ___proto__: 0 ->___proto__ : number, Symbol(___proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 10)) +>___proto__ : number >0 : number }; var b3 = o3["___proto__"]; ->b3 : number, Symbol(b3, Decl(escapedReservedCompilerNamedIdentifier.ts, 19, 3)) +>b3 : number >o3["___proto__"] : number ->o3 : { ___proto__: number; }, Symbol(o3, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 3)) ->"___proto__" : string, Symbol(___proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 16, 10)) +>o3 : { ___proto__: number; } +>"___proto__" : string // One underscore var _proto__ = 10; ->_proto__ : number, Symbol(_proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 21, 3)) +>_proto__ : number >10 : number var o4 = { ->o4 : { "_proto__": number; }, Symbol(o4, Decl(escapedReservedCompilerNamedIdentifier.ts, 22, 3)) +>o4 : { "_proto__": number; } >{ "_proto__": 0} : { "_proto__": number; } "_proto__": 0 @@ -81,23 +81,23 @@ var o4 = { }; var b4 = o4["_proto__"]; ->b4 : number, Symbol(b4, Decl(escapedReservedCompilerNamedIdentifier.ts, 25, 3)) +>b4 : number >o4["_proto__"] : number ->o4 : { "_proto__": number; }, Symbol(o4, Decl(escapedReservedCompilerNamedIdentifier.ts, 22, 3)) ->"_proto__" : string, Symbol("_proto__", Decl(escapedReservedCompilerNamedIdentifier.ts, 22, 10)) +>o4 : { "_proto__": number; } +>"_proto__" : string var o5 = { ->o5 : { _proto__: number; }, Symbol(o5, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 3)) +>o5 : { _proto__: number; } >{ _proto__: 0} : { _proto__: number; } _proto__: 0 ->_proto__ : number, Symbol(_proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 10)) +>_proto__ : number >0 : number }; var b5 = o5["_proto__"]; ->b5 : number, Symbol(b5, Decl(escapedReservedCompilerNamedIdentifier.ts, 29, 3)) +>b5 : number >o5["_proto__"] : number ->o5 : { _proto__: number; }, Symbol(o5, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 3)) ->"_proto__" : string, Symbol(_proto__, Decl(escapedReservedCompilerNamedIdentifier.ts, 26, 10)) +>o5 : { _proto__: number; } +>"_proto__" : string diff --git a/tests/baselines/reference/everyTypeAssignableToAny.symbols b/tests/baselines/reference/everyTypeAssignableToAny.symbols new file mode 100644 index 0000000000000..275a58641d2c8 --- /dev/null +++ b/tests/baselines/reference/everyTypeAssignableToAny.symbols @@ -0,0 +1,193 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts === +var a: any; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) + +class C { +>C : Symbol(C, Decl(everyTypeAssignableToAny.ts, 0, 11)) + + foo: string; +>foo : Symbol(foo, Decl(everyTypeAssignableToAny.ts, 2, 9)) +} +var ac: C; +>ac : Symbol(ac, Decl(everyTypeAssignableToAny.ts, 5, 3)) +>C : Symbol(C, Decl(everyTypeAssignableToAny.ts, 0, 11)) + +interface I { +>I : Symbol(I, Decl(everyTypeAssignableToAny.ts, 5, 10)) + + foo: string; +>foo : Symbol(foo, Decl(everyTypeAssignableToAny.ts, 6, 13)) +} +var ai: I; +>ai : Symbol(ai, Decl(everyTypeAssignableToAny.ts, 9, 3)) +>I : Symbol(I, Decl(everyTypeAssignableToAny.ts, 5, 10)) + +enum E { A } +>E : Symbol(E, Decl(everyTypeAssignableToAny.ts, 9, 10)) +>A : Symbol(E.A, Decl(everyTypeAssignableToAny.ts, 11, 8)) + +var ae: E; +>ae : Symbol(ae, Decl(everyTypeAssignableToAny.ts, 12, 3)) +>E : Symbol(E, Decl(everyTypeAssignableToAny.ts, 9, 10)) + +var b: number; +>b : Symbol(b, Decl(everyTypeAssignableToAny.ts, 14, 3)) + +var c: string; +>c : Symbol(c, Decl(everyTypeAssignableToAny.ts, 15, 3)) + +var d: boolean; +>d : Symbol(d, Decl(everyTypeAssignableToAny.ts, 16, 3)) + +var e: Date; +>e : Symbol(e, Decl(everyTypeAssignableToAny.ts, 17, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var f: any; +>f : Symbol(f, Decl(everyTypeAssignableToAny.ts, 18, 3)) + +var g: void; +>g : Symbol(g, Decl(everyTypeAssignableToAny.ts, 19, 3)) + +var h: Object; +>h : Symbol(h, Decl(everyTypeAssignableToAny.ts, 20, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var i: {}; +>i : Symbol(i, Decl(everyTypeAssignableToAny.ts, 21, 3)) + +var j: () => {}; +>j : Symbol(j, Decl(everyTypeAssignableToAny.ts, 22, 3)) + +var k: Function; +>k : Symbol(k, Decl(everyTypeAssignableToAny.ts, 23, 3)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var l: (x: number) => string; +>l : Symbol(l, Decl(everyTypeAssignableToAny.ts, 24, 3)) +>x : Symbol(x, Decl(everyTypeAssignableToAny.ts, 24, 8)) + +var m: number[]; +>m : Symbol(m, Decl(everyTypeAssignableToAny.ts, 25, 3)) + +var n: { foo: string }; +>n : Symbol(n, Decl(everyTypeAssignableToAny.ts, 26, 3)) +>foo : Symbol(foo, Decl(everyTypeAssignableToAny.ts, 26, 8)) + +var o: (x: T) => T; +>o : Symbol(o, Decl(everyTypeAssignableToAny.ts, 27, 3)) +>T : Symbol(T, Decl(everyTypeAssignableToAny.ts, 27, 8)) +>x : Symbol(x, Decl(everyTypeAssignableToAny.ts, 27, 11)) +>T : Symbol(T, Decl(everyTypeAssignableToAny.ts, 27, 8)) +>T : Symbol(T, Decl(everyTypeAssignableToAny.ts, 27, 8)) + +var p: Number; +>p : Symbol(p, Decl(everyTypeAssignableToAny.ts, 28, 3)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +var q: String; +>q : Symbol(q, Decl(everyTypeAssignableToAny.ts, 29, 3)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +a = b; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>b : Symbol(b, Decl(everyTypeAssignableToAny.ts, 14, 3)) + +a = c; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>c : Symbol(c, Decl(everyTypeAssignableToAny.ts, 15, 3)) + +a = d; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>d : Symbol(d, Decl(everyTypeAssignableToAny.ts, 16, 3)) + +a = e; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>e : Symbol(e, Decl(everyTypeAssignableToAny.ts, 17, 3)) + +a = f; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>f : Symbol(f, Decl(everyTypeAssignableToAny.ts, 18, 3)) + +a = g; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>g : Symbol(g, Decl(everyTypeAssignableToAny.ts, 19, 3)) + +a = h; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>h : Symbol(h, Decl(everyTypeAssignableToAny.ts, 20, 3)) + +a = i; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>i : Symbol(i, Decl(everyTypeAssignableToAny.ts, 21, 3)) + +a = j; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>j : Symbol(j, Decl(everyTypeAssignableToAny.ts, 22, 3)) + +a = k; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>k : Symbol(k, Decl(everyTypeAssignableToAny.ts, 23, 3)) + +a = l; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>l : Symbol(l, Decl(everyTypeAssignableToAny.ts, 24, 3)) + +a = m; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>m : Symbol(m, Decl(everyTypeAssignableToAny.ts, 25, 3)) + +a = o; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>o : Symbol(o, Decl(everyTypeAssignableToAny.ts, 27, 3)) + +a = p; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>p : Symbol(p, Decl(everyTypeAssignableToAny.ts, 28, 3)) + +a = q; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>q : Symbol(q, Decl(everyTypeAssignableToAny.ts, 29, 3)) + +a = ac; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>ac : Symbol(ac, Decl(everyTypeAssignableToAny.ts, 5, 3)) + +a = ai; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>ai : Symbol(ai, Decl(everyTypeAssignableToAny.ts, 9, 3)) + +a = ae; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>ae : Symbol(ae, Decl(everyTypeAssignableToAny.ts, 12, 3)) + +function foo(x: T, y: U, z: V) { +>foo : Symbol(foo, Decl(everyTypeAssignableToAny.ts, 48, 7)) +>T : Symbol(T, Decl(everyTypeAssignableToAny.ts, 50, 13)) +>U : Symbol(U, Decl(everyTypeAssignableToAny.ts, 50, 15)) +>V : Symbol(V, Decl(everyTypeAssignableToAny.ts, 50, 32)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(everyTypeAssignableToAny.ts, 50, 49)) +>T : Symbol(T, Decl(everyTypeAssignableToAny.ts, 50, 13)) +>y : Symbol(y, Decl(everyTypeAssignableToAny.ts, 50, 54)) +>U : Symbol(U, Decl(everyTypeAssignableToAny.ts, 50, 15)) +>z : Symbol(z, Decl(everyTypeAssignableToAny.ts, 50, 60)) +>V : Symbol(V, Decl(everyTypeAssignableToAny.ts, 50, 32)) + + a = x; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>x : Symbol(x, Decl(everyTypeAssignableToAny.ts, 50, 49)) + + a = y; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>y : Symbol(y, Decl(everyTypeAssignableToAny.ts, 50, 54)) + + a = z; +>a : Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>z : Symbol(z, Decl(everyTypeAssignableToAny.ts, 50, 60)) +} +//function foo(x: T, y: U, z: V) { +// a = x; +// a = y; +// a = z; +//} diff --git a/tests/baselines/reference/everyTypeAssignableToAny.types b/tests/baselines/reference/everyTypeAssignableToAny.types index 189122cd2d3ec..89af4f4b7c0ed 100644 --- a/tests/baselines/reference/everyTypeAssignableToAny.types +++ b/tests/baselines/reference/everyTypeAssignableToAny.types @@ -1,211 +1,211 @@ === tests/cases/conformance/types/typeRelationships/assignmentCompatibility/everyTypeAssignableToAny.ts === var a: any; ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) +>a : any class C { ->C : C, Symbol(C, Decl(everyTypeAssignableToAny.ts, 0, 11)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(everyTypeAssignableToAny.ts, 2, 9)) +>foo : string } var ac: C; ->ac : C, Symbol(ac, Decl(everyTypeAssignableToAny.ts, 5, 3)) ->C : C, Symbol(C, Decl(everyTypeAssignableToAny.ts, 0, 11)) +>ac : C +>C : C interface I { ->I : I, Symbol(I, Decl(everyTypeAssignableToAny.ts, 5, 10)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(everyTypeAssignableToAny.ts, 6, 13)) +>foo : string } var ai: I; ->ai : I, Symbol(ai, Decl(everyTypeAssignableToAny.ts, 9, 3)) ->I : I, Symbol(I, Decl(everyTypeAssignableToAny.ts, 5, 10)) +>ai : I +>I : I enum E { A } ->E : E, Symbol(E, Decl(everyTypeAssignableToAny.ts, 9, 10)) ->A : E, Symbol(E.A, Decl(everyTypeAssignableToAny.ts, 11, 8)) +>E : E +>A : E var ae: E; ->ae : E, Symbol(ae, Decl(everyTypeAssignableToAny.ts, 12, 3)) ->E : E, Symbol(E, Decl(everyTypeAssignableToAny.ts, 9, 10)) +>ae : E +>E : E var b: number; ->b : number, Symbol(b, Decl(everyTypeAssignableToAny.ts, 14, 3)) +>b : number var c: string; ->c : string, Symbol(c, Decl(everyTypeAssignableToAny.ts, 15, 3)) +>c : string var d: boolean; ->d : boolean, Symbol(d, Decl(everyTypeAssignableToAny.ts, 16, 3)) +>d : boolean var e: Date; ->e : Date, Symbol(e, Decl(everyTypeAssignableToAny.ts, 17, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>e : Date +>Date : Date var f: any; ->f : any, Symbol(f, Decl(everyTypeAssignableToAny.ts, 18, 3)) +>f : any var g: void; ->g : void, Symbol(g, Decl(everyTypeAssignableToAny.ts, 19, 3)) +>g : void var h: Object; ->h : Object, Symbol(h, Decl(everyTypeAssignableToAny.ts, 20, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>h : Object +>Object : Object var i: {}; ->i : {}, Symbol(i, Decl(everyTypeAssignableToAny.ts, 21, 3)) +>i : {} var j: () => {}; ->j : () => {}, Symbol(j, Decl(everyTypeAssignableToAny.ts, 22, 3)) +>j : () => {} var k: Function; ->k : Function, Symbol(k, Decl(everyTypeAssignableToAny.ts, 23, 3)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>k : Function +>Function : Function var l: (x: number) => string; ->l : (x: number) => string, Symbol(l, Decl(everyTypeAssignableToAny.ts, 24, 3)) ->x : number, Symbol(x, Decl(everyTypeAssignableToAny.ts, 24, 8)) +>l : (x: number) => string +>x : number var m: number[]; ->m : number[], Symbol(m, Decl(everyTypeAssignableToAny.ts, 25, 3)) +>m : number[] var n: { foo: string }; ->n : { foo: string; }, Symbol(n, Decl(everyTypeAssignableToAny.ts, 26, 3)) ->foo : string, Symbol(foo, Decl(everyTypeAssignableToAny.ts, 26, 8)) +>n : { foo: string; } +>foo : string var o: (x: T) => T; ->o : (x: T) => T, Symbol(o, Decl(everyTypeAssignableToAny.ts, 27, 3)) ->T : T, Symbol(T, Decl(everyTypeAssignableToAny.ts, 27, 8)) ->x : T, Symbol(x, Decl(everyTypeAssignableToAny.ts, 27, 11)) ->T : T, Symbol(T, Decl(everyTypeAssignableToAny.ts, 27, 8)) ->T : T, Symbol(T, Decl(everyTypeAssignableToAny.ts, 27, 8)) +>o : (x: T) => T +>T : T +>x : T +>T : T +>T : T var p: Number; ->p : Number, Symbol(p, Decl(everyTypeAssignableToAny.ts, 28, 3)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>p : Number +>Number : Number var q: String; ->q : String, Symbol(q, Decl(everyTypeAssignableToAny.ts, 29, 3)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>q : String +>String : String a = b; >a = b : number ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->b : number, Symbol(b, Decl(everyTypeAssignableToAny.ts, 14, 3)) +>a : any +>b : number a = c; >a = c : string ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->c : string, Symbol(c, Decl(everyTypeAssignableToAny.ts, 15, 3)) +>a : any +>c : string a = d; >a = d : boolean ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->d : boolean, Symbol(d, Decl(everyTypeAssignableToAny.ts, 16, 3)) +>a : any +>d : boolean a = e; >a = e : Date ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->e : Date, Symbol(e, Decl(everyTypeAssignableToAny.ts, 17, 3)) +>a : any +>e : Date a = f; >a = f : any ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->f : any, Symbol(f, Decl(everyTypeAssignableToAny.ts, 18, 3)) +>a : any +>f : any a = g; >a = g : void ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->g : void, Symbol(g, Decl(everyTypeAssignableToAny.ts, 19, 3)) +>a : any +>g : void a = h; >a = h : Object ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->h : Object, Symbol(h, Decl(everyTypeAssignableToAny.ts, 20, 3)) +>a : any +>h : Object a = i; >a = i : {} ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->i : {}, Symbol(i, Decl(everyTypeAssignableToAny.ts, 21, 3)) +>a : any +>i : {} a = j; >a = j : () => {} ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->j : () => {}, Symbol(j, Decl(everyTypeAssignableToAny.ts, 22, 3)) +>a : any +>j : () => {} a = k; >a = k : Function ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->k : Function, Symbol(k, Decl(everyTypeAssignableToAny.ts, 23, 3)) +>a : any +>k : Function a = l; >a = l : (x: number) => string ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->l : (x: number) => string, Symbol(l, Decl(everyTypeAssignableToAny.ts, 24, 3)) +>a : any +>l : (x: number) => string a = m; >a = m : number[] ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->m : number[], Symbol(m, Decl(everyTypeAssignableToAny.ts, 25, 3)) +>a : any +>m : number[] a = o; >a = o : (x: T) => T ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->o : (x: T) => T, Symbol(o, Decl(everyTypeAssignableToAny.ts, 27, 3)) +>a : any +>o : (x: T) => T a = p; >a = p : Number ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->p : Number, Symbol(p, Decl(everyTypeAssignableToAny.ts, 28, 3)) +>a : any +>p : Number a = q; >a = q : String ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->q : String, Symbol(q, Decl(everyTypeAssignableToAny.ts, 29, 3)) +>a : any +>q : String a = ac; >a = ac : C ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->ac : C, Symbol(ac, Decl(everyTypeAssignableToAny.ts, 5, 3)) +>a : any +>ac : C a = ai; >a = ai : I ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->ai : I, Symbol(ai, Decl(everyTypeAssignableToAny.ts, 9, 3)) +>a : any +>ai : I a = ae; >a = ae : E ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->ae : E, Symbol(ae, Decl(everyTypeAssignableToAny.ts, 12, 3)) +>a : any +>ae : E function foo(x: T, y: U, z: V) { ->foo : (x: T, y: U, z: V) => void, Symbol(foo, Decl(everyTypeAssignableToAny.ts, 48, 7)) ->T : T, Symbol(T, Decl(everyTypeAssignableToAny.ts, 50, 13)) ->U : U, Symbol(U, Decl(everyTypeAssignableToAny.ts, 50, 15)) ->V : V, Symbol(V, Decl(everyTypeAssignableToAny.ts, 50, 32)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(everyTypeAssignableToAny.ts, 50, 49)) ->T : T, Symbol(T, Decl(everyTypeAssignableToAny.ts, 50, 13)) ->y : U, Symbol(y, Decl(everyTypeAssignableToAny.ts, 50, 54)) ->U : U, Symbol(U, Decl(everyTypeAssignableToAny.ts, 50, 15)) ->z : V, Symbol(z, Decl(everyTypeAssignableToAny.ts, 50, 60)) ->V : V, Symbol(V, Decl(everyTypeAssignableToAny.ts, 50, 32)) +>foo : (x: T, y: U, z: V) => void +>T : T +>U : U +>V : V +>Date : Date +>x : T +>T : T +>y : U +>U : U +>z : V +>V : V a = x; >a = x : T ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->x : T, Symbol(x, Decl(everyTypeAssignableToAny.ts, 50, 49)) +>a : any +>x : T a = y; >a = y : U ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->y : U, Symbol(y, Decl(everyTypeAssignableToAny.ts, 50, 54)) +>a : any +>y : U a = z; >a = z : V ->a : any, Symbol(a, Decl(everyTypeAssignableToAny.ts, 0, 3)) ->z : V, Symbol(z, Decl(everyTypeAssignableToAny.ts, 50, 60)) +>a : any +>z : V } //function foo(x: T, y: U, z: V) { // a = x; diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.symbols b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.symbols new file mode 100644 index 0000000000000..489903750f5b3 --- /dev/null +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.symbols @@ -0,0 +1,146 @@ +=== tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInitializer.ts === +interface I { +>I : Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 13)) +} + +class C implements I { +>C : Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) +>I : Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 4, 22)) +} + +class D{ +>D : Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>T : Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) + + source: T; +>source : Symbol(source, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 11)) +>T : Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) + + recurse: D; +>recurse : Symbol(recurse, Decl(everyTypeWithAnnotationAndInitializer.ts, 9, 14)) +>D : Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>T : Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) + + wrapped: D> +>wrapped : Symbol(wrapped, Decl(everyTypeWithAnnotationAndInitializer.ts, 10, 18)) +>D : Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>D : Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>T : Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) +} + +function F(x: string): number { return 42; } +>F : Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) +>x : Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 11)) + +module M { +>M : Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) + + export class A { +>A : Symbol(A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) + + name: string; +>name : Symbol(name, Decl(everyTypeWithAnnotationAndInitializer.ts, 17, 20)) + } + + export function F2(x: number): string { return x.toString(); } +>F2 : Symbol(F2, Decl(everyTypeWithAnnotationAndInitializer.ts, 19, 5)) +>x : Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 21, 23)) +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 21, 23)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +} + +var aNumber: number = 9.9; +>aNumber : Symbol(aNumber, Decl(everyTypeWithAnnotationAndInitializer.ts, 24, 3)) + +var aString: string = 'this is a string'; +>aString : Symbol(aString, Decl(everyTypeWithAnnotationAndInitializer.ts, 25, 3)) + +var aDate: Date = new Date(12); +>aDate : Symbol(aDate, Decl(everyTypeWithAnnotationAndInitializer.ts, 26, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var anObject: Object = new Object(); +>anObject : Symbol(anObject, Decl(everyTypeWithAnnotationAndInitializer.ts, 27, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var anAny: any = null; +>anAny : Symbol(anAny, Decl(everyTypeWithAnnotationAndInitializer.ts, 29, 3)) + +var aSecondAny: any = undefined; +>aSecondAny : Symbol(aSecondAny, Decl(everyTypeWithAnnotationAndInitializer.ts, 30, 3)) +>undefined : Symbol(undefined) + +var aVoid: void = undefined; +>aVoid : Symbol(aVoid, Decl(everyTypeWithAnnotationAndInitializer.ts, 31, 3)) +>undefined : Symbol(undefined) + +var anInterface: I = new C(); +>anInterface : Symbol(anInterface, Decl(everyTypeWithAnnotationAndInitializer.ts, 33, 3)) +>I : Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) +>C : Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) + +var aClass: C = new C(); +>aClass : Symbol(aClass, Decl(everyTypeWithAnnotationAndInitializer.ts, 34, 3)) +>C : Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) +>C : Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) + +var aGenericClass: D = new D(); +>aGenericClass : Symbol(aGenericClass, Decl(everyTypeWithAnnotationAndInitializer.ts, 35, 3)) +>D : Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>D : Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) + +var anObjectLiteral: I = { id: 12 }; +>anObjectLiteral : Symbol(anObjectLiteral, Decl(everyTypeWithAnnotationAndInitializer.ts, 36, 3)) +>I : Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) +>id : Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 36, 26)) + +var anOtherObjectLiteral: { id: number } = new C(); +>anOtherObjectLiteral : Symbol(anOtherObjectLiteral, Decl(everyTypeWithAnnotationAndInitializer.ts, 37, 3)) +>id : Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 37, 27)) +>C : Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) + +var aFunction: typeof F = F; +>aFunction : Symbol(aFunction, Decl(everyTypeWithAnnotationAndInitializer.ts, 39, 3)) +>F : Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) +>F : Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) + +var anOtherFunction: (x: string) => number = F; +>anOtherFunction : Symbol(anOtherFunction, Decl(everyTypeWithAnnotationAndInitializer.ts, 40, 3)) +>x : Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 40, 22)) +>F : Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) + +var aLambda: typeof F = (x) => 2; +>aLambda : Symbol(aLambda, Decl(everyTypeWithAnnotationAndInitializer.ts, 41, 3)) +>F : Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) +>x : Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 41, 25)) + +var aModule: typeof M = M; +>aModule : Symbol(aModule, Decl(everyTypeWithAnnotationAndInitializer.ts, 43, 3)) +>M : Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) +>M : Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) + +var aClassInModule: M.A = new M.A(); +>aClassInModule : Symbol(aClassInModule, Decl(everyTypeWithAnnotationAndInitializer.ts, 44, 3)) +>M : Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) +>A : Symbol(M.A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) +>M.A : Symbol(M.A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) +>M : Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) +>A : Symbol(M.A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) + +var aFunctionInModule: typeof M.F2 = (x) => 'this is a string'; +>aFunctionInModule : Symbol(aFunctionInModule, Decl(everyTypeWithAnnotationAndInitializer.ts, 45, 3)) +>M.F2 : Symbol(M.F2, Decl(everyTypeWithAnnotationAndInitializer.ts, 19, 5)) +>M : Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) +>F2 : Symbol(M.F2, Decl(everyTypeWithAnnotationAndInitializer.ts, 19, 5)) +>x : Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 45, 38)) + + diff --git a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types index c8cde54d3914e..0e7059f4eed3c 100644 --- a/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types +++ b/tests/baselines/reference/everyTypeWithAnnotationAndInitializer.types @@ -1,165 +1,165 @@ === tests/cases/conformance/statements/VariableStatements/everyTypeWithAnnotationAndInitializer.ts === interface I { ->I : I, Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) +>I : I id: number; ->id : number, Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 13)) +>id : number } class C implements I { ->C : C, Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) ->I : I, Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) +>C : C +>I : I id: number; ->id : number, Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 4, 22)) +>id : number } class D{ ->D : D, Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) ->T : T, Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) +>D : D +>T : T source: T; ->source : T, Symbol(source, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 11)) ->T : T, Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) +>source : T +>T : T recurse: D; ->recurse : D, Symbol(recurse, Decl(everyTypeWithAnnotationAndInitializer.ts, 9, 14)) ->D : D, Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) ->T : T, Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) +>recurse : D +>D : D +>T : T wrapped: D> ->wrapped : D>, Symbol(wrapped, Decl(everyTypeWithAnnotationAndInitializer.ts, 10, 18)) ->D : D, Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) ->D : D, Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) ->T : T, Symbol(T, Decl(everyTypeWithAnnotationAndInitializer.ts, 8, 8)) +>wrapped : D> +>D : D +>D : D +>T : T } function F(x: string): number { return 42; } ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) ->x : string, Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 11)) +>F : (x: string) => number +>x : string >42 : number module M { ->M : typeof M, Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) +>M : typeof M export class A { ->A : A, Symbol(A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) +>A : A name: string; ->name : string, Symbol(name, Decl(everyTypeWithAnnotationAndInitializer.ts, 17, 20)) +>name : string } export function F2(x: number): string { return x.toString(); } ->F2 : (x: number) => string, Symbol(F2, Decl(everyTypeWithAnnotationAndInitializer.ts, 19, 5)) ->x : number, Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 21, 23)) +>F2 : (x: number) => string +>x : number >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 21, 23)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string } var aNumber: number = 9.9; ->aNumber : number, Symbol(aNumber, Decl(everyTypeWithAnnotationAndInitializer.ts, 24, 3)) +>aNumber : number >9.9 : number var aString: string = 'this is a string'; ->aString : string, Symbol(aString, Decl(everyTypeWithAnnotationAndInitializer.ts, 25, 3)) +>aString : string >'this is a string' : string var aDate: Date = new Date(12); ->aDate : Date, Symbol(aDate, Decl(everyTypeWithAnnotationAndInitializer.ts, 26, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>aDate : Date +>Date : Date >new Date(12) : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor >12 : number var anObject: Object = new Object(); ->anObject : Object, Symbol(anObject, Decl(everyTypeWithAnnotationAndInitializer.ts, 27, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>anObject : Object +>Object : Object >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor var anAny: any = null; ->anAny : any, Symbol(anAny, Decl(everyTypeWithAnnotationAndInitializer.ts, 29, 3)) +>anAny : any >null : null var aSecondAny: any = undefined; ->aSecondAny : any, Symbol(aSecondAny, Decl(everyTypeWithAnnotationAndInitializer.ts, 30, 3)) ->undefined : undefined, Symbol(undefined) +>aSecondAny : any +>undefined : undefined var aVoid: void = undefined; ->aVoid : void, Symbol(aVoid, Decl(everyTypeWithAnnotationAndInitializer.ts, 31, 3)) ->undefined : undefined, Symbol(undefined) +>aVoid : void +>undefined : undefined var anInterface: I = new C(); ->anInterface : I, Symbol(anInterface, Decl(everyTypeWithAnnotationAndInitializer.ts, 33, 3)) ->I : I, Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) +>anInterface : I +>I : I >new C() : C ->C : typeof C, Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) +>C : typeof C var aClass: C = new C(); ->aClass : C, Symbol(aClass, Decl(everyTypeWithAnnotationAndInitializer.ts, 34, 3)) ->C : C, Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) +>aClass : C +>C : C >new C() : C ->C : typeof C, Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) +>C : typeof C var aGenericClass: D = new D(); ->aGenericClass : D, Symbol(aGenericClass, Decl(everyTypeWithAnnotationAndInitializer.ts, 35, 3)) ->D : D, Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>aGenericClass : D +>D : D >new D() : D ->D : typeof D, Symbol(D, Decl(everyTypeWithAnnotationAndInitializer.ts, 6, 1)) +>D : typeof D var anObjectLiteral: I = { id: 12 }; ->anObjectLiteral : I, Symbol(anObjectLiteral, Decl(everyTypeWithAnnotationAndInitializer.ts, 36, 3)) ->I : I, Symbol(I, Decl(everyTypeWithAnnotationAndInitializer.ts, 0, 0)) +>anObjectLiteral : I +>I : I >{ id: 12 } : { id: number; } ->id : number, Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 36, 26)) +>id : number >12 : number var anOtherObjectLiteral: { id: number } = new C(); ->anOtherObjectLiteral : { id: number; }, Symbol(anOtherObjectLiteral, Decl(everyTypeWithAnnotationAndInitializer.ts, 37, 3)) ->id : number, Symbol(id, Decl(everyTypeWithAnnotationAndInitializer.ts, 37, 27)) +>anOtherObjectLiteral : { id: number; } +>id : number >new C() : C ->C : typeof C, Symbol(C, Decl(everyTypeWithAnnotationAndInitializer.ts, 2, 1)) +>C : typeof C var aFunction: typeof F = F; ->aFunction : (x: string) => number, Symbol(aFunction, Decl(everyTypeWithAnnotationAndInitializer.ts, 39, 3)) ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) +>aFunction : (x: string) => number +>F : (x: string) => number +>F : (x: string) => number var anOtherFunction: (x: string) => number = F; ->anOtherFunction : (x: string) => number, Symbol(anOtherFunction, Decl(everyTypeWithAnnotationAndInitializer.ts, 40, 3)) ->x : string, Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 40, 22)) ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) +>anOtherFunction : (x: string) => number +>x : string +>F : (x: string) => number var aLambda: typeof F = (x) => 2; ->aLambda : (x: string) => number, Symbol(aLambda, Decl(everyTypeWithAnnotationAndInitializer.ts, 41, 3)) ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithAnnotationAndInitializer.ts, 12, 1)) +>aLambda : (x: string) => number +>F : (x: string) => number >(x) => 2 : (x: string) => number ->x : string, Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 41, 25)) +>x : string >2 : number var aModule: typeof M = M; ->aModule : typeof M, Symbol(aModule, Decl(everyTypeWithAnnotationAndInitializer.ts, 43, 3)) ->M : typeof M, Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) ->M : typeof M, Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) +>aModule : typeof M +>M : typeof M +>M : typeof M var aClassInModule: M.A = new M.A(); ->aClassInModule : M.A, Symbol(aClassInModule, Decl(everyTypeWithAnnotationAndInitializer.ts, 44, 3)) ->M : any, Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) ->A : M.A, Symbol(M.A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) +>aClassInModule : M.A +>M : any +>A : M.A >new M.A() : M.A ->M.A : typeof M.A, Symbol(M.A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) ->M : typeof M, Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) ->A : typeof M.A, Symbol(M.A, Decl(everyTypeWithAnnotationAndInitializer.ts, 16, 10)) +>M.A : typeof M.A +>M : typeof M +>A : typeof M.A var aFunctionInModule: typeof M.F2 = (x) => 'this is a string'; ->aFunctionInModule : (x: number) => string, Symbol(aFunctionInModule, Decl(everyTypeWithAnnotationAndInitializer.ts, 45, 3)) ->M.F2 : (x: number) => string, Symbol(M.F2, Decl(everyTypeWithAnnotationAndInitializer.ts, 19, 5)) ->M : typeof M, Symbol(M, Decl(everyTypeWithAnnotationAndInitializer.ts, 14, 44)) ->F2 : (x: number) => string, Symbol(M.F2, Decl(everyTypeWithAnnotationAndInitializer.ts, 19, 5)) +>aFunctionInModule : (x: number) => string +>M.F2 : (x: number) => string +>M : typeof M +>F2 : (x: number) => string >(x) => 'this is a string' : (x: number) => string ->x : number, Symbol(x, Decl(everyTypeWithAnnotationAndInitializer.ts, 45, 38)) +>x : number >'this is a string' : string diff --git a/tests/baselines/reference/everyTypeWithInitializer.symbols b/tests/baselines/reference/everyTypeWithInitializer.symbols new file mode 100644 index 0000000000000..0a22252164ba5 --- /dev/null +++ b/tests/baselines/reference/everyTypeWithInitializer.symbols @@ -0,0 +1,125 @@ +=== tests/cases/conformance/statements/VariableStatements/everyTypeWithInitializer.ts === +interface I { +>I : Symbol(I, Decl(everyTypeWithInitializer.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(everyTypeWithInitializer.ts, 0, 13)) +} + +class C implements I { +>C : Symbol(C, Decl(everyTypeWithInitializer.ts, 2, 1)) +>I : Symbol(I, Decl(everyTypeWithInitializer.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(everyTypeWithInitializer.ts, 4, 22)) +} + +class D{ +>D : Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) +>T : Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) + + source: T; +>source : Symbol(source, Decl(everyTypeWithInitializer.ts, 8, 11)) +>T : Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) + + recurse: D; +>recurse : Symbol(recurse, Decl(everyTypeWithInitializer.ts, 9, 14)) +>D : Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) +>T : Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) + + wrapped: D> +>wrapped : Symbol(wrapped, Decl(everyTypeWithInitializer.ts, 10, 18)) +>D : Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) +>D : Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) +>T : Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) +} + +function F(x: string): number { return 42; } +>F : Symbol(F, Decl(everyTypeWithInitializer.ts, 12, 1)) +>x : Symbol(x, Decl(everyTypeWithInitializer.ts, 14, 11)) + +module M { +>M : Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) + + export class A { +>A : Symbol(A, Decl(everyTypeWithInitializer.ts, 16, 10)) + + name: string; +>name : Symbol(name, Decl(everyTypeWithInitializer.ts, 17, 20)) + } + + export function F2(x: number): string { return x.toString(); } +>F2 : Symbol(F2, Decl(everyTypeWithInitializer.ts, 19, 5)) +>x : Symbol(x, Decl(everyTypeWithInitializer.ts, 21, 23)) +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(everyTypeWithInitializer.ts, 21, 23)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +} + +var aNumber = 9.9; +>aNumber : Symbol(aNumber, Decl(everyTypeWithInitializer.ts, 24, 3)) + +var aString = 'this is a string'; +>aString : Symbol(aString, Decl(everyTypeWithInitializer.ts, 25, 3)) + +var aDate = new Date(12); +>aDate : Symbol(aDate, Decl(everyTypeWithInitializer.ts, 26, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var anObject = new Object(); +>anObject : Symbol(anObject, Decl(everyTypeWithInitializer.ts, 27, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var anAny = null; +>anAny : Symbol(anAny, Decl(everyTypeWithInitializer.ts, 29, 3)) + +var anOtherAny = new C(); +>anOtherAny : Symbol(anOtherAny, Decl(everyTypeWithInitializer.ts, 30, 3)) +>C : Symbol(C, Decl(everyTypeWithInitializer.ts, 2, 1)) + +var anUndefined = undefined; +>anUndefined : Symbol(anUndefined, Decl(everyTypeWithInitializer.ts, 31, 3)) +>undefined : Symbol(undefined) + + +var aClass = new C(); +>aClass : Symbol(aClass, Decl(everyTypeWithInitializer.ts, 34, 3)) +>C : Symbol(C, Decl(everyTypeWithInitializer.ts, 2, 1)) + +var aGenericClass = new D(); +>aGenericClass : Symbol(aGenericClass, Decl(everyTypeWithInitializer.ts, 35, 3)) +>D : Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) + +var anObjectLiteral = { id: 12 }; +>anObjectLiteral : Symbol(anObjectLiteral, Decl(everyTypeWithInitializer.ts, 36, 3)) +>id : Symbol(id, Decl(everyTypeWithInitializer.ts, 36, 23)) + +var aFunction = F; +>aFunction : Symbol(aFunction, Decl(everyTypeWithInitializer.ts, 38, 3)) +>F : Symbol(F, Decl(everyTypeWithInitializer.ts, 12, 1)) + +var aLambda = (x) => 2; +>aLambda : Symbol(aLambda, Decl(everyTypeWithInitializer.ts, 39, 3)) +>x : Symbol(x, Decl(everyTypeWithInitializer.ts, 39, 15)) + +var aModule = M; +>aModule : Symbol(aModule, Decl(everyTypeWithInitializer.ts, 41, 3)) +>M : Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) + +var aClassInModule = new M.A(); +>aClassInModule : Symbol(aClassInModule, Decl(everyTypeWithInitializer.ts, 42, 3)) +>M.A : Symbol(M.A, Decl(everyTypeWithInitializer.ts, 16, 10)) +>M : Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) +>A : Symbol(M.A, Decl(everyTypeWithInitializer.ts, 16, 10)) + +var aFunctionInModule = M.F2; +>aFunctionInModule : Symbol(aFunctionInModule, Decl(everyTypeWithInitializer.ts, 43, 3)) +>M.F2 : Symbol(M.F2, Decl(everyTypeWithInitializer.ts, 19, 5)) +>M : Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) +>F2 : Symbol(M.F2, Decl(everyTypeWithInitializer.ts, 19, 5)) + +// no initializer or annotation, so this is an 'any' +var x; +>x : Symbol(x, Decl(everyTypeWithInitializer.ts, 46, 3)) + + diff --git a/tests/baselines/reference/everyTypeWithInitializer.types b/tests/baselines/reference/everyTypeWithInitializer.types index 7e9dbef64e9a0..abc0e770e3505 100644 --- a/tests/baselines/reference/everyTypeWithInitializer.types +++ b/tests/baselines/reference/everyTypeWithInitializer.types @@ -1,142 +1,142 @@ === tests/cases/conformance/statements/VariableStatements/everyTypeWithInitializer.ts === interface I { ->I : I, Symbol(I, Decl(everyTypeWithInitializer.ts, 0, 0)) +>I : I id: number; ->id : number, Symbol(id, Decl(everyTypeWithInitializer.ts, 0, 13)) +>id : number } class C implements I { ->C : C, Symbol(C, Decl(everyTypeWithInitializer.ts, 2, 1)) ->I : I, Symbol(I, Decl(everyTypeWithInitializer.ts, 0, 0)) +>C : C +>I : I id: number; ->id : number, Symbol(id, Decl(everyTypeWithInitializer.ts, 4, 22)) +>id : number } class D{ ->D : D, Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) ->T : T, Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) +>D : D +>T : T source: T; ->source : T, Symbol(source, Decl(everyTypeWithInitializer.ts, 8, 11)) ->T : T, Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) +>source : T +>T : T recurse: D; ->recurse : D, Symbol(recurse, Decl(everyTypeWithInitializer.ts, 9, 14)) ->D : D, Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) ->T : T, Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) +>recurse : D +>D : D +>T : T wrapped: D> ->wrapped : D>, Symbol(wrapped, Decl(everyTypeWithInitializer.ts, 10, 18)) ->D : D, Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) ->D : D, Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) ->T : T, Symbol(T, Decl(everyTypeWithInitializer.ts, 8, 8)) +>wrapped : D> +>D : D +>D : D +>T : T } function F(x: string): number { return 42; } ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithInitializer.ts, 12, 1)) ->x : string, Symbol(x, Decl(everyTypeWithInitializer.ts, 14, 11)) +>F : (x: string) => number +>x : string >42 : number module M { ->M : typeof M, Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) +>M : typeof M export class A { ->A : A, Symbol(A, Decl(everyTypeWithInitializer.ts, 16, 10)) +>A : A name: string; ->name : string, Symbol(name, Decl(everyTypeWithInitializer.ts, 17, 20)) +>name : string } export function F2(x: number): string { return x.toString(); } ->F2 : (x: number) => string, Symbol(F2, Decl(everyTypeWithInitializer.ts, 19, 5)) ->x : number, Symbol(x, Decl(everyTypeWithInitializer.ts, 21, 23)) +>F2 : (x: number) => string +>x : number >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(everyTypeWithInitializer.ts, 21, 23)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string } var aNumber = 9.9; ->aNumber : number, Symbol(aNumber, Decl(everyTypeWithInitializer.ts, 24, 3)) +>aNumber : number >9.9 : number var aString = 'this is a string'; ->aString : string, Symbol(aString, Decl(everyTypeWithInitializer.ts, 25, 3)) +>aString : string >'this is a string' : string var aDate = new Date(12); ->aDate : Date, Symbol(aDate, Decl(everyTypeWithInitializer.ts, 26, 3)) +>aDate : Date >new Date(12) : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor >12 : number var anObject = new Object(); ->anObject : Object, Symbol(anObject, Decl(everyTypeWithInitializer.ts, 27, 3)) +>anObject : Object >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor var anAny = null; ->anAny : any, Symbol(anAny, Decl(everyTypeWithInitializer.ts, 29, 3)) +>anAny : any >null : null var anOtherAny = new C(); ->anOtherAny : any, Symbol(anOtherAny, Decl(everyTypeWithInitializer.ts, 30, 3)) +>anOtherAny : any > new C() : any >new C() : C ->C : typeof C, Symbol(C, Decl(everyTypeWithInitializer.ts, 2, 1)) +>C : typeof C var anUndefined = undefined; ->anUndefined : any, Symbol(anUndefined, Decl(everyTypeWithInitializer.ts, 31, 3)) ->undefined : undefined, Symbol(undefined) +>anUndefined : any +>undefined : undefined var aClass = new C(); ->aClass : C, Symbol(aClass, Decl(everyTypeWithInitializer.ts, 34, 3)) +>aClass : C >new C() : C ->C : typeof C, Symbol(C, Decl(everyTypeWithInitializer.ts, 2, 1)) +>C : typeof C var aGenericClass = new D(); ->aGenericClass : D, Symbol(aGenericClass, Decl(everyTypeWithInitializer.ts, 35, 3)) +>aGenericClass : D >new D() : D ->D : typeof D, Symbol(D, Decl(everyTypeWithInitializer.ts, 6, 1)) +>D : typeof D var anObjectLiteral = { id: 12 }; ->anObjectLiteral : { id: number; }, Symbol(anObjectLiteral, Decl(everyTypeWithInitializer.ts, 36, 3)) +>anObjectLiteral : { id: number; } >{ id: 12 } : { id: number; } ->id : number, Symbol(id, Decl(everyTypeWithInitializer.ts, 36, 23)) +>id : number >12 : number var aFunction = F; ->aFunction : (x: string) => number, Symbol(aFunction, Decl(everyTypeWithInitializer.ts, 38, 3)) ->F : (x: string) => number, Symbol(F, Decl(everyTypeWithInitializer.ts, 12, 1)) +>aFunction : (x: string) => number +>F : (x: string) => number var aLambda = (x) => 2; ->aLambda : (x: any) => number, Symbol(aLambda, Decl(everyTypeWithInitializer.ts, 39, 3)) +>aLambda : (x: any) => number >(x) => 2 : (x: any) => number ->x : any, Symbol(x, Decl(everyTypeWithInitializer.ts, 39, 15)) +>x : any >2 : number var aModule = M; ->aModule : typeof M, Symbol(aModule, Decl(everyTypeWithInitializer.ts, 41, 3)) ->M : typeof M, Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) +>aModule : typeof M +>M : typeof M var aClassInModule = new M.A(); ->aClassInModule : M.A, Symbol(aClassInModule, Decl(everyTypeWithInitializer.ts, 42, 3)) +>aClassInModule : M.A >new M.A() : M.A ->M.A : typeof M.A, Symbol(M.A, Decl(everyTypeWithInitializer.ts, 16, 10)) ->M : typeof M, Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) ->A : typeof M.A, Symbol(M.A, Decl(everyTypeWithInitializer.ts, 16, 10)) +>M.A : typeof M.A +>M : typeof M +>A : typeof M.A var aFunctionInModule = M.F2; ->aFunctionInModule : (x: number) => string, Symbol(aFunctionInModule, Decl(everyTypeWithInitializer.ts, 43, 3)) ->M.F2 : (x: number) => string, Symbol(M.F2, Decl(everyTypeWithInitializer.ts, 19, 5)) ->M : typeof M, Symbol(M, Decl(everyTypeWithInitializer.ts, 14, 44)) ->F2 : (x: number) => string, Symbol(M.F2, Decl(everyTypeWithInitializer.ts, 19, 5)) +>aFunctionInModule : (x: number) => string +>M.F2 : (x: number) => string +>M : typeof M +>F2 : (x: number) => string // no initializer or annotation, so this is an 'any' var x; ->x : any, Symbol(x, Decl(everyTypeWithInitializer.ts, 46, 3)) +>x : any diff --git a/tests/baselines/reference/exportAssignClassAndModule.symbols b/tests/baselines/reference/exportAssignClassAndModule.symbols new file mode 100644 index 0000000000000..9f38ed80b1b10 --- /dev/null +++ b/tests/baselines/reference/exportAssignClassAndModule.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/exportAssignClassAndModule_1.ts === +/// +import Foo = require('exportAssignClassAndModule_0'); +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_1.ts, 0, 0)) + +var z: Foo.Bar; +>z : Symbol(z, Decl(exportAssignClassAndModule_1.ts, 3, 3)) +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_1.ts, 0, 0)) +>Bar : Symbol(Foo.Bar, Decl(exportAssignClassAndModule_0.ts, 3, 12)) + +var zz: Foo; +>zz : Symbol(zz, Decl(exportAssignClassAndModule_1.ts, 4, 3)) +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_1.ts, 0, 0)) + +zz.x; +>zz.x : Symbol(Foo.x, Decl(exportAssignClassAndModule_0.ts, 0, 11)) +>zz : Symbol(zz, Decl(exportAssignClassAndModule_1.ts, 4, 3)) +>x : Symbol(Foo.x, Decl(exportAssignClassAndModule_0.ts, 0, 11)) + +=== tests/cases/compiler/exportAssignClassAndModule_0.ts === +class Foo { +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) + + x: Foo.Bar; +>x : Symbol(x, Decl(exportAssignClassAndModule_0.ts, 0, 11)) +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) +>Bar : Symbol(Foo.Bar, Decl(exportAssignClassAndModule_0.ts, 3, 12)) +} +module Foo { +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) + + export interface Bar { +>Bar : Symbol(Bar, Decl(exportAssignClassAndModule_0.ts, 3, 12)) + } +} +export = Foo; +>Foo : Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) + diff --git a/tests/baselines/reference/exportAssignClassAndModule.types b/tests/baselines/reference/exportAssignClassAndModule.types index f21b5fac6afd1..aa1ede6b2d43b 100644 --- a/tests/baselines/reference/exportAssignClassAndModule.types +++ b/tests/baselines/reference/exportAssignClassAndModule.types @@ -1,38 +1,38 @@ === tests/cases/compiler/exportAssignClassAndModule_1.ts === /// import Foo = require('exportAssignClassAndModule_0'); ->Foo : typeof Foo, Symbol(Foo, Decl(exportAssignClassAndModule_1.ts, 0, 0)) +>Foo : typeof Foo var z: Foo.Bar; ->z : Foo.Bar, Symbol(z, Decl(exportAssignClassAndModule_1.ts, 3, 3)) ->Foo : any, Symbol(Foo, Decl(exportAssignClassAndModule_1.ts, 0, 0)) ->Bar : Foo.Bar, Symbol(Foo.Bar, Decl(exportAssignClassAndModule_0.ts, 3, 12)) +>z : Foo.Bar +>Foo : any +>Bar : Foo.Bar var zz: Foo; ->zz : Foo, Symbol(zz, Decl(exportAssignClassAndModule_1.ts, 4, 3)) ->Foo : Foo, Symbol(Foo, Decl(exportAssignClassAndModule_1.ts, 0, 0)) +>zz : Foo +>Foo : Foo zz.x; ->zz.x : Foo.Bar, Symbol(Foo.x, Decl(exportAssignClassAndModule_0.ts, 0, 11)) ->zz : Foo, Symbol(zz, Decl(exportAssignClassAndModule_1.ts, 4, 3)) ->x : Foo.Bar, Symbol(Foo.x, Decl(exportAssignClassAndModule_0.ts, 0, 11)) +>zz.x : Foo.Bar +>zz : Foo +>x : Foo.Bar === tests/cases/compiler/exportAssignClassAndModule_0.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) +>Foo : Foo x: Foo.Bar; ->x : Foo.Bar, Symbol(x, Decl(exportAssignClassAndModule_0.ts, 0, 11)) ->Foo : any, Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) ->Bar : Foo.Bar, Symbol(Foo.Bar, Decl(exportAssignClassAndModule_0.ts, 3, 12)) +>x : Foo.Bar +>Foo : any +>Bar : Foo.Bar } module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) +>Foo : typeof Foo export interface Bar { ->Bar : Bar, Symbol(Bar, Decl(exportAssignClassAndModule_0.ts, 3, 12)) +>Bar : Bar } } export = Foo; ->Foo : Foo, Symbol(Foo, Decl(exportAssignClassAndModule_0.ts, 0, 0), Decl(exportAssignClassAndModule_0.ts, 2, 1)) +>Foo : Foo diff --git a/tests/baselines/reference/exportAssignValueAndType.symbols b/tests/baselines/reference/exportAssignValueAndType.symbols new file mode 100644 index 0000000000000..b6d5b5b3bb6dc --- /dev/null +++ b/tests/baselines/reference/exportAssignValueAndType.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/exportAssignValueAndType.ts === +declare module http { +>http : Symbol(http, Decl(exportAssignValueAndType.ts, 0, 0)) + + export interface Server { openPort: number; } +>Server : Symbol(Server, Decl(exportAssignValueAndType.ts, 0, 21)) +>openPort : Symbol(openPort, Decl(exportAssignValueAndType.ts, 1, 26)) +} + +interface server { +>server : Symbol(server, Decl(exportAssignValueAndType.ts, 2, 1), Decl(exportAssignValueAndType.ts, 10, 3)) + + (): http.Server; +>http : Symbol(http, Decl(exportAssignValueAndType.ts, 0, 0)) +>Server : Symbol(http.Server, Decl(exportAssignValueAndType.ts, 0, 21)) + + startTime: Date; +>startTime : Symbol(startTime, Decl(exportAssignValueAndType.ts, 5, 20)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var x = 5; +>x : Symbol(x, Decl(exportAssignValueAndType.ts, 9, 3)) + +var server = new Date(); +>server : Symbol(server, Decl(exportAssignValueAndType.ts, 2, 1), Decl(exportAssignValueAndType.ts, 10, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +export = server; +>server : Symbol(server, Decl(exportAssignValueAndType.ts, 2, 1), Decl(exportAssignValueAndType.ts, 10, 3)) + + diff --git a/tests/baselines/reference/exportAssignValueAndType.types b/tests/baselines/reference/exportAssignValueAndType.types index 4cd9d5e382c97..2dc7442b9aca8 100644 --- a/tests/baselines/reference/exportAssignValueAndType.types +++ b/tests/baselines/reference/exportAssignValueAndType.types @@ -1,34 +1,34 @@ === tests/cases/compiler/exportAssignValueAndType.ts === declare module http { ->http : any, Symbol(http, Decl(exportAssignValueAndType.ts, 0, 0)) +>http : any export interface Server { openPort: number; } ->Server : Server, Symbol(Server, Decl(exportAssignValueAndType.ts, 0, 21)) ->openPort : number, Symbol(openPort, Decl(exportAssignValueAndType.ts, 1, 26)) +>Server : Server +>openPort : number } interface server { ->server : server, Symbol(server, Decl(exportAssignValueAndType.ts, 2, 1), Decl(exportAssignValueAndType.ts, 10, 3)) +>server : server (): http.Server; ->http : any, Symbol(http, Decl(exportAssignValueAndType.ts, 0, 0)) ->Server : http.Server, Symbol(http.Server, Decl(exportAssignValueAndType.ts, 0, 21)) +>http : any +>Server : http.Server startTime: Date; ->startTime : Date, Symbol(startTime, Decl(exportAssignValueAndType.ts, 5, 20)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>startTime : Date +>Date : Date } var x = 5; ->x : number, Symbol(x, Decl(exportAssignValueAndType.ts, 9, 3)) +>x : number >5 : number var server = new Date(); ->server : Date, Symbol(server, Decl(exportAssignValueAndType.ts, 2, 1), Decl(exportAssignValueAndType.ts, 10, 3)) +>server : Date >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor export = server; ->server : server, Symbol(server, Decl(exportAssignValueAndType.ts, 2, 1), Decl(exportAssignValueAndType.ts, 10, 3)) +>server : server diff --git a/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.symbols b/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.symbols new file mode 100644 index 0000000000000..2c286e8518d5f --- /dev/null +++ b/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/exportAssignedTypeAsTypeAnnotation_1.ts === +/// +import test = require('exportAssignedTypeAsTypeAnnotation_0'); +>test : Symbol(test, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 0, 0)) + +var t2: test; // should not raise a 'container type' error +>t2 : Symbol(t2, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 2, 3)) +>test : Symbol(test, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 0, 0)) + +=== tests/cases/compiler/exportAssignedTypeAsTypeAnnotation_0.ts === + +interface x { +>x : Symbol(x, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 0, 0)) + + (): Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + foo: string; +>foo : Symbol(foo, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 2, 13)) +} +export = x; +>x : Symbol(x, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.types b/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.types index 12cd19bcc0ebc..553dbe35c4fca 100644 --- a/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.types +++ b/tests/baselines/reference/exportAssignedTypeAsTypeAnnotation.types @@ -1,23 +1,23 @@ === tests/cases/compiler/exportAssignedTypeAsTypeAnnotation_1.ts === /// import test = require('exportAssignedTypeAsTypeAnnotation_0'); ->test : any, Symbol(test, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 0, 0)) +>test : any var t2: test; // should not raise a 'container type' error ->t2 : test, Symbol(t2, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 2, 3)) ->test : test, Symbol(test, Decl(exportAssignedTypeAsTypeAnnotation_1.ts, 0, 0)) +>t2 : test +>test : test === tests/cases/compiler/exportAssignedTypeAsTypeAnnotation_0.ts === interface x { ->x : x, Symbol(x, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 0, 0)) +>x : x (): Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date foo: string; ->foo : string, Symbol(foo, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 2, 13)) +>foo : string } export = x; ->x : x, Symbol(x, Decl(exportAssignedTypeAsTypeAnnotation_0.ts, 0, 0)) +>x : x diff --git a/tests/baselines/reference/exportAssignmentCircularModules.symbols b/tests/baselines/reference/exportAssignmentCircularModules.symbols new file mode 100644 index 0000000000000..5e2d5470c90b8 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentCircularModules.symbols @@ -0,0 +1,48 @@ +=== tests/cases/conformance/externalModules/foo_2.ts === +import foo0 = require("./foo_0"); +>foo0 : Symbol(foo0, Decl(foo_2.ts, 0, 0)) + +module Foo { +>Foo : Symbol(Foo, Decl(foo_2.ts, 0, 33)) + + export var x = foo0.x; +>x : Symbol(x, Decl(foo_2.ts, 2, 11)) +>foo0.x : Symbol(foo0.x, Decl(foo_0.ts, 2, 11)) +>foo0 : Symbol(foo0, Decl(foo_2.ts, 0, 0)) +>x : Symbol(foo0.x, Decl(foo_0.ts, 2, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_2.ts, 0, 33)) + +=== tests/cases/conformance/externalModules/foo_0.ts === +import foo1 = require('./foo_1'); +>foo1 : Symbol(foo1, Decl(foo_0.ts, 0, 0)) + +module Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 33)) + + export var x = foo1.x; +>x : Symbol(x, Decl(foo_0.ts, 2, 11)) +>foo1.x : Symbol(foo1.x, Decl(foo_1.ts, 2, 11)) +>foo1 : Symbol(foo1, Decl(foo_0.ts, 0, 0)) +>x : Symbol(foo1.x, Decl(foo_1.ts, 2, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 33)) + +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo2 = require("./foo_2"); +>foo2 : Symbol(foo2, Decl(foo_1.ts, 0, 0)) + +module Foo { +>Foo : Symbol(Foo, Decl(foo_1.ts, 0, 33)) + + export var x = foo2.x; +>x : Symbol(x, Decl(foo_1.ts, 2, 11)) +>foo2.x : Symbol(foo2.x, Decl(foo_2.ts, 2, 11)) +>foo2 : Symbol(foo2, Decl(foo_1.ts, 0, 0)) +>x : Symbol(foo2.x, Decl(foo_2.ts, 2, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_1.ts, 0, 33)) + diff --git a/tests/baselines/reference/exportAssignmentCircularModules.types b/tests/baselines/reference/exportAssignmentCircularModules.types index 1d99ffa177fe3..57d5a8cccce8c 100644 --- a/tests/baselines/reference/exportAssignmentCircularModules.types +++ b/tests/baselines/reference/exportAssignmentCircularModules.types @@ -1,48 +1,48 @@ === tests/cases/conformance/externalModules/foo_2.ts === import foo0 = require("./foo_0"); ->foo0 : typeof foo0, Symbol(foo0, Decl(foo_2.ts, 0, 0)) +>foo0 : typeof foo0 module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_2.ts, 0, 33)) +>Foo : typeof Foo export var x = foo0.x; ->x : any, Symbol(x, Decl(foo_2.ts, 2, 11)) ->foo0.x : any, Symbol(foo0.x, Decl(foo_0.ts, 2, 11)) ->foo0 : typeof foo0, Symbol(foo0, Decl(foo_2.ts, 0, 0)) ->x : any, Symbol(foo0.x, Decl(foo_0.ts, 2, 11)) +>x : any +>foo0.x : any +>foo0 : typeof foo0 +>x : any } export = Foo; ->Foo : typeof Foo, Symbol(Foo, Decl(foo_2.ts, 0, 33)) +>Foo : typeof Foo === tests/cases/conformance/externalModules/foo_0.ts === import foo1 = require('./foo_1'); ->foo1 : typeof foo1, Symbol(foo1, Decl(foo_0.ts, 0, 0)) +>foo1 : typeof foo1 module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 33)) +>Foo : typeof Foo export var x = foo1.x; ->x : any, Symbol(x, Decl(foo_0.ts, 2, 11)) ->foo1.x : any, Symbol(foo1.x, Decl(foo_1.ts, 2, 11)) ->foo1 : typeof foo1, Symbol(foo1, Decl(foo_0.ts, 0, 0)) ->x : any, Symbol(foo1.x, Decl(foo_1.ts, 2, 11)) +>x : any +>foo1.x : any +>foo1 : typeof foo1 +>x : any } export = Foo; ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 33)) +>Foo : typeof Foo === tests/cases/conformance/externalModules/foo_1.ts === import foo2 = require("./foo_2"); ->foo2 : typeof foo2, Symbol(foo2, Decl(foo_1.ts, 0, 0)) +>foo2 : typeof foo2 module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_1.ts, 0, 33)) +>Foo : typeof Foo export var x = foo2.x; ->x : any, Symbol(x, Decl(foo_1.ts, 2, 11)) ->foo2.x : any, Symbol(foo2.x, Decl(foo_2.ts, 2, 11)) ->foo2 : typeof foo2, Symbol(foo2, Decl(foo_1.ts, 0, 0)) ->x : any, Symbol(foo2.x, Decl(foo_2.ts, 2, 11)) +>x : any +>foo2.x : any +>foo2 : typeof foo2 +>x : any } export = Foo; ->Foo : typeof Foo, Symbol(Foo, Decl(foo_1.ts, 0, 33)) +>Foo : typeof Foo diff --git a/tests/baselines/reference/exportAssignmentClass.symbols b/tests/baselines/reference/exportAssignmentClass.symbols new file mode 100644 index 0000000000000..d0935ca8f8ce9 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentClass.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/exportAssignmentClass_B.ts === +import D = require("exportAssignmentClass_A"); +>D : Symbol(D, Decl(exportAssignmentClass_B.ts, 0, 0)) + +var d = new D(); +>d : Symbol(d, Decl(exportAssignmentClass_B.ts, 2, 3)) +>D : Symbol(D, Decl(exportAssignmentClass_B.ts, 0, 0)) + +var x = d.p; +>x : Symbol(x, Decl(exportAssignmentClass_B.ts, 3, 3)) +>d.p : Symbol(D.p, Decl(exportAssignmentClass_A.ts, 0, 9)) +>d : Symbol(d, Decl(exportAssignmentClass_B.ts, 2, 3)) +>p : Symbol(D.p, Decl(exportAssignmentClass_A.ts, 0, 9)) + +=== tests/cases/compiler/exportAssignmentClass_A.ts === +class C { public p = 0; } +>C : Symbol(C, Decl(exportAssignmentClass_A.ts, 0, 0)) +>p : Symbol(p, Decl(exportAssignmentClass_A.ts, 0, 9)) + +export = C; +>C : Symbol(C, Decl(exportAssignmentClass_A.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentClass.types b/tests/baselines/reference/exportAssignmentClass.types index 2d7d37669b777..b724c837244d4 100644 --- a/tests/baselines/reference/exportAssignmentClass.types +++ b/tests/baselines/reference/exportAssignmentClass.types @@ -1,24 +1,24 @@ === tests/cases/compiler/exportAssignmentClass_B.ts === import D = require("exportAssignmentClass_A"); ->D : typeof D, Symbol(D, Decl(exportAssignmentClass_B.ts, 0, 0)) +>D : typeof D var d = new D(); ->d : D, Symbol(d, Decl(exportAssignmentClass_B.ts, 2, 3)) +>d : D >new D() : D ->D : typeof D, Symbol(D, Decl(exportAssignmentClass_B.ts, 0, 0)) +>D : typeof D var x = d.p; ->x : number, Symbol(x, Decl(exportAssignmentClass_B.ts, 3, 3)) ->d.p : number, Symbol(D.p, Decl(exportAssignmentClass_A.ts, 0, 9)) ->d : D, Symbol(d, Decl(exportAssignmentClass_B.ts, 2, 3)) ->p : number, Symbol(D.p, Decl(exportAssignmentClass_A.ts, 0, 9)) +>x : number +>d.p : number +>d : D +>p : number === tests/cases/compiler/exportAssignmentClass_A.ts === class C { public p = 0; } ->C : C, Symbol(C, Decl(exportAssignmentClass_A.ts, 0, 0)) ->p : number, Symbol(p, Decl(exportAssignmentClass_A.ts, 0, 9)) +>C : C +>p : number >0 : number export = C; ->C : C, Symbol(C, Decl(exportAssignmentClass_A.ts, 0, 0)) +>C : C diff --git a/tests/baselines/reference/exportAssignmentEnum.symbols b/tests/baselines/reference/exportAssignmentEnum.symbols new file mode 100644 index 0000000000000..07eb5f7b907c9 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentEnum.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/exportAssignmentEnum_B.ts === +import EnumE = require("exportAssignmentEnum_A"); +>EnumE : Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) + +var a = EnumE.A; +>a : Symbol(a, Decl(exportAssignmentEnum_B.ts, 2, 3)) +>EnumE.A : Symbol(EnumE.A, Decl(exportAssignmentEnum_A.ts, 0, 8)) +>EnumE : Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) +>A : Symbol(EnumE.A, Decl(exportAssignmentEnum_A.ts, 0, 8)) + +var b = EnumE.B; +>b : Symbol(b, Decl(exportAssignmentEnum_B.ts, 3, 3)) +>EnumE.B : Symbol(EnumE.B, Decl(exportAssignmentEnum_A.ts, 1, 3)) +>EnumE : Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) +>B : Symbol(EnumE.B, Decl(exportAssignmentEnum_A.ts, 1, 3)) + +var c = EnumE.C; +>c : Symbol(c, Decl(exportAssignmentEnum_B.ts, 4, 3)) +>EnumE.C : Symbol(EnumE.C, Decl(exportAssignmentEnum_A.ts, 2, 3)) +>EnumE : Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) +>C : Symbol(EnumE.C, Decl(exportAssignmentEnum_A.ts, 2, 3)) + +=== tests/cases/compiler/exportAssignmentEnum_A.ts === +enum E { +>E : Symbol(E, Decl(exportAssignmentEnum_A.ts, 0, 0)) + + A, +>A : Symbol(E.A, Decl(exportAssignmentEnum_A.ts, 0, 8)) + + B, +>B : Symbol(E.B, Decl(exportAssignmentEnum_A.ts, 1, 3)) + + C, +>C : Symbol(E.C, Decl(exportAssignmentEnum_A.ts, 2, 3)) +} + +export = E; +>E : Symbol(E, Decl(exportAssignmentEnum_A.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentEnum.types b/tests/baselines/reference/exportAssignmentEnum.types index cab6a5f87bfc6..9dfa34d3777c9 100644 --- a/tests/baselines/reference/exportAssignmentEnum.types +++ b/tests/baselines/reference/exportAssignmentEnum.types @@ -1,39 +1,39 @@ === tests/cases/compiler/exportAssignmentEnum_B.ts === import EnumE = require("exportAssignmentEnum_A"); ->EnumE : typeof EnumE, Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) +>EnumE : typeof EnumE var a = EnumE.A; ->a : EnumE, Symbol(a, Decl(exportAssignmentEnum_B.ts, 2, 3)) ->EnumE.A : EnumE, Symbol(EnumE.A, Decl(exportAssignmentEnum_A.ts, 0, 8)) ->EnumE : typeof EnumE, Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) ->A : EnumE, Symbol(EnumE.A, Decl(exportAssignmentEnum_A.ts, 0, 8)) +>a : EnumE +>EnumE.A : EnumE +>EnumE : typeof EnumE +>A : EnumE var b = EnumE.B; ->b : EnumE, Symbol(b, Decl(exportAssignmentEnum_B.ts, 3, 3)) ->EnumE.B : EnumE, Symbol(EnumE.B, Decl(exportAssignmentEnum_A.ts, 1, 3)) ->EnumE : typeof EnumE, Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) ->B : EnumE, Symbol(EnumE.B, Decl(exportAssignmentEnum_A.ts, 1, 3)) +>b : EnumE +>EnumE.B : EnumE +>EnumE : typeof EnumE +>B : EnumE var c = EnumE.C; ->c : EnumE, Symbol(c, Decl(exportAssignmentEnum_B.ts, 4, 3)) ->EnumE.C : EnumE, Symbol(EnumE.C, Decl(exportAssignmentEnum_A.ts, 2, 3)) ->EnumE : typeof EnumE, Symbol(EnumE, Decl(exportAssignmentEnum_B.ts, 0, 0)) ->C : EnumE, Symbol(EnumE.C, Decl(exportAssignmentEnum_A.ts, 2, 3)) +>c : EnumE +>EnumE.C : EnumE +>EnumE : typeof EnumE +>C : EnumE === tests/cases/compiler/exportAssignmentEnum_A.ts === enum E { ->E : E, Symbol(E, Decl(exportAssignmentEnum_A.ts, 0, 0)) +>E : E A, ->A : E, Symbol(E.A, Decl(exportAssignmentEnum_A.ts, 0, 8)) +>A : E B, ->B : E, Symbol(E.B, Decl(exportAssignmentEnum_A.ts, 1, 3)) +>B : E C, ->C : E, Symbol(E.C, Decl(exportAssignmentEnum_A.ts, 2, 3)) +>C : E } export = E; ->E : E, Symbol(E, Decl(exportAssignmentEnum_A.ts, 0, 0)) +>E : E diff --git a/tests/baselines/reference/exportAssignmentError.symbols b/tests/baselines/reference/exportAssignmentError.symbols new file mode 100644 index 0000000000000..482ad586dc2c4 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentError.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/exportAssignmentError.ts === +module M { +>M : Symbol(M, Decl(exportAssignmentError.ts, 0, 0)) + + export var x; +>x : Symbol(x, Decl(exportAssignmentError.ts, 1, 11)) +} + +import M2 = M; +>M2 : Symbol(M2, Decl(exportAssignmentError.ts, 2, 1)) +>M : Symbol(M, Decl(exportAssignmentError.ts, 0, 0)) + +export = M2; // should not error +>M2 : Symbol(M2, Decl(exportAssignmentError.ts, 2, 1)) + diff --git a/tests/baselines/reference/exportAssignmentError.types b/tests/baselines/reference/exportAssignmentError.types index 392814d4e4a15..89e7d461fb20a 100644 --- a/tests/baselines/reference/exportAssignmentError.types +++ b/tests/baselines/reference/exportAssignmentError.types @@ -1,15 +1,15 @@ === tests/cases/compiler/exportAssignmentError.ts === module M { ->M : typeof M, Symbol(M, Decl(exportAssignmentError.ts, 0, 0)) +>M : typeof M export var x; ->x : any, Symbol(x, Decl(exportAssignmentError.ts, 1, 11)) +>x : any } import M2 = M; ->M2 : typeof M, Symbol(M2, Decl(exportAssignmentError.ts, 2, 1)) ->M : typeof M, Symbol(M, Decl(exportAssignmentError.ts, 0, 0)) +>M2 : typeof M +>M : typeof M export = M2; // should not error ->M2 : typeof M, Symbol(M2, Decl(exportAssignmentError.ts, 2, 1)) +>M2 : typeof M diff --git a/tests/baselines/reference/exportAssignmentFunction.symbols b/tests/baselines/reference/exportAssignmentFunction.symbols new file mode 100644 index 0000000000000..749c7d6194917 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentFunction.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/exportAssignmentFunction_B.ts === +import fooFunc = require("exportAssignmentFunction_A"); +>fooFunc : Symbol(fooFunc, Decl(exportAssignmentFunction_B.ts, 0, 0)) + +var n: number = fooFunc(); +>n : Symbol(n, Decl(exportAssignmentFunction_B.ts, 2, 3)) +>fooFunc : Symbol(fooFunc, Decl(exportAssignmentFunction_B.ts, 0, 0)) + +=== tests/cases/compiler/exportAssignmentFunction_A.ts === +function foo() { return 0; } +>foo : Symbol(foo, Decl(exportAssignmentFunction_A.ts, 0, 0)) + +export = foo; +>foo : Symbol(foo, Decl(exportAssignmentFunction_A.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentFunction.types b/tests/baselines/reference/exportAssignmentFunction.types index 548325368da39..bd10465d2219b 100644 --- a/tests/baselines/reference/exportAssignmentFunction.types +++ b/tests/baselines/reference/exportAssignmentFunction.types @@ -1,17 +1,17 @@ === tests/cases/compiler/exportAssignmentFunction_B.ts === import fooFunc = require("exportAssignmentFunction_A"); ->fooFunc : () => number, Symbol(fooFunc, Decl(exportAssignmentFunction_B.ts, 0, 0)) +>fooFunc : () => number var n: number = fooFunc(); ->n : number, Symbol(n, Decl(exportAssignmentFunction_B.ts, 2, 3)) +>n : number >fooFunc() : number ->fooFunc : () => number, Symbol(fooFunc, Decl(exportAssignmentFunction_B.ts, 0, 0)) +>fooFunc : () => number === tests/cases/compiler/exportAssignmentFunction_A.ts === function foo() { return 0; } ->foo : () => number, Symbol(foo, Decl(exportAssignmentFunction_A.ts, 0, 0)) +>foo : () => number >0 : number export = foo; ->foo : () => number, Symbol(foo, Decl(exportAssignmentFunction_A.ts, 0, 0)) +>foo : () => number diff --git a/tests/baselines/reference/exportAssignmentGenericType.symbols b/tests/baselines/reference/exportAssignmentGenericType.symbols new file mode 100644 index 0000000000000..ca228e7092e47 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentGenericType.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var x = new foo(); +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var y:number = x.test; +>y : Symbol(y, Decl(foo_1.ts, 2, 3)) +>x.test : Symbol(foo.test, Decl(foo_0.ts, 0, 13)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>test : Symbol(foo.test, Decl(foo_0.ts, 0, 13)) + +=== tests/cases/conformance/externalModules/foo_0.ts === +class Foo{ +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0)) +>T : Symbol(T, Decl(foo_0.ts, 0, 10)) + + test: T; +>test : Symbol(test, Decl(foo_0.ts, 0, 13)) +>T : Symbol(T, Decl(foo_0.ts, 0, 10)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentGenericType.types b/tests/baselines/reference/exportAssignmentGenericType.types index 2c22c81b3ba8a..241a8dac9542e 100644 --- a/tests/baselines/reference/exportAssignmentGenericType.types +++ b/tests/baselines/reference/exportAssignmentGenericType.types @@ -1,27 +1,27 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo var x = new foo(); ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) +>x : foo >new foo() : foo ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo var y:number = x.test; ->y : number, Symbol(y, Decl(foo_1.ts, 2, 3)) ->x.test : number, Symbol(foo.test, Decl(foo_0.ts, 0, 13)) ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) ->test : number, Symbol(foo.test, Decl(foo_0.ts, 0, 13)) +>y : number +>x.test : number +>x : foo +>test : number === tests/cases/conformance/externalModules/foo_0.ts === class Foo{ ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0)) ->T : T, Symbol(T, Decl(foo_0.ts, 0, 10)) +>Foo : Foo +>T : T test: T; ->test : T, Symbol(test, Decl(foo_0.ts, 0, 13)) ->T : T, Symbol(T, Decl(foo_0.ts, 0, 10)) +>test : T +>T : T } export = Foo; ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0)) +>Foo : Foo diff --git a/tests/baselines/reference/exportAssignmentInterface.symbols b/tests/baselines/reference/exportAssignmentInterface.symbols new file mode 100644 index 0000000000000..22f344a2cb963 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentInterface.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/exportAssignmentInterface_B.ts === +import I1 = require("exportAssignmentInterface_A"); +>I1 : Symbol(I1, Decl(exportAssignmentInterface_B.ts, 0, 0)) + +var i: I1; +>i : Symbol(i, Decl(exportAssignmentInterface_B.ts, 2, 3)) +>I1 : Symbol(I1, Decl(exportAssignmentInterface_B.ts, 0, 0)) + +var n: number = i.p1; +>n : Symbol(n, Decl(exportAssignmentInterface_B.ts, 4, 3)) +>i.p1 : Symbol(I1.p1, Decl(exportAssignmentInterface_A.ts, 0, 13)) +>i : Symbol(i, Decl(exportAssignmentInterface_B.ts, 2, 3)) +>p1 : Symbol(I1.p1, Decl(exportAssignmentInterface_A.ts, 0, 13)) + +=== tests/cases/compiler/exportAssignmentInterface_A.ts === +interface A { +>A : Symbol(A, Decl(exportAssignmentInterface_A.ts, 0, 0)) + + p1: number; +>p1 : Symbol(p1, Decl(exportAssignmentInterface_A.ts, 0, 13)) +} + +export = A; +>A : Symbol(A, Decl(exportAssignmentInterface_A.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentInterface.types b/tests/baselines/reference/exportAssignmentInterface.types index 77be1b5974d45..efd75daca79df 100644 --- a/tests/baselines/reference/exportAssignmentInterface.types +++ b/tests/baselines/reference/exportAssignmentInterface.types @@ -1,25 +1,25 @@ === tests/cases/compiler/exportAssignmentInterface_B.ts === import I1 = require("exportAssignmentInterface_A"); ->I1 : any, Symbol(I1, Decl(exportAssignmentInterface_B.ts, 0, 0)) +>I1 : any var i: I1; ->i : I1, Symbol(i, Decl(exportAssignmentInterface_B.ts, 2, 3)) ->I1 : I1, Symbol(I1, Decl(exportAssignmentInterface_B.ts, 0, 0)) +>i : I1 +>I1 : I1 var n: number = i.p1; ->n : number, Symbol(n, Decl(exportAssignmentInterface_B.ts, 4, 3)) ->i.p1 : number, Symbol(I1.p1, Decl(exportAssignmentInterface_A.ts, 0, 13)) ->i : I1, Symbol(i, Decl(exportAssignmentInterface_B.ts, 2, 3)) ->p1 : number, Symbol(I1.p1, Decl(exportAssignmentInterface_A.ts, 0, 13)) +>n : number +>i.p1 : number +>i : I1 +>p1 : number === tests/cases/compiler/exportAssignmentInterface_A.ts === interface A { ->A : A, Symbol(A, Decl(exportAssignmentInterface_A.ts, 0, 0)) +>A : A p1: number; ->p1 : number, Symbol(p1, Decl(exportAssignmentInterface_A.ts, 0, 13)) +>p1 : number } export = A; ->A : A, Symbol(A, Decl(exportAssignmentInterface_A.ts, 0, 0)) +>A : A diff --git a/tests/baselines/reference/exportAssignmentInternalModule.symbols b/tests/baselines/reference/exportAssignmentInternalModule.symbols new file mode 100644 index 0000000000000..37667aa5c439b --- /dev/null +++ b/tests/baselines/reference/exportAssignmentInternalModule.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/exportAssignmentInternalModule_B.ts === +import modM = require("exportAssignmentInternalModule_A"); +>modM : Symbol(modM, Decl(exportAssignmentInternalModule_B.ts, 0, 0)) + +var n: number = modM.x; +>n : Symbol(n, Decl(exportAssignmentInternalModule_B.ts, 2, 3)) +>modM.x : Symbol(modM.x, Decl(exportAssignmentInternalModule_A.ts, 1, 11)) +>modM : Symbol(modM, Decl(exportAssignmentInternalModule_B.ts, 0, 0)) +>x : Symbol(modM.x, Decl(exportAssignmentInternalModule_A.ts, 1, 11)) + +=== tests/cases/compiler/exportAssignmentInternalModule_A.ts === +module M { +>M : Symbol(M, Decl(exportAssignmentInternalModule_A.ts, 0, 0)) + + export var x; +>x : Symbol(x, Decl(exportAssignmentInternalModule_A.ts, 1, 11)) +} + +export = M; +>M : Symbol(M, Decl(exportAssignmentInternalModule_A.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentInternalModule.types b/tests/baselines/reference/exportAssignmentInternalModule.types index 58bdee0d2d38a..028507b7a0413 100644 --- a/tests/baselines/reference/exportAssignmentInternalModule.types +++ b/tests/baselines/reference/exportAssignmentInternalModule.types @@ -1,21 +1,21 @@ === tests/cases/compiler/exportAssignmentInternalModule_B.ts === import modM = require("exportAssignmentInternalModule_A"); ->modM : typeof modM, Symbol(modM, Decl(exportAssignmentInternalModule_B.ts, 0, 0)) +>modM : typeof modM var n: number = modM.x; ->n : number, Symbol(n, Decl(exportAssignmentInternalModule_B.ts, 2, 3)) ->modM.x : any, Symbol(modM.x, Decl(exportAssignmentInternalModule_A.ts, 1, 11)) ->modM : typeof modM, Symbol(modM, Decl(exportAssignmentInternalModule_B.ts, 0, 0)) ->x : any, Symbol(modM.x, Decl(exportAssignmentInternalModule_A.ts, 1, 11)) +>n : number +>modM.x : any +>modM : typeof modM +>x : any === tests/cases/compiler/exportAssignmentInternalModule_A.ts === module M { ->M : typeof M, Symbol(M, Decl(exportAssignmentInternalModule_A.ts, 0, 0)) +>M : typeof M export var x; ->x : any, Symbol(x, Decl(exportAssignmentInternalModule_A.ts, 1, 11)) +>x : any } export = M; ->M : typeof M, Symbol(M, Decl(exportAssignmentInternalModule_A.ts, 0, 0)) +>M : typeof M diff --git a/tests/baselines/reference/exportAssignmentMergedInterface.symbols b/tests/baselines/reference/exportAssignmentMergedInterface.symbols new file mode 100644 index 0000000000000..a199ed4e6c510 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentMergedInterface.symbols @@ -0,0 +1,63 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var x: foo; +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +x("test"); +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) + +x(42); +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) + +var y: string = x.b; +>y : Symbol(y, Decl(foo_1.ts, 4, 3)) +>x.b : Symbol(foo.b, Decl(foo_0.ts, 1, 19)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>b : Symbol(foo.b, Decl(foo_0.ts, 1, 19)) + +if(!!x.c){ } +>x.c : Symbol(foo.c, Decl(foo_0.ts, 5, 21)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>c : Symbol(foo.c, Decl(foo_0.ts, 5, 21)) + +var z = {x: 1, y: 2}; +>z : Symbol(z, Decl(foo_1.ts, 6, 3)) +>x : Symbol(x, Decl(foo_1.ts, 6, 9)) +>y : Symbol(y, Decl(foo_1.ts, 6, 14)) + +z = x.d; +>z : Symbol(z, Decl(foo_1.ts, 6, 3)) +>x.d : Symbol(foo.d, Decl(foo_0.ts, 6, 12)) +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>d : Symbol(foo.d, Decl(foo_0.ts, 6, 12)) + +=== tests/cases/conformance/externalModules/foo_0.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) + + (a: string): void; +>a : Symbol(a, Decl(foo_0.ts, 1, 2)) + + b: string; +>b : Symbol(b, Decl(foo_0.ts, 1, 19)) +} +interface Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) + + (a: number): number; +>a : Symbol(a, Decl(foo_0.ts, 5, 2)) + + c: boolean; +>c : Symbol(c, Decl(foo_0.ts, 5, 21)) + + d: {x: number; y: number}; +>d : Symbol(d, Decl(foo_0.ts, 6, 12)) +>x : Symbol(x, Decl(foo_0.ts, 7, 5)) +>y : Symbol(y, Decl(foo_0.ts, 7, 15)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) + diff --git a/tests/baselines/reference/exportAssignmentMergedInterface.types b/tests/baselines/reference/exportAssignmentMergedInterface.types index 307552d21a69f..52978783f6d7c 100644 --- a/tests/baselines/reference/exportAssignmentMergedInterface.types +++ b/tests/baselines/reference/exportAssignmentMergedInterface.types @@ -1,73 +1,73 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : any, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : any var x: foo; ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) ->foo : foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>x : foo +>foo : foo x("test"); >x("test") : void ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) +>x : foo >"test" : string x(42); >x(42) : number ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) +>x : foo >42 : number var y: string = x.b; ->y : string, Symbol(y, Decl(foo_1.ts, 4, 3)) ->x.b : string, Symbol(foo.b, Decl(foo_0.ts, 1, 19)) ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) ->b : string, Symbol(foo.b, Decl(foo_0.ts, 1, 19)) +>y : string +>x.b : string +>x : foo +>b : string if(!!x.c){ } >!!x.c : boolean >!x.c : boolean ->x.c : boolean, Symbol(foo.c, Decl(foo_0.ts, 5, 21)) ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) ->c : boolean, Symbol(foo.c, Decl(foo_0.ts, 5, 21)) +>x.c : boolean +>x : foo +>c : boolean var z = {x: 1, y: 2}; ->z : { x: number; y: number; }, Symbol(z, Decl(foo_1.ts, 6, 3)) +>z : { x: number; y: number; } >{x: 1, y: 2} : { x: number; y: number; } ->x : number, Symbol(x, Decl(foo_1.ts, 6, 9)) +>x : number >1 : number ->y : number, Symbol(y, Decl(foo_1.ts, 6, 14)) +>y : number >2 : number z = x.d; >z = x.d : { x: number; y: number; } ->z : { x: number; y: number; }, Symbol(z, Decl(foo_1.ts, 6, 3)) ->x.d : { x: number; y: number; }, Symbol(foo.d, Decl(foo_0.ts, 6, 12)) ->x : foo, Symbol(x, Decl(foo_1.ts, 1, 3)) ->d : { x: number; y: number; }, Symbol(foo.d, Decl(foo_0.ts, 6, 12)) +>z : { x: number; y: number; } +>x.d : { x: number; y: number; } +>x : foo +>d : { x: number; y: number; } === tests/cases/conformance/externalModules/foo_0.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) +>Foo : Foo (a: string): void; ->a : string, Symbol(a, Decl(foo_0.ts, 1, 2)) +>a : string b: string; ->b : string, Symbol(b, Decl(foo_0.ts, 1, 19)) +>b : string } interface Foo { ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) +>Foo : Foo (a: number): number; ->a : number, Symbol(a, Decl(foo_0.ts, 5, 2)) +>a : number c: boolean; ->c : boolean, Symbol(c, Decl(foo_0.ts, 5, 21)) +>c : boolean d: {x: number; y: number}; ->d : { x: number; y: number; }, Symbol(d, Decl(foo_0.ts, 6, 12)) ->x : number, Symbol(x, Decl(foo_0.ts, 7, 5)) ->y : number, Symbol(y, Decl(foo_0.ts, 7, 15)) +>d : { x: number; y: number; } +>x : number +>y : number } export = Foo; ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 3, 1)) +>Foo : Foo diff --git a/tests/baselines/reference/exportAssignmentMergedModule.symbols b/tests/baselines/reference/exportAssignmentMergedModule.symbols new file mode 100644 index 0000000000000..2fe8d01764bd0 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentMergedModule.symbols @@ -0,0 +1,57 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var a: number = foo.a(); +>a : Symbol(a, Decl(foo_1.ts, 1, 3)) +>foo.a : Symbol(foo.a, Decl(foo_0.ts, 0, 12)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>a : Symbol(foo.a, Decl(foo_0.ts, 0, 12)) + +if(!!foo.b){ +>foo.b : Symbol(foo.b, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>b : Symbol(foo.b, Decl(foo_0.ts, 4, 11)) + + foo.Test.answer = foo.c(42); +>foo.Test.answer : Symbol(foo.Test.answer, Decl(foo_0.ts, 11, 12)) +>foo.Test : Symbol(foo.Test, Decl(foo_0.ts, 9, 2)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>Test : Symbol(foo.Test, Decl(foo_0.ts, 9, 2)) +>answer : Symbol(foo.Test.answer, Decl(foo_0.ts, 11, 12)) +>foo.c : Symbol(foo.c, Decl(foo_0.ts, 6, 12)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>c : Symbol(foo.c, Decl(foo_0.ts, 6, 12)) +} +=== tests/cases/conformance/externalModules/foo_0.ts === +module Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 5, 1)) + + export function a(){ +>a : Symbol(a, Decl(foo_0.ts, 0, 12)) + + return 5; + } + export var b = true; +>b : Symbol(b, Decl(foo_0.ts, 4, 11)) +} +module Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 5, 1)) + + export function c(a: number){ +>c : Symbol(c, Decl(foo_0.ts, 6, 12)) +>a : Symbol(a, Decl(foo_0.ts, 7, 19)) + + return a; +>a : Symbol(a, Decl(foo_0.ts, 7, 19)) + } + export module Test { +>Test : Symbol(Test, Decl(foo_0.ts, 9, 2)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 11, 12)) + } +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 5, 1)) + diff --git a/tests/baselines/reference/exportAssignmentMergedModule.types b/tests/baselines/reference/exportAssignmentMergedModule.types index 6591723ccf567..39f0d8d859ef8 100644 --- a/tests/baselines/reference/exportAssignmentMergedModule.types +++ b/tests/baselines/reference/exportAssignmentMergedModule.types @@ -1,66 +1,66 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo var a: number = foo.a(); ->a : number, Symbol(a, Decl(foo_1.ts, 1, 3)) +>a : number >foo.a() : number ->foo.a : () => number, Symbol(foo.a, Decl(foo_0.ts, 0, 12)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->a : () => number, Symbol(foo.a, Decl(foo_0.ts, 0, 12)) +>foo.a : () => number +>foo : typeof foo +>a : () => number if(!!foo.b){ >!!foo.b : boolean >!foo.b : boolean ->foo.b : boolean, Symbol(foo.b, Decl(foo_0.ts, 4, 11)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->b : boolean, Symbol(foo.b, Decl(foo_0.ts, 4, 11)) +>foo.b : boolean +>foo : typeof foo +>b : boolean foo.Test.answer = foo.c(42); >foo.Test.answer = foo.c(42) : number ->foo.Test.answer : number, Symbol(foo.Test.answer, Decl(foo_0.ts, 11, 12)) ->foo.Test : typeof foo.Test, Symbol(foo.Test, Decl(foo_0.ts, 9, 2)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->Test : typeof foo.Test, Symbol(foo.Test, Decl(foo_0.ts, 9, 2)) ->answer : number, Symbol(foo.Test.answer, Decl(foo_0.ts, 11, 12)) +>foo.Test.answer : number +>foo.Test : typeof foo.Test +>foo : typeof foo +>Test : typeof foo.Test +>answer : number >foo.c(42) : number ->foo.c : (a: number) => number, Symbol(foo.c, Decl(foo_0.ts, 6, 12)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->c : (a: number) => number, Symbol(foo.c, Decl(foo_0.ts, 6, 12)) +>foo.c : (a: number) => number +>foo : typeof foo +>c : (a: number) => number >42 : number } === tests/cases/conformance/externalModules/foo_0.ts === module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 5, 1)) +>Foo : typeof Foo export function a(){ ->a : () => number, Symbol(a, Decl(foo_0.ts, 0, 12)) +>a : () => number return 5; >5 : number } export var b = true; ->b : boolean, Symbol(b, Decl(foo_0.ts, 4, 11)) +>b : boolean >true : boolean } module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 5, 1)) +>Foo : typeof Foo export function c(a: number){ ->c : (a: number) => number, Symbol(c, Decl(foo_0.ts, 6, 12)) ->a : number, Symbol(a, Decl(foo_0.ts, 7, 19)) +>c : (a: number) => number +>a : number return a; ->a : number, Symbol(a, Decl(foo_0.ts, 7, 19)) +>a : number } export module Test { ->Test : typeof Test, Symbol(Test, Decl(foo_0.ts, 9, 2)) +>Test : typeof Test export var answer = 42; ->answer : number, Symbol(answer, Decl(foo_0.ts, 11, 12)) +>answer : number >42 : number } } export = Foo; ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 5, 1)) +>Foo : typeof Foo diff --git a/tests/baselines/reference/exportAssignmentOfGenericType1.symbols b/tests/baselines/reference/exportAssignmentOfGenericType1.symbols new file mode 100644 index 0000000000000..8ae7dbc73a9bd --- /dev/null +++ b/tests/baselines/reference/exportAssignmentOfGenericType1.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/exportAssignmentOfGenericType1_1.ts === +/// +import q = require("exportAssignmentOfGenericType1_0"); +>q : Symbol(q, Decl(exportAssignmentOfGenericType1_1.ts, 0, 0)) + +class M extends q { } +>M : Symbol(M, Decl(exportAssignmentOfGenericType1_1.ts, 1, 55)) +>q : Symbol(q, Decl(exportAssignmentOfGenericType1_1.ts, 0, 0)) + +var m: M; +>m : Symbol(m, Decl(exportAssignmentOfGenericType1_1.ts, 4, 3)) +>M : Symbol(M, Decl(exportAssignmentOfGenericType1_1.ts, 1, 55)) + +var r: string = m.foo; +>r : Symbol(r, Decl(exportAssignmentOfGenericType1_1.ts, 5, 3)) +>m.foo : Symbol(q.foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) +>m : Symbol(m, Decl(exportAssignmentOfGenericType1_1.ts, 4, 3)) +>foo : Symbol(q.foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) + +=== tests/cases/compiler/exportAssignmentOfGenericType1_0.ts === +export = T; +>T : Symbol(T, Decl(exportAssignmentOfGenericType1_0.ts, 0, 11)) + +class T { foo: X; } +>T : Symbol(T, Decl(exportAssignmentOfGenericType1_0.ts, 0, 11)) +>X : Symbol(X, Decl(exportAssignmentOfGenericType1_0.ts, 1, 8)) +>foo : Symbol(foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) +>X : Symbol(X, Decl(exportAssignmentOfGenericType1_0.ts, 1, 8)) + diff --git a/tests/baselines/reference/exportAssignmentOfGenericType1.types b/tests/baselines/reference/exportAssignmentOfGenericType1.types index b489ffb3986d2..1bf3e7454a704 100644 --- a/tests/baselines/reference/exportAssignmentOfGenericType1.types +++ b/tests/baselines/reference/exportAssignmentOfGenericType1.types @@ -1,29 +1,29 @@ === tests/cases/compiler/exportAssignmentOfGenericType1_1.ts === /// import q = require("exportAssignmentOfGenericType1_0"); ->q : typeof q, Symbol(q, Decl(exportAssignmentOfGenericType1_1.ts, 0, 0)) +>q : typeof q class M extends q { } ->M : M, Symbol(M, Decl(exportAssignmentOfGenericType1_1.ts, 1, 55)) ->q : q, Symbol(q, Decl(exportAssignmentOfGenericType1_1.ts, 0, 0)) +>M : M +>q : q var m: M; ->m : M, Symbol(m, Decl(exportAssignmentOfGenericType1_1.ts, 4, 3)) ->M : M, Symbol(M, Decl(exportAssignmentOfGenericType1_1.ts, 1, 55)) +>m : M +>M : M var r: string = m.foo; ->r : string, Symbol(r, Decl(exportAssignmentOfGenericType1_1.ts, 5, 3)) ->m.foo : string, Symbol(q.foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) ->m : M, Symbol(m, Decl(exportAssignmentOfGenericType1_1.ts, 4, 3)) ->foo : string, Symbol(q.foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) +>r : string +>m.foo : string +>m : M +>foo : string === tests/cases/compiler/exportAssignmentOfGenericType1_0.ts === export = T; ->T : T, Symbol(T, Decl(exportAssignmentOfGenericType1_0.ts, 0, 11)) +>T : T class T { foo: X; } ->T : T, Symbol(T, Decl(exportAssignmentOfGenericType1_0.ts, 0, 11)) ->X : X, Symbol(X, Decl(exportAssignmentOfGenericType1_0.ts, 1, 8)) ->foo : X, Symbol(foo, Decl(exportAssignmentOfGenericType1_0.ts, 1, 12)) ->X : X, Symbol(X, Decl(exportAssignmentOfGenericType1_0.ts, 1, 8)) +>T : T +>X : X +>foo : X +>X : X diff --git a/tests/baselines/reference/exportAssignmentTopLevelClodule.symbols b/tests/baselines/reference/exportAssignmentTopLevelClodule.symbols new file mode 100644 index 0000000000000..d672457f4513b --- /dev/null +++ b/tests/baselines/reference/exportAssignmentTopLevelClodule.symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.answer === 42){ +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) + + var x = new foo(); +>x : Symbol(x, Decl(foo_1.ts, 2, 4)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +class Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + test = "test"; +>test : Symbol(test, Decl(foo_0.ts, 0, 11)) +} +module Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 4, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + diff --git a/tests/baselines/reference/exportAssignmentTopLevelClodule.types b/tests/baselines/reference/exportAssignmentTopLevelClodule.types index 0ffe0f047d3d1..93ce39c3b6079 100644 --- a/tests/baselines/reference/exportAssignmentTopLevelClodule.types +++ b/tests/baselines/reference/exportAssignmentTopLevelClodule.types @@ -1,35 +1,35 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo if(foo.answer === 42){ >foo.answer === 42 : boolean ->foo.answer : number, Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->answer : number, Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo.answer : number +>foo : typeof foo +>answer : number >42 : number var x = new foo(); ->x : foo, Symbol(x, Decl(foo_1.ts, 2, 4)) +>x : foo >new foo() : foo ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo } === tests/cases/conformance/externalModules/foo_0.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>Foo : Foo test = "test"; ->test : string, Symbol(test, Decl(foo_0.ts, 0, 11)) +>test : string >"test" : string } module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>Foo : typeof Foo export var answer = 42; ->answer : number, Symbol(answer, Decl(foo_0.ts, 4, 11)) +>answer : number >42 : number } export = Foo; ->Foo : Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>Foo : Foo diff --git a/tests/baselines/reference/exportAssignmentTopLevelEnumdule.symbols b/tests/baselines/reference/exportAssignmentTopLevelEnumdule.symbols new file mode 100644 index 0000000000000..6ad539f5f8e78 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentTopLevelEnumdule.symbols @@ -0,0 +1,39 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var color: foo; +>color : Symbol(color, Decl(foo_1.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(color === foo.green){ +>color : Symbol(color, Decl(foo_1.ts, 1, 3)) +>foo.green : Symbol(foo.green, Decl(foo_0.ts, 1, 5)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>green : Symbol(foo.green, Decl(foo_0.ts, 1, 5)) + + color = foo.answer; +>color : Symbol(color, Decl(foo_1.ts, 1, 3)) +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +enum foo { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + red, green, blue +>red : Symbol(foo.red, Decl(foo_0.ts, 0, 10)) +>green : Symbol(foo.green, Decl(foo_0.ts, 1, 5)) +>blue : Symbol(foo.blue, Decl(foo_0.ts, 1, 12)) +} +module foo { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 4, 11)) +} +export = foo; +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + diff --git a/tests/baselines/reference/exportAssignmentTopLevelEnumdule.types b/tests/baselines/reference/exportAssignmentTopLevelEnumdule.types index 7b9b79947de85..d60fc87831912 100644 --- a/tests/baselines/reference/exportAssignmentTopLevelEnumdule.types +++ b/tests/baselines/reference/exportAssignmentTopLevelEnumdule.types @@ -1,42 +1,42 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo var color: foo; ->color : foo, Symbol(color, Decl(foo_1.ts, 1, 3)) ->foo : foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>color : foo +>foo : foo if(color === foo.green){ >color === foo.green : boolean ->color : foo, Symbol(color, Decl(foo_1.ts, 1, 3)) ->foo.green : foo, Symbol(foo.green, Decl(foo_0.ts, 1, 5)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->green : foo, Symbol(foo.green, Decl(foo_0.ts, 1, 5)) +>color : foo +>foo.green : foo +>foo : typeof foo +>green : foo color = foo.answer; >color = foo.answer : number ->color : foo, Symbol(color, Decl(foo_1.ts, 1, 3)) ->foo.answer : number, Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->answer : number, Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>color : foo +>foo.answer : number +>foo : typeof foo +>answer : number } === tests/cases/conformance/externalModules/foo_0.ts === enum foo { ->foo : foo, Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>foo : foo red, green, blue ->red : foo, Symbol(foo.red, Decl(foo_0.ts, 0, 10)) ->green : foo, Symbol(foo.green, Decl(foo_0.ts, 1, 5)) ->blue : foo, Symbol(foo.blue, Decl(foo_0.ts, 1, 12)) +>red : foo +>green : foo +>blue : foo } module foo { ->foo : typeof foo, Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>foo : typeof foo export var answer = 42; ->answer : number, Symbol(answer, Decl(foo_0.ts, 4, 11)) +>answer : number >42 : number } export = foo; ->foo : foo, Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>foo : foo diff --git a/tests/baselines/reference/exportAssignmentTopLevelFundule.symbols b/tests/baselines/reference/exportAssignmentTopLevelFundule.symbols new file mode 100644 index 0000000000000..672c8ca623161 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentTopLevelFundule.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.answer === 42){ +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) + + var x = foo(); +>x : Symbol(x, Decl(foo_1.ts, 2, 4)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +function foo() { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + return "test"; +} +module foo { +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 4, 11)) +} +export = foo; +>foo : Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) + diff --git a/tests/baselines/reference/exportAssignmentTopLevelFundule.types b/tests/baselines/reference/exportAssignmentTopLevelFundule.types index b9b75064c2a42..3464f4294a035 100644 --- a/tests/baselines/reference/exportAssignmentTopLevelFundule.types +++ b/tests/baselines/reference/exportAssignmentTopLevelFundule.types @@ -1,34 +1,34 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo if(foo.answer === 42){ >foo.answer === 42 : boolean ->foo.answer : number, Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->answer : number, Symbol(foo.answer, Decl(foo_0.ts, 4, 11)) +>foo.answer : number +>foo : typeof foo +>answer : number >42 : number var x = foo(); ->x : string, Symbol(x, Decl(foo_1.ts, 2, 4)) +>x : string >foo() : string ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo } === tests/cases/conformance/externalModules/foo_0.ts === function foo() { ->foo : typeof foo, Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>foo : typeof foo return "test"; >"test" : string } module foo { ->foo : typeof foo, Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>foo : typeof foo export var answer = 42; ->answer : number, Symbol(answer, Decl(foo_0.ts, 4, 11)) +>answer : number >42 : number } export = foo; ->foo : typeof foo, Symbol(foo, Decl(foo_0.ts, 0, 0), Decl(foo_0.ts, 2, 1)) +>foo : typeof foo diff --git a/tests/baselines/reference/exportAssignmentTopLevelIdentifier.symbols b/tests/baselines/reference/exportAssignmentTopLevelIdentifier.symbols new file mode 100644 index 0000000000000..55b3d3718f983 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentTopLevelIdentifier.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require("./foo_0"); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +if(foo.answer === 42){ +>foo.answer : Symbol(foo.answer, Decl(foo_0.ts, 1, 11)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>answer : Symbol(foo.answer, Decl(foo_0.ts, 1, 11)) + +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +module Foo { +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0)) + + export var answer = 42; +>answer : Symbol(answer, Decl(foo_0.ts, 1, 11)) +} +export = Foo; +>Foo : Symbol(Foo, Decl(foo_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentTopLevelIdentifier.types b/tests/baselines/reference/exportAssignmentTopLevelIdentifier.types index 1e83760d023a7..34971ca9cd6ba 100644 --- a/tests/baselines/reference/exportAssignmentTopLevelIdentifier.types +++ b/tests/baselines/reference/exportAssignmentTopLevelIdentifier.types @@ -1,24 +1,24 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo if(foo.answer === 42){ >foo.answer === 42 : boolean ->foo.answer : number, Symbol(foo.answer, Decl(foo_0.ts, 1, 11)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->answer : number, Symbol(foo.answer, Decl(foo_0.ts, 1, 11)) +>foo.answer : number +>foo : typeof foo +>answer : number >42 : number } === tests/cases/conformance/externalModules/foo_0.ts === module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0)) +>Foo : typeof Foo export var answer = 42; ->answer : number, Symbol(answer, Decl(foo_0.ts, 1, 11)) +>answer : number >42 : number } export = Foo; ->Foo : typeof Foo, Symbol(Foo, Decl(foo_0.ts, 0, 0)) +>Foo : typeof Foo diff --git a/tests/baselines/reference/exportAssignmentVariable.symbols b/tests/baselines/reference/exportAssignmentVariable.symbols new file mode 100644 index 0000000000000..b819678d080a5 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentVariable.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/exportAssignmentVariable_B.ts === +import y = require("exportAssignmentVariable_A"); +>y : Symbol(y, Decl(exportAssignmentVariable_B.ts, 0, 0)) + +var n: number = y; +>n : Symbol(n, Decl(exportAssignmentVariable_B.ts, 2, 3)) +>y : Symbol(y, Decl(exportAssignmentVariable_B.ts, 0, 0)) + +=== tests/cases/compiler/exportAssignmentVariable_A.ts === +var x = 0; +>x : Symbol(x, Decl(exportAssignmentVariable_A.ts, 0, 3)) + +export = x; +>x : Symbol(x, Decl(exportAssignmentVariable_A.ts, 0, 3)) + diff --git a/tests/baselines/reference/exportAssignmentVariable.types b/tests/baselines/reference/exportAssignmentVariable.types index c359f8823d786..71f0afdea6812 100644 --- a/tests/baselines/reference/exportAssignmentVariable.types +++ b/tests/baselines/reference/exportAssignmentVariable.types @@ -1,16 +1,16 @@ === tests/cases/compiler/exportAssignmentVariable_B.ts === import y = require("exportAssignmentVariable_A"); ->y : number, Symbol(y, Decl(exportAssignmentVariable_B.ts, 0, 0)) +>y : number var n: number = y; ->n : number, Symbol(n, Decl(exportAssignmentVariable_B.ts, 2, 3)) ->y : number, Symbol(y, Decl(exportAssignmentVariable_B.ts, 0, 0)) +>n : number +>y : number === tests/cases/compiler/exportAssignmentVariable_A.ts === var x = 0; ->x : number, Symbol(x, Decl(exportAssignmentVariable_A.ts, 0, 3)) +>x : number >0 : number export = x; ->x : number, Symbol(x, Decl(exportAssignmentVariable_A.ts, 0, 3)) +>x : number diff --git a/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.symbols b/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.symbols new file mode 100644 index 0000000000000..80a48dff3ad79 --- /dev/null +++ b/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts === +module m2 { +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) + + export interface connectModule { +>connectModule : Symbol(connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) + + (res, req, next): void; +>res : Symbol(res, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 9)) +>req : Symbol(req, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 13)) +>next : Symbol(next, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 18)) + } + export interface connectExport { +>connectExport : Symbol(connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) + + use: (mod: connectModule) => connectExport; +>use : Symbol(use, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 4, 36)) +>mod : Symbol(mod, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 5, 14)) +>connectModule : Symbol(connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) +>connectExport : Symbol(connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 5, 51)) +>port : Symbol(port, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 6, 17)) + } + +} + +module M { +>M : Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) + + export var server: { +>server : Symbol(server, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 12, 14)) + + (): m2.connectExport; +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>connectExport : Symbol(m2.connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) + + test1: m2.connectModule; +>test1 : Symbol(test1, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 13, 29)) +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>connectModule : Symbol(m2.connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) + + test2(): m2.connectModule; +>test2 : Symbol(test2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 14, 32)) +>m2 : Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>connectModule : Symbol(m2.connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) + + }; +} +import M22 = M; +>M22 : Symbol(M22, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 17, 1)) +>M : Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) + +export = M; +>M : Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) + diff --git a/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.types b/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.types index d8a79affa0f43..9008cc267c8d9 100644 --- a/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.types +++ b/tests/baselines/reference/exportAssignmentWithImportStatementPrivacyError.types @@ -1,57 +1,57 @@ === tests/cases/compiler/exportAssignmentWithImportStatementPrivacyError.ts === module m2 { ->m2 : any, Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) +>m2 : any export interface connectModule { ->connectModule : connectModule, Symbol(connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) +>connectModule : connectModule (res, req, next): void; ->res : any, Symbol(res, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 9)) ->req : any, Symbol(req, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 13)) ->next : any, Symbol(next, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 2, 18)) +>res : any +>req : any +>next : any } export interface connectExport { ->connectExport : connectExport, Symbol(connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) +>connectExport : connectExport use: (mod: connectModule) => connectExport; ->use : (mod: connectModule) => connectExport, Symbol(use, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 4, 36)) ->mod : connectModule, Symbol(mod, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 5, 14)) ->connectModule : connectModule, Symbol(connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) ->connectExport : connectExport, Symbol(connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) +>use : (mod: connectModule) => connectExport +>mod : connectModule +>connectModule : connectModule +>connectExport : connectExport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 5, 51)) ->port : number, Symbol(port, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 6, 17)) +>listen : (port: number) => void +>port : number } } module M { ->M : typeof M, Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) +>M : typeof M export var server: { ->server : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; }, Symbol(server, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 12, 14)) +>server : { (): m2.connectExport; test1: m2.connectModule; test2(): m2.connectModule; } (): m2.connectExport; ->m2 : any, Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) ->connectExport : m2.connectExport, Symbol(m2.connectExport, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 3, 5)) +>m2 : any +>connectExport : m2.connectExport test1: m2.connectModule; ->test1 : m2.connectModule, Symbol(test1, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 13, 29)) ->m2 : any, Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) +>test1 : m2.connectModule +>m2 : any +>connectModule : m2.connectModule test2(): m2.connectModule; ->test2 : () => m2.connectModule, Symbol(test2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 14, 32)) ->m2 : any, Symbol(m2, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 0)) ->connectModule : m2.connectModule, Symbol(m2.connectModule, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 0, 11)) +>test2 : () => m2.connectModule +>m2 : any +>connectModule : m2.connectModule }; } import M22 = M; ->M22 : typeof M, Symbol(M22, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 17, 1)) ->M : typeof M, Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) +>M22 : typeof M +>M : typeof M export = M; ->M : typeof M, Symbol(M, Decl(exportAssignmentWithImportStatementPrivacyError.ts, 9, 1)) +>M : typeof M diff --git a/tests/baselines/reference/exportAssignmentWithPrivacyError.symbols b/tests/baselines/reference/exportAssignmentWithPrivacyError.symbols new file mode 100644 index 0000000000000..f69a4e008232e --- /dev/null +++ b/tests/baselines/reference/exportAssignmentWithPrivacyError.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/exportAssignmentWithPrivacyError.ts === +interface connectmodule { +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) + + (res, req, next): void; +>res : Symbol(res, Decl(exportAssignmentWithPrivacyError.ts, 1, 5)) +>req : Symbol(req, Decl(exportAssignmentWithPrivacyError.ts, 1, 9)) +>next : Symbol(next, Decl(exportAssignmentWithPrivacyError.ts, 1, 14)) +} +interface connectexport { +>connectexport : Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) + + use: (mod: connectmodule) => connectexport; +>use : Symbol(use, Decl(exportAssignmentWithPrivacyError.ts, 3, 25)) +>mod : Symbol(mod, Decl(exportAssignmentWithPrivacyError.ts, 4, 10)) +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) +>connectexport : Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) + + listen: (port: number) => void; +>listen : Symbol(listen, Decl(exportAssignmentWithPrivacyError.ts, 4, 47)) +>port : Symbol(port, Decl(exportAssignmentWithPrivacyError.ts, 5, 13)) +} + +var server: { +>server : Symbol(server, Decl(exportAssignmentWithPrivacyError.ts, 8, 3)) + + (): connectexport; +>connectexport : Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) + + test1: connectmodule; +>test1 : Symbol(test1, Decl(exportAssignmentWithPrivacyError.ts, 9, 22)) +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) + + test2(): connectmodule; +>test2 : Symbol(test2, Decl(exportAssignmentWithPrivacyError.ts, 10, 25)) +>connectmodule : Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) + +}; + +export = server; +>server : Symbol(server, Decl(exportAssignmentWithPrivacyError.ts, 8, 3)) + + diff --git a/tests/baselines/reference/exportAssignmentWithPrivacyError.types b/tests/baselines/reference/exportAssignmentWithPrivacyError.types index f1ff3725ce26c..272849bd8c9eb 100644 --- a/tests/baselines/reference/exportAssignmentWithPrivacyError.types +++ b/tests/baselines/reference/exportAssignmentWithPrivacyError.types @@ -1,43 +1,43 @@ === tests/cases/compiler/exportAssignmentWithPrivacyError.ts === interface connectmodule { ->connectmodule : connectmodule, Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) +>connectmodule : connectmodule (res, req, next): void; ->res : any, Symbol(res, Decl(exportAssignmentWithPrivacyError.ts, 1, 5)) ->req : any, Symbol(req, Decl(exportAssignmentWithPrivacyError.ts, 1, 9)) ->next : any, Symbol(next, Decl(exportAssignmentWithPrivacyError.ts, 1, 14)) +>res : any +>req : any +>next : any } interface connectexport { ->connectexport : connectexport, Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) +>connectexport : connectexport use: (mod: connectmodule) => connectexport; ->use : (mod: connectmodule) => connectexport, Symbol(use, Decl(exportAssignmentWithPrivacyError.ts, 3, 25)) ->mod : connectmodule, Symbol(mod, Decl(exportAssignmentWithPrivacyError.ts, 4, 10)) ->connectmodule : connectmodule, Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) ->connectexport : connectexport, Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) +>use : (mod: connectmodule) => connectexport +>mod : connectmodule +>connectmodule : connectmodule +>connectexport : connectexport listen: (port: number) => void; ->listen : (port: number) => void, Symbol(listen, Decl(exportAssignmentWithPrivacyError.ts, 4, 47)) ->port : number, Symbol(port, Decl(exportAssignmentWithPrivacyError.ts, 5, 13)) +>listen : (port: number) => void +>port : number } var server: { ->server : { (): connectexport; test1: connectmodule; test2(): connectmodule; }, Symbol(server, Decl(exportAssignmentWithPrivacyError.ts, 8, 3)) +>server : { (): connectexport; test1: connectmodule; test2(): connectmodule; } (): connectexport; ->connectexport : connectexport, Symbol(connectexport, Decl(exportAssignmentWithPrivacyError.ts, 2, 1)) +>connectexport : connectexport test1: connectmodule; ->test1 : connectmodule, Symbol(test1, Decl(exportAssignmentWithPrivacyError.ts, 9, 22)) ->connectmodule : connectmodule, Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) +>test1 : connectmodule +>connectmodule : connectmodule test2(): connectmodule; ->test2 : () => connectmodule, Symbol(test2, Decl(exportAssignmentWithPrivacyError.ts, 10, 25)) ->connectmodule : connectmodule, Symbol(connectmodule, Decl(exportAssignmentWithPrivacyError.ts, 0, 0)) +>test2 : () => connectmodule +>connectmodule : connectmodule }; export = server; ->server : { (): connectexport; test1: connectmodule; test2(): connectmodule; }, Symbol(server, Decl(exportAssignmentWithPrivacyError.ts, 8, 3)) +>server : { (): connectexport; test1: connectmodule; test2(): connectmodule; } diff --git a/tests/baselines/reference/exportAssignmentWithoutIdentifier1.symbols b/tests/baselines/reference/exportAssignmentWithoutIdentifier1.symbols new file mode 100644 index 0000000000000..bcbf5eb1f60af --- /dev/null +++ b/tests/baselines/reference/exportAssignmentWithoutIdentifier1.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/exportAssignmentWithoutIdentifier1.ts === +function Greeter() { +>Greeter : Symbol(Greeter, Decl(exportAssignmentWithoutIdentifier1.ts, 0, 0)) + + //... +} +Greeter.prototype.greet = function () { +>Greeter.prototype : Symbol(Function.prototype, Decl(lib.d.ts, 249, 48)) +>Greeter : Symbol(Greeter, Decl(exportAssignmentWithoutIdentifier1.ts, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.d.ts, 249, 48)) + + //... +} +export = new Greeter(); +>Greeter : Symbol(Greeter, Decl(exportAssignmentWithoutIdentifier1.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportAssignmentWithoutIdentifier1.types b/tests/baselines/reference/exportAssignmentWithoutIdentifier1.types index 5180a54a3172c..56da73abd9da8 100644 --- a/tests/baselines/reference/exportAssignmentWithoutIdentifier1.types +++ b/tests/baselines/reference/exportAssignmentWithoutIdentifier1.types @@ -1,15 +1,15 @@ === tests/cases/compiler/exportAssignmentWithoutIdentifier1.ts === function Greeter() { ->Greeter : () => void, Symbol(Greeter, Decl(exportAssignmentWithoutIdentifier1.ts, 0, 0)) +>Greeter : () => void //... } Greeter.prototype.greet = function () { >Greeter.prototype.greet = function () { //...} : () => void >Greeter.prototype.greet : any ->Greeter.prototype : any, Symbol(Function.prototype, Decl(lib.d.ts, 249, 48)) ->Greeter : () => void, Symbol(Greeter, Decl(exportAssignmentWithoutIdentifier1.ts, 0, 0)) ->prototype : any, Symbol(Function.prototype, Decl(lib.d.ts, 249, 48)) +>Greeter.prototype : any +>Greeter : () => void +>prototype : any >greet : any >function () { //...} : () => void @@ -17,5 +17,5 @@ Greeter.prototype.greet = function () { } export = new Greeter(); >new Greeter() : any ->Greeter : () => void, Symbol(Greeter, Decl(exportAssignmentWithoutIdentifier1.ts, 0, 0)) +>Greeter : () => void diff --git a/tests/baselines/reference/exportCodeGen.symbols b/tests/baselines/reference/exportCodeGen.symbols new file mode 100644 index 0000000000000..fbc70cf8324ef --- /dev/null +++ b/tests/baselines/reference/exportCodeGen.symbols @@ -0,0 +1,109 @@ +=== tests/cases/conformance/internalModules/codeGeneration/exportCodeGen.ts === + +// should replace all refs to 'x' in the body, +// with fully qualified +module A { +>A : Symbol(A, Decl(exportCodeGen.ts, 0, 0)) + + export var x = 12; +>x : Symbol(x, Decl(exportCodeGen.ts, 4, 14)) + + function lt12() { +>lt12 : Symbol(lt12, Decl(exportCodeGen.ts, 4, 22)) + + return x < 12; +>x : Symbol(x, Decl(exportCodeGen.ts, 4, 14)) + } +} + +// should not fully qualify 'x' +module B { +>B : Symbol(B, Decl(exportCodeGen.ts, 8, 1)) + + var x = 12; +>x : Symbol(x, Decl(exportCodeGen.ts, 12, 7)) + + function lt12() { +>lt12 : Symbol(lt12, Decl(exportCodeGen.ts, 12, 15)) + + return x < 12; +>x : Symbol(x, Decl(exportCodeGen.ts, 12, 7)) + } +} + +// not copied, since not exported +module C { +>C : Symbol(C, Decl(exportCodeGen.ts, 16, 1)) + + function no() { +>no : Symbol(no, Decl(exportCodeGen.ts, 19, 10)) + + return false; + } +} + +// copies, since exported +module D { +>D : Symbol(D, Decl(exportCodeGen.ts, 23, 1)) + + export function yes() { +>yes : Symbol(yes, Decl(exportCodeGen.ts, 26, 10)) + + return true; + } +} + +// validate all exportable statements +module E { +>E : Symbol(E, Decl(exportCodeGen.ts, 30, 1)) + + export enum Color { Red } +>Color : Symbol(Color, Decl(exportCodeGen.ts, 33, 10)) +>Red : Symbol(Color.Red, Decl(exportCodeGen.ts, 34, 23)) + + export function fn() { } +>fn : Symbol(fn, Decl(exportCodeGen.ts, 34, 29)) + + export interface I { id: number } +>I : Symbol(I, Decl(exportCodeGen.ts, 35, 28)) +>id : Symbol(id, Decl(exportCodeGen.ts, 36, 24)) + + export class C { name: string } +>C : Symbol(C, Decl(exportCodeGen.ts, 36, 37)) +>name : Symbol(name, Decl(exportCodeGen.ts, 37, 20)) + + export module M { +>M : Symbol(M, Decl(exportCodeGen.ts, 37, 35)) + + export var x = 42; +>x : Symbol(x, Decl(exportCodeGen.ts, 39, 18)) + } +} + +// validate all exportable statements, +// which are not exported +module F { +>F : Symbol(F, Decl(exportCodeGen.ts, 41, 1)) + + enum Color { Red } +>Color : Symbol(Color, Decl(exportCodeGen.ts, 45, 10)) +>Red : Symbol(Color.Red, Decl(exportCodeGen.ts, 46, 16)) + + function fn() { } +>fn : Symbol(fn, Decl(exportCodeGen.ts, 46, 22)) + + interface I { id: number } +>I : Symbol(I, Decl(exportCodeGen.ts, 47, 21)) +>id : Symbol(id, Decl(exportCodeGen.ts, 48, 17)) + + class C { name: string } +>C : Symbol(C, Decl(exportCodeGen.ts, 48, 30)) +>name : Symbol(name, Decl(exportCodeGen.ts, 49, 13)) + + module M { +>M : Symbol(M, Decl(exportCodeGen.ts, 49, 28)) + + var x = 42; +>x : Symbol(x, Decl(exportCodeGen.ts, 51, 11)) + } +} diff --git a/tests/baselines/reference/exportCodeGen.types b/tests/baselines/reference/exportCodeGen.types index 4c84005eba52c..e08678a76daa1 100644 --- a/tests/baselines/reference/exportCodeGen.types +++ b/tests/baselines/reference/exportCodeGen.types @@ -3,46 +3,46 @@ // should replace all refs to 'x' in the body, // with fully qualified module A { ->A : typeof A, Symbol(A, Decl(exportCodeGen.ts, 0, 0)) +>A : typeof A export var x = 12; ->x : number, Symbol(x, Decl(exportCodeGen.ts, 4, 14)) +>x : number >12 : number function lt12() { ->lt12 : () => boolean, Symbol(lt12, Decl(exportCodeGen.ts, 4, 22)) +>lt12 : () => boolean return x < 12; >x < 12 : boolean ->x : number, Symbol(x, Decl(exportCodeGen.ts, 4, 14)) +>x : number >12 : number } } // should not fully qualify 'x' module B { ->B : typeof B, Symbol(B, Decl(exportCodeGen.ts, 8, 1)) +>B : typeof B var x = 12; ->x : number, Symbol(x, Decl(exportCodeGen.ts, 12, 7)) +>x : number >12 : number function lt12() { ->lt12 : () => boolean, Symbol(lt12, Decl(exportCodeGen.ts, 12, 15)) +>lt12 : () => boolean return x < 12; >x < 12 : boolean ->x : number, Symbol(x, Decl(exportCodeGen.ts, 12, 7)) +>x : number >12 : number } } // not copied, since not exported module C { ->C : typeof C, Symbol(C, Decl(exportCodeGen.ts, 16, 1)) +>C : typeof C function no() { ->no : () => boolean, Symbol(no, Decl(exportCodeGen.ts, 19, 10)) +>no : () => boolean return false; >false : boolean @@ -51,10 +51,10 @@ module C { // copies, since exported module D { ->D : typeof D, Symbol(D, Decl(exportCodeGen.ts, 23, 1)) +>D : typeof D export function yes() { ->yes : () => boolean, Symbol(yes, Decl(exportCodeGen.ts, 26, 10)) +>yes : () => boolean return true; >true : boolean @@ -63,28 +63,28 @@ module D { // validate all exportable statements module E { ->E : typeof E, Symbol(E, Decl(exportCodeGen.ts, 30, 1)) +>E : typeof E export enum Color { Red } ->Color : Color, Symbol(Color, Decl(exportCodeGen.ts, 33, 10)) ->Red : Color, Symbol(Color.Red, Decl(exportCodeGen.ts, 34, 23)) +>Color : Color +>Red : Color export function fn() { } ->fn : () => void, Symbol(fn, Decl(exportCodeGen.ts, 34, 29)) +>fn : () => void export interface I { id: number } ->I : I, Symbol(I, Decl(exportCodeGen.ts, 35, 28)) ->id : number, Symbol(id, Decl(exportCodeGen.ts, 36, 24)) +>I : I +>id : number export class C { name: string } ->C : C, Symbol(C, Decl(exportCodeGen.ts, 36, 37)) ->name : string, Symbol(name, Decl(exportCodeGen.ts, 37, 20)) +>C : C +>name : string export module M { ->M : typeof M, Symbol(M, Decl(exportCodeGen.ts, 37, 35)) +>M : typeof M export var x = 42; ->x : number, Symbol(x, Decl(exportCodeGen.ts, 39, 18)) +>x : number >42 : number } } @@ -92,28 +92,28 @@ module E { // validate all exportable statements, // which are not exported module F { ->F : typeof F, Symbol(F, Decl(exportCodeGen.ts, 41, 1)) +>F : typeof F enum Color { Red } ->Color : Color, Symbol(Color, Decl(exportCodeGen.ts, 45, 10)) ->Red : Color, Symbol(Color.Red, Decl(exportCodeGen.ts, 46, 16)) +>Color : Color +>Red : Color function fn() { } ->fn : () => void, Symbol(fn, Decl(exportCodeGen.ts, 46, 22)) +>fn : () => void interface I { id: number } ->I : I, Symbol(I, Decl(exportCodeGen.ts, 47, 21)) ->id : number, Symbol(id, Decl(exportCodeGen.ts, 48, 17)) +>I : I +>id : number class C { name: string } ->C : C, Symbol(C, Decl(exportCodeGen.ts, 48, 30)) ->name : string, Symbol(name, Decl(exportCodeGen.ts, 49, 13)) +>C : C +>name : string module M { ->M : typeof M, Symbol(M, Decl(exportCodeGen.ts, 49, 28)) +>M : typeof M var x = 42; ->x : number, Symbol(x, Decl(exportCodeGen.ts, 51, 11)) +>x : number >42 : number } } diff --git a/tests/baselines/reference/exportDefaultForNonInstantiatedModule.symbols b/tests/baselines/reference/exportDefaultForNonInstantiatedModule.symbols new file mode 100644 index 0000000000000..eb0836fd519b8 --- /dev/null +++ b/tests/baselines/reference/exportDefaultForNonInstantiatedModule.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/exportDefaultForNonInstantiatedModule.ts === + +module m { +>m : Symbol(m, Decl(exportDefaultForNonInstantiatedModule.ts, 0, 0)) + + export interface foo { +>foo : Symbol(foo, Decl(exportDefaultForNonInstantiatedModule.ts, 1, 10)) + } +} +// Should not be emitted +export default m; +>m : Symbol(m, Decl(exportDefaultForNonInstantiatedModule.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportDefaultForNonInstantiatedModule.types b/tests/baselines/reference/exportDefaultForNonInstantiatedModule.types index fe0f1a2c10450..6ec8f9868a3f2 100644 --- a/tests/baselines/reference/exportDefaultForNonInstantiatedModule.types +++ b/tests/baselines/reference/exportDefaultForNonInstantiatedModule.types @@ -1,13 +1,13 @@ === tests/cases/compiler/exportDefaultForNonInstantiatedModule.ts === module m { ->m : any, Symbol(m, Decl(exportDefaultForNonInstantiatedModule.ts, 0, 0)) +>m : any export interface foo { ->foo : foo, Symbol(foo, Decl(exportDefaultForNonInstantiatedModule.ts, 1, 10)) +>foo : foo } } // Should not be emitted export default m; ->m : any, Symbol(m, Decl(exportDefaultForNonInstantiatedModule.ts, 0, 0)) +>m : any diff --git a/tests/baselines/reference/exportEqualCallable.symbols b/tests/baselines/reference/exportEqualCallable.symbols new file mode 100644 index 0000000000000..df1c6da8c7b7a --- /dev/null +++ b/tests/baselines/reference/exportEqualCallable.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/exportEqualCallable_1.ts === +/// +import connect = require('exportEqualCallable_0'); +>connect : Symbol(connect, Decl(exportEqualCallable_1.ts, 0, 0)) + +connect(); +>connect : Symbol(connect, Decl(exportEqualCallable_1.ts, 0, 0)) + +=== tests/cases/compiler/exportEqualCallable_0.ts === + +var server: { +>server : Symbol(server, Decl(exportEqualCallable_0.ts, 1, 3)) + + (): any; +}; +export = server; +>server : Symbol(server, Decl(exportEqualCallable_0.ts, 1, 3)) + diff --git a/tests/baselines/reference/exportEqualCallable.types b/tests/baselines/reference/exportEqualCallable.types index 2ebd696028d18..0a0845231372d 100644 --- a/tests/baselines/reference/exportEqualCallable.types +++ b/tests/baselines/reference/exportEqualCallable.types @@ -1,19 +1,19 @@ === tests/cases/compiler/exportEqualCallable_1.ts === /// import connect = require('exportEqualCallable_0'); ->connect : () => any, Symbol(connect, Decl(exportEqualCallable_1.ts, 0, 0)) +>connect : () => any connect(); >connect() : any ->connect : () => any, Symbol(connect, Decl(exportEqualCallable_1.ts, 0, 0)) +>connect : () => any === tests/cases/compiler/exportEqualCallable_0.ts === var server: { ->server : () => any, Symbol(server, Decl(exportEqualCallable_0.ts, 1, 3)) +>server : () => any (): any; }; export = server; ->server : () => any, Symbol(server, Decl(exportEqualCallable_0.ts, 1, 3)) +>server : () => any diff --git a/tests/baselines/reference/exportEqualNamespaces.symbols b/tests/baselines/reference/exportEqualNamespaces.symbols new file mode 100644 index 0000000000000..f6f0767d41429 --- /dev/null +++ b/tests/baselines/reference/exportEqualNamespaces.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/exportEqualNamespaces.ts === +declare module server { +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) + + interface Server extends Object { } +>Server : Symbol(Server, Decl(exportEqualNamespaces.ts, 0, 23)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +interface server { +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) + + (): server.Server; +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>Server : Symbol(server.Server, Decl(exportEqualNamespaces.ts, 0, 23)) + + startTime: Date; +>startTime : Symbol(startTime, Decl(exportEqualNamespaces.ts, 5, 22)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var x = 5; +>x : Symbol(x, Decl(exportEqualNamespaces.ts, 9, 3)) + +var server = new Date(); +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +export = server; +>server : Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) + diff --git a/tests/baselines/reference/exportEqualNamespaces.types b/tests/baselines/reference/exportEqualNamespaces.types index db80f747adcfe..0e27102c015c2 100644 --- a/tests/baselines/reference/exportEqualNamespaces.types +++ b/tests/baselines/reference/exportEqualNamespaces.types @@ -1,33 +1,33 @@ === tests/cases/compiler/exportEqualNamespaces.ts === declare module server { ->server : Date, Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>server : Date interface Server extends Object { } ->Server : Server, Symbol(Server, Decl(exportEqualNamespaces.ts, 0, 23)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Server : Server +>Object : Object } interface server { ->server : server, Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>server : server (): server.Server; ->server : any, Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) ->Server : server.Server, Symbol(server.Server, Decl(exportEqualNamespaces.ts, 0, 23)) +>server : any +>Server : server.Server startTime: Date; ->startTime : Date, Symbol(startTime, Decl(exportEqualNamespaces.ts, 5, 22)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>startTime : Date +>Date : Date } var x = 5; ->x : number, Symbol(x, Decl(exportEqualNamespaces.ts, 9, 3)) +>x : number >5 : number var server = new Date(); ->server : Date, Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>server : Date >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor export = server; ->server : server, Symbol(server, Decl(exportEqualNamespaces.ts, 0, 0), Decl(exportEqualNamespaces.ts, 2, 1), Decl(exportEqualNamespaces.ts, 10, 3)) +>server : server diff --git a/tests/baselines/reference/exportImport.symbols b/tests/baselines/reference/exportImport.symbols new file mode 100644 index 0000000000000..02132338834da --- /dev/null +++ b/tests/baselines/reference/exportImport.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/consumer.ts === +import e = require('./exporter'); +>e : Symbol(e, Decl(consumer.ts, 0, 0)) + +export function w(): e.w { // Should be OK +>w : Symbol(w, Decl(consumer.ts, 0, 33)) +>e : Symbol(e, Decl(consumer.ts, 0, 0)) +>w : Symbol(e.w, Decl(exporter.ts, 0, 0)) + + return new e.w(); +>e.w : Symbol(e.w, Decl(exporter.ts, 0, 0)) +>e : Symbol(e, Decl(consumer.ts, 0, 0)) +>w : Symbol(e.w, Decl(exporter.ts, 0, 0)) +} +=== tests/cases/compiler/w1.ts === + +export = Widget1 +>Widget1 : Symbol(Widget1, Decl(w1.ts, 1, 16)) + +class Widget1 { name = 'one'; } +>Widget1 : Symbol(Widget1, Decl(w1.ts, 1, 16)) +>name : Symbol(name, Decl(w1.ts, 2, 15)) + +=== tests/cases/compiler/exporter.ts === +export import w = require('./w1'); +>w : Symbol(w, Decl(exporter.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportImport.types b/tests/baselines/reference/exportImport.types index 11269c9abf94c..a6361d3cbac6c 100644 --- a/tests/baselines/reference/exportImport.types +++ b/tests/baselines/reference/exportImport.types @@ -1,29 +1,29 @@ === tests/cases/compiler/consumer.ts === import e = require('./exporter'); ->e : typeof e, Symbol(e, Decl(consumer.ts, 0, 0)) +>e : typeof e export function w(): e.w { // Should be OK ->w : () => e.w, Symbol(w, Decl(consumer.ts, 0, 33)) ->e : any, Symbol(e, Decl(consumer.ts, 0, 0)) ->w : e.w, Symbol(e.w, Decl(exporter.ts, 0, 0)) +>w : () => e.w +>e : any +>w : e.w return new e.w(); >new e.w() : e.w ->e.w : typeof e.w, Symbol(e.w, Decl(exporter.ts, 0, 0)) ->e : typeof e, Symbol(e, Decl(consumer.ts, 0, 0)) ->w : typeof e.w, Symbol(e.w, Decl(exporter.ts, 0, 0)) +>e.w : typeof e.w +>e : typeof e +>w : typeof e.w } === tests/cases/compiler/w1.ts === export = Widget1 ->Widget1 : Widget1, Symbol(Widget1, Decl(w1.ts, 1, 16)) +>Widget1 : Widget1 class Widget1 { name = 'one'; } ->Widget1 : Widget1, Symbol(Widget1, Decl(w1.ts, 1, 16)) ->name : string, Symbol(name, Decl(w1.ts, 2, 15)) +>Widget1 : Widget1 +>name : string >'one' : string === tests/cases/compiler/exporter.ts === export import w = require('./w1'); ->w : typeof w, Symbol(w, Decl(exporter.ts, 0, 0)) +>w : typeof w diff --git a/tests/baselines/reference/exportImportAlias.symbols b/tests/baselines/reference/exportImportAlias.symbols new file mode 100644 index 0000000000000..131f53919abc4 --- /dev/null +++ b/tests/baselines/reference/exportImportAlias.symbols @@ -0,0 +1,171 @@ +=== tests/cases/conformance/internalModules/importDeclarations/exportImportAlias.ts === +// expect no errors here + +module A { +>A : Symbol(A, Decl(exportImportAlias.ts, 0, 0)) + + export var x = 'hello world' +>x : Symbol(x, Decl(exportImportAlias.ts, 4, 14)) + + export class Point { +>Point : Symbol(Point, Decl(exportImportAlias.ts, 4, 32)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(exportImportAlias.ts, 6, 20)) +>y : Symbol(y, Decl(exportImportAlias.ts, 6, 37)) + } + export module B { +>B : Symbol(B, Decl(exportImportAlias.ts, 7, 5)) + + export interface Id { +>Id : Symbol(Id, Decl(exportImportAlias.ts, 8, 21)) + + name: string; +>name : Symbol(name, Decl(exportImportAlias.ts, 9, 29)) + } + } +} + +module C { +>C : Symbol(C, Decl(exportImportAlias.ts, 13, 1)) + + export import a = A; +>a : Symbol(a, Decl(exportImportAlias.ts, 15, 10)) +>A : Symbol(a, Decl(exportImportAlias.ts, 0, 0)) +} + +var a: string = C.a.x; +>a : Symbol(a, Decl(exportImportAlias.ts, 19, 3)) +>C.a.x : Symbol(A.x, Decl(exportImportAlias.ts, 4, 14)) +>C.a : Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) +>C : Symbol(C, Decl(exportImportAlias.ts, 13, 1)) +>a : Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) +>x : Symbol(A.x, Decl(exportImportAlias.ts, 4, 14)) + +var b: { x: number; y: number; } = new C.a.Point(0, 0); +>b : Symbol(b, Decl(exportImportAlias.ts, 20, 3)) +>x : Symbol(x, Decl(exportImportAlias.ts, 20, 8)) +>y : Symbol(y, Decl(exportImportAlias.ts, 20, 19)) +>C.a.Point : Symbol(A.Point, Decl(exportImportAlias.ts, 4, 32)) +>C.a : Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) +>C : Symbol(C, Decl(exportImportAlias.ts, 13, 1)) +>a : Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) +>Point : Symbol(A.Point, Decl(exportImportAlias.ts, 4, 32)) + +var c: { name: string }; +>c : Symbol(c, Decl(exportImportAlias.ts, 21, 3), Decl(exportImportAlias.ts, 22, 3)) +>name : Symbol(name, Decl(exportImportAlias.ts, 21, 8)) + +var c: C.a.B.Id; +>c : Symbol(c, Decl(exportImportAlias.ts, 21, 3), Decl(exportImportAlias.ts, 22, 3)) +>C : Symbol(C, Decl(exportImportAlias.ts, 13, 1)) +>a : Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) +>B : Symbol(A.B, Decl(exportImportAlias.ts, 7, 5)) +>Id : Symbol(A.B.Id, Decl(exportImportAlias.ts, 8, 21)) + +module X { +>X : Symbol(X, Decl(exportImportAlias.ts, 22, 16)) + + export function Y() { +>Y : Symbol(Y, Decl(exportImportAlias.ts, 24, 10), Decl(exportImportAlias.ts, 27, 5)) + + return 42; + } + + export module Y { +>Y : Symbol(Y, Decl(exportImportAlias.ts, 24, 10), Decl(exportImportAlias.ts, 27, 5)) + + export class Point { +>Point : Symbol(Point, Decl(exportImportAlias.ts, 29, 21)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(exportImportAlias.ts, 31, 24)) +>y : Symbol(y, Decl(exportImportAlias.ts, 31, 41)) + } + } +} + +module Z { +>Z : Symbol(Z, Decl(exportImportAlias.ts, 34, 1)) + + // 'y' should be a fundule here + export import y = X.Y; +>y : Symbol(y, Decl(exportImportAlias.ts, 36, 10)) +>X : Symbol(X, Decl(exportImportAlias.ts, 22, 16)) +>Y : Symbol(y, Decl(exportImportAlias.ts, 24, 10), Decl(exportImportAlias.ts, 27, 5)) +} + +var m: number = Z.y(); +>m : Symbol(m, Decl(exportImportAlias.ts, 42, 3)) +>Z.y : Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) +>Z : Symbol(Z, Decl(exportImportAlias.ts, 34, 1)) +>y : Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) + +var n: { x: number; y: number; } = new Z.y.Point(0, 0); +>n : Symbol(n, Decl(exportImportAlias.ts, 43, 3)) +>x : Symbol(x, Decl(exportImportAlias.ts, 43, 8)) +>y : Symbol(y, Decl(exportImportAlias.ts, 43, 19)) +>Z.y.Point : Symbol(X.Y.Point, Decl(exportImportAlias.ts, 29, 21)) +>Z.y : Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) +>Z : Symbol(Z, Decl(exportImportAlias.ts, 34, 1)) +>y : Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) +>Point : Symbol(X.Y.Point, Decl(exportImportAlias.ts, 29, 21)) + +module K { +>K : Symbol(K, Decl(exportImportAlias.ts, 43, 55)) + + export class L { +>L : Symbol(L, Decl(exportImportAlias.ts, 45, 10), Decl(exportImportAlias.ts, 48, 5)) + + constructor(public name: string) { } +>name : Symbol(name, Decl(exportImportAlias.ts, 47, 20)) + } + + export module L { +>L : Symbol(L, Decl(exportImportAlias.ts, 45, 10), Decl(exportImportAlias.ts, 48, 5)) + + export var y = 12; +>y : Symbol(y, Decl(exportImportAlias.ts, 51, 18)) + + export interface Point { +>Point : Symbol(Point, Decl(exportImportAlias.ts, 51, 26)) + + x: number; +>x : Symbol(x, Decl(exportImportAlias.ts, 52, 32)) + + y: number; +>y : Symbol(y, Decl(exportImportAlias.ts, 53, 22)) + } + } +} + +module M { +>M : Symbol(M, Decl(exportImportAlias.ts, 57, 1)) + + export import D = K.L; +>D : Symbol(D, Decl(exportImportAlias.ts, 59, 10)) +>K : Symbol(K, Decl(exportImportAlias.ts, 43, 55)) +>L : Symbol(D, Decl(exportImportAlias.ts, 45, 10), Decl(exportImportAlias.ts, 48, 5)) +} + +var o: { name: string }; +>o : Symbol(o, Decl(exportImportAlias.ts, 63, 3), Decl(exportImportAlias.ts, 64, 3)) +>name : Symbol(name, Decl(exportImportAlias.ts, 63, 8)) + +var o = new M.D('Hello'); +>o : Symbol(o, Decl(exportImportAlias.ts, 63, 3), Decl(exportImportAlias.ts, 64, 3)) +>M.D : Symbol(M.D, Decl(exportImportAlias.ts, 59, 10)) +>M : Symbol(M, Decl(exportImportAlias.ts, 57, 1)) +>D : Symbol(M.D, Decl(exportImportAlias.ts, 59, 10)) + +var p: { x: number; y: number; } +>p : Symbol(p, Decl(exportImportAlias.ts, 66, 3), Decl(exportImportAlias.ts, 67, 3)) +>x : Symbol(x, Decl(exportImportAlias.ts, 66, 8)) +>y : Symbol(y, Decl(exportImportAlias.ts, 66, 19)) + +var p: M.D.Point; +>p : Symbol(p, Decl(exportImportAlias.ts, 66, 3), Decl(exportImportAlias.ts, 67, 3)) +>M : Symbol(M, Decl(exportImportAlias.ts, 57, 1)) +>D : Symbol(M.D, Decl(exportImportAlias.ts, 59, 10)) +>Point : Symbol(K.L.Point, Decl(exportImportAlias.ts, 51, 26)) + diff --git a/tests/baselines/reference/exportImportAlias.types b/tests/baselines/reference/exportImportAlias.types index 8fe41b246920c..f0c21d461bc4c 100644 --- a/tests/baselines/reference/exportImportAlias.types +++ b/tests/baselines/reference/exportImportAlias.types @@ -2,182 +2,182 @@ // expect no errors here module A { ->A : typeof A, Symbol(A, Decl(exportImportAlias.ts, 0, 0)) +>A : typeof A export var x = 'hello world' ->x : string, Symbol(x, Decl(exportImportAlias.ts, 4, 14)) +>x : string >'hello world' : string export class Point { ->Point : Point, Symbol(Point, Decl(exportImportAlias.ts, 4, 32)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(exportImportAlias.ts, 6, 20)) ->y : number, Symbol(y, Decl(exportImportAlias.ts, 6, 37)) +>x : number +>y : number } export module B { ->B : any, Symbol(B, Decl(exportImportAlias.ts, 7, 5)) +>B : any export interface Id { ->Id : Id, Symbol(Id, Decl(exportImportAlias.ts, 8, 21)) +>Id : Id name: string; ->name : string, Symbol(name, Decl(exportImportAlias.ts, 9, 29)) +>name : string } } } module C { ->C : typeof C, Symbol(C, Decl(exportImportAlias.ts, 13, 1)) +>C : typeof C export import a = A; ->a : typeof a, Symbol(a, Decl(exportImportAlias.ts, 15, 10)) ->A : typeof a, Symbol(a, Decl(exportImportAlias.ts, 0, 0)) +>a : typeof a +>A : typeof a } var a: string = C.a.x; ->a : string, Symbol(a, Decl(exportImportAlias.ts, 19, 3)) ->C.a.x : string, Symbol(A.x, Decl(exportImportAlias.ts, 4, 14)) ->C.a : typeof A, Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) ->C : typeof C, Symbol(C, Decl(exportImportAlias.ts, 13, 1)) ->a : typeof A, Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) ->x : string, Symbol(A.x, Decl(exportImportAlias.ts, 4, 14)) +>a : string +>C.a.x : string +>C.a : typeof A +>C : typeof C +>a : typeof A +>x : string var b: { x: number; y: number; } = new C.a.Point(0, 0); ->b : { x: number; y: number; }, Symbol(b, Decl(exportImportAlias.ts, 20, 3)) ->x : number, Symbol(x, Decl(exportImportAlias.ts, 20, 8)) ->y : number, Symbol(y, Decl(exportImportAlias.ts, 20, 19)) +>b : { x: number; y: number; } +>x : number +>y : number >new C.a.Point(0, 0) : A.Point ->C.a.Point : typeof A.Point, Symbol(A.Point, Decl(exportImportAlias.ts, 4, 32)) ->C.a : typeof A, Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) ->C : typeof C, Symbol(C, Decl(exportImportAlias.ts, 13, 1)) ->a : typeof A, Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) ->Point : typeof A.Point, Symbol(A.Point, Decl(exportImportAlias.ts, 4, 32)) +>C.a.Point : typeof A.Point +>C.a : typeof A +>C : typeof C +>a : typeof A +>Point : typeof A.Point >0 : number >0 : number var c: { name: string }; ->c : { name: string; }, Symbol(c, Decl(exportImportAlias.ts, 21, 3), Decl(exportImportAlias.ts, 22, 3)) ->name : string, Symbol(name, Decl(exportImportAlias.ts, 21, 8)) +>c : { name: string; } +>name : string var c: C.a.B.Id; ->c : { name: string; }, Symbol(c, Decl(exportImportAlias.ts, 21, 3), Decl(exportImportAlias.ts, 22, 3)) ->C : any, Symbol(C, Decl(exportImportAlias.ts, 13, 1)) ->a : any, Symbol(C.a, Decl(exportImportAlias.ts, 15, 10)) ->B : any, Symbol(A.B, Decl(exportImportAlias.ts, 7, 5)) ->Id : A.B.Id, Symbol(A.B.Id, Decl(exportImportAlias.ts, 8, 21)) +>c : { name: string; } +>C : any +>a : any +>B : any +>Id : A.B.Id module X { ->X : typeof X, Symbol(X, Decl(exportImportAlias.ts, 22, 16)) +>X : typeof X export function Y() { ->Y : typeof Y, Symbol(Y, Decl(exportImportAlias.ts, 24, 10), Decl(exportImportAlias.ts, 27, 5)) +>Y : typeof Y return 42; >42 : number } export module Y { ->Y : typeof Y, Symbol(Y, Decl(exportImportAlias.ts, 24, 10), Decl(exportImportAlias.ts, 27, 5)) +>Y : typeof Y export class Point { ->Point : Point, Symbol(Point, Decl(exportImportAlias.ts, 29, 21)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(exportImportAlias.ts, 31, 24)) ->y : number, Symbol(y, Decl(exportImportAlias.ts, 31, 41)) +>x : number +>y : number } } } module Z { ->Z : typeof Z, Symbol(Z, Decl(exportImportAlias.ts, 34, 1)) +>Z : typeof Z // 'y' should be a fundule here export import y = X.Y; ->y : typeof y, Symbol(y, Decl(exportImportAlias.ts, 36, 10)) ->X : typeof X, Symbol(X, Decl(exportImportAlias.ts, 22, 16)) ->Y : typeof y, Symbol(y, Decl(exportImportAlias.ts, 24, 10), Decl(exportImportAlias.ts, 27, 5)) +>y : typeof y +>X : typeof X +>Y : typeof y } var m: number = Z.y(); ->m : number, Symbol(m, Decl(exportImportAlias.ts, 42, 3)) +>m : number >Z.y() : number ->Z.y : typeof X.Y, Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) ->Z : typeof Z, Symbol(Z, Decl(exportImportAlias.ts, 34, 1)) ->y : typeof X.Y, Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) +>Z.y : typeof X.Y +>Z : typeof Z +>y : typeof X.Y var n: { x: number; y: number; } = new Z.y.Point(0, 0); ->n : { x: number; y: number; }, Symbol(n, Decl(exportImportAlias.ts, 43, 3)) ->x : number, Symbol(x, Decl(exportImportAlias.ts, 43, 8)) ->y : number, Symbol(y, Decl(exportImportAlias.ts, 43, 19)) +>n : { x: number; y: number; } +>x : number +>y : number >new Z.y.Point(0, 0) : X.Y.Point ->Z.y.Point : typeof X.Y.Point, Symbol(X.Y.Point, Decl(exportImportAlias.ts, 29, 21)) ->Z.y : typeof X.Y, Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) ->Z : typeof Z, Symbol(Z, Decl(exportImportAlias.ts, 34, 1)) ->y : typeof X.Y, Symbol(Z.y, Decl(exportImportAlias.ts, 36, 10)) ->Point : typeof X.Y.Point, Symbol(X.Y.Point, Decl(exportImportAlias.ts, 29, 21)) +>Z.y.Point : typeof X.Y.Point +>Z.y : typeof X.Y +>Z : typeof Z +>y : typeof X.Y +>Point : typeof X.Y.Point >0 : number >0 : number module K { ->K : typeof K, Symbol(K, Decl(exportImportAlias.ts, 43, 55)) +>K : typeof K export class L { ->L : L, Symbol(L, Decl(exportImportAlias.ts, 45, 10), Decl(exportImportAlias.ts, 48, 5)) +>L : L constructor(public name: string) { } ->name : string, Symbol(name, Decl(exportImportAlias.ts, 47, 20)) +>name : string } export module L { ->L : typeof L, Symbol(L, Decl(exportImportAlias.ts, 45, 10), Decl(exportImportAlias.ts, 48, 5)) +>L : typeof L export var y = 12; ->y : number, Symbol(y, Decl(exportImportAlias.ts, 51, 18)) +>y : number >12 : number export interface Point { ->Point : Point, Symbol(Point, Decl(exportImportAlias.ts, 51, 26)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(exportImportAlias.ts, 52, 32)) +>x : number y: number; ->y : number, Symbol(y, Decl(exportImportAlias.ts, 53, 22)) +>y : number } } } module M { ->M : typeof M, Symbol(M, Decl(exportImportAlias.ts, 57, 1)) +>M : typeof M export import D = K.L; ->D : typeof D, Symbol(D, Decl(exportImportAlias.ts, 59, 10)) ->K : typeof K, Symbol(K, Decl(exportImportAlias.ts, 43, 55)) ->L : D, Symbol(D, Decl(exportImportAlias.ts, 45, 10), Decl(exportImportAlias.ts, 48, 5)) +>D : typeof D +>K : typeof K +>L : D } var o: { name: string }; ->o : { name: string; }, Symbol(o, Decl(exportImportAlias.ts, 63, 3), Decl(exportImportAlias.ts, 64, 3)) ->name : string, Symbol(name, Decl(exportImportAlias.ts, 63, 8)) +>o : { name: string; } +>name : string var o = new M.D('Hello'); ->o : { name: string; }, Symbol(o, Decl(exportImportAlias.ts, 63, 3), Decl(exportImportAlias.ts, 64, 3)) +>o : { name: string; } >new M.D('Hello') : K.L ->M.D : typeof K.L, Symbol(M.D, Decl(exportImportAlias.ts, 59, 10)) ->M : typeof M, Symbol(M, Decl(exportImportAlias.ts, 57, 1)) ->D : typeof K.L, Symbol(M.D, Decl(exportImportAlias.ts, 59, 10)) +>M.D : typeof K.L +>M : typeof M +>D : typeof K.L >'Hello' : string var p: { x: number; y: number; } ->p : { x: number; y: number; }, Symbol(p, Decl(exportImportAlias.ts, 66, 3), Decl(exportImportAlias.ts, 67, 3)) ->x : number, Symbol(x, Decl(exportImportAlias.ts, 66, 8)) ->y : number, Symbol(y, Decl(exportImportAlias.ts, 66, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p: M.D.Point; ->p : { x: number; y: number; }, Symbol(p, Decl(exportImportAlias.ts, 66, 3), Decl(exportImportAlias.ts, 67, 3)) ->M : any, Symbol(M, Decl(exportImportAlias.ts, 57, 1)) ->D : any, Symbol(M.D, Decl(exportImportAlias.ts, 59, 10)) ->Point : K.L.Point, Symbol(K.L.Point, Decl(exportImportAlias.ts, 51, 26)) +>p : { x: number; y: number; } +>M : any +>D : any +>Point : K.L.Point diff --git a/tests/baselines/reference/exportImportAndClodule.symbols b/tests/baselines/reference/exportImportAndClodule.symbols new file mode 100644 index 0000000000000..23995243bf9fa --- /dev/null +++ b/tests/baselines/reference/exportImportAndClodule.symbols @@ -0,0 +1,56 @@ +=== tests/cases/compiler/exportImportAndClodule.ts === +module K { +>K : Symbol(K, Decl(exportImportAndClodule.ts, 0, 0)) + + export class L { +>L : Symbol(L, Decl(exportImportAndClodule.ts, 0, 10), Decl(exportImportAndClodule.ts, 3, 5)) + + constructor(public name: string) { } +>name : Symbol(name, Decl(exportImportAndClodule.ts, 2, 20)) + } + export module L { +>L : Symbol(L, Decl(exportImportAndClodule.ts, 0, 10), Decl(exportImportAndClodule.ts, 3, 5)) + + export var y = 12; +>y : Symbol(y, Decl(exportImportAndClodule.ts, 5, 18)) + + export interface Point { +>Point : Symbol(Point, Decl(exportImportAndClodule.ts, 5, 26)) + + x: number; +>x : Symbol(x, Decl(exportImportAndClodule.ts, 6, 32)) + + y: number; +>y : Symbol(y, Decl(exportImportAndClodule.ts, 7, 22)) + } + } +} +module M { +>M : Symbol(M, Decl(exportImportAndClodule.ts, 11, 1)) + + export import D = K.L; +>D : Symbol(D, Decl(exportImportAndClodule.ts, 12, 10)) +>K : Symbol(K, Decl(exportImportAndClodule.ts, 0, 0)) +>L : Symbol(D, Decl(exportImportAndClodule.ts, 0, 10), Decl(exportImportAndClodule.ts, 3, 5)) +} +var o: { name: string }; +>o : Symbol(o, Decl(exportImportAndClodule.ts, 15, 3), Decl(exportImportAndClodule.ts, 16, 3)) +>name : Symbol(name, Decl(exportImportAndClodule.ts, 15, 8)) + +var o = new M.D('Hello'); +>o : Symbol(o, Decl(exportImportAndClodule.ts, 15, 3), Decl(exportImportAndClodule.ts, 16, 3)) +>M.D : Symbol(M.D, Decl(exportImportAndClodule.ts, 12, 10)) +>M : Symbol(M, Decl(exportImportAndClodule.ts, 11, 1)) +>D : Symbol(M.D, Decl(exportImportAndClodule.ts, 12, 10)) + +var p: { x: number; y: number; } +>p : Symbol(p, Decl(exportImportAndClodule.ts, 17, 3), Decl(exportImportAndClodule.ts, 18, 3)) +>x : Symbol(x, Decl(exportImportAndClodule.ts, 17, 8)) +>y : Symbol(y, Decl(exportImportAndClodule.ts, 17, 19)) + +var p: M.D.Point; +>p : Symbol(p, Decl(exportImportAndClodule.ts, 17, 3), Decl(exportImportAndClodule.ts, 18, 3)) +>M : Symbol(M, Decl(exportImportAndClodule.ts, 11, 1)) +>D : Symbol(M.D, Decl(exportImportAndClodule.ts, 12, 10)) +>Point : Symbol(K.L.Point, Decl(exportImportAndClodule.ts, 5, 26)) + diff --git a/tests/baselines/reference/exportImportAndClodule.types b/tests/baselines/reference/exportImportAndClodule.types index f3344effe1568..36ca259666ca3 100644 --- a/tests/baselines/reference/exportImportAndClodule.types +++ b/tests/baselines/reference/exportImportAndClodule.types @@ -1,59 +1,59 @@ === tests/cases/compiler/exportImportAndClodule.ts === module K { ->K : typeof K, Symbol(K, Decl(exportImportAndClodule.ts, 0, 0)) +>K : typeof K export class L { ->L : L, Symbol(L, Decl(exportImportAndClodule.ts, 0, 10), Decl(exportImportAndClodule.ts, 3, 5)) +>L : L constructor(public name: string) { } ->name : string, Symbol(name, Decl(exportImportAndClodule.ts, 2, 20)) +>name : string } export module L { ->L : typeof L, Symbol(L, Decl(exportImportAndClodule.ts, 0, 10), Decl(exportImportAndClodule.ts, 3, 5)) +>L : typeof L export var y = 12; ->y : number, Symbol(y, Decl(exportImportAndClodule.ts, 5, 18)) +>y : number >12 : number export interface Point { ->Point : Point, Symbol(Point, Decl(exportImportAndClodule.ts, 5, 26)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(exportImportAndClodule.ts, 6, 32)) +>x : number y: number; ->y : number, Symbol(y, Decl(exportImportAndClodule.ts, 7, 22)) +>y : number } } } module M { ->M : typeof M, Symbol(M, Decl(exportImportAndClodule.ts, 11, 1)) +>M : typeof M export import D = K.L; ->D : typeof D, Symbol(D, Decl(exportImportAndClodule.ts, 12, 10)) ->K : typeof K, Symbol(K, Decl(exportImportAndClodule.ts, 0, 0)) ->L : D, Symbol(D, Decl(exportImportAndClodule.ts, 0, 10), Decl(exportImportAndClodule.ts, 3, 5)) +>D : typeof D +>K : typeof K +>L : D } var o: { name: string }; ->o : { name: string; }, Symbol(o, Decl(exportImportAndClodule.ts, 15, 3), Decl(exportImportAndClodule.ts, 16, 3)) ->name : string, Symbol(name, Decl(exportImportAndClodule.ts, 15, 8)) +>o : { name: string; } +>name : string var o = new M.D('Hello'); ->o : { name: string; }, Symbol(o, Decl(exportImportAndClodule.ts, 15, 3), Decl(exportImportAndClodule.ts, 16, 3)) +>o : { name: string; } >new M.D('Hello') : K.L ->M.D : typeof K.L, Symbol(M.D, Decl(exportImportAndClodule.ts, 12, 10)) ->M : typeof M, Symbol(M, Decl(exportImportAndClodule.ts, 11, 1)) ->D : typeof K.L, Symbol(M.D, Decl(exportImportAndClodule.ts, 12, 10)) +>M.D : typeof K.L +>M : typeof M +>D : typeof K.L >'Hello' : string var p: { x: number; y: number; } ->p : { x: number; y: number; }, Symbol(p, Decl(exportImportAndClodule.ts, 17, 3), Decl(exportImportAndClodule.ts, 18, 3)) ->x : number, Symbol(x, Decl(exportImportAndClodule.ts, 17, 8)) ->y : number, Symbol(y, Decl(exportImportAndClodule.ts, 17, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p: M.D.Point; ->p : { x: number; y: number; }, Symbol(p, Decl(exportImportAndClodule.ts, 17, 3), Decl(exportImportAndClodule.ts, 18, 3)) ->M : any, Symbol(M, Decl(exportImportAndClodule.ts, 11, 1)) ->D : any, Symbol(M.D, Decl(exportImportAndClodule.ts, 12, 10)) ->Point : K.L.Point, Symbol(K.L.Point, Decl(exportImportAndClodule.ts, 5, 26)) +>p : { x: number; y: number; } +>M : any +>D : any +>Point : K.L.Point diff --git a/tests/baselines/reference/exportImportMultipleFiles.symbols b/tests/baselines/reference/exportImportMultipleFiles.symbols new file mode 100644 index 0000000000000..f0870cdf396f2 --- /dev/null +++ b/tests/baselines/reference/exportImportMultipleFiles.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/exportImportMultipleFiles_userCode.ts === +import lib = require('./exportImportMultipleFiles_library'); +>lib : Symbol(lib, Decl(exportImportMultipleFiles_userCode.ts, 0, 0)) + +lib.math.add(3, 4); // Shouldnt be error +>lib.math.add : Symbol(lib.math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) +>lib.math : Symbol(lib.math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) +>lib : Symbol(lib, Decl(exportImportMultipleFiles_userCode.ts, 0, 0)) +>math : Symbol(lib.math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) +>add : Symbol(lib.math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) + +=== tests/cases/compiler/exportImportMultipleFiles_math.ts === +export function add(a, b) { return a + b; } +>add : Symbol(add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) +>a : Symbol(a, Decl(exportImportMultipleFiles_math.ts, 0, 20)) +>b : Symbol(b, Decl(exportImportMultipleFiles_math.ts, 0, 22)) +>a : Symbol(a, Decl(exportImportMultipleFiles_math.ts, 0, 20)) +>b : Symbol(b, Decl(exportImportMultipleFiles_math.ts, 0, 22)) + +=== tests/cases/compiler/exportImportMultipleFiles_library.ts === +export import math = require("exportImportMultipleFiles_math"); +>math : Symbol(math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) + +math.add(3, 4); // OK +>math.add : Symbol(math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) +>math : Symbol(math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) +>add : Symbol(math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportImportMultipleFiles.types b/tests/baselines/reference/exportImportMultipleFiles.types index 73301e0726f79..6ac5e7641ea0e 100644 --- a/tests/baselines/reference/exportImportMultipleFiles.types +++ b/tests/baselines/reference/exportImportMultipleFiles.types @@ -1,35 +1,35 @@ === tests/cases/compiler/exportImportMultipleFiles_userCode.ts === import lib = require('./exportImportMultipleFiles_library'); ->lib : typeof lib, Symbol(lib, Decl(exportImportMultipleFiles_userCode.ts, 0, 0)) +>lib : typeof lib lib.math.add(3, 4); // Shouldnt be error >lib.math.add(3, 4) : any ->lib.math.add : (a: any, b: any) => any, Symbol(lib.math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) ->lib.math : typeof lib.math, Symbol(lib.math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) ->lib : typeof lib, Symbol(lib, Decl(exportImportMultipleFiles_userCode.ts, 0, 0)) ->math : typeof lib.math, Symbol(lib.math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) ->add : (a: any, b: any) => any, Symbol(lib.math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) +>lib.math.add : (a: any, b: any) => any +>lib.math : typeof lib.math +>lib : typeof lib +>math : typeof lib.math +>add : (a: any, b: any) => any >3 : number >4 : number === tests/cases/compiler/exportImportMultipleFiles_math.ts === export function add(a, b) { return a + b; } ->add : (a: any, b: any) => any, Symbol(add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) ->a : any, Symbol(a, Decl(exportImportMultipleFiles_math.ts, 0, 20)) ->b : any, Symbol(b, Decl(exportImportMultipleFiles_math.ts, 0, 22)) +>add : (a: any, b: any) => any +>a : any +>b : any >a + b : any ->a : any, Symbol(a, Decl(exportImportMultipleFiles_math.ts, 0, 20)) ->b : any, Symbol(b, Decl(exportImportMultipleFiles_math.ts, 0, 22)) +>a : any +>b : any === tests/cases/compiler/exportImportMultipleFiles_library.ts === export import math = require("exportImportMultipleFiles_math"); ->math : typeof math, Symbol(math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) +>math : typeof math math.add(3, 4); // OK >math.add(3, 4) : any ->math.add : (a: any, b: any) => any, Symbol(math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) ->math : typeof math, Symbol(math, Decl(exportImportMultipleFiles_library.ts, 0, 0)) ->add : (a: any, b: any) => any, Symbol(math.add, Decl(exportImportMultipleFiles_math.ts, 0, 0)) +>math.add : (a: any, b: any) => any +>math : typeof math +>add : (a: any, b: any) => any >3 : number >4 : number diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule.symbols b/tests/baselines/reference/exportImportNonInstantiatedModule.symbols new file mode 100644 index 0000000000000..6e044368bfb40 --- /dev/null +++ b/tests/baselines/reference/exportImportNonInstantiatedModule.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/exportImportNonInstantiatedModule.ts === +module A { +>A : Symbol(A, Decl(exportImportNonInstantiatedModule.ts, 0, 0)) + + export interface I { x: number } +>I : Symbol(I, Decl(exportImportNonInstantiatedModule.ts, 0, 10)) +>x : Symbol(x, Decl(exportImportNonInstantiatedModule.ts, 1, 24)) +} + +module B { +>B : Symbol(B, Decl(exportImportNonInstantiatedModule.ts, 2, 1)) + + export import A1 = A +>A1 : Symbol(A1, Decl(exportImportNonInstantiatedModule.ts, 4, 10)) +>A : Symbol(A1, Decl(exportImportNonInstantiatedModule.ts, 0, 0)) + +} + +var x: B.A1.I = { x: 1 }; +>x : Symbol(x, Decl(exportImportNonInstantiatedModule.ts, 9, 3)) +>B : Symbol(B, Decl(exportImportNonInstantiatedModule.ts, 2, 1)) +>A1 : Symbol(B.A1, Decl(exportImportNonInstantiatedModule.ts, 4, 10)) +>I : Symbol(A.I, Decl(exportImportNonInstantiatedModule.ts, 0, 10)) +>x : Symbol(x, Decl(exportImportNonInstantiatedModule.ts, 9, 17)) + diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule.types b/tests/baselines/reference/exportImportNonInstantiatedModule.types index 2b43ccbdb4fa4..0b1da72dad833 100644 --- a/tests/baselines/reference/exportImportNonInstantiatedModule.types +++ b/tests/baselines/reference/exportImportNonInstantiatedModule.types @@ -1,27 +1,27 @@ === tests/cases/compiler/exportImportNonInstantiatedModule.ts === module A { ->A : any, Symbol(A, Decl(exportImportNonInstantiatedModule.ts, 0, 0)) +>A : any export interface I { x: number } ->I : I, Symbol(I, Decl(exportImportNonInstantiatedModule.ts, 0, 10)) ->x : number, Symbol(x, Decl(exportImportNonInstantiatedModule.ts, 1, 24)) +>I : I +>x : number } module B { ->B : typeof B, Symbol(B, Decl(exportImportNonInstantiatedModule.ts, 2, 1)) +>B : typeof B export import A1 = A ->A1 : any, Symbol(A1, Decl(exportImportNonInstantiatedModule.ts, 4, 10)) ->A : any, Symbol(A1, Decl(exportImportNonInstantiatedModule.ts, 0, 0)) +>A1 : any +>A : any } var x: B.A1.I = { x: 1 }; ->x : A.I, Symbol(x, Decl(exportImportNonInstantiatedModule.ts, 9, 3)) ->B : any, Symbol(B, Decl(exportImportNonInstantiatedModule.ts, 2, 1)) ->A1 : any, Symbol(B.A1, Decl(exportImportNonInstantiatedModule.ts, 4, 10)) ->I : A.I, Symbol(A.I, Decl(exportImportNonInstantiatedModule.ts, 0, 10)) +>x : A.I +>B : any +>A1 : any +>I : A.I >{ x: 1 } : { x: number; } ->x : number, Symbol(x, Decl(exportImportNonInstantiatedModule.ts, 9, 17)) +>x : number >1 : number diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule2.symbols b/tests/baselines/reference/exportImportNonInstantiatedModule2.symbols new file mode 100644 index 0000000000000..02ccf97b1613d --- /dev/null +++ b/tests/baselines/reference/exportImportNonInstantiatedModule2.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/consumer.ts === +import e = require('./exporter'); +>e : Symbol(e, Decl(consumer.ts, 0, 0)) + +export function w(): e.w { // Should be OK +>w : Symbol(w, Decl(consumer.ts, 0, 33)) +>e : Symbol(e, Decl(consumer.ts, 0, 0)) +>w : Symbol(e.w, Decl(exporter.ts, 0, 0)) + + return {name: 'value' }; +>name : Symbol(name, Decl(consumer.ts, 3, 12)) +} +=== tests/cases/compiler/w1.ts === + +export = Widget1 +>Widget1 : Symbol(Widget1, Decl(w1.ts, 1, 16)) + +interface Widget1 { name: string; } +>Widget1 : Symbol(Widget1, Decl(w1.ts, 1, 16)) +>name : Symbol(name, Decl(w1.ts, 2, 19)) + +=== tests/cases/compiler/exporter.ts === +export import w = require('./w1'); +>w : Symbol(w, Decl(exporter.ts, 0, 0)) + diff --git a/tests/baselines/reference/exportImportNonInstantiatedModule2.types b/tests/baselines/reference/exportImportNonInstantiatedModule2.types index 3d29263e1c8d8..34f0810c12d2f 100644 --- a/tests/baselines/reference/exportImportNonInstantiatedModule2.types +++ b/tests/baselines/reference/exportImportNonInstantiatedModule2.types @@ -1,27 +1,27 @@ === tests/cases/compiler/consumer.ts === import e = require('./exporter'); ->e : typeof e, Symbol(e, Decl(consumer.ts, 0, 0)) +>e : typeof e export function w(): e.w { // Should be OK ->w : () => e.w, Symbol(w, Decl(consumer.ts, 0, 33)) ->e : any, Symbol(e, Decl(consumer.ts, 0, 0)) ->w : e.w, Symbol(e.w, Decl(exporter.ts, 0, 0)) +>w : () => e.w +>e : any +>w : e.w return {name: 'value' }; >{name: 'value' } : { name: string; } ->name : string, Symbol(name, Decl(consumer.ts, 3, 12)) +>name : string >'value' : string } === tests/cases/compiler/w1.ts === export = Widget1 ->Widget1 : Widget1, Symbol(Widget1, Decl(w1.ts, 1, 16)) +>Widget1 : Widget1 interface Widget1 { name: string; } ->Widget1 : Widget1, Symbol(Widget1, Decl(w1.ts, 1, 16)) ->name : string, Symbol(name, Decl(w1.ts, 2, 19)) +>Widget1 : Widget1 +>name : string === tests/cases/compiler/exporter.ts === export import w = require('./w1'); ->w : any, Symbol(w, Decl(exporter.ts, 0, 0)) +>w : any diff --git a/tests/baselines/reference/exportPrivateType.symbols b/tests/baselines/reference/exportPrivateType.symbols new file mode 100644 index 0000000000000..ecb71869b3928 --- /dev/null +++ b/tests/baselines/reference/exportPrivateType.symbols @@ -0,0 +1,70 @@ +=== tests/cases/compiler/exportPrivateType.ts === +module foo { +>foo : Symbol(foo, Decl(exportPrivateType.ts, 0, 0)) + + class C1 { +>C1 : Symbol(C1, Decl(exportPrivateType.ts, 0, 12)) + + x: string; +>x : Symbol(x, Decl(exportPrivateType.ts, 1, 14)) + + y: C1; +>y : Symbol(y, Decl(exportPrivateType.ts, 2, 18)) +>C1 : Symbol(C1, Decl(exportPrivateType.ts, 0, 12)) + } + + class C2 { +>C2 : Symbol(C2, Decl(exportPrivateType.ts, 4, 5)) + + test() { return true; } +>test : Symbol(test, Decl(exportPrivateType.ts, 6, 14)) + } + + interface I1 { +>I1 : Symbol(I1, Decl(exportPrivateType.ts, 8, 5)) + + (a: string, b: string): string; +>a : Symbol(a, Decl(exportPrivateType.ts, 11, 9)) +>b : Symbol(b, Decl(exportPrivateType.ts, 11, 19)) + + (x: number, y: number): I1; +>x : Symbol(x, Decl(exportPrivateType.ts, 12, 9)) +>y : Symbol(y, Decl(exportPrivateType.ts, 12, 19)) +>I1 : Symbol(I1, Decl(exportPrivateType.ts, 8, 5)) + } + + interface I2 { +>I2 : Symbol(I2, Decl(exportPrivateType.ts, 13, 5)) + + x: string; +>x : Symbol(x, Decl(exportPrivateType.ts, 15, 18)) + + y: number; +>y : Symbol(y, Decl(exportPrivateType.ts, 16, 18)) + } + + // None of the types are exported, so per section 10.3, should all be errors + export var e: C1; +>e : Symbol(e, Decl(exportPrivateType.ts, 21, 14)) +>C1 : Symbol(C1, Decl(exportPrivateType.ts, 0, 12)) + + export var f: I1; +>f : Symbol(f, Decl(exportPrivateType.ts, 22, 14)) +>I1 : Symbol(I1, Decl(exportPrivateType.ts, 8, 5)) + + export var g: C2; +>g : Symbol(g, Decl(exportPrivateType.ts, 23, 14)) +>C2 : Symbol(C2, Decl(exportPrivateType.ts, 4, 5)) + + export var h: I2; +>h : Symbol(h, Decl(exportPrivateType.ts, 24, 14)) +>I2 : Symbol(I2, Decl(exportPrivateType.ts, 13, 5)) +} + +var y = foo.g; // Exported variable 'y' has or is using private type 'foo.C2'. +>y : Symbol(y, Decl(exportPrivateType.ts, 27, 3)) +>foo.g : Symbol(foo.g, Decl(exportPrivateType.ts, 23, 14)) +>foo : Symbol(foo, Decl(exportPrivateType.ts, 0, 0)) +>g : Symbol(foo.g, Decl(exportPrivateType.ts, 23, 14)) + + diff --git a/tests/baselines/reference/exportPrivateType.types b/tests/baselines/reference/exportPrivateType.types index 5bd41665e5e80..a91577c2b9c26 100644 --- a/tests/baselines/reference/exportPrivateType.types +++ b/tests/baselines/reference/exportPrivateType.types @@ -1,71 +1,71 @@ === tests/cases/compiler/exportPrivateType.ts === module foo { ->foo : typeof foo, Symbol(foo, Decl(exportPrivateType.ts, 0, 0)) +>foo : typeof foo class C1 { ->C1 : C1, Symbol(C1, Decl(exportPrivateType.ts, 0, 12)) +>C1 : C1 x: string; ->x : string, Symbol(x, Decl(exportPrivateType.ts, 1, 14)) +>x : string y: C1; ->y : C1, Symbol(y, Decl(exportPrivateType.ts, 2, 18)) ->C1 : C1, Symbol(C1, Decl(exportPrivateType.ts, 0, 12)) +>y : C1 +>C1 : C1 } class C2 { ->C2 : C2, Symbol(C2, Decl(exportPrivateType.ts, 4, 5)) +>C2 : C2 test() { return true; } ->test : () => boolean, Symbol(test, Decl(exportPrivateType.ts, 6, 14)) +>test : () => boolean >true : boolean } interface I1 { ->I1 : I1, Symbol(I1, Decl(exportPrivateType.ts, 8, 5)) +>I1 : I1 (a: string, b: string): string; ->a : string, Symbol(a, Decl(exportPrivateType.ts, 11, 9)) ->b : string, Symbol(b, Decl(exportPrivateType.ts, 11, 19)) +>a : string +>b : string (x: number, y: number): I1; ->x : number, Symbol(x, Decl(exportPrivateType.ts, 12, 9)) ->y : number, Symbol(y, Decl(exportPrivateType.ts, 12, 19)) ->I1 : I1, Symbol(I1, Decl(exportPrivateType.ts, 8, 5)) +>x : number +>y : number +>I1 : I1 } interface I2 { ->I2 : I2, Symbol(I2, Decl(exportPrivateType.ts, 13, 5)) +>I2 : I2 x: string; ->x : string, Symbol(x, Decl(exportPrivateType.ts, 15, 18)) +>x : string y: number; ->y : number, Symbol(y, Decl(exportPrivateType.ts, 16, 18)) +>y : number } // None of the types are exported, so per section 10.3, should all be errors export var e: C1; ->e : C1, Symbol(e, Decl(exportPrivateType.ts, 21, 14)) ->C1 : C1, Symbol(C1, Decl(exportPrivateType.ts, 0, 12)) +>e : C1 +>C1 : C1 export var f: I1; ->f : I1, Symbol(f, Decl(exportPrivateType.ts, 22, 14)) ->I1 : I1, Symbol(I1, Decl(exportPrivateType.ts, 8, 5)) +>f : I1 +>I1 : I1 export var g: C2; ->g : C2, Symbol(g, Decl(exportPrivateType.ts, 23, 14)) ->C2 : C2, Symbol(C2, Decl(exportPrivateType.ts, 4, 5)) +>g : C2 +>C2 : C2 export var h: I2; ->h : I2, Symbol(h, Decl(exportPrivateType.ts, 24, 14)) ->I2 : I2, Symbol(I2, Decl(exportPrivateType.ts, 13, 5)) +>h : I2 +>I2 : I2 } var y = foo.g; // Exported variable 'y' has or is using private type 'foo.C2'. ->y : C2, Symbol(y, Decl(exportPrivateType.ts, 27, 3)) ->foo.g : C2, Symbol(foo.g, Decl(exportPrivateType.ts, 23, 14)) ->foo : typeof foo, Symbol(foo, Decl(exportPrivateType.ts, 0, 0)) ->g : C2, Symbol(foo.g, Decl(exportPrivateType.ts, 23, 14)) +>y : C2 +>foo.g : C2 +>foo : typeof foo +>g : C2 diff --git a/tests/baselines/reference/exportVisibility.symbols b/tests/baselines/reference/exportVisibility.symbols new file mode 100644 index 0000000000000..05785abd4f0fe --- /dev/null +++ b/tests/baselines/reference/exportVisibility.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/exportVisibility.ts === +export class Foo { +>Foo : Symbol(Foo, Decl(exportVisibility.ts, 0, 0)) +} + +export var foo = new Foo(); +>foo : Symbol(foo, Decl(exportVisibility.ts, 3, 10)) +>Foo : Symbol(Foo, Decl(exportVisibility.ts, 0, 0)) + +export function test(foo: Foo) { +>test : Symbol(test, Decl(exportVisibility.ts, 3, 27)) +>foo : Symbol(foo, Decl(exportVisibility.ts, 5, 21)) +>Foo : Symbol(Foo, Decl(exportVisibility.ts, 0, 0)) + + return true; +} + diff --git a/tests/baselines/reference/exportVisibility.types b/tests/baselines/reference/exportVisibility.types index f2c3c8ce291f2..cf1e092473e38 100644 --- a/tests/baselines/reference/exportVisibility.types +++ b/tests/baselines/reference/exportVisibility.types @@ -1,17 +1,17 @@ === tests/cases/compiler/exportVisibility.ts === export class Foo { ->Foo : Foo, Symbol(Foo, Decl(exportVisibility.ts, 0, 0)) +>Foo : Foo } export var foo = new Foo(); ->foo : Foo, Symbol(foo, Decl(exportVisibility.ts, 3, 10)) +>foo : Foo >new Foo() : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(exportVisibility.ts, 0, 0)) +>Foo : typeof Foo export function test(foo: Foo) { ->test : (foo: Foo) => boolean, Symbol(test, Decl(exportVisibility.ts, 3, 27)) ->foo : Foo, Symbol(foo, Decl(exportVisibility.ts, 5, 21)) ->Foo : Foo, Symbol(Foo, Decl(exportVisibility.ts, 0, 0)) +>test : (foo: Foo) => boolean +>foo : Foo +>Foo : Foo return true; >true : boolean diff --git a/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.symbols b/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.symbols new file mode 100644 index 0000000000000..3127de7b6a233 --- /dev/null +++ b/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts === +export interface ProgressCallback { +>ProgressCallback : Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) + + (progress:any):any; +>progress : Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 1, 2)) +} + +// --- Generic promise +export declare class TPromise { +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>V : Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) + + constructor(init:(complete: (value:V)=>void, error:(err:any)=>void, progress:ProgressCallback)=>void, oncancel?: any); +>init : Symbol(init, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 13)) +>complete : Symbol(complete, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 19)) +>value : Symbol(value, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 30)) +>V : Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) +>error : Symbol(error, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 45)) +>err : Symbol(err, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 53)) +>progress : Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 68)) +>ProgressCallback : Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) +>oncancel : Symbol(oncancel, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 102)) + + // removing this method fixes the error squiggle..... + public then(success?: (value:V)=>TPromise, error?: (err:any)=>TPromise, progress?:ProgressCallback): TPromise; +>then : Symbol(then, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 119)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>success : Symbol(success, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 16)) +>value : Symbol(value, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 27)) +>V : Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>error : Symbol(error, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 49)) +>err : Symbol(err, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 59)) +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>progress : Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 81)) +>ProgressCallback : Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) +>TPromise : Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) +>U : Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +} diff --git a/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types b/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types index 6440b6e4f74c3..c93c0742ebffb 100644 --- a/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types +++ b/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types @@ -1,42 +1,42 @@ === tests/cases/compiler/exportedInterfaceInaccessibleInCallbackInModule.ts === export interface ProgressCallback { ->ProgressCallback : ProgressCallback, Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) +>ProgressCallback : ProgressCallback (progress:any):any; ->progress : any, Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 1, 2)) +>progress : any } // --- Generic promise export declare class TPromise { ->TPromise : TPromise, Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) ->V : V, Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) +>TPromise : TPromise +>V : V constructor(init:(complete: (value:V)=>void, error:(err:any)=>void, progress:ProgressCallback)=>void, oncancel?: any); ->init : (complete: (value: V) => void, error: (err: any) => void, progress: ProgressCallback) => void, Symbol(init, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 13)) ->complete : (value: V) => void, Symbol(complete, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 19)) ->value : V, Symbol(value, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 30)) ->V : V, Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) ->error : (err: any) => void, Symbol(error, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 45)) ->err : any, Symbol(err, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 53)) ->progress : ProgressCallback, Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 68)) ->ProgressCallback : ProgressCallback, Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) ->oncancel : any, Symbol(oncancel, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 102)) +>init : (complete: (value: V) => void, error: (err: any) => void, progress: ProgressCallback) => void +>complete : (value: V) => void +>value : V +>V : V +>error : (err: any) => void +>err : any +>progress : ProgressCallback +>ProgressCallback : ProgressCallback +>oncancel : any // removing this method fixes the error squiggle..... public then(success?: (value:V)=>TPromise, error?: (err:any)=>TPromise, progress?:ProgressCallback): TPromise; ->then : (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback) => TPromise, Symbol(then, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 7, 119)) ->U : U, Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) ->success : (value: V) => TPromise, Symbol(success, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 16)) ->value : V, Symbol(value, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 27)) ->V : V, Symbol(V, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 5, 30)) ->TPromise : TPromise, Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) ->U : U, Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) ->error : (err: any) => TPromise, Symbol(error, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 49)) ->err : any, Symbol(err, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 59)) ->TPromise : TPromise, Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) ->U : U, Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) ->progress : ProgressCallback, Symbol(progress, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 81)) ->ProgressCallback : ProgressCallback, Symbol(ProgressCallback, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 0, 0)) ->TPromise : TPromise, Symbol(TPromise, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 2, 1)) ->U : U, Symbol(U, Decl(exportedInterfaceInaccessibleInCallbackInModule.ts, 10, 13)) +>then : (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback) => TPromise +>U : U +>success : (value: V) => TPromise +>value : V +>V : V +>TPromise : TPromise +>U : U +>error : (err: any) => TPromise +>err : any +>TPromise : TPromise +>U : U +>progress : ProgressCallback +>ProgressCallback : ProgressCallback +>TPromise : TPromise +>U : U } diff --git a/tests/baselines/reference/exportedVariable1.symbols b/tests/baselines/reference/exportedVariable1.symbols new file mode 100644 index 0000000000000..96c4b0210ba12 --- /dev/null +++ b/tests/baselines/reference/exportedVariable1.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/exportedVariable1.ts === +export var foo = {name: "Bill"}; +>foo : Symbol(foo, Decl(exportedVariable1.ts, 0, 10)) +>name : Symbol(name, Decl(exportedVariable1.ts, 0, 18)) + +var upper = foo.name.toUpperCase(); +>upper : Symbol(upper, Decl(exportedVariable1.ts, 1, 3)) +>foo.name.toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>foo.name : Symbol(name, Decl(exportedVariable1.ts, 0, 18)) +>foo : Symbol(foo, Decl(exportedVariable1.ts, 0, 10)) +>name : Symbol(name, Decl(exportedVariable1.ts, 0, 18)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) + diff --git a/tests/baselines/reference/exportedVariable1.types b/tests/baselines/reference/exportedVariable1.types index c6d9451f6c912..fa7017fefa8c9 100644 --- a/tests/baselines/reference/exportedVariable1.types +++ b/tests/baselines/reference/exportedVariable1.types @@ -1,16 +1,16 @@ === tests/cases/compiler/exportedVariable1.ts === export var foo = {name: "Bill"}; ->foo : { name: string; }, Symbol(foo, Decl(exportedVariable1.ts, 0, 10)) +>foo : { name: string; } >{name: "Bill"} : { name: string; } ->name : string, Symbol(name, Decl(exportedVariable1.ts, 0, 18)) +>name : string >"Bill" : string var upper = foo.name.toUpperCase(); ->upper : string, Symbol(upper, Decl(exportedVariable1.ts, 1, 3)) +>upper : string >foo.name.toUpperCase() : string ->foo.name.toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) ->foo.name : string, Symbol(name, Decl(exportedVariable1.ts, 0, 18)) ->foo : { name: string; }, Symbol(foo, Decl(exportedVariable1.ts, 0, 10)) ->name : string, Symbol(name, Decl(exportedVariable1.ts, 0, 18)) ->toUpperCase : () => string, Symbol(String.toUpperCase, Decl(lib.d.ts, 405, 32)) +>foo.name.toUpperCase : () => string +>foo.name : string +>foo : { name: string; } +>name : string +>toUpperCase : () => string diff --git a/tests/baselines/reference/exportsAndImports1-amd.symbols b/tests/baselines/reference/exportsAndImports1-amd.symbols new file mode 100644 index 0000000000000..dc90c8c7bf938 --- /dev/null +++ b/tests/baselines/reference/exportsAndImports1-amd.symbols @@ -0,0 +1,101 @@ +=== tests/cases/conformance/es6/modules/t1.ts === + +var v = 1; +>v : Symbol(v, Decl(t1.ts, 1, 3)) + +function f() { } +>f : Symbol(f, Decl(t1.ts, 1, 10)) + +class C { +>C : Symbol(C, Decl(t1.ts, 2, 16)) +} +interface I { +>I : Symbol(I, Decl(t1.ts, 4, 1)) +} +enum E { +>E : Symbol(E, Decl(t1.ts, 6, 1)) + + A, B, C +>A : Symbol(E.A, Decl(t1.ts, 7, 8)) +>B : Symbol(E.B, Decl(t1.ts, 8, 6)) +>C : Symbol(E.C, Decl(t1.ts, 8, 9)) +} +const enum D { +>D : Symbol(D, Decl(t1.ts, 9, 1)) + + A, B, C +>A : Symbol(D.A, Decl(t1.ts, 10, 14)) +>B : Symbol(D.B, Decl(t1.ts, 11, 6)) +>C : Symbol(D.C, Decl(t1.ts, 11, 9)) +} +module M { +>M : Symbol(M, Decl(t1.ts, 12, 1)) + + export var x; +>x : Symbol(x, Decl(t1.ts, 14, 14)) +} +module N { +>N : Symbol(N, Decl(t1.ts, 15, 1)) + + export interface I { +>I : Symbol(I, Decl(t1.ts, 16, 10)) + } +} +type T = number; +>T : Symbol(T, Decl(t1.ts, 19, 1)) + +import a = M.x; +>a : Symbol(a, Decl(t1.ts, 20, 16)) +>M : Symbol(M, Decl(t1.ts, 12, 1)) +>x : Symbol(a, Decl(t1.ts, 14, 14)) + +export { v, f, C, I, E, D, M, N, T, a }; +>v : Symbol(v, Decl(t1.ts, 23, 8)) +>f : Symbol(f, Decl(t1.ts, 23, 11)) +>C : Symbol(C, Decl(t1.ts, 23, 14)) +>I : Symbol(I, Decl(t1.ts, 23, 17)) +>E : Symbol(E, Decl(t1.ts, 23, 20)) +>D : Symbol(D, Decl(t1.ts, 23, 23)) +>M : Symbol(M, Decl(t1.ts, 23, 26)) +>N : Symbol(N, Decl(t1.ts, 23, 29)) +>T : Symbol(T, Decl(t1.ts, 23, 32)) +>a : Symbol(a, Decl(t1.ts, 23, 35)) + +=== tests/cases/conformance/es6/modules/t2.ts === +export { v, f, C, I, E, D, M, N, T, a } from "./t1"; +>v : Symbol(v, Decl(t2.ts, 0, 8)) +>f : Symbol(f, Decl(t2.ts, 0, 11)) +>C : Symbol(C, Decl(t2.ts, 0, 14)) +>I : Symbol(I, Decl(t2.ts, 0, 17)) +>E : Symbol(E, Decl(t2.ts, 0, 20)) +>D : Symbol(D, Decl(t2.ts, 0, 23)) +>M : Symbol(M, Decl(t2.ts, 0, 26)) +>N : Symbol(N, Decl(t2.ts, 0, 29)) +>T : Symbol(T, Decl(t2.ts, 0, 32)) +>a : Symbol(a, Decl(t2.ts, 0, 35)) + +=== tests/cases/conformance/es6/modules/t3.ts === +import { v, f, C, I, E, D, M, N, T, a } from "./t1"; +>v : Symbol(v, Decl(t3.ts, 0, 8)) +>f : Symbol(f, Decl(t3.ts, 0, 11)) +>C : Symbol(C, Decl(t3.ts, 0, 14)) +>I : Symbol(I, Decl(t3.ts, 0, 17)) +>E : Symbol(E, Decl(t3.ts, 0, 20)) +>D : Symbol(D, Decl(t3.ts, 0, 23)) +>M : Symbol(M, Decl(t3.ts, 0, 26)) +>N : Symbol(N, Decl(t3.ts, 0, 29)) +>T : Symbol(T, Decl(t3.ts, 0, 32)) +>a : Symbol(a, Decl(t3.ts, 0, 35)) + +export { v, f, C, I, E, D, M, N, T, a }; +>v : Symbol(v, Decl(t3.ts, 1, 8)) +>f : Symbol(f, Decl(t3.ts, 1, 11)) +>C : Symbol(C, Decl(t3.ts, 1, 14)) +>I : Symbol(I, Decl(t3.ts, 1, 17)) +>E : Symbol(E, Decl(t3.ts, 1, 20)) +>D : Symbol(D, Decl(t3.ts, 1, 23)) +>M : Symbol(M, Decl(t3.ts, 1, 26)) +>N : Symbol(N, Decl(t3.ts, 1, 29)) +>T : Symbol(T, Decl(t3.ts, 1, 32)) +>a : Symbol(a, Decl(t3.ts, 1, 35)) + diff --git a/tests/baselines/reference/exportsAndImports1-amd.types b/tests/baselines/reference/exportsAndImports1-amd.types index 219f8ebdc8a31..4ba83121541db 100644 --- a/tests/baselines/reference/exportsAndImports1-amd.types +++ b/tests/baselines/reference/exportsAndImports1-amd.types @@ -1,102 +1,102 @@ === tests/cases/conformance/es6/modules/t1.ts === var v = 1; ->v : number, Symbol(v, Decl(t1.ts, 1, 3)) +>v : number >1 : number function f() { } ->f : () => void, Symbol(f, Decl(t1.ts, 1, 10)) +>f : () => void class C { ->C : C, Symbol(C, Decl(t1.ts, 2, 16)) +>C : C } interface I { ->I : I, Symbol(I, Decl(t1.ts, 4, 1)) +>I : I } enum E { ->E : E, Symbol(E, Decl(t1.ts, 6, 1)) +>E : E A, B, C ->A : E, Symbol(E.A, Decl(t1.ts, 7, 8)) ->B : E, Symbol(E.B, Decl(t1.ts, 8, 6)) ->C : E, Symbol(E.C, Decl(t1.ts, 8, 9)) +>A : E +>B : E +>C : E } const enum D { ->D : D, Symbol(D, Decl(t1.ts, 9, 1)) +>D : D A, B, C ->A : D, Symbol(D.A, Decl(t1.ts, 10, 14)) ->B : D, Symbol(D.B, Decl(t1.ts, 11, 6)) ->C : D, Symbol(D.C, Decl(t1.ts, 11, 9)) +>A : D +>B : D +>C : D } module M { ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) +>M : typeof M export var x; ->x : any, Symbol(x, Decl(t1.ts, 14, 14)) +>x : any } module N { ->N : any, Symbol(N, Decl(t1.ts, 15, 1)) +>N : any export interface I { ->I : I, Symbol(I, Decl(t1.ts, 16, 10)) +>I : I } } type T = number; ->T : number, Symbol(T, Decl(t1.ts, 19, 1)) +>T : number import a = M.x; ->a : any, Symbol(a, Decl(t1.ts, 20, 16)) ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) ->x : any, Symbol(a, Decl(t1.ts, 14, 14)) +>a : any +>M : typeof M +>x : any export { v, f, C, I, E, D, M, N, T, a }; ->v : number, Symbol(v, Decl(t1.ts, 23, 8)) ->f : () => void, Symbol(f, Decl(t1.ts, 23, 11)) ->C : typeof C, Symbol(C, Decl(t1.ts, 23, 14)) ->I : any, Symbol(I, Decl(t1.ts, 23, 17)) ->E : typeof E, Symbol(E, Decl(t1.ts, 23, 20)) ->D : typeof D, Symbol(D, Decl(t1.ts, 23, 23)) ->M : typeof M, Symbol(M, Decl(t1.ts, 23, 26)) ->N : any, Symbol(N, Decl(t1.ts, 23, 29)) ->T : any, Symbol(T, Decl(t1.ts, 23, 32)) ->a : any, Symbol(a, Decl(t1.ts, 23, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any === tests/cases/conformance/es6/modules/t2.ts === export { v, f, C, I, E, D, M, N, T, a } from "./t1"; ->v : number, Symbol(v, Decl(t2.ts, 0, 8)) ->f : () => void, Symbol(f, Decl(t2.ts, 0, 11)) ->C : typeof C, Symbol(C, Decl(t2.ts, 0, 14)) ->I : any, Symbol(I, Decl(t2.ts, 0, 17)) ->E : typeof E, Symbol(E, Decl(t2.ts, 0, 20)) ->D : typeof D, Symbol(D, Decl(t2.ts, 0, 23)) ->M : typeof M, Symbol(M, Decl(t2.ts, 0, 26)) ->N : any, Symbol(N, Decl(t2.ts, 0, 29)) ->T : any, Symbol(T, Decl(t2.ts, 0, 32)) ->a : any, Symbol(a, Decl(t2.ts, 0, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any === tests/cases/conformance/es6/modules/t3.ts === import { v, f, C, I, E, D, M, N, T, a } from "./t1"; ->v : number, Symbol(v, Decl(t3.ts, 0, 8)) ->f : () => void, Symbol(f, Decl(t3.ts, 0, 11)) ->C : typeof C, Symbol(C, Decl(t3.ts, 0, 14)) ->I : any, Symbol(I, Decl(t3.ts, 0, 17)) ->E : typeof E, Symbol(E, Decl(t3.ts, 0, 20)) ->D : typeof D, Symbol(D, Decl(t3.ts, 0, 23)) ->M : typeof M, Symbol(M, Decl(t3.ts, 0, 26)) ->N : any, Symbol(N, Decl(t3.ts, 0, 29)) ->T : any, Symbol(T, Decl(t3.ts, 0, 32)) ->a : any, Symbol(a, Decl(t3.ts, 0, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any export { v, f, C, I, E, D, M, N, T, a }; ->v : number, Symbol(v, Decl(t3.ts, 1, 8)) ->f : () => void, Symbol(f, Decl(t3.ts, 1, 11)) ->C : typeof C, Symbol(C, Decl(t3.ts, 1, 14)) ->I : any, Symbol(I, Decl(t3.ts, 1, 17)) ->E : typeof E, Symbol(E, Decl(t3.ts, 1, 20)) ->D : typeof D, Symbol(D, Decl(t3.ts, 1, 23)) ->M : typeof M, Symbol(M, Decl(t3.ts, 1, 26)) ->N : any, Symbol(N, Decl(t3.ts, 1, 29)) ->T : any, Symbol(T, Decl(t3.ts, 1, 32)) ->a : any, Symbol(a, Decl(t3.ts, 1, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any diff --git a/tests/baselines/reference/exportsAndImports1.symbols b/tests/baselines/reference/exportsAndImports1.symbols new file mode 100644 index 0000000000000..dc90c8c7bf938 --- /dev/null +++ b/tests/baselines/reference/exportsAndImports1.symbols @@ -0,0 +1,101 @@ +=== tests/cases/conformance/es6/modules/t1.ts === + +var v = 1; +>v : Symbol(v, Decl(t1.ts, 1, 3)) + +function f() { } +>f : Symbol(f, Decl(t1.ts, 1, 10)) + +class C { +>C : Symbol(C, Decl(t1.ts, 2, 16)) +} +interface I { +>I : Symbol(I, Decl(t1.ts, 4, 1)) +} +enum E { +>E : Symbol(E, Decl(t1.ts, 6, 1)) + + A, B, C +>A : Symbol(E.A, Decl(t1.ts, 7, 8)) +>B : Symbol(E.B, Decl(t1.ts, 8, 6)) +>C : Symbol(E.C, Decl(t1.ts, 8, 9)) +} +const enum D { +>D : Symbol(D, Decl(t1.ts, 9, 1)) + + A, B, C +>A : Symbol(D.A, Decl(t1.ts, 10, 14)) +>B : Symbol(D.B, Decl(t1.ts, 11, 6)) +>C : Symbol(D.C, Decl(t1.ts, 11, 9)) +} +module M { +>M : Symbol(M, Decl(t1.ts, 12, 1)) + + export var x; +>x : Symbol(x, Decl(t1.ts, 14, 14)) +} +module N { +>N : Symbol(N, Decl(t1.ts, 15, 1)) + + export interface I { +>I : Symbol(I, Decl(t1.ts, 16, 10)) + } +} +type T = number; +>T : Symbol(T, Decl(t1.ts, 19, 1)) + +import a = M.x; +>a : Symbol(a, Decl(t1.ts, 20, 16)) +>M : Symbol(M, Decl(t1.ts, 12, 1)) +>x : Symbol(a, Decl(t1.ts, 14, 14)) + +export { v, f, C, I, E, D, M, N, T, a }; +>v : Symbol(v, Decl(t1.ts, 23, 8)) +>f : Symbol(f, Decl(t1.ts, 23, 11)) +>C : Symbol(C, Decl(t1.ts, 23, 14)) +>I : Symbol(I, Decl(t1.ts, 23, 17)) +>E : Symbol(E, Decl(t1.ts, 23, 20)) +>D : Symbol(D, Decl(t1.ts, 23, 23)) +>M : Symbol(M, Decl(t1.ts, 23, 26)) +>N : Symbol(N, Decl(t1.ts, 23, 29)) +>T : Symbol(T, Decl(t1.ts, 23, 32)) +>a : Symbol(a, Decl(t1.ts, 23, 35)) + +=== tests/cases/conformance/es6/modules/t2.ts === +export { v, f, C, I, E, D, M, N, T, a } from "./t1"; +>v : Symbol(v, Decl(t2.ts, 0, 8)) +>f : Symbol(f, Decl(t2.ts, 0, 11)) +>C : Symbol(C, Decl(t2.ts, 0, 14)) +>I : Symbol(I, Decl(t2.ts, 0, 17)) +>E : Symbol(E, Decl(t2.ts, 0, 20)) +>D : Symbol(D, Decl(t2.ts, 0, 23)) +>M : Symbol(M, Decl(t2.ts, 0, 26)) +>N : Symbol(N, Decl(t2.ts, 0, 29)) +>T : Symbol(T, Decl(t2.ts, 0, 32)) +>a : Symbol(a, Decl(t2.ts, 0, 35)) + +=== tests/cases/conformance/es6/modules/t3.ts === +import { v, f, C, I, E, D, M, N, T, a } from "./t1"; +>v : Symbol(v, Decl(t3.ts, 0, 8)) +>f : Symbol(f, Decl(t3.ts, 0, 11)) +>C : Symbol(C, Decl(t3.ts, 0, 14)) +>I : Symbol(I, Decl(t3.ts, 0, 17)) +>E : Symbol(E, Decl(t3.ts, 0, 20)) +>D : Symbol(D, Decl(t3.ts, 0, 23)) +>M : Symbol(M, Decl(t3.ts, 0, 26)) +>N : Symbol(N, Decl(t3.ts, 0, 29)) +>T : Symbol(T, Decl(t3.ts, 0, 32)) +>a : Symbol(a, Decl(t3.ts, 0, 35)) + +export { v, f, C, I, E, D, M, N, T, a }; +>v : Symbol(v, Decl(t3.ts, 1, 8)) +>f : Symbol(f, Decl(t3.ts, 1, 11)) +>C : Symbol(C, Decl(t3.ts, 1, 14)) +>I : Symbol(I, Decl(t3.ts, 1, 17)) +>E : Symbol(E, Decl(t3.ts, 1, 20)) +>D : Symbol(D, Decl(t3.ts, 1, 23)) +>M : Symbol(M, Decl(t3.ts, 1, 26)) +>N : Symbol(N, Decl(t3.ts, 1, 29)) +>T : Symbol(T, Decl(t3.ts, 1, 32)) +>a : Symbol(a, Decl(t3.ts, 1, 35)) + diff --git a/tests/baselines/reference/exportsAndImports1.types b/tests/baselines/reference/exportsAndImports1.types index 219f8ebdc8a31..4ba83121541db 100644 --- a/tests/baselines/reference/exportsAndImports1.types +++ b/tests/baselines/reference/exportsAndImports1.types @@ -1,102 +1,102 @@ === tests/cases/conformance/es6/modules/t1.ts === var v = 1; ->v : number, Symbol(v, Decl(t1.ts, 1, 3)) +>v : number >1 : number function f() { } ->f : () => void, Symbol(f, Decl(t1.ts, 1, 10)) +>f : () => void class C { ->C : C, Symbol(C, Decl(t1.ts, 2, 16)) +>C : C } interface I { ->I : I, Symbol(I, Decl(t1.ts, 4, 1)) +>I : I } enum E { ->E : E, Symbol(E, Decl(t1.ts, 6, 1)) +>E : E A, B, C ->A : E, Symbol(E.A, Decl(t1.ts, 7, 8)) ->B : E, Symbol(E.B, Decl(t1.ts, 8, 6)) ->C : E, Symbol(E.C, Decl(t1.ts, 8, 9)) +>A : E +>B : E +>C : E } const enum D { ->D : D, Symbol(D, Decl(t1.ts, 9, 1)) +>D : D A, B, C ->A : D, Symbol(D.A, Decl(t1.ts, 10, 14)) ->B : D, Symbol(D.B, Decl(t1.ts, 11, 6)) ->C : D, Symbol(D.C, Decl(t1.ts, 11, 9)) +>A : D +>B : D +>C : D } module M { ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) +>M : typeof M export var x; ->x : any, Symbol(x, Decl(t1.ts, 14, 14)) +>x : any } module N { ->N : any, Symbol(N, Decl(t1.ts, 15, 1)) +>N : any export interface I { ->I : I, Symbol(I, Decl(t1.ts, 16, 10)) +>I : I } } type T = number; ->T : number, Symbol(T, Decl(t1.ts, 19, 1)) +>T : number import a = M.x; ->a : any, Symbol(a, Decl(t1.ts, 20, 16)) ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) ->x : any, Symbol(a, Decl(t1.ts, 14, 14)) +>a : any +>M : typeof M +>x : any export { v, f, C, I, E, D, M, N, T, a }; ->v : number, Symbol(v, Decl(t1.ts, 23, 8)) ->f : () => void, Symbol(f, Decl(t1.ts, 23, 11)) ->C : typeof C, Symbol(C, Decl(t1.ts, 23, 14)) ->I : any, Symbol(I, Decl(t1.ts, 23, 17)) ->E : typeof E, Symbol(E, Decl(t1.ts, 23, 20)) ->D : typeof D, Symbol(D, Decl(t1.ts, 23, 23)) ->M : typeof M, Symbol(M, Decl(t1.ts, 23, 26)) ->N : any, Symbol(N, Decl(t1.ts, 23, 29)) ->T : any, Symbol(T, Decl(t1.ts, 23, 32)) ->a : any, Symbol(a, Decl(t1.ts, 23, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any === tests/cases/conformance/es6/modules/t2.ts === export { v, f, C, I, E, D, M, N, T, a } from "./t1"; ->v : number, Symbol(v, Decl(t2.ts, 0, 8)) ->f : () => void, Symbol(f, Decl(t2.ts, 0, 11)) ->C : typeof C, Symbol(C, Decl(t2.ts, 0, 14)) ->I : any, Symbol(I, Decl(t2.ts, 0, 17)) ->E : typeof E, Symbol(E, Decl(t2.ts, 0, 20)) ->D : typeof D, Symbol(D, Decl(t2.ts, 0, 23)) ->M : typeof M, Symbol(M, Decl(t2.ts, 0, 26)) ->N : any, Symbol(N, Decl(t2.ts, 0, 29)) ->T : any, Symbol(T, Decl(t2.ts, 0, 32)) ->a : any, Symbol(a, Decl(t2.ts, 0, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any === tests/cases/conformance/es6/modules/t3.ts === import { v, f, C, I, E, D, M, N, T, a } from "./t1"; ->v : number, Symbol(v, Decl(t3.ts, 0, 8)) ->f : () => void, Symbol(f, Decl(t3.ts, 0, 11)) ->C : typeof C, Symbol(C, Decl(t3.ts, 0, 14)) ->I : any, Symbol(I, Decl(t3.ts, 0, 17)) ->E : typeof E, Symbol(E, Decl(t3.ts, 0, 20)) ->D : typeof D, Symbol(D, Decl(t3.ts, 0, 23)) ->M : typeof M, Symbol(M, Decl(t3.ts, 0, 26)) ->N : any, Symbol(N, Decl(t3.ts, 0, 29)) ->T : any, Symbol(T, Decl(t3.ts, 0, 32)) ->a : any, Symbol(a, Decl(t3.ts, 0, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any export { v, f, C, I, E, D, M, N, T, a }; ->v : number, Symbol(v, Decl(t3.ts, 1, 8)) ->f : () => void, Symbol(f, Decl(t3.ts, 1, 11)) ->C : typeof C, Symbol(C, Decl(t3.ts, 1, 14)) ->I : any, Symbol(I, Decl(t3.ts, 1, 17)) ->E : typeof E, Symbol(E, Decl(t3.ts, 1, 20)) ->D : typeof D, Symbol(D, Decl(t3.ts, 1, 23)) ->M : typeof M, Symbol(M, Decl(t3.ts, 1, 26)) ->N : any, Symbol(N, Decl(t3.ts, 1, 29)) ->T : any, Symbol(T, Decl(t3.ts, 1, 32)) ->a : any, Symbol(a, Decl(t3.ts, 1, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any diff --git a/tests/baselines/reference/exportsAndImports2-amd.symbols b/tests/baselines/reference/exportsAndImports2-amd.symbols new file mode 100644 index 0000000000000..8b53794abae47 --- /dev/null +++ b/tests/baselines/reference/exportsAndImports2-amd.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/modules/t1.ts === + +export var x = "x"; +>x : Symbol(x, Decl(t1.ts, 1, 10)) + +export var y = "y"; +>y : Symbol(y, Decl(t1.ts, 2, 10)) + +=== tests/cases/conformance/es6/modules/t2.ts === +export { x as y, y as x } from "./t1"; +>x : Symbol(y, Decl(t2.ts, 0, 8)) +>y : Symbol(y, Decl(t2.ts, 0, 8)) +>y : Symbol(x, Decl(t2.ts, 0, 16)) +>x : Symbol(x, Decl(t2.ts, 0, 16)) + +=== tests/cases/conformance/es6/modules/t3.ts === +import { x, y } from "./t1"; +>x : Symbol(x, Decl(t3.ts, 0, 8)) +>y : Symbol(y, Decl(t3.ts, 0, 11)) + +export { x as y, y as x }; +>x : Symbol(y, Decl(t3.ts, 1, 8)) +>y : Symbol(y, Decl(t3.ts, 1, 8)) +>y : Symbol(x, Decl(t3.ts, 1, 16)) +>x : Symbol(x, Decl(t3.ts, 1, 16)) + diff --git a/tests/baselines/reference/exportsAndImports2-amd.types b/tests/baselines/reference/exportsAndImports2-amd.types index 282ae136d0e60..32de763c5673e 100644 --- a/tests/baselines/reference/exportsAndImports2-amd.types +++ b/tests/baselines/reference/exportsAndImports2-amd.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/modules/t1.ts === export var x = "x"; ->x : string, Symbol(x, Decl(t1.ts, 1, 10)) +>x : string >"x" : string export var y = "y"; ->y : string, Symbol(y, Decl(t1.ts, 2, 10)) +>y : string >"y" : string === tests/cases/conformance/es6/modules/t2.ts === export { x as y, y as x } from "./t1"; ->x : string, Symbol(y, Decl(t2.ts, 0, 8)) ->y : string, Symbol(y, Decl(t2.ts, 0, 8)) ->y : string, Symbol(x, Decl(t2.ts, 0, 16)) ->x : string, Symbol(x, Decl(t2.ts, 0, 16)) +>x : string +>y : string +>y : string +>x : string === tests/cases/conformance/es6/modules/t3.ts === import { x, y } from "./t1"; ->x : string, Symbol(x, Decl(t3.ts, 0, 8)) ->y : string, Symbol(y, Decl(t3.ts, 0, 11)) +>x : string +>y : string export { x as y, y as x }; ->x : string, Symbol(y, Decl(t3.ts, 1, 8)) ->y : string, Symbol(y, Decl(t3.ts, 1, 8)) ->y : string, Symbol(x, Decl(t3.ts, 1, 16)) ->x : string, Symbol(x, Decl(t3.ts, 1, 16)) +>x : string +>y : string +>y : string +>x : string diff --git a/tests/baselines/reference/exportsAndImports2.symbols b/tests/baselines/reference/exportsAndImports2.symbols new file mode 100644 index 0000000000000..8b53794abae47 --- /dev/null +++ b/tests/baselines/reference/exportsAndImports2.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/modules/t1.ts === + +export var x = "x"; +>x : Symbol(x, Decl(t1.ts, 1, 10)) + +export var y = "y"; +>y : Symbol(y, Decl(t1.ts, 2, 10)) + +=== tests/cases/conformance/es6/modules/t2.ts === +export { x as y, y as x } from "./t1"; +>x : Symbol(y, Decl(t2.ts, 0, 8)) +>y : Symbol(y, Decl(t2.ts, 0, 8)) +>y : Symbol(x, Decl(t2.ts, 0, 16)) +>x : Symbol(x, Decl(t2.ts, 0, 16)) + +=== tests/cases/conformance/es6/modules/t3.ts === +import { x, y } from "./t1"; +>x : Symbol(x, Decl(t3.ts, 0, 8)) +>y : Symbol(y, Decl(t3.ts, 0, 11)) + +export { x as y, y as x }; +>x : Symbol(y, Decl(t3.ts, 1, 8)) +>y : Symbol(y, Decl(t3.ts, 1, 8)) +>y : Symbol(x, Decl(t3.ts, 1, 16)) +>x : Symbol(x, Decl(t3.ts, 1, 16)) + diff --git a/tests/baselines/reference/exportsAndImports2.types b/tests/baselines/reference/exportsAndImports2.types index 282ae136d0e60..32de763c5673e 100644 --- a/tests/baselines/reference/exportsAndImports2.types +++ b/tests/baselines/reference/exportsAndImports2.types @@ -1,28 +1,28 @@ === tests/cases/conformance/es6/modules/t1.ts === export var x = "x"; ->x : string, Symbol(x, Decl(t1.ts, 1, 10)) +>x : string >"x" : string export var y = "y"; ->y : string, Symbol(y, Decl(t1.ts, 2, 10)) +>y : string >"y" : string === tests/cases/conformance/es6/modules/t2.ts === export { x as y, y as x } from "./t1"; ->x : string, Symbol(y, Decl(t2.ts, 0, 8)) ->y : string, Symbol(y, Decl(t2.ts, 0, 8)) ->y : string, Symbol(x, Decl(t2.ts, 0, 16)) ->x : string, Symbol(x, Decl(t2.ts, 0, 16)) +>x : string +>y : string +>y : string +>x : string === tests/cases/conformance/es6/modules/t3.ts === import { x, y } from "./t1"; ->x : string, Symbol(x, Decl(t3.ts, 0, 8)) ->y : string, Symbol(y, Decl(t3.ts, 0, 11)) +>x : string +>y : string export { x as y, y as x }; ->x : string, Symbol(y, Decl(t3.ts, 1, 8)) ->y : string, Symbol(y, Decl(t3.ts, 1, 8)) ->y : string, Symbol(x, Decl(t3.ts, 1, 16)) ->x : string, Symbol(x, Decl(t3.ts, 1, 16)) +>x : string +>y : string +>y : string +>x : string diff --git a/tests/baselines/reference/exportsAndImports3-amd.symbols b/tests/baselines/reference/exportsAndImports3-amd.symbols new file mode 100644 index 0000000000000..4ab418a9bef4b --- /dev/null +++ b/tests/baselines/reference/exportsAndImports3-amd.symbols @@ -0,0 +1,131 @@ +=== tests/cases/conformance/es6/modules/t1.ts === + +export var v = 1; +>v : Symbol(v, Decl(t1.ts, 1, 10)) + +export function f() { } +>f : Symbol(f, Decl(t1.ts, 1, 17)) + +export class C { +>C : Symbol(C, Decl(t1.ts, 2, 23)) +} +export interface I { +>I : Symbol(I, Decl(t1.ts, 4, 1)) +} +export enum E { +>E : Symbol(E, Decl(t1.ts, 6, 1)) + + A, B, C +>A : Symbol(E1.A, Decl(t1.ts, 7, 15)) +>B : Symbol(E1.B, Decl(t1.ts, 8, 6)) +>C : Symbol(E1.C, Decl(t1.ts, 8, 9)) +} +export const enum D { +>D : Symbol(D, Decl(t1.ts, 9, 1)) + + A, B, C +>A : Symbol(D1.A, Decl(t1.ts, 10, 21)) +>B : Symbol(D1.B, Decl(t1.ts, 11, 6)) +>C : Symbol(D1.C, Decl(t1.ts, 11, 9)) +} +export module M { +>M : Symbol(M, Decl(t1.ts, 12, 1)) + + export var x; +>x : Symbol(x, Decl(t1.ts, 14, 14)) +} +export module N { +>N : Symbol(N, Decl(t1.ts, 15, 1)) + + export interface I { +>I : Symbol(I, Decl(t1.ts, 16, 17)) + } +} +export type T = number; +>T : Symbol(T, Decl(t1.ts, 19, 1)) + +export import a = M.x; +>a : Symbol(a, Decl(t1.ts, 20, 23)) +>M : Symbol(M, Decl(t1.ts, 12, 1)) +>x : Symbol(a, Decl(t1.ts, 14, 14)) + +export { v as v1, f as f1, C as C1, I as I1, E as E1, D as D1, M as M1, N as N1, T as T1, a as a1 }; +>v : Symbol(v1, Decl(t1.ts, 23, 8)) +>v1 : Symbol(v1, Decl(t1.ts, 23, 8)) +>f : Symbol(f1, Decl(t1.ts, 23, 17)) +>f1 : Symbol(f1, Decl(t1.ts, 23, 17)) +>C : Symbol(C1, Decl(t1.ts, 23, 26)) +>C1 : Symbol(C1, Decl(t1.ts, 23, 26)) +>I : Symbol(I1, Decl(t1.ts, 23, 35)) +>I1 : Symbol(I1, Decl(t1.ts, 23, 35)) +>E : Symbol(E1, Decl(t1.ts, 23, 44)) +>E1 : Symbol(E1, Decl(t1.ts, 23, 44)) +>D : Symbol(D1, Decl(t1.ts, 23, 53)) +>D1 : Symbol(D1, Decl(t1.ts, 23, 53)) +>M : Symbol(M1, Decl(t1.ts, 23, 62)) +>M1 : Symbol(M1, Decl(t1.ts, 23, 62)) +>N : Symbol(N1, Decl(t1.ts, 23, 71)) +>N1 : Symbol(N1, Decl(t1.ts, 23, 71)) +>T : Symbol(T1, Decl(t1.ts, 23, 80)) +>T1 : Symbol(T1, Decl(t1.ts, 23, 80)) +>a : Symbol(a1, Decl(t1.ts, 23, 89)) +>a1 : Symbol(a1, Decl(t1.ts, 23, 89)) + +=== tests/cases/conformance/es6/modules/t2.ts === +export { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; +>v1 : Symbol(v, Decl(t2.ts, 0, 8)) +>v : Symbol(v, Decl(t2.ts, 0, 8)) +>f1 : Symbol(f, Decl(t2.ts, 0, 17)) +>f : Symbol(f, Decl(t2.ts, 0, 17)) +>C1 : Symbol(C, Decl(t2.ts, 0, 26)) +>C : Symbol(C, Decl(t2.ts, 0, 26)) +>I1 : Symbol(I, Decl(t2.ts, 0, 35)) +>I : Symbol(I, Decl(t2.ts, 0, 35)) +>E1 : Symbol(E, Decl(t2.ts, 0, 44)) +>E : Symbol(E, Decl(t2.ts, 0, 44)) +>D1 : Symbol(D, Decl(t2.ts, 0, 53)) +>D : Symbol(D, Decl(t2.ts, 0, 53)) +>M1 : Symbol(M, Decl(t2.ts, 0, 62)) +>M : Symbol(M, Decl(t2.ts, 0, 62)) +>N1 : Symbol(N, Decl(t2.ts, 0, 71)) +>N : Symbol(N, Decl(t2.ts, 0, 71)) +>T1 : Symbol(T, Decl(t2.ts, 0, 80)) +>T : Symbol(T, Decl(t2.ts, 0, 80)) +>a1 : Symbol(a, Decl(t2.ts, 0, 89)) +>a : Symbol(a, Decl(t2.ts, 0, 89)) + +=== tests/cases/conformance/es6/modules/t3.ts === +import { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; +>v1 : Symbol(v, Decl(t3.ts, 0, 8)) +>v : Symbol(v, Decl(t3.ts, 0, 8)) +>f1 : Symbol(f, Decl(t3.ts, 0, 17)) +>f : Symbol(f, Decl(t3.ts, 0, 17)) +>C1 : Symbol(C, Decl(t3.ts, 0, 26)) +>C : Symbol(C, Decl(t3.ts, 0, 26)) +>I1 : Symbol(I, Decl(t3.ts, 0, 35)) +>I : Symbol(I, Decl(t3.ts, 0, 35)) +>E1 : Symbol(E, Decl(t3.ts, 0, 44)) +>E : Symbol(E, Decl(t3.ts, 0, 44)) +>D1 : Symbol(D, Decl(t3.ts, 0, 53)) +>D : Symbol(D, Decl(t3.ts, 0, 53)) +>M1 : Symbol(M, Decl(t3.ts, 0, 62)) +>M : Symbol(M, Decl(t3.ts, 0, 62)) +>N1 : Symbol(N, Decl(t3.ts, 0, 71)) +>N : Symbol(N, Decl(t3.ts, 0, 71)) +>T1 : Symbol(T, Decl(t3.ts, 0, 80)) +>T : Symbol(T, Decl(t3.ts, 0, 80)) +>a1 : Symbol(a, Decl(t3.ts, 0, 89)) +>a : Symbol(a, Decl(t3.ts, 0, 89)) + +export { v, f, C, I, E, D, M, N, T, a }; +>v : Symbol(v, Decl(t3.ts, 1, 8)) +>f : Symbol(f, Decl(t3.ts, 1, 11)) +>C : Symbol(C, Decl(t3.ts, 1, 14)) +>I : Symbol(I, Decl(t3.ts, 1, 17)) +>E : Symbol(E, Decl(t3.ts, 1, 20)) +>D : Symbol(D, Decl(t3.ts, 1, 23)) +>M : Symbol(M, Decl(t3.ts, 1, 26)) +>N : Symbol(N, Decl(t3.ts, 1, 29)) +>T : Symbol(T, Decl(t3.ts, 1, 32)) +>a : Symbol(a, Decl(t3.ts, 1, 35)) + diff --git a/tests/baselines/reference/exportsAndImports3-amd.types b/tests/baselines/reference/exportsAndImports3-amd.types index 86e6de9f581cb..0b8235d969c02 100644 --- a/tests/baselines/reference/exportsAndImports3-amd.types +++ b/tests/baselines/reference/exportsAndImports3-amd.types @@ -1,132 +1,132 @@ === tests/cases/conformance/es6/modules/t1.ts === export var v = 1; ->v : number, Symbol(v, Decl(t1.ts, 1, 10)) +>v : number >1 : number export function f() { } ->f : () => void, Symbol(f, Decl(t1.ts, 1, 17)) +>f : () => void export class C { ->C : C, Symbol(C, Decl(t1.ts, 2, 23)) +>C : C } export interface I { ->I : I, Symbol(I, Decl(t1.ts, 4, 1)) +>I : I } export enum E { ->E : E, Symbol(E, Decl(t1.ts, 6, 1)) +>E : E A, B, C ->A : E, Symbol(E1.A, Decl(t1.ts, 7, 15)) ->B : E, Symbol(E1.B, Decl(t1.ts, 8, 6)) ->C : E, Symbol(E1.C, Decl(t1.ts, 8, 9)) +>A : E +>B : E +>C : E } export const enum D { ->D : D, Symbol(D, Decl(t1.ts, 9, 1)) +>D : D A, B, C ->A : D, Symbol(D1.A, Decl(t1.ts, 10, 21)) ->B : D, Symbol(D1.B, Decl(t1.ts, 11, 6)) ->C : D, Symbol(D1.C, Decl(t1.ts, 11, 9)) +>A : D +>B : D +>C : D } export module M { ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) +>M : typeof M export var x; ->x : any, Symbol(x, Decl(t1.ts, 14, 14)) +>x : any } export module N { ->N : any, Symbol(N, Decl(t1.ts, 15, 1)) +>N : any export interface I { ->I : I, Symbol(I, Decl(t1.ts, 16, 17)) +>I : I } } export type T = number; ->T : number, Symbol(T, Decl(t1.ts, 19, 1)) +>T : number export import a = M.x; ->a : any, Symbol(a, Decl(t1.ts, 20, 23)) ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) ->x : any, Symbol(a, Decl(t1.ts, 14, 14)) +>a : any +>M : typeof M +>x : any export { v as v1, f as f1, C as C1, I as I1, E as E1, D as D1, M as M1, N as N1, T as T1, a as a1 }; ->v : number, Symbol(v1, Decl(t1.ts, 23, 8)) ->v1 : number, Symbol(v1, Decl(t1.ts, 23, 8)) ->f : () => void, Symbol(f1, Decl(t1.ts, 23, 17)) ->f1 : () => void, Symbol(f1, Decl(t1.ts, 23, 17)) ->C : typeof C, Symbol(C1, Decl(t1.ts, 23, 26)) ->C1 : typeof C, Symbol(C1, Decl(t1.ts, 23, 26)) ->I : any, Symbol(I1, Decl(t1.ts, 23, 35)) ->I1 : any, Symbol(I1, Decl(t1.ts, 23, 35)) ->E : typeof E, Symbol(E1, Decl(t1.ts, 23, 44)) ->E1 : typeof E, Symbol(E1, Decl(t1.ts, 23, 44)) ->D : typeof D, Symbol(D1, Decl(t1.ts, 23, 53)) ->D1 : typeof D, Symbol(D1, Decl(t1.ts, 23, 53)) ->M : typeof M, Symbol(M1, Decl(t1.ts, 23, 62)) ->M1 : typeof M, Symbol(M1, Decl(t1.ts, 23, 62)) ->N : any, Symbol(N1, Decl(t1.ts, 23, 71)) ->N1 : any, Symbol(N1, Decl(t1.ts, 23, 71)) ->T : any, Symbol(T1, Decl(t1.ts, 23, 80)) ->T1 : any, Symbol(T1, Decl(t1.ts, 23, 80)) ->a : any, Symbol(a1, Decl(t1.ts, 23, 89)) ->a1 : any, Symbol(a1, Decl(t1.ts, 23, 89)) +>v : number +>v1 : number +>f : () => void +>f1 : () => void +>C : typeof C +>C1 : typeof C +>I : any +>I1 : any +>E : typeof E +>E1 : typeof E +>D : typeof D +>D1 : typeof D +>M : typeof M +>M1 : typeof M +>N : any +>N1 : any +>T : any +>T1 : any +>a : any +>a1 : any === tests/cases/conformance/es6/modules/t2.ts === export { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; ->v1 : number, Symbol(v, Decl(t2.ts, 0, 8)) ->v : number, Symbol(v, Decl(t2.ts, 0, 8)) ->f1 : () => void, Symbol(f, Decl(t2.ts, 0, 17)) ->f : () => void, Symbol(f, Decl(t2.ts, 0, 17)) ->C1 : typeof C, Symbol(C, Decl(t2.ts, 0, 26)) ->C : typeof C, Symbol(C, Decl(t2.ts, 0, 26)) ->I1 : any, Symbol(I, Decl(t2.ts, 0, 35)) ->I : any, Symbol(I, Decl(t2.ts, 0, 35)) ->E1 : typeof E, Symbol(E, Decl(t2.ts, 0, 44)) ->E : typeof E, Symbol(E, Decl(t2.ts, 0, 44)) ->D1 : typeof D, Symbol(D, Decl(t2.ts, 0, 53)) ->D : typeof D, Symbol(D, Decl(t2.ts, 0, 53)) ->M1 : typeof M, Symbol(M, Decl(t2.ts, 0, 62)) ->M : typeof M, Symbol(M, Decl(t2.ts, 0, 62)) ->N1 : any, Symbol(N, Decl(t2.ts, 0, 71)) ->N : any, Symbol(N, Decl(t2.ts, 0, 71)) ->T1 : any, Symbol(T, Decl(t2.ts, 0, 80)) ->T : any, Symbol(T, Decl(t2.ts, 0, 80)) ->a1 : any, Symbol(a, Decl(t2.ts, 0, 89)) ->a : any, Symbol(a, Decl(t2.ts, 0, 89)) +>v1 : number +>v : number +>f1 : () => void +>f : () => void +>C1 : typeof C +>C : typeof C +>I1 : any +>I : any +>E1 : typeof E +>E : typeof E +>D1 : typeof D +>D : typeof D +>M1 : typeof M +>M : typeof M +>N1 : any +>N : any +>T1 : any +>T : any +>a1 : any +>a : any === tests/cases/conformance/es6/modules/t3.ts === import { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; ->v1 : number, Symbol(v, Decl(t3.ts, 0, 8)) ->v : number, Symbol(v, Decl(t3.ts, 0, 8)) ->f1 : () => void, Symbol(f, Decl(t3.ts, 0, 17)) ->f : () => void, Symbol(f, Decl(t3.ts, 0, 17)) ->C1 : typeof C, Symbol(C, Decl(t3.ts, 0, 26)) ->C : typeof C, Symbol(C, Decl(t3.ts, 0, 26)) ->I1 : any, Symbol(I, Decl(t3.ts, 0, 35)) ->I : any, Symbol(I, Decl(t3.ts, 0, 35)) ->E1 : typeof E, Symbol(E, Decl(t3.ts, 0, 44)) ->E : typeof E, Symbol(E, Decl(t3.ts, 0, 44)) ->D1 : typeof D, Symbol(D, Decl(t3.ts, 0, 53)) ->D : typeof D, Symbol(D, Decl(t3.ts, 0, 53)) ->M1 : typeof M, Symbol(M, Decl(t3.ts, 0, 62)) ->M : typeof M, Symbol(M, Decl(t3.ts, 0, 62)) ->N1 : any, Symbol(N, Decl(t3.ts, 0, 71)) ->N : any, Symbol(N, Decl(t3.ts, 0, 71)) ->T1 : any, Symbol(T, Decl(t3.ts, 0, 80)) ->T : any, Symbol(T, Decl(t3.ts, 0, 80)) ->a1 : any, Symbol(a, Decl(t3.ts, 0, 89)) ->a : any, Symbol(a, Decl(t3.ts, 0, 89)) +>v1 : number +>v : number +>f1 : () => void +>f : () => void +>C1 : typeof C +>C : typeof C +>I1 : any +>I : any +>E1 : typeof E +>E : typeof E +>D1 : typeof D +>D : typeof D +>M1 : typeof M +>M : typeof M +>N1 : any +>N : any +>T1 : any +>T : any +>a1 : any +>a : any export { v, f, C, I, E, D, M, N, T, a }; ->v : number, Symbol(v, Decl(t3.ts, 1, 8)) ->f : () => void, Symbol(f, Decl(t3.ts, 1, 11)) ->C : typeof C, Symbol(C, Decl(t3.ts, 1, 14)) ->I : any, Symbol(I, Decl(t3.ts, 1, 17)) ->E : typeof E, Symbol(E, Decl(t3.ts, 1, 20)) ->D : typeof D, Symbol(D, Decl(t3.ts, 1, 23)) ->M : typeof M, Symbol(M, Decl(t3.ts, 1, 26)) ->N : any, Symbol(N, Decl(t3.ts, 1, 29)) ->T : any, Symbol(T, Decl(t3.ts, 1, 32)) ->a : any, Symbol(a, Decl(t3.ts, 1, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any diff --git a/tests/baselines/reference/exportsAndImports3.symbols b/tests/baselines/reference/exportsAndImports3.symbols new file mode 100644 index 0000000000000..4ab418a9bef4b --- /dev/null +++ b/tests/baselines/reference/exportsAndImports3.symbols @@ -0,0 +1,131 @@ +=== tests/cases/conformance/es6/modules/t1.ts === + +export var v = 1; +>v : Symbol(v, Decl(t1.ts, 1, 10)) + +export function f() { } +>f : Symbol(f, Decl(t1.ts, 1, 17)) + +export class C { +>C : Symbol(C, Decl(t1.ts, 2, 23)) +} +export interface I { +>I : Symbol(I, Decl(t1.ts, 4, 1)) +} +export enum E { +>E : Symbol(E, Decl(t1.ts, 6, 1)) + + A, B, C +>A : Symbol(E1.A, Decl(t1.ts, 7, 15)) +>B : Symbol(E1.B, Decl(t1.ts, 8, 6)) +>C : Symbol(E1.C, Decl(t1.ts, 8, 9)) +} +export const enum D { +>D : Symbol(D, Decl(t1.ts, 9, 1)) + + A, B, C +>A : Symbol(D1.A, Decl(t1.ts, 10, 21)) +>B : Symbol(D1.B, Decl(t1.ts, 11, 6)) +>C : Symbol(D1.C, Decl(t1.ts, 11, 9)) +} +export module M { +>M : Symbol(M, Decl(t1.ts, 12, 1)) + + export var x; +>x : Symbol(x, Decl(t1.ts, 14, 14)) +} +export module N { +>N : Symbol(N, Decl(t1.ts, 15, 1)) + + export interface I { +>I : Symbol(I, Decl(t1.ts, 16, 17)) + } +} +export type T = number; +>T : Symbol(T, Decl(t1.ts, 19, 1)) + +export import a = M.x; +>a : Symbol(a, Decl(t1.ts, 20, 23)) +>M : Symbol(M, Decl(t1.ts, 12, 1)) +>x : Symbol(a, Decl(t1.ts, 14, 14)) + +export { v as v1, f as f1, C as C1, I as I1, E as E1, D as D1, M as M1, N as N1, T as T1, a as a1 }; +>v : Symbol(v1, Decl(t1.ts, 23, 8)) +>v1 : Symbol(v1, Decl(t1.ts, 23, 8)) +>f : Symbol(f1, Decl(t1.ts, 23, 17)) +>f1 : Symbol(f1, Decl(t1.ts, 23, 17)) +>C : Symbol(C1, Decl(t1.ts, 23, 26)) +>C1 : Symbol(C1, Decl(t1.ts, 23, 26)) +>I : Symbol(I1, Decl(t1.ts, 23, 35)) +>I1 : Symbol(I1, Decl(t1.ts, 23, 35)) +>E : Symbol(E1, Decl(t1.ts, 23, 44)) +>E1 : Symbol(E1, Decl(t1.ts, 23, 44)) +>D : Symbol(D1, Decl(t1.ts, 23, 53)) +>D1 : Symbol(D1, Decl(t1.ts, 23, 53)) +>M : Symbol(M1, Decl(t1.ts, 23, 62)) +>M1 : Symbol(M1, Decl(t1.ts, 23, 62)) +>N : Symbol(N1, Decl(t1.ts, 23, 71)) +>N1 : Symbol(N1, Decl(t1.ts, 23, 71)) +>T : Symbol(T1, Decl(t1.ts, 23, 80)) +>T1 : Symbol(T1, Decl(t1.ts, 23, 80)) +>a : Symbol(a1, Decl(t1.ts, 23, 89)) +>a1 : Symbol(a1, Decl(t1.ts, 23, 89)) + +=== tests/cases/conformance/es6/modules/t2.ts === +export { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; +>v1 : Symbol(v, Decl(t2.ts, 0, 8)) +>v : Symbol(v, Decl(t2.ts, 0, 8)) +>f1 : Symbol(f, Decl(t2.ts, 0, 17)) +>f : Symbol(f, Decl(t2.ts, 0, 17)) +>C1 : Symbol(C, Decl(t2.ts, 0, 26)) +>C : Symbol(C, Decl(t2.ts, 0, 26)) +>I1 : Symbol(I, Decl(t2.ts, 0, 35)) +>I : Symbol(I, Decl(t2.ts, 0, 35)) +>E1 : Symbol(E, Decl(t2.ts, 0, 44)) +>E : Symbol(E, Decl(t2.ts, 0, 44)) +>D1 : Symbol(D, Decl(t2.ts, 0, 53)) +>D : Symbol(D, Decl(t2.ts, 0, 53)) +>M1 : Symbol(M, Decl(t2.ts, 0, 62)) +>M : Symbol(M, Decl(t2.ts, 0, 62)) +>N1 : Symbol(N, Decl(t2.ts, 0, 71)) +>N : Symbol(N, Decl(t2.ts, 0, 71)) +>T1 : Symbol(T, Decl(t2.ts, 0, 80)) +>T : Symbol(T, Decl(t2.ts, 0, 80)) +>a1 : Symbol(a, Decl(t2.ts, 0, 89)) +>a : Symbol(a, Decl(t2.ts, 0, 89)) + +=== tests/cases/conformance/es6/modules/t3.ts === +import { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; +>v1 : Symbol(v, Decl(t3.ts, 0, 8)) +>v : Symbol(v, Decl(t3.ts, 0, 8)) +>f1 : Symbol(f, Decl(t3.ts, 0, 17)) +>f : Symbol(f, Decl(t3.ts, 0, 17)) +>C1 : Symbol(C, Decl(t3.ts, 0, 26)) +>C : Symbol(C, Decl(t3.ts, 0, 26)) +>I1 : Symbol(I, Decl(t3.ts, 0, 35)) +>I : Symbol(I, Decl(t3.ts, 0, 35)) +>E1 : Symbol(E, Decl(t3.ts, 0, 44)) +>E : Symbol(E, Decl(t3.ts, 0, 44)) +>D1 : Symbol(D, Decl(t3.ts, 0, 53)) +>D : Symbol(D, Decl(t3.ts, 0, 53)) +>M1 : Symbol(M, Decl(t3.ts, 0, 62)) +>M : Symbol(M, Decl(t3.ts, 0, 62)) +>N1 : Symbol(N, Decl(t3.ts, 0, 71)) +>N : Symbol(N, Decl(t3.ts, 0, 71)) +>T1 : Symbol(T, Decl(t3.ts, 0, 80)) +>T : Symbol(T, Decl(t3.ts, 0, 80)) +>a1 : Symbol(a, Decl(t3.ts, 0, 89)) +>a : Symbol(a, Decl(t3.ts, 0, 89)) + +export { v, f, C, I, E, D, M, N, T, a }; +>v : Symbol(v, Decl(t3.ts, 1, 8)) +>f : Symbol(f, Decl(t3.ts, 1, 11)) +>C : Symbol(C, Decl(t3.ts, 1, 14)) +>I : Symbol(I, Decl(t3.ts, 1, 17)) +>E : Symbol(E, Decl(t3.ts, 1, 20)) +>D : Symbol(D, Decl(t3.ts, 1, 23)) +>M : Symbol(M, Decl(t3.ts, 1, 26)) +>N : Symbol(N, Decl(t3.ts, 1, 29)) +>T : Symbol(T, Decl(t3.ts, 1, 32)) +>a : Symbol(a, Decl(t3.ts, 1, 35)) + diff --git a/tests/baselines/reference/exportsAndImports3.types b/tests/baselines/reference/exportsAndImports3.types index 86e6de9f581cb..0b8235d969c02 100644 --- a/tests/baselines/reference/exportsAndImports3.types +++ b/tests/baselines/reference/exportsAndImports3.types @@ -1,132 +1,132 @@ === tests/cases/conformance/es6/modules/t1.ts === export var v = 1; ->v : number, Symbol(v, Decl(t1.ts, 1, 10)) +>v : number >1 : number export function f() { } ->f : () => void, Symbol(f, Decl(t1.ts, 1, 17)) +>f : () => void export class C { ->C : C, Symbol(C, Decl(t1.ts, 2, 23)) +>C : C } export interface I { ->I : I, Symbol(I, Decl(t1.ts, 4, 1)) +>I : I } export enum E { ->E : E, Symbol(E, Decl(t1.ts, 6, 1)) +>E : E A, B, C ->A : E, Symbol(E1.A, Decl(t1.ts, 7, 15)) ->B : E, Symbol(E1.B, Decl(t1.ts, 8, 6)) ->C : E, Symbol(E1.C, Decl(t1.ts, 8, 9)) +>A : E +>B : E +>C : E } export const enum D { ->D : D, Symbol(D, Decl(t1.ts, 9, 1)) +>D : D A, B, C ->A : D, Symbol(D1.A, Decl(t1.ts, 10, 21)) ->B : D, Symbol(D1.B, Decl(t1.ts, 11, 6)) ->C : D, Symbol(D1.C, Decl(t1.ts, 11, 9)) +>A : D +>B : D +>C : D } export module M { ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) +>M : typeof M export var x; ->x : any, Symbol(x, Decl(t1.ts, 14, 14)) +>x : any } export module N { ->N : any, Symbol(N, Decl(t1.ts, 15, 1)) +>N : any export interface I { ->I : I, Symbol(I, Decl(t1.ts, 16, 17)) +>I : I } } export type T = number; ->T : number, Symbol(T, Decl(t1.ts, 19, 1)) +>T : number export import a = M.x; ->a : any, Symbol(a, Decl(t1.ts, 20, 23)) ->M : typeof M, Symbol(M, Decl(t1.ts, 12, 1)) ->x : any, Symbol(a, Decl(t1.ts, 14, 14)) +>a : any +>M : typeof M +>x : any export { v as v1, f as f1, C as C1, I as I1, E as E1, D as D1, M as M1, N as N1, T as T1, a as a1 }; ->v : number, Symbol(v1, Decl(t1.ts, 23, 8)) ->v1 : number, Symbol(v1, Decl(t1.ts, 23, 8)) ->f : () => void, Symbol(f1, Decl(t1.ts, 23, 17)) ->f1 : () => void, Symbol(f1, Decl(t1.ts, 23, 17)) ->C : typeof C, Symbol(C1, Decl(t1.ts, 23, 26)) ->C1 : typeof C, Symbol(C1, Decl(t1.ts, 23, 26)) ->I : any, Symbol(I1, Decl(t1.ts, 23, 35)) ->I1 : any, Symbol(I1, Decl(t1.ts, 23, 35)) ->E : typeof E, Symbol(E1, Decl(t1.ts, 23, 44)) ->E1 : typeof E, Symbol(E1, Decl(t1.ts, 23, 44)) ->D : typeof D, Symbol(D1, Decl(t1.ts, 23, 53)) ->D1 : typeof D, Symbol(D1, Decl(t1.ts, 23, 53)) ->M : typeof M, Symbol(M1, Decl(t1.ts, 23, 62)) ->M1 : typeof M, Symbol(M1, Decl(t1.ts, 23, 62)) ->N : any, Symbol(N1, Decl(t1.ts, 23, 71)) ->N1 : any, Symbol(N1, Decl(t1.ts, 23, 71)) ->T : any, Symbol(T1, Decl(t1.ts, 23, 80)) ->T1 : any, Symbol(T1, Decl(t1.ts, 23, 80)) ->a : any, Symbol(a1, Decl(t1.ts, 23, 89)) ->a1 : any, Symbol(a1, Decl(t1.ts, 23, 89)) +>v : number +>v1 : number +>f : () => void +>f1 : () => void +>C : typeof C +>C1 : typeof C +>I : any +>I1 : any +>E : typeof E +>E1 : typeof E +>D : typeof D +>D1 : typeof D +>M : typeof M +>M1 : typeof M +>N : any +>N1 : any +>T : any +>T1 : any +>a : any +>a1 : any === tests/cases/conformance/es6/modules/t2.ts === export { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; ->v1 : number, Symbol(v, Decl(t2.ts, 0, 8)) ->v : number, Symbol(v, Decl(t2.ts, 0, 8)) ->f1 : () => void, Symbol(f, Decl(t2.ts, 0, 17)) ->f : () => void, Symbol(f, Decl(t2.ts, 0, 17)) ->C1 : typeof C, Symbol(C, Decl(t2.ts, 0, 26)) ->C : typeof C, Symbol(C, Decl(t2.ts, 0, 26)) ->I1 : any, Symbol(I, Decl(t2.ts, 0, 35)) ->I : any, Symbol(I, Decl(t2.ts, 0, 35)) ->E1 : typeof E, Symbol(E, Decl(t2.ts, 0, 44)) ->E : typeof E, Symbol(E, Decl(t2.ts, 0, 44)) ->D1 : typeof D, Symbol(D, Decl(t2.ts, 0, 53)) ->D : typeof D, Symbol(D, Decl(t2.ts, 0, 53)) ->M1 : typeof M, Symbol(M, Decl(t2.ts, 0, 62)) ->M : typeof M, Symbol(M, Decl(t2.ts, 0, 62)) ->N1 : any, Symbol(N, Decl(t2.ts, 0, 71)) ->N : any, Symbol(N, Decl(t2.ts, 0, 71)) ->T1 : any, Symbol(T, Decl(t2.ts, 0, 80)) ->T : any, Symbol(T, Decl(t2.ts, 0, 80)) ->a1 : any, Symbol(a, Decl(t2.ts, 0, 89)) ->a : any, Symbol(a, Decl(t2.ts, 0, 89)) +>v1 : number +>v : number +>f1 : () => void +>f : () => void +>C1 : typeof C +>C : typeof C +>I1 : any +>I : any +>E1 : typeof E +>E : typeof E +>D1 : typeof D +>D : typeof D +>M1 : typeof M +>M : typeof M +>N1 : any +>N : any +>T1 : any +>T : any +>a1 : any +>a : any === tests/cases/conformance/es6/modules/t3.ts === import { v1 as v, f1 as f, C1 as C, I1 as I, E1 as E, D1 as D, M1 as M, N1 as N, T1 as T, a1 as a } from "./t1"; ->v1 : number, Symbol(v, Decl(t3.ts, 0, 8)) ->v : number, Symbol(v, Decl(t3.ts, 0, 8)) ->f1 : () => void, Symbol(f, Decl(t3.ts, 0, 17)) ->f : () => void, Symbol(f, Decl(t3.ts, 0, 17)) ->C1 : typeof C, Symbol(C, Decl(t3.ts, 0, 26)) ->C : typeof C, Symbol(C, Decl(t3.ts, 0, 26)) ->I1 : any, Symbol(I, Decl(t3.ts, 0, 35)) ->I : any, Symbol(I, Decl(t3.ts, 0, 35)) ->E1 : typeof E, Symbol(E, Decl(t3.ts, 0, 44)) ->E : typeof E, Symbol(E, Decl(t3.ts, 0, 44)) ->D1 : typeof D, Symbol(D, Decl(t3.ts, 0, 53)) ->D : typeof D, Symbol(D, Decl(t3.ts, 0, 53)) ->M1 : typeof M, Symbol(M, Decl(t3.ts, 0, 62)) ->M : typeof M, Symbol(M, Decl(t3.ts, 0, 62)) ->N1 : any, Symbol(N, Decl(t3.ts, 0, 71)) ->N : any, Symbol(N, Decl(t3.ts, 0, 71)) ->T1 : any, Symbol(T, Decl(t3.ts, 0, 80)) ->T : any, Symbol(T, Decl(t3.ts, 0, 80)) ->a1 : any, Symbol(a, Decl(t3.ts, 0, 89)) ->a : any, Symbol(a, Decl(t3.ts, 0, 89)) +>v1 : number +>v : number +>f1 : () => void +>f : () => void +>C1 : typeof C +>C : typeof C +>I1 : any +>I : any +>E1 : typeof E +>E : typeof E +>D1 : typeof D +>D : typeof D +>M1 : typeof M +>M : typeof M +>N1 : any +>N : any +>T1 : any +>T : any +>a1 : any +>a : any export { v, f, C, I, E, D, M, N, T, a }; ->v : number, Symbol(v, Decl(t3.ts, 1, 8)) ->f : () => void, Symbol(f, Decl(t3.ts, 1, 11)) ->C : typeof C, Symbol(C, Decl(t3.ts, 1, 14)) ->I : any, Symbol(I, Decl(t3.ts, 1, 17)) ->E : typeof E, Symbol(E, Decl(t3.ts, 1, 20)) ->D : typeof D, Symbol(D, Decl(t3.ts, 1, 23)) ->M : typeof M, Symbol(M, Decl(t3.ts, 1, 26)) ->N : any, Symbol(N, Decl(t3.ts, 1, 29)) ->T : any, Symbol(T, Decl(t3.ts, 1, 32)) ->a : any, Symbol(a, Decl(t3.ts, 1, 35)) +>v : number +>f : () => void +>C : typeof C +>I : any +>E : typeof E +>D : typeof D +>M : typeof M +>N : any +>T : any +>a : any diff --git a/tests/baselines/reference/exportsAndImports4-amd.symbols b/tests/baselines/reference/exportsAndImports4-amd.symbols new file mode 100644 index 0000000000000..0204d9bd58648 --- /dev/null +++ b/tests/baselines/reference/exportsAndImports4-amd.symbols @@ -0,0 +1,68 @@ +=== tests/cases/conformance/es6/modules/t3.ts === +import a = require("./t1"); +>a : Symbol(a, Decl(t3.ts, 0, 0)) + +a.default; +>a.default : Symbol(a.default, Decl(t1.ts, 0, 0)) +>a : Symbol(a, Decl(t3.ts, 0, 0)) +>default : Symbol(a.default, Decl(t1.ts, 0, 0)) + +import b from "./t1"; +>b : Symbol(b, Decl(t3.ts, 2, 6)) + +b; +>b : Symbol(b, Decl(t3.ts, 2, 6)) + +import * as c from "./t1"; +>c : Symbol(c, Decl(t3.ts, 4, 6)) + +c.default; +>c.default : Symbol(a.default, Decl(t1.ts, 0, 0)) +>c : Symbol(c, Decl(t3.ts, 4, 6)) +>default : Symbol(a.default, Decl(t1.ts, 0, 0)) + +import { default as d } from "./t1"; +>default : Symbol(d, Decl(t3.ts, 6, 8)) +>d : Symbol(d, Decl(t3.ts, 6, 8)) + +d; +>d : Symbol(d, Decl(t3.ts, 6, 8)) + +import e1, * as e2 from "./t1"; +>e1 : Symbol(e1, Decl(t3.ts, 8, 6)) +>e2 : Symbol(e2, Decl(t3.ts, 8, 10)) + +e1; +>e1 : Symbol(e1, Decl(t3.ts, 8, 6)) + +e2.default; +>e2.default : Symbol(a.default, Decl(t1.ts, 0, 0)) +>e2 : Symbol(e2, Decl(t3.ts, 8, 10)) +>default : Symbol(a.default, Decl(t1.ts, 0, 0)) + +import f1, { default as f2 } from "./t1"; +>f1 : Symbol(f1, Decl(t3.ts, 11, 6)) +>default : Symbol(f2, Decl(t3.ts, 11, 12)) +>f2 : Symbol(f2, Decl(t3.ts, 11, 12)) + +f1; +>f1 : Symbol(f1, Decl(t3.ts, 11, 6)) + +f2; +>f2 : Symbol(f2, Decl(t3.ts, 11, 12)) + +export { a, b, c, d, e1, e2, f1, f2 }; +>a : Symbol(a, Decl(t3.ts, 14, 8)) +>b : Symbol(b, Decl(t3.ts, 14, 11)) +>c : Symbol(c, Decl(t3.ts, 14, 14)) +>d : Symbol(d, Decl(t3.ts, 14, 17)) +>e1 : Symbol(e1, Decl(t3.ts, 14, 20)) +>e2 : Symbol(e2, Decl(t3.ts, 14, 24)) +>f1 : Symbol(f1, Decl(t3.ts, 14, 28)) +>f2 : Symbol(f2, Decl(t3.ts, 14, 32)) + +=== tests/cases/conformance/es6/modules/t1.ts === + +No type information for this code.export default "hello"; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/exportsAndImports4-amd.types b/tests/baselines/reference/exportsAndImports4-amd.types index 58df93ee327f9..4bd6f8c0e1eee 100644 --- a/tests/baselines/reference/exportsAndImports4-amd.types +++ b/tests/baselines/reference/exportsAndImports4-amd.types @@ -1,65 +1,65 @@ === tests/cases/conformance/es6/modules/t3.ts === import a = require("./t1"); ->a : typeof a, Symbol(a, Decl(t3.ts, 0, 0)) +>a : typeof a a.default; ->a.default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) ->a : typeof a, Symbol(a, Decl(t3.ts, 0, 0)) ->default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) +>a.default : string +>a : typeof a +>default : string import b from "./t1"; ->b : string, Symbol(b, Decl(t3.ts, 2, 6)) +>b : string b; ->b : string, Symbol(b, Decl(t3.ts, 2, 6)) +>b : string import * as c from "./t1"; ->c : typeof a, Symbol(c, Decl(t3.ts, 4, 6)) +>c : typeof a c.default; ->c.default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) ->c : typeof a, Symbol(c, Decl(t3.ts, 4, 6)) ->default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) +>c.default : string +>c : typeof a +>default : string import { default as d } from "./t1"; ->default : string, Symbol(d, Decl(t3.ts, 6, 8)) ->d : string, Symbol(d, Decl(t3.ts, 6, 8)) +>default : string +>d : string d; ->d : string, Symbol(d, Decl(t3.ts, 6, 8)) +>d : string import e1, * as e2 from "./t1"; ->e1 : string, Symbol(e1, Decl(t3.ts, 8, 6)) ->e2 : typeof a, Symbol(e2, Decl(t3.ts, 8, 10)) +>e1 : string +>e2 : typeof a e1; ->e1 : string, Symbol(e1, Decl(t3.ts, 8, 6)) +>e1 : string e2.default; ->e2.default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) ->e2 : typeof a, Symbol(e2, Decl(t3.ts, 8, 10)) ->default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) +>e2.default : string +>e2 : typeof a +>default : string import f1, { default as f2 } from "./t1"; ->f1 : string, Symbol(f1, Decl(t3.ts, 11, 6)) ->default : string, Symbol(f2, Decl(t3.ts, 11, 12)) ->f2 : string, Symbol(f2, Decl(t3.ts, 11, 12)) +>f1 : string +>default : string +>f2 : string f1; ->f1 : string, Symbol(f1, Decl(t3.ts, 11, 6)) +>f1 : string f2; ->f2 : string, Symbol(f2, Decl(t3.ts, 11, 12)) +>f2 : string export { a, b, c, d, e1, e2, f1, f2 }; ->a : typeof a, Symbol(a, Decl(t3.ts, 14, 8)) ->b : string, Symbol(b, Decl(t3.ts, 14, 11)) ->c : typeof a, Symbol(c, Decl(t3.ts, 14, 14)) ->d : string, Symbol(d, Decl(t3.ts, 14, 17)) ->e1 : string, Symbol(e1, Decl(t3.ts, 14, 20)) ->e2 : typeof a, Symbol(e2, Decl(t3.ts, 14, 24)) ->f1 : string, Symbol(f1, Decl(t3.ts, 14, 28)) ->f2 : string, Symbol(f2, Decl(t3.ts, 14, 32)) +>a : typeof a +>b : string +>c : typeof a +>d : string +>e1 : string +>e2 : typeof a +>f1 : string +>f2 : string === tests/cases/conformance/es6/modules/t1.ts === diff --git a/tests/baselines/reference/exportsAndImports4.symbols b/tests/baselines/reference/exportsAndImports4.symbols new file mode 100644 index 0000000000000..0204d9bd58648 --- /dev/null +++ b/tests/baselines/reference/exportsAndImports4.symbols @@ -0,0 +1,68 @@ +=== tests/cases/conformance/es6/modules/t3.ts === +import a = require("./t1"); +>a : Symbol(a, Decl(t3.ts, 0, 0)) + +a.default; +>a.default : Symbol(a.default, Decl(t1.ts, 0, 0)) +>a : Symbol(a, Decl(t3.ts, 0, 0)) +>default : Symbol(a.default, Decl(t1.ts, 0, 0)) + +import b from "./t1"; +>b : Symbol(b, Decl(t3.ts, 2, 6)) + +b; +>b : Symbol(b, Decl(t3.ts, 2, 6)) + +import * as c from "./t1"; +>c : Symbol(c, Decl(t3.ts, 4, 6)) + +c.default; +>c.default : Symbol(a.default, Decl(t1.ts, 0, 0)) +>c : Symbol(c, Decl(t3.ts, 4, 6)) +>default : Symbol(a.default, Decl(t1.ts, 0, 0)) + +import { default as d } from "./t1"; +>default : Symbol(d, Decl(t3.ts, 6, 8)) +>d : Symbol(d, Decl(t3.ts, 6, 8)) + +d; +>d : Symbol(d, Decl(t3.ts, 6, 8)) + +import e1, * as e2 from "./t1"; +>e1 : Symbol(e1, Decl(t3.ts, 8, 6)) +>e2 : Symbol(e2, Decl(t3.ts, 8, 10)) + +e1; +>e1 : Symbol(e1, Decl(t3.ts, 8, 6)) + +e2.default; +>e2.default : Symbol(a.default, Decl(t1.ts, 0, 0)) +>e2 : Symbol(e2, Decl(t3.ts, 8, 10)) +>default : Symbol(a.default, Decl(t1.ts, 0, 0)) + +import f1, { default as f2 } from "./t1"; +>f1 : Symbol(f1, Decl(t3.ts, 11, 6)) +>default : Symbol(f2, Decl(t3.ts, 11, 12)) +>f2 : Symbol(f2, Decl(t3.ts, 11, 12)) + +f1; +>f1 : Symbol(f1, Decl(t3.ts, 11, 6)) + +f2; +>f2 : Symbol(f2, Decl(t3.ts, 11, 12)) + +export { a, b, c, d, e1, e2, f1, f2 }; +>a : Symbol(a, Decl(t3.ts, 14, 8)) +>b : Symbol(b, Decl(t3.ts, 14, 11)) +>c : Symbol(c, Decl(t3.ts, 14, 14)) +>d : Symbol(d, Decl(t3.ts, 14, 17)) +>e1 : Symbol(e1, Decl(t3.ts, 14, 20)) +>e2 : Symbol(e2, Decl(t3.ts, 14, 24)) +>f1 : Symbol(f1, Decl(t3.ts, 14, 28)) +>f2 : Symbol(f2, Decl(t3.ts, 14, 32)) + +=== tests/cases/conformance/es6/modules/t1.ts === + +No type information for this code.export default "hello"; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/exportsAndImports4.types b/tests/baselines/reference/exportsAndImports4.types index 58df93ee327f9..4bd6f8c0e1eee 100644 --- a/tests/baselines/reference/exportsAndImports4.types +++ b/tests/baselines/reference/exportsAndImports4.types @@ -1,65 +1,65 @@ === tests/cases/conformance/es6/modules/t3.ts === import a = require("./t1"); ->a : typeof a, Symbol(a, Decl(t3.ts, 0, 0)) +>a : typeof a a.default; ->a.default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) ->a : typeof a, Symbol(a, Decl(t3.ts, 0, 0)) ->default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) +>a.default : string +>a : typeof a +>default : string import b from "./t1"; ->b : string, Symbol(b, Decl(t3.ts, 2, 6)) +>b : string b; ->b : string, Symbol(b, Decl(t3.ts, 2, 6)) +>b : string import * as c from "./t1"; ->c : typeof a, Symbol(c, Decl(t3.ts, 4, 6)) +>c : typeof a c.default; ->c.default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) ->c : typeof a, Symbol(c, Decl(t3.ts, 4, 6)) ->default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) +>c.default : string +>c : typeof a +>default : string import { default as d } from "./t1"; ->default : string, Symbol(d, Decl(t3.ts, 6, 8)) ->d : string, Symbol(d, Decl(t3.ts, 6, 8)) +>default : string +>d : string d; ->d : string, Symbol(d, Decl(t3.ts, 6, 8)) +>d : string import e1, * as e2 from "./t1"; ->e1 : string, Symbol(e1, Decl(t3.ts, 8, 6)) ->e2 : typeof a, Symbol(e2, Decl(t3.ts, 8, 10)) +>e1 : string +>e2 : typeof a e1; ->e1 : string, Symbol(e1, Decl(t3.ts, 8, 6)) +>e1 : string e2.default; ->e2.default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) ->e2 : typeof a, Symbol(e2, Decl(t3.ts, 8, 10)) ->default : string, Symbol(a.default, Decl(t1.ts, 0, 0)) +>e2.default : string +>e2 : typeof a +>default : string import f1, { default as f2 } from "./t1"; ->f1 : string, Symbol(f1, Decl(t3.ts, 11, 6)) ->default : string, Symbol(f2, Decl(t3.ts, 11, 12)) ->f2 : string, Symbol(f2, Decl(t3.ts, 11, 12)) +>f1 : string +>default : string +>f2 : string f1; ->f1 : string, Symbol(f1, Decl(t3.ts, 11, 6)) +>f1 : string f2; ->f2 : string, Symbol(f2, Decl(t3.ts, 11, 12)) +>f2 : string export { a, b, c, d, e1, e2, f1, f2 }; ->a : typeof a, Symbol(a, Decl(t3.ts, 14, 8)) ->b : string, Symbol(b, Decl(t3.ts, 14, 11)) ->c : typeof a, Symbol(c, Decl(t3.ts, 14, 14)) ->d : string, Symbol(d, Decl(t3.ts, 14, 17)) ->e1 : string, Symbol(e1, Decl(t3.ts, 14, 20)) ->e2 : typeof a, Symbol(e2, Decl(t3.ts, 14, 24)) ->f1 : string, Symbol(f1, Decl(t3.ts, 14, 28)) ->f2 : string, Symbol(f2, Decl(t3.ts, 14, 32)) +>a : typeof a +>b : string +>c : typeof a +>d : string +>e1 : string +>e2 : typeof a +>f1 : string +>f2 : string === tests/cases/conformance/es6/modules/t1.ts === diff --git a/tests/baselines/reference/extBaseClass1.symbols b/tests/baselines/reference/extBaseClass1.symbols new file mode 100644 index 0000000000000..416fa910f318d --- /dev/null +++ b/tests/baselines/reference/extBaseClass1.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/extBaseClass1.ts === +module M { +>M : Symbol(M, Decl(extBaseClass1.ts, 0, 0), Decl(extBaseClass1.ts, 7, 1)) + + export class B { +>B : Symbol(B, Decl(extBaseClass1.ts, 0, 10)) + + public x=10; +>x : Symbol(x, Decl(extBaseClass1.ts, 1, 20)) + } + + export class C extends B { +>C : Symbol(C, Decl(extBaseClass1.ts, 3, 5)) +>B : Symbol(B, Decl(extBaseClass1.ts, 0, 10)) + } +} + +module M { +>M : Symbol(M, Decl(extBaseClass1.ts, 0, 0), Decl(extBaseClass1.ts, 7, 1)) + + export class C2 extends B { +>C2 : Symbol(C2, Decl(extBaseClass1.ts, 9, 10)) +>B : Symbol(B, Decl(extBaseClass1.ts, 0, 10)) + } +} + +module N { +>N : Symbol(N, Decl(extBaseClass1.ts, 12, 1)) + + export class C3 extends M.B { +>C3 : Symbol(C3, Decl(extBaseClass1.ts, 14, 10)) +>M.B : Symbol(M.B, Decl(extBaseClass1.ts, 0, 10)) +>M : Symbol(M, Decl(extBaseClass1.ts, 0, 0), Decl(extBaseClass1.ts, 7, 1)) +>B : Symbol(M.B, Decl(extBaseClass1.ts, 0, 10)) + } +} + diff --git a/tests/baselines/reference/extBaseClass1.types b/tests/baselines/reference/extBaseClass1.types index 1e9a9f7baac47..b476e1b420688 100644 --- a/tests/baselines/reference/extBaseClass1.types +++ b/tests/baselines/reference/extBaseClass1.types @@ -1,38 +1,38 @@ === tests/cases/compiler/extBaseClass1.ts === module M { ->M : typeof M, Symbol(M, Decl(extBaseClass1.ts, 0, 0), Decl(extBaseClass1.ts, 7, 1)) +>M : typeof M export class B { ->B : B, Symbol(B, Decl(extBaseClass1.ts, 0, 10)) +>B : B public x=10; ->x : number, Symbol(x, Decl(extBaseClass1.ts, 1, 20)) +>x : number >10 : number } export class C extends B { ->C : C, Symbol(C, Decl(extBaseClass1.ts, 3, 5)) ->B : B, Symbol(B, Decl(extBaseClass1.ts, 0, 10)) +>C : C +>B : B } } module M { ->M : typeof M, Symbol(M, Decl(extBaseClass1.ts, 0, 0), Decl(extBaseClass1.ts, 7, 1)) +>M : typeof M export class C2 extends B { ->C2 : C2, Symbol(C2, Decl(extBaseClass1.ts, 9, 10)) ->B : B, Symbol(B, Decl(extBaseClass1.ts, 0, 10)) +>C2 : C2 +>B : B } } module N { ->N : typeof N, Symbol(N, Decl(extBaseClass1.ts, 12, 1)) +>N : typeof N export class C3 extends M.B { ->C3 : C3, Symbol(C3, Decl(extBaseClass1.ts, 14, 10)) ->M.B : any, Symbol(M.B, Decl(extBaseClass1.ts, 0, 10)) ->M : typeof M, Symbol(M, Decl(extBaseClass1.ts, 0, 0), Decl(extBaseClass1.ts, 7, 1)) ->B : M.B, Symbol(M.B, Decl(extBaseClass1.ts, 0, 10)) +>C3 : C3 +>M.B : any +>M : typeof M +>B : M.B } } diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType.symbols b/tests/baselines/reference/extendAndImplementTheSameBaseType.symbols new file mode 100644 index 0000000000000..c211fa4955bfb --- /dev/null +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/extendAndImplementTheSameBaseType.ts === +class C { +>C : Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) + + foo: number +>foo : Symbol(foo, Decl(extendAndImplementTheSameBaseType.ts, 0, 9)) + + bar() {} +>bar : Symbol(bar, Decl(extendAndImplementTheSameBaseType.ts, 1, 15)) +} +class D extends C implements C { +>D : Symbol(D, Decl(extendAndImplementTheSameBaseType.ts, 3, 1)) +>C : Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) +>C : Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) + + baz() { } +>baz : Symbol(baz, Decl(extendAndImplementTheSameBaseType.ts, 4, 32)) +} + +var c: C; +>c : Symbol(c, Decl(extendAndImplementTheSameBaseType.ts, 8, 3)) +>C : Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) + +var d: D = new D(); +>d : Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) +>D : Symbol(D, Decl(extendAndImplementTheSameBaseType.ts, 3, 1)) +>D : Symbol(D, Decl(extendAndImplementTheSameBaseType.ts, 3, 1)) + +d.bar(); +>d.bar : Symbol(C.bar, Decl(extendAndImplementTheSameBaseType.ts, 1, 15)) +>d : Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) +>bar : Symbol(C.bar, Decl(extendAndImplementTheSameBaseType.ts, 1, 15)) + +d.baz(); +>d.baz : Symbol(D.baz, Decl(extendAndImplementTheSameBaseType.ts, 4, 32)) +>d : Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) +>baz : Symbol(D.baz, Decl(extendAndImplementTheSameBaseType.ts, 4, 32)) + +d.foo; +>d.foo : Symbol(C.foo, Decl(extendAndImplementTheSameBaseType.ts, 0, 9)) +>d : Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) +>foo : Symbol(C.foo, Decl(extendAndImplementTheSameBaseType.ts, 0, 9)) + diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType.types b/tests/baselines/reference/extendAndImplementTheSameBaseType.types index a87b89c17a3bd..136308b3887a9 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType.types +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType.types @@ -1,46 +1,46 @@ === tests/cases/compiler/extendAndImplementTheSameBaseType.ts === class C { ->C : C, Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) +>C : C foo: number ->foo : number, Symbol(foo, Decl(extendAndImplementTheSameBaseType.ts, 0, 9)) +>foo : number bar() {} ->bar : () => void, Symbol(bar, Decl(extendAndImplementTheSameBaseType.ts, 1, 15)) +>bar : () => void } class D extends C implements C { ->D : D, Symbol(D, Decl(extendAndImplementTheSameBaseType.ts, 3, 1)) ->C : C, Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) ->C : C, Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) +>D : D +>C : C +>C : C baz() { } ->baz : () => void, Symbol(baz, Decl(extendAndImplementTheSameBaseType.ts, 4, 32)) +>baz : () => void } var c: C; ->c : C, Symbol(c, Decl(extendAndImplementTheSameBaseType.ts, 8, 3)) ->C : C, Symbol(C, Decl(extendAndImplementTheSameBaseType.ts, 0, 0)) +>c : C +>C : C var d: D = new D(); ->d : D, Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) ->D : D, Symbol(D, Decl(extendAndImplementTheSameBaseType.ts, 3, 1)) +>d : D +>D : D >new D() : D ->D : typeof D, Symbol(D, Decl(extendAndImplementTheSameBaseType.ts, 3, 1)) +>D : typeof D d.bar(); >d.bar() : void ->d.bar : () => void, Symbol(C.bar, Decl(extendAndImplementTheSameBaseType.ts, 1, 15)) ->d : D, Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) ->bar : () => void, Symbol(C.bar, Decl(extendAndImplementTheSameBaseType.ts, 1, 15)) +>d.bar : () => void +>d : D +>bar : () => void d.baz(); >d.baz() : void ->d.baz : () => void, Symbol(D.baz, Decl(extendAndImplementTheSameBaseType.ts, 4, 32)) ->d : D, Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) ->baz : () => void, Symbol(D.baz, Decl(extendAndImplementTheSameBaseType.ts, 4, 32)) +>d.baz : () => void +>d : D +>baz : () => void d.foo; ->d.foo : number, Symbol(C.foo, Decl(extendAndImplementTheSameBaseType.ts, 0, 9)) ->d : D, Symbol(d, Decl(extendAndImplementTheSameBaseType.ts, 9, 3)) ->foo : number, Symbol(C.foo, Decl(extendAndImplementTheSameBaseType.ts, 0, 9)) +>d.foo : number +>d : D +>foo : number diff --git a/tests/baselines/reference/extendBaseClassBeforeItsDeclared.symbols b/tests/baselines/reference/extendBaseClassBeforeItsDeclared.symbols new file mode 100644 index 0000000000000..88aca935113d7 --- /dev/null +++ b/tests/baselines/reference/extendBaseClassBeforeItsDeclared.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/extendBaseClassBeforeItsDeclared.ts === +class derived extends base { } +>derived : Symbol(derived, Decl(extendBaseClassBeforeItsDeclared.ts, 0, 0)) +>base : Symbol(base, Decl(extendBaseClassBeforeItsDeclared.ts, 0, 30)) + +class base { constructor (public n: number) { } } +>base : Symbol(base, Decl(extendBaseClassBeforeItsDeclared.ts, 0, 30)) +>n : Symbol(n, Decl(extendBaseClassBeforeItsDeclared.ts, 2, 26)) + diff --git a/tests/baselines/reference/extendBaseClassBeforeItsDeclared.types b/tests/baselines/reference/extendBaseClassBeforeItsDeclared.types index e63c33ca8a32a..a9ad130d4749a 100644 --- a/tests/baselines/reference/extendBaseClassBeforeItsDeclared.types +++ b/tests/baselines/reference/extendBaseClassBeforeItsDeclared.types @@ -1,9 +1,9 @@ === tests/cases/compiler/extendBaseClassBeforeItsDeclared.ts === class derived extends base { } ->derived : derived, Symbol(derived, Decl(extendBaseClassBeforeItsDeclared.ts, 0, 0)) ->base : base, Symbol(base, Decl(extendBaseClassBeforeItsDeclared.ts, 0, 30)) +>derived : derived +>base : base class base { constructor (public n: number) { } } ->base : base, Symbol(base, Decl(extendBaseClassBeforeItsDeclared.ts, 0, 30)) ->n : number, Symbol(n, Decl(extendBaseClassBeforeItsDeclared.ts, 2, 26)) +>base : base +>n : number diff --git a/tests/baselines/reference/extendBooleanInterface.symbols b/tests/baselines/reference/extendBooleanInterface.symbols new file mode 100644 index 0000000000000..8e123eb050eb6 --- /dev/null +++ b/tests/baselines/reference/extendBooleanInterface.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/types/primitives/boolean/extendBooleanInterface.ts === +interface Boolean { +>Boolean : Symbol(Boolean, Decl(lib.d.ts, 443, 38), Decl(lib.d.ts, 456, 11), Decl(extendBooleanInterface.ts, 0, 0)) + + doStuff(): string; +>doStuff : Symbol(doStuff, Decl(extendBooleanInterface.ts, 0, 19)) + + doOtherStuff(x: T): T; +>doOtherStuff : Symbol(doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) +>T : Symbol(T, Decl(extendBooleanInterface.ts, 2, 17)) +>x : Symbol(x, Decl(extendBooleanInterface.ts, 2, 20)) +>T : Symbol(T, Decl(extendBooleanInterface.ts, 2, 17)) +>T : Symbol(T, Decl(extendBooleanInterface.ts, 2, 17)) +} + +var x = true; +>x : Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) + +var a: string = x.doStuff(); +>a : Symbol(a, Decl(extendBooleanInterface.ts, 6, 3)) +>x.doStuff : Symbol(Boolean.doStuff, Decl(extendBooleanInterface.ts, 0, 19)) +>x : Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) +>doStuff : Symbol(Boolean.doStuff, Decl(extendBooleanInterface.ts, 0, 19)) + +var b: string = x.doOtherStuff('hm'); +>b : Symbol(b, Decl(extendBooleanInterface.ts, 7, 3)) +>x.doOtherStuff : Symbol(Boolean.doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) +>x : Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) +>doOtherStuff : Symbol(Boolean.doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) + +var c: string = x['doStuff'](); +>c : Symbol(c, Decl(extendBooleanInterface.ts, 8, 3)) +>x : Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) +>'doStuff' : Symbol(Boolean.doStuff, Decl(extendBooleanInterface.ts, 0, 19)) + +var d: string = x['doOtherStuff']('hm'); +>d : Symbol(d, Decl(extendBooleanInterface.ts, 9, 3)) +>x : Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) +>'doOtherStuff' : Symbol(Boolean.doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) + diff --git a/tests/baselines/reference/extendBooleanInterface.types b/tests/baselines/reference/extendBooleanInterface.types index 32bfd1d07fab7..8f91deba713c7 100644 --- a/tests/baselines/reference/extendBooleanInterface.types +++ b/tests/baselines/reference/extendBooleanInterface.types @@ -1,49 +1,49 @@ === tests/cases/conformance/types/primitives/boolean/extendBooleanInterface.ts === interface Boolean { ->Boolean : Boolean, Symbol(Boolean, Decl(lib.d.ts, 443, 38), Decl(lib.d.ts, 456, 11), Decl(extendBooleanInterface.ts, 0, 0)) +>Boolean : Boolean doStuff(): string; ->doStuff : () => string, Symbol(doStuff, Decl(extendBooleanInterface.ts, 0, 19)) +>doStuff : () => string doOtherStuff(x: T): T; ->doOtherStuff : (x: T) => T, Symbol(doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) ->T : T, Symbol(T, Decl(extendBooleanInterface.ts, 2, 17)) ->x : T, Symbol(x, Decl(extendBooleanInterface.ts, 2, 20)) ->T : T, Symbol(T, Decl(extendBooleanInterface.ts, 2, 17)) ->T : T, Symbol(T, Decl(extendBooleanInterface.ts, 2, 17)) +>doOtherStuff : (x: T) => T +>T : T +>x : T +>T : T +>T : T } var x = true; ->x : boolean, Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) +>x : boolean >true : boolean var a: string = x.doStuff(); ->a : string, Symbol(a, Decl(extendBooleanInterface.ts, 6, 3)) +>a : string >x.doStuff() : string ->x.doStuff : () => string, Symbol(Boolean.doStuff, Decl(extendBooleanInterface.ts, 0, 19)) ->x : boolean, Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) ->doStuff : () => string, Symbol(Boolean.doStuff, Decl(extendBooleanInterface.ts, 0, 19)) +>x.doStuff : () => string +>x : boolean +>doStuff : () => string var b: string = x.doOtherStuff('hm'); ->b : string, Symbol(b, Decl(extendBooleanInterface.ts, 7, 3)) +>b : string >x.doOtherStuff('hm') : string ->x.doOtherStuff : (x: T) => T, Symbol(Boolean.doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) ->x : boolean, Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) ->doOtherStuff : (x: T) => T, Symbol(Boolean.doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) +>x.doOtherStuff : (x: T) => T +>x : boolean +>doOtherStuff : (x: T) => T >'hm' : string var c: string = x['doStuff'](); ->c : string, Symbol(c, Decl(extendBooleanInterface.ts, 8, 3)) +>c : string >x['doStuff']() : string >x['doStuff'] : () => string ->x : boolean, Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) ->'doStuff' : string, Symbol(Boolean.doStuff, Decl(extendBooleanInterface.ts, 0, 19)) +>x : boolean +>'doStuff' : string var d: string = x['doOtherStuff']('hm'); ->d : string, Symbol(d, Decl(extendBooleanInterface.ts, 9, 3)) +>d : string >x['doOtherStuff']('hm') : string >x['doOtherStuff'] : (x: T) => T ->x : boolean, Symbol(x, Decl(extendBooleanInterface.ts, 5, 3)) ->'doOtherStuff' : string, Symbol(Boolean.doOtherStuff, Decl(extendBooleanInterface.ts, 1, 22)) +>x : boolean +>'doOtherStuff' : string >'hm' : string diff --git a/tests/baselines/reference/extendNumberInterface.symbols b/tests/baselines/reference/extendNumberInterface.symbols new file mode 100644 index 0000000000000..56d2f8b0014de --- /dev/null +++ b/tests/baselines/reference/extendNumberInterface.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/types/primitives/number/extendNumberInterface.ts === +interface Number { +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(extendNumberInterface.ts, 0, 0)) + + doStuff(): string; +>doStuff : Symbol(doStuff, Decl(extendNumberInterface.ts, 0, 18)) + + doOtherStuff(x:T): T; +>doOtherStuff : Symbol(doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) +>T : Symbol(T, Decl(extendNumberInterface.ts, 2, 17)) +>x : Symbol(x, Decl(extendNumberInterface.ts, 2, 20)) +>T : Symbol(T, Decl(extendNumberInterface.ts, 2, 17)) +>T : Symbol(T, Decl(extendNumberInterface.ts, 2, 17)) +} + +var x = 1; +>x : Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) + +var a: string = x.doStuff(); +>a : Symbol(a, Decl(extendNumberInterface.ts, 6, 3)) +>x.doStuff : Symbol(Number.doStuff, Decl(extendNumberInterface.ts, 0, 18)) +>x : Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) +>doStuff : Symbol(Number.doStuff, Decl(extendNumberInterface.ts, 0, 18)) + +var b: string = x.doOtherStuff('hm'); +>b : Symbol(b, Decl(extendNumberInterface.ts, 7, 3)) +>x.doOtherStuff : Symbol(Number.doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) +>x : Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) +>doOtherStuff : Symbol(Number.doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) + +var c: string = x['doStuff'](); +>c : Symbol(c, Decl(extendNumberInterface.ts, 8, 3)) +>x : Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) +>'doStuff' : Symbol(Number.doStuff, Decl(extendNumberInterface.ts, 0, 18)) + +var d: string = x['doOtherStuff']('hm'); +>d : Symbol(d, Decl(extendNumberInterface.ts, 9, 3)) +>x : Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) +>'doOtherStuff' : Symbol(Number.doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) + diff --git a/tests/baselines/reference/extendNumberInterface.types b/tests/baselines/reference/extendNumberInterface.types index 8fd027586ebc1..97ef307bab8c7 100644 --- a/tests/baselines/reference/extendNumberInterface.types +++ b/tests/baselines/reference/extendNumberInterface.types @@ -1,49 +1,49 @@ === tests/cases/conformance/types/primitives/number/extendNumberInterface.ts === interface Number { ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(extendNumberInterface.ts, 0, 0)) +>Number : Number doStuff(): string; ->doStuff : () => string, Symbol(doStuff, Decl(extendNumberInterface.ts, 0, 18)) +>doStuff : () => string doOtherStuff(x:T): T; ->doOtherStuff : (x: T) => T, Symbol(doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) ->T : T, Symbol(T, Decl(extendNumberInterface.ts, 2, 17)) ->x : T, Symbol(x, Decl(extendNumberInterface.ts, 2, 20)) ->T : T, Symbol(T, Decl(extendNumberInterface.ts, 2, 17)) ->T : T, Symbol(T, Decl(extendNumberInterface.ts, 2, 17)) +>doOtherStuff : (x: T) => T +>T : T +>x : T +>T : T +>T : T } var x = 1; ->x : number, Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) +>x : number >1 : number var a: string = x.doStuff(); ->a : string, Symbol(a, Decl(extendNumberInterface.ts, 6, 3)) +>a : string >x.doStuff() : string ->x.doStuff : () => string, Symbol(Number.doStuff, Decl(extendNumberInterface.ts, 0, 18)) ->x : number, Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) ->doStuff : () => string, Symbol(Number.doStuff, Decl(extendNumberInterface.ts, 0, 18)) +>x.doStuff : () => string +>x : number +>doStuff : () => string var b: string = x.doOtherStuff('hm'); ->b : string, Symbol(b, Decl(extendNumberInterface.ts, 7, 3)) +>b : string >x.doOtherStuff('hm') : string ->x.doOtherStuff : (x: T) => T, Symbol(Number.doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) ->x : number, Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) ->doOtherStuff : (x: T) => T, Symbol(Number.doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) +>x.doOtherStuff : (x: T) => T +>x : number +>doOtherStuff : (x: T) => T >'hm' : string var c: string = x['doStuff'](); ->c : string, Symbol(c, Decl(extendNumberInterface.ts, 8, 3)) +>c : string >x['doStuff']() : string >x['doStuff'] : () => string ->x : number, Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) ->'doStuff' : string, Symbol(Number.doStuff, Decl(extendNumberInterface.ts, 0, 18)) +>x : number +>'doStuff' : string var d: string = x['doOtherStuff']('hm'); ->d : string, Symbol(d, Decl(extendNumberInterface.ts, 9, 3)) +>d : string >x['doOtherStuff']('hm') : string >x['doOtherStuff'] : (x: T) => T ->x : number, Symbol(x, Decl(extendNumberInterface.ts, 5, 3)) ->'doOtherStuff' : string, Symbol(Number.doOtherStuff, Decl(extendNumberInterface.ts, 1, 22)) +>x : number +>'doOtherStuff' : string >'hm' : string diff --git a/tests/baselines/reference/extendStringInterface.symbols b/tests/baselines/reference/extendStringInterface.symbols new file mode 100644 index 0000000000000..a72773647a891 --- /dev/null +++ b/tests/baselines/reference/extendStringInterface.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/types/primitives/string/extendStringInterface.ts === +interface String { +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11), Decl(extendStringInterface.ts, 0, 0)) + + doStuff(): string; +>doStuff : Symbol(doStuff, Decl(extendStringInterface.ts, 0, 18)) + + doOtherStuff(x:T): T; +>doOtherStuff : Symbol(doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) +>T : Symbol(T, Decl(extendStringInterface.ts, 2, 17)) +>x : Symbol(x, Decl(extendStringInterface.ts, 2, 20)) +>T : Symbol(T, Decl(extendStringInterface.ts, 2, 17)) +>T : Symbol(T, Decl(extendStringInterface.ts, 2, 17)) +} + +var x = ''; +>x : Symbol(x, Decl(extendStringInterface.ts, 5, 3)) + +var a: string = x.doStuff(); +>a : Symbol(a, Decl(extendStringInterface.ts, 6, 3)) +>x.doStuff : Symbol(String.doStuff, Decl(extendStringInterface.ts, 0, 18)) +>x : Symbol(x, Decl(extendStringInterface.ts, 5, 3)) +>doStuff : Symbol(String.doStuff, Decl(extendStringInterface.ts, 0, 18)) + +var b: string = x.doOtherStuff('hm'); +>b : Symbol(b, Decl(extendStringInterface.ts, 7, 3)) +>x.doOtherStuff : Symbol(String.doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) +>x : Symbol(x, Decl(extendStringInterface.ts, 5, 3)) +>doOtherStuff : Symbol(String.doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) + +var c: string = x['doStuff'](); +>c : Symbol(c, Decl(extendStringInterface.ts, 8, 3)) +>x : Symbol(x, Decl(extendStringInterface.ts, 5, 3)) +>'doStuff' : Symbol(String.doStuff, Decl(extendStringInterface.ts, 0, 18)) + +var d: string = x['doOtherStuff']('hm'); +>d : Symbol(d, Decl(extendStringInterface.ts, 9, 3)) +>x : Symbol(x, Decl(extendStringInterface.ts, 5, 3)) +>'doOtherStuff' : Symbol(String.doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) + diff --git a/tests/baselines/reference/extendStringInterface.types b/tests/baselines/reference/extendStringInterface.types index 013e290605daf..edfd82390154c 100644 --- a/tests/baselines/reference/extendStringInterface.types +++ b/tests/baselines/reference/extendStringInterface.types @@ -1,49 +1,49 @@ === tests/cases/conformance/types/primitives/string/extendStringInterface.ts === interface String { ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11), Decl(extendStringInterface.ts, 0, 0)) +>String : String doStuff(): string; ->doStuff : () => string, Symbol(doStuff, Decl(extendStringInterface.ts, 0, 18)) +>doStuff : () => string doOtherStuff(x:T): T; ->doOtherStuff : (x: T) => T, Symbol(doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) ->T : T, Symbol(T, Decl(extendStringInterface.ts, 2, 17)) ->x : T, Symbol(x, Decl(extendStringInterface.ts, 2, 20)) ->T : T, Symbol(T, Decl(extendStringInterface.ts, 2, 17)) ->T : T, Symbol(T, Decl(extendStringInterface.ts, 2, 17)) +>doOtherStuff : (x: T) => T +>T : T +>x : T +>T : T +>T : T } var x = ''; ->x : string, Symbol(x, Decl(extendStringInterface.ts, 5, 3)) +>x : string >'' : string var a: string = x.doStuff(); ->a : string, Symbol(a, Decl(extendStringInterface.ts, 6, 3)) +>a : string >x.doStuff() : string ->x.doStuff : () => string, Symbol(String.doStuff, Decl(extendStringInterface.ts, 0, 18)) ->x : string, Symbol(x, Decl(extendStringInterface.ts, 5, 3)) ->doStuff : () => string, Symbol(String.doStuff, Decl(extendStringInterface.ts, 0, 18)) +>x.doStuff : () => string +>x : string +>doStuff : () => string var b: string = x.doOtherStuff('hm'); ->b : string, Symbol(b, Decl(extendStringInterface.ts, 7, 3)) +>b : string >x.doOtherStuff('hm') : string ->x.doOtherStuff : (x: T) => T, Symbol(String.doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) ->x : string, Symbol(x, Decl(extendStringInterface.ts, 5, 3)) ->doOtherStuff : (x: T) => T, Symbol(String.doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) +>x.doOtherStuff : (x: T) => T +>x : string +>doOtherStuff : (x: T) => T >'hm' : string var c: string = x['doStuff'](); ->c : string, Symbol(c, Decl(extendStringInterface.ts, 8, 3)) +>c : string >x['doStuff']() : string >x['doStuff'] : () => string ->x : string, Symbol(x, Decl(extendStringInterface.ts, 5, 3)) ->'doStuff' : string, Symbol(String.doStuff, Decl(extendStringInterface.ts, 0, 18)) +>x : string +>'doStuff' : string var d: string = x['doOtherStuff']('hm'); ->d : string, Symbol(d, Decl(extendStringInterface.ts, 9, 3)) +>d : string >x['doOtherStuff']('hm') : string >x['doOtherStuff'] : (x: T) => T ->x : string, Symbol(x, Decl(extendStringInterface.ts, 5, 3)) ->'doOtherStuff' : string, Symbol(String.doOtherStuff, Decl(extendStringInterface.ts, 1, 22)) +>x : string +>'doOtherStuff' : string >'hm' : string diff --git a/tests/baselines/reference/extendedInterfaceGenericType.symbols b/tests/baselines/reference/extendedInterfaceGenericType.symbols new file mode 100644 index 0000000000000..47e17b1e6a14a --- /dev/null +++ b/tests/baselines/reference/extendedInterfaceGenericType.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/extendedInterfaceGenericType.ts === +interface Alpha { +>Alpha : Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) +>T : Symbol(T, Decl(extendedInterfaceGenericType.ts, 0, 16)) + + takesArgOfT(arg: T): Alpha; +>takesArgOfT : Symbol(takesArgOfT, Decl(extendedInterfaceGenericType.ts, 0, 20)) +>arg : Symbol(arg, Decl(extendedInterfaceGenericType.ts, 1, 16)) +>T : Symbol(T, Decl(extendedInterfaceGenericType.ts, 0, 16)) +>Alpha : Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) +>T : Symbol(T, Decl(extendedInterfaceGenericType.ts, 0, 16)) + + makeBetaOfNumber(): Beta; +>makeBetaOfNumber : Symbol(makeBetaOfNumber, Decl(extendedInterfaceGenericType.ts, 1, 34)) +>Beta : Symbol(Beta, Decl(extendedInterfaceGenericType.ts, 3, 1)) +} +interface Beta extends Alpha { +>Beta : Symbol(Beta, Decl(extendedInterfaceGenericType.ts, 3, 1)) +>T : Symbol(T, Decl(extendedInterfaceGenericType.ts, 4, 15)) +>Alpha : Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) +>T : Symbol(T, Decl(extendedInterfaceGenericType.ts, 4, 15)) +} + +var alpha: Alpha; +>alpha : Symbol(alpha, Decl(extendedInterfaceGenericType.ts, 7, 3)) +>Alpha : Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) + +var betaOfNumber = alpha.makeBetaOfNumber(); +>betaOfNumber : Symbol(betaOfNumber, Decl(extendedInterfaceGenericType.ts, 8, 3)) +>alpha.makeBetaOfNumber : Symbol(Alpha.makeBetaOfNumber, Decl(extendedInterfaceGenericType.ts, 1, 34)) +>alpha : Symbol(alpha, Decl(extendedInterfaceGenericType.ts, 7, 3)) +>makeBetaOfNumber : Symbol(Alpha.makeBetaOfNumber, Decl(extendedInterfaceGenericType.ts, 1, 34)) + +betaOfNumber.takesArgOfT(5); +>betaOfNumber.takesArgOfT : Symbol(Alpha.takesArgOfT, Decl(extendedInterfaceGenericType.ts, 0, 20)) +>betaOfNumber : Symbol(betaOfNumber, Decl(extendedInterfaceGenericType.ts, 8, 3)) +>takesArgOfT : Symbol(Alpha.takesArgOfT, Decl(extendedInterfaceGenericType.ts, 0, 20)) + diff --git a/tests/baselines/reference/extendedInterfaceGenericType.types b/tests/baselines/reference/extendedInterfaceGenericType.types index ea502e365ecbe..a536ec7519052 100644 --- a/tests/baselines/reference/extendedInterfaceGenericType.types +++ b/tests/baselines/reference/extendedInterfaceGenericType.types @@ -1,41 +1,41 @@ === tests/cases/compiler/extendedInterfaceGenericType.ts === interface Alpha { ->Alpha : Alpha, Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) ->T : T, Symbol(T, Decl(extendedInterfaceGenericType.ts, 0, 16)) +>Alpha : Alpha +>T : T takesArgOfT(arg: T): Alpha; ->takesArgOfT : (arg: T) => Alpha, Symbol(takesArgOfT, Decl(extendedInterfaceGenericType.ts, 0, 20)) ->arg : T, Symbol(arg, Decl(extendedInterfaceGenericType.ts, 1, 16)) ->T : T, Symbol(T, Decl(extendedInterfaceGenericType.ts, 0, 16)) ->Alpha : Alpha, Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) ->T : T, Symbol(T, Decl(extendedInterfaceGenericType.ts, 0, 16)) +>takesArgOfT : (arg: T) => Alpha +>arg : T +>T : T +>Alpha : Alpha +>T : T makeBetaOfNumber(): Beta; ->makeBetaOfNumber : () => Beta, Symbol(makeBetaOfNumber, Decl(extendedInterfaceGenericType.ts, 1, 34)) ->Beta : Beta, Symbol(Beta, Decl(extendedInterfaceGenericType.ts, 3, 1)) +>makeBetaOfNumber : () => Beta +>Beta : Beta } interface Beta extends Alpha { ->Beta : Beta, Symbol(Beta, Decl(extendedInterfaceGenericType.ts, 3, 1)) ->T : T, Symbol(T, Decl(extendedInterfaceGenericType.ts, 4, 15)) ->Alpha : Alpha, Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) ->T : T, Symbol(T, Decl(extendedInterfaceGenericType.ts, 4, 15)) +>Beta : Beta +>T : T +>Alpha : Alpha +>T : T } var alpha: Alpha; ->alpha : Alpha, Symbol(alpha, Decl(extendedInterfaceGenericType.ts, 7, 3)) ->Alpha : Alpha, Symbol(Alpha, Decl(extendedInterfaceGenericType.ts, 0, 0)) +>alpha : Alpha +>Alpha : Alpha var betaOfNumber = alpha.makeBetaOfNumber(); ->betaOfNumber : Beta, Symbol(betaOfNumber, Decl(extendedInterfaceGenericType.ts, 8, 3)) +>betaOfNumber : Beta >alpha.makeBetaOfNumber() : Beta ->alpha.makeBetaOfNumber : () => Beta, Symbol(Alpha.makeBetaOfNumber, Decl(extendedInterfaceGenericType.ts, 1, 34)) ->alpha : Alpha, Symbol(alpha, Decl(extendedInterfaceGenericType.ts, 7, 3)) ->makeBetaOfNumber : () => Beta, Symbol(Alpha.makeBetaOfNumber, Decl(extendedInterfaceGenericType.ts, 1, 34)) +>alpha.makeBetaOfNumber : () => Beta +>alpha : Alpha +>makeBetaOfNumber : () => Beta betaOfNumber.takesArgOfT(5); >betaOfNumber.takesArgOfT(5) : Alpha ->betaOfNumber.takesArgOfT : (arg: number) => Alpha, Symbol(Alpha.takesArgOfT, Decl(extendedInterfaceGenericType.ts, 0, 20)) ->betaOfNumber : Beta, Symbol(betaOfNumber, Decl(extendedInterfaceGenericType.ts, 8, 3)) ->takesArgOfT : (arg: number) => Alpha, Symbol(Alpha.takesArgOfT, Decl(extendedInterfaceGenericType.ts, 0, 20)) +>betaOfNumber.takesArgOfT : (arg: number) => Alpha +>betaOfNumber : Beta +>takesArgOfT : (arg: number) => Alpha >5 : number diff --git a/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.symbols b/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.symbols new file mode 100644 index 0000000000000..02d57509a5507 --- /dev/null +++ b/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.symbols @@ -0,0 +1,80 @@ +=== tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_main.ts === +import Backbone = require("extendingClassFromAliasAndUsageInIndexer_backbone"); +>Backbone : Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 0)) + +import moduleA = require("extendingClassFromAliasAndUsageInIndexer_moduleA"); +>moduleA : Symbol(moduleA, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 79)) + +import moduleB = require("extendingClassFromAliasAndUsageInIndexer_moduleB"); +>moduleB : Symbol(moduleB, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 1, 77)) + +interface IHasVisualizationModel { +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 2, 77)) + + VisualizationModel: typeof Backbone.Model; +>VisualizationModel : Symbol(VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 3, 34)) +>Backbone.Model : Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +} +var moduleATyped: IHasVisualizationModel = moduleA; +>moduleATyped : Symbol(moduleATyped, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 6, 3)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 2, 77)) +>moduleA : Symbol(moduleA, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 79)) + +var moduleMap: { [key: string]: IHasVisualizationModel } = { +>moduleMap : Symbol(moduleMap, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 7, 3)) +>key : Symbol(key, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 7, 18)) +>IHasVisualizationModel : Symbol(IHasVisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 2, 77)) + + "moduleA": moduleA, +>moduleA : Symbol(moduleA, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 79)) + + "moduleB": moduleB +>moduleB : Symbol(moduleB, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 1, 77)) + +}; +var moduleName: string; +>moduleName : Symbol(moduleName, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 11, 3)) + +var visModel = new moduleMap[moduleName].VisualizationModel(); +>visModel : Symbol(visModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 12, 3)) +>moduleMap[moduleName].VisualizationModel : Symbol(IHasVisualizationModel.VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 3, 34)) +>moduleMap : Symbol(moduleMap, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 7, 3)) +>moduleName : Symbol(moduleName, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 11, 3)) +>VisualizationModel : Symbol(IHasVisualizationModel.VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 3, 34)) + +=== tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_backbone.ts === +export class Model { +>Model : Symbol(Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) + + public someData: string; +>someData : Symbol(someData, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 20)) +} + +=== tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_moduleA.ts === +import Backbone = require("extendingClassFromAliasAndUsageInIndexer_backbone"); +>Backbone : Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleA.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_moduleA.ts, 0, 79)) +>Backbone.Model : Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleA.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) + + // interesting stuff here +} + +=== tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_moduleB.ts === +import Backbone = require("extendingClassFromAliasAndUsageInIndexer_backbone"); +>Backbone : Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleB.ts, 0, 0)) + +export class VisualizationModel extends Backbone.Model { +>VisualizationModel : Symbol(VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_moduleB.ts, 0, 79)) +>Backbone.Model : Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>Backbone : Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleB.ts, 0, 0)) +>Model : Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) + + // different interesting stuff here +} + diff --git a/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types b/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types index 9f8ee1acb2a6f..5b9154516c57f 100644 --- a/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types +++ b/tests/baselines/reference/extendingClassFromAliasAndUsageInIndexer.types @@ -1,82 +1,82 @@ === tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_main.ts === import Backbone = require("extendingClassFromAliasAndUsageInIndexer_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 0)) +>Backbone : typeof Backbone import moduleA = require("extendingClassFromAliasAndUsageInIndexer_moduleA"); ->moduleA : typeof moduleA, Symbol(moduleA, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 79)) +>moduleA : typeof moduleA import moduleB = require("extendingClassFromAliasAndUsageInIndexer_moduleB"); ->moduleB : typeof moduleB, Symbol(moduleB, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 1, 77)) +>moduleB : typeof moduleB interface IHasVisualizationModel { ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 2, 77)) +>IHasVisualizationModel : IHasVisualizationModel VisualizationModel: typeof Backbone.Model; ->VisualizationModel : typeof Backbone.Model, Symbol(VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 3, 34)) ->Backbone.Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 0)) ->Model : typeof Backbone.Model, Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>VisualizationModel : typeof Backbone.Model +>Backbone.Model : typeof Backbone.Model +>Backbone : typeof Backbone +>Model : typeof Backbone.Model } var moduleATyped: IHasVisualizationModel = moduleA; ->moduleATyped : IHasVisualizationModel, Symbol(moduleATyped, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 6, 3)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 2, 77)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 79)) +>moduleATyped : IHasVisualizationModel +>IHasVisualizationModel : IHasVisualizationModel +>moduleA : typeof moduleA var moduleMap: { [key: string]: IHasVisualizationModel } = { ->moduleMap : { [key: string]: IHasVisualizationModel; }, Symbol(moduleMap, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 7, 3)) ->key : string, Symbol(key, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 7, 18)) ->IHasVisualizationModel : IHasVisualizationModel, Symbol(IHasVisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 2, 77)) +>moduleMap : { [key: string]: IHasVisualizationModel; } +>key : string +>IHasVisualizationModel : IHasVisualizationModel >{ "moduleA": moduleA, "moduleB": moduleB} : { [x: string]: typeof moduleA; "moduleA": typeof moduleA; "moduleB": typeof moduleB; } "moduleA": moduleA, ->moduleA : typeof moduleA, Symbol(moduleA, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 0, 79)) +>moduleA : typeof moduleA "moduleB": moduleB ->moduleB : typeof moduleB, Symbol(moduleB, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 1, 77)) +>moduleB : typeof moduleB }; var moduleName: string; ->moduleName : string, Symbol(moduleName, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 11, 3)) +>moduleName : string var visModel = new moduleMap[moduleName].VisualizationModel(); ->visModel : Backbone.Model, Symbol(visModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 12, 3)) +>visModel : Backbone.Model >new moduleMap[moduleName].VisualizationModel() : Backbone.Model ->moduleMap[moduleName].VisualizationModel : typeof Backbone.Model, Symbol(IHasVisualizationModel.VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 3, 34)) +>moduleMap[moduleName].VisualizationModel : typeof Backbone.Model >moduleMap[moduleName] : IHasVisualizationModel ->moduleMap : { [key: string]: IHasVisualizationModel; }, Symbol(moduleMap, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 7, 3)) ->moduleName : string, Symbol(moduleName, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 11, 3)) ->VisualizationModel : typeof Backbone.Model, Symbol(IHasVisualizationModel.VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_main.ts, 3, 34)) +>moduleMap : { [key: string]: IHasVisualizationModel; } +>moduleName : string +>VisualizationModel : typeof Backbone.Model === tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_backbone.ts === export class Model { ->Model : Model, Symbol(Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>Model : Model public someData: string; ->someData : string, Symbol(someData, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 20)) +>someData : string } === tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_moduleA.ts === import Backbone = require("extendingClassFromAliasAndUsageInIndexer_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleA.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_moduleA.ts, 0, 79)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleA.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // interesting stuff here } === tests/cases/compiler/extendingClassFromAliasAndUsageInIndexer_moduleB.ts === import Backbone = require("extendingClassFromAliasAndUsageInIndexer_backbone"); ->Backbone : typeof Backbone, Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleB.ts, 0, 0)) +>Backbone : typeof Backbone export class VisualizationModel extends Backbone.Model { ->VisualizationModel : VisualizationModel, Symbol(VisualizationModel, Decl(extendingClassFromAliasAndUsageInIndexer_moduleB.ts, 0, 79)) ->Backbone.Model : any, Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) ->Backbone : typeof Backbone, Symbol(Backbone, Decl(extendingClassFromAliasAndUsageInIndexer_moduleB.ts, 0, 0)) ->Model : Backbone.Model, Symbol(Backbone.Model, Decl(extendingClassFromAliasAndUsageInIndexer_backbone.ts, 0, 0)) +>VisualizationModel : VisualizationModel +>Backbone.Model : any +>Backbone : typeof Backbone +>Model : Backbone.Model // different interesting stuff here } diff --git a/tests/baselines/reference/externFunc.symbols b/tests/baselines/reference/externFunc.symbols new file mode 100644 index 0000000000000..1a02596d7dbf4 --- /dev/null +++ b/tests/baselines/reference/externFunc.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/externFunc.ts === +declare function parseInt(s:string):number; +>parseInt : Symbol(parseInt, Decl(lib.d.ts, 28, 38), Decl(externFunc.ts, 0, 0)) +>s : Symbol(s, Decl(externFunc.ts, 0, 26)) + +parseInt("2"); +>parseInt : Symbol(parseInt, Decl(lib.d.ts, 28, 38), Decl(externFunc.ts, 0, 0)) + diff --git a/tests/baselines/reference/externFunc.types b/tests/baselines/reference/externFunc.types index f0ab96b7401c6..ab417859ea5ec 100644 --- a/tests/baselines/reference/externFunc.types +++ b/tests/baselines/reference/externFunc.types @@ -1,10 +1,10 @@ === tests/cases/compiler/externFunc.ts === declare function parseInt(s:string):number; ->parseInt : { (s: string, radix?: number): number; (s: string): number; }, Symbol(parseInt, Decl(lib.d.ts, 28, 38), Decl(externFunc.ts, 0, 0)) ->s : string, Symbol(s, Decl(externFunc.ts, 0, 26)) +>parseInt : { (s: string, radix?: number): number; (s: string): number; } +>s : string parseInt("2"); >parseInt("2") : number ->parseInt : { (s: string, radix?: number): number; (s: string): number; }, Symbol(parseInt, Decl(lib.d.ts, 28, 38), Decl(externFunc.ts, 0, 0)) +>parseInt : { (s: string, radix?: number): number; (s: string): number; } >"2" : string diff --git a/tests/baselines/reference/externModuleClobber.symbols b/tests/baselines/reference/externModuleClobber.symbols new file mode 100644 index 0000000000000..af4b19ad7c9dc --- /dev/null +++ b/tests/baselines/reference/externModuleClobber.symbols @@ -0,0 +1,36 @@ +=== tests/cases/compiler/externModuleClobber.ts === +declare module EM { +>EM : Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) + + export class Position { } +>Position : Symbol(Position, Decl(externModuleClobber.ts, 0, 19)) + + export class EC { +>EC : Symbol(EC, Decl(externModuleClobber.ts, 1, 26)) + + public getPosition() : EM.Position; +>getPosition : Symbol(getPosition, Decl(externModuleClobber.ts, 3, 18)) +>EM : Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) +>Position : Symbol(Position, Decl(externModuleClobber.ts, 0, 19)) + } +} + +var x:EM.Position; +>x : Symbol(x, Decl(externModuleClobber.ts, 8, 3)) +>EM : Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) +>Position : Symbol(EM.Position, Decl(externModuleClobber.ts, 0, 19)) + +var ec:EM.EC = new EM.EC(); +>ec : Symbol(ec, Decl(externModuleClobber.ts, 9, 3)) +>EM : Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) +>EC : Symbol(EM.EC, Decl(externModuleClobber.ts, 1, 26)) +>EM.EC : Symbol(EM.EC, Decl(externModuleClobber.ts, 1, 26)) +>EM : Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) +>EC : Symbol(EM.EC, Decl(externModuleClobber.ts, 1, 26)) + +x = ec.getPosition(); +>x : Symbol(x, Decl(externModuleClobber.ts, 8, 3)) +>ec.getPosition : Symbol(EM.EC.getPosition, Decl(externModuleClobber.ts, 3, 18)) +>ec : Symbol(ec, Decl(externModuleClobber.ts, 9, 3)) +>getPosition : Symbol(EM.EC.getPosition, Decl(externModuleClobber.ts, 3, 18)) + diff --git a/tests/baselines/reference/externModuleClobber.types b/tests/baselines/reference/externModuleClobber.types index 61367e8c5e4e6..dae050aec4014 100644 --- a/tests/baselines/reference/externModuleClobber.types +++ b/tests/baselines/reference/externModuleClobber.types @@ -1,39 +1,39 @@ === tests/cases/compiler/externModuleClobber.ts === declare module EM { ->EM : typeof EM, Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) +>EM : typeof EM export class Position { } ->Position : Position, Symbol(Position, Decl(externModuleClobber.ts, 0, 19)) +>Position : Position export class EC { ->EC : EC, Symbol(EC, Decl(externModuleClobber.ts, 1, 26)) +>EC : EC public getPosition() : EM.Position; ->getPosition : () => Position, Symbol(getPosition, Decl(externModuleClobber.ts, 3, 18)) ->EM : any, Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) ->Position : Position, Symbol(Position, Decl(externModuleClobber.ts, 0, 19)) +>getPosition : () => Position +>EM : any +>Position : Position } } var x:EM.Position; ->x : EM.Position, Symbol(x, Decl(externModuleClobber.ts, 8, 3)) ->EM : any, Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) ->Position : EM.Position, Symbol(EM.Position, Decl(externModuleClobber.ts, 0, 19)) +>x : EM.Position +>EM : any +>Position : EM.Position var ec:EM.EC = new EM.EC(); ->ec : EM.EC, Symbol(ec, Decl(externModuleClobber.ts, 9, 3)) ->EM : any, Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) ->EC : EM.EC, Symbol(EM.EC, Decl(externModuleClobber.ts, 1, 26)) +>ec : EM.EC +>EM : any +>EC : EM.EC >new EM.EC() : EM.EC ->EM.EC : typeof EM.EC, Symbol(EM.EC, Decl(externModuleClobber.ts, 1, 26)) ->EM : typeof EM, Symbol(EM, Decl(externModuleClobber.ts, 0, 0)) ->EC : typeof EM.EC, Symbol(EM.EC, Decl(externModuleClobber.ts, 1, 26)) +>EM.EC : typeof EM.EC +>EM : typeof EM +>EC : typeof EM.EC x = ec.getPosition(); >x = ec.getPosition() : EM.Position ->x : EM.Position, Symbol(x, Decl(externModuleClobber.ts, 8, 3)) +>x : EM.Position >ec.getPosition() : EM.Position ->ec.getPosition : () => EM.Position, Symbol(EM.EC.getPosition, Decl(externModuleClobber.ts, 3, 18)) ->ec : EM.EC, Symbol(ec, Decl(externModuleClobber.ts, 9, 3)) ->getPosition : () => EM.Position, Symbol(EM.EC.getPosition, Decl(externModuleClobber.ts, 3, 18)) +>ec.getPosition : () => EM.Position +>ec : EM.EC +>getPosition : () => EM.Position diff --git a/tests/baselines/reference/externalModuleAssignToVar.symbols b/tests/baselines/reference/externalModuleAssignToVar.symbols new file mode 100644 index 0000000000000..373dd3f793ee3 --- /dev/null +++ b/tests/baselines/reference/externalModuleAssignToVar.symbols @@ -0,0 +1,61 @@ +=== tests/cases/compiler/externalModuleAssignToVar_core.ts === +/// +import ext = require('externalModuleAssignToVar_core_require'); +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) + +var y1: { C: new() => ext.C; } = ext; +>y1 : Symbol(y1, Decl(externalModuleAssignToVar_core.ts, 2, 3)) +>C : Symbol(C, Decl(externalModuleAssignToVar_core.ts, 2, 9)) +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) +>C : Symbol(ext.C, Decl(externalModuleAssignToVar_core_require.ts, 0, 0)) +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) + +y1 = ext; // ok +>y1 : Symbol(y1, Decl(externalModuleAssignToVar_core.ts, 2, 3)) +>ext : Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) + +import ext2 = require('externalModuleAssignToVar_core_require2'); +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) + +var y2: new() => ext2 = ext2; +>y2 : Symbol(y2, Decl(externalModuleAssignToVar_core.ts, 6, 3)) +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) + +y2 = ext2; // ok +>y2 : Symbol(y2, Decl(externalModuleAssignToVar_core.ts, 6, 3)) +>ext2 : Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) + +import ext3 = require('externalModuleAssignToVar_ext'); +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) + +var y3: new () => ext3 = ext3; +>y3 : Symbol(y3, Decl(externalModuleAssignToVar_core.ts, 10, 3)) +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) + +y3 = ext3; // ok +>y3 : Symbol(y3, Decl(externalModuleAssignToVar_core.ts, 10, 3)) +>ext3 : Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) + +=== tests/cases/compiler/externalModuleAssignToVar_ext.ts === +class D { foo: string; } +>D : Symbol(D, Decl(externalModuleAssignToVar_ext.ts, 0, 0)) +>foo : Symbol(foo, Decl(externalModuleAssignToVar_ext.ts, 0, 9)) + +export = D; +>D : Symbol(D, Decl(externalModuleAssignToVar_ext.ts, 0, 0)) + +=== tests/cases/compiler/externalModuleAssignToVar_core_require.ts === +export class C { bar: string; } +>C : Symbol(C, Decl(externalModuleAssignToVar_core_require.ts, 0, 0)) +>bar : Symbol(bar, Decl(externalModuleAssignToVar_core_require.ts, 0, 16)) + +=== tests/cases/compiler/externalModuleAssignToVar_core_require2.ts === +class C { baz: string; } +>C : Symbol(C, Decl(externalModuleAssignToVar_core_require2.ts, 0, 0)) +>baz : Symbol(baz, Decl(externalModuleAssignToVar_core_require2.ts, 0, 9)) + +export = C; +>C : Symbol(C, Decl(externalModuleAssignToVar_core_require2.ts, 0, 0)) + diff --git a/tests/baselines/reference/externalModuleAssignToVar.types b/tests/baselines/reference/externalModuleAssignToVar.types index b54b808773359..c25e2d784607b 100644 --- a/tests/baselines/reference/externalModuleAssignToVar.types +++ b/tests/baselines/reference/externalModuleAssignToVar.types @@ -1,64 +1,64 @@ === tests/cases/compiler/externalModuleAssignToVar_core.ts === /// import ext = require('externalModuleAssignToVar_core_require'); ->ext : typeof ext, Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) +>ext : typeof ext var y1: { C: new() => ext.C; } = ext; ->y1 : { C: new () => ext.C; }, Symbol(y1, Decl(externalModuleAssignToVar_core.ts, 2, 3)) ->C : new () => ext.C, Symbol(C, Decl(externalModuleAssignToVar_core.ts, 2, 9)) ->ext : any, Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) ->C : ext.C, Symbol(ext.C, Decl(externalModuleAssignToVar_core_require.ts, 0, 0)) ->ext : typeof ext, Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) +>y1 : { C: new () => ext.C; } +>C : new () => ext.C +>ext : any +>C : ext.C +>ext : typeof ext y1 = ext; // ok >y1 = ext : typeof ext ->y1 : { C: new () => ext.C; }, Symbol(y1, Decl(externalModuleAssignToVar_core.ts, 2, 3)) ->ext : typeof ext, Symbol(ext, Decl(externalModuleAssignToVar_core.ts, 0, 0)) +>y1 : { C: new () => ext.C; } +>ext : typeof ext import ext2 = require('externalModuleAssignToVar_core_require2'); ->ext2 : typeof ext2, Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) +>ext2 : typeof ext2 var y2: new() => ext2 = ext2; ->y2 : new () => ext2, Symbol(y2, Decl(externalModuleAssignToVar_core.ts, 6, 3)) ->ext2 : ext2, Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) ->ext2 : typeof ext2, Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) +>y2 : new () => ext2 +>ext2 : ext2 +>ext2 : typeof ext2 y2 = ext2; // ok >y2 = ext2 : typeof ext2 ->y2 : new () => ext2, Symbol(y2, Decl(externalModuleAssignToVar_core.ts, 6, 3)) ->ext2 : typeof ext2, Symbol(ext2, Decl(externalModuleAssignToVar_core.ts, 3, 9)) +>y2 : new () => ext2 +>ext2 : typeof ext2 import ext3 = require('externalModuleAssignToVar_ext'); ->ext3 : typeof ext3, Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) +>ext3 : typeof ext3 var y3: new () => ext3 = ext3; ->y3 : new () => ext3, Symbol(y3, Decl(externalModuleAssignToVar_core.ts, 10, 3)) ->ext3 : ext3, Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) ->ext3 : typeof ext3, Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) +>y3 : new () => ext3 +>ext3 : ext3 +>ext3 : typeof ext3 y3 = ext3; // ok >y3 = ext3 : typeof ext3 ->y3 : new () => ext3, Symbol(y3, Decl(externalModuleAssignToVar_core.ts, 10, 3)) ->ext3 : typeof ext3, Symbol(ext3, Decl(externalModuleAssignToVar_core.ts, 7, 10)) +>y3 : new () => ext3 +>ext3 : typeof ext3 === tests/cases/compiler/externalModuleAssignToVar_ext.ts === class D { foo: string; } ->D : D, Symbol(D, Decl(externalModuleAssignToVar_ext.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(externalModuleAssignToVar_ext.ts, 0, 9)) +>D : D +>foo : string export = D; ->D : D, Symbol(D, Decl(externalModuleAssignToVar_ext.ts, 0, 0)) +>D : D === tests/cases/compiler/externalModuleAssignToVar_core_require.ts === export class C { bar: string; } ->C : C, Symbol(C, Decl(externalModuleAssignToVar_core_require.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(externalModuleAssignToVar_core_require.ts, 0, 16)) +>C : C +>bar : string === tests/cases/compiler/externalModuleAssignToVar_core_require2.ts === class C { baz: string; } ->C : C, Symbol(C, Decl(externalModuleAssignToVar_core_require2.ts, 0, 0)) ->baz : string, Symbol(baz, Decl(externalModuleAssignToVar_core_require2.ts, 0, 9)) +>C : C +>baz : string export = C; ->C : C, Symbol(C, Decl(externalModuleAssignToVar_core_require2.ts, 0, 0)) +>C : C diff --git a/tests/baselines/reference/externalModuleQualification.symbols b/tests/baselines/reference/externalModuleQualification.symbols new file mode 100644 index 0000000000000..dc056802c7673 --- /dev/null +++ b/tests/baselines/reference/externalModuleQualification.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/externalModuleQualification.ts === +export var ID = "test"; +>ID : Symbol(ID, Decl(externalModuleQualification.ts, 0, 10)) + +export class DiffEditor { +>DiffEditor : Symbol(DiffEditor, Decl(externalModuleQualification.ts, 0, 23)) +>A : Symbol(A, Decl(externalModuleQualification.ts, 1, 24)) +>B : Symbol(B, Decl(externalModuleQualification.ts, 1, 26)) +>C : Symbol(C, Decl(externalModuleQualification.ts, 1, 29)) + + private previousDiffAction: NavigateAction; +>previousDiffAction : Symbol(previousDiffAction, Decl(externalModuleQualification.ts, 1, 34)) +>NavigateAction : Symbol(NavigateAction, Decl(externalModuleQualification.ts, 5, 1)) + + constructor(id: string = ID) { +>id : Symbol(id, Decl(externalModuleQualification.ts, 3, 16)) +>ID : Symbol(ID, Decl(externalModuleQualification.ts, 0, 10)) + } +} +class NavigateAction { +>NavigateAction : Symbol(NavigateAction, Decl(externalModuleQualification.ts, 5, 1)) + + f(editor: DiffEditor) { +>f : Symbol(f, Decl(externalModuleQualification.ts, 6, 22)) +>editor : Symbol(editor, Decl(externalModuleQualification.ts, 7, 6)) +>DiffEditor : Symbol(DiffEditor, Decl(externalModuleQualification.ts, 0, 23)) + } +} + diff --git a/tests/baselines/reference/externalModuleQualification.types b/tests/baselines/reference/externalModuleQualification.types index 9f66c1d1c881a..a7b70697209d4 100644 --- a/tests/baselines/reference/externalModuleQualification.types +++ b/tests/baselines/reference/externalModuleQualification.types @@ -1,30 +1,30 @@ === tests/cases/compiler/externalModuleQualification.ts === export var ID = "test"; ->ID : string, Symbol(ID, Decl(externalModuleQualification.ts, 0, 10)) +>ID : string >"test" : string export class DiffEditor { ->DiffEditor : DiffEditor, Symbol(DiffEditor, Decl(externalModuleQualification.ts, 0, 23)) ->A : A, Symbol(A, Decl(externalModuleQualification.ts, 1, 24)) ->B : B, Symbol(B, Decl(externalModuleQualification.ts, 1, 26)) ->C : C, Symbol(C, Decl(externalModuleQualification.ts, 1, 29)) +>DiffEditor : DiffEditor +>A : A +>B : B +>C : C private previousDiffAction: NavigateAction; ->previousDiffAction : NavigateAction, Symbol(previousDiffAction, Decl(externalModuleQualification.ts, 1, 34)) ->NavigateAction : NavigateAction, Symbol(NavigateAction, Decl(externalModuleQualification.ts, 5, 1)) +>previousDiffAction : NavigateAction +>NavigateAction : NavigateAction constructor(id: string = ID) { ->id : string, Symbol(id, Decl(externalModuleQualification.ts, 3, 16)) ->ID : string, Symbol(ID, Decl(externalModuleQualification.ts, 0, 10)) +>id : string +>ID : string } } class NavigateAction { ->NavigateAction : NavigateAction, Symbol(NavigateAction, Decl(externalModuleQualification.ts, 5, 1)) +>NavigateAction : NavigateAction f(editor: DiffEditor) { ->f : (editor: DiffEditor) => void, Symbol(f, Decl(externalModuleQualification.ts, 6, 22)) ->editor : DiffEditor, Symbol(editor, Decl(externalModuleQualification.ts, 7, 6)) ->DiffEditor : DiffEditor, Symbol(DiffEditor, Decl(externalModuleQualification.ts, 0, 23)) +>f : (editor: DiffEditor) => void +>editor : DiffEditor +>DiffEditor : DiffEditor } } diff --git a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.symbols b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.symbols new file mode 100644 index 0000000000000..02e5e6cfc5a44 --- /dev/null +++ b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts === +declare module 'timezonecomplete' { + import basics = require("__timezonecomplete/basics"); +>basics : Symbol(basics, Decl(externalModuleReferenceDoubleUnderscore1.ts, 0, 35)) + + export import TimeUnit = basics.TimeUnit; +>TimeUnit : Symbol(TimeUnit, Decl(externalModuleReferenceDoubleUnderscore1.ts, 1, 57)) +>basics : Symbol(basics, Decl(externalModuleReferenceDoubleUnderscore1.ts, 3, 1)) +>TimeUnit : Symbol(basics.TimeUnit, Decl(externalModuleReferenceDoubleUnderscore1.ts, 5, 44)) +} + +declare module '__timezonecomplete/basics' { + export enum TimeUnit { +>TimeUnit : Symbol(TimeUnit, Decl(externalModuleReferenceDoubleUnderscore1.ts, 5, 44)) + + Second = 0, +>Second : Symbol(TimeUnit.Second, Decl(externalModuleReferenceDoubleUnderscore1.ts, 6, 26)) + + Minute = 1, +>Minute : Symbol(TimeUnit.Minute, Decl(externalModuleReferenceDoubleUnderscore1.ts, 7, 19)) + + Hour = 2, +>Hour : Symbol(TimeUnit.Hour, Decl(externalModuleReferenceDoubleUnderscore1.ts, 8, 19)) + + Day = 3, +>Day : Symbol(TimeUnit.Day, Decl(externalModuleReferenceDoubleUnderscore1.ts, 9, 17)) + + Week = 4, +>Week : Symbol(TimeUnit.Week, Decl(externalModuleReferenceDoubleUnderscore1.ts, 10, 16)) + + Month = 5, +>Month : Symbol(TimeUnit.Month, Decl(externalModuleReferenceDoubleUnderscore1.ts, 11, 17)) + + Year = 6, +>Year : Symbol(TimeUnit.Year, Decl(externalModuleReferenceDoubleUnderscore1.ts, 12, 18)) + } +} diff --git a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types index 7bcbab3e5aa81..8d2c9b659912c 100644 --- a/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types +++ b/tests/baselines/reference/externalModuleReferenceDoubleUnderscore1.types @@ -1,44 +1,44 @@ === tests/cases/compiler/externalModuleReferenceDoubleUnderscore1.ts === declare module 'timezonecomplete' { import basics = require("__timezonecomplete/basics"); ->basics : typeof basics, Symbol(basics, Decl(externalModuleReferenceDoubleUnderscore1.ts, 0, 35)) +>basics : typeof basics export import TimeUnit = basics.TimeUnit; ->TimeUnit : typeof basics.TimeUnit, Symbol(TimeUnit, Decl(externalModuleReferenceDoubleUnderscore1.ts, 1, 57)) ->basics : typeof basics, Symbol(basics, Decl(externalModuleReferenceDoubleUnderscore1.ts, 3, 1)) ->TimeUnit : basics.TimeUnit, Symbol(basics.TimeUnit, Decl(externalModuleReferenceDoubleUnderscore1.ts, 5, 44)) +>TimeUnit : typeof basics.TimeUnit +>basics : typeof basics +>TimeUnit : basics.TimeUnit } declare module '__timezonecomplete/basics' { export enum TimeUnit { ->TimeUnit : TimeUnit, Symbol(TimeUnit, Decl(externalModuleReferenceDoubleUnderscore1.ts, 5, 44)) +>TimeUnit : TimeUnit Second = 0, ->Second : TimeUnit, Symbol(TimeUnit.Second, Decl(externalModuleReferenceDoubleUnderscore1.ts, 6, 26)) +>Second : TimeUnit >0 : number Minute = 1, ->Minute : TimeUnit, Symbol(TimeUnit.Minute, Decl(externalModuleReferenceDoubleUnderscore1.ts, 7, 19)) +>Minute : TimeUnit >1 : number Hour = 2, ->Hour : TimeUnit, Symbol(TimeUnit.Hour, Decl(externalModuleReferenceDoubleUnderscore1.ts, 8, 19)) +>Hour : TimeUnit >2 : number Day = 3, ->Day : TimeUnit, Symbol(TimeUnit.Day, Decl(externalModuleReferenceDoubleUnderscore1.ts, 9, 17)) +>Day : TimeUnit >3 : number Week = 4, ->Week : TimeUnit, Symbol(TimeUnit.Week, Decl(externalModuleReferenceDoubleUnderscore1.ts, 10, 16)) +>Week : TimeUnit >4 : number Month = 5, ->Month : TimeUnit, Symbol(TimeUnit.Month, Decl(externalModuleReferenceDoubleUnderscore1.ts, 11, 17)) +>Month : TimeUnit >5 : number Year = 6, ->Year : TimeUnit, Symbol(TimeUnit.Year, Decl(externalModuleReferenceDoubleUnderscore1.ts, 12, 18)) +>Year : TimeUnit >6 : number } } diff --git a/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols b/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols new file mode 100644 index 0000000000000..f81febef32076 --- /dev/null +++ b/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts === +export import file1 = require('externalModuleReferenceOfImportDeclarationWithExportModifier_0'); +>file1 : Symbol(file1, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts, 0, 0)) + +file1.foo(); +>file1.foo : Symbol(file1.foo, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts, 0, 0)) +>file1 : Symbol(file1, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts, 0, 0)) +>foo : Symbol(file1.foo, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts, 0, 0)) + +=== tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts === +export function foo() { }; +>foo : Symbol(foo, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.types b/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.types index 7c2dd700a56a8..bb49781d47732 100644 --- a/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.types +++ b/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.types @@ -1,14 +1,14 @@ === tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts === export import file1 = require('externalModuleReferenceOfImportDeclarationWithExportModifier_0'); ->file1 : typeof file1, Symbol(file1, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts, 0, 0)) +>file1 : typeof file1 file1.foo(); >file1.foo() : void ->file1.foo : () => void, Symbol(file1.foo, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts, 0, 0)) ->file1 : typeof file1, Symbol(file1, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_1.ts, 0, 0)) ->foo : () => void, Symbol(file1.foo, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts, 0, 0)) +>file1.foo : () => void +>file1 : typeof file1 +>foo : () => void === tests/cases/compiler/externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts === export function foo() { }; ->foo : () => void, Symbol(foo, Decl(externalModuleReferenceOfImportDeclarationWithExportModifier_0.ts, 0, 0)) +>foo : () => void diff --git a/tests/baselines/reference/externalModuleResolution.symbols b/tests/baselines/reference/externalModuleResolution.symbols new file mode 100644 index 0000000000000..d23b57e5061d5 --- /dev/null +++ b/tests/baselines/reference/externalModuleResolution.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/consumer.ts === +import x = require('./foo'); +>x : Symbol(x, Decl(consumer.ts, 0, 0)) + +x.Y // .ts should be picked +>x.Y : Symbol(x.Y, Decl(foo.ts, 1, 14)) +>x : Symbol(x, Decl(consumer.ts, 0, 0)) +>Y : Symbol(x.Y, Decl(foo.ts, 1, 14)) + +=== tests/cases/compiler/foo.ts === +module M2 { +>M2 : Symbol(M2, Decl(foo.ts, 0, 0)) + + export var Y = 1; +>Y : Symbol(Y, Decl(foo.ts, 1, 14)) +} +export = M2 +>M2 : Symbol(M2, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/externalModuleResolution.types b/tests/baselines/reference/externalModuleResolution.types index 3490ab023d98f..45e2aef6883f3 100644 --- a/tests/baselines/reference/externalModuleResolution.types +++ b/tests/baselines/reference/externalModuleResolution.types @@ -1,20 +1,20 @@ === tests/cases/compiler/consumer.ts === import x = require('./foo'); ->x : typeof x, Symbol(x, Decl(consumer.ts, 0, 0)) +>x : typeof x x.Y // .ts should be picked ->x.Y : number, Symbol(x.Y, Decl(foo.ts, 1, 14)) ->x : typeof x, Symbol(x, Decl(consumer.ts, 0, 0)) ->Y : number, Symbol(x.Y, Decl(foo.ts, 1, 14)) +>x.Y : number +>x : typeof x +>Y : number === tests/cases/compiler/foo.ts === module M2 { ->M2 : typeof M2, Symbol(M2, Decl(foo.ts, 0, 0)) +>M2 : typeof M2 export var Y = 1; ->Y : number, Symbol(Y, Decl(foo.ts, 1, 14)) +>Y : number >1 : number } export = M2 ->M2 : typeof M2, Symbol(M2, Decl(foo.ts, 0, 0)) +>M2 : typeof M2 diff --git a/tests/baselines/reference/externalModuleResolution2.symbols b/tests/baselines/reference/externalModuleResolution2.symbols new file mode 100644 index 0000000000000..f77a676ac6ac2 --- /dev/null +++ b/tests/baselines/reference/externalModuleResolution2.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/consumer.ts === +import x = require('./foo'); +>x : Symbol(x, Decl(consumer.ts, 0, 0)) + +x.X // .ts should be picked +>x.X : Symbol(x.X, Decl(foo.ts, 1, 14)) +>x : Symbol(x, Decl(consumer.ts, 0, 0)) +>X : Symbol(x.X, Decl(foo.ts, 1, 14)) + +=== tests/cases/compiler/foo.ts === +module M2 { +>M2 : Symbol(M2, Decl(foo.ts, 0, 0)) + + export var X = 1; +>X : Symbol(X, Decl(foo.ts, 1, 14)) +} +export = M2 +>M2 : Symbol(M2, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/externalModuleResolution2.types b/tests/baselines/reference/externalModuleResolution2.types index f2a8979df4f76..9f48b8b38f1c9 100644 --- a/tests/baselines/reference/externalModuleResolution2.types +++ b/tests/baselines/reference/externalModuleResolution2.types @@ -1,20 +1,20 @@ === tests/cases/compiler/consumer.ts === import x = require('./foo'); ->x : typeof x, Symbol(x, Decl(consumer.ts, 0, 0)) +>x : typeof x x.X // .ts should be picked ->x.X : number, Symbol(x.X, Decl(foo.ts, 1, 14)) ->x : typeof x, Symbol(x, Decl(consumer.ts, 0, 0)) ->X : number, Symbol(x.X, Decl(foo.ts, 1, 14)) +>x.X : number +>x : typeof x +>X : number === tests/cases/compiler/foo.ts === module M2 { ->M2 : typeof M2, Symbol(M2, Decl(foo.ts, 0, 0)) +>M2 : typeof M2 export var X = 1; ->X : number, Symbol(X, Decl(foo.ts, 1, 14)) +>X : number >1 : number } export = M2 ->M2 : typeof M2, Symbol(M2, Decl(foo.ts, 0, 0)) +>M2 : typeof M2 diff --git a/tests/baselines/reference/fatArrowSelf.symbols b/tests/baselines/reference/fatArrowSelf.symbols new file mode 100644 index 0000000000000..4008b648ae6e5 --- /dev/null +++ b/tests/baselines/reference/fatArrowSelf.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/fatArrowSelf.ts === +module Events { +>Events : Symbol(Events, Decl(fatArrowSelf.ts, 0, 0)) + + export interface ListenerCallback { +>ListenerCallback : Symbol(ListenerCallback, Decl(fatArrowSelf.ts, 0, 15)) + + (value:any):void; +>value : Symbol(value, Decl(fatArrowSelf.ts, 2, 9)) + } + export class EventEmitter { +>EventEmitter : Symbol(EventEmitter, Decl(fatArrowSelf.ts, 3, 5)) + + public addListener(type:string, listener:ListenerCallback) { +>addListener : Symbol(addListener, Decl(fatArrowSelf.ts, 4, 31)) +>type : Symbol(type, Decl(fatArrowSelf.ts, 5, 28)) +>listener : Symbol(listener, Decl(fatArrowSelf.ts, 5, 40)) +>ListenerCallback : Symbol(ListenerCallback, Decl(fatArrowSelf.ts, 0, 15)) + } + } +} + +module Consumer { +>Consumer : Symbol(Consumer, Decl(fatArrowSelf.ts, 8, 1)) + + class EventEmitterConsummer { +>EventEmitterConsummer : Symbol(EventEmitterConsummer, Decl(fatArrowSelf.ts, 10, 17)) + + constructor (private emitter: Events.EventEmitter) { } +>emitter : Symbol(emitter, Decl(fatArrowSelf.ts, 12, 21)) +>Events : Symbol(Events, Decl(fatArrowSelf.ts, 0, 0)) +>EventEmitter : Symbol(Events.EventEmitter, Decl(fatArrowSelf.ts, 3, 5)) + + private register() { +>register : Symbol(register, Decl(fatArrowSelf.ts, 12, 62)) + + this.emitter.addListener('change', (e) => { +>this.emitter.addListener : Symbol(Events.EventEmitter.addListener, Decl(fatArrowSelf.ts, 4, 31)) +>this.emitter : Symbol(emitter, Decl(fatArrowSelf.ts, 12, 21)) +>this : Symbol(EventEmitterConsummer, Decl(fatArrowSelf.ts, 10, 17)) +>emitter : Symbol(emitter, Decl(fatArrowSelf.ts, 12, 21)) +>addListener : Symbol(Events.EventEmitter.addListener, Decl(fatArrowSelf.ts, 4, 31)) +>e : Symbol(e, Decl(fatArrowSelf.ts, 15, 48)) + + this.changed(); +>this.changed : Symbol(changed, Decl(fatArrowSelf.ts, 18, 9)) +>this : Symbol(EventEmitterConsummer, Decl(fatArrowSelf.ts, 10, 17)) +>changed : Symbol(changed, Decl(fatArrowSelf.ts, 18, 9)) + + }); + } + + private changed() { +>changed : Symbol(changed, Decl(fatArrowSelf.ts, 18, 9)) + } + } +} diff --git a/tests/baselines/reference/fatArrowSelf.types b/tests/baselines/reference/fatArrowSelf.types index b2fa05338e110..c4b2936fd3765 100644 --- a/tests/baselines/reference/fatArrowSelf.types +++ b/tests/baselines/reference/fatArrowSelf.types @@ -1,61 +1,61 @@ === tests/cases/compiler/fatArrowSelf.ts === module Events { ->Events : typeof Events, Symbol(Events, Decl(fatArrowSelf.ts, 0, 0)) +>Events : typeof Events export interface ListenerCallback { ->ListenerCallback : ListenerCallback, Symbol(ListenerCallback, Decl(fatArrowSelf.ts, 0, 15)) +>ListenerCallback : ListenerCallback (value:any):void; ->value : any, Symbol(value, Decl(fatArrowSelf.ts, 2, 9)) +>value : any } export class EventEmitter { ->EventEmitter : EventEmitter, Symbol(EventEmitter, Decl(fatArrowSelf.ts, 3, 5)) +>EventEmitter : EventEmitter public addListener(type:string, listener:ListenerCallback) { ->addListener : (type: string, listener: ListenerCallback) => void, Symbol(addListener, Decl(fatArrowSelf.ts, 4, 31)) ->type : string, Symbol(type, Decl(fatArrowSelf.ts, 5, 28)) ->listener : ListenerCallback, Symbol(listener, Decl(fatArrowSelf.ts, 5, 40)) ->ListenerCallback : ListenerCallback, Symbol(ListenerCallback, Decl(fatArrowSelf.ts, 0, 15)) +>addListener : (type: string, listener: ListenerCallback) => void +>type : string +>listener : ListenerCallback +>ListenerCallback : ListenerCallback } } } module Consumer { ->Consumer : typeof Consumer, Symbol(Consumer, Decl(fatArrowSelf.ts, 8, 1)) +>Consumer : typeof Consumer class EventEmitterConsummer { ->EventEmitterConsummer : EventEmitterConsummer, Symbol(EventEmitterConsummer, Decl(fatArrowSelf.ts, 10, 17)) +>EventEmitterConsummer : EventEmitterConsummer constructor (private emitter: Events.EventEmitter) { } ->emitter : Events.EventEmitter, Symbol(emitter, Decl(fatArrowSelf.ts, 12, 21)) ->Events : any, Symbol(Events, Decl(fatArrowSelf.ts, 0, 0)) ->EventEmitter : Events.EventEmitter, Symbol(Events.EventEmitter, Decl(fatArrowSelf.ts, 3, 5)) +>emitter : Events.EventEmitter +>Events : any +>EventEmitter : Events.EventEmitter private register() { ->register : () => void, Symbol(register, Decl(fatArrowSelf.ts, 12, 62)) +>register : () => void this.emitter.addListener('change', (e) => { >this.emitter.addListener('change', (e) => { this.changed(); }) : void ->this.emitter.addListener : (type: string, listener: Events.ListenerCallback) => void, Symbol(Events.EventEmitter.addListener, Decl(fatArrowSelf.ts, 4, 31)) ->this.emitter : Events.EventEmitter, Symbol(emitter, Decl(fatArrowSelf.ts, 12, 21)) ->this : EventEmitterConsummer, Symbol(EventEmitterConsummer, Decl(fatArrowSelf.ts, 10, 17)) ->emitter : Events.EventEmitter, Symbol(emitter, Decl(fatArrowSelf.ts, 12, 21)) ->addListener : (type: string, listener: Events.ListenerCallback) => void, Symbol(Events.EventEmitter.addListener, Decl(fatArrowSelf.ts, 4, 31)) +>this.emitter.addListener : (type: string, listener: Events.ListenerCallback) => void +>this.emitter : Events.EventEmitter +>this : EventEmitterConsummer +>emitter : Events.EventEmitter +>addListener : (type: string, listener: Events.ListenerCallback) => void >'change' : string >(e) => { this.changed(); } : (e: any) => void ->e : any, Symbol(e, Decl(fatArrowSelf.ts, 15, 48)) +>e : any this.changed(); >this.changed() : void ->this.changed : () => void, Symbol(changed, Decl(fatArrowSelf.ts, 18, 9)) ->this : EventEmitterConsummer, Symbol(EventEmitterConsummer, Decl(fatArrowSelf.ts, 10, 17)) ->changed : () => void, Symbol(changed, Decl(fatArrowSelf.ts, 18, 9)) +>this.changed : () => void +>this : EventEmitterConsummer +>changed : () => void }); } private changed() { ->changed : () => void, Symbol(changed, Decl(fatArrowSelf.ts, 18, 9)) +>changed : () => void } } } diff --git a/tests/baselines/reference/fatArrowfunctionAsType.symbols b/tests/baselines/reference/fatArrowfunctionAsType.symbols new file mode 100644 index 0000000000000..9764149bade7e --- /dev/null +++ b/tests/baselines/reference/fatArrowfunctionAsType.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/fatArrowfunctionAsType.ts === +declare var b: (x: T) => void ; +>b : Symbol(b, Decl(fatArrowfunctionAsType.ts, 0, 11)) +>T : Symbol(T, Decl(fatArrowfunctionAsType.ts, 0, 16)) +>x : Symbol(x, Decl(fatArrowfunctionAsType.ts, 0, 19)) +>T : Symbol(T, Decl(fatArrowfunctionAsType.ts, 0, 16)) + +var c: (x: T) => void = function (x: T) { return 42; } +>c : Symbol(c, Decl(fatArrowfunctionAsType.ts, 2, 3)) +>T : Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 8)) +>x : Symbol(x, Decl(fatArrowfunctionAsType.ts, 2, 11)) +>T : Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 8)) +>T : Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 37)) +>x : Symbol(x, Decl(fatArrowfunctionAsType.ts, 2, 40)) +>T : Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 37)) + +b = c; +>b : Symbol(b, Decl(fatArrowfunctionAsType.ts, 0, 11)) +>c : Symbol(c, Decl(fatArrowfunctionAsType.ts, 2, 3)) + diff --git a/tests/baselines/reference/fatArrowfunctionAsType.types b/tests/baselines/reference/fatArrowfunctionAsType.types index fa3460ce41007..a165048695fa8 100644 --- a/tests/baselines/reference/fatArrowfunctionAsType.types +++ b/tests/baselines/reference/fatArrowfunctionAsType.types @@ -1,23 +1,23 @@ === tests/cases/compiler/fatArrowfunctionAsType.ts === declare var b: (x: T) => void ; ->b : (x: T) => void, Symbol(b, Decl(fatArrowfunctionAsType.ts, 0, 11)) ->T : T, Symbol(T, Decl(fatArrowfunctionAsType.ts, 0, 16)) ->x : T, Symbol(x, Decl(fatArrowfunctionAsType.ts, 0, 19)) ->T : T, Symbol(T, Decl(fatArrowfunctionAsType.ts, 0, 16)) +>b : (x: T) => void +>T : T +>x : T +>T : T var c: (x: T) => void = function (x: T) { return 42; } ->c : (x: T) => void, Symbol(c, Decl(fatArrowfunctionAsType.ts, 2, 3)) ->T : T, Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 8)) ->x : T, Symbol(x, Decl(fatArrowfunctionAsType.ts, 2, 11)) ->T : T, Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 8)) +>c : (x: T) => void +>T : T +>x : T +>T : T >function (x: T) { return 42; } : (x: T) => number ->T : T, Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 37)) ->x : T, Symbol(x, Decl(fatArrowfunctionAsType.ts, 2, 40)) ->T : T, Symbol(T, Decl(fatArrowfunctionAsType.ts, 2, 37)) +>T : T +>x : T +>T : T >42 : number b = c; >b = c : (x: T) => void ->b : (x: T) => void, Symbol(b, Decl(fatArrowfunctionAsType.ts, 0, 11)) ->c : (x: T) => void, Symbol(c, Decl(fatArrowfunctionAsType.ts, 2, 3)) +>b : (x: T) => void +>c : (x: T) => void diff --git a/tests/baselines/reference/fatarrowfunctions.symbols b/tests/baselines/reference/fatarrowfunctions.symbols new file mode 100644 index 0000000000000..6ed865b091459 --- /dev/null +++ b/tests/baselines/reference/fatarrowfunctions.symbols @@ -0,0 +1,168 @@ +=== tests/cases/compiler/fatarrowfunctions.ts === + +function foo(x:any) { +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 1, 13)) + + return x(); +>x : Symbol(x, Decl(fatarrowfunctions.ts, 1, 13)) +} + + +foo((x:number,y,z)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 6, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 6, 14)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 6, 16)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 6, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 6, 14)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 6, 16)) + +foo((x,y,z)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 7, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 7, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 7, 9)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 7, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 7, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 7, 9)) + +foo((x,y:number,z)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 8, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 8, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 8, 16)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 8, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 8, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 8, 16)) + +foo((x,y:number,z:number)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 9, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 9, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 9, 16)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 9, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 9, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 9, 16)) + +foo((x,y,z:number)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 10, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 10, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 10, 9)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 10, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 10, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 10, 9)) + +foo(()=>{return 0;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) + +foo((x:number,y,z)=>x+y+z); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 13, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 13, 14)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 13, 16)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 13, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 13, 14)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 13, 16)) + +foo((x,y,z)=>x+y+z); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 14, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 14, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 14, 9)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 14, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 14, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 14, 9)) + +foo((x,y:number,z)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 15, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 15, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 15, 16)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 15, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 15, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 15, 16)) + +foo((x,y:number,z:number)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 16, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 16, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 16, 16)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 16, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 16, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 16, 16)) + +foo((x,y,z:number)=>{return x+y+z;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 17, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 17, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 17, 9)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 17, 5)) +>y : Symbol(y, Decl(fatarrowfunctions.ts, 17, 7)) +>z : Symbol(z, Decl(fatarrowfunctions.ts, 17, 9)) + +foo(()=>{return 0;}); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) + + +foo(((x) => x)); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 21, 6)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 21, 6)) + +foo(x => x*x); +>foo : Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 23, 4)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 23, 4)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 23, 4)) + +var y = x => x*x; +>y : Symbol(y, Decl(fatarrowfunctions.ts, 25, 3)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 25, 7)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 25, 7)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 25, 7)) + +var z = (x:number) => x*x; +>z : Symbol(z, Decl(fatarrowfunctions.ts, 26, 3)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 26, 9)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 26, 9)) +>x : Symbol(x, Decl(fatarrowfunctions.ts, 26, 9)) + +var w = () => 3; +>w : Symbol(w, Decl(fatarrowfunctions.ts, 28, 3)) + +function ternaryTest(isWhile:boolean) { +>ternaryTest : Symbol(ternaryTest, Decl(fatarrowfunctions.ts, 28, 16)) +>isWhile : Symbol(isWhile, Decl(fatarrowfunctions.ts, 30, 21)) + + var f = isWhile ? function (n) { return n > 0; } : function (n) { return n === 0; }; +>f : Symbol(f, Decl(fatarrowfunctions.ts, 32, 19)) +>isWhile : Symbol(isWhile, Decl(fatarrowfunctions.ts, 30, 21)) +>n : Symbol(n, Decl(fatarrowfunctions.ts, 32, 44)) +>n : Symbol(n, Decl(fatarrowfunctions.ts, 32, 44)) +>n : Symbol(n, Decl(fatarrowfunctions.ts, 32, 77)) +>n : Symbol(n, Decl(fatarrowfunctions.ts, 32, 77)) + +} + +declare function setTimeout(expression: any, msec?: number, language?: any): number; +>setTimeout : Symbol(setTimeout, Decl(fatarrowfunctions.ts, 34, 1)) +>expression : Symbol(expression, Decl(fatarrowfunctions.ts, 36, 28)) +>msec : Symbol(msec, Decl(fatarrowfunctions.ts, 36, 44)) +>language : Symbol(language, Decl(fatarrowfunctions.ts, 36, 59)) + +var messenger = { +>messenger : Symbol(messenger, Decl(fatarrowfunctions.ts, 38, 3)) + + message: "Hello World", +>message : Symbol(message, Decl(fatarrowfunctions.ts, 38, 17)) + + start: function() { +>start : Symbol(start, Decl(fatarrowfunctions.ts, 39, 27)) + + setTimeout(() => { this.message.toString(); }, 3000); +>setTimeout : Symbol(setTimeout, Decl(fatarrowfunctions.ts, 34, 1)) + } +}; + diff --git a/tests/baselines/reference/fatarrowfunctions.types b/tests/baselines/reference/fatarrowfunctions.types index 00476f423ef5d..e48b63e50ee2d 100644 --- a/tests/baselines/reference/fatarrowfunctions.types +++ b/tests/baselines/reference/fatarrowfunctions.types @@ -1,238 +1,238 @@ === tests/cases/compiler/fatarrowfunctions.ts === function foo(x:any) { ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 1, 13)) +>foo : (x: any) => any +>x : any return x(); >x() : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 1, 13)) +>x : any } foo((x:number,y,z)=>{return x+y+z;}); >foo((x:number,y,z)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x:number,y,z)=>{return x+y+z;} : (x: number, y: any, z: any) => any ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 6, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 6, 14)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 6, 16)) +>x : number +>y : any +>z : any >x+y+z : any >x+y : any ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 6, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 6, 14)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 6, 16)) +>x : number +>y : any +>z : any foo((x,y,z)=>{return x+y+z;}); >foo((x,y,z)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y,z)=>{return x+y+z;} : (x: any, y: any, z: any) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 7, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 7, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 7, 9)) +>x : any +>y : any +>z : any >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 7, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 7, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 7, 9)) +>x : any +>y : any +>z : any foo((x,y:number,z)=>{return x+y+z;}); >foo((x,y:number,z)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y:number,z)=>{return x+y+z;} : (x: any, y: number, z: any) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 8, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 8, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 8, 16)) +>x : any +>y : number +>z : any >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 8, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 8, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 8, 16)) +>x : any +>y : number +>z : any foo((x,y:number,z:number)=>{return x+y+z;}); >foo((x,y:number,z:number)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y:number,z:number)=>{return x+y+z;} : (x: any, y: number, z: number) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 9, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 9, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 9, 16)) +>x : any +>y : number +>z : number >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 9, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 9, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 9, 16)) +>x : any +>y : number +>z : number foo((x,y,z:number)=>{return x+y+z;}); >foo((x,y,z:number)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y,z:number)=>{return x+y+z;} : (x: any, y: any, z: number) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 10, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 10, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 10, 9)) +>x : any +>y : any +>z : number >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 10, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 10, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 10, 9)) +>x : any +>y : any +>z : number foo(()=>{return 0;}); >foo(()=>{return 0;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >()=>{return 0;} : () => number >0 : number foo((x:number,y,z)=>x+y+z); >foo((x:number,y,z)=>x+y+z) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x:number,y,z)=>x+y+z : (x: number, y: any, z: any) => any ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 13, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 13, 14)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 13, 16)) +>x : number +>y : any +>z : any >x+y+z : any >x+y : any ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 13, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 13, 14)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 13, 16)) +>x : number +>y : any +>z : any foo((x,y,z)=>x+y+z); >foo((x,y,z)=>x+y+z) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y,z)=>x+y+z : (x: any, y: any, z: any) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 14, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 14, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 14, 9)) +>x : any +>y : any +>z : any >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 14, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 14, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 14, 9)) +>x : any +>y : any +>z : any foo((x,y:number,z)=>{return x+y+z;}); >foo((x,y:number,z)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y:number,z)=>{return x+y+z;} : (x: any, y: number, z: any) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 15, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 15, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 15, 16)) +>x : any +>y : number +>z : any >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 15, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 15, 7)) ->z : any, Symbol(z, Decl(fatarrowfunctions.ts, 15, 16)) +>x : any +>y : number +>z : any foo((x,y:number,z:number)=>{return x+y+z;}); >foo((x,y:number,z:number)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y:number,z:number)=>{return x+y+z;} : (x: any, y: number, z: number) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 16, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 16, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 16, 16)) +>x : any +>y : number +>z : number >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 16, 5)) ->y : number, Symbol(y, Decl(fatarrowfunctions.ts, 16, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 16, 16)) +>x : any +>y : number +>z : number foo((x,y,z:number)=>{return x+y+z;}); >foo((x,y,z:number)=>{return x+y+z;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >(x,y,z:number)=>{return x+y+z;} : (x: any, y: any, z: number) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 17, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 17, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 17, 9)) +>x : any +>y : any +>z : number >x+y+z : any >x+y : any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 17, 5)) ->y : any, Symbol(y, Decl(fatarrowfunctions.ts, 17, 7)) ->z : number, Symbol(z, Decl(fatarrowfunctions.ts, 17, 9)) +>x : any +>y : any +>z : number foo(()=>{return 0;}); >foo(()=>{return 0;}) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >()=>{return 0;} : () => number >0 : number foo(((x) => x)); >foo(((x) => x)) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >((x) => x) : (x: any) => any >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 21, 6)) ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 21, 6)) +>x : any +>x : any foo(x => x*x); >foo(x => x*x) : any ->foo : (x: any) => any, Symbol(foo, Decl(fatarrowfunctions.ts, 0, 0)) +>foo : (x: any) => any >x => x*x : (x: any) => number ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 23, 4)) +>x : any >x*x : number ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 23, 4)) ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 23, 4)) +>x : any +>x : any var y = x => x*x; ->y : (x: any) => number, Symbol(y, Decl(fatarrowfunctions.ts, 25, 3)) +>y : (x: any) => number >x => x*x : (x: any) => number ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 25, 7)) +>x : any >x*x : number ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 25, 7)) ->x : any, Symbol(x, Decl(fatarrowfunctions.ts, 25, 7)) +>x : any +>x : any var z = (x:number) => x*x; ->z : (x: number) => number, Symbol(z, Decl(fatarrowfunctions.ts, 26, 3)) +>z : (x: number) => number >(x:number) => x*x : (x: number) => number ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 26, 9)) +>x : number >x*x : number ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 26, 9)) ->x : number, Symbol(x, Decl(fatarrowfunctions.ts, 26, 9)) +>x : number +>x : number var w = () => 3; ->w : () => number, Symbol(w, Decl(fatarrowfunctions.ts, 28, 3)) +>w : () => number >() => 3 : () => number >3 : number function ternaryTest(isWhile:boolean) { ->ternaryTest : (isWhile: boolean) => void, Symbol(ternaryTest, Decl(fatarrowfunctions.ts, 28, 16)) ->isWhile : boolean, Symbol(isWhile, Decl(fatarrowfunctions.ts, 30, 21)) +>ternaryTest : (isWhile: boolean) => void +>isWhile : boolean var f = isWhile ? function (n) { return n > 0; } : function (n) { return n === 0; }; ->f : (n: any) => boolean, Symbol(f, Decl(fatarrowfunctions.ts, 32, 19)) +>f : (n: any) => boolean >isWhile ? function (n) { return n > 0; } : function (n) { return n === 0; } : (n: any) => boolean ->isWhile : boolean, Symbol(isWhile, Decl(fatarrowfunctions.ts, 30, 21)) +>isWhile : boolean >function (n) { return n > 0; } : (n: any) => boolean ->n : any, Symbol(n, Decl(fatarrowfunctions.ts, 32, 44)) +>n : any >n > 0 : boolean ->n : any, Symbol(n, Decl(fatarrowfunctions.ts, 32, 44)) +>n : any >0 : number >function (n) { return n === 0; } : (n: any) => boolean ->n : any, Symbol(n, Decl(fatarrowfunctions.ts, 32, 77)) +>n : any >n === 0 : boolean ->n : any, Symbol(n, Decl(fatarrowfunctions.ts, 32, 77)) +>n : any >0 : number } declare function setTimeout(expression: any, msec?: number, language?: any): number; ->setTimeout : (expression: any, msec?: number, language?: any) => number, Symbol(setTimeout, Decl(fatarrowfunctions.ts, 34, 1)) ->expression : any, Symbol(expression, Decl(fatarrowfunctions.ts, 36, 28)) ->msec : number, Symbol(msec, Decl(fatarrowfunctions.ts, 36, 44)) ->language : any, Symbol(language, Decl(fatarrowfunctions.ts, 36, 59)) +>setTimeout : (expression: any, msec?: number, language?: any) => number +>expression : any +>msec : number +>language : any var messenger = { ->messenger : { message: string; start: () => void; }, Symbol(messenger, Decl(fatarrowfunctions.ts, 38, 3)) +>messenger : { message: string; start: () => void; } >{ message: "Hello World", start: function() { setTimeout(() => { this.message.toString(); }, 3000); }} : { message: string; start: () => void; } message: "Hello World", ->message : string, Symbol(message, Decl(fatarrowfunctions.ts, 38, 17)) +>message : string >"Hello World" : string start: function() { ->start : () => void, Symbol(start, Decl(fatarrowfunctions.ts, 39, 27)) +>start : () => void >function() { setTimeout(() => { this.message.toString(); }, 3000); } : () => void setTimeout(() => { this.message.toString(); }, 3000); >setTimeout(() => { this.message.toString(); }, 3000) : number ->setTimeout : (expression: any, msec?: number, language?: any) => number, Symbol(setTimeout, Decl(fatarrowfunctions.ts, 34, 1)) +>setTimeout : (expression: any, msec?: number, language?: any) => number >() => { this.message.toString(); } : () => void >this.message.toString() : any >this.message.toString : any diff --git a/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.symbols b/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.symbols new file mode 100644 index 0000000000000..731e8558bab1b --- /dev/null +++ b/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/fatarrowfunctionsInFunctionParameterDefaults.ts === +function fn(x = () => this, y = x()) { +>fn : Symbol(fn, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 0)) +>x : Symbol(x, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 12)) +>y : Symbol(y, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 27)) +>x : Symbol(x, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 12)) + + // should be 4 + return y; +>y : Symbol(y, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 27)) + +} + +fn.call(4); // Should be 4 +>fn.call : Symbol(Function.call, Decl(lib.d.ts, 234, 45)) +>fn : Symbol(fn, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 0)) +>call : Symbol(Function.call, Decl(lib.d.ts, 234, 45)) + diff --git a/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.types b/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.types index 7c1e104c47142..55d72e854d302 100644 --- a/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.types +++ b/tests/baselines/reference/fatarrowfunctionsInFunctionParameterDefaults.types @@ -1,23 +1,23 @@ === tests/cases/compiler/fatarrowfunctionsInFunctionParameterDefaults.ts === function fn(x = () => this, y = x()) { ->fn : (x?: () => any, y?: any) => any, Symbol(fn, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 0)) ->x : () => any, Symbol(x, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 12)) +>fn : (x?: () => any, y?: any) => any +>x : () => any >() => this : () => any >this : any ->y : any, Symbol(y, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 27)) +>y : any >x() : any ->x : () => any, Symbol(x, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 12)) +>x : () => any // should be 4 return y; ->y : any, Symbol(y, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 27)) +>y : any } fn.call(4); // Should be 4 >fn.call(4) : any ->fn.call : (thisArg: any, ...argArray: any[]) => any, Symbol(Function.call, Decl(lib.d.ts, 234, 45)) ->fn : (x?: () => any, y?: any) => any, Symbol(fn, Decl(fatarrowfunctionsInFunctionParameterDefaults.ts, 0, 0)) ->call : (thisArg: any, ...argArray: any[]) => any, Symbol(Function.call, Decl(lib.d.ts, 234, 45)) +>fn.call : (thisArg: any, ...argArray: any[]) => any +>fn : (x?: () => any, y?: any) => any +>call : (thisArg: any, ...argArray: any[]) => any >4 : number diff --git a/tests/baselines/reference/fatarrowfunctionsInFunctions.symbols b/tests/baselines/reference/fatarrowfunctionsInFunctions.symbols new file mode 100644 index 0000000000000..0a86affc21589 --- /dev/null +++ b/tests/baselines/reference/fatarrowfunctionsInFunctions.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/fatarrowfunctionsInFunctions.ts === +declare function setTimeout(expression: any, msec?: number, language?: any): number; +>setTimeout : Symbol(setTimeout, Decl(fatarrowfunctionsInFunctions.ts, 0, 0)) +>expression : Symbol(expression, Decl(fatarrowfunctionsInFunctions.ts, 0, 28)) +>msec : Symbol(msec, Decl(fatarrowfunctionsInFunctions.ts, 0, 44)) +>language : Symbol(language, Decl(fatarrowfunctionsInFunctions.ts, 0, 59)) + +var messenger = { +>messenger : Symbol(messenger, Decl(fatarrowfunctionsInFunctions.ts, 2, 3)) + + message: "Hello World", +>message : Symbol(message, Decl(fatarrowfunctionsInFunctions.ts, 2, 17)) + + start: function() { +>start : Symbol(start, Decl(fatarrowfunctionsInFunctions.ts, 3, 27)) + + var _self = this; +>_self : Symbol(_self, Decl(fatarrowfunctionsInFunctions.ts, 5, 11)) + + setTimeout(function() { +>setTimeout : Symbol(setTimeout, Decl(fatarrowfunctionsInFunctions.ts, 0, 0)) + + _self.message.toString(); +>_self : Symbol(_self, Decl(fatarrowfunctionsInFunctions.ts, 5, 11)) + + }, 3000); + } +}; +messenger.start(); +>messenger.start : Symbol(start, Decl(fatarrowfunctionsInFunctions.ts, 3, 27)) +>messenger : Symbol(messenger, Decl(fatarrowfunctionsInFunctions.ts, 2, 3)) +>start : Symbol(start, Decl(fatarrowfunctionsInFunctions.ts, 3, 27)) + diff --git a/tests/baselines/reference/fatarrowfunctionsInFunctions.types b/tests/baselines/reference/fatarrowfunctionsInFunctions.types index 69245196ebed8..00abaec9f2505 100644 --- a/tests/baselines/reference/fatarrowfunctionsInFunctions.types +++ b/tests/baselines/reference/fatarrowfunctionsInFunctions.types @@ -1,36 +1,36 @@ === tests/cases/compiler/fatarrowfunctionsInFunctions.ts === declare function setTimeout(expression: any, msec?: number, language?: any): number; ->setTimeout : (expression: any, msec?: number, language?: any) => number, Symbol(setTimeout, Decl(fatarrowfunctionsInFunctions.ts, 0, 0)) ->expression : any, Symbol(expression, Decl(fatarrowfunctionsInFunctions.ts, 0, 28)) ->msec : number, Symbol(msec, Decl(fatarrowfunctionsInFunctions.ts, 0, 44)) ->language : any, Symbol(language, Decl(fatarrowfunctionsInFunctions.ts, 0, 59)) +>setTimeout : (expression: any, msec?: number, language?: any) => number +>expression : any +>msec : number +>language : any var messenger = { ->messenger : { message: string; start: () => void; }, Symbol(messenger, Decl(fatarrowfunctionsInFunctions.ts, 2, 3)) +>messenger : { message: string; start: () => void; } >{ message: "Hello World", start: function() { var _self = this; setTimeout(function() { _self.message.toString(); }, 3000); }} : { message: string; start: () => void; } message: "Hello World", ->message : string, Symbol(message, Decl(fatarrowfunctionsInFunctions.ts, 2, 17)) +>message : string >"Hello World" : string start: function() { ->start : () => void, Symbol(start, Decl(fatarrowfunctionsInFunctions.ts, 3, 27)) +>start : () => void >function() { var _self = this; setTimeout(function() { _self.message.toString(); }, 3000); } : () => void var _self = this; ->_self : any, Symbol(_self, Decl(fatarrowfunctionsInFunctions.ts, 5, 11)) +>_self : any >this : any setTimeout(function() { >setTimeout(function() { _self.message.toString(); }, 3000) : number ->setTimeout : (expression: any, msec?: number, language?: any) => number, Symbol(setTimeout, Decl(fatarrowfunctionsInFunctions.ts, 0, 0)) +>setTimeout : (expression: any, msec?: number, language?: any) => number >function() { _self.message.toString(); } : () => void _self.message.toString(); >_self.message.toString() : any >_self.message.toString : any >_self.message : any ->_self : any, Symbol(_self, Decl(fatarrowfunctionsInFunctions.ts, 5, 11)) +>_self : any >message : any >toString : any @@ -40,7 +40,7 @@ var messenger = { }; messenger.start(); >messenger.start() : void ->messenger.start : () => void, Symbol(start, Decl(fatarrowfunctionsInFunctions.ts, 3, 27)) ->messenger : { message: string; start: () => void; }, Symbol(messenger, Decl(fatarrowfunctionsInFunctions.ts, 2, 3)) ->start : () => void, Symbol(start, Decl(fatarrowfunctionsInFunctions.ts, 3, 27)) +>messenger.start : () => void +>messenger : { message: string; start: () => void; } +>start : () => void diff --git a/tests/baselines/reference/fileReferencesWithNoExtensions.symbols b/tests/baselines/reference/fileReferencesWithNoExtensions.symbols new file mode 100644 index 0000000000000..cbf2b27882c6a --- /dev/null +++ b/tests/baselines/reference/fileReferencesWithNoExtensions.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/t.ts === +/// +/// +/// +var a = aa; // Check that a.ts is referenced +>a : Symbol(a, Decl(t.ts, 3, 3)) +>aa : Symbol(aa, Decl(a.ts, 0, 3)) + +var b = bb; // Check that b.d.ts is referenced +>b : Symbol(b, Decl(t.ts, 4, 3)) +>bb : Symbol(bb, Decl(b.d.ts, 0, 11)) + +var c = cc; // Check that c.ts has precedence over c.d.ts +>c : Symbol(c, Decl(t.ts, 5, 3)) +>cc : Symbol(cc, Decl(c.ts, 0, 3)) + +=== tests/cases/compiler/a.ts === +var aa = 1; +>aa : Symbol(aa, Decl(a.ts, 0, 3)) + +=== tests/cases/compiler/b.d.ts === +declare var bb: number; +>bb : Symbol(bb, Decl(b.d.ts, 0, 11)) + +=== tests/cases/compiler/c.ts === +var cc = 1; +>cc : Symbol(cc, Decl(c.ts, 0, 3)) + +=== tests/cases/compiler/c.d.ts === +declare var xx: number; +>xx : Symbol(xx, Decl(c.d.ts, 0, 11)) + diff --git a/tests/baselines/reference/fileReferencesWithNoExtensions.types b/tests/baselines/reference/fileReferencesWithNoExtensions.types index fae231d904a68..7b56dbe0d20db 100644 --- a/tests/baselines/reference/fileReferencesWithNoExtensions.types +++ b/tests/baselines/reference/fileReferencesWithNoExtensions.types @@ -3,32 +3,32 @@ /// /// var a = aa; // Check that a.ts is referenced ->a : number, Symbol(a, Decl(t.ts, 3, 3)) ->aa : number, Symbol(aa, Decl(a.ts, 0, 3)) +>a : number +>aa : number var b = bb; // Check that b.d.ts is referenced ->b : number, Symbol(b, Decl(t.ts, 4, 3)) ->bb : number, Symbol(bb, Decl(b.d.ts, 0, 11)) +>b : number +>bb : number var c = cc; // Check that c.ts has precedence over c.d.ts ->c : number, Symbol(c, Decl(t.ts, 5, 3)) ->cc : number, Symbol(cc, Decl(c.ts, 0, 3)) +>c : number +>cc : number === tests/cases/compiler/a.ts === var aa = 1; ->aa : number, Symbol(aa, Decl(a.ts, 0, 3)) +>aa : number >1 : number === tests/cases/compiler/b.d.ts === declare var bb: number; ->bb : number, Symbol(bb, Decl(b.d.ts, 0, 11)) +>bb : number === tests/cases/compiler/c.ts === var cc = 1; ->cc : number, Symbol(cc, Decl(c.ts, 0, 3)) +>cc : number >1 : number === tests/cases/compiler/c.d.ts === declare var xx: number; ->xx : number, Symbol(xx, Decl(c.d.ts, 0, 11)) +>xx : number diff --git a/tests/baselines/reference/fileWithNextLine1.symbols b/tests/baselines/reference/fileWithNextLine1.symbols new file mode 100644 index 0000000000000..07a8779a48638 --- /dev/null +++ b/tests/baselines/reference/fileWithNextLine1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/fileWithNextLine1.ts === +// Note: there is a nextline (0x85) in the string +// 0. It should be counted as a space and should not cause an error. +var v = '…'; +>v : Symbol(v, Decl(fileWithNextLine1.ts, 2, 3)) + diff --git a/tests/baselines/reference/fileWithNextLine1.types b/tests/baselines/reference/fileWithNextLine1.types index 21a859aabb363..2afb1f2ae3724 100644 --- a/tests/baselines/reference/fileWithNextLine1.types +++ b/tests/baselines/reference/fileWithNextLine1.types @@ -2,6 +2,6 @@ // Note: there is a nextline (0x85) in the string // 0. It should be counted as a space and should not cause an error. var v = '…'; ->v : string, Symbol(v, Decl(fileWithNextLine1.ts, 2, 3)) +>v : string >'…' : string diff --git a/tests/baselines/reference/fileWithNextLine2.symbols b/tests/baselines/reference/fileWithNextLine2.symbols new file mode 100644 index 0000000000000..a9c6d65a9cbd4 --- /dev/null +++ b/tests/baselines/reference/fileWithNextLine2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/fileWithNextLine2.ts === +// Note: there is a nextline (0x85) char between the = and the 0. +// it should be treated like a space +var v =…0; +>v : Symbol(v, Decl(fileWithNextLine2.ts, 2, 3)) + diff --git a/tests/baselines/reference/fileWithNextLine2.types b/tests/baselines/reference/fileWithNextLine2.types index 18486d2748e45..c3e1fd642cffc 100644 --- a/tests/baselines/reference/fileWithNextLine2.types +++ b/tests/baselines/reference/fileWithNextLine2.types @@ -2,6 +2,6 @@ // Note: there is a nextline (0x85) char between the = and the 0. // it should be treated like a space var v =…0; ->v : number, Symbol(v, Decl(fileWithNextLine2.ts, 2, 3)) +>v : number >0 : number diff --git a/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.symbols b/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.symbols new file mode 100644 index 0000000000000..eff8999a0f7d4 --- /dev/null +++ b/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/fillInMissingTypeArgsOnConstructCalls.ts === +class A{ +>A : Symbol(A, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 0)) +>T : Symbol(T, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 8)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + list: T ; +>list : Symbol(list, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 26)) +>T : Symbol(T, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 8)) +} +var a = new A(); +>a : Symbol(a, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 3, 3)) +>A : Symbol(A, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 0)) + diff --git a/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.types b/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.types index 0c37483481e1e..496400c823501 100644 --- a/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.types +++ b/tests/baselines/reference/fillInMissingTypeArgsOnConstructCalls.types @@ -1,15 +1,15 @@ === tests/cases/compiler/fillInMissingTypeArgsOnConstructCalls.ts === class A{ ->A : A, Symbol(A, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 0)) ->T : T, Symbol(T, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 8)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>A : A +>T : T +>Object : Object list: T ; ->list : T, Symbol(list, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 26)) ->T : T, Symbol(T, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 8)) +>list : T +>T : T } var a = new A(); ->a : A<{}>, Symbol(a, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 3, 3)) +>a : A<{}> >new A() : A<{}> ->A : typeof A, Symbol(A, Decl(fillInMissingTypeArgsOnConstructCalls.ts, 0, 0)) +>A : typeof A diff --git a/tests/baselines/reference/for-of1.symbols b/tests/baselines/reference/for-of1.symbols new file mode 100644 index 0000000000000..05ce10d440b4c --- /dev/null +++ b/tests/baselines/reference/for-of1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of1.ts === +var v; +>v : Symbol(v, Decl(for-of1.ts, 0, 3)) + +for (v of []) { } +>v : Symbol(v, Decl(for-of1.ts, 0, 3)) + diff --git a/tests/baselines/reference/for-of1.types b/tests/baselines/reference/for-of1.types index e631cfe7ec023..b21bb6046a701 100644 --- a/tests/baselines/reference/for-of1.types +++ b/tests/baselines/reference/for-of1.types @@ -1,8 +1,8 @@ === tests/cases/conformance/es6/for-ofStatements/for-of1.ts === var v; ->v : any, Symbol(v, Decl(for-of1.ts, 0, 3)) +>v : any for (v of []) { } ->v : any, Symbol(v, Decl(for-of1.ts, 0, 3)) +>v : any >[] : undefined[] diff --git a/tests/baselines/reference/for-of13.symbols b/tests/baselines/reference/for-of13.symbols new file mode 100644 index 0000000000000..c9d3c4d254c33 --- /dev/null +++ b/tests/baselines/reference/for-of13.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of13.ts === +var v: string; +>v : Symbol(v, Decl(for-of13.ts, 0, 3)) + +for (v of [""].values()) { } +>v : Symbol(v, Decl(for-of13.ts, 0, 3)) +>[""].values : Symbol(Array.values, Decl(lib.d.ts, 1423, 37)) +>values : Symbol(Array.values, Decl(lib.d.ts, 1423, 37)) + diff --git a/tests/baselines/reference/for-of13.types b/tests/baselines/reference/for-of13.types index 5bdb06c1fd72e..e176b1bbf0c27 100644 --- a/tests/baselines/reference/for-of13.types +++ b/tests/baselines/reference/for-of13.types @@ -1,12 +1,12 @@ === tests/cases/conformance/es6/for-ofStatements/for-of13.ts === var v: string; ->v : string, Symbol(v, Decl(for-of13.ts, 0, 3)) +>v : string for (v of [""].values()) { } ->v : string, Symbol(v, Decl(for-of13.ts, 0, 3)) +>v : string >[""].values() : IterableIterator ->[""].values : () => IterableIterator, Symbol(Array.values, Decl(lib.d.ts, 1423, 37)) +>[""].values : () => IterableIterator >[""] : string[] >"" : string ->values : () => IterableIterator, Symbol(Array.values, Decl(lib.d.ts, 1423, 37)) +>values : () => IterableIterator diff --git a/tests/baselines/reference/for-of18.symbols b/tests/baselines/reference/for-of18.symbols new file mode 100644 index 0000000000000..180766144c812 --- /dev/null +++ b/tests/baselines/reference/for-of18.symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of18.ts === +var v: string; +>v : Symbol(v, Decl(for-of18.ts, 0, 3)) + +for (v of new StringIterator) { } // Should succeed +>v : Symbol(v, Decl(for-of18.ts, 0, 3)) +>StringIterator : Symbol(StringIterator, Decl(for-of18.ts, 1, 33)) + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(for-of18.ts, 1, 33)) + + next() { +>next : Symbol(next, Decl(for-of18.ts, 3, 22)) + + return { + value: "", +>value : Symbol(value, Decl(for-of18.ts, 5, 16)) + + done: false +>done : Symbol(done, Decl(for-of18.ts, 6, 22)) + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(StringIterator, Decl(for-of18.ts, 1, 33)) + } +} diff --git a/tests/baselines/reference/for-of18.types b/tests/baselines/reference/for-of18.types index c60b2928dc5fb..5b2be7edc3e25 100644 --- a/tests/baselines/reference/for-of18.types +++ b/tests/baselines/reference/for-of18.types @@ -1,37 +1,37 @@ === tests/cases/conformance/es6/for-ofStatements/for-of18.ts === var v: string; ->v : string, Symbol(v, Decl(for-of18.ts, 0, 3)) +>v : string for (v of new StringIterator) { } // Should succeed ->v : string, Symbol(v, Decl(for-of18.ts, 0, 3)) +>v : string >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(for-of18.ts, 1, 33)) +>StringIterator : typeof StringIterator class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(for-of18.ts, 1, 33)) +>StringIterator : StringIterator next() { ->next : () => { value: string; done: boolean; }, Symbol(next, Decl(for-of18.ts, 3, 22)) +>next : () => { value: string; done: boolean; } return { >{ value: "", done: false } : { value: string; done: boolean; } value: "", ->value : string, Symbol(value, Decl(for-of18.ts, 5, 16)) +>value : string >"" : string done: false ->done : boolean, Symbol(done, Decl(for-of18.ts, 6, 22)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : StringIterator, Symbol(StringIterator, Decl(for-of18.ts, 1, 33)) +>this : StringIterator } } diff --git a/tests/baselines/reference/for-of19.symbols b/tests/baselines/reference/for-of19.symbols new file mode 100644 index 0000000000000..5dd58d671a7f0 --- /dev/null +++ b/tests/baselines/reference/for-of19.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of19.ts === +for (var v of new FooIterator) { +>v : Symbol(v, Decl(for-of19.ts, 0, 8)) +>FooIterator : Symbol(FooIterator, Decl(for-of19.ts, 4, 13)) + + v; +>v : Symbol(v, Decl(for-of19.ts, 0, 8)) +} + +class Foo { } +>Foo : Symbol(Foo, Decl(for-of19.ts, 2, 1)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(for-of19.ts, 4, 13)) + + next() { +>next : Symbol(next, Decl(for-of19.ts, 5, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(for-of19.ts, 7, 16)) +>Foo : Symbol(Foo, Decl(for-of19.ts, 2, 1)) + + done: false +>done : Symbol(done, Decl(for-of19.ts, 8, 27)) + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(for-of19.ts, 4, 13)) + } +} diff --git a/tests/baselines/reference/for-of19.types b/tests/baselines/reference/for-of19.types index 87d102e6f119d..02ef786ddd9e8 100644 --- a/tests/baselines/reference/for-of19.types +++ b/tests/baselines/reference/for-of19.types @@ -1,42 +1,42 @@ === tests/cases/conformance/es6/for-ofStatements/for-of19.ts === for (var v of new FooIterator) { ->v : Foo, Symbol(v, Decl(for-of19.ts, 0, 8)) +>v : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(for-of19.ts, 4, 13)) +>FooIterator : typeof FooIterator v; ->v : Foo, Symbol(v, Decl(for-of19.ts, 0, 8)) +>v : Foo } class Foo { } ->Foo : Foo, Symbol(Foo, Decl(for-of19.ts, 2, 1)) +>Foo : Foo class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(for-of19.ts, 4, 13)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(for-of19.ts, 5, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(for-of19.ts, 7, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(for-of19.ts, 2, 1)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(for-of19.ts, 8, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(for-of19.ts, 4, 13)) +>this : FooIterator } } diff --git a/tests/baselines/reference/for-of20.symbols b/tests/baselines/reference/for-of20.symbols new file mode 100644 index 0000000000000..50c191a7ac0f1 --- /dev/null +++ b/tests/baselines/reference/for-of20.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of20.ts === +for (let v of new FooIterator) { +>v : Symbol(v, Decl(for-of20.ts, 0, 8)) +>FooIterator : Symbol(FooIterator, Decl(for-of20.ts, 4, 13)) + + v; +>v : Symbol(v, Decl(for-of20.ts, 0, 8)) +} + +class Foo { } +>Foo : Symbol(Foo, Decl(for-of20.ts, 2, 1)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(for-of20.ts, 4, 13)) + + next() { +>next : Symbol(next, Decl(for-of20.ts, 5, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(for-of20.ts, 7, 16)) +>Foo : Symbol(Foo, Decl(for-of20.ts, 2, 1)) + + done: false +>done : Symbol(done, Decl(for-of20.ts, 8, 27)) + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(for-of20.ts, 4, 13)) + } +} diff --git a/tests/baselines/reference/for-of20.types b/tests/baselines/reference/for-of20.types index 7f05617602517..3da6fd484b15b 100644 --- a/tests/baselines/reference/for-of20.types +++ b/tests/baselines/reference/for-of20.types @@ -1,42 +1,42 @@ === tests/cases/conformance/es6/for-ofStatements/for-of20.ts === for (let v of new FooIterator) { ->v : Foo, Symbol(v, Decl(for-of20.ts, 0, 8)) +>v : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(for-of20.ts, 4, 13)) +>FooIterator : typeof FooIterator v; ->v : Foo, Symbol(v, Decl(for-of20.ts, 0, 8)) +>v : Foo } class Foo { } ->Foo : Foo, Symbol(Foo, Decl(for-of20.ts, 2, 1)) +>Foo : Foo class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(for-of20.ts, 4, 13)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(for-of20.ts, 5, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(for-of20.ts, 7, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(for-of20.ts, 2, 1)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(for-of20.ts, 8, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(for-of20.ts, 4, 13)) +>this : FooIterator } } diff --git a/tests/baselines/reference/for-of21.symbols b/tests/baselines/reference/for-of21.symbols new file mode 100644 index 0000000000000..0fbef87af1558 --- /dev/null +++ b/tests/baselines/reference/for-of21.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of21.ts === +for (const v of new FooIterator) { +>v : Symbol(v, Decl(for-of21.ts, 0, 10)) +>FooIterator : Symbol(FooIterator, Decl(for-of21.ts, 4, 13)) + + v; +>v : Symbol(v, Decl(for-of21.ts, 0, 10)) +} + +class Foo { } +>Foo : Symbol(Foo, Decl(for-of21.ts, 2, 1)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(for-of21.ts, 4, 13)) + + next() { +>next : Symbol(next, Decl(for-of21.ts, 5, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(for-of21.ts, 7, 16)) +>Foo : Symbol(Foo, Decl(for-of21.ts, 2, 1)) + + done: false +>done : Symbol(done, Decl(for-of21.ts, 8, 27)) + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(for-of21.ts, 4, 13)) + } +} diff --git a/tests/baselines/reference/for-of21.types b/tests/baselines/reference/for-of21.types index 5aa14935cd54e..a0cc50e99d7bf 100644 --- a/tests/baselines/reference/for-of21.types +++ b/tests/baselines/reference/for-of21.types @@ -1,42 +1,42 @@ === tests/cases/conformance/es6/for-ofStatements/for-of21.ts === for (const v of new FooIterator) { ->v : Foo, Symbol(v, Decl(for-of21.ts, 0, 10)) +>v : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(for-of21.ts, 4, 13)) +>FooIterator : typeof FooIterator v; ->v : Foo, Symbol(v, Decl(for-of21.ts, 0, 10)) +>v : Foo } class Foo { } ->Foo : Foo, Symbol(Foo, Decl(for-of21.ts, 2, 1)) +>Foo : Foo class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(for-of21.ts, 4, 13)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(for-of21.ts, 5, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(for-of21.ts, 7, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(for-of21.ts, 2, 1)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(for-of21.ts, 8, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(for-of21.ts, 4, 13)) +>this : FooIterator } } diff --git a/tests/baselines/reference/for-of22.symbols b/tests/baselines/reference/for-of22.symbols new file mode 100644 index 0000000000000..9714f615a79d8 --- /dev/null +++ b/tests/baselines/reference/for-of22.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of22.ts === +v; +>v : Symbol(v, Decl(for-of22.ts, 1, 8)) + +for (var v of new FooIterator) { +>v : Symbol(v, Decl(for-of22.ts, 1, 8)) +>FooIterator : Symbol(FooIterator, Decl(for-of22.ts, 5, 13)) + +} + +class Foo { } +>Foo : Symbol(Foo, Decl(for-of22.ts, 3, 1)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(for-of22.ts, 5, 13)) + + next() { +>next : Symbol(next, Decl(for-of22.ts, 6, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(for-of22.ts, 8, 16)) +>Foo : Symbol(Foo, Decl(for-of22.ts, 3, 1)) + + done: false +>done : Symbol(done, Decl(for-of22.ts, 9, 27)) + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(for-of22.ts, 5, 13)) + } +} diff --git a/tests/baselines/reference/for-of22.types b/tests/baselines/reference/for-of22.types index ed1e21b10042e..09e857985545d 100644 --- a/tests/baselines/reference/for-of22.types +++ b/tests/baselines/reference/for-of22.types @@ -1,43 +1,43 @@ === tests/cases/conformance/es6/for-ofStatements/for-of22.ts === v; ->v : Foo, Symbol(v, Decl(for-of22.ts, 1, 8)) +>v : Foo for (var v of new FooIterator) { ->v : Foo, Symbol(v, Decl(for-of22.ts, 1, 8)) +>v : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(for-of22.ts, 5, 13)) +>FooIterator : typeof FooIterator } class Foo { } ->Foo : Foo, Symbol(Foo, Decl(for-of22.ts, 3, 1)) +>Foo : Foo class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(for-of22.ts, 5, 13)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(for-of22.ts, 6, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(for-of22.ts, 8, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(for-of22.ts, 3, 1)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(for-of22.ts, 9, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(for-of22.ts, 5, 13)) +>this : FooIterator } } diff --git a/tests/baselines/reference/for-of23.symbols b/tests/baselines/reference/for-of23.symbols new file mode 100644 index 0000000000000..328cb41ad29dc --- /dev/null +++ b/tests/baselines/reference/for-of23.symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of23.ts === +for (const v of new FooIterator) { +>v : Symbol(v, Decl(for-of23.ts, 0, 10)) +>FooIterator : Symbol(FooIterator, Decl(for-of23.ts, 4, 13)) + + const v = 0; // new scope +>v : Symbol(v, Decl(for-of23.ts, 1, 9)) +} + +class Foo { } +>Foo : Symbol(Foo, Decl(for-of23.ts, 2, 1)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(for-of23.ts, 4, 13)) + + next() { +>next : Symbol(next, Decl(for-of23.ts, 5, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(for-of23.ts, 7, 16)) +>Foo : Symbol(Foo, Decl(for-of23.ts, 2, 1)) + + done: false +>done : Symbol(done, Decl(for-of23.ts, 8, 27)) + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(for-of23.ts, 4, 13)) + } +} diff --git a/tests/baselines/reference/for-of23.types b/tests/baselines/reference/for-of23.types index 45e4f2e33169d..37515c0b70a0a 100644 --- a/tests/baselines/reference/for-of23.types +++ b/tests/baselines/reference/for-of23.types @@ -1,43 +1,43 @@ === tests/cases/conformance/es6/for-ofStatements/for-of23.ts === for (const v of new FooIterator) { ->v : Foo, Symbol(v, Decl(for-of23.ts, 0, 10)) +>v : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(for-of23.ts, 4, 13)) +>FooIterator : typeof FooIterator const v = 0; // new scope ->v : number, Symbol(v, Decl(for-of23.ts, 1, 9)) +>v : number >0 : number } class Foo { } ->Foo : Foo, Symbol(Foo, Decl(for-of23.ts, 2, 1)) +>Foo : Foo class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(for-of23.ts, 4, 13)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(for-of23.ts, 5, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(for-of23.ts, 7, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(for-of23.ts, 2, 1)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(for-of23.ts, 8, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(for-of23.ts, 4, 13)) +>this : FooIterator } } diff --git a/tests/baselines/reference/for-of24.symbols b/tests/baselines/reference/for-of24.symbols new file mode 100644 index 0000000000000..cd2546f7278c6 --- /dev/null +++ b/tests/baselines/reference/for-of24.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of24.ts === +var x: any; +>x : Symbol(x, Decl(for-of24.ts, 0, 3)) + +for (var v of x) { } +>v : Symbol(v, Decl(for-of24.ts, 1, 8)) +>x : Symbol(x, Decl(for-of24.ts, 0, 3)) + diff --git a/tests/baselines/reference/for-of24.types b/tests/baselines/reference/for-of24.types index e6a26f693da74..dc27cc32e2164 100644 --- a/tests/baselines/reference/for-of24.types +++ b/tests/baselines/reference/for-of24.types @@ -1,8 +1,8 @@ === tests/cases/conformance/es6/for-ofStatements/for-of24.ts === var x: any; ->x : any, Symbol(x, Decl(for-of24.ts, 0, 3)) +>x : any for (var v of x) { } ->v : any, Symbol(v, Decl(for-of24.ts, 1, 8)) ->x : any, Symbol(x, Decl(for-of24.ts, 0, 3)) +>v : any +>x : any diff --git a/tests/baselines/reference/for-of25.symbols b/tests/baselines/reference/for-of25.symbols new file mode 100644 index 0000000000000..1a0b660fc1e80 --- /dev/null +++ b/tests/baselines/reference/for-of25.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of25.ts === +var x: any; +>x : Symbol(x, Decl(for-of25.ts, 0, 3)) + +for (var v of new StringIterator) { } +>v : Symbol(v, Decl(for-of25.ts, 1, 8)) +>StringIterator : Symbol(StringIterator, Decl(for-of25.ts, 1, 37)) + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(for-of25.ts, 1, 37)) + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return x; +>x : Symbol(x, Decl(for-of25.ts, 0, 3)) + } +} diff --git a/tests/baselines/reference/for-of25.types b/tests/baselines/reference/for-of25.types index ce8a4e7918762..c4d6b32aebc4e 100644 --- a/tests/baselines/reference/for-of25.types +++ b/tests/baselines/reference/for-of25.types @@ -1,21 +1,21 @@ === tests/cases/conformance/es6/for-ofStatements/for-of25.ts === var x: any; ->x : any, Symbol(x, Decl(for-of25.ts, 0, 3)) +>x : any for (var v of new StringIterator) { } ->v : any, Symbol(v, Decl(for-of25.ts, 1, 8)) +>v : any >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(for-of25.ts, 1, 37)) +>StringIterator : typeof StringIterator class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(for-of25.ts, 1, 37)) +>StringIterator : StringIterator [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return x; ->x : any, Symbol(x, Decl(for-of25.ts, 0, 3)) +>x : any } } diff --git a/tests/baselines/reference/for-of26.symbols b/tests/baselines/reference/for-of26.symbols new file mode 100644 index 0000000000000..a2c21c951465e --- /dev/null +++ b/tests/baselines/reference/for-of26.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of26.ts === +var x: any; +>x : Symbol(x, Decl(for-of26.ts, 0, 3)) + +for (var v of new StringIterator) { } +>v : Symbol(v, Decl(for-of26.ts, 1, 8)) +>StringIterator : Symbol(StringIterator, Decl(for-of26.ts, 1, 37)) + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(for-of26.ts, 1, 37)) + + next() { +>next : Symbol(next, Decl(for-of26.ts, 3, 22)) + + return x; +>x : Symbol(x, Decl(for-of26.ts, 0, 3)) + } + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(StringIterator, Decl(for-of26.ts, 1, 37)) + } +} diff --git a/tests/baselines/reference/for-of26.types b/tests/baselines/reference/for-of26.types index 0d0311089088e..d2608fbf15434 100644 --- a/tests/baselines/reference/for-of26.types +++ b/tests/baselines/reference/for-of26.types @@ -1,27 +1,27 @@ === tests/cases/conformance/es6/for-ofStatements/for-of26.ts === var x: any; ->x : any, Symbol(x, Decl(for-of26.ts, 0, 3)) +>x : any for (var v of new StringIterator) { } ->v : any, Symbol(v, Decl(for-of26.ts, 1, 8)) +>v : any >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(for-of26.ts, 1, 37)) +>StringIterator : typeof StringIterator class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(for-of26.ts, 1, 37)) +>StringIterator : StringIterator next() { ->next : () => any, Symbol(next, Decl(for-of26.ts, 3, 22)) +>next : () => any return x; ->x : any, Symbol(x, Decl(for-of26.ts, 0, 3)) +>x : any } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : StringIterator, Symbol(StringIterator, Decl(for-of26.ts, 1, 37)) +>this : StringIterator } } diff --git a/tests/baselines/reference/for-of27.symbols b/tests/baselines/reference/for-of27.symbols new file mode 100644 index 0000000000000..e03b580551d05 --- /dev/null +++ b/tests/baselines/reference/for-of27.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of27.ts === +for (var v of new StringIterator) { } +>v : Symbol(v, Decl(for-of27.ts, 0, 8)) +>StringIterator : Symbol(StringIterator, Decl(for-of27.ts, 0, 37)) + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(for-of27.ts, 0, 37)) + + [Symbol.iterator]: any; +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +} diff --git a/tests/baselines/reference/for-of27.types b/tests/baselines/reference/for-of27.types index 876aedc2d46df..8e9130ce272b0 100644 --- a/tests/baselines/reference/for-of27.types +++ b/tests/baselines/reference/for-of27.types @@ -1,14 +1,14 @@ === tests/cases/conformance/es6/for-ofStatements/for-of27.ts === for (var v of new StringIterator) { } ->v : any, Symbol(v, Decl(for-of27.ts, 0, 8)) +>v : any >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(for-of27.ts, 0, 37)) +>StringIterator : typeof StringIterator class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(for-of27.ts, 0, 37)) +>StringIterator : StringIterator [Symbol.iterator]: any; ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol } diff --git a/tests/baselines/reference/for-of28.symbols b/tests/baselines/reference/for-of28.symbols new file mode 100644 index 0000000000000..9d6b912bd94e7 --- /dev/null +++ b/tests/baselines/reference/for-of28.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of28.ts === +for (var v of new StringIterator) { } +>v : Symbol(v, Decl(for-of28.ts, 0, 8)) +>StringIterator : Symbol(StringIterator, Decl(for-of28.ts, 0, 37)) + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(for-of28.ts, 0, 37)) + + next: any; +>next : Symbol(next, Decl(for-of28.ts, 2, 22)) + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(StringIterator, Decl(for-of28.ts, 0, 37)) + } +} diff --git a/tests/baselines/reference/for-of28.types b/tests/baselines/reference/for-of28.types index ae531fd4543ea..91b77a55a4dfb 100644 --- a/tests/baselines/reference/for-of28.types +++ b/tests/baselines/reference/for-of28.types @@ -1,21 +1,21 @@ === tests/cases/conformance/es6/for-ofStatements/for-of28.ts === for (var v of new StringIterator) { } ->v : any, Symbol(v, Decl(for-of28.ts, 0, 8)) +>v : any >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(for-of28.ts, 0, 37)) +>StringIterator : typeof StringIterator class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(for-of28.ts, 0, 37)) +>StringIterator : StringIterator next: any; ->next : any, Symbol(next, Decl(for-of28.ts, 2, 22)) +>next : any [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : StringIterator, Symbol(StringIterator, Decl(for-of28.ts, 0, 37)) +>this : StringIterator } } diff --git a/tests/baselines/reference/for-of36.symbols b/tests/baselines/reference/for-of36.symbols new file mode 100644 index 0000000000000..f192454034082 --- /dev/null +++ b/tests/baselines/reference/for-of36.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of36.ts === +var tuple: [string, boolean] = ["", true]; +>tuple : Symbol(tuple, Decl(for-of36.ts, 0, 3)) + +for (var v of tuple) { +>v : Symbol(v, Decl(for-of36.ts, 1, 8)) +>tuple : Symbol(tuple, Decl(for-of36.ts, 0, 3)) + + v; +>v : Symbol(v, Decl(for-of36.ts, 1, 8)) +} diff --git a/tests/baselines/reference/for-of36.types b/tests/baselines/reference/for-of36.types index 02325e19a4449..e23ea79d0a90e 100644 --- a/tests/baselines/reference/for-of36.types +++ b/tests/baselines/reference/for-of36.types @@ -1,14 +1,14 @@ === tests/cases/conformance/es6/for-ofStatements/for-of36.ts === var tuple: [string, boolean] = ["", true]; ->tuple : [string, boolean], Symbol(tuple, Decl(for-of36.ts, 0, 3)) +>tuple : [string, boolean] >["", true] : [string, boolean] >"" : string >true : boolean for (var v of tuple) { ->v : string | boolean, Symbol(v, Decl(for-of36.ts, 1, 8)) ->tuple : [string, boolean], Symbol(tuple, Decl(for-of36.ts, 0, 3)) +>v : string | boolean +>tuple : [string, boolean] v; ->v : string | boolean, Symbol(v, Decl(for-of36.ts, 1, 8)) +>v : string | boolean } diff --git a/tests/baselines/reference/for-of37.symbols b/tests/baselines/reference/for-of37.symbols new file mode 100644 index 0000000000000..86841971be792 --- /dev/null +++ b/tests/baselines/reference/for-of37.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of37.ts === +var map = new Map([["", true]]); +>map : Symbol(map, Decl(for-of37.ts, 0, 3)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + +for (var v of map) { +>v : Symbol(v, Decl(for-of37.ts, 1, 8)) +>map : Symbol(map, Decl(for-of37.ts, 0, 3)) + + v; +>v : Symbol(v, Decl(for-of37.ts, 1, 8)) +} diff --git a/tests/baselines/reference/for-of37.types b/tests/baselines/reference/for-of37.types index 21277a8caf27c..89272742f6264 100644 --- a/tests/baselines/reference/for-of37.types +++ b/tests/baselines/reference/for-of37.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/for-ofStatements/for-of37.ts === var map = new Map([["", true]]); ->map : Map, Symbol(map, Decl(for-of37.ts, 0, 3)) +>map : Map >new Map([["", true]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", true]] : [string, boolean][] >["", true] : [string, boolean] >"" : string >true : boolean for (var v of map) { ->v : [string, boolean], Symbol(v, Decl(for-of37.ts, 1, 8)) ->map : Map, Symbol(map, Decl(for-of37.ts, 0, 3)) +>v : [string, boolean] +>map : Map v; ->v : [string, boolean], Symbol(v, Decl(for-of37.ts, 1, 8)) +>v : [string, boolean] } diff --git a/tests/baselines/reference/for-of38.symbols b/tests/baselines/reference/for-of38.symbols new file mode 100644 index 0000000000000..5ee81f2eb154d --- /dev/null +++ b/tests/baselines/reference/for-of38.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of38.ts === +var map = new Map([["", true]]); +>map : Symbol(map, Decl(for-of38.ts, 0, 3)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + +for (var [k, v] of map) { +>k : Symbol(k, Decl(for-of38.ts, 1, 10)) +>v : Symbol(v, Decl(for-of38.ts, 1, 12)) +>map : Symbol(map, Decl(for-of38.ts, 0, 3)) + + k; +>k : Symbol(k, Decl(for-of38.ts, 1, 10)) + + v; +>v : Symbol(v, Decl(for-of38.ts, 1, 12)) +} diff --git a/tests/baselines/reference/for-of38.types b/tests/baselines/reference/for-of38.types index 48f58feed8322..f8b7555781f65 100644 --- a/tests/baselines/reference/for-of38.types +++ b/tests/baselines/reference/for-of38.types @@ -1,21 +1,21 @@ === tests/cases/conformance/es6/for-ofStatements/for-of38.ts === var map = new Map([["", true]]); ->map : Map, Symbol(map, Decl(for-of38.ts, 0, 3)) +>map : Map >new Map([["", true]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", true]] : [string, boolean][] >["", true] : [string, boolean] >"" : string >true : boolean for (var [k, v] of map) { ->k : string, Symbol(k, Decl(for-of38.ts, 1, 10)) ->v : boolean, Symbol(v, Decl(for-of38.ts, 1, 12)) ->map : Map, Symbol(map, Decl(for-of38.ts, 0, 3)) +>k : string +>v : boolean +>map : Map k; ->k : string, Symbol(k, Decl(for-of38.ts, 1, 10)) +>k : string v; ->v : boolean, Symbol(v, Decl(for-of38.ts, 1, 12)) +>v : boolean } diff --git a/tests/baselines/reference/for-of4.symbols b/tests/baselines/reference/for-of4.symbols new file mode 100644 index 0000000000000..af291f47c9821 --- /dev/null +++ b/tests/baselines/reference/for-of4.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of4.ts === +for (var v of [0]) { +>v : Symbol(v, Decl(for-of4.ts, 0, 8)) + + v; +>v : Symbol(v, Decl(for-of4.ts, 0, 8)) +} diff --git a/tests/baselines/reference/for-of4.types b/tests/baselines/reference/for-of4.types index 7496adf1193c9..5b8990797ba5c 100644 --- a/tests/baselines/reference/for-of4.types +++ b/tests/baselines/reference/for-of4.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/for-ofStatements/for-of4.ts === for (var v of [0]) { ->v : number, Symbol(v, Decl(for-of4.ts, 0, 8)) +>v : number >[0] : number[] >0 : number v; ->v : number, Symbol(v, Decl(for-of4.ts, 0, 8)) +>v : number } diff --git a/tests/baselines/reference/for-of40.symbols b/tests/baselines/reference/for-of40.symbols new file mode 100644 index 0000000000000..a9c0b3fbc30fe --- /dev/null +++ b/tests/baselines/reference/for-of40.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of40.ts === +var map = new Map([["", true]]); +>map : Symbol(map, Decl(for-of40.ts, 0, 3)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + +for (var [k = "", v = false] of map) { +>k : Symbol(k, Decl(for-of40.ts, 1, 10)) +>v : Symbol(v, Decl(for-of40.ts, 1, 17)) +>map : Symbol(map, Decl(for-of40.ts, 0, 3)) + + k; +>k : Symbol(k, Decl(for-of40.ts, 1, 10)) + + v; +>v : Symbol(v, Decl(for-of40.ts, 1, 17)) +} diff --git a/tests/baselines/reference/for-of40.types b/tests/baselines/reference/for-of40.types index 0302c3dad982d..6693514ec53b6 100644 --- a/tests/baselines/reference/for-of40.types +++ b/tests/baselines/reference/for-of40.types @@ -1,23 +1,23 @@ === tests/cases/conformance/es6/for-ofStatements/for-of40.ts === var map = new Map([["", true]]); ->map : Map, Symbol(map, Decl(for-of40.ts, 0, 3)) +>map : Map >new Map([["", true]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", true]] : [string, boolean][] >["", true] : [string, boolean] >"" : string >true : boolean for (var [k = "", v = false] of map) { ->k : string, Symbol(k, Decl(for-of40.ts, 1, 10)) +>k : string >"" : string ->v : boolean, Symbol(v, Decl(for-of40.ts, 1, 17)) +>v : boolean >false : boolean ->map : Map, Symbol(map, Decl(for-of40.ts, 0, 3)) +>map : Map k; ->k : string, Symbol(k, Decl(for-of40.ts, 1, 10)) +>k : string v; ->v : boolean, Symbol(v, Decl(for-of40.ts, 1, 17)) +>v : boolean } diff --git a/tests/baselines/reference/for-of41.symbols b/tests/baselines/reference/for-of41.symbols new file mode 100644 index 0000000000000..cf8db913919a2 --- /dev/null +++ b/tests/baselines/reference/for-of41.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of41.ts === +var array = [{x: [0], y: {p: ""}}] +>array : Symbol(array, Decl(for-of41.ts, 0, 3)) +>x : Symbol(x, Decl(for-of41.ts, 0, 14)) +>y : Symbol(y, Decl(for-of41.ts, 0, 21)) +>p : Symbol(p, Decl(for-of41.ts, 0, 26)) + +for (var {x: [a], y: {p}} of array) { +>a : Symbol(a, Decl(for-of41.ts, 1, 14)) +>p : Symbol(p, Decl(for-of41.ts, 1, 22)) +>array : Symbol(array, Decl(for-of41.ts, 0, 3)) + + a; +>a : Symbol(a, Decl(for-of41.ts, 1, 14)) + + p; +>p : Symbol(p, Decl(for-of41.ts, 1, 22)) +} diff --git a/tests/baselines/reference/for-of41.types b/tests/baselines/reference/for-of41.types index e1b907511326d..31e3e253002e7 100644 --- a/tests/baselines/reference/for-of41.types +++ b/tests/baselines/reference/for-of41.types @@ -1,26 +1,26 @@ === tests/cases/conformance/es6/for-ofStatements/for-of41.ts === var array = [{x: [0], y: {p: ""}}] ->array : { x: number[]; y: { p: string; }; }[], Symbol(array, Decl(for-of41.ts, 0, 3)) +>array : { x: number[]; y: { p: string; }; }[] >[{x: [0], y: {p: ""}}] : { x: number[]; y: { p: string; }; }[] >{x: [0], y: {p: ""}} : { x: number[]; y: { p: string; }; } ->x : number[], Symbol(x, Decl(for-of41.ts, 0, 14)) +>x : number[] >[0] : number[] >0 : number ->y : { p: string; }, Symbol(y, Decl(for-of41.ts, 0, 21)) +>y : { p: string; } >{p: ""} : { p: string; } ->p : string, Symbol(p, Decl(for-of41.ts, 0, 26)) +>p : string >"" : string for (var {x: [a], y: {p}} of array) { >x : any ->a : number, Symbol(a, Decl(for-of41.ts, 1, 14)) +>a : number >y : any ->p : string, Symbol(p, Decl(for-of41.ts, 1, 22)) ->array : { x: number[]; y: { p: string; }; }[], Symbol(array, Decl(for-of41.ts, 0, 3)) +>p : string +>array : { x: number[]; y: { p: string; }; }[] a; ->a : number, Symbol(a, Decl(for-of41.ts, 1, 14)) +>a : number p; ->p : string, Symbol(p, Decl(for-of41.ts, 1, 22)) +>p : string } diff --git a/tests/baselines/reference/for-of42.symbols b/tests/baselines/reference/for-of42.symbols new file mode 100644 index 0000000000000..b310fb1044f99 --- /dev/null +++ b/tests/baselines/reference/for-of42.symbols @@ -0,0 +1,17 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of42.ts === +var array = [{ x: "", y: 0 }] +>array : Symbol(array, Decl(for-of42.ts, 0, 3)) +>x : Symbol(x, Decl(for-of42.ts, 0, 14)) +>y : Symbol(y, Decl(for-of42.ts, 0, 21)) + +for (var {x: a, y: b} of array) { +>a : Symbol(a, Decl(for-of42.ts, 1, 10)) +>b : Symbol(b, Decl(for-of42.ts, 1, 15)) +>array : Symbol(array, Decl(for-of42.ts, 0, 3)) + + a; +>a : Symbol(a, Decl(for-of42.ts, 1, 10)) + + b; +>b : Symbol(b, Decl(for-of42.ts, 1, 15)) +} diff --git a/tests/baselines/reference/for-of42.types b/tests/baselines/reference/for-of42.types index 0c6ec077741f8..64327bcc27fb6 100644 --- a/tests/baselines/reference/for-of42.types +++ b/tests/baselines/reference/for-of42.types @@ -1,23 +1,23 @@ === tests/cases/conformance/es6/for-ofStatements/for-of42.ts === var array = [{ x: "", y: 0 }] ->array : { x: string; y: number; }[], Symbol(array, Decl(for-of42.ts, 0, 3)) +>array : { x: string; y: number; }[] >[{ x: "", y: 0 }] : { x: string; y: number; }[] >{ x: "", y: 0 } : { x: string; y: number; } ->x : string, Symbol(x, Decl(for-of42.ts, 0, 14)) +>x : string >"" : string ->y : number, Symbol(y, Decl(for-of42.ts, 0, 21)) +>y : number >0 : number for (var {x: a, y: b} of array) { >x : any ->a : string, Symbol(a, Decl(for-of42.ts, 1, 10)) +>a : string >y : any ->b : number, Symbol(b, Decl(for-of42.ts, 1, 15)) ->array : { x: string; y: number; }[], Symbol(array, Decl(for-of42.ts, 0, 3)) +>b : number +>array : { x: string; y: number; }[] a; ->a : string, Symbol(a, Decl(for-of42.ts, 1, 10)) +>a : string b; ->b : number, Symbol(b, Decl(for-of42.ts, 1, 15)) +>b : number } diff --git a/tests/baselines/reference/for-of44.symbols b/tests/baselines/reference/for-of44.symbols new file mode 100644 index 0000000000000..e01aad51d54a9 --- /dev/null +++ b/tests/baselines/reference/for-of44.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of44.ts === +var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symbol()]] +>array : Symbol(array, Decl(for-of44.ts, 0, 3)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + +for (var [num, strBoolSym] of array) { +>num : Symbol(num, Decl(for-of44.ts, 1, 10)) +>strBoolSym : Symbol(strBoolSym, Decl(for-of44.ts, 1, 14)) +>array : Symbol(array, Decl(for-of44.ts, 0, 3)) + + num; +>num : Symbol(num, Decl(for-of44.ts, 1, 10)) + + strBoolSym; +>strBoolSym : Symbol(strBoolSym, Decl(for-of44.ts, 1, 14)) +} diff --git a/tests/baselines/reference/for-of44.types b/tests/baselines/reference/for-of44.types index 7279b772cf31c..e6f4e0450b3c7 100644 --- a/tests/baselines/reference/for-of44.types +++ b/tests/baselines/reference/for-of44.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/for-ofStatements/for-of44.ts === var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symbol()]] ->array : [number, string | boolean | symbol][], Symbol(array, Decl(for-of44.ts, 0, 3)) +>array : [number, string | boolean | symbol][] >[[0, ""], [0, true], [1, Symbol()]] : ([number, string] | [number, boolean] | [number, symbol])[] >[0, ""] : [number, string] >0 : number @@ -11,16 +11,16 @@ var array: [number, string | boolean | symbol][] = [[0, ""], [0, true], [1, Symb >[1, Symbol()] : [number, symbol] >1 : number >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor for (var [num, strBoolSym] of array) { ->num : number, Symbol(num, Decl(for-of44.ts, 1, 10)) ->strBoolSym : string | boolean | symbol, Symbol(strBoolSym, Decl(for-of44.ts, 1, 14)) ->array : [number, string | boolean | symbol][], Symbol(array, Decl(for-of44.ts, 0, 3)) +>num : number +>strBoolSym : string | boolean | symbol +>array : [number, string | boolean | symbol][] num; ->num : number, Symbol(num, Decl(for-of44.ts, 1, 10)) +>num : number strBoolSym; ->strBoolSym : string | boolean | symbol, Symbol(strBoolSym, Decl(for-of44.ts, 1, 14)) +>strBoolSym : string | boolean | symbol } diff --git a/tests/baselines/reference/for-of45.symbols b/tests/baselines/reference/for-of45.symbols new file mode 100644 index 0000000000000..e86ee11036281 --- /dev/null +++ b/tests/baselines/reference/for-of45.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of45.ts === +var k: string, v: boolean; +>k : Symbol(k, Decl(for-of45.ts, 0, 3)) +>v : Symbol(v, Decl(for-of45.ts, 0, 14)) + +var map = new Map([["", true]]); +>map : Symbol(map, Decl(for-of45.ts, 1, 3)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + +for ([k = "", v = false] of map) { +>k : Symbol(k, Decl(for-of45.ts, 0, 3)) +>v : Symbol(v, Decl(for-of45.ts, 0, 14)) +>map : Symbol(map, Decl(for-of45.ts, 1, 3)) + + k; +>k : Symbol(k, Decl(for-of45.ts, 0, 3)) + + v; +>v : Symbol(v, Decl(for-of45.ts, 0, 14)) +} diff --git a/tests/baselines/reference/for-of45.types b/tests/baselines/reference/for-of45.types index 820c387a5ada6..b71e062eccfc2 100644 --- a/tests/baselines/reference/for-of45.types +++ b/tests/baselines/reference/for-of45.types @@ -1,12 +1,12 @@ === tests/cases/conformance/es6/for-ofStatements/for-of45.ts === var k: string, v: boolean; ->k : string, Symbol(k, Decl(for-of45.ts, 0, 3)) ->v : boolean, Symbol(v, Decl(for-of45.ts, 0, 14)) +>k : string +>v : boolean var map = new Map([["", true]]); ->map : Map, Symbol(map, Decl(for-of45.ts, 1, 3)) +>map : Map >new Map([["", true]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", true]] : [string, boolean][] >["", true] : [string, boolean] >"" : string @@ -15,16 +15,16 @@ var map = new Map([["", true]]); for ([k = "", v = false] of map) { >[k = "", v = false] : (string | boolean)[] >k = "" : string ->k : string, Symbol(k, Decl(for-of45.ts, 0, 3)) +>k : string >"" : string >v = false : boolean ->v : boolean, Symbol(v, Decl(for-of45.ts, 0, 14)) +>v : boolean >false : boolean ->map : Map, Symbol(map, Decl(for-of45.ts, 1, 3)) +>map : Map k; ->k : string, Symbol(k, Decl(for-of45.ts, 0, 3)) +>k : string v; ->v : boolean, Symbol(v, Decl(for-of45.ts, 0, 14)) +>v : boolean } diff --git a/tests/baselines/reference/for-of5.symbols b/tests/baselines/reference/for-of5.symbols new file mode 100644 index 0000000000000..776759b3a3777 --- /dev/null +++ b/tests/baselines/reference/for-of5.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of5.ts === +for (let v of [0]) { +>v : Symbol(v, Decl(for-of5.ts, 0, 8)) + + v; +>v : Symbol(v, Decl(for-of5.ts, 0, 8)) +} diff --git a/tests/baselines/reference/for-of5.types b/tests/baselines/reference/for-of5.types index 35088a965fdd3..921c327c18558 100644 --- a/tests/baselines/reference/for-of5.types +++ b/tests/baselines/reference/for-of5.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/for-ofStatements/for-of5.ts === for (let v of [0]) { ->v : number, Symbol(v, Decl(for-of5.ts, 0, 8)) +>v : number >[0] : number[] >0 : number v; ->v : number, Symbol(v, Decl(for-of5.ts, 0, 8)) +>v : number } diff --git a/tests/baselines/reference/for-of50.symbols b/tests/baselines/reference/for-of50.symbols new file mode 100644 index 0000000000000..9076f63300eae --- /dev/null +++ b/tests/baselines/reference/for-of50.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of50.ts === +var map = new Map([["", true]]); +>map : Symbol(map, Decl(for-of50.ts, 0, 3)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + +for (const [k, v] of map) { +>k : Symbol(k, Decl(for-of50.ts, 1, 12)) +>v : Symbol(v, Decl(for-of50.ts, 1, 14)) +>map : Symbol(map, Decl(for-of50.ts, 0, 3)) + + k; +>k : Symbol(k, Decl(for-of50.ts, 1, 12)) + + v; +>v : Symbol(v, Decl(for-of50.ts, 1, 14)) +} diff --git a/tests/baselines/reference/for-of50.types b/tests/baselines/reference/for-of50.types index e5b81e2e57fa8..5d5dac7abed7a 100644 --- a/tests/baselines/reference/for-of50.types +++ b/tests/baselines/reference/for-of50.types @@ -1,21 +1,21 @@ === tests/cases/conformance/es6/for-ofStatements/for-of50.ts === var map = new Map([["", true]]); ->map : Map, Symbol(map, Decl(for-of50.ts, 0, 3)) +>map : Map >new Map([["", true]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", true]] : [string, boolean][] >["", true] : [string, boolean] >"" : string >true : boolean for (const [k, v] of map) { ->k : string, Symbol(k, Decl(for-of50.ts, 1, 12)) ->v : boolean, Symbol(v, Decl(for-of50.ts, 1, 14)) ->map : Map, Symbol(map, Decl(for-of50.ts, 0, 3)) +>k : string +>v : boolean +>map : Map k; ->k : string, Symbol(k, Decl(for-of50.ts, 1, 12)) +>k : string v; ->v : boolean, Symbol(v, Decl(for-of50.ts, 1, 14)) +>v : boolean } diff --git a/tests/baselines/reference/for-of53.symbols b/tests/baselines/reference/for-of53.symbols new file mode 100644 index 0000000000000..949b2624985e1 --- /dev/null +++ b/tests/baselines/reference/for-of53.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of53.ts === +for (let v of []) { +>v : Symbol(v, Decl(for-of53.ts, 0, 8)) + + var v; +>v : Symbol(v, Decl(for-of53.ts, 1, 7)) +} diff --git a/tests/baselines/reference/for-of53.types b/tests/baselines/reference/for-of53.types index e1f21b03f4128..475d63e9b5af5 100644 --- a/tests/baselines/reference/for-of53.types +++ b/tests/baselines/reference/for-of53.types @@ -1,8 +1,8 @@ === tests/cases/conformance/es6/for-ofStatements/for-of53.ts === for (let v of []) { ->v : any, Symbol(v, Decl(for-of53.ts, 0, 8)) +>v : any >[] : undefined[] var v; ->v : any, Symbol(v, Decl(for-of53.ts, 1, 7)) +>v : any } diff --git a/tests/baselines/reference/for-of56.symbols b/tests/baselines/reference/for-of56.symbols new file mode 100644 index 0000000000000..4e754075922cd --- /dev/null +++ b/tests/baselines/reference/for-of56.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of56.ts === +for (var let of []) {} +>let : Symbol(let, Decl(for-of56.ts, 0, 8)) + diff --git a/tests/baselines/reference/for-of56.types b/tests/baselines/reference/for-of56.types index f16d303ffb8bf..d853ff9f62c72 100644 --- a/tests/baselines/reference/for-of56.types +++ b/tests/baselines/reference/for-of56.types @@ -1,5 +1,5 @@ === tests/cases/conformance/es6/for-ofStatements/for-of56.ts === for (var let of []) {} ->let : any, Symbol(let, Decl(for-of56.ts, 0, 8)) +>let : any >[] : undefined[] diff --git a/tests/baselines/reference/for-of57.symbols b/tests/baselines/reference/for-of57.symbols new file mode 100644 index 0000000000000..60e87b25587de --- /dev/null +++ b/tests/baselines/reference/for-of57.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of57.ts === +var iter: Iterable; +>iter : Symbol(iter, Decl(for-of57.ts, 0, 3)) +>Iterable : Symbol(Iterable, Decl(lib.d.ts, 1633, 1)) + +for (let num of iter) { } +>num : Symbol(num, Decl(for-of57.ts, 1, 8)) +>iter : Symbol(iter, Decl(for-of57.ts, 0, 3)) + diff --git a/tests/baselines/reference/for-of57.types b/tests/baselines/reference/for-of57.types index bf6684a8f72eb..cfd4f68cfca2b 100644 --- a/tests/baselines/reference/for-of57.types +++ b/tests/baselines/reference/for-of57.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/for-ofStatements/for-of57.ts === var iter: Iterable; ->iter : Iterable, Symbol(iter, Decl(for-of57.ts, 0, 3)) ->Iterable : Iterable, Symbol(Iterable, Decl(lib.d.ts, 1633, 1)) +>iter : Iterable +>Iterable : Iterable for (let num of iter) { } ->num : number, Symbol(num, Decl(for-of57.ts, 1, 8)) ->iter : Iterable, Symbol(iter, Decl(for-of57.ts, 0, 3)) +>num : number +>iter : Iterable diff --git a/tests/baselines/reference/for-of8.symbols b/tests/baselines/reference/for-of8.symbols new file mode 100644 index 0000000000000..a7190fc5d132f --- /dev/null +++ b/tests/baselines/reference/for-of8.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of8.ts === +v; +>v : Symbol(v, Decl(for-of8.ts, 1, 8)) + +for (var v of [0]) { } +>v : Symbol(v, Decl(for-of8.ts, 1, 8)) + diff --git a/tests/baselines/reference/for-of8.types b/tests/baselines/reference/for-of8.types index c25194bfd0cbb..36bb20ef6b047 100644 --- a/tests/baselines/reference/for-of8.types +++ b/tests/baselines/reference/for-of8.types @@ -1,9 +1,9 @@ === tests/cases/conformance/es6/for-ofStatements/for-of8.ts === v; ->v : number, Symbol(v, Decl(for-of8.ts, 1, 8)) +>v : number for (var v of [0]) { } ->v : number, Symbol(v, Decl(for-of8.ts, 1, 8)) +>v : number >[0] : number[] >0 : number diff --git a/tests/baselines/reference/for-of9.symbols b/tests/baselines/reference/for-of9.symbols new file mode 100644 index 0000000000000..5fc2f76f3a665 --- /dev/null +++ b/tests/baselines/reference/for-of9.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of9.ts === +var v: string; +>v : Symbol(v, Decl(for-of9.ts, 0, 3)) + +for (v of ["hello"]) { } +>v : Symbol(v, Decl(for-of9.ts, 0, 3)) + +for (v of "hello") { } +>v : Symbol(v, Decl(for-of9.ts, 0, 3)) + diff --git a/tests/baselines/reference/for-of9.types b/tests/baselines/reference/for-of9.types index 10af4c71385c0..bf06bf460344c 100644 --- a/tests/baselines/reference/for-of9.types +++ b/tests/baselines/reference/for-of9.types @@ -1,13 +1,13 @@ === tests/cases/conformance/es6/for-ofStatements/for-of9.ts === var v: string; ->v : string, Symbol(v, Decl(for-of9.ts, 0, 3)) +>v : string for (v of ["hello"]) { } ->v : string, Symbol(v, Decl(for-of9.ts, 0, 3)) +>v : string >["hello"] : string[] >"hello" : string for (v of "hello") { } ->v : string, Symbol(v, Decl(for-of9.ts, 0, 3)) +>v : string >"hello" : string diff --git a/tests/baselines/reference/forBreakStatements.symbols b/tests/baselines/reference/forBreakStatements.symbols new file mode 100644 index 0000000000000..76db9309a3969 --- /dev/null +++ b/tests/baselines/reference/forBreakStatements.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/statements/breakStatements/forBreakStatements.ts === +for (; ;) { + break; +} + +ONE: +for (; ;) { + break ONE; +} + +TWO: +THREE: +for (; ;) { + break THREE; +} + +FOUR: +for (; ;) { + FIVE: + for (; ;) { + break FOUR; + } +} + +for (; ;) { + SIX: + for (; ;) break SIX; +} + +SEVEN: +for (; ;) for (; ;) for (; ;) break SEVEN; + +EIGHT: +for (; ;) { + var fn = function () { } +>fn : Symbol(fn, Decl(forBreakStatements.ts, 33, 7)) + + break EIGHT; +} + diff --git a/tests/baselines/reference/forBreakStatements.types b/tests/baselines/reference/forBreakStatements.types index 74118ea753aa8..8469a85bd19f7 100644 --- a/tests/baselines/reference/forBreakStatements.types +++ b/tests/baselines/reference/forBreakStatements.types @@ -54,7 +54,7 @@ EIGHT: for (; ;) { var fn = function () { } ->fn : () => void, Symbol(fn, Decl(forBreakStatements.ts, 33, 7)) +>fn : () => void >function () { } : () => void break EIGHT; diff --git a/tests/baselines/reference/forContinueStatements.symbols b/tests/baselines/reference/forContinueStatements.symbols new file mode 100644 index 0000000000000..e24eb2aaa9252 --- /dev/null +++ b/tests/baselines/reference/forContinueStatements.symbols @@ -0,0 +1,40 @@ +=== tests/cases/conformance/statements/continueStatements/forContinueStatements.ts === +for (; ;) { + continue; +} + +ONE: +for (; ;) { + continue ONE; +} + +TWO: +THREE: +for (; ;) { + continue THREE; +} + +FOUR: +for (; ;) { + FIVE: + for (; ;) { + continue FOUR; + } +} + +for (; ;) { + SIX: + for (; ;) continue SIX; +} + +SEVEN: +for (; ;) for (; ;) for (; ;) continue SEVEN; + +EIGHT: +for (; ;) { + var fn = function () { } +>fn : Symbol(fn, Decl(forContinueStatements.ts, 33, 7)) + + continue EIGHT; +} + diff --git a/tests/baselines/reference/forContinueStatements.types b/tests/baselines/reference/forContinueStatements.types index fe137f0e55207..79b78e83345de 100644 --- a/tests/baselines/reference/forContinueStatements.types +++ b/tests/baselines/reference/forContinueStatements.types @@ -54,7 +54,7 @@ EIGHT: for (; ;) { var fn = function () { } ->fn : () => void, Symbol(fn, Decl(forContinueStatements.ts, 33, 7)) +>fn : () => void >function () { } : () => void continue EIGHT; diff --git a/tests/baselines/reference/forInBreakStatements.symbols b/tests/baselines/reference/forInBreakStatements.symbols new file mode 100644 index 0000000000000..7984edc3fd699 --- /dev/null +++ b/tests/baselines/reference/forInBreakStatements.symbols @@ -0,0 +1,58 @@ +=== tests/cases/conformance/statements/breakStatements/forInBreakStatements.ts === +for(var x in {}) { +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + break; +} + +ONE: +for(var x in {}) { +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + break ONE; +} + +TWO: +THREE: +for(var x in {}) { +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + break THREE; +} + +FOUR: +for(var x in {}) { +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + FIVE: + for(var x in {}) { +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + break FOUR; + } +} + +for(var x in {}) { +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + SIX: + for(var x in {}) break SIX; +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +} + +SEVEN: +for (var x in {}) for (var x in {}) for (var x in {}) break SEVEN; +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + +EIGHT: +for (var x in {}){ +>x : Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) + + var fn = function () { } +>fn : Symbol(fn, Decl(forInBreakStatements.ts, 33, 7)) + + break EIGHT; +} + diff --git a/tests/baselines/reference/forInBreakStatements.types b/tests/baselines/reference/forInBreakStatements.types index c03c5fdc3d5e3..05ea8e35febe1 100644 --- a/tests/baselines/reference/forInBreakStatements.types +++ b/tests/baselines/reference/forInBreakStatements.types @@ -1,6 +1,6 @@ === tests/cases/conformance/statements/breakStatements/forInBreakStatements.ts === for(var x in {}) { ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} break; @@ -10,7 +10,7 @@ ONE: >ONE : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} break ONE; @@ -24,7 +24,7 @@ THREE: >THREE : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} break THREE; @@ -35,14 +35,14 @@ FOUR: >FOUR : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} FIVE: >FIVE : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} break FOUR; @@ -51,14 +51,14 @@ for(var x in {}) { } for(var x in {}) { ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} SIX: >SIX : any for(var x in {}) break SIX; ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} >SIX : any } @@ -67,11 +67,11 @@ SEVEN: >SEVEN : any for (var x in {}) for (var x in {}) for (var x in {}) break SEVEN; ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} >SEVEN : any @@ -79,11 +79,11 @@ EIGHT: >EIGHT : any for (var x in {}){ ->x : any, Symbol(x, Decl(forInBreakStatements.ts, 0, 7), Decl(forInBreakStatements.ts, 5, 7), Decl(forInBreakStatements.ts, 11, 7), Decl(forInBreakStatements.ts, 16, 7), Decl(forInBreakStatements.ts, 18, 11), Decl(forInBreakStatements.ts, 23, 7), Decl(forInBreakStatements.ts, 25, 11), Decl(forInBreakStatements.ts, 29, 8), Decl(forInBreakStatements.ts, 29, 26), Decl(forInBreakStatements.ts, 29, 44), Decl(forInBreakStatements.ts, 32, 8)) +>x : any >{} : {} var fn = function () { } ->fn : () => void, Symbol(fn, Decl(forInBreakStatements.ts, 33, 7)) +>fn : () => void >function () { } : () => void break EIGHT; diff --git a/tests/baselines/reference/forInContinueStatements.symbols b/tests/baselines/reference/forInContinueStatements.symbols new file mode 100644 index 0000000000000..88129a50d21ce --- /dev/null +++ b/tests/baselines/reference/forInContinueStatements.symbols @@ -0,0 +1,58 @@ +=== tests/cases/conformance/statements/continueStatements/forInContinueStatements.ts === +for(var x in {}) { +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + continue; +} + +ONE: +for(var x in {}) { +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + continue ONE; +} + +TWO: +THREE: +for(var x in {}) { +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + continue THREE; +} + +FOUR: +for(var x in {}) { +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + FIVE: + for(var x in {}) { +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + continue FOUR; + } +} + +for(var x in {}) { +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + SIX: + for(var x in {}) continue SIX; +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +} + +SEVEN: +for (var x in {}) for (var x in {}) for (var x in {}) continue SEVEN; +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + +EIGHT: +for (var x in {}){ +>x : Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) + + var fn = function () { } +>fn : Symbol(fn, Decl(forInContinueStatements.ts, 33, 7)) + + continue EIGHT; +} + diff --git a/tests/baselines/reference/forInContinueStatements.types b/tests/baselines/reference/forInContinueStatements.types index 9c3473f43f41a..95637345fa686 100644 --- a/tests/baselines/reference/forInContinueStatements.types +++ b/tests/baselines/reference/forInContinueStatements.types @@ -1,6 +1,6 @@ === tests/cases/conformance/statements/continueStatements/forInContinueStatements.ts === for(var x in {}) { ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} continue; @@ -10,7 +10,7 @@ ONE: >ONE : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} continue ONE; @@ -24,7 +24,7 @@ THREE: >THREE : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} continue THREE; @@ -35,14 +35,14 @@ FOUR: >FOUR : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} FIVE: >FIVE : any for(var x in {}) { ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} continue FOUR; @@ -51,14 +51,14 @@ for(var x in {}) { } for(var x in {}) { ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} SIX: >SIX : any for(var x in {}) continue SIX; ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} >SIX : any } @@ -67,11 +67,11 @@ SEVEN: >SEVEN : any for (var x in {}) for (var x in {}) for (var x in {}) continue SEVEN; ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} >SEVEN : any @@ -79,11 +79,11 @@ EIGHT: >EIGHT : any for (var x in {}){ ->x : any, Symbol(x, Decl(forInContinueStatements.ts, 0, 7), Decl(forInContinueStatements.ts, 5, 7), Decl(forInContinueStatements.ts, 11, 7), Decl(forInContinueStatements.ts, 16, 7), Decl(forInContinueStatements.ts, 18, 11), Decl(forInContinueStatements.ts, 23, 7), Decl(forInContinueStatements.ts, 25, 11), Decl(forInContinueStatements.ts, 29, 8), Decl(forInContinueStatements.ts, 29, 26), Decl(forInContinueStatements.ts, 29, 44), Decl(forInContinueStatements.ts, 32, 8)) +>x : any >{} : {} var fn = function () { } ->fn : () => void, Symbol(fn, Decl(forInContinueStatements.ts, 33, 7)) +>fn : () => void >function () { } : () => void continue EIGHT; diff --git a/tests/baselines/reference/forInModule.symbols b/tests/baselines/reference/forInModule.symbols new file mode 100644 index 0000000000000..e540725f69f14 --- /dev/null +++ b/tests/baselines/reference/forInModule.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/forInModule.ts === +module Foo { +>Foo : Symbol(Foo, Decl(forInModule.ts, 0, 0)) + + for (var i = 0; i < 1; i++) { +>i : Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : Symbol(i, Decl(forInModule.ts, 1, 9)) + + i+i; +>i : Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : Symbol(i, Decl(forInModule.ts, 1, 9)) + } +} diff --git a/tests/baselines/reference/forInModule.types b/tests/baselines/reference/forInModule.types index d89b656185924..d78a511206b1b 100644 --- a/tests/baselines/reference/forInModule.types +++ b/tests/baselines/reference/forInModule.types @@ -1,19 +1,19 @@ === tests/cases/compiler/forInModule.ts === module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(forInModule.ts, 0, 0)) +>Foo : typeof Foo for (var i = 0; i < 1; i++) { ->i : number, Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : number >0 : number >i < 1 : boolean ->i : number, Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : number >1 : number >i++ : number ->i : number, Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : number i+i; >i+i : number ->i : number, Symbol(i, Decl(forInModule.ts, 1, 9)) ->i : number, Symbol(i, Decl(forInModule.ts, 1, 9)) +>i : number +>i : number } } diff --git a/tests/baselines/reference/forInStatement1.symbols b/tests/baselines/reference/forInStatement1.symbols new file mode 100644 index 0000000000000..ab4003bb0d2f3 --- /dev/null +++ b/tests/baselines/reference/forInStatement1.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/forInStatement1.ts === +var expr: any; +>expr : Symbol(expr, Decl(forInStatement1.ts, 0, 3)) + +for (var a in expr) { +>a : Symbol(a, Decl(forInStatement1.ts, 1, 8)) +>expr : Symbol(expr, Decl(forInStatement1.ts, 0, 3)) +} diff --git a/tests/baselines/reference/forInStatement1.types b/tests/baselines/reference/forInStatement1.types index 21d73be8affa5..8ccacc9e2f77f 100644 --- a/tests/baselines/reference/forInStatement1.types +++ b/tests/baselines/reference/forInStatement1.types @@ -1,8 +1,8 @@ === tests/cases/compiler/forInStatement1.ts === var expr: any; ->expr : any, Symbol(expr, Decl(forInStatement1.ts, 0, 3)) +>expr : any for (var a in expr) { ->a : any, Symbol(a, Decl(forInStatement1.ts, 1, 8)) ->expr : any, Symbol(expr, Decl(forInStatement1.ts, 0, 3)) +>a : any +>expr : any } diff --git a/tests/baselines/reference/forInStatement3.symbols b/tests/baselines/reference/forInStatement3.symbols new file mode 100644 index 0000000000000..24896d89cfcea --- /dev/null +++ b/tests/baselines/reference/forInStatement3.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/forInStatement3.ts === +function F() { +>F : Symbol(F, Decl(forInStatement3.ts, 0, 0)) +>T : Symbol(T, Decl(forInStatement3.ts, 0, 11)) + + var expr: T; +>expr : Symbol(expr, Decl(forInStatement3.ts, 1, 5)) +>T : Symbol(T, Decl(forInStatement3.ts, 0, 11)) + + for (var a in expr) { +>a : Symbol(a, Decl(forInStatement3.ts, 2, 10)) +>expr : Symbol(expr, Decl(forInStatement3.ts, 1, 5)) + } +} diff --git a/tests/baselines/reference/forInStatement3.types b/tests/baselines/reference/forInStatement3.types index 8f4bb89d0a392..1d3803065bd17 100644 --- a/tests/baselines/reference/forInStatement3.types +++ b/tests/baselines/reference/forInStatement3.types @@ -1,14 +1,14 @@ === tests/cases/compiler/forInStatement3.ts === function F() { ->F : () => void, Symbol(F, Decl(forInStatement3.ts, 0, 0)) ->T : T, Symbol(T, Decl(forInStatement3.ts, 0, 11)) +>F : () => void +>T : T var expr: T; ->expr : T, Symbol(expr, Decl(forInStatement3.ts, 1, 5)) ->T : T, Symbol(T, Decl(forInStatement3.ts, 0, 11)) +>expr : T +>T : T for (var a in expr) { ->a : any, Symbol(a, Decl(forInStatement3.ts, 2, 10)) ->expr : T, Symbol(expr, Decl(forInStatement3.ts, 1, 5)) +>a : any +>expr : T } } diff --git a/tests/baselines/reference/forInStatement5.symbols b/tests/baselines/reference/forInStatement5.symbols new file mode 100644 index 0000000000000..2705ea3285c01 --- /dev/null +++ b/tests/baselines/reference/forInStatement5.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/forInStatement5.ts === +var a: string; +>a : Symbol(a, Decl(forInStatement5.ts, 0, 3)) + +var expr: any; +>expr : Symbol(expr, Decl(forInStatement5.ts, 1, 3)) + +for (a in expr) { +>a : Symbol(a, Decl(forInStatement5.ts, 0, 3)) +>expr : Symbol(expr, Decl(forInStatement5.ts, 1, 3)) +} diff --git a/tests/baselines/reference/forInStatement5.types b/tests/baselines/reference/forInStatement5.types index c838f0528276d..97f894dc6bfc7 100644 --- a/tests/baselines/reference/forInStatement5.types +++ b/tests/baselines/reference/forInStatement5.types @@ -1,11 +1,11 @@ === tests/cases/compiler/forInStatement5.ts === var a: string; ->a : string, Symbol(a, Decl(forInStatement5.ts, 0, 3)) +>a : string var expr: any; ->expr : any, Symbol(expr, Decl(forInStatement5.ts, 1, 3)) +>expr : any for (a in expr) { ->a : string, Symbol(a, Decl(forInStatement5.ts, 0, 3)) ->expr : any, Symbol(expr, Decl(forInStatement5.ts, 1, 3)) +>a : string +>expr : any } diff --git a/tests/baselines/reference/forInStatement6.symbols b/tests/baselines/reference/forInStatement6.symbols new file mode 100644 index 0000000000000..8e2189699591a --- /dev/null +++ b/tests/baselines/reference/forInStatement6.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/forInStatement6.ts === +var a: any; +>a : Symbol(a, Decl(forInStatement6.ts, 0, 3)) + +var expr: any; +>expr : Symbol(expr, Decl(forInStatement6.ts, 1, 3)) + +for (a in expr) { +>a : Symbol(a, Decl(forInStatement6.ts, 0, 3)) +>expr : Symbol(expr, Decl(forInStatement6.ts, 1, 3)) +} diff --git a/tests/baselines/reference/forInStatement6.types b/tests/baselines/reference/forInStatement6.types index e83a75d0cc7c8..0a882c62d8aff 100644 --- a/tests/baselines/reference/forInStatement6.types +++ b/tests/baselines/reference/forInStatement6.types @@ -1,11 +1,11 @@ === tests/cases/compiler/forInStatement6.ts === var a: any; ->a : any, Symbol(a, Decl(forInStatement6.ts, 0, 3)) +>a : any var expr: any; ->expr : any, Symbol(expr, Decl(forInStatement6.ts, 1, 3)) +>expr : any for (a in expr) { ->a : any, Symbol(a, Decl(forInStatement6.ts, 0, 3)) ->expr : any, Symbol(expr, Decl(forInStatement6.ts, 1, 3)) +>a : any +>expr : any } diff --git a/tests/baselines/reference/forStatements.symbols b/tests/baselines/reference/forStatements.symbols new file mode 100644 index 0000000000000..6f7c6d6cdbe3a --- /dev/null +++ b/tests/baselines/reference/forStatements.symbols @@ -0,0 +1,145 @@ +=== tests/cases/conformance/statements/forStatements/forStatements.ts === +interface I { +>I : Symbol(I, Decl(forStatements.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(forStatements.ts, 0, 13)) +} + +class C implements I { +>C : Symbol(C, Decl(forStatements.ts, 2, 1)) +>I : Symbol(I, Decl(forStatements.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(forStatements.ts, 4, 22)) +} + +class D{ +>D : Symbol(D, Decl(forStatements.ts, 6, 1)) +>T : Symbol(T, Decl(forStatements.ts, 8, 8)) + + source: T; +>source : Symbol(source, Decl(forStatements.ts, 8, 11)) +>T : Symbol(T, Decl(forStatements.ts, 8, 8)) + + recurse: D; +>recurse : Symbol(recurse, Decl(forStatements.ts, 9, 14)) +>D : Symbol(D, Decl(forStatements.ts, 6, 1)) +>T : Symbol(T, Decl(forStatements.ts, 8, 8)) + + wrapped: D> +>wrapped : Symbol(wrapped, Decl(forStatements.ts, 10, 18)) +>D : Symbol(D, Decl(forStatements.ts, 6, 1)) +>D : Symbol(D, Decl(forStatements.ts, 6, 1)) +>T : Symbol(T, Decl(forStatements.ts, 8, 8)) +} + +function F(x: string): number { return 42; } +>F : Symbol(F, Decl(forStatements.ts, 12, 1)) +>x : Symbol(x, Decl(forStatements.ts, 14, 11)) + +module M { +>M : Symbol(M, Decl(forStatements.ts, 14, 44)) + + export class A { +>A : Symbol(A, Decl(forStatements.ts, 16, 10)) + + name: string; +>name : Symbol(name, Decl(forStatements.ts, 17, 20)) + } + + export function F2(x: number): string { return x.toString(); } +>F2 : Symbol(F2, Decl(forStatements.ts, 19, 5)) +>x : Symbol(x, Decl(forStatements.ts, 21, 23)) +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(forStatements.ts, 21, 23)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +} + +for(var aNumber: number = 9.9;;){} +>aNumber : Symbol(aNumber, Decl(forStatements.ts, 24, 7)) + +for(var aString: string = 'this is a string';;){} +>aString : Symbol(aString, Decl(forStatements.ts, 25, 7)) + +for(var aDate: Date = new Date(12);;){} +>aDate : Symbol(aDate, Decl(forStatements.ts, 26, 7)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +for(var anObject: Object = new Object();;){} +>anObject : Symbol(anObject, Decl(forStatements.ts, 27, 7)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +for(var anAny: any = null;;){} +>anAny : Symbol(anAny, Decl(forStatements.ts, 29, 7)) + +for(var aSecondAny: any = undefined;;){} +>aSecondAny : Symbol(aSecondAny, Decl(forStatements.ts, 30, 7)) +>undefined : Symbol(undefined) + +for(var aVoid: void = undefined;;){} +>aVoid : Symbol(aVoid, Decl(forStatements.ts, 31, 7)) +>undefined : Symbol(undefined) + +for(var anInterface: I = new C();;){} +>anInterface : Symbol(anInterface, Decl(forStatements.ts, 33, 7)) +>I : Symbol(I, Decl(forStatements.ts, 0, 0)) +>C : Symbol(C, Decl(forStatements.ts, 2, 1)) + +for(var aClass: C = new C();;){} +>aClass : Symbol(aClass, Decl(forStatements.ts, 34, 7)) +>C : Symbol(C, Decl(forStatements.ts, 2, 1)) +>C : Symbol(C, Decl(forStatements.ts, 2, 1)) + +for(var aGenericClass: D = new D();;){} +>aGenericClass : Symbol(aGenericClass, Decl(forStatements.ts, 35, 7)) +>D : Symbol(D, Decl(forStatements.ts, 6, 1)) +>D : Symbol(D, Decl(forStatements.ts, 6, 1)) + +for(var anObjectLiteral: I = { id: 12 };;){} +>anObjectLiteral : Symbol(anObjectLiteral, Decl(forStatements.ts, 36, 7)) +>I : Symbol(I, Decl(forStatements.ts, 0, 0)) +>id : Symbol(id, Decl(forStatements.ts, 36, 30)) + +for(var anOtherObjectLiteral: { id: number } = new C();;){} +>anOtherObjectLiteral : Symbol(anOtherObjectLiteral, Decl(forStatements.ts, 37, 7)) +>id : Symbol(id, Decl(forStatements.ts, 37, 31)) +>C : Symbol(C, Decl(forStatements.ts, 2, 1)) + +for(var aFunction: typeof F = F;;){} +>aFunction : Symbol(aFunction, Decl(forStatements.ts, 39, 7)) +>F : Symbol(F, Decl(forStatements.ts, 12, 1)) +>F : Symbol(F, Decl(forStatements.ts, 12, 1)) + +for(var anOtherFunction: (x: string) => number = F;;){} +>anOtherFunction : Symbol(anOtherFunction, Decl(forStatements.ts, 40, 7)) +>x : Symbol(x, Decl(forStatements.ts, 40, 26)) +>F : Symbol(F, Decl(forStatements.ts, 12, 1)) + +for(var aLambda: typeof F = (x) => 2;;){} +>aLambda : Symbol(aLambda, Decl(forStatements.ts, 41, 7)) +>F : Symbol(F, Decl(forStatements.ts, 12, 1)) +>x : Symbol(x, Decl(forStatements.ts, 41, 29)) + +for(var aModule: typeof M = M;;){} +>aModule : Symbol(aModule, Decl(forStatements.ts, 43, 7)) +>M : Symbol(M, Decl(forStatements.ts, 14, 44)) +>M : Symbol(M, Decl(forStatements.ts, 14, 44)) + +for(var aClassInModule: M.A = new M.A();;){} +>aClassInModule : Symbol(aClassInModule, Decl(forStatements.ts, 44, 7)) +>M : Symbol(M, Decl(forStatements.ts, 14, 44)) +>A : Symbol(M.A, Decl(forStatements.ts, 16, 10)) +>M.A : Symbol(M.A, Decl(forStatements.ts, 16, 10)) +>M : Symbol(M, Decl(forStatements.ts, 14, 44)) +>A : Symbol(M.A, Decl(forStatements.ts, 16, 10)) + +for(var aFunctionInModule: typeof M.F2 = (x) => 'this is a string';;){} +>aFunctionInModule : Symbol(aFunctionInModule, Decl(forStatements.ts, 45, 7)) +>M.F2 : Symbol(M.F2, Decl(forStatements.ts, 19, 5)) +>M : Symbol(M, Decl(forStatements.ts, 14, 44)) +>F2 : Symbol(M.F2, Decl(forStatements.ts, 19, 5)) +>x : Symbol(x, Decl(forStatements.ts, 45, 42)) + diff --git a/tests/baselines/reference/forStatements.types b/tests/baselines/reference/forStatements.types index dc2e2478f15e5..3fbcf2dbfb2f2 100644 --- a/tests/baselines/reference/forStatements.types +++ b/tests/baselines/reference/forStatements.types @@ -1,164 +1,164 @@ === tests/cases/conformance/statements/forStatements/forStatements.ts === interface I { ->I : I, Symbol(I, Decl(forStatements.ts, 0, 0)) +>I : I id: number; ->id : number, Symbol(id, Decl(forStatements.ts, 0, 13)) +>id : number } class C implements I { ->C : C, Symbol(C, Decl(forStatements.ts, 2, 1)) ->I : I, Symbol(I, Decl(forStatements.ts, 0, 0)) +>C : C +>I : I id: number; ->id : number, Symbol(id, Decl(forStatements.ts, 4, 22)) +>id : number } class D{ ->D : D, Symbol(D, Decl(forStatements.ts, 6, 1)) ->T : T, Symbol(T, Decl(forStatements.ts, 8, 8)) +>D : D +>T : T source: T; ->source : T, Symbol(source, Decl(forStatements.ts, 8, 11)) ->T : T, Symbol(T, Decl(forStatements.ts, 8, 8)) +>source : T +>T : T recurse: D; ->recurse : D, Symbol(recurse, Decl(forStatements.ts, 9, 14)) ->D : D, Symbol(D, Decl(forStatements.ts, 6, 1)) ->T : T, Symbol(T, Decl(forStatements.ts, 8, 8)) +>recurse : D +>D : D +>T : T wrapped: D> ->wrapped : D>, Symbol(wrapped, Decl(forStatements.ts, 10, 18)) ->D : D, Symbol(D, Decl(forStatements.ts, 6, 1)) ->D : D, Symbol(D, Decl(forStatements.ts, 6, 1)) ->T : T, Symbol(T, Decl(forStatements.ts, 8, 8)) +>wrapped : D> +>D : D +>D : D +>T : T } function F(x: string): number { return 42; } ->F : (x: string) => number, Symbol(F, Decl(forStatements.ts, 12, 1)) ->x : string, Symbol(x, Decl(forStatements.ts, 14, 11)) +>F : (x: string) => number +>x : string >42 : number module M { ->M : typeof M, Symbol(M, Decl(forStatements.ts, 14, 44)) +>M : typeof M export class A { ->A : A, Symbol(A, Decl(forStatements.ts, 16, 10)) +>A : A name: string; ->name : string, Symbol(name, Decl(forStatements.ts, 17, 20)) +>name : string } export function F2(x: number): string { return x.toString(); } ->F2 : (x: number) => string, Symbol(F2, Decl(forStatements.ts, 19, 5)) ->x : number, Symbol(x, Decl(forStatements.ts, 21, 23)) +>F2 : (x: number) => string +>x : number >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(forStatements.ts, 21, 23)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string } for(var aNumber: number = 9.9;;){} ->aNumber : number, Symbol(aNumber, Decl(forStatements.ts, 24, 7)) +>aNumber : number >9.9 : number for(var aString: string = 'this is a string';;){} ->aString : string, Symbol(aString, Decl(forStatements.ts, 25, 7)) +>aString : string >'this is a string' : string for(var aDate: Date = new Date(12);;){} ->aDate : Date, Symbol(aDate, Decl(forStatements.ts, 26, 7)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>aDate : Date +>Date : Date >new Date(12) : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor >12 : number for(var anObject: Object = new Object();;){} ->anObject : Object, Symbol(anObject, Decl(forStatements.ts, 27, 7)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>anObject : Object +>Object : Object >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor for(var anAny: any = null;;){} ->anAny : any, Symbol(anAny, Decl(forStatements.ts, 29, 7)) +>anAny : any >null : null for(var aSecondAny: any = undefined;;){} ->aSecondAny : any, Symbol(aSecondAny, Decl(forStatements.ts, 30, 7)) ->undefined : undefined, Symbol(undefined) +>aSecondAny : any +>undefined : undefined for(var aVoid: void = undefined;;){} ->aVoid : void, Symbol(aVoid, Decl(forStatements.ts, 31, 7)) ->undefined : undefined, Symbol(undefined) +>aVoid : void +>undefined : undefined for(var anInterface: I = new C();;){} ->anInterface : I, Symbol(anInterface, Decl(forStatements.ts, 33, 7)) ->I : I, Symbol(I, Decl(forStatements.ts, 0, 0)) +>anInterface : I +>I : I >new C() : C ->C : typeof C, Symbol(C, Decl(forStatements.ts, 2, 1)) +>C : typeof C for(var aClass: C = new C();;){} ->aClass : C, Symbol(aClass, Decl(forStatements.ts, 34, 7)) ->C : C, Symbol(C, Decl(forStatements.ts, 2, 1)) +>aClass : C +>C : C >new C() : C ->C : typeof C, Symbol(C, Decl(forStatements.ts, 2, 1)) +>C : typeof C for(var aGenericClass: D = new D();;){} ->aGenericClass : D, Symbol(aGenericClass, Decl(forStatements.ts, 35, 7)) ->D : D, Symbol(D, Decl(forStatements.ts, 6, 1)) +>aGenericClass : D +>D : D >new D() : D ->D : typeof D, Symbol(D, Decl(forStatements.ts, 6, 1)) +>D : typeof D for(var anObjectLiteral: I = { id: 12 };;){} ->anObjectLiteral : I, Symbol(anObjectLiteral, Decl(forStatements.ts, 36, 7)) ->I : I, Symbol(I, Decl(forStatements.ts, 0, 0)) +>anObjectLiteral : I +>I : I >{ id: 12 } : { id: number; } ->id : number, Symbol(id, Decl(forStatements.ts, 36, 30)) +>id : number >12 : number for(var anOtherObjectLiteral: { id: number } = new C();;){} ->anOtherObjectLiteral : { id: number; }, Symbol(anOtherObjectLiteral, Decl(forStatements.ts, 37, 7)) ->id : number, Symbol(id, Decl(forStatements.ts, 37, 31)) +>anOtherObjectLiteral : { id: number; } +>id : number >new C() : C ->C : typeof C, Symbol(C, Decl(forStatements.ts, 2, 1)) +>C : typeof C for(var aFunction: typeof F = F;;){} ->aFunction : (x: string) => number, Symbol(aFunction, Decl(forStatements.ts, 39, 7)) ->F : (x: string) => number, Symbol(F, Decl(forStatements.ts, 12, 1)) ->F : (x: string) => number, Symbol(F, Decl(forStatements.ts, 12, 1)) +>aFunction : (x: string) => number +>F : (x: string) => number +>F : (x: string) => number for(var anOtherFunction: (x: string) => number = F;;){} ->anOtherFunction : (x: string) => number, Symbol(anOtherFunction, Decl(forStatements.ts, 40, 7)) ->x : string, Symbol(x, Decl(forStatements.ts, 40, 26)) ->F : (x: string) => number, Symbol(F, Decl(forStatements.ts, 12, 1)) +>anOtherFunction : (x: string) => number +>x : string +>F : (x: string) => number for(var aLambda: typeof F = (x) => 2;;){} ->aLambda : (x: string) => number, Symbol(aLambda, Decl(forStatements.ts, 41, 7)) ->F : (x: string) => number, Symbol(F, Decl(forStatements.ts, 12, 1)) +>aLambda : (x: string) => number +>F : (x: string) => number >(x) => 2 : (x: string) => number ->x : string, Symbol(x, Decl(forStatements.ts, 41, 29)) +>x : string >2 : number for(var aModule: typeof M = M;;){} ->aModule : typeof M, Symbol(aModule, Decl(forStatements.ts, 43, 7)) ->M : typeof M, Symbol(M, Decl(forStatements.ts, 14, 44)) ->M : typeof M, Symbol(M, Decl(forStatements.ts, 14, 44)) +>aModule : typeof M +>M : typeof M +>M : typeof M for(var aClassInModule: M.A = new M.A();;){} ->aClassInModule : M.A, Symbol(aClassInModule, Decl(forStatements.ts, 44, 7)) ->M : any, Symbol(M, Decl(forStatements.ts, 14, 44)) ->A : M.A, Symbol(M.A, Decl(forStatements.ts, 16, 10)) +>aClassInModule : M.A +>M : any +>A : M.A >new M.A() : M.A ->M.A : typeof M.A, Symbol(M.A, Decl(forStatements.ts, 16, 10)) ->M : typeof M, Symbol(M, Decl(forStatements.ts, 14, 44)) ->A : typeof M.A, Symbol(M.A, Decl(forStatements.ts, 16, 10)) +>M.A : typeof M.A +>M : typeof M +>A : typeof M.A for(var aFunctionInModule: typeof M.F2 = (x) => 'this is a string';;){} ->aFunctionInModule : (x: number) => string, Symbol(aFunctionInModule, Decl(forStatements.ts, 45, 7)) ->M.F2 : (x: number) => string, Symbol(M.F2, Decl(forStatements.ts, 19, 5)) ->M : typeof M, Symbol(M, Decl(forStatements.ts, 14, 44)) ->F2 : (x: number) => string, Symbol(M.F2, Decl(forStatements.ts, 19, 5)) +>aFunctionInModule : (x: number) => string +>M.F2 : (x: number) => string +>M : typeof M +>F2 : (x: number) => string >(x) => 'this is a string' : (x: number) => string ->x : number, Symbol(x, Decl(forStatements.ts, 45, 42)) +>x : number >'this is a string' : string diff --git a/tests/baselines/reference/forStatementsMultipleValidDecl.symbols b/tests/baselines/reference/forStatementsMultipleValidDecl.symbols new file mode 100644 index 0000000000000..6a98fbf133ea1 --- /dev/null +++ b/tests/baselines/reference/forStatementsMultipleValidDecl.symbols @@ -0,0 +1,110 @@ +=== tests/cases/conformance/statements/forStatements/forStatementsMultipleValidDecl.ts === +// all expected to be valid + +for (var x: number; ;) { } +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 2, 8), Decl(forStatementsMultipleValidDecl.ts, 3, 8), Decl(forStatementsMultipleValidDecl.ts, 5, 8)) + +for (var x = 2; ;) { } +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 2, 8), Decl(forStatementsMultipleValidDecl.ts, 3, 8), Decl(forStatementsMultipleValidDecl.ts, 5, 8)) + +for (var x = undefined; ;) { } +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 2, 8), Decl(forStatementsMultipleValidDecl.ts, 3, 8), Decl(forStatementsMultipleValidDecl.ts, 5, 8)) +>undefined : Symbol(undefined) + +// new declaration space, making redeclaring x as a string valid +function declSpace() { +>declSpace : Symbol(declSpace, Decl(forStatementsMultipleValidDecl.ts, 5, 38)) + + for (var x = 'this is a string'; ;) { } +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 8, 12)) +} +interface Point { x: number; y: number; } +>Point : Symbol(Point, Decl(forStatementsMultipleValidDecl.ts, 9, 1)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 10, 17)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 10, 28)) + +for (var p: Point; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>Point : Symbol(Point, Decl(forStatementsMultipleValidDecl.ts, 9, 1)) + +for (var p = { x: 1, y: 2 }; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 13, 14)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 13, 20)) + +for (var p: Point = { x: 0, y: undefined }; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>Point : Symbol(Point, Decl(forStatementsMultipleValidDecl.ts, 9, 1)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 14, 21)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 14, 27)) +>undefined : Symbol(undefined) + +for (var p = { x: 1, y: undefined }; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 15, 14)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 15, 20)) +>undefined : Symbol(undefined) + +for (var p: { x: number; y: number; } = { x: 1, y: 2 }; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 16, 13)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 16, 24)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 16, 41)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 16, 47)) + +for (var p = <{ x: number; y: number; }>{ x: 0, y: undefined }; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 17, 15)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 17, 26)) +>x : Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 17, 41)) +>y : Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 17, 47)) +>undefined : Symbol(undefined) + +for (var p: typeof p; ;) { } +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>p : Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) + +for (var fn = function (s: string) { return 42; }; ;) { } +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>s : Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 20, 24)) + +for (var fn = (s: string) => 3; ;) { } +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>s : Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 21, 15)) + +for (var fn: (s: string) => number; ;) { } +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>s : Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 22, 14)) + +for (var fn: { (s: string): number }; ;) { } +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>s : Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 23, 16)) + +for (var fn = <(s: string) => number> null; ;) { } +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>s : Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 24, 16)) + +for (var fn: typeof fn; ;) { } +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>fn : Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) + +for (var a: string[]; ;) { } +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) + +for (var a = ['a', 'b']; ;) { } +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) + +for (var a = []; ;) { } +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) + +for (var a: string[] = []; ;) { } +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) + +for (var a = new Array(); ;) { } +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +for (var a: typeof a; ;) { } +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) + diff --git a/tests/baselines/reference/forStatementsMultipleValidDecl.types b/tests/baselines/reference/forStatementsMultipleValidDecl.types index 7379b77fd2f9f..9b9af5b850e02 100644 --- a/tests/baselines/reference/forStatementsMultipleValidDecl.types +++ b/tests/baselines/reference/forStatementsMultipleValidDecl.types @@ -2,139 +2,139 @@ // all expected to be valid for (var x: number; ;) { } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 2, 8), Decl(forStatementsMultipleValidDecl.ts, 3, 8), Decl(forStatementsMultipleValidDecl.ts, 5, 8)) +>x : number for (var x = 2; ;) { } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 2, 8), Decl(forStatementsMultipleValidDecl.ts, 3, 8), Decl(forStatementsMultipleValidDecl.ts, 5, 8)) +>x : number >2 : number for (var x = undefined; ;) { } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 2, 8), Decl(forStatementsMultipleValidDecl.ts, 3, 8), Decl(forStatementsMultipleValidDecl.ts, 5, 8)) +>x : number >undefined : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined // new declaration space, making redeclaring x as a string valid function declSpace() { ->declSpace : () => void, Symbol(declSpace, Decl(forStatementsMultipleValidDecl.ts, 5, 38)) +>declSpace : () => void for (var x = 'this is a string'; ;) { } ->x : string, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 8, 12)) +>x : string >'this is a string' : string } interface Point { x: number; y: number; } ->Point : Point, Symbol(Point, Decl(forStatementsMultipleValidDecl.ts, 9, 1)) ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 10, 17)) ->y : number, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 10, 28)) +>Point : Point +>x : number +>y : number for (var p: Point; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) ->Point : Point, Symbol(Point, Decl(forStatementsMultipleValidDecl.ts, 9, 1)) +>p : Point +>Point : Point for (var p = { x: 1, y: 2 }; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>p : Point >{ x: 1, y: 2 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 13, 14)) +>x : number >1 : number ->y : number, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 13, 20)) +>y : number >2 : number for (var p: Point = { x: 0, y: undefined }; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) ->Point : Point, Symbol(Point, Decl(forStatementsMultipleValidDecl.ts, 9, 1)) +>p : Point +>Point : Point >{ x: 0, y: undefined } : { x: number; y: undefined; } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 14, 21)) +>x : number >0 : number ->y : undefined, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 14, 27)) ->undefined : undefined, Symbol(undefined) +>y : undefined +>undefined : undefined for (var p = { x: 1, y: undefined }; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>p : Point >{ x: 1, y: undefined } : { x: number; y: number; } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 15, 14)) +>x : number >1 : number ->y : number, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 15, 20)) +>y : number >undefined : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined for (var p: { x: number; y: number; } = { x: 1, y: 2 }; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 16, 13)) ->y : number, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 16, 24)) +>p : Point +>x : number +>y : number >{ x: 1, y: 2 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 16, 41)) +>x : number >1 : number ->y : number, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 16, 47)) +>y : number >2 : number for (var p = <{ x: number; y: number; }>{ x: 0, y: undefined }; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>p : Point ><{ x: number; y: number; }>{ x: 0, y: undefined } : { x: number; y: number; } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 17, 15)) ->y : number, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 17, 26)) +>x : number +>y : number >{ x: 0, y: undefined } : { x: number; y: undefined; } ->x : number, Symbol(x, Decl(forStatementsMultipleValidDecl.ts, 17, 41)) +>x : number >0 : number ->y : undefined, Symbol(y, Decl(forStatementsMultipleValidDecl.ts, 17, 47)) ->undefined : undefined, Symbol(undefined) +>y : undefined +>undefined : undefined for (var p: typeof p; ;) { } ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) ->p : Point, Symbol(p, Decl(forStatementsMultipleValidDecl.ts, 12, 8), Decl(forStatementsMultipleValidDecl.ts, 13, 8), Decl(forStatementsMultipleValidDecl.ts, 14, 8), Decl(forStatementsMultipleValidDecl.ts, 15, 8), Decl(forStatementsMultipleValidDecl.ts, 16, 8), Decl(forStatementsMultipleValidDecl.ts, 17, 8), Decl(forStatementsMultipleValidDecl.ts, 18, 8)) +>p : Point +>p : Point for (var fn = function (s: string) { return 42; }; ;) { } ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>fn : (s: string) => number >function (s: string) { return 42; } : (s: string) => number ->s : string, Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 20, 24)) +>s : string >42 : number for (var fn = (s: string) => 3; ;) { } ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>fn : (s: string) => number >(s: string) => 3 : (s: string) => number ->s : string, Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 21, 15)) +>s : string >3 : number for (var fn: (s: string) => number; ;) { } ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) ->s : string, Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 22, 14)) +>fn : (s: string) => number +>s : string for (var fn: { (s: string): number }; ;) { } ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) ->s : string, Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 23, 16)) +>fn : (s: string) => number +>s : string for (var fn = <(s: string) => number> null; ;) { } ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>fn : (s: string) => number ><(s: string) => number> null : (s: string) => number ->s : string, Symbol(s, Decl(forStatementsMultipleValidDecl.ts, 24, 16)) +>s : string >null : null for (var fn: typeof fn; ;) { } ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) ->fn : (s: string) => number, Symbol(fn, Decl(forStatementsMultipleValidDecl.ts, 20, 8), Decl(forStatementsMultipleValidDecl.ts, 21, 8), Decl(forStatementsMultipleValidDecl.ts, 22, 8), Decl(forStatementsMultipleValidDecl.ts, 23, 8), Decl(forStatementsMultipleValidDecl.ts, 24, 8), Decl(forStatementsMultipleValidDecl.ts, 25, 8)) +>fn : (s: string) => number +>fn : (s: string) => number for (var a: string[]; ;) { } ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : string[] for (var a = ['a', 'b']; ;) { } ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : string[] >['a', 'b'] : string[] >'a' : string >'b' : string for (var a = []; ;) { } ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : string[] >[] : string[] >[] : undefined[] for (var a: string[] = []; ;) { } ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : string[] >[] : undefined[] for (var a = new Array(); ;) { } ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : string[] >new Array() : string[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Array : ArrayConstructor for (var a: typeof a; ;) { } ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) ->a : string[], Symbol(a, Decl(forStatementsMultipleValidDecl.ts, 27, 8), Decl(forStatementsMultipleValidDecl.ts, 28, 8), Decl(forStatementsMultipleValidDecl.ts, 29, 8), Decl(forStatementsMultipleValidDecl.ts, 30, 8), Decl(forStatementsMultipleValidDecl.ts, 31, 8), Decl(forStatementsMultipleValidDecl.ts, 32, 8)) +>a : string[] +>a : string[] diff --git a/tests/baselines/reference/fromAsIdentifier1.symbols b/tests/baselines/reference/fromAsIdentifier1.symbols new file mode 100644 index 0000000000000..517980a0bfc6b --- /dev/null +++ b/tests/baselines/reference/fromAsIdentifier1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/fromAsIdentifier1.ts === +var from; +>from : Symbol(from, Decl(fromAsIdentifier1.ts, 0, 3)) + diff --git a/tests/baselines/reference/fromAsIdentifier1.types b/tests/baselines/reference/fromAsIdentifier1.types index 4158e3b2e77ef..988a80f3337bb 100644 --- a/tests/baselines/reference/fromAsIdentifier1.types +++ b/tests/baselines/reference/fromAsIdentifier1.types @@ -1,4 +1,4 @@ === tests/cases/compiler/fromAsIdentifier1.ts === var from; ->from : any, Symbol(from, Decl(fromAsIdentifier1.ts, 0, 3)) +>from : any diff --git a/tests/baselines/reference/fromAsIdentifier2.symbols b/tests/baselines/reference/fromAsIdentifier2.symbols new file mode 100644 index 0000000000000..f55e374ba6bf5 --- /dev/null +++ b/tests/baselines/reference/fromAsIdentifier2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/fromAsIdentifier2.ts === +"use strict"; +var from; +>from : Symbol(from, Decl(fromAsIdentifier2.ts, 1, 3)) + diff --git a/tests/baselines/reference/fromAsIdentifier2.types b/tests/baselines/reference/fromAsIdentifier2.types index 336098594a52e..ae605f79268cc 100644 --- a/tests/baselines/reference/fromAsIdentifier2.types +++ b/tests/baselines/reference/fromAsIdentifier2.types @@ -3,5 +3,5 @@ >"use strict" : string var from; ->from : any, Symbol(from, Decl(fromAsIdentifier2.ts, 1, 3)) +>from : any diff --git a/tests/baselines/reference/funcdecl.symbols b/tests/baselines/reference/funcdecl.symbols new file mode 100644 index 0000000000000..2538e3a9a0402 --- /dev/null +++ b/tests/baselines/reference/funcdecl.symbols @@ -0,0 +1,155 @@ +=== tests/cases/compiler/funcdecl.ts === +function simpleFunc() { +>simpleFunc : Symbol(simpleFunc, Decl(funcdecl.ts, 0, 0)) + + return "this is my simple func"; +} +var simpleFuncVar = simpleFunc; +>simpleFuncVar : Symbol(simpleFuncVar, Decl(funcdecl.ts, 3, 3)) +>simpleFunc : Symbol(simpleFunc, Decl(funcdecl.ts, 0, 0)) + +function anotherFuncNoReturn() { +>anotherFuncNoReturn : Symbol(anotherFuncNoReturn, Decl(funcdecl.ts, 3, 31)) +} +var anotherFuncNoReturnVar = anotherFuncNoReturn; +>anotherFuncNoReturnVar : Symbol(anotherFuncNoReturnVar, Decl(funcdecl.ts, 7, 3)) +>anotherFuncNoReturn : Symbol(anotherFuncNoReturn, Decl(funcdecl.ts, 3, 31)) + +function withReturn() : string{ +>withReturn : Symbol(withReturn, Decl(funcdecl.ts, 7, 49)) + + return "Hello"; +} +var withReturnVar = withReturn; +>withReturnVar : Symbol(withReturnVar, Decl(funcdecl.ts, 12, 3)) +>withReturn : Symbol(withReturn, Decl(funcdecl.ts, 7, 49)) + +function withParams(a : string) : string{ +>withParams : Symbol(withParams, Decl(funcdecl.ts, 12, 31)) +>a : Symbol(a, Decl(funcdecl.ts, 14, 20)) + + return a; +>a : Symbol(a, Decl(funcdecl.ts, 14, 20)) +} +var withparamsVar = withParams; +>withparamsVar : Symbol(withparamsVar, Decl(funcdecl.ts, 17, 3)) +>withParams : Symbol(withParams, Decl(funcdecl.ts, 12, 31)) + +function withMultiParams(a : number, b, c: Object) { +>withMultiParams : Symbol(withMultiParams, Decl(funcdecl.ts, 17, 31)) +>a : Symbol(a, Decl(funcdecl.ts, 19, 25)) +>b : Symbol(b, Decl(funcdecl.ts, 19, 36)) +>c : Symbol(c, Decl(funcdecl.ts, 19, 39)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + return a; +>a : Symbol(a, Decl(funcdecl.ts, 19, 25)) +} +var withMultiParamsVar = withMultiParams; +>withMultiParamsVar : Symbol(withMultiParamsVar, Decl(funcdecl.ts, 22, 3)) +>withMultiParams : Symbol(withMultiParams, Decl(funcdecl.ts, 17, 31)) + +function withOptionalParams(a?: string) { +>withOptionalParams : Symbol(withOptionalParams, Decl(funcdecl.ts, 22, 41)) +>a : Symbol(a, Decl(funcdecl.ts, 24, 28)) +} +var withOptionalParamsVar = withOptionalParams; +>withOptionalParamsVar : Symbol(withOptionalParamsVar, Decl(funcdecl.ts, 26, 3)) +>withOptionalParams : Symbol(withOptionalParams, Decl(funcdecl.ts, 22, 41)) + +function withInitializedParams(a: string, b0, b = 30, c = "string value") { +>withInitializedParams : Symbol(withInitializedParams, Decl(funcdecl.ts, 26, 47)) +>a : Symbol(a, Decl(funcdecl.ts, 28, 31)) +>b0 : Symbol(b0, Decl(funcdecl.ts, 28, 41)) +>b : Symbol(b, Decl(funcdecl.ts, 28, 45)) +>c : Symbol(c, Decl(funcdecl.ts, 28, 53)) +} +var withInitializedParamsVar = withInitializedParams; +>withInitializedParamsVar : Symbol(withInitializedParamsVar, Decl(funcdecl.ts, 30, 3)) +>withInitializedParams : Symbol(withInitializedParams, Decl(funcdecl.ts, 26, 47)) + +function withOptionalInitializedParams(a: string, c: string = "hello string") { +>withOptionalInitializedParams : Symbol(withOptionalInitializedParams, Decl(funcdecl.ts, 30, 53)) +>a : Symbol(a, Decl(funcdecl.ts, 32, 39)) +>c : Symbol(c, Decl(funcdecl.ts, 32, 49)) +} +var withOptionalInitializedParamsVar = withOptionalInitializedParams; +>withOptionalInitializedParamsVar : Symbol(withOptionalInitializedParamsVar, Decl(funcdecl.ts, 34, 3)) +>withOptionalInitializedParams : Symbol(withOptionalInitializedParams, Decl(funcdecl.ts, 30, 53)) + +function withRestParams(a: string, ... myRestParameter : number[]) { +>withRestParams : Symbol(withRestParams, Decl(funcdecl.ts, 34, 69)) +>a : Symbol(a, Decl(funcdecl.ts, 36, 24)) +>myRestParameter : Symbol(myRestParameter, Decl(funcdecl.ts, 36, 34)) + + return myRestParameter; +>myRestParameter : Symbol(myRestParameter, Decl(funcdecl.ts, 36, 34)) +} +var withRestParamsVar = withRestParams; +>withRestParamsVar : Symbol(withRestParamsVar, Decl(funcdecl.ts, 39, 3)) +>withRestParams : Symbol(withRestParams, Decl(funcdecl.ts, 34, 69)) + +function overload1(n: number) : string; +>overload1 : Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) +>n : Symbol(n, Decl(funcdecl.ts, 41, 19)) + +function overload1(s: string) : string; +>overload1 : Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) +>s : Symbol(s, Decl(funcdecl.ts, 42, 19)) + +function overload1(ns: any) { +>overload1 : Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) +>ns : Symbol(ns, Decl(funcdecl.ts, 43, 19)) + + return ns.toString(); +>ns : Symbol(ns, Decl(funcdecl.ts, 43, 19)) +} +var withOverloadSignature = overload1; +>withOverloadSignature : Symbol(withOverloadSignature, Decl(funcdecl.ts, 46, 3)) +>overload1 : Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) + +function f(n: () => void) { } +>f : Symbol(f, Decl(funcdecl.ts, 46, 38)) +>n : Symbol(n, Decl(funcdecl.ts, 48, 11)) + +module m2 { +>m2 : Symbol(m2, Decl(funcdecl.ts, 48, 29)) + + export function foo(n: () => void ) { +>foo : Symbol(foo, Decl(funcdecl.ts, 50, 11)) +>n : Symbol(n, Decl(funcdecl.ts, 51, 24)) + } + +} + +m2.foo(() => { +>m2.foo : Symbol(m2.foo, Decl(funcdecl.ts, 50, 11)) +>m2 : Symbol(m2, Decl(funcdecl.ts, 48, 29)) +>foo : Symbol(m2.foo, Decl(funcdecl.ts, 50, 11)) + + var b = 30; +>b : Symbol(b, Decl(funcdecl.ts, 58, 7)) + + return b; +>b : Symbol(b, Decl(funcdecl.ts, 58, 7)) + +}); + + +declare function fooAmbient(n: number): string; +>fooAmbient : Symbol(fooAmbient, Decl(funcdecl.ts, 60, 3)) +>n : Symbol(n, Decl(funcdecl.ts, 63, 28)) + +declare function overloadAmbient(n: number): string; +>overloadAmbient : Symbol(overloadAmbient, Decl(funcdecl.ts, 63, 47), Decl(funcdecl.ts, 65, 52)) +>n : Symbol(n, Decl(funcdecl.ts, 65, 33)) + +declare function overloadAmbient(s: string): string; +>overloadAmbient : Symbol(overloadAmbient, Decl(funcdecl.ts, 63, 47), Decl(funcdecl.ts, 65, 52)) +>s : Symbol(s, Decl(funcdecl.ts, 66, 33)) + +var f2 = () => { +>f2 : Symbol(f2, Decl(funcdecl.ts, 68, 3)) + + return "string"; +} diff --git a/tests/baselines/reference/funcdecl.types b/tests/baselines/reference/funcdecl.types index 2ea6a54098785..94c310d7b2511 100644 --- a/tests/baselines/reference/funcdecl.types +++ b/tests/baselines/reference/funcdecl.types @@ -1,166 +1,166 @@ === tests/cases/compiler/funcdecl.ts === function simpleFunc() { ->simpleFunc : () => string, Symbol(simpleFunc, Decl(funcdecl.ts, 0, 0)) +>simpleFunc : () => string return "this is my simple func"; >"this is my simple func" : string } var simpleFuncVar = simpleFunc; ->simpleFuncVar : () => string, Symbol(simpleFuncVar, Decl(funcdecl.ts, 3, 3)) ->simpleFunc : () => string, Symbol(simpleFunc, Decl(funcdecl.ts, 0, 0)) +>simpleFuncVar : () => string +>simpleFunc : () => string function anotherFuncNoReturn() { ->anotherFuncNoReturn : () => void, Symbol(anotherFuncNoReturn, Decl(funcdecl.ts, 3, 31)) +>anotherFuncNoReturn : () => void } var anotherFuncNoReturnVar = anotherFuncNoReturn; ->anotherFuncNoReturnVar : () => void, Symbol(anotherFuncNoReturnVar, Decl(funcdecl.ts, 7, 3)) ->anotherFuncNoReturn : () => void, Symbol(anotherFuncNoReturn, Decl(funcdecl.ts, 3, 31)) +>anotherFuncNoReturnVar : () => void +>anotherFuncNoReturn : () => void function withReturn() : string{ ->withReturn : () => string, Symbol(withReturn, Decl(funcdecl.ts, 7, 49)) +>withReturn : () => string return "Hello"; >"Hello" : string } var withReturnVar = withReturn; ->withReturnVar : () => string, Symbol(withReturnVar, Decl(funcdecl.ts, 12, 3)) ->withReturn : () => string, Symbol(withReturn, Decl(funcdecl.ts, 7, 49)) +>withReturnVar : () => string +>withReturn : () => string function withParams(a : string) : string{ ->withParams : (a: string) => string, Symbol(withParams, Decl(funcdecl.ts, 12, 31)) ->a : string, Symbol(a, Decl(funcdecl.ts, 14, 20)) +>withParams : (a: string) => string +>a : string return a; ->a : string, Symbol(a, Decl(funcdecl.ts, 14, 20)) +>a : string } var withparamsVar = withParams; ->withparamsVar : (a: string) => string, Symbol(withparamsVar, Decl(funcdecl.ts, 17, 3)) ->withParams : (a: string) => string, Symbol(withParams, Decl(funcdecl.ts, 12, 31)) +>withparamsVar : (a: string) => string +>withParams : (a: string) => string function withMultiParams(a : number, b, c: Object) { ->withMultiParams : (a: number, b: any, c: Object) => number, Symbol(withMultiParams, Decl(funcdecl.ts, 17, 31)) ->a : number, Symbol(a, Decl(funcdecl.ts, 19, 25)) ->b : any, Symbol(b, Decl(funcdecl.ts, 19, 36)) ->c : Object, Symbol(c, Decl(funcdecl.ts, 19, 39)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>withMultiParams : (a: number, b: any, c: Object) => number +>a : number +>b : any +>c : Object +>Object : Object return a; ->a : number, Symbol(a, Decl(funcdecl.ts, 19, 25)) +>a : number } var withMultiParamsVar = withMultiParams; ->withMultiParamsVar : (a: number, b: any, c: Object) => number, Symbol(withMultiParamsVar, Decl(funcdecl.ts, 22, 3)) ->withMultiParams : (a: number, b: any, c: Object) => number, Symbol(withMultiParams, Decl(funcdecl.ts, 17, 31)) +>withMultiParamsVar : (a: number, b: any, c: Object) => number +>withMultiParams : (a: number, b: any, c: Object) => number function withOptionalParams(a?: string) { ->withOptionalParams : (a?: string) => void, Symbol(withOptionalParams, Decl(funcdecl.ts, 22, 41)) ->a : string, Symbol(a, Decl(funcdecl.ts, 24, 28)) +>withOptionalParams : (a?: string) => void +>a : string } var withOptionalParamsVar = withOptionalParams; ->withOptionalParamsVar : (a?: string) => void, Symbol(withOptionalParamsVar, Decl(funcdecl.ts, 26, 3)) ->withOptionalParams : (a?: string) => void, Symbol(withOptionalParams, Decl(funcdecl.ts, 22, 41)) +>withOptionalParamsVar : (a?: string) => void +>withOptionalParams : (a?: string) => void function withInitializedParams(a: string, b0, b = 30, c = "string value") { ->withInitializedParams : (a: string, b0: any, b?: number, c?: string) => void, Symbol(withInitializedParams, Decl(funcdecl.ts, 26, 47)) ->a : string, Symbol(a, Decl(funcdecl.ts, 28, 31)) ->b0 : any, Symbol(b0, Decl(funcdecl.ts, 28, 41)) ->b : number, Symbol(b, Decl(funcdecl.ts, 28, 45)) +>withInitializedParams : (a: string, b0: any, b?: number, c?: string) => void +>a : string +>b0 : any +>b : number >30 : number ->c : string, Symbol(c, Decl(funcdecl.ts, 28, 53)) +>c : string >"string value" : string } var withInitializedParamsVar = withInitializedParams; ->withInitializedParamsVar : (a: string, b0: any, b?: number, c?: string) => void, Symbol(withInitializedParamsVar, Decl(funcdecl.ts, 30, 3)) ->withInitializedParams : (a: string, b0: any, b?: number, c?: string) => void, Symbol(withInitializedParams, Decl(funcdecl.ts, 26, 47)) +>withInitializedParamsVar : (a: string, b0: any, b?: number, c?: string) => void +>withInitializedParams : (a: string, b0: any, b?: number, c?: string) => void function withOptionalInitializedParams(a: string, c: string = "hello string") { ->withOptionalInitializedParams : (a: string, c?: string) => void, Symbol(withOptionalInitializedParams, Decl(funcdecl.ts, 30, 53)) ->a : string, Symbol(a, Decl(funcdecl.ts, 32, 39)) ->c : string, Symbol(c, Decl(funcdecl.ts, 32, 49)) +>withOptionalInitializedParams : (a: string, c?: string) => void +>a : string +>c : string >"hello string" : string } var withOptionalInitializedParamsVar = withOptionalInitializedParams; ->withOptionalInitializedParamsVar : (a: string, c?: string) => void, Symbol(withOptionalInitializedParamsVar, Decl(funcdecl.ts, 34, 3)) ->withOptionalInitializedParams : (a: string, c?: string) => void, Symbol(withOptionalInitializedParams, Decl(funcdecl.ts, 30, 53)) +>withOptionalInitializedParamsVar : (a: string, c?: string) => void +>withOptionalInitializedParams : (a: string, c?: string) => void function withRestParams(a: string, ... myRestParameter : number[]) { ->withRestParams : (a: string, ...myRestParameter: number[]) => number[], Symbol(withRestParams, Decl(funcdecl.ts, 34, 69)) ->a : string, Symbol(a, Decl(funcdecl.ts, 36, 24)) ->myRestParameter : number[], Symbol(myRestParameter, Decl(funcdecl.ts, 36, 34)) +>withRestParams : (a: string, ...myRestParameter: number[]) => number[] +>a : string +>myRestParameter : number[] return myRestParameter; ->myRestParameter : number[], Symbol(myRestParameter, Decl(funcdecl.ts, 36, 34)) +>myRestParameter : number[] } var withRestParamsVar = withRestParams; ->withRestParamsVar : (a: string, ...myRestParameter: number[]) => number[], Symbol(withRestParamsVar, Decl(funcdecl.ts, 39, 3)) ->withRestParams : (a: string, ...myRestParameter: number[]) => number[], Symbol(withRestParams, Decl(funcdecl.ts, 34, 69)) +>withRestParamsVar : (a: string, ...myRestParameter: number[]) => number[] +>withRestParams : (a: string, ...myRestParameter: number[]) => number[] function overload1(n: number) : string; ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) ->n : number, Symbol(n, Decl(funcdecl.ts, 41, 19)) +>overload1 : { (n: number): string; (s: string): string; } +>n : number function overload1(s: string) : string; ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) ->s : string, Symbol(s, Decl(funcdecl.ts, 42, 19)) +>overload1 : { (n: number): string; (s: string): string; } +>s : string function overload1(ns: any) { ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) ->ns : any, Symbol(ns, Decl(funcdecl.ts, 43, 19)) +>overload1 : { (n: number): string; (s: string): string; } +>ns : any return ns.toString(); >ns.toString() : any >ns.toString : any ->ns : any, Symbol(ns, Decl(funcdecl.ts, 43, 19)) +>ns : any >toString : any } var withOverloadSignature = overload1; ->withOverloadSignature : { (n: number): string; (s: string): string; }, Symbol(withOverloadSignature, Decl(funcdecl.ts, 46, 3)) ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) +>withOverloadSignature : { (n: number): string; (s: string): string; } +>overload1 : { (n: number): string; (s: string): string; } function f(n: () => void) { } ->f : (n: () => void) => void, Symbol(f, Decl(funcdecl.ts, 46, 38)) ->n : () => void, Symbol(n, Decl(funcdecl.ts, 48, 11)) +>f : (n: () => void) => void +>n : () => void module m2 { ->m2 : typeof m2, Symbol(m2, Decl(funcdecl.ts, 48, 29)) +>m2 : typeof m2 export function foo(n: () => void ) { ->foo : (n: () => void) => void, Symbol(foo, Decl(funcdecl.ts, 50, 11)) ->n : () => void, Symbol(n, Decl(funcdecl.ts, 51, 24)) +>foo : (n: () => void) => void +>n : () => void } } m2.foo(() => { >m2.foo(() => { var b = 30; return b;}) : void ->m2.foo : (n: () => void) => void, Symbol(m2.foo, Decl(funcdecl.ts, 50, 11)) ->m2 : typeof m2, Symbol(m2, Decl(funcdecl.ts, 48, 29)) ->foo : (n: () => void) => void, Symbol(m2.foo, Decl(funcdecl.ts, 50, 11)) +>m2.foo : (n: () => void) => void +>m2 : typeof m2 +>foo : (n: () => void) => void >() => { var b = 30; return b;} : () => number var b = 30; ->b : number, Symbol(b, Decl(funcdecl.ts, 58, 7)) +>b : number >30 : number return b; ->b : number, Symbol(b, Decl(funcdecl.ts, 58, 7)) +>b : number }); declare function fooAmbient(n: number): string; ->fooAmbient : (n: number) => string, Symbol(fooAmbient, Decl(funcdecl.ts, 60, 3)) ->n : number, Symbol(n, Decl(funcdecl.ts, 63, 28)) +>fooAmbient : (n: number) => string +>n : number declare function overloadAmbient(n: number): string; ->overloadAmbient : { (n: number): string; (s: string): string; }, Symbol(overloadAmbient, Decl(funcdecl.ts, 63, 47), Decl(funcdecl.ts, 65, 52)) ->n : number, Symbol(n, Decl(funcdecl.ts, 65, 33)) +>overloadAmbient : { (n: number): string; (s: string): string; } +>n : number declare function overloadAmbient(s: string): string; ->overloadAmbient : { (n: number): string; (s: string): string; }, Symbol(overloadAmbient, Decl(funcdecl.ts, 63, 47), Decl(funcdecl.ts, 65, 52)) ->s : string, Symbol(s, Decl(funcdecl.ts, 66, 33)) +>overloadAmbient : { (n: number): string; (s: string): string; } +>s : string var f2 = () => { ->f2 : () => string, Symbol(f2, Decl(funcdecl.ts, 68, 3)) +>f2 : () => string >() => { return "string";} : () => string return "string"; diff --git a/tests/baselines/reference/funcdecl.types.pull b/tests/baselines/reference/funcdecl.types.pull deleted file mode 100644 index c7205e84e4afd..0000000000000 --- a/tests/baselines/reference/funcdecl.types.pull +++ /dev/null @@ -1,168 +0,0 @@ -=== tests/cases/compiler/funcdecl.ts === -function simpleFunc() { ->simpleFunc : () => string, Symbol(simpleFunc, Decl(funcdecl.ts, 0, 0)) - - return "this is my simple func"; ->"this is my simple func" : string -} -var simpleFuncVar = simpleFunc; ->simpleFuncVar : () => string, Symbol(simpleFuncVar, Decl(funcdecl.ts, 3, 3)) ->simpleFunc : () => string, Symbol(simpleFunc, Decl(funcdecl.ts, 0, 0)) - -function anotherFuncNoReturn() { ->anotherFuncNoReturn : () => void, Symbol(anotherFuncNoReturn, Decl(funcdecl.ts, 3, 31)) -} -var anotherFuncNoReturnVar = anotherFuncNoReturn; ->anotherFuncNoReturnVar : () => void, Symbol(anotherFuncNoReturnVar, Decl(funcdecl.ts, 7, 3)) ->anotherFuncNoReturn : () => void, Symbol(anotherFuncNoReturn, Decl(funcdecl.ts, 3, 31)) - -function withReturn() : string{ ->withReturn : () => string, Symbol(withReturn, Decl(funcdecl.ts, 7, 49)) - - return "Hello"; ->"Hello" : string -} -var withReturnVar = withReturn; ->withReturnVar : () => string, Symbol(withReturnVar, Decl(funcdecl.ts, 12, 3)) ->withReturn : () => string, Symbol(withReturn, Decl(funcdecl.ts, 7, 49)) - -function withParams(a : string) : string{ ->withParams : (a: string) => string, Symbol(withParams, Decl(funcdecl.ts, 12, 31)) ->a : string, Symbol(a, Decl(funcdecl.ts, 14, 20)) - - return a; ->a : string, Symbol(a, Decl(funcdecl.ts, 14, 20)) -} -var withparamsVar = withParams; ->withparamsVar : (a: string) => string, Symbol(withparamsVar, Decl(funcdecl.ts, 17, 3)) ->withParams : (a: string) => string, Symbol(withParams, Decl(funcdecl.ts, 12, 31)) - -function withMultiParams(a : number, b, c: Object) { ->withMultiParams : (a: number, b: any, c: Object) => number, Symbol(withMultiParams, Decl(funcdecl.ts, 17, 31)) ->a : number, Symbol(a, Decl(funcdecl.ts, 19, 25)) ->b : any, Symbol(b, Decl(funcdecl.ts, 19, 36)) ->c : Object, Symbol(c, Decl(funcdecl.ts, 19, 39)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) - - return a; ->a : number, Symbol(a, Decl(funcdecl.ts, 19, 25)) -} -var withMultiParamsVar = withMultiParams; ->withMultiParamsVar : (a: number, b: any, c: Object) => number, Symbol(withMultiParamsVar, Decl(funcdecl.ts, 22, 3)) ->withMultiParams : (a: number, b: any, c: Object) => number, Symbol(withMultiParams, Decl(funcdecl.ts, 17, 31)) - -function withOptionalParams(a?: string) { ->withOptionalParams : (a?: string) => void, Symbol(withOptionalParams, Decl(funcdecl.ts, 22, 41)) ->a : string, Symbol(a, Decl(funcdecl.ts, 24, 28)) -} -var withOptionalParamsVar = withOptionalParams; ->withOptionalParamsVar : (a?: string) => void, Symbol(withOptionalParamsVar, Decl(funcdecl.ts, 26, 3)) ->withOptionalParams : (a?: string) => void, Symbol(withOptionalParams, Decl(funcdecl.ts, 22, 41)) - -function withInitializedParams(a: string, b0, b = 30, c = "string value") { ->withInitializedParams : (a: string, b0: any, b?: number, c?: string) => void, Symbol(withInitializedParams, Decl(funcdecl.ts, 26, 47)) ->a : string, Symbol(a, Decl(funcdecl.ts, 28, 31)) ->b0 : any, Symbol(b0, Decl(funcdecl.ts, 28, 41)) ->b : number, Symbol(b, Decl(funcdecl.ts, 28, 45)) ->30 : number ->c : string, Symbol(c, Decl(funcdecl.ts, 28, 53)) ->"string value" : string -} -var withInitializedParamsVar = withInitializedParams; ->withInitializedParamsVar : (a: string, b0: any, b?: number, c?: string) => void, Symbol(withInitializedParamsVar, Decl(funcdecl.ts, 30, 3)) ->withInitializedParams : (a: string, b0: any, b?: number, c?: string) => void, Symbol(withInitializedParams, Decl(funcdecl.ts, 26, 47)) - -function withOptionalInitializedParams(a: string, c: string = "hello string") { ->withOptionalInitializedParams : (a: string, c?: string) => void, Symbol(withOptionalInitializedParams, Decl(funcdecl.ts, 30, 53)) ->a : string, Symbol(a, Decl(funcdecl.ts, 32, 39)) ->c : string, Symbol(c, Decl(funcdecl.ts, 32, 49)) ->"hello string" : "hello string" -} -var withOptionalInitializedParamsVar = withOptionalInitializedParams; ->withOptionalInitializedParamsVar : (a: string, c?: string) => void, Symbol(withOptionalInitializedParamsVar, Decl(funcdecl.ts, 34, 3)) ->withOptionalInitializedParams : (a: string, c?: string) => void, Symbol(withOptionalInitializedParams, Decl(funcdecl.ts, 30, 53)) - -function withRestParams(a: string, ... myRestParameter : number[]) { ->withRestParams : (a: string, ...myRestParameter: number[]) => number[], Symbol(withRestParams, Decl(funcdecl.ts, 34, 69)) ->a : string, Symbol(a, Decl(funcdecl.ts, 36, 24)) ->myRestParameter : number[], Symbol(myRestParameter, Decl(funcdecl.ts, 36, 34)) - - return myRestParameter; ->myRestParameter : number[], Symbol(myRestParameter, Decl(funcdecl.ts, 36, 34)) -} -var withRestParamsVar = withRestParams; ->withRestParamsVar : (a: string, ...myRestParameter: number[]) => number[], Symbol(withRestParamsVar, Decl(funcdecl.ts, 39, 3)) ->withRestParams : (a: string, ...myRestParameter: number[]) => number[], Symbol(withRestParams, Decl(funcdecl.ts, 34, 69)) - -function overload1(n: number) : string; ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) ->n : number, Symbol(n, Decl(funcdecl.ts, 41, 19)) - -function overload1(s: string) : string; ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) ->s : string, Symbol(s, Decl(funcdecl.ts, 42, 19)) - -function overload1(ns: any) { ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) ->ns : any, Symbol(ns, Decl(funcdecl.ts, 43, 19)) - - return ns.toString(); ->ns.toString() : any ->ns.toString : any ->ns : any, Symbol(ns, Decl(funcdecl.ts, 43, 19)) ->toString : any -} -var withOverloadSignature = overload1; ->withOverloadSignature : { (n: number): string; (s: string): string; }, Symbol(withOverloadSignature, Decl(funcdecl.ts, 46, 3)) ->overload1 : { (n: number): string; (s: string): string; }, Symbol(overload1, Decl(funcdecl.ts, 39, 39), Decl(funcdecl.ts, 41, 39), Decl(funcdecl.ts, 42, 39)) - -function f(n: () => void) { } ->f : (n: () => void) => void, Symbol(f, Decl(funcdecl.ts, 46, 38)) ->n : () => void, Symbol(n, Decl(funcdecl.ts, 48, 11)) - -module m2 { ->m2 : typeof m2, Symbol(m2, Decl(funcdecl.ts, 48, 29)) - - export function foo(n: () => void ) { ->foo : (n: () => void) => void, Symbol(foo, Decl(funcdecl.ts, 50, 11)) ->n : () => void, Symbol(n, Decl(funcdecl.ts, 51, 24)) - } - -} - -m2.foo(() => { ->m2.foo(() => { var b = 30; return b;}) : void ->m2.foo : (n: () => void) => void, Symbol(m2.foo, Decl(funcdecl.ts, 50, 11)) ->m2 : typeof m2, Symbol(m2, Decl(funcdecl.ts, 48, 29)) ->foo : (n: () => void) => void, Symbol(m2.foo, Decl(funcdecl.ts, 50, 11)) ->() => { var b = 30; return b;} : () => number - - var b = 30; ->b : number, Symbol(b, Decl(funcdecl.ts, 58, 7)) ->30 : number - - return b; ->b : number, Symbol(b, Decl(funcdecl.ts, 58, 7)) - -}); - - -declare function fooAmbient(n: number): string; ->fooAmbient : (n: number) => string, Symbol(fooAmbient, Decl(funcdecl.ts, 60, 3)) ->n : number, Symbol(n, Decl(funcdecl.ts, 63, 28)) - -declare function overloadAmbient(n: number): string; ->overloadAmbient : { (n: number): string; (s: string): string; }, Symbol(overloadAmbient, Decl(funcdecl.ts, 63, 47), Decl(funcdecl.ts, 65, 52)) ->n : number, Symbol(n, Decl(funcdecl.ts, 65, 33)) - -declare function overloadAmbient(s: string): string; ->overloadAmbient : { (n: number): string; (s: string): string; }, Symbol(overloadAmbient, Decl(funcdecl.ts, 63, 47), Decl(funcdecl.ts, 65, 52)) ->s : string, Symbol(s, Decl(funcdecl.ts, 66, 33)) - -var f2 = () => { ->f2 : () => string, Symbol(f2, Decl(funcdecl.ts, 68, 3)) ->() => { return "string";} : () => string - - return "string"; ->"string" : string -} diff --git a/tests/baselines/reference/functionAssignmentError.symbols b/tests/baselines/reference/functionAssignmentError.symbols new file mode 100644 index 0000000000000..b0d57ac410233 --- /dev/null +++ b/tests/baselines/reference/functionAssignmentError.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/functionAssignmentError.ts === +var func = function (){return "ONE";}; +>func : Symbol(func, Decl(functionAssignmentError.ts, 0, 3)) + +func = function (){return "ONE";}; +>func : Symbol(func, Decl(functionAssignmentError.ts, 0, 3)) + diff --git a/tests/baselines/reference/functionAssignmentError.types b/tests/baselines/reference/functionAssignmentError.types index 9b96e8e84206e..6430aa10fc468 100644 --- a/tests/baselines/reference/functionAssignmentError.types +++ b/tests/baselines/reference/functionAssignmentError.types @@ -1,12 +1,12 @@ === tests/cases/compiler/functionAssignmentError.ts === var func = function (){return "ONE";}; ->func : () => string, Symbol(func, Decl(functionAssignmentError.ts, 0, 3)) +>func : () => string >function (){return "ONE";} : () => string >"ONE" : string func = function (){return "ONE";}; >func = function (){return "ONE";} : () => string ->func : () => string, Symbol(func, Decl(functionAssignmentError.ts, 0, 3)) +>func : () => string >function (){return "ONE";} : () => string >"ONE" : string diff --git a/tests/baselines/reference/functionCall1.symbols b/tests/baselines/reference/functionCall1.symbols new file mode 100644 index 0000000000000..522a2bae5f222 --- /dev/null +++ b/tests/baselines/reference/functionCall1.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/functionCall1.ts === +function foo():any{return ""}; +>foo : Symbol(foo, Decl(functionCall1.ts, 0, 0)) + +var x = foo(); +>x : Symbol(x, Decl(functionCall1.ts, 1, 3)) +>foo : Symbol(foo, Decl(functionCall1.ts, 0, 0)) + diff --git a/tests/baselines/reference/functionCall1.types b/tests/baselines/reference/functionCall1.types index 3a818c5fd9d0e..777fcd79f9135 100644 --- a/tests/baselines/reference/functionCall1.types +++ b/tests/baselines/reference/functionCall1.types @@ -1,10 +1,10 @@ === tests/cases/compiler/functionCall1.ts === function foo():any{return ""}; ->foo : () => any, Symbol(foo, Decl(functionCall1.ts, 0, 0)) +>foo : () => any >"" : string var x = foo(); ->x : any, Symbol(x, Decl(functionCall1.ts, 1, 3)) +>x : any >foo() : any ->foo : () => any, Symbol(foo, Decl(functionCall1.ts, 0, 0)) +>foo : () => any diff --git a/tests/baselines/reference/functionCall2.symbols b/tests/baselines/reference/functionCall2.symbols new file mode 100644 index 0000000000000..91f5a3127cd59 --- /dev/null +++ b/tests/baselines/reference/functionCall2.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/functionCall2.ts === +function foo():number{return 1}; +>foo : Symbol(foo, Decl(functionCall2.ts, 0, 0)) + +var x = foo(); +>x : Symbol(x, Decl(functionCall2.ts, 1, 3)) +>foo : Symbol(foo, Decl(functionCall2.ts, 0, 0)) + diff --git a/tests/baselines/reference/functionCall2.types b/tests/baselines/reference/functionCall2.types index fb04ee56c9e9b..152d54cb1863c 100644 --- a/tests/baselines/reference/functionCall2.types +++ b/tests/baselines/reference/functionCall2.types @@ -1,10 +1,10 @@ === tests/cases/compiler/functionCall2.ts === function foo():number{return 1}; ->foo : () => number, Symbol(foo, Decl(functionCall2.ts, 0, 0)) +>foo : () => number >1 : number var x = foo(); ->x : number, Symbol(x, Decl(functionCall2.ts, 1, 3)) +>x : number >foo() : number ->foo : () => number, Symbol(foo, Decl(functionCall2.ts, 0, 0)) +>foo : () => number diff --git a/tests/baselines/reference/functionCall3.symbols b/tests/baselines/reference/functionCall3.symbols new file mode 100644 index 0000000000000..bd16e3e543ee4 --- /dev/null +++ b/tests/baselines/reference/functionCall3.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/functionCall3.ts === +function foo():any[]{return [1];} +>foo : Symbol(foo, Decl(functionCall3.ts, 0, 0)) + +var x = foo(); +>x : Symbol(x, Decl(functionCall3.ts, 1, 3)) +>foo : Symbol(foo, Decl(functionCall3.ts, 0, 0)) + diff --git a/tests/baselines/reference/functionCall3.types b/tests/baselines/reference/functionCall3.types index d06b9406c97fa..b58803ae66657 100644 --- a/tests/baselines/reference/functionCall3.types +++ b/tests/baselines/reference/functionCall3.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionCall3.ts === function foo():any[]{return [1];} ->foo : () => any[], Symbol(foo, Decl(functionCall3.ts, 0, 0)) +>foo : () => any[] >[1] : number[] >1 : number var x = foo(); ->x : any[], Symbol(x, Decl(functionCall3.ts, 1, 3)) +>x : any[] >foo() : any[] ->foo : () => any[], Symbol(foo, Decl(functionCall3.ts, 0, 0)) +>foo : () => any[] diff --git a/tests/baselines/reference/functionCall4.symbols b/tests/baselines/reference/functionCall4.symbols new file mode 100644 index 0000000000000..2eee1fbbab509 --- /dev/null +++ b/tests/baselines/reference/functionCall4.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/functionCall4.ts === +function foo():any{return ""}; +>foo : Symbol(foo, Decl(functionCall4.ts, 0, 0)) + +function bar():()=>any{return foo}; +>bar : Symbol(bar, Decl(functionCall4.ts, 0, 30)) +>foo : Symbol(foo, Decl(functionCall4.ts, 0, 0)) + +var x = bar(); +>x : Symbol(x, Decl(functionCall4.ts, 2, 3)) +>bar : Symbol(bar, Decl(functionCall4.ts, 0, 30)) + diff --git a/tests/baselines/reference/functionCall4.types b/tests/baselines/reference/functionCall4.types index 4b9738c0acb85..ea60c759a7dc4 100644 --- a/tests/baselines/reference/functionCall4.types +++ b/tests/baselines/reference/functionCall4.types @@ -1,14 +1,14 @@ === tests/cases/compiler/functionCall4.ts === function foo():any{return ""}; ->foo : () => any, Symbol(foo, Decl(functionCall4.ts, 0, 0)) +>foo : () => any >"" : string function bar():()=>any{return foo}; ->bar : () => () => any, Symbol(bar, Decl(functionCall4.ts, 0, 30)) ->foo : () => any, Symbol(foo, Decl(functionCall4.ts, 0, 0)) +>bar : () => () => any +>foo : () => any var x = bar(); ->x : () => any, Symbol(x, Decl(functionCall4.ts, 2, 3)) +>x : () => any >bar() : () => any ->bar : () => () => any, Symbol(bar, Decl(functionCall4.ts, 0, 30)) +>bar : () => () => any diff --git a/tests/baselines/reference/functionCall5.symbols b/tests/baselines/reference/functionCall5.symbols new file mode 100644 index 0000000000000..de166231204ad --- /dev/null +++ b/tests/baselines/reference/functionCall5.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionCall5.ts === +module m1 { export class c1 { public a; }} +>m1 : Symbol(m1, Decl(functionCall5.ts, 0, 0)) +>c1 : Symbol(c1, Decl(functionCall5.ts, 0, 11)) +>a : Symbol(a, Decl(functionCall5.ts, 0, 29)) + +function foo():m1.c1{return new m1.c1();}; +>foo : Symbol(foo, Decl(functionCall5.ts, 0, 42)) +>m1 : Symbol(m1, Decl(functionCall5.ts, 0, 0)) +>c1 : Symbol(m1.c1, Decl(functionCall5.ts, 0, 11)) +>m1.c1 : Symbol(m1.c1, Decl(functionCall5.ts, 0, 11)) +>m1 : Symbol(m1, Decl(functionCall5.ts, 0, 0)) +>c1 : Symbol(m1.c1, Decl(functionCall5.ts, 0, 11)) + +var x = foo(); +>x : Symbol(x, Decl(functionCall5.ts, 2, 3)) +>foo : Symbol(foo, Decl(functionCall5.ts, 0, 42)) + diff --git a/tests/baselines/reference/functionCall5.types b/tests/baselines/reference/functionCall5.types index 2e5f1b9980c52..b55150fc1a77a 100644 --- a/tests/baselines/reference/functionCall5.types +++ b/tests/baselines/reference/functionCall5.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionCall5.ts === module m1 { export class c1 { public a; }} ->m1 : typeof m1, Symbol(m1, Decl(functionCall5.ts, 0, 0)) ->c1 : c1, Symbol(c1, Decl(functionCall5.ts, 0, 11)) ->a : any, Symbol(a, Decl(functionCall5.ts, 0, 29)) +>m1 : typeof m1 +>c1 : c1 +>a : any function foo():m1.c1{return new m1.c1();}; ->foo : () => m1.c1, Symbol(foo, Decl(functionCall5.ts, 0, 42)) ->m1 : any, Symbol(m1, Decl(functionCall5.ts, 0, 0)) ->c1 : m1.c1, Symbol(m1.c1, Decl(functionCall5.ts, 0, 11)) +>foo : () => m1.c1 +>m1 : any +>c1 : m1.c1 >new m1.c1() : m1.c1 ->m1.c1 : typeof m1.c1, Symbol(m1.c1, Decl(functionCall5.ts, 0, 11)) ->m1 : typeof m1, Symbol(m1, Decl(functionCall5.ts, 0, 0)) ->c1 : typeof m1.c1, Symbol(m1.c1, Decl(functionCall5.ts, 0, 11)) +>m1.c1 : typeof m1.c1 +>m1 : typeof m1 +>c1 : typeof m1.c1 var x = foo(); ->x : m1.c1, Symbol(x, Decl(functionCall5.ts, 2, 3)) +>x : m1.c1 >foo() : m1.c1 ->foo : () => m1.c1, Symbol(foo, Decl(functionCall5.ts, 0, 42)) +>foo : () => m1.c1 diff --git a/tests/baselines/reference/functionConstraintSatisfaction.symbols b/tests/baselines/reference/functionConstraintSatisfaction.symbols new file mode 100644 index 0000000000000..eb71bb78e25f2 --- /dev/null +++ b/tests/baselines/reference/functionConstraintSatisfaction.symbols @@ -0,0 +1,227 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction.ts === +// satisfaction of a constraint to Function, no errors expected + +function foo(x: T): T { return x; } +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 2, 13)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 2, 33)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 2, 13)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 2, 13)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 2, 33)) + +interface I { +>I : Symbol(I, Decl(functionConstraintSatisfaction.ts, 2, 55)) + + (): string; +} +var i: I; +>i : Symbol(i, Decl(functionConstraintSatisfaction.ts, 7, 3)) +>I : Symbol(I, Decl(functionConstraintSatisfaction.ts, 2, 55)) + +class C { +>C : Symbol(C, Decl(functionConstraintSatisfaction.ts, 7, 9)) + + foo: string; +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 9, 9)) +} + +var a: { (): string }; +>a : Symbol(a, Decl(functionConstraintSatisfaction.ts, 13, 3)) + +var b: { new (): string }; +>b : Symbol(b, Decl(functionConstraintSatisfaction.ts, 14, 3)) + +var c: { (): string; (x): string }; +>c : Symbol(c, Decl(functionConstraintSatisfaction.ts, 15, 3)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 15, 22)) + +var r = foo(new Function()); +>r : Symbol(r, Decl(functionConstraintSatisfaction.ts, 17, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var r1 = foo((x) => x); +>r1 : Symbol(r1, Decl(functionConstraintSatisfaction.ts, 18, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 18, 14)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 18, 14)) + +var r2 = foo((x: string[]) => x); +>r2 : Symbol(r2, Decl(functionConstraintSatisfaction.ts, 19, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 19, 14)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 19, 14)) + +var r3 = foo(function (x) { return x }); +>r3 : Symbol(r3, Decl(functionConstraintSatisfaction.ts, 20, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 20, 23)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 20, 23)) + +var r4 = foo(function (x: string[]) { return x }); +>r4 : Symbol(r4, Decl(functionConstraintSatisfaction.ts, 21, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 21, 23)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 21, 23)) + +var r5 = foo(i); +>r5 : Symbol(r5, Decl(functionConstraintSatisfaction.ts, 22, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>i : Symbol(i, Decl(functionConstraintSatisfaction.ts, 7, 3)) + +var r6 = foo(C); +>r6 : Symbol(r6, Decl(functionConstraintSatisfaction.ts, 23, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>C : Symbol(C, Decl(functionConstraintSatisfaction.ts, 7, 9)) + +var r7 = foo(b); +>r7 : Symbol(r7, Decl(functionConstraintSatisfaction.ts, 24, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>b : Symbol(b, Decl(functionConstraintSatisfaction.ts, 14, 3)) + +var r8 = foo(c); +>r8 : Symbol(r8, Decl(functionConstraintSatisfaction.ts, 25, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>c : Symbol(c, Decl(functionConstraintSatisfaction.ts, 15, 3)) + +interface I2 { +>I2 : Symbol(I2, Decl(functionConstraintSatisfaction.ts, 25, 16)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 27, 13)) + + (x: T): T; +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 28, 5)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 27, 13)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 27, 13)) +} +var i2: I2; +>i2 : Symbol(i2, Decl(functionConstraintSatisfaction.ts, 30, 3)) +>I2 : Symbol(I2, Decl(functionConstraintSatisfaction.ts, 25, 16)) + +class C2 { +>C2 : Symbol(C2, Decl(functionConstraintSatisfaction.ts, 30, 19)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 32, 9)) + + foo: T; +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 32, 13)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 32, 9)) +} + +var a2: { (x: T): T }; +>a2 : Symbol(a2, Decl(functionConstraintSatisfaction.ts, 36, 3)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 36, 11)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 36, 14)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 36, 11)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 36, 11)) + +var b2: { new (x: T): T }; +>b2 : Symbol(b2, Decl(functionConstraintSatisfaction.ts, 37, 3)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 37, 15)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 37, 18)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 37, 15)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 37, 15)) + +var c2: { (x: T): T; (x: T, y: T): T }; +>c2 : Symbol(c2, Decl(functionConstraintSatisfaction.ts, 38, 3)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 11)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 38, 14)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 11)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 11)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 38, 28)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) +>y : Symbol(y, Decl(functionConstraintSatisfaction.ts, 38, 33)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) + +var r9 = foo((x: U) => x); +>r9 : Symbol(r9, Decl(functionConstraintSatisfaction.ts, 40, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 40, 14)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 40, 17)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 40, 14)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 40, 17)) + +var r10 = foo(function (x: U) { return x; }); +>r10 : Symbol(r10, Decl(functionConstraintSatisfaction.ts, 41, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 41, 24)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 41, 27)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 41, 24)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 41, 27)) + +var r11 = foo((x: U) => x); +>r11 : Symbol(r11, Decl(functionConstraintSatisfaction.ts, 42, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 42, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 42, 31)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 42, 15)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 42, 31)) + +var r12 = foo((x: U, y: V) => x); +>r12 : Symbol(r12, Decl(functionConstraintSatisfaction.ts, 43, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 43, 15)) +>V : Symbol(V, Decl(functionConstraintSatisfaction.ts, 43, 17)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 43, 21)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 43, 15)) +>y : Symbol(y, Decl(functionConstraintSatisfaction.ts, 43, 26)) +>V : Symbol(V, Decl(functionConstraintSatisfaction.ts, 43, 17)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 43, 21)) + +var r13 = foo(i2); +>r13 : Symbol(r13, Decl(functionConstraintSatisfaction.ts, 44, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>i2 : Symbol(i2, Decl(functionConstraintSatisfaction.ts, 30, 3)) + +var r14 = foo(C2); +>r14 : Symbol(r14, Decl(functionConstraintSatisfaction.ts, 45, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>C2 : Symbol(C2, Decl(functionConstraintSatisfaction.ts, 30, 19)) + +var r15 = foo(b2); +>r15 : Symbol(r15, Decl(functionConstraintSatisfaction.ts, 46, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>b2 : Symbol(b2, Decl(functionConstraintSatisfaction.ts, 37, 3)) + +var r16 = foo(c2); +>r16 : Symbol(r16, Decl(functionConstraintSatisfaction.ts, 47, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>c2 : Symbol(c2, Decl(functionConstraintSatisfaction.ts, 38, 3)) + +interface F2 extends Function { foo: string; } +>F2 : Symbol(F2, Decl(functionConstraintSatisfaction.ts, 47, 18)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 49, 31)) + +var f2: F2; +>f2 : Symbol(f2, Decl(functionConstraintSatisfaction.ts, 50, 3)) +>F2 : Symbol(F2, Decl(functionConstraintSatisfaction.ts, 47, 18)) + +var r17 = foo(f2); +>r17 : Symbol(r17, Decl(functionConstraintSatisfaction.ts, 51, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>f2 : Symbol(f2, Decl(functionConstraintSatisfaction.ts, 50, 3)) + +function foo2(x: T, y: U) { +>foo2 : Symbol(foo2, Decl(functionConstraintSatisfaction.ts, 51, 18)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 53, 14)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 53, 37)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 53, 62)) +>T : Symbol(T, Decl(functionConstraintSatisfaction.ts, 53, 14)) +>y : Symbol(y, Decl(functionConstraintSatisfaction.ts, 53, 67)) +>U : Symbol(U, Decl(functionConstraintSatisfaction.ts, 53, 37)) + + foo(x); +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction.ts, 53, 62)) + + foo(y); +>foo : Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>y : Symbol(y, Decl(functionConstraintSatisfaction.ts, 53, 67)) +} +//function foo2(x: T, y: U) { +// foo(x); +// foo(y); +//} diff --git a/tests/baselines/reference/functionConstraintSatisfaction.types b/tests/baselines/reference/functionConstraintSatisfaction.types index ff54680c31030..7363fa162d3fe 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction.types +++ b/tests/baselines/reference/functionConstraintSatisfaction.types @@ -2,253 +2,253 @@ // satisfaction of a constraint to Function, no errors expected function foo(x: T): T { return x; } ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 2, 13)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 2, 33)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 2, 13)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 2, 13)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 2, 33)) +>foo : (x: T) => T +>T : T +>Function : Function +>x : T +>T : T +>T : T +>x : T interface I { ->I : I, Symbol(I, Decl(functionConstraintSatisfaction.ts, 2, 55)) +>I : I (): string; } var i: I; ->i : I, Symbol(i, Decl(functionConstraintSatisfaction.ts, 7, 3)) ->I : I, Symbol(I, Decl(functionConstraintSatisfaction.ts, 2, 55)) +>i : I +>I : I class C { ->C : C, Symbol(C, Decl(functionConstraintSatisfaction.ts, 7, 9)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 9, 9)) +>foo : string } var a: { (): string }; ->a : () => string, Symbol(a, Decl(functionConstraintSatisfaction.ts, 13, 3)) +>a : () => string var b: { new (): string }; ->b : new () => string, Symbol(b, Decl(functionConstraintSatisfaction.ts, 14, 3)) +>b : new () => string var c: { (): string; (x): string }; ->c : { (): string; (x: any): string; }, Symbol(c, Decl(functionConstraintSatisfaction.ts, 15, 3)) ->x : any, Symbol(x, Decl(functionConstraintSatisfaction.ts, 15, 22)) +>c : { (): string; (x: any): string; } +>x : any var r = foo(new Function()); ->r : Function, Symbol(r, Decl(functionConstraintSatisfaction.ts, 17, 3)) +>r : Function >foo(new Function()) : Function ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >new Function() : Function ->Function : FunctionConstructor, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>Function : FunctionConstructor var r1 = foo((x) => x); ->r1 : (x: any) => any, Symbol(r1, Decl(functionConstraintSatisfaction.ts, 18, 3)) +>r1 : (x: any) => any >foo((x) => x) : (x: any) => any ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(functionConstraintSatisfaction.ts, 18, 14)) ->x : any, Symbol(x, Decl(functionConstraintSatisfaction.ts, 18, 14)) +>x : any +>x : any var r2 = foo((x: string[]) => x); ->r2 : (x: string[]) => string[], Symbol(r2, Decl(functionConstraintSatisfaction.ts, 19, 3)) +>r2 : (x: string[]) => string[] >foo((x: string[]) => x) : (x: string[]) => string[] ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >(x: string[]) => x : (x: string[]) => string[] ->x : string[], Symbol(x, Decl(functionConstraintSatisfaction.ts, 19, 14)) ->x : string[], Symbol(x, Decl(functionConstraintSatisfaction.ts, 19, 14)) +>x : string[] +>x : string[] var r3 = foo(function (x) { return x }); ->r3 : (x: any) => any, Symbol(r3, Decl(functionConstraintSatisfaction.ts, 20, 3)) +>r3 : (x: any) => any >foo(function (x) { return x }) : (x: any) => any ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >function (x) { return x } : (x: any) => any ->x : any, Symbol(x, Decl(functionConstraintSatisfaction.ts, 20, 23)) ->x : any, Symbol(x, Decl(functionConstraintSatisfaction.ts, 20, 23)) +>x : any +>x : any var r4 = foo(function (x: string[]) { return x }); ->r4 : (x: string[]) => string[], Symbol(r4, Decl(functionConstraintSatisfaction.ts, 21, 3)) +>r4 : (x: string[]) => string[] >foo(function (x: string[]) { return x }) : (x: string[]) => string[] ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >function (x: string[]) { return x } : (x: string[]) => string[] ->x : string[], Symbol(x, Decl(functionConstraintSatisfaction.ts, 21, 23)) ->x : string[], Symbol(x, Decl(functionConstraintSatisfaction.ts, 21, 23)) +>x : string[] +>x : string[] var r5 = foo(i); ->r5 : I, Symbol(r5, Decl(functionConstraintSatisfaction.ts, 22, 3)) +>r5 : I >foo(i) : I ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->i : I, Symbol(i, Decl(functionConstraintSatisfaction.ts, 7, 3)) +>foo : (x: T) => T +>i : I var r6 = foo(C); ->r6 : typeof C, Symbol(r6, Decl(functionConstraintSatisfaction.ts, 23, 3)) +>r6 : typeof C >foo(C) : typeof C ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->C : typeof C, Symbol(C, Decl(functionConstraintSatisfaction.ts, 7, 9)) +>foo : (x: T) => T +>C : typeof C var r7 = foo(b); ->r7 : new () => string, Symbol(r7, Decl(functionConstraintSatisfaction.ts, 24, 3)) +>r7 : new () => string >foo(b) : new () => string ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->b : new () => string, Symbol(b, Decl(functionConstraintSatisfaction.ts, 14, 3)) +>foo : (x: T) => T +>b : new () => string var r8 = foo(c); ->r8 : { (): string; (x: any): string; }, Symbol(r8, Decl(functionConstraintSatisfaction.ts, 25, 3)) +>r8 : { (): string; (x: any): string; } >foo(c) : { (): string; (x: any): string; } ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->c : { (): string; (x: any): string; }, Symbol(c, Decl(functionConstraintSatisfaction.ts, 15, 3)) +>foo : (x: T) => T +>c : { (): string; (x: any): string; } interface I2 { ->I2 : I2, Symbol(I2, Decl(functionConstraintSatisfaction.ts, 25, 16)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 27, 13)) +>I2 : I2 +>T : T (x: T): T; ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 28, 5)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 27, 13)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 27, 13)) +>x : T +>T : T +>T : T } var i2: I2; ->i2 : I2, Symbol(i2, Decl(functionConstraintSatisfaction.ts, 30, 3)) ->I2 : I2, Symbol(I2, Decl(functionConstraintSatisfaction.ts, 25, 16)) +>i2 : I2 +>I2 : I2 class C2 { ->C2 : C2, Symbol(C2, Decl(functionConstraintSatisfaction.ts, 30, 19)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 32, 9)) +>C2 : C2 +>T : T foo: T; ->foo : T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 32, 13)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 32, 9)) +>foo : T +>T : T } var a2: { (x: T): T }; ->a2 : (x: T) => T, Symbol(a2, Decl(functionConstraintSatisfaction.ts, 36, 3)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 36, 11)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 36, 14)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 36, 11)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 36, 11)) +>a2 : (x: T) => T +>T : T +>x : T +>T : T +>T : T var b2: { new (x: T): T }; ->b2 : new (x: T) => T, Symbol(b2, Decl(functionConstraintSatisfaction.ts, 37, 3)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 37, 15)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 37, 18)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 37, 15)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 37, 15)) +>b2 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T var c2: { (x: T): T; (x: T, y: T): T }; ->c2 : { (x: T): T; (x: T, y: T): T; }, Symbol(c2, Decl(functionConstraintSatisfaction.ts, 38, 3)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 11)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 38, 14)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 11)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 11)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 38, 28)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) ->y : T, Symbol(y, Decl(functionConstraintSatisfaction.ts, 38, 33)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 38, 25)) +>c2 : { (x: T): T; (x: T, y: T): T; } +>T : T +>x : T +>T : T +>T : T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T var r9 = foo((x: U) => x); ->r9 : (x: U) => U, Symbol(r9, Decl(functionConstraintSatisfaction.ts, 40, 3)) +>r9 : (x: U) => U >foo((x: U) => x) : (x: U) => U ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >(x: U) => x : (x: U) => U ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 40, 14)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 40, 17)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 40, 14)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 40, 17)) +>U : U +>x : U +>U : U +>x : U var r10 = foo(function (x: U) { return x; }); ->r10 : (x: U) => U, Symbol(r10, Decl(functionConstraintSatisfaction.ts, 41, 3)) +>r10 : (x: U) => U >foo(function (x: U) { return x; }) : (x: U) => U ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >function (x: U) { return x; } : (x: U) => U ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 41, 24)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 41, 27)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 41, 24)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 41, 27)) +>U : U +>x : U +>U : U +>x : U var r11 = foo((x: U) => x); ->r11 : (x: U) => U, Symbol(r11, Decl(functionConstraintSatisfaction.ts, 42, 3)) +>r11 : (x: U) => U >foo((x: U) => x) : (x: U) => U ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >(x: U) => x : (x: U) => U ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 42, 15)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 42, 31)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 42, 15)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 42, 31)) +>U : U +>Date : Date +>x : U +>U : U +>x : U var r12 = foo((x: U, y: V) => x); ->r12 : (x: U, y: V) => U, Symbol(r12, Decl(functionConstraintSatisfaction.ts, 43, 3)) +>r12 : (x: U, y: V) => U >foo((x: U, y: V) => x) : (x: U, y: V) => U ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) +>foo : (x: T) => T >(x: U, y: V) => x : (x: U, y: V) => U ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 43, 15)) ->V : V, Symbol(V, Decl(functionConstraintSatisfaction.ts, 43, 17)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 43, 21)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 43, 15)) ->y : V, Symbol(y, Decl(functionConstraintSatisfaction.ts, 43, 26)) ->V : V, Symbol(V, Decl(functionConstraintSatisfaction.ts, 43, 17)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction.ts, 43, 21)) +>U : U +>V : V +>x : U +>U : U +>y : V +>V : V +>x : U var r13 = foo(i2); ->r13 : I2, Symbol(r13, Decl(functionConstraintSatisfaction.ts, 44, 3)) +>r13 : I2 >foo(i2) : I2 ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->i2 : I2, Symbol(i2, Decl(functionConstraintSatisfaction.ts, 30, 3)) +>foo : (x: T) => T +>i2 : I2 var r14 = foo(C2); ->r14 : typeof C2, Symbol(r14, Decl(functionConstraintSatisfaction.ts, 45, 3)) +>r14 : typeof C2 >foo(C2) : typeof C2 ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->C2 : typeof C2, Symbol(C2, Decl(functionConstraintSatisfaction.ts, 30, 19)) +>foo : (x: T) => T +>C2 : typeof C2 var r15 = foo(b2); ->r15 : new (x: T) => T, Symbol(r15, Decl(functionConstraintSatisfaction.ts, 46, 3)) +>r15 : new (x: T) => T >foo(b2) : new (x: T) => T ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->b2 : new (x: T) => T, Symbol(b2, Decl(functionConstraintSatisfaction.ts, 37, 3)) +>foo : (x: T) => T +>b2 : new (x: T) => T var r16 = foo(c2); ->r16 : { (x: T): T; (x: T, y: T): T; }, Symbol(r16, Decl(functionConstraintSatisfaction.ts, 47, 3)) +>r16 : { (x: T): T; (x: T, y: T): T; } >foo(c2) : { (x: T): T; (x: T, y: T): T; } ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->c2 : { (x: T): T; (x: T, y: T): T; }, Symbol(c2, Decl(functionConstraintSatisfaction.ts, 38, 3)) +>foo : (x: T) => T +>c2 : { (x: T): T; (x: T, y: T): T; } interface F2 extends Function { foo: string; } ->F2 : F2, Symbol(F2, Decl(functionConstraintSatisfaction.ts, 47, 18)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) ->foo : string, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 49, 31)) +>F2 : F2 +>Function : Function +>foo : string var f2: F2; ->f2 : F2, Symbol(f2, Decl(functionConstraintSatisfaction.ts, 50, 3)) ->F2 : F2, Symbol(F2, Decl(functionConstraintSatisfaction.ts, 47, 18)) +>f2 : F2 +>F2 : F2 var r17 = foo(f2); ->r17 : F2, Symbol(r17, Decl(functionConstraintSatisfaction.ts, 51, 3)) +>r17 : F2 >foo(f2) : F2 ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->f2 : F2, Symbol(f2, Decl(functionConstraintSatisfaction.ts, 50, 3)) +>foo : (x: T) => T +>f2 : F2 function foo2(x: T, y: U) { ->foo2 : void, U extends () => void>(x: T, y: U) => void, Symbol(foo2, Decl(functionConstraintSatisfaction.ts, 51, 18)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 53, 14)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 53, 37)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 53, 62)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction.ts, 53, 14)) ->y : U, Symbol(y, Decl(functionConstraintSatisfaction.ts, 53, 67)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction.ts, 53, 37)) +>foo2 : void, U extends () => void>(x: T, y: U) => void +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U foo(x); >foo(x) : T ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction.ts, 53, 62)) +>foo : (x: T) => T +>x : T foo(y); >foo(y) : U ->foo : (x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction.ts, 0, 0)) ->y : U, Symbol(y, Decl(functionConstraintSatisfaction.ts, 53, 67)) +>foo : (x: T) => T +>y : U } //function foo2(x: T, y: U) { // foo(x); diff --git a/tests/baselines/reference/functionConstraintSatisfaction3.symbols b/tests/baselines/reference/functionConstraintSatisfaction3.symbols new file mode 100644 index 0000000000000..74f3a65aa8e3f --- /dev/null +++ b/tests/baselines/reference/functionConstraintSatisfaction3.symbols @@ -0,0 +1,147 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/functionConstraintSatisfaction3.ts === +// satisfaction of a constraint to Function, no errors expected + +function foo string>(x: T): T { return x; } +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 2, 13)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 2, 24)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 2, 46)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 2, 13)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 2, 13)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 2, 46)) + +interface I { +>I : Symbol(I, Decl(functionConstraintSatisfaction3.ts, 2, 68)) + + (): string; +} +var i: I; +>i : Symbol(i, Decl(functionConstraintSatisfaction3.ts, 7, 3)) +>I : Symbol(I, Decl(functionConstraintSatisfaction3.ts, 2, 68)) + +class C { +>C : Symbol(C, Decl(functionConstraintSatisfaction3.ts, 7, 9)) + + foo: string; +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 9, 9)) +} + +var a: { (): string }; +>a : Symbol(a, Decl(functionConstraintSatisfaction3.ts, 13, 3)) + +var b: { new (): string }; +>b : Symbol(b, Decl(functionConstraintSatisfaction3.ts, 14, 3)) + +var c: { (): string; (x): string }; +>c : Symbol(c, Decl(functionConstraintSatisfaction3.ts, 15, 3)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 15, 22)) + +var r1 = foo((x) => x); +>r1 : Symbol(r1, Decl(functionConstraintSatisfaction3.ts, 17, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 17, 14)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 17, 14)) + +var r2 = foo((x: string) => x); +>r2 : Symbol(r2, Decl(functionConstraintSatisfaction3.ts, 18, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 18, 14)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 18, 14)) + +var r3 = foo(function (x) { return x }); +>r3 : Symbol(r3, Decl(functionConstraintSatisfaction3.ts, 19, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 19, 23)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 19, 23)) + +var r4 = foo(function (x: string) { return x }); +>r4 : Symbol(r4, Decl(functionConstraintSatisfaction3.ts, 20, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 20, 23)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 20, 23)) + +var r5 = foo(i); +>r5 : Symbol(r5, Decl(functionConstraintSatisfaction3.ts, 21, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>i : Symbol(i, Decl(functionConstraintSatisfaction3.ts, 7, 3)) + +var r8 = foo(c); +>r8 : Symbol(r8, Decl(functionConstraintSatisfaction3.ts, 22, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>c : Symbol(c, Decl(functionConstraintSatisfaction3.ts, 15, 3)) + +interface I2 { +>I2 : Symbol(I2, Decl(functionConstraintSatisfaction3.ts, 22, 16)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 24, 13)) + + (x: T): T; +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 25, 5)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 24, 13)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 24, 13)) +} +var i2: I2; +>i2 : Symbol(i2, Decl(functionConstraintSatisfaction3.ts, 27, 3)) +>I2 : Symbol(I2, Decl(functionConstraintSatisfaction3.ts, 22, 16)) + +class C2 { +>C2 : Symbol(C2, Decl(functionConstraintSatisfaction3.ts, 27, 19)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 29, 9)) + + foo: T; +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 29, 13)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 29, 9)) +} + +var a2: { (x: T): T }; +>a2 : Symbol(a2, Decl(functionConstraintSatisfaction3.ts, 33, 3)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 33, 11)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 33, 14)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 33, 11)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 33, 11)) + +var b2: { new (x: T): T }; +>b2 : Symbol(b2, Decl(functionConstraintSatisfaction3.ts, 34, 3)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 34, 15)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 34, 18)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 34, 15)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 34, 15)) + +var c2: { (x: T): T; (x: T, y: T): T }; +>c2 : Symbol(c2, Decl(functionConstraintSatisfaction3.ts, 35, 3)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 11)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 35, 14)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 11)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 11)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 35, 28)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) +>y : Symbol(y, Decl(functionConstraintSatisfaction3.ts, 35, 33)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) +>T : Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) + +var r9 = foo(function (x: U) { return x; }); +>r9 : Symbol(r9, Decl(functionConstraintSatisfaction3.ts, 37, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>U : Symbol(U, Decl(functionConstraintSatisfaction3.ts, 37, 23)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 37, 26)) +>U : Symbol(U, Decl(functionConstraintSatisfaction3.ts, 37, 23)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 37, 26)) + +var r10 = foo((x: U) => x); +>r10 : Symbol(r10, Decl(functionConstraintSatisfaction3.ts, 38, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>U : Symbol(U, Decl(functionConstraintSatisfaction3.ts, 38, 15)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 38, 33)) +>U : Symbol(U, Decl(functionConstraintSatisfaction3.ts, 38, 15)) +>x : Symbol(x, Decl(functionConstraintSatisfaction3.ts, 38, 33)) + +var r12 = foo(i2); +>r12 : Symbol(r12, Decl(functionConstraintSatisfaction3.ts, 39, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>i2 : Symbol(i2, Decl(functionConstraintSatisfaction3.ts, 27, 3)) + +var r15 = foo(c2); +>r15 : Symbol(r15, Decl(functionConstraintSatisfaction3.ts, 40, 3)) +>foo : Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>c2 : Symbol(c2, Decl(functionConstraintSatisfaction3.ts, 35, 3)) + diff --git a/tests/baselines/reference/functionConstraintSatisfaction3.types b/tests/baselines/reference/functionConstraintSatisfaction3.types index e2d5aa6dc33da..04963c36519c1 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction3.types +++ b/tests/baselines/reference/functionConstraintSatisfaction3.types @@ -2,162 +2,162 @@ // satisfaction of a constraint to Function, no errors expected function foo string>(x: T): T { return x; } ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 2, 13)) ->x : string, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 2, 24)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 2, 46)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 2, 13)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 2, 13)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 2, 46)) +>foo : string>(x: T) => T +>T : T +>x : string +>x : T +>T : T +>T : T +>x : T interface I { ->I : I, Symbol(I, Decl(functionConstraintSatisfaction3.ts, 2, 68)) +>I : I (): string; } var i: I; ->i : I, Symbol(i, Decl(functionConstraintSatisfaction3.ts, 7, 3)) ->I : I, Symbol(I, Decl(functionConstraintSatisfaction3.ts, 2, 68)) +>i : I +>I : I class C { ->C : C, Symbol(C, Decl(functionConstraintSatisfaction3.ts, 7, 9)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 9, 9)) +>foo : string } var a: { (): string }; ->a : () => string, Symbol(a, Decl(functionConstraintSatisfaction3.ts, 13, 3)) +>a : () => string var b: { new (): string }; ->b : new () => string, Symbol(b, Decl(functionConstraintSatisfaction3.ts, 14, 3)) +>b : new () => string var c: { (): string; (x): string }; ->c : { (): string; (x: any): string; }, Symbol(c, Decl(functionConstraintSatisfaction3.ts, 15, 3)) ->x : any, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 15, 22)) +>c : { (): string; (x: any): string; } +>x : any var r1 = foo((x) => x); ->r1 : (x: any) => any, Symbol(r1, Decl(functionConstraintSatisfaction3.ts, 17, 3)) +>r1 : (x: any) => any >foo((x) => x) : (x: any) => any ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>foo : string>(x: T) => T >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 17, 14)) ->x : any, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 17, 14)) +>x : any +>x : any var r2 = foo((x: string) => x); ->r2 : (x: string) => string, Symbol(r2, Decl(functionConstraintSatisfaction3.ts, 18, 3)) +>r2 : (x: string) => string >foo((x: string) => x) : (x: string) => string ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>foo : string>(x: T) => T >(x: string) => x : (x: string) => string ->x : string, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 18, 14)) ->x : string, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 18, 14)) +>x : string +>x : string var r3 = foo(function (x) { return x }); ->r3 : (x: any) => any, Symbol(r3, Decl(functionConstraintSatisfaction3.ts, 19, 3)) +>r3 : (x: any) => any >foo(function (x) { return x }) : (x: any) => any ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>foo : string>(x: T) => T >function (x) { return x } : (x: any) => any ->x : any, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 19, 23)) ->x : any, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 19, 23)) +>x : any +>x : any var r4 = foo(function (x: string) { return x }); ->r4 : (x: string) => string, Symbol(r4, Decl(functionConstraintSatisfaction3.ts, 20, 3)) +>r4 : (x: string) => string >foo(function (x: string) { return x }) : (x: string) => string ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>foo : string>(x: T) => T >function (x: string) { return x } : (x: string) => string ->x : string, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 20, 23)) ->x : string, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 20, 23)) +>x : string +>x : string var r5 = foo(i); ->r5 : I, Symbol(r5, Decl(functionConstraintSatisfaction3.ts, 21, 3)) +>r5 : I >foo(i) : I ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) ->i : I, Symbol(i, Decl(functionConstraintSatisfaction3.ts, 7, 3)) +>foo : string>(x: T) => T +>i : I var r8 = foo(c); ->r8 : { (): string; (x: any): string; }, Symbol(r8, Decl(functionConstraintSatisfaction3.ts, 22, 3)) +>r8 : { (): string; (x: any): string; } >foo(c) : { (): string; (x: any): string; } ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) ->c : { (): string; (x: any): string; }, Symbol(c, Decl(functionConstraintSatisfaction3.ts, 15, 3)) +>foo : string>(x: T) => T +>c : { (): string; (x: any): string; } interface I2 { ->I2 : I2, Symbol(I2, Decl(functionConstraintSatisfaction3.ts, 22, 16)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 24, 13)) +>I2 : I2 +>T : T (x: T): T; ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 25, 5)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 24, 13)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 24, 13)) +>x : T +>T : T +>T : T } var i2: I2; ->i2 : I2, Symbol(i2, Decl(functionConstraintSatisfaction3.ts, 27, 3)) ->I2 : I2, Symbol(I2, Decl(functionConstraintSatisfaction3.ts, 22, 16)) +>i2 : I2 +>I2 : I2 class C2 { ->C2 : C2, Symbol(C2, Decl(functionConstraintSatisfaction3.ts, 27, 19)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 29, 9)) +>C2 : C2 +>T : T foo: T; ->foo : T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 29, 13)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 29, 9)) +>foo : T +>T : T } var a2: { (x: T): T }; ->a2 : (x: T) => T, Symbol(a2, Decl(functionConstraintSatisfaction3.ts, 33, 3)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 33, 11)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 33, 14)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 33, 11)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 33, 11)) +>a2 : (x: T) => T +>T : T +>x : T +>T : T +>T : T var b2: { new (x: T): T }; ->b2 : new (x: T) => T, Symbol(b2, Decl(functionConstraintSatisfaction3.ts, 34, 3)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 34, 15)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 34, 18)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 34, 15)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 34, 15)) +>b2 : new (x: T) => T +>T : T +>x : T +>T : T +>T : T var c2: { (x: T): T; (x: T, y: T): T }; ->c2 : { (x: T): T; (x: T, y: T): T; }, Symbol(c2, Decl(functionConstraintSatisfaction3.ts, 35, 3)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 11)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 35, 14)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 11)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 11)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) ->x : T, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 35, 28)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) ->y : T, Symbol(y, Decl(functionConstraintSatisfaction3.ts, 35, 33)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) ->T : T, Symbol(T, Decl(functionConstraintSatisfaction3.ts, 35, 25)) +>c2 : { (x: T): T; (x: T, y: T): T; } +>T : T +>x : T +>T : T +>T : T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T var r9 = foo(function (x: U) { return x; }); ->r9 : (x: U) => U, Symbol(r9, Decl(functionConstraintSatisfaction3.ts, 37, 3)) +>r9 : (x: U) => U >foo(function (x: U) { return x; }) : (x: U) => U ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>foo : string>(x: T) => T >function (x: U) { return x; } : (x: U) => U ->U : U, Symbol(U, Decl(functionConstraintSatisfaction3.ts, 37, 23)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 37, 26)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction3.ts, 37, 23)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 37, 26)) +>U : U +>x : U +>U : U +>x : U var r10 = foo((x: U) => x); ->r10 : (x: U) => U, Symbol(r10, Decl(functionConstraintSatisfaction3.ts, 38, 3)) +>r10 : (x: U) => U >foo((x: U) => x) : (x: U) => U ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) +>foo : string>(x: T) => T >(x: U) => x : (x: U) => U ->U : U, Symbol(U, Decl(functionConstraintSatisfaction3.ts, 38, 15)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 38, 33)) ->U : U, Symbol(U, Decl(functionConstraintSatisfaction3.ts, 38, 15)) ->x : U, Symbol(x, Decl(functionConstraintSatisfaction3.ts, 38, 33)) +>U : U +>x : U +>U : U +>x : U var r12 = foo(i2); ->r12 : I2, Symbol(r12, Decl(functionConstraintSatisfaction3.ts, 39, 3)) +>r12 : I2 >foo(i2) : I2 ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) ->i2 : I2, Symbol(i2, Decl(functionConstraintSatisfaction3.ts, 27, 3)) +>foo : string>(x: T) => T +>i2 : I2 var r15 = foo(c2); ->r15 : { (x: T): T; (x: T, y: T): T; }, Symbol(r15, Decl(functionConstraintSatisfaction3.ts, 40, 3)) +>r15 : { (x: T): T; (x: T, y: T): T; } >foo(c2) : { (x: T): T; (x: T, y: T): T; } ->foo : string>(x: T) => T, Symbol(foo, Decl(functionConstraintSatisfaction3.ts, 0, 0)) ->c2 : { (x: T): T; (x: T, y: T): T; }, Symbol(c2, Decl(functionConstraintSatisfaction3.ts, 35, 3)) +>foo : string>(x: T) => T +>c2 : { (x: T): T; (x: T, y: T): T; } diff --git a/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.symbols b/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.symbols new file mode 100644 index 0000000000000..cf504147346ee --- /dev/null +++ b/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts === +function foo(args: { (x): number }[]) { +>foo : Symbol(foo, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 0)) +>args : Symbol(args, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 13)) +>x : Symbol(x, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 22)) + + return args.length; +>args.length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>args : Symbol(args, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 13)) +>length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +} + diff --git a/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.types b/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.types index fc88c549f5d36..a1d32a2a4057b 100644 --- a/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.types +++ b/tests/baselines/reference/functionDeclarationWithArgumentOfTypeFunctionTypeArray.types @@ -1,12 +1,12 @@ === tests/cases/compiler/functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts === function foo(args: { (x): number }[]) { ->foo : (args: ((x: any) => number)[]) => number, Symbol(foo, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 0)) ->args : ((x: any) => number)[], Symbol(args, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 13)) ->x : any, Symbol(x, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 22)) +>foo : (args: ((x: any) => number)[]) => number +>args : ((x: any) => number)[] +>x : any return args.length; ->args.length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) ->args : ((x: any) => number)[], Symbol(args, Decl(functionDeclarationWithArgumentOfTypeFunctionTypeArray.ts, 0, 13)) ->length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>args.length : number +>args : ((x: any) => number)[] +>length : number } diff --git a/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.symbols b/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.symbols new file mode 100644 index 0000000000000..db66aa5618b99 --- /dev/null +++ b/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/functionExpressionAndLambdaMatchesFunction.ts === +class CDoc { +>CDoc : Symbol(CDoc, Decl(functionExpressionAndLambdaMatchesFunction.ts, 0, 0)) + + constructor() { + function doSomething(a: Function) { +>doSomething : Symbol(doSomething, Decl(functionExpressionAndLambdaMatchesFunction.ts, 1, 23)) +>a : Symbol(a, Decl(functionExpressionAndLambdaMatchesFunction.ts, 2, 29)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + } + doSomething(() => undefined); +>doSomething : Symbol(doSomething, Decl(functionExpressionAndLambdaMatchesFunction.ts, 1, 23)) +>undefined : Symbol(undefined) + + doSomething(function () { }); +>doSomething : Symbol(doSomething, Decl(functionExpressionAndLambdaMatchesFunction.ts, 1, 23)) + } +} + diff --git a/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.types b/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.types index fd37de9a9a2e6..1a8fb15703206 100644 --- a/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.types +++ b/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.types @@ -1,22 +1,22 @@ === tests/cases/compiler/functionExpressionAndLambdaMatchesFunction.ts === class CDoc { ->CDoc : CDoc, Symbol(CDoc, Decl(functionExpressionAndLambdaMatchesFunction.ts, 0, 0)) +>CDoc : CDoc constructor() { function doSomething(a: Function) { ->doSomething : (a: Function) => void, Symbol(doSomething, Decl(functionExpressionAndLambdaMatchesFunction.ts, 1, 23)) ->a : Function, Symbol(a, Decl(functionExpressionAndLambdaMatchesFunction.ts, 2, 29)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>doSomething : (a: Function) => void +>a : Function +>Function : Function } doSomething(() => undefined); >doSomething(() => undefined) : void ->doSomething : (a: Function) => void, Symbol(doSomething, Decl(functionExpressionAndLambdaMatchesFunction.ts, 1, 23)) +>doSomething : (a: Function) => void >() => undefined : () => any ->undefined : undefined, Symbol(undefined) +>undefined : undefined doSomething(function () { }); >doSomething(function () { }) : void ->doSomething : (a: Function) => void, Symbol(doSomething, Decl(functionExpressionAndLambdaMatchesFunction.ts, 1, 23)) +>doSomething : (a: Function) => void >function () { } : () => void } } diff --git a/tests/baselines/reference/functionExpressionReturningItself.symbols b/tests/baselines/reference/functionExpressionReturningItself.symbols new file mode 100644 index 0000000000000..ba4d29f275aff --- /dev/null +++ b/tests/baselines/reference/functionExpressionReturningItself.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/functionExpressionReturningItself.ts === +var x = function somefn() { return somefn; }; +>x : Symbol(x, Decl(functionExpressionReturningItself.ts, 0, 3)) +>somefn : Symbol(somefn, Decl(functionExpressionReturningItself.ts, 0, 7)) +>somefn : Symbol(somefn, Decl(functionExpressionReturningItself.ts, 0, 7)) + diff --git a/tests/baselines/reference/functionExpressionReturningItself.types b/tests/baselines/reference/functionExpressionReturningItself.types index 56da141b02aa3..409f4adea2ea0 100644 --- a/tests/baselines/reference/functionExpressionReturningItself.types +++ b/tests/baselines/reference/functionExpressionReturningItself.types @@ -1,7 +1,7 @@ === tests/cases/compiler/functionExpressionReturningItself.ts === var x = function somefn() { return somefn; }; ->x : () => any, Symbol(x, Decl(functionExpressionReturningItself.ts, 0, 3)) +>x : () => any >function somefn() { return somefn; } : () => any ->somefn : () => any, Symbol(somefn, Decl(functionExpressionReturningItself.ts, 0, 7)) ->somefn : () => any, Symbol(somefn, Decl(functionExpressionReturningItself.ts, 0, 7)) +>somefn : () => any +>somefn : () => any diff --git a/tests/baselines/reference/functionImplementations.symbols b/tests/baselines/reference/functionImplementations.symbols new file mode 100644 index 0000000000000..f9205f3765077 --- /dev/null +++ b/tests/baselines/reference/functionImplementations.symbols @@ -0,0 +1,344 @@ +=== tests/cases/conformance/functions/functionImplementations.ts === +// FunctionExpression with no return type annotation and no return statement returns void +var v: void = function () { } (); +>v : Symbol(v, Decl(functionImplementations.ts, 1, 3)) + +// FunctionExpression f with no return type annotation and directly references f in its body returns any +var a: any = function f() { +>a : Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>f : Symbol(f, Decl(functionImplementations.ts, 4, 12)) + + return f; +>f : Symbol(f, Decl(functionImplementations.ts, 4, 12)) + +}; +var a: any = function f() { +>a : Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>f : Symbol(f, Decl(functionImplementations.ts, 7, 12)) + + return f(); +>f : Symbol(f, Decl(functionImplementations.ts, 7, 12)) + +}; + +// FunctionExpression f with no return type annotation and indirectly references f in its body returns any +var a: any = function f() { +>a : Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>f : Symbol(f, Decl(functionImplementations.ts, 12, 12)) + + var x = f; +>x : Symbol(x, Decl(functionImplementations.ts, 13, 7)) +>f : Symbol(f, Decl(functionImplementations.ts, 12, 12)) + + return x; +>x : Symbol(x, Decl(functionImplementations.ts, 13, 7)) + +}; + +// Two mutually recursive function implementations with no return type annotations +function rec1() { +>rec1 : Symbol(rec1, Decl(functionImplementations.ts, 15, 2)) + + return rec2(); +>rec2 : Symbol(rec2, Decl(functionImplementations.ts, 20, 1)) +} +function rec2() { +>rec2 : Symbol(rec2, Decl(functionImplementations.ts, 20, 1)) + + return rec1(); +>rec1 : Symbol(rec1, Decl(functionImplementations.ts, 15, 2)) +} +var a = rec1(); +>a : Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>rec1 : Symbol(rec1, Decl(functionImplementations.ts, 15, 2)) + +var a = rec2(); +>a : Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>rec2 : Symbol(rec2, Decl(functionImplementations.ts, 20, 1)) + +// Two mutually recursive function implementations with return type annotation in one +function rec3(): number { +>rec3 : Symbol(rec3, Decl(functionImplementations.ts, 25, 15)) + + return rec4(); +>rec4 : Symbol(rec4, Decl(functionImplementations.ts, 30, 1)) +} +function rec4() { +>rec4 : Symbol(rec4, Decl(functionImplementations.ts, 30, 1)) + + return rec3(); +>rec3 : Symbol(rec3, Decl(functionImplementations.ts, 25, 15)) +} +var n: number; +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) + +var n = rec3(); +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>rec3 : Symbol(rec3, Decl(functionImplementations.ts, 25, 15)) + +var n = rec4(); +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>rec4 : Symbol(rec4, Decl(functionImplementations.ts, 30, 1)) + +// FunctionExpression with no return type annotation and returns a number +var n = function () { +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) + + return 3; +} (); + +// FunctionExpression with no return type annotation and returns null +var nu = null; +>nu : Symbol(nu, Decl(functionImplementations.ts, 44, 3), Decl(functionImplementations.ts, 45, 3)) + +var nu = function () { +>nu : Symbol(nu, Decl(functionImplementations.ts, 44, 3), Decl(functionImplementations.ts, 45, 3)) + + return null; +} (); + +// FunctionExpression with no return type annotation and returns undefined +var un = undefined; +>un : Symbol(un, Decl(functionImplementations.ts, 50, 3), Decl(functionImplementations.ts, 51, 3)) +>undefined : Symbol(undefined) + +var un = function () { +>un : Symbol(un, Decl(functionImplementations.ts, 50, 3), Decl(functionImplementations.ts, 51, 3)) + + return undefined; +>undefined : Symbol(undefined) + +} (); + +// FunctionExpression with no return type annotation and returns a type parameter type +var n = function (x: T) { +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>T : Symbol(T, Decl(functionImplementations.ts, 56, 18)) +>x : Symbol(x, Decl(functionImplementations.ts, 56, 21)) +>T : Symbol(T, Decl(functionImplementations.ts, 56, 18)) + + return x; +>x : Symbol(x, Decl(functionImplementations.ts, 56, 21)) + +} (4); + +// FunctionExpression with no return type annotation and returns a constrained type parameter type +var n = function (x: T) { +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>T : Symbol(T, Decl(functionImplementations.ts, 61, 18)) +>x : Symbol(x, Decl(functionImplementations.ts, 61, 32)) +>T : Symbol(T, Decl(functionImplementations.ts, 61, 18)) + + return x; +>x : Symbol(x, Decl(functionImplementations.ts, 61, 32)) + +} (4); + +// FunctionExpression with no return type annotation with multiple return statements with identical types +var n = function () { +>n : Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) + + return 3; + return 5; +}(); + +// Otherwise, the inferred return type is the first of the types of the return statement expressions +// in the function body that is a supertype of each of the others, +// ignoring return statements with no expressions. +// A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. +// FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns +class Base { private m; } +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>m : Symbol(m, Decl(functionImplementations.ts, 76, 12)) + +class Derived extends Base { private q; } +>Derived : Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>q : Symbol(q, Decl(functionImplementations.ts, 77, 28)) + +var b: Base; +>b : Symbol(b, Decl(functionImplementations.ts, 78, 3), Decl(functionImplementations.ts, 79, 3)) +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) + +var b = function () { +>b : Symbol(b, Decl(functionImplementations.ts, 78, 3), Decl(functionImplementations.ts, 79, 3)) + + return new Base(); return new Derived(); +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Derived : Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) + +} (); + +// FunctionExpression with no return type annotation with multiple return statements with one a recursive call +var a = function f() { +>a : Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>f : Symbol(f, Decl(functionImplementations.ts, 84, 7)) + + return new Base(); return new Derived(); return f(); // ? +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Derived : Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) +>f : Symbol(f, Decl(functionImplementations.ts, 84, 7)) + +} (); + +// FunctionExpression with non -void return type annotation with a single throw statement +undefined === function (): number { +>undefined : Symbol(undefined) + + throw undefined; +>undefined : Symbol(undefined) + +}; + +// Type of 'this' in function implementation is 'any' +function thisFunc() { +>thisFunc : Symbol(thisFunc, Decl(functionImplementations.ts, 91, 2)) + + var x = this; +>x : Symbol(x, Decl(functionImplementations.ts, 95, 7), Decl(functionImplementations.ts, 96, 7)) + + var x: any; +>x : Symbol(x, Decl(functionImplementations.ts, 95, 7), Decl(functionImplementations.ts, 96, 7)) +} + +// Function signature with optional parameter, no type annotation and initializer has initializer's type +function opt1(n = 4) { +>opt1 : Symbol(opt1, Decl(functionImplementations.ts, 97, 1)) +>n : Symbol(n, Decl(functionImplementations.ts, 100, 14)) + + var m = n; +>m : Symbol(m, Decl(functionImplementations.ts, 101, 7), Decl(functionImplementations.ts, 102, 7)) +>n : Symbol(n, Decl(functionImplementations.ts, 100, 14)) + + var m: number; +>m : Symbol(m, Decl(functionImplementations.ts, 101, 7), Decl(functionImplementations.ts, 102, 7)) +} + +// Function signature with optional parameter, no type annotation and initializer has initializer's widened type +function opt2(n = { x: null, y: undefined }) { +>opt2 : Symbol(opt2, Decl(functionImplementations.ts, 103, 1)) +>n : Symbol(n, Decl(functionImplementations.ts, 106, 14)) +>x : Symbol(x, Decl(functionImplementations.ts, 106, 19)) +>y : Symbol(y, Decl(functionImplementations.ts, 106, 28)) +>undefined : Symbol(undefined) + + var m = n; +>m : Symbol(m, Decl(functionImplementations.ts, 107, 7), Decl(functionImplementations.ts, 108, 7)) +>n : Symbol(n, Decl(functionImplementations.ts, 106, 14)) + + var m: { x: any; y: any }; +>m : Symbol(m, Decl(functionImplementations.ts, 107, 7), Decl(functionImplementations.ts, 108, 7)) +>x : Symbol(x, Decl(functionImplementations.ts, 108, 12)) +>y : Symbol(y, Decl(functionImplementations.ts, 108, 20)) +} + +// Function signature with initializer referencing other parameter to the left +function opt3(n: number, m = n) { +>opt3 : Symbol(opt3, Decl(functionImplementations.ts, 109, 1)) +>n : Symbol(n, Decl(functionImplementations.ts, 112, 14)) +>m : Symbol(m, Decl(functionImplementations.ts, 112, 24)) +>n : Symbol(n, Decl(functionImplementations.ts, 112, 14)) + + var y = m; +>y : Symbol(y, Decl(functionImplementations.ts, 113, 7), Decl(functionImplementations.ts, 114, 7)) +>m : Symbol(m, Decl(functionImplementations.ts, 112, 24)) + + var y: number; +>y : Symbol(y, Decl(functionImplementations.ts, 113, 7), Decl(functionImplementations.ts, 114, 7)) +} + +// Function signature with optional parameter has correct codegen +// (tested above) + +// FunctionExpression with non -void return type annotation return with no expression +function f6(): number { +>f6 : Symbol(f6, Decl(functionImplementations.ts, 115, 1)) + + return; +} + +class Derived2 extends Base { private r: string; } +>Derived2 : Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>r : Symbol(r, Decl(functionImplementations.ts, 125, 29)) + +class AnotherClass { private x } +>AnotherClass : Symbol(AnotherClass, Decl(functionImplementations.ts, 125, 50)) +>x : Symbol(x, Decl(functionImplementations.ts, 126, 20)) + +// if f is a contextually typed function expression, the inferred return type is the union type +// of the types of the return statement expressions in the function body, +// ignoring return statements with no expressions. +var f7: (x: number) => string | number = x => { // should be (x: number) => number | string +>f7 : Symbol(f7, Decl(functionImplementations.ts, 130, 3)) +>x : Symbol(x, Decl(functionImplementations.ts, 130, 9)) +>x : Symbol(x, Decl(functionImplementations.ts, 130, 40)) + + if (x < 0) { return x; } +>x : Symbol(x, Decl(functionImplementations.ts, 130, 40)) +>x : Symbol(x, Decl(functionImplementations.ts, 130, 40)) + + return x.toString(); +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(functionImplementations.ts, 130, 40)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +} +var f8: (x: number) => any = x => { // should be (x: number) => Base +>f8 : Symbol(f8, Decl(functionImplementations.ts, 134, 3)) +>x : Symbol(x, Decl(functionImplementations.ts, 134, 9)) +>x : Symbol(x, Decl(functionImplementations.ts, 134, 28)) + + return new Base(); +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) + + return new Derived2(); +>Derived2 : Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +} +var f9: (x: number) => any = x => { // should be (x: number) => Base +>f9 : Symbol(f9, Decl(functionImplementations.ts, 138, 3)) +>x : Symbol(x, Decl(functionImplementations.ts, 138, 9)) +>x : Symbol(x, Decl(functionImplementations.ts, 138, 28)) + + return new Base(); +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) + + return new Derived(); +>Derived : Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) + + return new Derived2(); +>Derived2 : Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +} +var f10: (x: number) => any = x => { // should be (x: number) => Derived | Derived1 +>f10 : Symbol(f10, Decl(functionImplementations.ts, 143, 3)) +>x : Symbol(x, Decl(functionImplementations.ts, 143, 10)) +>x : Symbol(x, Decl(functionImplementations.ts, 143, 29)) + + return new Derived(); +>Derived : Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) + + return new Derived2(); +>Derived2 : Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +} +var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass +>f11 : Symbol(f11, Decl(functionImplementations.ts, 147, 3)) +>x : Symbol(x, Decl(functionImplementations.ts, 147, 10)) +>x : Symbol(x, Decl(functionImplementations.ts, 147, 29)) + + return new Base(); +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) + + return new AnotherClass(); +>AnotherClass : Symbol(AnotherClass, Decl(functionImplementations.ts, 125, 50)) +} +var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass +>f12 : Symbol(f12, Decl(functionImplementations.ts, 151, 3)) +>x : Symbol(x, Decl(functionImplementations.ts, 151, 10)) +>x : Symbol(x, Decl(functionImplementations.ts, 151, 29)) + + return new Base(); +>Base : Symbol(Base, Decl(functionImplementations.ts, 69, 4)) + + return; // should be ignored + return new AnotherClass(); +>AnotherClass : Symbol(AnotherClass, Decl(functionImplementations.ts, 125, 50)) +} diff --git a/tests/baselines/reference/functionImplementations.types b/tests/baselines/reference/functionImplementations.types index 8c74f54e64b16..f277821d69628 100644 --- a/tests/baselines/reference/functionImplementations.types +++ b/tests/baselines/reference/functionImplementations.types @@ -1,102 +1,102 @@ === tests/cases/conformance/functions/functionImplementations.ts === // FunctionExpression with no return type annotation and no return statement returns void var v: void = function () { } (); ->v : void, Symbol(v, Decl(functionImplementations.ts, 1, 3)) +>v : void >function () { } () : void >function () { } : () => void // FunctionExpression f with no return type annotation and directly references f in its body returns any var a: any = function f() { ->a : any, Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>a : any >function f() { return f;} : () => any ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 4, 12)) +>f : () => any return f; ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 4, 12)) +>f : () => any }; var a: any = function f() { ->a : any, Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>a : any >function f() { return f();} : () => any ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 7, 12)) +>f : () => any return f(); >f() : any ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 7, 12)) +>f : () => any }; // FunctionExpression f with no return type annotation and indirectly references f in its body returns any var a: any = function f() { ->a : any, Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>a : any >function f() { var x = f; return x;} : () => any ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 12, 12)) +>f : () => any var x = f; ->x : () => any, Symbol(x, Decl(functionImplementations.ts, 13, 7)) ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 12, 12)) +>x : () => any +>f : () => any return x; ->x : () => any, Symbol(x, Decl(functionImplementations.ts, 13, 7)) +>x : () => any }; // Two mutually recursive function implementations with no return type annotations function rec1() { ->rec1 : () => any, Symbol(rec1, Decl(functionImplementations.ts, 15, 2)) +>rec1 : () => any return rec2(); >rec2() : any ->rec2 : () => any, Symbol(rec2, Decl(functionImplementations.ts, 20, 1)) +>rec2 : () => any } function rec2() { ->rec2 : () => any, Symbol(rec2, Decl(functionImplementations.ts, 20, 1)) +>rec2 : () => any return rec1(); >rec1() : any ->rec1 : () => any, Symbol(rec1, Decl(functionImplementations.ts, 15, 2)) +>rec1 : () => any } var a = rec1(); ->a : any, Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>a : any >rec1() : any ->rec1 : () => any, Symbol(rec1, Decl(functionImplementations.ts, 15, 2)) +>rec1 : () => any var a = rec2(); ->a : any, Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>a : any >rec2() : any ->rec2 : () => any, Symbol(rec2, Decl(functionImplementations.ts, 20, 1)) +>rec2 : () => any // Two mutually recursive function implementations with return type annotation in one function rec3(): number { ->rec3 : () => number, Symbol(rec3, Decl(functionImplementations.ts, 25, 15)) +>rec3 : () => number return rec4(); >rec4() : number ->rec4 : () => number, Symbol(rec4, Decl(functionImplementations.ts, 30, 1)) +>rec4 : () => number } function rec4() { ->rec4 : () => number, Symbol(rec4, Decl(functionImplementations.ts, 30, 1)) +>rec4 : () => number return rec3(); >rec3() : number ->rec3 : () => number, Symbol(rec3, Decl(functionImplementations.ts, 25, 15)) +>rec3 : () => number } var n: number; ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number var n = rec3(); ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number >rec3() : number ->rec3 : () => number, Symbol(rec3, Decl(functionImplementations.ts, 25, 15)) +>rec3 : () => number var n = rec4(); ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number >rec4() : number ->rec4 : () => number, Symbol(rec4, Decl(functionImplementations.ts, 30, 1)) +>rec4 : () => number // FunctionExpression with no return type annotation and returns a number var n = function () { ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number >function () { return 3;} () : number >function () { return 3;} : () => number @@ -107,11 +107,11 @@ var n = function () { // FunctionExpression with no return type annotation and returns null var nu = null; ->nu : any, Symbol(nu, Decl(functionImplementations.ts, 44, 3), Decl(functionImplementations.ts, 45, 3)) +>nu : any >null : null var nu = function () { ->nu : any, Symbol(nu, Decl(functionImplementations.ts, 44, 3), Decl(functionImplementations.ts, 45, 3)) +>nu : any >function () { return null;} () : any >function () { return null;} : () => any @@ -122,52 +122,52 @@ var nu = function () { // FunctionExpression with no return type annotation and returns undefined var un = undefined; ->un : any, Symbol(un, Decl(functionImplementations.ts, 50, 3), Decl(functionImplementations.ts, 51, 3)) ->undefined : undefined, Symbol(undefined) +>un : any +>undefined : undefined var un = function () { ->un : any, Symbol(un, Decl(functionImplementations.ts, 50, 3), Decl(functionImplementations.ts, 51, 3)) +>un : any >function () { return undefined;} () : any >function () { return undefined;} : () => any return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } (); // FunctionExpression with no return type annotation and returns a type parameter type var n = function (x: T) { ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number >function (x: T) { return x;} (4) : number >function (x: T) { return x;} : (x: T) => T ->T : T, Symbol(T, Decl(functionImplementations.ts, 56, 18)) ->x : T, Symbol(x, Decl(functionImplementations.ts, 56, 21)) ->T : T, Symbol(T, Decl(functionImplementations.ts, 56, 18)) +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(functionImplementations.ts, 56, 21)) +>x : T } (4); >4 : number // FunctionExpression with no return type annotation and returns a constrained type parameter type var n = function (x: T) { ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number >function (x: T) { return x;} (4) : number >function (x: T) { return x;} : (x: T) => T ->T : T, Symbol(T, Decl(functionImplementations.ts, 61, 18)) ->x : T, Symbol(x, Decl(functionImplementations.ts, 61, 32)) ->T : T, Symbol(T, Decl(functionImplementations.ts, 61, 18)) +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(functionImplementations.ts, 61, 32)) +>x : T } (4); >4 : number // FunctionExpression with no return type annotation with multiple return statements with identical types var n = function () { ->n : number, Symbol(n, Decl(functionImplementations.ts, 34, 3), Decl(functionImplementations.ts, 35, 3), Decl(functionImplementations.ts, 36, 3), Decl(functionImplementations.ts, 39, 3), Decl(functionImplementations.ts, 56, 3), Decl(functionImplementations.ts, 61, 3), Decl(functionImplementations.ts, 66, 3)) +>n : number >function () { return 3; return 5;}() : number >function () { return 3; return 5;} : () => number @@ -185,118 +185,118 @@ var n = function () { // A compile - time error occurs if no return statement expression has a type that is a supertype of each of the others. // FunctionExpression with no return type annotation with multiple return statements with subtype relation between returns class Base { private m; } ->Base : Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) ->m : any, Symbol(m, Decl(functionImplementations.ts, 76, 12)) +>Base : Base +>m : any class Derived extends Base { private q; } ->Derived : Derived, Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) ->Base : Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) ->q : any, Symbol(q, Decl(functionImplementations.ts, 77, 28)) +>Derived : Derived +>Base : Base +>q : any var b: Base; ->b : Base, Symbol(b, Decl(functionImplementations.ts, 78, 3), Decl(functionImplementations.ts, 79, 3)) ->Base : Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>b : Base +>Base : Base var b = function () { ->b : Base, Symbol(b, Decl(functionImplementations.ts, 78, 3), Decl(functionImplementations.ts, 79, 3)) +>b : Base >function () { return new Base(); return new Derived();} () : Base >function () { return new Base(); return new Derived();} : () => Base return new Base(); return new Derived(); >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Base : typeof Base >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) +>Derived : typeof Derived } (); // FunctionExpression with no return type annotation with multiple return statements with one a recursive call var a = function f() { ->a : any, Symbol(a, Decl(functionImplementations.ts, 4, 3), Decl(functionImplementations.ts, 7, 3), Decl(functionImplementations.ts, 12, 3), Decl(functionImplementations.ts, 24, 3), Decl(functionImplementations.ts, 25, 3), Decl(functionImplementations.ts, 84, 3)) +>a : any >function f() { return new Base(); return new Derived(); return f(); // ?} () : any >function f() { return new Base(); return new Derived(); return f(); // ?} : () => any ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 84, 7)) +>f : () => any return new Base(); return new Derived(); return f(); // ? >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Base : typeof Base >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) +>Derived : typeof Derived >f() : any ->f : () => any, Symbol(f, Decl(functionImplementations.ts, 84, 7)) +>f : () => any } (); // FunctionExpression with non -void return type annotation with a single throw statement undefined === function (): number { >undefined === function (): number { throw undefined;} : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function (): number { throw undefined;} : () => number throw undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined }; // Type of 'this' in function implementation is 'any' function thisFunc() { ->thisFunc : () => void, Symbol(thisFunc, Decl(functionImplementations.ts, 91, 2)) +>thisFunc : () => void var x = this; ->x : any, Symbol(x, Decl(functionImplementations.ts, 95, 7), Decl(functionImplementations.ts, 96, 7)) +>x : any >this : any var x: any; ->x : any, Symbol(x, Decl(functionImplementations.ts, 95, 7), Decl(functionImplementations.ts, 96, 7)) +>x : any } // Function signature with optional parameter, no type annotation and initializer has initializer's type function opt1(n = 4) { ->opt1 : (n?: number) => void, Symbol(opt1, Decl(functionImplementations.ts, 97, 1)) ->n : number, Symbol(n, Decl(functionImplementations.ts, 100, 14)) +>opt1 : (n?: number) => void +>n : number >4 : number var m = n; ->m : number, Symbol(m, Decl(functionImplementations.ts, 101, 7), Decl(functionImplementations.ts, 102, 7)) ->n : number, Symbol(n, Decl(functionImplementations.ts, 100, 14)) +>m : number +>n : number var m: number; ->m : number, Symbol(m, Decl(functionImplementations.ts, 101, 7), Decl(functionImplementations.ts, 102, 7)) +>m : number } // Function signature with optional parameter, no type annotation and initializer has initializer's widened type function opt2(n = { x: null, y: undefined }) { ->opt2 : (n?: { x: any; y: any; }) => void, Symbol(opt2, Decl(functionImplementations.ts, 103, 1)) ->n : { x: any; y: any; }, Symbol(n, Decl(functionImplementations.ts, 106, 14)) +>opt2 : (n?: { x: any; y: any; }) => void +>n : { x: any; y: any; } >{ x: null, y: undefined } : { x: null; y: undefined; } ->x : null, Symbol(x, Decl(functionImplementations.ts, 106, 19)) +>x : null >null : null ->y : undefined, Symbol(y, Decl(functionImplementations.ts, 106, 28)) ->undefined : undefined, Symbol(undefined) +>y : undefined +>undefined : undefined var m = n; ->m : { x: any; y: any; }, Symbol(m, Decl(functionImplementations.ts, 107, 7), Decl(functionImplementations.ts, 108, 7)) ->n : { x: any; y: any; }, Symbol(n, Decl(functionImplementations.ts, 106, 14)) +>m : { x: any; y: any; } +>n : { x: any; y: any; } var m: { x: any; y: any }; ->m : { x: any; y: any; }, Symbol(m, Decl(functionImplementations.ts, 107, 7), Decl(functionImplementations.ts, 108, 7)) ->x : any, Symbol(x, Decl(functionImplementations.ts, 108, 12)) ->y : any, Symbol(y, Decl(functionImplementations.ts, 108, 20)) +>m : { x: any; y: any; } +>x : any +>y : any } // Function signature with initializer referencing other parameter to the left function opt3(n: number, m = n) { ->opt3 : (n: number, m?: number) => void, Symbol(opt3, Decl(functionImplementations.ts, 109, 1)) ->n : number, Symbol(n, Decl(functionImplementations.ts, 112, 14)) ->m : number, Symbol(m, Decl(functionImplementations.ts, 112, 24)) ->n : number, Symbol(n, Decl(functionImplementations.ts, 112, 14)) +>opt3 : (n: number, m?: number) => void +>n : number +>m : number +>n : number var y = m; ->y : number, Symbol(y, Decl(functionImplementations.ts, 113, 7), Decl(functionImplementations.ts, 114, 7)) ->m : number, Symbol(m, Decl(functionImplementations.ts, 112, 24)) +>y : number +>m : number var y: number; ->y : number, Symbol(y, Decl(functionImplementations.ts, 113, 7), Decl(functionImplementations.ts, 114, 7)) +>y : number } // Function signature with optional parameter has correct codegen @@ -304,113 +304,113 @@ function opt3(n: number, m = n) { // FunctionExpression with non -void return type annotation return with no expression function f6(): number { ->f6 : () => number, Symbol(f6, Decl(functionImplementations.ts, 115, 1)) +>f6 : () => number return; } class Derived2 extends Base { private r: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) ->Base : Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) ->r : string, Symbol(r, Decl(functionImplementations.ts, 125, 29)) +>Derived2 : Derived2 +>Base : Base +>r : string class AnotherClass { private x } ->AnotherClass : AnotherClass, Symbol(AnotherClass, Decl(functionImplementations.ts, 125, 50)) ->x : any, Symbol(x, Decl(functionImplementations.ts, 126, 20)) +>AnotherClass : AnotherClass +>x : any // if f is a contextually typed function expression, the inferred return type is the union type // of the types of the return statement expressions in the function body, // ignoring return statements with no expressions. var f7: (x: number) => string | number = x => { // should be (x: number) => number | string ->f7 : (x: number) => string | number, Symbol(f7, Decl(functionImplementations.ts, 130, 3)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 130, 9)) +>f7 : (x: number) => string | number +>x : number >x => { // should be (x: number) => number | string if (x < 0) { return x; } return x.toString();} : (x: number) => string | number ->x : number, Symbol(x, Decl(functionImplementations.ts, 130, 40)) +>x : number if (x < 0) { return x; } >x < 0 : boolean ->x : number, Symbol(x, Decl(functionImplementations.ts, 130, 40)) +>x : number >0 : number ->x : number, Symbol(x, Decl(functionImplementations.ts, 130, 40)) +>x : number return x.toString(); >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 130, 40)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string } var f8: (x: number) => any = x => { // should be (x: number) => Base ->f8 : (x: number) => any, Symbol(f8, Decl(functionImplementations.ts, 134, 3)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 134, 9)) +>f8 : (x: number) => any +>x : number >x => { // should be (x: number) => Base return new Base(); return new Derived2();} : (x: number) => Base ->x : number, Symbol(x, Decl(functionImplementations.ts, 134, 28)) +>x : number return new Base(); >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Base : typeof Base return new Derived2(); >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +>Derived2 : typeof Derived2 } var f9: (x: number) => any = x => { // should be (x: number) => Base ->f9 : (x: number) => any, Symbol(f9, Decl(functionImplementations.ts, 138, 3)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 138, 9)) +>f9 : (x: number) => any +>x : number >x => { // should be (x: number) => Base return new Base(); return new Derived(); return new Derived2();} : (x: number) => Base ->x : number, Symbol(x, Decl(functionImplementations.ts, 138, 28)) +>x : number return new Base(); >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Base : typeof Base return new Derived(); >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) +>Derived : typeof Derived return new Derived2(); >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +>Derived2 : typeof Derived2 } var f10: (x: number) => any = x => { // should be (x: number) => Derived | Derived1 ->f10 : (x: number) => any, Symbol(f10, Decl(functionImplementations.ts, 143, 3)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 143, 10)) +>f10 : (x: number) => any +>x : number >x => { // should be (x: number) => Derived | Derived1 return new Derived(); return new Derived2();} : (x: number) => Derived | Derived2 ->x : number, Symbol(x, Decl(functionImplementations.ts, 143, 29)) +>x : number return new Derived(); >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(functionImplementations.ts, 76, 25)) +>Derived : typeof Derived return new Derived2(); >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(functionImplementations.ts, 123, 1)) +>Derived2 : typeof Derived2 } var f11: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass ->f11 : (x: number) => any, Symbol(f11, Decl(functionImplementations.ts, 147, 3)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 147, 10)) +>f11 : (x: number) => any +>x : number >x => { // should be (x: number) => Base | AnotherClass return new Base(); return new AnotherClass();} : (x: number) => Base | AnotherClass ->x : number, Symbol(x, Decl(functionImplementations.ts, 147, 29)) +>x : number return new Base(); >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Base : typeof Base return new AnotherClass(); >new AnotherClass() : AnotherClass ->AnotherClass : typeof AnotherClass, Symbol(AnotherClass, Decl(functionImplementations.ts, 125, 50)) +>AnotherClass : typeof AnotherClass } var f12: (x: number) => any = x => { // should be (x: number) => Base | AnotherClass ->f12 : (x: number) => any, Symbol(f12, Decl(functionImplementations.ts, 151, 3)) ->x : number, Symbol(x, Decl(functionImplementations.ts, 151, 10)) +>f12 : (x: number) => any +>x : number >x => { // should be (x: number) => Base | AnotherClass return new Base(); return; // should be ignored return new AnotherClass();} : (x: number) => Base | AnotherClass ->x : number, Symbol(x, Decl(functionImplementations.ts, 151, 29)) +>x : number return new Base(); >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(functionImplementations.ts, 69, 4)) +>Base : typeof Base return; // should be ignored return new AnotherClass(); >new AnotherClass() : AnotherClass ->AnotherClass : typeof AnotherClass, Symbol(AnotherClass, Decl(functionImplementations.ts, 125, 50)) +>AnotherClass : typeof AnotherClass } diff --git a/tests/baselines/reference/functionInIfStatementInModule.symbols b/tests/baselines/reference/functionInIfStatementInModule.symbols new file mode 100644 index 0000000000000..5d297fceb4eca --- /dev/null +++ b/tests/baselines/reference/functionInIfStatementInModule.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionInIfStatementInModule.ts === + +module Midori +>Midori : Symbol(Midori, Decl(functionInIfStatementInModule.ts, 0, 0)) +{ + if (false) { + function Foo(src) +>Foo : Symbol(Foo, Decl(functionInIfStatementInModule.ts, 3, 16)) +>src : Symbol(src, Decl(functionInIfStatementInModule.ts, 4, 21)) + { + } + } +} + diff --git a/tests/baselines/reference/functionInIfStatementInModule.types b/tests/baselines/reference/functionInIfStatementInModule.types index b41c0f328394d..11cdd80f0a19f 100644 --- a/tests/baselines/reference/functionInIfStatementInModule.types +++ b/tests/baselines/reference/functionInIfStatementInModule.types @@ -1,14 +1,14 @@ === tests/cases/compiler/functionInIfStatementInModule.ts === module Midori ->Midori : typeof Midori, Symbol(Midori, Decl(functionInIfStatementInModule.ts, 0, 0)) +>Midori : typeof Midori { if (false) { >false : boolean function Foo(src) ->Foo : (src: any) => void, Symbol(Foo, Decl(functionInIfStatementInModule.ts, 3, 16)) ->src : any, Symbol(src, Decl(functionInIfStatementInModule.ts, 4, 21)) +>Foo : (src: any) => void +>src : any { } } diff --git a/tests/baselines/reference/functionLiteral.symbols b/tests/baselines/reference/functionLiteral.symbols new file mode 100644 index 0000000000000..3a8a4cfbad712 --- /dev/null +++ b/tests/baselines/reference/functionLiteral.symbols @@ -0,0 +1,39 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteral.ts === +// basic valid forms of function literals + +var x = () => 1; +>x : Symbol(x, Decl(functionLiteral.ts, 2, 3), Decl(functionLiteral.ts, 3, 3)) + +var x: { +>x : Symbol(x, Decl(functionLiteral.ts, 2, 3), Decl(functionLiteral.ts, 3, 3)) + + (): number; +} + +var y: { (x: string): string; }; +>y : Symbol(y, Decl(functionLiteral.ts, 7, 3), Decl(functionLiteral.ts, 8, 3)) +>x : Symbol(x, Decl(functionLiteral.ts, 7, 10)) + +var y: (x: string) => string; +>y : Symbol(y, Decl(functionLiteral.ts, 7, 3), Decl(functionLiteral.ts, 8, 3)) +>x : Symbol(x, Decl(functionLiteral.ts, 8, 8)) + +var y2: { (x: T): T; } = (x: T) => x +>y2 : Symbol(y2, Decl(functionLiteral.ts, 9, 3)) +>T : Symbol(T, Decl(functionLiteral.ts, 9, 11)) +>x : Symbol(x, Decl(functionLiteral.ts, 9, 14)) +>T : Symbol(T, Decl(functionLiteral.ts, 9, 11)) +>T : Symbol(T, Decl(functionLiteral.ts, 9, 11)) +>T : Symbol(T, Decl(functionLiteral.ts, 9, 29)) +>x : Symbol(x, Decl(functionLiteral.ts, 9, 32)) +>T : Symbol(T, Decl(functionLiteral.ts, 9, 29)) +>x : Symbol(x, Decl(functionLiteral.ts, 9, 32)) + +var z: { new (x: number): number; }; +>z : Symbol(z, Decl(functionLiteral.ts, 11, 3), Decl(functionLiteral.ts, 12, 3)) +>x : Symbol(x, Decl(functionLiteral.ts, 11, 14)) + +var z: new (x: number) => number; +>z : Symbol(z, Decl(functionLiteral.ts, 11, 3), Decl(functionLiteral.ts, 12, 3)) +>x : Symbol(x, Decl(functionLiteral.ts, 12, 12)) + diff --git a/tests/baselines/reference/functionLiteral.types b/tests/baselines/reference/functionLiteral.types index 411de1a052b68..06c811093c3d3 100644 --- a/tests/baselines/reference/functionLiteral.types +++ b/tests/baselines/reference/functionLiteral.types @@ -2,41 +2,41 @@ // basic valid forms of function literals var x = () => 1; ->x : () => number, Symbol(x, Decl(functionLiteral.ts, 2, 3), Decl(functionLiteral.ts, 3, 3)) +>x : () => number >() => 1 : () => number >1 : number var x: { ->x : () => number, Symbol(x, Decl(functionLiteral.ts, 2, 3), Decl(functionLiteral.ts, 3, 3)) +>x : () => number (): number; } var y: { (x: string): string; }; ->y : (x: string) => string, Symbol(y, Decl(functionLiteral.ts, 7, 3), Decl(functionLiteral.ts, 8, 3)) ->x : string, Symbol(x, Decl(functionLiteral.ts, 7, 10)) +>y : (x: string) => string +>x : string var y: (x: string) => string; ->y : (x: string) => string, Symbol(y, Decl(functionLiteral.ts, 7, 3), Decl(functionLiteral.ts, 8, 3)) ->x : string, Symbol(x, Decl(functionLiteral.ts, 8, 8)) +>y : (x: string) => string +>x : string var y2: { (x: T): T; } = (x: T) => x ->y2 : (x: T) => T, Symbol(y2, Decl(functionLiteral.ts, 9, 3)) ->T : T, Symbol(T, Decl(functionLiteral.ts, 9, 11)) ->x : T, Symbol(x, Decl(functionLiteral.ts, 9, 14)) ->T : T, Symbol(T, Decl(functionLiteral.ts, 9, 11)) ->T : T, Symbol(T, Decl(functionLiteral.ts, 9, 11)) +>y2 : (x: T) => T +>T : T +>x : T +>T : T +>T : T >(x: T) => x : (x: T) => T ->T : T, Symbol(T, Decl(functionLiteral.ts, 9, 29)) ->x : T, Symbol(x, Decl(functionLiteral.ts, 9, 32)) ->T : T, Symbol(T, Decl(functionLiteral.ts, 9, 29)) ->x : T, Symbol(x, Decl(functionLiteral.ts, 9, 32)) +>T : T +>x : T +>T : T +>x : T var z: { new (x: number): number; }; ->z : new (x: number) => number, Symbol(z, Decl(functionLiteral.ts, 11, 3), Decl(functionLiteral.ts, 12, 3)) ->x : number, Symbol(x, Decl(functionLiteral.ts, 11, 14)) +>z : new (x: number) => number +>x : number var z: new (x: number) => number; ->z : new (x: number) => number, Symbol(z, Decl(functionLiteral.ts, 11, 3), Decl(functionLiteral.ts, 12, 3)) ->x : number, Symbol(x, Decl(functionLiteral.ts, 12, 12)) +>z : new (x: number) => number +>x : number diff --git a/tests/baselines/reference/functionLiteralForOverloads.symbols b/tests/baselines/reference/functionLiteralForOverloads.symbols new file mode 100644 index 0000000000000..205945b73ea10 --- /dev/null +++ b/tests/baselines/reference/functionLiteralForOverloads.symbols @@ -0,0 +1,65 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads.ts === +// basic uses of function literals with overloads + +var f: { +>f : Symbol(f, Decl(functionLiteralForOverloads.ts, 2, 3)) + + (x: string): string; +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 3, 5)) + + (x: number): number; +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 4, 5)) + +} = (x) => x; +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 5, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 5, 5)) + +var f2: { +>f2 : Symbol(f2, Decl(functionLiteralForOverloads.ts, 7, 3)) + + (x: string): string; +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 8, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 8, 8)) + + (x: number): number; +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 9, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 9, 8)) + +} = (x) => x; +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 10, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 10, 5)) + +var f3: { +>f3 : Symbol(f3, Decl(functionLiteralForOverloads.ts, 12, 3)) + + (x: T): string; +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 13, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 13, 8)) +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 13, 5)) + + (x: T): number; +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 14, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 14, 8)) +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 14, 5)) + +} = (x) => x; +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 15, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 15, 5)) + +var f4: { +>f4 : Symbol(f4, Decl(functionLiteralForOverloads.ts, 17, 3)) + + (x: string): T; +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 18, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 18, 8)) +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 18, 5)) + + (x: number): T; +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 19, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 19, 8)) +>T : Symbol(T, Decl(functionLiteralForOverloads.ts, 19, 5)) + +} = (x) => x; +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 20, 5)) +>x : Symbol(x, Decl(functionLiteralForOverloads.ts, 20, 5)) + diff --git a/tests/baselines/reference/functionLiteralForOverloads.types b/tests/baselines/reference/functionLiteralForOverloads.types index eb6503b9a9324..b04238b4ce41b 100644 --- a/tests/baselines/reference/functionLiteralForOverloads.types +++ b/tests/baselines/reference/functionLiteralForOverloads.types @@ -2,68 +2,68 @@ // basic uses of function literals with overloads var f: { ->f : { (x: string): string; (x: number): number; }, Symbol(f, Decl(functionLiteralForOverloads.ts, 2, 3)) +>f : { (x: string): string; (x: number): number; } (x: string): string; ->x : string, Symbol(x, Decl(functionLiteralForOverloads.ts, 3, 5)) +>x : string (x: number): number; ->x : number, Symbol(x, Decl(functionLiteralForOverloads.ts, 4, 5)) +>x : number } = (x) => x; >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 5, 5)) ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 5, 5)) +>x : any +>x : any var f2: { ->f2 : { (x: string): string; (x: number): number; }, Symbol(f2, Decl(functionLiteralForOverloads.ts, 7, 3)) +>f2 : { (x: string): string; (x: number): number; } (x: string): string; ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 8, 5)) ->x : string, Symbol(x, Decl(functionLiteralForOverloads.ts, 8, 8)) +>T : T +>x : string (x: number): number; ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 9, 5)) ->x : number, Symbol(x, Decl(functionLiteralForOverloads.ts, 9, 8)) +>T : T +>x : number } = (x) => x; >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 10, 5)) ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 10, 5)) +>x : any +>x : any var f3: { ->f3 : { (x: T): string; (x: T): number; }, Symbol(f3, Decl(functionLiteralForOverloads.ts, 12, 3)) +>f3 : { (x: T): string; (x: T): number; } (x: T): string; ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 13, 5)) ->x : T, Symbol(x, Decl(functionLiteralForOverloads.ts, 13, 8)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 13, 5)) +>T : T +>x : T +>T : T (x: T): number; ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 14, 5)) ->x : T, Symbol(x, Decl(functionLiteralForOverloads.ts, 14, 8)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 14, 5)) +>T : T +>x : T +>T : T } = (x) => x; >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 15, 5)) ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 15, 5)) +>x : any +>x : any var f4: { ->f4 : { (x: string): T; (x: number): T; }, Symbol(f4, Decl(functionLiteralForOverloads.ts, 17, 3)) +>f4 : { (x: string): T; (x: number): T; } (x: string): T; ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 18, 5)) ->x : string, Symbol(x, Decl(functionLiteralForOverloads.ts, 18, 8)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 18, 5)) +>T : T +>x : string +>T : T (x: number): T; ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 19, 5)) ->x : number, Symbol(x, Decl(functionLiteralForOverloads.ts, 19, 8)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads.ts, 19, 5)) +>T : T +>x : number +>T : T } = (x) => x; >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 20, 5)) ->x : any, Symbol(x, Decl(functionLiteralForOverloads.ts, 20, 5)) +>x : any +>x : any diff --git a/tests/baselines/reference/functionLiteralForOverloads2.symbols b/tests/baselines/reference/functionLiteralForOverloads2.symbols new file mode 100644 index 0000000000000..c42926384d5ea --- /dev/null +++ b/tests/baselines/reference/functionLiteralForOverloads2.symbols @@ -0,0 +1,78 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/functionLiteralForOverloads2.ts === +// basic uses of function literals with constructor overloads + +class C { +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + + constructor(x: string); +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 3, 16)) + + constructor(x: number); +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 4, 16)) + + constructor(x) { } +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 5, 16)) +} + +class D { +>D : Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 8, 8)) + + constructor(x: string); +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 9, 16)) + + constructor(x: number); +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 10, 16)) + + constructor(x) { } +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 11, 16)) +} + +var f: { +>f : Symbol(f, Decl(functionLiteralForOverloads2.ts, 14, 3)) + + new(x: string): C; +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 15, 8)) +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + + new(x: number): C; +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 16, 8)) +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + +} = C; +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + +var f2: { +>f2 : Symbol(f2, Decl(functionLiteralForOverloads2.ts, 19, 3)) + + new(x: string): C; +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 20, 8)) +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 20, 11)) +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + + new(x: number): C; +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 21, 8)) +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 21, 11)) +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + +} = C; +>C : Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) + +var f3: { +>f3 : Symbol(f3, Decl(functionLiteralForOverloads2.ts, 24, 3)) + + new(x: string): D; +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 25, 8)) +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 25, 11)) +>D : Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 25, 8)) + + new(x: number): D; +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 26, 8)) +>x : Symbol(x, Decl(functionLiteralForOverloads2.ts, 26, 11)) +>D : Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) +>T : Symbol(T, Decl(functionLiteralForOverloads2.ts, 26, 8)) + +} = D; +>D : Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) + diff --git a/tests/baselines/reference/functionLiteralForOverloads2.types b/tests/baselines/reference/functionLiteralForOverloads2.types index 5eb2494a8ce8a..428b97faff007 100644 --- a/tests/baselines/reference/functionLiteralForOverloads2.types +++ b/tests/baselines/reference/functionLiteralForOverloads2.types @@ -2,77 +2,77 @@ // basic uses of function literals with constructor overloads class C { ->C : C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>C : C constructor(x: string); ->x : string, Symbol(x, Decl(functionLiteralForOverloads2.ts, 3, 16)) +>x : string constructor(x: number); ->x : number, Symbol(x, Decl(functionLiteralForOverloads2.ts, 4, 16)) +>x : number constructor(x) { } ->x : any, Symbol(x, Decl(functionLiteralForOverloads2.ts, 5, 16)) +>x : any } class D { ->D : D, Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 8, 8)) +>D : D +>T : T constructor(x: string); ->x : string, Symbol(x, Decl(functionLiteralForOverloads2.ts, 9, 16)) +>x : string constructor(x: number); ->x : number, Symbol(x, Decl(functionLiteralForOverloads2.ts, 10, 16)) +>x : number constructor(x) { } ->x : any, Symbol(x, Decl(functionLiteralForOverloads2.ts, 11, 16)) +>x : any } var f: { ->f : { new (x: string): C; new (x: number): C; }, Symbol(f, Decl(functionLiteralForOverloads2.ts, 14, 3)) +>f : { new (x: string): C; new (x: number): C; } new(x: string): C; ->x : string, Symbol(x, Decl(functionLiteralForOverloads2.ts, 15, 8)) ->C : C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>x : string +>C : C new(x: number): C; ->x : number, Symbol(x, Decl(functionLiteralForOverloads2.ts, 16, 8)) ->C : C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>x : number +>C : C } = C; ->C : typeof C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>C : typeof C var f2: { ->f2 : { new (x: string): C; new (x: number): C; }, Symbol(f2, Decl(functionLiteralForOverloads2.ts, 19, 3)) +>f2 : { new (x: string): C; new (x: number): C; } new(x: string): C; ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 20, 8)) ->x : string, Symbol(x, Decl(functionLiteralForOverloads2.ts, 20, 11)) ->C : C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>T : T +>x : string +>C : C new(x: number): C; ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 21, 8)) ->x : number, Symbol(x, Decl(functionLiteralForOverloads2.ts, 21, 11)) ->C : C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>T : T +>x : number +>C : C } = C; ->C : typeof C, Symbol(C, Decl(functionLiteralForOverloads2.ts, 0, 0)) +>C : typeof C var f3: { ->f3 : { new (x: string): D; new (x: number): D; }, Symbol(f3, Decl(functionLiteralForOverloads2.ts, 24, 3)) +>f3 : { new (x: string): D; new (x: number): D; } new(x: string): D; ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 25, 8)) ->x : string, Symbol(x, Decl(functionLiteralForOverloads2.ts, 25, 11)) ->D : D, Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 25, 8)) +>T : T +>x : string +>D : D +>T : T new(x: number): D; ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 26, 8)) ->x : number, Symbol(x, Decl(functionLiteralForOverloads2.ts, 26, 11)) ->D : D, Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) ->T : T, Symbol(T, Decl(functionLiteralForOverloads2.ts, 26, 8)) +>T : T +>x : number +>D : D +>T : T } = D; ->D : typeof D, Symbol(D, Decl(functionLiteralForOverloads2.ts, 6, 1)) +>D : typeof D diff --git a/tests/baselines/reference/functionLiterals.symbols b/tests/baselines/reference/functionLiterals.symbols new file mode 100644 index 0000000000000..64e212f2d6030 --- /dev/null +++ b/tests/baselines/reference/functionLiterals.symbols @@ -0,0 +1,228 @@ +=== tests/cases/conformance/types/objectTypeLiteral/methodSignatures/functionLiterals.ts === +// PropName(ParamList):ReturnType is equivalent to PropName: { (ParamList): ReturnType } + +var b: { +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) + + func1(x: number): number; // Method signature +>func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>x : Symbol(x, Decl(functionLiterals.ts, 3, 10)) + + func2: (x: number) => number; // Function type literal +>func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>x : Symbol(x, Decl(functionLiterals.ts, 4, 12)) + + func3: { (x: number): number }; // Object type literal +>func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>x : Symbol(x, Decl(functionLiterals.ts, 5, 14)) +} + +// no errors +b.func1 = b.func2; +>b.func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b.func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) + +b.func1 = b.func3; +>b.func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b.func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) + +b.func2 = b.func1; +>b.func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b.func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) + +b.func2 = b.func3; +>b.func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b.func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) + +b.func3 = b.func1; +>b.func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b.func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 2, 8)) + +b.func3 = b.func2; +>b.func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b.func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b : Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 3, 29)) + +var c: { +>c : Symbol(c, Decl(functionLiterals.ts, 16, 3)) + + func4(x: number): number; +>func4 : Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) +>x : Symbol(x, Decl(functionLiterals.ts, 17, 10)) + + func4(s: string): string; +>func4 : Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) +>s : Symbol(s, Decl(functionLiterals.ts, 18, 10)) + + func5: { +>func5 : Symbol(func5, Decl(functionLiterals.ts, 18, 29)) + + (x: number): number; +>x : Symbol(x, Decl(functionLiterals.ts, 20, 9)) + + (s: string): string; +>s : Symbol(s, Decl(functionLiterals.ts, 21, 9)) + + }; +}; + +// no errors +c.func4 = c.func5; +>c.func4 : Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) +>c : Symbol(c, Decl(functionLiterals.ts, 16, 3)) +>func4 : Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) +>c.func5 : Symbol(func5, Decl(functionLiterals.ts, 18, 29)) +>c : Symbol(c, Decl(functionLiterals.ts, 16, 3)) +>func5 : Symbol(func5, Decl(functionLiterals.ts, 18, 29)) + +c.func5 = c.func4; +>c.func5 : Symbol(func5, Decl(functionLiterals.ts, 18, 29)) +>c : Symbol(c, Decl(functionLiterals.ts, 16, 3)) +>func5 : Symbol(func5, Decl(functionLiterals.ts, 18, 29)) +>c.func4 : Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) +>c : Symbol(c, Decl(functionLiterals.ts, 16, 3)) +>func4 : Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) + +// generic versions +var b2: { +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) + + func1(x: T): number; // Method signature +>func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>T : Symbol(T, Decl(functionLiterals.ts, 31, 10)) +>x : Symbol(x, Decl(functionLiterals.ts, 31, 13)) +>T : Symbol(T, Decl(functionLiterals.ts, 31, 10)) + + func2: (x: T) => number; // Function type literal +>func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>T : Symbol(T, Decl(functionLiterals.ts, 32, 12)) +>x : Symbol(x, Decl(functionLiterals.ts, 32, 15)) +>T : Symbol(T, Decl(functionLiterals.ts, 32, 12)) + + func3: { (x: T): number }; // Object type literal +>func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>T : Symbol(T, Decl(functionLiterals.ts, 33, 14)) +>x : Symbol(x, Decl(functionLiterals.ts, 33, 17)) +>T : Symbol(T, Decl(functionLiterals.ts, 33, 14)) +} + +// no errors +b2.func1 = b2.func2; +>b2.func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2.func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) + +b2.func1 = b2.func3; +>b2.func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2.func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) + +b2.func2 = b2.func1; +>b2.func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2.func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) + +b2.func2 = b2.func3; +>b2.func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2.func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) + +b2.func3 = b2.func1; +>b2.func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2.func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func1 : Symbol(func1, Decl(functionLiterals.ts, 30, 9)) + +b2.func3 = b2.func2; +>b2.func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func3 : Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2.func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2 : Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>func2 : Symbol(func2, Decl(functionLiterals.ts, 31, 27)) + +var c2: { +>c2 : Symbol(c2, Decl(functionLiterals.ts, 44, 3)) + + func4(x: T): number; +>func4 : Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) +>T : Symbol(T, Decl(functionLiterals.ts, 45, 10)) +>x : Symbol(x, Decl(functionLiterals.ts, 45, 13)) +>T : Symbol(T, Decl(functionLiterals.ts, 45, 10)) + + func4(s: T): string; +>func4 : Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) +>T : Symbol(T, Decl(functionLiterals.ts, 46, 10)) +>s : Symbol(s, Decl(functionLiterals.ts, 46, 13)) +>T : Symbol(T, Decl(functionLiterals.ts, 46, 10)) + + func5: { +>func5 : Symbol(func5, Decl(functionLiterals.ts, 46, 27)) + + (x: T): number; +>T : Symbol(T, Decl(functionLiterals.ts, 48, 9)) +>x : Symbol(x, Decl(functionLiterals.ts, 48, 12)) +>T : Symbol(T, Decl(functionLiterals.ts, 48, 9)) + + (s: T): string; +>T : Symbol(T, Decl(functionLiterals.ts, 49, 9)) +>s : Symbol(s, Decl(functionLiterals.ts, 49, 12)) +>T : Symbol(T, Decl(functionLiterals.ts, 49, 9)) + + }; +}; + +// no errors +c2.func4 = c2.func5; +>c2.func4 : Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) +>c2 : Symbol(c2, Decl(functionLiterals.ts, 44, 3)) +>func4 : Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) +>c2.func5 : Symbol(func5, Decl(functionLiterals.ts, 46, 27)) +>c2 : Symbol(c2, Decl(functionLiterals.ts, 44, 3)) +>func5 : Symbol(func5, Decl(functionLiterals.ts, 46, 27)) + +c2.func5 = c2.func4; +>c2.func5 : Symbol(func5, Decl(functionLiterals.ts, 46, 27)) +>c2 : Symbol(c2, Decl(functionLiterals.ts, 44, 3)) +>func5 : Symbol(func5, Decl(functionLiterals.ts, 46, 27)) +>c2.func4 : Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) +>c2 : Symbol(c2, Decl(functionLiterals.ts, 44, 3)) +>func4 : Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) + diff --git a/tests/baselines/reference/functionLiterals.types b/tests/baselines/reference/functionLiterals.types index 0b27840455a8b..ebafee491edf2 100644 --- a/tests/baselines/reference/functionLiterals.types +++ b/tests/baselines/reference/functionLiterals.types @@ -2,95 +2,95 @@ // PropName(ParamList):ReturnType is equivalent to PropName: { (ParamList): ReturnType } var b: { ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } func1(x: number): number; // Method signature ->func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->x : number, Symbol(x, Decl(functionLiterals.ts, 3, 10)) +>func1 : (x: number) => number +>x : number func2: (x: number) => number; // Function type literal ->func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->x : number, Symbol(x, Decl(functionLiterals.ts, 4, 12)) +>func2 : (x: number) => number +>x : number func3: { (x: number): number }; // Object type literal ->func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->x : number, Symbol(x, Decl(functionLiterals.ts, 5, 14)) +>func3 : (x: number) => number +>x : number } // no errors b.func1 = b.func2; >b.func1 = b.func2 : (x: number) => number ->b.func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->b.func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b.func1 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func1 : (x: number) => number +>b.func2 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func2 : (x: number) => number b.func1 = b.func3; >b.func1 = b.func3 : (x: number) => number ->b.func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->b.func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b.func1 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func1 : (x: number) => number +>b.func3 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func3 : (x: number) => number b.func2 = b.func1; >b.func2 = b.func1 : (x: number) => number ->b.func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->b.func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b.func2 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func2 : (x: number) => number +>b.func1 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func1 : (x: number) => number b.func2 = b.func3; >b.func2 = b.func3 : (x: number) => number ->b.func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->b.func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) +>b.func2 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func2 : (x: number) => number +>b.func3 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func3 : (x: number) => number b.func3 = b.func1; >b.func3 = b.func1 : (x: number) => number ->b.func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->b.func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func1 : (x: number) => number, Symbol(func1, Decl(functionLiterals.ts, 2, 8)) +>b.func3 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func3 : (x: number) => number +>b.func1 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func1 : (x: number) => number b.func3 = b.func2; >b.func3 = b.func2 : (x: number) => number ->b.func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func3 : (x: number) => number, Symbol(func3, Decl(functionLiterals.ts, 4, 33)) ->b.func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) ->b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; }, Symbol(b, Decl(functionLiterals.ts, 2, 3)) ->func2 : (x: number) => number, Symbol(func2, Decl(functionLiterals.ts, 3, 29)) +>b.func3 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func3 : (x: number) => number +>b.func2 : (x: number) => number +>b : { func1(x: number): number; func2: (x: number) => number; func3: (x: number) => number; } +>func2 : (x: number) => number var c: { ->c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(functionLiterals.ts, 16, 3)) +>c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; } func4(x: number): number; ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) ->x : number, Symbol(x, Decl(functionLiterals.ts, 17, 10)) +>func4 : { (x: number): number; (s: string): string; } +>x : number func4(s: string): string; ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) ->s : string, Symbol(s, Decl(functionLiterals.ts, 18, 10)) +>func4 : { (x: number): number; (s: string): string; } +>s : string func5: { ->func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(functionLiterals.ts, 18, 29)) +>func5 : { (x: number): number; (s: string): string; } (x: number): number; ->x : number, Symbol(x, Decl(functionLiterals.ts, 20, 9)) +>x : number (s: string): string; ->s : string, Symbol(s, Decl(functionLiterals.ts, 21, 9)) +>s : string }; }; @@ -98,127 +98,127 @@ var c: { // no errors c.func4 = c.func5; >c.func4 = c.func5 : { (x: number): number; (s: string): string; } ->c.func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) ->c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(functionLiterals.ts, 16, 3)) ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) ->c.func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(functionLiterals.ts, 18, 29)) ->c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(functionLiterals.ts, 16, 3)) ->func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(functionLiterals.ts, 18, 29)) +>c.func4 : { (x: number): number; (s: string): string; } +>c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; } +>func4 : { (x: number): number; (s: string): string; } +>c.func5 : { (x: number): number; (s: string): string; } +>c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; } +>func5 : { (x: number): number; (s: string): string; } c.func5 = c.func4; >c.func5 = c.func4 : { (x: number): number; (s: string): string; } ->c.func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(functionLiterals.ts, 18, 29)) ->c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(functionLiterals.ts, 16, 3)) ->func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(functionLiterals.ts, 18, 29)) ->c.func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) ->c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(functionLiterals.ts, 16, 3)) ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(functionLiterals.ts, 16, 8), Decl(functionLiterals.ts, 17, 29)) +>c.func5 : { (x: number): number; (s: string): string; } +>c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; } +>func5 : { (x: number): number; (s: string): string; } +>c.func4 : { (x: number): number; (s: string): string; } +>c : { func4(x: number): number; func4(s: string): string; func5: { (x: number): number; (s: string): string; }; } +>func4 : { (x: number): number; (s: string): string; } // generic versions var b2: { ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } func1(x: T): number; // Method signature ->func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 31, 10)) ->x : T, Symbol(x, Decl(functionLiterals.ts, 31, 13)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 31, 10)) +>func1 : (x: T) => number +>T : T +>x : T +>T : T func2: (x: T) => number; // Function type literal ->func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 32, 12)) ->x : T, Symbol(x, Decl(functionLiterals.ts, 32, 15)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 32, 12)) +>func2 : (x: T) => number +>T : T +>x : T +>T : T func3: { (x: T): number }; // Object type literal ->func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 33, 14)) ->x : T, Symbol(x, Decl(functionLiterals.ts, 33, 17)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 33, 14)) +>func3 : (x: T) => number +>T : T +>x : T +>T : T } // no errors b2.func1 = b2.func2; >b2.func1 = b2.func2 : (x: T) => number ->b2.func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->b2.func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2.func1 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func1 : (x: T) => number +>b2.func2 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func2 : (x: T) => number b2.func1 = b2.func3; >b2.func1 = b2.func3 : (x: T) => number ->b2.func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->b2.func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2.func1 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func1 : (x: T) => number +>b2.func3 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func3 : (x: T) => number b2.func2 = b2.func1; >b2.func2 = b2.func1 : (x: T) => number ->b2.func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->b2.func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2.func2 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func2 : (x: T) => number +>b2.func1 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func1 : (x: T) => number b2.func2 = b2.func3; >b2.func2 = b2.func3 : (x: T) => number ->b2.func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->b2.func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) +>b2.func2 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func2 : (x: T) => number +>b2.func3 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func3 : (x: T) => number b2.func3 = b2.func1; >b2.func3 = b2.func1 : (x: T) => number ->b2.func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->b2.func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func1 : (x: T) => number, Symbol(func1, Decl(functionLiterals.ts, 30, 9)) +>b2.func3 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func3 : (x: T) => number +>b2.func1 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func1 : (x: T) => number b2.func3 = b2.func2; >b2.func3 = b2.func2 : (x: T) => number ->b2.func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func3 : (x: T) => number, Symbol(func3, Decl(functionLiterals.ts, 32, 31)) ->b2.func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) ->b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; }, Symbol(b2, Decl(functionLiterals.ts, 30, 3)) ->func2 : (x: T) => number, Symbol(func2, Decl(functionLiterals.ts, 31, 27)) +>b2.func3 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func3 : (x: T) => number +>b2.func2 : (x: T) => number +>b2 : { func1(x: T): number; func2: (x: T) => number; func3: (x: T) => number; } +>func2 : (x: T) => number var c2: { ->c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(functionLiterals.ts, 44, 3)) +>c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } func4(x: T): number; ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 45, 10)) ->x : T, Symbol(x, Decl(functionLiterals.ts, 45, 13)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 45, 10)) +>func4 : { (x: T): number; (s: T): string; } +>T : T +>x : T +>T : T func4(s: T): string; ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 46, 10)) ->s : T, Symbol(s, Decl(functionLiterals.ts, 46, 13)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 46, 10)) +>func4 : { (x: T): number; (s: T): string; } +>T : T +>s : T +>T : T func5: { ->func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(functionLiterals.ts, 46, 27)) +>func5 : { (x: T): number; (s: T): string; } (x: T): number; ->T : T, Symbol(T, Decl(functionLiterals.ts, 48, 9)) ->x : T, Symbol(x, Decl(functionLiterals.ts, 48, 12)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 48, 9)) +>T : T +>x : T +>T : T (s: T): string; ->T : T, Symbol(T, Decl(functionLiterals.ts, 49, 9)) ->s : T, Symbol(s, Decl(functionLiterals.ts, 49, 12)) ->T : T, Symbol(T, Decl(functionLiterals.ts, 49, 9)) +>T : T +>s : T +>T : T }; }; @@ -226,19 +226,19 @@ var c2: { // no errors c2.func4 = c2.func5; >c2.func4 = c2.func5 : { (x: T): number; (s: T): string; } ->c2.func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) ->c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(functionLiterals.ts, 44, 3)) ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) ->c2.func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(functionLiterals.ts, 46, 27)) ->c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(functionLiterals.ts, 44, 3)) ->func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(functionLiterals.ts, 46, 27)) +>c2.func4 : { (x: T): number; (s: T): string; } +>c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } +>func4 : { (x: T): number; (s: T): string; } +>c2.func5 : { (x: T): number; (s: T): string; } +>c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } +>func5 : { (x: T): number; (s: T): string; } c2.func5 = c2.func4; >c2.func5 = c2.func4 : { (x: T): number; (s: T): string; } ->c2.func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(functionLiterals.ts, 46, 27)) ->c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(functionLiterals.ts, 44, 3)) ->func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(functionLiterals.ts, 46, 27)) ->c2.func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) ->c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(functionLiterals.ts, 44, 3)) ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(functionLiterals.ts, 44, 9), Decl(functionLiterals.ts, 45, 27)) +>c2.func5 : { (x: T): number; (s: T): string; } +>c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } +>func5 : { (x: T): number; (s: T): string; } +>c2.func4 : { (x: T): number; (s: T): string; } +>c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } +>func4 : { (x: T): number; (s: T): string; } diff --git a/tests/baselines/reference/functionMergedWithModule.symbols b/tests/baselines/reference/functionMergedWithModule.symbols new file mode 100644 index 0000000000000..d22d772531769 --- /dev/null +++ b/tests/baselines/reference/functionMergedWithModule.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/functionMergedWithModule.ts === +function foo(title: string) { +>foo : Symbol(foo, Decl(functionMergedWithModule.ts, 0, 0), Decl(functionMergedWithModule.ts, 2, 1), Decl(functionMergedWithModule.ts, 7, 1)) +>title : Symbol(title, Decl(functionMergedWithModule.ts, 0, 13)) + + var x = 10; +>x : Symbol(x, Decl(functionMergedWithModule.ts, 1, 7)) +} + +module foo.Bar { +>foo : Symbol(foo, Decl(functionMergedWithModule.ts, 0, 0), Decl(functionMergedWithModule.ts, 2, 1), Decl(functionMergedWithModule.ts, 7, 1)) +>Bar : Symbol(Bar, Decl(functionMergedWithModule.ts, 4, 11)) + + export function f() { +>f : Symbol(f, Decl(functionMergedWithModule.ts, 4, 16)) + } +} + +module foo.Baz { +>foo : Symbol(foo, Decl(functionMergedWithModule.ts, 0, 0), Decl(functionMergedWithModule.ts, 2, 1), Decl(functionMergedWithModule.ts, 7, 1)) +>Baz : Symbol(Baz, Decl(functionMergedWithModule.ts, 9, 11)) + + export function g() { +>g : Symbol(g, Decl(functionMergedWithModule.ts, 9, 16)) + + Bar.f(); +>Bar.f : Symbol(Bar.f, Decl(functionMergedWithModule.ts, 4, 16)) +>Bar : Symbol(Bar, Decl(functionMergedWithModule.ts, 4, 11)) +>f : Symbol(Bar.f, Decl(functionMergedWithModule.ts, 4, 16)) + } +} diff --git a/tests/baselines/reference/functionMergedWithModule.types b/tests/baselines/reference/functionMergedWithModule.types index 8a65ef2cf3c8f..ec0143f2923bc 100644 --- a/tests/baselines/reference/functionMergedWithModule.types +++ b/tests/baselines/reference/functionMergedWithModule.types @@ -1,33 +1,33 @@ === tests/cases/compiler/functionMergedWithModule.ts === function foo(title: string) { ->foo : typeof foo, Symbol(foo, Decl(functionMergedWithModule.ts, 0, 0), Decl(functionMergedWithModule.ts, 2, 1), Decl(functionMergedWithModule.ts, 7, 1)) ->title : string, Symbol(title, Decl(functionMergedWithModule.ts, 0, 13)) +>foo : typeof foo +>title : string var x = 10; ->x : number, Symbol(x, Decl(functionMergedWithModule.ts, 1, 7)) +>x : number >10 : number } module foo.Bar { ->foo : typeof foo, Symbol(foo, Decl(functionMergedWithModule.ts, 0, 0), Decl(functionMergedWithModule.ts, 2, 1), Decl(functionMergedWithModule.ts, 7, 1)) ->Bar : typeof Bar, Symbol(Bar, Decl(functionMergedWithModule.ts, 4, 11)) +>foo : typeof foo +>Bar : typeof Bar export function f() { ->f : () => void, Symbol(f, Decl(functionMergedWithModule.ts, 4, 16)) +>f : () => void } } module foo.Baz { ->foo : typeof foo, Symbol(foo, Decl(functionMergedWithModule.ts, 0, 0), Decl(functionMergedWithModule.ts, 2, 1), Decl(functionMergedWithModule.ts, 7, 1)) ->Baz : typeof Baz, Symbol(Baz, Decl(functionMergedWithModule.ts, 9, 11)) +>foo : typeof foo +>Baz : typeof Baz export function g() { ->g : () => void, Symbol(g, Decl(functionMergedWithModule.ts, 9, 16)) +>g : () => void Bar.f(); >Bar.f() : void ->Bar.f : () => void, Symbol(Bar.f, Decl(functionMergedWithModule.ts, 4, 16)) ->Bar : typeof Bar, Symbol(Bar, Decl(functionMergedWithModule.ts, 4, 11)) ->f : () => void, Symbol(Bar.f, Decl(functionMergedWithModule.ts, 4, 16)) +>Bar.f : () => void +>Bar : typeof Bar +>f : () => void } } diff --git a/tests/baselines/reference/functionOnlyHasThrow.symbols b/tests/baselines/reference/functionOnlyHasThrow.symbols new file mode 100644 index 0000000000000..fc8d60a58becf --- /dev/null +++ b/tests/baselines/reference/functionOnlyHasThrow.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/functionOnlyHasThrow.ts === +function clone():number { +>clone : Symbol(clone, Decl(functionOnlyHasThrow.ts, 0, 0)) + + throw new Error("To be implemented"); +>Error : Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +} diff --git a/tests/baselines/reference/functionOnlyHasThrow.types b/tests/baselines/reference/functionOnlyHasThrow.types index 0b73acd59dd4a..c4e8cce38a2e9 100644 --- a/tests/baselines/reference/functionOnlyHasThrow.types +++ b/tests/baselines/reference/functionOnlyHasThrow.types @@ -1,9 +1,9 @@ === tests/cases/compiler/functionOnlyHasThrow.ts === function clone():number { ->clone : () => number, Symbol(clone, Decl(functionOnlyHasThrow.ts, 0, 0)) +>clone : () => number throw new Error("To be implemented"); >new Error("To be implemented") : Error ->Error : ErrorConstructor, Symbol(Error, Decl(lib.d.ts, 876, 38), Decl(lib.d.ts, 889, 11)) +>Error : ErrorConstructor >"To be implemented" : string } diff --git a/tests/baselines/reference/functionOverloads10.symbols b/tests/baselines/reference/functionOverloads10.symbols new file mode 100644 index 0000000000000..b2eda9bda8a34 --- /dev/null +++ b/tests/baselines/reference/functionOverloads10.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionOverloads10.ts === +function foo(foo:string, bar:number); +>foo : Symbol(foo, Decl(functionOverloads10.ts, 0, 0), Decl(functionOverloads10.ts, 0, 37), Decl(functionOverloads10.ts, 1, 25)) +>foo : Symbol(foo, Decl(functionOverloads10.ts, 0, 13)) +>bar : Symbol(bar, Decl(functionOverloads10.ts, 0, 24)) + +function foo(foo:string); +>foo : Symbol(foo, Decl(functionOverloads10.ts, 0, 0), Decl(functionOverloads10.ts, 0, 37), Decl(functionOverloads10.ts, 1, 25)) +>foo : Symbol(foo, Decl(functionOverloads10.ts, 1, 13)) + +function foo(foo:any){ } +>foo : Symbol(foo, Decl(functionOverloads10.ts, 0, 0), Decl(functionOverloads10.ts, 0, 37), Decl(functionOverloads10.ts, 1, 25)) +>foo : Symbol(foo, Decl(functionOverloads10.ts, 2, 13)) + diff --git a/tests/baselines/reference/functionOverloads10.types b/tests/baselines/reference/functionOverloads10.types index 6a264ace3702b..8ec2bc7c58918 100644 --- a/tests/baselines/reference/functionOverloads10.types +++ b/tests/baselines/reference/functionOverloads10.types @@ -1,14 +1,14 @@ === tests/cases/compiler/functionOverloads10.ts === function foo(foo:string, bar:number); ->foo : { (foo: string, bar: number): any; (foo: string): any; }, Symbol(foo, Decl(functionOverloads10.ts, 0, 0), Decl(functionOverloads10.ts, 0, 37), Decl(functionOverloads10.ts, 1, 25)) ->foo : string, Symbol(foo, Decl(functionOverloads10.ts, 0, 13)) ->bar : number, Symbol(bar, Decl(functionOverloads10.ts, 0, 24)) +>foo : { (foo: string, bar: number): any; (foo: string): any; } +>foo : string +>bar : number function foo(foo:string); ->foo : { (foo: string, bar: number): any; (foo: string): any; }, Symbol(foo, Decl(functionOverloads10.ts, 0, 0), Decl(functionOverloads10.ts, 0, 37), Decl(functionOverloads10.ts, 1, 25)) ->foo : string, Symbol(foo, Decl(functionOverloads10.ts, 1, 13)) +>foo : { (foo: string, bar: number): any; (foo: string): any; } +>foo : string function foo(foo:any){ } ->foo : { (foo: string, bar: number): any; (foo: string): any; }, Symbol(foo, Decl(functionOverloads10.ts, 0, 0), Decl(functionOverloads10.ts, 0, 37), Decl(functionOverloads10.ts, 1, 25)) ->foo : any, Symbol(foo, Decl(functionOverloads10.ts, 2, 13)) +>foo : { (foo: string, bar: number): any; (foo: string): any; } +>foo : any diff --git a/tests/baselines/reference/functionOverloads12.symbols b/tests/baselines/reference/functionOverloads12.symbols new file mode 100644 index 0000000000000..583e7f5c04572 --- /dev/null +++ b/tests/baselines/reference/functionOverloads12.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/functionOverloads12.ts === +function foo():string; +>foo : Symbol(foo, Decl(functionOverloads12.ts, 0, 0), Decl(functionOverloads12.ts, 0, 22), Decl(functionOverloads12.ts, 1, 22)) + +function foo():number; +>foo : Symbol(foo, Decl(functionOverloads12.ts, 0, 0), Decl(functionOverloads12.ts, 0, 22), Decl(functionOverloads12.ts, 1, 22)) + +function foo():any { if (true) return ""; else return 0;} +>foo : Symbol(foo, Decl(functionOverloads12.ts, 0, 0), Decl(functionOverloads12.ts, 0, 22), Decl(functionOverloads12.ts, 1, 22)) + diff --git a/tests/baselines/reference/functionOverloads12.types b/tests/baselines/reference/functionOverloads12.types index b1cd31bf46e9f..20f5ee5d5561f 100644 --- a/tests/baselines/reference/functionOverloads12.types +++ b/tests/baselines/reference/functionOverloads12.types @@ -1,12 +1,12 @@ === tests/cases/compiler/functionOverloads12.ts === function foo():string; ->foo : { (): string; (): number; }, Symbol(foo, Decl(functionOverloads12.ts, 0, 0), Decl(functionOverloads12.ts, 0, 22), Decl(functionOverloads12.ts, 1, 22)) +>foo : { (): string; (): number; } function foo():number; ->foo : { (): string; (): number; }, Symbol(foo, Decl(functionOverloads12.ts, 0, 0), Decl(functionOverloads12.ts, 0, 22), Decl(functionOverloads12.ts, 1, 22)) +>foo : { (): string; (): number; } function foo():any { if (true) return ""; else return 0;} ->foo : { (): string; (): number; }, Symbol(foo, Decl(functionOverloads12.ts, 0, 0), Decl(functionOverloads12.ts, 0, 22), Decl(functionOverloads12.ts, 1, 22)) +>foo : { (): string; (): number; } >true : boolean >"" : string >0 : number diff --git a/tests/baselines/reference/functionOverloads13.symbols b/tests/baselines/reference/functionOverloads13.symbols new file mode 100644 index 0000000000000..c2aa01c932920 --- /dev/null +++ b/tests/baselines/reference/functionOverloads13.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/functionOverloads13.ts === +function foo(bar:number):string; +>foo : Symbol(foo, Decl(functionOverloads13.ts, 0, 0), Decl(functionOverloads13.ts, 0, 32), Decl(functionOverloads13.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads13.ts, 0, 13)) + +function foo(bar:number):number; +>foo : Symbol(foo, Decl(functionOverloads13.ts, 0, 0), Decl(functionOverloads13.ts, 0, 32), Decl(functionOverloads13.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads13.ts, 1, 13)) + +function foo(bar?:number):any { return "" } +>foo : Symbol(foo, Decl(functionOverloads13.ts, 0, 0), Decl(functionOverloads13.ts, 0, 32), Decl(functionOverloads13.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads13.ts, 2, 13)) + diff --git a/tests/baselines/reference/functionOverloads13.types b/tests/baselines/reference/functionOverloads13.types index 15466d8ae5f2b..f26067c7eb84e 100644 --- a/tests/baselines/reference/functionOverloads13.types +++ b/tests/baselines/reference/functionOverloads13.types @@ -1,14 +1,14 @@ === tests/cases/compiler/functionOverloads13.ts === function foo(bar:number):string; ->foo : { (bar: number): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads13.ts, 0, 0), Decl(functionOverloads13.ts, 0, 32), Decl(functionOverloads13.ts, 1, 32)) ->bar : number, Symbol(bar, Decl(functionOverloads13.ts, 0, 13)) +>foo : { (bar: number): string; (bar: number): number; } +>bar : number function foo(bar:number):number; ->foo : { (bar: number): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads13.ts, 0, 0), Decl(functionOverloads13.ts, 0, 32), Decl(functionOverloads13.ts, 1, 32)) ->bar : number, Symbol(bar, Decl(functionOverloads13.ts, 1, 13)) +>foo : { (bar: number): string; (bar: number): number; } +>bar : number function foo(bar?:number):any { return "" } ->foo : { (bar: number): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads13.ts, 0, 0), Decl(functionOverloads13.ts, 0, 32), Decl(functionOverloads13.ts, 1, 32)) ->bar : number, Symbol(bar, Decl(functionOverloads13.ts, 2, 13)) +>foo : { (bar: number): string; (bar: number): number; } +>bar : number >"" : string diff --git a/tests/baselines/reference/functionOverloads14.symbols b/tests/baselines/reference/functionOverloads14.symbols new file mode 100644 index 0000000000000..4f4c3e4750b3d --- /dev/null +++ b/tests/baselines/reference/functionOverloads14.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionOverloads14.ts === +function foo():{a:number;} +>foo : Symbol(foo, Decl(functionOverloads14.ts, 0, 0), Decl(functionOverloads14.ts, 0, 26), Decl(functionOverloads14.ts, 1, 26)) +>a : Symbol(a, Decl(functionOverloads14.ts, 0, 16)) + +function foo():{a:string;} +>foo : Symbol(foo, Decl(functionOverloads14.ts, 0, 0), Decl(functionOverloads14.ts, 0, 26), Decl(functionOverloads14.ts, 1, 26)) +>a : Symbol(a, Decl(functionOverloads14.ts, 1, 16)) + +function foo():{a:any;} { return {a:1} } +>foo : Symbol(foo, Decl(functionOverloads14.ts, 0, 0), Decl(functionOverloads14.ts, 0, 26), Decl(functionOverloads14.ts, 1, 26)) +>a : Symbol(a, Decl(functionOverloads14.ts, 2, 16)) +>a : Symbol(a, Decl(functionOverloads14.ts, 2, 34)) + diff --git a/tests/baselines/reference/functionOverloads14.types b/tests/baselines/reference/functionOverloads14.types index 9d937782cc09b..032ed700545f2 100644 --- a/tests/baselines/reference/functionOverloads14.types +++ b/tests/baselines/reference/functionOverloads14.types @@ -1,16 +1,16 @@ === tests/cases/compiler/functionOverloads14.ts === function foo():{a:number;} ->foo : { (): { a: number; }; (): { a: string; }; }, Symbol(foo, Decl(functionOverloads14.ts, 0, 0), Decl(functionOverloads14.ts, 0, 26), Decl(functionOverloads14.ts, 1, 26)) ->a : number, Symbol(a, Decl(functionOverloads14.ts, 0, 16)) +>foo : { (): { a: number; }; (): { a: string; }; } +>a : number function foo():{a:string;} ->foo : { (): { a: number; }; (): { a: string; }; }, Symbol(foo, Decl(functionOverloads14.ts, 0, 0), Decl(functionOverloads14.ts, 0, 26), Decl(functionOverloads14.ts, 1, 26)) ->a : string, Symbol(a, Decl(functionOverloads14.ts, 1, 16)) +>foo : { (): { a: number; }; (): { a: string; }; } +>a : string function foo():{a:any;} { return {a:1} } ->foo : { (): { a: number; }; (): { a: string; }; }, Symbol(foo, Decl(functionOverloads14.ts, 0, 0), Decl(functionOverloads14.ts, 0, 26), Decl(functionOverloads14.ts, 1, 26)) ->a : any, Symbol(a, Decl(functionOverloads14.ts, 2, 16)) +>foo : { (): { a: number; }; (): { a: string; }; } +>a : any >{a:1} : { a: number; } ->a : number, Symbol(a, Decl(functionOverloads14.ts, 2, 34)) +>a : number >1 : number diff --git a/tests/baselines/reference/functionOverloads15.symbols b/tests/baselines/reference/functionOverloads15.symbols new file mode 100644 index 0000000000000..520480ad1a6a2 --- /dev/null +++ b/tests/baselines/reference/functionOverloads15.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/functionOverloads15.ts === +function foo(foo:{a:string; b:number;}):string; +>foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) +>foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads15.ts, 0, 18)) +>b : Symbol(b, Decl(functionOverloads15.ts, 0, 27)) + +function foo(foo:{a:string; b:number;}):number; +>foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) +>foo : Symbol(foo, Decl(functionOverloads15.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads15.ts, 1, 18)) +>b : Symbol(b, Decl(functionOverloads15.ts, 1, 27)) + +function foo(foo:{a:string; b?:number;}):any { return "" } +>foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) +>foo : Symbol(foo, Decl(functionOverloads15.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads15.ts, 2, 18)) +>b : Symbol(b, Decl(functionOverloads15.ts, 2, 27)) + diff --git a/tests/baselines/reference/functionOverloads15.types b/tests/baselines/reference/functionOverloads15.types index 75ec76e270cb6..8fe428e9a4084 100644 --- a/tests/baselines/reference/functionOverloads15.types +++ b/tests/baselines/reference/functionOverloads15.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionOverloads15.ts === function foo(foo:{a:string; b:number;}):string; ->foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; }, Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) ->foo : { a: string; b: number; }, Symbol(foo, Decl(functionOverloads15.ts, 0, 13)) ->a : string, Symbol(a, Decl(functionOverloads15.ts, 0, 18)) ->b : number, Symbol(b, Decl(functionOverloads15.ts, 0, 27)) +>foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; } +>foo : { a: string; b: number; } +>a : string +>b : number function foo(foo:{a:string; b:number;}):number; ->foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; }, Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) ->foo : { a: string; b: number; }, Symbol(foo, Decl(functionOverloads15.ts, 1, 13)) ->a : string, Symbol(a, Decl(functionOverloads15.ts, 1, 18)) ->b : number, Symbol(b, Decl(functionOverloads15.ts, 1, 27)) +>foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; } +>foo : { a: string; b: number; } +>a : string +>b : number function foo(foo:{a:string; b?:number;}):any { return "" } ->foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; }, Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) ->foo : { a: string; b?: number; }, Symbol(foo, Decl(functionOverloads15.ts, 2, 13)) ->a : string, Symbol(a, Decl(functionOverloads15.ts, 2, 18)) ->b : number, Symbol(b, Decl(functionOverloads15.ts, 2, 27)) +>foo : { (foo: { a: string; b: number; }): string; (foo: { a: string; b: number; }): number; } +>foo : { a: string; b?: number; } +>a : string +>b : number >"" : string diff --git a/tests/baselines/reference/functionOverloads16.symbols b/tests/baselines/reference/functionOverloads16.symbols new file mode 100644 index 0000000000000..97f7dfe7e74da --- /dev/null +++ b/tests/baselines/reference/functionOverloads16.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/functionOverloads16.ts === +function foo(foo:{a:string;}):string; +>foo : Symbol(foo, Decl(functionOverloads16.ts, 0, 0), Decl(functionOverloads16.ts, 0, 37), Decl(functionOverloads16.ts, 1, 37)) +>foo : Symbol(foo, Decl(functionOverloads16.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads16.ts, 0, 18)) + +function foo(foo:{a:string;}):number; +>foo : Symbol(foo, Decl(functionOverloads16.ts, 0, 0), Decl(functionOverloads16.ts, 0, 37), Decl(functionOverloads16.ts, 1, 37)) +>foo : Symbol(foo, Decl(functionOverloads16.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads16.ts, 1, 18)) + +function foo(foo:{a:string; b?:number;}):any { return "" } +>foo : Symbol(foo, Decl(functionOverloads16.ts, 0, 0), Decl(functionOverloads16.ts, 0, 37), Decl(functionOverloads16.ts, 1, 37)) +>foo : Symbol(foo, Decl(functionOverloads16.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads16.ts, 2, 18)) +>b : Symbol(b, Decl(functionOverloads16.ts, 2, 27)) + diff --git a/tests/baselines/reference/functionOverloads16.types b/tests/baselines/reference/functionOverloads16.types index ccfa7adce131b..e6c6ceb57a678 100644 --- a/tests/baselines/reference/functionOverloads16.types +++ b/tests/baselines/reference/functionOverloads16.types @@ -1,18 +1,18 @@ === tests/cases/compiler/functionOverloads16.ts === function foo(foo:{a:string;}):string; ->foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; }, Symbol(foo, Decl(functionOverloads16.ts, 0, 0), Decl(functionOverloads16.ts, 0, 37), Decl(functionOverloads16.ts, 1, 37)) ->foo : { a: string; }, Symbol(foo, Decl(functionOverloads16.ts, 0, 13)) ->a : string, Symbol(a, Decl(functionOverloads16.ts, 0, 18)) +>foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; } +>foo : { a: string; } +>a : string function foo(foo:{a:string;}):number; ->foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; }, Symbol(foo, Decl(functionOverloads16.ts, 0, 0), Decl(functionOverloads16.ts, 0, 37), Decl(functionOverloads16.ts, 1, 37)) ->foo : { a: string; }, Symbol(foo, Decl(functionOverloads16.ts, 1, 13)) ->a : string, Symbol(a, Decl(functionOverloads16.ts, 1, 18)) +>foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; } +>foo : { a: string; } +>a : string function foo(foo:{a:string; b?:number;}):any { return "" } ->foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; }, Symbol(foo, Decl(functionOverloads16.ts, 0, 0), Decl(functionOverloads16.ts, 0, 37), Decl(functionOverloads16.ts, 1, 37)) ->foo : { a: string; b?: number; }, Symbol(foo, Decl(functionOverloads16.ts, 2, 13)) ->a : string, Symbol(a, Decl(functionOverloads16.ts, 2, 18)) ->b : number, Symbol(b, Decl(functionOverloads16.ts, 2, 27)) +>foo : { (foo: { a: string; }): string; (foo: { a: string; }): number; } +>foo : { a: string; b?: number; } +>a : string +>b : number >"" : string diff --git a/tests/baselines/reference/functionOverloads21.symbols b/tests/baselines/reference/functionOverloads21.symbols new file mode 100644 index 0000000000000..9e772c8aed85d --- /dev/null +++ b/tests/baselines/reference/functionOverloads21.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionOverloads21.ts === +function foo(bar:{a:number;}[]); +>foo : Symbol(foo, Decl(functionOverloads21.ts, 0, 0), Decl(functionOverloads21.ts, 0, 32), Decl(functionOverloads21.ts, 1, 42)) +>bar : Symbol(bar, Decl(functionOverloads21.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads21.ts, 0, 18)) + +function foo(bar:{a:number; b:string;}[]); +>foo : Symbol(foo, Decl(functionOverloads21.ts, 0, 0), Decl(functionOverloads21.ts, 0, 32), Decl(functionOverloads21.ts, 1, 42)) +>bar : Symbol(bar, Decl(functionOverloads21.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads21.ts, 1, 18)) +>b : Symbol(b, Decl(functionOverloads21.ts, 1, 27)) + +function foo(bar:{a:any; b?:string;}[]) { return 0 } +>foo : Symbol(foo, Decl(functionOverloads21.ts, 0, 0), Decl(functionOverloads21.ts, 0, 32), Decl(functionOverloads21.ts, 1, 42)) +>bar : Symbol(bar, Decl(functionOverloads21.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads21.ts, 2, 18)) +>b : Symbol(b, Decl(functionOverloads21.ts, 2, 24)) + diff --git a/tests/baselines/reference/functionOverloads21.types b/tests/baselines/reference/functionOverloads21.types index b5dde128390a3..3b4cf261ea948 100644 --- a/tests/baselines/reference/functionOverloads21.types +++ b/tests/baselines/reference/functionOverloads21.types @@ -1,19 +1,19 @@ === tests/cases/compiler/functionOverloads21.ts === function foo(bar:{a:number;}[]); ->foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; }, Symbol(foo, Decl(functionOverloads21.ts, 0, 0), Decl(functionOverloads21.ts, 0, 32), Decl(functionOverloads21.ts, 1, 42)) ->bar : { a: number; }[], Symbol(bar, Decl(functionOverloads21.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionOverloads21.ts, 0, 18)) +>foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; } +>bar : { a: number; }[] +>a : number function foo(bar:{a:number; b:string;}[]); ->foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; }, Symbol(foo, Decl(functionOverloads21.ts, 0, 0), Decl(functionOverloads21.ts, 0, 32), Decl(functionOverloads21.ts, 1, 42)) ->bar : { a: number; b: string; }[], Symbol(bar, Decl(functionOverloads21.ts, 1, 13)) ->a : number, Symbol(a, Decl(functionOverloads21.ts, 1, 18)) ->b : string, Symbol(b, Decl(functionOverloads21.ts, 1, 27)) +>foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; } +>bar : { a: number; b: string; }[] +>a : number +>b : string function foo(bar:{a:any; b?:string;}[]) { return 0 } ->foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; }, Symbol(foo, Decl(functionOverloads21.ts, 0, 0), Decl(functionOverloads21.ts, 0, 32), Decl(functionOverloads21.ts, 1, 42)) ->bar : { a: any; b?: string; }[], Symbol(bar, Decl(functionOverloads21.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads21.ts, 2, 18)) ->b : string, Symbol(b, Decl(functionOverloads21.ts, 2, 24)) +>foo : { (bar: { a: number; }[]): any; (bar: { a: number; b: string; }[]): any; } +>bar : { a: any; b?: string; }[] +>a : any +>b : string >0 : number diff --git a/tests/baselines/reference/functionOverloads23.symbols b/tests/baselines/reference/functionOverloads23.symbols new file mode 100644 index 0000000000000..bc79c1b4e2bbd --- /dev/null +++ b/tests/baselines/reference/functionOverloads23.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/functionOverloads23.ts === +function foo(bar:(b:string)=>void); +>foo : Symbol(foo, Decl(functionOverloads23.ts, 0, 0), Decl(functionOverloads23.ts, 0, 35), Decl(functionOverloads23.ts, 1, 35)) +>bar : Symbol(bar, Decl(functionOverloads23.ts, 0, 13)) +>b : Symbol(b, Decl(functionOverloads23.ts, 0, 18)) + +function foo(bar:(a:number)=>void); +>foo : Symbol(foo, Decl(functionOverloads23.ts, 0, 0), Decl(functionOverloads23.ts, 0, 35), Decl(functionOverloads23.ts, 1, 35)) +>bar : Symbol(bar, Decl(functionOverloads23.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads23.ts, 1, 18)) + +function foo(bar:(a?)=>void) { return 0 } +>foo : Symbol(foo, Decl(functionOverloads23.ts, 0, 0), Decl(functionOverloads23.ts, 0, 35), Decl(functionOverloads23.ts, 1, 35)) +>bar : Symbol(bar, Decl(functionOverloads23.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads23.ts, 2, 18)) + diff --git a/tests/baselines/reference/functionOverloads23.types b/tests/baselines/reference/functionOverloads23.types index e5719d258326d..ee510a336e1ef 100644 --- a/tests/baselines/reference/functionOverloads23.types +++ b/tests/baselines/reference/functionOverloads23.types @@ -1,17 +1,17 @@ === tests/cases/compiler/functionOverloads23.ts === function foo(bar:(b:string)=>void); ->foo : { (bar: (b: string) => void): any; (bar: (a: number) => void): any; }, Symbol(foo, Decl(functionOverloads23.ts, 0, 0), Decl(functionOverloads23.ts, 0, 35), Decl(functionOverloads23.ts, 1, 35)) ->bar : (b: string) => void, Symbol(bar, Decl(functionOverloads23.ts, 0, 13)) ->b : string, Symbol(b, Decl(functionOverloads23.ts, 0, 18)) +>foo : { (bar: (b: string) => void): any; (bar: (a: number) => void): any; } +>bar : (b: string) => void +>b : string function foo(bar:(a:number)=>void); ->foo : { (bar: (b: string) => void): any; (bar: (a: number) => void): any; }, Symbol(foo, Decl(functionOverloads23.ts, 0, 0), Decl(functionOverloads23.ts, 0, 35), Decl(functionOverloads23.ts, 1, 35)) ->bar : (a: number) => void, Symbol(bar, Decl(functionOverloads23.ts, 1, 13)) ->a : number, Symbol(a, Decl(functionOverloads23.ts, 1, 18)) +>foo : { (bar: (b: string) => void): any; (bar: (a: number) => void): any; } +>bar : (a: number) => void +>a : number function foo(bar:(a?)=>void) { return 0 } ->foo : { (bar: (b: string) => void): any; (bar: (a: number) => void): any; }, Symbol(foo, Decl(functionOverloads23.ts, 0, 0), Decl(functionOverloads23.ts, 0, 35), Decl(functionOverloads23.ts, 1, 35)) ->bar : (a?: any) => void, Symbol(bar, Decl(functionOverloads23.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads23.ts, 2, 18)) +>foo : { (bar: (b: string) => void): any; (bar: (a: number) => void): any; } +>bar : (a?: any) => void +>a : any >0 : number diff --git a/tests/baselines/reference/functionOverloads24.symbols b/tests/baselines/reference/functionOverloads24.symbols new file mode 100644 index 0000000000000..0753e1f832b29 --- /dev/null +++ b/tests/baselines/reference/functionOverloads24.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/functionOverloads24.ts === +function foo(bar:number):(b:string)=>void; +>foo : Symbol(foo, Decl(functionOverloads24.ts, 0, 0), Decl(functionOverloads24.ts, 0, 42), Decl(functionOverloads24.ts, 1, 42)) +>bar : Symbol(bar, Decl(functionOverloads24.ts, 0, 13)) +>b : Symbol(b, Decl(functionOverloads24.ts, 0, 26)) + +function foo(bar:string):(a:number)=>void; +>foo : Symbol(foo, Decl(functionOverloads24.ts, 0, 0), Decl(functionOverloads24.ts, 0, 42), Decl(functionOverloads24.ts, 1, 42)) +>bar : Symbol(bar, Decl(functionOverloads24.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads24.ts, 1, 26)) + +function foo(bar:any):(a)=>void { return function(){} } +>foo : Symbol(foo, Decl(functionOverloads24.ts, 0, 0), Decl(functionOverloads24.ts, 0, 42), Decl(functionOverloads24.ts, 1, 42)) +>bar : Symbol(bar, Decl(functionOverloads24.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads24.ts, 2, 23)) + diff --git a/tests/baselines/reference/functionOverloads24.types b/tests/baselines/reference/functionOverloads24.types index 94d46b69f3455..f6f090d904ffc 100644 --- a/tests/baselines/reference/functionOverloads24.types +++ b/tests/baselines/reference/functionOverloads24.types @@ -1,17 +1,17 @@ === tests/cases/compiler/functionOverloads24.ts === function foo(bar:number):(b:string)=>void; ->foo : { (bar: number): (b: string) => void; (bar: string): (a: number) => void; }, Symbol(foo, Decl(functionOverloads24.ts, 0, 0), Decl(functionOverloads24.ts, 0, 42), Decl(functionOverloads24.ts, 1, 42)) ->bar : number, Symbol(bar, Decl(functionOverloads24.ts, 0, 13)) ->b : string, Symbol(b, Decl(functionOverloads24.ts, 0, 26)) +>foo : { (bar: number): (b: string) => void; (bar: string): (a: number) => void; } +>bar : number +>b : string function foo(bar:string):(a:number)=>void; ->foo : { (bar: number): (b: string) => void; (bar: string): (a: number) => void; }, Symbol(foo, Decl(functionOverloads24.ts, 0, 0), Decl(functionOverloads24.ts, 0, 42), Decl(functionOverloads24.ts, 1, 42)) ->bar : string, Symbol(bar, Decl(functionOverloads24.ts, 1, 13)) ->a : number, Symbol(a, Decl(functionOverloads24.ts, 1, 26)) +>foo : { (bar: number): (b: string) => void; (bar: string): (a: number) => void; } +>bar : string +>a : number function foo(bar:any):(a)=>void { return function(){} } ->foo : { (bar: number): (b: string) => void; (bar: string): (a: number) => void; }, Symbol(foo, Decl(functionOverloads24.ts, 0, 0), Decl(functionOverloads24.ts, 0, 42), Decl(functionOverloads24.ts, 1, 42)) ->bar : any, Symbol(bar, Decl(functionOverloads24.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads24.ts, 2, 23)) +>foo : { (bar: number): (b: string) => void; (bar: string): (a: number) => void; } +>bar : any +>a : any >function(){} : () => void diff --git a/tests/baselines/reference/functionOverloads25.symbols b/tests/baselines/reference/functionOverloads25.symbols new file mode 100644 index 0000000000000..9eeae4b3ce587 --- /dev/null +++ b/tests/baselines/reference/functionOverloads25.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/functionOverloads25.ts === +function foo():string; +>foo : Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) + +function foo(bar:string):number; +>foo : Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads25.ts, 1, 13)) + +function foo(bar?:any):any{ return '' }; +>foo : Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads25.ts, 2, 13)) + +var x = foo(); +>x : Symbol(x, Decl(functionOverloads25.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) + diff --git a/tests/baselines/reference/functionOverloads25.types b/tests/baselines/reference/functionOverloads25.types index f6409fbff9d3c..5b5c3781e74c4 100644 --- a/tests/baselines/reference/functionOverloads25.types +++ b/tests/baselines/reference/functionOverloads25.types @@ -1,18 +1,18 @@ === tests/cases/compiler/functionOverloads25.ts === function foo():string; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) +>foo : { (): string; (bar: string): number; } function foo(bar:string):number; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) ->bar : string, Symbol(bar, Decl(functionOverloads25.ts, 1, 13)) +>foo : { (): string; (bar: string): number; } +>bar : string function foo(bar?:any):any{ return '' }; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) ->bar : any, Symbol(bar, Decl(functionOverloads25.ts, 2, 13)) +>foo : { (): string; (bar: string): number; } +>bar : any >'' : string var x = foo(); ->x : string, Symbol(x, Decl(functionOverloads25.ts, 3, 3)) +>x : string >foo() : string ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads25.ts, 0, 0), Decl(functionOverloads25.ts, 0, 22), Decl(functionOverloads25.ts, 1, 32)) +>foo : { (): string; (bar: string): number; } diff --git a/tests/baselines/reference/functionOverloads26.symbols b/tests/baselines/reference/functionOverloads26.symbols new file mode 100644 index 0000000000000..b5e48390a2c8f --- /dev/null +++ b/tests/baselines/reference/functionOverloads26.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/functionOverloads26.ts === +function foo():string; +>foo : Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) + +function foo(bar:string):number; +>foo : Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads26.ts, 1, 13)) + +function foo(bar?:any):any{ return '' } +>foo : Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads26.ts, 2, 13)) + +var x = foo('baz'); +>x : Symbol(x, Decl(functionOverloads26.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) + diff --git a/tests/baselines/reference/functionOverloads26.types b/tests/baselines/reference/functionOverloads26.types index c83f9ba021525..9345507b72ea7 100644 --- a/tests/baselines/reference/functionOverloads26.types +++ b/tests/baselines/reference/functionOverloads26.types @@ -1,19 +1,19 @@ === tests/cases/compiler/functionOverloads26.ts === function foo():string; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) +>foo : { (): string; (bar: string): number; } function foo(bar:string):number; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) ->bar : string, Symbol(bar, Decl(functionOverloads26.ts, 1, 13)) +>foo : { (): string; (bar: string): number; } +>bar : string function foo(bar?:any):any{ return '' } ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) ->bar : any, Symbol(bar, Decl(functionOverloads26.ts, 2, 13)) +>foo : { (): string; (bar: string): number; } +>bar : any >'' : string var x = foo('baz'); ->x : number, Symbol(x, Decl(functionOverloads26.ts, 3, 3)) +>x : number >foo('baz') : number ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads26.ts, 0, 0), Decl(functionOverloads26.ts, 0, 22), Decl(functionOverloads26.ts, 1, 32)) +>foo : { (): string; (bar: string): number; } >'baz' : string diff --git a/tests/baselines/reference/functionOverloads28.symbols b/tests/baselines/reference/functionOverloads28.symbols new file mode 100644 index 0000000000000..643bc4d59937b --- /dev/null +++ b/tests/baselines/reference/functionOverloads28.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionOverloads28.ts === +function foo():string; +>foo : Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) + +function foo(bar:string):number; +>foo : Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads28.ts, 1, 13)) + +function foo(bar?:any):any{ return '' } +>foo : Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads28.ts, 2, 13)) + +var t:any; var x = foo(t); +>t : Symbol(t, Decl(functionOverloads28.ts, 3, 3)) +>x : Symbol(x, Decl(functionOverloads28.ts, 3, 14)) +>foo : Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) +>t : Symbol(t, Decl(functionOverloads28.ts, 3, 3)) + diff --git a/tests/baselines/reference/functionOverloads28.types b/tests/baselines/reference/functionOverloads28.types index 622514821b160..ae4ab6c0664f3 100644 --- a/tests/baselines/reference/functionOverloads28.types +++ b/tests/baselines/reference/functionOverloads28.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionOverloads28.ts === function foo():string; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) +>foo : { (): string; (bar: string): number; } function foo(bar:string):number; ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) ->bar : string, Symbol(bar, Decl(functionOverloads28.ts, 1, 13)) +>foo : { (): string; (bar: string): number; } +>bar : string function foo(bar?:any):any{ return '' } ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) ->bar : any, Symbol(bar, Decl(functionOverloads28.ts, 2, 13)) +>foo : { (): string; (bar: string): number; } +>bar : any >'' : string var t:any; var x = foo(t); ->t : any, Symbol(t, Decl(functionOverloads28.ts, 3, 3)) ->x : number, Symbol(x, Decl(functionOverloads28.ts, 3, 14)) +>t : any +>x : number >foo(t) : number ->foo : { (): string; (bar: string): number; }, Symbol(foo, Decl(functionOverloads28.ts, 0, 0), Decl(functionOverloads28.ts, 0, 22), Decl(functionOverloads28.ts, 1, 32)) ->t : any, Symbol(t, Decl(functionOverloads28.ts, 3, 3)) +>foo : { (): string; (bar: string): number; } +>t : any diff --git a/tests/baselines/reference/functionOverloads30.symbols b/tests/baselines/reference/functionOverloads30.symbols new file mode 100644 index 0000000000000..828c9149a128d --- /dev/null +++ b/tests/baselines/reference/functionOverloads30.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionOverloads30.ts === +function foo(bar:string):string; +>foo : Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads30.ts, 0, 13)) + +function foo(bar:number):number; +>foo : Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads30.ts, 1, 13)) + +function foo(bar:any):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads30.ts, 2, 13)) +>bar : Symbol(bar, Decl(functionOverloads30.ts, 2, 13)) + +var x = foo('bar'); +>x : Symbol(x, Decl(functionOverloads30.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) + diff --git a/tests/baselines/reference/functionOverloads30.types b/tests/baselines/reference/functionOverloads30.types index 4976baa813512..a97bc0bb74d41 100644 --- a/tests/baselines/reference/functionOverloads30.types +++ b/tests/baselines/reference/functionOverloads30.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionOverloads30.ts === function foo(bar:string):string; ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) ->bar : string, Symbol(bar, Decl(functionOverloads30.ts, 0, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : string function foo(bar:number):number; ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) ->bar : number, Symbol(bar, Decl(functionOverloads30.ts, 1, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : number function foo(bar:any):any{ return bar } ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) ->bar : any, Symbol(bar, Decl(functionOverloads30.ts, 2, 13)) ->bar : any, Symbol(bar, Decl(functionOverloads30.ts, 2, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : any +>bar : any var x = foo('bar'); ->x : string, Symbol(x, Decl(functionOverloads30.ts, 3, 3)) +>x : string >foo('bar') : string ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads30.ts, 0, 0), Decl(functionOverloads30.ts, 0, 32), Decl(functionOverloads30.ts, 1, 32)) +>foo : { (bar: string): string; (bar: number): number; } >'bar' : string diff --git a/tests/baselines/reference/functionOverloads31.symbols b/tests/baselines/reference/functionOverloads31.symbols new file mode 100644 index 0000000000000..e869e9f21b717 --- /dev/null +++ b/tests/baselines/reference/functionOverloads31.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionOverloads31.ts === +function foo(bar:string):string; +>foo : Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads31.ts, 0, 13)) + +function foo(bar:number):number; +>foo : Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads31.ts, 1, 13)) + +function foo(bar:any):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads31.ts, 2, 13)) +>bar : Symbol(bar, Decl(functionOverloads31.ts, 2, 13)) + +var x = foo(5); +>x : Symbol(x, Decl(functionOverloads31.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) + diff --git a/tests/baselines/reference/functionOverloads31.types b/tests/baselines/reference/functionOverloads31.types index bd460b9e2632f..c85470ebd65ef 100644 --- a/tests/baselines/reference/functionOverloads31.types +++ b/tests/baselines/reference/functionOverloads31.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionOverloads31.ts === function foo(bar:string):string; ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) ->bar : string, Symbol(bar, Decl(functionOverloads31.ts, 0, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : string function foo(bar:number):number; ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) ->bar : number, Symbol(bar, Decl(functionOverloads31.ts, 1, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : number function foo(bar:any):any{ return bar } ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) ->bar : any, Symbol(bar, Decl(functionOverloads31.ts, 2, 13)) ->bar : any, Symbol(bar, Decl(functionOverloads31.ts, 2, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : any +>bar : any var x = foo(5); ->x : number, Symbol(x, Decl(functionOverloads31.ts, 3, 3)) +>x : number >foo(5) : number ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads31.ts, 0, 0), Decl(functionOverloads31.ts, 0, 32), Decl(functionOverloads31.ts, 1, 32)) +>foo : { (bar: string): string; (bar: number): number; } >5 : number diff --git a/tests/baselines/reference/functionOverloads32.symbols b/tests/baselines/reference/functionOverloads32.symbols new file mode 100644 index 0000000000000..6f0f013abf703 --- /dev/null +++ b/tests/baselines/reference/functionOverloads32.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/functionOverloads32.ts === +function foo(bar:string):string; +>foo : Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads32.ts, 0, 13)) + +function foo(bar:number):number; +>foo : Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads32.ts, 1, 13)) + +function foo(bar:any):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) +>bar : Symbol(bar, Decl(functionOverloads32.ts, 2, 13)) +>bar : Symbol(bar, Decl(functionOverloads32.ts, 2, 13)) + +var baz:number; var x = foo(baz); +>baz : Symbol(baz, Decl(functionOverloads32.ts, 3, 3)) +>x : Symbol(x, Decl(functionOverloads32.ts, 3, 19)) +>foo : Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) +>baz : Symbol(baz, Decl(functionOverloads32.ts, 3, 3)) + diff --git a/tests/baselines/reference/functionOverloads32.types b/tests/baselines/reference/functionOverloads32.types index 09880b14661b9..df997e5d52a3e 100644 --- a/tests/baselines/reference/functionOverloads32.types +++ b/tests/baselines/reference/functionOverloads32.types @@ -1,21 +1,21 @@ === tests/cases/compiler/functionOverloads32.ts === function foo(bar:string):string; ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) ->bar : string, Symbol(bar, Decl(functionOverloads32.ts, 0, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : string function foo(bar:number):number; ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) ->bar : number, Symbol(bar, Decl(functionOverloads32.ts, 1, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : number function foo(bar:any):any{ return bar } ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) ->bar : any, Symbol(bar, Decl(functionOverloads32.ts, 2, 13)) ->bar : any, Symbol(bar, Decl(functionOverloads32.ts, 2, 13)) +>foo : { (bar: string): string; (bar: number): number; } +>bar : any +>bar : any var baz:number; var x = foo(baz); ->baz : number, Symbol(baz, Decl(functionOverloads32.ts, 3, 3)) ->x : number, Symbol(x, Decl(functionOverloads32.ts, 3, 19)) +>baz : number +>x : number >foo(baz) : number ->foo : { (bar: string): string; (bar: number): number; }, Symbol(foo, Decl(functionOverloads32.ts, 0, 0), Decl(functionOverloads32.ts, 0, 32), Decl(functionOverloads32.ts, 1, 32)) ->baz : number, Symbol(baz, Decl(functionOverloads32.ts, 3, 3)) +>foo : { (bar: string): string; (bar: number): number; } +>baz : number diff --git a/tests/baselines/reference/functionOverloads33.symbols b/tests/baselines/reference/functionOverloads33.symbols new file mode 100644 index 0000000000000..0ba6733a0f75c --- /dev/null +++ b/tests/baselines/reference/functionOverloads33.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionOverloads33.ts === +function foo(bar:string):string; +>foo : Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) +>bar : Symbol(bar, Decl(functionOverloads33.ts, 0, 13)) + +function foo(bar:any):number; +>foo : Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) +>bar : Symbol(bar, Decl(functionOverloads33.ts, 1, 13)) + +function foo(bar:any):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) +>bar : Symbol(bar, Decl(functionOverloads33.ts, 2, 13)) +>bar : Symbol(bar, Decl(functionOverloads33.ts, 2, 13)) + +var x = foo(5); +>x : Symbol(x, Decl(functionOverloads33.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) + diff --git a/tests/baselines/reference/functionOverloads33.types b/tests/baselines/reference/functionOverloads33.types index 963452e37630e..3d57c983305c4 100644 --- a/tests/baselines/reference/functionOverloads33.types +++ b/tests/baselines/reference/functionOverloads33.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionOverloads33.ts === function foo(bar:string):string; ->foo : { (bar: string): string; (bar: any): number; }, Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) ->bar : string, Symbol(bar, Decl(functionOverloads33.ts, 0, 13)) +>foo : { (bar: string): string; (bar: any): number; } +>bar : string function foo(bar:any):number; ->foo : { (bar: string): string; (bar: any): number; }, Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) ->bar : any, Symbol(bar, Decl(functionOverloads33.ts, 1, 13)) +>foo : { (bar: string): string; (bar: any): number; } +>bar : any function foo(bar:any):any{ return bar } ->foo : { (bar: string): string; (bar: any): number; }, Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) ->bar : any, Symbol(bar, Decl(functionOverloads33.ts, 2, 13)) ->bar : any, Symbol(bar, Decl(functionOverloads33.ts, 2, 13)) +>foo : { (bar: string): string; (bar: any): number; } +>bar : any +>bar : any var x = foo(5); ->x : number, Symbol(x, Decl(functionOverloads33.ts, 3, 3)) +>x : number >foo(5) : number ->foo : { (bar: string): string; (bar: any): number; }, Symbol(foo, Decl(functionOverloads33.ts, 0, 0), Decl(functionOverloads33.ts, 0, 32), Decl(functionOverloads33.ts, 1, 29)) +>foo : { (bar: string): string; (bar: any): number; } >5 : number diff --git a/tests/baselines/reference/functionOverloads35.symbols b/tests/baselines/reference/functionOverloads35.symbols new file mode 100644 index 0000000000000..44a65a452f4f7 --- /dev/null +++ b/tests/baselines/reference/functionOverloads35.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/functionOverloads35.ts === +function foo(bar:{a:number;}):number; +>foo : Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) +>bar : Symbol(bar, Decl(functionOverloads35.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads35.ts, 0, 18)) + +function foo(bar:{a:string;}):string; +>foo : Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) +>bar : Symbol(bar, Decl(functionOverloads35.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads35.ts, 1, 18)) + +function foo(bar:{a:any;}):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) +>bar : Symbol(bar, Decl(functionOverloads35.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads35.ts, 2, 18)) +>bar : Symbol(bar, Decl(functionOverloads35.ts, 2, 13)) + +var x = foo({a:1}); +>x : Symbol(x, Decl(functionOverloads35.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) +>a : Symbol(a, Decl(functionOverloads35.ts, 3, 13)) + diff --git a/tests/baselines/reference/functionOverloads35.types b/tests/baselines/reference/functionOverloads35.types index 1578b5fddc33b..1b811cf4246ee 100644 --- a/tests/baselines/reference/functionOverloads35.types +++ b/tests/baselines/reference/functionOverloads35.types @@ -1,25 +1,25 @@ === tests/cases/compiler/functionOverloads35.ts === function foo(bar:{a:number;}):number; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) ->bar : { a: number; }, Symbol(bar, Decl(functionOverloads35.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionOverloads35.ts, 0, 18)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>bar : { a: number; } +>a : number function foo(bar:{a:string;}):string; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) ->bar : { a: string; }, Symbol(bar, Decl(functionOverloads35.ts, 1, 13)) ->a : string, Symbol(a, Decl(functionOverloads35.ts, 1, 18)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>bar : { a: string; } +>a : string function foo(bar:{a:any;}):any{ return bar } ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) ->bar : { a: any; }, Symbol(bar, Decl(functionOverloads35.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads35.ts, 2, 18)) ->bar : { a: any; }, Symbol(bar, Decl(functionOverloads35.ts, 2, 13)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>bar : { a: any; } +>a : any +>bar : { a: any; } var x = foo({a:1}); ->x : number, Symbol(x, Decl(functionOverloads35.ts, 3, 3)) +>x : number >foo({a:1}) : number ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads35.ts, 0, 0), Decl(functionOverloads35.ts, 0, 37), Decl(functionOverloads35.ts, 1, 37)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } >{a:1} : { a: number; } ->a : number, Symbol(a, Decl(functionOverloads35.ts, 3, 13)) +>a : number >1 : number diff --git a/tests/baselines/reference/functionOverloads36.symbols b/tests/baselines/reference/functionOverloads36.symbols new file mode 100644 index 0000000000000..fa6df8fafac05 --- /dev/null +++ b/tests/baselines/reference/functionOverloads36.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/functionOverloads36.ts === +function foo(bar:{a:number;}):number; +>foo : Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) +>bar : Symbol(bar, Decl(functionOverloads36.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads36.ts, 0, 18)) + +function foo(bar:{a:string;}):string; +>foo : Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) +>bar : Symbol(bar, Decl(functionOverloads36.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads36.ts, 1, 18)) + +function foo(bar:{a:any;}):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) +>bar : Symbol(bar, Decl(functionOverloads36.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads36.ts, 2, 18)) +>bar : Symbol(bar, Decl(functionOverloads36.ts, 2, 13)) + +var x = foo({a:'foo'}); +>x : Symbol(x, Decl(functionOverloads36.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) +>a : Symbol(a, Decl(functionOverloads36.ts, 3, 13)) + diff --git a/tests/baselines/reference/functionOverloads36.types b/tests/baselines/reference/functionOverloads36.types index d1a473aa795b8..c8c1f7cede8af 100644 --- a/tests/baselines/reference/functionOverloads36.types +++ b/tests/baselines/reference/functionOverloads36.types @@ -1,25 +1,25 @@ === tests/cases/compiler/functionOverloads36.ts === function foo(bar:{a:number;}):number; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) ->bar : { a: number; }, Symbol(bar, Decl(functionOverloads36.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionOverloads36.ts, 0, 18)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>bar : { a: number; } +>a : number function foo(bar:{a:string;}):string; ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) ->bar : { a: string; }, Symbol(bar, Decl(functionOverloads36.ts, 1, 13)) ->a : string, Symbol(a, Decl(functionOverloads36.ts, 1, 18)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>bar : { a: string; } +>a : string function foo(bar:{a:any;}):any{ return bar } ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) ->bar : { a: any; }, Symbol(bar, Decl(functionOverloads36.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads36.ts, 2, 18)) ->bar : { a: any; }, Symbol(bar, Decl(functionOverloads36.ts, 2, 13)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } +>bar : { a: any; } +>a : any +>bar : { a: any; } var x = foo({a:'foo'}); ->x : string, Symbol(x, Decl(functionOverloads36.ts, 3, 3)) +>x : string >foo({a:'foo'}) : string ->foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; }, Symbol(foo, Decl(functionOverloads36.ts, 0, 0), Decl(functionOverloads36.ts, 0, 37), Decl(functionOverloads36.ts, 1, 37)) +>foo : { (bar: { a: number; }): number; (bar: { a: string; }): string; } >{a:'foo'} : { a: string; } ->a : string, Symbol(a, Decl(functionOverloads36.ts, 3, 13)) +>a : string >'foo' : string diff --git a/tests/baselines/reference/functionOverloads38.symbols b/tests/baselines/reference/functionOverloads38.symbols new file mode 100644 index 0000000000000..460ea75377666 --- /dev/null +++ b/tests/baselines/reference/functionOverloads38.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/functionOverloads38.ts === +function foo(bar:{a:number;}[]):string; +>foo : Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) +>bar : Symbol(bar, Decl(functionOverloads38.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads38.ts, 0, 18)) + +function foo(bar:{a:boolean;}[]):number; +>foo : Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) +>bar : Symbol(bar, Decl(functionOverloads38.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads38.ts, 1, 18)) + +function foo(bar:{a:any;}[]):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) +>bar : Symbol(bar, Decl(functionOverloads38.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads38.ts, 2, 18)) +>bar : Symbol(bar, Decl(functionOverloads38.ts, 2, 13)) + +var x = foo([{a:1}]); +>x : Symbol(x, Decl(functionOverloads38.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) +>a : Symbol(a, Decl(functionOverloads38.ts, 3, 14)) + diff --git a/tests/baselines/reference/functionOverloads38.types b/tests/baselines/reference/functionOverloads38.types index 39fe4629559bc..d718569c9bfa5 100644 --- a/tests/baselines/reference/functionOverloads38.types +++ b/tests/baselines/reference/functionOverloads38.types @@ -1,26 +1,26 @@ === tests/cases/compiler/functionOverloads38.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) ->bar : { a: number; }[], Symbol(bar, Decl(functionOverloads38.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionOverloads38.ts, 0, 18)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>bar : { a: number; }[] +>a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) ->bar : { a: boolean; }[], Symbol(bar, Decl(functionOverloads38.ts, 1, 13)) ->a : boolean, Symbol(a, Decl(functionOverloads38.ts, 1, 18)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>bar : { a: boolean; }[] +>a : boolean function foo(bar:{a:any;}[]):any{ return bar } ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads38.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads38.ts, 2, 18)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads38.ts, 2, 13)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>bar : { a: any; }[] +>a : any +>bar : { a: any; }[] var x = foo([{a:1}]); ->x : string, Symbol(x, Decl(functionOverloads38.ts, 3, 3)) +>x : string >foo([{a:1}]) : string ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads38.ts, 0, 0), Decl(functionOverloads38.ts, 0, 39), Decl(functionOverloads38.ts, 1, 40)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } >[{a:1}] : { a: number; }[] >{a:1} : { a: number; } ->a : number, Symbol(a, Decl(functionOverloads38.ts, 3, 14)) +>a : number >1 : number diff --git a/tests/baselines/reference/functionOverloads39.symbols b/tests/baselines/reference/functionOverloads39.symbols new file mode 100644 index 0000000000000..37bb56117d519 --- /dev/null +++ b/tests/baselines/reference/functionOverloads39.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/functionOverloads39.ts === +function foo(bar:{a:number;}[]):string; +>foo : Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) +>bar : Symbol(bar, Decl(functionOverloads39.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads39.ts, 0, 18)) + +function foo(bar:{a:boolean;}[]):number; +>foo : Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) +>bar : Symbol(bar, Decl(functionOverloads39.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads39.ts, 1, 18)) + +function foo(bar:{a:any;}[]):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) +>bar : Symbol(bar, Decl(functionOverloads39.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads39.ts, 2, 18)) +>bar : Symbol(bar, Decl(functionOverloads39.ts, 2, 13)) + +var x = foo([{a:true}]); +>x : Symbol(x, Decl(functionOverloads39.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) +>a : Symbol(a, Decl(functionOverloads39.ts, 3, 14)) + diff --git a/tests/baselines/reference/functionOverloads39.types b/tests/baselines/reference/functionOverloads39.types index a39ad24b38627..78c0e78bca14b 100644 --- a/tests/baselines/reference/functionOverloads39.types +++ b/tests/baselines/reference/functionOverloads39.types @@ -1,26 +1,26 @@ === tests/cases/compiler/functionOverloads39.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) ->bar : { a: number; }[], Symbol(bar, Decl(functionOverloads39.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionOverloads39.ts, 0, 18)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>bar : { a: number; }[] +>a : number function foo(bar:{a:boolean;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) ->bar : { a: boolean; }[], Symbol(bar, Decl(functionOverloads39.ts, 1, 13)) ->a : boolean, Symbol(a, Decl(functionOverloads39.ts, 1, 18)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>bar : { a: boolean; }[] +>a : boolean function foo(bar:{a:any;}[]):any{ return bar } ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads39.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads39.ts, 2, 18)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads39.ts, 2, 13)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } +>bar : { a: any; }[] +>a : any +>bar : { a: any; }[] var x = foo([{a:true}]); ->x : number, Symbol(x, Decl(functionOverloads39.ts, 3, 3)) +>x : number >foo([{a:true}]) : number ->foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; }, Symbol(foo, Decl(functionOverloads39.ts, 0, 0), Decl(functionOverloads39.ts, 0, 39), Decl(functionOverloads39.ts, 1, 40)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } >[{a:true}] : { a: boolean; }[] >{a:true} : { a: boolean; } ->a : boolean, Symbol(a, Decl(functionOverloads39.ts, 3, 14)) +>a : boolean >true : boolean diff --git a/tests/baselines/reference/functionOverloads42.symbols b/tests/baselines/reference/functionOverloads42.symbols new file mode 100644 index 0000000000000..6cca9a552f240 --- /dev/null +++ b/tests/baselines/reference/functionOverloads42.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/functionOverloads42.ts === +function foo(bar:{a:number;}[]):string; +>foo : Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) +>bar : Symbol(bar, Decl(functionOverloads42.ts, 0, 13)) +>a : Symbol(a, Decl(functionOverloads42.ts, 0, 18)) + +function foo(bar:{a:any;}[]):number; +>foo : Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) +>bar : Symbol(bar, Decl(functionOverloads42.ts, 1, 13)) +>a : Symbol(a, Decl(functionOverloads42.ts, 1, 18)) + +function foo(bar:{a:any;}[]):any{ return bar } +>foo : Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) +>bar : Symbol(bar, Decl(functionOverloads42.ts, 2, 13)) +>a : Symbol(a, Decl(functionOverloads42.ts, 2, 18)) +>bar : Symbol(bar, Decl(functionOverloads42.ts, 2, 13)) + +var x = foo([{a:'s'}]); +>x : Symbol(x, Decl(functionOverloads42.ts, 3, 3)) +>foo : Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) +>a : Symbol(a, Decl(functionOverloads42.ts, 3, 14)) + diff --git a/tests/baselines/reference/functionOverloads42.types b/tests/baselines/reference/functionOverloads42.types index 5ff9550b8df54..32e99d46aa12b 100644 --- a/tests/baselines/reference/functionOverloads42.types +++ b/tests/baselines/reference/functionOverloads42.types @@ -1,26 +1,26 @@ === tests/cases/compiler/functionOverloads42.ts === function foo(bar:{a:number;}[]):string; ->foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; }, Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) ->bar : { a: number; }[], Symbol(bar, Decl(functionOverloads42.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionOverloads42.ts, 0, 18)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; } +>bar : { a: number; }[] +>a : number function foo(bar:{a:any;}[]):number; ->foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; }, Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads42.ts, 1, 13)) ->a : any, Symbol(a, Decl(functionOverloads42.ts, 1, 18)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; } +>bar : { a: any; }[] +>a : any function foo(bar:{a:any;}[]):any{ return bar } ->foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; }, Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads42.ts, 2, 13)) ->a : any, Symbol(a, Decl(functionOverloads42.ts, 2, 18)) ->bar : { a: any; }[], Symbol(bar, Decl(functionOverloads42.ts, 2, 13)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; } +>bar : { a: any; }[] +>a : any +>bar : { a: any; }[] var x = foo([{a:'s'}]); ->x : number, Symbol(x, Decl(functionOverloads42.ts, 3, 3)) +>x : number >foo([{a:'s'}]) : number ->foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; }, Symbol(foo, Decl(functionOverloads42.ts, 0, 0), Decl(functionOverloads42.ts, 0, 39), Decl(functionOverloads42.ts, 1, 36)) +>foo : { (bar: { a: number; }[]): string; (bar: { a: any; }[]): number; } >[{a:'s'}] : { a: string; }[] >{a:'s'} : { a: string; } ->a : string, Symbol(a, Decl(functionOverloads42.ts, 3, 14)) +>a : string >'s' : string diff --git a/tests/baselines/reference/functionOverloads6.symbols b/tests/baselines/reference/functionOverloads6.symbols new file mode 100644 index 0000000000000..390339753a6fc --- /dev/null +++ b/tests/baselines/reference/functionOverloads6.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/functionOverloads6.ts === +class foo { +>foo : Symbol(foo, Decl(functionOverloads6.ts, 0, 0)) + + static fnOverload(); +>fnOverload : Symbol(foo.fnOverload, Decl(functionOverloads6.ts, 0, 11), Decl(functionOverloads6.ts, 1, 23), Decl(functionOverloads6.ts, 2, 33)) + + static fnOverload(foo:string); +>fnOverload : Symbol(foo.fnOverload, Decl(functionOverloads6.ts, 0, 11), Decl(functionOverloads6.ts, 1, 23), Decl(functionOverloads6.ts, 2, 33)) +>foo : Symbol(foo, Decl(functionOverloads6.ts, 2, 21)) + + static fnOverload(foo?: any){ } +>fnOverload : Symbol(foo.fnOverload, Decl(functionOverloads6.ts, 0, 11), Decl(functionOverloads6.ts, 1, 23), Decl(functionOverloads6.ts, 2, 33)) +>foo : Symbol(foo, Decl(functionOverloads6.ts, 3, 21)) +} + diff --git a/tests/baselines/reference/functionOverloads6.types b/tests/baselines/reference/functionOverloads6.types index 747c9c339f233..6e195b1ca9079 100644 --- a/tests/baselines/reference/functionOverloads6.types +++ b/tests/baselines/reference/functionOverloads6.types @@ -1,16 +1,16 @@ === tests/cases/compiler/functionOverloads6.ts === class foo { ->foo : foo, Symbol(foo, Decl(functionOverloads6.ts, 0, 0)) +>foo : foo static fnOverload(); ->fnOverload : { (): any; (foo: string): any; }, Symbol(foo.fnOverload, Decl(functionOverloads6.ts, 0, 11), Decl(functionOverloads6.ts, 1, 23), Decl(functionOverloads6.ts, 2, 33)) +>fnOverload : { (): any; (foo: string): any; } static fnOverload(foo:string); ->fnOverload : { (): any; (foo: string): any; }, Symbol(foo.fnOverload, Decl(functionOverloads6.ts, 0, 11), Decl(functionOverloads6.ts, 1, 23), Decl(functionOverloads6.ts, 2, 33)) ->foo : string, Symbol(foo, Decl(functionOverloads6.ts, 2, 21)) +>fnOverload : { (): any; (foo: string): any; } +>foo : string static fnOverload(foo?: any){ } ->fnOverload : { (): any; (foo: string): any; }, Symbol(foo.fnOverload, Decl(functionOverloads6.ts, 0, 11), Decl(functionOverloads6.ts, 1, 23), Decl(functionOverloads6.ts, 2, 33)) ->foo : any, Symbol(foo, Decl(functionOverloads6.ts, 3, 21)) +>fnOverload : { (): any; (foo: string): any; } +>foo : any } diff --git a/tests/baselines/reference/functionOverloads7.symbols b/tests/baselines/reference/functionOverloads7.symbols new file mode 100644 index 0000000000000..1d2fe3ea6a201 --- /dev/null +++ b/tests/baselines/reference/functionOverloads7.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/functionOverloads7.ts === +class foo { +>foo : Symbol(foo, Decl(functionOverloads7.ts, 0, 0)) + + private bar(); +>bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) + + private bar(foo: string); +>bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>foo : Symbol(foo, Decl(functionOverloads7.ts, 2, 15)) + + private bar(foo?: any){ return "foo" } +>bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>foo : Symbol(foo, Decl(functionOverloads7.ts, 3, 15)) + + public n() { +>n : Symbol(n, Decl(functionOverloads7.ts, 3, 41)) + + var foo = this.bar(); +>foo : Symbol(foo, Decl(functionOverloads7.ts, 5, 8)) +>this.bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>this : Symbol(foo, Decl(functionOverloads7.ts, 0, 0)) +>bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) + + foo = this.bar("test"); +>foo : Symbol(foo, Decl(functionOverloads7.ts, 5, 8)) +>this.bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>this : Symbol(foo, Decl(functionOverloads7.ts, 0, 0)) +>bar : Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) + } +} + diff --git a/tests/baselines/reference/functionOverloads7.types b/tests/baselines/reference/functionOverloads7.types index a1d302d70e1a8..c57f042b35487 100644 --- a/tests/baselines/reference/functionOverloads7.types +++ b/tests/baselines/reference/functionOverloads7.types @@ -1,36 +1,36 @@ === tests/cases/compiler/functionOverloads7.ts === class foo { ->foo : foo, Symbol(foo, Decl(functionOverloads7.ts, 0, 0)) +>foo : foo private bar(); ->bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>bar : { (): any; (foo: string): any; } private bar(foo: string); ->bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) ->foo : string, Symbol(foo, Decl(functionOverloads7.ts, 2, 15)) +>bar : { (): any; (foo: string): any; } +>foo : string private bar(foo?: any){ return "foo" } ->bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) ->foo : any, Symbol(foo, Decl(functionOverloads7.ts, 3, 15)) +>bar : { (): any; (foo: string): any; } +>foo : any >"foo" : string public n() { ->n : () => void, Symbol(n, Decl(functionOverloads7.ts, 3, 41)) +>n : () => void var foo = this.bar(); ->foo : any, Symbol(foo, Decl(functionOverloads7.ts, 5, 8)) +>foo : any >this.bar() : any ->this.bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) ->this : foo, Symbol(foo, Decl(functionOverloads7.ts, 0, 0)) ->bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>this.bar : { (): any; (foo: string): any; } +>this : foo +>bar : { (): any; (foo: string): any; } foo = this.bar("test"); >foo = this.bar("test") : any ->foo : any, Symbol(foo, Decl(functionOverloads7.ts, 5, 8)) +>foo : any >this.bar("test") : any ->this.bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) ->this : foo, Symbol(foo, Decl(functionOverloads7.ts, 0, 0)) ->bar : { (): any; (foo: string): any; }, Symbol(bar, Decl(functionOverloads7.ts, 0, 11), Decl(functionOverloads7.ts, 1, 17), Decl(functionOverloads7.ts, 2, 28)) +>this.bar : { (): any; (foo: string): any; } +>this : foo +>bar : { (): any; (foo: string): any; } >"test" : string } } diff --git a/tests/baselines/reference/functionOverloads8.symbols b/tests/baselines/reference/functionOverloads8.symbols new file mode 100644 index 0000000000000..39acaddcd4f9a --- /dev/null +++ b/tests/baselines/reference/functionOverloads8.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/functionOverloads8.ts === +function foo(); +>foo : Symbol(foo, Decl(functionOverloads8.ts, 0, 0), Decl(functionOverloads8.ts, 0, 15), Decl(functionOverloads8.ts, 1, 25)) + +function foo(foo:string); +>foo : Symbol(foo, Decl(functionOverloads8.ts, 0, 0), Decl(functionOverloads8.ts, 0, 15), Decl(functionOverloads8.ts, 1, 25)) +>foo : Symbol(foo, Decl(functionOverloads8.ts, 1, 13)) + +function foo(foo?:any){ return '' } +>foo : Symbol(foo, Decl(functionOverloads8.ts, 0, 0), Decl(functionOverloads8.ts, 0, 15), Decl(functionOverloads8.ts, 1, 25)) +>foo : Symbol(foo, Decl(functionOverloads8.ts, 2, 13)) + diff --git a/tests/baselines/reference/functionOverloads8.types b/tests/baselines/reference/functionOverloads8.types index 16fe9ab38ca84..4751533e2af8f 100644 --- a/tests/baselines/reference/functionOverloads8.types +++ b/tests/baselines/reference/functionOverloads8.types @@ -1,13 +1,13 @@ === tests/cases/compiler/functionOverloads8.ts === function foo(); ->foo : { (): any; (foo: string): any; }, Symbol(foo, Decl(functionOverloads8.ts, 0, 0), Decl(functionOverloads8.ts, 0, 15), Decl(functionOverloads8.ts, 1, 25)) +>foo : { (): any; (foo: string): any; } function foo(foo:string); ->foo : { (): any; (foo: string): any; }, Symbol(foo, Decl(functionOverloads8.ts, 0, 0), Decl(functionOverloads8.ts, 0, 15), Decl(functionOverloads8.ts, 1, 25)) ->foo : string, Symbol(foo, Decl(functionOverloads8.ts, 1, 13)) +>foo : { (): any; (foo: string): any; } +>foo : string function foo(foo?:any){ return '' } ->foo : { (): any; (foo: string): any; }, Symbol(foo, Decl(functionOverloads8.ts, 0, 0), Decl(functionOverloads8.ts, 0, 15), Decl(functionOverloads8.ts, 1, 25)) ->foo : any, Symbol(foo, Decl(functionOverloads8.ts, 2, 13)) +>foo : { (): any; (foo: string): any; } +>foo : any >'' : string diff --git a/tests/baselines/reference/functionOverloads9.symbols b/tests/baselines/reference/functionOverloads9.symbols new file mode 100644 index 0000000000000..0fe6fe731a817 --- /dev/null +++ b/tests/baselines/reference/functionOverloads9.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/functionOverloads9.ts === +function foo(foo:string); +>foo : Symbol(foo, Decl(functionOverloads9.ts, 0, 0), Decl(functionOverloads9.ts, 0, 25)) +>foo : Symbol(foo, Decl(functionOverloads9.ts, 0, 13)) + +function foo(foo?:string){ return '' }; +>foo : Symbol(foo, Decl(functionOverloads9.ts, 0, 0), Decl(functionOverloads9.ts, 0, 25)) +>foo : Symbol(foo, Decl(functionOverloads9.ts, 1, 13)) + +var x = foo('foo'); +>x : Symbol(x, Decl(functionOverloads9.ts, 2, 3)) +>foo : Symbol(foo, Decl(functionOverloads9.ts, 0, 0), Decl(functionOverloads9.ts, 0, 25)) + diff --git a/tests/baselines/reference/functionOverloads9.types b/tests/baselines/reference/functionOverloads9.types index 165c6b88e36e6..88586c32eb288 100644 --- a/tests/baselines/reference/functionOverloads9.types +++ b/tests/baselines/reference/functionOverloads9.types @@ -1,16 +1,16 @@ === tests/cases/compiler/functionOverloads9.ts === function foo(foo:string); ->foo : (foo: string) => any, Symbol(foo, Decl(functionOverloads9.ts, 0, 0), Decl(functionOverloads9.ts, 0, 25)) ->foo : string, Symbol(foo, Decl(functionOverloads9.ts, 0, 13)) +>foo : (foo: string) => any +>foo : string function foo(foo?:string){ return '' }; ->foo : (foo: string) => any, Symbol(foo, Decl(functionOverloads9.ts, 0, 0), Decl(functionOverloads9.ts, 0, 25)) ->foo : string, Symbol(foo, Decl(functionOverloads9.ts, 1, 13)) +>foo : (foo: string) => any +>foo : string >'' : string var x = foo('foo'); ->x : any, Symbol(x, Decl(functionOverloads9.ts, 2, 3)) +>x : any >foo('foo') : any ->foo : (foo: string) => any, Symbol(foo, Decl(functionOverloads9.ts, 0, 0), Decl(functionOverloads9.ts, 0, 25)) +>foo : (foo: string) => any >'foo' : string diff --git a/tests/baselines/reference/functionOverloadsOnGenericArity1.symbols b/tests/baselines/reference/functionOverloadsOnGenericArity1.symbols new file mode 100644 index 0000000000000..d4721e5ec0871 --- /dev/null +++ b/tests/baselines/reference/functionOverloadsOnGenericArity1.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/functionOverloadsOnGenericArity1.ts === +// overloading on arity not allowed +interface C { +>C : Symbol(C, Decl(functionOverloadsOnGenericArity1.ts, 0, 0)) + + f(): string; +>f : Symbol(f, Decl(functionOverloadsOnGenericArity1.ts, 1, 13), Decl(functionOverloadsOnGenericArity1.ts, 2, 18)) +>T : Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 2, 5)) + + f(): string; +>f : Symbol(f, Decl(functionOverloadsOnGenericArity1.ts, 1, 13), Decl(functionOverloadsOnGenericArity1.ts, 2, 18)) +>T : Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 3, 5)) +>U : Symbol(U, Decl(functionOverloadsOnGenericArity1.ts, 3, 7)) + + (): string; +>T : Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 5, 4)) + + (): string; +>T : Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 6, 4)) +>U : Symbol(U, Decl(functionOverloadsOnGenericArity1.ts, 6, 6)) + + new (): string; +>T : Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 8, 7)) + + new (): string; +>T : Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 9, 7)) +>U : Symbol(U, Decl(functionOverloadsOnGenericArity1.ts, 9, 9)) +} + diff --git a/tests/baselines/reference/functionOverloadsOnGenericArity1.types b/tests/baselines/reference/functionOverloadsOnGenericArity1.types index 3c2125363fb2d..774be93e09a83 100644 --- a/tests/baselines/reference/functionOverloadsOnGenericArity1.types +++ b/tests/baselines/reference/functionOverloadsOnGenericArity1.types @@ -1,29 +1,29 @@ === tests/cases/compiler/functionOverloadsOnGenericArity1.ts === // overloading on arity not allowed interface C { ->C : C, Symbol(C, Decl(functionOverloadsOnGenericArity1.ts, 0, 0)) +>C : C f(): string; ->f : { (): string; (): string; }, Symbol(f, Decl(functionOverloadsOnGenericArity1.ts, 1, 13), Decl(functionOverloadsOnGenericArity1.ts, 2, 18)) ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 2, 5)) +>f : { (): string; (): string; } +>T : T f(): string; ->f : { (): string; (): string; }, Symbol(f, Decl(functionOverloadsOnGenericArity1.ts, 1, 13), Decl(functionOverloadsOnGenericArity1.ts, 2, 18)) ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 3, 5)) ->U : U, Symbol(U, Decl(functionOverloadsOnGenericArity1.ts, 3, 7)) +>f : { (): string; (): string; } +>T : T +>U : U (): string; ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 5, 4)) +>T : T (): string; ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 6, 4)) ->U : U, Symbol(U, Decl(functionOverloadsOnGenericArity1.ts, 6, 6)) +>T : T +>U : U new (): string; ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 8, 7)) +>T : T new (): string; ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity1.ts, 9, 7)) ->U : U, Symbol(U, Decl(functionOverloadsOnGenericArity1.ts, 9, 9)) +>T : T +>U : U } diff --git a/tests/baselines/reference/functionOverloadsOnGenericArity2.symbols b/tests/baselines/reference/functionOverloadsOnGenericArity2.symbols new file mode 100644 index 0000000000000..93a56c860351e --- /dev/null +++ b/tests/baselines/reference/functionOverloadsOnGenericArity2.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/functionOverloadsOnGenericArity2.ts === +interface I { +>I : Symbol(I, Decl(functionOverloadsOnGenericArity2.ts, 0, 0)) + + then(p: string): string; +>then : Symbol(then, Decl(functionOverloadsOnGenericArity2.ts, 0, 13), Decl(functionOverloadsOnGenericArity2.ts, 1, 28), Decl(functionOverloadsOnGenericArity2.ts, 2, 31)) +>p : Symbol(p, Decl(functionOverloadsOnGenericArity2.ts, 1, 9)) + + then(p: string): string; +>then : Symbol(then, Decl(functionOverloadsOnGenericArity2.ts, 0, 13), Decl(functionOverloadsOnGenericArity2.ts, 1, 28), Decl(functionOverloadsOnGenericArity2.ts, 2, 31)) +>U : Symbol(U, Decl(functionOverloadsOnGenericArity2.ts, 2, 9)) +>p : Symbol(p, Decl(functionOverloadsOnGenericArity2.ts, 2, 12)) + + then(p: string): Date; +>then : Symbol(then, Decl(functionOverloadsOnGenericArity2.ts, 0, 13), Decl(functionOverloadsOnGenericArity2.ts, 1, 28), Decl(functionOverloadsOnGenericArity2.ts, 2, 31)) +>U : Symbol(U, Decl(functionOverloadsOnGenericArity2.ts, 3, 9)) +>T : Symbol(T, Decl(functionOverloadsOnGenericArity2.ts, 3, 11)) +>p : Symbol(p, Decl(functionOverloadsOnGenericArity2.ts, 3, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} diff --git a/tests/baselines/reference/functionOverloadsOnGenericArity2.types b/tests/baselines/reference/functionOverloadsOnGenericArity2.types index 431aba3ae16c5..32e4cb702ece2 100644 --- a/tests/baselines/reference/functionOverloadsOnGenericArity2.types +++ b/tests/baselines/reference/functionOverloadsOnGenericArity2.types @@ -1,20 +1,20 @@ === tests/cases/compiler/functionOverloadsOnGenericArity2.ts === interface I { ->I : I, Symbol(I, Decl(functionOverloadsOnGenericArity2.ts, 0, 0)) +>I : I then(p: string): string; ->then : { (p: string): string; (p: string): string; (p: string): Date; }, Symbol(then, Decl(functionOverloadsOnGenericArity2.ts, 0, 13), Decl(functionOverloadsOnGenericArity2.ts, 1, 28), Decl(functionOverloadsOnGenericArity2.ts, 2, 31)) ->p : string, Symbol(p, Decl(functionOverloadsOnGenericArity2.ts, 1, 9)) +>then : { (p: string): string; (p: string): string; (p: string): Date; } +>p : string then(p: string): string; ->then : { (p: string): string; (p: string): string; (p: string): Date; }, Symbol(then, Decl(functionOverloadsOnGenericArity2.ts, 0, 13), Decl(functionOverloadsOnGenericArity2.ts, 1, 28), Decl(functionOverloadsOnGenericArity2.ts, 2, 31)) ->U : U, Symbol(U, Decl(functionOverloadsOnGenericArity2.ts, 2, 9)) ->p : string, Symbol(p, Decl(functionOverloadsOnGenericArity2.ts, 2, 12)) +>then : { (p: string): string; (p: string): string; (p: string): Date; } +>U : U +>p : string then(p: string): Date; ->then : { (p: string): string; (p: string): string; (p: string): Date; }, Symbol(then, Decl(functionOverloadsOnGenericArity2.ts, 0, 13), Decl(functionOverloadsOnGenericArity2.ts, 1, 28), Decl(functionOverloadsOnGenericArity2.ts, 2, 31)) ->U : U, Symbol(U, Decl(functionOverloadsOnGenericArity2.ts, 3, 9)) ->T : T, Symbol(T, Decl(functionOverloadsOnGenericArity2.ts, 3, 11)) ->p : string, Symbol(p, Decl(functionOverloadsOnGenericArity2.ts, 3, 15)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>then : { (p: string): string; (p: string): string; (p: string): Date; } +>U : U +>T : T +>p : string +>Date : Date } diff --git a/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.symbols b/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.symbols new file mode 100644 index 0000000000000..42ed87e64d193 --- /dev/null +++ b/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/functionOverloadsRecursiveGenericReturnType.ts === +class B{ +>B : Symbol(B, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 0)) +>V : Symbol(V, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 8)) + + private id: V; +>id : Symbol(id, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 11)) +>V : Symbol(V, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 8)) +} + +class A{ +>A : Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) +>U : Symbol(U, Decl(functionOverloadsRecursiveGenericReturnType.ts, 4, 8)) + + GetEnumerator: () => B; +>GetEnumerator : Symbol(GetEnumerator, Decl(functionOverloadsRecursiveGenericReturnType.ts, 4, 11)) +>B : Symbol(B, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 0)) +>U : Symbol(U, Decl(functionOverloadsRecursiveGenericReturnType.ts, 4, 8)) +} + +function Choice(args: T[]): A; +>Choice : Symbol(Choice, Decl(functionOverloadsRecursiveGenericReturnType.ts, 6, 1), Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 36), Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 41)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 16)) +>args : Symbol(args, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 19)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 16)) +>A : Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 16)) + +function Choice(...v_args: T[]): A; +>Choice : Symbol(Choice, Decl(functionOverloadsRecursiveGenericReturnType.ts, 6, 1), Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 36), Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 41)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 16)) +>v_args : Symbol(v_args, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 19)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 16)) +>A : Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 16)) + +function Choice(...v_args: any[]): A{ +>Choice : Symbol(Choice, Decl(functionOverloadsRecursiveGenericReturnType.ts, 6, 1), Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 36), Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 41)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 16)) +>v_args : Symbol(v_args, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 19)) +>A : Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 16)) + + return new A(); +>A : Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) +>T : Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 16)) +} + diff --git a/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types b/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types index 0c7e28f965277..9fe33890b55d0 100644 --- a/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types +++ b/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types @@ -1,49 +1,49 @@ === tests/cases/compiler/functionOverloadsRecursiveGenericReturnType.ts === class B{ ->B : B, Symbol(B, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 0)) ->V : V, Symbol(V, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 8)) +>B : B +>V : V private id: V; ->id : V, Symbol(id, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 11)) ->V : V, Symbol(V, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 8)) +>id : V +>V : V } class A{ ->A : A, Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) ->U : U, Symbol(U, Decl(functionOverloadsRecursiveGenericReturnType.ts, 4, 8)) +>A : A +>U : U GetEnumerator: () => B; ->GetEnumerator : () => B, Symbol(GetEnumerator, Decl(functionOverloadsRecursiveGenericReturnType.ts, 4, 11)) ->B : B, Symbol(B, Decl(functionOverloadsRecursiveGenericReturnType.ts, 0, 0)) ->U : U, Symbol(U, Decl(functionOverloadsRecursiveGenericReturnType.ts, 4, 8)) +>GetEnumerator : () => B +>B : B +>U : U } function Choice(args: T[]): A; ->Choice : { (args: T[]): A; (...v_args: T[]): A; }, Symbol(Choice, Decl(functionOverloadsRecursiveGenericReturnType.ts, 6, 1), Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 36), Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 41)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 16)) ->args : T[], Symbol(args, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 19)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 16)) ->A : A, Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 16)) +>Choice : { (args: T[]): A; (...v_args: T[]): A; } +>T : T +>args : T[] +>T : T +>A : A +>T : T function Choice(...v_args: T[]): A; ->Choice : { (args: T[]): A; (...v_args: T[]): A; }, Symbol(Choice, Decl(functionOverloadsRecursiveGenericReturnType.ts, 6, 1), Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 36), Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 41)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 16)) ->v_args : T[], Symbol(v_args, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 19)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 16)) ->A : A, Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 16)) +>Choice : { (args: T[]): A; (...v_args: T[]): A; } +>T : T +>v_args : T[] +>T : T +>A : A +>T : T function Choice(...v_args: any[]): A{ ->Choice : { (args: T[]): A; (...v_args: T[]): A; }, Symbol(Choice, Decl(functionOverloadsRecursiveGenericReturnType.ts, 6, 1), Decl(functionOverloadsRecursiveGenericReturnType.ts, 8, 36), Decl(functionOverloadsRecursiveGenericReturnType.ts, 9, 41)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 16)) ->v_args : any[], Symbol(v_args, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 19)) ->A : A, Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 16)) +>Choice : { (args: T[]): A; (...v_args: T[]): A; } +>T : T +>v_args : any[] +>A : A +>T : T return new A(); >new A() : A ->A : typeof A, Symbol(A, Decl(functionOverloadsRecursiveGenericReturnType.ts, 2, 1)) ->T : T, Symbol(T, Decl(functionOverloadsRecursiveGenericReturnType.ts, 10, 16)) +>A : typeof A +>T : T } diff --git a/tests/baselines/reference/functionReturn.symbols b/tests/baselines/reference/functionReturn.symbols new file mode 100644 index 0000000000000..9c6b794b3d005 --- /dev/null +++ b/tests/baselines/reference/functionReturn.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/functionReturn.ts === +function f0(): void { } +>f0 : Symbol(f0, Decl(functionReturn.ts, 0, 0)) + +function f1() { +>f1 : Symbol(f1, Decl(functionReturn.ts, 0, 23)) + + var n: any = f0(); +>n : Symbol(n, Decl(functionReturn.ts, 2, 7)) +>f0 : Symbol(f0, Decl(functionReturn.ts, 0, 0)) +} +function f2(): any { } +>f2 : Symbol(f2, Decl(functionReturn.ts, 3, 1)) + +function f3(): string { return; } +>f3 : Symbol(f3, Decl(functionReturn.ts, 4, 22)) + +function f4(): string { +>f4 : Symbol(f4, Decl(functionReturn.ts, 5, 33)) + + return ''; + return; +} +function f5(): string { +>f5 : Symbol(f5, Decl(functionReturn.ts, 9, 1)) + + return ''; + return undefined; +>undefined : Symbol(undefined) +} diff --git a/tests/baselines/reference/functionReturn.types b/tests/baselines/reference/functionReturn.types index c850a029520d3..6fc9d680db90c 100644 --- a/tests/baselines/reference/functionReturn.types +++ b/tests/baselines/reference/functionReturn.types @@ -1,23 +1,23 @@ === tests/cases/compiler/functionReturn.ts === function f0(): void { } ->f0 : () => void, Symbol(f0, Decl(functionReturn.ts, 0, 0)) +>f0 : () => void function f1() { ->f1 : () => void, Symbol(f1, Decl(functionReturn.ts, 0, 23)) +>f1 : () => void var n: any = f0(); ->n : any, Symbol(n, Decl(functionReturn.ts, 2, 7)) +>n : any >f0() : void ->f0 : () => void, Symbol(f0, Decl(functionReturn.ts, 0, 0)) +>f0 : () => void } function f2(): any { } ->f2 : () => any, Symbol(f2, Decl(functionReturn.ts, 3, 1)) +>f2 : () => any function f3(): string { return; } ->f3 : () => string, Symbol(f3, Decl(functionReturn.ts, 4, 22)) +>f3 : () => string function f4(): string { ->f4 : () => string, Symbol(f4, Decl(functionReturn.ts, 5, 33)) +>f4 : () => string return ''; >'' : string @@ -25,11 +25,11 @@ function f4(): string { return; } function f5(): string { ->f5 : () => string, Symbol(f5, Decl(functionReturn.ts, 9, 1)) +>f5 : () => string return ''; >'' : string return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } diff --git a/tests/baselines/reference/functionReturningItself.symbols b/tests/baselines/reference/functionReturningItself.symbols new file mode 100644 index 0000000000000..64e72d20c9229 --- /dev/null +++ b/tests/baselines/reference/functionReturningItself.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/functionReturningItself.ts === +function somefn() { +>somefn : Symbol(somefn, Decl(functionReturningItself.ts, 0, 0)) + + return somefn; +>somefn : Symbol(somefn, Decl(functionReturningItself.ts, 0, 0)) +} diff --git a/tests/baselines/reference/functionReturningItself.types b/tests/baselines/reference/functionReturningItself.types index 6d4065d642850..597202a55e286 100644 --- a/tests/baselines/reference/functionReturningItself.types +++ b/tests/baselines/reference/functionReturningItself.types @@ -1,7 +1,7 @@ === tests/cases/compiler/functionReturningItself.ts === function somefn() { ->somefn : () => typeof somefn, Symbol(somefn, Decl(functionReturningItself.ts, 0, 0)) +>somefn : () => typeof somefn return somefn; ->somefn : () => typeof somefn, Symbol(somefn, Decl(functionReturningItself.ts, 0, 0)) +>somefn : () => typeof somefn } diff --git a/tests/baselines/reference/functionSubtypingOfVarArgs.symbols b/tests/baselines/reference/functionSubtypingOfVarArgs.symbols new file mode 100644 index 0000000000000..334766dc10c62 --- /dev/null +++ b/tests/baselines/reference/functionSubtypingOfVarArgs.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/functionSubtypingOfVarArgs.ts === +class EventBase { +>EventBase : Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) + + private _listeners = []; +>_listeners : Symbol(_listeners, Decl(functionSubtypingOfVarArgs.ts, 0, 17)) + + add(listener: (...args: any[]) => void): void { +>add : Symbol(add, Decl(functionSubtypingOfVarArgs.ts, 1, 28)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 3, 8)) +>args : Symbol(args, Decl(functionSubtypingOfVarArgs.ts, 3, 19)) + + this._listeners.push(listener); +>this._listeners.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>this._listeners : Symbol(_listeners, Decl(functionSubtypingOfVarArgs.ts, 0, 17)) +>this : Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) +>_listeners : Symbol(_listeners, Decl(functionSubtypingOfVarArgs.ts, 0, 17)) +>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 3, 8)) + } +} + +class StringEvent extends EventBase { // should work +>StringEvent : Symbol(StringEvent, Decl(functionSubtypingOfVarArgs.ts, 6, 1)) +>EventBase : Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) + + add(listener: (items: string) => void ) { // valid, items is subtype of args +>add : Symbol(add, Decl(functionSubtypingOfVarArgs.ts, 8, 37)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 9, 8)) +>items : Symbol(items, Decl(functionSubtypingOfVarArgs.ts, 9, 19)) + + super.add(listener); +>super.add : Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs.ts, 1, 28)) +>super : Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) +>add : Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs.ts, 1, 28)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 9, 8)) + } +} + diff --git a/tests/baselines/reference/functionSubtypingOfVarArgs.types b/tests/baselines/reference/functionSubtypingOfVarArgs.types index a002a48205d55..ebd706e94cfb9 100644 --- a/tests/baselines/reference/functionSubtypingOfVarArgs.types +++ b/tests/baselines/reference/functionSubtypingOfVarArgs.types @@ -1,42 +1,42 @@ === tests/cases/compiler/functionSubtypingOfVarArgs.ts === class EventBase { ->EventBase : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) +>EventBase : EventBase private _listeners = []; ->_listeners : any[], Symbol(_listeners, Decl(functionSubtypingOfVarArgs.ts, 0, 17)) +>_listeners : any[] >[] : undefined[] add(listener: (...args: any[]) => void): void { ->add : (listener: (...args: any[]) => void) => void, Symbol(add, Decl(functionSubtypingOfVarArgs.ts, 1, 28)) ->listener : (...args: any[]) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 3, 8)) ->args : any[], Symbol(args, Decl(functionSubtypingOfVarArgs.ts, 3, 19)) +>add : (listener: (...args: any[]) => void) => void +>listener : (...args: any[]) => void +>args : any[] this._listeners.push(listener); >this._listeners.push(listener) : number ->this._listeners.push : (...items: any[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->this._listeners : any[], Symbol(_listeners, Decl(functionSubtypingOfVarArgs.ts, 0, 17)) ->this : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) ->_listeners : any[], Symbol(_listeners, Decl(functionSubtypingOfVarArgs.ts, 0, 17)) ->push : (...items: any[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->listener : (...args: any[]) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 3, 8)) +>this._listeners.push : (...items: any[]) => number +>this._listeners : any[] +>this : EventBase +>_listeners : any[] +>push : (...items: any[]) => number +>listener : (...args: any[]) => void } } class StringEvent extends EventBase { // should work ->StringEvent : StringEvent, Symbol(StringEvent, Decl(functionSubtypingOfVarArgs.ts, 6, 1)) ->EventBase : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) +>StringEvent : StringEvent +>EventBase : EventBase add(listener: (items: string) => void ) { // valid, items is subtype of args ->add : (listener: (items: string) => void) => void, Symbol(add, Decl(functionSubtypingOfVarArgs.ts, 8, 37)) ->listener : (items: string) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 9, 8)) ->items : string, Symbol(items, Decl(functionSubtypingOfVarArgs.ts, 9, 19)) +>add : (listener: (items: string) => void) => void +>listener : (items: string) => void +>items : string super.add(listener); >super.add(listener) : void ->super.add : (listener: (...args: any[]) => void) => void, Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs.ts, 1, 28)) ->super : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs.ts, 0, 0)) ->add : (listener: (...args: any[]) => void) => void, Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs.ts, 1, 28)) ->listener : (items: string) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs.ts, 9, 8)) +>super.add : (listener: (...args: any[]) => void) => void +>super : EventBase +>add : (listener: (...args: any[]) => void) => void +>listener : (items: string) => void } } diff --git a/tests/baselines/reference/functionSubtypingOfVarArgs2.symbols b/tests/baselines/reference/functionSubtypingOfVarArgs2.symbols new file mode 100644 index 0000000000000..227264f9617f5 --- /dev/null +++ b/tests/baselines/reference/functionSubtypingOfVarArgs2.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/functionSubtypingOfVarArgs2.ts === +class EventBase { +>EventBase : Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) + + private _listeners: { (...args: any[]): void; }[] = []; +>_listeners : Symbol(_listeners, Decl(functionSubtypingOfVarArgs2.ts, 0, 17)) +>args : Symbol(args, Decl(functionSubtypingOfVarArgs2.ts, 1, 27)) + + add(listener: (...args: any[]) => void): void { +>add : Symbol(add, Decl(functionSubtypingOfVarArgs2.ts, 1, 59)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 3, 8)) +>args : Symbol(args, Decl(functionSubtypingOfVarArgs2.ts, 3, 19)) + + this._listeners.push(listener); +>this._listeners.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>this._listeners : Symbol(_listeners, Decl(functionSubtypingOfVarArgs2.ts, 0, 17)) +>this : Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) +>_listeners : Symbol(_listeners, Decl(functionSubtypingOfVarArgs2.ts, 0, 17)) +>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 3, 8)) + } +} + +class StringEvent extends EventBase { +>StringEvent : Symbol(StringEvent, Decl(functionSubtypingOfVarArgs2.ts, 6, 1)) +>EventBase : Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) + + add(listener: (items: string, moreitems: number) => void ) { +>add : Symbol(add, Decl(functionSubtypingOfVarArgs2.ts, 8, 37)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 9, 8)) +>items : Symbol(items, Decl(functionSubtypingOfVarArgs2.ts, 9, 19)) +>moreitems : Symbol(moreitems, Decl(functionSubtypingOfVarArgs2.ts, 9, 33)) + + super.add(listener); +>super.add : Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs2.ts, 1, 59)) +>super : Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) +>add : Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs2.ts, 1, 59)) +>listener : Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 9, 8)) + } +} + diff --git a/tests/baselines/reference/functionSubtypingOfVarArgs2.types b/tests/baselines/reference/functionSubtypingOfVarArgs2.types index a89959422ddad..5e2b14ffc7a67 100644 --- a/tests/baselines/reference/functionSubtypingOfVarArgs2.types +++ b/tests/baselines/reference/functionSubtypingOfVarArgs2.types @@ -1,44 +1,44 @@ === tests/cases/compiler/functionSubtypingOfVarArgs2.ts === class EventBase { ->EventBase : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) +>EventBase : EventBase private _listeners: { (...args: any[]): void; }[] = []; ->_listeners : ((...args: any[]) => void)[], Symbol(_listeners, Decl(functionSubtypingOfVarArgs2.ts, 0, 17)) ->args : any[], Symbol(args, Decl(functionSubtypingOfVarArgs2.ts, 1, 27)) +>_listeners : ((...args: any[]) => void)[] +>args : any[] >[] : undefined[] add(listener: (...args: any[]) => void): void { ->add : (listener: (...args: any[]) => void) => void, Symbol(add, Decl(functionSubtypingOfVarArgs2.ts, 1, 59)) ->listener : (...args: any[]) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 3, 8)) ->args : any[], Symbol(args, Decl(functionSubtypingOfVarArgs2.ts, 3, 19)) +>add : (listener: (...args: any[]) => void) => void +>listener : (...args: any[]) => void +>args : any[] this._listeners.push(listener); >this._listeners.push(listener) : number ->this._listeners.push : (...items: ((...args: any[]) => void)[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->this._listeners : ((...args: any[]) => void)[], Symbol(_listeners, Decl(functionSubtypingOfVarArgs2.ts, 0, 17)) ->this : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) ->_listeners : ((...args: any[]) => void)[], Symbol(_listeners, Decl(functionSubtypingOfVarArgs2.ts, 0, 17)) ->push : (...items: ((...args: any[]) => void)[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->listener : (...args: any[]) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 3, 8)) +>this._listeners.push : (...items: ((...args: any[]) => void)[]) => number +>this._listeners : ((...args: any[]) => void)[] +>this : EventBase +>_listeners : ((...args: any[]) => void)[] +>push : (...items: ((...args: any[]) => void)[]) => number +>listener : (...args: any[]) => void } } class StringEvent extends EventBase { ->StringEvent : StringEvent, Symbol(StringEvent, Decl(functionSubtypingOfVarArgs2.ts, 6, 1)) ->EventBase : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) +>StringEvent : StringEvent +>EventBase : EventBase add(listener: (items: string, moreitems: number) => void ) { ->add : (listener: (items: string, moreitems: number) => void) => void, Symbol(add, Decl(functionSubtypingOfVarArgs2.ts, 8, 37)) ->listener : (items: string, moreitems: number) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 9, 8)) ->items : string, Symbol(items, Decl(functionSubtypingOfVarArgs2.ts, 9, 19)) ->moreitems : number, Symbol(moreitems, Decl(functionSubtypingOfVarArgs2.ts, 9, 33)) +>add : (listener: (items: string, moreitems: number) => void) => void +>listener : (items: string, moreitems: number) => void +>items : string +>moreitems : number super.add(listener); >super.add(listener) : void ->super.add : (listener: (...args: any[]) => void) => void, Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs2.ts, 1, 59)) ->super : EventBase, Symbol(EventBase, Decl(functionSubtypingOfVarArgs2.ts, 0, 0)) ->add : (listener: (...args: any[]) => void) => void, Symbol(EventBase.add, Decl(functionSubtypingOfVarArgs2.ts, 1, 59)) ->listener : (items: string, moreitems: number) => void, Symbol(listener, Decl(functionSubtypingOfVarArgs2.ts, 9, 8)) +>super.add : (listener: (...args: any[]) => void) => void +>super : EventBase +>add : (listener: (...args: any[]) => void) => void +>listener : (items: string, moreitems: number) => void } } diff --git a/tests/baselines/reference/functionType.symbols b/tests/baselines/reference/functionType.symbols new file mode 100644 index 0000000000000..f972b6fc8a152 --- /dev/null +++ b/tests/baselines/reference/functionType.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionType.ts === +function salt() {} +>salt : Symbol(salt, Decl(functionType.ts, 0, 0)) + +salt.apply("hello", []); +>salt.apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>salt : Symbol(salt, Decl(functionType.ts, 0, 0)) +>apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) + +(new Function("return 5"))(); +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + + + diff --git a/tests/baselines/reference/functionType.types b/tests/baselines/reference/functionType.types index 9da411b0513ff..e7ea7a47edfb2 100644 --- a/tests/baselines/reference/functionType.types +++ b/tests/baselines/reference/functionType.types @@ -1,12 +1,12 @@ === tests/cases/compiler/functionType.ts === function salt() {} ->salt : () => void, Symbol(salt, Decl(functionType.ts, 0, 0)) +>salt : () => void salt.apply("hello", []); >salt.apply("hello", []) : any ->salt.apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) ->salt : () => void, Symbol(salt, Decl(functionType.ts, 0, 0)) ->apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>salt.apply : (thisArg: any, argArray?: any) => any +>salt : () => void +>apply : (thisArg: any, argArray?: any) => any >"hello" : string >[] : undefined[] @@ -14,7 +14,7 @@ salt.apply("hello", []); >(new Function("return 5"))() : any >(new Function("return 5")) : Function >new Function("return 5") : Function ->Function : FunctionConstructor, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>Function : FunctionConstructor >"return 5" : string diff --git a/tests/baselines/reference/functionTypeArgumentArrayAssignment.symbols b/tests/baselines/reference/functionTypeArgumentArrayAssignment.symbols new file mode 100644 index 0000000000000..4b597bea9ae55 --- /dev/null +++ b/tests/baselines/reference/functionTypeArgumentArrayAssignment.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/functionTypeArgumentArrayAssignment.ts === +module test { +>test : Symbol(test, Decl(functionTypeArgumentArrayAssignment.ts, 0, 0)) + + interface Array { +>Array : Symbol(Array, Decl(functionTypeArgumentArrayAssignment.ts, 0, 13)) +>T : Symbol(T, Decl(functionTypeArgumentArrayAssignment.ts, 1, 20)) + + foo: T; +>foo : Symbol(foo, Decl(functionTypeArgumentArrayAssignment.ts, 1, 24)) +>T : Symbol(T, Decl(functionTypeArgumentArrayAssignment.ts, 1, 20)) + + length: number; +>length : Symbol(length, Decl(functionTypeArgumentArrayAssignment.ts, 2, 15)) + } + + function map() { +>map : Symbol(map, Decl(functionTypeArgumentArrayAssignment.ts, 4, 5)) +>U : Symbol(U, Decl(functionTypeArgumentArrayAssignment.ts, 6, 17)) + + var ys: U[] = []; +>ys : Symbol(ys, Decl(functionTypeArgumentArrayAssignment.ts, 7, 11)) +>U : Symbol(U, Decl(functionTypeArgumentArrayAssignment.ts, 6, 17)) + } +} + diff --git a/tests/baselines/reference/functionTypeArgumentArrayAssignment.types b/tests/baselines/reference/functionTypeArgumentArrayAssignment.types index 76699ad842c7d..588dfd506ef9e 100644 --- a/tests/baselines/reference/functionTypeArgumentArrayAssignment.types +++ b/tests/baselines/reference/functionTypeArgumentArrayAssignment.types @@ -1,26 +1,26 @@ === tests/cases/compiler/functionTypeArgumentArrayAssignment.ts === module test { ->test : typeof test, Symbol(test, Decl(functionTypeArgumentArrayAssignment.ts, 0, 0)) +>test : typeof test interface Array { ->Array : Array, Symbol(Array, Decl(functionTypeArgumentArrayAssignment.ts, 0, 13)) ->T : T, Symbol(T, Decl(functionTypeArgumentArrayAssignment.ts, 1, 20)) +>Array : Array +>T : T foo: T; ->foo : T, Symbol(foo, Decl(functionTypeArgumentArrayAssignment.ts, 1, 24)) ->T : T, Symbol(T, Decl(functionTypeArgumentArrayAssignment.ts, 1, 20)) +>foo : T +>T : T length: number; ->length : number, Symbol(length, Decl(functionTypeArgumentArrayAssignment.ts, 2, 15)) +>length : number } function map() { ->map : () => void, Symbol(map, Decl(functionTypeArgumentArrayAssignment.ts, 4, 5)) ->U : U, Symbol(U, Decl(functionTypeArgumentArrayAssignment.ts, 6, 17)) +>map : () => void +>U : U var ys: U[] = []; ->ys : U[], Symbol(ys, Decl(functionTypeArgumentArrayAssignment.ts, 7, 11)) ->U : U, Symbol(U, Decl(functionTypeArgumentArrayAssignment.ts, 6, 17)) +>ys : U[] +>U : U >[] : undefined[] } } diff --git a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.symbols b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.symbols new file mode 100644 index 0000000000000..71a678b6c9331 --- /dev/null +++ b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/functionWithAnyReturnTypeAndNoReturnExpression.ts === +// All should be allowed +function f(): any { } +>f : Symbol(f, Decl(functionWithAnyReturnTypeAndNoReturnExpression.ts, 0, 0)) + +var f2: () => any = () => { }; +>f2 : Symbol(f2, Decl(functionWithAnyReturnTypeAndNoReturnExpression.ts, 2, 3)) + +var f3 = (): any => { }; +>f3 : Symbol(f3, Decl(functionWithAnyReturnTypeAndNoReturnExpression.ts, 3, 3)) + diff --git a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types index 0cd8bf5ce2435..a5096d464d85d 100644 --- a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types +++ b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.types @@ -1,13 +1,13 @@ === tests/cases/compiler/functionWithAnyReturnTypeAndNoReturnExpression.ts === // All should be allowed function f(): any { } ->f : () => any, Symbol(f, Decl(functionWithAnyReturnTypeAndNoReturnExpression.ts, 0, 0)) +>f : () => any var f2: () => any = () => { }; ->f2 : () => any, Symbol(f2, Decl(functionWithAnyReturnTypeAndNoReturnExpression.ts, 2, 3)) +>f2 : () => any >() => { } : () => void var f3 = (): any => { }; ->f3 : () => any, Symbol(f3, Decl(functionWithAnyReturnTypeAndNoReturnExpression.ts, 3, 3)) +>f3 : () => any >(): any => { } : () => any diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.symbols new file mode 100644 index 0000000000000..f10320b4ca9e8 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements1.ts === +function foo(x = 0) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements1.ts, 0, 0)) +>x : Symbol(x, Decl(functionWithDefaultParameterWithNoStatements1.ts, 0, 13)) + diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.types index 02f6b92485792..d695157db40d3 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements1.ts === function foo(x = 0) { } ->foo : (x?: number) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements1.ts, 0, 0)) ->x : number, Symbol(x, Decl(functionWithDefaultParameterWithNoStatements1.ts, 0, 13)) +>foo : (x?: number) => void +>x : number >0 : number diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.symbols new file mode 100644 index 0000000000000..2d68fc0007c9f --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements10.ts === +function foo(a = [0]) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements10.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements10.ts, 0, 13)) + +function bar(a = [0]) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements10.ts, 0, 25)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements10.ts, 2, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.types index 92f946ab0d069..8f8f03fafb18a 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements10.types @@ -1,13 +1,13 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements10.ts === function foo(a = [0]) { } ->foo : (a?: number[]) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements10.ts, 0, 0)) ->a : number[], Symbol(a, Decl(functionWithDefaultParameterWithNoStatements10.ts, 0, 13)) +>foo : (a?: number[]) => void +>a : number[] >[0] : number[] >0 : number function bar(a = [0]) { ->bar : (a?: number[]) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements10.ts, 0, 25)) ->a : number[], Symbol(a, Decl(functionWithDefaultParameterWithNoStatements10.ts, 2, 13)) +>bar : (a?: number[]) => void +>a : number[] >[0] : number[] >0 : number } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.symbols new file mode 100644 index 0000000000000..c73cf6ce4d8cd --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements11.ts === +var v: any[]; +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 3)) + +function foo(a = v[0]) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 13)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements11.ts, 2, 13)) +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 3)) + +function bar(a = v[0]) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements11.ts, 2, 26)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements11.ts, 4, 13)) +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 3)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.types index 102d48b634c3f..e0a87bb265682 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements11.types @@ -1,18 +1,18 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements11.ts === var v: any[]; ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 3)) +>v : any[] function foo(a = v[0]) { } ->foo : (a?: any) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 13)) ->a : any, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements11.ts, 2, 13)) +>foo : (a?: any) => void +>a : any >v[0] : any ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 3)) +>v : any[] >0 : number function bar(a = v[0]) { ->bar : (a?: any) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements11.ts, 2, 26)) ->a : any, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements11.ts, 4, 13)) +>bar : (a?: any) => void +>a : any >v[0] : any ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements11.ts, 0, 3)) +>v : any[] >0 : number } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.symbols new file mode 100644 index 0000000000000..49d428ce4306b --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements12.ts === +var v: any[]; +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 3)) + +function foo(a = (v)) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 13)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements12.ts, 2, 13)) +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 3)) + +function bar(a = (v)) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements12.ts, 2, 25)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements12.ts, 4, 13)) +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 3)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.types index 3525a9c609c8f..c458b4d28508a 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements12.types @@ -1,16 +1,16 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements12.ts === var v: any[]; ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 3)) +>v : any[] function foo(a = (v)) { } ->foo : (a?: any[]) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 13)) ->a : any[], Symbol(a, Decl(functionWithDefaultParameterWithNoStatements12.ts, 2, 13)) +>foo : (a?: any[]) => void +>a : any[] >(v) : any[] ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 3)) +>v : any[] function bar(a = (v)) { ->bar : (a?: any[]) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements12.ts, 2, 25)) ->a : any[], Symbol(a, Decl(functionWithDefaultParameterWithNoStatements12.ts, 4, 13)) +>bar : (a?: any[]) => void +>a : any[] >(v) : any[] ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements12.ts, 0, 3)) +>v : any[] } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.symbols new file mode 100644 index 0000000000000..3a2d549096700 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements13.ts === +var v: any[]; +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements13.ts, 0, 3)) + +function foo(a = [1 + 1]) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements13.ts, 0, 13)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements13.ts, 2, 13)) + +function bar(a = [1 + 1]) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements13.ts, 2, 29)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements13.ts, 4, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.types index f555973437ff0..58c2009886ac8 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements13.types @@ -1,18 +1,18 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements13.ts === var v: any[]; ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements13.ts, 0, 3)) +>v : any[] function foo(a = [1 + 1]) { } ->foo : (a?: number[]) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements13.ts, 0, 13)) ->a : number[], Symbol(a, Decl(functionWithDefaultParameterWithNoStatements13.ts, 2, 13)) +>foo : (a?: number[]) => void +>a : number[] >[1 + 1] : number[] >1 + 1 : number >1 : number >1 : number function bar(a = [1 + 1]) { ->bar : (a?: number[]) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements13.ts, 2, 29)) ->a : number[], Symbol(a, Decl(functionWithDefaultParameterWithNoStatements13.ts, 4, 13)) +>bar : (a?: number[]) => void +>a : number[] >[1 + 1] : number[] >1 + 1 : number >1 : number diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.symbols new file mode 100644 index 0000000000000..5d9d959817925 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements14.ts === +var v: any[]; +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 3)) + +function foo(a = v[1 + 1]) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 13)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements14.ts, 2, 13)) +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 3)) + +function bar(a = v[1 + 1]) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements14.ts, 2, 30)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements14.ts, 4, 13)) +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 3)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.types index 5df59da347c36..2a5fbab691908 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements14.types @@ -1,21 +1,21 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements14.ts === var v: any[]; ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 3)) +>v : any[] function foo(a = v[1 + 1]) { } ->foo : (a?: any) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 13)) ->a : any, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements14.ts, 2, 13)) +>foo : (a?: any) => void +>a : any >v[1 + 1] : any ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 3)) +>v : any[] >1 + 1 : number >1 : number >1 : number function bar(a = v[1 + 1]) { ->bar : (a?: any) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements14.ts, 2, 30)) ->a : any, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements14.ts, 4, 13)) +>bar : (a?: any) => void +>a : any >v[1 + 1] : any ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements14.ts, 0, 3)) +>v : any[] >1 + 1 : number >1 : number >1 : number diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.symbols new file mode 100644 index 0000000000000..37126ef48880f --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements15.ts === +var v: any[]; +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements15.ts, 0, 3)) + +function foo(a = (1 + 1)) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements15.ts, 0, 13)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements15.ts, 2, 13)) + +function bar(a = (1 + 1)) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements15.ts, 2, 29)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements15.ts, 4, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.types index ae89a08c2fa5d..e35f5a5f4e023 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements15.types @@ -1,18 +1,18 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements15.ts === var v: any[]; ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements15.ts, 0, 3)) +>v : any[] function foo(a = (1 + 1)) { } ->foo : (a?: number) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements15.ts, 0, 13)) ->a : number, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements15.ts, 2, 13)) +>foo : (a?: number) => void +>a : number >(1 + 1) : number >1 + 1 : number >1 : number >1 : number function bar(a = (1 + 1)) { ->bar : (a?: number) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements15.ts, 2, 29)) ->a : number, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements15.ts, 4, 13)) +>bar : (a?: number) => void +>a : number >(1 + 1) : number >1 + 1 : number >1 : number diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.symbols new file mode 100644 index 0000000000000..e9611c323aec8 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements16.ts === +var v: any[]; +>v : Symbol(v, Decl(functionWithDefaultParameterWithNoStatements16.ts, 0, 3)) + +function foo(a = bar()) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements16.ts, 0, 13)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements16.ts, 2, 13)) +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements16.ts, 2, 27)) + +function bar(a = foo()) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements16.ts, 2, 27)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements16.ts, 4, 13)) +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements16.ts, 0, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.types index 70f5f39e81c1a..050c95ec1c872 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements16.types @@ -1,16 +1,16 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements16.ts === var v: any[]; ->v : any[], Symbol(v, Decl(functionWithDefaultParameterWithNoStatements16.ts, 0, 3)) +>v : any[] function foo(a = bar()) { } ->foo : (a?: void) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements16.ts, 0, 13)) ->a : void, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements16.ts, 2, 13)) +>foo : (a?: void) => void +>a : void >bar() : void ->bar : (a?: void) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements16.ts, 2, 27)) +>bar : (a?: void) => void function bar(a = foo()) { ->bar : (a?: void) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements16.ts, 2, 27)) ->a : void, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements16.ts, 4, 13)) +>bar : (a?: void) => void +>a : void >foo() : void ->foo : (a?: void) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements16.ts, 0, 13)) +>foo : (a?: void) => void } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.symbols new file mode 100644 index 0000000000000..5c45a1be95d2b --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements2.ts === +function foo(x = 0) { +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements2.ts, 0, 0)) +>x : Symbol(x, Decl(functionWithDefaultParameterWithNoStatements2.ts, 0, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.types index f6f68eaeaa3fd..76b6b56dfa4eb 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements2.types @@ -1,6 +1,6 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements2.ts === function foo(x = 0) { ->foo : (x?: number) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements2.ts, 0, 0)) ->x : number, Symbol(x, Decl(functionWithDefaultParameterWithNoStatements2.ts, 0, 13)) +>foo : (x?: number) => void +>x : number >0 : number } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.symbols new file mode 100644 index 0000000000000..967241abca4d8 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements3.ts === +function foo(a = "") { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements3.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements3.ts, 0, 13)) + +function bar(a = "") { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements3.ts, 0, 24)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements3.ts, 2, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.types index c4152794c55bc..4254c0d28a93d 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements3.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements3.ts === function foo(a = "") { } ->foo : (a?: string) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements3.ts, 0, 0)) ->a : string, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements3.ts, 0, 13)) +>foo : (a?: string) => void +>a : string >"" : string function bar(a = "") { ->bar : (a?: string) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements3.ts, 0, 24)) ->a : string, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements3.ts, 2, 13)) +>bar : (a?: string) => void +>a : string >"" : string } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.symbols new file mode 100644 index 0000000000000..8fedab52972c0 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements4.ts === +function foo(a = ``) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements4.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements4.ts, 0, 13)) + +function bar(a = ``) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements4.ts, 0, 24)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements4.ts, 2, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.types index 2bfe1a1cc67f1..bfc627fa60a34 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements4.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements4.ts === function foo(a = ``) { } ->foo : (a?: string) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements4.ts, 0, 0)) ->a : string, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements4.ts, 0, 13)) +>foo : (a?: string) => void +>a : string >`` : string function bar(a = ``) { ->bar : (a?: string) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements4.ts, 0, 24)) ->a : string, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements4.ts, 2, 13)) +>bar : (a?: string) => void +>a : string >`` : string } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.symbols new file mode 100644 index 0000000000000..8c1c44ed8ce67 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements5.ts === +function foo(a = 0) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements5.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements5.ts, 0, 13)) + +function bar(a = 0) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements5.ts, 0, 23)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements5.ts, 2, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.types index 13d551453c695..99e93927e0aac 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements5.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements5.ts === function foo(a = 0) { } ->foo : (a?: number) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements5.ts, 0, 0)) ->a : number, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements5.ts, 0, 13)) +>foo : (a?: number) => void +>a : number >0 : number function bar(a = 0) { ->bar : (a?: number) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements5.ts, 0, 23)) ->a : number, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements5.ts, 2, 13)) +>bar : (a?: number) => void +>a : number >0 : number } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.symbols new file mode 100644 index 0000000000000..c9f0cc1c63b5d --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements6.ts === +function foo(a = true) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements6.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements6.ts, 0, 13)) + +function bar(a = true) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements6.ts, 0, 26)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements6.ts, 2, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.types index c2531aecf15e0..6100a6dedce9d 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements6.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements6.ts === function foo(a = true) { } ->foo : (a?: boolean) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements6.ts, 0, 0)) ->a : boolean, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements6.ts, 0, 13)) +>foo : (a?: boolean) => void +>a : boolean >true : boolean function bar(a = true) { ->bar : (a?: boolean) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements6.ts, 0, 26)) ->a : boolean, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements6.ts, 2, 13)) +>bar : (a?: boolean) => void +>a : boolean >true : boolean } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.symbols new file mode 100644 index 0000000000000..c91bc726486b6 --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements7.ts === +function foo(a = false) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements7.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements7.ts, 0, 13)) + +function bar(a = false) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements7.ts, 0, 27)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements7.ts, 2, 13)) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.types index 8729539a4b705..866087a9f9bda 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements7.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements7.ts === function foo(a = false) { } ->foo : (a?: boolean) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements7.ts, 0, 0)) ->a : boolean, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements7.ts, 0, 13)) +>foo : (a?: boolean) => void +>a : boolean >false : boolean function bar(a = false) { ->bar : (a?: boolean) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements7.ts, 0, 27)) ->a : boolean, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements7.ts, 2, 13)) +>bar : (a?: boolean) => void +>a : boolean >false : boolean } diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.symbols b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.symbols new file mode 100644 index 0000000000000..54df7f64ae1ae --- /dev/null +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/functionWithDefaultParameterWithNoStatements8.ts === +function foo(a = undefined) { } +>foo : Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements8.ts, 0, 0)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements8.ts, 0, 13)) +>undefined : Symbol(undefined) + +function bar(a = undefined) { +>bar : Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements8.ts, 0, 31)) +>a : Symbol(a, Decl(functionWithDefaultParameterWithNoStatements8.ts, 2, 13)) +>undefined : Symbol(undefined) +} diff --git a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.types b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.types index 07bd182503799..e4480691c453a 100644 --- a/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.types +++ b/tests/baselines/reference/functionWithDefaultParameterWithNoStatements8.types @@ -1,11 +1,11 @@ === tests/cases/compiler/functionWithDefaultParameterWithNoStatements8.ts === function foo(a = undefined) { } ->foo : (a?: any) => void, Symbol(foo, Decl(functionWithDefaultParameterWithNoStatements8.ts, 0, 0)) ->a : any, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements8.ts, 0, 13)) ->undefined : undefined, Symbol(undefined) +>foo : (a?: any) => void +>a : any +>undefined : undefined function bar(a = undefined) { ->bar : (a?: any) => void, Symbol(bar, Decl(functionWithDefaultParameterWithNoStatements8.ts, 0, 31)) ->a : any, Symbol(a, Decl(functionWithDefaultParameterWithNoStatements8.ts, 2, 13)) ->undefined : undefined, Symbol(undefined) +>bar : (a?: any) => void +>a : any +>undefined : undefined } diff --git a/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.symbols b/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.symbols new file mode 100644 index 0000000000000..9a6aff630ce9b --- /dev/null +++ b/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/funduleExportedClassIsUsedBeforeDeclaration.ts === +interface A { // interface before module declaration +>A : Symbol(A, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 0, 0)) + + (): B.C; // uses defined below class in module +>B : Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) +>C : Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) +} +declare function B(): B.C; // function merged with module +>B : Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) +>B : Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) +>C : Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) + +declare module B { +>B : Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) + + export class C { // class defined in module +>C : Symbol(C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) + } +} +new B.C(); +>B.C : Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) +>B : Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) +>C : Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) + diff --git a/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.types b/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.types index 3ce95b7465656..74c1be3eb2c05 100644 --- a/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.types +++ b/tests/baselines/reference/funduleExportedClassIsUsedBeforeDeclaration.types @@ -1,26 +1,26 @@ === tests/cases/compiler/funduleExportedClassIsUsedBeforeDeclaration.ts === interface A { // interface before module declaration ->A : A, Symbol(A, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 0, 0)) +>A : A (): B.C; // uses defined below class in module ->B : any, Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) ->C : B.C, Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) +>B : any +>C : B.C } declare function B(): B.C; // function merged with module ->B : typeof B, Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) ->B : any, Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) ->C : B.C, Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) +>B : typeof B +>B : any +>C : B.C declare module B { ->B : typeof B, Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) +>B : typeof B export class C { // class defined in module ->C : C, Symbol(C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) +>C : C } } new B.C(); >new B.C() : B.C ->B.C : typeof B.C, Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) ->B : typeof B, Symbol(B, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 2, 1), Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 3, 26)) ->C : typeof B.C, Symbol(B.C, Decl(funduleExportedClassIsUsedBeforeDeclaration.ts, 4, 18)) +>B.C : typeof B.C +>B : typeof B +>C : typeof B.C diff --git a/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.symbols b/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.symbols new file mode 100644 index 0000000000000..1f7a82628d34f --- /dev/null +++ b/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/funduleOfFunctionWithoutReturnTypeAnnotation.ts === +function fn() { +>fn : Symbol(fn, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 0, 0), Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 2, 1)) + + return fn.n; +>fn.n : Symbol(fn.n, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 4, 14)) +>fn : Symbol(fn, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 0, 0), Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 2, 1)) +>n : Symbol(fn.n, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 4, 14)) +} +module fn { +>fn : Symbol(fn, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 0, 0), Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 2, 1)) + + export var n = 1; +>n : Symbol(n, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 4, 14)) +} + diff --git a/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.types b/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.types index 40bd262c674a8..2d71370c2ac0a 100644 --- a/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.types +++ b/tests/baselines/reference/funduleOfFunctionWithoutReturnTypeAnnotation.types @@ -1,17 +1,17 @@ === tests/cases/compiler/funduleOfFunctionWithoutReturnTypeAnnotation.ts === function fn() { ->fn : typeof fn, Symbol(fn, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 0, 0), Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 2, 1)) +>fn : typeof fn return fn.n; ->fn.n : number, Symbol(fn.n, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 4, 14)) ->fn : typeof fn, Symbol(fn, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 0, 0), Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 2, 1)) ->n : number, Symbol(fn.n, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 4, 14)) +>fn.n : number +>fn : typeof fn +>n : number } module fn { ->fn : typeof fn, Symbol(fn, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 0, 0), Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 2, 1)) +>fn : typeof fn export var n = 1; ->n : number, Symbol(n, Decl(funduleOfFunctionWithoutReturnTypeAnnotation.ts, 4, 14)) +>n : number >1 : number } diff --git a/tests/baselines/reference/funduleUsedAcrossFileBoundary.symbols b/tests/baselines/reference/funduleUsedAcrossFileBoundary.symbols new file mode 100644 index 0000000000000..e0ca752d307e8 --- /dev/null +++ b/tests/baselines/reference/funduleUsedAcrossFileBoundary.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/funduleUsedAcrossFileBoundary_file1.ts === +declare function Q(value: T): string; +>Q : Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 19)) +>value : Symbol(value, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 22)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 19)) + +declare module Q { +>Q : Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) + + interface Promise { +>Promise : Symbol(Promise, Decl(funduleUsedAcrossFileBoundary_file1.ts, 1, 18)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 2, 22)) + + foo: string; +>foo : Symbol(foo, Decl(funduleUsedAcrossFileBoundary_file1.ts, 2, 26)) + } + export function defer(): string; +>defer : Symbol(defer, Decl(funduleUsedAcrossFileBoundary_file1.ts, 4, 5)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 5, 26)) +} + +=== tests/cases/compiler/funduleUsedAcrossFileBoundary_file2.ts === +function promiseWithCancellation(promise: Q.Promise) { +>promiseWithCancellation : Symbol(promiseWithCancellation, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 0)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 33)) +>promise : Symbol(promise, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 36)) +>Q : Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) +>Promise : Symbol(Q.Promise, Decl(funduleUsedAcrossFileBoundary_file1.ts, 1, 18)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 33)) + + var deferred = Q.defer(); // used to be an error +>deferred : Symbol(deferred, Decl(funduleUsedAcrossFileBoundary_file2.ts, 1, 7)) +>Q.defer : Symbol(Q.defer, Decl(funduleUsedAcrossFileBoundary_file1.ts, 4, 5)) +>Q : Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) +>defer : Symbol(Q.defer, Decl(funduleUsedAcrossFileBoundary_file1.ts, 4, 5)) +>T : Symbol(T, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 33)) +} diff --git a/tests/baselines/reference/funduleUsedAcrossFileBoundary.types b/tests/baselines/reference/funduleUsedAcrossFileBoundary.types index b7c0bf29d2bdb..60da1786f5ea7 100644 --- a/tests/baselines/reference/funduleUsedAcrossFileBoundary.types +++ b/tests/baselines/reference/funduleUsedAcrossFileBoundary.types @@ -1,39 +1,39 @@ === tests/cases/compiler/funduleUsedAcrossFileBoundary_file1.ts === declare function Q(value: T): string; ->Q : typeof Q, Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 19)) ->value : T, Symbol(value, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 22)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 19)) +>Q : typeof Q +>T : T +>value : T +>T : T declare module Q { ->Q : typeof Q, Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) +>Q : typeof Q interface Promise { ->Promise : Promise, Symbol(Promise, Decl(funduleUsedAcrossFileBoundary_file1.ts, 1, 18)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 2, 22)) +>Promise : Promise +>T : T foo: string; ->foo : string, Symbol(foo, Decl(funduleUsedAcrossFileBoundary_file1.ts, 2, 26)) +>foo : string } export function defer(): string; ->defer : () => string, Symbol(defer, Decl(funduleUsedAcrossFileBoundary_file1.ts, 4, 5)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file1.ts, 5, 26)) +>defer : () => string +>T : T } === tests/cases/compiler/funduleUsedAcrossFileBoundary_file2.ts === function promiseWithCancellation(promise: Q.Promise) { ->promiseWithCancellation : (promise: Q.Promise) => void, Symbol(promiseWithCancellation, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 0)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 33)) ->promise : Q.Promise, Symbol(promise, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 36)) ->Q : any, Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) ->Promise : Q.Promise, Symbol(Q.Promise, Decl(funduleUsedAcrossFileBoundary_file1.ts, 1, 18)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 33)) +>promiseWithCancellation : (promise: Q.Promise) => void +>T : T +>promise : Q.Promise +>Q : any +>Promise : Q.Promise +>T : T var deferred = Q.defer(); // used to be an error ->deferred : string, Symbol(deferred, Decl(funduleUsedAcrossFileBoundary_file2.ts, 1, 7)) +>deferred : string >Q.defer() : string ->Q.defer : () => string, Symbol(Q.defer, Decl(funduleUsedAcrossFileBoundary_file1.ts, 4, 5)) ->Q : typeof Q, Symbol(Q, Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 0), Decl(funduleUsedAcrossFileBoundary_file1.ts, 0, 40)) ->defer : () => string, Symbol(Q.defer, Decl(funduleUsedAcrossFileBoundary_file1.ts, 4, 5)) ->T : T, Symbol(T, Decl(funduleUsedAcrossFileBoundary_file2.ts, 0, 33)) +>Q.defer : () => string +>Q : typeof Q +>defer : () => string +>T : T } diff --git a/tests/baselines/reference/generatedContextualTyping.symbols b/tests/baselines/reference/generatedContextualTyping.symbols new file mode 100644 index 0000000000000..287b7be66d091 --- /dev/null +++ b/tests/baselines/reference/generatedContextualTyping.symbols @@ -0,0 +1,2831 @@ +=== tests/cases/conformance/expressions/contextualTyping/generatedContextualTyping.ts === +class Base { private p; } +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>p : Symbol(p, Decl(generatedContextualTyping.ts, 0, 12)) + +class Derived1 extends Base { private m; } +>Derived1 : Symbol(Derived1, Decl(generatedContextualTyping.ts, 0, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>m : Symbol(m, Decl(generatedContextualTyping.ts, 1, 29)) + +class Derived2 extends Base { private n; } +>Derived2 : Symbol(Derived2, Decl(generatedContextualTyping.ts, 1, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 2, 29)) + +interface Genric { func(n: T[]); } +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>T : Symbol(T, Decl(generatedContextualTyping.ts, 3, 17)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 3, 21)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 3, 27)) +>T : Symbol(T, Decl(generatedContextualTyping.ts, 3, 17)) + +var b = new Base(), d1 = new Derived1(), d2 = new Derived2(); +>b : Symbol(b, Decl(generatedContextualTyping.ts, 4, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>Derived1 : Symbol(Derived1, Decl(generatedContextualTyping.ts, 0, 25)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>Derived2 : Symbol(Derived2, Decl(generatedContextualTyping.ts, 1, 42)) + +var x1: () => Base[] = () => [d1, d2]; +>x1 : Symbol(x1, Decl(generatedContextualTyping.ts, 5, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x2: () => Base[] = function() { return [d1, d2] }; +>x2 : Symbol(x2, Decl(generatedContextualTyping.ts, 6, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x3: () => Base[] = function named() { return [d1, d2] }; +>x3 : Symbol(x3, Decl(generatedContextualTyping.ts, 7, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 7, 22)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x4: { (): Base[]; } = () => [d1, d2]; +>x4 : Symbol(x4, Decl(generatedContextualTyping.ts, 8, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x5: { (): Base[]; } = function() { return [d1, d2] }; +>x5 : Symbol(x5, Decl(generatedContextualTyping.ts, 9, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x6: { (): Base[]; } = function named() { return [d1, d2] }; +>x6 : Symbol(x6, Decl(generatedContextualTyping.ts, 10, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 10, 25)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x7: Base[] = [d1, d2]; +>x7 : Symbol(x7, Decl(generatedContextualTyping.ts, 11, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x8: Array = [d1, d2]; +>x8 : Symbol(x8, Decl(generatedContextualTyping.ts, 12, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x9: { [n: number]: Base; } = [d1, d2]; +>x9 : Symbol(x9, Decl(generatedContextualTyping.ts, 13, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 13, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x10: {n: Base[]; } = { n: [d1, d2] }; +>x10 : Symbol(x10, Decl(generatedContextualTyping.ts, 14, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 14, 10)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 14, 27)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x11: (s: Base[]) => any = n => { var n: Base[]; return null; }; +>x11 : Symbol(x11, Decl(generatedContextualTyping.ts, 15, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 15, 10)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 15, 29), Decl(generatedContextualTyping.ts, 15, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 15, 29), Decl(generatedContextualTyping.ts, 15, 40)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x12: Genric = { func: n => { return [d1, d2]; } }; +>x12 : Symbol(x12, Decl(generatedContextualTyping.ts, 16, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 16, 25)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 16, 31)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x13 { member: () => Base[] = () => [d1, d2] } +>x13 : Symbol(x13, Decl(generatedContextualTyping.ts, 16, 60)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 17, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x14 { member: () => Base[] = function() { return [d1, d2] } } +>x14 : Symbol(x14, Decl(generatedContextualTyping.ts, 17, 51)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 18, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x15 { member: () => Base[] = function named() { return [d1, d2] } } +>x15 : Symbol(x15, Decl(generatedContextualTyping.ts, 18, 67)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 19, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 19, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x16 { member: { (): Base[]; } = () => [d1, d2] } +>x16 : Symbol(x16, Decl(generatedContextualTyping.ts, 19, 73)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 20, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x17 { member: { (): Base[]; } = function() { return [d1, d2] } } +>x17 : Symbol(x17, Decl(generatedContextualTyping.ts, 20, 54)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 21, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x18 { member: { (): Base[]; } = function named() { return [d1, d2] } } +>x18 : Symbol(x18, Decl(generatedContextualTyping.ts, 21, 70)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 22, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 22, 37)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x19 { member: Base[] = [d1, d2] } +>x19 : Symbol(x19, Decl(generatedContextualTyping.ts, 22, 76)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 23, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x20 { member: Array = [d1, d2] } +>x20 : Symbol(x20, Decl(generatedContextualTyping.ts, 23, 39)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 24, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x21 { member: { [n: number]: Base; } = [d1, d2] } +>x21 : Symbol(x21, Decl(generatedContextualTyping.ts, 24, 44)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 25, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 25, 23)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x22 { member: {n: Base[]; } = { n: [d1, d2] } } +>x22 : Symbol(x22, Decl(generatedContextualTyping.ts, 25, 55)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 26, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 26, 21)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 26, 38)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x23 { member: (s: Base[]) => any = n => { var n: Base[]; return null; } } +>x23 : Symbol(x23, Decl(generatedContextualTyping.ts, 26, 54)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 27, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 27, 21)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 27, 40), Decl(generatedContextualTyping.ts, 27, 51)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 27, 40), Decl(generatedContextualTyping.ts, 27, 51)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x24 { member: Genric = { func: n => { return [d1, d2]; } } } +>x24 : Symbol(x24, Decl(generatedContextualTyping.ts, 27, 79)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 28, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 28, 36)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 28, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x25 { private member: () => Base[] = () => [d1, d2] } +>x25 : Symbol(x25, Decl(generatedContextualTyping.ts, 28, 72)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 29, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x26 { private member: () => Base[] = function() { return [d1, d2] } } +>x26 : Symbol(x26, Decl(generatedContextualTyping.ts, 29, 59)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 30, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x27 { private member: () => Base[] = function named() { return [d1, d2] } } +>x27 : Symbol(x27, Decl(generatedContextualTyping.ts, 30, 75)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 31, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 31, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x28 { private member: { (): Base[]; } = () => [d1, d2] } +>x28 : Symbol(x28, Decl(generatedContextualTyping.ts, 31, 81)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 32, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x29 { private member: { (): Base[]; } = function() { return [d1, d2] } } +>x29 : Symbol(x29, Decl(generatedContextualTyping.ts, 32, 62)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 33, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x30 { private member: { (): Base[]; } = function named() { return [d1, d2] } } +>x30 : Symbol(x30, Decl(generatedContextualTyping.ts, 33, 78)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 34, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 34, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x31 { private member: Base[] = [d1, d2] } +>x31 : Symbol(x31, Decl(generatedContextualTyping.ts, 34, 84)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 35, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x32 { private member: Array = [d1, d2] } +>x32 : Symbol(x32, Decl(generatedContextualTyping.ts, 35, 47)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 36, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x33 { private member: { [n: number]: Base; } = [d1, d2] } +>x33 : Symbol(x33, Decl(generatedContextualTyping.ts, 36, 52)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 37, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 37, 31)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x34 { private member: {n: Base[]; } = { n: [d1, d2] } } +>x34 : Symbol(x34, Decl(generatedContextualTyping.ts, 37, 63)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 38, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 38, 29)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 38, 46)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x35 { private member: (s: Base[]) => any = n => { var n: Base[]; return null; } } +>x35 : Symbol(x35, Decl(generatedContextualTyping.ts, 38, 62)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 39, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 39, 29)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 39, 48), Decl(generatedContextualTyping.ts, 39, 59)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 39, 48), Decl(generatedContextualTyping.ts, 39, 59)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x36 { private member: Genric = { func: n => { return [d1, d2]; } } } +>x36 : Symbol(x36, Decl(generatedContextualTyping.ts, 39, 87)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 40, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 40, 44)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 40, 50)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x37 { public member: () => Base[] = () => [d1, d2] } +>x37 : Symbol(x37, Decl(generatedContextualTyping.ts, 40, 80)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 41, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x38 { public member: () => Base[] = function() { return [d1, d2] } } +>x38 : Symbol(x38, Decl(generatedContextualTyping.ts, 41, 58)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 42, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x39 { public member: () => Base[] = function named() { return [d1, d2] } } +>x39 : Symbol(x39, Decl(generatedContextualTyping.ts, 42, 74)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 43, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 43, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x40 { public member: { (): Base[]; } = () => [d1, d2] } +>x40 : Symbol(x40, Decl(generatedContextualTyping.ts, 43, 80)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 44, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x41 { public member: { (): Base[]; } = function() { return [d1, d2] } } +>x41 : Symbol(x41, Decl(generatedContextualTyping.ts, 44, 61)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 45, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x42 { public member: { (): Base[]; } = function named() { return [d1, d2] } } +>x42 : Symbol(x42, Decl(generatedContextualTyping.ts, 45, 77)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 46, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 46, 44)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x43 { public member: Base[] = [d1, d2] } +>x43 : Symbol(x43, Decl(generatedContextualTyping.ts, 46, 83)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 47, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x44 { public member: Array = [d1, d2] } +>x44 : Symbol(x44, Decl(generatedContextualTyping.ts, 47, 46)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 48, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x45 { public member: { [n: number]: Base; } = [d1, d2] } +>x45 : Symbol(x45, Decl(generatedContextualTyping.ts, 48, 51)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 49, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 49, 30)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x46 { public member: {n: Base[]; } = { n: [d1, d2] } } +>x46 : Symbol(x46, Decl(generatedContextualTyping.ts, 49, 62)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 50, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 50, 28)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 50, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x47 { public member: (s: Base[]) => any = n => { var n: Base[]; return null; } } +>x47 : Symbol(x47, Decl(generatedContextualTyping.ts, 50, 61)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 51, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 51, 28)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 51, 47), Decl(generatedContextualTyping.ts, 51, 58)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 51, 47), Decl(generatedContextualTyping.ts, 51, 58)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x48 { public member: Genric = { func: n => { return [d1, d2]; } } } +>x48 : Symbol(x48, Decl(generatedContextualTyping.ts, 51, 86)) +>member : Symbol(member, Decl(generatedContextualTyping.ts, 52, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 52, 43)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 52, 49)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x49 { static member: () => Base[] = () => [d1, d2] } +>x49 : Symbol(x49, Decl(generatedContextualTyping.ts, 52, 79)) +>member : Symbol(x49.member, Decl(generatedContextualTyping.ts, 53, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x50 { static member: () => Base[] = function() { return [d1, d2] } } +>x50 : Symbol(x50, Decl(generatedContextualTyping.ts, 53, 58)) +>member : Symbol(x50.member, Decl(generatedContextualTyping.ts, 54, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x51 { static member: () => Base[] = function named() { return [d1, d2] } } +>x51 : Symbol(x51, Decl(generatedContextualTyping.ts, 54, 74)) +>member : Symbol(x51.member, Decl(generatedContextualTyping.ts, 55, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 55, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x52 { static member: { (): Base[]; } = () => [d1, d2] } +>x52 : Symbol(x52, Decl(generatedContextualTyping.ts, 55, 80)) +>member : Symbol(x52.member, Decl(generatedContextualTyping.ts, 56, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x53 { static member: { (): Base[]; } = function() { return [d1, d2] } } +>x53 : Symbol(x53, Decl(generatedContextualTyping.ts, 56, 61)) +>member : Symbol(x53.member, Decl(generatedContextualTyping.ts, 57, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x54 { static member: { (): Base[]; } = function named() { return [d1, d2] } } +>x54 : Symbol(x54, Decl(generatedContextualTyping.ts, 57, 77)) +>member : Symbol(x54.member, Decl(generatedContextualTyping.ts, 58, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 58, 44)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x55 { static member: Base[] = [d1, d2] } +>x55 : Symbol(x55, Decl(generatedContextualTyping.ts, 58, 83)) +>member : Symbol(x55.member, Decl(generatedContextualTyping.ts, 59, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x56 { static member: Array = [d1, d2] } +>x56 : Symbol(x56, Decl(generatedContextualTyping.ts, 59, 46)) +>member : Symbol(x56.member, Decl(generatedContextualTyping.ts, 60, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x57 { static member: { [n: number]: Base; } = [d1, d2] } +>x57 : Symbol(x57, Decl(generatedContextualTyping.ts, 60, 51)) +>member : Symbol(x57.member, Decl(generatedContextualTyping.ts, 61, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 61, 30)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x58 { static member: {n: Base[]; } = { n: [d1, d2] } } +>x58 : Symbol(x58, Decl(generatedContextualTyping.ts, 61, 62)) +>member : Symbol(x58.member, Decl(generatedContextualTyping.ts, 62, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 62, 28)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 62, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x59 { static member: (s: Base[]) => any = n => { var n: Base[]; return null; } } +>x59 : Symbol(x59, Decl(generatedContextualTyping.ts, 62, 61)) +>member : Symbol(x59.member, Decl(generatedContextualTyping.ts, 63, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 63, 28)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 63, 47), Decl(generatedContextualTyping.ts, 63, 58)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 63, 47), Decl(generatedContextualTyping.ts, 63, 58)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x60 { static member: Genric = { func: n => { return [d1, d2]; } } } +>x60 : Symbol(x60, Decl(generatedContextualTyping.ts, 63, 86)) +>member : Symbol(x60.member, Decl(generatedContextualTyping.ts, 64, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 64, 43)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 64, 49)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x61 { private static member: () => Base[] = () => [d1, d2] } +>x61 : Symbol(x61, Decl(generatedContextualTyping.ts, 64, 79)) +>member : Symbol(x61.member, Decl(generatedContextualTyping.ts, 65, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x62 { private static member: () => Base[] = function() { return [d1, d2] } } +>x62 : Symbol(x62, Decl(generatedContextualTyping.ts, 65, 66)) +>member : Symbol(x62.member, Decl(generatedContextualTyping.ts, 66, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x63 { private static member: () => Base[] = function named() { return [d1, d2] } } +>x63 : Symbol(x63, Decl(generatedContextualTyping.ts, 66, 82)) +>member : Symbol(x63.member, Decl(generatedContextualTyping.ts, 67, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 67, 49)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x64 { private static member: { (): Base[]; } = () => [d1, d2] } +>x64 : Symbol(x64, Decl(generatedContextualTyping.ts, 67, 88)) +>member : Symbol(x64.member, Decl(generatedContextualTyping.ts, 68, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x65 { private static member: { (): Base[]; } = function() { return [d1, d2] } } +>x65 : Symbol(x65, Decl(generatedContextualTyping.ts, 68, 69)) +>member : Symbol(x65.member, Decl(generatedContextualTyping.ts, 69, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x66 { private static member: { (): Base[]; } = function named() { return [d1, d2] } } +>x66 : Symbol(x66, Decl(generatedContextualTyping.ts, 69, 85)) +>member : Symbol(x66.member, Decl(generatedContextualTyping.ts, 70, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 70, 52)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x67 { private static member: Base[] = [d1, d2] } +>x67 : Symbol(x67, Decl(generatedContextualTyping.ts, 70, 91)) +>member : Symbol(x67.member, Decl(generatedContextualTyping.ts, 71, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x68 { private static member: Array = [d1, d2] } +>x68 : Symbol(x68, Decl(generatedContextualTyping.ts, 71, 54)) +>member : Symbol(x68.member, Decl(generatedContextualTyping.ts, 72, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x69 { private static member: { [n: number]: Base; } = [d1, d2] } +>x69 : Symbol(x69, Decl(generatedContextualTyping.ts, 72, 59)) +>member : Symbol(x69.member, Decl(generatedContextualTyping.ts, 73, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 73, 38)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x70 { private static member: {n: Base[]; } = { n: [d1, d2] } } +>x70 : Symbol(x70, Decl(generatedContextualTyping.ts, 73, 70)) +>member : Symbol(x70.member, Decl(generatedContextualTyping.ts, 74, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 74, 36)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 74, 53)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x71 { private static member: (s: Base[]) => any = n => { var n: Base[]; return null; } } +>x71 : Symbol(x71, Decl(generatedContextualTyping.ts, 74, 69)) +>member : Symbol(x71.member, Decl(generatedContextualTyping.ts, 75, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 75, 36)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 75, 55), Decl(generatedContextualTyping.ts, 75, 66)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 75, 55), Decl(generatedContextualTyping.ts, 75, 66)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x72 { private static member: Genric = { func: n => { return [d1, d2]; } } } +>x72 : Symbol(x72, Decl(generatedContextualTyping.ts, 75, 94)) +>member : Symbol(x72.member, Decl(generatedContextualTyping.ts, 76, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 76, 51)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 76, 57)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x73 { public static member: () => Base[] = () => [d1, d2] } +>x73 : Symbol(x73, Decl(generatedContextualTyping.ts, 76, 87)) +>member : Symbol(x73.member, Decl(generatedContextualTyping.ts, 77, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x74 { public static member: () => Base[] = function() { return [d1, d2] } } +>x74 : Symbol(x74, Decl(generatedContextualTyping.ts, 77, 65)) +>member : Symbol(x74.member, Decl(generatedContextualTyping.ts, 78, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x75 { public static member: () => Base[] = function named() { return [d1, d2] } } +>x75 : Symbol(x75, Decl(generatedContextualTyping.ts, 78, 81)) +>member : Symbol(x75.member, Decl(generatedContextualTyping.ts, 79, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 79, 48)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x76 { public static member: { (): Base[]; } = () => [d1, d2] } +>x76 : Symbol(x76, Decl(generatedContextualTyping.ts, 79, 87)) +>member : Symbol(x76.member, Decl(generatedContextualTyping.ts, 80, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x77 { public static member: { (): Base[]; } = function() { return [d1, d2] } } +>x77 : Symbol(x77, Decl(generatedContextualTyping.ts, 80, 68)) +>member : Symbol(x77.member, Decl(generatedContextualTyping.ts, 81, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x78 { public static member: { (): Base[]; } = function named() { return [d1, d2] } } +>x78 : Symbol(x78, Decl(generatedContextualTyping.ts, 81, 84)) +>member : Symbol(x78.member, Decl(generatedContextualTyping.ts, 82, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 82, 51)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x79 { public static member: Base[] = [d1, d2] } +>x79 : Symbol(x79, Decl(generatedContextualTyping.ts, 82, 90)) +>member : Symbol(x79.member, Decl(generatedContextualTyping.ts, 83, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x80 { public static member: Array = [d1, d2] } +>x80 : Symbol(x80, Decl(generatedContextualTyping.ts, 83, 53)) +>member : Symbol(x80.member, Decl(generatedContextualTyping.ts, 84, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x81 { public static member: { [n: number]: Base; } = [d1, d2] } +>x81 : Symbol(x81, Decl(generatedContextualTyping.ts, 84, 58)) +>member : Symbol(x81.member, Decl(generatedContextualTyping.ts, 85, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 85, 37)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x82 { public static member: {n: Base[]; } = { n: [d1, d2] } } +>x82 : Symbol(x82, Decl(generatedContextualTyping.ts, 85, 69)) +>member : Symbol(x82.member, Decl(generatedContextualTyping.ts, 86, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 86, 35)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 86, 52)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x83 { public static member: (s: Base[]) => any = n => { var n: Base[]; return null; } } +>x83 : Symbol(x83, Decl(generatedContextualTyping.ts, 86, 68)) +>member : Symbol(x83.member, Decl(generatedContextualTyping.ts, 87, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 87, 35)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 87, 54), Decl(generatedContextualTyping.ts, 87, 65)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 87, 54), Decl(generatedContextualTyping.ts, 87, 65)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x84 { public static member: Genric = { func: n => { return [d1, d2]; } } } +>x84 : Symbol(x84, Decl(generatedContextualTyping.ts, 87, 93)) +>member : Symbol(x84.member, Decl(generatedContextualTyping.ts, 88, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 88, 50)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 88, 56)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x85 { constructor(parm: () => Base[] = () => [d1, d2]) { } } +>x85 : Symbol(x85, Decl(generatedContextualTyping.ts, 88, 86)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 89, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x86 { constructor(parm: () => Base[] = function() { return [d1, d2] }) { } } +>x86 : Symbol(x86, Decl(generatedContextualTyping.ts, 89, 66)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 90, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x87 { constructor(parm: () => Base[] = function named() { return [d1, d2] }) { } } +>x87 : Symbol(x87, Decl(generatedContextualTyping.ts, 90, 82)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 91, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 91, 44)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x88 { constructor(parm: { (): Base[]; } = () => [d1, d2]) { } } +>x88 : Symbol(x88, Decl(generatedContextualTyping.ts, 91, 88)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 92, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x89 { constructor(parm: { (): Base[]; } = function() { return [d1, d2] }) { } } +>x89 : Symbol(x89, Decl(generatedContextualTyping.ts, 92, 69)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 93, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x90 { constructor(parm: { (): Base[]; } = function named() { return [d1, d2] }) { } } +>x90 : Symbol(x90, Decl(generatedContextualTyping.ts, 93, 85)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 94, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 94, 47)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x91 { constructor(parm: Base[] = [d1, d2]) { } } +>x91 : Symbol(x91, Decl(generatedContextualTyping.ts, 94, 91)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 95, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x92 { constructor(parm: Array = [d1, d2]) { } } +>x92 : Symbol(x92, Decl(generatedContextualTyping.ts, 95, 54)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 96, 24)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x93 { constructor(parm: { [n: number]: Base; } = [d1, d2]) { } } +>x93 : Symbol(x93, Decl(generatedContextualTyping.ts, 96, 59)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 97, 24)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 97, 33)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x94 { constructor(parm: {n: Base[]; } = { n: [d1, d2] }) { } } +>x94 : Symbol(x94, Decl(generatedContextualTyping.ts, 97, 70)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 98, 24)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 98, 31)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 98, 48)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x95 { constructor(parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } } +>x95 : Symbol(x95, Decl(generatedContextualTyping.ts, 98, 69)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 99, 24)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 99, 31)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 99, 50), Decl(generatedContextualTyping.ts, 99, 61)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 99, 50), Decl(generatedContextualTyping.ts, 99, 61)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x96 { constructor(parm: Genric = { func: n => { return [d1, d2]; } }) { } } +>x96 : Symbol(x96, Decl(generatedContextualTyping.ts, 99, 94)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 100, 24)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 100, 46)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 100, 52)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x97 { constructor(public parm: () => Base[] = () => [d1, d2]) { } } +>x97 : Symbol(x97, Decl(generatedContextualTyping.ts, 100, 87)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 101, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x98 { constructor(public parm: () => Base[] = function() { return [d1, d2] }) { } } +>x98 : Symbol(x98, Decl(generatedContextualTyping.ts, 101, 73)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 102, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x99 { constructor(public parm: () => Base[] = function named() { return [d1, d2] }) { } } +>x99 : Symbol(x99, Decl(generatedContextualTyping.ts, 102, 89)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 103, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 103, 51)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x100 { constructor(public parm: { (): Base[]; } = () => [d1, d2]) { } } +>x100 : Symbol(x100, Decl(generatedContextualTyping.ts, 103, 95)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 104, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x101 { constructor(public parm: { (): Base[]; } = function() { return [d1, d2] }) { } } +>x101 : Symbol(x101, Decl(generatedContextualTyping.ts, 104, 77)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 105, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x102 { constructor(public parm: { (): Base[]; } = function named() { return [d1, d2] }) { } } +>x102 : Symbol(x102, Decl(generatedContextualTyping.ts, 105, 93)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 106, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 106, 55)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x103 { constructor(public parm: Base[] = [d1, d2]) { } } +>x103 : Symbol(x103, Decl(generatedContextualTyping.ts, 106, 99)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 107, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x104 { constructor(public parm: Array = [d1, d2]) { } } +>x104 : Symbol(x104, Decl(generatedContextualTyping.ts, 107, 62)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 108, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x105 { constructor(public parm: { [n: number]: Base; } = [d1, d2]) { } } +>x105 : Symbol(x105, Decl(generatedContextualTyping.ts, 108, 67)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 109, 25)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 109, 41)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x106 { constructor(public parm: {n: Base[]; } = { n: [d1, d2] }) { } } +>x106 : Symbol(x106, Decl(generatedContextualTyping.ts, 109, 78)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 110, 25)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 110, 39)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 110, 56)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x107 { constructor(public parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } } +>x107 : Symbol(x107, Decl(generatedContextualTyping.ts, 110, 77)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 111, 25)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 111, 39)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 111, 58), Decl(generatedContextualTyping.ts, 111, 69)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 111, 58), Decl(generatedContextualTyping.ts, 111, 69)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x108 { constructor(public parm: Genric = { func: n => { return [d1, d2]; } }) { } } +>x108 : Symbol(x108, Decl(generatedContextualTyping.ts, 111, 102)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 112, 25)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 112, 54)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 112, 60)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x109 { constructor(private parm: () => Base[] = () => [d1, d2]) { } } +>x109 : Symbol(x109, Decl(generatedContextualTyping.ts, 112, 95)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 113, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x110 { constructor(private parm: () => Base[] = function() { return [d1, d2] }) { } } +>x110 : Symbol(x110, Decl(generatedContextualTyping.ts, 113, 75)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 114, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x111 { constructor(private parm: () => Base[] = function named() { return [d1, d2] }) { } } +>x111 : Symbol(x111, Decl(generatedContextualTyping.ts, 114, 91)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 115, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 115, 53)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x112 { constructor(private parm: { (): Base[]; } = () => [d1, d2]) { } } +>x112 : Symbol(x112, Decl(generatedContextualTyping.ts, 115, 97)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 116, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x113 { constructor(private parm: { (): Base[]; } = function() { return [d1, d2] }) { } } +>x113 : Symbol(x113, Decl(generatedContextualTyping.ts, 116, 78)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 117, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x114 { constructor(private parm: { (): Base[]; } = function named() { return [d1, d2] }) { } } +>x114 : Symbol(x114, Decl(generatedContextualTyping.ts, 117, 94)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 118, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 118, 56)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x115 { constructor(private parm: Base[] = [d1, d2]) { } } +>x115 : Symbol(x115, Decl(generatedContextualTyping.ts, 118, 100)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 119, 25)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x116 { constructor(private parm: Array = [d1, d2]) { } } +>x116 : Symbol(x116, Decl(generatedContextualTyping.ts, 119, 63)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 120, 25)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x117 { constructor(private parm: { [n: number]: Base; } = [d1, d2]) { } } +>x117 : Symbol(x117, Decl(generatedContextualTyping.ts, 120, 68)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 121, 25)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 121, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x118 { constructor(private parm: {n: Base[]; } = { n: [d1, d2] }) { } } +>x118 : Symbol(x118, Decl(generatedContextualTyping.ts, 121, 79)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 122, 25)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 122, 40)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 122, 57)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +class x119 { constructor(private parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } } +>x119 : Symbol(x119, Decl(generatedContextualTyping.ts, 122, 78)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 123, 25)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 123, 40)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 123, 59), Decl(generatedContextualTyping.ts, 123, 70)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 123, 59), Decl(generatedContextualTyping.ts, 123, 70)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +class x120 { constructor(private parm: Genric = { func: n => { return [d1, d2]; } }) { } } +>x120 : Symbol(x120, Decl(generatedContextualTyping.ts, 123, 103)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 124, 25)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 124, 55)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 124, 61)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x121(parm: () => Base[] = () => [d1, d2]) { } +>x121 : Symbol(x121, Decl(generatedContextualTyping.ts, 124, 96)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 125, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x122(parm: () => Base[] = function() { return [d1, d2] }) { } +>x122 : Symbol(x122, Decl(generatedContextualTyping.ts, 125, 54)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 126, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x123(parm: () => Base[] = function named() { return [d1, d2] }) { } +>x123 : Symbol(x123, Decl(generatedContextualTyping.ts, 126, 70)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 127, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 127, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x124(parm: { (): Base[]; } = () => [d1, d2]) { } +>x124 : Symbol(x124, Decl(generatedContextualTyping.ts, 127, 76)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 128, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x125(parm: { (): Base[]; } = function() { return [d1, d2] }) { } +>x125 : Symbol(x125, Decl(generatedContextualTyping.ts, 128, 57)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 129, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x126(parm: { (): Base[]; } = function named() { return [d1, d2] }) { } +>x126 : Symbol(x126, Decl(generatedContextualTyping.ts, 129, 73)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 130, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 130, 37)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x127(parm: Base[] = [d1, d2]) { } +>x127 : Symbol(x127, Decl(generatedContextualTyping.ts, 130, 79)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 131, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x128(parm: Array = [d1, d2]) { } +>x128 : Symbol(x128, Decl(generatedContextualTyping.ts, 131, 42)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 132, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x129(parm: { [n: number]: Base; } = [d1, d2]) { } +>x129 : Symbol(x129, Decl(generatedContextualTyping.ts, 132, 47)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 133, 14)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 133, 23)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x130(parm: {n: Base[]; } = { n: [d1, d2] }) { } +>x130 : Symbol(x130, Decl(generatedContextualTyping.ts, 133, 58)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 134, 14)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 134, 21)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 134, 38)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x131(parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } +>x131 : Symbol(x131, Decl(generatedContextualTyping.ts, 134, 57)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 135, 14)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 135, 21)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 135, 40), Decl(generatedContextualTyping.ts, 135, 51)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 135, 40), Decl(generatedContextualTyping.ts, 135, 51)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +function x132(parm: Genric = { func: n => { return [d1, d2]; } }) { } +>x132 : Symbol(x132, Decl(generatedContextualTyping.ts, 135, 82)) +>parm : Symbol(parm, Decl(generatedContextualTyping.ts, 136, 14)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 136, 36)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 136, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x133(): () => Base[] { return () => [d1, d2]; } +>x133 : Symbol(x133, Decl(generatedContextualTyping.ts, 136, 75)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x134(): () => Base[] { return function() { return [d1, d2] }; } +>x134 : Symbol(x134, Decl(generatedContextualTyping.ts, 137, 56)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x135(): () => Base[] { return function named() { return [d1, d2] }; } +>x135 : Symbol(x135, Decl(generatedContextualTyping.ts, 138, 72)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 139, 38)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x136(): { (): Base[]; } { return () => [d1, d2]; } +>x136 : Symbol(x136, Decl(generatedContextualTyping.ts, 139, 78)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x137(): { (): Base[]; } { return function() { return [d1, d2] }; } +>x137 : Symbol(x137, Decl(generatedContextualTyping.ts, 140, 59)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x138(): { (): Base[]; } { return function named() { return [d1, d2] }; } +>x138 : Symbol(x138, Decl(generatedContextualTyping.ts, 141, 75)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 142, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x139(): Base[] { return [d1, d2]; } +>x139 : Symbol(x139, Decl(generatedContextualTyping.ts, 142, 81)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x140(): Array { return [d1, d2]; } +>x140 : Symbol(x140, Decl(generatedContextualTyping.ts, 143, 44)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x141(): { [n: number]: Base; } { return [d1, d2]; } +>x141 : Symbol(x141, Decl(generatedContextualTyping.ts, 144, 49)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 145, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x142(): {n: Base[]; } { return { n: [d1, d2] }; } +>x142 : Symbol(x142, Decl(generatedContextualTyping.ts, 145, 60)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 146, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 146, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x143(): (s: Base[]) => any { return n => { var n: Base[]; return null; }; } +>x143 : Symbol(x143, Decl(generatedContextualTyping.ts, 146, 59)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 147, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 147, 44), Decl(generatedContextualTyping.ts, 147, 55)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 147, 44), Decl(generatedContextualTyping.ts, 147, 55)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +function x144(): Genric { return { func: n => { return [d1, d2]; } }; } +>x144 : Symbol(x144, Decl(generatedContextualTyping.ts, 147, 84)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 148, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 148, 46)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x145(): () => Base[] { return () => [d1, d2]; return () => [d1, d2]; } +>x145 : Symbol(x145, Decl(generatedContextualTyping.ts, 148, 77)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x146(): () => Base[] { return function() { return [d1, d2] }; return function() { return [d1, d2] }; } +>x146 : Symbol(x146, Decl(generatedContextualTyping.ts, 149, 79)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x147(): () => Base[] { return function named() { return [d1, d2] }; return function named() { return [d1, d2] }; } +>x147 : Symbol(x147, Decl(generatedContextualTyping.ts, 150, 111)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 151, 38)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 151, 83)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x148(): { (): Base[]; } { return () => [d1, d2]; return () => [d1, d2]; } +>x148 : Symbol(x148, Decl(generatedContextualTyping.ts, 151, 123)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x149(): { (): Base[]; } { return function() { return [d1, d2] }; return function() { return [d1, d2] }; } +>x149 : Symbol(x149, Decl(generatedContextualTyping.ts, 152, 82)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x150(): { (): Base[]; } { return function named() { return [d1, d2] }; return function named() { return [d1, d2] }; } +>x150 : Symbol(x150, Decl(generatedContextualTyping.ts, 153, 114)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 154, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 154, 86)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x151(): Base[] { return [d1, d2]; return [d1, d2]; } +>x151 : Symbol(x151, Decl(generatedContextualTyping.ts, 154, 126)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x152(): Array { return [d1, d2]; return [d1, d2]; } +>x152 : Symbol(x152, Decl(generatedContextualTyping.ts, 155, 61)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x153(): { [n: number]: Base; } { return [d1, d2]; return [d1, d2]; } +>x153 : Symbol(x153, Decl(generatedContextualTyping.ts, 156, 66)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 157, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x154(): {n: Base[]; } { return { n: [d1, d2] }; return { n: [d1, d2] }; } +>x154 : Symbol(x154, Decl(generatedContextualTyping.ts, 157, 77)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 158, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 158, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 158, 66)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x155(): (s: Base[]) => any { return n => { var n: Base[]; return null; }; return n => { var n: Base[]; return null; }; } +>x155 : Symbol(x155, Decl(generatedContextualTyping.ts, 158, 83)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 159, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 159, 44), Decl(generatedContextualTyping.ts, 159, 55)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 159, 44), Decl(generatedContextualTyping.ts, 159, 55)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 159, 89), Decl(generatedContextualTyping.ts, 159, 100)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 159, 89), Decl(generatedContextualTyping.ts, 159, 100)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +function x156(): Genric { return { func: n => { return [d1, d2]; } }; return { func: n => { return [d1, d2]; } }; } +>x156 : Symbol(x156, Decl(generatedContextualTyping.ts, 159, 129)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 160, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 160, 46)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 160, 84)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 160, 90)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x157: () => () => Base[] = () => { return () => [d1, d2]; }; +>x157 : Symbol(x157, Decl(generatedContextualTyping.ts, 161, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x158: () => () => Base[] = () => { return function() { return [d1, d2] }; }; +>x158 : Symbol(x158, Decl(generatedContextualTyping.ts, 162, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x159: () => () => Base[] = () => { return function named() { return [d1, d2] }; }; +>x159 : Symbol(x159, Decl(generatedContextualTyping.ts, 163, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 163, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x160: () => { (): Base[]; } = () => { return () => [d1, d2]; }; +>x160 : Symbol(x160, Decl(generatedContextualTyping.ts, 164, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x161: () => { (): Base[]; } = () => { return function() { return [d1, d2] }; }; +>x161 : Symbol(x161, Decl(generatedContextualTyping.ts, 165, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x162: () => { (): Base[]; } = () => { return function named() { return [d1, d2] }; }; +>x162 : Symbol(x162, Decl(generatedContextualTyping.ts, 166, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 166, 48)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x163: () => Base[] = () => { return [d1, d2]; }; +>x163 : Symbol(x163, Decl(generatedContextualTyping.ts, 167, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x164: () => Array = () => { return [d1, d2]; }; +>x164 : Symbol(x164, Decl(generatedContextualTyping.ts, 168, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x165: () => { [n: number]: Base; } = () => { return [d1, d2]; }; +>x165 : Symbol(x165, Decl(generatedContextualTyping.ts, 169, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 169, 19)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x166: () => {n: Base[]; } = () => { return { n: [d1, d2] }; }; +>x166 : Symbol(x166, Decl(generatedContextualTyping.ts, 170, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 170, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 170, 49)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x167: () => (s: Base[]) => any = () => { return n => { var n: Base[]; return null; }; }; +>x167 : Symbol(x167, Decl(generatedContextualTyping.ts, 171, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 171, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 171, 51), Decl(generatedContextualTyping.ts, 171, 62)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 171, 51), Decl(generatedContextualTyping.ts, 171, 62)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x168: () => Genric = () => { return { func: n => { return [d1, d2]; } }; }; +>x168 : Symbol(x168, Decl(generatedContextualTyping.ts, 172, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 172, 47)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 172, 53)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x169: () => () => Base[] = function() { return () => [d1, d2]; }; +>x169 : Symbol(x169, Decl(generatedContextualTyping.ts, 173, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x170: () => () => Base[] = function() { return function() { return [d1, d2] }; }; +>x170 : Symbol(x170, Decl(generatedContextualTyping.ts, 174, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x171: () => () => Base[] = function() { return function named() { return [d1, d2] }; }; +>x171 : Symbol(x171, Decl(generatedContextualTyping.ts, 175, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 175, 50)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x172: () => { (): Base[]; } = function() { return () => [d1, d2]; }; +>x172 : Symbol(x172, Decl(generatedContextualTyping.ts, 176, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x173: () => { (): Base[]; } = function() { return function() { return [d1, d2] }; }; +>x173 : Symbol(x173, Decl(generatedContextualTyping.ts, 177, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x174: () => { (): Base[]; } = function() { return function named() { return [d1, d2] }; }; +>x174 : Symbol(x174, Decl(generatedContextualTyping.ts, 178, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 178, 53)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x175: () => Base[] = function() { return [d1, d2]; }; +>x175 : Symbol(x175, Decl(generatedContextualTyping.ts, 179, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x176: () => Array = function() { return [d1, d2]; }; +>x176 : Symbol(x176, Decl(generatedContextualTyping.ts, 180, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x177: () => { [n: number]: Base; } = function() { return [d1, d2]; }; +>x177 : Symbol(x177, Decl(generatedContextualTyping.ts, 181, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 181, 19)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x178: () => {n: Base[]; } = function() { return { n: [d1, d2] }; }; +>x178 : Symbol(x178, Decl(generatedContextualTyping.ts, 182, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 182, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 182, 54)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x179: () => (s: Base[]) => any = function() { return n => { var n: Base[]; return null; }; }; +>x179 : Symbol(x179, Decl(generatedContextualTyping.ts, 183, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 183, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 183, 56), Decl(generatedContextualTyping.ts, 183, 67)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 183, 56), Decl(generatedContextualTyping.ts, 183, 67)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x180: () => Genric = function() { return { func: n => { return [d1, d2]; } }; }; +>x180 : Symbol(x180, Decl(generatedContextualTyping.ts, 184, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 184, 52)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 184, 58)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x181 { var t: () => Base[] = () => [d1, d2]; } +>x181 : Symbol(x181, Decl(generatedContextualTyping.ts, 184, 90)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 185, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x182 { var t: () => Base[] = function() { return [d1, d2] }; } +>x182 : Symbol(x182, Decl(generatedContextualTyping.ts, 185, 53)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 186, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x183 { var t: () => Base[] = function named() { return [d1, d2] }; } +>x183 : Symbol(x183, Decl(generatedContextualTyping.ts, 186, 69)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 187, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 187, 35)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x184 { var t: { (): Base[]; } = () => [d1, d2]; } +>x184 : Symbol(x184, Decl(generatedContextualTyping.ts, 187, 75)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 188, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x185 { var t: { (): Base[]; } = function() { return [d1, d2] }; } +>x185 : Symbol(x185, Decl(generatedContextualTyping.ts, 188, 56)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 189, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x186 { var t: { (): Base[]; } = function named() { return [d1, d2] }; } +>x186 : Symbol(x186, Decl(generatedContextualTyping.ts, 189, 72)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 190, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 190, 38)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x187 { var t: Base[] = [d1, d2]; } +>x187 : Symbol(x187, Decl(generatedContextualTyping.ts, 190, 78)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 191, 17)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x188 { var t: Array = [d1, d2]; } +>x188 : Symbol(x188, Decl(generatedContextualTyping.ts, 191, 41)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 192, 17)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x189 { var t: { [n: number]: Base; } = [d1, d2]; } +>x189 : Symbol(x189, Decl(generatedContextualTyping.ts, 192, 46)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 193, 17)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 193, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x190 { var t: {n: Base[]; } = { n: [d1, d2] }; } +>x190 : Symbol(x190, Decl(generatedContextualTyping.ts, 193, 57)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 194, 17)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 194, 22)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 194, 39)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x191 { var t: (s: Base[]) => any = n => { var n: Base[]; return null; }; } +>x191 : Symbol(x191, Decl(generatedContextualTyping.ts, 194, 56)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 195, 17)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 195, 22)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 195, 41), Decl(generatedContextualTyping.ts, 195, 52)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 195, 41), Decl(generatedContextualTyping.ts, 195, 52)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +module x192 { var t: Genric = { func: n => { return [d1, d2]; } }; } +>x192 : Symbol(x192, Decl(generatedContextualTyping.ts, 195, 81)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 196, 17)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 196, 37)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 196, 43)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x193 { export var t: () => Base[] = () => [d1, d2]; } +>x193 : Symbol(x193, Decl(generatedContextualTyping.ts, 196, 74)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 197, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x194 { export var t: () => Base[] = function() { return [d1, d2] }; } +>x194 : Symbol(x194, Decl(generatedContextualTyping.ts, 197, 60)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 198, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x195 { export var t: () => Base[] = function named() { return [d1, d2] }; } +>x195 : Symbol(x195, Decl(generatedContextualTyping.ts, 198, 76)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 199, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 199, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x196 { export var t: { (): Base[]; } = () => [d1, d2]; } +>x196 : Symbol(x196, Decl(generatedContextualTyping.ts, 199, 82)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 200, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x197 { export var t: { (): Base[]; } = function() { return [d1, d2] }; } +>x197 : Symbol(x197, Decl(generatedContextualTyping.ts, 200, 63)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 201, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x198 { export var t: { (): Base[]; } = function named() { return [d1, d2] }; } +>x198 : Symbol(x198, Decl(generatedContextualTyping.ts, 201, 79)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 202, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 202, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x199 { export var t: Base[] = [d1, d2]; } +>x199 : Symbol(x199, Decl(generatedContextualTyping.ts, 202, 85)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 203, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x200 { export var t: Array = [d1, d2]; } +>x200 : Symbol(x200, Decl(generatedContextualTyping.ts, 203, 48)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 204, 24)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x201 { export var t: { [n: number]: Base; } = [d1, d2]; } +>x201 : Symbol(x201, Decl(generatedContextualTyping.ts, 204, 53)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 205, 24)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 205, 31)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x202 { export var t: {n: Base[]; } = { n: [d1, d2] }; } +>x202 : Symbol(x202, Decl(generatedContextualTyping.ts, 205, 64)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 206, 24)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 206, 29)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 206, 46)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +module x203 { export var t: (s: Base[]) => any = n => { var n: Base[]; return null; }; } +>x203 : Symbol(x203, Decl(generatedContextualTyping.ts, 206, 63)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 207, 24)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 207, 29)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 207, 48), Decl(generatedContextualTyping.ts, 207, 59)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 207, 48), Decl(generatedContextualTyping.ts, 207, 59)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +module x204 { export var t: Genric = { func: n => { return [d1, d2]; } }; } +>x204 : Symbol(x204, Decl(generatedContextualTyping.ts, 207, 88)) +>t : Symbol(t, Decl(generatedContextualTyping.ts, 208, 24)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 208, 44)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 208, 50)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x206 = <() => Base[]>function() { return [d1, d2] }; +>x206 : Symbol(x206, Decl(generatedContextualTyping.ts, 209, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x207 = <() => Base[]>function named() { return [d1, d2] }; +>x207 : Symbol(x207, Decl(generatedContextualTyping.ts, 210, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 210, 25)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x209 = <{ (): Base[]; }>function() { return [d1, d2] }; +>x209 : Symbol(x209, Decl(generatedContextualTyping.ts, 211, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x210 = <{ (): Base[]; }>function named() { return [d1, d2] }; +>x210 : Symbol(x210, Decl(generatedContextualTyping.ts, 212, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 212, 28)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x211 = [d1, d2]; +>x211 : Symbol(x211, Decl(generatedContextualTyping.ts, 213, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x212 = >[d1, d2]; +>x212 : Symbol(x212, Decl(generatedContextualTyping.ts, 214, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x213 = <{ [n: number]: Base; }>[d1, d2]; +>x213 : Symbol(x213, Decl(generatedContextualTyping.ts, 215, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 215, 15)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x214 = <{n: Base[]; } >{ n: [d1, d2] }; +>x214 : Symbol(x214, Decl(generatedContextualTyping.ts, 216, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 216, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 216, 28)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x216 = >{ func: n => { return [d1, d2]; } }; +>x216 : Symbol(x216, Decl(generatedContextualTyping.ts, 217, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 217, 26)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 217, 32)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x217 = (<() => Base[]>undefined) || function() { return [d1, d2] }; +>x217 : Symbol(x217, Decl(generatedContextualTyping.ts, 218, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x218 = (<() => Base[]>undefined) || function named() { return [d1, d2] }; +>x218 : Symbol(x218, Decl(generatedContextualTyping.ts, 219, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 219, 39)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x219 = (<{ (): Base[]; }>undefined) || function() { return [d1, d2] }; +>x219 : Symbol(x219, Decl(generatedContextualTyping.ts, 220, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x220 = (<{ (): Base[]; }>undefined) || function named() { return [d1, d2] }; +>x220 : Symbol(x220, Decl(generatedContextualTyping.ts, 221, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 221, 42)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x221 = (undefined) || [d1, d2]; +>x221 : Symbol(x221, Decl(generatedContextualTyping.ts, 222, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x222 = (>undefined) || [d1, d2]; +>x222 : Symbol(x222, Decl(generatedContextualTyping.ts, 223, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x223 = (<{ [n: number]: Base; }>undefined) || [d1, d2]; +>x223 : Symbol(x223, Decl(generatedContextualTyping.ts, 224, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 224, 16)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x224 = (<{n: Base[]; } >undefined) || { n: [d1, d2] }; +>x224 : Symbol(x224, Decl(generatedContextualTyping.ts, 225, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 225, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 225, 43)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x225: () => Base[]; x225 = () => [d1, d2]; +>x225 : Symbol(x225, Decl(generatedContextualTyping.ts, 226, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x225 : Symbol(x225, Decl(generatedContextualTyping.ts, 226, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x226: () => Base[]; x226 = function() { return [d1, d2] }; +>x226 : Symbol(x226, Decl(generatedContextualTyping.ts, 227, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x226 : Symbol(x226, Decl(generatedContextualTyping.ts, 227, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x227: () => Base[]; x227 = function named() { return [d1, d2] }; +>x227 : Symbol(x227, Decl(generatedContextualTyping.ts, 228, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x227 : Symbol(x227, Decl(generatedContextualTyping.ts, 228, 3)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 228, 30)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x228: { (): Base[]; }; x228 = () => [d1, d2]; +>x228 : Symbol(x228, Decl(generatedContextualTyping.ts, 229, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x228 : Symbol(x228, Decl(generatedContextualTyping.ts, 229, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x229: { (): Base[]; }; x229 = function() { return [d1, d2] }; +>x229 : Symbol(x229, Decl(generatedContextualTyping.ts, 230, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x229 : Symbol(x229, Decl(generatedContextualTyping.ts, 230, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x230: { (): Base[]; }; x230 = function named() { return [d1, d2] }; +>x230 : Symbol(x230, Decl(generatedContextualTyping.ts, 231, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x230 : Symbol(x230, Decl(generatedContextualTyping.ts, 231, 3)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 231, 33)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x231: Base[]; x231 = [d1, d2]; +>x231 : Symbol(x231, Decl(generatedContextualTyping.ts, 232, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x231 : Symbol(x231, Decl(generatedContextualTyping.ts, 232, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x232: Array; x232 = [d1, d2]; +>x232 : Symbol(x232, Decl(generatedContextualTyping.ts, 233, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x232 : Symbol(x232, Decl(generatedContextualTyping.ts, 233, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x233: { [n: number]: Base; }; x233 = [d1, d2]; +>x233 : Symbol(x233, Decl(generatedContextualTyping.ts, 234, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 234, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x233 : Symbol(x233, Decl(generatedContextualTyping.ts, 234, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x234: {n: Base[]; } ; x234 = { n: [d1, d2] }; +>x234 : Symbol(x234, Decl(generatedContextualTyping.ts, 235, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 235, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x234 : Symbol(x234, Decl(generatedContextualTyping.ts, 235, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 235, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x235: (s: Base[]) => any; x235 = n => { var n: Base[]; return null; }; +>x235 : Symbol(x235, Decl(generatedContextualTyping.ts, 236, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 236, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x235 : Symbol(x235, Decl(generatedContextualTyping.ts, 236, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 236, 36), Decl(generatedContextualTyping.ts, 236, 47)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 236, 36), Decl(generatedContextualTyping.ts, 236, 47)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x236: Genric; x236 = { func: n => { return [d1, d2]; } }; +>x236 : Symbol(x236, Decl(generatedContextualTyping.ts, 237, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x236 : Symbol(x236, Decl(generatedContextualTyping.ts, 237, 3)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 237, 32)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 237, 38)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x237: { n: () => Base[]; } = { n: () => [d1, d2] }; +>x237 : Symbol(x237, Decl(generatedContextualTyping.ts, 238, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 238, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 238, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x238: { n: () => Base[]; } = { n: function() { return [d1, d2] } }; +>x238 : Symbol(x238, Decl(generatedContextualTyping.ts, 239, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 239, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 239, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x239: { n: () => Base[]; } = { n: function named() { return [d1, d2] } }; +>x239 : Symbol(x239, Decl(generatedContextualTyping.ts, 240, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 240, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 240, 34)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 240, 37)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x240: { n: { (): Base[]; }; } = { n: () => [d1, d2] }; +>x240 : Symbol(x240, Decl(generatedContextualTyping.ts, 241, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 241, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 241, 37)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x241: { n: { (): Base[]; }; } = { n: function() { return [d1, d2] } }; +>x241 : Symbol(x241, Decl(generatedContextualTyping.ts, 242, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 242, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 242, 37)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x242: { n: { (): Base[]; }; } = { n: function named() { return [d1, d2] } }; +>x242 : Symbol(x242, Decl(generatedContextualTyping.ts, 243, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 243, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 243, 37)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 243, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x243: { n: Base[]; } = { n: [d1, d2] }; +>x243 : Symbol(x243, Decl(generatedContextualTyping.ts, 244, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 244, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 244, 28)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x244: { n: Array; } = { n: [d1, d2] }; +>x244 : Symbol(x244, Decl(generatedContextualTyping.ts, 245, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 245, 11)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 245, 33)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x245: { n: { [n: number]: Base; }; } = { n: [d1, d2] }; +>x245 : Symbol(x245, Decl(generatedContextualTyping.ts, 246, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 246, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 246, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 246, 44)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x246: { n: {n: Base[]; } ; } = { n: { n: [d1, d2] } }; +>x246 : Symbol(x246, Decl(generatedContextualTyping.ts, 247, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 247, 11)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 247, 16)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 247, 36)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 247, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x247: { n: (s: Base[]) => any; } = { n: n => { var n: Base[]; return null; } }; +>x247 : Symbol(x247, Decl(generatedContextualTyping.ts, 248, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 248, 11)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 248, 16)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 248, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 248, 43), Decl(generatedContextualTyping.ts, 248, 54)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 248, 43), Decl(generatedContextualTyping.ts, 248, 54)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x248: { n: Genric; } = { n: { func: n => { return [d1, d2]; } } }; +>x248 : Symbol(x248, Decl(generatedContextualTyping.ts, 249, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 249, 11)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 249, 34)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 249, 39)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 249, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x252: { (): Base[]; }[] = [() => [d1, d2]]; +>x252 : Symbol(x252, Decl(generatedContextualTyping.ts, 250, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x253: { (): Base[]; }[] = [function() { return [d1, d2] }]; +>x253 : Symbol(x253, Decl(generatedContextualTyping.ts, 251, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x254: { (): Base[]; }[] = [function named() { return [d1, d2] }]; +>x254 : Symbol(x254, Decl(generatedContextualTyping.ts, 252, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 252, 31)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x255: Base[][] = [[d1, d2]]; +>x255 : Symbol(x255, Decl(generatedContextualTyping.ts, 253, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x256: Array[] = [[d1, d2]]; +>x256 : Symbol(x256, Decl(generatedContextualTyping.ts, 254, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x257: { [n: number]: Base; }[] = [[d1, d2]]; +>x257 : Symbol(x257, Decl(generatedContextualTyping.ts, 255, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 255, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x258: {n: Base[]; } [] = [{ n: [d1, d2] }]; +>x258 : Symbol(x258, Decl(generatedContextualTyping.ts, 256, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 256, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 256, 31)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x260: Genric[] = [{ func: n => { return [d1, d2]; } }]; +>x260 : Symbol(x260, Decl(generatedContextualTyping.ts, 257, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 257, 29)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 257, 35)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x261: () => Base[] = function() { return [d1, d2] } || undefined; +>x261 : Symbol(x261, Decl(generatedContextualTyping.ts, 258, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x262: () => Base[] = function named() { return [d1, d2] } || undefined; +>x262 : Symbol(x262, Decl(generatedContextualTyping.ts, 259, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 259, 24)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x263: { (): Base[]; } = function() { return [d1, d2] } || undefined; +>x263 : Symbol(x263, Decl(generatedContextualTyping.ts, 260, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x264: { (): Base[]; } = function named() { return [d1, d2] } || undefined; +>x264 : Symbol(x264, Decl(generatedContextualTyping.ts, 261, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 261, 27)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x265: Base[] = [d1, d2] || undefined; +>x265 : Symbol(x265, Decl(generatedContextualTyping.ts, 262, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x266: Array = [d1, d2] || undefined; +>x266 : Symbol(x266, Decl(generatedContextualTyping.ts, 263, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x267: { [n: number]: Base; } = [d1, d2] || undefined; +>x267 : Symbol(x267, Decl(generatedContextualTyping.ts, 264, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 264, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x268: {n: Base[]; } = { n: [d1, d2] } || undefined; +>x268 : Symbol(x268, Decl(generatedContextualTyping.ts, 265, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 265, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 265, 28)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x269: () => Base[] = undefined || function() { return [d1, d2] }; +>x269 : Symbol(x269, Decl(generatedContextualTyping.ts, 266, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x270: () => Base[] = undefined || function named() { return [d1, d2] }; +>x270 : Symbol(x270, Decl(generatedContextualTyping.ts, 267, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 267, 37)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x271: { (): Base[]; } = undefined || function() { return [d1, d2] }; +>x271 : Symbol(x271, Decl(generatedContextualTyping.ts, 268, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x272: { (): Base[]; } = undefined || function named() { return [d1, d2] }; +>x272 : Symbol(x272, Decl(generatedContextualTyping.ts, 269, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 269, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x273: Base[] = undefined || [d1, d2]; +>x273 : Symbol(x273, Decl(generatedContextualTyping.ts, 270, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x274: Array = undefined || [d1, d2]; +>x274 : Symbol(x274, Decl(generatedContextualTyping.ts, 271, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x275: { [n: number]: Base; } = undefined || [d1, d2]; +>x275 : Symbol(x275, Decl(generatedContextualTyping.ts, 272, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 272, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x276: {n: Base[]; } = undefined || { n: [d1, d2] }; +>x276 : Symbol(x276, Decl(generatedContextualTyping.ts, 273, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 273, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 273, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x277: () => Base[] = function() { return [d1, d2] } || function() { return [d1, d2] }; +>x277 : Symbol(x277, Decl(generatedContextualTyping.ts, 274, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x278: () => Base[] = function named() { return [d1, d2] } || function named() { return [d1, d2] }; +>x278 : Symbol(x278, Decl(generatedContextualTyping.ts, 275, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 275, 24)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 275, 64)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x279: { (): Base[]; } = function() { return [d1, d2] } || function() { return [d1, d2] }; +>x279 : Symbol(x279, Decl(generatedContextualTyping.ts, 276, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x280: { (): Base[]; } = function named() { return [d1, d2] } || function named() { return [d1, d2] }; +>x280 : Symbol(x280, Decl(generatedContextualTyping.ts, 277, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 277, 27)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 277, 67)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x281: Base[] = [d1, d2] || [d1, d2]; +>x281 : Symbol(x281, Decl(generatedContextualTyping.ts, 278, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x282: Array = [d1, d2] || [d1, d2]; +>x282 : Symbol(x282, Decl(generatedContextualTyping.ts, 279, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x283: { [n: number]: Base; } = [d1, d2] || [d1, d2]; +>x283 : Symbol(x283, Decl(generatedContextualTyping.ts, 280, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 280, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x284: {n: Base[]; } = { n: [d1, d2] } || { n: [d1, d2] }; +>x284 : Symbol(x284, Decl(generatedContextualTyping.ts, 281, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 281, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 281, 28)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 281, 47)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x285: () => Base[] = true ? () => [d1, d2] : () => [d1, d2]; +>x285 : Symbol(x285, Decl(generatedContextualTyping.ts, 282, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x286: () => Base[] = true ? function() { return [d1, d2] } : function() { return [d1, d2] }; +>x286 : Symbol(x286, Decl(generatedContextualTyping.ts, 283, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x287: () => Base[] = true ? function named() { return [d1, d2] } : function named() { return [d1, d2] }; +>x287 : Symbol(x287, Decl(generatedContextualTyping.ts, 284, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 284, 31)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 284, 70)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x288: { (): Base[]; } = true ? () => [d1, d2] : () => [d1, d2]; +>x288 : Symbol(x288, Decl(generatedContextualTyping.ts, 285, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x289: { (): Base[]; } = true ? function() { return [d1, d2] } : function() { return [d1, d2] }; +>x289 : Symbol(x289, Decl(generatedContextualTyping.ts, 286, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x290: { (): Base[]; } = true ? function named() { return [d1, d2] } : function named() { return [d1, d2] }; +>x290 : Symbol(x290, Decl(generatedContextualTyping.ts, 287, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 287, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 287, 73)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x291: Base[] = true ? [d1, d2] : [d1, d2]; +>x291 : Symbol(x291, Decl(generatedContextualTyping.ts, 288, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x292: Array = true ? [d1, d2] : [d1, d2]; +>x292 : Symbol(x292, Decl(generatedContextualTyping.ts, 289, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x293: { [n: number]: Base; } = true ? [d1, d2] : [d1, d2]; +>x293 : Symbol(x293, Decl(generatedContextualTyping.ts, 290, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 290, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x294: {n: Base[]; } = true ? { n: [d1, d2] } : { n: [d1, d2] }; +>x294 : Symbol(x294, Decl(generatedContextualTyping.ts, 291, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 291, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 291, 35)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 291, 53)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x295: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : n => { var n: Base[]; return null; }; +>x295 : Symbol(x295, Decl(generatedContextualTyping.ts, 292, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 292, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 292, 37), Decl(generatedContextualTyping.ts, 292, 48)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 292, 37), Decl(generatedContextualTyping.ts, 292, 48)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 292, 76), Decl(generatedContextualTyping.ts, 292, 87)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 292, 76), Decl(generatedContextualTyping.ts, 292, 87)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x296: Genric = true ? { func: n => { return [d1, d2]; } } : { func: n => { return [d1, d2]; } }; +>x296 : Symbol(x296, Decl(generatedContextualTyping.ts, 293, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 293, 33)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 293, 39)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 293, 71)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 293, 77)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x297: () => Base[] = true ? undefined : () => [d1, d2]; +>x297 : Symbol(x297, Decl(generatedContextualTyping.ts, 294, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x298: () => Base[] = true ? undefined : function() { return [d1, d2] }; +>x298 : Symbol(x298, Decl(generatedContextualTyping.ts, 295, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x299: () => Base[] = true ? undefined : function named() { return [d1, d2] }; +>x299 : Symbol(x299, Decl(generatedContextualTyping.ts, 296, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 296, 43)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x300: { (): Base[]; } = true ? undefined : () => [d1, d2]; +>x300 : Symbol(x300, Decl(generatedContextualTyping.ts, 297, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x301: { (): Base[]; } = true ? undefined : function() { return [d1, d2] }; +>x301 : Symbol(x301, Decl(generatedContextualTyping.ts, 298, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x302: { (): Base[]; } = true ? undefined : function named() { return [d1, d2] }; +>x302 : Symbol(x302, Decl(generatedContextualTyping.ts, 299, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 299, 46)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x303: Base[] = true ? undefined : [d1, d2]; +>x303 : Symbol(x303, Decl(generatedContextualTyping.ts, 300, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x304: Array = true ? undefined : [d1, d2]; +>x304 : Symbol(x304, Decl(generatedContextualTyping.ts, 301, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x305: { [n: number]: Base; } = true ? undefined : [d1, d2]; +>x305 : Symbol(x305, Decl(generatedContextualTyping.ts, 302, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 302, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x306: {n: Base[]; } = true ? undefined : { n: [d1, d2] }; +>x306 : Symbol(x306, Decl(generatedContextualTyping.ts, 303, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 303, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 303, 47)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x307: (s: Base[]) => any = true ? undefined : n => { var n: Base[]; return null; }; +>x307 : Symbol(x307, Decl(generatedContextualTyping.ts, 304, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 304, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 304, 49), Decl(generatedContextualTyping.ts, 304, 60)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 304, 49), Decl(generatedContextualTyping.ts, 304, 60)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x308: Genric = true ? undefined : { func: n => { return [d1, d2]; } }; +>x308 : Symbol(x308, Decl(generatedContextualTyping.ts, 305, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 305, 45)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 305, 51)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x309: () => Base[] = true ? () => [d1, d2] : undefined; +>x309 : Symbol(x309, Decl(generatedContextualTyping.ts, 306, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x310: () => Base[] = true ? function() { return [d1, d2] } : undefined; +>x310 : Symbol(x310, Decl(generatedContextualTyping.ts, 307, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x311: () => Base[] = true ? function named() { return [d1, d2] } : undefined; +>x311 : Symbol(x311, Decl(generatedContextualTyping.ts, 308, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 308, 31)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x312: { (): Base[]; } = true ? () => [d1, d2] : undefined; +>x312 : Symbol(x312, Decl(generatedContextualTyping.ts, 309, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x313: { (): Base[]; } = true ? function() { return [d1, d2] } : undefined; +>x313 : Symbol(x313, Decl(generatedContextualTyping.ts, 310, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x314: { (): Base[]; } = true ? function named() { return [d1, d2] } : undefined; +>x314 : Symbol(x314, Decl(generatedContextualTyping.ts, 311, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 311, 34)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x315: Base[] = true ? [d1, d2] : undefined; +>x315 : Symbol(x315, Decl(generatedContextualTyping.ts, 312, 3)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x316: Array = true ? [d1, d2] : undefined; +>x316 : Symbol(x316, Decl(generatedContextualTyping.ts, 313, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x317: { [n: number]: Base; } = true ? [d1, d2] : undefined; +>x317 : Symbol(x317, Decl(generatedContextualTyping.ts, 314, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 314, 13)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x318: {n: Base[]; } = true ? { n: [d1, d2] } : undefined; +>x318 : Symbol(x318, Decl(generatedContextualTyping.ts, 315, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 315, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 315, 35)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +var x319: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : undefined; +>x319 : Symbol(x319, Decl(generatedContextualTyping.ts, 316, 3)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 316, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 316, 37), Decl(generatedContextualTyping.ts, 316, 48)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 316, 37), Decl(generatedContextualTyping.ts, 316, 48)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>undefined : Symbol(undefined) + +var x320: Genric = true ? { func: n => { return [d1, d2]; } } : undefined; +>x320 : Symbol(x320, Decl(generatedContextualTyping.ts, 317, 3)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 317, 33)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 317, 39)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>undefined : Symbol(undefined) + +function x321(n: () => Base[]) { }; x321(() => [d1, d2]); +>x321 : Symbol(x321, Decl(generatedContextualTyping.ts, 317, 80)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 318, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x321 : Symbol(x321, Decl(generatedContextualTyping.ts, 317, 80)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x322(n: () => Base[]) { }; x322(function() { return [d1, d2] }); +>x322 : Symbol(x322, Decl(generatedContextualTyping.ts, 318, 57)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 319, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x322 : Symbol(x322, Decl(generatedContextualTyping.ts, 318, 57)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x323(n: () => Base[]) { }; x323(function named() { return [d1, d2] }); +>x323 : Symbol(x323, Decl(generatedContextualTyping.ts, 319, 73)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 320, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x323 : Symbol(x323, Decl(generatedContextualTyping.ts, 319, 73)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 320, 41)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x324(n: { (): Base[]; }) { }; x324(() => [d1, d2]); +>x324 : Symbol(x324, Decl(generatedContextualTyping.ts, 320, 79)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 321, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x324 : Symbol(x324, Decl(generatedContextualTyping.ts, 320, 79)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x325(n: { (): Base[]; }) { }; x325(function() { return [d1, d2] }); +>x325 : Symbol(x325, Decl(generatedContextualTyping.ts, 321, 60)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 322, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x325 : Symbol(x325, Decl(generatedContextualTyping.ts, 321, 60)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x326(n: { (): Base[]; }) { }; x326(function named() { return [d1, d2] }); +>x326 : Symbol(x326, Decl(generatedContextualTyping.ts, 322, 76)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 323, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x326 : Symbol(x326, Decl(generatedContextualTyping.ts, 322, 76)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 323, 44)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x327(n: Base[]) { }; x327([d1, d2]); +>x327 : Symbol(x327, Decl(generatedContextualTyping.ts, 323, 82)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 324, 14)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x327 : Symbol(x327, Decl(generatedContextualTyping.ts, 323, 82)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x328(n: Array) { }; x328([d1, d2]); +>x328 : Symbol(x328, Decl(generatedContextualTyping.ts, 324, 45)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 325, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x328 : Symbol(x328, Decl(generatedContextualTyping.ts, 324, 45)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x329(n: { [n: number]: Base; }) { }; x329([d1, d2]); +>x329 : Symbol(x329, Decl(generatedContextualTyping.ts, 325, 50)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 326, 14)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 326, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x329 : Symbol(x329, Decl(generatedContextualTyping.ts, 325, 50)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x330(n: {n: Base[]; } ) { }; x330({ n: [d1, d2] }); +>x330 : Symbol(x330, Decl(generatedContextualTyping.ts, 326, 61)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 327, 14)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 327, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x330 : Symbol(x330, Decl(generatedContextualTyping.ts, 326, 61)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 327, 44)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +function x331(n: (s: Base[]) => any) { }; x331(n => { var n: Base[]; return null; }); +>x331 : Symbol(x331, Decl(generatedContextualTyping.ts, 327, 60)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 328, 14)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 328, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x331 : Symbol(x331, Decl(generatedContextualTyping.ts, 327, 60)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 328, 47), Decl(generatedContextualTyping.ts, 328, 57)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 328, 47), Decl(generatedContextualTyping.ts, 328, 57)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +function x332(n: Genric) { }; x332({ func: n => { return [d1, d2]; } }); +>x332 : Symbol(x332, Decl(generatedContextualTyping.ts, 328, 85)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 329, 14)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x332 : Symbol(x332, Decl(generatedContextualTyping.ts, 328, 85)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 329, 42)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 329, 48)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x333 = (n: () => Base[]) => n; x333(() => [d1, d2]); +>x333 : Symbol(x333, Decl(generatedContextualTyping.ts, 330, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 330, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 330, 12)) +>x333 : Symbol(x333, Decl(generatedContextualTyping.ts, 330, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x334 = (n: () => Base[]) => n; x334(function() { return [d1, d2] }); +>x334 : Symbol(x334, Decl(generatedContextualTyping.ts, 331, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 331, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 331, 12)) +>x334 : Symbol(x334, Decl(generatedContextualTyping.ts, 331, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x335 = (n: () => Base[]) => n; x335(function named() { return [d1, d2] }); +>x335 : Symbol(x335, Decl(generatedContextualTyping.ts, 332, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 332, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 332, 12)) +>x335 : Symbol(x335, Decl(generatedContextualTyping.ts, 332, 3)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 332, 40)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x336 = (n: { (): Base[]; }) => n; x336(() => [d1, d2]); +>x336 : Symbol(x336, Decl(generatedContextualTyping.ts, 333, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 333, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 333, 12)) +>x336 : Symbol(x336, Decl(generatedContextualTyping.ts, 333, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x337 = (n: { (): Base[]; }) => n; x337(function() { return [d1, d2] }); +>x337 : Symbol(x337, Decl(generatedContextualTyping.ts, 334, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 334, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 334, 12)) +>x337 : Symbol(x337, Decl(generatedContextualTyping.ts, 334, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x338 = (n: { (): Base[]; }) => n; x338(function named() { return [d1, d2] }); +>x338 : Symbol(x338, Decl(generatedContextualTyping.ts, 335, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 335, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 335, 12)) +>x338 : Symbol(x338, Decl(generatedContextualTyping.ts, 335, 3)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 335, 43)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x339 = (n: Base[]) => n; x339([d1, d2]); +>x339 : Symbol(x339, Decl(generatedContextualTyping.ts, 336, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 336, 12)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 336, 12)) +>x339 : Symbol(x339, Decl(generatedContextualTyping.ts, 336, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x340 = (n: Array) => n; x340([d1, d2]); +>x340 : Symbol(x340, Decl(generatedContextualTyping.ts, 337, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 337, 12)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 337, 12)) +>x340 : Symbol(x340, Decl(generatedContextualTyping.ts, 337, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x341 = (n: { [n: number]: Base; }) => n; x341([d1, d2]); +>x341 : Symbol(x341, Decl(generatedContextualTyping.ts, 338, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 338, 12)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 338, 18)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 338, 12)) +>x341 : Symbol(x341, Decl(generatedContextualTyping.ts, 338, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x342 = (n: {n: Base[]; } ) => n; x342({ n: [d1, d2] }); +>x342 : Symbol(x342, Decl(generatedContextualTyping.ts, 339, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 339, 12)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 339, 16)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 339, 12)) +>x342 : Symbol(x342, Decl(generatedContextualTyping.ts, 339, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 339, 43)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x343 = (n: (s: Base[]) => any) => n; x343(n => { var n: Base[]; return null; }); +>x343 : Symbol(x343, Decl(generatedContextualTyping.ts, 340, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 340, 12)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 340, 16)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 340, 12)) +>x343 : Symbol(x343, Decl(generatedContextualTyping.ts, 340, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 340, 46), Decl(generatedContextualTyping.ts, 340, 56)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 340, 46), Decl(generatedContextualTyping.ts, 340, 56)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x344 = (n: Genric) => n; x344({ func: n => { return [d1, d2]; } }); +>x344 : Symbol(x344, Decl(generatedContextualTyping.ts, 341, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 341, 12)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 341, 12)) +>x344 : Symbol(x344, Decl(generatedContextualTyping.ts, 341, 3)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 341, 41)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 341, 47)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x345 = function(n: () => Base[]) { }; x345(() => [d1, d2]); +>x345 : Symbol(x345, Decl(generatedContextualTyping.ts, 342, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 342, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x345 : Symbol(x345, Decl(generatedContextualTyping.ts, 342, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x346 = function(n: () => Base[]) { }; x346(function() { return [d1, d2] }); +>x346 : Symbol(x346, Decl(generatedContextualTyping.ts, 343, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 343, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x346 : Symbol(x346, Decl(generatedContextualTyping.ts, 343, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x347 = function(n: () => Base[]) { }; x347(function named() { return [d1, d2] }); +>x347 : Symbol(x347, Decl(generatedContextualTyping.ts, 344, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 344, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x347 : Symbol(x347, Decl(generatedContextualTyping.ts, 344, 3)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 344, 47)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x348 = function(n: { (): Base[]; }) { }; x348(() => [d1, d2]); +>x348 : Symbol(x348, Decl(generatedContextualTyping.ts, 345, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 345, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x348 : Symbol(x348, Decl(generatedContextualTyping.ts, 345, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x349 = function(n: { (): Base[]; }) { }; x349(function() { return [d1, d2] }); +>x349 : Symbol(x349, Decl(generatedContextualTyping.ts, 346, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 346, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x349 : Symbol(x349, Decl(generatedContextualTyping.ts, 346, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x350 = function(n: { (): Base[]; }) { }; x350(function named() { return [d1, d2] }); +>x350 : Symbol(x350, Decl(generatedContextualTyping.ts, 347, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 347, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x350 : Symbol(x350, Decl(generatedContextualTyping.ts, 347, 3)) +>named : Symbol(named, Decl(generatedContextualTyping.ts, 347, 50)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x351 = function(n: Base[]) { }; x351([d1, d2]); +>x351 : Symbol(x351, Decl(generatedContextualTyping.ts, 348, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 348, 20)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x351 : Symbol(x351, Decl(generatedContextualTyping.ts, 348, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x352 = function(n: Array) { }; x352([d1, d2]); +>x352 : Symbol(x352, Decl(generatedContextualTyping.ts, 349, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 349, 20)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x352 : Symbol(x352, Decl(generatedContextualTyping.ts, 349, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x353 = function(n: { [n: number]: Base; }) { }; x353([d1, d2]); +>x353 : Symbol(x353, Decl(generatedContextualTyping.ts, 350, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 350, 20)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 350, 26)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x353 : Symbol(x353, Decl(generatedContextualTyping.ts, 350, 3)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x354 = function(n: {n: Base[]; } ) { }; x354({ n: [d1, d2] }); +>x354 : Symbol(x354, Decl(generatedContextualTyping.ts, 351, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 351, 20)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 351, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x354 : Symbol(x354, Decl(generatedContextualTyping.ts, 351, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 351, 50)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + +var x355 = function(n: (s: Base[]) => any) { }; x355(n => { var n: Base[]; return null; }); +>x355 : Symbol(x355, Decl(generatedContextualTyping.ts, 352, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 352, 20)) +>s : Symbol(s, Decl(generatedContextualTyping.ts, 352, 24)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x355 : Symbol(x355, Decl(generatedContextualTyping.ts, 352, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 352, 53), Decl(generatedContextualTyping.ts, 352, 63)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 352, 53), Decl(generatedContextualTyping.ts, 352, 63)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) + +var x356 = function(n: Genric) { }; x356({ func: n => { return [d1, d2]; } }); +>x356 : Symbol(x356, Decl(generatedContextualTyping.ts, 353, 3)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 353, 20)) +>Genric : Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) +>Base : Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x356 : Symbol(x356, Decl(generatedContextualTyping.ts, 353, 3)) +>func : Symbol(func, Decl(generatedContextualTyping.ts, 353, 48)) +>n : Symbol(n, Decl(generatedContextualTyping.ts, 353, 54)) +>d1 : Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>d2 : Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) + diff --git a/tests/baselines/reference/generatedContextualTyping.types b/tests/baselines/reference/generatedContextualTyping.types index fbbd5bf7645c5..e8f434d31a88c 100644 --- a/tests/baselines/reference/generatedContextualTyping.types +++ b/tests/baselines/reference/generatedContextualTyping.types @@ -1,3768 +1,3768 @@ === tests/cases/conformance/expressions/contextualTyping/generatedContextualTyping.ts === class Base { private p; } ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->p : any, Symbol(p, Decl(generatedContextualTyping.ts, 0, 12)) +>Base : Base +>p : any class Derived1 extends Base { private m; } ->Derived1 : Derived1, Symbol(Derived1, Decl(generatedContextualTyping.ts, 0, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->m : any, Symbol(m, Decl(generatedContextualTyping.ts, 1, 29)) +>Derived1 : Derived1 +>Base : Base +>m : any class Derived2 extends Base { private n; } ->Derived2 : Derived2, Symbol(Derived2, Decl(generatedContextualTyping.ts, 1, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : any, Symbol(n, Decl(generatedContextualTyping.ts, 2, 29)) +>Derived2 : Derived2 +>Base : Base +>n : any interface Genric { func(n: T[]); } ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->T : T, Symbol(T, Decl(generatedContextualTyping.ts, 3, 17)) ->func : (n: T[]) => any, Symbol(func, Decl(generatedContextualTyping.ts, 3, 21)) ->n : T[], Symbol(n, Decl(generatedContextualTyping.ts, 3, 27)) ->T : T, Symbol(T, Decl(generatedContextualTyping.ts, 3, 17)) +>Genric : Genric +>T : T +>func : (n: T[]) => any +>n : T[] +>T : T var b = new Base(), d1 = new Derived1(), d2 = new Derived2(); ->b : Base, Symbol(b, Decl(generatedContextualTyping.ts, 4, 3)) +>b : Base >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) +>Base : typeof Base +>d1 : Derived1 >new Derived1() : Derived1 ->Derived1 : typeof Derived1, Symbol(Derived1, Decl(generatedContextualTyping.ts, 0, 25)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>Derived1 : typeof Derived1 +>d2 : Derived2 >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(generatedContextualTyping.ts, 1, 42)) +>Derived2 : typeof Derived2 var x1: () => Base[] = () => [d1, d2]; ->x1 : () => Base[], Symbol(x1, Decl(generatedContextualTyping.ts, 5, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x1 : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x2: () => Base[] = function() { return [d1, d2] }; ->x2 : () => Base[], Symbol(x2, Decl(generatedContextualTyping.ts, 6, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x2 : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x3: () => Base[] = function named() { return [d1, d2] }; ->x3 : () => Base[], Symbol(x3, Decl(generatedContextualTyping.ts, 7, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x3 : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 7, 22)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x4: { (): Base[]; } = () => [d1, d2]; ->x4 : () => Base[], Symbol(x4, Decl(generatedContextualTyping.ts, 8, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x4 : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x5: { (): Base[]; } = function() { return [d1, d2] }; ->x5 : () => Base[], Symbol(x5, Decl(generatedContextualTyping.ts, 9, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x5 : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x6: { (): Base[]; } = function named() { return [d1, d2] }; ->x6 : () => Base[], Symbol(x6, Decl(generatedContextualTyping.ts, 10, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x6 : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 10, 25)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x7: Base[] = [d1, d2]; ->x7 : Base[], Symbol(x7, Decl(generatedContextualTyping.ts, 11, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x7 : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x8: Array = [d1, d2]; ->x8 : Base[], Symbol(x8, Decl(generatedContextualTyping.ts, 12, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x8 : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x9: { [n: number]: Base; } = [d1, d2]; ->x9 : { [n: number]: Base; }, Symbol(x9, Decl(generatedContextualTyping.ts, 13, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 13, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x9 : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x10: {n: Base[]; } = { n: [d1, d2] }; ->x10 : { n: Base[]; }, Symbol(x10, Decl(generatedContextualTyping.ts, 14, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 14, 10)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x10 : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 14, 27)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x11: (s: Base[]) => any = n => { var n: Base[]; return null; }; ->x11 : (s: Base[]) => any, Symbol(x11, Decl(generatedContextualTyping.ts, 15, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 15, 10)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x11 : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 15, 29), Decl(generatedContextualTyping.ts, 15, 40)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 15, 29), Decl(generatedContextualTyping.ts, 15, 40)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x12: Genric = { func: n => { return [d1, d2]; } }; ->x12 : Genric, Symbol(x12, Decl(generatedContextualTyping.ts, 16, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x12 : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 16, 25)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 16, 31)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x13 { member: () => Base[] = () => [d1, d2] } ->x13 : x13, Symbol(x13, Decl(generatedContextualTyping.ts, 16, 60)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 17, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x13 : x13 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x14 { member: () => Base[] = function() { return [d1, d2] } } ->x14 : x14, Symbol(x14, Decl(generatedContextualTyping.ts, 17, 51)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 18, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x14 : x14 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x15 { member: () => Base[] = function named() { return [d1, d2] } } ->x15 : x15, Symbol(x15, Decl(generatedContextualTyping.ts, 18, 67)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 19, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x15 : x15 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 19, 34)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x16 { member: { (): Base[]; } = () => [d1, d2] } ->x16 : x16, Symbol(x16, Decl(generatedContextualTyping.ts, 19, 73)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 20, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x16 : x16 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x17 { member: { (): Base[]; } = function() { return [d1, d2] } } ->x17 : x17, Symbol(x17, Decl(generatedContextualTyping.ts, 20, 54)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 21, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x17 : x17 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x18 { member: { (): Base[]; } = function named() { return [d1, d2] } } ->x18 : x18, Symbol(x18, Decl(generatedContextualTyping.ts, 21, 70)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 22, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x18 : x18 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 22, 37)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x19 { member: Base[] = [d1, d2] } ->x19 : x19, Symbol(x19, Decl(generatedContextualTyping.ts, 22, 76)) ->member : Base[], Symbol(member, Decl(generatedContextualTyping.ts, 23, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x19 : x19 +>member : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x20 { member: Array = [d1, d2] } ->x20 : x20, Symbol(x20, Decl(generatedContextualTyping.ts, 23, 39)) ->member : Base[], Symbol(member, Decl(generatedContextualTyping.ts, 24, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x20 : x20 +>member : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x21 { member: { [n: number]: Base; } = [d1, d2] } ->x21 : x21, Symbol(x21, Decl(generatedContextualTyping.ts, 24, 44)) ->member : { [n: number]: Base; }, Symbol(member, Decl(generatedContextualTyping.ts, 25, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 25, 23)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x21 : x21 +>member : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x22 { member: {n: Base[]; } = { n: [d1, d2] } } ->x22 : x22, Symbol(x22, Decl(generatedContextualTyping.ts, 25, 55)) ->member : { n: Base[]; }, Symbol(member, Decl(generatedContextualTyping.ts, 26, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 26, 21)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x22 : x22 +>member : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 26, 38)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x23 { member: (s: Base[]) => any = n => { var n: Base[]; return null; } } ->x23 : x23, Symbol(x23, Decl(generatedContextualTyping.ts, 26, 54)) ->member : (s: Base[]) => any, Symbol(member, Decl(generatedContextualTyping.ts, 27, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 27, 21)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x23 : x23 +>member : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 27, 40), Decl(generatedContextualTyping.ts, 27, 51)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 27, 40), Decl(generatedContextualTyping.ts, 27, 51)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x24 { member: Genric = { func: n => { return [d1, d2]; } } } ->x24 : x24, Symbol(x24, Decl(generatedContextualTyping.ts, 27, 79)) ->member : Genric, Symbol(member, Decl(generatedContextualTyping.ts, 28, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x24 : x24 +>member : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 28, 36)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 28, 42)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x25 { private member: () => Base[] = () => [d1, d2] } ->x25 : x25, Symbol(x25, Decl(generatedContextualTyping.ts, 28, 72)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 29, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x25 : x25 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x26 { private member: () => Base[] = function() { return [d1, d2] } } ->x26 : x26, Symbol(x26, Decl(generatedContextualTyping.ts, 29, 59)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 30, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x26 : x26 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x27 { private member: () => Base[] = function named() { return [d1, d2] } } ->x27 : x27, Symbol(x27, Decl(generatedContextualTyping.ts, 30, 75)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 31, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x27 : x27 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 31, 42)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x28 { private member: { (): Base[]; } = () => [d1, d2] } ->x28 : x28, Symbol(x28, Decl(generatedContextualTyping.ts, 31, 81)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 32, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x28 : x28 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x29 { private member: { (): Base[]; } = function() { return [d1, d2] } } ->x29 : x29, Symbol(x29, Decl(generatedContextualTyping.ts, 32, 62)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 33, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x29 : x29 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x30 { private member: { (): Base[]; } = function named() { return [d1, d2] } } ->x30 : x30, Symbol(x30, Decl(generatedContextualTyping.ts, 33, 78)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 34, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x30 : x30 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 34, 45)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x31 { private member: Base[] = [d1, d2] } ->x31 : x31, Symbol(x31, Decl(generatedContextualTyping.ts, 34, 84)) ->member : Base[], Symbol(member, Decl(generatedContextualTyping.ts, 35, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x31 : x31 +>member : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x32 { private member: Array = [d1, d2] } ->x32 : x32, Symbol(x32, Decl(generatedContextualTyping.ts, 35, 47)) ->member : Base[], Symbol(member, Decl(generatedContextualTyping.ts, 36, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x32 : x32 +>member : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x33 { private member: { [n: number]: Base; } = [d1, d2] } ->x33 : x33, Symbol(x33, Decl(generatedContextualTyping.ts, 36, 52)) ->member : { [n: number]: Base; }, Symbol(member, Decl(generatedContextualTyping.ts, 37, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 37, 31)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x33 : x33 +>member : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x34 { private member: {n: Base[]; } = { n: [d1, d2] } } ->x34 : x34, Symbol(x34, Decl(generatedContextualTyping.ts, 37, 63)) ->member : { n: Base[]; }, Symbol(member, Decl(generatedContextualTyping.ts, 38, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 38, 29)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x34 : x34 +>member : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 38, 46)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x35 { private member: (s: Base[]) => any = n => { var n: Base[]; return null; } } ->x35 : x35, Symbol(x35, Decl(generatedContextualTyping.ts, 38, 62)) ->member : (s: Base[]) => any, Symbol(member, Decl(generatedContextualTyping.ts, 39, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 39, 29)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x35 : x35 +>member : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 39, 48), Decl(generatedContextualTyping.ts, 39, 59)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 39, 48), Decl(generatedContextualTyping.ts, 39, 59)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x36 { private member: Genric = { func: n => { return [d1, d2]; } } } ->x36 : x36, Symbol(x36, Decl(generatedContextualTyping.ts, 39, 87)) ->member : Genric, Symbol(member, Decl(generatedContextualTyping.ts, 40, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x36 : x36 +>member : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 40, 44)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 40, 50)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x37 { public member: () => Base[] = () => [d1, d2] } ->x37 : x37, Symbol(x37, Decl(generatedContextualTyping.ts, 40, 80)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 41, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x37 : x37 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x38 { public member: () => Base[] = function() { return [d1, d2] } } ->x38 : x38, Symbol(x38, Decl(generatedContextualTyping.ts, 41, 58)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 42, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x38 : x38 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x39 { public member: () => Base[] = function named() { return [d1, d2] } } ->x39 : x39, Symbol(x39, Decl(generatedContextualTyping.ts, 42, 74)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 43, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x39 : x39 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 43, 41)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x40 { public member: { (): Base[]; } = () => [d1, d2] } ->x40 : x40, Symbol(x40, Decl(generatedContextualTyping.ts, 43, 80)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 44, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x40 : x40 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x41 { public member: { (): Base[]; } = function() { return [d1, d2] } } ->x41 : x41, Symbol(x41, Decl(generatedContextualTyping.ts, 44, 61)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 45, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x41 : x41 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x42 { public member: { (): Base[]; } = function named() { return [d1, d2] } } ->x42 : x42, Symbol(x42, Decl(generatedContextualTyping.ts, 45, 77)) ->member : () => Base[], Symbol(member, Decl(generatedContextualTyping.ts, 46, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x42 : x42 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 46, 44)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x43 { public member: Base[] = [d1, d2] } ->x43 : x43, Symbol(x43, Decl(generatedContextualTyping.ts, 46, 83)) ->member : Base[], Symbol(member, Decl(generatedContextualTyping.ts, 47, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x43 : x43 +>member : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x44 { public member: Array = [d1, d2] } ->x44 : x44, Symbol(x44, Decl(generatedContextualTyping.ts, 47, 46)) ->member : Base[], Symbol(member, Decl(generatedContextualTyping.ts, 48, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x44 : x44 +>member : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x45 { public member: { [n: number]: Base; } = [d1, d2] } ->x45 : x45, Symbol(x45, Decl(generatedContextualTyping.ts, 48, 51)) ->member : { [n: number]: Base; }, Symbol(member, Decl(generatedContextualTyping.ts, 49, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 49, 30)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x45 : x45 +>member : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x46 { public member: {n: Base[]; } = { n: [d1, d2] } } ->x46 : x46, Symbol(x46, Decl(generatedContextualTyping.ts, 49, 62)) ->member : { n: Base[]; }, Symbol(member, Decl(generatedContextualTyping.ts, 50, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 50, 28)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x46 : x46 +>member : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 50, 45)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x47 { public member: (s: Base[]) => any = n => { var n: Base[]; return null; } } ->x47 : x47, Symbol(x47, Decl(generatedContextualTyping.ts, 50, 61)) ->member : (s: Base[]) => any, Symbol(member, Decl(generatedContextualTyping.ts, 51, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 51, 28)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x47 : x47 +>member : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 51, 47), Decl(generatedContextualTyping.ts, 51, 58)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 51, 47), Decl(generatedContextualTyping.ts, 51, 58)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x48 { public member: Genric = { func: n => { return [d1, d2]; } } } ->x48 : x48, Symbol(x48, Decl(generatedContextualTyping.ts, 51, 86)) ->member : Genric, Symbol(member, Decl(generatedContextualTyping.ts, 52, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x48 : x48 +>member : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 52, 43)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 52, 49)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x49 { static member: () => Base[] = () => [d1, d2] } ->x49 : x49, Symbol(x49, Decl(generatedContextualTyping.ts, 52, 79)) ->member : () => Base[], Symbol(x49.member, Decl(generatedContextualTyping.ts, 53, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x49 : x49 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x50 { static member: () => Base[] = function() { return [d1, d2] } } ->x50 : x50, Symbol(x50, Decl(generatedContextualTyping.ts, 53, 58)) ->member : () => Base[], Symbol(x50.member, Decl(generatedContextualTyping.ts, 54, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x50 : x50 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x51 { static member: () => Base[] = function named() { return [d1, d2] } } ->x51 : x51, Symbol(x51, Decl(generatedContextualTyping.ts, 54, 74)) ->member : () => Base[], Symbol(x51.member, Decl(generatedContextualTyping.ts, 55, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x51 : x51 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 55, 41)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x52 { static member: { (): Base[]; } = () => [d1, d2] } ->x52 : x52, Symbol(x52, Decl(generatedContextualTyping.ts, 55, 80)) ->member : () => Base[], Symbol(x52.member, Decl(generatedContextualTyping.ts, 56, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x52 : x52 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x53 { static member: { (): Base[]; } = function() { return [d1, d2] } } ->x53 : x53, Symbol(x53, Decl(generatedContextualTyping.ts, 56, 61)) ->member : () => Base[], Symbol(x53.member, Decl(generatedContextualTyping.ts, 57, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x53 : x53 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x54 { static member: { (): Base[]; } = function named() { return [d1, d2] } } ->x54 : x54, Symbol(x54, Decl(generatedContextualTyping.ts, 57, 77)) ->member : () => Base[], Symbol(x54.member, Decl(generatedContextualTyping.ts, 58, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x54 : x54 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 58, 44)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x55 { static member: Base[] = [d1, d2] } ->x55 : x55, Symbol(x55, Decl(generatedContextualTyping.ts, 58, 83)) ->member : Base[], Symbol(x55.member, Decl(generatedContextualTyping.ts, 59, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x55 : x55 +>member : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x56 { static member: Array = [d1, d2] } ->x56 : x56, Symbol(x56, Decl(generatedContextualTyping.ts, 59, 46)) ->member : Base[], Symbol(x56.member, Decl(generatedContextualTyping.ts, 60, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x56 : x56 +>member : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x57 { static member: { [n: number]: Base; } = [d1, d2] } ->x57 : x57, Symbol(x57, Decl(generatedContextualTyping.ts, 60, 51)) ->member : { [n: number]: Base; }, Symbol(x57.member, Decl(generatedContextualTyping.ts, 61, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 61, 30)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x57 : x57 +>member : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x58 { static member: {n: Base[]; } = { n: [d1, d2] } } ->x58 : x58, Symbol(x58, Decl(generatedContextualTyping.ts, 61, 62)) ->member : { n: Base[]; }, Symbol(x58.member, Decl(generatedContextualTyping.ts, 62, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 62, 28)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x58 : x58 +>member : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 62, 45)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x59 { static member: (s: Base[]) => any = n => { var n: Base[]; return null; } } ->x59 : x59, Symbol(x59, Decl(generatedContextualTyping.ts, 62, 61)) ->member : (s: Base[]) => any, Symbol(x59.member, Decl(generatedContextualTyping.ts, 63, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 63, 28)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x59 : x59 +>member : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 63, 47), Decl(generatedContextualTyping.ts, 63, 58)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 63, 47), Decl(generatedContextualTyping.ts, 63, 58)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x60 { static member: Genric = { func: n => { return [d1, d2]; } } } ->x60 : x60, Symbol(x60, Decl(generatedContextualTyping.ts, 63, 86)) ->member : Genric, Symbol(x60.member, Decl(generatedContextualTyping.ts, 64, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x60 : x60 +>member : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 64, 43)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 64, 49)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x61 { private static member: () => Base[] = () => [d1, d2] } ->x61 : x61, Symbol(x61, Decl(generatedContextualTyping.ts, 64, 79)) ->member : () => Base[], Symbol(x61.member, Decl(generatedContextualTyping.ts, 65, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x61 : x61 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x62 { private static member: () => Base[] = function() { return [d1, d2] } } ->x62 : x62, Symbol(x62, Decl(generatedContextualTyping.ts, 65, 66)) ->member : () => Base[], Symbol(x62.member, Decl(generatedContextualTyping.ts, 66, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x62 : x62 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x63 { private static member: () => Base[] = function named() { return [d1, d2] } } ->x63 : x63, Symbol(x63, Decl(generatedContextualTyping.ts, 66, 82)) ->member : () => Base[], Symbol(x63.member, Decl(generatedContextualTyping.ts, 67, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x63 : x63 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 67, 49)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x64 { private static member: { (): Base[]; } = () => [d1, d2] } ->x64 : x64, Symbol(x64, Decl(generatedContextualTyping.ts, 67, 88)) ->member : () => Base[], Symbol(x64.member, Decl(generatedContextualTyping.ts, 68, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x64 : x64 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x65 { private static member: { (): Base[]; } = function() { return [d1, d2] } } ->x65 : x65, Symbol(x65, Decl(generatedContextualTyping.ts, 68, 69)) ->member : () => Base[], Symbol(x65.member, Decl(generatedContextualTyping.ts, 69, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x65 : x65 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x66 { private static member: { (): Base[]; } = function named() { return [d1, d2] } } ->x66 : x66, Symbol(x66, Decl(generatedContextualTyping.ts, 69, 85)) ->member : () => Base[], Symbol(x66.member, Decl(generatedContextualTyping.ts, 70, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x66 : x66 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 70, 52)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x67 { private static member: Base[] = [d1, d2] } ->x67 : x67, Symbol(x67, Decl(generatedContextualTyping.ts, 70, 91)) ->member : Base[], Symbol(x67.member, Decl(generatedContextualTyping.ts, 71, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x67 : x67 +>member : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x68 { private static member: Array = [d1, d2] } ->x68 : x68, Symbol(x68, Decl(generatedContextualTyping.ts, 71, 54)) ->member : Base[], Symbol(x68.member, Decl(generatedContextualTyping.ts, 72, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x68 : x68 +>member : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x69 { private static member: { [n: number]: Base; } = [d1, d2] } ->x69 : x69, Symbol(x69, Decl(generatedContextualTyping.ts, 72, 59)) ->member : { [n: number]: Base; }, Symbol(x69.member, Decl(generatedContextualTyping.ts, 73, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 73, 38)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x69 : x69 +>member : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x70 { private static member: {n: Base[]; } = { n: [d1, d2] } } ->x70 : x70, Symbol(x70, Decl(generatedContextualTyping.ts, 73, 70)) ->member : { n: Base[]; }, Symbol(x70.member, Decl(generatedContextualTyping.ts, 74, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 74, 36)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x70 : x70 +>member : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 74, 53)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x71 { private static member: (s: Base[]) => any = n => { var n: Base[]; return null; } } ->x71 : x71, Symbol(x71, Decl(generatedContextualTyping.ts, 74, 69)) ->member : (s: Base[]) => any, Symbol(x71.member, Decl(generatedContextualTyping.ts, 75, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 75, 36)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x71 : x71 +>member : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 75, 55), Decl(generatedContextualTyping.ts, 75, 66)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 75, 55), Decl(generatedContextualTyping.ts, 75, 66)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x72 { private static member: Genric = { func: n => { return [d1, d2]; } } } ->x72 : x72, Symbol(x72, Decl(generatedContextualTyping.ts, 75, 94)) ->member : Genric, Symbol(x72.member, Decl(generatedContextualTyping.ts, 76, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x72 : x72 +>member : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 76, 51)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 76, 57)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x73 { public static member: () => Base[] = () => [d1, d2] } ->x73 : x73, Symbol(x73, Decl(generatedContextualTyping.ts, 76, 87)) ->member : () => Base[], Symbol(x73.member, Decl(generatedContextualTyping.ts, 77, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x73 : x73 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x74 { public static member: () => Base[] = function() { return [d1, d2] } } ->x74 : x74, Symbol(x74, Decl(generatedContextualTyping.ts, 77, 65)) ->member : () => Base[], Symbol(x74.member, Decl(generatedContextualTyping.ts, 78, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x74 : x74 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x75 { public static member: () => Base[] = function named() { return [d1, d2] } } ->x75 : x75, Symbol(x75, Decl(generatedContextualTyping.ts, 78, 81)) ->member : () => Base[], Symbol(x75.member, Decl(generatedContextualTyping.ts, 79, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x75 : x75 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 79, 48)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x76 { public static member: { (): Base[]; } = () => [d1, d2] } ->x76 : x76, Symbol(x76, Decl(generatedContextualTyping.ts, 79, 87)) ->member : () => Base[], Symbol(x76.member, Decl(generatedContextualTyping.ts, 80, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x76 : x76 +>member : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x77 { public static member: { (): Base[]; } = function() { return [d1, d2] } } ->x77 : x77, Symbol(x77, Decl(generatedContextualTyping.ts, 80, 68)) ->member : () => Base[], Symbol(x77.member, Decl(generatedContextualTyping.ts, 81, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x77 : x77 +>member : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x78 { public static member: { (): Base[]; } = function named() { return [d1, d2] } } ->x78 : x78, Symbol(x78, Decl(generatedContextualTyping.ts, 81, 84)) ->member : () => Base[], Symbol(x78.member, Decl(generatedContextualTyping.ts, 82, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x78 : x78 +>member : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 82, 51)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x79 { public static member: Base[] = [d1, d2] } ->x79 : x79, Symbol(x79, Decl(generatedContextualTyping.ts, 82, 90)) ->member : Base[], Symbol(x79.member, Decl(generatedContextualTyping.ts, 83, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x79 : x79 +>member : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x80 { public static member: Array = [d1, d2] } ->x80 : x80, Symbol(x80, Decl(generatedContextualTyping.ts, 83, 53)) ->member : Base[], Symbol(x80.member, Decl(generatedContextualTyping.ts, 84, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x80 : x80 +>member : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x81 { public static member: { [n: number]: Base; } = [d1, d2] } ->x81 : x81, Symbol(x81, Decl(generatedContextualTyping.ts, 84, 58)) ->member : { [n: number]: Base; }, Symbol(x81.member, Decl(generatedContextualTyping.ts, 85, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 85, 37)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x81 : x81 +>member : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x82 { public static member: {n: Base[]; } = { n: [d1, d2] } } ->x82 : x82, Symbol(x82, Decl(generatedContextualTyping.ts, 85, 69)) ->member : { n: Base[]; }, Symbol(x82.member, Decl(generatedContextualTyping.ts, 86, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 86, 35)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x82 : x82 +>member : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 86, 52)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x83 { public static member: (s: Base[]) => any = n => { var n: Base[]; return null; } } ->x83 : x83, Symbol(x83, Decl(generatedContextualTyping.ts, 86, 68)) ->member : (s: Base[]) => any, Symbol(x83.member, Decl(generatedContextualTyping.ts, 87, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 87, 35)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x83 : x83 +>member : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 87, 54), Decl(generatedContextualTyping.ts, 87, 65)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 87, 54), Decl(generatedContextualTyping.ts, 87, 65)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x84 { public static member: Genric = { func: n => { return [d1, d2]; } } } ->x84 : x84, Symbol(x84, Decl(generatedContextualTyping.ts, 87, 93)) ->member : Genric, Symbol(x84.member, Decl(generatedContextualTyping.ts, 88, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x84 : x84 +>member : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 88, 50)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 88, 56)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x85 { constructor(parm: () => Base[] = () => [d1, d2]) { } } ->x85 : x85, Symbol(x85, Decl(generatedContextualTyping.ts, 88, 86)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 89, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x85 : x85 +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x86 { constructor(parm: () => Base[] = function() { return [d1, d2] }) { } } ->x86 : x86, Symbol(x86, Decl(generatedContextualTyping.ts, 89, 66)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 90, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x86 : x86 +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x87 { constructor(parm: () => Base[] = function named() { return [d1, d2] }) { } } ->x87 : x87, Symbol(x87, Decl(generatedContextualTyping.ts, 90, 82)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 91, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x87 : x87 +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 91, 44)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x88 { constructor(parm: { (): Base[]; } = () => [d1, d2]) { } } ->x88 : x88, Symbol(x88, Decl(generatedContextualTyping.ts, 91, 88)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 92, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x88 : x88 +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x89 { constructor(parm: { (): Base[]; } = function() { return [d1, d2] }) { } } ->x89 : x89, Symbol(x89, Decl(generatedContextualTyping.ts, 92, 69)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 93, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x89 : x89 +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x90 { constructor(parm: { (): Base[]; } = function named() { return [d1, d2] }) { } } ->x90 : x90, Symbol(x90, Decl(generatedContextualTyping.ts, 93, 85)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 94, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x90 : x90 +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 94, 47)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x91 { constructor(parm: Base[] = [d1, d2]) { } } ->x91 : x91, Symbol(x91, Decl(generatedContextualTyping.ts, 94, 91)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 95, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x91 : x91 +>parm : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x92 { constructor(parm: Array = [d1, d2]) { } } ->x92 : x92, Symbol(x92, Decl(generatedContextualTyping.ts, 95, 54)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 96, 24)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x92 : x92 +>parm : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x93 { constructor(parm: { [n: number]: Base; } = [d1, d2]) { } } ->x93 : x93, Symbol(x93, Decl(generatedContextualTyping.ts, 96, 59)) ->parm : { [n: number]: Base; }, Symbol(parm, Decl(generatedContextualTyping.ts, 97, 24)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 97, 33)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x93 : x93 +>parm : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x94 { constructor(parm: {n: Base[]; } = { n: [d1, d2] }) { } } ->x94 : x94, Symbol(x94, Decl(generatedContextualTyping.ts, 97, 70)) ->parm : { n: Base[]; }, Symbol(parm, Decl(generatedContextualTyping.ts, 98, 24)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 98, 31)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x94 : x94 +>parm : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 98, 48)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x95 { constructor(parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } } ->x95 : x95, Symbol(x95, Decl(generatedContextualTyping.ts, 98, 69)) ->parm : (s: Base[]) => any, Symbol(parm, Decl(generatedContextualTyping.ts, 99, 24)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 99, 31)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x95 : x95 +>parm : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 99, 50), Decl(generatedContextualTyping.ts, 99, 61)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 99, 50), Decl(generatedContextualTyping.ts, 99, 61)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x96 { constructor(parm: Genric = { func: n => { return [d1, d2]; } }) { } } ->x96 : x96, Symbol(x96, Decl(generatedContextualTyping.ts, 99, 94)) ->parm : Genric, Symbol(parm, Decl(generatedContextualTyping.ts, 100, 24)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x96 : x96 +>parm : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 100, 46)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 100, 52)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x97 { constructor(public parm: () => Base[] = () => [d1, d2]) { } } ->x97 : x97, Symbol(x97, Decl(generatedContextualTyping.ts, 100, 87)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 101, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x97 : x97 +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x98 { constructor(public parm: () => Base[] = function() { return [d1, d2] }) { } } ->x98 : x98, Symbol(x98, Decl(generatedContextualTyping.ts, 101, 73)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 102, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x98 : x98 +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x99 { constructor(public parm: () => Base[] = function named() { return [d1, d2] }) { } } ->x99 : x99, Symbol(x99, Decl(generatedContextualTyping.ts, 102, 89)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 103, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x99 : x99 +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 103, 51)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x100 { constructor(public parm: { (): Base[]; } = () => [d1, d2]) { } } ->x100 : x100, Symbol(x100, Decl(generatedContextualTyping.ts, 103, 95)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 104, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x100 : x100 +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x101 { constructor(public parm: { (): Base[]; } = function() { return [d1, d2] }) { } } ->x101 : x101, Symbol(x101, Decl(generatedContextualTyping.ts, 104, 77)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 105, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x101 : x101 +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x102 { constructor(public parm: { (): Base[]; } = function named() { return [d1, d2] }) { } } ->x102 : x102, Symbol(x102, Decl(generatedContextualTyping.ts, 105, 93)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 106, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x102 : x102 +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 106, 55)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x103 { constructor(public parm: Base[] = [d1, d2]) { } } ->x103 : x103, Symbol(x103, Decl(generatedContextualTyping.ts, 106, 99)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 107, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x103 : x103 +>parm : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x104 { constructor(public parm: Array = [d1, d2]) { } } ->x104 : x104, Symbol(x104, Decl(generatedContextualTyping.ts, 107, 62)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 108, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x104 : x104 +>parm : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x105 { constructor(public parm: { [n: number]: Base; } = [d1, d2]) { } } ->x105 : x105, Symbol(x105, Decl(generatedContextualTyping.ts, 108, 67)) ->parm : { [n: number]: Base; }, Symbol(parm, Decl(generatedContextualTyping.ts, 109, 25)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 109, 41)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x105 : x105 +>parm : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x106 { constructor(public parm: {n: Base[]; } = { n: [d1, d2] }) { } } ->x106 : x106, Symbol(x106, Decl(generatedContextualTyping.ts, 109, 78)) ->parm : { n: Base[]; }, Symbol(parm, Decl(generatedContextualTyping.ts, 110, 25)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 110, 39)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x106 : x106 +>parm : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 110, 56)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x107 { constructor(public parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } } ->x107 : x107, Symbol(x107, Decl(generatedContextualTyping.ts, 110, 77)) ->parm : (s: Base[]) => any, Symbol(parm, Decl(generatedContextualTyping.ts, 111, 25)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 111, 39)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x107 : x107 +>parm : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 111, 58), Decl(generatedContextualTyping.ts, 111, 69)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 111, 58), Decl(generatedContextualTyping.ts, 111, 69)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x108 { constructor(public parm: Genric = { func: n => { return [d1, d2]; } }) { } } ->x108 : x108, Symbol(x108, Decl(generatedContextualTyping.ts, 111, 102)) ->parm : Genric, Symbol(parm, Decl(generatedContextualTyping.ts, 112, 25)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x108 : x108 +>parm : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 112, 54)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 112, 60)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x109 { constructor(private parm: () => Base[] = () => [d1, d2]) { } } ->x109 : x109, Symbol(x109, Decl(generatedContextualTyping.ts, 112, 95)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 113, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x109 : x109 +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x110 { constructor(private parm: () => Base[] = function() { return [d1, d2] }) { } } ->x110 : x110, Symbol(x110, Decl(generatedContextualTyping.ts, 113, 75)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 114, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x110 : x110 +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x111 { constructor(private parm: () => Base[] = function named() { return [d1, d2] }) { } } ->x111 : x111, Symbol(x111, Decl(generatedContextualTyping.ts, 114, 91)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 115, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x111 : x111 +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 115, 53)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x112 { constructor(private parm: { (): Base[]; } = () => [d1, d2]) { } } ->x112 : x112, Symbol(x112, Decl(generatedContextualTyping.ts, 115, 97)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 116, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x112 : x112 +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x113 { constructor(private parm: { (): Base[]; } = function() { return [d1, d2] }) { } } ->x113 : x113, Symbol(x113, Decl(generatedContextualTyping.ts, 116, 78)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 117, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x113 : x113 +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x114 { constructor(private parm: { (): Base[]; } = function named() { return [d1, d2] }) { } } ->x114 : x114, Symbol(x114, Decl(generatedContextualTyping.ts, 117, 94)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 118, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x114 : x114 +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 118, 56)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x115 { constructor(private parm: Base[] = [d1, d2]) { } } ->x115 : x115, Symbol(x115, Decl(generatedContextualTyping.ts, 118, 100)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 119, 25)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x115 : x115 +>parm : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x116 { constructor(private parm: Array = [d1, d2]) { } } ->x116 : x116, Symbol(x116, Decl(generatedContextualTyping.ts, 119, 63)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 120, 25)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x116 : x116 +>parm : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x117 { constructor(private parm: { [n: number]: Base; } = [d1, d2]) { } } ->x117 : x117, Symbol(x117, Decl(generatedContextualTyping.ts, 120, 68)) ->parm : { [n: number]: Base; }, Symbol(parm, Decl(generatedContextualTyping.ts, 121, 25)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 121, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x117 : x117 +>parm : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x118 { constructor(private parm: {n: Base[]; } = { n: [d1, d2] }) { } } ->x118 : x118, Symbol(x118, Decl(generatedContextualTyping.ts, 121, 79)) ->parm : { n: Base[]; }, Symbol(parm, Decl(generatedContextualTyping.ts, 122, 25)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 122, 40)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x118 : x118 +>parm : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 122, 57)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 class x119 { constructor(private parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } } ->x119 : x119, Symbol(x119, Decl(generatedContextualTyping.ts, 122, 78)) ->parm : (s: Base[]) => any, Symbol(parm, Decl(generatedContextualTyping.ts, 123, 25)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 123, 40)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x119 : x119 +>parm : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 123, 59), Decl(generatedContextualTyping.ts, 123, 70)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 123, 59), Decl(generatedContextualTyping.ts, 123, 70)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null class x120 { constructor(private parm: Genric = { func: n => { return [d1, d2]; } }) { } } ->x120 : x120, Symbol(x120, Decl(generatedContextualTyping.ts, 123, 103)) ->parm : Genric, Symbol(parm, Decl(generatedContextualTyping.ts, 124, 25)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x120 : x120 +>parm : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 124, 55)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 124, 61)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x121(parm: () => Base[] = () => [d1, d2]) { } ->x121 : (parm?: () => Base[]) => void, Symbol(x121, Decl(generatedContextualTyping.ts, 124, 96)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 125, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x121 : (parm?: () => Base[]) => void +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x122(parm: () => Base[] = function() { return [d1, d2] }) { } ->x122 : (parm?: () => Base[]) => void, Symbol(x122, Decl(generatedContextualTyping.ts, 125, 54)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 126, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x122 : (parm?: () => Base[]) => void +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x123(parm: () => Base[] = function named() { return [d1, d2] }) { } ->x123 : (parm?: () => Base[]) => void, Symbol(x123, Decl(generatedContextualTyping.ts, 126, 70)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 127, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x123 : (parm?: () => Base[]) => void +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 127, 34)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x124(parm: { (): Base[]; } = () => [d1, d2]) { } ->x124 : (parm?: () => Base[]) => void, Symbol(x124, Decl(generatedContextualTyping.ts, 127, 76)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 128, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x124 : (parm?: () => Base[]) => void +>parm : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x125(parm: { (): Base[]; } = function() { return [d1, d2] }) { } ->x125 : (parm?: () => Base[]) => void, Symbol(x125, Decl(generatedContextualTyping.ts, 128, 57)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 129, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x125 : (parm?: () => Base[]) => void +>parm : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x126(parm: { (): Base[]; } = function named() { return [d1, d2] }) { } ->x126 : (parm?: () => Base[]) => void, Symbol(x126, Decl(generatedContextualTyping.ts, 129, 73)) ->parm : () => Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 130, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x126 : (parm?: () => Base[]) => void +>parm : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 130, 37)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x127(parm: Base[] = [d1, d2]) { } ->x127 : (parm?: Base[]) => void, Symbol(x127, Decl(generatedContextualTyping.ts, 130, 79)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 131, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x127 : (parm?: Base[]) => void +>parm : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x128(parm: Array = [d1, d2]) { } ->x128 : (parm?: Base[]) => void, Symbol(x128, Decl(generatedContextualTyping.ts, 131, 42)) ->parm : Base[], Symbol(parm, Decl(generatedContextualTyping.ts, 132, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x128 : (parm?: Base[]) => void +>parm : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x129(parm: { [n: number]: Base; } = [d1, d2]) { } ->x129 : (parm?: { [n: number]: Base; }) => void, Symbol(x129, Decl(generatedContextualTyping.ts, 132, 47)) ->parm : { [n: number]: Base; }, Symbol(parm, Decl(generatedContextualTyping.ts, 133, 14)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 133, 23)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x129 : (parm?: { [n: number]: Base; }) => void +>parm : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x130(parm: {n: Base[]; } = { n: [d1, d2] }) { } ->x130 : (parm?: { n: Base[]; }) => void, Symbol(x130, Decl(generatedContextualTyping.ts, 133, 58)) ->parm : { n: Base[]; }, Symbol(parm, Decl(generatedContextualTyping.ts, 134, 14)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 134, 21)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x130 : (parm?: { n: Base[]; }) => void +>parm : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 134, 38)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x131(parm: (s: Base[]) => any = n => { var n: Base[]; return null; }) { } ->x131 : (parm?: (s: Base[]) => any) => void, Symbol(x131, Decl(generatedContextualTyping.ts, 134, 57)) ->parm : (s: Base[]) => any, Symbol(parm, Decl(generatedContextualTyping.ts, 135, 14)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 135, 21)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x131 : (parm?: (s: Base[]) => any) => void +>parm : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 135, 40), Decl(generatedContextualTyping.ts, 135, 51)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 135, 40), Decl(generatedContextualTyping.ts, 135, 51)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null function x132(parm: Genric = { func: n => { return [d1, d2]; } }) { } ->x132 : (parm?: Genric) => void, Symbol(x132, Decl(generatedContextualTyping.ts, 135, 82)) ->parm : Genric, Symbol(parm, Decl(generatedContextualTyping.ts, 136, 14)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x132 : (parm?: Genric) => void +>parm : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 136, 36)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 136, 42)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x133(): () => Base[] { return () => [d1, d2]; } ->x133 : () => () => Base[], Symbol(x133, Decl(generatedContextualTyping.ts, 136, 75)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x133 : () => () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x134(): () => Base[] { return function() { return [d1, d2] }; } ->x134 : () => () => Base[], Symbol(x134, Decl(generatedContextualTyping.ts, 137, 56)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x134 : () => () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x135(): () => Base[] { return function named() { return [d1, d2] }; } ->x135 : () => () => Base[], Symbol(x135, Decl(generatedContextualTyping.ts, 138, 72)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x135 : () => () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 139, 38)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x136(): { (): Base[]; } { return () => [d1, d2]; } ->x136 : () => () => Base[], Symbol(x136, Decl(generatedContextualTyping.ts, 139, 78)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x136 : () => () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x137(): { (): Base[]; } { return function() { return [d1, d2] }; } ->x137 : () => () => Base[], Symbol(x137, Decl(generatedContextualTyping.ts, 140, 59)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x137 : () => () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x138(): { (): Base[]; } { return function named() { return [d1, d2] }; } ->x138 : () => () => Base[], Symbol(x138, Decl(generatedContextualTyping.ts, 141, 75)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x138 : () => () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 142, 41)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x139(): Base[] { return [d1, d2]; } ->x139 : () => Base[], Symbol(x139, Decl(generatedContextualTyping.ts, 142, 81)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x139 : () => Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x140(): Array { return [d1, d2]; } ->x140 : () => Base[], Symbol(x140, Decl(generatedContextualTyping.ts, 143, 44)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x140 : () => Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x141(): { [n: number]: Base; } { return [d1, d2]; } ->x141 : () => { [n: number]: Base; }, Symbol(x141, Decl(generatedContextualTyping.ts, 144, 49)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 145, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x141 : () => { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x142(): {n: Base[]; } { return { n: [d1, d2] }; } ->x142 : () => { n: Base[]; }, Symbol(x142, Decl(generatedContextualTyping.ts, 145, 60)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 146, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x142 : () => { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 146, 42)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x143(): (s: Base[]) => any { return n => { var n: Base[]; return null; }; } ->x143 : () => (s: Base[]) => any, Symbol(x143, Decl(generatedContextualTyping.ts, 146, 59)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 147, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x143 : () => (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 147, 44), Decl(generatedContextualTyping.ts, 147, 55)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 147, 44), Decl(generatedContextualTyping.ts, 147, 55)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null function x144(): Genric { return { func: n => { return [d1, d2]; } }; } ->x144 : () => Genric, Symbol(x144, Decl(generatedContextualTyping.ts, 147, 84)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x144 : () => Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 148, 40)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 148, 46)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x145(): () => Base[] { return () => [d1, d2]; return () => [d1, d2]; } ->x145 : () => () => Base[], Symbol(x145, Decl(generatedContextualTyping.ts, 148, 77)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x145 : () => () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x146(): () => Base[] { return function() { return [d1, d2] }; return function() { return [d1, d2] }; } ->x146 : () => () => Base[], Symbol(x146, Decl(generatedContextualTyping.ts, 149, 79)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x146 : () => () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x147(): () => Base[] { return function named() { return [d1, d2] }; return function named() { return [d1, d2] }; } ->x147 : () => () => Base[], Symbol(x147, Decl(generatedContextualTyping.ts, 150, 111)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x147 : () => () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 151, 38)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 151, 83)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x148(): { (): Base[]; } { return () => [d1, d2]; return () => [d1, d2]; } ->x148 : () => () => Base[], Symbol(x148, Decl(generatedContextualTyping.ts, 151, 123)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x148 : () => () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x149(): { (): Base[]; } { return function() { return [d1, d2] }; return function() { return [d1, d2] }; } ->x149 : () => () => Base[], Symbol(x149, Decl(generatedContextualTyping.ts, 152, 82)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x149 : () => () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x150(): { (): Base[]; } { return function named() { return [d1, d2] }; return function named() { return [d1, d2] }; } ->x150 : () => () => Base[], Symbol(x150, Decl(generatedContextualTyping.ts, 153, 114)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x150 : () => () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 154, 41)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 154, 86)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x151(): Base[] { return [d1, d2]; return [d1, d2]; } ->x151 : () => Base[], Symbol(x151, Decl(generatedContextualTyping.ts, 154, 126)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x151 : () => Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x152(): Array { return [d1, d2]; return [d1, d2]; } ->x152 : () => Base[], Symbol(x152, Decl(generatedContextualTyping.ts, 155, 61)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x152 : () => Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x153(): { [n: number]: Base; } { return [d1, d2]; return [d1, d2]; } ->x153 : () => { [n: number]: Base; }, Symbol(x153, Decl(generatedContextualTyping.ts, 156, 66)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 157, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x153 : () => { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x154(): {n: Base[]; } { return { n: [d1, d2] }; return { n: [d1, d2] }; } ->x154 : () => { n: Base[]; }, Symbol(x154, Decl(generatedContextualTyping.ts, 157, 77)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 158, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x154 : () => { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 158, 42)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 158, 66)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x155(): (s: Base[]) => any { return n => { var n: Base[]; return null; }; return n => { var n: Base[]; return null; }; } ->x155 : () => (s: Base[]) => any, Symbol(x155, Decl(generatedContextualTyping.ts, 158, 83)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 159, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x155 : () => (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 159, 44), Decl(generatedContextualTyping.ts, 159, 55)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 159, 44), Decl(generatedContextualTyping.ts, 159, 55)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 159, 89), Decl(generatedContextualTyping.ts, 159, 100)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 159, 89), Decl(generatedContextualTyping.ts, 159, 100)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null function x156(): Genric { return { func: n => { return [d1, d2]; } }; return { func: n => { return [d1, d2]; } }; } ->x156 : () => Genric, Symbol(x156, Decl(generatedContextualTyping.ts, 159, 129)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x156 : () => Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 160, 40)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 160, 46)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 160, 84)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 160, 90)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x157: () => () => Base[] = () => { return () => [d1, d2]; }; ->x157 : () => () => Base[], Symbol(x157, Decl(generatedContextualTyping.ts, 161, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x157 : () => () => Base[] +>Base : Base >() => { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x158: () => () => Base[] = () => { return function() { return [d1, d2] }; }; ->x158 : () => () => Base[], Symbol(x158, Decl(generatedContextualTyping.ts, 162, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x158 : () => () => Base[] +>Base : Base >() => { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x159: () => () => Base[] = () => { return function named() { return [d1, d2] }; }; ->x159 : () => () => Base[], Symbol(x159, Decl(generatedContextualTyping.ts, 163, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x159 : () => () => Base[] +>Base : Base >() => { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 163, 45)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x160: () => { (): Base[]; } = () => { return () => [d1, d2]; }; ->x160 : () => () => Base[], Symbol(x160, Decl(generatedContextualTyping.ts, 164, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x160 : () => () => Base[] +>Base : Base >() => { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x161: () => { (): Base[]; } = () => { return function() { return [d1, d2] }; }; ->x161 : () => () => Base[], Symbol(x161, Decl(generatedContextualTyping.ts, 165, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x161 : () => () => Base[] +>Base : Base >() => { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x162: () => { (): Base[]; } = () => { return function named() { return [d1, d2] }; }; ->x162 : () => () => Base[], Symbol(x162, Decl(generatedContextualTyping.ts, 166, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x162 : () => () => Base[] +>Base : Base >() => { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 166, 48)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x163: () => Base[] = () => { return [d1, d2]; }; ->x163 : () => Base[], Symbol(x163, Decl(generatedContextualTyping.ts, 167, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x163 : () => Base[] +>Base : Base >() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x164: () => Array = () => { return [d1, d2]; }; ->x164 : () => Base[], Symbol(x164, Decl(generatedContextualTyping.ts, 168, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x164 : () => Base[] +>Array : T[] +>Base : Base >() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x165: () => { [n: number]: Base; } = () => { return [d1, d2]; }; ->x165 : () => { [n: number]: Base; }, Symbol(x165, Decl(generatedContextualTyping.ts, 169, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 169, 19)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x165 : () => { [n: number]: Base; } +>n : number +>Base : Base >() => { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x166: () => {n: Base[]; } = () => { return { n: [d1, d2] }; }; ->x166 : () => { n: Base[]; }, Symbol(x166, Decl(generatedContextualTyping.ts, 170, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 170, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x166 : () => { n: Base[]; } +>n : Base[] +>Base : Base >() => { return { n: [d1, d2] }; } : () => { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 170, 49)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x167: () => (s: Base[]) => any = () => { return n => { var n: Base[]; return null; }; }; ->x167 : () => (s: Base[]) => any, Symbol(x167, Decl(generatedContextualTyping.ts, 171, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 171, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x167 : () => (s: Base[]) => any +>s : Base[] +>Base : Base >() => { return n => { var n: Base[]; return null; }; } : () => (n: Base[]) => any >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 171, 51), Decl(generatedContextualTyping.ts, 171, 62)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 171, 51), Decl(generatedContextualTyping.ts, 171, 62)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x168: () => Genric = () => { return { func: n => { return [d1, d2]; } }; }; ->x168 : () => Genric, Symbol(x168, Decl(generatedContextualTyping.ts, 172, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x168 : () => Genric +>Genric : Genric +>Base : Base >() => { return { func: n => { return [d1, d2]; } }; } : () => { func: (n: Base[]) => (Derived1 | Derived2)[]; } >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 172, 47)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 172, 53)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x169: () => () => Base[] = function() { return () => [d1, d2]; }; ->x169 : () => () => Base[], Symbol(x169, Decl(generatedContextualTyping.ts, 173, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x169 : () => () => Base[] +>Base : Base >function() { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x170: () => () => Base[] = function() { return function() { return [d1, d2] }; }; ->x170 : () => () => Base[], Symbol(x170, Decl(generatedContextualTyping.ts, 174, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x170 : () => () => Base[] +>Base : Base >function() { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x171: () => () => Base[] = function() { return function named() { return [d1, d2] }; }; ->x171 : () => () => Base[], Symbol(x171, Decl(generatedContextualTyping.ts, 175, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x171 : () => () => Base[] +>Base : Base >function() { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 175, 50)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x172: () => { (): Base[]; } = function() { return () => [d1, d2]; }; ->x172 : () => () => Base[], Symbol(x172, Decl(generatedContextualTyping.ts, 176, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x172 : () => () => Base[] +>Base : Base >function() { return () => [d1, d2]; } : () => () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x173: () => { (): Base[]; } = function() { return function() { return [d1, d2] }; }; ->x173 : () => () => Base[], Symbol(x173, Decl(generatedContextualTyping.ts, 177, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x173 : () => () => Base[] +>Base : Base >function() { return function() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x174: () => { (): Base[]; } = function() { return function named() { return [d1, d2] }; }; ->x174 : () => () => Base[], Symbol(x174, Decl(generatedContextualTyping.ts, 178, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x174 : () => () => Base[] +>Base : Base >function() { return function named() { return [d1, d2] }; } : () => () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 178, 53)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x175: () => Base[] = function() { return [d1, d2]; }; ->x175 : () => Base[], Symbol(x175, Decl(generatedContextualTyping.ts, 179, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x175 : () => Base[] +>Base : Base >function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x176: () => Array = function() { return [d1, d2]; }; ->x176 : () => Base[], Symbol(x176, Decl(generatedContextualTyping.ts, 180, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x176 : () => Base[] +>Array : T[] +>Base : Base >function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x177: () => { [n: number]: Base; } = function() { return [d1, d2]; }; ->x177 : () => { [n: number]: Base; }, Symbol(x177, Decl(generatedContextualTyping.ts, 181, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 181, 19)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x177 : () => { [n: number]: Base; } +>n : number +>Base : Base >function() { return [d1, d2]; } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x178: () => {n: Base[]; } = function() { return { n: [d1, d2] }; }; ->x178 : () => { n: Base[]; }, Symbol(x178, Decl(generatedContextualTyping.ts, 182, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 182, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x178 : () => { n: Base[]; } +>n : Base[] +>Base : Base >function() { return { n: [d1, d2] }; } : () => { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 182, 54)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x179: () => (s: Base[]) => any = function() { return n => { var n: Base[]; return null; }; }; ->x179 : () => (s: Base[]) => any, Symbol(x179, Decl(generatedContextualTyping.ts, 183, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 183, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x179 : () => (s: Base[]) => any +>s : Base[] +>Base : Base >function() { return n => { var n: Base[]; return null; }; } : () => (n: Base[]) => any >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 183, 56), Decl(generatedContextualTyping.ts, 183, 67)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 183, 56), Decl(generatedContextualTyping.ts, 183, 67)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x180: () => Genric = function() { return { func: n => { return [d1, d2]; } }; }; ->x180 : () => Genric, Symbol(x180, Decl(generatedContextualTyping.ts, 184, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x180 : () => Genric +>Genric : Genric +>Base : Base >function() { return { func: n => { return [d1, d2]; } }; } : () => { func: (n: Base[]) => (Derived1 | Derived2)[]; } >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 184, 52)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 184, 58)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x181 { var t: () => Base[] = () => [d1, d2]; } ->x181 : typeof x181, Symbol(x181, Decl(generatedContextualTyping.ts, 184, 90)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 185, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x181 : typeof x181 +>t : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x182 { var t: () => Base[] = function() { return [d1, d2] }; } ->x182 : typeof x182, Symbol(x182, Decl(generatedContextualTyping.ts, 185, 53)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 186, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x182 : typeof x182 +>t : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x183 { var t: () => Base[] = function named() { return [d1, d2] }; } ->x183 : typeof x183, Symbol(x183, Decl(generatedContextualTyping.ts, 186, 69)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 187, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x183 : typeof x183 +>t : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 187, 35)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x184 { var t: { (): Base[]; } = () => [d1, d2]; } ->x184 : typeof x184, Symbol(x184, Decl(generatedContextualTyping.ts, 187, 75)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 188, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x184 : typeof x184 +>t : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x185 { var t: { (): Base[]; } = function() { return [d1, d2] }; } ->x185 : typeof x185, Symbol(x185, Decl(generatedContextualTyping.ts, 188, 56)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 189, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x185 : typeof x185 +>t : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x186 { var t: { (): Base[]; } = function named() { return [d1, d2] }; } ->x186 : typeof x186, Symbol(x186, Decl(generatedContextualTyping.ts, 189, 72)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 190, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x186 : typeof x186 +>t : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 190, 38)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x187 { var t: Base[] = [d1, d2]; } ->x187 : typeof x187, Symbol(x187, Decl(generatedContextualTyping.ts, 190, 78)) ->t : Base[], Symbol(t, Decl(generatedContextualTyping.ts, 191, 17)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x187 : typeof x187 +>t : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x188 { var t: Array = [d1, d2]; } ->x188 : typeof x188, Symbol(x188, Decl(generatedContextualTyping.ts, 191, 41)) ->t : Base[], Symbol(t, Decl(generatedContextualTyping.ts, 192, 17)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x188 : typeof x188 +>t : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x189 { var t: { [n: number]: Base; } = [d1, d2]; } ->x189 : typeof x189, Symbol(x189, Decl(generatedContextualTyping.ts, 192, 46)) ->t : { [n: number]: Base; }, Symbol(t, Decl(generatedContextualTyping.ts, 193, 17)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 193, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x189 : typeof x189 +>t : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x190 { var t: {n: Base[]; } = { n: [d1, d2] }; } ->x190 : typeof x190, Symbol(x190, Decl(generatedContextualTyping.ts, 193, 57)) ->t : { n: Base[]; }, Symbol(t, Decl(generatedContextualTyping.ts, 194, 17)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 194, 22)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x190 : typeof x190 +>t : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 194, 39)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x191 { var t: (s: Base[]) => any = n => { var n: Base[]; return null; }; } ->x191 : typeof x191, Symbol(x191, Decl(generatedContextualTyping.ts, 194, 56)) ->t : (s: Base[]) => any, Symbol(t, Decl(generatedContextualTyping.ts, 195, 17)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 195, 22)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x191 : typeof x191 +>t : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 195, 41), Decl(generatedContextualTyping.ts, 195, 52)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 195, 41), Decl(generatedContextualTyping.ts, 195, 52)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null module x192 { var t: Genric = { func: n => { return [d1, d2]; } }; } ->x192 : typeof x192, Symbol(x192, Decl(generatedContextualTyping.ts, 195, 81)) ->t : Genric, Symbol(t, Decl(generatedContextualTyping.ts, 196, 17)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x192 : typeof x192 +>t : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 196, 37)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 196, 43)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x193 { export var t: () => Base[] = () => [d1, d2]; } ->x193 : typeof x193, Symbol(x193, Decl(generatedContextualTyping.ts, 196, 74)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 197, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x193 : typeof x193 +>t : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x194 { export var t: () => Base[] = function() { return [d1, d2] }; } ->x194 : typeof x194, Symbol(x194, Decl(generatedContextualTyping.ts, 197, 60)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 198, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x194 : typeof x194 +>t : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x195 { export var t: () => Base[] = function named() { return [d1, d2] }; } ->x195 : typeof x195, Symbol(x195, Decl(generatedContextualTyping.ts, 198, 76)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 199, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x195 : typeof x195 +>t : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 199, 42)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x196 { export var t: { (): Base[]; } = () => [d1, d2]; } ->x196 : typeof x196, Symbol(x196, Decl(generatedContextualTyping.ts, 199, 82)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 200, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x196 : typeof x196 +>t : () => Base[] +>Base : Base >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x197 { export var t: { (): Base[]; } = function() { return [d1, d2] }; } ->x197 : typeof x197, Symbol(x197, Decl(generatedContextualTyping.ts, 200, 63)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 201, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x197 : typeof x197 +>t : () => Base[] +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x198 { export var t: { (): Base[]; } = function named() { return [d1, d2] }; } ->x198 : typeof x198, Symbol(x198, Decl(generatedContextualTyping.ts, 201, 79)) ->t : () => Base[], Symbol(t, Decl(generatedContextualTyping.ts, 202, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x198 : typeof x198 +>t : () => Base[] +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 202, 45)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x199 { export var t: Base[] = [d1, d2]; } ->x199 : typeof x199, Symbol(x199, Decl(generatedContextualTyping.ts, 202, 85)) ->t : Base[], Symbol(t, Decl(generatedContextualTyping.ts, 203, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x199 : typeof x199 +>t : Base[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x200 { export var t: Array = [d1, d2]; } ->x200 : typeof x200, Symbol(x200, Decl(generatedContextualTyping.ts, 203, 48)) ->t : Base[], Symbol(t, Decl(generatedContextualTyping.ts, 204, 24)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x200 : typeof x200 +>t : Base[] +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x201 { export var t: { [n: number]: Base; } = [d1, d2]; } ->x201 : typeof x201, Symbol(x201, Decl(generatedContextualTyping.ts, 204, 53)) ->t : { [n: number]: Base; }, Symbol(t, Decl(generatedContextualTyping.ts, 205, 24)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 205, 31)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x201 : typeof x201 +>t : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x202 { export var t: {n: Base[]; } = { n: [d1, d2] }; } ->x202 : typeof x202, Symbol(x202, Decl(generatedContextualTyping.ts, 205, 64)) ->t : { n: Base[]; }, Symbol(t, Decl(generatedContextualTyping.ts, 206, 24)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 206, 29)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x202 : typeof x202 +>t : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 206, 46)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 module x203 { export var t: (s: Base[]) => any = n => { var n: Base[]; return null; }; } ->x203 : typeof x203, Symbol(x203, Decl(generatedContextualTyping.ts, 206, 63)) ->t : (s: Base[]) => any, Symbol(t, Decl(generatedContextualTyping.ts, 207, 24)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 207, 29)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x203 : typeof x203 +>t : (s: Base[]) => any +>s : Base[] +>Base : Base >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 207, 48), Decl(generatedContextualTyping.ts, 207, 59)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 207, 48), Decl(generatedContextualTyping.ts, 207, 59)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null module x204 { export var t: Genric = { func: n => { return [d1, d2]; } }; } ->x204 : typeof x204, Symbol(x204, Decl(generatedContextualTyping.ts, 207, 88)) ->t : Genric, Symbol(t, Decl(generatedContextualTyping.ts, 208, 24)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x204 : typeof x204 +>t : Genric +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 208, 44)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 208, 50)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x206 = <() => Base[]>function() { return [d1, d2] }; ->x206 : () => Base[], Symbol(x206, Decl(generatedContextualTyping.ts, 209, 3)) +>x206 : () => Base[] ><() => Base[]>function() { return [d1, d2] } : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x207 = <() => Base[]>function named() { return [d1, d2] }; ->x207 : () => Base[], Symbol(x207, Decl(generatedContextualTyping.ts, 210, 3)) +>x207 : () => Base[] ><() => Base[]>function named() { return [d1, d2] } : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 210, 25)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x209 = <{ (): Base[]; }>function() { return [d1, d2] }; ->x209 : () => Base[], Symbol(x209, Decl(generatedContextualTyping.ts, 211, 3)) +>x209 : () => Base[] ><{ (): Base[]; }>function() { return [d1, d2] } : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Base : Base >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x210 = <{ (): Base[]; }>function named() { return [d1, d2] }; ->x210 : () => Base[], Symbol(x210, Decl(generatedContextualTyping.ts, 212, 3)) +>x210 : () => Base[] ><{ (): Base[]; }>function named() { return [d1, d2] } : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Base : Base >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 212, 28)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x211 = [d1, d2]; ->x211 : Base[], Symbol(x211, Decl(generatedContextualTyping.ts, 213, 3)) +>x211 : Base[] >[d1, d2] : Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x212 = >[d1, d2]; ->x212 : Base[], Symbol(x212, Decl(generatedContextualTyping.ts, 214, 3)) +>x212 : Base[] >>[d1, d2] : Base[] ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Array : T[] +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x213 = <{ [n: number]: Base; }>[d1, d2]; ->x213 : { [n: number]: Base; }, Symbol(x213, Decl(generatedContextualTyping.ts, 215, 3)) +>x213 : { [n: number]: Base; } ><{ [n: number]: Base; }>[d1, d2] : { [n: number]: Base; } ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 215, 15)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : number +>Base : Base >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x214 = <{n: Base[]; } >{ n: [d1, d2] }; ->x214 : { n: Base[]; }, Symbol(x214, Decl(generatedContextualTyping.ts, 216, 3)) +>x214 : { n: Base[]; } ><{n: Base[]; } >{ n: [d1, d2] } : { n: Base[]; } ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 216, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 216, 28)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x216 = >{ func: n => { return [d1, d2]; } }; ->x216 : Genric, Symbol(x216, Decl(generatedContextualTyping.ts, 217, 3)) +>x216 : Genric >>{ func: n => { return [d1, d2]; } } : Genric ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>Genric : Genric +>Base : Base >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 217, 26)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 217, 32)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x217 = (<() => Base[]>undefined) || function() { return [d1, d2] }; ->x217 : () => Base[], Symbol(x217, Decl(generatedContextualTyping.ts, 218, 3)) +>x217 : () => Base[] >(<() => Base[]>undefined) || function() { return [d1, d2] } : () => Base[] >(<() => Base[]>undefined) : () => Base[] ><() => Base[]>undefined : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>Base : Base +>undefined : undefined >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x218 = (<() => Base[]>undefined) || function named() { return [d1, d2] }; ->x218 : () => Base[], Symbol(x218, Decl(generatedContextualTyping.ts, 219, 3)) +>x218 : () => Base[] >(<() => Base[]>undefined) || function named() { return [d1, d2] } : () => Base[] >(<() => Base[]>undefined) : () => Base[] ><() => Base[]>undefined : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>Base : Base +>undefined : undefined >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 219, 39)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x219 = (<{ (): Base[]; }>undefined) || function() { return [d1, d2] }; ->x219 : () => Base[], Symbol(x219, Decl(generatedContextualTyping.ts, 220, 3)) +>x219 : () => Base[] >(<{ (): Base[]; }>undefined) || function() { return [d1, d2] } : () => Base[] >(<{ (): Base[]; }>undefined) : () => Base[] ><{ (): Base[]; }>undefined : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>Base : Base +>undefined : undefined >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x220 = (<{ (): Base[]; }>undefined) || function named() { return [d1, d2] }; ->x220 : () => Base[], Symbol(x220, Decl(generatedContextualTyping.ts, 221, 3)) +>x220 : () => Base[] >(<{ (): Base[]; }>undefined) || function named() { return [d1, d2] } : () => Base[] >(<{ (): Base[]; }>undefined) : () => Base[] ><{ (): Base[]; }>undefined : () => Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>Base : Base +>undefined : undefined >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 221, 42)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x221 = (undefined) || [d1, d2]; ->x221 : Base[], Symbol(x221, Decl(generatedContextualTyping.ts, 222, 3)) +>x221 : Base[] >(undefined) || [d1, d2] : Base[] >(undefined) : Base[] >undefined : Base[] ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>Base : Base +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x222 = (>undefined) || [d1, d2]; ->x222 : Base[], Symbol(x222, Decl(generatedContextualTyping.ts, 223, 3)) +>x222 : Base[] >(>undefined) || [d1, d2] : Base[] >(>undefined) : Base[] >>undefined : Base[] ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>Array : T[] +>Base : Base +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x223 = (<{ [n: number]: Base; }>undefined) || [d1, d2]; ->x223 : { [n: number]: Base; }, Symbol(x223, Decl(generatedContextualTyping.ts, 224, 3)) +>x223 : { [n: number]: Base; } >(<{ [n: number]: Base; }>undefined) || [d1, d2] : { [n: number]: Base; } >(<{ [n: number]: Base; }>undefined) : { [n: number]: Base; } ><{ [n: number]: Base; }>undefined : { [n: number]: Base; } ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 224, 16)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>n : number +>Base : Base +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x224 = (<{n: Base[]; } >undefined) || { n: [d1, d2] }; ->x224 : { n: Base[]; }, Symbol(x224, Decl(generatedContextualTyping.ts, 225, 3)) +>x224 : { n: Base[]; } >(<{n: Base[]; } >undefined) || { n: [d1, d2] } : { n: Base[]; } >(<{n: Base[]; } >undefined) : { n: Base[]; } ><{n: Base[]; } >undefined : { n: Base[]; } ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 225, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->undefined : undefined, Symbol(undefined) +>n : Base[] +>Base : Base +>undefined : undefined >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 225, 43)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x225: () => Base[]; x225 = () => [d1, d2]; ->x225 : () => Base[], Symbol(x225, Decl(generatedContextualTyping.ts, 226, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x225 : () => Base[] +>Base : Base >x225 = () => [d1, d2] : () => (Derived1 | Derived2)[] ->x225 : () => Base[], Symbol(x225, Decl(generatedContextualTyping.ts, 226, 3)) +>x225 : () => Base[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x226: () => Base[]; x226 = function() { return [d1, d2] }; ->x226 : () => Base[], Symbol(x226, Decl(generatedContextualTyping.ts, 227, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x226 : () => Base[] +>Base : Base >x226 = function() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->x226 : () => Base[], Symbol(x226, Decl(generatedContextualTyping.ts, 227, 3)) +>x226 : () => Base[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x227: () => Base[]; x227 = function named() { return [d1, d2] }; ->x227 : () => Base[], Symbol(x227, Decl(generatedContextualTyping.ts, 228, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x227 : () => Base[] +>Base : Base >x227 = function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->x227 : () => Base[], Symbol(x227, Decl(generatedContextualTyping.ts, 228, 3)) +>x227 : () => Base[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 228, 30)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x228: { (): Base[]; }; x228 = () => [d1, d2]; ->x228 : () => Base[], Symbol(x228, Decl(generatedContextualTyping.ts, 229, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x228 : () => Base[] +>Base : Base >x228 = () => [d1, d2] : () => (Derived1 | Derived2)[] ->x228 : () => Base[], Symbol(x228, Decl(generatedContextualTyping.ts, 229, 3)) +>x228 : () => Base[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x229: { (): Base[]; }; x229 = function() { return [d1, d2] }; ->x229 : () => Base[], Symbol(x229, Decl(generatedContextualTyping.ts, 230, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x229 : () => Base[] +>Base : Base >x229 = function() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->x229 : () => Base[], Symbol(x229, Decl(generatedContextualTyping.ts, 230, 3)) +>x229 : () => Base[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x230: { (): Base[]; }; x230 = function named() { return [d1, d2] }; ->x230 : () => Base[], Symbol(x230, Decl(generatedContextualTyping.ts, 231, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x230 : () => Base[] +>Base : Base >x230 = function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->x230 : () => Base[], Symbol(x230, Decl(generatedContextualTyping.ts, 231, 3)) +>x230 : () => Base[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 231, 33)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x231: Base[]; x231 = [d1, d2]; ->x231 : Base[], Symbol(x231, Decl(generatedContextualTyping.ts, 232, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x231 : Base[] +>Base : Base >x231 = [d1, d2] : (Derived1 | Derived2)[] ->x231 : Base[], Symbol(x231, Decl(generatedContextualTyping.ts, 232, 3)) +>x231 : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x232: Array; x232 = [d1, d2]; ->x232 : Base[], Symbol(x232, Decl(generatedContextualTyping.ts, 233, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x232 : Base[] +>Array : T[] +>Base : Base >x232 = [d1, d2] : (Derived1 | Derived2)[] ->x232 : Base[], Symbol(x232, Decl(generatedContextualTyping.ts, 233, 3)) +>x232 : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x233: { [n: number]: Base; }; x233 = [d1, d2]; ->x233 : { [n: number]: Base; }, Symbol(x233, Decl(generatedContextualTyping.ts, 234, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 234, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x233 : { [n: number]: Base; } +>n : number +>Base : Base >x233 = [d1, d2] : (Derived1 | Derived2)[] ->x233 : { [n: number]: Base; }, Symbol(x233, Decl(generatedContextualTyping.ts, 234, 3)) +>x233 : { [n: number]: Base; } >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x234: {n: Base[]; } ; x234 = { n: [d1, d2] }; ->x234 : { n: Base[]; }, Symbol(x234, Decl(generatedContextualTyping.ts, 235, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 235, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x234 : { n: Base[]; } +>n : Base[] +>Base : Base >x234 = { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->x234 : { n: Base[]; }, Symbol(x234, Decl(generatedContextualTyping.ts, 235, 3)) +>x234 : { n: Base[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 235, 34)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x235: (s: Base[]) => any; x235 = n => { var n: Base[]; return null; }; ->x235 : (s: Base[]) => any, Symbol(x235, Decl(generatedContextualTyping.ts, 236, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 236, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x235 : (s: Base[]) => any +>s : Base[] +>Base : Base >x235 = n => { var n: Base[]; return null; } : (n: Base[]) => any ->x235 : (s: Base[]) => any, Symbol(x235, Decl(generatedContextualTyping.ts, 236, 3)) +>x235 : (s: Base[]) => any >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 236, 36), Decl(generatedContextualTyping.ts, 236, 47)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 236, 36), Decl(generatedContextualTyping.ts, 236, 47)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x236: Genric; x236 = { func: n => { return [d1, d2]; } }; ->x236 : Genric, Symbol(x236, Decl(generatedContextualTyping.ts, 237, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x236 : Genric +>Genric : Genric +>Base : Base >x236 = { func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->x236 : Genric, Symbol(x236, Decl(generatedContextualTyping.ts, 237, 3)) +>x236 : Genric >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 237, 32)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 237, 38)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x237: { n: () => Base[]; } = { n: () => [d1, d2] }; ->x237 : { n: () => Base[]; }, Symbol(x237, Decl(generatedContextualTyping.ts, 238, 3)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 238, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x237 : { n: () => Base[]; } +>n : () => Base[] +>Base : Base >{ n: () => [d1, d2] } : { n: () => (Derived1 | Derived2)[]; } ->n : () => (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 238, 34)) +>n : () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x238: { n: () => Base[]; } = { n: function() { return [d1, d2] } }; ->x238 : { n: () => Base[]; }, Symbol(x238, Decl(generatedContextualTyping.ts, 239, 3)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 239, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x238 : { n: () => Base[]; } +>n : () => Base[] +>Base : Base >{ n: function() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } ->n : () => (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 239, 34)) +>n : () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x239: { n: () => Base[]; } = { n: function named() { return [d1, d2] } }; ->x239 : { n: () => Base[]; }, Symbol(x239, Decl(generatedContextualTyping.ts, 240, 3)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 240, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x239 : { n: () => Base[]; } +>n : () => Base[] +>Base : Base >{ n: function named() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } ->n : () => (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 240, 34)) +>n : () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 240, 37)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x240: { n: { (): Base[]; }; } = { n: () => [d1, d2] }; ->x240 : { n: () => Base[]; }, Symbol(x240, Decl(generatedContextualTyping.ts, 241, 3)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 241, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x240 : { n: () => Base[]; } +>n : () => Base[] +>Base : Base >{ n: () => [d1, d2] } : { n: () => (Derived1 | Derived2)[]; } ->n : () => (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 241, 37)) +>n : () => (Derived1 | Derived2)[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x241: { n: { (): Base[]; }; } = { n: function() { return [d1, d2] } }; ->x241 : { n: () => Base[]; }, Symbol(x241, Decl(generatedContextualTyping.ts, 242, 3)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 242, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x241 : { n: () => Base[]; } +>n : () => Base[] +>Base : Base >{ n: function() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } ->n : () => (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 242, 37)) +>n : () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x242: { n: { (): Base[]; }; } = { n: function named() { return [d1, d2] } }; ->x242 : { n: () => Base[]; }, Symbol(x242, Decl(generatedContextualTyping.ts, 243, 3)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 243, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x242 : { n: () => Base[]; } +>n : () => Base[] +>Base : Base >{ n: function named() { return [d1, d2] } } : { n: () => (Derived1 | Derived2)[]; } ->n : () => (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 243, 37)) +>n : () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 243, 40)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x243: { n: Base[]; } = { n: [d1, d2] }; ->x243 : { n: Base[]; }, Symbol(x243, Decl(generatedContextualTyping.ts, 244, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 244, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x243 : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 244, 28)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x244: { n: Array; } = { n: [d1, d2] }; ->x244 : { n: Base[]; }, Symbol(x244, Decl(generatedContextualTyping.ts, 245, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 245, 11)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x244 : { n: Base[]; } +>n : Base[] +>Array : T[] +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 245, 33)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x245: { n: { [n: number]: Base; }; } = { n: [d1, d2] }; ->x245 : { n: { [n: number]: Base; }; }, Symbol(x245, Decl(generatedContextualTyping.ts, 246, 3)) ->n : { [n: number]: Base; }, Symbol(n, Decl(generatedContextualTyping.ts, 246, 11)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 246, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x245 : { n: { [n: number]: Base; }; } +>n : { [n: number]: Base; } +>n : number +>Base : Base >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 246, 44)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x246: { n: {n: Base[]; } ; } = { n: { n: [d1, d2] } }; ->x246 : { n: { n: Base[]; }; }, Symbol(x246, Decl(generatedContextualTyping.ts, 247, 3)) ->n : { n: Base[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 247, 11)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 247, 16)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x246 : { n: { n: Base[]; }; } +>n : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: { n: [d1, d2] } } : { n: { n: (Derived1 | Derived2)[]; }; } ->n : { n: (Derived1 | Derived2)[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 247, 36)) +>n : { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 247, 41)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x247: { n: (s: Base[]) => any; } = { n: n => { var n: Base[]; return null; } }; ->x247 : { n: (s: Base[]) => any; }, Symbol(x247, Decl(generatedContextualTyping.ts, 248, 3)) ->n : (s: Base[]) => any, Symbol(n, Decl(generatedContextualTyping.ts, 248, 11)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 248, 16)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x247 : { n: (s: Base[]) => any; } +>n : (s: Base[]) => any +>s : Base[] +>Base : Base >{ n: n => { var n: Base[]; return null; } } : { n: (n: Base[]) => any; } ->n : (n: Base[]) => any, Symbol(n, Decl(generatedContextualTyping.ts, 248, 40)) +>n : (n: Base[]) => any >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 248, 43), Decl(generatedContextualTyping.ts, 248, 54)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 248, 43), Decl(generatedContextualTyping.ts, 248, 54)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x248: { n: Genric; } = { n: { func: n => { return [d1, d2]; } } }; ->x248 : { n: Genric; }, Symbol(x248, Decl(generatedContextualTyping.ts, 249, 3)) ->n : Genric, Symbol(n, Decl(generatedContextualTyping.ts, 249, 11)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x248 : { n: Genric; } +>n : Genric +>Genric : Genric +>Base : Base >{ n: { func: n => { return [d1, d2]; } } } : { n: { func: (n: Base[]) => (Derived1 | Derived2)[]; }; } ->n : { func: (n: Base[]) => (Derived1 | Derived2)[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 249, 34)) +>n : { func: (n: Base[]) => (Derived1 | Derived2)[]; } >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 249, 39)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 249, 45)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x252: { (): Base[]; }[] = [() => [d1, d2]]; ->x252 : (() => Base[])[], Symbol(x252, Decl(generatedContextualTyping.ts, 250, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x252 : (() => Base[])[] +>Base : Base >[() => [d1, d2]] : (() => (Derived1 | Derived2)[])[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x253: { (): Base[]; }[] = [function() { return [d1, d2] }]; ->x253 : (() => Base[])[], Symbol(x253, Decl(generatedContextualTyping.ts, 251, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x253 : (() => Base[])[] +>Base : Base >[function() { return [d1, d2] }] : (() => (Derived1 | Derived2)[])[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x254: { (): Base[]; }[] = [function named() { return [d1, d2] }]; ->x254 : (() => Base[])[], Symbol(x254, Decl(generatedContextualTyping.ts, 252, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x254 : (() => Base[])[] +>Base : Base >[function named() { return [d1, d2] }] : (() => (Derived1 | Derived2)[])[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 252, 31)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x255: Base[][] = [[d1, d2]]; ->x255 : Base[][], Symbol(x255, Decl(generatedContextualTyping.ts, 253, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x255 : Base[][] +>Base : Base >[[d1, d2]] : (Derived1 | Derived2)[][] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x256: Array[] = [[d1, d2]]; ->x256 : Base[][], Symbol(x256, Decl(generatedContextualTyping.ts, 254, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x256 : Base[][] +>Array : T[] +>Base : Base >[[d1, d2]] : (Derived1 | Derived2)[][] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x257: { [n: number]: Base; }[] = [[d1, d2]]; ->x257 : { [n: number]: Base; }[], Symbol(x257, Decl(generatedContextualTyping.ts, 255, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 255, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x257 : { [n: number]: Base; }[] +>n : number +>Base : Base >[[d1, d2]] : (Derived1 | Derived2)[][] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x258: {n: Base[]; } [] = [{ n: [d1, d2] }]; ->x258 : { n: Base[]; }[], Symbol(x258, Decl(generatedContextualTyping.ts, 256, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 256, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x258 : { n: Base[]; }[] +>n : Base[] +>Base : Base >[{ n: [d1, d2] }] : { n: (Derived1 | Derived2)[]; }[] >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 256, 31)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x260: Genric[] = [{ func: n => { return [d1, d2]; } }]; ->x260 : Genric[], Symbol(x260, Decl(generatedContextualTyping.ts, 257, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x260 : Genric[] +>Genric : Genric +>Base : Base >[{ func: n => { return [d1, d2]; } }] : { func: (n: Base[]) => (Derived1 | Derived2)[]; }[] >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 257, 29)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 257, 35)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x261: () => Base[] = function() { return [d1, d2] } || undefined; ->x261 : () => Base[], Symbol(x261, Decl(generatedContextualTyping.ts, 258, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x261 : () => Base[] +>Base : Base >function() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x262: () => Base[] = function named() { return [d1, d2] } || undefined; ->x262 : () => Base[], Symbol(x262, Decl(generatedContextualTyping.ts, 259, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x262 : () => Base[] +>Base : Base >function named() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 259, 24)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x263: { (): Base[]; } = function() { return [d1, d2] } || undefined; ->x263 : () => Base[], Symbol(x263, Decl(generatedContextualTyping.ts, 260, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x263 : () => Base[] +>Base : Base >function() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x264: { (): Base[]; } = function named() { return [d1, d2] } || undefined; ->x264 : () => Base[], Symbol(x264, Decl(generatedContextualTyping.ts, 261, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x264 : () => Base[] +>Base : Base >function named() { return [d1, d2] } || undefined : () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 261, 27)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x265: Base[] = [d1, d2] || undefined; ->x265 : Base[], Symbol(x265, Decl(generatedContextualTyping.ts, 262, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x265 : Base[] +>Base : Base >[d1, d2] || undefined : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x266: Array = [d1, d2] || undefined; ->x266 : Base[], Symbol(x266, Decl(generatedContextualTyping.ts, 263, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x266 : Base[] +>Array : T[] +>Base : Base >[d1, d2] || undefined : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x267: { [n: number]: Base; } = [d1, d2] || undefined; ->x267 : { [n: number]: Base; }, Symbol(x267, Decl(generatedContextualTyping.ts, 264, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 264, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x267 : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] || undefined : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x268: {n: Base[]; } = { n: [d1, d2] } || undefined; ->x268 : { n: Base[]; }, Symbol(x268, Decl(generatedContextualTyping.ts, 265, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 265, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x268 : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } || undefined : { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 265, 28)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x269: () => Base[] = undefined || function() { return [d1, d2] }; ->x269 : () => Base[], Symbol(x269, Decl(generatedContextualTyping.ts, 266, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x269 : () => Base[] +>Base : Base >undefined || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x270: () => Base[] = undefined || function named() { return [d1, d2] }; ->x270 : () => Base[], Symbol(x270, Decl(generatedContextualTyping.ts, 267, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x270 : () => Base[] +>Base : Base >undefined || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 267, 37)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x271: { (): Base[]; } = undefined || function() { return [d1, d2] }; ->x271 : () => Base[], Symbol(x271, Decl(generatedContextualTyping.ts, 268, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x271 : () => Base[] +>Base : Base >undefined || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x272: { (): Base[]; } = undefined || function named() { return [d1, d2] }; ->x272 : () => Base[], Symbol(x272, Decl(generatedContextualTyping.ts, 269, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x272 : () => Base[] +>Base : Base >undefined || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 269, 40)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x273: Base[] = undefined || [d1, d2]; ->x273 : Base[], Symbol(x273, Decl(generatedContextualTyping.ts, 270, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x273 : Base[] +>Base : Base >undefined || [d1, d2] : (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x274: Array = undefined || [d1, d2]; ->x274 : Base[], Symbol(x274, Decl(generatedContextualTyping.ts, 271, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x274 : Base[] +>Array : T[] +>Base : Base >undefined || [d1, d2] : (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x275: { [n: number]: Base; } = undefined || [d1, d2]; ->x275 : { [n: number]: Base; }, Symbol(x275, Decl(generatedContextualTyping.ts, 272, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 272, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x275 : { [n: number]: Base; } +>n : number +>Base : Base >undefined || [d1, d2] : (Derived1 | Derived2)[] ->undefined : undefined, Symbol(undefined) +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x276: {n: Base[]; } = undefined || { n: [d1, d2] }; ->x276 : { n: Base[]; }, Symbol(x276, Decl(generatedContextualTyping.ts, 273, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 273, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x276 : { n: Base[]; } +>n : Base[] +>Base : Base >undefined || { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->undefined : undefined, Symbol(undefined) +>undefined : undefined >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 273, 41)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x277: () => Base[] = function() { return [d1, d2] } || function() { return [d1, d2] }; ->x277 : () => Base[], Symbol(x277, Decl(generatedContextualTyping.ts, 274, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x277 : () => Base[] +>Base : Base >function() { return [d1, d2] } || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x278: () => Base[] = function named() { return [d1, d2] } || function named() { return [d1, d2] }; ->x278 : () => Base[], Symbol(x278, Decl(generatedContextualTyping.ts, 275, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x278 : () => Base[] +>Base : Base >function named() { return [d1, d2] } || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 275, 24)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 275, 64)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x279: { (): Base[]; } = function() { return [d1, d2] } || function() { return [d1, d2] }; ->x279 : () => Base[], Symbol(x279, Decl(generatedContextualTyping.ts, 276, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x279 : () => Base[] +>Base : Base >function() { return [d1, d2] } || function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x280: { (): Base[]; } = function named() { return [d1, d2] } || function named() { return [d1, d2] }; ->x280 : () => Base[], Symbol(x280, Decl(generatedContextualTyping.ts, 277, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x280 : () => Base[] +>Base : Base >function named() { return [d1, d2] } || function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 277, 27)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 277, 67)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x281: Base[] = [d1, d2] || [d1, d2]; ->x281 : Base[], Symbol(x281, Decl(generatedContextualTyping.ts, 278, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x281 : Base[] +>Base : Base >[d1, d2] || [d1, d2] : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x282: Array = [d1, d2] || [d1, d2]; ->x282 : Base[], Symbol(x282, Decl(generatedContextualTyping.ts, 279, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x282 : Base[] +>Array : T[] +>Base : Base >[d1, d2] || [d1, d2] : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x283: { [n: number]: Base; } = [d1, d2] || [d1, d2]; ->x283 : { [n: number]: Base; }, Symbol(x283, Decl(generatedContextualTyping.ts, 280, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 280, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x283 : { [n: number]: Base; } +>n : number +>Base : Base >[d1, d2] || [d1, d2] : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x284: {n: Base[]; } = { n: [d1, d2] } || { n: [d1, d2] }; ->x284 : { n: Base[]; }, Symbol(x284, Decl(generatedContextualTyping.ts, 281, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 281, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x284 : { n: Base[]; } +>n : Base[] +>Base : Base >{ n: [d1, d2] } || { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 281, 28)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 281, 47)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x285: () => Base[] = true ? () => [d1, d2] : () => [d1, d2]; ->x285 : () => Base[], Symbol(x285, Decl(generatedContextualTyping.ts, 282, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x285 : () => Base[] +>Base : Base >true ? () => [d1, d2] : () => [d1, d2] : () => (Derived1 | Derived2)[] >true : boolean >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x286: () => Base[] = true ? function() { return [d1, d2] } : function() { return [d1, d2] }; ->x286 : () => Base[], Symbol(x286, Decl(generatedContextualTyping.ts, 283, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x286 : () => Base[] +>Base : Base >true ? function() { return [d1, d2] } : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x287: () => Base[] = true ? function named() { return [d1, d2] } : function named() { return [d1, d2] }; ->x287 : () => Base[], Symbol(x287, Decl(generatedContextualTyping.ts, 284, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x287 : () => Base[] +>Base : Base >true ? function named() { return [d1, d2] } : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 284, 31)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 284, 70)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x288: { (): Base[]; } = true ? () => [d1, d2] : () => [d1, d2]; ->x288 : () => Base[], Symbol(x288, Decl(generatedContextualTyping.ts, 285, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x288 : () => Base[] +>Base : Base >true ? () => [d1, d2] : () => [d1, d2] : () => (Derived1 | Derived2)[] >true : boolean >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x289: { (): Base[]; } = true ? function() { return [d1, d2] } : function() { return [d1, d2] }; ->x289 : () => Base[], Symbol(x289, Decl(generatedContextualTyping.ts, 286, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x289 : () => Base[] +>Base : Base >true ? function() { return [d1, d2] } : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x290: { (): Base[]; } = true ? function named() { return [d1, d2] } : function named() { return [d1, d2] }; ->x290 : () => Base[], Symbol(x290, Decl(generatedContextualTyping.ts, 287, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x290 : () => Base[] +>Base : Base >true ? function named() { return [d1, d2] } : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 287, 34)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 287, 73)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x291: Base[] = true ? [d1, d2] : [d1, d2]; ->x291 : Base[], Symbol(x291, Decl(generatedContextualTyping.ts, 288, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x291 : Base[] +>Base : Base >true ? [d1, d2] : [d1, d2] : (Derived1 | Derived2)[] >true : boolean >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x292: Array = true ? [d1, d2] : [d1, d2]; ->x292 : Base[], Symbol(x292, Decl(generatedContextualTyping.ts, 289, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x292 : Base[] +>Array : T[] +>Base : Base >true ? [d1, d2] : [d1, d2] : (Derived1 | Derived2)[] >true : boolean >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x293: { [n: number]: Base; } = true ? [d1, d2] : [d1, d2]; ->x293 : { [n: number]: Base; }, Symbol(x293, Decl(generatedContextualTyping.ts, 290, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 290, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x293 : { [n: number]: Base; } +>n : number +>Base : Base >true ? [d1, d2] : [d1, d2] : (Derived1 | Derived2)[] >true : boolean >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x294: {n: Base[]; } = true ? { n: [d1, d2] } : { n: [d1, d2] }; ->x294 : { n: Base[]; }, Symbol(x294, Decl(generatedContextualTyping.ts, 291, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 291, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x294 : { n: Base[]; } +>n : Base[] +>Base : Base >true ? { n: [d1, d2] } : { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } >true : boolean >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 291, 35)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 291, 53)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x295: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : n => { var n: Base[]; return null; }; ->x295 : (s: Base[]) => any, Symbol(x295, Decl(generatedContextualTyping.ts, 292, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 292, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x295 : (s: Base[]) => any +>s : Base[] +>Base : Base >true ? n => { var n: Base[]; return null; } : n => { var n: Base[]; return null; } : (n: Base[]) => any >true : boolean >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 292, 37), Decl(generatedContextualTyping.ts, 292, 48)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 292, 37), Decl(generatedContextualTyping.ts, 292, 48)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 292, 76), Decl(generatedContextualTyping.ts, 292, 87)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 292, 76), Decl(generatedContextualTyping.ts, 292, 87)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x296: Genric = true ? { func: n => { return [d1, d2]; } } : { func: n => { return [d1, d2]; } }; ->x296 : Genric, Symbol(x296, Decl(generatedContextualTyping.ts, 293, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x296 : Genric +>Genric : Genric +>Base : Base >true ? { func: n => { return [d1, d2]; } } : { func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } >true : boolean >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 293, 33)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 293, 39)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 293, 71)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 293, 77)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x297: () => Base[] = true ? undefined : () => [d1, d2]; ->x297 : () => Base[], Symbol(x297, Decl(generatedContextualTyping.ts, 294, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x297 : () => Base[] +>Base : Base >true ? undefined : () => [d1, d2] : () => (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x298: () => Base[] = true ? undefined : function() { return [d1, d2] }; ->x298 : () => Base[], Symbol(x298, Decl(generatedContextualTyping.ts, 295, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x298 : () => Base[] +>Base : Base >true ? undefined : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x299: () => Base[] = true ? undefined : function named() { return [d1, d2] }; ->x299 : () => Base[], Symbol(x299, Decl(generatedContextualTyping.ts, 296, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x299 : () => Base[] +>Base : Base >true ? undefined : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 296, 43)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x300: { (): Base[]; } = true ? undefined : () => [d1, d2]; ->x300 : () => Base[], Symbol(x300, Decl(generatedContextualTyping.ts, 297, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x300 : () => Base[] +>Base : Base >true ? undefined : () => [d1, d2] : () => (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x301: { (): Base[]; } = true ? undefined : function() { return [d1, d2] }; ->x301 : () => Base[], Symbol(x301, Decl(generatedContextualTyping.ts, 298, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x301 : () => Base[] +>Base : Base >true ? undefined : function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x302: { (): Base[]; } = true ? undefined : function named() { return [d1, d2] }; ->x302 : () => Base[], Symbol(x302, Decl(generatedContextualTyping.ts, 299, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x302 : () => Base[] +>Base : Base >true ? undefined : function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 299, 46)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x303: Base[] = true ? undefined : [d1, d2]; ->x303 : Base[], Symbol(x303, Decl(generatedContextualTyping.ts, 300, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x303 : Base[] +>Base : Base >true ? undefined : [d1, d2] : (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x304: Array = true ? undefined : [d1, d2]; ->x304 : Base[], Symbol(x304, Decl(generatedContextualTyping.ts, 301, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x304 : Base[] +>Array : T[] +>Base : Base >true ? undefined : [d1, d2] : (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x305: { [n: number]: Base; } = true ? undefined : [d1, d2]; ->x305 : { [n: number]: Base; }, Symbol(x305, Decl(generatedContextualTyping.ts, 302, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 302, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x305 : { [n: number]: Base; } +>n : number +>Base : Base >true ? undefined : [d1, d2] : (Derived1 | Derived2)[] >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x306: {n: Base[]; } = true ? undefined : { n: [d1, d2] }; ->x306 : { n: Base[]; }, Symbol(x306, Decl(generatedContextualTyping.ts, 303, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 303, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x306 : { n: Base[]; } +>n : Base[] +>Base : Base >true ? undefined : { n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 303, 47)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x307: (s: Base[]) => any = true ? undefined : n => { var n: Base[]; return null; }; ->x307 : (s: Base[]) => any, Symbol(x307, Decl(generatedContextualTyping.ts, 304, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 304, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x307 : (s: Base[]) => any +>s : Base[] +>Base : Base >true ? undefined : n => { var n: Base[]; return null; } : (n: Base[]) => any >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 304, 49), Decl(generatedContextualTyping.ts, 304, 60)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 304, 49), Decl(generatedContextualTyping.ts, 304, 60)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x308: Genric = true ? undefined : { func: n => { return [d1, d2]; } }; ->x308 : Genric, Symbol(x308, Decl(generatedContextualTyping.ts, 305, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x308 : Genric +>Genric : Genric +>Base : Base >true ? undefined : { func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } >true : boolean ->undefined : undefined, Symbol(undefined) +>undefined : undefined >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 305, 45)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 305, 51)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x309: () => Base[] = true ? () => [d1, d2] : undefined; ->x309 : () => Base[], Symbol(x309, Decl(generatedContextualTyping.ts, 306, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x309 : () => Base[] +>Base : Base >true ? () => [d1, d2] : undefined : () => (Derived1 | Derived2)[] >true : boolean >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x310: () => Base[] = true ? function() { return [d1, d2] } : undefined; ->x310 : () => Base[], Symbol(x310, Decl(generatedContextualTyping.ts, 307, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x310 : () => Base[] +>Base : Base >true ? function() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] >true : boolean >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x311: () => Base[] = true ? function named() { return [d1, d2] } : undefined; ->x311 : () => Base[], Symbol(x311, Decl(generatedContextualTyping.ts, 308, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x311 : () => Base[] +>Base : Base >true ? function named() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] >true : boolean >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 308, 31)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x312: { (): Base[]; } = true ? () => [d1, d2] : undefined; ->x312 : () => Base[], Symbol(x312, Decl(generatedContextualTyping.ts, 309, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x312 : () => Base[] +>Base : Base >true ? () => [d1, d2] : undefined : () => (Derived1 | Derived2)[] >true : boolean >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x313: { (): Base[]; } = true ? function() { return [d1, d2] } : undefined; ->x313 : () => Base[], Symbol(x313, Decl(generatedContextualTyping.ts, 310, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x313 : () => Base[] +>Base : Base >true ? function() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] >true : boolean >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x314: { (): Base[]; } = true ? function named() { return [d1, d2] } : undefined; ->x314 : () => Base[], Symbol(x314, Decl(generatedContextualTyping.ts, 311, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x314 : () => Base[] +>Base : Base >true ? function named() { return [d1, d2] } : undefined : () => (Derived1 | Derived2)[] >true : boolean >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 311, 34)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x315: Base[] = true ? [d1, d2] : undefined; ->x315 : Base[], Symbol(x315, Decl(generatedContextualTyping.ts, 312, 3)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x315 : Base[] +>Base : Base >true ? [d1, d2] : undefined : (Derived1 | Derived2)[] >true : boolean >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x316: Array = true ? [d1, d2] : undefined; ->x316 : Base[], Symbol(x316, Decl(generatedContextualTyping.ts, 313, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x316 : Base[] +>Array : T[] +>Base : Base >true ? [d1, d2] : undefined : (Derived1 | Derived2)[] >true : boolean >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x317: { [n: number]: Base; } = true ? [d1, d2] : undefined; ->x317 : { [n: number]: Base; }, Symbol(x317, Decl(generatedContextualTyping.ts, 314, 3)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 314, 13)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x317 : { [n: number]: Base; } +>n : number +>Base : Base >true ? [d1, d2] : undefined : (Derived1 | Derived2)[] >true : boolean >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x318: {n: Base[]; } = true ? { n: [d1, d2] } : undefined; ->x318 : { n: Base[]; }, Symbol(x318, Decl(generatedContextualTyping.ts, 315, 3)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 315, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x318 : { n: Base[]; } +>n : Base[] +>Base : Base >true ? { n: [d1, d2] } : undefined : { n: (Derived1 | Derived2)[]; } >true : boolean >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 315, 35)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined var x319: (s: Base[]) => any = true ? n => { var n: Base[]; return null; } : undefined; ->x319 : (s: Base[]) => any, Symbol(x319, Decl(generatedContextualTyping.ts, 316, 3)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 316, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x319 : (s: Base[]) => any +>s : Base[] +>Base : Base >true ? n => { var n: Base[]; return null; } : undefined : (n: Base[]) => any >true : boolean >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 316, 37), Decl(generatedContextualTyping.ts, 316, 48)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 316, 37), Decl(generatedContextualTyping.ts, 316, 48)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null ->undefined : undefined, Symbol(undefined) +>undefined : undefined var x320: Genric = true ? { func: n => { return [d1, d2]; } } : undefined; ->x320 : Genric, Symbol(x320, Decl(generatedContextualTyping.ts, 317, 3)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x320 : Genric +>Genric : Genric +>Base : Base >true ? { func: n => { return [d1, d2]; } } : undefined : { func: (n: Base[]) => (Derived1 | Derived2)[]; } >true : boolean >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 317, 33)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 317, 39)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) ->undefined : undefined, Symbol(undefined) +>d1 : Derived1 +>d2 : Derived2 +>undefined : undefined function x321(n: () => Base[]) { }; x321(() => [d1, d2]); ->x321 : (n: () => Base[]) => void, Symbol(x321, Decl(generatedContextualTyping.ts, 317, 80)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 318, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x321 : (n: () => Base[]) => void +>n : () => Base[] +>Base : Base >x321(() => [d1, d2]) : void ->x321 : (n: () => Base[]) => void, Symbol(x321, Decl(generatedContextualTyping.ts, 317, 80)) +>x321 : (n: () => Base[]) => void >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x322(n: () => Base[]) { }; x322(function() { return [d1, d2] }); ->x322 : (n: () => Base[]) => void, Symbol(x322, Decl(generatedContextualTyping.ts, 318, 57)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 319, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x322 : (n: () => Base[]) => void +>n : () => Base[] +>Base : Base >x322(function() { return [d1, d2] }) : void ->x322 : (n: () => Base[]) => void, Symbol(x322, Decl(generatedContextualTyping.ts, 318, 57)) +>x322 : (n: () => Base[]) => void >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x323(n: () => Base[]) { }; x323(function named() { return [d1, d2] }); ->x323 : (n: () => Base[]) => void, Symbol(x323, Decl(generatedContextualTyping.ts, 319, 73)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 320, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x323 : (n: () => Base[]) => void +>n : () => Base[] +>Base : Base >x323(function named() { return [d1, d2] }) : void ->x323 : (n: () => Base[]) => void, Symbol(x323, Decl(generatedContextualTyping.ts, 319, 73)) +>x323 : (n: () => Base[]) => void >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 320, 41)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x324(n: { (): Base[]; }) { }; x324(() => [d1, d2]); ->x324 : (n: () => Base[]) => void, Symbol(x324, Decl(generatedContextualTyping.ts, 320, 79)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 321, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x324 : (n: () => Base[]) => void +>n : () => Base[] +>Base : Base >x324(() => [d1, d2]) : void ->x324 : (n: () => Base[]) => void, Symbol(x324, Decl(generatedContextualTyping.ts, 320, 79)) +>x324 : (n: () => Base[]) => void >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x325(n: { (): Base[]; }) { }; x325(function() { return [d1, d2] }); ->x325 : (n: () => Base[]) => void, Symbol(x325, Decl(generatedContextualTyping.ts, 321, 60)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 322, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x325 : (n: () => Base[]) => void +>n : () => Base[] +>Base : Base >x325(function() { return [d1, d2] }) : void ->x325 : (n: () => Base[]) => void, Symbol(x325, Decl(generatedContextualTyping.ts, 321, 60)) +>x325 : (n: () => Base[]) => void >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x326(n: { (): Base[]; }) { }; x326(function named() { return [d1, d2] }); ->x326 : (n: () => Base[]) => void, Symbol(x326, Decl(generatedContextualTyping.ts, 322, 76)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 323, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x326 : (n: () => Base[]) => void +>n : () => Base[] +>Base : Base >x326(function named() { return [d1, d2] }) : void ->x326 : (n: () => Base[]) => void, Symbol(x326, Decl(generatedContextualTyping.ts, 322, 76)) +>x326 : (n: () => Base[]) => void >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 323, 44)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x327(n: Base[]) { }; x327([d1, d2]); ->x327 : (n: Base[]) => void, Symbol(x327, Decl(generatedContextualTyping.ts, 323, 82)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 324, 14)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x327 : (n: Base[]) => void +>n : Base[] +>Base : Base >x327([d1, d2]) : void ->x327 : (n: Base[]) => void, Symbol(x327, Decl(generatedContextualTyping.ts, 323, 82)) +>x327 : (n: Base[]) => void >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x328(n: Array) { }; x328([d1, d2]); ->x328 : (n: Base[]) => void, Symbol(x328, Decl(generatedContextualTyping.ts, 324, 45)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 325, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x328 : (n: Base[]) => void +>n : Base[] +>Array : T[] +>Base : Base >x328([d1, d2]) : void ->x328 : (n: Base[]) => void, Symbol(x328, Decl(generatedContextualTyping.ts, 324, 45)) +>x328 : (n: Base[]) => void >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x329(n: { [n: number]: Base; }) { }; x329([d1, d2]); ->x329 : (n: { [n: number]: Base; }) => void, Symbol(x329, Decl(generatedContextualTyping.ts, 325, 50)) ->n : { [n: number]: Base; }, Symbol(n, Decl(generatedContextualTyping.ts, 326, 14)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 326, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x329 : (n: { [n: number]: Base; }) => void +>n : { [n: number]: Base; } +>n : number +>Base : Base >x329([d1, d2]) : void ->x329 : (n: { [n: number]: Base; }) => void, Symbol(x329, Decl(generatedContextualTyping.ts, 325, 50)) +>x329 : (n: { [n: number]: Base; }) => void >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x330(n: {n: Base[]; } ) { }; x330({ n: [d1, d2] }); ->x330 : (n: { n: Base[]; }) => void, Symbol(x330, Decl(generatedContextualTyping.ts, 326, 61)) ->n : { n: Base[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 327, 14)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 327, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x330 : (n: { n: Base[]; }) => void +>n : { n: Base[]; } +>n : Base[] +>Base : Base >x330({ n: [d1, d2] }) : void ->x330 : (n: { n: Base[]; }) => void, Symbol(x330, Decl(generatedContextualTyping.ts, 326, 61)) +>x330 : (n: { n: Base[]; }) => void >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 327, 44)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 function x331(n: (s: Base[]) => any) { }; x331(n => { var n: Base[]; return null; }); ->x331 : (n: (s: Base[]) => any) => void, Symbol(x331, Decl(generatedContextualTyping.ts, 327, 60)) ->n : (s: Base[]) => any, Symbol(n, Decl(generatedContextualTyping.ts, 328, 14)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 328, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x331 : (n: (s: Base[]) => any) => void +>n : (s: Base[]) => any +>s : Base[] +>Base : Base >x331(n => { var n: Base[]; return null; }) : void ->x331 : (n: (s: Base[]) => any) => void, Symbol(x331, Decl(generatedContextualTyping.ts, 327, 60)) +>x331 : (n: (s: Base[]) => any) => void >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 328, 47), Decl(generatedContextualTyping.ts, 328, 57)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 328, 47), Decl(generatedContextualTyping.ts, 328, 57)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null function x332(n: Genric) { }; x332({ func: n => { return [d1, d2]; } }); ->x332 : (n: Genric) => void, Symbol(x332, Decl(generatedContextualTyping.ts, 328, 85)) ->n : Genric, Symbol(n, Decl(generatedContextualTyping.ts, 329, 14)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>x332 : (n: Genric) => void +>n : Genric +>Genric : Genric +>Base : Base >x332({ func: n => { return [d1, d2]; } }) : void ->x332 : (n: Genric) => void, Symbol(x332, Decl(generatedContextualTyping.ts, 328, 85)) +>x332 : (n: Genric) => void >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 329, 42)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 329, 48)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x333 = (n: () => Base[]) => n; x333(() => [d1, d2]); ->x333 : (n: () => Base[]) => () => Base[], Symbol(x333, Decl(generatedContextualTyping.ts, 330, 3)) +>x333 : (n: () => Base[]) => () => Base[] >(n: () => Base[]) => n : (n: () => Base[]) => () => Base[] ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 330, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 330, 12)) +>n : () => Base[] +>Base : Base +>n : () => Base[] >x333(() => [d1, d2]) : () => Base[] ->x333 : (n: () => Base[]) => () => Base[], Symbol(x333, Decl(generatedContextualTyping.ts, 330, 3)) +>x333 : (n: () => Base[]) => () => Base[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x334 = (n: () => Base[]) => n; x334(function() { return [d1, d2] }); ->x334 : (n: () => Base[]) => () => Base[], Symbol(x334, Decl(generatedContextualTyping.ts, 331, 3)) +>x334 : (n: () => Base[]) => () => Base[] >(n: () => Base[]) => n : (n: () => Base[]) => () => Base[] ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 331, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 331, 12)) +>n : () => Base[] +>Base : Base +>n : () => Base[] >x334(function() { return [d1, d2] }) : () => Base[] ->x334 : (n: () => Base[]) => () => Base[], Symbol(x334, Decl(generatedContextualTyping.ts, 331, 3)) +>x334 : (n: () => Base[]) => () => Base[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x335 = (n: () => Base[]) => n; x335(function named() { return [d1, d2] }); ->x335 : (n: () => Base[]) => () => Base[], Symbol(x335, Decl(generatedContextualTyping.ts, 332, 3)) +>x335 : (n: () => Base[]) => () => Base[] >(n: () => Base[]) => n : (n: () => Base[]) => () => Base[] ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 332, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 332, 12)) +>n : () => Base[] +>Base : Base +>n : () => Base[] >x335(function named() { return [d1, d2] }) : () => Base[] ->x335 : (n: () => Base[]) => () => Base[], Symbol(x335, Decl(generatedContextualTyping.ts, 332, 3)) +>x335 : (n: () => Base[]) => () => Base[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 332, 40)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x336 = (n: { (): Base[]; }) => n; x336(() => [d1, d2]); ->x336 : (n: () => Base[]) => () => Base[], Symbol(x336, Decl(generatedContextualTyping.ts, 333, 3)) +>x336 : (n: () => Base[]) => () => Base[] >(n: { (): Base[]; }) => n : (n: () => Base[]) => () => Base[] ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 333, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 333, 12)) +>n : () => Base[] +>Base : Base +>n : () => Base[] >x336(() => [d1, d2]) : () => Base[] ->x336 : (n: () => Base[]) => () => Base[], Symbol(x336, Decl(generatedContextualTyping.ts, 333, 3)) +>x336 : (n: () => Base[]) => () => Base[] >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x337 = (n: { (): Base[]; }) => n; x337(function() { return [d1, d2] }); ->x337 : (n: () => Base[]) => () => Base[], Symbol(x337, Decl(generatedContextualTyping.ts, 334, 3)) +>x337 : (n: () => Base[]) => () => Base[] >(n: { (): Base[]; }) => n : (n: () => Base[]) => () => Base[] ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 334, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 334, 12)) +>n : () => Base[] +>Base : Base +>n : () => Base[] >x337(function() { return [d1, d2] }) : () => Base[] ->x337 : (n: () => Base[]) => () => Base[], Symbol(x337, Decl(generatedContextualTyping.ts, 334, 3)) +>x337 : (n: () => Base[]) => () => Base[] >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x338 = (n: { (): Base[]; }) => n; x338(function named() { return [d1, d2] }); ->x338 : (n: () => Base[]) => () => Base[], Symbol(x338, Decl(generatedContextualTyping.ts, 335, 3)) +>x338 : (n: () => Base[]) => () => Base[] >(n: { (): Base[]; }) => n : (n: () => Base[]) => () => Base[] ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 335, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 335, 12)) +>n : () => Base[] +>Base : Base +>n : () => Base[] >x338(function named() { return [d1, d2] }) : () => Base[] ->x338 : (n: () => Base[]) => () => Base[], Symbol(x338, Decl(generatedContextualTyping.ts, 335, 3)) +>x338 : (n: () => Base[]) => () => Base[] >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 335, 43)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x339 = (n: Base[]) => n; x339([d1, d2]); ->x339 : (n: Base[]) => Base[], Symbol(x339, Decl(generatedContextualTyping.ts, 336, 3)) +>x339 : (n: Base[]) => Base[] >(n: Base[]) => n : (n: Base[]) => Base[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 336, 12)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 336, 12)) +>n : Base[] +>Base : Base +>n : Base[] >x339([d1, d2]) : Base[] ->x339 : (n: Base[]) => Base[], Symbol(x339, Decl(generatedContextualTyping.ts, 336, 3)) +>x339 : (n: Base[]) => Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x340 = (n: Array) => n; x340([d1, d2]); ->x340 : (n: Base[]) => Base[], Symbol(x340, Decl(generatedContextualTyping.ts, 337, 3)) +>x340 : (n: Base[]) => Base[] >(n: Array) => n : (n: Base[]) => Base[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 337, 12)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 337, 12)) +>n : Base[] +>Array : T[] +>Base : Base +>n : Base[] >x340([d1, d2]) : Base[] ->x340 : (n: Base[]) => Base[], Symbol(x340, Decl(generatedContextualTyping.ts, 337, 3)) +>x340 : (n: Base[]) => Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x341 = (n: { [n: number]: Base; }) => n; x341([d1, d2]); ->x341 : (n: { [n: number]: Base; }) => { [n: number]: Base; }, Symbol(x341, Decl(generatedContextualTyping.ts, 338, 3)) +>x341 : (n: { [n: number]: Base; }) => { [n: number]: Base; } >(n: { [n: number]: Base; }) => n : (n: { [n: number]: Base; }) => { [n: number]: Base; } ->n : { [n: number]: Base; }, Symbol(n, Decl(generatedContextualTyping.ts, 338, 12)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 338, 18)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : { [n: number]: Base; }, Symbol(n, Decl(generatedContextualTyping.ts, 338, 12)) +>n : { [n: number]: Base; } +>n : number +>Base : Base +>n : { [n: number]: Base; } >x341([d1, d2]) : { [n: number]: Base; } ->x341 : (n: { [n: number]: Base; }) => { [n: number]: Base; }, Symbol(x341, Decl(generatedContextualTyping.ts, 338, 3)) +>x341 : (n: { [n: number]: Base; }) => { [n: number]: Base; } >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x342 = (n: {n: Base[]; } ) => n; x342({ n: [d1, d2] }); ->x342 : (n: { n: Base[]; }) => { n: Base[]; }, Symbol(x342, Decl(generatedContextualTyping.ts, 339, 3)) +>x342 : (n: { n: Base[]; }) => { n: Base[]; } >(n: {n: Base[]; } ) => n : (n: { n: Base[]; }) => { n: Base[]; } ->n : { n: Base[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 339, 12)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 339, 16)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : { n: Base[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 339, 12)) +>n : { n: Base[]; } +>n : Base[] +>Base : Base +>n : { n: Base[]; } >x342({ n: [d1, d2] }) : { n: Base[]; } ->x342 : (n: { n: Base[]; }) => { n: Base[]; }, Symbol(x342, Decl(generatedContextualTyping.ts, 339, 3)) +>x342 : (n: { n: Base[]; }) => { n: Base[]; } >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 339, 43)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x343 = (n: (s: Base[]) => any) => n; x343(n => { var n: Base[]; return null; }); ->x343 : (n: (s: Base[]) => any) => (s: Base[]) => any, Symbol(x343, Decl(generatedContextualTyping.ts, 340, 3)) +>x343 : (n: (s: Base[]) => any) => (s: Base[]) => any >(n: (s: Base[]) => any) => n : (n: (s: Base[]) => any) => (s: Base[]) => any ->n : (s: Base[]) => any, Symbol(n, Decl(generatedContextualTyping.ts, 340, 12)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 340, 16)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : (s: Base[]) => any, Symbol(n, Decl(generatedContextualTyping.ts, 340, 12)) +>n : (s: Base[]) => any +>s : Base[] +>Base : Base +>n : (s: Base[]) => any >x343(n => { var n: Base[]; return null; }) : (s: Base[]) => any ->x343 : (n: (s: Base[]) => any) => (s: Base[]) => any, Symbol(x343, Decl(generatedContextualTyping.ts, 340, 3)) +>x343 : (n: (s: Base[]) => any) => (s: Base[]) => any >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 340, 46), Decl(generatedContextualTyping.ts, 340, 56)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 340, 46), Decl(generatedContextualTyping.ts, 340, 56)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x344 = (n: Genric) => n; x344({ func: n => { return [d1, d2]; } }); ->x344 : (n: Genric) => Genric, Symbol(x344, Decl(generatedContextualTyping.ts, 341, 3)) +>x344 : (n: Genric) => Genric >(n: Genric) => n : (n: Genric) => Genric ->n : Genric, Symbol(n, Decl(generatedContextualTyping.ts, 341, 12)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) ->n : Genric, Symbol(n, Decl(generatedContextualTyping.ts, 341, 12)) +>n : Genric +>Genric : Genric +>Base : Base +>n : Genric >x344({ func: n => { return [d1, d2]; } }) : Genric ->x344 : (n: Genric) => Genric, Symbol(x344, Decl(generatedContextualTyping.ts, 341, 3)) +>x344 : (n: Genric) => Genric >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 341, 41)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 341, 47)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x345 = function(n: () => Base[]) { }; x345(() => [d1, d2]); ->x345 : (n: () => Base[]) => void, Symbol(x345, Decl(generatedContextualTyping.ts, 342, 3)) +>x345 : (n: () => Base[]) => void >function(n: () => Base[]) { } : (n: () => Base[]) => void ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 342, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : () => Base[] +>Base : Base >x345(() => [d1, d2]) : void ->x345 : (n: () => Base[]) => void, Symbol(x345, Decl(generatedContextualTyping.ts, 342, 3)) +>x345 : (n: () => Base[]) => void >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x346 = function(n: () => Base[]) { }; x346(function() { return [d1, d2] }); ->x346 : (n: () => Base[]) => void, Symbol(x346, Decl(generatedContextualTyping.ts, 343, 3)) +>x346 : (n: () => Base[]) => void >function(n: () => Base[]) { } : (n: () => Base[]) => void ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 343, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : () => Base[] +>Base : Base >x346(function() { return [d1, d2] }) : void ->x346 : (n: () => Base[]) => void, Symbol(x346, Decl(generatedContextualTyping.ts, 343, 3)) +>x346 : (n: () => Base[]) => void >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x347 = function(n: () => Base[]) { }; x347(function named() { return [d1, d2] }); ->x347 : (n: () => Base[]) => void, Symbol(x347, Decl(generatedContextualTyping.ts, 344, 3)) +>x347 : (n: () => Base[]) => void >function(n: () => Base[]) { } : (n: () => Base[]) => void ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 344, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : () => Base[] +>Base : Base >x347(function named() { return [d1, d2] }) : void ->x347 : (n: () => Base[]) => void, Symbol(x347, Decl(generatedContextualTyping.ts, 344, 3)) +>x347 : (n: () => Base[]) => void >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 344, 47)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x348 = function(n: { (): Base[]; }) { }; x348(() => [d1, d2]); ->x348 : (n: () => Base[]) => void, Symbol(x348, Decl(generatedContextualTyping.ts, 345, 3)) +>x348 : (n: () => Base[]) => void >function(n: { (): Base[]; }) { } : (n: () => Base[]) => void ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 345, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : () => Base[] +>Base : Base >x348(() => [d1, d2]) : void ->x348 : (n: () => Base[]) => void, Symbol(x348, Decl(generatedContextualTyping.ts, 345, 3)) +>x348 : (n: () => Base[]) => void >() => [d1, d2] : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x349 = function(n: { (): Base[]; }) { }; x349(function() { return [d1, d2] }); ->x349 : (n: () => Base[]) => void, Symbol(x349, Decl(generatedContextualTyping.ts, 346, 3)) +>x349 : (n: () => Base[]) => void >function(n: { (): Base[]; }) { } : (n: () => Base[]) => void ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 346, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : () => Base[] +>Base : Base >x349(function() { return [d1, d2] }) : void ->x349 : (n: () => Base[]) => void, Symbol(x349, Decl(generatedContextualTyping.ts, 346, 3)) +>x349 : (n: () => Base[]) => void >function() { return [d1, d2] } : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x350 = function(n: { (): Base[]; }) { }; x350(function named() { return [d1, d2] }); ->x350 : (n: () => Base[]) => void, Symbol(x350, Decl(generatedContextualTyping.ts, 347, 3)) +>x350 : (n: () => Base[]) => void >function(n: { (): Base[]; }) { } : (n: () => Base[]) => void ->n : () => Base[], Symbol(n, Decl(generatedContextualTyping.ts, 347, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : () => Base[] +>Base : Base >x350(function named() { return [d1, d2] }) : void ->x350 : (n: () => Base[]) => void, Symbol(x350, Decl(generatedContextualTyping.ts, 347, 3)) +>x350 : (n: () => Base[]) => void >function named() { return [d1, d2] } : () => (Derived1 | Derived2)[] ->named : () => (Derived1 | Derived2)[], Symbol(named, Decl(generatedContextualTyping.ts, 347, 50)) +>named : () => (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x351 = function(n: Base[]) { }; x351([d1, d2]); ->x351 : (n: Base[]) => void, Symbol(x351, Decl(generatedContextualTyping.ts, 348, 3)) +>x351 : (n: Base[]) => void >function(n: Base[]) { } : (n: Base[]) => void ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 348, 20)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>Base : Base >x351([d1, d2]) : void ->x351 : (n: Base[]) => void, Symbol(x351, Decl(generatedContextualTyping.ts, 348, 3)) +>x351 : (n: Base[]) => void >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x352 = function(n: Array) { }; x352([d1, d2]); ->x352 : (n: Base[]) => void, Symbol(x352, Decl(generatedContextualTyping.ts, 349, 3)) +>x352 : (n: Base[]) => void >function(n: Array) { } : (n: Base[]) => void ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 349, 20)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>Array : T[] +>Base : Base >x352([d1, d2]) : void ->x352 : (n: Base[]) => void, Symbol(x352, Decl(generatedContextualTyping.ts, 349, 3)) +>x352 : (n: Base[]) => void >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x353 = function(n: { [n: number]: Base; }) { }; x353([d1, d2]); ->x353 : (n: { [n: number]: Base; }) => void, Symbol(x353, Decl(generatedContextualTyping.ts, 350, 3)) +>x353 : (n: { [n: number]: Base; }) => void >function(n: { [n: number]: Base; }) { } : (n: { [n: number]: Base; }) => void ->n : { [n: number]: Base; }, Symbol(n, Decl(generatedContextualTyping.ts, 350, 20)) ->n : number, Symbol(n, Decl(generatedContextualTyping.ts, 350, 26)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : { [n: number]: Base; } +>n : number +>Base : Base >x353([d1, d2]) : void ->x353 : (n: { [n: number]: Base; }) => void, Symbol(x353, Decl(generatedContextualTyping.ts, 350, 3)) +>x353 : (n: { [n: number]: Base; }) => void >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x354 = function(n: {n: Base[]; } ) { }; x354({ n: [d1, d2] }); ->x354 : (n: { n: Base[]; }) => void, Symbol(x354, Decl(generatedContextualTyping.ts, 351, 3)) +>x354 : (n: { n: Base[]; }) => void >function(n: {n: Base[]; } ) { } : (n: { n: Base[]; }) => void ->n : { n: Base[]; }, Symbol(n, Decl(generatedContextualTyping.ts, 351, 20)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 351, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : { n: Base[]; } +>n : Base[] +>Base : Base >x354({ n: [d1, d2] }) : void ->x354 : (n: { n: Base[]; }) => void, Symbol(x354, Decl(generatedContextualTyping.ts, 351, 3)) +>x354 : (n: { n: Base[]; }) => void >{ n: [d1, d2] } : { n: (Derived1 | Derived2)[]; } ->n : (Derived1 | Derived2)[], Symbol(n, Decl(generatedContextualTyping.ts, 351, 50)) +>n : (Derived1 | Derived2)[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 var x355 = function(n: (s: Base[]) => any) { }; x355(n => { var n: Base[]; return null; }); ->x355 : (n: (s: Base[]) => any) => void, Symbol(x355, Decl(generatedContextualTyping.ts, 352, 3)) +>x355 : (n: (s: Base[]) => any) => void >function(n: (s: Base[]) => any) { } : (n: (s: Base[]) => any) => void ->n : (s: Base[]) => any, Symbol(n, Decl(generatedContextualTyping.ts, 352, 20)) ->s : Base[], Symbol(s, Decl(generatedContextualTyping.ts, 352, 24)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : (s: Base[]) => any +>s : Base[] +>Base : Base >x355(n => { var n: Base[]; return null; }) : void ->x355 : (n: (s: Base[]) => any) => void, Symbol(x355, Decl(generatedContextualTyping.ts, 352, 3)) +>x355 : (n: (s: Base[]) => any) => void >n => { var n: Base[]; return null; } : (n: Base[]) => any ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 352, 53), Decl(generatedContextualTyping.ts, 352, 63)) ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 352, 53), Decl(generatedContextualTyping.ts, 352, 63)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Base[] +>n : Base[] +>Base : Base >null : null var x356 = function(n: Genric) { }; x356({ func: n => { return [d1, d2]; } }); ->x356 : (n: Genric) => void, Symbol(x356, Decl(generatedContextualTyping.ts, 353, 3)) +>x356 : (n: Genric) => void >function(n: Genric) { } : (n: Genric) => void ->n : Genric, Symbol(n, Decl(generatedContextualTyping.ts, 353, 20)) ->Genric : Genric, Symbol(Genric, Decl(generatedContextualTyping.ts, 2, 42)) ->Base : Base, Symbol(Base, Decl(generatedContextualTyping.ts, 0, 0)) +>n : Genric +>Genric : Genric +>Base : Base >x356({ func: n => { return [d1, d2]; } }) : void ->x356 : (n: Genric) => void, Symbol(x356, Decl(generatedContextualTyping.ts, 353, 3)) +>x356 : (n: Genric) => void >{ func: n => { return [d1, d2]; } } : { func: (n: Base[]) => (Derived1 | Derived2)[]; } ->func : (n: Base[]) => (Derived1 | Derived2)[], Symbol(func, Decl(generatedContextualTyping.ts, 353, 48)) +>func : (n: Base[]) => (Derived1 | Derived2)[] >n => { return [d1, d2]; } : (n: Base[]) => (Derived1 | Derived2)[] ->n : Base[], Symbol(n, Decl(generatedContextualTyping.ts, 353, 54)) +>n : Base[] >[d1, d2] : (Derived1 | Derived2)[] ->d1 : Derived1, Symbol(d1, Decl(generatedContextualTyping.ts, 4, 19)) ->d2 : Derived2, Symbol(d2, Decl(generatedContextualTyping.ts, 4, 40)) +>d1 : Derived1 +>d2 : Derived2 diff --git a/tests/baselines/reference/generativeRecursionWithTypeOf.symbols b/tests/baselines/reference/generativeRecursionWithTypeOf.symbols new file mode 100644 index 0000000000000..630923d2c5969 --- /dev/null +++ b/tests/baselines/reference/generativeRecursionWithTypeOf.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/generativeRecursionWithTypeOf.ts === +class C { +>C : Symbol(C, Decl(generativeRecursionWithTypeOf.ts, 0, 0)) +>T : Symbol(T, Decl(generativeRecursionWithTypeOf.ts, 0, 8)) + + static foo(x: number) { } +>foo : Symbol(C.foo, Decl(generativeRecursionWithTypeOf.ts, 0, 12)) +>x : Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 1, 15)) + + type: T; +>type : Symbol(type, Decl(generativeRecursionWithTypeOf.ts, 1, 29)) +>T : Symbol(T, Decl(generativeRecursionWithTypeOf.ts, 0, 8)) +} + +module M { +>M : Symbol(M, Decl(generativeRecursionWithTypeOf.ts, 3, 1)) + + export function f(x: typeof C) { +>f : Symbol(f, Decl(generativeRecursionWithTypeOf.ts, 5, 10)) +>x : Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 6, 22)) +>C : Symbol(C, Decl(generativeRecursionWithTypeOf.ts, 0, 0)) + + return new x(); +>x : Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 6, 22)) +>x : Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 6, 22)) + } +} diff --git a/tests/baselines/reference/generativeRecursionWithTypeOf.types b/tests/baselines/reference/generativeRecursionWithTypeOf.types index 96534420fd655..1447c51358f12 100644 --- a/tests/baselines/reference/generativeRecursionWithTypeOf.types +++ b/tests/baselines/reference/generativeRecursionWithTypeOf.types @@ -1,28 +1,28 @@ === tests/cases/compiler/generativeRecursionWithTypeOf.ts === class C { ->C : C, Symbol(C, Decl(generativeRecursionWithTypeOf.ts, 0, 0)) ->T : T, Symbol(T, Decl(generativeRecursionWithTypeOf.ts, 0, 8)) +>C : C +>T : T static foo(x: number) { } ->foo : (x: number) => void, Symbol(C.foo, Decl(generativeRecursionWithTypeOf.ts, 0, 12)) ->x : number, Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 1, 15)) +>foo : (x: number) => void +>x : number type: T; ->type : T, Symbol(type, Decl(generativeRecursionWithTypeOf.ts, 1, 29)) ->T : T, Symbol(T, Decl(generativeRecursionWithTypeOf.ts, 0, 8)) +>type : T +>T : T } module M { ->M : typeof M, Symbol(M, Decl(generativeRecursionWithTypeOf.ts, 3, 1)) +>M : typeof M export function f(x: typeof C) { ->f : (x: typeof C) => C, Symbol(f, Decl(generativeRecursionWithTypeOf.ts, 5, 10)) ->x : typeof C, Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 6, 22)) ->C : typeof C, Symbol(C, Decl(generativeRecursionWithTypeOf.ts, 0, 0)) +>f : (x: typeof C) => C +>x : typeof C +>C : typeof C return new x(); >new x() : C ->x : typeof C, Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 6, 22)) ->x : typeof C, Symbol(x, Decl(generativeRecursionWithTypeOf.ts, 6, 22)) +>x : typeof C +>x : typeof C } } diff --git a/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.symbols b/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.symbols new file mode 100644 index 0000000000000..05b131090c01a --- /dev/null +++ b/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.symbols @@ -0,0 +1,54 @@ +=== tests/cases/conformance/interfaces/declarationMerging/genericAndNonGenericInterfaceWithTheSameName2.ts === +// generic and non-generic interfaces with the same name do not merge + +module M { +>M : Symbol(M, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 0, 0)) + + interface A { +>A : Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 2, 10)) +>T : Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 3, 16)) + + bar: T; +>bar : Symbol(bar, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 3, 20)) +>T : Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 3, 16)) + } +} + +module M2 { +>M2 : Symbol(M2, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 6, 1)) + + interface A { // ok +>A : Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 8, 11)) + + foo: string; +>foo : Symbol(foo, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 9, 17)) + } +} + +module N { +>N : Symbol(N, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 12, 1)) + + module M { +>M : Symbol(M, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 14, 10)) + + interface A { +>A : Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 15, 14)) +>T : Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 16, 20)) + + bar: T; +>bar : Symbol(bar, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 16, 24)) +>T : Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 16, 20)) + } + } + + module M2 { +>M2 : Symbol(M2, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 19, 5)) + + interface A { // ok +>A : Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 21, 15)) + + foo: string; +>foo : Symbol(foo, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 22, 21)) + } + } +} diff --git a/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.types b/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.types index b57e195c45015..623ac0f970548 100644 --- a/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.types +++ b/tests/baselines/reference/genericAndNonGenericInterfaceWithTheSameName2.types @@ -2,53 +2,53 @@ // generic and non-generic interfaces with the same name do not merge module M { ->M : any, Symbol(M, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 0, 0)) +>M : any interface A { ->A : A, Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 2, 10)) ->T : T, Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 3, 16)) +>A : A +>T : T bar: T; ->bar : T, Symbol(bar, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 3, 20)) ->T : T, Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 3, 16)) +>bar : T +>T : T } } module M2 { ->M2 : any, Symbol(M2, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 6, 1)) +>M2 : any interface A { // ok ->A : A, Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 8, 11)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 9, 17)) +>foo : string } } module N { ->N : any, Symbol(N, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 12, 1)) +>N : any module M { ->M : any, Symbol(M, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 14, 10)) +>M : any interface A { ->A : A, Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 15, 14)) ->T : T, Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 16, 20)) +>A : A +>T : T bar: T; ->bar : T, Symbol(bar, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 16, 24)) ->T : T, Symbol(T, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 16, 20)) +>bar : T +>T : T } } module M2 { ->M2 : any, Symbol(M2, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 19, 5)) +>M2 : any interface A { // ok ->A : A, Symbol(A, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 21, 15)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(genericAndNonGenericInterfaceWithTheSameName2.ts, 22, 21)) +>foo : string } } } diff --git a/tests/baselines/reference/genericAndNonGenericOverload1.symbols b/tests/baselines/reference/genericAndNonGenericOverload1.symbols new file mode 100644 index 0000000000000..dff05785114b4 --- /dev/null +++ b/tests/baselines/reference/genericAndNonGenericOverload1.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/genericAndNonGenericOverload1.ts === +interface callable2 { +>callable2 : Symbol(callable2, Decl(genericAndNonGenericOverload1.ts, 0, 0)) +>T : Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) + + (a: T): T; +>a : Symbol(a, Decl(genericAndNonGenericOverload1.ts, 1, 5)) +>T : Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) +>T : Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) + + (a: T): Z; +>Z : Symbol(Z, Decl(genericAndNonGenericOverload1.ts, 2, 5)) +>a : Symbol(a, Decl(genericAndNonGenericOverload1.ts, 2, 8)) +>T : Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) +>Z : Symbol(Z, Decl(genericAndNonGenericOverload1.ts, 2, 5)) +} +var c2: callable2; +>c2 : Symbol(c2, Decl(genericAndNonGenericOverload1.ts, 4, 3)) +>callable2 : Symbol(callable2, Decl(genericAndNonGenericOverload1.ts, 0, 0)) + +c2(1); +>c2 : Symbol(c2, Decl(genericAndNonGenericOverload1.ts, 4, 3)) + diff --git a/tests/baselines/reference/genericAndNonGenericOverload1.types b/tests/baselines/reference/genericAndNonGenericOverload1.types index d9e09539c74a9..28eeb2d4da03a 100644 --- a/tests/baselines/reference/genericAndNonGenericOverload1.types +++ b/tests/baselines/reference/genericAndNonGenericOverload1.types @@ -1,25 +1,25 @@ === tests/cases/compiler/genericAndNonGenericOverload1.ts === interface callable2 { ->callable2 : callable2, Symbol(callable2, Decl(genericAndNonGenericOverload1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) +>callable2 : callable2 +>T : T (a: T): T; ->a : T, Symbol(a, Decl(genericAndNonGenericOverload1.ts, 1, 5)) ->T : T, Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) ->T : T, Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) +>a : T +>T : T +>T : T (a: T): Z; ->Z : Z, Symbol(Z, Decl(genericAndNonGenericOverload1.ts, 2, 5)) ->a : T, Symbol(a, Decl(genericAndNonGenericOverload1.ts, 2, 8)) ->T : T, Symbol(T, Decl(genericAndNonGenericOverload1.ts, 0, 20)) ->Z : Z, Symbol(Z, Decl(genericAndNonGenericOverload1.ts, 2, 5)) +>Z : Z +>a : T +>T : T +>Z : Z } var c2: callable2; ->c2 : callable2, Symbol(c2, Decl(genericAndNonGenericOverload1.ts, 4, 3)) ->callable2 : callable2, Symbol(callable2, Decl(genericAndNonGenericOverload1.ts, 0, 0)) +>c2 : callable2 +>callable2 : callable2 c2(1); >c2(1) : string ->c2 : callable2, Symbol(c2, Decl(genericAndNonGenericOverload1.ts, 4, 3)) +>c2 : callable2 >1 : number diff --git a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.symbols b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.symbols new file mode 100644 index 0000000000000..b38008c38ce30 --- /dev/null +++ b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/genericArgumentCallSigAssignmentCompat.ts === +module Underscore { +>Underscore : Symbol(Underscore, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 0)) + + export interface Iterator { +>Iterator : Symbol(Iterator, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 19)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 30)) +>U : Symbol(U, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 32)) + + (value: T, index: any, list: any): U; +>value : Symbol(value, Decl(genericArgumentCallSigAssignmentCompat.ts, 2, 9)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 30)) +>index : Symbol(index, Decl(genericArgumentCallSigAssignmentCompat.ts, 2, 18)) +>list : Symbol(list, Decl(genericArgumentCallSigAssignmentCompat.ts, 2, 30)) +>U : Symbol(U, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 32)) + } + + export interface Static { +>Static : Symbol(Static, Decl(genericArgumentCallSigAssignmentCompat.ts, 3, 5)) + + all(list: T[], iterator?: Iterator, context?: any): boolean; +>all : Symbol(all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 12)) +>list : Symbol(list, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 15)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 12)) +>iterator : Symbol(iterator, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 25)) +>Iterator : Symbol(Iterator, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 19)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 12)) +>context : Symbol(context, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 58)) + + identity(value: T): T; +>identity : Symbol(identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 17)) +>value : Symbol(value, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 20)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 17)) +>T : Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 17)) + } +} + +declare var _: Underscore.Static; +>_ : Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) +>Underscore : Symbol(Underscore, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 0)) +>Static : Symbol(Underscore.Static, Decl(genericArgumentCallSigAssignmentCompat.ts, 3, 5)) + +// No error, Call signatures of types '(value: T) => T' and 'Underscore.Iterator<{}, boolean>' are compatible when instantiated with any. +// Ideally, we would not have a generic signature here, because it should be instantiated with {} during inferential typing +_.all([true, 1, null, 'yes'], _.identity); +>_.all : Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>_ : Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) +>all : Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>_.identity : Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) +>_ : Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) +>identity : Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) + +// Ok, because fixing makes us infer boolean for T +_.all([true], _.identity); +>_.all : Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>_ : Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) +>all : Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>_.identity : Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) +>_ : Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) +>identity : Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) + diff --git a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types index 2bf6e528f60f9..c5fd984d32767 100644 --- a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types +++ b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types @@ -1,72 +1,72 @@ === tests/cases/compiler/genericArgumentCallSigAssignmentCompat.ts === module Underscore { ->Underscore : any, Symbol(Underscore, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 0)) +>Underscore : any export interface Iterator { ->Iterator : Iterator, Symbol(Iterator, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 19)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 30)) ->U : U, Symbol(U, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 32)) +>Iterator : Iterator +>T : T +>U : U (value: T, index: any, list: any): U; ->value : T, Symbol(value, Decl(genericArgumentCallSigAssignmentCompat.ts, 2, 9)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 30)) ->index : any, Symbol(index, Decl(genericArgumentCallSigAssignmentCompat.ts, 2, 18)) ->list : any, Symbol(list, Decl(genericArgumentCallSigAssignmentCompat.ts, 2, 30)) ->U : U, Symbol(U, Decl(genericArgumentCallSigAssignmentCompat.ts, 1, 32)) +>value : T +>T : T +>index : any +>list : any +>U : U } export interface Static { ->Static : Static, Symbol(Static, Decl(genericArgumentCallSigAssignmentCompat.ts, 3, 5)) +>Static : Static all(list: T[], iterator?: Iterator, context?: any): boolean; ->all : (list: T[], iterator?: Iterator, context?: any) => boolean, Symbol(all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 12)) ->list : T[], Symbol(list, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 15)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 12)) ->iterator : Iterator, Symbol(iterator, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 25)) ->Iterator : Iterator, Symbol(Iterator, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 19)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 12)) ->context : any, Symbol(context, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 58)) +>all : (list: T[], iterator?: Iterator, context?: any) => boolean +>T : T +>list : T[] +>T : T +>iterator : Iterator +>Iterator : Iterator +>T : T +>context : any identity(value: T): T; ->identity : (value: T) => T, Symbol(identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 17)) ->value : T, Symbol(value, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 20)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 17)) ->T : T, Symbol(T, Decl(genericArgumentCallSigAssignmentCompat.ts, 7, 17)) +>identity : (value: T) => T +>T : T +>value : T +>T : T +>T : T } } declare var _: Underscore.Static; ->_ : Underscore.Static, Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) ->Underscore : any, Symbol(Underscore, Decl(genericArgumentCallSigAssignmentCompat.ts, 0, 0)) ->Static : Underscore.Static, Symbol(Underscore.Static, Decl(genericArgumentCallSigAssignmentCompat.ts, 3, 5)) +>_ : Underscore.Static +>Underscore : any +>Static : Underscore.Static // No error, Call signatures of types '(value: T) => T' and 'Underscore.Iterator<{}, boolean>' are compatible when instantiated with any. // Ideally, we would not have a generic signature here, because it should be instantiated with {} during inferential typing _.all([true, 1, null, 'yes'], _.identity); >_.all([true, 1, null, 'yes'], _.identity) : boolean ->_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean, Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) ->_ : Underscore.Static, Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) ->all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean, Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean +>_ : Underscore.Static +>all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean >[true, 1, null, 'yes'] : (string | number | boolean)[] >true : boolean >1 : number >null : null >'yes' : string ->_.identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) ->_ : Underscore.Static, Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) ->identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) +>_.identity : (value: T) => T +>_ : Underscore.Static +>identity : (value: T) => T // Ok, because fixing makes us infer boolean for T _.all([true], _.identity); >_.all([true], _.identity) : boolean ->_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean, Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) ->_ : Underscore.Static, Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) ->all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean, Symbol(Underscore.Static.all, Decl(genericArgumentCallSigAssignmentCompat.ts, 5, 29)) +>_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean +>_ : Underscore.Static +>all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean >[true] : boolean[] >true : boolean ->_.identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) ->_ : Underscore.Static, Symbol(_, Decl(genericArgumentCallSigAssignmentCompat.ts, 11, 11)) ->identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericArgumentCallSigAssignmentCompat.ts, 6, 83)) +>_.identity : (value: T) => T +>_ : Underscore.Static +>identity : (value: T) => T diff --git a/tests/baselines/reference/genericArray0.symbols b/tests/baselines/reference/genericArray0.symbols new file mode 100644 index 0000000000000..8870d60cde8b4 --- /dev/null +++ b/tests/baselines/reference/genericArray0.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericArray0.ts === + + +var x:number[]; +>x : Symbol(x, Decl(genericArray0.ts, 2, 3)) + + +var y = x; +>y : Symbol(y, Decl(genericArray0.ts, 5, 3)) +>x : Symbol(x, Decl(genericArray0.ts, 2, 3)) + +function map() { +>map : Symbol(map, Decl(genericArray0.ts, 5, 10)) +>U : Symbol(U, Decl(genericArray0.ts, 7, 13)) + + var ys: U[] = []; +>ys : Symbol(ys, Decl(genericArray0.ts, 8, 7)) +>U : Symbol(U, Decl(genericArray0.ts, 7, 13)) +} + diff --git a/tests/baselines/reference/genericArray0.types b/tests/baselines/reference/genericArray0.types index 540f4850adc94..bf0155bb9ba66 100644 --- a/tests/baselines/reference/genericArray0.types +++ b/tests/baselines/reference/genericArray0.types @@ -2,20 +2,20 @@ var x:number[]; ->x : number[], Symbol(x, Decl(genericArray0.ts, 2, 3)) +>x : number[] var y = x; ->y : number[], Symbol(y, Decl(genericArray0.ts, 5, 3)) ->x : number[], Symbol(x, Decl(genericArray0.ts, 2, 3)) +>y : number[] +>x : number[] function map() { ->map : () => void, Symbol(map, Decl(genericArray0.ts, 5, 10)) ->U : U, Symbol(U, Decl(genericArray0.ts, 7, 13)) +>map : () => void +>U : U var ys: U[] = []; ->ys : U[], Symbol(ys, Decl(genericArray0.ts, 8, 7)) ->U : U, Symbol(U, Decl(genericArray0.ts, 7, 13)) +>ys : U[] +>U : U >[] : undefined[] } diff --git a/tests/baselines/reference/genericArray1.symbols b/tests/baselines/reference/genericArray1.symbols new file mode 100644 index 0000000000000..b403bd2b72043 --- /dev/null +++ b/tests/baselines/reference/genericArray1.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/genericArray1.ts === +/* +var n: number[]; + +interface Array { +map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; +} + +interface String{ + length: number; +} +*/ + +var lengths = ["a", "b", "c"].map(x => x.length); +>lengths : Symbol(lengths, Decl(genericArray1.ts, 12, 3)) +>["a", "b", "c"].map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>x : Symbol(x, Decl(genericArray1.ts, 12, 34)) +>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : Symbol(x, Decl(genericArray1.ts, 12, 34)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + diff --git a/tests/baselines/reference/genericArray1.types b/tests/baselines/reference/genericArray1.types index a3612c586ea7b..bf44c88f518c6 100644 --- a/tests/baselines/reference/genericArray1.types +++ b/tests/baselines/reference/genericArray1.types @@ -12,17 +12,17 @@ interface String{ */ var lengths = ["a", "b", "c"].map(x => x.length); ->lengths : number[], Symbol(lengths, Decl(genericArray1.ts, 12, 3)) +>lengths : number[] >["a", "b", "c"].map(x => x.length) : number[] ->["a", "b", "c"].map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>["a", "b", "c"].map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] >["a", "b", "c"] : string[] >"a" : string >"b" : string >"c" : string ->map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] >x => x.length : (x: string) => number ->x : string, Symbol(x, Decl(genericArray1.ts, 12, 34)) ->x.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->x : string, Symbol(x, Decl(genericArray1.ts, 12, 34)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : string +>x.length : number +>x : string +>length : number diff --git a/tests/baselines/reference/genericArrayPropertyAssignment.symbols b/tests/baselines/reference/genericArrayPropertyAssignment.symbols new file mode 100644 index 0000000000000..2c2c202779b65 --- /dev/null +++ b/tests/baselines/reference/genericArrayPropertyAssignment.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/genericArrayPropertyAssignment.ts === +function isEmpty(list: {length:number;}) +>isEmpty : Symbol(isEmpty, Decl(genericArrayPropertyAssignment.ts, 0, 0)) +>list : Symbol(list, Decl(genericArrayPropertyAssignment.ts, 0, 17)) +>length : Symbol(length, Decl(genericArrayPropertyAssignment.ts, 0, 24)) +{ +return list.length ===0; +>list.length : Symbol(length, Decl(genericArrayPropertyAssignment.ts, 0, 24)) +>list : Symbol(list, Decl(genericArrayPropertyAssignment.ts, 0, 17)) +>length : Symbol(length, Decl(genericArrayPropertyAssignment.ts, 0, 24)) +} + +isEmpty([]); // error +>isEmpty : Symbol(isEmpty, Decl(genericArrayPropertyAssignment.ts, 0, 0)) + + diff --git a/tests/baselines/reference/genericArrayPropertyAssignment.types b/tests/baselines/reference/genericArrayPropertyAssignment.types index 375e5e692c1be..6db56dde38142 100644 --- a/tests/baselines/reference/genericArrayPropertyAssignment.types +++ b/tests/baselines/reference/genericArrayPropertyAssignment.types @@ -1,20 +1,20 @@ === tests/cases/compiler/genericArrayPropertyAssignment.ts === function isEmpty(list: {length:number;}) ->isEmpty : (list: { length: number; }) => boolean, Symbol(isEmpty, Decl(genericArrayPropertyAssignment.ts, 0, 0)) ->list : { length: number; }, Symbol(list, Decl(genericArrayPropertyAssignment.ts, 0, 17)) ->length : number, Symbol(length, Decl(genericArrayPropertyAssignment.ts, 0, 24)) +>isEmpty : (list: { length: number; }) => boolean +>list : { length: number; } +>length : number { return list.length ===0; >list.length ===0 : boolean ->list.length : number, Symbol(length, Decl(genericArrayPropertyAssignment.ts, 0, 24)) ->list : { length: number; }, Symbol(list, Decl(genericArrayPropertyAssignment.ts, 0, 17)) ->length : number, Symbol(length, Decl(genericArrayPropertyAssignment.ts, 0, 24)) +>list.length : number +>list : { length: number; } +>length : number >0 : number } isEmpty([]); // error >isEmpty([]) : boolean ->isEmpty : (list: { length: number; }) => boolean, Symbol(isEmpty, Decl(genericArrayPropertyAssignment.ts, 0, 0)) +>isEmpty : (list: { length: number; }) => boolean >[] : undefined[] diff --git a/tests/baselines/reference/genericBaseClassLiteralProperty.symbols b/tests/baselines/reference/genericBaseClassLiteralProperty.symbols new file mode 100644 index 0000000000000..f499e243eaa0b --- /dev/null +++ b/tests/baselines/reference/genericBaseClassLiteralProperty.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/genericBaseClassLiteralProperty.ts === +class BaseClass { +>BaseClass : Symbol(BaseClass, Decl(genericBaseClassLiteralProperty.ts, 0, 0)) +>T : Symbol(T, Decl(genericBaseClassLiteralProperty.ts, 0, 16)) + + public _getValue1: { (): T; }; +>_getValue1 : Symbol(_getValue1, Decl(genericBaseClassLiteralProperty.ts, 0, 20)) +>T : Symbol(T, Decl(genericBaseClassLiteralProperty.ts, 0, 16)) + + public _getValue2: () => T; +>_getValue2 : Symbol(_getValue2, Decl(genericBaseClassLiteralProperty.ts, 1, 34)) +>T : Symbol(T, Decl(genericBaseClassLiteralProperty.ts, 0, 16)) +} + +class SubClass extends BaseClass { +>SubClass : Symbol(SubClass, Decl(genericBaseClassLiteralProperty.ts, 3, 1)) +>BaseClass : Symbol(BaseClass, Decl(genericBaseClassLiteralProperty.ts, 0, 0)) + + public Error(): void { +>Error : Symbol(Error, Decl(genericBaseClassLiteralProperty.ts, 5, 42)) + + var x : number = this._getValue1(); +>x : Symbol(x, Decl(genericBaseClassLiteralProperty.ts, 8, 11)) +>this._getValue1 : Symbol(BaseClass._getValue1, Decl(genericBaseClassLiteralProperty.ts, 0, 20)) +>this : Symbol(SubClass, Decl(genericBaseClassLiteralProperty.ts, 3, 1)) +>_getValue1 : Symbol(BaseClass._getValue1, Decl(genericBaseClassLiteralProperty.ts, 0, 20)) + + var y : number = this._getValue2(); +>y : Symbol(y, Decl(genericBaseClassLiteralProperty.ts, 9, 11)) +>this._getValue2 : Symbol(BaseClass._getValue2, Decl(genericBaseClassLiteralProperty.ts, 1, 34)) +>this : Symbol(SubClass, Decl(genericBaseClassLiteralProperty.ts, 3, 1)) +>_getValue2 : Symbol(BaseClass._getValue2, Decl(genericBaseClassLiteralProperty.ts, 1, 34)) + } +} diff --git a/tests/baselines/reference/genericBaseClassLiteralProperty.types b/tests/baselines/reference/genericBaseClassLiteralProperty.types index a65508b042687..51246348ded95 100644 --- a/tests/baselines/reference/genericBaseClassLiteralProperty.types +++ b/tests/baselines/reference/genericBaseClassLiteralProperty.types @@ -1,36 +1,36 @@ === tests/cases/compiler/genericBaseClassLiteralProperty.ts === class BaseClass { ->BaseClass : BaseClass, Symbol(BaseClass, Decl(genericBaseClassLiteralProperty.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericBaseClassLiteralProperty.ts, 0, 16)) +>BaseClass : BaseClass +>T : T public _getValue1: { (): T; }; ->_getValue1 : () => T, Symbol(_getValue1, Decl(genericBaseClassLiteralProperty.ts, 0, 20)) ->T : T, Symbol(T, Decl(genericBaseClassLiteralProperty.ts, 0, 16)) +>_getValue1 : () => T +>T : T public _getValue2: () => T; ->_getValue2 : () => T, Symbol(_getValue2, Decl(genericBaseClassLiteralProperty.ts, 1, 34)) ->T : T, Symbol(T, Decl(genericBaseClassLiteralProperty.ts, 0, 16)) +>_getValue2 : () => T +>T : T } class SubClass extends BaseClass { ->SubClass : SubClass, Symbol(SubClass, Decl(genericBaseClassLiteralProperty.ts, 3, 1)) ->BaseClass : BaseClass, Symbol(BaseClass, Decl(genericBaseClassLiteralProperty.ts, 0, 0)) +>SubClass : SubClass +>BaseClass : BaseClass public Error(): void { ->Error : () => void, Symbol(Error, Decl(genericBaseClassLiteralProperty.ts, 5, 42)) +>Error : () => void var x : number = this._getValue1(); ->x : number, Symbol(x, Decl(genericBaseClassLiteralProperty.ts, 8, 11)) +>x : number >this._getValue1() : number ->this._getValue1 : () => number, Symbol(BaseClass._getValue1, Decl(genericBaseClassLiteralProperty.ts, 0, 20)) ->this : SubClass, Symbol(SubClass, Decl(genericBaseClassLiteralProperty.ts, 3, 1)) ->_getValue1 : () => number, Symbol(BaseClass._getValue1, Decl(genericBaseClassLiteralProperty.ts, 0, 20)) +>this._getValue1 : () => number +>this : SubClass +>_getValue1 : () => number var y : number = this._getValue2(); ->y : number, Symbol(y, Decl(genericBaseClassLiteralProperty.ts, 9, 11)) +>y : number >this._getValue2() : number ->this._getValue2 : () => number, Symbol(BaseClass._getValue2, Decl(genericBaseClassLiteralProperty.ts, 1, 34)) ->this : SubClass, Symbol(SubClass, Decl(genericBaseClassLiteralProperty.ts, 3, 1)) ->_getValue2 : () => number, Symbol(BaseClass._getValue2, Decl(genericBaseClassLiteralProperty.ts, 1, 34)) +>this._getValue2 : () => number +>this : SubClass +>_getValue2 : () => number } } diff --git a/tests/baselines/reference/genericBaseClassLiteralProperty2.symbols b/tests/baselines/reference/genericBaseClassLiteralProperty2.symbols new file mode 100644 index 0000000000000..5ddccd40e389c --- /dev/null +++ b/tests/baselines/reference/genericBaseClassLiteralProperty2.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/genericBaseClassLiteralProperty2.ts === +class CollectionItem2 { } +>CollectionItem2 : Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) + +class BaseCollection2 { +>BaseCollection2 : Symbol(BaseCollection2, Decl(genericBaseClassLiteralProperty2.ts, 0, 25)) +>TItem : Symbol(TItem, Decl(genericBaseClassLiteralProperty2.ts, 2, 22)) +>CollectionItem2 : Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) + + _itemsByKey: { [key: string]: TItem; }; +>_itemsByKey : Symbol(_itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) +>key : Symbol(key, Decl(genericBaseClassLiteralProperty2.ts, 3, 20)) +>TItem : Symbol(TItem, Decl(genericBaseClassLiteralProperty2.ts, 2, 22)) + + constructor() { + this._itemsByKey = {}; +>this._itemsByKey : Symbol(_itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) +>this : Symbol(BaseCollection2, Decl(genericBaseClassLiteralProperty2.ts, 0, 25)) +>_itemsByKey : Symbol(_itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) + } +} + +class DataView2 extends BaseCollection2 { +>DataView2 : Symbol(DataView2, Decl(genericBaseClassLiteralProperty2.ts, 7, 1)) +>BaseCollection2 : Symbol(BaseCollection2, Decl(genericBaseClassLiteralProperty2.ts, 0, 25)) +>CollectionItem2 : Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) + + fillItems(item: CollectionItem2) { +>fillItems : Symbol(fillItems, Decl(genericBaseClassLiteralProperty2.ts, 9, 58)) +>item : Symbol(item, Decl(genericBaseClassLiteralProperty2.ts, 10, 14)) +>CollectionItem2 : Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) + + this._itemsByKey['dummy'] = item; +>this._itemsByKey : Symbol(BaseCollection2._itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) +>this : Symbol(DataView2, Decl(genericBaseClassLiteralProperty2.ts, 7, 1)) +>_itemsByKey : Symbol(BaseCollection2._itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) +>item : Symbol(item, Decl(genericBaseClassLiteralProperty2.ts, 10, 14)) + } +} + diff --git a/tests/baselines/reference/genericBaseClassLiteralProperty2.types b/tests/baselines/reference/genericBaseClassLiteralProperty2.types index cfa1c4da98eef..4576ffb05dedf 100644 --- a/tests/baselines/reference/genericBaseClassLiteralProperty2.types +++ b/tests/baselines/reference/genericBaseClassLiteralProperty2.types @@ -1,45 +1,45 @@ === tests/cases/compiler/genericBaseClassLiteralProperty2.ts === class CollectionItem2 { } ->CollectionItem2 : CollectionItem2, Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) +>CollectionItem2 : CollectionItem2 class BaseCollection2 { ->BaseCollection2 : BaseCollection2, Symbol(BaseCollection2, Decl(genericBaseClassLiteralProperty2.ts, 0, 25)) ->TItem : TItem, Symbol(TItem, Decl(genericBaseClassLiteralProperty2.ts, 2, 22)) ->CollectionItem2 : CollectionItem2, Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) +>BaseCollection2 : BaseCollection2 +>TItem : TItem +>CollectionItem2 : CollectionItem2 _itemsByKey: { [key: string]: TItem; }; ->_itemsByKey : { [key: string]: TItem; }, Symbol(_itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) ->key : string, Symbol(key, Decl(genericBaseClassLiteralProperty2.ts, 3, 20)) ->TItem : TItem, Symbol(TItem, Decl(genericBaseClassLiteralProperty2.ts, 2, 22)) +>_itemsByKey : { [key: string]: TItem; } +>key : string +>TItem : TItem constructor() { this._itemsByKey = {}; >this._itemsByKey = {} : { [x: string]: undefined; } ->this._itemsByKey : { [key: string]: TItem; }, Symbol(_itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) ->this : BaseCollection2, Symbol(BaseCollection2, Decl(genericBaseClassLiteralProperty2.ts, 0, 25)) ->_itemsByKey : { [key: string]: TItem; }, Symbol(_itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) +>this._itemsByKey : { [key: string]: TItem; } +>this : BaseCollection2 +>_itemsByKey : { [key: string]: TItem; } >{} : { [x: string]: undefined; } } } class DataView2 extends BaseCollection2 { ->DataView2 : DataView2, Symbol(DataView2, Decl(genericBaseClassLiteralProperty2.ts, 7, 1)) ->BaseCollection2 : BaseCollection2, Symbol(BaseCollection2, Decl(genericBaseClassLiteralProperty2.ts, 0, 25)) ->CollectionItem2 : CollectionItem2, Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) +>DataView2 : DataView2 +>BaseCollection2 : BaseCollection2 +>CollectionItem2 : CollectionItem2 fillItems(item: CollectionItem2) { ->fillItems : (item: CollectionItem2) => void, Symbol(fillItems, Decl(genericBaseClassLiteralProperty2.ts, 9, 58)) ->item : CollectionItem2, Symbol(item, Decl(genericBaseClassLiteralProperty2.ts, 10, 14)) ->CollectionItem2 : CollectionItem2, Symbol(CollectionItem2, Decl(genericBaseClassLiteralProperty2.ts, 0, 0)) +>fillItems : (item: CollectionItem2) => void +>item : CollectionItem2 +>CollectionItem2 : CollectionItem2 this._itemsByKey['dummy'] = item; >this._itemsByKey['dummy'] = item : CollectionItem2 >this._itemsByKey['dummy'] : CollectionItem2 ->this._itemsByKey : { [key: string]: CollectionItem2; }, Symbol(BaseCollection2._itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) ->this : DataView2, Symbol(DataView2, Decl(genericBaseClassLiteralProperty2.ts, 7, 1)) ->_itemsByKey : { [key: string]: CollectionItem2; }, Symbol(BaseCollection2._itemsByKey, Decl(genericBaseClassLiteralProperty2.ts, 2, 54)) +>this._itemsByKey : { [key: string]: CollectionItem2; } +>this : DataView2 +>_itemsByKey : { [key: string]: CollectionItem2; } >'dummy' : string ->item : CollectionItem2, Symbol(item, Decl(genericBaseClassLiteralProperty2.ts, 10, 14)) +>item : CollectionItem2 } } diff --git a/tests/baselines/reference/genericCallTypeArgumentInference.symbols b/tests/baselines/reference/genericCallTypeArgumentInference.symbols new file mode 100644 index 0000000000000..2e86bda4ca4a4 --- /dev/null +++ b/tests/baselines/reference/genericCallTypeArgumentInference.symbols @@ -0,0 +1,346 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallTypeArgumentInference.ts === +// Basic type inference with generic calls, no errors expected + +function foo(t: T) { +>foo : Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 0, 0)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 2, 13)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 2, 16)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 2, 13)) + + return t; +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 2, 16)) +} + +var r = foo(''); // string +>r : Symbol(r, Decl(genericCallTypeArgumentInference.ts, 6, 3)) +>foo : Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 0, 0)) + +function foo2(t: T, u: U) { +>foo2 : Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 6, 16)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 8, 14)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 8, 16)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 8, 20)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 8, 14)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 8, 25)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 8, 16)) + + return u; +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 8, 25)) +} + +function foo2b(u: U) { +>foo2b : Symbol(foo2b, Decl(genericCallTypeArgumentInference.ts, 10, 1)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 12, 15)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 12, 17)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 12, 21)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 12, 17)) + + var x: T; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 13, 7)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 12, 15)) + + return x; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 13, 7)) +} + +var r2 = foo2('', 1); // number +>r2 : Symbol(r2, Decl(genericCallTypeArgumentInference.ts, 17, 3)) +>foo2 : Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 6, 16)) + +var r3 = foo2b(1); // {} +>r3 : Symbol(r3, Decl(genericCallTypeArgumentInference.ts, 18, 3)) +>foo2b : Symbol(foo2b, Decl(genericCallTypeArgumentInference.ts, 10, 1)) + +class C { +>C : Symbol(C, Decl(genericCallTypeArgumentInference.ts, 18, 18)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) + + constructor(public t: T, public u: U) { +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 21, 16)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 21, 28)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) + } + + foo(t: T, u: U) { +>foo : Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 22, 5)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 24, 8)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 24, 13)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) + + return t; +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 24, 8)) + } + + foo2(t: T, u: U) { +>foo2 : Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 26, 5)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 28, 9)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 28, 14)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) + + return u; +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 28, 14)) + } + + foo3(t: T, u: U) { +>foo3 : Symbol(foo3, Decl(genericCallTypeArgumentInference.ts, 30, 5)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 32, 9)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 32, 12)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 32, 9)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 32, 17)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) + + return t; +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 32, 12)) + } + + foo4(t: T, u: U) { +>foo4 : Symbol(foo4, Decl(genericCallTypeArgumentInference.ts, 34, 5)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 36, 9)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 36, 12)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 36, 17)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 36, 9)) + + return t; +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 36, 12)) + } + + foo5(t: T, u: U) { +>foo5 : Symbol(foo5, Decl(genericCallTypeArgumentInference.ts, 38, 5)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 40, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 40, 11)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 40, 14)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 40, 9)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 40, 19)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 40, 11)) + + return t; +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 40, 14)) + } + + foo6() { +>foo6 : Symbol(foo6, Decl(genericCallTypeArgumentInference.ts, 42, 5)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 44, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 44, 11)) + + var x: T; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 45, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 44, 9)) + + return x; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 45, 11)) + } + + foo7(u: U) { +>foo7 : Symbol(foo7, Decl(genericCallTypeArgumentInference.ts, 47, 5)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 49, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 49, 11)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 49, 15)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 49, 11)) + + var x: T; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 50, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 49, 9)) + + return x; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 50, 11)) + } + + foo8() { +>foo8 : Symbol(foo8, Decl(genericCallTypeArgumentInference.ts, 52, 5)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 54, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 54, 11)) + + var x: T; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 55, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 54, 9)) + + return x; +>x : Symbol(x, Decl(genericCallTypeArgumentInference.ts, 55, 11)) + } +} + +var c = new C('', 1); +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>C : Symbol(C, Decl(genericCallTypeArgumentInference.ts, 18, 18)) + +var r4 = c.foo('', 1); // string +>r4 : Symbol(r4, Decl(genericCallTypeArgumentInference.ts, 61, 3), Decl(genericCallTypeArgumentInference.ts, 83, 3)) +>c.foo : Symbol(C.foo, Decl(genericCallTypeArgumentInference.ts, 22, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo : Symbol(C.foo, Decl(genericCallTypeArgumentInference.ts, 22, 5)) + +var r5 = c.foo2('', 1); // number +>r5 : Symbol(r5, Decl(genericCallTypeArgumentInference.ts, 62, 3), Decl(genericCallTypeArgumentInference.ts, 84, 3)) +>c.foo2 : Symbol(C.foo2, Decl(genericCallTypeArgumentInference.ts, 26, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo2 : Symbol(C.foo2, Decl(genericCallTypeArgumentInference.ts, 26, 5)) + +var r6 = c.foo3(true, 1); // boolean +>r6 : Symbol(r6, Decl(genericCallTypeArgumentInference.ts, 63, 3), Decl(genericCallTypeArgumentInference.ts, 85, 3)) +>c.foo3 : Symbol(C.foo3, Decl(genericCallTypeArgumentInference.ts, 30, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo3 : Symbol(C.foo3, Decl(genericCallTypeArgumentInference.ts, 30, 5)) + +var r7 = c.foo4('', true); // string +>r7 : Symbol(r7, Decl(genericCallTypeArgumentInference.ts, 64, 3), Decl(genericCallTypeArgumentInference.ts, 86, 3)) +>c.foo4 : Symbol(C.foo4, Decl(genericCallTypeArgumentInference.ts, 34, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo4 : Symbol(C.foo4, Decl(genericCallTypeArgumentInference.ts, 34, 5)) + +var r8 = c.foo5(true, 1); // boolean +>r8 : Symbol(r8, Decl(genericCallTypeArgumentInference.ts, 65, 3), Decl(genericCallTypeArgumentInference.ts, 87, 3)) +>c.foo5 : Symbol(C.foo5, Decl(genericCallTypeArgumentInference.ts, 38, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo5 : Symbol(C.foo5, Decl(genericCallTypeArgumentInference.ts, 38, 5)) + +var r9 = c.foo6(); // {} +>r9 : Symbol(r9, Decl(genericCallTypeArgumentInference.ts, 66, 3), Decl(genericCallTypeArgumentInference.ts, 88, 3)) +>c.foo6 : Symbol(C.foo6, Decl(genericCallTypeArgumentInference.ts, 42, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo6 : Symbol(C.foo6, Decl(genericCallTypeArgumentInference.ts, 42, 5)) + +var r10 = c.foo7(''); // {} +>r10 : Symbol(r10, Decl(genericCallTypeArgumentInference.ts, 67, 3), Decl(genericCallTypeArgumentInference.ts, 89, 3)) +>c.foo7 : Symbol(C.foo7, Decl(genericCallTypeArgumentInference.ts, 47, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo7 : Symbol(C.foo7, Decl(genericCallTypeArgumentInference.ts, 47, 5)) + +var r11 = c.foo8(); // {} +>r11 : Symbol(r11, Decl(genericCallTypeArgumentInference.ts, 68, 3), Decl(genericCallTypeArgumentInference.ts, 90, 3)) +>c.foo8 : Symbol(C.foo8, Decl(genericCallTypeArgumentInference.ts, 52, 5)) +>c : Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>foo8 : Symbol(C.foo8, Decl(genericCallTypeArgumentInference.ts, 52, 5)) + +interface I { +>I : Symbol(I, Decl(genericCallTypeArgumentInference.ts, 68, 19)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) + + new (t: T, u: U); +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 71, 9)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 71, 14)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) + + foo(t: T, u: U): T; +>foo : Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 71, 21)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 72, 8)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 72, 13)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) + + foo2(t: T, u: U): U; +>foo2 : Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 72, 23)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 73, 9)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 73, 14)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) + + foo3(t: T, u: U): T; +>foo3 : Symbol(foo3, Decl(genericCallTypeArgumentInference.ts, 73, 24)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 74, 9)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 74, 12)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 74, 9)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 74, 17)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 74, 9)) + + foo4(t: T, u: U): T; +>foo4 : Symbol(foo4, Decl(genericCallTypeArgumentInference.ts, 74, 27)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 75, 9)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 75, 12)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 75, 17)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 75, 9)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) + + foo5(t: T, u: U): T; +>foo5 : Symbol(foo5, Decl(genericCallTypeArgumentInference.ts, 75, 27)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 76, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 76, 11)) +>t : Symbol(t, Decl(genericCallTypeArgumentInference.ts, 76, 15)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 76, 9)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 76, 20)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 76, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 76, 9)) + + foo6(): T; +>foo6 : Symbol(foo6, Decl(genericCallTypeArgumentInference.ts, 76, 30)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 77, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 77, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 77, 9)) + + foo7(u: U): T; +>foo7 : Symbol(foo7, Decl(genericCallTypeArgumentInference.ts, 77, 20)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 78, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 78, 11)) +>u : Symbol(u, Decl(genericCallTypeArgumentInference.ts, 78, 15)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 78, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 78, 9)) + + foo8(): T; +>foo8 : Symbol(foo8, Decl(genericCallTypeArgumentInference.ts, 78, 24)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 79, 9)) +>U : Symbol(U, Decl(genericCallTypeArgumentInference.ts, 79, 11)) +>T : Symbol(T, Decl(genericCallTypeArgumentInference.ts, 79, 9)) +} + +var i: I; +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>I : Symbol(I, Decl(genericCallTypeArgumentInference.ts, 68, 19)) + +var r4 = i.foo('', 1); // string +>r4 : Symbol(r4, Decl(genericCallTypeArgumentInference.ts, 61, 3), Decl(genericCallTypeArgumentInference.ts, 83, 3)) +>i.foo : Symbol(I.foo, Decl(genericCallTypeArgumentInference.ts, 71, 21)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo : Symbol(I.foo, Decl(genericCallTypeArgumentInference.ts, 71, 21)) + +var r5 = i.foo2('', 1); // number +>r5 : Symbol(r5, Decl(genericCallTypeArgumentInference.ts, 62, 3), Decl(genericCallTypeArgumentInference.ts, 84, 3)) +>i.foo2 : Symbol(I.foo2, Decl(genericCallTypeArgumentInference.ts, 72, 23)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo2 : Symbol(I.foo2, Decl(genericCallTypeArgumentInference.ts, 72, 23)) + +var r6 = i.foo3(true, 1); // boolean +>r6 : Symbol(r6, Decl(genericCallTypeArgumentInference.ts, 63, 3), Decl(genericCallTypeArgumentInference.ts, 85, 3)) +>i.foo3 : Symbol(I.foo3, Decl(genericCallTypeArgumentInference.ts, 73, 24)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo3 : Symbol(I.foo3, Decl(genericCallTypeArgumentInference.ts, 73, 24)) + +var r7 = i.foo4('', true); // string +>r7 : Symbol(r7, Decl(genericCallTypeArgumentInference.ts, 64, 3), Decl(genericCallTypeArgumentInference.ts, 86, 3)) +>i.foo4 : Symbol(I.foo4, Decl(genericCallTypeArgumentInference.ts, 74, 27)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo4 : Symbol(I.foo4, Decl(genericCallTypeArgumentInference.ts, 74, 27)) + +var r8 = i.foo5(true, 1); // boolean +>r8 : Symbol(r8, Decl(genericCallTypeArgumentInference.ts, 65, 3), Decl(genericCallTypeArgumentInference.ts, 87, 3)) +>i.foo5 : Symbol(I.foo5, Decl(genericCallTypeArgumentInference.ts, 75, 27)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo5 : Symbol(I.foo5, Decl(genericCallTypeArgumentInference.ts, 75, 27)) + +var r9 = i.foo6(); // {} +>r9 : Symbol(r9, Decl(genericCallTypeArgumentInference.ts, 66, 3), Decl(genericCallTypeArgumentInference.ts, 88, 3)) +>i.foo6 : Symbol(I.foo6, Decl(genericCallTypeArgumentInference.ts, 76, 30)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo6 : Symbol(I.foo6, Decl(genericCallTypeArgumentInference.ts, 76, 30)) + +var r10 = i.foo7(''); // {} +>r10 : Symbol(r10, Decl(genericCallTypeArgumentInference.ts, 67, 3), Decl(genericCallTypeArgumentInference.ts, 89, 3)) +>i.foo7 : Symbol(I.foo7, Decl(genericCallTypeArgumentInference.ts, 77, 20)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo7 : Symbol(I.foo7, Decl(genericCallTypeArgumentInference.ts, 77, 20)) + +var r11 = i.foo8(); // {} +>r11 : Symbol(r11, Decl(genericCallTypeArgumentInference.ts, 68, 3), Decl(genericCallTypeArgumentInference.ts, 90, 3)) +>i.foo8 : Symbol(I.foo8, Decl(genericCallTypeArgumentInference.ts, 78, 24)) +>i : Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) +>foo8 : Symbol(I.foo8, Decl(genericCallTypeArgumentInference.ts, 78, 24)) + diff --git a/tests/baselines/reference/genericCallTypeArgumentInference.types b/tests/baselines/reference/genericCallTypeArgumentInference.types index 936a870d05478..0208ec74f1e77 100644 --- a/tests/baselines/reference/genericCallTypeArgumentInference.types +++ b/tests/baselines/reference/genericCallTypeArgumentInference.types @@ -2,393 +2,393 @@ // Basic type inference with generic calls, no errors expected function foo(t: T) { ->foo : (t: T) => T, Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 2, 13)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 2, 16)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 2, 13)) +>foo : (t: T) => T +>T : T +>t : T +>T : T return t; ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 2, 16)) +>t : T } var r = foo(''); // string ->r : string, Symbol(r, Decl(genericCallTypeArgumentInference.ts, 6, 3)) +>r : string >foo('') : string ->foo : (t: T) => T, Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 0, 0)) +>foo : (t: T) => T >'' : string function foo2(t: T, u: U) { ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 6, 16)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 8, 14)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 8, 16)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 8, 20)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 8, 14)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 8, 25)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 8, 16)) +>foo2 : (t: T, u: U) => U +>T : T +>U : U +>t : T +>T : T +>u : U +>U : U return u; ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 8, 25)) +>u : U } function foo2b(u: U) { ->foo2b : (u: U) => T, Symbol(foo2b, Decl(genericCallTypeArgumentInference.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 12, 15)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 12, 17)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 12, 21)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 12, 17)) +>foo2b : (u: U) => T +>T : T +>U : U +>u : U +>U : U var x: T; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 13, 7)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 12, 15)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 13, 7)) +>x : T } var r2 = foo2('', 1); // number ->r2 : number, Symbol(r2, Decl(genericCallTypeArgumentInference.ts, 17, 3)) +>r2 : number >foo2('', 1) : number ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 6, 16)) +>foo2 : (t: T, u: U) => U >'' : string >1 : number var r3 = foo2b(1); // {} ->r3 : {}, Symbol(r3, Decl(genericCallTypeArgumentInference.ts, 18, 3)) +>r3 : {} >foo2b(1) : {} ->foo2b : (u: U) => T, Symbol(foo2b, Decl(genericCallTypeArgumentInference.ts, 10, 1)) +>foo2b : (u: U) => T >1 : number class C { ->C : C, Symbol(C, Decl(genericCallTypeArgumentInference.ts, 18, 18)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) +>C : C +>T : T +>U : U constructor(public t: T, public u: U) { ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 21, 16)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 21, 28)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) +>t : T +>T : T +>u : U +>U : U } foo(t: T, u: U) { ->foo : (t: T, u: U) => T, Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 22, 5)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 24, 8)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 24, 13)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) +>foo : (t: T, u: U) => T +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 24, 8)) +>t : T } foo2(t: T, u: U) { ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 26, 5)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 28, 9)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 28, 14)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) +>foo2 : (t: T, u: U) => U +>t : T +>T : T +>u : U +>U : U return u; ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 28, 14)) +>u : U } foo3(t: T, u: U) { ->foo3 : (t: T, u: U) => T, Symbol(foo3, Decl(genericCallTypeArgumentInference.ts, 30, 5)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 32, 9)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 32, 12)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 32, 9)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 32, 17)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 20, 10)) +>foo3 : (t: T, u: U) => T +>T : T +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 32, 12)) +>t : T } foo4(t: T, u: U) { ->foo4 : (t: T, u: U) => T, Symbol(foo4, Decl(genericCallTypeArgumentInference.ts, 34, 5)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 36, 9)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 36, 12)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 20, 8)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 36, 17)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 36, 9)) +>foo4 : (t: T, u: U) => T +>U : U +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 36, 12)) +>t : T } foo5(t: T, u: U) { ->foo5 : (t: T, u: U) => T, Symbol(foo5, Decl(genericCallTypeArgumentInference.ts, 38, 5)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 40, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 40, 11)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 40, 14)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 40, 9)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 40, 19)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 40, 11)) +>foo5 : (t: T, u: U) => T +>T : T +>U : U +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 40, 14)) +>t : T } foo6() { ->foo6 : () => T, Symbol(foo6, Decl(genericCallTypeArgumentInference.ts, 42, 5)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 44, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 44, 11)) +>foo6 : () => T +>T : T +>U : U var x: T; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 45, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 44, 9)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 45, 11)) +>x : T } foo7(u: U) { ->foo7 : (u: U) => T, Symbol(foo7, Decl(genericCallTypeArgumentInference.ts, 47, 5)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 49, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 49, 11)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 49, 15)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 49, 11)) +>foo7 : (u: U) => T +>T : T +>U : U +>u : U +>U : U var x: T; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 50, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 49, 9)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 50, 11)) +>x : T } foo8() { ->foo8 : () => T, Symbol(foo8, Decl(genericCallTypeArgumentInference.ts, 52, 5)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 54, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 54, 11)) +>foo8 : () => T +>T : T +>U : U var x: T; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 55, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 54, 9)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallTypeArgumentInference.ts, 55, 11)) +>x : T } } var c = new C('', 1); ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) +>c : C >new C('', 1) : C ->C : typeof C, Symbol(C, Decl(genericCallTypeArgumentInference.ts, 18, 18)) +>C : typeof C >'' : string >1 : number var r4 = c.foo('', 1); // string ->r4 : string, Symbol(r4, Decl(genericCallTypeArgumentInference.ts, 61, 3), Decl(genericCallTypeArgumentInference.ts, 83, 3)) +>r4 : string >c.foo('', 1) : string ->c.foo : (t: string, u: number) => string, Symbol(C.foo, Decl(genericCallTypeArgumentInference.ts, 22, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo : (t: string, u: number) => string, Symbol(C.foo, Decl(genericCallTypeArgumentInference.ts, 22, 5)) +>c.foo : (t: string, u: number) => string +>c : C +>foo : (t: string, u: number) => string >'' : string >1 : number var r5 = c.foo2('', 1); // number ->r5 : number, Symbol(r5, Decl(genericCallTypeArgumentInference.ts, 62, 3), Decl(genericCallTypeArgumentInference.ts, 84, 3)) +>r5 : number >c.foo2('', 1) : number ->c.foo2 : (t: string, u: number) => number, Symbol(C.foo2, Decl(genericCallTypeArgumentInference.ts, 26, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo2 : (t: string, u: number) => number, Symbol(C.foo2, Decl(genericCallTypeArgumentInference.ts, 26, 5)) +>c.foo2 : (t: string, u: number) => number +>c : C +>foo2 : (t: string, u: number) => number >'' : string >1 : number var r6 = c.foo3(true, 1); // boolean ->r6 : boolean, Symbol(r6, Decl(genericCallTypeArgumentInference.ts, 63, 3), Decl(genericCallTypeArgumentInference.ts, 85, 3)) +>r6 : boolean >c.foo3(true, 1) : boolean ->c.foo3 : (t: T, u: number) => T, Symbol(C.foo3, Decl(genericCallTypeArgumentInference.ts, 30, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo3 : (t: T, u: number) => T, Symbol(C.foo3, Decl(genericCallTypeArgumentInference.ts, 30, 5)) +>c.foo3 : (t: T, u: number) => T +>c : C +>foo3 : (t: T, u: number) => T >true : boolean >1 : number var r7 = c.foo4('', true); // string ->r7 : string, Symbol(r7, Decl(genericCallTypeArgumentInference.ts, 64, 3), Decl(genericCallTypeArgumentInference.ts, 86, 3)) +>r7 : string >c.foo4('', true) : string ->c.foo4 : (t: string, u: U) => string, Symbol(C.foo4, Decl(genericCallTypeArgumentInference.ts, 34, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo4 : (t: string, u: U) => string, Symbol(C.foo4, Decl(genericCallTypeArgumentInference.ts, 34, 5)) +>c.foo4 : (t: string, u: U) => string +>c : C +>foo4 : (t: string, u: U) => string >'' : string >true : boolean var r8 = c.foo5(true, 1); // boolean ->r8 : boolean, Symbol(r8, Decl(genericCallTypeArgumentInference.ts, 65, 3), Decl(genericCallTypeArgumentInference.ts, 87, 3)) +>r8 : boolean >c.foo5(true, 1) : boolean ->c.foo5 : (t: T, u: U) => T, Symbol(C.foo5, Decl(genericCallTypeArgumentInference.ts, 38, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo5 : (t: T, u: U) => T, Symbol(C.foo5, Decl(genericCallTypeArgumentInference.ts, 38, 5)) +>c.foo5 : (t: T, u: U) => T +>c : C +>foo5 : (t: T, u: U) => T >true : boolean >1 : number var r9 = c.foo6(); // {} ->r9 : {}, Symbol(r9, Decl(genericCallTypeArgumentInference.ts, 66, 3), Decl(genericCallTypeArgumentInference.ts, 88, 3)) +>r9 : {} >c.foo6() : {} ->c.foo6 : () => T, Symbol(C.foo6, Decl(genericCallTypeArgumentInference.ts, 42, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo6 : () => T, Symbol(C.foo6, Decl(genericCallTypeArgumentInference.ts, 42, 5)) +>c.foo6 : () => T +>c : C +>foo6 : () => T var r10 = c.foo7(''); // {} ->r10 : {}, Symbol(r10, Decl(genericCallTypeArgumentInference.ts, 67, 3), Decl(genericCallTypeArgumentInference.ts, 89, 3)) +>r10 : {} >c.foo7('') : {} ->c.foo7 : (u: U) => T, Symbol(C.foo7, Decl(genericCallTypeArgumentInference.ts, 47, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo7 : (u: U) => T, Symbol(C.foo7, Decl(genericCallTypeArgumentInference.ts, 47, 5)) +>c.foo7 : (u: U) => T +>c : C +>foo7 : (u: U) => T >'' : string var r11 = c.foo8(); // {} ->r11 : {}, Symbol(r11, Decl(genericCallTypeArgumentInference.ts, 68, 3), Decl(genericCallTypeArgumentInference.ts, 90, 3)) +>r11 : {} >c.foo8() : {} ->c.foo8 : () => T, Symbol(C.foo8, Decl(genericCallTypeArgumentInference.ts, 52, 5)) ->c : C, Symbol(c, Decl(genericCallTypeArgumentInference.ts, 60, 3)) ->foo8 : () => T, Symbol(C.foo8, Decl(genericCallTypeArgumentInference.ts, 52, 5)) +>c.foo8 : () => T +>c : C +>foo8 : () => T interface I { ->I : I, Symbol(I, Decl(genericCallTypeArgumentInference.ts, 68, 19)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) +>I : I +>T : T +>U : U new (t: T, u: U); ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 71, 9)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 71, 14)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) +>t : T +>T : T +>u : U +>U : U foo(t: T, u: U): T; ->foo : (t: T, u: U) => T, Symbol(foo, Decl(genericCallTypeArgumentInference.ts, 71, 21)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 72, 8)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 72, 13)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>foo : (t: T, u: U) => T +>t : T +>T : T +>u : U +>U : U +>T : T foo2(t: T, u: U): U; ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallTypeArgumentInference.ts, 72, 23)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 73, 9)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 73, 14)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) +>foo2 : (t: T, u: U) => U +>t : T +>T : T +>u : U +>U : U +>U : U foo3(t: T, u: U): T; ->foo3 : (t: T, u: U) => T, Symbol(foo3, Decl(genericCallTypeArgumentInference.ts, 73, 24)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 74, 9)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 74, 12)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 74, 9)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 74, 17)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 70, 14)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 74, 9)) +>foo3 : (t: T, u: U) => T +>T : T +>t : T +>T : T +>u : U +>U : U +>T : T foo4(t: T, u: U): T; ->foo4 : (t: T, u: U) => T, Symbol(foo4, Decl(genericCallTypeArgumentInference.ts, 74, 27)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 75, 9)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 75, 12)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 75, 17)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 75, 9)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 70, 12)) +>foo4 : (t: T, u: U) => T +>U : U +>t : T +>T : T +>u : U +>U : U +>T : T foo5(t: T, u: U): T; ->foo5 : (t: T, u: U) => T, Symbol(foo5, Decl(genericCallTypeArgumentInference.ts, 75, 27)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 76, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 76, 11)) ->t : T, Symbol(t, Decl(genericCallTypeArgumentInference.ts, 76, 15)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 76, 9)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 76, 20)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 76, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 76, 9)) +>foo5 : (t: T, u: U) => T +>T : T +>U : U +>t : T +>T : T +>u : U +>U : U +>T : T foo6(): T; ->foo6 : () => T, Symbol(foo6, Decl(genericCallTypeArgumentInference.ts, 76, 30)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 77, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 77, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 77, 9)) +>foo6 : () => T +>T : T +>U : U +>T : T foo7(u: U): T; ->foo7 : (u: U) => T, Symbol(foo7, Decl(genericCallTypeArgumentInference.ts, 77, 20)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 78, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 78, 11)) ->u : U, Symbol(u, Decl(genericCallTypeArgumentInference.ts, 78, 15)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 78, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 78, 9)) +>foo7 : (u: U) => T +>T : T +>U : U +>u : U +>U : U +>T : T foo8(): T; ->foo8 : () => T, Symbol(foo8, Decl(genericCallTypeArgumentInference.ts, 78, 24)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 79, 9)) ->U : U, Symbol(U, Decl(genericCallTypeArgumentInference.ts, 79, 11)) ->T : T, Symbol(T, Decl(genericCallTypeArgumentInference.ts, 79, 9)) +>foo8 : () => T +>T : T +>U : U +>T : T } var i: I; ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->I : I, Symbol(I, Decl(genericCallTypeArgumentInference.ts, 68, 19)) +>i : I +>I : I var r4 = i.foo('', 1); // string ->r4 : string, Symbol(r4, Decl(genericCallTypeArgumentInference.ts, 61, 3), Decl(genericCallTypeArgumentInference.ts, 83, 3)) +>r4 : string >i.foo('', 1) : string ->i.foo : (t: string, u: number) => string, Symbol(I.foo, Decl(genericCallTypeArgumentInference.ts, 71, 21)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo : (t: string, u: number) => string, Symbol(I.foo, Decl(genericCallTypeArgumentInference.ts, 71, 21)) +>i.foo : (t: string, u: number) => string +>i : I +>foo : (t: string, u: number) => string >'' : string >1 : number var r5 = i.foo2('', 1); // number ->r5 : number, Symbol(r5, Decl(genericCallTypeArgumentInference.ts, 62, 3), Decl(genericCallTypeArgumentInference.ts, 84, 3)) +>r5 : number >i.foo2('', 1) : number ->i.foo2 : (t: string, u: number) => number, Symbol(I.foo2, Decl(genericCallTypeArgumentInference.ts, 72, 23)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo2 : (t: string, u: number) => number, Symbol(I.foo2, Decl(genericCallTypeArgumentInference.ts, 72, 23)) +>i.foo2 : (t: string, u: number) => number +>i : I +>foo2 : (t: string, u: number) => number >'' : string >1 : number var r6 = i.foo3(true, 1); // boolean ->r6 : boolean, Symbol(r6, Decl(genericCallTypeArgumentInference.ts, 63, 3), Decl(genericCallTypeArgumentInference.ts, 85, 3)) +>r6 : boolean >i.foo3(true, 1) : boolean ->i.foo3 : (t: T, u: number) => T, Symbol(I.foo3, Decl(genericCallTypeArgumentInference.ts, 73, 24)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo3 : (t: T, u: number) => T, Symbol(I.foo3, Decl(genericCallTypeArgumentInference.ts, 73, 24)) +>i.foo3 : (t: T, u: number) => T +>i : I +>foo3 : (t: T, u: number) => T >true : boolean >1 : number var r7 = i.foo4('', true); // string ->r7 : string, Symbol(r7, Decl(genericCallTypeArgumentInference.ts, 64, 3), Decl(genericCallTypeArgumentInference.ts, 86, 3)) +>r7 : string >i.foo4('', true) : string ->i.foo4 : (t: string, u: U) => string, Symbol(I.foo4, Decl(genericCallTypeArgumentInference.ts, 74, 27)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo4 : (t: string, u: U) => string, Symbol(I.foo4, Decl(genericCallTypeArgumentInference.ts, 74, 27)) +>i.foo4 : (t: string, u: U) => string +>i : I +>foo4 : (t: string, u: U) => string >'' : string >true : boolean var r8 = i.foo5(true, 1); // boolean ->r8 : boolean, Symbol(r8, Decl(genericCallTypeArgumentInference.ts, 65, 3), Decl(genericCallTypeArgumentInference.ts, 87, 3)) +>r8 : boolean >i.foo5(true, 1) : boolean ->i.foo5 : (t: T, u: U) => T, Symbol(I.foo5, Decl(genericCallTypeArgumentInference.ts, 75, 27)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo5 : (t: T, u: U) => T, Symbol(I.foo5, Decl(genericCallTypeArgumentInference.ts, 75, 27)) +>i.foo5 : (t: T, u: U) => T +>i : I +>foo5 : (t: T, u: U) => T >true : boolean >1 : number var r9 = i.foo6(); // {} ->r9 : {}, Symbol(r9, Decl(genericCallTypeArgumentInference.ts, 66, 3), Decl(genericCallTypeArgumentInference.ts, 88, 3)) +>r9 : {} >i.foo6() : {} ->i.foo6 : () => T, Symbol(I.foo6, Decl(genericCallTypeArgumentInference.ts, 76, 30)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo6 : () => T, Symbol(I.foo6, Decl(genericCallTypeArgumentInference.ts, 76, 30)) +>i.foo6 : () => T +>i : I +>foo6 : () => T var r10 = i.foo7(''); // {} ->r10 : {}, Symbol(r10, Decl(genericCallTypeArgumentInference.ts, 67, 3), Decl(genericCallTypeArgumentInference.ts, 89, 3)) +>r10 : {} >i.foo7('') : {} ->i.foo7 : (u: U) => T, Symbol(I.foo7, Decl(genericCallTypeArgumentInference.ts, 77, 20)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo7 : (u: U) => T, Symbol(I.foo7, Decl(genericCallTypeArgumentInference.ts, 77, 20)) +>i.foo7 : (u: U) => T +>i : I +>foo7 : (u: U) => T >'' : string var r11 = i.foo8(); // {} ->r11 : {}, Symbol(r11, Decl(genericCallTypeArgumentInference.ts, 68, 3), Decl(genericCallTypeArgumentInference.ts, 90, 3)) +>r11 : {} >i.foo8() : {} ->i.foo8 : () => T, Symbol(I.foo8, Decl(genericCallTypeArgumentInference.ts, 78, 24)) ->i : I, Symbol(i, Decl(genericCallTypeArgumentInference.ts, 82, 3)) ->foo8 : () => T, Symbol(I.foo8, Decl(genericCallTypeArgumentInference.ts, 78, 24)) +>i.foo8 : () => T +>i : I +>foo8 : () => T diff --git a/tests/baselines/reference/genericCallWithArrayLiteralArgs.symbols b/tests/baselines/reference/genericCallWithArrayLiteralArgs.symbols new file mode 100644 index 0000000000000..49ccf7ad595f5 --- /dev/null +++ b/tests/baselines/reference/genericCallWithArrayLiteralArgs.symbols @@ -0,0 +1,44 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithArrayLiteralArgs.ts === +function foo(t: T) { +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>T : Symbol(T, Decl(genericCallWithArrayLiteralArgs.ts, 0, 13)) +>t : Symbol(t, Decl(genericCallWithArrayLiteralArgs.ts, 0, 16)) +>T : Symbol(T, Decl(genericCallWithArrayLiteralArgs.ts, 0, 13)) + + return t; +>t : Symbol(t, Decl(genericCallWithArrayLiteralArgs.ts, 0, 16)) +} + +var r = foo([1, 2]); // number[] +>r : Symbol(r, Decl(genericCallWithArrayLiteralArgs.ts, 4, 3), Decl(genericCallWithArrayLiteralArgs.ts, 5, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var r = foo([1, 2]); // number[] +>r : Symbol(r, Decl(genericCallWithArrayLiteralArgs.ts, 4, 3), Decl(genericCallWithArrayLiteralArgs.ts, 5, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var ra = foo([1, 2]); // any[] +>ra : Symbol(ra, Decl(genericCallWithArrayLiteralArgs.ts, 6, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var r2 = foo([]); // any[] +>r2 : Symbol(r2, Decl(genericCallWithArrayLiteralArgs.ts, 7, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var r3 = foo([]); // number[] +>r3 : Symbol(r3, Decl(genericCallWithArrayLiteralArgs.ts, 8, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var r4 = foo([1, '']); // {}[] +>r4 : Symbol(r4, Decl(genericCallWithArrayLiteralArgs.ts, 9, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var r5 = foo([1, '']); // any[] +>r5 : Symbol(r5, Decl(genericCallWithArrayLiteralArgs.ts, 10, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) + +var r6 = foo([1, '']); // Object[] +>r6 : Symbol(r6, Decl(genericCallWithArrayLiteralArgs.ts, 11, 3)) +>foo : Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + diff --git a/tests/baselines/reference/genericCallWithArrayLiteralArgs.types b/tests/baselines/reference/genericCallWithArrayLiteralArgs.types index 03a05a8513a22..48a7150ef4426 100644 --- a/tests/baselines/reference/genericCallWithArrayLiteralArgs.types +++ b/tests/baselines/reference/genericCallWithArrayLiteralArgs.types @@ -1,71 +1,71 @@ === tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithArrayLiteralArgs.ts === function foo(t: T) { ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericCallWithArrayLiteralArgs.ts, 0, 13)) ->t : T, Symbol(t, Decl(genericCallWithArrayLiteralArgs.ts, 0, 16)) ->T : T, Symbol(T, Decl(genericCallWithArrayLiteralArgs.ts, 0, 13)) +>foo : (t: T) => T +>T : T +>t : T +>T : T return t; ->t : T, Symbol(t, Decl(genericCallWithArrayLiteralArgs.ts, 0, 16)) +>t : T } var r = foo([1, 2]); // number[] ->r : number[], Symbol(r, Decl(genericCallWithArrayLiteralArgs.ts, 4, 3), Decl(genericCallWithArrayLiteralArgs.ts, 5, 3)) +>r : number[] >foo([1, 2]) : number[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[1, 2] : number[] >1 : number >2 : number var r = foo([1, 2]); // number[] ->r : number[], Symbol(r, Decl(genericCallWithArrayLiteralArgs.ts, 4, 3), Decl(genericCallWithArrayLiteralArgs.ts, 5, 3)) +>r : number[] >foo([1, 2]) : number[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[1, 2] : number[] >1 : number >2 : number var ra = foo([1, 2]); // any[] ->ra : any[], Symbol(ra, Decl(genericCallWithArrayLiteralArgs.ts, 6, 3)) +>ra : any[] >foo([1, 2]) : any[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[1, 2] : number[] >1 : number >2 : number var r2 = foo([]); // any[] ->r2 : any[], Symbol(r2, Decl(genericCallWithArrayLiteralArgs.ts, 7, 3)) +>r2 : any[] >foo([]) : any[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[] : undefined[] var r3 = foo([]); // number[] ->r3 : number[], Symbol(r3, Decl(genericCallWithArrayLiteralArgs.ts, 8, 3)) +>r3 : number[] >foo([]) : number[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[] : undefined[] var r4 = foo([1, '']); // {}[] ->r4 : (string | number)[], Symbol(r4, Decl(genericCallWithArrayLiteralArgs.ts, 9, 3)) +>r4 : (string | number)[] >foo([1, '']) : (string | number)[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[1, ''] : (string | number)[] >1 : number >'' : string var r5 = foo([1, '']); // any[] ->r5 : any[], Symbol(r5, Decl(genericCallWithArrayLiteralArgs.ts, 10, 3)) +>r5 : any[] >foo([1, '']) : any[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) +>foo : (t: T) => T >[1, ''] : (string | number)[] >1 : number >'' : string var r6 = foo([1, '']); // Object[] ->r6 : Object[], Symbol(r6, Decl(genericCallWithArrayLiteralArgs.ts, 11, 3)) +>r6 : Object[] >foo([1, '']) : Object[] ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithArrayLiteralArgs.ts, 0, 0)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>foo : (t: T) => T +>Object : Object >[1, ''] : (string | number)[] >1 : number >'' : string diff --git a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.symbols b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.symbols new file mode 100644 index 0000000000000..5d419b8f992b9 --- /dev/null +++ b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.symbols @@ -0,0 +1,465 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithConstraintsTypeArgumentInference.ts === +// Basic type inference with generic calls and constraints, no errors expected + +class Base { foo: string; } +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>foo : Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>bar : Symbol(bar, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 28)) + +class Derived2 extends Derived { baz: string; } +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>baz : Symbol(baz, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 4, 32)) + +var b: Base; +>b : Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) + +var d1: Derived; +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) + +var d2: Derived2; +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) + +function foo(t: T) { +>foo : Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 17)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 13)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 29)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 13)) + + return t; +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 29)) +} + +var r = foo(b); // Base +>r : Symbol(r, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 13, 3)) +>foo : Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 17)) +>b : Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) + +var r2 = foo(d1); // Derived +>r2 : Symbol(r2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 14, 3)) +>foo : Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 17)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +function foo2(t: T, u: U) { +>foo2 : Symbol(foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 14, 17)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 14)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 29)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 49)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 14)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 54)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 29)) + + return u; +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 54)) +} + +function foo2b(u: U) { +>foo2b : Symbol(foo2b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 18, 1)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 15)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 30)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 50)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 30)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 21, 7)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 15)) + + return x; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 21, 7)) +} + +function foo2c() { +>foo2c : Symbol(foo2c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 23, 1)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 25, 15)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 25, 30)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 26, 7)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 25, 15)) + + return x; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 26, 7)) +} + +var r3 = foo2b(d1); // Base +>r3 : Symbol(r3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 30, 3)) +>foo2b : Symbol(foo2b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 18, 1)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +var r3b = foo2c(); // Base +>r3b : Symbol(r3b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 31, 3)) +>foo2c : Symbol(foo2c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 23, 1)) + +class C { +>C : Symbol(C, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 31, 18)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) + + constructor(public t: T, public u: U) { +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 34, 16)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 34, 28)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) + } + + foo(t: T, u: U) { +>foo : Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 35, 5)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 37, 8)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 37, 13)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) + + return t; +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 37, 8)) + } + + foo2(t: T, u: U) { +>foo2 : Symbol(foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 39, 5)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 41, 9)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 41, 14)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) + + return u; +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 41, 14)) + } + + foo3(t: T, u: U) { +>foo3 : Symbol(foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 43, 5)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 9)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 28)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 9)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 33)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) + + return t; +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 28)) + } + + foo4(t: T, u: U) { +>foo4 : Symbol(foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 47, 5)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 9)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 29)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 34)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 9)) + + return t; +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 29)) + } + + foo5(t: T, u: U) { +>foo5 : Symbol(foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 9)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 27)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 48)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 9)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 53)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 27)) + + return t; +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 48)) + } + + foo6() { +>foo6 : Symbol(foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 55, 5)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 57, 9)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 57, 27)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 58, 11)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 57, 9)) + + return x; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 58, 11)) + } + + foo7(u: U) { +>foo7 : Symbol(foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 60, 5)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 9)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 24)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 44)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 24)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 63, 11)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 9)) + + return x; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 63, 11)) + } + + foo8() { +>foo8 : Symbol(foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 65, 5)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 67, 9)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 67, 24)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 68, 11)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 67, 9)) + + return x; +>x : Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 68, 11)) + } +} + +var c = new C(b, d1); +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>C : Symbol(C, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 31, 18)) +>b : Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +var r4 = c.foo(d1, d2); // Base +>r4 : Symbol(r4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 74, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 97, 3)) +>c.foo : Symbol(C.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 35, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo : Symbol(C.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 35, 5)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r5 = c.foo2(b, d2); // Derived +>r5 : Symbol(r5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 75, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 98, 3)) +>c.foo2 : Symbol(C.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 39, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo2 : Symbol(C.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 39, 5)) +>b : Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r6 = c.foo3(d1, d1); // Derived +>r6 : Symbol(r6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 76, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 99, 3)) +>c.foo3 : Symbol(C.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 43, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo3 : Symbol(C.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 43, 5)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +var r7 = c.foo4(d1, d2); // Base +>r7 : Symbol(r7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 77, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 100, 3)) +>c.foo4 : Symbol(C.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 47, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo4 : Symbol(C.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 47, 5)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r8 = c.foo5(d1, d2); // Derived +>r8 : Symbol(r8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 78, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 101, 3)) +>c.foo5 : Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo5 : Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r8b = c.foo5(d2, d2); // Derived2 +>r8b : Symbol(r8b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 79, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 102, 3)) +>c.foo5 : Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo5 : Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r9 = c.foo6(); // Derived +>r9 : Symbol(r9, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 80, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 103, 3)) +>c.foo6 : Symbol(C.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 55, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo6 : Symbol(C.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 55, 5)) + +var r10 = c.foo7(d1); // Base +>r10 : Symbol(r10, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 81, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 104, 3)) +>c.foo7 : Symbol(C.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 60, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo7 : Symbol(C.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 60, 5)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +var r11 = c.foo8(); // Base +>r11 : Symbol(r11, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 105, 3)) +>c.foo8 : Symbol(C.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 65, 5)) +>c : Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>foo8 : Symbol(C.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 65, 5)) + +interface I { +>I : Symbol(I, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 19)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) + + new (t: T, u: U); +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 9)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 14)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) + + foo(t: T, u: U): T; +>foo : Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 21)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 8)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 13)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) + + foo2(t: T, u: U): U; +>foo2 : Symbol(foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 23)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 9)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 14)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) + + foo3(t: T, u: U): T; +>foo3 : Symbol(foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 24)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 9)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 28)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 9)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 33)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 9)) + + foo4(t: T, u: U): T; +>foo4 : Symbol(foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 43)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 9)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 29)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 34)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 9)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) + + foo5(t: T, u: U): T; +>foo5 : Symbol(foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 9)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 27)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>t : Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 48)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 9)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 53)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 27)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 9)) + + foo6(): T; +>foo6 : Symbol(foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 63)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 9)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 27)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 9)) + + foo7(u: U): T; +>foo7 : Symbol(foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 53)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 9)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 24)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>u : Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 44)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 24)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 9)) + + foo8(): T; +>foo8 : Symbol(foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 53)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 93, 9)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 93, 24)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>T : Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 93, 9)) +} + +var i: I; +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>I : Symbol(I, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 19)) +>Base : Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) + +var r4 = i.foo(d1, d2); // Base +>r4 : Symbol(r4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 74, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 97, 3)) +>i.foo : Symbol(I.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 21)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo : Symbol(I.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 21)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r5 = i.foo2(b, d2); // Derived +>r5 : Symbol(r5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 75, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 98, 3)) +>i.foo2 : Symbol(I.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 23)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo2 : Symbol(I.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 23)) +>b : Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r6 = i.foo3(d1, d1); // Derived +>r6 : Symbol(r6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 76, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 99, 3)) +>i.foo3 : Symbol(I.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 24)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo3 : Symbol(I.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 24)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +var r7 = i.foo4(d1, d2); // Base +>r7 : Symbol(r7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 77, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 100, 3)) +>i.foo4 : Symbol(I.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 43)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo4 : Symbol(I.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 43)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r8 = i.foo5(d1, d2); // Derived +>r8 : Symbol(r8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 78, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 101, 3)) +>i.foo5 : Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo5 : Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r8b = i.foo5(d2, d2); // Derived2 +>r8b : Symbol(r8b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 79, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 102, 3)) +>i.foo5 : Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo5 : Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>d2 : Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) + +var r9 = i.foo6(); // Derived +>r9 : Symbol(r9, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 80, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 103, 3)) +>i.foo6 : Symbol(I.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 63)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo6 : Symbol(I.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 63)) + +var r10 = i.foo7(d1); // Base +>r10 : Symbol(r10, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 81, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 104, 3)) +>i.foo7 : Symbol(I.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 53)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo7 : Symbol(I.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 53)) +>d1 : Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) + +var r11 = i.foo8(); // Base +>r11 : Symbol(r11, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 105, 3)) +>i.foo8 : Symbol(I.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 53)) +>i : Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) +>foo8 : Symbol(I.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 53)) + diff --git a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types index d470879219b87..dcff9ef8a1698 100644 --- a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types +++ b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types @@ -2,487 +2,487 @@ // Basic type inference with generic calls and constraints, no errors expected class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Derived { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->baz : string, Symbol(baz, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 4, 32)) +>Derived2 : Derived2 +>Derived : Derived +>baz : string var b: Base; ->b : Base, Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) +>b : Base +>Base : Base var d1: Derived; ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>d1 : Derived +>Derived : Derived var d2: Derived2; ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>d2 : Derived2 +>Derived2 : Derived2 function foo(t: T) { ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 17)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 13)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 29)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 13)) +>foo : (t: T) => T +>T : T +>Base : Base +>t : T +>T : T return t; ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 9, 29)) +>t : T } var r = foo(b); // Base ->r : Base, Symbol(r, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 13, 3)) +>r : Base >foo(b) : Base ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 17)) ->b : Base, Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) +>foo : (t: T) => T +>b : Base var r2 = foo(d1); // Derived ->r2 : Derived, Symbol(r2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 14, 3)) +>r2 : Derived >foo(d1) : Derived ->foo : (t: T) => T, Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 17)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>foo : (t: T) => T +>d1 : Derived function foo2(t: T, u: U) { ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 14, 17)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 14)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 29)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 49)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 14)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 54)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 29)) +>foo2 : (t: T, u: U) => U +>T : T +>Base : Base +>U : U +>Derived : Derived +>t : T +>T : T +>u : U +>U : U return u; ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 16, 54)) +>u : U } function foo2b(u: U) { ->foo2b : (u: U) => T, Symbol(foo2b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 18, 1)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 15)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 30)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 50)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 30)) +>foo2b : (u: U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>u : U +>U : U var x: T; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 21, 7)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 20, 15)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 21, 7)) +>x : T } function foo2c() { ->foo2c : () => T, Symbol(foo2c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 23, 1)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 25, 15)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 25, 30)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>foo2c : () => T +>T : T +>Base : Base +>U : U +>Derived : Derived var x: T; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 26, 7)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 25, 15)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 26, 7)) +>x : T } var r3 = foo2b(d1); // Base ->r3 : Base, Symbol(r3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 30, 3)) +>r3 : Base >foo2b(d1) : Base ->foo2b : (u: U) => T, Symbol(foo2b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 18, 1)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>foo2b : (u: U) => T +>d1 : Derived var r3b = foo2c(); // Base ->r3b : Base, Symbol(r3b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 31, 3)) +>r3b : Base >foo2c() : Base ->foo2c : () => T, Symbol(foo2c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 23, 1)) +>foo2c : () => T class C { ->C : C, Symbol(C, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 31, 18)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>C : C +>T : T +>Base : Base +>U : U +>Derived : Derived constructor(public t: T, public u: U) { ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 34, 16)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 34, 28)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) +>t : T +>T : T +>u : U +>U : U } foo(t: T, u: U) { ->foo : (t: T, u: U) => T, Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 35, 5)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 37, 8)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 37, 13)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) +>foo : (t: T, u: U) => T +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 37, 8)) +>t : T } foo2(t: T, u: U) { ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 39, 5)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 41, 9)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 41, 14)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) +>foo2 : (t: T, u: U) => U +>t : T +>T : T +>u : U +>U : U return u; ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 41, 14)) +>u : U } foo3(t: T, u: U) { ->foo3 : (t: T, u: U) => T, Symbol(foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 43, 5)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 9)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 28)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 9)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 33)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 23)) +>foo3 : (t: T, u: U) => T +>T : T +>Derived : Derived +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 45, 28)) +>t : T } foo4(t: T, u: U) { ->foo4 : (t: T, u: U) => T, Symbol(foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 47, 5)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 9)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 29)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 33, 8)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 34)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 9)) +>foo4 : (t: T, u: U) => T +>U : U +>Derived2 : Derived2 +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 49, 29)) +>t : T } foo5(t: T, u: U) { ->foo5 : (t: T, u: U) => T, Symbol(foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 9)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 27)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 48)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 9)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 53)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 27)) +>foo5 : (t: T, u: U) => T +>T : T +>Derived : Derived +>U : U +>Derived2 : Derived2 +>t : T +>T : T +>u : U +>U : U return t; ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 53, 48)) +>t : T } foo6() { ->foo6 : () => T, Symbol(foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 55, 5)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 57, 9)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 57, 27)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) +>foo6 : () => T +>T : T +>Derived : Derived +>U : U +>Derived2 : Derived2 var x: T; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 58, 11)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 57, 9)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 58, 11)) +>x : T } foo7(u: U) { ->foo7 : (u: U) => T, Symbol(foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 60, 5)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 9)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 24)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 44)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 24)) +>foo7 : (u: U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>u : U +>U : U var x: T; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 63, 11)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 62, 9)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 63, 11)) +>x : T } foo8() { ->foo8 : () => T, Symbol(foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 65, 5)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 67, 9)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 67, 24)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>foo8 : () => T +>T : T +>Base : Base +>U : U +>Derived : Derived var x: T; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 68, 11)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 67, 9)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 68, 11)) +>x : T } } var c = new C(b, d1); ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) +>c : C >new C(b, d1) : C ->C : typeof C, Symbol(C, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 31, 18)) ->b : Base, Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>C : typeof C +>b : Base +>d1 : Derived var r4 = c.foo(d1, d2); // Base ->r4 : Base, Symbol(r4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 74, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 97, 3)) +>r4 : Base >c.foo(d1, d2) : Base ->c.foo : (t: Base, u: Derived) => Base, Symbol(C.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 35, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo : (t: Base, u: Derived) => Base, Symbol(C.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 35, 5)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>c.foo : (t: Base, u: Derived) => Base +>c : C +>foo : (t: Base, u: Derived) => Base +>d1 : Derived +>d2 : Derived2 var r5 = c.foo2(b, d2); // Derived ->r5 : Derived, Symbol(r5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 75, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 98, 3)) +>r5 : Derived >c.foo2(b, d2) : Derived ->c.foo2 : (t: Base, u: Derived) => Derived, Symbol(C.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 39, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo2 : (t: Base, u: Derived) => Derived, Symbol(C.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 39, 5)) ->b : Base, Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>c.foo2 : (t: Base, u: Derived) => Derived +>c : C +>foo2 : (t: Base, u: Derived) => Derived +>b : Base +>d2 : Derived2 var r6 = c.foo3(d1, d1); // Derived ->r6 : Derived, Symbol(r6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 76, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 99, 3)) +>r6 : Derived >c.foo3(d1, d1) : Derived ->c.foo3 : (t: T, u: Derived) => T, Symbol(C.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 43, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo3 : (t: T, u: Derived) => T, Symbol(C.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 43, 5)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>c.foo3 : (t: T, u: Derived) => T +>c : C +>foo3 : (t: T, u: Derived) => T +>d1 : Derived +>d1 : Derived var r7 = c.foo4(d1, d2); // Base ->r7 : Base, Symbol(r7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 77, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 100, 3)) +>r7 : Base >c.foo4(d1, d2) : Base ->c.foo4 : (t: Base, u: U) => Base, Symbol(C.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 47, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo4 : (t: Base, u: U) => Base, Symbol(C.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 47, 5)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>c.foo4 : (t: Base, u: U) => Base +>c : C +>foo4 : (t: Base, u: U) => Base +>d1 : Derived +>d2 : Derived2 var r8 = c.foo5(d1, d2); // Derived ->r8 : Derived, Symbol(r8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 78, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 101, 3)) +>r8 : Derived >c.foo5(d1, d2) : Derived ->c.foo5 : (t: T, u: U) => T, Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo5 : (t: T, u: U) => T, Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>c.foo5 : (t: T, u: U) => T +>c : C +>foo5 : (t: T, u: U) => T +>d1 : Derived +>d2 : Derived2 var r8b = c.foo5(d2, d2); // Derived2 ->r8b : Derived2, Symbol(r8b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 79, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 102, 3)) +>r8b : Derived2 >c.foo5(d2, d2) : Derived2 ->c.foo5 : (t: T, u: U) => T, Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo5 : (t: T, u: U) => T, Symbol(C.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 51, 5)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>c.foo5 : (t: T, u: U) => T +>c : C +>foo5 : (t: T, u: U) => T +>d2 : Derived2 +>d2 : Derived2 var r9 = c.foo6(); // Derived ->r9 : Derived, Symbol(r9, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 80, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 103, 3)) +>r9 : Derived >c.foo6() : Derived ->c.foo6 : () => T, Symbol(C.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 55, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo6 : () => T, Symbol(C.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 55, 5)) +>c.foo6 : () => T +>c : C +>foo6 : () => T var r10 = c.foo7(d1); // Base ->r10 : Base, Symbol(r10, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 81, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 104, 3)) +>r10 : Base >c.foo7(d1) : Base ->c.foo7 : (u: U) => T, Symbol(C.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 60, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo7 : (u: U) => T, Symbol(C.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 60, 5)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>c.foo7 : (u: U) => T +>c : C +>foo7 : (u: U) => T +>d1 : Derived var r11 = c.foo8(); // Base ->r11 : Base, Symbol(r11, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 105, 3)) +>r11 : Base >c.foo8() : Base ->c.foo8 : () => T, Symbol(C.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 65, 5)) ->c : C, Symbol(c, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 73, 3)) ->foo8 : () => T, Symbol(C.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 65, 5)) +>c.foo8 : () => T +>c : C +>foo8 : () => T interface I { ->I : I, Symbol(I, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 19)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>I : I +>T : T +>Base : Base +>U : U +>Derived : Derived new (t: T, u: U); ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 9)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 14)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) +>t : T +>T : T +>u : U +>U : U foo(t: T, u: U): T; ->foo : (t: T, u: U) => T, Symbol(foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 21)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 8)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 13)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>foo : (t: T, u: U) => T +>t : T +>T : T +>u : U +>U : U +>T : T foo2(t: T, u: U): U; ->foo2 : (t: T, u: U) => U, Symbol(foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 23)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 9)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 14)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) +>foo2 : (t: T, u: U) => U +>t : T +>T : T +>u : U +>U : U +>U : U foo3(t: T, u: U): T; ->foo3 : (t: T, u: U) => T, Symbol(foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 24)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 9)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 28)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 9)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 33)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 27)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 9)) +>foo3 : (t: T, u: U) => T +>T : T +>Derived : Derived +>t : T +>T : T +>u : U +>U : U +>T : T foo4(t: T, u: U): T; ->foo4 : (t: T, u: U) => T, Symbol(foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 43)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 9)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 29)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 34)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 9)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 84, 12)) +>foo4 : (t: T, u: U) => T +>U : U +>Derived2 : Derived2 +>t : T +>T : T +>u : U +>U : U +>T : T foo5(t: T, u: U): T; ->foo5 : (t: T, u: U) => T, Symbol(foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 9)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 27)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) ->t : T, Symbol(t, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 48)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 9)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 53)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 27)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 9)) +>foo5 : (t: T, u: U) => T +>T : T +>Derived : Derived +>U : U +>Derived2 : Derived2 +>t : T +>T : T +>u : U +>U : U +>T : T foo6(): T; ->foo6 : () => T, Symbol(foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 63)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 9)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 27)) ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 3, 43)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 9)) +>foo6 : () => T +>T : T +>Derived : Derived +>U : U +>Derived2 : Derived2 +>T : T foo7(u: U): T; ->foo7 : (u: U) => T, Symbol(foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 53)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 9)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 24)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->u : U, Symbol(u, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 44)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 24)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 9)) +>foo7 : (u: U) => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>u : U +>U : U +>T : T foo8(): T; ->foo8 : () => T, Symbol(foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 53)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 93, 9)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 93, 24)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) ->T : T, Symbol(T, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 93, 9)) +>foo8 : () => T +>T : T +>Base : Base +>U : U +>Derived : Derived +>T : T } var i: I; ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->I : I, Symbol(I, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 19)) ->Base : Base, Symbol(Base, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 2, 27)) +>i : I +>I : I +>Base : Base +>Derived : Derived var r4 = i.foo(d1, d2); // Base ->r4 : Base, Symbol(r4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 74, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 97, 3)) +>r4 : Base >i.foo(d1, d2) : Base ->i.foo : (t: Base, u: Derived) => Base, Symbol(I.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 21)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo : (t: Base, u: Derived) => Base, Symbol(I.foo, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 85, 21)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>i.foo : (t: Base, u: Derived) => Base +>i : I +>foo : (t: Base, u: Derived) => Base +>d1 : Derived +>d2 : Derived2 var r5 = i.foo2(b, d2); // Derived ->r5 : Derived, Symbol(r5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 75, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 98, 3)) +>r5 : Derived >i.foo2(b, d2) : Derived ->i.foo2 : (t: Base, u: Derived) => Derived, Symbol(I.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 23)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo2 : (t: Base, u: Derived) => Derived, Symbol(I.foo2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 86, 23)) ->b : Base, Symbol(b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 5, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>i.foo2 : (t: Base, u: Derived) => Derived +>i : I +>foo2 : (t: Base, u: Derived) => Derived +>b : Base +>d2 : Derived2 var r6 = i.foo3(d1, d1); // Derived ->r6 : Derived, Symbol(r6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 76, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 99, 3)) +>r6 : Derived >i.foo3(d1, d1) : Derived ->i.foo3 : (t: T, u: Derived) => T, Symbol(I.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 24)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo3 : (t: T, u: Derived) => T, Symbol(I.foo3, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 87, 24)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>i.foo3 : (t: T, u: Derived) => T +>i : I +>foo3 : (t: T, u: Derived) => T +>d1 : Derived +>d1 : Derived var r7 = i.foo4(d1, d2); // Base ->r7 : Base, Symbol(r7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 77, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 100, 3)) +>r7 : Base >i.foo4(d1, d2) : Base ->i.foo4 : (t: Base, u: U) => Base, Symbol(I.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 43)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo4 : (t: Base, u: U) => Base, Symbol(I.foo4, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 88, 43)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>i.foo4 : (t: Base, u: U) => Base +>i : I +>foo4 : (t: Base, u: U) => Base +>d1 : Derived +>d2 : Derived2 var r8 = i.foo5(d1, d2); // Derived ->r8 : Derived, Symbol(r8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 78, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 101, 3)) +>r8 : Derived >i.foo5(d1, d2) : Derived ->i.foo5 : (t: T, u: U) => T, Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo5 : (t: T, u: U) => T, Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>i.foo5 : (t: T, u: U) => T +>i : I +>foo5 : (t: T, u: U) => T +>d1 : Derived +>d2 : Derived2 var r8b = i.foo5(d2, d2); // Derived2 ->r8b : Derived2, Symbol(r8b, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 79, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 102, 3)) +>r8b : Derived2 >i.foo5(d2, d2) : Derived2 ->i.foo5 : (t: T, u: U) => T, Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo5 : (t: T, u: U) => T, Symbol(I.foo5, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 89, 44)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) ->d2 : Derived2, Symbol(d2, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 7, 3)) +>i.foo5 : (t: T, u: U) => T +>i : I +>foo5 : (t: T, u: U) => T +>d2 : Derived2 +>d2 : Derived2 var r9 = i.foo6(); // Derived ->r9 : Derived, Symbol(r9, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 80, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 103, 3)) +>r9 : Derived >i.foo6() : Derived ->i.foo6 : () => T, Symbol(I.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 63)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo6 : () => T, Symbol(I.foo6, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 90, 63)) +>i.foo6 : () => T +>i : I +>foo6 : () => T var r10 = i.foo7(d1); // Base ->r10 : Base, Symbol(r10, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 81, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 104, 3)) +>r10 : Base >i.foo7(d1) : Base ->i.foo7 : (u: U) => T, Symbol(I.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 53)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo7 : (u: U) => T, Symbol(I.foo7, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 91, 53)) ->d1 : Derived, Symbol(d1, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 6, 3)) +>i.foo7 : (u: U) => T +>i : I +>foo7 : (u: U) => T +>d1 : Derived var r11 = i.foo8(); // Base ->r11 : Base, Symbol(r11, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 82, 3), Decl(genericCallWithConstraintsTypeArgumentInference.ts, 105, 3)) +>r11 : Base >i.foo8() : Base ->i.foo8 : () => T, Symbol(I.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 53)) ->i : I, Symbol(i, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 96, 3)) ->foo8 : () => T, Symbol(I.foo8, Decl(genericCallWithConstraintsTypeArgumentInference.ts, 92, 53)) +>i.foo8 : () => T +>i : I +>foo8 : () => T diff --git a/tests/baselines/reference/genericCallWithFixedArguments.symbols b/tests/baselines/reference/genericCallWithFixedArguments.symbols new file mode 100644 index 0000000000000..c47c5ef8f0668 --- /dev/null +++ b/tests/baselines/reference/genericCallWithFixedArguments.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/genericCallWithFixedArguments.ts === +class A { foo() { } } +>A : Symbol(A, Decl(genericCallWithFixedArguments.ts, 0, 0)) +>foo : Symbol(foo, Decl(genericCallWithFixedArguments.ts, 0, 9)) + +class B { bar() { }} +>B : Symbol(B, Decl(genericCallWithFixedArguments.ts, 0, 21)) +>bar : Symbol(bar, Decl(genericCallWithFixedArguments.ts, 1, 9)) + +function g(x) { } +>g : Symbol(g, Decl(genericCallWithFixedArguments.ts, 1, 20)) +>T : Symbol(T, Decl(genericCallWithFixedArguments.ts, 3, 11)) +>U : Symbol(U, Decl(genericCallWithFixedArguments.ts, 3, 13)) +>x : Symbol(x, Decl(genericCallWithFixedArguments.ts, 3, 17)) + +g(7) // the parameter list is fixed, so this should not error +>g : Symbol(g, Decl(genericCallWithFixedArguments.ts, 1, 20)) +>A : Symbol(A, Decl(genericCallWithFixedArguments.ts, 0, 0)) +>B : Symbol(B, Decl(genericCallWithFixedArguments.ts, 0, 21)) + + diff --git a/tests/baselines/reference/genericCallWithFixedArguments.types b/tests/baselines/reference/genericCallWithFixedArguments.types index e72ff414937a2..f22dbc0125213 100644 --- a/tests/baselines/reference/genericCallWithFixedArguments.types +++ b/tests/baselines/reference/genericCallWithFixedArguments.types @@ -1,23 +1,23 @@ === tests/cases/compiler/genericCallWithFixedArguments.ts === class A { foo() { } } ->A : A, Symbol(A, Decl(genericCallWithFixedArguments.ts, 0, 0)) ->foo : () => void, Symbol(foo, Decl(genericCallWithFixedArguments.ts, 0, 9)) +>A : A +>foo : () => void class B { bar() { }} ->B : B, Symbol(B, Decl(genericCallWithFixedArguments.ts, 0, 21)) ->bar : () => void, Symbol(bar, Decl(genericCallWithFixedArguments.ts, 1, 9)) +>B : B +>bar : () => void function g(x) { } ->g : (x: any) => void, Symbol(g, Decl(genericCallWithFixedArguments.ts, 1, 20)) ->T : T, Symbol(T, Decl(genericCallWithFixedArguments.ts, 3, 11)) ->U : U, Symbol(U, Decl(genericCallWithFixedArguments.ts, 3, 13)) ->x : any, Symbol(x, Decl(genericCallWithFixedArguments.ts, 3, 17)) +>g : (x: any) => void +>T : T +>U : U +>x : any g(7) // the parameter list is fixed, so this should not error >g(7) : void ->g : (x: any) => void, Symbol(g, Decl(genericCallWithFixedArguments.ts, 1, 20)) ->A : A, Symbol(A, Decl(genericCallWithFixedArguments.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericCallWithFixedArguments.ts, 0, 21)) +>g : (x: any) => void +>A : A +>B : B >7 : number diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments3.symbols b/tests/baselines/reference/genericCallWithFunctionTypedArguments3.symbols new file mode 100644 index 0000000000000..c8b34a7347145 --- /dev/null +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments3.symbols @@ -0,0 +1,54 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments3.ts === +// No inference is made from function typed arguments which have multiple call signatures + +var a: { +>a : Symbol(a, Decl(genericCallWithFunctionTypedArguments3.ts, 2, 3)) + + (x: boolean): boolean; +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 3, 5)) + + (x: string): any; +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 4, 5)) +} + +function foo4(cb: (x: T) => U) { +>foo4 : Symbol(foo4, Decl(genericCallWithFunctionTypedArguments3.ts, 5, 1)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 14)) +>U : Symbol(U, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 16)) +>cb : Symbol(cb, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 20)) +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 25)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 14)) +>U : Symbol(U, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 16)) + + var u: U; +>u : Symbol(u, Decl(genericCallWithFunctionTypedArguments3.ts, 8, 7)) +>U : Symbol(U, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 16)) + + return u; +>u : Symbol(u, Decl(genericCallWithFunctionTypedArguments3.ts, 8, 7)) +} + +var r = foo4(a); // T is {} (candidates boolean and string), U is any (candidates any and boolean) +>r : Symbol(r, Decl(genericCallWithFunctionTypedArguments3.ts, 12, 3)) +>foo4 : Symbol(foo4, Decl(genericCallWithFunctionTypedArguments3.ts, 5, 1)) +>a : Symbol(a, Decl(genericCallWithFunctionTypedArguments3.ts, 2, 3)) + +var b: { +>b : Symbol(b, Decl(genericCallWithFunctionTypedArguments3.ts, 14, 3)) + + (x: boolean): T; +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 15, 5)) +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 15, 8)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 15, 5)) + + (x: T): any; +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 16, 5)) +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 16, 8)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 16, 5)) +} + +var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) +>r2 : Symbol(r2, Decl(genericCallWithFunctionTypedArguments3.ts, 19, 3)) +>foo4 : Symbol(foo4, Decl(genericCallWithFunctionTypedArguments3.ts, 5, 1)) +>b : Symbol(b, Decl(genericCallWithFunctionTypedArguments3.ts, 14, 3)) + diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types index 3821b859324bc..a6e491d3eb897 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types @@ -2,55 +2,55 @@ // No inference is made from function typed arguments which have multiple call signatures var a: { ->a : { (x: boolean): boolean; (x: string): any; }, Symbol(a, Decl(genericCallWithFunctionTypedArguments3.ts, 2, 3)) +>a : { (x: boolean): boolean; (x: string): any; } (x: boolean): boolean; ->x : boolean, Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 3, 5)) +>x : boolean (x: string): any; ->x : string, Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 4, 5)) +>x : string } function foo4(cb: (x: T) => U) { ->foo4 : (cb: (x: T) => U) => U, Symbol(foo4, Decl(genericCallWithFunctionTypedArguments3.ts, 5, 1)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 14)) ->U : U, Symbol(U, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 16)) ->cb : (x: T) => U, Symbol(cb, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 20)) ->x : T, Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 25)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 14)) ->U : U, Symbol(U, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 16)) +>foo4 : (cb: (x: T) => U) => U +>T : T +>U : U +>cb : (x: T) => U +>x : T +>T : T +>U : U var u: U; ->u : U, Symbol(u, Decl(genericCallWithFunctionTypedArguments3.ts, 8, 7)) ->U : U, Symbol(U, Decl(genericCallWithFunctionTypedArguments3.ts, 7, 16)) +>u : U +>U : U return u; ->u : U, Symbol(u, Decl(genericCallWithFunctionTypedArguments3.ts, 8, 7)) +>u : U } var r = foo4(a); // T is {} (candidates boolean and string), U is any (candidates any and boolean) ->r : any, Symbol(r, Decl(genericCallWithFunctionTypedArguments3.ts, 12, 3)) +>r : any >foo4(a) : any ->foo4 : (cb: (x: T) => U) => U, Symbol(foo4, Decl(genericCallWithFunctionTypedArguments3.ts, 5, 1)) ->a : { (x: boolean): boolean; (x: string): any; }, Symbol(a, Decl(genericCallWithFunctionTypedArguments3.ts, 2, 3)) +>foo4 : (cb: (x: T) => U) => U +>a : { (x: boolean): boolean; (x: string): any; } var b: { ->b : { (x: boolean): T; (x: T): any; }, Symbol(b, Decl(genericCallWithFunctionTypedArguments3.ts, 14, 3)) +>b : { (x: boolean): T; (x: T): any; } (x: boolean): T; ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 15, 5)) ->x : boolean, Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 15, 8)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 15, 5)) +>T : T +>x : boolean +>T : T (x: T): any; ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 16, 5)) ->x : T, Symbol(x, Decl(genericCallWithFunctionTypedArguments3.ts, 16, 8)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments3.ts, 16, 5)) +>T : T +>x : T +>T : T } var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) ->r2 : any, Symbol(r2, Decl(genericCallWithFunctionTypedArguments3.ts, 19, 3)) +>r2 : any >foo4(b) : any ->foo4 : (cb: (x: T) => U) => U, Symbol(foo4, Decl(genericCallWithFunctionTypedArguments3.ts, 5, 1)) ->b : { (x: boolean): T; (x: T): any; }, Symbol(b, Decl(genericCallWithFunctionTypedArguments3.ts, 14, 3)) +>foo4 : (cb: (x: T) => U) => U +>b : { (x: boolean): T; (x: T): any; } diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments4.symbols b/tests/baselines/reference/genericCallWithFunctionTypedArguments4.symbols new file mode 100644 index 0000000000000..9aa87c28240cb --- /dev/null +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments4.symbols @@ -0,0 +1,64 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithFunctionTypedArguments4.ts === +// No inference is made from function typed arguments which have multiple call signatures + +class C { foo: string } +>C : Symbol(C, Decl(genericCallWithFunctionTypedArguments4.ts, 0, 0)) +>foo : Symbol(foo, Decl(genericCallWithFunctionTypedArguments4.ts, 2, 9)) + +class D { bar: string } +>D : Symbol(D, Decl(genericCallWithFunctionTypedArguments4.ts, 2, 23)) +>bar : Symbol(bar, Decl(genericCallWithFunctionTypedArguments4.ts, 3, 9)) + +var a: { +>a : Symbol(a, Decl(genericCallWithFunctionTypedArguments4.ts, 4, 3)) + + new(x: boolean): C; +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 5, 8)) +>C : Symbol(C, Decl(genericCallWithFunctionTypedArguments4.ts, 0, 0)) + + new(x: string): D; +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 6, 8)) +>D : Symbol(D, Decl(genericCallWithFunctionTypedArguments4.ts, 2, 23)) +} + +function foo4(cb: new(x: T) => U) { +>foo4 : Symbol(foo4, Decl(genericCallWithFunctionTypedArguments4.ts, 7, 1)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 14)) +>U : Symbol(U, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 16)) +>cb : Symbol(cb, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 20)) +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 28)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 14)) +>U : Symbol(U, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 16)) + + var u: U; +>u : Symbol(u, Decl(genericCallWithFunctionTypedArguments4.ts, 10, 7)) +>U : Symbol(U, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 16)) + + return u; +>u : Symbol(u, Decl(genericCallWithFunctionTypedArguments4.ts, 10, 7)) +} + +var r = foo4(a); // T is {} (candidates boolean and string), U is {} (candidates C and D) +>r : Symbol(r, Decl(genericCallWithFunctionTypedArguments4.ts, 14, 3)) +>foo4 : Symbol(foo4, Decl(genericCallWithFunctionTypedArguments4.ts, 7, 1)) +>a : Symbol(a, Decl(genericCallWithFunctionTypedArguments4.ts, 4, 3)) + +var b: { +>b : Symbol(b, Decl(genericCallWithFunctionTypedArguments4.ts, 16, 3)) + + new(x: boolean): T; +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 17, 8)) +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 17, 11)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 17, 8)) + + new(x: T): any; +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 18, 8)) +>x : Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 18, 11)) +>T : Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 18, 8)) +} + +var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) +>r2 : Symbol(r2, Decl(genericCallWithFunctionTypedArguments4.ts, 21, 3)) +>foo4 : Symbol(foo4, Decl(genericCallWithFunctionTypedArguments4.ts, 7, 1)) +>b : Symbol(b, Decl(genericCallWithFunctionTypedArguments4.ts, 16, 3)) + diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types index b6a69ec86b6a8..bf4e1eb749c22 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types @@ -2,65 +2,65 @@ // No inference is made from function typed arguments which have multiple call signatures class C { foo: string } ->C : C, Symbol(C, Decl(genericCallWithFunctionTypedArguments4.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(genericCallWithFunctionTypedArguments4.ts, 2, 9)) +>C : C +>foo : string class D { bar: string } ->D : D, Symbol(D, Decl(genericCallWithFunctionTypedArguments4.ts, 2, 23)) ->bar : string, Symbol(bar, Decl(genericCallWithFunctionTypedArguments4.ts, 3, 9)) +>D : D +>bar : string var a: { ->a : { new (x: boolean): C; new (x: string): D; }, Symbol(a, Decl(genericCallWithFunctionTypedArguments4.ts, 4, 3)) +>a : { new (x: boolean): C; new (x: string): D; } new(x: boolean): C; ->x : boolean, Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 5, 8)) ->C : C, Symbol(C, Decl(genericCallWithFunctionTypedArguments4.ts, 0, 0)) +>x : boolean +>C : C new(x: string): D; ->x : string, Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 6, 8)) ->D : D, Symbol(D, Decl(genericCallWithFunctionTypedArguments4.ts, 2, 23)) +>x : string +>D : D } function foo4(cb: new(x: T) => U) { ->foo4 : (cb: new (x: T) => U) => U, Symbol(foo4, Decl(genericCallWithFunctionTypedArguments4.ts, 7, 1)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 14)) ->U : U, Symbol(U, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 16)) ->cb : new (x: T) => U, Symbol(cb, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 20)) ->x : T, Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 28)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 14)) ->U : U, Symbol(U, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 16)) +>foo4 : (cb: new (x: T) => U) => U +>T : T +>U : U +>cb : new (x: T) => U +>x : T +>T : T +>U : U var u: U; ->u : U, Symbol(u, Decl(genericCallWithFunctionTypedArguments4.ts, 10, 7)) ->U : U, Symbol(U, Decl(genericCallWithFunctionTypedArguments4.ts, 9, 16)) +>u : U +>U : U return u; ->u : U, Symbol(u, Decl(genericCallWithFunctionTypedArguments4.ts, 10, 7)) +>u : U } var r = foo4(a); // T is {} (candidates boolean and string), U is {} (candidates C and D) ->r : D, Symbol(r, Decl(genericCallWithFunctionTypedArguments4.ts, 14, 3)) +>r : D >foo4(a) : D ->foo4 : (cb: new (x: T) => U) => U, Symbol(foo4, Decl(genericCallWithFunctionTypedArguments4.ts, 7, 1)) ->a : { new (x: boolean): C; new (x: string): D; }, Symbol(a, Decl(genericCallWithFunctionTypedArguments4.ts, 4, 3)) +>foo4 : (cb: new (x: T) => U) => U +>a : { new (x: boolean): C; new (x: string): D; } var b: { ->b : { new (x: boolean): T; new (x: T): any; }, Symbol(b, Decl(genericCallWithFunctionTypedArguments4.ts, 16, 3)) +>b : { new (x: boolean): T; new (x: T): any; } new(x: boolean): T; ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 17, 8)) ->x : boolean, Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 17, 11)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 17, 8)) +>T : T +>x : boolean +>T : T new(x: T): any; ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 18, 8)) ->x : T, Symbol(x, Decl(genericCallWithFunctionTypedArguments4.ts, 18, 11)) ->T : T, Symbol(T, Decl(genericCallWithFunctionTypedArguments4.ts, 18, 8)) +>T : T +>x : T +>T : T } var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates any and {}) ->r2 : any, Symbol(r2, Decl(genericCallWithFunctionTypedArguments4.ts, 21, 3)) +>r2 : any >foo4(b) : any ->foo4 : (cb: new (x: T) => U) => U, Symbol(foo4, Decl(genericCallWithFunctionTypedArguments4.ts, 7, 1)) ->b : { new (x: boolean): T; new (x: T): any; }, Symbol(b, Decl(genericCallWithFunctionTypedArguments4.ts, 16, 3)) +>foo4 : (cb: new (x: T) => U) => U +>b : { new (x: boolean): T; new (x: T): any; } diff --git a/tests/baselines/reference/genericCallWithNonGenericArgs1.symbols b/tests/baselines/reference/genericCallWithNonGenericArgs1.symbols new file mode 100644 index 0000000000000..78a0bec010859 --- /dev/null +++ b/tests/baselines/reference/genericCallWithNonGenericArgs1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/genericCallWithNonGenericArgs1.ts === +function f(x: any) { } +>f : Symbol(f, Decl(genericCallWithNonGenericArgs1.ts, 0, 0)) +>T : Symbol(T, Decl(genericCallWithNonGenericArgs1.ts, 0, 11)) +>x : Symbol(x, Decl(genericCallWithNonGenericArgs1.ts, 0, 14)) + +f(null) +>f : Symbol(f, Decl(genericCallWithNonGenericArgs1.ts, 0, 0)) + diff --git a/tests/baselines/reference/genericCallWithNonGenericArgs1.types b/tests/baselines/reference/genericCallWithNonGenericArgs1.types index 5f3fae05885d9..75d867281325d 100644 --- a/tests/baselines/reference/genericCallWithNonGenericArgs1.types +++ b/tests/baselines/reference/genericCallWithNonGenericArgs1.types @@ -1,11 +1,11 @@ === tests/cases/compiler/genericCallWithNonGenericArgs1.ts === function f(x: any) { } ->f : (x: any) => void, Symbol(f, Decl(genericCallWithNonGenericArgs1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericCallWithNonGenericArgs1.ts, 0, 11)) ->x : any, Symbol(x, Decl(genericCallWithNonGenericArgs1.ts, 0, 14)) +>f : (x: any) => void +>T : T +>x : any f(null) >f(null) : void ->f : (x: any) => void, Symbol(f, Decl(genericCallWithNonGenericArgs1.ts, 0, 0)) +>f : (x: any) => void >null : null diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs2.symbols b/tests/baselines/reference/genericCallWithObjectTypeArgs2.symbols new file mode 100644 index 0000000000000..f567499d4c984 --- /dev/null +++ b/tests/baselines/reference/genericCallWithObjectTypeArgs2.symbols @@ -0,0 +1,114 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts === +class Base { +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) + + x: string; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 0, 12)) +} +class Derived extends Base { +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) + + y: string; +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 3, 28)) +} +class Derived2 extends Base { +>Derived2 : Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) + + z: string; +>z : Symbol(z, Decl(genericCallWithObjectTypeArgs2.ts, 6, 29)) +} + +// returns {}[] +function f(a: { x: T; y: U }) { +>f : Symbol(f, Decl(genericCallWithObjectTypeArgs2.ts, 8, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 11, 11)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 11, 26)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 11, 43)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 11, 47)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 11, 11)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 11, 53)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 11, 26)) + + return [a.x, a.y]; +>a.x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 11, 47)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 11, 43)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 11, 47)) +>a.y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 11, 53)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 11, 43)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 11, 53)) +} + +var r = f({ x: new Derived(), y: new Derived2() }); // {}[] +>r : Symbol(r, Decl(genericCallWithObjectTypeArgs2.ts, 15, 3)) +>f : Symbol(f, Decl(genericCallWithObjectTypeArgs2.ts, 8, 1)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 15, 11)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 15, 29)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) + +var r2 = f({ x: new Base(), y: new Derived2() }); // {}[] +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 3)) +>f : Symbol(f, Decl(genericCallWithObjectTypeArgs2.ts, 8, 1)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 16, 12)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 16, 27)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) + + +function f2(a: { x: T; y: U }) { +>f2 : Symbol(f2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 49)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 19, 12)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 19, 27)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 19, 44)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 19, 48)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 19, 12)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 19, 54)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 19, 27)) + + return (x: T) => a.y; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 20, 12)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 19, 12)) +>a.y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 19, 54)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 19, 44)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 19, 54)) +} + +var r3 = f2({ x: new Derived(), y: new Derived2() }); // Derived => Derived2 +>r3 : Symbol(r3, Decl(genericCallWithObjectTypeArgs2.ts, 23, 3)) +>f2 : Symbol(f2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 49)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 23, 13)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 23, 31)) +>Derived2 : Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) + +interface I { +>I : Symbol(I, Decl(genericCallWithObjectTypeArgs2.ts, 23, 53)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 25, 12)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 25, 14)) + + x: T; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 25, 19)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 25, 12)) + + y: U; +>y : Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 26, 9)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 25, 14)) +} + +var i: I; +>i : Symbol(i, Decl(genericCallWithObjectTypeArgs2.ts, 30, 3)) +>I : Symbol(I, Decl(genericCallWithObjectTypeArgs2.ts, 23, 53)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) + +var r4 = f2(i); // Base => Derived +>r4 : Symbol(r4, Decl(genericCallWithObjectTypeArgs2.ts, 31, 3)) +>f2 : Symbol(f2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 49)) +>i : Symbol(i, Decl(genericCallWithObjectTypeArgs2.ts, 30, 3)) + diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types index 5c8cc09beb160..08bce90b5de5c 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types @@ -1,129 +1,129 @@ === tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgs2.ts === class Base { ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>Base : Base x: string; ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 0, 12)) +>x : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>Derived : Derived +>Base : Base y: string; ->y : string, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 3, 28)) +>y : string } class Derived2 extends Base { ->Derived2 : Derived2, Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) +>Derived2 : Derived2 +>Base : Base z: string; ->z : string, Symbol(z, Decl(genericCallWithObjectTypeArgs2.ts, 6, 29)) +>z : string } // returns {}[] function f(a: { x: T; y: U }) { ->f : (a: { x: T; y: U; }) => (T | U)[], Symbol(f, Decl(genericCallWithObjectTypeArgs2.ts, 8, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 11, 11)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 11, 26)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) ->a : { x: T; y: U; }, Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 11, 43)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 11, 47)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 11, 11)) ->y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 11, 53)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 11, 26)) +>f : (a: { x: T; y: U; }) => (T | U)[] +>T : T +>Base : Base +>U : U +>Base : Base +>a : { x: T; y: U; } +>x : T +>T : T +>y : U +>U : U return [a.x, a.y]; >[a.x, a.y] : (T | U)[] ->a.x : T, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 11, 47)) ->a : { x: T; y: U; }, Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 11, 43)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 11, 47)) ->a.y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 11, 53)) ->a : { x: T; y: U; }, Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 11, 43)) ->y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 11, 53)) +>a.x : T +>a : { x: T; y: U; } +>x : T +>a.y : U +>a : { x: T; y: U; } +>y : U } var r = f({ x: new Derived(), y: new Derived2() }); // {}[] ->r : (Derived | Derived2)[], Symbol(r, Decl(genericCallWithObjectTypeArgs2.ts, 15, 3)) +>r : (Derived | Derived2)[] >f({ x: new Derived(), y: new Derived2() }) : (Derived | Derived2)[] ->f : (a: { x: T; y: U; }) => (T | U)[], Symbol(f, Decl(genericCallWithObjectTypeArgs2.ts, 8, 1)) +>f : (a: { x: T; y: U; }) => (T | U)[] >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } ->x : Derived, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 15, 11)) +>x : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) ->y : Derived2, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 15, 29)) +>Derived : typeof Derived +>y : Derived2 >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) +>Derived2 : typeof Derived2 var r2 = f({ x: new Base(), y: new Derived2() }); // {}[] ->r2 : (Base | Derived2)[], Symbol(r2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 3)) +>r2 : (Base | Derived2)[] >f({ x: new Base(), y: new Derived2() }) : (Base | Derived2)[] ->f : (a: { x: T; y: U; }) => (T | U)[], Symbol(f, Decl(genericCallWithObjectTypeArgs2.ts, 8, 1)) +>f : (a: { x: T; y: U; }) => (T | U)[] >{ x: new Base(), y: new Derived2() } : { x: Base; y: Derived2; } ->x : Base, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 16, 12)) +>x : Base >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) ->y : Derived2, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 16, 27)) +>Base : typeof Base +>y : Derived2 >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) +>Derived2 : typeof Derived2 function f2(a: { x: T; y: U }) { ->f2 : (a: { x: T; y: U; }) => (x: T) => U, Symbol(f2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 49)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 19, 12)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 19, 27)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) ->a : { x: T; y: U; }, Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 19, 44)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 19, 48)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 19, 12)) ->y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 19, 54)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 19, 27)) +>f2 : (a: { x: T; y: U; }) => (x: T) => U +>T : T +>Base : Base +>U : U +>Base : Base +>a : { x: T; y: U; } +>x : T +>T : T +>y : U +>U : U return (x: T) => a.y; >(x: T) => a.y : (x: T) => U ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 20, 12)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 19, 12)) ->a.y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 19, 54)) ->a : { x: T; y: U; }, Symbol(a, Decl(genericCallWithObjectTypeArgs2.ts, 19, 44)) ->y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 19, 54)) +>x : T +>T : T +>a.y : U +>a : { x: T; y: U; } +>y : U } var r3 = f2({ x: new Derived(), y: new Derived2() }); // Derived => Derived2 ->r3 : (x: Derived) => Derived2, Symbol(r3, Decl(genericCallWithObjectTypeArgs2.ts, 23, 3)) +>r3 : (x: Derived) => Derived2 >f2({ x: new Derived(), y: new Derived2() }) : (x: Derived) => Derived2 ->f2 : (a: { x: T; y: U; }) => (x: T) => U, Symbol(f2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 49)) +>f2 : (a: { x: T; y: U; }) => (x: T) => U >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } ->x : Derived, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 23, 13)) +>x : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) ->y : Derived2, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 23, 31)) +>Derived : typeof Derived +>y : Derived2 >new Derived2() : Derived2 ->Derived2 : typeof Derived2, Symbol(Derived2, Decl(genericCallWithObjectTypeArgs2.ts, 5, 1)) +>Derived2 : typeof Derived2 interface I { ->I : I, Symbol(I, Decl(genericCallWithObjectTypeArgs2.ts, 23, 53)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 25, 12)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 25, 14)) +>I : I +>T : T +>U : U x: T; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgs2.ts, 25, 19)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgs2.ts, 25, 12)) +>x : T +>T : T y: U; ->y : U, Symbol(y, Decl(genericCallWithObjectTypeArgs2.ts, 26, 9)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgs2.ts, 25, 14)) +>y : U +>U : U } var i: I; ->i : I, Symbol(i, Decl(genericCallWithObjectTypeArgs2.ts, 30, 3)) ->I : I, Symbol(I, Decl(genericCallWithObjectTypeArgs2.ts, 23, 53)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgs2.ts, 0, 0)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgs2.ts, 2, 1)) +>i : I +>I : I +>Base : Base +>Derived : Derived var r4 = f2(i); // Base => Derived ->r4 : (x: Base) => Derived, Symbol(r4, Decl(genericCallWithObjectTypeArgs2.ts, 31, 3)) +>r4 : (x: Base) => Derived >f2(i) : (x: Base) => Derived ->f2 : (a: { x: T; y: U; }) => (x: T) => U, Symbol(f2, Decl(genericCallWithObjectTypeArgs2.ts, 16, 49)) ->i : I, Symbol(i, Decl(genericCallWithObjectTypeArgs2.ts, 30, 3)) +>f2 : (a: { x: T; y: U; }) => (x: T) => U +>i : I diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.symbols b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.symbols new file mode 100644 index 0000000000000..50f20f55bea11 --- /dev/null +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.symbols @@ -0,0 +1,102 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints.ts === +// Generic call with constraints infering type parameter from object member properties +// No errors expected + +class C { +>C : Symbol(C, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 0, 0)) + + x: string; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 3, 9)) +} + +class D { +>D : Symbol(D, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 5, 1)) + + x: string; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 7, 9)) + + y: string; +>y : Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 8, 14)) +} + +class X { +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 12, 8)) + + x: T; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 12, 12)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 12, 8)) +} + +function foo(t: X, t2: X) { +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 14, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 24)) +>t : Symbol(t, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 38)) +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) +>t2 : Symbol(t2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 46)) +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 17, 7)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) + + return x; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 17, 7)) +} + +var c1 = new X(); +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>C : Symbol(C, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 0, 0)) + +var d1 = new X(); +>d1 : Symbol(d1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 22, 3)) +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>D : Symbol(D, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 5, 1)) + +var r = foo(c1, d1); +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 23, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 31, 3)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 14, 1)) +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>d1 : Symbol(d1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 22, 3)) + +var r2 = foo(c1, c1); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 32, 3)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 14, 1)) +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) + +function foo2(t: X, t2: X) { +>foo2 : Symbol(foo2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 21)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) +>C : Symbol(C, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>t : Symbol(t, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 27)) +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) +>t2 : Symbol(t2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 35)) +>X : Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) + + var x: T; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 27, 7)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) + + return x; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 27, 7)) +} + +var r = foo2(c1, d1); +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 23, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 31, 3)) +>foo2 : Symbol(foo2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 21)) +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>d1 : Symbol(d1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 22, 3)) + +var r2 = foo2(c1, c1); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 32, 3)) +>foo2 : Symbol(foo2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 21)) +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>c1 : Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) + diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types index 0366372bfb5e5..8e062a8d5bf5d 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types @@ -3,106 +3,106 @@ // No errors expected class C { ->C : C, Symbol(C, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>C : C x: string; ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 3, 9)) +>x : string } class D { ->D : D, Symbol(D, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>D : D x: string; ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 7, 9)) +>x : string y: string; ->y : string, Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 8, 14)) +>y : string } class X { ->X : X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 12, 8)) +>X : X +>T : T x: T; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 12, 12)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 12, 8)) +>x : T +>T : T } function foo(t: X, t2: X) { ->foo : (t: X, t2: X) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 14, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 24)) ->t : X, Symbol(t, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 38)) ->X : X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) ->t2 : X, Symbol(t2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 46)) ->X : X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) +>foo : (t: X, t2: X) => T +>T : T +>x : string +>t : X +>X : X +>T : T +>t2 : X +>X : X +>T : T var x: T; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 17, 7)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 16, 13)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 17, 7)) +>x : T } var c1 = new X(); ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>c1 : X >new X() : X ->X : typeof X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->C : C, Symbol(C, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>X : typeof X +>C : C var d1 = new X(); ->d1 : X, Symbol(d1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 22, 3)) +>d1 : X >new X() : X ->X : typeof X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->D : D, Symbol(D, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>X : typeof X +>D : D var r = foo(c1, d1); ->r : C, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 23, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 31, 3)) +>r : C >foo(c1, d1) : C ->foo : (t: X, t2: X) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 14, 1)) ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) ->d1 : X, Symbol(d1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 22, 3)) +>foo : (t: X, t2: X) => T +>c1 : X +>d1 : X var r2 = foo(c1, c1); ->r2 : C, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 32, 3)) +>r2 : C >foo(c1, c1) : C ->foo : (t: X, t2: X) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 14, 1)) ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>foo : (t: X, t2: X) => T +>c1 : X +>c1 : X function foo2(t: X, t2: X) { ->foo2 : (t: X, t2: X) => T, Symbol(foo2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 21)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) ->C : C, Symbol(C, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 0, 0)) ->t : X, Symbol(t, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 27)) ->X : X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) ->t2 : X, Symbol(t2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 35)) ->X : X, Symbol(X, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) +>foo2 : (t: X, t2: X) => T +>T : T +>C : C +>t : X +>X : X +>T : T +>t2 : X +>X : X +>T : T var x: T; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 27, 7)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 26, 14)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 27, 7)) +>x : T } var r = foo2(c1, d1); ->r : C, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 23, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 31, 3)) +>r : C >foo2(c1, d1) : C ->foo2 : (t: X, t2: X) => T, Symbol(foo2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 21)) ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) ->d1 : X, Symbol(d1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 22, 3)) +>foo2 : (t: X, t2: X) => T +>c1 : X +>d1 : X var r2 = foo2(c1, c1); ->r2 : C, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 3), Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 32, 3)) +>r2 : C >foo2(c1, c1) : C ->foo2 : (t: X, t2: X) => T, Symbol(foo2, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 24, 21)) ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) ->c1 : X, Symbol(c1, Decl(genericCallWithObjectTypeArgsAndConstraints.ts, 21, 3)) +>foo2 : (t: X, t2: X) => T +>c1 : X +>c1 : X diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.symbols b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.symbols new file mode 100644 index 0000000000000..864927a3a8c6f --- /dev/null +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.symbols @@ -0,0 +1,124 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndConstraints2.ts === +// Generic call with constraints infering type parameter from object member properties +// No errors expected + +class Base { +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) + + x: string; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 3, 12)) +} +class Derived extends Base { +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) + + y: string; +>y : Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 6, 28)) +} + +function f(x: { foo: T; bar: T }) { +>f : Symbol(f, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 8, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 27)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 31)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) +>bar : Symbol(bar, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 39)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) + + var r: T; +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 11, 7)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) + + return r; +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 11, 7)) +} +var r = f({ foo: new Base(), bar: new Derived() }); +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 14, 3)) +>f : Symbol(f, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 8, 1)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 14, 11)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>bar : Symbol(bar, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 14, 28)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) + +var r2 = f({ foo: new Derived(), bar: new Derived() }); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 3)) +>f : Symbol(f, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 8, 1)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 12)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>bar : Symbol(bar, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 32)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) + + +interface I { +>I : Symbol(I, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 55)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 18, 12)) + + a: T; +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 18, 16)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 18, 12)) +} +function f2(x: I) { +>f2 : Symbol(f2, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 20, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 12)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 28)) +>I : Symbol(I, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 55)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 12)) + + var r: T; +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 22, 7)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 12)) + + return r; +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 22, 7)) +} +var i: I; +>i : Symbol(i, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 25, 3)) +>I : Symbol(I, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 55)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) + +var r3 = f2(i); +>r3 : Symbol(r3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 3)) +>f2 : Symbol(f2, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 20, 1)) +>i : Symbol(i, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 25, 3)) + + +function f3(x: T, y: (a: T) => T) { +>f3 : Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 28)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) +>y : Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 33)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 38)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) + + return y(null); +>y : Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 33)) +} +var r4 = f3(new Base(), x => x); +>r4 : Symbol(r4, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 32, 3)) +>f3 : Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>Base : Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 32, 23)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 32, 23)) + +var r5 = f3(new Derived(), x => x); +>r5 : Symbol(r5, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 33, 3)) +>f3 : Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>Derived : Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 33, 26)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 33, 26)) + +var r6 = f3(null, null); // any +>r6 : Symbol(r6, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 35, 3)) +>f3 : Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) + +var r7 = f3(null, x => x); // any +>r7 : Symbol(r7, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 36, 3)) +>f3 : Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 36, 17)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 36, 17)) + diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types index a069f309c8aaa..8ffa07252bc9c 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types @@ -3,145 +3,145 @@ // No errors expected class Base { ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>Base : Base x: string; ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 3, 12)) +>x : string } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>Derived : Derived +>Base : Base y: string; ->y : string, Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 6, 28)) +>y : string } function f(x: { foo: T; bar: T }) { ->f : (x: { foo: T; bar: T; }) => T, Symbol(f, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 8, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) ->x : { foo: T; bar: T; }, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 27)) ->foo : T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 31)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) ->bar : T, Symbol(bar, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 39)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) +>f : (x: { foo: T; bar: T; }) => T +>T : T +>Base : Base +>x : { foo: T; bar: T; } +>foo : T +>T : T +>bar : T +>T : T var r: T; ->r : T, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 11, 7)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 10, 11)) +>r : T +>T : T return r; ->r : T, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 11, 7)) +>r : T } var r = f({ foo: new Base(), bar: new Derived() }); ->r : Base, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 14, 3)) +>r : Base >f({ foo: new Base(), bar: new Derived() }) : Base ->f : (x: { foo: T; bar: T; }) => T, Symbol(f, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 8, 1)) +>f : (x: { foo: T; bar: T; }) => T >{ foo: new Base(), bar: new Derived() } : { foo: Base; bar: Derived; } ->foo : Base, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 14, 11)) +>foo : Base >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) ->bar : Derived, Symbol(bar, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 14, 28)) +>Base : typeof Base +>bar : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>Derived : typeof Derived var r2 = f({ foo: new Derived(), bar: new Derived() }); ->r2 : Derived, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 3)) +>r2 : Derived >f({ foo: new Derived(), bar: new Derived() }) : Derived ->f : (x: { foo: T; bar: T; }) => T, Symbol(f, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 8, 1)) +>f : (x: { foo: T; bar: T; }) => T >{ foo: new Derived(), bar: new Derived() } : { foo: Derived; bar: Derived; } ->foo : Derived, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 12)) +>foo : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) ->bar : Derived, Symbol(bar, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 32)) +>Derived : typeof Derived +>bar : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>Derived : typeof Derived interface I { ->I : I, Symbol(I, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 55)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 18, 12)) +>I : I +>T : T a: T; ->a : T, Symbol(a, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 18, 16)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 18, 12)) +>a : T +>T : T } function f2(x: I) { ->f2 : (x: I) => T, Symbol(f2, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 20, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 12)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) ->x : I, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 28)) ->I : I, Symbol(I, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 55)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 12)) +>f2 : (x: I) => T +>T : T +>Base : Base +>x : I +>I : I +>T : T var r: T; ->r : T, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 22, 7)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 21, 12)) +>r : T +>T : T return r; ->r : T, Symbol(r, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 22, 7)) +>r : T } var i: I; ->i : I, Symbol(i, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 25, 3)) ->I : I, Symbol(I, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 15, 55)) ->Derived : Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>i : I +>I : I +>Derived : Derived var r3 = f2(i); ->r3 : Derived, Symbol(r3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 3)) +>r3 : Derived >f2(i) : Derived ->f2 : (x: I) => T, Symbol(f2, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 20, 1)) ->i : I, Symbol(i, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 25, 3)) +>f2 : (x: I) => T +>i : I function f3(x: T, y: (a: T) => T) { ->f3 : (x: T, y: (a: T) => T) => T, Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) ->Base : Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 28)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) ->y : (a: T) => T, Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 33)) ->a : T, Symbol(a, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 38)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 12)) +>f3 : (x: T, y: (a: T) => T) => T +>T : T +>Base : Base +>x : T +>T : T +>y : (a: T) => T +>a : T +>T : T +>T : T return y(null); >y(null) : T ->y : (a: T) => T, Symbol(y, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 29, 33)) +>y : (a: T) => T >null : null } var r4 = f3(new Base(), x => x); ->r4 : Base, Symbol(r4, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 32, 3)) +>r4 : Base >f3(new Base(), x => x) : Base ->f3 : (x: T, y: (a: T) => T) => T, Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>f3 : (x: T, y: (a: T) => T) => T >new Base() : Base ->Base : typeof Base, Symbol(Base, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 0, 0)) +>Base : typeof Base >x => x : (x: Base) => Base ->x : Base, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 32, 23)) ->x : Base, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 32, 23)) +>x : Base +>x : Base var r5 = f3(new Derived(), x => x); ->r5 : Derived, Symbol(r5, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 33, 3)) +>r5 : Derived >f3(new Derived(), x => x) : Derived ->f3 : (x: T, y: (a: T) => T) => T, Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>f3 : (x: T, y: (a: T) => T) => T >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 5, 1)) +>Derived : typeof Derived >x => x : (x: Derived) => Derived ->x : Derived, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 33, 26)) ->x : Derived, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 33, 26)) +>x : Derived +>x : Derived var r6 = f3(null, null); // any ->r6 : any, Symbol(r6, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 35, 3)) +>r6 : any >f3(null, null) : any ->f3 : (x: T, y: (a: T) => T) => T, Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>f3 : (x: T, y: (a: T) => T) => T >null : null >null : null var r7 = f3(null, x => x); // any ->r7 : any, Symbol(r7, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 36, 3)) +>r7 : any >f3(null, x => x) : any ->f3 : (x: T, y: (a: T) => T) => T, Symbol(f3, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 26, 15)) +>f3 : (x: T, y: (a: T) => T) => T >null : null >x => x : (x: any) => any ->x : any, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 36, 17)) ->x : any, Symbol(x, Decl(genericCallWithObjectTypeArgsAndConstraints2.ts, 36, 17)) +>x : any +>x : any diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.symbols b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.symbols new file mode 100644 index 0000000000000..14a91401efb36 --- /dev/null +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.symbols @@ -0,0 +1,62 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndIndexers.ts === +// Type inference infers from indexers in target type, no errors expected + +function foo(x: T) { +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 0, 0)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 13)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 16)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 13)) + + return x; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 16)) +} + +var a: { +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 6, 3)) + + [x: string]: Object; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 7, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [x: number]: Date; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 8, 5)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +}; +var r = foo(a); +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 10, 3)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 0, 0)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 6, 3)) + +function other(arg: T) { +>other : Symbol(other, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 10, 15)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 31)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 15)) + + var b: { +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 13, 7)) + + [x: string]: Object; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 14, 9)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + [x: number]: T +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 15, 9)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 15)) + + }; + var r2 = foo(b); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 17, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 13, 7)) + + var d = r2[1]; +>d : Symbol(d, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 18, 7)) +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 17, 7)) + + var e = r2['1']; +>e : Symbol(e, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 19, 7)) +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 17, 7)) +} diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types index 3a13a9dae7fea..e165932303395 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types @@ -2,67 +2,67 @@ // Type inference infers from indexers in target type, no errors expected function foo(x: T) { ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 13)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 16)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 13)) +>foo : (x: T) => T +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 2, 16)) +>x : T } var a: { ->a : { [x: string]: Object; [x: number]: Date; }, Symbol(a, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 6, 3)) +>a : { [x: string]: Object; [x: number]: Date; } [x: string]: Object; ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 7, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object [x: number]: Date; ->x : number, Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 8, 5)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : number +>Date : Date }; var r = foo(a); ->r : { [x: string]: Object; [x: number]: Date; }, Symbol(r, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 10, 3)) +>r : { [x: string]: Object; [x: number]: Date; } >foo(a) : { [x: string]: Object; [x: number]: Date; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 0, 0)) ->a : { [x: string]: Object; [x: number]: Date; }, Symbol(a, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 6, 3)) +>foo : (x: T) => T +>a : { [x: string]: Object; [x: number]: Date; } function other(arg: T) { ->other : (arg: T) => void, Symbol(other, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 10, 15)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 15)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 31)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 15)) +>other : (arg: T) => void +>T : T +>Date : Date +>arg : T +>T : T var b: { ->b : { [x: string]: Object; [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 13, 7)) +>b : { [x: string]: Object; [x: number]: T; } [x: string]: Object; ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 14, 9)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object [x: number]: T ->x : number, Symbol(x, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 15, 9)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 12, 15)) +>x : number +>T : T }; var r2 = foo(b); ->r2 : { [x: string]: Object; [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 17, 7)) +>r2 : { [x: string]: Object; [x: number]: T; } >foo(b) : { [x: string]: Object; [x: number]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 0, 0)) ->b : { [x: string]: Object; [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 13, 7)) +>foo : (x: T) => T +>b : { [x: string]: Object; [x: number]: T; } var d = r2[1]; ->d : T, Symbol(d, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 18, 7)) +>d : T >r2[1] : T ->r2 : { [x: string]: Object; [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 17, 7)) +>r2 : { [x: string]: Object; [x: number]: T; } >1 : number var e = r2['1']; ->e : Object, Symbol(e, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 19, 7)) +>e : Object >r2['1'] : Object ->r2 : { [x: string]: Object; [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndIndexers.ts, 17, 7)) +>r2 : { [x: string]: Object; [x: number]: T; } >'1' : string } diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.symbols b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.symbols new file mode 100644 index 0000000000000..77787e77299e8 --- /dev/null +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.symbols @@ -0,0 +1,95 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndNumericIndexer.ts === +// Type inference infers from indexers in target type, no errors expected + +function foo(x: T) { +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 13)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 16)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 13)) + + return x; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 16)) +} + +var a: { [x: number]: Date }; +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 6, 3)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 6, 10)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r = foo(a); +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 7, 3)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 6, 3)) + +function other(arg: T) { +>other : Symbol(other, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 7, 15)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 15)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 18)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 15)) + + var b: { [x: number]: T }; +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 10, 7)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 10, 14)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 15)) + + var r2 = foo(b); // T +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 11, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 10, 7)) +} + +function other2(arg: T) { +>other2 : Symbol(other2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 12, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 16)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 32)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 16)) + + var b: { [x: number]: T }; +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 15, 7)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 15, 14)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 16)) + + var r2 = foo(b); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 16, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 15, 7)) + + var d = r2[1]; +>d : Symbol(d, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 17, 7)) +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 16, 7)) +} + +function other3(arg: T) { +>other3 : Symbol(other3, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 18, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 16)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 31)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 48)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 16)) + + var b: { [x: number]: T }; +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 21, 7)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 21, 14)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 16)) + + var r2 = foo(b); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 22, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 21, 7)) + + var d = r2[1]; +>d : Symbol(d, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 23, 7)) +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 22, 7)) + + // BUG 821629 + //var u: U = r2[1]; // ok +} +//function other3(arg: T) { +// var b: { [x: number]: T }; +// var r2 = foo(b); +// var d = r2[1]; +// // BUG 821629 +// //var u: U = r2[1]; // ok +//} diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types index 3b18b8941183c..71e943c1ad351 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types @@ -2,93 +2,93 @@ // Type inference infers from indexers in target type, no errors expected function foo(x: T) { ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 13)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 16)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 13)) +>foo : (x: T) => T +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 2, 16)) +>x : T } var a: { [x: number]: Date }; ->a : { [x: number]: Date; }, Symbol(a, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 6, 3)) ->x : number, Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 6, 10)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : { [x: number]: Date; } +>x : number +>Date : Date var r = foo(a); ->r : { [x: number]: Date; }, Symbol(r, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 7, 3)) +>r : { [x: number]: Date; } >foo(a) : { [x: number]: Date; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) ->a : { [x: number]: Date; }, Symbol(a, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 6, 3)) +>foo : (x: T) => T +>a : { [x: number]: Date; } function other(arg: T) { ->other : (arg: T) => void, Symbol(other, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 7, 15)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 15)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 18)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 15)) +>other : (arg: T) => void +>T : T +>arg : T +>T : T var b: { [x: number]: T }; ->b : { [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 10, 7)) ->x : number, Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 10, 14)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 9, 15)) +>b : { [x: number]: T; } +>x : number +>T : T var r2 = foo(b); // T ->r2 : { [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 11, 7)) +>r2 : { [x: number]: T; } >foo(b) : { [x: number]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) ->b : { [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 10, 7)) +>foo : (x: T) => T +>b : { [x: number]: T; } } function other2(arg: T) { ->other2 : (arg: T) => void, Symbol(other2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 12, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 16)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 32)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 16)) +>other2 : (arg: T) => void +>T : T +>Date : Date +>arg : T +>T : T var b: { [x: number]: T }; ->b : { [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 15, 7)) ->x : number, Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 15, 14)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 14, 16)) +>b : { [x: number]: T; } +>x : number +>T : T var r2 = foo(b); ->r2 : { [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 16, 7)) +>r2 : { [x: number]: T; } >foo(b) : { [x: number]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) ->b : { [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 15, 7)) +>foo : (x: T) => T +>b : { [x: number]: T; } var d = r2[1]; ->d : T, Symbol(d, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 17, 7)) +>d : T >r2[1] : T ->r2 : { [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 16, 7)) +>r2 : { [x: number]: T; } >1 : number } function other3(arg: T) { ->other3 : (arg: T) => void, Symbol(other3, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 18, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 16)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 31)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 48)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 16)) +>other3 : (arg: T) => void +>T : T +>Date : Date +>U : U +>Date : Date +>arg : T +>T : T var b: { [x: number]: T }; ->b : { [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 21, 7)) ->x : number, Symbol(x, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 21, 14)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 20, 16)) +>b : { [x: number]: T; } +>x : number +>T : T var r2 = foo(b); ->r2 : { [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 22, 7)) +>r2 : { [x: number]: T; } >foo(b) : { [x: number]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 0, 0)) ->b : { [x: number]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 21, 7)) +>foo : (x: T) => T +>b : { [x: number]: T; } var d = r2[1]; ->d : T, Symbol(d, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 23, 7)) +>d : T >r2[1] : T ->r2 : { [x: number]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndNumericIndexer.ts, 22, 7)) +>r2 : { [x: number]: T; } >1 : number // BUG 821629 diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.symbols b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.symbols new file mode 100644 index 0000000000000..62b7c82b8e3d7 --- /dev/null +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.symbols @@ -0,0 +1,98 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithObjectTypeArgsAndStringIndexer.ts === +// Type inference infers from indexers in target type, no errors expected + +function foo(x: T) { +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 13)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 16)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 13)) + + return x; +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 16)) +} + +var a: { [x: string]: Date }; +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 6, 3)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 6, 10)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r = foo(a); +>r : Symbol(r, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 7, 3)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) +>a : Symbol(a, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 6, 3)) + +function other(arg: T) { +>other : Symbol(other, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 7, 15)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 15)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 18)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 15)) + + var b: { [x: string]: T }; +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 10, 7)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 10, 14)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 15)) + + var r2 = foo(b); // T +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 11, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 10, 7)) +} + +function other2(arg: T) { +>other2 : Symbol(other2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 12, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 16)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 32)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 16)) + + var b: { [x: string]: T }; +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 15, 7)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 15, 14)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 16)) + + var r2 = foo(b); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 16, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 15, 7)) + + var d: Date = r2['hm']; // ok +>d : Symbol(d, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 17, 7)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 16, 7)) +} + +function other3(arg: T) { +>other3 : Symbol(other3, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 18, 1)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 16)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>U : Symbol(U, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 31)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>arg : Symbol(arg, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 48)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 16)) + + var b: { [x: string]: T }; +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 21, 7)) +>x : Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 21, 14)) +>T : Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 16)) + + var r2 = foo(b); +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 22, 7)) +>foo : Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) +>b : Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 21, 7)) + + var d: Date = r2['hm']; // ok +>d : Symbol(d, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 23, 7)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>r2 : Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 22, 7)) + + // BUG 821629 + //var u: U = r2['hm']; // ok +} + +//function other3(arg: T) { +// var b: { [x: string]: T }; +// var r2 = foo(b); +// var d: Date = r2['hm']; // ok +// // BUG 821629 +// //var u: U = r2['hm']; // ok +//} diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types index 56e5b8c6b10b4..196103f422b86 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types @@ -2,95 +2,95 @@ // Type inference infers from indexers in target type, no errors expected function foo(x: T) { ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 13)) ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 16)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 13)) +>foo : (x: T) => T +>T : T +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 2, 16)) +>x : T } var a: { [x: string]: Date }; ->a : { [x: string]: Date; }, Symbol(a, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 6, 3)) ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 6, 10)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : { [x: string]: Date; } +>x : string +>Date : Date var r = foo(a); ->r : { [x: string]: Date; }, Symbol(r, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 7, 3)) +>r : { [x: string]: Date; } >foo(a) : { [x: string]: Date; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) ->a : { [x: string]: Date; }, Symbol(a, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 6, 3)) +>foo : (x: T) => T +>a : { [x: string]: Date; } function other(arg: T) { ->other : (arg: T) => void, Symbol(other, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 7, 15)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 15)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 18)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 15)) +>other : (arg: T) => void +>T : T +>arg : T +>T : T var b: { [x: string]: T }; ->b : { [x: string]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 10, 7)) ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 10, 14)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 9, 15)) +>b : { [x: string]: T; } +>x : string +>T : T var r2 = foo(b); // T ->r2 : { [x: string]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 11, 7)) +>r2 : { [x: string]: T; } >foo(b) : { [x: string]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) ->b : { [x: string]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 10, 7)) +>foo : (x: T) => T +>b : { [x: string]: T; } } function other2(arg: T) { ->other2 : (arg: T) => void, Symbol(other2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 12, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 16)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 32)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 16)) +>other2 : (arg: T) => void +>T : T +>Date : Date +>arg : T +>T : T var b: { [x: string]: T }; ->b : { [x: string]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 15, 7)) ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 15, 14)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 14, 16)) +>b : { [x: string]: T; } +>x : string +>T : T var r2 = foo(b); ->r2 : { [x: string]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 16, 7)) +>r2 : { [x: string]: T; } >foo(b) : { [x: string]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) ->b : { [x: string]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 15, 7)) +>foo : (x: T) => T +>b : { [x: string]: T; } var d: Date = r2['hm']; // ok ->d : Date, Symbol(d, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 17, 7)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>d : Date +>Date : Date >r2['hm'] : T ->r2 : { [x: string]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 16, 7)) +>r2 : { [x: string]: T; } >'hm' : string } function other3(arg: T) { ->other3 : (arg: T) => void, Symbol(other3, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 18, 1)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 16)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->U : U, Symbol(U, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 31)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->arg : T, Symbol(arg, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 48)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 16)) +>other3 : (arg: T) => void +>T : T +>Date : Date +>U : U +>Date : Date +>arg : T +>T : T var b: { [x: string]: T }; ->b : { [x: string]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 21, 7)) ->x : string, Symbol(x, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 21, 14)) ->T : T, Symbol(T, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 20, 16)) +>b : { [x: string]: T; } +>x : string +>T : T var r2 = foo(b); ->r2 : { [x: string]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 22, 7)) +>r2 : { [x: string]: T; } >foo(b) : { [x: string]: T; } ->foo : (x: T) => T, Symbol(foo, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 0, 0)) ->b : { [x: string]: T; }, Symbol(b, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 21, 7)) +>foo : (x: T) => T +>b : { [x: string]: T; } var d: Date = r2['hm']; // ok ->d : Date, Symbol(d, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 23, 7)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>d : Date +>Date : Date >r2['hm'] : T ->r2 : { [x: string]: T; }, Symbol(r2, Decl(genericCallWithObjectTypeArgsAndStringIndexer.ts, 22, 7)) +>r2 : { [x: string]: T; } >'hm' : string // BUG 821629 diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.symbols b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.symbols new file mode 100644 index 0000000000000..1d32c55fd33e4 --- /dev/null +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.symbols @@ -0,0 +1,163 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericCallWithOverloadedFunctionTypedArguments.ts === +// Function typed arguments with multiple signatures must be passed an implementation that matches all of them +// Inferences are made quadratic-pairwise to and from these overload sets + +module NonGenericParameter { +>NonGenericParameter : Symbol(NonGenericParameter, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 0, 0)) + + var a: { +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 4, 7)) + + (x: boolean): boolean; +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 5, 9)) + + (x: string): string; +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 6, 9)) + } + + function foo4(cb: typeof a) { +>foo4 : Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 9, 18)) +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 4, 7)) + + return cb; +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 9, 18)) + } + + var r = foo4(a); +>r : Symbol(r, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 13, 7)) +>foo4 : Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 4, 7)) + + var r2 = foo4((x: T) => x); +>r2 : Symbol(r2, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 7)) +>foo4 : Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 19)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 22)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 19)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 22)) + + var r4 = foo4(x => x); +>r4 : Symbol(r4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 15, 7)) +>foo4 : Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 15, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 15, 18)) +} + +module GenericParameter { +>GenericParameter : Symbol(GenericParameter, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 16, 1)) + + function foo5(cb: { (x: T): string; (x: number): T }) { +>foo5 : Symbol(foo5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 18, 25)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 18)) +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 21)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 28)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 44)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 18)) + + return cb; +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 21)) + } + + var r5 = foo5(x => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed]. T is any +>r5 : Symbol(r5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 23, 7)) +>foo5 : Symbol(foo5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 18, 25)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 23, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 23, 18)) + + var a: { (x: T): string; (x: number): T; } +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 14)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 17)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 14)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 33)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 36)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 33)) + + var r7 = foo5(a); // any => string (+1 overload) +>r7 : Symbol(r7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 7)) +>foo5 : Symbol(foo5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 18, 25)) +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) + + function foo6(cb: { (x: T): string; (x: T, y?: T): string }) { +>foo6 : Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 21)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 28)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 44)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) +>y : Symbol(y, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 49)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) + + return cb; +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 21)) + } + + var r8 = foo6(x => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed]. T is any +>r8 : Symbol(r8, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 31, 7)) +>foo6 : Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 31, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 31, 18)) + + var r9 = foo6((x: T) => ''); // any => string (+1 overload) +>r9 : Symbol(r9, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 7)) +>foo6 : Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 19)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 22)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 19)) + + var r11 = foo6((x: T, y?: T) => ''); // any => string (+1 overload) +>r11 : Symbol(r11, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 7)) +>foo6 : Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 20)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 23)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 20)) +>y : Symbol(y, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 28)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 20)) + + function foo7(x:T, cb: { (x: T): string; (x: T, y?: T): string }) { +>foo7 : Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 21)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 25)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 33)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 49)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) +>y : Symbol(y, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 54)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) + + return cb; +>cb : Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 25)) + } + + var r12 = foo7(1, (x) => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed] +>r12 : Symbol(r12, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 39, 7)) +>foo7 : Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 39, 23)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 39, 23)) + + var r13 = foo7(1, (x: T) => ''); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed] +>r13 : Symbol(r13, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 7)) +>foo7 : Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 23)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 26)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 23)) + + var a: { (x: T): string; (x: number): T; } +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 14)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 17)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 14)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 33)) +>x : Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 36)) +>T : Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 33)) + + var r14 = foo7(1, a); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed] +>r14 : Symbol(r14, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 42, 7)) +>foo7 : Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>a : Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) +} diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types index 1244fdfe1466b..dbdecbec3e4cd 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types @@ -3,186 +3,186 @@ // Inferences are made quadratic-pairwise to and from these overload sets module NonGenericParameter { ->NonGenericParameter : typeof NonGenericParameter, Symbol(NonGenericParameter, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 0, 0)) +>NonGenericParameter : typeof NonGenericParameter var a: { ->a : { (x: boolean): boolean; (x: string): string; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 4, 7)) +>a : { (x: boolean): boolean; (x: string): string; } (x: boolean): boolean; ->x : boolean, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 5, 9)) +>x : boolean (x: string): string; ->x : string, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 6, 9)) +>x : string } function foo4(cb: typeof a) { ->foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; }, Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) ->cb : { (x: boolean): boolean; (x: string): string; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 9, 18)) ->a : { (x: boolean): boolean; (x: string): string; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 4, 7)) +>foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; } +>cb : { (x: boolean): boolean; (x: string): string; } +>a : { (x: boolean): boolean; (x: string): string; } return cb; ->cb : { (x: boolean): boolean; (x: string): string; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 9, 18)) +>cb : { (x: boolean): boolean; (x: string): string; } } var r = foo4(a); ->r : { (x: boolean): boolean; (x: string): string; }, Symbol(r, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 13, 7)) +>r : { (x: boolean): boolean; (x: string): string; } >foo4(a) : { (x: boolean): boolean; (x: string): string; } ->foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; }, Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) ->a : { (x: boolean): boolean; (x: string): string; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 4, 7)) +>foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; } +>a : { (x: boolean): boolean; (x: string): string; } var r2 = foo4((x: T) => x); ->r2 : { (x: boolean): boolean; (x: string): string; }, Symbol(r2, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 7)) +>r2 : { (x: boolean): boolean; (x: string): string; } >foo4((x: T) => x) : { (x: boolean): boolean; (x: string): string; } ->foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; }, Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) +>foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; } >(x: T) => x : (x: T) => T ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 19)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 22)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 19)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 14, 22)) +>T : T +>x : T +>T : T +>x : T var r4 = foo4(x => x); ->r4 : { (x: boolean): boolean; (x: string): string; }, Symbol(r4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 15, 7)) +>r4 : { (x: boolean): boolean; (x: string): string; } >foo4(x => x) : { (x: boolean): boolean; (x: string): string; } ->foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; }, Symbol(foo4, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 7, 5)) +>foo4 : (cb: { (x: boolean): boolean; (x: string): string; }) => { (x: boolean): boolean; (x: string): string; } >x => x : (x: any) => any ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 15, 18)) ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 15, 18)) +>x : any +>x : any } module GenericParameter { ->GenericParameter : typeof GenericParameter, Symbol(GenericParameter, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 16, 1)) +>GenericParameter : typeof GenericParameter function foo5(cb: { (x: T): string; (x: number): T }) { ->foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; }, Symbol(foo5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 18, 25)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 18)) ->cb : { (x: T): string; (x: number): T; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 21)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 28)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 18)) ->x : number, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 44)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 18)) +>foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } +>T : T +>cb : { (x: T): string; (x: number): T; } +>x : T +>T : T +>x : number +>T : T return cb; ->cb : { (x: T): string; (x: number): T; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 19, 21)) +>cb : { (x: T): string; (x: number): T; } } var r5 = foo5(x => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed]. T is any ->r5 : { (x: any): string; (x: number): any; }, Symbol(r5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 23, 7)) +>r5 : { (x: any): string; (x: number): any; } >foo5(x => x) : { (x: any): string; (x: number): any; } ->foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; }, Symbol(foo5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 18, 25)) +>foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } >x => x : (x: any) => any ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 23, 18)) ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 23, 18)) +>x : any +>x : any var a: { (x: T): string; (x: number): T; } ->a : { (x: T): string; (x: number): T; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 14)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 17)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 14)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 33)) ->x : number, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 36)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 33)) +>a : { (x: T): string; (x: number): T; } +>T : T +>x : T +>T : T +>T : T +>x : number +>T : T var r7 = foo5(a); // any => string (+1 overload) ->r7 : { (x: any): string; (x: number): any; }, Symbol(r7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 7)) +>r7 : { (x: any): string; (x: number): any; } >foo5(a) : { (x: any): string; (x: number): any; } ->foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; }, Symbol(foo5, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 18, 25)) ->a : { (x: T): string; (x: number): T; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) +>foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } +>a : { (x: T): string; (x: number): T; } function foo6(cb: { (x: T): string; (x: T, y?: T): string }) { ->foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) ->cb : { (x: T): string; (x: T, y?: T): string; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 21)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 28)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 44)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) ->y : T, Symbol(y, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 49)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 18)) +>foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } +>T : T +>cb : { (x: T): string; (x: T, y?: T): string; } +>x : T +>T : T +>x : T +>T : T +>y : T +>T : T return cb; ->cb : { (x: T): string; (x: T, y?: T): string; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 27, 21)) +>cb : { (x: T): string; (x: T, y?: T): string; } } var r8 = foo6(x => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed]. T is any ->r8 : { (x: any): string; (x: any, y?: any): string; }, Symbol(r8, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 31, 7)) +>r8 : { (x: any): string; (x: any, y?: any): string; } >foo6(x => x) : { (x: any): string; (x: any, y?: any): string; } ->foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } >x => x : (x: any) => any ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 31, 18)) ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 31, 18)) +>x : any +>x : any var r9 = foo6((x: T) => ''); // any => string (+1 overload) ->r9 : { (x: any): string; (x: any, y?: any): string; }, Symbol(r9, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 7)) +>r9 : { (x: any): string; (x: any, y?: any): string; } >foo6((x: T) => '') : { (x: any): string; (x: any, y?: any): string; } ->foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } >(x: T) => '' : (x: T) => string ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 19)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 22)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 32, 19)) +>T : T +>x : T +>T : T >'' : string var r11 = foo6((x: T, y?: T) => ''); // any => string (+1 overload) ->r11 : { (x: any): string; (x: any, y?: any): string; }, Symbol(r11, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 7)) +>r11 : { (x: any): string; (x: any, y?: any): string; } >foo6((x: T, y?: T) => '') : { (x: any): string; (x: any, y?: any): string; } ->foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo6, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 25, 21)) +>foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } >(x: T, y?: T) => '' : (x: T, y?: T) => string ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 20)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 23)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 20)) ->y : T, Symbol(y, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 28)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 20)) +>T : T +>x : T +>T : T +>y : T +>T : T >'' : string function foo7(x:T, cb: { (x: T): string; (x: T, y?: T): string }) { ->foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 21)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) ->cb : { (x: T): string; (x: T, y?: T): string; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 25)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 33)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 49)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) ->y : T, Symbol(y, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 54)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 18)) +>foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } +>T : T +>x : T +>T : T +>cb : { (x: T): string; (x: T, y?: T): string; } +>x : T +>T : T +>x : T +>T : T +>y : T +>T : T return cb; ->cb : { (x: T): string; (x: T, y?: T): string; }, Symbol(cb, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 35, 25)) +>cb : { (x: T): string; (x: T, y?: T): string; } } var r12 = foo7(1, (x) => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed] ->r12 : { (x: any): string; (x: any, y?: any): string; }, Symbol(r12, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 39, 7)) +>r12 : { (x: any): string; (x: any, y?: any): string; } >foo7(1, (x) => x) : { (x: any): string; (x: any, y?: any): string; } ->foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } >1 : number >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 39, 23)) ->x : any, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 39, 23)) +>x : any +>x : any var r13 = foo7(1, (x: T) => ''); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed] ->r13 : { (x: any): string; (x: any, y?: any): string; }, Symbol(r13, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 7)) +>r13 : { (x: any): string; (x: any, y?: any): string; } >foo7(1, (x: T) => '') : { (x: any): string; (x: any, y?: any): string; } ->foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } >1 : number >(x: T) => '' : (x: T) => string ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 23)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 26)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 40, 23)) +>T : T +>x : T +>T : T >'' : string var a: { (x: T): string; (x: number): T; } ->a : { (x: T): string; (x: number): T; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 14)) ->x : T, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 17)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 14)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 33)) ->x : number, Symbol(x, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 36)) ->T : T, Symbol(T, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 33)) +>a : { (x: T): string; (x: number): T; } +>T : T +>x : T +>T : T +>T : T +>x : number +>T : T var r14 = foo7(1, a); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed] ->r14 : { (x: any): string; (x: any, y?: any): string; }, Symbol(r14, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 42, 7)) +>r14 : { (x: any): string; (x: any, y?: any): string; } >foo7(1, a) : { (x: any): string; (x: any, y?: any): string; } ->foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; }, Symbol(foo7, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 33, 43)) +>foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } >1 : number ->a : { (x: T): string; (x: number): T; }, Symbol(a, Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 24, 7), Decl(genericCallWithOverloadedFunctionTypedArguments.ts, 41, 7)) +>a : { (x: T): string; (x: number): T; } } diff --git a/tests/baselines/reference/genericCallbacksAndClassHierarchy.symbols b/tests/baselines/reference/genericCallbacksAndClassHierarchy.symbols new file mode 100644 index 0000000000000..be46c49a9ca09 --- /dev/null +++ b/tests/baselines/reference/genericCallbacksAndClassHierarchy.symbols @@ -0,0 +1,79 @@ +=== tests/cases/compiler/genericCallbacksAndClassHierarchy.ts === +module M { +>M : Symbol(M, Decl(genericCallbacksAndClassHierarchy.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(genericCallbacksAndClassHierarchy.ts, 0, 10)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 1, 23)) + + subscribe(callback: (newValue: T) => void ): any; +>subscribe : Symbol(subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) +>callback : Symbol(callback, Decl(genericCallbacksAndClassHierarchy.ts, 2, 18)) +>newValue : Symbol(newValue, Decl(genericCallbacksAndClassHierarchy.ts, 2, 29)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 1, 23)) + } + export class C1 { +>C1 : Symbol(C1, Decl(genericCallbacksAndClassHierarchy.ts, 3, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 4, 20)) + + public value: I; +>value : Symbol(value, Decl(genericCallbacksAndClassHierarchy.ts, 4, 24)) +>I : Symbol(I, Decl(genericCallbacksAndClassHierarchy.ts, 0, 10)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 4, 20)) + } + export class A { +>A : Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 7, 19)) + + public dummy: any; +>dummy : Symbol(dummy, Decl(genericCallbacksAndClassHierarchy.ts, 7, 23)) + } + export class B extends C1> { } +>B : Symbol(B, Decl(genericCallbacksAndClassHierarchy.ts, 9, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 10, 19)) +>C1 : Symbol(C1, Decl(genericCallbacksAndClassHierarchy.ts, 3, 5)) +>A : Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 10, 19)) + + export class D { +>D : Symbol(D, Decl(genericCallbacksAndClassHierarchy.ts, 10, 42)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) + + _subscribe(viewModel: B): void { +>_subscribe : Symbol(_subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 11, 23)) +>viewModel : Symbol(viewModel, Decl(genericCallbacksAndClassHierarchy.ts, 12, 19)) +>B : Symbol(B, Decl(genericCallbacksAndClassHierarchy.ts, 9, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) + + var f = (newValue: A) => { }; +>f : Symbol(f, Decl(genericCallbacksAndClassHierarchy.ts, 13, 15)) +>newValue : Symbol(newValue, Decl(genericCallbacksAndClassHierarchy.ts, 13, 21)) +>A : Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) + + var v: I> = viewModel.value; +>v : Symbol(v, Decl(genericCallbacksAndClassHierarchy.ts, 15, 15)) +>I : Symbol(I, Decl(genericCallbacksAndClassHierarchy.ts, 0, 10)) +>A : Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) +>viewModel.value : Symbol(C1.value, Decl(genericCallbacksAndClassHierarchy.ts, 4, 24)) +>viewModel : Symbol(viewModel, Decl(genericCallbacksAndClassHierarchy.ts, 12, 19)) +>value : Symbol(C1.value, Decl(genericCallbacksAndClassHierarchy.ts, 4, 24)) + + // both of these should work + v.subscribe(f); +>v.subscribe : Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) +>v : Symbol(v, Decl(genericCallbacksAndClassHierarchy.ts, 15, 15)) +>subscribe : Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) +>f : Symbol(f, Decl(genericCallbacksAndClassHierarchy.ts, 13, 15)) + + v.subscribe((newValue: A) => { }); +>v.subscribe : Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) +>v : Symbol(v, Decl(genericCallbacksAndClassHierarchy.ts, 15, 15)) +>subscribe : Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) +>newValue : Symbol(newValue, Decl(genericCallbacksAndClassHierarchy.ts, 19, 25)) +>A : Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) +>T : Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) + } + } +} diff --git a/tests/baselines/reference/genericCallbacksAndClassHierarchy.types b/tests/baselines/reference/genericCallbacksAndClassHierarchy.types index 82a73beea1108..97e584dca3fd8 100644 --- a/tests/baselines/reference/genericCallbacksAndClassHierarchy.types +++ b/tests/baselines/reference/genericCallbacksAndClassHierarchy.types @@ -1,83 +1,83 @@ === tests/cases/compiler/genericCallbacksAndClassHierarchy.ts === module M { ->M : typeof M, Symbol(M, Decl(genericCallbacksAndClassHierarchy.ts, 0, 0)) +>M : typeof M export interface I { ->I : I, Symbol(I, Decl(genericCallbacksAndClassHierarchy.ts, 0, 10)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 1, 23)) +>I : I +>T : T subscribe(callback: (newValue: T) => void ): any; ->subscribe : (callback: (newValue: T) => void) => any, Symbol(subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) ->callback : (newValue: T) => void, Symbol(callback, Decl(genericCallbacksAndClassHierarchy.ts, 2, 18)) ->newValue : T, Symbol(newValue, Decl(genericCallbacksAndClassHierarchy.ts, 2, 29)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 1, 23)) +>subscribe : (callback: (newValue: T) => void) => any +>callback : (newValue: T) => void +>newValue : T +>T : T } export class C1 { ->C1 : C1, Symbol(C1, Decl(genericCallbacksAndClassHierarchy.ts, 3, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 4, 20)) +>C1 : C1 +>T : T public value: I; ->value : I, Symbol(value, Decl(genericCallbacksAndClassHierarchy.ts, 4, 24)) ->I : I, Symbol(I, Decl(genericCallbacksAndClassHierarchy.ts, 0, 10)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 4, 20)) +>value : I +>I : I +>T : T } export class A { ->A : A, Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 7, 19)) +>A : A +>T : T public dummy: any; ->dummy : any, Symbol(dummy, Decl(genericCallbacksAndClassHierarchy.ts, 7, 23)) +>dummy : any } export class B extends C1> { } ->B : B, Symbol(B, Decl(genericCallbacksAndClassHierarchy.ts, 9, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 10, 19)) ->C1 : C1, Symbol(C1, Decl(genericCallbacksAndClassHierarchy.ts, 3, 5)) ->A : A, Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 10, 19)) +>B : B +>T : T +>C1 : C1 +>A : A +>T : T export class D { ->D : D, Symbol(D, Decl(genericCallbacksAndClassHierarchy.ts, 10, 42)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) +>D : D +>T : T _subscribe(viewModel: B): void { ->_subscribe : (viewModel: B) => void, Symbol(_subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 11, 23)) ->viewModel : B, Symbol(viewModel, Decl(genericCallbacksAndClassHierarchy.ts, 12, 19)) ->B : B, Symbol(B, Decl(genericCallbacksAndClassHierarchy.ts, 9, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) +>_subscribe : (viewModel: B) => void +>viewModel : B +>B : B +>T : T var f = (newValue: A) => { }; ->f : (newValue: A) => void, Symbol(f, Decl(genericCallbacksAndClassHierarchy.ts, 13, 15)) +>f : (newValue: A) => void >(newValue: A) => { } : (newValue: A) => void ->newValue : A, Symbol(newValue, Decl(genericCallbacksAndClassHierarchy.ts, 13, 21)) ->A : A, Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) +>newValue : A +>A : A +>T : T var v: I> = viewModel.value; ->v : I>, Symbol(v, Decl(genericCallbacksAndClassHierarchy.ts, 15, 15)) ->I : I, Symbol(I, Decl(genericCallbacksAndClassHierarchy.ts, 0, 10)) ->A : A, Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) ->viewModel.value : I>, Symbol(C1.value, Decl(genericCallbacksAndClassHierarchy.ts, 4, 24)) ->viewModel : B, Symbol(viewModel, Decl(genericCallbacksAndClassHierarchy.ts, 12, 19)) ->value : I>, Symbol(C1.value, Decl(genericCallbacksAndClassHierarchy.ts, 4, 24)) +>v : I> +>I : I +>A : A +>T : T +>viewModel.value : I> +>viewModel : B +>value : I> // both of these should work v.subscribe(f); >v.subscribe(f) : any ->v.subscribe : (callback: (newValue: A) => void) => any, Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) ->v : I>, Symbol(v, Decl(genericCallbacksAndClassHierarchy.ts, 15, 15)) ->subscribe : (callback: (newValue: A) => void) => any, Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) ->f : (newValue: A) => void, Symbol(f, Decl(genericCallbacksAndClassHierarchy.ts, 13, 15)) +>v.subscribe : (callback: (newValue: A) => void) => any +>v : I> +>subscribe : (callback: (newValue: A) => void) => any +>f : (newValue: A) => void v.subscribe((newValue: A) => { }); >v.subscribe((newValue: A) => { }) : any ->v.subscribe : (callback: (newValue: A) => void) => any, Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) ->v : I>, Symbol(v, Decl(genericCallbacksAndClassHierarchy.ts, 15, 15)) ->subscribe : (callback: (newValue: A) => void) => any, Symbol(I.subscribe, Decl(genericCallbacksAndClassHierarchy.ts, 1, 27)) +>v.subscribe : (callback: (newValue: A) => void) => any +>v : I> +>subscribe : (callback: (newValue: A) => void) => any >(newValue: A) => { } : (newValue: A) => void ->newValue : A, Symbol(newValue, Decl(genericCallbacksAndClassHierarchy.ts, 19, 25)) ->A : A, Symbol(A, Decl(genericCallbacksAndClassHierarchy.ts, 6, 5)) ->T : T, Symbol(T, Decl(genericCallbacksAndClassHierarchy.ts, 11, 19)) +>newValue : A +>A : A +>T : T } } } diff --git a/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.symbols b/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.symbols new file mode 100644 index 0000000000000..ba75ebdc045b6 --- /dev/null +++ b/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericClassImplementingGenericInterfaceFromAnotherModule.ts === +module foo { +>foo : Symbol(foo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 0)) + + export interface IFoo { } +>IFoo : Symbol(IFoo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 12)) +>T : Symbol(T, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 1, 26)) +} +module bar { +>bar : Symbol(bar, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 2, 1)) + + export class Foo implements foo.IFoo { } +>Foo : Symbol(Foo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 3, 12)) +>T : Symbol(T, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 4, 21)) +>foo.IFoo : Symbol(foo.IFoo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 12)) +>foo : Symbol(foo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 0)) +>IFoo : Symbol(foo.IFoo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 12)) +>T : Symbol(T, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 4, 21)) +} + diff --git a/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.types b/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.types index 9ee8de9d9000e..b5552cd36a83d 100644 --- a/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.types +++ b/tests/baselines/reference/genericClassImplementingGenericInterfaceFromAnotherModule.types @@ -1,20 +1,20 @@ === tests/cases/compiler/genericClassImplementingGenericInterfaceFromAnotherModule.ts === module foo { ->foo : any, Symbol(foo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 0)) +>foo : any export interface IFoo { } ->IFoo : IFoo, Symbol(IFoo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 12)) ->T : T, Symbol(T, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 1, 26)) +>IFoo : IFoo +>T : T } module bar { ->bar : typeof bar, Symbol(bar, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 2, 1)) +>bar : typeof bar export class Foo implements foo.IFoo { } ->Foo : Foo, Symbol(Foo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 3, 12)) ->T : T, Symbol(T, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 4, 21)) ->foo.IFoo : any, Symbol(foo.IFoo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 12)) ->foo : any, Symbol(foo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 0)) ->IFoo : foo.IFoo, Symbol(foo.IFoo, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 0, 12)) ->T : T, Symbol(T, Decl(genericClassImplementingGenericInterfaceFromAnotherModule.ts, 4, 21)) +>Foo : Foo +>T : T +>foo.IFoo : any +>foo : any +>IFoo : foo.IFoo +>T : T } diff --git a/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.symbols b/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.symbols new file mode 100644 index 0000000000000..d2e173b807842 --- /dev/null +++ b/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/genericClassInheritsConstructorFromNonGenericClass.ts === +class A extends B { } +>A : Symbol(A, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 0, 0)) +>B : Symbol(B, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 0, 29)) + +class B extends C { } +>B : Symbol(B, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 0, 29)) +>U : Symbol(U, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 1, 8)) +>C : Symbol(C, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 1, 24)) + +class C { +>C : Symbol(C, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 1, 24)) + + constructor(p: string) { } +>p : Symbol(p, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 3, 16)) +} diff --git a/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.types b/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.types index 8f531304ce613..800b215f123c0 100644 --- a/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.types +++ b/tests/baselines/reference/genericClassInheritsConstructorFromNonGenericClass.types @@ -1,16 +1,16 @@ === tests/cases/compiler/genericClassInheritsConstructorFromNonGenericClass.ts === class A extends B { } ->A : A, Symbol(A, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 0, 29)) +>A : A +>B : B class B extends C { } ->B : B, Symbol(B, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 0, 29)) ->U : U, Symbol(U, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 1, 8)) ->C : C, Symbol(C, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 1, 24)) +>B : B +>U : U +>C : C class C { ->C : C, Symbol(C, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 1, 24)) +>C : C constructor(p: string) { } ->p : string, Symbol(p, Decl(genericClassInheritsConstructorFromNonGenericClass.ts, 3, 16)) +>p : string } diff --git a/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.symbols b/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.symbols new file mode 100644 index 0000000000000..291f439c9a937 --- /dev/null +++ b/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.symbols @@ -0,0 +1,256 @@ +=== tests/cases/compiler/genericClassPropertyInheritanceSpecialization.ts === +interface KnockoutObservableBase { +>KnockoutObservableBase : Symbol(KnockoutObservableBase, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 0)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) + + peek(): T; +>peek : Symbol(peek, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 37)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) + + (): T; +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) + + (value: T): void; +>value : Symbol(value, Decl(genericClassPropertyInheritanceSpecialization.ts, 3, 5)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) +} + +interface KnockoutObservable extends KnockoutObservableBase { +>KnockoutObservable : Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) +>KnockoutObservableBase : Symbol(KnockoutObservableBase, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 0)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) + + equalityComparer(a: T, b: T): boolean; +>equalityComparer : Symbol(equalityComparer, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 67)) +>a : Symbol(a, Decl(genericClassPropertyInheritanceSpecialization.ts, 7, 21)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) +>b : Symbol(b, Decl(genericClassPropertyInheritanceSpecialization.ts, 7, 26)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) + + valueHasMutated(): void; +>valueHasMutated : Symbol(valueHasMutated, Decl(genericClassPropertyInheritanceSpecialization.ts, 7, 42)) + + valueWillMutate(): void; +>valueWillMutate : Symbol(valueWillMutate, Decl(genericClassPropertyInheritanceSpecialization.ts, 8, 28)) +} + +interface KnockoutObservableArray extends KnockoutObservable { +>KnockoutObservableArray : Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>KnockoutObservable : Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + indexOf(searchElement: T, fromIndex?: number): number; +>indexOf : Symbol(indexOf, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 70)) +>searchElement : Symbol(searchElement, Decl(genericClassPropertyInheritanceSpecialization.ts, 13, 12)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>fromIndex : Symbol(fromIndex, Decl(genericClassPropertyInheritanceSpecialization.ts, 13, 29)) + + slice(start: number, end?: number): T[]; +>slice : Symbol(slice, Decl(genericClassPropertyInheritanceSpecialization.ts, 13, 58)) +>start : Symbol(start, Decl(genericClassPropertyInheritanceSpecialization.ts, 14, 10)) +>end : Symbol(end, Decl(genericClassPropertyInheritanceSpecialization.ts, 14, 24)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + splice(start: number, deleteCount?: number, ...items: T[]): T[]; +>splice : Symbol(splice, Decl(genericClassPropertyInheritanceSpecialization.ts, 14, 44)) +>start : Symbol(start, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 11)) +>deleteCount : Symbol(deleteCount, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 25)) +>items : Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 47)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + pop(): T; +>pop : Symbol(pop, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 68)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + push(...items: T[]): void; +>push : Symbol(push, Decl(genericClassPropertyInheritanceSpecialization.ts, 16, 13)) +>items : Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 17, 9)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + shift(): T; +>shift : Symbol(shift, Decl(genericClassPropertyInheritanceSpecialization.ts, 17, 30)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + unshift(...items: T[]): number; +>unshift : Symbol(unshift, Decl(genericClassPropertyInheritanceSpecialization.ts, 18, 15)) +>items : Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 19, 12)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + reverse(): T[]; +>reverse : Symbol(reverse, Decl(genericClassPropertyInheritanceSpecialization.ts, 19, 35)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + sort(compareFunction?: (a: T, b: T) => number): void; +>sort : Symbol(sort, Decl(genericClassPropertyInheritanceSpecialization.ts, 20, 19)) +>compareFunction : Symbol(compareFunction, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 9)) +>a : Symbol(a, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 28)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>b : Symbol(b, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 33)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + replace(oldItem: T, newItem: T): void; +>replace : Symbol(replace, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 57)) +>oldItem : Symbol(oldItem, Decl(genericClassPropertyInheritanceSpecialization.ts, 22, 12)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>newItem : Symbol(newItem, Decl(genericClassPropertyInheritanceSpecialization.ts, 22, 23)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + remove(item: T): T[]; +>remove : Symbol(remove, Decl(genericClassPropertyInheritanceSpecialization.ts, 22, 42)) +>item : Symbol(item, Decl(genericClassPropertyInheritanceSpecialization.ts, 23, 11)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + removeAll(items?: T[]): T[]; +>removeAll : Symbol(removeAll, Decl(genericClassPropertyInheritanceSpecialization.ts, 23, 25)) +>items : Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 24, 14)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + destroy(item: T): void; +>destroy : Symbol(destroy, Decl(genericClassPropertyInheritanceSpecialization.ts, 24, 32)) +>item : Symbol(item, Decl(genericClassPropertyInheritanceSpecialization.ts, 25, 12)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) + + destroyAll(items?: T[]): void; +>destroyAll : Symbol(destroyAll, Decl(genericClassPropertyInheritanceSpecialization.ts, 25, 27)) +>items : Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 26, 15)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +} + +interface KnockoutObservableArrayStatic { +>KnockoutObservableArrayStatic : Symbol(KnockoutObservableArrayStatic, Decl(genericClassPropertyInheritanceSpecialization.ts, 27, 1)) + + fn: KnockoutObservableArray; +>fn : Symbol(fn, Decl(genericClassPropertyInheritanceSpecialization.ts, 29, 41)) +>KnockoutObservableArray : Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) + + (value?: T[]): KnockoutObservableArray; +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 5)) +>value : Symbol(value, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 8)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 5)) +>KnockoutObservableArray : Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 5)) +} + +declare module ko { +>ko : Symbol(ko, Decl(genericClassPropertyInheritanceSpecialization.ts, 33, 1)) + + export var observableArray: KnockoutObservableArrayStatic; +>observableArray : Symbol(observableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 36, 14)) +>KnockoutObservableArrayStatic : Symbol(KnockoutObservableArrayStatic, Decl(genericClassPropertyInheritanceSpecialization.ts, 27, 1)) +} + +module Portal.Controls.Validators { +>Portal : Symbol(Portal, Decl(genericClassPropertyInheritanceSpecialization.ts, 37, 1)) +>Controls : Symbol(Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 14)) +>Validators : Symbol(Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 23)) + + export class Validator { +>Validator : Symbol(Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 27)) + + private _subscription; +>_subscription : Symbol(_subscription, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 36)) + + public message: KnockoutObservable; +>message : Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 42, 30)) +>KnockoutObservable : Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) + + public validationState: KnockoutObservable; +>validationState : Symbol(validationState, Decl(genericClassPropertyInheritanceSpecialization.ts, 43, 51)) +>KnockoutObservable : Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) + + public validate: KnockoutObservable; +>validate : Symbol(validate, Decl(genericClassPropertyInheritanceSpecialization.ts, 44, 59)) +>KnockoutObservable : Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 27)) + + constructor(message?: string) { } +>message : Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 46, 20)) + + public destroy(): void { } +>destroy : Symbol(destroy, Decl(genericClassPropertyInheritanceSpecialization.ts, 46, 41)) + + public _validate(value: TValue): number {return 0 } +>_validate : Symbol(_validate, Decl(genericClassPropertyInheritanceSpecialization.ts, 47, 34)) +>value : Symbol(value, Decl(genericClassPropertyInheritanceSpecialization.ts, 48, 25)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 27)) + } +} + +module PortalFx.ViewModels.Controls.Validators { +>PortalFx : Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) +>ViewModels : Symbol(ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) +>Controls : Symbol(Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) +>Validators : Symbol(Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) + + export class Validator extends Portal.Controls.Validators.Validator { +>Validator : Symbol(Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 54, 27)) +>Portal.Controls.Validators.Validator : Symbol(Portal.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) +>Portal.Controls.Validators : Symbol(Portal.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 23)) +>Portal.Controls : Symbol(Portal.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 14)) +>Portal : Symbol(Portal, Decl(genericClassPropertyInheritanceSpecialization.ts, 37, 1)) +>Controls : Symbol(Portal.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 14)) +>Validators : Symbol(Portal.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 23)) +>Validator : Symbol(Portal.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 54, 27)) + + constructor(message?: string) { +>message : Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 56, 20)) + + super(message); +>super : Symbol(Portal.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) +>message : Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 56, 20)) + } + } + +} + +interface Contract { +>Contract : Symbol(Contract, Decl(genericClassPropertyInheritanceSpecialization.ts, 61, 1)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 63, 19)) + + validators: KnockoutObservableArray>; +>validators : Symbol(validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 63, 28)) +>KnockoutObservableArray : Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) +>PortalFx : Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) +>ViewModels : Symbol(PortalFx.ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) +>Controls : Symbol(PortalFx.ViewModels.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) +>Validators : Symbol(PortalFx.ViewModels.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) +>Validator : Symbol(PortalFx.ViewModels.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 63, 19)) +} + + +class ViewModel implements Contract { +>ViewModel : Symbol(ViewModel, Decl(genericClassPropertyInheritanceSpecialization.ts, 66, 1)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) +>Contract : Symbol(Contract, Decl(genericClassPropertyInheritanceSpecialization.ts, 61, 1)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) + + public validators: KnockoutObservableArray> = ko.observableArray>(); +>validators : Symbol(validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 53)) +>KnockoutObservableArray : Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) +>PortalFx : Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) +>ViewModels : Symbol(PortalFx.ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) +>Controls : Symbol(PortalFx.ViewModels.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) +>Validators : Symbol(PortalFx.ViewModels.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) +>Validator : Symbol(PortalFx.ViewModels.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) +>ko.observableArray : Symbol(ko.observableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 36, 14)) +>ko : Symbol(ko, Decl(genericClassPropertyInheritanceSpecialization.ts, 33, 1)) +>observableArray : Symbol(ko.observableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 36, 14)) +>PortalFx : Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) +>ViewModels : Symbol(PortalFx.ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) +>Controls : Symbol(PortalFx.ViewModels.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) +>Validators : Symbol(PortalFx.ViewModels.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) +>Validator : Symbol(PortalFx.ViewModels.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) +>TValue : Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) +} + + diff --git a/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.types b/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.types index fdac954e8dd15..6ba27a66399fb 100644 --- a/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.types +++ b/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.types @@ -1,259 +1,259 @@ === tests/cases/compiler/genericClassPropertyInheritanceSpecialization.ts === interface KnockoutObservableBase { ->KnockoutObservableBase : KnockoutObservableBase, Symbol(KnockoutObservableBase, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) +>KnockoutObservableBase : KnockoutObservableBase +>T : T peek(): T; ->peek : () => T, Symbol(peek, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 37)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) +>peek : () => T +>T : T (): T; ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) +>T : T (value: T): void; ->value : T, Symbol(value, Decl(genericClassPropertyInheritanceSpecialization.ts, 3, 5)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 33)) +>value : T +>T : T } interface KnockoutObservable extends KnockoutObservableBase { ->KnockoutObservable : KnockoutObservable, Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) ->KnockoutObservableBase : KnockoutObservableBase, Symbol(KnockoutObservableBase, Decl(genericClassPropertyInheritanceSpecialization.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) +>KnockoutObservable : KnockoutObservable +>T : T +>KnockoutObservableBase : KnockoutObservableBase +>T : T equalityComparer(a: T, b: T): boolean; ->equalityComparer : (a: T, b: T) => boolean, Symbol(equalityComparer, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 67)) ->a : T, Symbol(a, Decl(genericClassPropertyInheritanceSpecialization.ts, 7, 21)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) ->b : T, Symbol(b, Decl(genericClassPropertyInheritanceSpecialization.ts, 7, 26)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 6, 29)) +>equalityComparer : (a: T, b: T) => boolean +>a : T +>T : T +>b : T +>T : T valueHasMutated(): void; ->valueHasMutated : () => void, Symbol(valueHasMutated, Decl(genericClassPropertyInheritanceSpecialization.ts, 7, 42)) +>valueHasMutated : () => void valueWillMutate(): void; ->valueWillMutate : () => void, Symbol(valueWillMutate, Decl(genericClassPropertyInheritanceSpecialization.ts, 8, 28)) +>valueWillMutate : () => void } interface KnockoutObservableArray extends KnockoutObservable { ->KnockoutObservableArray : KnockoutObservableArray, Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->KnockoutObservable : KnockoutObservable, Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>KnockoutObservableArray : KnockoutObservableArray +>T : T +>KnockoutObservable : KnockoutObservable +>T : T indexOf(searchElement: T, fromIndex?: number): number; ->indexOf : (searchElement: T, fromIndex?: number) => number, Symbol(indexOf, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 70)) ->searchElement : T, Symbol(searchElement, Decl(genericClassPropertyInheritanceSpecialization.ts, 13, 12)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->fromIndex : number, Symbol(fromIndex, Decl(genericClassPropertyInheritanceSpecialization.ts, 13, 29)) +>indexOf : (searchElement: T, fromIndex?: number) => number +>searchElement : T +>T : T +>fromIndex : number slice(start: number, end?: number): T[]; ->slice : (start: number, end?: number) => T[], Symbol(slice, Decl(genericClassPropertyInheritanceSpecialization.ts, 13, 58)) ->start : number, Symbol(start, Decl(genericClassPropertyInheritanceSpecialization.ts, 14, 10)) ->end : number, Symbol(end, Decl(genericClassPropertyInheritanceSpecialization.ts, 14, 24)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>slice : (start: number, end?: number) => T[] +>start : number +>end : number +>T : T splice(start: number, deleteCount?: number, ...items: T[]): T[]; ->splice : (start: number, deleteCount?: number, ...items: T[]) => T[], Symbol(splice, Decl(genericClassPropertyInheritanceSpecialization.ts, 14, 44)) ->start : number, Symbol(start, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 11)) ->deleteCount : number, Symbol(deleteCount, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 25)) ->items : T[], Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 47)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>splice : (start: number, deleteCount?: number, ...items: T[]) => T[] +>start : number +>deleteCount : number +>items : T[] +>T : T +>T : T pop(): T; ->pop : () => T, Symbol(pop, Decl(genericClassPropertyInheritanceSpecialization.ts, 15, 68)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>pop : () => T +>T : T push(...items: T[]): void; ->push : (...items: T[]) => void, Symbol(push, Decl(genericClassPropertyInheritanceSpecialization.ts, 16, 13)) ->items : T[], Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 17, 9)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>push : (...items: T[]) => void +>items : T[] +>T : T shift(): T; ->shift : () => T, Symbol(shift, Decl(genericClassPropertyInheritanceSpecialization.ts, 17, 30)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>shift : () => T +>T : T unshift(...items: T[]): number; ->unshift : (...items: T[]) => number, Symbol(unshift, Decl(genericClassPropertyInheritanceSpecialization.ts, 18, 15)) ->items : T[], Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 19, 12)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>unshift : (...items: T[]) => number +>items : T[] +>T : T reverse(): T[]; ->reverse : () => T[], Symbol(reverse, Decl(genericClassPropertyInheritanceSpecialization.ts, 19, 35)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>reverse : () => T[] +>T : T sort(compareFunction?: (a: T, b: T) => number): void; ->sort : (compareFunction?: (a: T, b: T) => number) => void, Symbol(sort, Decl(genericClassPropertyInheritanceSpecialization.ts, 20, 19)) ->compareFunction : (a: T, b: T) => number, Symbol(compareFunction, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 9)) ->a : T, Symbol(a, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 28)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->b : T, Symbol(b, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 33)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>sort : (compareFunction?: (a: T, b: T) => number) => void +>compareFunction : (a: T, b: T) => number +>a : T +>T : T +>b : T +>T : T replace(oldItem: T, newItem: T): void; ->replace : (oldItem: T, newItem: T) => void, Symbol(replace, Decl(genericClassPropertyInheritanceSpecialization.ts, 21, 57)) ->oldItem : T, Symbol(oldItem, Decl(genericClassPropertyInheritanceSpecialization.ts, 22, 12)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->newItem : T, Symbol(newItem, Decl(genericClassPropertyInheritanceSpecialization.ts, 22, 23)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>replace : (oldItem: T, newItem: T) => void +>oldItem : T +>T : T +>newItem : T +>T : T remove(item: T): T[]; ->remove : (item: T) => T[], Symbol(remove, Decl(genericClassPropertyInheritanceSpecialization.ts, 22, 42)) ->item : T, Symbol(item, Decl(genericClassPropertyInheritanceSpecialization.ts, 23, 11)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>remove : (item: T) => T[] +>item : T +>T : T +>T : T removeAll(items?: T[]): T[]; ->removeAll : (items?: T[]) => T[], Symbol(removeAll, Decl(genericClassPropertyInheritanceSpecialization.ts, 23, 25)) ->items : T[], Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 24, 14)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>removeAll : (items?: T[]) => T[] +>items : T[] +>T : T +>T : T destroy(item: T): void; ->destroy : (item: T) => void, Symbol(destroy, Decl(genericClassPropertyInheritanceSpecialization.ts, 24, 32)) ->item : T, Symbol(item, Decl(genericClassPropertyInheritanceSpecialization.ts, 25, 12)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>destroy : (item: T) => void +>item : T +>T : T destroyAll(items?: T[]): void; ->destroyAll : (items?: T[]) => void, Symbol(destroyAll, Decl(genericClassPropertyInheritanceSpecialization.ts, 25, 27)) ->items : T[], Symbol(items, Decl(genericClassPropertyInheritanceSpecialization.ts, 26, 15)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 12, 34)) +>destroyAll : (items?: T[]) => void +>items : T[] +>T : T } interface KnockoutObservableArrayStatic { ->KnockoutObservableArrayStatic : KnockoutObservableArrayStatic, Symbol(KnockoutObservableArrayStatic, Decl(genericClassPropertyInheritanceSpecialization.ts, 27, 1)) +>KnockoutObservableArrayStatic : KnockoutObservableArrayStatic fn: KnockoutObservableArray; ->fn : KnockoutObservableArray, Symbol(fn, Decl(genericClassPropertyInheritanceSpecialization.ts, 29, 41)) ->KnockoutObservableArray : KnockoutObservableArray, Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) +>fn : KnockoutObservableArray +>KnockoutObservableArray : KnockoutObservableArray (value?: T[]): KnockoutObservableArray; ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 5)) ->value : T[], Symbol(value, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 8)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 5)) ->KnockoutObservableArray : KnockoutObservableArray, Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassPropertyInheritanceSpecialization.ts, 32, 5)) +>T : T +>value : T[] +>T : T +>KnockoutObservableArray : KnockoutObservableArray +>T : T } declare module ko { ->ko : typeof ko, Symbol(ko, Decl(genericClassPropertyInheritanceSpecialization.ts, 33, 1)) +>ko : typeof ko export var observableArray: KnockoutObservableArrayStatic; ->observableArray : KnockoutObservableArrayStatic, Symbol(observableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 36, 14)) ->KnockoutObservableArrayStatic : KnockoutObservableArrayStatic, Symbol(KnockoutObservableArrayStatic, Decl(genericClassPropertyInheritanceSpecialization.ts, 27, 1)) +>observableArray : KnockoutObservableArrayStatic +>KnockoutObservableArrayStatic : KnockoutObservableArrayStatic } module Portal.Controls.Validators { ->Portal : typeof Portal, Symbol(Portal, Decl(genericClassPropertyInheritanceSpecialization.ts, 37, 1)) ->Controls : typeof Controls, Symbol(Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 14)) ->Validators : typeof Validators, Symbol(Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 23)) +>Portal : typeof Portal +>Controls : typeof Controls +>Validators : typeof Validators export class Validator { ->Validator : Validator, Symbol(Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 27)) +>Validator : Validator +>TValue : TValue private _subscription; ->_subscription : any, Symbol(_subscription, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 36)) +>_subscription : any public message: KnockoutObservable; ->message : KnockoutObservable, Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 42, 30)) ->KnockoutObservable : KnockoutObservable, Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) +>message : KnockoutObservable +>KnockoutObservable : KnockoutObservable public validationState: KnockoutObservable; ->validationState : KnockoutObservable, Symbol(validationState, Decl(genericClassPropertyInheritanceSpecialization.ts, 43, 51)) ->KnockoutObservable : KnockoutObservable, Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) +>validationState : KnockoutObservable +>KnockoutObservable : KnockoutObservable public validate: KnockoutObservable; ->validate : KnockoutObservable, Symbol(validate, Decl(genericClassPropertyInheritanceSpecialization.ts, 44, 59)) ->KnockoutObservable : KnockoutObservable, Symbol(KnockoutObservable, Decl(genericClassPropertyInheritanceSpecialization.ts, 4, 1)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 27)) +>validate : KnockoutObservable +>KnockoutObservable : KnockoutObservable +>TValue : TValue constructor(message?: string) { } ->message : string, Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 46, 20)) +>message : string public destroy(): void { } ->destroy : () => void, Symbol(destroy, Decl(genericClassPropertyInheritanceSpecialization.ts, 46, 41)) +>destroy : () => void public _validate(value: TValue): number {return 0 } ->_validate : (value: TValue) => number, Symbol(_validate, Decl(genericClassPropertyInheritanceSpecialization.ts, 47, 34)) ->value : TValue, Symbol(value, Decl(genericClassPropertyInheritanceSpecialization.ts, 48, 25)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 41, 27)) +>_validate : (value: TValue) => number +>value : TValue +>TValue : TValue >0 : number } } module PortalFx.ViewModels.Controls.Validators { ->PortalFx : typeof PortalFx, Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) ->ViewModels : typeof ViewModels, Symbol(ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) ->Controls : typeof Controls, Symbol(Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) ->Validators : typeof Validators, Symbol(Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) +>PortalFx : typeof PortalFx +>ViewModels : typeof ViewModels +>Controls : typeof Controls +>Validators : typeof Validators export class Validator extends Portal.Controls.Validators.Validator { ->Validator : Validator, Symbol(Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 54, 27)) ->Portal.Controls.Validators.Validator : any, Symbol(Portal.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) ->Portal.Controls.Validators : typeof Portal.Controls.Validators, Symbol(Portal.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 23)) ->Portal.Controls : typeof Portal.Controls, Symbol(Portal.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 14)) ->Portal : typeof Portal, Symbol(Portal, Decl(genericClassPropertyInheritanceSpecialization.ts, 37, 1)) ->Controls : typeof Portal.Controls, Symbol(Portal.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 14)) ->Validators : typeof Portal.Controls.Validators, Symbol(Portal.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 23)) ->Validator : Portal.Controls.Validators.Validator, Symbol(Portal.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 54, 27)) +>Validator : Validator +>TValue : TValue +>Portal.Controls.Validators.Validator : any +>Portal.Controls.Validators : typeof Portal.Controls.Validators +>Portal.Controls : typeof Portal.Controls +>Portal : typeof Portal +>Controls : typeof Portal.Controls +>Validators : typeof Portal.Controls.Validators +>Validator : Portal.Controls.Validators.Validator +>TValue : TValue constructor(message?: string) { ->message : string, Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 56, 20)) +>message : string super(message); >super(message) : void ->super : typeof Portal.Controls.Validators.Validator, Symbol(Portal.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 39, 35)) ->message : string, Symbol(message, Decl(genericClassPropertyInheritanceSpecialization.ts, 56, 20)) +>super : typeof Portal.Controls.Validators.Validator +>message : string } } } interface Contract { ->Contract : Contract, Symbol(Contract, Decl(genericClassPropertyInheritanceSpecialization.ts, 61, 1)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 63, 19)) +>Contract : Contract +>TValue : TValue validators: KnockoutObservableArray>; ->validators : KnockoutObservableArray>, Symbol(validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 63, 28)) ->KnockoutObservableArray : KnockoutObservableArray, Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) ->PortalFx : any, Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) ->ViewModels : any, Symbol(PortalFx.ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) ->Controls : any, Symbol(PortalFx.ViewModels.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) ->Validators : any, Symbol(PortalFx.ViewModels.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) ->Validator : PortalFx.ViewModels.Controls.Validators.Validator, Symbol(PortalFx.ViewModels.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 63, 19)) +>validators : KnockoutObservableArray> +>KnockoutObservableArray : KnockoutObservableArray +>PortalFx : any +>ViewModels : any +>Controls : any +>Validators : any +>Validator : PortalFx.ViewModels.Controls.Validators.Validator +>TValue : TValue } class ViewModel implements Contract { ->ViewModel : ViewModel, Symbol(ViewModel, Decl(genericClassPropertyInheritanceSpecialization.ts, 66, 1)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) ->Contract : Contract, Symbol(Contract, Decl(genericClassPropertyInheritanceSpecialization.ts, 61, 1)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) +>ViewModel : ViewModel +>TValue : TValue +>Contract : Contract +>TValue : TValue public validators: KnockoutObservableArray> = ko.observableArray>(); ->validators : KnockoutObservableArray>, Symbol(validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 53)) ->KnockoutObservableArray : KnockoutObservableArray, Symbol(KnockoutObservableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 10, 1)) ->PortalFx : any, Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) ->ViewModels : any, Symbol(PortalFx.ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) ->Controls : any, Symbol(PortalFx.ViewModels.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) ->Validators : any, Symbol(PortalFx.ViewModels.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) ->Validator : PortalFx.ViewModels.Controls.Validators.Validator, Symbol(PortalFx.ViewModels.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) +>validators : KnockoutObservableArray> +>KnockoutObservableArray : KnockoutObservableArray +>PortalFx : any +>ViewModels : any +>Controls : any +>Validators : any +>Validator : PortalFx.ViewModels.Controls.Validators.Validator +>TValue : TValue >ko.observableArray>() : KnockoutObservableArray> ->ko.observableArray : KnockoutObservableArrayStatic, Symbol(ko.observableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 36, 14)) ->ko : typeof ko, Symbol(ko, Decl(genericClassPropertyInheritanceSpecialization.ts, 33, 1)) ->observableArray : KnockoutObservableArrayStatic, Symbol(ko.observableArray, Decl(genericClassPropertyInheritanceSpecialization.ts, 36, 14)) ->PortalFx : any, Symbol(PortalFx, Decl(genericClassPropertyInheritanceSpecialization.ts, 50, 1)) ->ViewModels : any, Symbol(PortalFx.ViewModels, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 16)) ->Controls : any, Symbol(PortalFx.ViewModels.Controls, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 27)) ->Validators : any, Symbol(PortalFx.ViewModels.Controls.Validators, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 36)) ->Validator : PortalFx.ViewModels.Controls.Validators.Validator, Symbol(PortalFx.ViewModels.Controls.Validators.Validator, Decl(genericClassPropertyInheritanceSpecialization.ts, 52, 48)) ->TValue : TValue, Symbol(TValue, Decl(genericClassPropertyInheritanceSpecialization.ts, 69, 16)) +>ko.observableArray : KnockoutObservableArrayStatic +>ko : typeof ko +>observableArray : KnockoutObservableArrayStatic +>PortalFx : any +>ViewModels : any +>Controls : any +>Validators : any +>Validator : PortalFx.ViewModels.Controls.Validators.Validator +>TValue : TValue } diff --git a/tests/baselines/reference/genericClassStaticMethod.symbols b/tests/baselines/reference/genericClassStaticMethod.symbols new file mode 100644 index 0000000000000..b4ebd9d2ce93b --- /dev/null +++ b/tests/baselines/reference/genericClassStaticMethod.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/genericClassStaticMethod.ts === +class Foo { +>Foo : Symbol(Foo, Decl(genericClassStaticMethod.ts, 0, 0)) +>T : Symbol(T, Decl(genericClassStaticMethod.ts, 0, 10)) + + static getFoo() { +>getFoo : Symbol(Foo.getFoo, Decl(genericClassStaticMethod.ts, 0, 14)) + } +} + +class Bar extends Foo { +>Bar : Symbol(Bar, Decl(genericClassStaticMethod.ts, 3, 1)) +>T : Symbol(T, Decl(genericClassStaticMethod.ts, 5, 10)) +>Foo : Symbol(Foo, Decl(genericClassStaticMethod.ts, 0, 0)) +>T : Symbol(T, Decl(genericClassStaticMethod.ts, 5, 10)) + + static getFoo() { +>getFoo : Symbol(Bar.getFoo, Decl(genericClassStaticMethod.ts, 5, 29)) + } +} + diff --git a/tests/baselines/reference/genericClassStaticMethod.types b/tests/baselines/reference/genericClassStaticMethod.types index fb798036de06d..3d4c02317d637 100644 --- a/tests/baselines/reference/genericClassStaticMethod.types +++ b/tests/baselines/reference/genericClassStaticMethod.types @@ -1,21 +1,21 @@ === tests/cases/compiler/genericClassStaticMethod.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(genericClassStaticMethod.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClassStaticMethod.ts, 0, 10)) +>Foo : Foo +>T : T static getFoo() { ->getFoo : () => void, Symbol(Foo.getFoo, Decl(genericClassStaticMethod.ts, 0, 14)) +>getFoo : () => void } } class Bar extends Foo { ->Bar : Bar, Symbol(Bar, Decl(genericClassStaticMethod.ts, 3, 1)) ->T : T, Symbol(T, Decl(genericClassStaticMethod.ts, 5, 10)) ->Foo : Foo, Symbol(Foo, Decl(genericClassStaticMethod.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClassStaticMethod.ts, 5, 10)) +>Bar : Bar +>T : T +>Foo : Foo +>T : T static getFoo() { ->getFoo : () => void, Symbol(Bar.getFoo, Decl(genericClassStaticMethod.ts, 5, 29)) +>getFoo : () => void } } diff --git a/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.symbols b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.symbols new file mode 100644 index 0000000000000..a178f5b97e88b --- /dev/null +++ b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.symbols @@ -0,0 +1,228 @@ +=== tests/cases/conformance/types/typeRelationships/typeInference/genericClassWithObjectTypeArgsAndConstraints.ts === +// Generic call with constraints infering type parameter from object member properties +// No errors expected + +class C { +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) + + x: string; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 3, 9)) +} + +class D { +>D : Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) + + x: string; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 7, 9)) + + y: string; +>y : Symbol(y, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 8, 14)) +} + +class X { +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 12, 8)) + + x: T; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 12, 12)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 12, 8)) +} + +module Class { +>Class : Symbol(Class, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 14, 1)) + + class G { +>G : Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 16, 14)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 12)) +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 23)) + + foo(t: X, t2: X) { +>foo : Symbol(foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 23)) +>t : Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 37)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) +>t2 : Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 45)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) + + var x: T; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 19, 15)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) + + return x; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 19, 15)) + } + } + + var c1 = new X(); +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) + + var d1 = new X(); +>d1 : Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 25, 7)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>D : Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) + + var g: G<{ x: string; y: string }>; +>g : Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 7)) +>G : Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 16, 14)) +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 14)) +>y : Symbol(y, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 25)) + + var r = g.foo(c1, d1); +>r : Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 27, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 37, 7)) +>g.foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) +>g : Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 7)) +>foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>d1 : Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 25, 7)) + + var r2 = g.foo(c1, c1); +>r2 : Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 38, 7)) +>g.foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) +>g : Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 7)) +>foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) + + class G2 { +>G2 : Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 27)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 13)) +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) + + foo2(t: X, t2: X) { +>foo2 : Symbol(foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>t : Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 26)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) +>t2 : Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 34)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) + + var x: T; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 32, 15)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) + + return x; +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 32, 15)) + } + } + var g2: G2; +>g2 : Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 36, 7)) +>G2 : Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 27)) +>D : Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) + + var r = g2.foo2(c1, d1); +>r : Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 27, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 37, 7)) +>g2.foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) +>g2 : Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 36, 7)) +>foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>d1 : Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 25, 7)) + + var r2 = g2.foo2(c1, c1); +>r2 : Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 38, 7)) +>g2.foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) +>g2 : Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 36, 7)) +>foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +} + +module Interface { +>Interface : Symbol(Interface, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 39, 1)) + + interface G { +>G : Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 41, 18)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 16)) +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 27)) + + foo(t: X, t2: X): T; +>foo : Symbol(foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 23)) +>t : Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 37)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) +>t2 : Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 45)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) + } + + var c1 = new X(); +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) + + var d1 = new X(); +>d1 : Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 47, 7)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>D : Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) + + var g: G<{ x: string; y: string }>; +>g : Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 7)) +>G : Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 41, 18)) +>x : Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 14)) +>y : Symbol(y, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 25)) + + var r = g.foo(c1, d1); +>r : Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 49, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 57, 7)) +>g.foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) +>g : Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 7)) +>foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>d1 : Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 47, 7)) + + var r2 = g.foo(c1, c1); +>r2 : Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 58, 7)) +>g.foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) +>g : Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 7)) +>foo : Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) + + interface G2 { +>G2 : Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 27)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 17)) +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) + + foo2(t: X, t2: X): T; +>foo2 : Symbol(foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) +>C : Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>t : Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 26)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) +>t2 : Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 34)) +>X : Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) +>T : Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) + } + + var g2: G2; +>g2 : Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 56, 7)) +>G2 : Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 27)) +>D : Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) + + var r = g2.foo2(c1, d1); +>r : Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 49, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 57, 7)) +>g2.foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) +>g2 : Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 56, 7)) +>foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>d1 : Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 47, 7)) + + var r2 = g2.foo2(c1, c1); +>r2 : Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 58, 7)) +>g2.foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) +>g2 : Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 56, 7)) +>foo2 : Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>c1 : Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +} diff --git a/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types index 5f28045e8134f..25fe052d4981d 100644 --- a/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types +++ b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types @@ -3,238 +3,238 @@ // No errors expected class C { ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>C : C x: string; ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 3, 9)) +>x : string } class D { ->D : D, Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>D : D x: string; ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 7, 9)) +>x : string y: string; ->y : string, Symbol(y, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 8, 14)) +>y : string } class X { ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 12, 8)) +>X : X +>T : T x: T; ->x : T, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 12, 12)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 12, 8)) +>x : T +>T : T } module Class { ->Class : typeof Class, Symbol(Class, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 14, 1)) +>Class : typeof Class class G { ->G : G, Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 16, 14)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 12)) ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 23)) +>G : G +>T : T +>x : string foo(t: X, t2: X) { ->foo : (t: X, t2: X) => T, Symbol(foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 23)) ->t : X, Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 37)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) ->t2 : X, Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 45)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) +>foo : (t: X, t2: X) => T +>T : T +>x : string +>t : X +>X : X +>T : T +>t2 : X +>X : X +>T : T var x: T; ->x : T, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 19, 15)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 18, 12)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 19, 15)) +>x : T } } var c1 = new X(); ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>c1 : X >new X() : X ->X : typeof X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>X : typeof X +>C : C var d1 = new X(); ->d1 : X, Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 25, 7)) +>d1 : X >new X() : X ->X : typeof X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->D : D, Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>X : typeof X +>D : D var g: G<{ x: string; y: string }>; ->g : G<{ x: string; y: string; }>, Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 7)) ->G : G, Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 16, 14)) ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 14)) ->y : string, Symbol(y, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 25)) +>g : G<{ x: string; y: string; }> +>G : G +>x : string +>y : string var r = g.foo(c1, d1); ->r : C, Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 27, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 37, 7)) +>r : C >g.foo(c1, d1) : C ->g.foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) ->g : G<{ x: string; y: string; }>, Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 7)) ->foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) ->d1 : X, Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 25, 7)) +>g.foo : (t: X, t2: X) => T +>g : G<{ x: string; y: string; }> +>foo : (t: X, t2: X) => T +>c1 : X +>d1 : X var r2 = g.foo(c1, c1); ->r2 : C, Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 38, 7)) +>r2 : C >g.foo(c1, c1) : C ->g.foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) ->g : G<{ x: string; y: string; }>, Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 26, 7)) ->foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 17, 38)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>g.foo : (t: X, t2: X) => T +>g : G<{ x: string; y: string; }> +>foo : (t: X, t2: X) => T +>c1 : X +>c1 : X class G2 { ->G2 : G2, Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 27)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 13)) ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>G2 : G2 +>T : T +>C : C foo2(t: X, t2: X) { ->foo2 : (t: X, t2: X) => T, Symbol(foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) ->t : X, Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 26)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) ->t2 : X, Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 34)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) +>foo2 : (t: X, t2: X) => T +>T : T +>C : C +>t : X +>X : X +>T : T +>t2 : X +>X : X +>T : T var x: T; ->x : T, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 32, 15)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 31, 13)) +>x : T +>T : T return x; ->x : T, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 32, 15)) +>x : T } } var g2: G2; ->g2 : G2, Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 36, 7)) ->G2 : G2, Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 27)) ->D : D, Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>g2 : G2 +>G2 : G2 +>D : D var r = g2.foo2(c1, d1); ->r : C, Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 27, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 37, 7)) +>r : C >g2.foo2(c1, d1) : C ->g2.foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) ->g2 : G2, Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 36, 7)) ->foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) ->d1 : X, Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 25, 7)) +>g2.foo2 : (t: X, t2: X) => T +>g2 : G2 +>foo2 : (t: X, t2: X) => T +>c1 : X +>d1 : X var r2 = g2.foo2(c1, c1); ->r2 : C, Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 28, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 38, 7)) +>r2 : C >g2.foo2(c1, c1) : C ->g2.foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) ->g2 : G2, Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 36, 7)) ->foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 30, 27)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 24, 7)) +>g2.foo2 : (t: X, t2: X) => T +>g2 : G2 +>foo2 : (t: X, t2: X) => T +>c1 : X +>c1 : X } module Interface { ->Interface : typeof Interface, Symbol(Interface, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 39, 1)) +>Interface : typeof Interface interface G { ->G : G, Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 41, 18)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 16)) ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 27)) +>G : G +>T : T +>x : string foo(t: X, t2: X): T; ->foo : (t: X, t2: X) => T, Symbol(foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 23)) ->t : X, Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 37)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) ->t2 : X, Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 45)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 43, 12)) +>foo : (t: X, t2: X) => T +>T : T +>x : string +>t : X +>X : X +>T : T +>t2 : X +>X : X +>T : T +>T : T } var c1 = new X(); ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>c1 : X >new X() : X ->X : typeof X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>X : typeof X +>C : C var d1 = new X(); ->d1 : X, Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 47, 7)) +>d1 : X >new X() : X ->X : typeof X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->D : D, Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>X : typeof X +>D : D var g: G<{ x: string; y: string }>; ->g : G<{ x: string; y: string; }>, Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 7)) ->G : G, Symbol(G, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 41, 18)) ->x : string, Symbol(x, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 14)) ->y : string, Symbol(y, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 25)) +>g : G<{ x: string; y: string; }> +>G : G +>x : string +>y : string var r = g.foo(c1, d1); ->r : C, Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 49, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 57, 7)) +>r : C >g.foo(c1, d1) : C ->g.foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) ->g : G<{ x: string; y: string; }>, Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 7)) ->foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) ->d1 : X, Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 47, 7)) +>g.foo : (t: X, t2: X) => T +>g : G<{ x: string; y: string; }> +>foo : (t: X, t2: X) => T +>c1 : X +>d1 : X var r2 = g.foo(c1, c1); ->r2 : C, Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 58, 7)) +>r2 : C >g.foo(c1, c1) : C ->g.foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) ->g : G<{ x: string; y: string; }>, Symbol(g, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 48, 7)) ->foo : (t: X, t2: X) => T, Symbol(G.foo, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 42, 42)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>g.foo : (t: X, t2: X) => T +>g : G<{ x: string; y: string; }> +>foo : (t: X, t2: X) => T +>c1 : X +>c1 : X interface G2 { ->G2 : G2, Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 27)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 17)) ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) +>G2 : G2 +>T : T +>C : C foo2(t: X, t2: X): T; ->foo2 : (t: X, t2: X) => T, Symbol(foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) ->C : C, Symbol(C, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 0, 0)) ->t : X, Symbol(t, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 26)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) ->t2 : X, Symbol(t2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 34)) ->X : X, Symbol(X, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) ->T : T, Symbol(T, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 53, 13)) +>foo2 : (t: X, t2: X) => T +>T : T +>C : C +>t : X +>X : X +>T : T +>t2 : X +>X : X +>T : T +>T : T } var g2: G2; ->g2 : G2, Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 56, 7)) ->G2 : G2, Symbol(G2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 27)) ->D : D, Symbol(D, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 5, 1)) +>g2 : G2 +>G2 : G2 +>D : D var r = g2.foo2(c1, d1); ->r : C, Symbol(r, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 49, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 57, 7)) +>r : C >g2.foo2(c1, d1) : C ->g2.foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) ->g2 : G2, Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 56, 7)) ->foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) ->d1 : X, Symbol(d1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 47, 7)) +>g2.foo2 : (t: X, t2: X) => T +>g2 : G2 +>foo2 : (t: X, t2: X) => T +>c1 : X +>d1 : X var r2 = g2.foo2(c1, c1); ->r2 : C, Symbol(r2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 50, 7), Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 58, 7)) +>r2 : C >g2.foo2(c1, c1) : C ->g2.foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) ->g2 : G2, Symbol(g2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 56, 7)) ->foo2 : (t: X, t2: X) => T, Symbol(G2.foo2, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 52, 31)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) ->c1 : X, Symbol(c1, Decl(genericClassWithObjectTypeArgsAndConstraints.ts, 46, 7)) +>g2.foo2 : (t: X, t2: X) => T +>g2 : G2 +>foo2 : (t: X, t2: X) => T +>c1 : X +>c1 : X } diff --git a/tests/baselines/reference/genericClassWithStaticFactory.symbols b/tests/baselines/reference/genericClassWithStaticFactory.symbols new file mode 100644 index 0000000000000..37ee9c638e955 --- /dev/null +++ b/tests/baselines/reference/genericClassWithStaticFactory.symbols @@ -0,0 +1,548 @@ +=== tests/cases/compiler/genericClassWithStaticFactory.ts === +module Editor { +>Editor : Symbol(Editor, Decl(genericClassWithStaticFactory.ts, 0, 0)) + + export class List { +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + public next: List; +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + public prev: List; +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + private listFactory: ListFactory; +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>ListFactory : Symbol(ListFactory, Decl(genericClassWithStaticFactory.ts, 106, 5)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + constructor(public isHead: boolean, public data: T) { +>isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + this.listFactory = new ListFactory(); +>this.listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>ListFactory : Symbol(ListFactory, Decl(genericClassWithStaticFactory.ts, 106, 5)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + } + + public add(data: T): List { +>add : Symbol(add, Decl(genericClassWithStaticFactory.ts, 10, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 12, 19)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + var entry = this.listFactory.MakeEntry(data); +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>this.listFactory.MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>this.listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 12, 19)) + + this.prev.next = entry; +>this.prev.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) + + entry.next = this; +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + + entry.prev = this.prev; +>entry.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) + + this.prev = entry; +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) + } + + public count(): number { +>count : Symbol(count, Decl(genericClassWithStaticFactory.ts, 20, 9)) + + var entry: List; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + var i: number; +>i : Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) + + entry = this.next; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + + for (i = 0; !(entry.isHead); i++) { +>i : Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) +>entry.isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) +>isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>i : Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) + + entry = entry.next; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + } + + return (i); +>i : Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) + } + + public isEmpty(): boolean { +>isEmpty : Symbol(isEmpty, Decl(genericClassWithStaticFactory.ts, 32, 9)) + + return (this.next == this); +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + } + + public first(): T { +>first : Symbol(first, Decl(genericClassWithStaticFactory.ts, 36, 9)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + if (this.isEmpty()) +>this.isEmpty : Symbol(isEmpty, Decl(genericClassWithStaticFactory.ts, 32, 9)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>isEmpty : Symbol(isEmpty, Decl(genericClassWithStaticFactory.ts, 32, 9)) + { + return this.next.data; +>this.next.data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) + } + else { + return null; + } + } + + public pushEntry(entry: List): void { +>pushEntry : Symbol(pushEntry, Decl(genericClassWithStaticFactory.ts, 46, 9)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + entry.isHead = false; +>entry.isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) + + entry.next = this.next; +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + + entry.prev = this; +>entry.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + + this.next = entry; +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) + + entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does +>entry.next.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) + } + + public push(data: T): void { +>push : Symbol(push, Decl(genericClassWithStaticFactory.ts, 54, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 56, 20)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + var entry = this.listFactory.MakeEntry(data); +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>this.listFactory.MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>this.listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 56, 20)) + + entry.data = data; +>entry.data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 56, 20)) + + entry.isHead = false; +>entry.isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) + + entry.next = this.next; +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + + entry.prev = this; +>entry.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + + this.next = entry; +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) + + entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does +>entry.next.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) + } + + public popEntry(head: List): List { +>popEntry : Symbol(popEntry, Decl(genericClassWithStaticFactory.ts, 64, 9)) +>head : Symbol(head, Decl(genericClassWithStaticFactory.ts, 66, 24)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + if (this.next.isHead) { +>this.next.isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) + + return null; + } + else { + return this.listFactory.RemoveEntry(this.next); +>this.listFactory.RemoveEntry : Symbol(ListFactory.RemoveEntry, Decl(genericClassWithStaticFactory.ts, 122, 9)) +>this.listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>RemoveEntry : Symbol(ListFactory.RemoveEntry, Decl(genericClassWithStaticFactory.ts, 122, 9)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + } + } + + public insertEntry(entry: List): List { +>insertEntry : Symbol(insertEntry, Decl(genericClassWithStaticFactory.ts, 73, 9)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + entry.isHead = false; +>entry.isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>isHead : Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) + + this.prev.next = entry; +>this.prev.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) + + entry.next = this; +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + + entry.prev = this.prev; +>entry.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) + + this.prev = entry; +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) + } + + public insertAfter(data: T): List { +>insertAfter : Symbol(insertAfter, Decl(genericClassWithStaticFactory.ts, 82, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 84, 27)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + var entry: List = this.listFactory.MakeEntry(data); +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>this.listFactory.MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>this.listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 84, 27)) + + entry.next = this.next; +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + + entry.prev = this; +>entry.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + + this.next = entry; +>this.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) + + entry.next.prev = entry;// entry.next.prev does not show intellisense, but entry.prev.prev does +>entry.next.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) + } + + public insertEntryBefore(entry: List): List { +>insertEntryBefore : Symbol(insertEntryBefore, Decl(genericClassWithStaticFactory.ts, 91, 9)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + this.prev.next = entry; +>this.prev.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) + + entry.next = this; +>entry.next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) +>next : Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) + + entry.prev = this.prev; +>entry.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) + + this.prev = entry; +>this.prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>prev : Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) + } + + public insertBefore(data: T): List { +>insertBefore : Symbol(insertBefore, Decl(genericClassWithStaticFactory.ts, 100, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 102, 28)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) + + var entry = this.listFactory.MakeEntry(data); +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 103, 15)) +>this.listFactory.MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>this.listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>listFactory : Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>MakeEntry : Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 102, 28)) + + return this.insertEntryBefore(entry); +>this.insertEntryBefore : Symbol(insertEntryBefore, Decl(genericClassWithStaticFactory.ts, 91, 9)) +>this : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>insertEntryBefore : Symbol(insertEntryBefore, Decl(genericClassWithStaticFactory.ts, 91, 9)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 103, 15)) + } + } + + export class ListFactory { +>ListFactory : Symbol(ListFactory, Decl(genericClassWithStaticFactory.ts, 106, 5)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 108, 29)) + + public MakeHead(): List { +>MakeHead : Symbol(MakeHead, Decl(genericClassWithStaticFactory.ts, 108, 33)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) + + var entry: List = new List(true, null); +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) + + entry.prev = entry; +>entry.prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) +>prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) + + entry.next = entry; +>entry.next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) +>next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) + } + + public MakeEntry(data: T): List { +>MakeEntry : Symbol(MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 117, 28)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) + + var entry: List = new List(false, data); +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>data : Symbol(data, Decl(genericClassWithStaticFactory.ts, 117, 28)) + + entry.prev = entry; +>entry.prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) +>prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) + + entry.next = entry; +>entry.next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) +>next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) + } + + public RemoveEntry(entry: List): List { +>RemoveEntry : Symbol(RemoveEntry, Decl(genericClassWithStaticFactory.ts, 122, 9)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 124, 27)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 124, 27)) +>List : Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>T : Symbol(T, Decl(genericClassWithStaticFactory.ts, 124, 27)) + + if (entry == null) { +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) + + return null; + } + else if (entry.isHead) { +>entry.isHead : Symbol(List.isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>isHead : Symbol(List.isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) + + // Can't remove the head of a list! + return null; + } + else { + entry.next.prev = entry.prev; +>entry.next.prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) + + entry.prev.next = entry.next; +>entry.prev.next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry.prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>prev : Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry.next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>next : Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) + + return entry; +>entry : Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) + } + } + } +} diff --git a/tests/baselines/reference/genericClassWithStaticFactory.types b/tests/baselines/reference/genericClassWithStaticFactory.types index c75d144cdc9fa..34d0c4aeaae91 100644 --- a/tests/baselines/reference/genericClassWithStaticFactory.types +++ b/tests/baselines/reference/genericClassWithStaticFactory.types @@ -1,166 +1,166 @@ === tests/cases/compiler/genericClassWithStaticFactory.ts === module Editor { ->Editor : typeof Editor, Symbol(Editor, Decl(genericClassWithStaticFactory.ts, 0, 0)) +>Editor : typeof Editor export class List { ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>List : List +>T : T public next: List; ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>next : List +>List : List +>T : T public prev: List; ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>prev : List +>List : List +>T : T private listFactory: ListFactory; ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->ListFactory : ListFactory, Symbol(ListFactory, Decl(genericClassWithStaticFactory.ts, 106, 5)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>listFactory : ListFactory +>ListFactory : ListFactory +>T : T constructor(public isHead: boolean, public data: T) { ->isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>isHead : boolean +>data : T +>T : T this.listFactory = new ListFactory(); >this.listFactory = new ListFactory() : ListFactory ->this.listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) +>this.listFactory : ListFactory +>this : List +>listFactory : ListFactory >new ListFactory() : ListFactory ->ListFactory : typeof ListFactory, Symbol(ListFactory, Decl(genericClassWithStaticFactory.ts, 106, 5)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>ListFactory : typeof ListFactory +>T : T } public add(data: T): List { ->add : (data: T) => List, Symbol(add, Decl(genericClassWithStaticFactory.ts, 10, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 12, 19)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>add : (data: T) => List +>data : T +>T : T +>List : List +>T : T var entry = this.listFactory.MakeEntry(data); ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>entry : List >this.listFactory.MakeEntry(data) : List ->this.listFactory.MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->this.listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 12, 19)) +>this.listFactory.MakeEntry : (data: T) => List +>this.listFactory : ListFactory +>this : List +>listFactory : ListFactory +>MakeEntry : (data: T) => List +>data : T this.prev.next = entry; >this.prev.next = entry : List ->this.prev.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>this.prev.next : List +>this.prev : List +>this : List +>prev : List +>next : List +>entry : List entry.next = this; >entry.next = this : List ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>entry.next : List +>entry : List +>next : List +>this : List entry.prev = this.prev; >entry.prev = this.prev : List ->entry.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.prev : List +>entry : List +>prev : List +>this.prev : List +>this : List +>prev : List this.prev = entry; >this.prev = entry : List ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>this.prev : List +>this : List +>prev : List +>entry : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 13, 15)) +>entry : List } public count(): number { ->count : () => number, Symbol(count, Decl(genericClassWithStaticFactory.ts, 20, 9)) +>count : () => number var entry: List; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>entry : List +>List : List +>T : T var i: number; ->i : number, Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) +>i : number entry = this.next; >entry = this.next : List ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : List +>this.next : List +>this : List +>next : List for (i = 0; !(entry.isHead); i++) { >i = 0 : number ->i : number, Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) +>i : number >0 : number >!(entry.isHead) : boolean >(entry.isHead) : boolean ->entry.isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) ->isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry.isHead : boolean +>entry : List +>isHead : boolean >i++ : number ->i : number, Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) +>i : number entry = entry.next; >entry = entry.next : List ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 23, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry : List +>entry.next : List +>entry : List +>next : List } return (i); >(i) : number ->i : number, Symbol(i, Decl(genericClassWithStaticFactory.ts, 24, 15)) +>i : number } public isEmpty(): boolean { ->isEmpty : () => boolean, Symbol(isEmpty, Decl(genericClassWithStaticFactory.ts, 32, 9)) +>isEmpty : () => boolean return (this.next == this); >(this.next == this) : boolean >this.next == this : boolean ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>this.next : List +>this : List +>next : List +>this : List } public first(): T { ->first : () => T, Symbol(first, Decl(genericClassWithStaticFactory.ts, 36, 9)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>first : () => T +>T : T if (this.isEmpty()) >this.isEmpty() : boolean ->this.isEmpty : () => boolean, Symbol(isEmpty, Decl(genericClassWithStaticFactory.ts, 32, 9)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->isEmpty : () => boolean, Symbol(isEmpty, Decl(genericClassWithStaticFactory.ts, 32, 9)) +>this.isEmpty : () => boolean +>this : List +>isEmpty : () => boolean { return this.next.data; ->this.next.data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) +>this.next.data : T +>this.next : List +>this : List +>next : List +>data : T } else { return null; @@ -169,127 +169,127 @@ module Editor { } public pushEntry(entry: List): void { ->pushEntry : (entry: List) => void, Symbol(pushEntry, Decl(genericClassWithStaticFactory.ts, 46, 9)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>pushEntry : (entry: List) => void +>entry : List +>List : List +>T : T entry.isHead = false; >entry.isHead = false : boolean ->entry.isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) ->isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry.isHead : boolean +>entry : List +>isHead : boolean >false : boolean entry.next = this.next; >entry.next = this.next : List ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry.next : List +>entry : List +>next : List +>this.next : List +>this : List +>next : List entry.prev = this; >entry.prev = this : List ->entry.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>entry.prev : List +>entry : List +>prev : List +>this : List this.next = entry; >this.next = entry : List ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>this.next : List +>this : List +>next : List +>entry : List entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does >entry.next.prev = entry : List ->entry.next.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 48, 25)) +>entry.next.prev : List +>entry.next : List +>entry : List +>next : List +>prev : List +>entry : List } public push(data: T): void { ->push : (data: T) => void, Symbol(push, Decl(genericClassWithStaticFactory.ts, 54, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 56, 20)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>push : (data: T) => void +>data : T +>T : T var entry = this.listFactory.MakeEntry(data); ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>entry : List >this.listFactory.MakeEntry(data) : List ->this.listFactory.MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->this.listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 56, 20)) +>this.listFactory.MakeEntry : (data: T) => List +>this.listFactory : ListFactory +>this : List +>listFactory : ListFactory +>MakeEntry : (data: T) => List +>data : T entry.data = data; >entry.data = data : T ->entry.data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 7, 43)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 56, 20)) +>entry.data : T +>entry : List +>data : T +>data : T entry.isHead = false; >entry.isHead = false : boolean ->entry.isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) ->isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry.isHead : boolean +>entry : List +>isHead : boolean >false : boolean entry.next = this.next; >entry.next = this.next : List ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry.next : List +>entry : List +>next : List +>this.next : List +>this : List +>next : List entry.prev = this; >entry.prev = this : List ->entry.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>entry.prev : List +>entry : List +>prev : List +>this : List this.next = entry; >this.next = entry : List ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>this.next : List +>this : List +>next : List +>entry : List entry.next.prev = entry; // entry.next.prev does not show intellisense, but entry.prev.prev does >entry.next.prev = entry : List ->entry.next.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 57, 15)) +>entry.next.prev : List +>entry.next : List +>entry : List +>next : List +>prev : List +>entry : List } public popEntry(head: List): List { ->popEntry : (head: List) => List, Symbol(popEntry, Decl(genericClassWithStaticFactory.ts, 64, 9)) ->head : List, Symbol(head, Decl(genericClassWithStaticFactory.ts, 66, 24)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>popEntry : (head: List) => List +>head : List +>List : List +>T : T +>List : List +>T : T if (this.next.isHead) { ->this.next.isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>this.next.isHead : boolean +>this.next : List +>this : List +>next : List +>isHead : boolean return null; >null : null @@ -297,288 +297,288 @@ module Editor { else { return this.listFactory.RemoveEntry(this.next); >this.listFactory.RemoveEntry(this.next) : List ->this.listFactory.RemoveEntry : (entry: List) => List, Symbol(ListFactory.RemoveEntry, Decl(genericClassWithStaticFactory.ts, 122, 9)) ->this.listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->RemoveEntry : (entry: List) => List, Symbol(ListFactory.RemoveEntry, Decl(genericClassWithStaticFactory.ts, 122, 9)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>this.listFactory.RemoveEntry : (entry: List) => List +>this.listFactory : ListFactory +>this : List +>listFactory : ListFactory +>RemoveEntry : (entry: List) => List +>this.next : List +>this : List +>next : List } } public insertEntry(entry: List): List { ->insertEntry : (entry: List) => List, Symbol(insertEntry, Decl(genericClassWithStaticFactory.ts, 73, 9)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>insertEntry : (entry: List) => List +>entry : List +>List : List +>T : T +>List : List +>T : T entry.isHead = false; >entry.isHead = false : boolean ->entry.isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) ->isHead : boolean, Symbol(isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry.isHead : boolean +>entry : List +>isHead : boolean >false : boolean this.prev.next = entry; >this.prev.next = entry : List ->this.prev.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>this.prev.next : List +>this.prev : List +>this : List +>prev : List +>next : List +>entry : List entry.next = this; >entry.next = this : List ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>entry.next : List +>entry : List +>next : List +>this : List entry.prev = this.prev; >entry.prev = this.prev : List ->entry.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.prev : List +>entry : List +>prev : List +>this.prev : List +>this : List +>prev : List this.prev = entry; >this.prev = entry : List ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>this.prev : List +>this : List +>prev : List +>entry : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 75, 27)) +>entry : List } public insertAfter(data: T): List { ->insertAfter : (data: T) => List, Symbol(insertAfter, Decl(genericClassWithStaticFactory.ts, 82, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 84, 27)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>insertAfter : (data: T) => List +>data : T +>T : T +>List : List +>T : T var entry: List = this.listFactory.MakeEntry(data); ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>entry : List +>List : List +>T : T >this.listFactory.MakeEntry(data) : List ->this.listFactory.MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->this.listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 84, 27)) +>this.listFactory.MakeEntry : (data: T) => List +>this.listFactory : ListFactory +>this : List +>listFactory : ListFactory +>MakeEntry : (data: T) => List +>data : T entry.next = this.next; >entry.next = this.next : List ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry.next : List +>entry : List +>next : List +>this.next : List +>this : List +>next : List entry.prev = this; >entry.prev = this : List ->entry.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>entry.prev : List +>entry : List +>prev : List +>this : List this.next = entry; >this.next = entry : List ->this.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>this.next : List +>this : List +>next : List +>entry : List entry.next.prev = entry;// entry.next.prev does not show intellisense, but entry.prev.prev does >entry.next.prev = entry : List ->entry.next.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>entry.next.prev : List +>entry.next : List +>entry : List +>next : List +>prev : List +>entry : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 85, 15)) +>entry : List } public insertEntryBefore(entry: List): List { ->insertEntryBefore : (entry: List) => List, Symbol(insertEntryBefore, Decl(genericClassWithStaticFactory.ts, 91, 9)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>insertEntryBefore : (entry: List) => List +>entry : List +>List : List +>T : T +>List : List +>T : T this.prev.next = entry; >this.prev.next = entry : List ->this.prev.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) +>this.prev.next : List +>this.prev : List +>this : List +>prev : List +>next : List +>entry : List entry.next = this; >entry.next = this : List ->entry.next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) ->next : List, Symbol(next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) +>entry.next : List +>entry : List +>next : List +>this : List entry.prev = this.prev; >entry.prev = this.prev : List ->entry.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.prev : List +>entry : List +>prev : List +>this.prev : List +>this : List +>prev : List this.prev = entry; >this.prev = entry : List ->this.prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->prev : List, Symbol(prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) +>this.prev : List +>this : List +>prev : List +>entry : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 93, 33)) +>entry : List } public insertBefore(data: T): List { ->insertBefore : (data: T) => List, Symbol(insertBefore, Decl(genericClassWithStaticFactory.ts, 100, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 102, 28)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 2, 22)) +>insertBefore : (data: T) => List +>data : T +>T : T +>List : List +>T : T var entry = this.listFactory.MakeEntry(data); ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 103, 15)) +>entry : List >this.listFactory.MakeEntry(data) : List ->this.listFactory.MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->this.listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->listFactory : ListFactory, Symbol(listFactory, Decl(genericClassWithStaticFactory.ts, 4, 29)) ->MakeEntry : (data: T) => List, Symbol(ListFactory.MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 102, 28)) +>this.listFactory.MakeEntry : (data: T) => List +>this.listFactory : ListFactory +>this : List +>listFactory : ListFactory +>MakeEntry : (data: T) => List +>data : T return this.insertEntryBefore(entry); >this.insertEntryBefore(entry) : List ->this.insertEntryBefore : (entry: List) => List, Symbol(insertEntryBefore, Decl(genericClassWithStaticFactory.ts, 91, 9)) ->this : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->insertEntryBefore : (entry: List) => List, Symbol(insertEntryBefore, Decl(genericClassWithStaticFactory.ts, 91, 9)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 103, 15)) +>this.insertEntryBefore : (entry: List) => List +>this : List +>insertEntryBefore : (entry: List) => List +>entry : List } } export class ListFactory { ->ListFactory : ListFactory, Symbol(ListFactory, Decl(genericClassWithStaticFactory.ts, 106, 5)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 108, 29)) +>ListFactory : ListFactory +>T : T public MakeHead(): List { ->MakeHead : () => List, Symbol(MakeHead, Decl(genericClassWithStaticFactory.ts, 108, 33)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) +>MakeHead : () => List +>T : T +>List : List +>T : T var entry: List = new List(true, null); ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) +>entry : List +>List : List +>T : T >new List(true, null) : List ->List : typeof List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 110, 24)) +>List : typeof List +>T : T >true : boolean >null : null entry.prev = entry; >entry.prev = entry : List ->entry.prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) ->prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) +>entry.prev : List +>entry : List +>prev : List +>entry : List entry.next = entry; >entry.next = entry : List ->entry.next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) ->next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) +>entry.next : List +>entry : List +>next : List +>entry : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 111, 15)) +>entry : List } public MakeEntry(data: T): List { ->MakeEntry : (data: T) => List, Symbol(MakeEntry, Decl(genericClassWithStaticFactory.ts, 115, 9)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 117, 28)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>MakeEntry : (data: T) => List +>T : T +>data : T +>T : T +>List : List +>T : T var entry: List = new List(false, data); ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>entry : List +>List : List +>T : T >new List(false, data) : List ->List : typeof List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 117, 25)) +>List : typeof List +>T : T >false : boolean ->data : T, Symbol(data, Decl(genericClassWithStaticFactory.ts, 117, 28)) +>data : T entry.prev = entry; >entry.prev = entry : List ->entry.prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) ->prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) +>entry.prev : List +>entry : List +>prev : List +>entry : List entry.next = entry; >entry.next = entry : List ->entry.next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) ->next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) +>entry.next : List +>entry : List +>next : List +>entry : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 118, 15)) +>entry : List } public RemoveEntry(entry: List): List { ->RemoveEntry : (entry: List) => List, Symbol(RemoveEntry, Decl(genericClassWithStaticFactory.ts, 122, 9)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 124, 27)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 124, 27)) ->List : List, Symbol(List, Decl(genericClassWithStaticFactory.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericClassWithStaticFactory.ts, 124, 27)) +>RemoveEntry : (entry: List) => List +>T : T +>entry : List +>List : List +>T : T +>List : List +>T : T if (entry == null) { >entry == null : boolean ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>entry : List >null : null return null; >null : null } else if (entry.isHead) { ->entry.isHead : boolean, Symbol(List.isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) ->isHead : boolean, Symbol(List.isHead, Decl(genericClassWithStaticFactory.ts, 7, 20)) +>entry.isHead : boolean +>entry : List +>isHead : boolean // Can't remove the head of a list! return null; @@ -587,28 +587,28 @@ module Editor { else { entry.next.prev = entry.prev; >entry.next.prev = entry.prev : List ->entry.next.prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry.next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) ->next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry.prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) ->prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) +>entry.next.prev : List +>entry.next : List +>entry : List +>next : List +>prev : List +>entry.prev : List +>entry : List +>prev : List entry.prev.next = entry.next; >entry.prev.next = entry.next : List ->entry.prev.next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry.prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) ->prev : List, Symbol(List.prev, Decl(genericClassWithStaticFactory.ts, 3, 29)) ->next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry.next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) ->next : List, Symbol(List.next, Decl(genericClassWithStaticFactory.ts, 2, 26)) +>entry.prev.next : List +>entry.prev : List +>entry : List +>prev : List +>next : List +>entry.next : List +>entry : List +>next : List return entry; ->entry : List, Symbol(entry, Decl(genericClassWithStaticFactory.ts, 124, 30)) +>entry : List } } } diff --git a/tests/baselines/reference/genericClasses0.symbols b/tests/baselines/reference/genericClasses0.symbols new file mode 100644 index 0000000000000..764cd04c962e5 --- /dev/null +++ b/tests/baselines/reference/genericClasses0.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericClasses0.ts === +class C { +>C : Symbol(C, Decl(genericClasses0.ts, 0, 0)) +>T : Symbol(T, Decl(genericClasses0.ts, 0, 8)) + + public x: T; +>x : Symbol(x, Decl(genericClasses0.ts, 0, 12)) +>T : Symbol(T, Decl(genericClasses0.ts, 0, 8)) +} + +var v1 : C; +>v1 : Symbol(v1, Decl(genericClasses0.ts, 4, 3)) +>C : Symbol(C, Decl(genericClasses0.ts, 0, 0)) + +var y = v1.x; // should be 'string' +>y : Symbol(y, Decl(genericClasses0.ts, 6, 3)) +>v1.x : Symbol(C.x, Decl(genericClasses0.ts, 0, 12)) +>v1 : Symbol(v1, Decl(genericClasses0.ts, 4, 3)) +>x : Symbol(C.x, Decl(genericClasses0.ts, 0, 12)) + diff --git a/tests/baselines/reference/genericClasses0.types b/tests/baselines/reference/genericClasses0.types index 2bead05e02ad5..b02fa07c219a6 100644 --- a/tests/baselines/reference/genericClasses0.types +++ b/tests/baselines/reference/genericClasses0.types @@ -1,20 +1,20 @@ === tests/cases/compiler/genericClasses0.ts === class C { ->C : C, Symbol(C, Decl(genericClasses0.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClasses0.ts, 0, 8)) +>C : C +>T : T public x: T; ->x : T, Symbol(x, Decl(genericClasses0.ts, 0, 12)) ->T : T, Symbol(T, Decl(genericClasses0.ts, 0, 8)) +>x : T +>T : T } var v1 : C; ->v1 : C, Symbol(v1, Decl(genericClasses0.ts, 4, 3)) ->C : C, Symbol(C, Decl(genericClasses0.ts, 0, 0)) +>v1 : C +>C : C var y = v1.x; // should be 'string' ->y : string, Symbol(y, Decl(genericClasses0.ts, 6, 3)) ->v1.x : string, Symbol(C.x, Decl(genericClasses0.ts, 0, 12)) ->v1 : C, Symbol(v1, Decl(genericClasses0.ts, 4, 3)) ->x : string, Symbol(C.x, Decl(genericClasses0.ts, 0, 12)) +>y : string +>v1.x : string +>v1 : C +>x : string diff --git a/tests/baselines/reference/genericClasses1.symbols b/tests/baselines/reference/genericClasses1.symbols new file mode 100644 index 0000000000000..d2100b5e3b317 --- /dev/null +++ b/tests/baselines/reference/genericClasses1.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericClasses1.ts === +class C { +>C : Symbol(C, Decl(genericClasses1.ts, 0, 0)) +>T : Symbol(T, Decl(genericClasses1.ts, 0, 8)) + + public x: T; +>x : Symbol(x, Decl(genericClasses1.ts, 0, 12)) +>T : Symbol(T, Decl(genericClasses1.ts, 0, 8)) +} + +var v1 = new C(); +>v1 : Symbol(v1, Decl(genericClasses1.ts, 4, 3)) +>C : Symbol(C, Decl(genericClasses1.ts, 0, 0)) + +var y = v1.x; // should be 'string' +>y : Symbol(y, Decl(genericClasses1.ts, 6, 3)) +>v1.x : Symbol(C.x, Decl(genericClasses1.ts, 0, 12)) +>v1 : Symbol(v1, Decl(genericClasses1.ts, 4, 3)) +>x : Symbol(C.x, Decl(genericClasses1.ts, 0, 12)) + diff --git a/tests/baselines/reference/genericClasses1.types b/tests/baselines/reference/genericClasses1.types index 78784ed0e9f6e..82ce172f5ea12 100644 --- a/tests/baselines/reference/genericClasses1.types +++ b/tests/baselines/reference/genericClasses1.types @@ -1,21 +1,21 @@ === tests/cases/compiler/genericClasses1.ts === class C { ->C : C, Symbol(C, Decl(genericClasses1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClasses1.ts, 0, 8)) +>C : C +>T : T public x: T; ->x : T, Symbol(x, Decl(genericClasses1.ts, 0, 12)) ->T : T, Symbol(T, Decl(genericClasses1.ts, 0, 8)) +>x : T +>T : T } var v1 = new C(); ->v1 : C, Symbol(v1, Decl(genericClasses1.ts, 4, 3)) +>v1 : C >new C() : C ->C : typeof C, Symbol(C, Decl(genericClasses1.ts, 0, 0)) +>C : typeof C var y = v1.x; // should be 'string' ->y : string, Symbol(y, Decl(genericClasses1.ts, 6, 3)) ->v1.x : string, Symbol(C.x, Decl(genericClasses1.ts, 0, 12)) ->v1 : C, Symbol(v1, Decl(genericClasses1.ts, 4, 3)) ->x : string, Symbol(C.x, Decl(genericClasses1.ts, 0, 12)) +>y : string +>v1.x : string +>v1 : C +>x : string diff --git a/tests/baselines/reference/genericClasses2.symbols b/tests/baselines/reference/genericClasses2.symbols new file mode 100644 index 0000000000000..e9af0c44941f1 --- /dev/null +++ b/tests/baselines/reference/genericClasses2.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/genericClasses2.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(genericClasses2.ts, 0, 0)) +>T : Symbol(T, Decl(genericClasses2.ts, 0, 14)) + + a: T; +>a : Symbol(a, Decl(genericClasses2.ts, 0, 18)) +>T : Symbol(T, Decl(genericClasses2.ts, 0, 14)) +} + +class C { +>C : Symbol(C, Decl(genericClasses2.ts, 2, 1)) +>T : Symbol(T, Decl(genericClasses2.ts, 4, 8)) + + public x: T; +>x : Symbol(x, Decl(genericClasses2.ts, 4, 12)) +>T : Symbol(T, Decl(genericClasses2.ts, 4, 8)) + + public y: Foo; +>y : Symbol(y, Decl(genericClasses2.ts, 5, 13)) +>Foo : Symbol(Foo, Decl(genericClasses2.ts, 0, 0)) +>T : Symbol(T, Decl(genericClasses2.ts, 4, 8)) + + public z: Foo; +>z : Symbol(z, Decl(genericClasses2.ts, 6, 18)) +>Foo : Symbol(Foo, Decl(genericClasses2.ts, 0, 0)) +} + +var v1 : C; +>v1 : Symbol(v1, Decl(genericClasses2.ts, 10, 3)) +>C : Symbol(C, Decl(genericClasses2.ts, 2, 1)) + +var y = v1.x; // should be 'string' +>y : Symbol(y, Decl(genericClasses2.ts, 12, 3)) +>v1.x : Symbol(C.x, Decl(genericClasses2.ts, 4, 12)) +>v1 : Symbol(v1, Decl(genericClasses2.ts, 10, 3)) +>x : Symbol(C.x, Decl(genericClasses2.ts, 4, 12)) + +var w = v1.y.a; // should be 'string' +>w : Symbol(w, Decl(genericClasses2.ts, 13, 3)) +>v1.y.a : Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) +>v1.y : Symbol(C.y, Decl(genericClasses2.ts, 5, 13)) +>v1 : Symbol(v1, Decl(genericClasses2.ts, 10, 3)) +>y : Symbol(C.y, Decl(genericClasses2.ts, 5, 13)) +>a : Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) + +var z = v1.z.a; // should be 'number' +>z : Symbol(z, Decl(genericClasses2.ts, 14, 3)) +>v1.z.a : Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) +>v1.z : Symbol(C.z, Decl(genericClasses2.ts, 6, 18)) +>v1 : Symbol(v1, Decl(genericClasses2.ts, 10, 3)) +>z : Symbol(C.z, Decl(genericClasses2.ts, 6, 18)) +>a : Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) + diff --git a/tests/baselines/reference/genericClasses2.types b/tests/baselines/reference/genericClasses2.types index 6710220d0a458..2b366f0a8fdf0 100644 --- a/tests/baselines/reference/genericClasses2.types +++ b/tests/baselines/reference/genericClasses2.types @@ -1,54 +1,54 @@ === tests/cases/compiler/genericClasses2.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(genericClasses2.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClasses2.ts, 0, 14)) +>Foo : Foo +>T : T a: T; ->a : T, Symbol(a, Decl(genericClasses2.ts, 0, 18)) ->T : T, Symbol(T, Decl(genericClasses2.ts, 0, 14)) +>a : T +>T : T } class C { ->C : C, Symbol(C, Decl(genericClasses2.ts, 2, 1)) ->T : T, Symbol(T, Decl(genericClasses2.ts, 4, 8)) +>C : C +>T : T public x: T; ->x : T, Symbol(x, Decl(genericClasses2.ts, 4, 12)) ->T : T, Symbol(T, Decl(genericClasses2.ts, 4, 8)) +>x : T +>T : T public y: Foo; ->y : Foo, Symbol(y, Decl(genericClasses2.ts, 5, 13)) ->Foo : Foo, Symbol(Foo, Decl(genericClasses2.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClasses2.ts, 4, 8)) +>y : Foo +>Foo : Foo +>T : T public z: Foo; ->z : Foo, Symbol(z, Decl(genericClasses2.ts, 6, 18)) ->Foo : Foo, Symbol(Foo, Decl(genericClasses2.ts, 0, 0)) +>z : Foo +>Foo : Foo } var v1 : C; ->v1 : C, Symbol(v1, Decl(genericClasses2.ts, 10, 3)) ->C : C, Symbol(C, Decl(genericClasses2.ts, 2, 1)) +>v1 : C +>C : C var y = v1.x; // should be 'string' ->y : string, Symbol(y, Decl(genericClasses2.ts, 12, 3)) ->v1.x : string, Symbol(C.x, Decl(genericClasses2.ts, 4, 12)) ->v1 : C, Symbol(v1, Decl(genericClasses2.ts, 10, 3)) ->x : string, Symbol(C.x, Decl(genericClasses2.ts, 4, 12)) +>y : string +>v1.x : string +>v1 : C +>x : string var w = v1.y.a; // should be 'string' ->w : string, Symbol(w, Decl(genericClasses2.ts, 13, 3)) ->v1.y.a : string, Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) ->v1.y : Foo, Symbol(C.y, Decl(genericClasses2.ts, 5, 13)) ->v1 : C, Symbol(v1, Decl(genericClasses2.ts, 10, 3)) ->y : Foo, Symbol(C.y, Decl(genericClasses2.ts, 5, 13)) ->a : string, Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) +>w : string +>v1.y.a : string +>v1.y : Foo +>v1 : C +>y : Foo +>a : string var z = v1.z.a; // should be 'number' ->z : number, Symbol(z, Decl(genericClasses2.ts, 14, 3)) ->v1.z.a : number, Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) ->v1.z : Foo, Symbol(C.z, Decl(genericClasses2.ts, 6, 18)) ->v1 : C, Symbol(v1, Decl(genericClasses2.ts, 10, 3)) ->z : Foo, Symbol(C.z, Decl(genericClasses2.ts, 6, 18)) ->a : number, Symbol(Foo.a, Decl(genericClasses2.ts, 0, 18)) +>z : number +>v1.z.a : number +>v1.z : Foo +>v1 : C +>z : Foo +>a : number diff --git a/tests/baselines/reference/genericClasses3.symbols b/tests/baselines/reference/genericClasses3.symbols new file mode 100644 index 0000000000000..06b0d8437d5d3 --- /dev/null +++ b/tests/baselines/reference/genericClasses3.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/genericClasses3.ts === +class B { +>B : Symbol(B, Decl(genericClasses3.ts, 0, 0)) +>T : Symbol(T, Decl(genericClasses3.ts, 0, 8)) + + a: T; +>a : Symbol(a, Decl(genericClasses3.ts, 0, 12)) +>T : Symbol(T, Decl(genericClasses3.ts, 0, 8)) + + b: T; +>b : Symbol(b, Decl(genericClasses3.ts, 1, 9)) +>T : Symbol(T, Decl(genericClasses3.ts, 0, 8)) +} + +class C extends B { +>C : Symbol(C, Decl(genericClasses3.ts, 3, 1)) +>T : Symbol(T, Decl(genericClasses3.ts, 5, 8)) +>B : Symbol(B, Decl(genericClasses3.ts, 0, 0)) +>T : Symbol(T, Decl(genericClasses3.ts, 5, 8)) + + public x: T; +>x : Symbol(x, Decl(genericClasses3.ts, 5, 25)) +>T : Symbol(T, Decl(genericClasses3.ts, 5, 8)) +} + +var v2: C ; +>v2 : Symbol(v2, Decl(genericClasses3.ts, 9, 3)) +>C : Symbol(C, Decl(genericClasses3.ts, 3, 1)) + +var y = v2.x; // should be 'string' +>y : Symbol(y, Decl(genericClasses3.ts, 11, 3)) +>v2.x : Symbol(C.x, Decl(genericClasses3.ts, 5, 25)) +>v2 : Symbol(v2, Decl(genericClasses3.ts, 9, 3)) +>x : Symbol(C.x, Decl(genericClasses3.ts, 5, 25)) + +var u = v2.a; // should be 'string' +>u : Symbol(u, Decl(genericClasses3.ts, 12, 3)) +>v2.a : Symbol(B.a, Decl(genericClasses3.ts, 0, 12)) +>v2 : Symbol(v2, Decl(genericClasses3.ts, 9, 3)) +>a : Symbol(B.a, Decl(genericClasses3.ts, 0, 12)) + +var z = v2.b; +>z : Symbol(z, Decl(genericClasses3.ts, 14, 3)) +>v2.b : Symbol(B.b, Decl(genericClasses3.ts, 1, 9)) +>v2 : Symbol(v2, Decl(genericClasses3.ts, 9, 3)) +>b : Symbol(B.b, Decl(genericClasses3.ts, 1, 9)) + + diff --git a/tests/baselines/reference/genericClasses3.types b/tests/baselines/reference/genericClasses3.types index d6d9eedd7b570..ea0ebcd2cc732 100644 --- a/tests/baselines/reference/genericClasses3.types +++ b/tests/baselines/reference/genericClasses3.types @@ -1,48 +1,48 @@ === tests/cases/compiler/genericClasses3.ts === class B { ->B : B, Symbol(B, Decl(genericClasses3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClasses3.ts, 0, 8)) +>B : B +>T : T a: T; ->a : T, Symbol(a, Decl(genericClasses3.ts, 0, 12)) ->T : T, Symbol(T, Decl(genericClasses3.ts, 0, 8)) +>a : T +>T : T b: T; ->b : T, Symbol(b, Decl(genericClasses3.ts, 1, 9)) ->T : T, Symbol(T, Decl(genericClasses3.ts, 0, 8)) +>b : T +>T : T } class C extends B { ->C : C, Symbol(C, Decl(genericClasses3.ts, 3, 1)) ->T : T, Symbol(T, Decl(genericClasses3.ts, 5, 8)) ->B : B, Symbol(B, Decl(genericClasses3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericClasses3.ts, 5, 8)) +>C : C +>T : T +>B : B +>T : T public x: T; ->x : T, Symbol(x, Decl(genericClasses3.ts, 5, 25)) ->T : T, Symbol(T, Decl(genericClasses3.ts, 5, 8)) +>x : T +>T : T } var v2: C ; ->v2 : C, Symbol(v2, Decl(genericClasses3.ts, 9, 3)) ->C : C, Symbol(C, Decl(genericClasses3.ts, 3, 1)) +>v2 : C +>C : C var y = v2.x; // should be 'string' ->y : string, Symbol(y, Decl(genericClasses3.ts, 11, 3)) ->v2.x : string, Symbol(C.x, Decl(genericClasses3.ts, 5, 25)) ->v2 : C, Symbol(v2, Decl(genericClasses3.ts, 9, 3)) ->x : string, Symbol(C.x, Decl(genericClasses3.ts, 5, 25)) +>y : string +>v2.x : string +>v2 : C +>x : string var u = v2.a; // should be 'string' ->u : string, Symbol(u, Decl(genericClasses3.ts, 12, 3)) ->v2.a : string, Symbol(B.a, Decl(genericClasses3.ts, 0, 12)) ->v2 : C, Symbol(v2, Decl(genericClasses3.ts, 9, 3)) ->a : string, Symbol(B.a, Decl(genericClasses3.ts, 0, 12)) +>u : string +>v2.a : string +>v2 : C +>a : string var z = v2.b; ->z : string, Symbol(z, Decl(genericClasses3.ts, 14, 3)) ->v2.b : string, Symbol(B.b, Decl(genericClasses3.ts, 1, 9)) ->v2 : C, Symbol(v2, Decl(genericClasses3.ts, 9, 3)) ->b : string, Symbol(B.b, Decl(genericClasses3.ts, 1, 9)) +>z : string +>v2.b : string +>v2 : C +>b : string diff --git a/tests/baselines/reference/genericClasses4.symbols b/tests/baselines/reference/genericClasses4.symbols new file mode 100644 index 0000000000000..d910cbc152d88 --- /dev/null +++ b/tests/baselines/reference/genericClasses4.symbols @@ -0,0 +1,92 @@ +=== tests/cases/compiler/genericClasses4.ts === +// once caused stack overflow +class Vec2_T +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>A : Symbol(A, Decl(genericClasses4.ts, 1, 13)) +{ + constructor(public x: A, public y: A) { } +>x : Symbol(x, Decl(genericClasses4.ts, 3, 16)) +>A : Symbol(A, Decl(genericClasses4.ts, 1, 13)) +>y : Symbol(y, Decl(genericClasses4.ts, 3, 28)) +>A : Symbol(A, Decl(genericClasses4.ts, 1, 13)) + + fmap(f: (a: A) => B): Vec2_T { +>fmap : Symbol(fmap, Decl(genericClasses4.ts, 3, 45)) +>B : Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>f : Symbol(f, Decl(genericClasses4.ts, 4, 12)) +>a : Symbol(a, Decl(genericClasses4.ts, 4, 16)) +>A : Symbol(A, Decl(genericClasses4.ts, 1, 13)) +>B : Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>B : Symbol(B, Decl(genericClasses4.ts, 4, 9)) + + var x:B = f(this.x); +>x : Symbol(x, Decl(genericClasses4.ts, 5, 11)) +>B : Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>f : Symbol(f, Decl(genericClasses4.ts, 4, 12)) +>this.x : Symbol(x, Decl(genericClasses4.ts, 3, 16)) +>this : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>x : Symbol(x, Decl(genericClasses4.ts, 3, 16)) + + var y:B = f(this.y); +>y : Symbol(y, Decl(genericClasses4.ts, 6, 11)) +>B : Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>f : Symbol(f, Decl(genericClasses4.ts, 4, 12)) +>this.y : Symbol(y, Decl(genericClasses4.ts, 3, 28)) +>this : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>y : Symbol(y, Decl(genericClasses4.ts, 3, 28)) + + var retval: Vec2_T = new Vec2_T(x, y); +>retval : Symbol(retval, Decl(genericClasses4.ts, 7, 11)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>B : Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>x : Symbol(x, Decl(genericClasses4.ts, 5, 11)) +>y : Symbol(y, Decl(genericClasses4.ts, 6, 11)) + + return retval; +>retval : Symbol(retval, Decl(genericClasses4.ts, 7, 11)) + } + apply(f: Vec2_T<(a: A) => B>): Vec2_T { +>apply : Symbol(apply, Decl(genericClasses4.ts, 9, 5)) +>B : Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>f : Symbol(f, Decl(genericClasses4.ts, 10, 13)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>a : Symbol(a, Decl(genericClasses4.ts, 10, 24)) +>A : Symbol(A, Decl(genericClasses4.ts, 1, 13)) +>B : Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>B : Symbol(B, Decl(genericClasses4.ts, 10, 10)) + + var x:B = f.x(this.x); +>x : Symbol(x, Decl(genericClasses4.ts, 11, 11)) +>B : Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>f.x : Symbol(Vec2_T.x, Decl(genericClasses4.ts, 3, 16)) +>f : Symbol(f, Decl(genericClasses4.ts, 10, 13)) +>x : Symbol(Vec2_T.x, Decl(genericClasses4.ts, 3, 16)) +>this.x : Symbol(x, Decl(genericClasses4.ts, 3, 16)) +>this : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>x : Symbol(x, Decl(genericClasses4.ts, 3, 16)) + + var y:B = f.y(this.y); +>y : Symbol(y, Decl(genericClasses4.ts, 12, 11)) +>B : Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>f.y : Symbol(Vec2_T.y, Decl(genericClasses4.ts, 3, 28)) +>f : Symbol(f, Decl(genericClasses4.ts, 10, 13)) +>y : Symbol(Vec2_T.y, Decl(genericClasses4.ts, 3, 28)) +>this.y : Symbol(y, Decl(genericClasses4.ts, 3, 28)) +>this : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>y : Symbol(y, Decl(genericClasses4.ts, 3, 28)) + + var retval: Vec2_T = new Vec2_T(x, y); +>retval : Symbol(retval, Decl(genericClasses4.ts, 13, 11)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>B : Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>Vec2_T : Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) +>x : Symbol(x, Decl(genericClasses4.ts, 11, 11)) +>y : Symbol(y, Decl(genericClasses4.ts, 12, 11)) + + return retval; +>retval : Symbol(retval, Decl(genericClasses4.ts, 13, 11)) + } +} diff --git a/tests/baselines/reference/genericClasses4.types b/tests/baselines/reference/genericClasses4.types index 31347d4dd4e32..ac3d05be84d17 100644 --- a/tests/baselines/reference/genericClasses4.types +++ b/tests/baselines/reference/genericClasses4.types @@ -1,98 +1,98 @@ === tests/cases/compiler/genericClasses4.ts === // once caused stack overflow class Vec2_T ->Vec2_T : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->A : A, Symbol(A, Decl(genericClasses4.ts, 1, 13)) +>Vec2_T : Vec2_T +>A : A { constructor(public x: A, public y: A) { } ->x : A, Symbol(x, Decl(genericClasses4.ts, 3, 16)) ->A : A, Symbol(A, Decl(genericClasses4.ts, 1, 13)) ->y : A, Symbol(y, Decl(genericClasses4.ts, 3, 28)) ->A : A, Symbol(A, Decl(genericClasses4.ts, 1, 13)) +>x : A +>A : A +>y : A +>A : A fmap(f: (a: A) => B): Vec2_T { ->fmap : (f: (a: A) => B) => Vec2_T, Symbol(fmap, Decl(genericClasses4.ts, 3, 45)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 4, 9)) ->f : (a: A) => B, Symbol(f, Decl(genericClasses4.ts, 4, 12)) ->a : A, Symbol(a, Decl(genericClasses4.ts, 4, 16)) ->A : A, Symbol(A, Decl(genericClasses4.ts, 1, 13)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 4, 9)) ->Vec2_T : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>fmap : (f: (a: A) => B) => Vec2_T +>B : B +>f : (a: A) => B +>a : A +>A : A +>B : B +>Vec2_T : Vec2_T +>B : B var x:B = f(this.x); ->x : B, Symbol(x, Decl(genericClasses4.ts, 5, 11)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>x : B +>B : B >f(this.x) : B ->f : (a: A) => B, Symbol(f, Decl(genericClasses4.ts, 4, 12)) ->this.x : A, Symbol(x, Decl(genericClasses4.ts, 3, 16)) ->this : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->x : A, Symbol(x, Decl(genericClasses4.ts, 3, 16)) +>f : (a: A) => B +>this.x : A +>this : Vec2_T +>x : A var y:B = f(this.y); ->y : B, Symbol(y, Decl(genericClasses4.ts, 6, 11)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>y : B +>B : B >f(this.y) : B ->f : (a: A) => B, Symbol(f, Decl(genericClasses4.ts, 4, 12)) ->this.y : A, Symbol(y, Decl(genericClasses4.ts, 3, 28)) ->this : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->y : A, Symbol(y, Decl(genericClasses4.ts, 3, 28)) +>f : (a: A) => B +>this.y : A +>this : Vec2_T +>y : A var retval: Vec2_T = new Vec2_T(x, y); ->retval : Vec2_T, Symbol(retval, Decl(genericClasses4.ts, 7, 11)) ->Vec2_T : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 4, 9)) +>retval : Vec2_T +>Vec2_T : Vec2_T +>B : B >new Vec2_T(x, y) : Vec2_T ->Vec2_T : typeof Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->x : B, Symbol(x, Decl(genericClasses4.ts, 5, 11)) ->y : B, Symbol(y, Decl(genericClasses4.ts, 6, 11)) +>Vec2_T : typeof Vec2_T +>x : B +>y : B return retval; ->retval : Vec2_T, Symbol(retval, Decl(genericClasses4.ts, 7, 11)) +>retval : Vec2_T } apply(f: Vec2_T<(a: A) => B>): Vec2_T { ->apply : (f: Vec2_T<(a: A) => B>) => Vec2_T, Symbol(apply, Decl(genericClasses4.ts, 9, 5)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 10, 10)) ->f : Vec2_T<(a: A) => B>, Symbol(f, Decl(genericClasses4.ts, 10, 13)) ->Vec2_T : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->a : A, Symbol(a, Decl(genericClasses4.ts, 10, 24)) ->A : A, Symbol(A, Decl(genericClasses4.ts, 1, 13)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 10, 10)) ->Vec2_T : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>apply : (f: Vec2_T<(a: A) => B>) => Vec2_T +>B : B +>f : Vec2_T<(a: A) => B> +>Vec2_T : Vec2_T +>a : A +>A : A +>B : B +>Vec2_T : Vec2_T +>B : B var x:B = f.x(this.x); ->x : B, Symbol(x, Decl(genericClasses4.ts, 11, 11)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>x : B +>B : B >f.x(this.x) : B ->f.x : (a: A) => B, Symbol(Vec2_T.x, Decl(genericClasses4.ts, 3, 16)) ->f : Vec2_T<(a: A) => B>, Symbol(f, Decl(genericClasses4.ts, 10, 13)) ->x : (a: A) => B, Symbol(Vec2_T.x, Decl(genericClasses4.ts, 3, 16)) ->this.x : A, Symbol(x, Decl(genericClasses4.ts, 3, 16)) ->this : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->x : A, Symbol(x, Decl(genericClasses4.ts, 3, 16)) +>f.x : (a: A) => B +>f : Vec2_T<(a: A) => B> +>x : (a: A) => B +>this.x : A +>this : Vec2_T +>x : A var y:B = f.y(this.y); ->y : B, Symbol(y, Decl(genericClasses4.ts, 12, 11)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>y : B +>B : B >f.y(this.y) : B ->f.y : (a: A) => B, Symbol(Vec2_T.y, Decl(genericClasses4.ts, 3, 28)) ->f : Vec2_T<(a: A) => B>, Symbol(f, Decl(genericClasses4.ts, 10, 13)) ->y : (a: A) => B, Symbol(Vec2_T.y, Decl(genericClasses4.ts, 3, 28)) ->this.y : A, Symbol(y, Decl(genericClasses4.ts, 3, 28)) ->this : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->y : A, Symbol(y, Decl(genericClasses4.ts, 3, 28)) +>f.y : (a: A) => B +>f : Vec2_T<(a: A) => B> +>y : (a: A) => B +>this.y : A +>this : Vec2_T +>y : A var retval: Vec2_T = new Vec2_T(x, y); ->retval : Vec2_T, Symbol(retval, Decl(genericClasses4.ts, 13, 11)) ->Vec2_T : Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericClasses4.ts, 10, 10)) +>retval : Vec2_T +>Vec2_T : Vec2_T +>B : B >new Vec2_T(x, y) : Vec2_T ->Vec2_T : typeof Vec2_T, Symbol(Vec2_T, Decl(genericClasses4.ts, 0, 0)) ->x : B, Symbol(x, Decl(genericClasses4.ts, 11, 11)) ->y : B, Symbol(y, Decl(genericClasses4.ts, 12, 11)) +>Vec2_T : typeof Vec2_T +>x : B +>y : B return retval; ->retval : Vec2_T, Symbol(retval, Decl(genericClasses4.ts, 13, 11)) +>retval : Vec2_T } } diff --git a/tests/baselines/reference/genericClassesInModule.symbols b/tests/baselines/reference/genericClassesInModule.symbols new file mode 100644 index 0000000000000..f097eac36f1fa --- /dev/null +++ b/tests/baselines/reference/genericClassesInModule.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/genericClassesInModule.ts === + +module Foo { +>Foo : Symbol(Foo, Decl(genericClassesInModule.ts, 0, 0)) + + export class B{ } +>B : Symbol(B, Decl(genericClassesInModule.ts, 1, 12)) +>T : Symbol(T, Decl(genericClassesInModule.ts, 3, 19)) + + export class A { } +>A : Symbol(A, Decl(genericClassesInModule.ts, 3, 24)) +} + +var a = new Foo.B(); +>a : Symbol(a, Decl(genericClassesInModule.ts, 8, 3)) +>Foo.B : Symbol(Foo.B, Decl(genericClassesInModule.ts, 1, 12)) +>Foo : Symbol(Foo, Decl(genericClassesInModule.ts, 0, 0)) +>B : Symbol(Foo.B, Decl(genericClassesInModule.ts, 1, 12)) +>Foo : Symbol(Foo, Decl(genericClassesInModule.ts, 0, 0)) +>A : Symbol(Foo.A, Decl(genericClassesInModule.ts, 3, 24)) + diff --git a/tests/baselines/reference/genericClassesInModule.types b/tests/baselines/reference/genericClassesInModule.types index b7a35637ed64e..128decac57077 100644 --- a/tests/baselines/reference/genericClassesInModule.types +++ b/tests/baselines/reference/genericClassesInModule.types @@ -1,22 +1,22 @@ === tests/cases/compiler/genericClassesInModule.ts === module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(genericClassesInModule.ts, 0, 0)) +>Foo : typeof Foo export class B{ } ->B : B, Symbol(B, Decl(genericClassesInModule.ts, 1, 12)) ->T : T, Symbol(T, Decl(genericClassesInModule.ts, 3, 19)) +>B : B +>T : T export class A { } ->A : A, Symbol(A, Decl(genericClassesInModule.ts, 3, 24)) +>A : A } var a = new Foo.B(); ->a : Foo.B, Symbol(a, Decl(genericClassesInModule.ts, 8, 3)) +>a : Foo.B >new Foo.B() : Foo.B ->Foo.B : typeof Foo.B, Symbol(Foo.B, Decl(genericClassesInModule.ts, 1, 12)) ->Foo : typeof Foo, Symbol(Foo, Decl(genericClassesInModule.ts, 0, 0)) ->B : typeof Foo.B, Symbol(Foo.B, Decl(genericClassesInModule.ts, 1, 12)) ->Foo : any, Symbol(Foo, Decl(genericClassesInModule.ts, 0, 0)) ->A : Foo.A, Symbol(Foo.A, Decl(genericClassesInModule.ts, 3, 24)) +>Foo.B : typeof Foo.B +>Foo : typeof Foo +>B : typeof Foo.B +>Foo : any +>A : Foo.A diff --git a/tests/baselines/reference/genericClassesInModule2.symbols b/tests/baselines/reference/genericClassesInModule2.symbols new file mode 100644 index 0000000000000..a767d64de0750 --- /dev/null +++ b/tests/baselines/reference/genericClassesInModule2.symbols @@ -0,0 +1,61 @@ +=== tests/cases/compiler/genericClassesInModule2.ts === +export class A{ +>A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) + + constructor( public callback: (self: A) => void) { +>callback : Symbol(callback, Decl(genericClassesInModule2.ts, 1, 16)) +>self : Symbol(self, Decl(genericClassesInModule2.ts, 1, 35)) +>A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) + + var child = new B(this); +>child : Symbol(child, Decl(genericClassesInModule2.ts, 2, 11)) +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>this : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) + } + AAA( callback: (self: A) => void) { +>AAA : Symbol(AAA, Decl(genericClassesInModule2.ts, 3, 5)) +>callback : Symbol(callback, Decl(genericClassesInModule2.ts, 4, 8)) +>self : Symbol(self, Decl(genericClassesInModule2.ts, 4, 20)) +>A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) + + var child = new B(this); +>child : Symbol(child, Decl(genericClassesInModule2.ts, 5, 11)) +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>this : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) + } +} + +export interface C{ +>C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) + + child: B; +>child : Symbol(child, Decl(genericClassesInModule2.ts, 9, 23)) +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) + + (self: C): void; +>self : Symbol(self, Decl(genericClassesInModule2.ts, 11, 5)) +>C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) + + new(callback: (self: C) => void) +>callback : Symbol(callback, Decl(genericClassesInModule2.ts, 12, 8)) +>self : Symbol(self, Decl(genericClassesInModule2.ts, 12, 19)) +>C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) +>T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) +} + +export class B { +>B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) +>T2 : Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) + + constructor(public parent: T2) { } +>parent : Symbol(parent, Decl(genericClassesInModule2.ts, 16, 16)) +>T2 : Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) +} + + diff --git a/tests/baselines/reference/genericClassesInModule2.types b/tests/baselines/reference/genericClassesInModule2.types index f01c4a4ded07e..5da8c43097fd1 100644 --- a/tests/baselines/reference/genericClassesInModule2.types +++ b/tests/baselines/reference/genericClassesInModule2.types @@ -1,63 +1,63 @@ === tests/cases/compiler/genericClassesInModule2.ts === export class A{ ->A : A, Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) +>A : A +>T1 : T1 constructor( public callback: (self: A) => void) { ->callback : (self: A) => void, Symbol(callback, Decl(genericClassesInModule2.ts, 1, 16)) ->self : A, Symbol(self, Decl(genericClassesInModule2.ts, 1, 35)) ->A : A, Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) +>callback : (self: A) => void +>self : A +>A : A +>T1 : T1 var child = new B(this); ->child : B>, Symbol(child, Decl(genericClassesInModule2.ts, 2, 11)) +>child : B> >new B(this) : B> ->B : typeof B, Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) ->this : A, Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>B : typeof B +>this : A } AAA( callback: (self: A) => void) { ->AAA : (callback: (self: A) => void) => void, Symbol(AAA, Decl(genericClassesInModule2.ts, 3, 5)) ->callback : (self: A) => void, Symbol(callback, Decl(genericClassesInModule2.ts, 4, 8)) ->self : A, Symbol(self, Decl(genericClassesInModule2.ts, 4, 20)) ->A : A, Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) +>AAA : (callback: (self: A) => void) => void +>callback : (self: A) => void +>self : A +>A : A +>T1 : T1 var child = new B(this); ->child : B>, Symbol(child, Decl(genericClassesInModule2.ts, 5, 11)) +>child : B> >new B(this) : B> ->B : typeof B, Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) ->this : A, Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) +>B : typeof B +>this : A } } export interface C{ ->C : C, Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) +>C : C +>T1 : T1 child: B; ->child : B, Symbol(child, Decl(genericClassesInModule2.ts, 9, 23)) ->B : B, Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) +>child : B +>B : B +>T1 : T1 (self: C): void; ->self : C, Symbol(self, Decl(genericClassesInModule2.ts, 11, 5)) ->C : C, Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) +>self : C +>C : C +>T1 : T1 new(callback: (self: C) => void) ->callback : (self: C) => void, Symbol(callback, Decl(genericClassesInModule2.ts, 12, 8)) ->self : C, Symbol(self, Decl(genericClassesInModule2.ts, 12, 19)) ->C : C, Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) ->T1 : T1, Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) +>callback : (self: C) => void +>self : C +>C : C +>T1 : T1 } export class B { ->B : B, Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) ->T2 : T2, Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) +>B : B +>T2 : T2 constructor(public parent: T2) { } ->parent : T2, Symbol(parent, Decl(genericClassesInModule2.ts, 16, 16)) ->T2 : T2, Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) +>parent : T2 +>T2 : T2 } diff --git a/tests/baselines/reference/genericCloduleInModule.symbols b/tests/baselines/reference/genericCloduleInModule.symbols new file mode 100644 index 0000000000000..0becc7469a1c6 --- /dev/null +++ b/tests/baselines/reference/genericCloduleInModule.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/genericCloduleInModule.ts === +module A { +>A : Symbol(A, Decl(genericCloduleInModule.ts, 0, 0)) + + export class B { +>B : Symbol(B, Decl(genericCloduleInModule.ts, 0, 10), Decl(genericCloduleInModule.ts, 4, 5)) +>T : Symbol(T, Decl(genericCloduleInModule.ts, 1, 19)) + + foo() { } +>foo : Symbol(foo, Decl(genericCloduleInModule.ts, 1, 23)) + + static bar() { } +>bar : Symbol(B.bar, Decl(genericCloduleInModule.ts, 2, 17)) + } + export module B { +>B : Symbol(B, Decl(genericCloduleInModule.ts, 0, 10), Decl(genericCloduleInModule.ts, 4, 5)) + + export var x = 1; +>x : Symbol(x, Decl(genericCloduleInModule.ts, 6, 18)) + } +} + +var b: A.B; +>b : Symbol(b, Decl(genericCloduleInModule.ts, 10, 3)) +>A : Symbol(A, Decl(genericCloduleInModule.ts, 0, 0)) +>B : Symbol(A.B, Decl(genericCloduleInModule.ts, 0, 10), Decl(genericCloduleInModule.ts, 4, 5)) + +b.foo(); +>b.foo : Symbol(A.B.foo, Decl(genericCloduleInModule.ts, 1, 23)) +>b : Symbol(b, Decl(genericCloduleInModule.ts, 10, 3)) +>foo : Symbol(A.B.foo, Decl(genericCloduleInModule.ts, 1, 23)) + diff --git a/tests/baselines/reference/genericCloduleInModule.types b/tests/baselines/reference/genericCloduleInModule.types index 96ee1b3fa0b32..3ae3a8cf06d72 100644 --- a/tests/baselines/reference/genericCloduleInModule.types +++ b/tests/baselines/reference/genericCloduleInModule.types @@ -1,34 +1,34 @@ === tests/cases/compiler/genericCloduleInModule.ts === module A { ->A : typeof A, Symbol(A, Decl(genericCloduleInModule.ts, 0, 0)) +>A : typeof A export class B { ->B : B, Symbol(B, Decl(genericCloduleInModule.ts, 0, 10), Decl(genericCloduleInModule.ts, 4, 5)) ->T : T, Symbol(T, Decl(genericCloduleInModule.ts, 1, 19)) +>B : B +>T : T foo() { } ->foo : () => void, Symbol(foo, Decl(genericCloduleInModule.ts, 1, 23)) +>foo : () => void static bar() { } ->bar : () => void, Symbol(B.bar, Decl(genericCloduleInModule.ts, 2, 17)) +>bar : () => void } export module B { ->B : typeof B, Symbol(B, Decl(genericCloduleInModule.ts, 0, 10), Decl(genericCloduleInModule.ts, 4, 5)) +>B : typeof B export var x = 1; ->x : number, Symbol(x, Decl(genericCloduleInModule.ts, 6, 18)) +>x : number >1 : number } } var b: A.B; ->b : A.B, Symbol(b, Decl(genericCloduleInModule.ts, 10, 3)) ->A : any, Symbol(A, Decl(genericCloduleInModule.ts, 0, 0)) ->B : A.B, Symbol(A.B, Decl(genericCloduleInModule.ts, 0, 10), Decl(genericCloduleInModule.ts, 4, 5)) +>b : A.B +>A : any +>B : A.B b.foo(); >b.foo() : void ->b.foo : () => void, Symbol(A.B.foo, Decl(genericCloduleInModule.ts, 1, 23)) ->b : A.B, Symbol(b, Decl(genericCloduleInModule.ts, 10, 3)) ->foo : () => void, Symbol(A.B.foo, Decl(genericCloduleInModule.ts, 1, 23)) +>b.foo : () => void +>b : A.B +>foo : () => void diff --git a/tests/baselines/reference/genericConstraintDeclaration.symbols b/tests/baselines/reference/genericConstraintDeclaration.symbols new file mode 100644 index 0000000000000..0b962f08b7094 --- /dev/null +++ b/tests/baselines/reference/genericConstraintDeclaration.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/genericConstraintDeclaration.ts === +class List{ +>List : Symbol(List, Decl(genericConstraintDeclaration.ts, 0, 0)) +>T : Symbol(T, Decl(genericConstraintDeclaration.ts, 0, 11)) + + static empty(): List{return null;} +>empty : Symbol(List.empty, Decl(genericConstraintDeclaration.ts, 0, 25)) +>T : Symbol(T, Decl(genericConstraintDeclaration.ts, 1, 17)) +>List : Symbol(List, Decl(genericConstraintDeclaration.ts, 0, 0)) +>T : Symbol(T, Decl(genericConstraintDeclaration.ts, 1, 17)) +} + + + + + diff --git a/tests/baselines/reference/genericConstraintDeclaration.types b/tests/baselines/reference/genericConstraintDeclaration.types index 9e4f785bd7569..aaa7d1de77a8b 100644 --- a/tests/baselines/reference/genericConstraintDeclaration.types +++ b/tests/baselines/reference/genericConstraintDeclaration.types @@ -1,13 +1,13 @@ === tests/cases/compiler/genericConstraintDeclaration.ts === class List{ ->List : List, Symbol(List, Decl(genericConstraintDeclaration.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericConstraintDeclaration.ts, 0, 11)) +>List : List +>T : T static empty(): List{return null;} ->empty : () => List, Symbol(List.empty, Decl(genericConstraintDeclaration.ts, 0, 25)) ->T : T, Symbol(T, Decl(genericConstraintDeclaration.ts, 1, 17)) ->List : List, Symbol(List, Decl(genericConstraintDeclaration.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericConstraintDeclaration.ts, 1, 17)) +>empty : () => List +>T : T +>List : List +>T : T >null : null } diff --git a/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.symbols b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.symbols new file mode 100644 index 0000000000000..3ce4f709b7dee --- /dev/null +++ b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/genericConstraintOnExtendedBuiltinTypes.ts === +declare module EndGate { +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) + + export interface ICloneable { +>ICloneable : Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) + + Clone(): any; +>Clone : Symbol(Clone, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 1, 33)) + } +} + +interface Number extends EndGate.ICloneable { } +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 4, 1)) +>EndGate.ICloneable : Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) +>ICloneable : Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) + +module EndGate.Tweening { +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) +>Tweening : Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 19, 15)) + + export class Tween{ +>Tween : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) +>T : Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 23)) +>ICloneable : Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) + + private _from: T; +>_from : Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 45)) +>T : Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 23)) + + + constructor(from: T) { +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 13, 20)) +>T : Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 23)) + + this._from = from.Clone(); +>this._from : Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 45)) +>this : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) +>_from : Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 45)) +>from.Clone : Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 1, 33)) +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 13, 20)) +>Clone : Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 1, 33)) + } + } +} + +module EndGate.Tweening { +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) +>Tweening : Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 19, 15)) + + export class NumberTween extends Tween{ +>NumberTween : Symbol(NumberTween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 19, 25)) +>Tween : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) + + constructor(from: number) { +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 21, 20)) + + super(from); +>super : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 21, 20)) + } + } +} diff --git a/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.types b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.types index 8e9e52c0889b8..f1041cfa80fae 100644 --- a/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.types +++ b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes.types @@ -1,67 +1,67 @@ === tests/cases/compiler/genericConstraintOnExtendedBuiltinTypes.ts === declare module EndGate { ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) +>EndGate : typeof EndGate export interface ICloneable { ->ICloneable : ICloneable, Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) +>ICloneable : ICloneable Clone(): any; ->Clone : () => any, Symbol(Clone, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 1, 33)) +>Clone : () => any } } interface Number extends EndGate.ICloneable { } ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 4, 1)) ->EndGate.ICloneable : any, Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) ->ICloneable : EndGate.ICloneable, Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) +>Number : Number +>EndGate.ICloneable : any +>EndGate : typeof EndGate +>ICloneable : EndGate.ICloneable module EndGate.Tweening { ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) ->Tweening : typeof Tweening, Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 19, 15)) +>EndGate : typeof EndGate +>Tweening : typeof Tweening export class Tween{ ->Tween : Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) ->T : T, Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 23)) ->ICloneable : ICloneable, Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 24)) +>Tween : Tween +>T : T +>ICloneable : ICloneable private _from: T; ->_from : T, Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 45)) ->T : T, Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 23)) +>_from : T +>T : T constructor(from: T) { ->from : T, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 13, 20)) ->T : T, Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 23)) +>from : T +>T : T this._from = from.Clone(); >this._from = from.Clone() : any ->this._from : T, Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 45)) ->this : Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) ->_from : T, Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 9, 45)) +>this._from : T +>this : Tween +>_from : T >from.Clone() : any ->from.Clone : () => any, Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 1, 33)) ->from : T, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 13, 20)) ->Clone : () => any, Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 1, 33)) +>from.Clone : () => any +>from : T +>Clone : () => any } } } module EndGate.Tweening { ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 17, 1)) ->Tweening : typeof Tweening, Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes.ts, 19, 15)) +>EndGate : typeof EndGate +>Tweening : typeof Tweening export class NumberTween extends Tween{ ->NumberTween : NumberTween, Symbol(NumberTween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 19, 25)) ->Tween : Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) +>NumberTween : NumberTween +>Tween : Tween constructor(from: number) { ->from : number, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 21, 20)) +>from : number super(from); >super(from) : void ->super : typeof Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 8, 25)) ->from : number, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes.ts, 21, 20)) +>super : typeof Tween +>from : number } } } diff --git a/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.symbols b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.symbols new file mode 100644 index 0000000000000..be96d92c3575d --- /dev/null +++ b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/genericConstraintOnExtendedBuiltinTypes2.ts === +module EndGate { +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) + + export interface ICloneable { +>ICloneable : Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) + + Clone(): any; +>Clone : Symbol(Clone, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 1, 33)) + } +} + +interface Number extends EndGate.ICloneable { } +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 4, 1)) +>EndGate.ICloneable : Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) +>ICloneable : Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) + +module EndGate.Tweening { +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) +>Tweening : Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 18, 15)) + + export class Tween{ +>Tween : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) +>T : Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 23)) +>ICloneable : Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) + + private _from: T; +>_from : Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 45)) +>T : Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 23)) + + constructor(from: T) { +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 12, 20)) +>T : Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 23)) + + this._from = from.Clone(); +>this._from : Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 45)) +>this : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) +>_from : Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 45)) +>from.Clone : Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 1, 33)) +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 12, 20)) +>Clone : Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 1, 33)) + } + } +} + +module EndGate.Tweening { +>EndGate : Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) +>Tweening : Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 18, 15)) + + export class NumberTween extends Tween{ +>NumberTween : Symbol(NumberTween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 18, 25)) +>Tween : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 4, 1)) + + constructor(from: number) { +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 20, 20)) + + super(from); +>super : Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) +>from : Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 20, 20)) + } + } +} diff --git a/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.types b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.types index 9c4bfbaa4115c..92ffa7c5c0359 100644 --- a/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.types +++ b/tests/baselines/reference/genericConstraintOnExtendedBuiltinTypes2.types @@ -1,67 +1,67 @@ === tests/cases/compiler/genericConstraintOnExtendedBuiltinTypes2.ts === module EndGate { ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) +>EndGate : typeof EndGate export interface ICloneable { ->ICloneable : ICloneable, Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) +>ICloneable : ICloneable Clone(): any; ->Clone : () => any, Symbol(Clone, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 1, 33)) +>Clone : () => any } } interface Number extends EndGate.ICloneable { } ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 4, 1)) ->EndGate.ICloneable : any, Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) ->ICloneable : EndGate.ICloneable, Symbol(EndGate.ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) +>Number : Number +>EndGate.ICloneable : any +>EndGate : typeof EndGate +>ICloneable : EndGate.ICloneable module EndGate.Tweening { ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) ->Tweening : typeof Tweening, Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 18, 15)) +>EndGate : typeof EndGate +>Tweening : typeof Tweening export class Tween{ ->Tween : Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) ->T : T, Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 23)) ->ICloneable : ICloneable, Symbol(ICloneable, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 16)) +>Tween : Tween +>T : T +>ICloneable : ICloneable private _from: T; ->_from : T, Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 45)) ->T : T, Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 23)) +>_from : T +>T : T constructor(from: T) { ->from : T, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 12, 20)) ->T : T, Symbol(T, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 23)) +>from : T +>T : T this._from = from.Clone(); >this._from = from.Clone() : any ->this._from : T, Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 45)) ->this : Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) ->_from : T, Symbol(_from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 9, 45)) +>this._from : T +>this : Tween +>_from : T >from.Clone() : any ->from.Clone : () => any, Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 1, 33)) ->from : T, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 12, 20)) ->Clone : () => any, Symbol(ICloneable.Clone, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 1, 33)) +>from.Clone : () => any +>from : T +>Clone : () => any } } } module EndGate.Tweening { ->EndGate : typeof EndGate, Symbol(EndGate, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 0, 0), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 6, 47), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 16, 1)) ->Tweening : typeof Tweening, Symbol(Tweening, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 15), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 18, 15)) +>EndGate : typeof EndGate +>Tweening : typeof Tweening export class NumberTween extends Tween{ ->NumberTween : NumberTween, Symbol(NumberTween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 18, 25)) ->Tween : Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11), Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 4, 1)) +>NumberTween : NumberTween +>Tween : Tween +>Number : Number constructor(from: number) { ->from : number, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 20, 20)) +>from : number super(from); >super(from) : void ->super : typeof Tween, Symbol(Tween, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 8, 25)) ->from : number, Symbol(from, Decl(genericConstraintOnExtendedBuiltinTypes2.ts, 20, 20)) +>super : typeof Tween +>from : number } } } diff --git a/tests/baselines/reference/genericConstructSignatureInInterface.symbols b/tests/baselines/reference/genericConstructSignatureInInterface.symbols new file mode 100644 index 0000000000000..18b5feee6ff7f --- /dev/null +++ b/tests/baselines/reference/genericConstructSignatureInInterface.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/genericConstructSignatureInInterface.ts === +interface C { +>C : Symbol(C, Decl(genericConstructSignatureInInterface.ts, 0, 0)) + + new (x: T); +>T : Symbol(T, Decl(genericConstructSignatureInInterface.ts, 1, 9)) +>x : Symbol(x, Decl(genericConstructSignatureInInterface.ts, 1, 12)) +>T : Symbol(T, Decl(genericConstructSignatureInInterface.ts, 1, 9)) +} + +var v: C; +>v : Symbol(v, Decl(genericConstructSignatureInInterface.ts, 4, 3)) +>C : Symbol(C, Decl(genericConstructSignatureInInterface.ts, 0, 0)) + +var r = new v(1); +>r : Symbol(r, Decl(genericConstructSignatureInInterface.ts, 5, 3)) +>v : Symbol(v, Decl(genericConstructSignatureInInterface.ts, 4, 3)) + diff --git a/tests/baselines/reference/genericConstructSignatureInInterface.types b/tests/baselines/reference/genericConstructSignatureInInterface.types index 4d07c96f749a8..c6653a0d90db2 100644 --- a/tests/baselines/reference/genericConstructSignatureInInterface.types +++ b/tests/baselines/reference/genericConstructSignatureInInterface.types @@ -1,20 +1,20 @@ === tests/cases/compiler/genericConstructSignatureInInterface.ts === interface C { ->C : C, Symbol(C, Decl(genericConstructSignatureInInterface.ts, 0, 0)) +>C : C new (x: T); ->T : T, Symbol(T, Decl(genericConstructSignatureInInterface.ts, 1, 9)) ->x : T, Symbol(x, Decl(genericConstructSignatureInInterface.ts, 1, 12)) ->T : T, Symbol(T, Decl(genericConstructSignatureInInterface.ts, 1, 9)) +>T : T +>x : T +>T : T } var v: C; ->v : C, Symbol(v, Decl(genericConstructSignatureInInterface.ts, 4, 3)) ->C : C, Symbol(C, Decl(genericConstructSignatureInInterface.ts, 0, 0)) +>v : C +>C : C var r = new v(1); ->r : any, Symbol(r, Decl(genericConstructSignatureInInterface.ts, 5, 3)) +>r : any >new v(1) : any ->v : C, Symbol(v, Decl(genericConstructSignatureInInterface.ts, 4, 3)) +>v : C >1 : number diff --git a/tests/baselines/reference/genericContextualTypingSpecialization.symbols b/tests/baselines/reference/genericContextualTypingSpecialization.symbols new file mode 100644 index 0000000000000..05312d889c986 --- /dev/null +++ b/tests/baselines/reference/genericContextualTypingSpecialization.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/genericContextualTypingSpecialization.ts === +var b: number[]; +>b : Symbol(b, Decl(genericContextualTypingSpecialization.ts, 0, 3)) + +b.reduce((c, d) => c + d, 0); // should not error on '+' +>b.reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>b : Symbol(b, Decl(genericContextualTypingSpecialization.ts, 0, 3)) +>reduce : Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>c : Symbol(c, Decl(genericContextualTypingSpecialization.ts, 1, 18)) +>d : Symbol(d, Decl(genericContextualTypingSpecialization.ts, 1, 20)) +>c : Symbol(c, Decl(genericContextualTypingSpecialization.ts, 1, 18)) +>d : Symbol(d, Decl(genericContextualTypingSpecialization.ts, 1, 20)) + diff --git a/tests/baselines/reference/genericContextualTypingSpecialization.types b/tests/baselines/reference/genericContextualTypingSpecialization.types index bbd674d3b9df8..561370a6a320f 100644 --- a/tests/baselines/reference/genericContextualTypingSpecialization.types +++ b/tests/baselines/reference/genericContextualTypingSpecialization.types @@ -1,17 +1,17 @@ === tests/cases/compiler/genericContextualTypingSpecialization.ts === var b: number[]; ->b : number[], Symbol(b, Decl(genericContextualTypingSpecialization.ts, 0, 3)) +>b : number[] b.reduce((c, d) => c + d, 0); // should not error on '+' >b.reduce((c, d) => c + d, 0) : number ->b.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue?: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) ->b : number[], Symbol(b, Decl(genericContextualTypingSpecialization.ts, 0, 3)) ->reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue?: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }, Symbol(Array.reduce, Decl(lib.d.ts, 1129, 93), Decl(lib.d.ts, 1136, 120)) +>b.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue?: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } +>b : number[] +>reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue?: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } >(c, d) => c + d : (c: number, d: number) => number ->c : number, Symbol(c, Decl(genericContextualTypingSpecialization.ts, 1, 18)) ->d : number, Symbol(d, Decl(genericContextualTypingSpecialization.ts, 1, 20)) +>c : number +>d : number >c + d : number ->c : number, Symbol(c, Decl(genericContextualTypingSpecialization.ts, 1, 18)) ->d : number, Symbol(d, Decl(genericContextualTypingSpecialization.ts, 1, 20)) +>c : number +>d : number >0 : number diff --git a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.symbols b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.symbols new file mode 100644 index 0000000000000..0baf9eda80fcc --- /dev/null +++ b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/genericFunctionHasFreshTypeArgs.ts === +function f(p: (x: T) => void) { }; +>f : Symbol(f, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 0)) +>p : Symbol(p, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 11)) +>T : Symbol(T, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 15)) +>x : Symbol(x, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 18)) +>T : Symbol(T, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 15)) + +f(x => f(y => x = y)); +>f : Symbol(f, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 0)) +>x : Symbol(x, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 2)) +>f : Symbol(f, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 0)) +>y : Symbol(y, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 9)) +>x : Symbol(x, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 2)) +>y : Symbol(y, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 9)) + diff --git a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types index d99e8655265f9..3a3afebb9ac18 100644 --- a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types +++ b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types @@ -1,21 +1,21 @@ === tests/cases/compiler/genericFunctionHasFreshTypeArgs.ts === function f(p: (x: T) => void) { }; ->f : (p: (x: T) => void) => void, Symbol(f, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 0)) ->p : (x: T) => void, Symbol(p, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 11)) ->T : T, Symbol(T, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 15)) ->x : T, Symbol(x, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 18)) ->T : T, Symbol(T, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 15)) +>f : (p: (x: T) => void) => void +>p : (x: T) => void +>T : T +>x : T +>T : T f(x => f(y => x = y)); >f(x => f(y => x = y)) : void ->f : (p: (x: T) => void) => void, Symbol(f, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 0)) +>f : (p: (x: T) => void) => void >x => f(y => x = y) : (x: any) => void ->x : any, Symbol(x, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 2)) +>x : any >f(y => x = y) : void ->f : (p: (x: T) => void) => void, Symbol(f, Decl(genericFunctionHasFreshTypeArgs.ts, 0, 0)) +>f : (p: (x: T) => void) => void >y => x = y : (y: any) => any ->y : any, Symbol(y, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 9)) +>y : any >x = y : any ->x : any, Symbol(x, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 2)) ->y : any, Symbol(y, Decl(genericFunctionHasFreshTypeArgs.ts, 1, 9)) +>x : any +>y : any diff --git a/tests/baselines/reference/genericFunctionSpecializations1.symbols b/tests/baselines/reference/genericFunctionSpecializations1.symbols new file mode 100644 index 0000000000000..e3c21ea418b21 --- /dev/null +++ b/tests/baselines/reference/genericFunctionSpecializations1.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/genericFunctionSpecializations1.ts === +function foo3(test: string); // error +>foo3 : Symbol(foo3, Decl(genericFunctionSpecializations1.ts, 0, 0), Decl(genericFunctionSpecializations1.ts, 0, 31)) +>T : Symbol(T, Decl(genericFunctionSpecializations1.ts, 0, 14)) +>test : Symbol(test, Decl(genericFunctionSpecializations1.ts, 0, 17)) + +function foo3(test: T) { } +>foo3 : Symbol(foo3, Decl(genericFunctionSpecializations1.ts, 0, 0), Decl(genericFunctionSpecializations1.ts, 0, 31)) +>T : Symbol(T, Decl(genericFunctionSpecializations1.ts, 1, 14)) +>test : Symbol(test, Decl(genericFunctionSpecializations1.ts, 1, 17)) +>T : Symbol(T, Decl(genericFunctionSpecializations1.ts, 1, 14)) + +function foo4(test: string); // valid +>foo4 : Symbol(foo4, Decl(genericFunctionSpecializations1.ts, 1, 29), Decl(genericFunctionSpecializations1.ts, 3, 31)) +>T : Symbol(T, Decl(genericFunctionSpecializations1.ts, 3, 14)) +>test : Symbol(test, Decl(genericFunctionSpecializations1.ts, 3, 17)) + +function foo4(test: T) { } +>foo4 : Symbol(foo4, Decl(genericFunctionSpecializations1.ts, 1, 29), Decl(genericFunctionSpecializations1.ts, 3, 31)) +>T : Symbol(T, Decl(genericFunctionSpecializations1.ts, 4, 14)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>test : Symbol(test, Decl(genericFunctionSpecializations1.ts, 4, 32)) +>T : Symbol(T, Decl(genericFunctionSpecializations1.ts, 4, 14)) + diff --git a/tests/baselines/reference/genericFunctionSpecializations1.types b/tests/baselines/reference/genericFunctionSpecializations1.types index a5400b2d6bb0f..60819c786b8f0 100644 --- a/tests/baselines/reference/genericFunctionSpecializations1.types +++ b/tests/baselines/reference/genericFunctionSpecializations1.types @@ -1,24 +1,24 @@ === tests/cases/compiler/genericFunctionSpecializations1.ts === function foo3(test: string); // error ->foo3 : (test: string) => any, Symbol(foo3, Decl(genericFunctionSpecializations1.ts, 0, 0), Decl(genericFunctionSpecializations1.ts, 0, 31)) ->T : T, Symbol(T, Decl(genericFunctionSpecializations1.ts, 0, 14)) ->test : string, Symbol(test, Decl(genericFunctionSpecializations1.ts, 0, 17)) +>foo3 : (test: string) => any +>T : T +>test : string function foo3(test: T) { } ->foo3 : (test: string) => any, Symbol(foo3, Decl(genericFunctionSpecializations1.ts, 0, 0), Decl(genericFunctionSpecializations1.ts, 0, 31)) ->T : T, Symbol(T, Decl(genericFunctionSpecializations1.ts, 1, 14)) ->test : T, Symbol(test, Decl(genericFunctionSpecializations1.ts, 1, 17)) ->T : T, Symbol(T, Decl(genericFunctionSpecializations1.ts, 1, 14)) +>foo3 : (test: string) => any +>T : T +>test : T +>T : T function foo4(test: string); // valid ->foo4 : (test: string) => any, Symbol(foo4, Decl(genericFunctionSpecializations1.ts, 1, 29), Decl(genericFunctionSpecializations1.ts, 3, 31)) ->T : T, Symbol(T, Decl(genericFunctionSpecializations1.ts, 3, 14)) ->test : string, Symbol(test, Decl(genericFunctionSpecializations1.ts, 3, 17)) +>foo4 : (test: string) => any +>T : T +>test : string function foo4(test: T) { } ->foo4 : (test: string) => any, Symbol(foo4, Decl(genericFunctionSpecializations1.ts, 1, 29), Decl(genericFunctionSpecializations1.ts, 3, 31)) ->T : T, Symbol(T, Decl(genericFunctionSpecializations1.ts, 4, 14)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->test : T, Symbol(test, Decl(genericFunctionSpecializations1.ts, 4, 32)) ->T : T, Symbol(T, Decl(genericFunctionSpecializations1.ts, 4, 14)) +>foo4 : (test: string) => any +>T : T +>String : String +>test : T +>T : T diff --git a/tests/baselines/reference/genericFunctions0.symbols b/tests/baselines/reference/genericFunctions0.symbols new file mode 100644 index 0000000000000..50eab4fe7d304 --- /dev/null +++ b/tests/baselines/reference/genericFunctions0.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/genericFunctions0.ts === +function foo (x: T) { return x; } +>foo : Symbol(foo, Decl(genericFunctions0.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions0.ts, 0, 13)) +>x : Symbol(x, Decl(genericFunctions0.ts, 0, 18)) +>T : Symbol(T, Decl(genericFunctions0.ts, 0, 13)) +>x : Symbol(x, Decl(genericFunctions0.ts, 0, 18)) + +var x = foo(5); // 'x' should be number +>x : Symbol(x, Decl(genericFunctions0.ts, 2, 3)) +>foo : Symbol(foo, Decl(genericFunctions0.ts, 0, 0)) + diff --git a/tests/baselines/reference/genericFunctions0.types b/tests/baselines/reference/genericFunctions0.types index 5fbf310a634d4..aac759af092c7 100644 --- a/tests/baselines/reference/genericFunctions0.types +++ b/tests/baselines/reference/genericFunctions0.types @@ -1,14 +1,14 @@ === tests/cases/compiler/genericFunctions0.ts === function foo (x: T) { return x; } ->foo : (x: T) => T, Symbol(foo, Decl(genericFunctions0.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions0.ts, 0, 13)) ->x : T, Symbol(x, Decl(genericFunctions0.ts, 0, 18)) ->T : T, Symbol(T, Decl(genericFunctions0.ts, 0, 13)) ->x : T, Symbol(x, Decl(genericFunctions0.ts, 0, 18)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>x : T var x = foo(5); // 'x' should be number ->x : number, Symbol(x, Decl(genericFunctions0.ts, 2, 3)) +>x : number >foo(5) : number ->foo : (x: T) => T, Symbol(foo, Decl(genericFunctions0.ts, 0, 0)) +>foo : (x: T) => T >5 : number diff --git a/tests/baselines/reference/genericFunctions1.symbols b/tests/baselines/reference/genericFunctions1.symbols new file mode 100644 index 0000000000000..6f4470492cdca --- /dev/null +++ b/tests/baselines/reference/genericFunctions1.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/genericFunctions1.ts === +function foo (x: T) { return x; } +>foo : Symbol(foo, Decl(genericFunctions1.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions1.ts, 0, 13)) +>x : Symbol(x, Decl(genericFunctions1.ts, 0, 18)) +>T : Symbol(T, Decl(genericFunctions1.ts, 0, 13)) +>x : Symbol(x, Decl(genericFunctions1.ts, 0, 18)) + +var x = foo(5); // 'x' should be number +>x : Symbol(x, Decl(genericFunctions1.ts, 2, 3)) +>foo : Symbol(foo, Decl(genericFunctions1.ts, 0, 0)) + diff --git a/tests/baselines/reference/genericFunctions1.types b/tests/baselines/reference/genericFunctions1.types index 457d598f5716b..602ee6b81a418 100644 --- a/tests/baselines/reference/genericFunctions1.types +++ b/tests/baselines/reference/genericFunctions1.types @@ -1,14 +1,14 @@ === tests/cases/compiler/genericFunctions1.ts === function foo (x: T) { return x; } ->foo : (x: T) => T, Symbol(foo, Decl(genericFunctions1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions1.ts, 0, 13)) ->x : T, Symbol(x, Decl(genericFunctions1.ts, 0, 18)) ->T : T, Symbol(T, Decl(genericFunctions1.ts, 0, 13)) ->x : T, Symbol(x, Decl(genericFunctions1.ts, 0, 18)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>x : T var x = foo(5); // 'x' should be number ->x : number, Symbol(x, Decl(genericFunctions1.ts, 2, 3)) +>x : number >foo(5) : number ->foo : (x: T) => T, Symbol(foo, Decl(genericFunctions1.ts, 0, 0)) +>foo : (x: T) => T >5 : number diff --git a/tests/baselines/reference/genericFunctions2.symbols b/tests/baselines/reference/genericFunctions2.symbols new file mode 100644 index 0000000000000..59068cbd8dda1 --- /dev/null +++ b/tests/baselines/reference/genericFunctions2.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/genericFunctions2.ts === +declare function map (items: T[], f: (x: T) => U): U[]; +>map : Symbol(map, Decl(genericFunctions2.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions2.ts, 0, 22)) +>U : Symbol(U, Decl(genericFunctions2.ts, 0, 24)) +>items : Symbol(items, Decl(genericFunctions2.ts, 0, 30)) +>T : Symbol(T, Decl(genericFunctions2.ts, 0, 22)) +>f : Symbol(f, Decl(genericFunctions2.ts, 0, 41)) +>x : Symbol(x, Decl(genericFunctions2.ts, 0, 46)) +>T : Symbol(T, Decl(genericFunctions2.ts, 0, 22)) +>U : Symbol(U, Decl(genericFunctions2.ts, 0, 24)) +>U : Symbol(U, Decl(genericFunctions2.ts, 0, 24)) + +var myItems: string[]; +>myItems : Symbol(myItems, Decl(genericFunctions2.ts, 2, 3)) + +var lengths = map(myItems, x => x.length); +>lengths : Symbol(lengths, Decl(genericFunctions2.ts, 3, 3)) +>map : Symbol(map, Decl(genericFunctions2.ts, 0, 0)) +>myItems : Symbol(myItems, Decl(genericFunctions2.ts, 2, 3)) +>x : Symbol(x, Decl(genericFunctions2.ts, 3, 26)) +>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : Symbol(x, Decl(genericFunctions2.ts, 3, 26)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + diff --git a/tests/baselines/reference/genericFunctions2.types b/tests/baselines/reference/genericFunctions2.types index 4eacc08c983a0..96e757d3d9ef3 100644 --- a/tests/baselines/reference/genericFunctions2.types +++ b/tests/baselines/reference/genericFunctions2.types @@ -1,28 +1,28 @@ === tests/cases/compiler/genericFunctions2.ts === declare function map (items: T[], f: (x: T) => U): U[]; ->map : (items: T[], f: (x: T) => U) => U[], Symbol(map, Decl(genericFunctions2.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions2.ts, 0, 22)) ->U : U, Symbol(U, Decl(genericFunctions2.ts, 0, 24)) ->items : T[], Symbol(items, Decl(genericFunctions2.ts, 0, 30)) ->T : T, Symbol(T, Decl(genericFunctions2.ts, 0, 22)) ->f : (x: T) => U, Symbol(f, Decl(genericFunctions2.ts, 0, 41)) ->x : T, Symbol(x, Decl(genericFunctions2.ts, 0, 46)) ->T : T, Symbol(T, Decl(genericFunctions2.ts, 0, 22)) ->U : U, Symbol(U, Decl(genericFunctions2.ts, 0, 24)) ->U : U, Symbol(U, Decl(genericFunctions2.ts, 0, 24)) +>map : (items: T[], f: (x: T) => U) => U[] +>T : T +>U : U +>items : T[] +>T : T +>f : (x: T) => U +>x : T +>T : T +>U : U +>U : U var myItems: string[]; ->myItems : string[], Symbol(myItems, Decl(genericFunctions2.ts, 2, 3)) +>myItems : string[] var lengths = map(myItems, x => x.length); ->lengths : number[], Symbol(lengths, Decl(genericFunctions2.ts, 3, 3)) +>lengths : number[] >map(myItems, x => x.length) : number[] ->map : (items: T[], f: (x: T) => U) => U[], Symbol(map, Decl(genericFunctions2.ts, 0, 0)) ->myItems : string[], Symbol(myItems, Decl(genericFunctions2.ts, 2, 3)) +>map : (items: T[], f: (x: T) => U) => U[] +>myItems : string[] >x => x.length : (x: string) => number ->x : string, Symbol(x, Decl(genericFunctions2.ts, 3, 26)) ->x.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->x : string, Symbol(x, Decl(genericFunctions2.ts, 3, 26)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : string +>x.length : number +>x : string +>length : number diff --git a/tests/baselines/reference/genericFunctions3.symbols b/tests/baselines/reference/genericFunctions3.symbols new file mode 100644 index 0000000000000..8b2575003257f --- /dev/null +++ b/tests/baselines/reference/genericFunctions3.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/genericFunctions3.ts === +interface Query { +>Query : Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions3.ts, 0, 16)) + + foo(x: string): Query; +>foo : Symbol(foo, Decl(genericFunctions3.ts, 0, 20)) +>x : Symbol(x, Decl(genericFunctions3.ts, 1, 8)) +>Query : Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions3.ts, 0, 16)) +} + +function from(arg: boolean): Query; // was Error: Overload signature is not compatible with function definition. +>from : Symbol(from, Decl(genericFunctions3.ts, 2, 1), Decl(genericFunctions3.ts, 4, 41)) +>T : Symbol(T, Decl(genericFunctions3.ts, 4, 14)) +>arg : Symbol(arg, Decl(genericFunctions3.ts, 4, 17)) +>Query : Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions3.ts, 4, 14)) + +function from(arg: any): Query { +>from : Symbol(from, Decl(genericFunctions3.ts, 2, 1), Decl(genericFunctions3.ts, 4, 41)) +>T : Symbol(T, Decl(genericFunctions3.ts, 5, 14)) +>arg : Symbol(arg, Decl(genericFunctions3.ts, 5, 17)) +>Query : Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctions3.ts, 5, 14)) + + return undefined; +>undefined : Symbol(undefined) +} + diff --git a/tests/baselines/reference/genericFunctions3.types b/tests/baselines/reference/genericFunctions3.types index c49edd97910df..2215e30adcf4b 100644 --- a/tests/baselines/reference/genericFunctions3.types +++ b/tests/baselines/reference/genericFunctions3.types @@ -1,30 +1,30 @@ === tests/cases/compiler/genericFunctions3.ts === interface Query { ->Query : Query, Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions3.ts, 0, 16)) +>Query : Query +>T : T foo(x: string): Query; ->foo : (x: string) => Query, Symbol(foo, Decl(genericFunctions3.ts, 0, 20)) ->x : string, Symbol(x, Decl(genericFunctions3.ts, 1, 8)) ->Query : Query, Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions3.ts, 0, 16)) +>foo : (x: string) => Query +>x : string +>Query : Query +>T : T } function from(arg: boolean): Query; // was Error: Overload signature is not compatible with function definition. ->from : (arg: boolean) => Query, Symbol(from, Decl(genericFunctions3.ts, 2, 1), Decl(genericFunctions3.ts, 4, 41)) ->T : T, Symbol(T, Decl(genericFunctions3.ts, 4, 14)) ->arg : boolean, Symbol(arg, Decl(genericFunctions3.ts, 4, 17)) ->Query : Query, Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions3.ts, 4, 14)) +>from : (arg: boolean) => Query +>T : T +>arg : boolean +>Query : Query +>T : T function from(arg: any): Query { ->from : (arg: boolean) => Query, Symbol(from, Decl(genericFunctions3.ts, 2, 1), Decl(genericFunctions3.ts, 4, 41)) ->T : T, Symbol(T, Decl(genericFunctions3.ts, 5, 14)) ->arg : any, Symbol(arg, Decl(genericFunctions3.ts, 5, 17)) ->Query : Query, Symbol(Query, Decl(genericFunctions3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctions3.ts, 5, 14)) +>from : (arg: boolean) => Query +>T : T +>arg : any +>Query : Query +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.symbols b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.symbols new file mode 100644 index 0000000000000..fa04763f2ab25 --- /dev/null +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/genericFunctionsWithOptionalParameters1.ts === +interface Utils { +>Utils : Symbol(Utils, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 0)) + + fold(c?: Array, folder?: (s: S, t: T) => T, init?: S): T; +>fold : Symbol(fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) +>S : Symbol(S, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 10)) +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 14)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) +>folder : Symbol(folder, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 27)) +>s : Symbol(s, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 38)) +>S : Symbol(S, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 10)) +>t : Symbol(t, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 43)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) +>init : Symbol(init, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 55)) +>S : Symbol(S, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 10)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) +} + +var utils: Utils; +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) +>Utils : Symbol(Utils, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 0)) + +utils.fold(); // no error +>utils.fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) +>fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) + +utils.fold(null); // no error +>utils.fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) +>fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) + +utils.fold(null, null); // no error +>utils.fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) +>fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) + +utils.fold(null, null, null); // no error +>utils.fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) +>fold : Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) + diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types index 0e50534a48dce..3d5257812aeb7 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types @@ -1,55 +1,55 @@ === tests/cases/compiler/genericFunctionsWithOptionalParameters1.ts === interface Utils { ->Utils : Utils, Symbol(Utils, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 0)) +>Utils : Utils fold(c?: Array, folder?: (s: S, t: T) => T, init?: S): T; ->fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) ->S : S, Symbol(S, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 10)) ->c : T[], Symbol(c, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 14)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) ->folder : (s: S, t: T) => T, Symbol(folder, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 27)) ->s : S, Symbol(s, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 38)) ->S : S, Symbol(S, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 10)) ->t : T, Symbol(t, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 43)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) ->init : S, Symbol(init, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 55)) ->S : S, Symbol(S, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 10)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters1.ts, 1, 8)) +>fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T +>T : T +>S : S +>c : T[] +>Array : T[] +>T : T +>folder : (s: S, t: T) => T +>s : S +>S : S +>t : T +>T : T +>T : T +>init : S +>S : S +>T : T } var utils: Utils; ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) ->Utils : Utils, Symbol(Utils, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 0)) +>utils : Utils +>Utils : Utils utils.fold(); // no error >utils.fold() : {} ->utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) ->fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T +>utils : Utils +>fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T utils.fold(null); // no error >utils.fold(null) : {} ->utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) ->fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T +>utils : Utils +>fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T >null : null utils.fold(null, null); // no error >utils.fold(null, null) : {} ->utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) ->fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T +>utils : Utils +>fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T >null : null >null : null utils.fold(null, null, null); // no error >utils.fold(null, null, null) : {} ->utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters1.ts, 4, 3)) ->fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T, Symbol(Utils.fold, Decl(genericFunctionsWithOptionalParameters1.ts, 0, 17)) +>utils.fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T +>utils : Utils +>fold : (c?: T[], folder?: (s: S, t: T) => T, init?: S) => T >null : null >null : null >null : null diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.symbols b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.symbols new file mode 100644 index 0000000000000..2fe7e295a0d70 --- /dev/null +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.symbols @@ -0,0 +1,95 @@ +=== tests/cases/compiler/genericFunctionsWithOptionalParameters3.ts === +class Collection { +>Collection : Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 17)) + + public add(x: T) { } +>add : Symbol(add, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 21)) +>x : Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 1, 15)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 17)) +} +interface Utils { +>Utils : Symbol(Utils, Decl(genericFunctionsWithOptionalParameters3.ts, 2, 1)) + + fold(c?: Collection, folder?: (s: S, t: T) => T, init?: S): T; +>fold : Symbol(fold, Decl(genericFunctionsWithOptionalParameters3.ts, 3, 17)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) +>S : Symbol(S, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 11)) +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 15)) +>Collection : Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) +>folder : Symbol(folder, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 33)) +>s : Symbol(s, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 44)) +>S : Symbol(S, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 11)) +>t : Symbol(t, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 49)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) +>init : Symbol(init, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 61)) +>S : Symbol(S, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 11)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) + + mapReduce(c: Collection, mapper: (x: T) => U, reducer: (y: U) => V): Collection; +>mapReduce : Symbol(mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 14)) +>U : Symbol(U, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 16)) +>V : Symbol(V, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 19)) +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 23)) +>Collection : Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 14)) +>mapper : Symbol(mapper, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 40)) +>x : Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 50)) +>T : Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 14)) +>U : Symbol(U, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 16)) +>reducer : Symbol(reducer, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 61)) +>y : Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 72)) +>U : Symbol(U, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 16)) +>V : Symbol(V, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 19)) +>Collection : Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) +>V : Symbol(V, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 19)) +} +var utils: Utils; +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) +>Utils : Symbol(Utils, Decl(genericFunctionsWithOptionalParameters3.ts, 2, 1)) + +var c = new Collection(); +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>Collection : Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) + +var r3 = utils.mapReduce(c, (x) => { return 1 }, (y) => { return new Date() }); +>r3 : Symbol(r3, Decl(genericFunctionsWithOptionalParameters3.ts, 9, 3)) +>utils.mapReduce : Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) +>mapReduce : Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>x : Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 9, 29)) +>y : Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 9, 50)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r4 = utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return new Date() }); +>r4 : Symbol(r4, Decl(genericFunctionsWithOptionalParameters3.ts, 10, 3)) +>utils.mapReduce : Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) +>mapReduce : Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>x : Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 10, 29)) +>y : Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 10, 58)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var f1 = (x: string) => { return 1 }; +>f1 : Symbol(f1, Decl(genericFunctionsWithOptionalParameters3.ts, 11, 3)) +>x : Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 11, 10)) + +var f2 = (y: number) => { return new Date() }; +>f2 : Symbol(f2, Decl(genericFunctionsWithOptionalParameters3.ts, 12, 3)) +>y : Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 12, 10)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r5 = utils.mapReduce(c, f1, f2); +>r5 : Symbol(r5, Decl(genericFunctionsWithOptionalParameters3.ts, 13, 3)) +>utils.mapReduce : Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>utils : Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) +>mapReduce : Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) +>c : Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>f1 : Symbol(f1, Decl(genericFunctionsWithOptionalParameters3.ts, 11, 3)) +>f2 : Symbol(f2, Decl(genericFunctionsWithOptionalParameters3.ts, 12, 3)) + diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types index eea3f345a9f55..627181e5d050c 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types @@ -1,111 +1,111 @@ === tests/cases/compiler/genericFunctionsWithOptionalParameters3.ts === class Collection { ->Collection : Collection, Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 17)) +>Collection : Collection +>T : T public add(x: T) { } ->add : (x: T) => void, Symbol(add, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 21)) ->x : T, Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 1, 15)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 17)) +>add : (x: T) => void +>x : T +>T : T } interface Utils { ->Utils : Utils, Symbol(Utils, Decl(genericFunctionsWithOptionalParameters3.ts, 2, 1)) +>Utils : Utils fold(c?: Collection, folder?: (s: S, t: T) => T, init?: S): T; ->fold : (c?: Collection, folder?: (s: S, t: T) => T, init?: S) => T, Symbol(fold, Decl(genericFunctionsWithOptionalParameters3.ts, 3, 17)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) ->S : S, Symbol(S, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 11)) ->c : Collection, Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 15)) ->Collection : Collection, Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) ->folder : (s: S, t: T) => T, Symbol(folder, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 33)) ->s : S, Symbol(s, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 44)) ->S : S, Symbol(S, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 11)) ->t : T, Symbol(t, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 49)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) ->init : S, Symbol(init, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 61)) ->S : S, Symbol(S, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 11)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 9)) +>fold : (c?: Collection, folder?: (s: S, t: T) => T, init?: S) => T +>T : T +>S : S +>c : Collection +>Collection : Collection +>T : T +>folder : (s: S, t: T) => T +>s : S +>S : S +>t : T +>T : T +>T : T +>init : S +>S : S +>T : T mapReduce(c: Collection, mapper: (x: T) => U, reducer: (y: U) => V): Collection; ->mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 14)) ->U : U, Symbol(U, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 16)) ->V : V, Symbol(V, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 19)) ->c : Collection, Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 23)) ->Collection : Collection, Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 14)) ->mapper : (x: T) => U, Symbol(mapper, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 40)) ->x : T, Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 50)) ->T : T, Symbol(T, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 14)) ->U : U, Symbol(U, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 16)) ->reducer : (y: U) => V, Symbol(reducer, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 61)) ->y : U, Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 72)) ->U : U, Symbol(U, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 16)) ->V : V, Symbol(V, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 19)) ->Collection : Collection, Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) ->V : V, Symbol(V, Decl(genericFunctionsWithOptionalParameters3.ts, 5, 19)) +>mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>T : T +>U : U +>V : V +>c : Collection +>Collection : Collection +>T : T +>mapper : (x: T) => U +>x : T +>T : T +>U : U +>reducer : (y: U) => V +>y : U +>U : U +>V : V +>Collection : Collection +>V : V } var utils: Utils; ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) ->Utils : Utils, Symbol(Utils, Decl(genericFunctionsWithOptionalParameters3.ts, 2, 1)) +>utils : Utils +>Utils : Utils var c = new Collection(); ->c : Collection, Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>c : Collection >new Collection() : Collection ->Collection : typeof Collection, Symbol(Collection, Decl(genericFunctionsWithOptionalParameters3.ts, 0, 0)) +>Collection : typeof Collection var r3 = utils.mapReduce(c, (x) => { return 1 }, (y) => { return new Date() }); ->r3 : Collection, Symbol(r3, Decl(genericFunctionsWithOptionalParameters3.ts, 9, 3)) +>r3 : Collection >utils.mapReduce(c, (x) => { return 1 }, (y) => { return new Date() }) : Collection ->utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) ->mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->c : Collection, Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>utils : Utils +>mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>c : Collection >(x) => { return 1 } : (x: string) => number ->x : string, Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 9, 29)) +>x : string >1 : number >(y) => { return new Date() } : (y: number) => Date ->y : number, Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 9, 50)) +>y : number >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor var r4 = utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return new Date() }); ->r4 : Collection, Symbol(r4, Decl(genericFunctionsWithOptionalParameters3.ts, 10, 3)) +>r4 : Collection >utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return new Date() }) : Collection ->utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) ->mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->c : Collection, Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) +>utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>utils : Utils +>mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>c : Collection >(x: string) => { return 1 } : (x: string) => number ->x : string, Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 10, 29)) +>x : string >1 : number >(y: number) => { return new Date() } : (y: number) => Date ->y : number, Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 10, 58)) +>y : number >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor var f1 = (x: string) => { return 1 }; ->f1 : (x: string) => number, Symbol(f1, Decl(genericFunctionsWithOptionalParameters3.ts, 11, 3)) +>f1 : (x: string) => number >(x: string) => { return 1 } : (x: string) => number ->x : string, Symbol(x, Decl(genericFunctionsWithOptionalParameters3.ts, 11, 10)) +>x : string >1 : number var f2 = (y: number) => { return new Date() }; ->f2 : (y: number) => Date, Symbol(f2, Decl(genericFunctionsWithOptionalParameters3.ts, 12, 3)) +>f2 : (y: number) => Date >(y: number) => { return new Date() } : (y: number) => Date ->y : number, Symbol(y, Decl(genericFunctionsWithOptionalParameters3.ts, 12, 10)) +>y : number >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor var r5 = utils.mapReduce(c, f1, f2); ->r5 : Collection, Symbol(r5, Decl(genericFunctionsWithOptionalParameters3.ts, 13, 3)) +>r5 : Collection >utils.mapReduce(c, f1, f2) : Collection ->utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->utils : Utils, Symbol(utils, Decl(genericFunctionsWithOptionalParameters3.ts, 7, 3)) ->mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection, Symbol(Utils.mapReduce, Decl(genericFunctionsWithOptionalParameters3.ts, 4, 75)) ->c : Collection, Symbol(c, Decl(genericFunctionsWithOptionalParameters3.ts, 8, 3)) ->f1 : (x: string) => number, Symbol(f1, Decl(genericFunctionsWithOptionalParameters3.ts, 11, 3)) ->f2 : (y: number) => Date, Symbol(f2, Decl(genericFunctionsWithOptionalParameters3.ts, 12, 3)) +>utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>utils : Utils +>mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection +>c : Collection +>f1 : (x: string) => number +>f2 : (y: number) => Date diff --git a/tests/baselines/reference/genericImplements.symbols b/tests/baselines/reference/genericImplements.symbols new file mode 100644 index 0000000000000..b3bffdc1b6da9 --- /dev/null +++ b/tests/baselines/reference/genericImplements.symbols @@ -0,0 +1,60 @@ +=== tests/cases/compiler/genericImplements.ts === +class A { a; }; +>A : Symbol(A, Decl(genericImplements.ts, 0, 0)) +>a : Symbol(a, Decl(genericImplements.ts, 0, 9)) + +class B { b; }; +>B : Symbol(B, Decl(genericImplements.ts, 0, 15)) +>b : Symbol(b, Decl(genericImplements.ts, 1, 9)) + +interface I { +>I : Symbol(I, Decl(genericImplements.ts, 1, 15)) + + f(): T; +>f : Symbol(f, Decl(genericImplements.ts, 2, 13)) +>T : Symbol(T, Decl(genericImplements.ts, 3, 6)) +>A : Symbol(A, Decl(genericImplements.ts, 0, 0)) +>T : Symbol(T, Decl(genericImplements.ts, 3, 6)) + +} // { f: () => { a; } } + +// OK +class X implements I { +>X : Symbol(X, Decl(genericImplements.ts, 4, 1)) +>I : Symbol(I, Decl(genericImplements.ts, 1, 15)) + + f(): T { return undefined; } +>f : Symbol(f, Decl(genericImplements.ts, 7, 22)) +>T : Symbol(T, Decl(genericImplements.ts, 8, 6)) +>B : Symbol(B, Decl(genericImplements.ts, 0, 15)) +>T : Symbol(T, Decl(genericImplements.ts, 8, 6)) +>undefined : Symbol(undefined) + +} // { f: () => { b; } } + +// OK +class Y implements I { +>Y : Symbol(Y, Decl(genericImplements.ts, 9, 1)) +>I : Symbol(I, Decl(genericImplements.ts, 1, 15)) + + f(): T { return undefined; } +>f : Symbol(f, Decl(genericImplements.ts, 12, 22)) +>T : Symbol(T, Decl(genericImplements.ts, 13, 6)) +>A : Symbol(A, Decl(genericImplements.ts, 0, 0)) +>T : Symbol(T, Decl(genericImplements.ts, 13, 6)) +>undefined : Symbol(undefined) + +} // { f: () => { a; } } + +// OK +class Z implements I { +>Z : Symbol(Z, Decl(genericImplements.ts, 14, 1)) +>I : Symbol(I, Decl(genericImplements.ts, 1, 15)) + + f(): T { return undefined; } +>f : Symbol(f, Decl(genericImplements.ts, 17, 22)) +>T : Symbol(T, Decl(genericImplements.ts, 18, 6)) +>T : Symbol(T, Decl(genericImplements.ts, 18, 6)) +>undefined : Symbol(undefined) + +} // { f: () => T } diff --git a/tests/baselines/reference/genericImplements.types b/tests/baselines/reference/genericImplements.types index 556532678f6ed..e96e46c81cbbc 100644 --- a/tests/baselines/reference/genericImplements.types +++ b/tests/baselines/reference/genericImplements.types @@ -1,60 +1,60 @@ === tests/cases/compiler/genericImplements.ts === class A { a; }; ->A : A, Symbol(A, Decl(genericImplements.ts, 0, 0)) ->a : any, Symbol(a, Decl(genericImplements.ts, 0, 9)) +>A : A +>a : any class B { b; }; ->B : B, Symbol(B, Decl(genericImplements.ts, 0, 15)) ->b : any, Symbol(b, Decl(genericImplements.ts, 1, 9)) +>B : B +>b : any interface I { ->I : I, Symbol(I, Decl(genericImplements.ts, 1, 15)) +>I : I f(): T; ->f : () => T, Symbol(f, Decl(genericImplements.ts, 2, 13)) ->T : T, Symbol(T, Decl(genericImplements.ts, 3, 6)) ->A : A, Symbol(A, Decl(genericImplements.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericImplements.ts, 3, 6)) +>f : () => T +>T : T +>A : A +>T : T } // { f: () => { a; } } // OK class X implements I { ->X : X, Symbol(X, Decl(genericImplements.ts, 4, 1)) ->I : I, Symbol(I, Decl(genericImplements.ts, 1, 15)) +>X : X +>I : I f(): T { return undefined; } ->f : () => T, Symbol(f, Decl(genericImplements.ts, 7, 22)) ->T : T, Symbol(T, Decl(genericImplements.ts, 8, 6)) ->B : B, Symbol(B, Decl(genericImplements.ts, 0, 15)) ->T : T, Symbol(T, Decl(genericImplements.ts, 8, 6)) ->undefined : undefined, Symbol(undefined) +>f : () => T +>T : T +>B : B +>T : T +>undefined : undefined } // { f: () => { b; } } // OK class Y implements I { ->Y : Y, Symbol(Y, Decl(genericImplements.ts, 9, 1)) ->I : I, Symbol(I, Decl(genericImplements.ts, 1, 15)) +>Y : Y +>I : I f(): T { return undefined; } ->f : () => T, Symbol(f, Decl(genericImplements.ts, 12, 22)) ->T : T, Symbol(T, Decl(genericImplements.ts, 13, 6)) ->A : A, Symbol(A, Decl(genericImplements.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericImplements.ts, 13, 6)) ->undefined : undefined, Symbol(undefined) +>f : () => T +>T : T +>A : A +>T : T +>undefined : undefined } // { f: () => { a; } } // OK class Z implements I { ->Z : Z, Symbol(Z, Decl(genericImplements.ts, 14, 1)) ->I : I, Symbol(I, Decl(genericImplements.ts, 1, 15)) +>Z : Z +>I : I f(): T { return undefined; } ->f : () => T, Symbol(f, Decl(genericImplements.ts, 17, 22)) ->T : T, Symbol(T, Decl(genericImplements.ts, 18, 6)) ->T : T, Symbol(T, Decl(genericImplements.ts, 18, 6)) ->undefined : undefined, Symbol(undefined) +>f : () => T +>T : T +>T : T +>undefined : undefined } // { f: () => T } diff --git a/tests/baselines/reference/genericInference1.symbols b/tests/baselines/reference/genericInference1.symbols new file mode 100644 index 0000000000000..6980668c6ebc1 --- /dev/null +++ b/tests/baselines/reference/genericInference1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/genericInference1.ts === +['a', 'b', 'c'].map(x => x.length); +>['a', 'b', 'c'].map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>x : Symbol(x, Decl(genericInference1.ts, 0, 20)) +>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : Symbol(x, Decl(genericInference1.ts, 0, 20)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + diff --git a/tests/baselines/reference/genericInference1.types b/tests/baselines/reference/genericInference1.types index 0a5924abea6e6..eeed8aa9f3ef1 100644 --- a/tests/baselines/reference/genericInference1.types +++ b/tests/baselines/reference/genericInference1.types @@ -1,15 +1,15 @@ === tests/cases/compiler/genericInference1.ts === ['a', 'b', 'c'].map(x => x.length); >['a', 'b', 'c'].map(x => x.length) : number[] ->['a', 'b', 'c'].map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>['a', 'b', 'c'].map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] >['a', 'b', 'c'] : string[] >'a' : string >'b' : string >'c' : string ->map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] >x => x.length : (x: string) => number ->x : string, Symbol(x, Decl(genericInference1.ts, 0, 20)) ->x.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->x : string, Symbol(x, Decl(genericInference1.ts, 0, 20)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x : string +>x.length : number +>x : string +>length : number diff --git a/tests/baselines/reference/genericInference2.symbols b/tests/baselines/reference/genericInference2.symbols new file mode 100644 index 0000000000000..83b371005f710 --- /dev/null +++ b/tests/baselines/reference/genericInference2.symbols @@ -0,0 +1,93 @@ +=== tests/cases/compiler/genericInference2.ts === + declare module ko { +>ko : Symbol(ko, Decl(genericInference2.ts, 0, 0)) + + export interface Observable { +>Observable : Symbol(Observable, Decl(genericInference2.ts, 0, 23)) +>T : Symbol(T, Decl(genericInference2.ts, 1, 35)) + + (): T; +>T : Symbol(T, Decl(genericInference2.ts, 1, 35)) + + (value: T): any; +>value : Symbol(value, Decl(genericInference2.ts, 3, 12)) +>T : Symbol(T, Decl(genericInference2.ts, 1, 35)) + + N: number; +>N : Symbol(N, Decl(genericInference2.ts, 3, 27)) + + g: boolean; +>g : Symbol(g, Decl(genericInference2.ts, 4, 21)) + + r: T; +>r : Symbol(r, Decl(genericInference2.ts, 5, 22)) +>T : Symbol(T, Decl(genericInference2.ts, 1, 35)) + } + export function observable(value: T): Observable; +>observable : Symbol(observable, Decl(genericInference2.ts, 7, 8)) +>T : Symbol(T, Decl(genericInference2.ts, 8, 34)) +>value : Symbol(value, Decl(genericInference2.ts, 8, 37)) +>T : Symbol(T, Decl(genericInference2.ts, 8, 34)) +>Observable : Symbol(Observable, Decl(genericInference2.ts, 0, 23)) +>T : Symbol(T, Decl(genericInference2.ts, 8, 34)) + } + var o = { +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) + + name: ko.observable("Bob"), +>name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>ko.observable : Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) +>ko : Symbol(ko, Decl(genericInference2.ts, 0, 0)) +>observable : Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) + + age: ko.observable(37) +>age : Symbol(age, Decl(genericInference2.ts, 11, 34)) +>ko.observable : Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) +>ko : Symbol(ko, Decl(genericInference2.ts, 0, 0)) +>observable : Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) + + }; + var x_v = o.name().length; // should be 'number' +>x_v : Symbol(x_v, Decl(genericInference2.ts, 14, 7)) +>o.name().length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>o.name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) +>name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + + var age_v = o.age(); // should be 'number' +>age_v : Symbol(age_v, Decl(genericInference2.ts, 15, 7)) +>o.age : Symbol(age, Decl(genericInference2.ts, 11, 34)) +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) +>age : Symbol(age, Decl(genericInference2.ts, 11, 34)) + + var name_v = o.name("Robert"); // should be 'any' +>name_v : Symbol(name_v, Decl(genericInference2.ts, 16, 7)) +>o.name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) +>name : Symbol(name, Decl(genericInference2.ts, 10, 13)) + + var zz_v = o.name.N; // should be 'number' +>zz_v : Symbol(zz_v, Decl(genericInference2.ts, 17, 7)) +>o.name.N : Symbol(ko.Observable.N, Decl(genericInference2.ts, 3, 27)) +>o.name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) +>name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>N : Symbol(ko.Observable.N, Decl(genericInference2.ts, 3, 27)) + + var yy_v = o.name.g; // should be 'boolean' +>yy_v : Symbol(yy_v, Decl(genericInference2.ts, 18, 7)) +>o.name.g : Symbol(ko.Observable.g, Decl(genericInference2.ts, 4, 21)) +>o.name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) +>name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>g : Symbol(ko.Observable.g, Decl(genericInference2.ts, 4, 21)) + + var rr_v = o.name.r; // should be 'string' +>rr_v : Symbol(rr_v, Decl(genericInference2.ts, 19, 7)) +>o.name.r : Symbol(ko.Observable.r, Decl(genericInference2.ts, 5, 22)) +>o.name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>o : Symbol(o, Decl(genericInference2.ts, 10, 7)) +>name : Symbol(name, Decl(genericInference2.ts, 10, 13)) +>r : Symbol(ko.Observable.r, Decl(genericInference2.ts, 5, 22)) + diff --git a/tests/baselines/reference/genericInference2.types b/tests/baselines/reference/genericInference2.types index d29ed3315f8e4..e5c7052b0db4c 100644 --- a/tests/baselines/reference/genericInference2.types +++ b/tests/baselines/reference/genericInference2.types @@ -1,102 +1,102 @@ === tests/cases/compiler/genericInference2.ts === declare module ko { ->ko : typeof ko, Symbol(ko, Decl(genericInference2.ts, 0, 0)) +>ko : typeof ko export interface Observable { ->Observable : Observable, Symbol(Observable, Decl(genericInference2.ts, 0, 23)) ->T : T, Symbol(T, Decl(genericInference2.ts, 1, 35)) +>Observable : Observable +>T : T (): T; ->T : T, Symbol(T, Decl(genericInference2.ts, 1, 35)) +>T : T (value: T): any; ->value : T, Symbol(value, Decl(genericInference2.ts, 3, 12)) ->T : T, Symbol(T, Decl(genericInference2.ts, 1, 35)) +>value : T +>T : T N: number; ->N : number, Symbol(N, Decl(genericInference2.ts, 3, 27)) +>N : number g: boolean; ->g : boolean, Symbol(g, Decl(genericInference2.ts, 4, 21)) +>g : boolean r: T; ->r : T, Symbol(r, Decl(genericInference2.ts, 5, 22)) ->T : T, Symbol(T, Decl(genericInference2.ts, 1, 35)) +>r : T +>T : T } export function observable(value: T): Observable; ->observable : (value: T) => Observable, Symbol(observable, Decl(genericInference2.ts, 7, 8)) ->T : T, Symbol(T, Decl(genericInference2.ts, 8, 34)) ->value : T, Symbol(value, Decl(genericInference2.ts, 8, 37)) ->T : T, Symbol(T, Decl(genericInference2.ts, 8, 34)) ->Observable : Observable, Symbol(Observable, Decl(genericInference2.ts, 0, 23)) ->T : T, Symbol(T, Decl(genericInference2.ts, 8, 34)) +>observable : (value: T) => Observable +>T : T +>value : T +>T : T +>Observable : Observable +>T : T } var o = { ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) +>o : { name: ko.Observable; age: ko.Observable; } >{ name: ko.observable("Bob"), age: ko.observable(37) } : { name: ko.Observable; age: ko.Observable; } name: ko.observable("Bob"), ->name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) +>name : ko.Observable >ko.observable("Bob") : ko.Observable ->ko.observable : (value: T) => ko.Observable, Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) ->ko : typeof ko, Symbol(ko, Decl(genericInference2.ts, 0, 0)) ->observable : (value: T) => ko.Observable, Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) +>ko.observable : (value: T) => ko.Observable +>ko : typeof ko +>observable : (value: T) => ko.Observable >"Bob" : string age: ko.observable(37) ->age : ko.Observable, Symbol(age, Decl(genericInference2.ts, 11, 34)) +>age : ko.Observable >ko.observable(37) : ko.Observable ->ko.observable : (value: T) => ko.Observable, Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) ->ko : typeof ko, Symbol(ko, Decl(genericInference2.ts, 0, 0)) ->observable : (value: T) => ko.Observable, Symbol(ko.observable, Decl(genericInference2.ts, 7, 8)) +>ko.observable : (value: T) => ko.Observable +>ko : typeof ko +>observable : (value: T) => ko.Observable >37 : number }; var x_v = o.name().length; // should be 'number' ->x_v : number, Symbol(x_v, Decl(genericInference2.ts, 14, 7)) ->o.name().length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>x_v : number +>o.name().length : number >o.name() : string ->o.name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) ->name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>o.name : ko.Observable +>o : { name: ko.Observable; age: ko.Observable; } +>name : ko.Observable +>length : number var age_v = o.age(); // should be 'number' ->age_v : number, Symbol(age_v, Decl(genericInference2.ts, 15, 7)) +>age_v : number >o.age() : number ->o.age : ko.Observable, Symbol(age, Decl(genericInference2.ts, 11, 34)) ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) ->age : ko.Observable, Symbol(age, Decl(genericInference2.ts, 11, 34)) +>o.age : ko.Observable +>o : { name: ko.Observable; age: ko.Observable; } +>age : ko.Observable var name_v = o.name("Robert"); // should be 'any' ->name_v : any, Symbol(name_v, Decl(genericInference2.ts, 16, 7)) +>name_v : any >o.name("Robert") : any ->o.name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) ->name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) +>o.name : ko.Observable +>o : { name: ko.Observable; age: ko.Observable; } +>name : ko.Observable >"Robert" : string var zz_v = o.name.N; // should be 'number' ->zz_v : number, Symbol(zz_v, Decl(genericInference2.ts, 17, 7)) ->o.name.N : number, Symbol(ko.Observable.N, Decl(genericInference2.ts, 3, 27)) ->o.name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) ->name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->N : number, Symbol(ko.Observable.N, Decl(genericInference2.ts, 3, 27)) +>zz_v : number +>o.name.N : number +>o.name : ko.Observable +>o : { name: ko.Observable; age: ko.Observable; } +>name : ko.Observable +>N : number var yy_v = o.name.g; // should be 'boolean' ->yy_v : boolean, Symbol(yy_v, Decl(genericInference2.ts, 18, 7)) ->o.name.g : boolean, Symbol(ko.Observable.g, Decl(genericInference2.ts, 4, 21)) ->o.name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) ->name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->g : boolean, Symbol(ko.Observable.g, Decl(genericInference2.ts, 4, 21)) +>yy_v : boolean +>o.name.g : boolean +>o.name : ko.Observable +>o : { name: ko.Observable; age: ko.Observable; } +>name : ko.Observable +>g : boolean var rr_v = o.name.r; // should be 'string' ->rr_v : string, Symbol(rr_v, Decl(genericInference2.ts, 19, 7)) ->o.name.r : string, Symbol(ko.Observable.r, Decl(genericInference2.ts, 5, 22)) ->o.name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->o : { name: ko.Observable; age: ko.Observable; }, Symbol(o, Decl(genericInference2.ts, 10, 7)) ->name : ko.Observable, Symbol(name, Decl(genericInference2.ts, 10, 13)) ->r : string, Symbol(ko.Observable.r, Decl(genericInference2.ts, 5, 22)) +>rr_v : string +>o.name.r : string +>o.name : ko.Observable +>o : { name: ko.Observable; age: ko.Observable; } +>name : ko.Observable +>r : string diff --git a/tests/baselines/reference/genericInstanceOf.symbols b/tests/baselines/reference/genericInstanceOf.symbols new file mode 100644 index 0000000000000..c163672489217 --- /dev/null +++ b/tests/baselines/reference/genericInstanceOf.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/genericInstanceOf.ts === +interface F { +>F : Symbol(F, Decl(genericInstanceOf.ts, 0, 0)) + + (): number; +} + +class C { +>C : Symbol(C, Decl(genericInstanceOf.ts, 2, 1)) +>T : Symbol(T, Decl(genericInstanceOf.ts, 4, 8)) + + constructor(public a: T, public b: F) {} +>a : Symbol(a, Decl(genericInstanceOf.ts, 5, 16)) +>T : Symbol(T, Decl(genericInstanceOf.ts, 4, 8)) +>b : Symbol(b, Decl(genericInstanceOf.ts, 5, 28)) +>F : Symbol(F, Decl(genericInstanceOf.ts, 0, 0)) + + foo() { +>foo : Symbol(foo, Decl(genericInstanceOf.ts, 5, 44)) + + if (this.a instanceof this.b) { +>this.a : Symbol(a, Decl(genericInstanceOf.ts, 5, 16)) +>this : Symbol(C, Decl(genericInstanceOf.ts, 2, 1)) +>a : Symbol(a, Decl(genericInstanceOf.ts, 5, 16)) +>this.b : Symbol(b, Decl(genericInstanceOf.ts, 5, 28)) +>this : Symbol(C, Decl(genericInstanceOf.ts, 2, 1)) +>b : Symbol(b, Decl(genericInstanceOf.ts, 5, 28)) + } + } +} diff --git a/tests/baselines/reference/genericInstanceOf.types b/tests/baselines/reference/genericInstanceOf.types index 8861f6dd8f9b6..726fa38fbf843 100644 --- a/tests/baselines/reference/genericInstanceOf.types +++ b/tests/baselines/reference/genericInstanceOf.types @@ -1,31 +1,31 @@ === tests/cases/compiler/genericInstanceOf.ts === interface F { ->F : F, Symbol(F, Decl(genericInstanceOf.ts, 0, 0)) +>F : F (): number; } class C { ->C : C, Symbol(C, Decl(genericInstanceOf.ts, 2, 1)) ->T : T, Symbol(T, Decl(genericInstanceOf.ts, 4, 8)) +>C : C +>T : T constructor(public a: T, public b: F) {} ->a : T, Symbol(a, Decl(genericInstanceOf.ts, 5, 16)) ->T : T, Symbol(T, Decl(genericInstanceOf.ts, 4, 8)) ->b : F, Symbol(b, Decl(genericInstanceOf.ts, 5, 28)) ->F : F, Symbol(F, Decl(genericInstanceOf.ts, 0, 0)) +>a : T +>T : T +>b : F +>F : F foo() { ->foo : () => void, Symbol(foo, Decl(genericInstanceOf.ts, 5, 44)) +>foo : () => void if (this.a instanceof this.b) { >this.a instanceof this.b : boolean ->this.a : T, Symbol(a, Decl(genericInstanceOf.ts, 5, 16)) ->this : C, Symbol(C, Decl(genericInstanceOf.ts, 2, 1)) ->a : T, Symbol(a, Decl(genericInstanceOf.ts, 5, 16)) ->this.b : F, Symbol(b, Decl(genericInstanceOf.ts, 5, 28)) ->this : C, Symbol(C, Decl(genericInstanceOf.ts, 2, 1)) ->b : F, Symbol(b, Decl(genericInstanceOf.ts, 5, 28)) +>this.a : T +>this : C +>a : T +>this.b : F +>this : C +>b : F } } } diff --git a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.symbols b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.symbols new file mode 100644 index 0000000000000..51579bad2d5de --- /dev/null +++ b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.symbols @@ -0,0 +1,62 @@ +=== tests/cases/conformance/types/namedTypes/genericInstantiationEquivalentToObjectLiteral.ts === +interface Pair { first: T1; second: T2; } +>Pair : Symbol(Pair, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 0)) +>T1 : Symbol(T1, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 15)) +>T2 : Symbol(T2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 18)) +>first : Symbol(first, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 24)) +>T1 : Symbol(T1, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 15)) +>second : Symbol(second, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 35)) +>T2 : Symbol(T2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 18)) + +var x: Pair +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) +>Pair : Symbol(Pair, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 0)) + +var y: { first: string; second: number; } +>y : Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) +>first : Symbol(first, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 8)) +>second : Symbol(second, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 23)) + +x = y; +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) +>y : Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) + +y = x; +>y : Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) + +declare function f(x: Pair); +>f : Symbol(f, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 5, 6)) +>T : Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 19)) +>U : Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 21)) +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 25)) +>Pair : Symbol(Pair, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 0)) +>T : Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 19)) +>U : Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 21)) + +declare function f2(x: { first: T; second: U; }); +>f2 : Symbol(f2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 40)) +>T : Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 20)) +>U : Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 22)) +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 26)) +>first : Symbol(first, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 30)) +>T : Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 20)) +>second : Symbol(second, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 40)) +>U : Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 22)) + +f(x); +>f : Symbol(f, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 5, 6)) +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) + +f(y); +>f : Symbol(f, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 5, 6)) +>y : Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) + +f2(x); +>f2 : Symbol(f2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 40)) +>x : Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) + +f2(y); +>f2 : Symbol(f2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 40)) +>y : Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) + diff --git a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types index 0a3af3d00855d..449c5712c6cd3 100644 --- a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types +++ b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types @@ -1,68 +1,68 @@ === tests/cases/conformance/types/namedTypes/genericInstantiationEquivalentToObjectLiteral.ts === interface Pair { first: T1; second: T2; } ->Pair : Pair, Symbol(Pair, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 0)) ->T1 : T1, Symbol(T1, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 15)) ->T2 : T2, Symbol(T2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 18)) ->first : T1, Symbol(first, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 24)) ->T1 : T1, Symbol(T1, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 15)) ->second : T2, Symbol(second, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 35)) ->T2 : T2, Symbol(T2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 18)) +>Pair : Pair +>T1 : T1 +>T2 : T2 +>first : T1 +>T1 : T1 +>second : T2 +>T2 : T2 var x: Pair ->x : Pair, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) ->Pair : Pair, Symbol(Pair, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 0)) +>x : Pair +>Pair : Pair var y: { first: string; second: number; } ->y : { first: string; second: number; }, Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) ->first : string, Symbol(first, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 8)) ->second : number, Symbol(second, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 23)) +>y : { first: string; second: number; } +>first : string +>second : number x = y; >x = y : { first: string; second: number; } ->x : Pair, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) ->y : { first: string; second: number; }, Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) +>x : Pair +>y : { first: string; second: number; } y = x; >y = x : Pair ->y : { first: string; second: number; }, Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) ->x : Pair, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) +>y : { first: string; second: number; } +>x : Pair declare function f(x: Pair); ->f : (x: Pair) => any, Symbol(f, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 5, 6)) ->T : T, Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 19)) ->U : U, Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 21)) ->x : Pair, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 25)) ->Pair : Pair, Symbol(Pair, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 19)) ->U : U, Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 21)) +>f : (x: Pair) => any +>T : T +>U : U +>x : Pair +>Pair : Pair +>T : T +>U : U declare function f2(x: { first: T; second: U; }); ->f2 : (x: { first: T; second: U; }) => any, Symbol(f2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 40)) ->T : T, Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 20)) ->U : U, Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 22)) ->x : { first: T; second: U; }, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 26)) ->first : T, Symbol(first, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 30)) ->T : T, Symbol(T, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 20)) ->second : U, Symbol(second, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 40)) ->U : U, Symbol(U, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 8, 22)) +>f2 : (x: { first: T; second: U; }) => any +>T : T +>U : U +>x : { first: T; second: U; } +>first : T +>T : T +>second : U +>U : U f(x); >f(x) : any ->f : (x: Pair) => any, Symbol(f, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 5, 6)) ->x : Pair, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) +>f : (x: Pair) => any +>x : Pair f(y); >f(y) : any ->f : (x: Pair) => any, Symbol(f, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 5, 6)) ->y : { first: string; second: number; }, Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) +>f : (x: Pair) => any +>y : { first: string; second: number; } f2(x); >f2(x) : any ->f2 : (x: { first: T; second: U; }) => any, Symbol(f2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 40)) ->x : Pair, Symbol(x, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 1, 3)) +>f2 : (x: { first: T; second: U; }) => any +>x : Pair f2(y); >f2(y) : any ->f2 : (x: { first: T; second: U; }) => any, Symbol(f2, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 7, 40)) ->y : { first: string; second: number; }, Symbol(y, Decl(genericInstantiationEquivalentToObjectLiteral.ts, 2, 3)) +>f2 : (x: { first: T; second: U; }) => any +>y : { first: string; second: number; } diff --git a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.symbols b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.symbols new file mode 100644 index 0000000000000..b204a252a10c5 --- /dev/null +++ b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts === +export interface IFoo { } +>IFoo : Symbol(IFoo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 0)) +>A : Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 22)) + +export function foo(fn: (ifoo: IFoo) => void) { +>foo : Symbol(foo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 28)) +>A : Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 20)) +>fn : Symbol(fn, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 23)) +>ifoo : Symbol(ifoo, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 28)) +>IFoo : Symbol(IFoo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 0)) +>A : Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 20)) + + foo(fn); // Invocation is necessary to repro (!) +>foo : Symbol(foo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 28)) +>fn : Symbol(fn, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 23)) +} + + + diff --git a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types index 0203d38af1ae3..f262fda55f6c2 100644 --- a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types +++ b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types @@ -1,20 +1,20 @@ === tests/cases/compiler/genericInterfaceFunctionTypeParameter.ts === export interface IFoo { } ->IFoo : IFoo, Symbol(IFoo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 0)) ->A : A, Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 22)) +>IFoo : IFoo +>A : A export function foo(fn: (ifoo: IFoo) => void) { ->foo : (fn: (ifoo: IFoo) => void) => void, Symbol(foo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 28)) ->A : A, Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 20)) ->fn : (ifoo: IFoo) => void, Symbol(fn, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 23)) ->ifoo : IFoo, Symbol(ifoo, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 28)) ->IFoo : IFoo, Symbol(IFoo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 0)) ->A : A, Symbol(A, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 20)) +>foo : (fn: (ifoo: IFoo) => void) => void +>A : A +>fn : (ifoo: IFoo) => void +>ifoo : IFoo +>IFoo : IFoo +>A : A foo(fn); // Invocation is necessary to repro (!) >foo(fn) : void ->foo : (fn: (ifoo: IFoo) => void) => void, Symbol(foo, Decl(genericInterfaceFunctionTypeParameter.ts, 0, 28)) ->fn : (ifoo: IFoo) => void, Symbol(fn, Decl(genericInterfaceFunctionTypeParameter.ts, 1, 23)) +>foo : (fn: (ifoo: IFoo) => void) => void +>fn : (ifoo: IFoo) => void } diff --git a/tests/baselines/reference/genericInterfaceImplementation.symbols b/tests/baselines/reference/genericInterfaceImplementation.symbols new file mode 100644 index 0000000000000..5816396081fbb --- /dev/null +++ b/tests/baselines/reference/genericInterfaceImplementation.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/genericInterfaceImplementation.ts === +interface IOption { +>IOption : Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) +>A : Symbol(A, Decl(genericInterfaceImplementation.ts, 0, 18)) + + get(): A; +>get : Symbol(get, Decl(genericInterfaceImplementation.ts, 0, 22)) +>A : Symbol(A, Decl(genericInterfaceImplementation.ts, 0, 18)) + + flatten(): IOption; +>flatten : Symbol(flatten, Decl(genericInterfaceImplementation.ts, 1, 13)) +>B : Symbol(B, Decl(genericInterfaceImplementation.ts, 3, 12)) +>IOption : Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) +>B : Symbol(B, Decl(genericInterfaceImplementation.ts, 3, 12)) +} + +class None implements IOption{ +>None : Symbol(None, Decl(genericInterfaceImplementation.ts, 4, 1)) +>T : Symbol(T, Decl(genericInterfaceImplementation.ts, 6, 11)) +>IOption : Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) +>T : Symbol(T, Decl(genericInterfaceImplementation.ts, 6, 11)) + + get(): T { +>get : Symbol(get, Decl(genericInterfaceImplementation.ts, 6, 36)) +>T : Symbol(T, Decl(genericInterfaceImplementation.ts, 6, 11)) + + throw null; + } + + flatten() : IOption { +>flatten : Symbol(flatten, Decl(genericInterfaceImplementation.ts, 9, 5)) +>U : Symbol(U, Decl(genericInterfaceImplementation.ts, 11, 12)) +>IOption : Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) +>U : Symbol(U, Decl(genericInterfaceImplementation.ts, 11, 12)) + + return new None(); +>None : Symbol(None, Decl(genericInterfaceImplementation.ts, 4, 1)) +>U : Symbol(U, Decl(genericInterfaceImplementation.ts, 11, 12)) + } +} + diff --git a/tests/baselines/reference/genericInterfaceImplementation.types b/tests/baselines/reference/genericInterfaceImplementation.types index 89d694b9c2c9f..d7ca48c36c059 100644 --- a/tests/baselines/reference/genericInterfaceImplementation.types +++ b/tests/baselines/reference/genericInterfaceImplementation.types @@ -1,43 +1,43 @@ === tests/cases/compiler/genericInterfaceImplementation.ts === interface IOption { ->IOption : IOption, Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) ->A : A, Symbol(A, Decl(genericInterfaceImplementation.ts, 0, 18)) +>IOption : IOption +>A : A get(): A; ->get : () => A, Symbol(get, Decl(genericInterfaceImplementation.ts, 0, 22)) ->A : A, Symbol(A, Decl(genericInterfaceImplementation.ts, 0, 18)) +>get : () => A +>A : A flatten(): IOption; ->flatten : () => IOption, Symbol(flatten, Decl(genericInterfaceImplementation.ts, 1, 13)) ->B : B, Symbol(B, Decl(genericInterfaceImplementation.ts, 3, 12)) ->IOption : IOption, Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) ->B : B, Symbol(B, Decl(genericInterfaceImplementation.ts, 3, 12)) +>flatten : () => IOption +>B : B +>IOption : IOption +>B : B } class None implements IOption{ ->None : None, Symbol(None, Decl(genericInterfaceImplementation.ts, 4, 1)) ->T : T, Symbol(T, Decl(genericInterfaceImplementation.ts, 6, 11)) ->IOption : IOption, Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericInterfaceImplementation.ts, 6, 11)) +>None : None +>T : T +>IOption : IOption +>T : T get(): T { ->get : () => T, Symbol(get, Decl(genericInterfaceImplementation.ts, 6, 36)) ->T : T, Symbol(T, Decl(genericInterfaceImplementation.ts, 6, 11)) +>get : () => T +>T : T throw null; >null : null } flatten() : IOption { ->flatten : () => IOption, Symbol(flatten, Decl(genericInterfaceImplementation.ts, 9, 5)) ->U : U, Symbol(U, Decl(genericInterfaceImplementation.ts, 11, 12)) ->IOption : IOption, Symbol(IOption, Decl(genericInterfaceImplementation.ts, 0, 0)) ->U : U, Symbol(U, Decl(genericInterfaceImplementation.ts, 11, 12)) +>flatten : () => IOption +>U : U +>IOption : IOption +>U : U return new None(); >new None() : None ->None : typeof None, Symbol(None, Decl(genericInterfaceImplementation.ts, 4, 1)) ->U : U, Symbol(U, Decl(genericInterfaceImplementation.ts, 11, 12)) +>None : typeof None +>U : U } } diff --git a/tests/baselines/reference/genericInterfaceTypeCall.symbols b/tests/baselines/reference/genericInterfaceTypeCall.symbols new file mode 100644 index 0000000000000..e28ce8f8d80fe --- /dev/null +++ b/tests/baselines/reference/genericInterfaceTypeCall.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/genericInterfaceTypeCall.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(genericInterfaceTypeCall.ts, 0, 0)) +>T : Symbol(T, Decl(genericInterfaceTypeCall.ts, 0, 14)) + + reject(arg: T): void; +>reject : Symbol(reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 1, 11)) +>T : Symbol(T, Decl(genericInterfaceTypeCall.ts, 0, 14)) +} +var foo: Foo +>foo : Symbol(foo, Decl(genericInterfaceTypeCall.ts, 3, 3)) +>Foo : Symbol(Foo, Decl(genericInterfaceTypeCall.ts, 0, 0)) + +interface bar { +>bar : Symbol(bar, Decl(genericInterfaceTypeCall.ts, 3, 20)) +>T : Symbol(T, Decl(genericInterfaceTypeCall.ts, 5, 14)) + + fail(func: (arg: T) => void ): void; +>fail : Symbol(fail, Decl(genericInterfaceTypeCall.ts, 5, 18)) +>func : Symbol(func, Decl(genericInterfaceTypeCall.ts, 6, 9)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 6, 16)) +>T : Symbol(T, Decl(genericInterfaceTypeCall.ts, 5, 14)) + + fail2(func2: { (arg: T): void; }): void; +>fail2 : Symbol(fail2, Decl(genericInterfaceTypeCall.ts, 6, 40)) +>func2 : Symbol(func2, Decl(genericInterfaceTypeCall.ts, 7, 10)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 7, 20)) +>T : Symbol(T, Decl(genericInterfaceTypeCall.ts, 5, 14)) +} +var test: bar; +>test : Symbol(test, Decl(genericInterfaceTypeCall.ts, 9, 3)) +>bar : Symbol(bar, Decl(genericInterfaceTypeCall.ts, 3, 20)) + +test.fail(arg => foo.reject(arg)); +>test.fail : Symbol(bar.fail, Decl(genericInterfaceTypeCall.ts, 5, 18)) +>test : Symbol(test, Decl(genericInterfaceTypeCall.ts, 9, 3)) +>fail : Symbol(bar.fail, Decl(genericInterfaceTypeCall.ts, 5, 18)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 11, 10)) +>foo.reject : Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) +>foo : Symbol(foo, Decl(genericInterfaceTypeCall.ts, 3, 3)) +>reject : Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 11, 10)) + +test.fail2(arg => foo.reject(arg)); // Error: Supplied parameters do not match any signature of call target +>test.fail2 : Symbol(bar.fail2, Decl(genericInterfaceTypeCall.ts, 6, 40)) +>test : Symbol(test, Decl(genericInterfaceTypeCall.ts, 9, 3)) +>fail2 : Symbol(bar.fail2, Decl(genericInterfaceTypeCall.ts, 6, 40)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 12, 11)) +>foo.reject : Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) +>foo : Symbol(foo, Decl(genericInterfaceTypeCall.ts, 3, 3)) +>reject : Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) +>arg : Symbol(arg, Decl(genericInterfaceTypeCall.ts, 12, 11)) + diff --git a/tests/baselines/reference/genericInterfaceTypeCall.types b/tests/baselines/reference/genericInterfaceTypeCall.types index 829cfb8267d95..fcf64fac066ef 100644 --- a/tests/baselines/reference/genericInterfaceTypeCall.types +++ b/tests/baselines/reference/genericInterfaceTypeCall.types @@ -1,60 +1,60 @@ === tests/cases/compiler/genericInterfaceTypeCall.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(genericInterfaceTypeCall.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericInterfaceTypeCall.ts, 0, 14)) +>Foo : Foo +>T : T reject(arg: T): void; ->reject : (arg: T) => void, Symbol(reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) ->arg : T, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 1, 11)) ->T : T, Symbol(T, Decl(genericInterfaceTypeCall.ts, 0, 14)) +>reject : (arg: T) => void +>arg : T +>T : T } var foo: Foo ->foo : Foo, Symbol(foo, Decl(genericInterfaceTypeCall.ts, 3, 3)) ->Foo : Foo, Symbol(Foo, Decl(genericInterfaceTypeCall.ts, 0, 0)) +>foo : Foo +>Foo : Foo interface bar { ->bar : bar, Symbol(bar, Decl(genericInterfaceTypeCall.ts, 3, 20)) ->T : T, Symbol(T, Decl(genericInterfaceTypeCall.ts, 5, 14)) +>bar : bar +>T : T fail(func: (arg: T) => void ): void; ->fail : (func: (arg: T) => void) => void, Symbol(fail, Decl(genericInterfaceTypeCall.ts, 5, 18)) ->func : (arg: T) => void, Symbol(func, Decl(genericInterfaceTypeCall.ts, 6, 9)) ->arg : T, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 6, 16)) ->T : T, Symbol(T, Decl(genericInterfaceTypeCall.ts, 5, 14)) +>fail : (func: (arg: T) => void) => void +>func : (arg: T) => void +>arg : T +>T : T fail2(func2: { (arg: T): void; }): void; ->fail2 : (func2: (arg: T) => void) => void, Symbol(fail2, Decl(genericInterfaceTypeCall.ts, 6, 40)) ->func2 : (arg: T) => void, Symbol(func2, Decl(genericInterfaceTypeCall.ts, 7, 10)) ->arg : T, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 7, 20)) ->T : T, Symbol(T, Decl(genericInterfaceTypeCall.ts, 5, 14)) +>fail2 : (func2: (arg: T) => void) => void +>func2 : (arg: T) => void +>arg : T +>T : T } var test: bar; ->test : bar, Symbol(test, Decl(genericInterfaceTypeCall.ts, 9, 3)) ->bar : bar, Symbol(bar, Decl(genericInterfaceTypeCall.ts, 3, 20)) +>test : bar +>bar : bar test.fail(arg => foo.reject(arg)); >test.fail(arg => foo.reject(arg)) : void ->test.fail : (func: (arg: string) => void) => void, Symbol(bar.fail, Decl(genericInterfaceTypeCall.ts, 5, 18)) ->test : bar, Symbol(test, Decl(genericInterfaceTypeCall.ts, 9, 3)) ->fail : (func: (arg: string) => void) => void, Symbol(bar.fail, Decl(genericInterfaceTypeCall.ts, 5, 18)) +>test.fail : (func: (arg: string) => void) => void +>test : bar +>fail : (func: (arg: string) => void) => void >arg => foo.reject(arg) : (arg: string) => void ->arg : string, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 11, 10)) +>arg : string >foo.reject(arg) : void ->foo.reject : (arg: string) => void, Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) ->foo : Foo, Symbol(foo, Decl(genericInterfaceTypeCall.ts, 3, 3)) ->reject : (arg: string) => void, Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) ->arg : string, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 11, 10)) +>foo.reject : (arg: string) => void +>foo : Foo +>reject : (arg: string) => void +>arg : string test.fail2(arg => foo.reject(arg)); // Error: Supplied parameters do not match any signature of call target >test.fail2(arg => foo.reject(arg)) : void ->test.fail2 : (func2: (arg: string) => void) => void, Symbol(bar.fail2, Decl(genericInterfaceTypeCall.ts, 6, 40)) ->test : bar, Symbol(test, Decl(genericInterfaceTypeCall.ts, 9, 3)) ->fail2 : (func2: (arg: string) => void) => void, Symbol(bar.fail2, Decl(genericInterfaceTypeCall.ts, 6, 40)) +>test.fail2 : (func2: (arg: string) => void) => void +>test : bar +>fail2 : (func2: (arg: string) => void) => void >arg => foo.reject(arg) : (arg: string) => void ->arg : string, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 12, 11)) +>arg : string >foo.reject(arg) : void ->foo.reject : (arg: string) => void, Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) ->foo : Foo, Symbol(foo, Decl(genericInterfaceTypeCall.ts, 3, 3)) ->reject : (arg: string) => void, Symbol(Foo.reject, Decl(genericInterfaceTypeCall.ts, 0, 18)) ->arg : string, Symbol(arg, Decl(genericInterfaceTypeCall.ts, 12, 11)) +>foo.reject : (arg: string) => void +>foo : Foo +>reject : (arg: string) => void +>arg : string diff --git a/tests/baselines/reference/genericMethodOverspecialization.symbols b/tests/baselines/reference/genericMethodOverspecialization.symbols new file mode 100644 index 0000000000000..651aced0fcdc0 --- /dev/null +++ b/tests/baselines/reference/genericMethodOverspecialization.symbols @@ -0,0 +1,72 @@ +=== tests/cases/compiler/genericMethodOverspecialization.ts === +var names = ["list", "table1", "table2", "table3", "summary"]; +>names : Symbol(names, Decl(genericMethodOverspecialization.ts, 0, 3)) + +interface HTMLElement { +>HTMLElement : Symbol(HTMLElement, Decl(genericMethodOverspecialization.ts, 0, 62)) + + clientWidth: number; +>clientWidth : Symbol(clientWidth, Decl(genericMethodOverspecialization.ts, 2, 23)) + + isDisabled: boolean; +>isDisabled : Symbol(isDisabled, Decl(genericMethodOverspecialization.ts, 3, 24)) +} + +declare var document: Document; +>document : Symbol(document, Decl(genericMethodOverspecialization.ts, 7, 11)) +>Document : Symbol(Document, Decl(genericMethodOverspecialization.ts, 7, 31)) + +interface Document { +>Document : Symbol(Document, Decl(genericMethodOverspecialization.ts, 7, 31)) + + getElementById(elementId: string): HTMLElement; +>getElementById : Symbol(getElementById, Decl(genericMethodOverspecialization.ts, 8, 20)) +>elementId : Symbol(elementId, Decl(genericMethodOverspecialization.ts, 9, 19)) +>HTMLElement : Symbol(HTMLElement, Decl(genericMethodOverspecialization.ts, 0, 62)) +} + +var elements = names.map(function (name) { +>elements : Symbol(elements, Decl(genericMethodOverspecialization.ts, 12, 3)) +>names.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>names : Symbol(names, Decl(genericMethodOverspecialization.ts, 0, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>name : Symbol(name, Decl(genericMethodOverspecialization.ts, 12, 35)) + + return document.getElementById(name); +>document.getElementById : Symbol(Document.getElementById, Decl(genericMethodOverspecialization.ts, 8, 20)) +>document : Symbol(document, Decl(genericMethodOverspecialization.ts, 7, 11)) +>getElementById : Symbol(Document.getElementById, Decl(genericMethodOverspecialization.ts, 8, 20)) +>name : Symbol(name, Decl(genericMethodOverspecialization.ts, 12, 35)) + +}); + + +var xxx = elements.filter(function (e) { +>xxx : Symbol(xxx, Decl(genericMethodOverspecialization.ts, 17, 3)) +>elements.filter : Symbol(Array.filter, Decl(lib.d.ts, 1122, 87)) +>elements : Symbol(elements, Decl(genericMethodOverspecialization.ts, 12, 3)) +>filter : Symbol(Array.filter, Decl(lib.d.ts, 1122, 87)) +>e : Symbol(e, Decl(genericMethodOverspecialization.ts, 17, 36)) + + return !e.isDisabled; +>e.isDisabled : Symbol(HTMLElement.isDisabled, Decl(genericMethodOverspecialization.ts, 3, 24)) +>e : Symbol(e, Decl(genericMethodOverspecialization.ts, 17, 36)) +>isDisabled : Symbol(HTMLElement.isDisabled, Decl(genericMethodOverspecialization.ts, 3, 24)) + +}); + +var widths:number[] = elements.map(function (e) { // should not error +>widths : Symbol(widths, Decl(genericMethodOverspecialization.ts, 21, 3)) +>elements.map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>elements : Symbol(elements, Decl(genericMethodOverspecialization.ts, 12, 3)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>e : Symbol(e, Decl(genericMethodOverspecialization.ts, 21, 45)) + + return e.clientWidth; +>e.clientWidth : Symbol(HTMLElement.clientWidth, Decl(genericMethodOverspecialization.ts, 2, 23)) +>e : Symbol(e, Decl(genericMethodOverspecialization.ts, 21, 45)) +>clientWidth : Symbol(HTMLElement.clientWidth, Decl(genericMethodOverspecialization.ts, 2, 23)) + +}); + + diff --git a/tests/baselines/reference/genericMethodOverspecialization.types b/tests/baselines/reference/genericMethodOverspecialization.types index d3d1a51a0c6fa..0ad302da94e9e 100644 --- a/tests/baselines/reference/genericMethodOverspecialization.types +++ b/tests/baselines/reference/genericMethodOverspecialization.types @@ -1,6 +1,6 @@ === tests/cases/compiler/genericMethodOverspecialization.ts === var names = ["list", "table1", "table2", "table3", "summary"]; ->names : string[], Symbol(names, Decl(genericMethodOverspecialization.ts, 0, 3)) +>names : string[] >["list", "table1", "table2", "table3", "summary"] : string[] >"list" : string >"table1" : string @@ -9,77 +9,77 @@ var names = ["list", "table1", "table2", "table3", "summary"]; >"summary" : string interface HTMLElement { ->HTMLElement : HTMLElement, Symbol(HTMLElement, Decl(genericMethodOverspecialization.ts, 0, 62)) +>HTMLElement : HTMLElement clientWidth: number; ->clientWidth : number, Symbol(clientWidth, Decl(genericMethodOverspecialization.ts, 2, 23)) +>clientWidth : number isDisabled: boolean; ->isDisabled : boolean, Symbol(isDisabled, Decl(genericMethodOverspecialization.ts, 3, 24)) +>isDisabled : boolean } declare var document: Document; ->document : Document, Symbol(document, Decl(genericMethodOverspecialization.ts, 7, 11)) ->Document : Document, Symbol(Document, Decl(genericMethodOverspecialization.ts, 7, 31)) +>document : Document +>Document : Document interface Document { ->Document : Document, Symbol(Document, Decl(genericMethodOverspecialization.ts, 7, 31)) +>Document : Document getElementById(elementId: string): HTMLElement; ->getElementById : (elementId: string) => HTMLElement, Symbol(getElementById, Decl(genericMethodOverspecialization.ts, 8, 20)) ->elementId : string, Symbol(elementId, Decl(genericMethodOverspecialization.ts, 9, 19)) ->HTMLElement : HTMLElement, Symbol(HTMLElement, Decl(genericMethodOverspecialization.ts, 0, 62)) +>getElementById : (elementId: string) => HTMLElement +>elementId : string +>HTMLElement : HTMLElement } var elements = names.map(function (name) { ->elements : HTMLElement[], Symbol(elements, Decl(genericMethodOverspecialization.ts, 12, 3)) +>elements : HTMLElement[] >names.map(function (name) { return document.getElementById(name);}) : HTMLElement[] ->names.map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->names : string[], Symbol(names, Decl(genericMethodOverspecialization.ts, 0, 3)) ->map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>names.map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] +>names : string[] +>map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] >function (name) { return document.getElementById(name);} : (name: string) => HTMLElement ->name : string, Symbol(name, Decl(genericMethodOverspecialization.ts, 12, 35)) +>name : string return document.getElementById(name); >document.getElementById(name) : HTMLElement ->document.getElementById : (elementId: string) => HTMLElement, Symbol(Document.getElementById, Decl(genericMethodOverspecialization.ts, 8, 20)) ->document : Document, Symbol(document, Decl(genericMethodOverspecialization.ts, 7, 11)) ->getElementById : (elementId: string) => HTMLElement, Symbol(Document.getElementById, Decl(genericMethodOverspecialization.ts, 8, 20)) ->name : string, Symbol(name, Decl(genericMethodOverspecialization.ts, 12, 35)) +>document.getElementById : (elementId: string) => HTMLElement +>document : Document +>getElementById : (elementId: string) => HTMLElement +>name : string }); var xxx = elements.filter(function (e) { ->xxx : HTMLElement[], Symbol(xxx, Decl(genericMethodOverspecialization.ts, 17, 3)) +>xxx : HTMLElement[] >elements.filter(function (e) { return !e.isDisabled;}) : HTMLElement[] ->elements.filter : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => boolean, thisArg?: any) => HTMLElement[], Symbol(Array.filter, Decl(lib.d.ts, 1122, 87)) ->elements : HTMLElement[], Symbol(elements, Decl(genericMethodOverspecialization.ts, 12, 3)) ->filter : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => boolean, thisArg?: any) => HTMLElement[], Symbol(Array.filter, Decl(lib.d.ts, 1122, 87)) +>elements.filter : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => boolean, thisArg?: any) => HTMLElement[] +>elements : HTMLElement[] +>filter : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => boolean, thisArg?: any) => HTMLElement[] >function (e) { return !e.isDisabled;} : (e: HTMLElement) => boolean ->e : HTMLElement, Symbol(e, Decl(genericMethodOverspecialization.ts, 17, 36)) +>e : HTMLElement return !e.isDisabled; >!e.isDisabled : boolean ->e.isDisabled : boolean, Symbol(HTMLElement.isDisabled, Decl(genericMethodOverspecialization.ts, 3, 24)) ->e : HTMLElement, Symbol(e, Decl(genericMethodOverspecialization.ts, 17, 36)) ->isDisabled : boolean, Symbol(HTMLElement.isDisabled, Decl(genericMethodOverspecialization.ts, 3, 24)) +>e.isDisabled : boolean +>e : HTMLElement +>isDisabled : boolean }); var widths:number[] = elements.map(function (e) { // should not error ->widths : number[], Symbol(widths, Decl(genericMethodOverspecialization.ts, 21, 3)) +>widths : number[] >elements.map(function (e) { // should not error return e.clientWidth;}) : number[] ->elements.map : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->elements : HTMLElement[], Symbol(elements, Decl(genericMethodOverspecialization.ts, 12, 3)) ->map : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>elements.map : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => U, thisArg?: any) => U[] +>elements : HTMLElement[] +>map : (callbackfn: (value: HTMLElement, index: number, array: HTMLElement[]) => U, thisArg?: any) => U[] >function (e) { // should not error return e.clientWidth;} : (e: HTMLElement) => number ->e : HTMLElement, Symbol(e, Decl(genericMethodOverspecialization.ts, 21, 45)) +>e : HTMLElement return e.clientWidth; ->e.clientWidth : number, Symbol(HTMLElement.clientWidth, Decl(genericMethodOverspecialization.ts, 2, 23)) ->e : HTMLElement, Symbol(e, Decl(genericMethodOverspecialization.ts, 21, 45)) ->clientWidth : number, Symbol(HTMLElement.clientWidth, Decl(genericMethodOverspecialization.ts, 2, 23)) +>e.clientWidth : number +>e : HTMLElement +>clientWidth : number }); diff --git a/tests/baselines/reference/genericObjectLitReturnType.symbols b/tests/baselines/reference/genericObjectLitReturnType.symbols new file mode 100644 index 0000000000000..f3253bdf81036 --- /dev/null +++ b/tests/baselines/reference/genericObjectLitReturnType.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/genericObjectLitReturnType.ts === +class X +>X : Symbol(X, Decl(genericObjectLitReturnType.ts, 0, 0)) +>T : Symbol(T, Decl(genericObjectLitReturnType.ts, 0, 8)) +{ + f(t: T) { return { a: t }; } +>f : Symbol(f, Decl(genericObjectLitReturnType.ts, 1, 1)) +>t : Symbol(t, Decl(genericObjectLitReturnType.ts, 2, 6)) +>T : Symbol(T, Decl(genericObjectLitReturnType.ts, 0, 8)) +>a : Symbol(a, Decl(genericObjectLitReturnType.ts, 2, 22)) +>t : Symbol(t, Decl(genericObjectLitReturnType.ts, 2, 6)) +} + + +var x: X; +>x : Symbol(x, Decl(genericObjectLitReturnType.ts, 6, 3)) +>X : Symbol(X, Decl(genericObjectLitReturnType.ts, 0, 0)) + +var t1 = x.f(5); +>t1 : Symbol(t1, Decl(genericObjectLitReturnType.ts, 7, 3)) +>x.f : Symbol(X.f, Decl(genericObjectLitReturnType.ts, 1, 1)) +>x : Symbol(x, Decl(genericObjectLitReturnType.ts, 6, 3)) +>f : Symbol(X.f, Decl(genericObjectLitReturnType.ts, 1, 1)) + +t1.a = 5; // Should not error: t1 should have type {a: number}, instead has type {a: T} +>t1.a : Symbol(a, Decl(genericObjectLitReturnType.ts, 2, 22)) +>t1 : Symbol(t1, Decl(genericObjectLitReturnType.ts, 7, 3)) +>a : Symbol(a, Decl(genericObjectLitReturnType.ts, 2, 22)) + + diff --git a/tests/baselines/reference/genericObjectLitReturnType.types b/tests/baselines/reference/genericObjectLitReturnType.types index 11e4344b3a7d7..6bdc352cbc7fd 100644 --- a/tests/baselines/reference/genericObjectLitReturnType.types +++ b/tests/baselines/reference/genericObjectLitReturnType.types @@ -1,35 +1,35 @@ === tests/cases/compiler/genericObjectLitReturnType.ts === class X ->X : X, Symbol(X, Decl(genericObjectLitReturnType.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericObjectLitReturnType.ts, 0, 8)) +>X : X +>T : T { f(t: T) { return { a: t }; } ->f : (t: T) => { a: T; }, Symbol(f, Decl(genericObjectLitReturnType.ts, 1, 1)) ->t : T, Symbol(t, Decl(genericObjectLitReturnType.ts, 2, 6)) ->T : T, Symbol(T, Decl(genericObjectLitReturnType.ts, 0, 8)) +>f : (t: T) => { a: T; } +>t : T +>T : T >{ a: t } : { a: T; } ->a : T, Symbol(a, Decl(genericObjectLitReturnType.ts, 2, 22)) ->t : T, Symbol(t, Decl(genericObjectLitReturnType.ts, 2, 6)) +>a : T +>t : T } var x: X; ->x : X, Symbol(x, Decl(genericObjectLitReturnType.ts, 6, 3)) ->X : X, Symbol(X, Decl(genericObjectLitReturnType.ts, 0, 0)) +>x : X +>X : X var t1 = x.f(5); ->t1 : { a: number; }, Symbol(t1, Decl(genericObjectLitReturnType.ts, 7, 3)) +>t1 : { a: number; } >x.f(5) : { a: number; } ->x.f : (t: number) => { a: number; }, Symbol(X.f, Decl(genericObjectLitReturnType.ts, 1, 1)) ->x : X, Symbol(x, Decl(genericObjectLitReturnType.ts, 6, 3)) ->f : (t: number) => { a: number; }, Symbol(X.f, Decl(genericObjectLitReturnType.ts, 1, 1)) +>x.f : (t: number) => { a: number; } +>x : X +>f : (t: number) => { a: number; } >5 : number t1.a = 5; // Should not error: t1 should have type {a: number}, instead has type {a: T} >t1.a = 5 : number ->t1.a : number, Symbol(a, Decl(genericObjectLitReturnType.ts, 2, 22)) ->t1 : { a: number; }, Symbol(t1, Decl(genericObjectLitReturnType.ts, 7, 3)) ->a : number, Symbol(a, Decl(genericObjectLitReturnType.ts, 2, 22)) +>t1.a : number +>t1 : { a: number; } +>a : number >5 : number diff --git a/tests/baselines/reference/genericOfACloduleType1.symbols b/tests/baselines/reference/genericOfACloduleType1.symbols new file mode 100644 index 0000000000000..b2bb95a8ef1f2 --- /dev/null +++ b/tests/baselines/reference/genericOfACloduleType1.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/genericOfACloduleType1.ts === +class G{ bar(x: T) { return x; } } +>G : Symbol(G, Decl(genericOfACloduleType1.ts, 0, 0)) +>T : Symbol(T, Decl(genericOfACloduleType1.ts, 0, 8)) +>bar : Symbol(bar, Decl(genericOfACloduleType1.ts, 0, 11)) +>x : Symbol(x, Decl(genericOfACloduleType1.ts, 0, 16)) +>T : Symbol(T, Decl(genericOfACloduleType1.ts, 0, 8)) +>x : Symbol(x, Decl(genericOfACloduleType1.ts, 0, 16)) + +module M { +>M : Symbol(M, Decl(genericOfACloduleType1.ts, 0, 37)) + + export class C { foo() { } } +>C : Symbol(C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) +>foo : Symbol(foo, Decl(genericOfACloduleType1.ts, 2, 20)) + + export module C { +>C : Symbol(C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) + + export class X { +>X : Symbol(X, Decl(genericOfACloduleType1.ts, 3, 21)) + } + } + + var g1 = new G(); +>g1 : Symbol(g1, Decl(genericOfACloduleType1.ts, 8, 7)) +>G : Symbol(G, Decl(genericOfACloduleType1.ts, 0, 0)) +>C : Symbol(C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) + + g1.bar(null).foo(); +>g1.bar(null).foo : Symbol(C.foo, Decl(genericOfACloduleType1.ts, 2, 20)) +>g1.bar : Symbol(G.bar, Decl(genericOfACloduleType1.ts, 0, 11)) +>g1 : Symbol(g1, Decl(genericOfACloduleType1.ts, 8, 7)) +>bar : Symbol(G.bar, Decl(genericOfACloduleType1.ts, 0, 11)) +>foo : Symbol(C.foo, Decl(genericOfACloduleType1.ts, 2, 20)) +} +var g2 = new G() // was: error Type reference cannot refer to container 'M.C'. +>g2 : Symbol(g2, Decl(genericOfACloduleType1.ts, 11, 3)) +>G : Symbol(G, Decl(genericOfACloduleType1.ts, 0, 0)) +>M : Symbol(M, Decl(genericOfACloduleType1.ts, 0, 37)) +>C : Symbol(M.C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) + diff --git a/tests/baselines/reference/genericOfACloduleType1.types b/tests/baselines/reference/genericOfACloduleType1.types index 892c937ccb1ae..5c19b5f956909 100644 --- a/tests/baselines/reference/genericOfACloduleType1.types +++ b/tests/baselines/reference/genericOfACloduleType1.types @@ -1,47 +1,47 @@ === tests/cases/compiler/genericOfACloduleType1.ts === class G{ bar(x: T) { return x; } } ->G : G, Symbol(G, Decl(genericOfACloduleType1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericOfACloduleType1.ts, 0, 8)) ->bar : (x: T) => T, Symbol(bar, Decl(genericOfACloduleType1.ts, 0, 11)) ->x : T, Symbol(x, Decl(genericOfACloduleType1.ts, 0, 16)) ->T : T, Symbol(T, Decl(genericOfACloduleType1.ts, 0, 8)) ->x : T, Symbol(x, Decl(genericOfACloduleType1.ts, 0, 16)) +>G : G +>T : T +>bar : (x: T) => T +>x : T +>T : T +>x : T module M { ->M : typeof M, Symbol(M, Decl(genericOfACloduleType1.ts, 0, 37)) +>M : typeof M export class C { foo() { } } ->C : C, Symbol(C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) ->foo : () => void, Symbol(foo, Decl(genericOfACloduleType1.ts, 2, 20)) +>C : C +>foo : () => void export module C { ->C : typeof C, Symbol(C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) +>C : typeof C export class X { ->X : X, Symbol(X, Decl(genericOfACloduleType1.ts, 3, 21)) +>X : X } } var g1 = new G(); ->g1 : G, Symbol(g1, Decl(genericOfACloduleType1.ts, 8, 7)) +>g1 : G >new G() : G ->G : typeof G, Symbol(G, Decl(genericOfACloduleType1.ts, 0, 0)) ->C : C, Symbol(C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) +>G : typeof G +>C : C g1.bar(null).foo(); >g1.bar(null).foo() : void ->g1.bar(null).foo : () => void, Symbol(C.foo, Decl(genericOfACloduleType1.ts, 2, 20)) +>g1.bar(null).foo : () => void >g1.bar(null) : C ->g1.bar : (x: C) => C, Symbol(G.bar, Decl(genericOfACloduleType1.ts, 0, 11)) ->g1 : G, Symbol(g1, Decl(genericOfACloduleType1.ts, 8, 7)) ->bar : (x: C) => C, Symbol(G.bar, Decl(genericOfACloduleType1.ts, 0, 11)) +>g1.bar : (x: C) => C +>g1 : G +>bar : (x: C) => C >null : null ->foo : () => void, Symbol(C.foo, Decl(genericOfACloduleType1.ts, 2, 20)) +>foo : () => void } var g2 = new G() // was: error Type reference cannot refer to container 'M.C'. ->g2 : G, Symbol(g2, Decl(genericOfACloduleType1.ts, 11, 3)) +>g2 : G >new G() : G ->G : typeof G, Symbol(G, Decl(genericOfACloduleType1.ts, 0, 0)) ->M : any, Symbol(M, Decl(genericOfACloduleType1.ts, 0, 37)) ->C : M.C, Symbol(M.C, Decl(genericOfACloduleType1.ts, 1, 10), Decl(genericOfACloduleType1.ts, 2, 32)) +>G : typeof G +>M : any +>C : M.C diff --git a/tests/baselines/reference/genericOfACloduleType2.symbols b/tests/baselines/reference/genericOfACloduleType2.symbols new file mode 100644 index 0000000000000..2f4fe34818cc7 --- /dev/null +++ b/tests/baselines/reference/genericOfACloduleType2.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/genericOfACloduleType2.ts === +class G{ bar(x: T) { return x; } } +>G : Symbol(G, Decl(genericOfACloduleType2.ts, 0, 0)) +>T : Symbol(T, Decl(genericOfACloduleType2.ts, 0, 8)) +>bar : Symbol(bar, Decl(genericOfACloduleType2.ts, 0, 11)) +>x : Symbol(x, Decl(genericOfACloduleType2.ts, 0, 16)) +>T : Symbol(T, Decl(genericOfACloduleType2.ts, 0, 8)) +>x : Symbol(x, Decl(genericOfACloduleType2.ts, 0, 16)) + +module M { +>M : Symbol(M, Decl(genericOfACloduleType2.ts, 0, 37)) + + export class C { foo() { } } +>C : Symbol(C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) +>foo : Symbol(foo, Decl(genericOfACloduleType2.ts, 2, 20)) + + export module C { +>C : Symbol(C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) + + export class X { +>X : Symbol(X, Decl(genericOfACloduleType2.ts, 3, 21)) + } + } + + var g1 = new G(); +>g1 : Symbol(g1, Decl(genericOfACloduleType2.ts, 8, 7)) +>G : Symbol(G, Decl(genericOfACloduleType2.ts, 0, 0)) +>C : Symbol(C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) + + g1.bar(null).foo(); // no error +>g1.bar(null).foo : Symbol(C.foo, Decl(genericOfACloduleType2.ts, 2, 20)) +>g1.bar : Symbol(G.bar, Decl(genericOfACloduleType2.ts, 0, 11)) +>g1 : Symbol(g1, Decl(genericOfACloduleType2.ts, 8, 7)) +>bar : Symbol(G.bar, Decl(genericOfACloduleType2.ts, 0, 11)) +>foo : Symbol(C.foo, Decl(genericOfACloduleType2.ts, 2, 20)) +} + +module N { +>N : Symbol(N, Decl(genericOfACloduleType2.ts, 10, 1)) + + var g2 = new G() +>g2 : Symbol(g2, Decl(genericOfACloduleType2.ts, 13, 7)) +>G : Symbol(G, Decl(genericOfACloduleType2.ts, 0, 0)) +>M : Symbol(M, Decl(genericOfACloduleType2.ts, 0, 37)) +>C : Symbol(M.C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) +} diff --git a/tests/baselines/reference/genericOfACloduleType2.types b/tests/baselines/reference/genericOfACloduleType2.types index 41d697b216392..2e857b26edadf 100644 --- a/tests/baselines/reference/genericOfACloduleType2.types +++ b/tests/baselines/reference/genericOfACloduleType2.types @@ -1,51 +1,51 @@ === tests/cases/compiler/genericOfACloduleType2.ts === class G{ bar(x: T) { return x; } } ->G : G, Symbol(G, Decl(genericOfACloduleType2.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericOfACloduleType2.ts, 0, 8)) ->bar : (x: T) => T, Symbol(bar, Decl(genericOfACloduleType2.ts, 0, 11)) ->x : T, Symbol(x, Decl(genericOfACloduleType2.ts, 0, 16)) ->T : T, Symbol(T, Decl(genericOfACloduleType2.ts, 0, 8)) ->x : T, Symbol(x, Decl(genericOfACloduleType2.ts, 0, 16)) +>G : G +>T : T +>bar : (x: T) => T +>x : T +>T : T +>x : T module M { ->M : typeof M, Symbol(M, Decl(genericOfACloduleType2.ts, 0, 37)) +>M : typeof M export class C { foo() { } } ->C : C, Symbol(C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) ->foo : () => void, Symbol(foo, Decl(genericOfACloduleType2.ts, 2, 20)) +>C : C +>foo : () => void export module C { ->C : typeof C, Symbol(C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) +>C : typeof C export class X { ->X : X, Symbol(X, Decl(genericOfACloduleType2.ts, 3, 21)) +>X : X } } var g1 = new G(); ->g1 : G, Symbol(g1, Decl(genericOfACloduleType2.ts, 8, 7)) +>g1 : G >new G() : G ->G : typeof G, Symbol(G, Decl(genericOfACloduleType2.ts, 0, 0)) ->C : C, Symbol(C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) +>G : typeof G +>C : C g1.bar(null).foo(); // no error >g1.bar(null).foo() : void ->g1.bar(null).foo : () => void, Symbol(C.foo, Decl(genericOfACloduleType2.ts, 2, 20)) +>g1.bar(null).foo : () => void >g1.bar(null) : C ->g1.bar : (x: C) => C, Symbol(G.bar, Decl(genericOfACloduleType2.ts, 0, 11)) ->g1 : G, Symbol(g1, Decl(genericOfACloduleType2.ts, 8, 7)) ->bar : (x: C) => C, Symbol(G.bar, Decl(genericOfACloduleType2.ts, 0, 11)) +>g1.bar : (x: C) => C +>g1 : G +>bar : (x: C) => C >null : null ->foo : () => void, Symbol(C.foo, Decl(genericOfACloduleType2.ts, 2, 20)) +>foo : () => void } module N { ->N : typeof N, Symbol(N, Decl(genericOfACloduleType2.ts, 10, 1)) +>N : typeof N var g2 = new G() ->g2 : G, Symbol(g2, Decl(genericOfACloduleType2.ts, 13, 7)) +>g2 : G >new G() : G ->G : typeof G, Symbol(G, Decl(genericOfACloduleType2.ts, 0, 0)) ->M : any, Symbol(M, Decl(genericOfACloduleType2.ts, 0, 37)) ->C : M.C, Symbol(M.C, Decl(genericOfACloduleType2.ts, 1, 10), Decl(genericOfACloduleType2.ts, 2, 32)) +>G : typeof G +>M : any +>C : M.C } diff --git a/tests/baselines/reference/genericOverloadSignatures.symbols b/tests/baselines/reference/genericOverloadSignatures.symbols new file mode 100644 index 0000000000000..76343fb189839 --- /dev/null +++ b/tests/baselines/reference/genericOverloadSignatures.symbols @@ -0,0 +1,101 @@ +=== tests/cases/compiler/genericOverloadSignatures.ts === +interface A { +>A : Symbol(A, Decl(genericOverloadSignatures.ts, 0, 0)) + + (x: T): void; +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 1, 5)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 1, 8)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 1, 5)) + + (x: T): void; +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 2, 5)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 2, 8)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 2, 5)) +} + +function f(a: T); +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 3, 1), Decl(genericOverloadSignatures.ts, 5, 20), Decl(genericOverloadSignatures.ts, 6, 20)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 5, 11)) +>a : Symbol(a, Decl(genericOverloadSignatures.ts, 5, 14)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 5, 11)) + +function f(a: T); +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 3, 1), Decl(genericOverloadSignatures.ts, 5, 20), Decl(genericOverloadSignatures.ts, 6, 20)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 6, 11)) +>a : Symbol(a, Decl(genericOverloadSignatures.ts, 6, 14)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 6, 11)) + +function f(a) { } +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 3, 1), Decl(genericOverloadSignatures.ts, 5, 20), Decl(genericOverloadSignatures.ts, 6, 20)) +>a : Symbol(a, Decl(genericOverloadSignatures.ts, 7, 11)) + +interface I2 { +>I2 : Symbol(I2, Decl(genericOverloadSignatures.ts, 7, 17)) + + f(x: T): number; +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 9, 14), Decl(genericOverloadSignatures.ts, 10, 23)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 10, 6)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 10, 9)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 10, 6)) + + f(x: T): string; +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 9, 14), Decl(genericOverloadSignatures.ts, 10, 23)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 11, 6)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 11, 9)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 11, 6)) +} + +interface I3 { +>I3 : Symbol(I3, Decl(genericOverloadSignatures.ts, 12, 1)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 14, 13)) + + f(x: T): number; +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 14, 17), Decl(genericOverloadSignatures.ts, 15, 20)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 15, 6)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 14, 13)) + + f(x: T): string; +>f : Symbol(f, Decl(genericOverloadSignatures.ts, 14, 17), Decl(genericOverloadSignatures.ts, 15, 20)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 16, 6)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 14, 13)) +} + +class C2 { +>C2 : Symbol(C2, Decl(genericOverloadSignatures.ts, 17, 1)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 19, 9)) +} +var b: { +>b : Symbol(b, Decl(genericOverloadSignatures.ts, 21, 3)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 22, 9)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 22, 12)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 22, 9)) +>y : Symbol(y, Decl(genericOverloadSignatures.ts, 22, 17)) +>C2 : Symbol(C2, Decl(genericOverloadSignatures.ts, 17, 1)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 22, 9)) + + new (x: T, y: string): C2; +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 23, 9)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 23, 12)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 23, 9)) +>y : Symbol(y, Decl(genericOverloadSignatures.ts, 23, 17)) +>C2 : Symbol(C2, Decl(genericOverloadSignatures.ts, 17, 1)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 23, 9)) +} + +interface D { +>D : Symbol(D, Decl(genericOverloadSignatures.ts, 24, 1)) + + (x: T): T; +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 27, 5)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 27, 8)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 27, 5)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 27, 5)) + + (x: T): T; +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 28, 5)) +>x : Symbol(x, Decl(genericOverloadSignatures.ts, 28, 8)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 28, 5)) +>T : Symbol(T, Decl(genericOverloadSignatures.ts, 28, 5)) +} diff --git a/tests/baselines/reference/genericOverloadSignatures.types b/tests/baselines/reference/genericOverloadSignatures.types index 05d32155b7848..e1efe0785ab07 100644 --- a/tests/baselines/reference/genericOverloadSignatures.types +++ b/tests/baselines/reference/genericOverloadSignatures.types @@ -1,101 +1,101 @@ === tests/cases/compiler/genericOverloadSignatures.ts === interface A { ->A : A, Symbol(A, Decl(genericOverloadSignatures.ts, 0, 0)) +>A : A (x: T): void; ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 1, 5)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 1, 8)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 1, 5)) +>T : T +>x : T +>T : T (x: T): void; ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 2, 5)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 2, 8)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 2, 5)) +>T : T +>x : T +>T : T } function f(a: T); ->f : { (a: T): any; (a: T): any; }, Symbol(f, Decl(genericOverloadSignatures.ts, 3, 1), Decl(genericOverloadSignatures.ts, 5, 20), Decl(genericOverloadSignatures.ts, 6, 20)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 5, 11)) ->a : T, Symbol(a, Decl(genericOverloadSignatures.ts, 5, 14)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 5, 11)) +>f : { (a: T): any; (a: T): any; } +>T : T +>a : T +>T : T function f(a: T); ->f : { (a: T): any; (a: T): any; }, Symbol(f, Decl(genericOverloadSignatures.ts, 3, 1), Decl(genericOverloadSignatures.ts, 5, 20), Decl(genericOverloadSignatures.ts, 6, 20)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 6, 11)) ->a : T, Symbol(a, Decl(genericOverloadSignatures.ts, 6, 14)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 6, 11)) +>f : { (a: T): any; (a: T): any; } +>T : T +>a : T +>T : T function f(a) { } ->f : { (a: T): any; (a: T): any; }, Symbol(f, Decl(genericOverloadSignatures.ts, 3, 1), Decl(genericOverloadSignatures.ts, 5, 20), Decl(genericOverloadSignatures.ts, 6, 20)) ->a : any, Symbol(a, Decl(genericOverloadSignatures.ts, 7, 11)) +>f : { (a: T): any; (a: T): any; } +>a : any interface I2 { ->I2 : I2, Symbol(I2, Decl(genericOverloadSignatures.ts, 7, 17)) +>I2 : I2 f(x: T): number; ->f : { (x: T): number; (x: T): string; }, Symbol(f, Decl(genericOverloadSignatures.ts, 9, 14), Decl(genericOverloadSignatures.ts, 10, 23)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 10, 6)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 10, 9)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 10, 6)) +>f : { (x: T): number; (x: T): string; } +>T : T +>x : T +>T : T f(x: T): string; ->f : { (x: T): number; (x: T): string; }, Symbol(f, Decl(genericOverloadSignatures.ts, 9, 14), Decl(genericOverloadSignatures.ts, 10, 23)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 11, 6)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 11, 9)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 11, 6)) +>f : { (x: T): number; (x: T): string; } +>T : T +>x : T +>T : T } interface I3 { ->I3 : I3, Symbol(I3, Decl(genericOverloadSignatures.ts, 12, 1)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 14, 13)) +>I3 : I3 +>T : T f(x: T): number; ->f : { (x: T): number; (x: T): string; }, Symbol(f, Decl(genericOverloadSignatures.ts, 14, 17), Decl(genericOverloadSignatures.ts, 15, 20)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 15, 6)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 14, 13)) +>f : { (x: T): number; (x: T): string; } +>x : T +>T : T f(x: T): string; ->f : { (x: T): number; (x: T): string; }, Symbol(f, Decl(genericOverloadSignatures.ts, 14, 17), Decl(genericOverloadSignatures.ts, 15, 20)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 16, 6)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 14, 13)) +>f : { (x: T): number; (x: T): string; } +>x : T +>T : T } class C2 { ->C2 : C2, Symbol(C2, Decl(genericOverloadSignatures.ts, 17, 1)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 19, 9)) +>C2 : C2 +>T : T } var b: { ->b : { new (x: T, y: string): C2; new (x: T, y: string): C2; }, Symbol(b, Decl(genericOverloadSignatures.ts, 21, 3)) +>b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 22, 9)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 22, 12)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 22, 9)) ->y : string, Symbol(y, Decl(genericOverloadSignatures.ts, 22, 17)) ->C2 : C2, Symbol(C2, Decl(genericOverloadSignatures.ts, 17, 1)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 22, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T new (x: T, y: string): C2; ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 23, 9)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 23, 12)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 23, 9)) ->y : string, Symbol(y, Decl(genericOverloadSignatures.ts, 23, 17)) ->C2 : C2, Symbol(C2, Decl(genericOverloadSignatures.ts, 17, 1)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 23, 9)) +>T : T +>x : T +>T : T +>y : string +>C2 : C2 +>T : T } interface D { ->D : D, Symbol(D, Decl(genericOverloadSignatures.ts, 24, 1)) +>D : D (x: T): T; ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 27, 5)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 27, 8)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 27, 5)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 27, 5)) +>T : T +>x : T +>T : T +>T : T (x: T): T; ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 28, 5)) ->x : T, Symbol(x, Decl(genericOverloadSignatures.ts, 28, 8)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 28, 5)) ->T : T, Symbol(T, Decl(genericOverloadSignatures.ts, 28, 5)) +>T : T +>x : T +>T : T +>T : T } diff --git a/tests/baselines/reference/genericParameterAssignability1.symbols b/tests/baselines/reference/genericParameterAssignability1.symbols new file mode 100644 index 0000000000000..766190aecabfb --- /dev/null +++ b/tests/baselines/reference/genericParameterAssignability1.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/genericParameterAssignability1.ts === +function f(x: T): T { return null; } +>f : Symbol(f, Decl(genericParameterAssignability1.ts, 0, 0)) +>T : Symbol(T, Decl(genericParameterAssignability1.ts, 0, 11)) +>x : Symbol(x, Decl(genericParameterAssignability1.ts, 0, 14)) +>T : Symbol(T, Decl(genericParameterAssignability1.ts, 0, 11)) +>T : Symbol(T, Decl(genericParameterAssignability1.ts, 0, 11)) + +var r = (x: T) => x; +>r : Symbol(r, Decl(genericParameterAssignability1.ts, 1, 3)) +>T : Symbol(T, Decl(genericParameterAssignability1.ts, 1, 9)) +>x : Symbol(x, Decl(genericParameterAssignability1.ts, 1, 12)) +>T : Symbol(T, Decl(genericParameterAssignability1.ts, 1, 9)) +>x : Symbol(x, Decl(genericParameterAssignability1.ts, 1, 12)) + +r = f; // should be allowed +>r : Symbol(r, Decl(genericParameterAssignability1.ts, 1, 3)) +>f : Symbol(f, Decl(genericParameterAssignability1.ts, 0, 0)) + diff --git a/tests/baselines/reference/genericParameterAssignability1.types b/tests/baselines/reference/genericParameterAssignability1.types index 1bcbf66274a55..50917e5db45cf 100644 --- a/tests/baselines/reference/genericParameterAssignability1.types +++ b/tests/baselines/reference/genericParameterAssignability1.types @@ -1,22 +1,22 @@ === tests/cases/compiler/genericParameterAssignability1.ts === function f(x: T): T { return null; } ->f : (x: T) => T, Symbol(f, Decl(genericParameterAssignability1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericParameterAssignability1.ts, 0, 11)) ->x : T, Symbol(x, Decl(genericParameterAssignability1.ts, 0, 14)) ->T : T, Symbol(T, Decl(genericParameterAssignability1.ts, 0, 11)) ->T : T, Symbol(T, Decl(genericParameterAssignability1.ts, 0, 11)) +>f : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null var r = (x: T) => x; ->r : (x: T) => T, Symbol(r, Decl(genericParameterAssignability1.ts, 1, 3)) +>r : (x: T) => T >(x: T) => x : (x: T) => T ->T : T, Symbol(T, Decl(genericParameterAssignability1.ts, 1, 9)) ->x : T, Symbol(x, Decl(genericParameterAssignability1.ts, 1, 12)) ->T : T, Symbol(T, Decl(genericParameterAssignability1.ts, 1, 9)) ->x : T, Symbol(x, Decl(genericParameterAssignability1.ts, 1, 12)) +>T : T +>x : T +>T : T +>x : T r = f; // should be allowed >r = f : (x: T) => T ->r : (x: T) => T, Symbol(r, Decl(genericParameterAssignability1.ts, 1, 3)) ->f : (x: T) => T, Symbol(f, Decl(genericParameterAssignability1.ts, 0, 0)) +>r : (x: T) => T +>f : (x: T) => T diff --git a/tests/baselines/reference/genericPrototypeProperty.symbols b/tests/baselines/reference/genericPrototypeProperty.symbols new file mode 100644 index 0000000000000..ca2fe000dce1b --- /dev/null +++ b/tests/baselines/reference/genericPrototypeProperty.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/genericPrototypeProperty.ts === +class C { +>C : Symbol(C, Decl(genericPrototypeProperty.ts, 0, 0)) +>T : Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) + + x: T; +>x : Symbol(x, Decl(genericPrototypeProperty.ts, 0, 12)) +>T : Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(genericPrototypeProperty.ts, 1, 9)) +>x : Symbol(x, Decl(genericPrototypeProperty.ts, 2, 8)) +>T : Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) +>T : Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) +} + +var r = C.prototype; +>r : Symbol(r, Decl(genericPrototypeProperty.ts, 5, 3)) +>C.prototype : Symbol(C.prototype) +>C : Symbol(C, Decl(genericPrototypeProperty.ts, 0, 0)) +>prototype : Symbol(C.prototype) + +// should be any +var r2 = r.x +>r2 : Symbol(r2, Decl(genericPrototypeProperty.ts, 7, 3)) +>r.x : Symbol(C.x, Decl(genericPrototypeProperty.ts, 0, 12)) +>r : Symbol(r, Decl(genericPrototypeProperty.ts, 5, 3)) +>x : Symbol(C.x, Decl(genericPrototypeProperty.ts, 0, 12)) + +var r3 = r.foo(null); +>r3 : Symbol(r3, Decl(genericPrototypeProperty.ts, 8, 3)) +>r.foo : Symbol(C.foo, Decl(genericPrototypeProperty.ts, 1, 9)) +>r : Symbol(r, Decl(genericPrototypeProperty.ts, 5, 3)) +>foo : Symbol(C.foo, Decl(genericPrototypeProperty.ts, 1, 9)) + diff --git a/tests/baselines/reference/genericPrototypeProperty.types b/tests/baselines/reference/genericPrototypeProperty.types index e719519d158c4..447f5e748906f 100644 --- a/tests/baselines/reference/genericPrototypeProperty.types +++ b/tests/baselines/reference/genericPrototypeProperty.types @@ -1,38 +1,38 @@ === tests/cases/compiler/genericPrototypeProperty.ts === class C { ->C : C, Symbol(C, Decl(genericPrototypeProperty.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) +>C : C +>T : T x: T; ->x : T, Symbol(x, Decl(genericPrototypeProperty.ts, 0, 12)) ->T : T, Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) +>x : T +>T : T foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(genericPrototypeProperty.ts, 1, 9)) ->x : T, Symbol(x, Decl(genericPrototypeProperty.ts, 2, 8)) ->T : T, Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) ->T : T, Symbol(T, Decl(genericPrototypeProperty.ts, 0, 8)) +>foo : (x: T) => T +>x : T +>T : T +>T : T >null : null } var r = C.prototype; ->r : C, Symbol(r, Decl(genericPrototypeProperty.ts, 5, 3)) ->C.prototype : C, Symbol(C.prototype) ->C : typeof C, Symbol(C, Decl(genericPrototypeProperty.ts, 0, 0)) ->prototype : C, Symbol(C.prototype) +>r : C +>C.prototype : C +>C : typeof C +>prototype : C // should be any var r2 = r.x ->r2 : any, Symbol(r2, Decl(genericPrototypeProperty.ts, 7, 3)) ->r.x : any, Symbol(C.x, Decl(genericPrototypeProperty.ts, 0, 12)) ->r : C, Symbol(r, Decl(genericPrototypeProperty.ts, 5, 3)) ->x : any, Symbol(C.x, Decl(genericPrototypeProperty.ts, 0, 12)) +>r2 : any +>r.x : any +>r : C +>x : any var r3 = r.foo(null); ->r3 : any, Symbol(r3, Decl(genericPrototypeProperty.ts, 8, 3)) +>r3 : any >r.foo(null) : any ->r.foo : (x: any) => any, Symbol(C.foo, Decl(genericPrototypeProperty.ts, 1, 9)) ->r : C, Symbol(r, Decl(genericPrototypeProperty.ts, 5, 3)) ->foo : (x: any) => any, Symbol(C.foo, Decl(genericPrototypeProperty.ts, 1, 9)) +>r.foo : (x: any) => any +>r : C +>foo : (x: any) => any >null : null diff --git a/tests/baselines/reference/genericPrototypeProperty2.symbols b/tests/baselines/reference/genericPrototypeProperty2.symbols new file mode 100644 index 0000000000000..f7d5516215484 --- /dev/null +++ b/tests/baselines/reference/genericPrototypeProperty2.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/genericPrototypeProperty2.ts === +interface EventTarget { x } +>EventTarget : Symbol(EventTarget, Decl(genericPrototypeProperty2.ts, 0, 0)) +>x : Symbol(x, Decl(genericPrototypeProperty2.ts, 0, 23)) + +class BaseEvent { +>BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty2.ts, 0, 27)) + + target: EventTarget; +>target : Symbol(target, Decl(genericPrototypeProperty2.ts, 1, 17)) +>EventTarget : Symbol(EventTarget, Decl(genericPrototypeProperty2.ts, 0, 0)) +} + +class MyEvent extends BaseEvent { +>MyEvent : Symbol(MyEvent, Decl(genericPrototypeProperty2.ts, 3, 1)) +>T : Symbol(T, Decl(genericPrototypeProperty2.ts, 5, 14)) +>EventTarget : Symbol(EventTarget, Decl(genericPrototypeProperty2.ts, 0, 0)) +>BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty2.ts, 0, 27)) + + target: T; +>target : Symbol(target, Decl(genericPrototypeProperty2.ts, 5, 56)) +>T : Symbol(T, Decl(genericPrototypeProperty2.ts, 5, 14)) +} +class BaseEventWrapper { +>BaseEventWrapper : Symbol(BaseEventWrapper, Decl(genericPrototypeProperty2.ts, 7, 1)) + + t: BaseEvent; +>t : Symbol(t, Decl(genericPrototypeProperty2.ts, 8, 24)) +>BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty2.ts, 0, 27)) +} + +class MyEventWrapper extends BaseEventWrapper { +>MyEventWrapper : Symbol(MyEventWrapper, Decl(genericPrototypeProperty2.ts, 10, 1)) +>BaseEventWrapper : Symbol(BaseEventWrapper, Decl(genericPrototypeProperty2.ts, 7, 1)) + + t: MyEvent; // any satisfies constraint and passes assignability check between 'target' properties +>t : Symbol(t, Decl(genericPrototypeProperty2.ts, 12, 47)) +>MyEvent : Symbol(MyEvent, Decl(genericPrototypeProperty2.ts, 3, 1)) +} diff --git a/tests/baselines/reference/genericPrototypeProperty2.types b/tests/baselines/reference/genericPrototypeProperty2.types index 96c6d921dca00..1c95041b65035 100644 --- a/tests/baselines/reference/genericPrototypeProperty2.types +++ b/tests/baselines/reference/genericPrototypeProperty2.types @@ -1,39 +1,39 @@ === tests/cases/compiler/genericPrototypeProperty2.ts === interface EventTarget { x } ->EventTarget : EventTarget, Symbol(EventTarget, Decl(genericPrototypeProperty2.ts, 0, 0)) ->x : any, Symbol(x, Decl(genericPrototypeProperty2.ts, 0, 23)) +>EventTarget : EventTarget +>x : any class BaseEvent { ->BaseEvent : BaseEvent, Symbol(BaseEvent, Decl(genericPrototypeProperty2.ts, 0, 27)) +>BaseEvent : BaseEvent target: EventTarget; ->target : EventTarget, Symbol(target, Decl(genericPrototypeProperty2.ts, 1, 17)) ->EventTarget : EventTarget, Symbol(EventTarget, Decl(genericPrototypeProperty2.ts, 0, 0)) +>target : EventTarget +>EventTarget : EventTarget } class MyEvent extends BaseEvent { ->MyEvent : MyEvent, Symbol(MyEvent, Decl(genericPrototypeProperty2.ts, 3, 1)) ->T : T, Symbol(T, Decl(genericPrototypeProperty2.ts, 5, 14)) ->EventTarget : EventTarget, Symbol(EventTarget, Decl(genericPrototypeProperty2.ts, 0, 0)) ->BaseEvent : BaseEvent, Symbol(BaseEvent, Decl(genericPrototypeProperty2.ts, 0, 27)) +>MyEvent : MyEvent +>T : T +>EventTarget : EventTarget +>BaseEvent : BaseEvent target: T; ->target : T, Symbol(target, Decl(genericPrototypeProperty2.ts, 5, 56)) ->T : T, Symbol(T, Decl(genericPrototypeProperty2.ts, 5, 14)) +>target : T +>T : T } class BaseEventWrapper { ->BaseEventWrapper : BaseEventWrapper, Symbol(BaseEventWrapper, Decl(genericPrototypeProperty2.ts, 7, 1)) +>BaseEventWrapper : BaseEventWrapper t: BaseEvent; ->t : BaseEvent, Symbol(t, Decl(genericPrototypeProperty2.ts, 8, 24)) ->BaseEvent : BaseEvent, Symbol(BaseEvent, Decl(genericPrototypeProperty2.ts, 0, 27)) +>t : BaseEvent +>BaseEvent : BaseEvent } class MyEventWrapper extends BaseEventWrapper { ->MyEventWrapper : MyEventWrapper, Symbol(MyEventWrapper, Decl(genericPrototypeProperty2.ts, 10, 1)) ->BaseEventWrapper : BaseEventWrapper, Symbol(BaseEventWrapper, Decl(genericPrototypeProperty2.ts, 7, 1)) +>MyEventWrapper : MyEventWrapper +>BaseEventWrapper : BaseEventWrapper t: MyEvent; // any satisfies constraint and passes assignability check between 'target' properties ->t : MyEvent, Symbol(t, Decl(genericPrototypeProperty2.ts, 12, 47)) ->MyEvent : MyEvent, Symbol(MyEvent, Decl(genericPrototypeProperty2.ts, 3, 1)) +>t : MyEvent +>MyEvent : MyEvent } diff --git a/tests/baselines/reference/genericPrototypeProperty3.symbols b/tests/baselines/reference/genericPrototypeProperty3.symbols new file mode 100644 index 0000000000000..fb28fbcc89d61 --- /dev/null +++ b/tests/baselines/reference/genericPrototypeProperty3.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/genericPrototypeProperty3.ts === +class BaseEvent { +>BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) + + target: {}; +>target : Symbol(target, Decl(genericPrototypeProperty3.ts, 0, 17)) +} + +class MyEvent extends BaseEvent { // T is instantiated to any in the prototype, which is assignable to {} +>MyEvent : Symbol(MyEvent, Decl(genericPrototypeProperty3.ts, 2, 1)) +>T : Symbol(T, Decl(genericPrototypeProperty3.ts, 4, 14)) +>BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) + + target: T; +>target : Symbol(target, Decl(genericPrototypeProperty3.ts, 4, 36)) +>T : Symbol(T, Decl(genericPrototypeProperty3.ts, 4, 14)) +} +class BaseEventWrapper { +>BaseEventWrapper : Symbol(BaseEventWrapper, Decl(genericPrototypeProperty3.ts, 6, 1)) + + t: BaseEvent; +>t : Symbol(t, Decl(genericPrototypeProperty3.ts, 7, 24)) +>BaseEvent : Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) +} + +class MyEventWrapper extends BaseEventWrapper { +>MyEventWrapper : Symbol(MyEventWrapper, Decl(genericPrototypeProperty3.ts, 9, 1)) +>BaseEventWrapper : Symbol(BaseEventWrapper, Decl(genericPrototypeProperty3.ts, 6, 1)) + + t: MyEvent; +>t : Symbol(t, Decl(genericPrototypeProperty3.ts, 11, 47)) +>MyEvent : Symbol(MyEvent, Decl(genericPrototypeProperty3.ts, 2, 1)) +} diff --git a/tests/baselines/reference/genericPrototypeProperty3.types b/tests/baselines/reference/genericPrototypeProperty3.types index 6c643ef24a563..5a19016464224 100644 --- a/tests/baselines/reference/genericPrototypeProperty3.types +++ b/tests/baselines/reference/genericPrototypeProperty3.types @@ -1,33 +1,33 @@ === tests/cases/compiler/genericPrototypeProperty3.ts === class BaseEvent { ->BaseEvent : BaseEvent, Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) +>BaseEvent : BaseEvent target: {}; ->target : {}, Symbol(target, Decl(genericPrototypeProperty3.ts, 0, 17)) +>target : {} } class MyEvent extends BaseEvent { // T is instantiated to any in the prototype, which is assignable to {} ->MyEvent : MyEvent, Symbol(MyEvent, Decl(genericPrototypeProperty3.ts, 2, 1)) ->T : T, Symbol(T, Decl(genericPrototypeProperty3.ts, 4, 14)) ->BaseEvent : BaseEvent, Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) +>MyEvent : MyEvent +>T : T +>BaseEvent : BaseEvent target: T; ->target : T, Symbol(target, Decl(genericPrototypeProperty3.ts, 4, 36)) ->T : T, Symbol(T, Decl(genericPrototypeProperty3.ts, 4, 14)) +>target : T +>T : T } class BaseEventWrapper { ->BaseEventWrapper : BaseEventWrapper, Symbol(BaseEventWrapper, Decl(genericPrototypeProperty3.ts, 6, 1)) +>BaseEventWrapper : BaseEventWrapper t: BaseEvent; ->t : BaseEvent, Symbol(t, Decl(genericPrototypeProperty3.ts, 7, 24)) ->BaseEvent : BaseEvent, Symbol(BaseEvent, Decl(genericPrototypeProperty3.ts, 0, 0)) +>t : BaseEvent +>BaseEvent : BaseEvent } class MyEventWrapper extends BaseEventWrapper { ->MyEventWrapper : MyEventWrapper, Symbol(MyEventWrapper, Decl(genericPrototypeProperty3.ts, 9, 1)) ->BaseEventWrapper : BaseEventWrapper, Symbol(BaseEventWrapper, Decl(genericPrototypeProperty3.ts, 6, 1)) +>MyEventWrapper : MyEventWrapper +>BaseEventWrapper : BaseEventWrapper t: MyEvent; ->t : MyEvent, Symbol(t, Decl(genericPrototypeProperty3.ts, 11, 47)) ->MyEvent : MyEvent, Symbol(MyEvent, Decl(genericPrototypeProperty3.ts, 2, 1)) +>t : MyEvent +>MyEvent : MyEvent } diff --git a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.symbols b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.symbols new file mode 100644 index 0000000000000..ff8d19ff6e66f --- /dev/null +++ b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.symbols @@ -0,0 +1,68 @@ +=== tests/cases/compiler/genericRecursiveImplicitConstructorErrors2.ts === +module TypeScript2 { +>TypeScript2 : Symbol(TypeScript2, Decl(genericRecursiveImplicitConstructorErrors2.ts, 0, 0)) + + export interface DeclKind { }; +>DeclKind : Symbol(DeclKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 0, 20)) + + export interface PullTypesymbol { }; +>PullTypesymbol : Symbol(PullTypesymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 1, 32)) + + export interface SymbolLinkKind { }; +>SymbolLinkKind : Symbol(SymbolLinkKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 2, 38)) + + export enum PullSymbolVisibility { +>PullSymbolVisibility : Symbol(PullSymbolVisibility, Decl(genericRecursiveImplicitConstructorErrors2.ts, 3, 38)) + + Private, +>Private : Symbol(PullSymbolVisibility.Private, Decl(genericRecursiveImplicitConstructorErrors2.ts, 4, 36)) + + Public +>Public : Symbol(PullSymbolVisibility.Public, Decl(genericRecursiveImplicitConstructorErrors2.ts, 5, 12)) + } +  + export class PullSymbol { +>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 7, 3)) + + constructor (name: string, declKind: DeclKind) { +>name : Symbol(name, Decl(genericRecursiveImplicitConstructorErrors2.ts, 10, 17)) +>declKind : Symbol(declKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 10, 30)) +>DeclKind : Symbol(DeclKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 0, 20)) + + } + // link methods + public addOutgoingLink(linkTo: PullSymbol, kind: SymbolLinkKind) { +>addOutgoingLink : Symbol(addOutgoingLink, Decl(genericRecursiveImplicitConstructorErrors2.ts, 12, 5)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 27)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 29)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 31)) +>linkTo : Symbol(linkTo, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 34)) +>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 7, 3)) +>kind : Symbol(kind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 53)) +>SymbolLinkKind : Symbol(SymbolLinkKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 2, 38)) + + } + + public getType(): PullTypeSymbol { +>getType : Symbol(getType, Decl(genericRecursiveImplicitConstructorErrors2.ts, 16, 5)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 19)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 21)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 23)) +>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 21, 3)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 19)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 21)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 23)) + + return undefined; +>undefined : Symbol(undefined) + } + } + export class PullTypeSymbol extends PullSymbol { +>PullTypeSymbol : Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 21, 3)) +>A : Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 22, 31)) +>B : Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 22, 33)) +>C : Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 22, 35)) +>PullSymbol : Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 7, 3)) + } +} + diff --git a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types index c8db397be2fe0..2f62a20c41521 100644 --- a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types +++ b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types @@ -1,68 +1,68 @@ === tests/cases/compiler/genericRecursiveImplicitConstructorErrors2.ts === module TypeScript2 { ->TypeScript2 : typeof TypeScript2, Symbol(TypeScript2, Decl(genericRecursiveImplicitConstructorErrors2.ts, 0, 0)) +>TypeScript2 : typeof TypeScript2 export interface DeclKind { }; ->DeclKind : DeclKind, Symbol(DeclKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 0, 20)) +>DeclKind : DeclKind export interface PullTypesymbol { }; ->PullTypesymbol : PullTypesymbol, Symbol(PullTypesymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 1, 32)) +>PullTypesymbol : PullTypesymbol export interface SymbolLinkKind { }; ->SymbolLinkKind : SymbolLinkKind, Symbol(SymbolLinkKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 2, 38)) +>SymbolLinkKind : SymbolLinkKind export enum PullSymbolVisibility { ->PullSymbolVisibility : PullSymbolVisibility, Symbol(PullSymbolVisibility, Decl(genericRecursiveImplicitConstructorErrors2.ts, 3, 38)) +>PullSymbolVisibility : PullSymbolVisibility Private, ->Private : PullSymbolVisibility, Symbol(PullSymbolVisibility.Private, Decl(genericRecursiveImplicitConstructorErrors2.ts, 4, 36)) +>Private : PullSymbolVisibility Public ->Public : PullSymbolVisibility, Symbol(PullSymbolVisibility.Public, Decl(genericRecursiveImplicitConstructorErrors2.ts, 5, 12)) +>Public : PullSymbolVisibility }   export class PullSymbol { ->PullSymbol : PullSymbol, Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 7, 3)) +>PullSymbol : PullSymbol constructor (name: string, declKind: DeclKind) { ->name : string, Symbol(name, Decl(genericRecursiveImplicitConstructorErrors2.ts, 10, 17)) ->declKind : DeclKind, Symbol(declKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 10, 30)) ->DeclKind : DeclKind, Symbol(DeclKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 0, 20)) +>name : string +>declKind : DeclKind +>DeclKind : DeclKind } // link methods public addOutgoingLink(linkTo: PullSymbol, kind: SymbolLinkKind) { ->addOutgoingLink : (linkTo: PullSymbol, kind: SymbolLinkKind) => void, Symbol(addOutgoingLink, Decl(genericRecursiveImplicitConstructorErrors2.ts, 12, 5)) ->A : A, Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 27)) ->B : B, Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 29)) ->C : C, Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 31)) ->linkTo : PullSymbol, Symbol(linkTo, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 34)) ->PullSymbol : PullSymbol, Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 7, 3)) ->kind : SymbolLinkKind, Symbol(kind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 14, 53)) ->SymbolLinkKind : SymbolLinkKind, Symbol(SymbolLinkKind, Decl(genericRecursiveImplicitConstructorErrors2.ts, 2, 38)) +>addOutgoingLink : (linkTo: PullSymbol, kind: SymbolLinkKind) => void +>A : A +>B : B +>C : C +>linkTo : PullSymbol +>PullSymbol : PullSymbol +>kind : SymbolLinkKind +>SymbolLinkKind : SymbolLinkKind } public getType(): PullTypeSymbol { ->getType : () => PullTypeSymbol, Symbol(getType, Decl(genericRecursiveImplicitConstructorErrors2.ts, 16, 5)) ->A : A, Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 19)) ->B : B, Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 21)) ->C : C, Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 23)) ->PullTypeSymbol : PullTypeSymbol, Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 21, 3)) ->A : A, Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 19)) ->B : B, Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 21)) ->C : C, Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 18, 23)) +>getType : () => PullTypeSymbol +>A : A +>B : B +>C : C +>PullTypeSymbol : PullTypeSymbol +>A : A +>B : B +>C : C return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } export class PullTypeSymbol extends PullSymbol { ->PullTypeSymbol : PullTypeSymbol, Symbol(PullTypeSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 21, 3)) ->A : A, Symbol(A, Decl(genericRecursiveImplicitConstructorErrors2.ts, 22, 31)) ->B : B, Symbol(B, Decl(genericRecursiveImplicitConstructorErrors2.ts, 22, 33)) ->C : C, Symbol(C, Decl(genericRecursiveImplicitConstructorErrors2.ts, 22, 35)) ->PullSymbol : PullSymbol, Symbol(PullSymbol, Decl(genericRecursiveImplicitConstructorErrors2.ts, 7, 3)) +>PullTypeSymbol : PullTypeSymbol +>A : A +>B : B +>C : C +>PullSymbol : PullSymbol } } diff --git a/tests/baselines/reference/genericReversingTypeParameters.symbols b/tests/baselines/reference/genericReversingTypeParameters.symbols new file mode 100644 index 0000000000000..05eb102f36b29 --- /dev/null +++ b/tests/baselines/reference/genericReversingTypeParameters.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/genericReversingTypeParameters.ts === +class BiMap { +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) +>K : Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) +>V : Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) + + private inverseBiMap: BiMap; +>inverseBiMap : Symbol(inverseBiMap, Decl(genericReversingTypeParameters.ts, 0, 19)) +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) +>V : Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) +>K : Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) + + public get(key: K): V { return null; } +>get : Symbol(get, Decl(genericReversingTypeParameters.ts, 1, 38)) +>key : Symbol(key, Decl(genericReversingTypeParameters.ts, 2, 15)) +>K : Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) +>V : Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) + + public inverse(): BiMap { return null; } +>inverse : Symbol(inverse, Decl(genericReversingTypeParameters.ts, 2, 42)) +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) +>V : Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) +>K : Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) +} + +var b = new BiMap(); +>b : Symbol(b, Decl(genericReversingTypeParameters.ts, 6, 3)) +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) + +var r1 = b.get(''); +>r1 : Symbol(r1, Decl(genericReversingTypeParameters.ts, 7, 3)) +>b.get : Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) +>b : Symbol(b, Decl(genericReversingTypeParameters.ts, 6, 3)) +>get : Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) + +var i = b.inverse(); // used to get the type wrong here. +>i : Symbol(i, Decl(genericReversingTypeParameters.ts, 8, 3)) +>b.inverse : Symbol(BiMap.inverse, Decl(genericReversingTypeParameters.ts, 2, 42)) +>b : Symbol(b, Decl(genericReversingTypeParameters.ts, 6, 3)) +>inverse : Symbol(BiMap.inverse, Decl(genericReversingTypeParameters.ts, 2, 42)) + +var r2b = i.get(1); +>r2b : Symbol(r2b, Decl(genericReversingTypeParameters.ts, 9, 3)) +>i.get : Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) +>i : Symbol(i, Decl(genericReversingTypeParameters.ts, 8, 3)) +>get : Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) + diff --git a/tests/baselines/reference/genericReversingTypeParameters.types b/tests/baselines/reference/genericReversingTypeParameters.types index 067eee3fb7f18..524a2ebba0350 100644 --- a/tests/baselines/reference/genericReversingTypeParameters.types +++ b/tests/baselines/reference/genericReversingTypeParameters.types @@ -1,55 +1,55 @@ === tests/cases/compiler/genericReversingTypeParameters.ts === class BiMap { ->BiMap : BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) +>BiMap : BiMap +>K : K +>V : V private inverseBiMap: BiMap; ->inverseBiMap : BiMap, Symbol(inverseBiMap, Decl(genericReversingTypeParameters.ts, 0, 19)) ->BiMap : BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) +>inverseBiMap : BiMap +>BiMap : BiMap +>V : V +>K : K public get(key: K): V { return null; } ->get : (key: K) => V, Symbol(get, Decl(genericReversingTypeParameters.ts, 1, 38)) ->key : K, Symbol(key, Decl(genericReversingTypeParameters.ts, 2, 15)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) +>get : (key: K) => V +>key : K +>K : K +>V : V >null : null public inverse(): BiMap { return null; } ->inverse : () => BiMap, Symbol(inverse, Decl(genericReversingTypeParameters.ts, 2, 42)) ->BiMap : BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters.ts, 0, 14)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters.ts, 0, 12)) +>inverse : () => BiMap +>BiMap : BiMap +>V : V +>K : K >null : null } var b = new BiMap(); ->b : BiMap, Symbol(b, Decl(genericReversingTypeParameters.ts, 6, 3)) +>b : BiMap >new BiMap() : BiMap ->BiMap : typeof BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters.ts, 0, 0)) +>BiMap : typeof BiMap var r1 = b.get(''); ->r1 : number, Symbol(r1, Decl(genericReversingTypeParameters.ts, 7, 3)) +>r1 : number >b.get('') : number ->b.get : (key: string) => number, Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) ->b : BiMap, Symbol(b, Decl(genericReversingTypeParameters.ts, 6, 3)) ->get : (key: string) => number, Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) +>b.get : (key: string) => number +>b : BiMap +>get : (key: string) => number >'' : string var i = b.inverse(); // used to get the type wrong here. ->i : BiMap, Symbol(i, Decl(genericReversingTypeParameters.ts, 8, 3)) +>i : BiMap >b.inverse() : BiMap ->b.inverse : () => BiMap, Symbol(BiMap.inverse, Decl(genericReversingTypeParameters.ts, 2, 42)) ->b : BiMap, Symbol(b, Decl(genericReversingTypeParameters.ts, 6, 3)) ->inverse : () => BiMap, Symbol(BiMap.inverse, Decl(genericReversingTypeParameters.ts, 2, 42)) +>b.inverse : () => BiMap +>b : BiMap +>inverse : () => BiMap var r2b = i.get(1); ->r2b : string, Symbol(r2b, Decl(genericReversingTypeParameters.ts, 9, 3)) +>r2b : string >i.get(1) : string ->i.get : (key: number) => string, Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) ->i : BiMap, Symbol(i, Decl(genericReversingTypeParameters.ts, 8, 3)) ->get : (key: number) => string, Symbol(BiMap.get, Decl(genericReversingTypeParameters.ts, 1, 38)) +>i.get : (key: number) => string +>i : BiMap +>get : (key: number) => string >1 : number diff --git a/tests/baselines/reference/genericReversingTypeParameters2.symbols b/tests/baselines/reference/genericReversingTypeParameters2.symbols new file mode 100644 index 0000000000000..d33dbd3a64b12 --- /dev/null +++ b/tests/baselines/reference/genericReversingTypeParameters2.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/genericReversingTypeParameters2.ts === +class BiMap { +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) +>K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) +>V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) + + private inverseBiMap: BiMap; +>inverseBiMap : Symbol(inverseBiMap, Decl(genericReversingTypeParameters2.ts, 0, 19)) +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) +>V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) +>K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) + + public get(key: K): V { return null; } +>get : Symbol(get, Decl(genericReversingTypeParameters2.ts, 1, 38)) +>key : Symbol(key, Decl(genericReversingTypeParameters2.ts, 2, 15)) +>K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) +>V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) + + public inverse(): BiMap { return null; } +>inverse : Symbol(inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) +>V : Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) +>K : Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) +} + +var b = new BiMap(); +>b : Symbol(b, Decl(genericReversingTypeParameters2.ts, 6, 3)) +>BiMap : Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) + +var i = b.inverse(); // used to get the type wrong here. +>i : Symbol(i, Decl(genericReversingTypeParameters2.ts, 7, 3)) +>b.inverse : Symbol(BiMap.inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) +>b : Symbol(b, Decl(genericReversingTypeParameters2.ts, 6, 3)) +>inverse : Symbol(BiMap.inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) + +var r2b = i.get(1); +>r2b : Symbol(r2b, Decl(genericReversingTypeParameters2.ts, 8, 3)) +>i.get : Symbol(BiMap.get, Decl(genericReversingTypeParameters2.ts, 1, 38)) +>i : Symbol(i, Decl(genericReversingTypeParameters2.ts, 7, 3)) +>get : Symbol(BiMap.get, Decl(genericReversingTypeParameters2.ts, 1, 38)) + diff --git a/tests/baselines/reference/genericReversingTypeParameters2.types b/tests/baselines/reference/genericReversingTypeParameters2.types index 54c5450887b3f..28c1f40ce9f12 100644 --- a/tests/baselines/reference/genericReversingTypeParameters2.types +++ b/tests/baselines/reference/genericReversingTypeParameters2.types @@ -1,47 +1,47 @@ === tests/cases/compiler/genericReversingTypeParameters2.ts === class BiMap { ->BiMap : BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) +>BiMap : BiMap +>K : K +>V : V private inverseBiMap: BiMap; ->inverseBiMap : BiMap, Symbol(inverseBiMap, Decl(genericReversingTypeParameters2.ts, 0, 19)) ->BiMap : BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) +>inverseBiMap : BiMap +>BiMap : BiMap +>V : V +>K : K public get(key: K): V { return null; } ->get : (key: K) => V, Symbol(get, Decl(genericReversingTypeParameters2.ts, 1, 38)) ->key : K, Symbol(key, Decl(genericReversingTypeParameters2.ts, 2, 15)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) +>get : (key: K) => V +>key : K +>K : K +>V : V >null : null public inverse(): BiMap { return null; } ->inverse : () => BiMap, Symbol(inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) ->BiMap : BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) ->V : V, Symbol(V, Decl(genericReversingTypeParameters2.ts, 0, 14)) ->K : K, Symbol(K, Decl(genericReversingTypeParameters2.ts, 0, 12)) +>inverse : () => BiMap +>BiMap : BiMap +>V : V +>K : K >null : null } var b = new BiMap(); ->b : BiMap, Symbol(b, Decl(genericReversingTypeParameters2.ts, 6, 3)) +>b : BiMap >new BiMap() : BiMap ->BiMap : typeof BiMap, Symbol(BiMap, Decl(genericReversingTypeParameters2.ts, 0, 0)) +>BiMap : typeof BiMap var i = b.inverse(); // used to get the type wrong here. ->i : BiMap, Symbol(i, Decl(genericReversingTypeParameters2.ts, 7, 3)) +>i : BiMap >b.inverse() : BiMap ->b.inverse : () => BiMap, Symbol(BiMap.inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) ->b : BiMap, Symbol(b, Decl(genericReversingTypeParameters2.ts, 6, 3)) ->inverse : () => BiMap, Symbol(BiMap.inverse, Decl(genericReversingTypeParameters2.ts, 2, 42)) +>b.inverse : () => BiMap +>b : BiMap +>inverse : () => BiMap var r2b = i.get(1); ->r2b : string, Symbol(r2b, Decl(genericReversingTypeParameters2.ts, 8, 3)) +>r2b : string >i.get(1) : string ->i.get : (key: number) => string, Symbol(BiMap.get, Decl(genericReversingTypeParameters2.ts, 1, 38)) ->i : BiMap, Symbol(i, Decl(genericReversingTypeParameters2.ts, 7, 3)) ->get : (key: number) => string, Symbol(BiMap.get, Decl(genericReversingTypeParameters2.ts, 1, 38)) +>i.get : (key: number) => string +>i : BiMap +>get : (key: number) => string >1 : number diff --git a/tests/baselines/reference/genericSignatureInheritance.symbols b/tests/baselines/reference/genericSignatureInheritance.symbols new file mode 100644 index 0000000000000..7157d7b9346e3 --- /dev/null +++ b/tests/baselines/reference/genericSignatureInheritance.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/genericSignatureInheritance.ts === +interface I { +>I : Symbol(I, Decl(genericSignatureInheritance.ts, 0, 0)) + + (x: T): string; +>T : Symbol(T, Decl(genericSignatureInheritance.ts, 1, 5)) +>x : Symbol(x, Decl(genericSignatureInheritance.ts, 1, 8)) +>T : Symbol(T, Decl(genericSignatureInheritance.ts, 1, 5)) +} + +interface I2 extends I { } +>I2 : Symbol(I2, Decl(genericSignatureInheritance.ts, 2, 1)) +>I : Symbol(I, Decl(genericSignatureInheritance.ts, 0, 0)) + diff --git a/tests/baselines/reference/genericSignatureInheritance.types b/tests/baselines/reference/genericSignatureInheritance.types index a48cc677a42ff..0ae6be52ba1a5 100644 --- a/tests/baselines/reference/genericSignatureInheritance.types +++ b/tests/baselines/reference/genericSignatureInheritance.types @@ -1,14 +1,14 @@ === tests/cases/compiler/genericSignatureInheritance.ts === interface I { ->I : I, Symbol(I, Decl(genericSignatureInheritance.ts, 0, 0)) +>I : I (x: T): string; ->T : T, Symbol(T, Decl(genericSignatureInheritance.ts, 1, 5)) ->x : T, Symbol(x, Decl(genericSignatureInheritance.ts, 1, 8)) ->T : T, Symbol(T, Decl(genericSignatureInheritance.ts, 1, 5)) +>T : T +>x : T +>T : T } interface I2 extends I { } ->I2 : I2, Symbol(I2, Decl(genericSignatureInheritance.ts, 2, 1)) ->I : I, Symbol(I, Decl(genericSignatureInheritance.ts, 0, 0)) +>I2 : I2 +>I : I diff --git a/tests/baselines/reference/genericSignatureInheritance2.symbols b/tests/baselines/reference/genericSignatureInheritance2.symbols new file mode 100644 index 0000000000000..3c0e5e2603c1b --- /dev/null +++ b/tests/baselines/reference/genericSignatureInheritance2.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericSignatureInheritance2.ts === +interface I { +>I : Symbol(I, Decl(genericSignatureInheritance2.ts, 0, 0)) + + (x: T): string; +>T : Symbol(T, Decl(genericSignatureInheritance2.ts, 1, 5)) +>x : Symbol(x, Decl(genericSignatureInheritance2.ts, 1, 8)) +>T : Symbol(T, Decl(genericSignatureInheritance2.ts, 1, 5)) +} + +interface I2 extends I { +>I2 : Symbol(I2, Decl(genericSignatureInheritance2.ts, 2, 1)) +>I : Symbol(I, Decl(genericSignatureInheritance2.ts, 0, 0)) + + (x: T): void; +>T : Symbol(T, Decl(genericSignatureInheritance2.ts, 5, 5)) +>x : Symbol(x, Decl(genericSignatureInheritance2.ts, 5, 8)) +>T : Symbol(T, Decl(genericSignatureInheritance2.ts, 5, 5)) +} + diff --git a/tests/baselines/reference/genericSignatureInheritance2.types b/tests/baselines/reference/genericSignatureInheritance2.types index 90de548b16bca..0b31483cdc50e 100644 --- a/tests/baselines/reference/genericSignatureInheritance2.types +++ b/tests/baselines/reference/genericSignatureInheritance2.types @@ -1,20 +1,20 @@ === tests/cases/compiler/genericSignatureInheritance2.ts === interface I { ->I : I, Symbol(I, Decl(genericSignatureInheritance2.ts, 0, 0)) +>I : I (x: T): string; ->T : T, Symbol(T, Decl(genericSignatureInheritance2.ts, 1, 5)) ->x : T, Symbol(x, Decl(genericSignatureInheritance2.ts, 1, 8)) ->T : T, Symbol(T, Decl(genericSignatureInheritance2.ts, 1, 5)) +>T : T +>x : T +>T : T } interface I2 extends I { ->I2 : I2, Symbol(I2, Decl(genericSignatureInheritance2.ts, 2, 1)) ->I : I, Symbol(I, Decl(genericSignatureInheritance2.ts, 0, 0)) +>I2 : I2 +>I : I (x: T): void; ->T : T, Symbol(T, Decl(genericSignatureInheritance2.ts, 5, 5)) ->x : T, Symbol(x, Decl(genericSignatureInheritance2.ts, 5, 8)) ->T : T, Symbol(T, Decl(genericSignatureInheritance2.ts, 5, 5)) +>T : T +>x : T +>T : T } diff --git a/tests/baselines/reference/genericSpecializationToTypeLiteral1.symbols b/tests/baselines/reference/genericSpecializationToTypeLiteral1.symbols new file mode 100644 index 0000000000000..78203ddacf671 --- /dev/null +++ b/tests/baselines/reference/genericSpecializationToTypeLiteral1.symbols @@ -0,0 +1,178 @@ +=== tests/cases/compiler/genericSpecializationToTypeLiteral1.ts === +interface IEnumerable { +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + zip(second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; +>zip : Symbol(zip, Decl(genericSpecializationToTypeLiteral1.ts, 0, 26), Decl(genericSpecializationToTypeLiteral1.ts, 2, 128), Decl(genericSpecializationToTypeLiteral1.ts, 3, 117)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 2, 8)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 2, 17)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>resultSelector : Symbol(resultSelector, Decl(genericSpecializationToTypeLiteral1.ts, 2, 40)) +>first : Symbol(first, Decl(genericSpecializationToTypeLiteral1.ts, 2, 58)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 2, 67)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>index : Symbol(index, Decl(genericSpecializationToTypeLiteral1.ts, 2, 78)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 2, 8)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 2, 8)) + + zip(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; +>zip : Symbol(zip, Decl(genericSpecializationToTypeLiteral1.ts, 0, 26), Decl(genericSpecializationToTypeLiteral1.ts, 2, 128), Decl(genericSpecializationToTypeLiteral1.ts, 3, 117)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 3, 8)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 3, 17)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>resultSelector : Symbol(resultSelector, Decl(genericSpecializationToTypeLiteral1.ts, 3, 29)) +>first : Symbol(first, Decl(genericSpecializationToTypeLiteral1.ts, 3, 47)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 3, 56)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>index : Symbol(index, Decl(genericSpecializationToTypeLiteral1.ts, 3, 67)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 3, 8)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 3, 8)) + + zip(...params: any[]): IEnumerable; // last one is selector +>zip : Symbol(zip, Decl(genericSpecializationToTypeLiteral1.ts, 0, 26), Decl(genericSpecializationToTypeLiteral1.ts, 2, 128), Decl(genericSpecializationToTypeLiteral1.ts, 3, 117)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 4, 8)) +>params : Symbol(params, Decl(genericSpecializationToTypeLiteral1.ts, 4, 17)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 4, 8)) + + merge(...params: IEnumerable[]): IEnumerable; +>merge : Symbol(merge, Decl(genericSpecializationToTypeLiteral1.ts, 4, 57), Decl(genericSpecializationToTypeLiteral1.ts, 6, 64)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 6, 10)) +>params : Symbol(params, Decl(genericSpecializationToTypeLiteral1.ts, 6, 19)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + merge(...params: T[][]): IEnumerable; +>merge : Symbol(merge, Decl(genericSpecializationToTypeLiteral1.ts, 4, 57), Decl(genericSpecializationToTypeLiteral1.ts, 6, 64)) +>TResult : Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 7, 10)) +>params : Symbol(params, Decl(genericSpecializationToTypeLiteral1.ts, 7, 19)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + + concat(...sequences: IEnumerable[]): IEnumerable; +>concat : Symbol(concat, Decl(genericSpecializationToTypeLiteral1.ts, 7, 53), Decl(genericSpecializationToTypeLiteral1.ts, 10, 59)) +>sequences : Symbol(sequences, Decl(genericSpecializationToTypeLiteral1.ts, 10, 11)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + concat(...sequences: T[]): IEnumerable; +>concat : Symbol(concat, Decl(genericSpecializationToTypeLiteral1.ts, 7, 53), Decl(genericSpecializationToTypeLiteral1.ts, 10, 59)) +>sequences : Symbol(sequences, Decl(genericSpecializationToTypeLiteral1.ts, 11, 11)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + insert(index: number, second: IEnumerable): IEnumerable; +>insert : Symbol(insert, Decl(genericSpecializationToTypeLiteral1.ts, 11, 46)) +>index : Symbol(index, Decl(genericSpecializationToTypeLiteral1.ts, 13, 11)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 13, 25)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + sequenceEqual(second: IEnumerable): boolean; +>sequenceEqual : Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 15, 18)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + sequenceEqual(second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; +>sequenceEqual : Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) +>TCompare : Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 16, 18)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 16, 28)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>compareSelector : Symbol(compareSelector, Decl(genericSpecializationToTypeLiteral1.ts, 16, 51)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 16, 70)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TCompare : Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 16, 18)) + + sequenceEqual(second: T[]): boolean; +>sequenceEqual : Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 17, 18)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) + + sequenceEqual(second: T[], compareSelector: (element: T) => TCompare): boolean; +>sequenceEqual : Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) +>TCompare : Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 18, 18)) +>second : Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 18, 28)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>compareSelector : Symbol(compareSelector, Decl(genericSpecializationToTypeLiteral1.ts, 18, 40)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 18, 59)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TCompare : Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 18, 18)) + + toDictionary(keySelector: (element: T) => TKey): IDictionary; +>toDictionary : Symbol(toDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 18, 93), Decl(genericSpecializationToTypeLiteral1.ts, 20, 82), Decl(genericSpecializationToTypeLiteral1.ts, 21, 134)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 20, 17)) +>keySelector : Symbol(keySelector, Decl(genericSpecializationToTypeLiteral1.ts, 20, 23)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 20, 37)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 20, 17)) +>IDictionary : Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 20, 17)) + + toDictionary(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; +>toDictionary : Symbol(toDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 18, 93), Decl(genericSpecializationToTypeLiteral1.ts, 20, 82), Decl(genericSpecializationToTypeLiteral1.ts, 21, 134)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 21, 17)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 21, 22)) +>keySelector : Symbol(keySelector, Decl(genericSpecializationToTypeLiteral1.ts, 21, 31)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 21, 45)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 21, 17)) +>elementSelector : Symbol(elementSelector, Decl(genericSpecializationToTypeLiteral1.ts, 21, 65)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 21, 84)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 21, 22)) +>IDictionary : Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 21, 17)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 21, 22)) + + toDictionary(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; +>toDictionary : Symbol(toDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 18, 93), Decl(genericSpecializationToTypeLiteral1.ts, 20, 82), Decl(genericSpecializationToTypeLiteral1.ts, 21, 134)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 22, 22)) +>TCompare : Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 22, 30)) +>keySelector : Symbol(keySelector, Decl(genericSpecializationToTypeLiteral1.ts, 22, 41)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 22, 55)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) +>elementSelector : Symbol(elementSelector, Decl(genericSpecializationToTypeLiteral1.ts, 22, 75)) +>element : Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 22, 94)) +>T : Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 22, 22)) +>compareSelector : Symbol(compareSelector, Decl(genericSpecializationToTypeLiteral1.ts, 22, 116)) +>key : Symbol(key, Decl(genericSpecializationToTypeLiteral1.ts, 22, 135)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) +>TCompare : Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 22, 30)) +>IDictionary : Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 22, 22)) +} + +interface IDictionary { +>IDictionary : Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 25, 22)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 25, 27)) + + toEnumerable(): IEnumerable<{ key: TKey; value: TValue }>; +>toEnumerable : Symbol(toEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 25, 37)) +>IEnumerable : Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) +>key : Symbol(key, Decl(genericSpecializationToTypeLiteral1.ts, 26, 33)) +>TKey : Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 25, 22)) +>value : Symbol(value, Decl(genericSpecializationToTypeLiteral1.ts, 26, 44)) +>TValue : Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 25, 27)) +} diff --git a/tests/baselines/reference/genericSpecializationToTypeLiteral1.types b/tests/baselines/reference/genericSpecializationToTypeLiteral1.types index 0bc8c39c923e3..c75f07f6aef25 100644 --- a/tests/baselines/reference/genericSpecializationToTypeLiteral1.types +++ b/tests/baselines/reference/genericSpecializationToTypeLiteral1.types @@ -1,178 +1,178 @@ === tests/cases/compiler/genericSpecializationToTypeLiteral1.ts === interface IEnumerable { ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>IEnumerable : IEnumerable +>T : T zip(second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; ->zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; }, Symbol(zip, Decl(genericSpecializationToTypeLiteral1.ts, 0, 26), Decl(genericSpecializationToTypeLiteral1.ts, 2, 128), Decl(genericSpecializationToTypeLiteral1.ts, 3, 117)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 2, 8)) ->second : IEnumerable, Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 2, 17)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->resultSelector : (first: T, second: T, index: number) => TResult, Symbol(resultSelector, Decl(genericSpecializationToTypeLiteral1.ts, 2, 40)) ->first : T, Symbol(first, Decl(genericSpecializationToTypeLiteral1.ts, 2, 58)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->second : T, Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 2, 67)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->index : number, Symbol(index, Decl(genericSpecializationToTypeLiteral1.ts, 2, 78)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 2, 8)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 2, 8)) +>zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; } +>TResult : TResult +>second : IEnumerable +>IEnumerable : IEnumerable +>T : T +>resultSelector : (first: T, second: T, index: number) => TResult +>first : T +>T : T +>second : T +>T : T +>index : number +>TResult : TResult +>IEnumerable : IEnumerable +>TResult : TResult zip(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; ->zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; }, Symbol(zip, Decl(genericSpecializationToTypeLiteral1.ts, 0, 26), Decl(genericSpecializationToTypeLiteral1.ts, 2, 128), Decl(genericSpecializationToTypeLiteral1.ts, 3, 117)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 3, 8)) ->second : T[], Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 3, 17)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->resultSelector : (first: T, second: T, index: number) => TResult, Symbol(resultSelector, Decl(genericSpecializationToTypeLiteral1.ts, 3, 29)) ->first : T, Symbol(first, Decl(genericSpecializationToTypeLiteral1.ts, 3, 47)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->second : T, Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 3, 56)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->index : number, Symbol(index, Decl(genericSpecializationToTypeLiteral1.ts, 3, 67)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 3, 8)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 3, 8)) +>zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; } +>TResult : TResult +>second : T[] +>T : T +>resultSelector : (first: T, second: T, index: number) => TResult +>first : T +>T : T +>second : T +>T : T +>index : number +>TResult : TResult +>IEnumerable : IEnumerable +>TResult : TResult zip(...params: any[]): IEnumerable; // last one is selector ->zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; }, Symbol(zip, Decl(genericSpecializationToTypeLiteral1.ts, 0, 26), Decl(genericSpecializationToTypeLiteral1.ts, 2, 128), Decl(genericSpecializationToTypeLiteral1.ts, 3, 117)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 4, 8)) ->params : any[], Symbol(params, Decl(genericSpecializationToTypeLiteral1.ts, 4, 17)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 4, 8)) +>zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; } +>TResult : TResult +>params : any[] +>IEnumerable : IEnumerable +>TResult : TResult merge(...params: IEnumerable[]): IEnumerable; ->merge : { (...params: IEnumerable[]): IEnumerable; (...params: T[][]): IEnumerable; }, Symbol(merge, Decl(genericSpecializationToTypeLiteral1.ts, 4, 57), Decl(genericSpecializationToTypeLiteral1.ts, 6, 64)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 6, 10)) ->params : IEnumerable[], Symbol(params, Decl(genericSpecializationToTypeLiteral1.ts, 6, 19)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>merge : { (...params: IEnumerable[]): IEnumerable; (...params: T[][]): IEnumerable; } +>TResult : TResult +>params : IEnumerable[] +>IEnumerable : IEnumerable +>T : T +>IEnumerable : IEnumerable +>T : T merge(...params: T[][]): IEnumerable; ->merge : { (...params: IEnumerable[]): IEnumerable; (...params: T[][]): IEnumerable; }, Symbol(merge, Decl(genericSpecializationToTypeLiteral1.ts, 4, 57), Decl(genericSpecializationToTypeLiteral1.ts, 6, 64)) ->TResult : TResult, Symbol(TResult, Decl(genericSpecializationToTypeLiteral1.ts, 7, 10)) ->params : T[][], Symbol(params, Decl(genericSpecializationToTypeLiteral1.ts, 7, 19)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>merge : { (...params: IEnumerable[]): IEnumerable; (...params: T[][]): IEnumerable; } +>TResult : TResult +>params : T[][] +>T : T +>IEnumerable : IEnumerable +>T : T concat(...sequences: IEnumerable[]): IEnumerable; ->concat : { (...sequences: IEnumerable[]): IEnumerable; (...sequences: T[]): IEnumerable; }, Symbol(concat, Decl(genericSpecializationToTypeLiteral1.ts, 7, 53), Decl(genericSpecializationToTypeLiteral1.ts, 10, 59)) ->sequences : IEnumerable[], Symbol(sequences, Decl(genericSpecializationToTypeLiteral1.ts, 10, 11)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>concat : { (...sequences: IEnumerable[]): IEnumerable; (...sequences: T[]): IEnumerable; } +>sequences : IEnumerable[] +>IEnumerable : IEnumerable +>T : T +>IEnumerable : IEnumerable +>T : T concat(...sequences: T[]): IEnumerable; ->concat : { (...sequences: IEnumerable[]): IEnumerable; (...sequences: T[]): IEnumerable; }, Symbol(concat, Decl(genericSpecializationToTypeLiteral1.ts, 7, 53), Decl(genericSpecializationToTypeLiteral1.ts, 10, 59)) ->sequences : T[], Symbol(sequences, Decl(genericSpecializationToTypeLiteral1.ts, 11, 11)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>concat : { (...sequences: IEnumerable[]): IEnumerable; (...sequences: T[]): IEnumerable; } +>sequences : T[] +>T : T +>IEnumerable : IEnumerable +>T : T insert(index: number, second: IEnumerable): IEnumerable; ->insert : (index: number, second: IEnumerable) => IEnumerable, Symbol(insert, Decl(genericSpecializationToTypeLiteral1.ts, 11, 46)) ->index : number, Symbol(index, Decl(genericSpecializationToTypeLiteral1.ts, 13, 11)) ->second : IEnumerable, Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 13, 25)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>insert : (index: number, second: IEnumerable) => IEnumerable +>index : number +>second : IEnumerable +>IEnumerable : IEnumerable +>T : T +>IEnumerable : IEnumerable +>T : T sequenceEqual(second: IEnumerable): boolean; ->sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; }, Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) ->second : IEnumerable, Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 15, 18)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } +>second : IEnumerable +>IEnumerable : IEnumerable +>T : T sequenceEqual(second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; ->sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; }, Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) ->TCompare : TCompare, Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 16, 18)) ->second : IEnumerable, Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 16, 28)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->compareSelector : (element: T) => TCompare, Symbol(compareSelector, Decl(genericSpecializationToTypeLiteral1.ts, 16, 51)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 16, 70)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TCompare : TCompare, Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 16, 18)) +>sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } +>TCompare : TCompare +>second : IEnumerable +>IEnumerable : IEnumerable +>T : T +>compareSelector : (element: T) => TCompare +>element : T +>T : T +>TCompare : TCompare sequenceEqual(second: T[]): boolean; ->sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; }, Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) ->second : T[], Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 17, 18)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) +>sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } +>second : T[] +>T : T sequenceEqual(second: T[], compareSelector: (element: T) => TCompare): boolean; ->sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; }, Symbol(sequenceEqual, Decl(genericSpecializationToTypeLiteral1.ts, 13, 66), Decl(genericSpecializationToTypeLiteral1.ts, 15, 51), Decl(genericSpecializationToTypeLiteral1.ts, 16, 104), Decl(genericSpecializationToTypeLiteral1.ts, 17, 40)) ->TCompare : TCompare, Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 18, 18)) ->second : T[], Symbol(second, Decl(genericSpecializationToTypeLiteral1.ts, 18, 28)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->compareSelector : (element: T) => TCompare, Symbol(compareSelector, Decl(genericSpecializationToTypeLiteral1.ts, 18, 40)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 18, 59)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TCompare : TCompare, Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 18, 18)) +>sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } +>TCompare : TCompare +>second : T[] +>T : T +>compareSelector : (element: T) => TCompare +>element : T +>T : T +>TCompare : TCompare toDictionary(keySelector: (element: T) => TKey): IDictionary; ->toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; }, Symbol(toDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 18, 93), Decl(genericSpecializationToTypeLiteral1.ts, 20, 82), Decl(genericSpecializationToTypeLiteral1.ts, 21, 134)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 20, 17)) ->keySelector : (element: T) => TKey, Symbol(keySelector, Decl(genericSpecializationToTypeLiteral1.ts, 20, 23)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 20, 37)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 20, 17)) ->IDictionary : IDictionary, Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 20, 17)) +>toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; } +>TKey : TKey +>keySelector : (element: T) => TKey +>element : T +>T : T +>TKey : TKey +>IDictionary : IDictionary +>TKey : TKey toDictionary(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; ->toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; }, Symbol(toDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 18, 93), Decl(genericSpecializationToTypeLiteral1.ts, 20, 82), Decl(genericSpecializationToTypeLiteral1.ts, 21, 134)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 21, 17)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 21, 22)) ->keySelector : (element: T) => TKey, Symbol(keySelector, Decl(genericSpecializationToTypeLiteral1.ts, 21, 31)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 21, 45)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 21, 17)) ->elementSelector : (element: T) => TValue, Symbol(elementSelector, Decl(genericSpecializationToTypeLiteral1.ts, 21, 65)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 21, 84)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 21, 22)) ->IDictionary : IDictionary, Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 21, 17)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 21, 22)) +>toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; } +>TKey : TKey +>TValue : TValue +>keySelector : (element: T) => TKey +>element : T +>T : T +>TKey : TKey +>elementSelector : (element: T) => TValue +>element : T +>T : T +>TValue : TValue +>IDictionary : IDictionary +>TKey : TKey +>TValue : TValue toDictionary(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; ->toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; }, Symbol(toDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 18, 93), Decl(genericSpecializationToTypeLiteral1.ts, 20, 82), Decl(genericSpecializationToTypeLiteral1.ts, 21, 134)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 22, 22)) ->TCompare : TCompare, Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 22, 30)) ->keySelector : (element: T) => TKey, Symbol(keySelector, Decl(genericSpecializationToTypeLiteral1.ts, 22, 41)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 22, 55)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) ->elementSelector : (element: T) => TValue, Symbol(elementSelector, Decl(genericSpecializationToTypeLiteral1.ts, 22, 75)) ->element : T, Symbol(element, Decl(genericSpecializationToTypeLiteral1.ts, 22, 94)) ->T : T, Symbol(T, Decl(genericSpecializationToTypeLiteral1.ts, 0, 22)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 22, 22)) ->compareSelector : (key: TKey) => TCompare, Symbol(compareSelector, Decl(genericSpecializationToTypeLiteral1.ts, 22, 116)) ->key : TKey, Symbol(key, Decl(genericSpecializationToTypeLiteral1.ts, 22, 135)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) ->TCompare : TCompare, Symbol(TCompare, Decl(genericSpecializationToTypeLiteral1.ts, 22, 30)) ->IDictionary : IDictionary, Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 22, 17)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 22, 22)) +>toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; } +>TKey : TKey +>TValue : TValue +>TCompare : TCompare +>keySelector : (element: T) => TKey +>element : T +>T : T +>TKey : TKey +>elementSelector : (element: T) => TValue +>element : T +>T : T +>TValue : TValue +>compareSelector : (key: TKey) => TCompare +>key : TKey +>TKey : TKey +>TCompare : TCompare +>IDictionary : IDictionary +>TKey : TKey +>TValue : TValue } interface IDictionary { ->IDictionary : IDictionary, Symbol(IDictionary, Decl(genericSpecializationToTypeLiteral1.ts, 23, 1)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 25, 22)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 25, 27)) +>IDictionary : IDictionary +>TKey : TKey +>TValue : TValue toEnumerable(): IEnumerable<{ key: TKey; value: TValue }>; ->toEnumerable : () => IEnumerable<{ key: TKey; value: TValue; }>, Symbol(toEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 25, 37)) ->IEnumerable : IEnumerable, Symbol(IEnumerable, Decl(genericSpecializationToTypeLiteral1.ts, 0, 0)) ->key : TKey, Symbol(key, Decl(genericSpecializationToTypeLiteral1.ts, 26, 33)) ->TKey : TKey, Symbol(TKey, Decl(genericSpecializationToTypeLiteral1.ts, 25, 22)) ->value : TValue, Symbol(value, Decl(genericSpecializationToTypeLiteral1.ts, 26, 44)) ->TValue : TValue, Symbol(TValue, Decl(genericSpecializationToTypeLiteral1.ts, 25, 27)) +>toEnumerable : () => IEnumerable<{ key: TKey; value: TValue; }> +>IEnumerable : IEnumerable +>key : TKey +>TKey : TKey +>value : TValue +>TValue : TValue } diff --git a/tests/baselines/reference/genericSpecializations1.symbols b/tests/baselines/reference/genericSpecializations1.symbols new file mode 100644 index 0000000000000..87f31276b3ff1 --- /dev/null +++ b/tests/baselines/reference/genericSpecializations1.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/genericSpecializations1.ts === +interface IFoo { +>IFoo : Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 0, 15)) + + foo(x: T): T; // no error on implementors because IFoo's T is different from foo's T +>foo : Symbol(foo, Decl(genericSpecializations1.ts, 0, 19)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 1, 8)) +>x : Symbol(x, Decl(genericSpecializations1.ts, 1, 11)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 1, 8)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 1, 8)) +} + +class IntFooBad implements IFoo { +>IntFooBad : Symbol(IntFooBad, Decl(genericSpecializations1.ts, 2, 1)) +>IFoo : Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) + + foo(x: string): string { return null; } +>foo : Symbol(foo, Decl(genericSpecializations1.ts, 4, 41)) +>x : Symbol(x, Decl(genericSpecializations1.ts, 5, 8)) +} + +class StringFoo2 implements IFoo { +>StringFoo2 : Symbol(StringFoo2, Decl(genericSpecializations1.ts, 6, 1)) +>IFoo : Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) + + foo(x: string): string { return null; } +>foo : Symbol(foo, Decl(genericSpecializations1.ts, 8, 42)) +>x : Symbol(x, Decl(genericSpecializations1.ts, 9, 8)) +} + +class StringFoo3 implements IFoo { +>StringFoo3 : Symbol(StringFoo3, Decl(genericSpecializations1.ts, 10, 1)) +>IFoo : Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(genericSpecializations1.ts, 12, 42)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 13, 8)) +>x : Symbol(x, Decl(genericSpecializations1.ts, 13, 11)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 13, 8)) +>T : Symbol(T, Decl(genericSpecializations1.ts, 13, 8)) +} diff --git a/tests/baselines/reference/genericSpecializations1.types b/tests/baselines/reference/genericSpecializations1.types index fd147db09940f..87f32d86d52f4 100644 --- a/tests/baselines/reference/genericSpecializations1.types +++ b/tests/baselines/reference/genericSpecializations1.types @@ -1,45 +1,45 @@ === tests/cases/compiler/genericSpecializations1.ts === interface IFoo { ->IFoo : IFoo, Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 0, 15)) +>IFoo : IFoo +>T : T foo(x: T): T; // no error on implementors because IFoo's T is different from foo's T ->foo : (x: T) => T, Symbol(foo, Decl(genericSpecializations1.ts, 0, 19)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 1, 8)) ->x : T, Symbol(x, Decl(genericSpecializations1.ts, 1, 11)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 1, 8)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 1, 8)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T } class IntFooBad implements IFoo { ->IntFooBad : IntFooBad, Symbol(IntFooBad, Decl(genericSpecializations1.ts, 2, 1)) ->IFoo : IFoo, Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) +>IntFooBad : IntFooBad +>IFoo : IFoo foo(x: string): string { return null; } ->foo : (x: string) => string, Symbol(foo, Decl(genericSpecializations1.ts, 4, 41)) ->x : string, Symbol(x, Decl(genericSpecializations1.ts, 5, 8)) +>foo : (x: string) => string +>x : string >null : null } class StringFoo2 implements IFoo { ->StringFoo2 : StringFoo2, Symbol(StringFoo2, Decl(genericSpecializations1.ts, 6, 1)) ->IFoo : IFoo, Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) +>StringFoo2 : StringFoo2 +>IFoo : IFoo foo(x: string): string { return null; } ->foo : (x: string) => string, Symbol(foo, Decl(genericSpecializations1.ts, 8, 42)) ->x : string, Symbol(x, Decl(genericSpecializations1.ts, 9, 8)) +>foo : (x: string) => string +>x : string >null : null } class StringFoo3 implements IFoo { ->StringFoo3 : StringFoo3, Symbol(StringFoo3, Decl(genericSpecializations1.ts, 10, 1)) ->IFoo : IFoo, Symbol(IFoo, Decl(genericSpecializations1.ts, 0, 0)) +>StringFoo3 : StringFoo3 +>IFoo : IFoo foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(genericSpecializations1.ts, 12, 42)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 13, 8)) ->x : T, Symbol(x, Decl(genericSpecializations1.ts, 13, 11)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 13, 8)) ->T : T, Symbol(T, Decl(genericSpecializations1.ts, 13, 8)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null } diff --git a/tests/baselines/reference/genericStaticAnyTypeFunction.symbols b/tests/baselines/reference/genericStaticAnyTypeFunction.symbols new file mode 100644 index 0000000000000..21008a38698b1 --- /dev/null +++ b/tests/baselines/reference/genericStaticAnyTypeFunction.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/genericStaticAnyTypeFunction.ts === +class A { +>A : Symbol(A, Decl(genericStaticAnyTypeFunction.ts, 0, 0)) + + static one(source: T, value: number): T { +>one : Symbol(A.one, Decl(genericStaticAnyTypeFunction.ts, 0, 9)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 2, 15)) +>source : Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 2, 18)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 2, 15)) +>value : Symbol(value, Decl(genericStaticAnyTypeFunction.ts, 2, 28)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 2, 15)) + + return source; +>source : Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 2, 18)) + + } + static goo() { return 0; } +>goo : Symbol(A.goo, Decl(genericStaticAnyTypeFunction.ts, 6, 5)) + + static two(source: T): T { +>two : Symbol(A.two, Decl(genericStaticAnyTypeFunction.ts, 7, 30)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) +>source : Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 9, 18)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) + + return this.one(source, 42); // should not error +>this.one : Symbol(A.one, Decl(genericStaticAnyTypeFunction.ts, 0, 9)) +>this : Symbol(A, Decl(genericStaticAnyTypeFunction.ts, 0, 0)) +>one : Symbol(A.one, Decl(genericStaticAnyTypeFunction.ts, 0, 9)) +>T : Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) +>source : Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 9, 18)) + + } + +} + + + diff --git a/tests/baselines/reference/genericStaticAnyTypeFunction.types b/tests/baselines/reference/genericStaticAnyTypeFunction.types index 4185b92e43b11..38b3c3708e774 100644 --- a/tests/baselines/reference/genericStaticAnyTypeFunction.types +++ b/tests/baselines/reference/genericStaticAnyTypeFunction.types @@ -1,37 +1,37 @@ === tests/cases/compiler/genericStaticAnyTypeFunction.ts === class A { ->A : A, Symbol(A, Decl(genericStaticAnyTypeFunction.ts, 0, 0)) +>A : A static one(source: T, value: number): T { ->one : (source: T, value: number) => T, Symbol(A.one, Decl(genericStaticAnyTypeFunction.ts, 0, 9)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 2, 15)) ->source : T, Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 2, 18)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 2, 15)) ->value : number, Symbol(value, Decl(genericStaticAnyTypeFunction.ts, 2, 28)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 2, 15)) +>one : (source: T, value: number) => T +>T : T +>source : T +>T : T +>value : number +>T : T return source; ->source : T, Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 2, 18)) +>source : T } static goo() { return 0; } ->goo : () => number, Symbol(A.goo, Decl(genericStaticAnyTypeFunction.ts, 6, 5)) +>goo : () => number >0 : number static two(source: T): T { ->two : (source: T) => T, Symbol(A.two, Decl(genericStaticAnyTypeFunction.ts, 7, 30)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) ->source : T, Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 9, 18)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) +>two : (source: T) => T +>T : T +>source : T +>T : T +>T : T return this.one(source, 42); // should not error >this.one(source, 42) : T ->this.one : (source: T, value: number) => T, Symbol(A.one, Decl(genericStaticAnyTypeFunction.ts, 0, 9)) ->this : typeof A, Symbol(A, Decl(genericStaticAnyTypeFunction.ts, 0, 0)) ->one : (source: T, value: number) => T, Symbol(A.one, Decl(genericStaticAnyTypeFunction.ts, 0, 9)) ->T : T, Symbol(T, Decl(genericStaticAnyTypeFunction.ts, 9, 15)) ->source : T, Symbol(source, Decl(genericStaticAnyTypeFunction.ts, 9, 18)) +>this.one : (source: T, value: number) => T +>this : typeof A +>one : (source: T, value: number) => T +>T : T +>source : T >42 : number } diff --git a/tests/baselines/reference/genericTypeArgumentInference1.symbols b/tests/baselines/reference/genericTypeArgumentInference1.symbols new file mode 100644 index 0000000000000..7b88a84337e71 --- /dev/null +++ b/tests/baselines/reference/genericTypeArgumentInference1.symbols @@ -0,0 +1,79 @@ +=== tests/cases/compiler/genericTypeArgumentInference1.ts === +module Underscore { +>Underscore : Symbol(Underscore, Decl(genericTypeArgumentInference1.ts, 0, 0)) + + export interface Iterator { +>Iterator : Symbol(Iterator, Decl(genericTypeArgumentInference1.ts, 0, 19)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 1, 30)) +>U : Symbol(U, Decl(genericTypeArgumentInference1.ts, 1, 32)) + + (value: T, index: any, list: any): U; +>value : Symbol(value, Decl(genericTypeArgumentInference1.ts, 2, 9)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 1, 30)) +>index : Symbol(index, Decl(genericTypeArgumentInference1.ts, 2, 18)) +>list : Symbol(list, Decl(genericTypeArgumentInference1.ts, 2, 30)) +>U : Symbol(U, Decl(genericTypeArgumentInference1.ts, 1, 32)) + } + export interface Static { +>Static : Symbol(Static, Decl(genericTypeArgumentInference1.ts, 3, 5)) + + all(list: T[], iterator?: Iterator, context?: any): T; +>all : Symbol(all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) +>list : Symbol(list, Decl(genericTypeArgumentInference1.ts, 5, 15)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) +>iterator : Symbol(iterator, Decl(genericTypeArgumentInference1.ts, 5, 25)) +>Iterator : Symbol(Iterator, Decl(genericTypeArgumentInference1.ts, 0, 19)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) +>context : Symbol(context, Decl(genericTypeArgumentInference1.ts, 5, 58)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) + + identity(value: T): T; +>identity : Symbol(identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 6, 17)) +>value : Symbol(value, Decl(genericTypeArgumentInference1.ts, 6, 20)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 6, 17)) +>T : Symbol(T, Decl(genericTypeArgumentInference1.ts, 6, 17)) + } +} +declare var _: Underscore.Static; +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>Underscore : Symbol(Underscore, Decl(genericTypeArgumentInference1.ts, 0, 0)) +>Static : Symbol(Underscore.Static, Decl(genericTypeArgumentInference1.ts, 3, 5)) + +var r = _.all([true, 1, null, 'yes'], _.identity); +>r : Symbol(r, Decl(genericTypeArgumentInference1.ts, 11, 3)) +>_.all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) + +var r2 = _.all([true], _.identity); +>r2 : Symbol(r2, Decl(genericTypeArgumentInference1.ts, 12, 3)) +>_.all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) + +var r3 = _.all([], _.identity); +>r3 : Symbol(r3, Decl(genericTypeArgumentInference1.ts, 13, 3)) +>_.all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) + +var r4 = _.all([true], _.identity); +>r4 : Symbol(r4, Decl(genericTypeArgumentInference1.ts, 14, 3)) +>_.all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>all : Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_ : Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) +>identity : Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) + diff --git a/tests/baselines/reference/genericTypeArgumentInference1.types b/tests/baselines/reference/genericTypeArgumentInference1.types index 0939f1f3133dc..2d64c8f5c58d7 100644 --- a/tests/baselines/reference/genericTypeArgumentInference1.types +++ b/tests/baselines/reference/genericTypeArgumentInference1.types @@ -1,94 +1,94 @@ === tests/cases/compiler/genericTypeArgumentInference1.ts === module Underscore { ->Underscore : any, Symbol(Underscore, Decl(genericTypeArgumentInference1.ts, 0, 0)) +>Underscore : any export interface Iterator { ->Iterator : Iterator, Symbol(Iterator, Decl(genericTypeArgumentInference1.ts, 0, 19)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 1, 30)) ->U : U, Symbol(U, Decl(genericTypeArgumentInference1.ts, 1, 32)) +>Iterator : Iterator +>T : T +>U : U (value: T, index: any, list: any): U; ->value : T, Symbol(value, Decl(genericTypeArgumentInference1.ts, 2, 9)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 1, 30)) ->index : any, Symbol(index, Decl(genericTypeArgumentInference1.ts, 2, 18)) ->list : any, Symbol(list, Decl(genericTypeArgumentInference1.ts, 2, 30)) ->U : U, Symbol(U, Decl(genericTypeArgumentInference1.ts, 1, 32)) +>value : T +>T : T +>index : any +>list : any +>U : U } export interface Static { ->Static : Static, Symbol(Static, Decl(genericTypeArgumentInference1.ts, 3, 5)) +>Static : Static all(list: T[], iterator?: Iterator, context?: any): T; ->all : (list: T[], iterator?: Iterator, context?: any) => T, Symbol(all, Decl(genericTypeArgumentInference1.ts, 4, 29)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) ->list : T[], Symbol(list, Decl(genericTypeArgumentInference1.ts, 5, 15)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) ->iterator : Iterator, Symbol(iterator, Decl(genericTypeArgumentInference1.ts, 5, 25)) ->Iterator : Iterator, Symbol(Iterator, Decl(genericTypeArgumentInference1.ts, 0, 19)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) ->context : any, Symbol(context, Decl(genericTypeArgumentInference1.ts, 5, 58)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 5, 12)) +>all : (list: T[], iterator?: Iterator, context?: any) => T +>T : T +>list : T[] +>T : T +>iterator : Iterator +>Iterator : Iterator +>T : T +>context : any +>T : T identity(value: T): T; ->identity : (value: T) => T, Symbol(identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 6, 17)) ->value : T, Symbol(value, Decl(genericTypeArgumentInference1.ts, 6, 20)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 6, 17)) ->T : T, Symbol(T, Decl(genericTypeArgumentInference1.ts, 6, 17)) +>identity : (value: T) => T +>T : T +>value : T +>T : T +>T : T } } declare var _: Underscore.Static; ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->Underscore : any, Symbol(Underscore, Decl(genericTypeArgumentInference1.ts, 0, 0)) ->Static : Underscore.Static, Symbol(Underscore.Static, Decl(genericTypeArgumentInference1.ts, 3, 5)) +>_ : Underscore.Static +>Underscore : any +>Static : Underscore.Static var r = _.all([true, 1, null, 'yes'], _.identity); ->r : string | number | boolean, Symbol(r, Decl(genericTypeArgumentInference1.ts, 11, 3)) +>r : string | number | boolean >_.all([true, 1, null, 'yes'], _.identity) : string | number | boolean ->_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T +>_ : Underscore.Static +>all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T >[true, 1, null, 'yes'] : (string | number | boolean)[] >true : boolean >1 : number >null : null >'yes' : string ->_.identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_.identity : (value: T) => T +>_ : Underscore.Static +>identity : (value: T) => T var r2 = _.all([true], _.identity); ->r2 : boolean, Symbol(r2, Decl(genericTypeArgumentInference1.ts, 12, 3)) +>r2 : boolean >_.all([true], _.identity) : boolean ->_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T +>_ : Underscore.Static +>all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T >[true] : boolean[] >true : boolean ->_.identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_.identity : (value: T) => T +>_ : Underscore.Static +>identity : (value: T) => T var r3 = _.all([], _.identity); ->r3 : any, Symbol(r3, Decl(genericTypeArgumentInference1.ts, 13, 3)) +>r3 : any >_.all([], _.identity) : any ->_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T +>_ : Underscore.Static +>all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T >[] : undefined[] ->_.identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_.identity : (value: T) => T +>_ : Underscore.Static +>identity : (value: T) => T var r4 = _.all([true], _.identity); ->r4 : any, Symbol(r4, Decl(genericTypeArgumentInference1.ts, 14, 3)) +>r4 : any >_.all([true], _.identity) : any ->_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T, Symbol(Underscore.Static.all, Decl(genericTypeArgumentInference1.ts, 4, 29)) +>_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T +>_ : Underscore.Static +>all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T >[true] : any[] >true : any >true : boolean ->_.identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) ->_ : Underscore.Static, Symbol(_, Decl(genericTypeArgumentInference1.ts, 9, 11)) ->identity : (value: T) => T, Symbol(Underscore.Static.identity, Decl(genericTypeArgumentInference1.ts, 5, 77)) +>_.identity : (value: T) => T +>_ : Underscore.Static +>identity : (value: T) => T diff --git a/tests/baselines/reference/genericTypeAssertions3.symbols b/tests/baselines/reference/genericTypeAssertions3.symbols new file mode 100644 index 0000000000000..4d19f1562005d --- /dev/null +++ b/tests/baselines/reference/genericTypeAssertions3.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/genericTypeAssertions3.ts === +var r = < (x: T) => T > ((x) => { return null; }); // bug was 'could not find dotted symbol T' on x's annotation in the type assertion instead of no error +>r : Symbol(r, Decl(genericTypeAssertions3.ts, 0, 3)) +>T : Symbol(T, Decl(genericTypeAssertions3.ts, 0, 11)) +>x : Symbol(x, Decl(genericTypeAssertions3.ts, 0, 14)) +>T : Symbol(T, Decl(genericTypeAssertions3.ts, 0, 11)) +>T : Symbol(T, Decl(genericTypeAssertions3.ts, 0, 11)) +>x : Symbol(x, Decl(genericTypeAssertions3.ts, 0, 29)) + +var s = < (x: T) => T > ((x: any) => { return null; }); // no error +>s : Symbol(s, Decl(genericTypeAssertions3.ts, 1, 3)) +>T : Symbol(T, Decl(genericTypeAssertions3.ts, 1, 11)) +>x : Symbol(x, Decl(genericTypeAssertions3.ts, 1, 14)) +>T : Symbol(T, Decl(genericTypeAssertions3.ts, 1, 11)) +>T : Symbol(T, Decl(genericTypeAssertions3.ts, 1, 11)) +>x : Symbol(x, Decl(genericTypeAssertions3.ts, 1, 29)) + diff --git a/tests/baselines/reference/genericTypeAssertions3.types b/tests/baselines/reference/genericTypeAssertions3.types index 475b2261703c6..9f7facc8d478d 100644 --- a/tests/baselines/reference/genericTypeAssertions3.types +++ b/tests/baselines/reference/genericTypeAssertions3.types @@ -1,25 +1,25 @@ === tests/cases/compiler/genericTypeAssertions3.ts === var r = < (x: T) => T > ((x) => { return null; }); // bug was 'could not find dotted symbol T' on x's annotation in the type assertion instead of no error ->r : (x: T) => T, Symbol(r, Decl(genericTypeAssertions3.ts, 0, 3)) +>r : (x: T) => T >< (x: T) => T > ((x) => { return null; }) : (x: T) => T ->T : T, Symbol(T, Decl(genericTypeAssertions3.ts, 0, 11)) ->x : T, Symbol(x, Decl(genericTypeAssertions3.ts, 0, 14)) ->T : T, Symbol(T, Decl(genericTypeAssertions3.ts, 0, 11)) ->T : T, Symbol(T, Decl(genericTypeAssertions3.ts, 0, 11)) +>T : T +>x : T +>T : T +>T : T >((x) => { return null; }) : (x: any) => any >(x) => { return null; } : (x: any) => any ->x : any, Symbol(x, Decl(genericTypeAssertions3.ts, 0, 29)) +>x : any >null : null var s = < (x: T) => T > ((x: any) => { return null; }); // no error ->s : (x: T) => T, Symbol(s, Decl(genericTypeAssertions3.ts, 1, 3)) +>s : (x: T) => T >< (x: T) => T > ((x: any) => { return null; }) : (x: T) => T ->T : T, Symbol(T, Decl(genericTypeAssertions3.ts, 1, 11)) ->x : T, Symbol(x, Decl(genericTypeAssertions3.ts, 1, 14)) ->T : T, Symbol(T, Decl(genericTypeAssertions3.ts, 1, 11)) ->T : T, Symbol(T, Decl(genericTypeAssertions3.ts, 1, 11)) +>T : T +>x : T +>T : T +>T : T >((x: any) => { return null; }) : (x: any) => any >(x: any) => { return null; } : (x: any) => any ->x : any, Symbol(x, Decl(genericTypeAssertions3.ts, 1, 29)) +>x : any >null : null diff --git a/tests/baselines/reference/genericTypeParameterEquivalence2.symbols b/tests/baselines/reference/genericTypeParameterEquivalence2.symbols new file mode 100644 index 0000000000000..056b4ce96ab73 --- /dev/null +++ b/tests/baselines/reference/genericTypeParameterEquivalence2.symbols @@ -0,0 +1,192 @@ +=== tests/cases/compiler/genericTypeParameterEquivalence2.ts === +// compose :: (b->c) -> (a->b) -> (a->c) +function compose(f: (b: B) => C, g: (a:A) => B): (a:A) => C { +>compose : Symbol(compose, Decl(genericTypeParameterEquivalence2.ts, 0, 0)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 1, 19)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 1, 26)) +>b : Symbol(b, Decl(genericTypeParameterEquivalence2.ts, 1, 30)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 1, 19)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) +>g : Symbol(g, Decl(genericTypeParameterEquivalence2.ts, 1, 41)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 1, 46)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 1, 19)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 1, 59)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) + + return function (a:A) : C { +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 2, 21)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) + + return f(g.apply(null, a)); +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 1, 26)) +>g.apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>g : Symbol(g, Decl(genericTypeParameterEquivalence2.ts, 1, 41)) +>apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 2, 21)) + + }; +} + +// forEach :: [a] -> (a -> ()) -> () +function forEach(list: A[], f: (a: A, n?: number) => void ): void { +>forEach : Symbol(forEach, Decl(genericTypeParameterEquivalence2.ts, 5, 1)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 8, 17)) +>list : Symbol(list, Decl(genericTypeParameterEquivalence2.ts, 8, 20)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 8, 17)) +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 8, 30)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 8, 35)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 8, 17)) +>n : Symbol(n, Decl(genericTypeParameterEquivalence2.ts, 8, 40)) + + for (var i = 0; i < list.length; ++i) { +>i : Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) +>i : Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) +>list.length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>list : Symbol(list, Decl(genericTypeParameterEquivalence2.ts, 8, 20)) +>length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>i : Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) + + f(list[i], i); +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 8, 30)) +>list : Symbol(list, Decl(genericTypeParameterEquivalence2.ts, 8, 20)) +>i : Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) +>i : Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) + } +} + +// filter :: (a->bool) -> [a] -> [a] +function filter(f: (a: A) => boolean, ar: A[]): A[] { +>filter : Symbol(filter, Decl(genericTypeParameterEquivalence2.ts, 12, 1)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 15, 19)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 15, 23)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) +>ar : Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 15, 40)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) + + var ret = []; +>ret : Symbol(ret, Decl(genericTypeParameterEquivalence2.ts, 16, 7)) + + forEach(ar, (el) => { +>forEach : Symbol(forEach, Decl(genericTypeParameterEquivalence2.ts, 5, 1)) +>ar : Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 15, 40)) +>el : Symbol(el, Decl(genericTypeParameterEquivalence2.ts, 17, 17)) + + if (f(el)) { +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 15, 19)) +>el : Symbol(el, Decl(genericTypeParameterEquivalence2.ts, 17, 17)) + + ret.push(el); +>ret.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>ret : Symbol(ret, Decl(genericTypeParameterEquivalence2.ts, 16, 7)) +>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>el : Symbol(el, Decl(genericTypeParameterEquivalence2.ts, 17, 17)) + } + } ); + + return ret; +>ret : Symbol(ret, Decl(genericTypeParameterEquivalence2.ts, 16, 7)) +} + +// length :: [a] -> Num +function length2(ar: A[]): number { +>length2 : Symbol(length2, Decl(genericTypeParameterEquivalence2.ts, 24, 1)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 27, 17)) +>ar : Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 27, 20)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 27, 17)) + + return ar.length; +>ar.length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>ar : Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 27, 20)) +>length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +} + +// curry1 :: ((a,b)->c) -> (a->(b->c)) +function curry1(f: (a: A, b: B) => C): (ax: A) => (bx: B) => C { +>curry1 : Symbol(curry1, Decl(genericTypeParameterEquivalence2.ts, 29, 1)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 32, 21)) +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 32, 25)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 32, 29)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) +>b : Symbol(b, Decl(genericTypeParameterEquivalence2.ts, 32, 34)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 32, 21)) +>ax : Symbol(ax, Decl(genericTypeParameterEquivalence2.ts, 32, 49)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) +>bx : Symbol(bx, Decl(genericTypeParameterEquivalence2.ts, 32, 60)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) +>C : Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 32, 21)) + + return function (ay: A) { +>ay : Symbol(ay, Decl(genericTypeParameterEquivalence2.ts, 33, 21)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) + + return function (by: B) { +>by : Symbol(by, Decl(genericTypeParameterEquivalence2.ts, 34, 25)) +>B : Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) + + return f(ay, by); +>f : Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 32, 25)) +>ay : Symbol(ay, Decl(genericTypeParameterEquivalence2.ts, 33, 21)) +>by : Symbol(by, Decl(genericTypeParameterEquivalence2.ts, 34, 25)) + + }; + }; +} + +var cfilter = curry1(filter); +>cfilter : Symbol(cfilter, Decl(genericTypeParameterEquivalence2.ts, 40, 3)) +>curry1 : Symbol(curry1, Decl(genericTypeParameterEquivalence2.ts, 29, 1)) +>filter : Symbol(filter, Decl(genericTypeParameterEquivalence2.ts, 12, 1)) + +// compose :: (b->c) -> (a->b) -> (a->c) +// length :: [a] -> Num +// cfilter :: {} -> {} -> [{}] +// pred :: a -> Bool +// cfilter(pred) :: {} -> [{}] +// length2 :: [a] -> Num +// countWhere :: (a -> Bool) -> [a] -> Num + +function countWhere_1(pred: (a: A) => boolean): (a: A[]) => number { +>countWhere_1 : Symbol(countWhere_1, Decl(genericTypeParameterEquivalence2.ts, 40, 29)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 50, 22)) +>pred : Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 50, 25)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 50, 32)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 50, 22)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 50, 52)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 50, 22)) + + return compose(length2, cfilter(pred)); +>compose : Symbol(compose, Decl(genericTypeParameterEquivalence2.ts, 0, 0)) +>length2 : Symbol(length2, Decl(genericTypeParameterEquivalence2.ts, 24, 1)) +>cfilter : Symbol(cfilter, Decl(genericTypeParameterEquivalence2.ts, 40, 3)) +>pred : Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 50, 25)) +} + +function countWhere_2(pred: (a: A) => boolean): (a: A[]) => number { +>countWhere_2 : Symbol(countWhere_2, Decl(genericTypeParameterEquivalence2.ts, 52, 1)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 54, 22)) +>pred : Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 54, 25)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 54, 32)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 54, 22)) +>a : Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 54, 52)) +>A : Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 54, 22)) + + var where = cfilter(pred); +>where : Symbol(where, Decl(genericTypeParameterEquivalence2.ts, 55, 7)) +>cfilter : Symbol(cfilter, Decl(genericTypeParameterEquivalence2.ts, 40, 3)) +>pred : Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 54, 25)) + + return compose(length2, where); +>compose : Symbol(compose, Decl(genericTypeParameterEquivalence2.ts, 0, 0)) +>length2 : Symbol(length2, Decl(genericTypeParameterEquivalence2.ts, 24, 1)) +>where : Symbol(where, Decl(genericTypeParameterEquivalence2.ts, 55, 7)) +} diff --git a/tests/baselines/reference/genericTypeParameterEquivalence2.types b/tests/baselines/reference/genericTypeParameterEquivalence2.types index ddefffaee4886..3b2c533543d31 100644 --- a/tests/baselines/reference/genericTypeParameterEquivalence2.types +++ b/tests/baselines/reference/genericTypeParameterEquivalence2.types @@ -1,169 +1,169 @@ === tests/cases/compiler/genericTypeParameterEquivalence2.ts === // compose :: (b->c) -> (a->b) -> (a->c) function compose(f: (b: B) => C, g: (a:A) => B): (a:A) => C { ->compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C, Symbol(compose, Decl(genericTypeParameterEquivalence2.ts, 0, 0)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 1, 19)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) ->f : (b: B) => C, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 1, 26)) ->b : B, Symbol(b, Decl(genericTypeParameterEquivalence2.ts, 1, 30)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 1, 19)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) ->g : (a: A) => B, Symbol(g, Decl(genericTypeParameterEquivalence2.ts, 1, 41)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 1, 46)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 1, 19)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 1, 59)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) +>compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C +>A : A +>B : B +>C : C +>f : (b: B) => C +>b : B +>B : B +>C : C +>g : (a: A) => B +>a : A +>A : A +>B : B +>a : A +>A : A +>C : C return function (a:A) : C { >function (a:A) : C { return f(g.apply(null, a)); } : (a: A) => C ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 2, 21)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 1, 17)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 1, 22)) +>a : A +>A : A +>C : C return f(g.apply(null, a)); >f(g.apply(null, a)) : C ->f : (b: B) => C, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 1, 26)) +>f : (b: B) => C >g.apply(null, a) : any ->g.apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) ->g : (a: A) => B, Symbol(g, Decl(genericTypeParameterEquivalence2.ts, 1, 41)) ->apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>g.apply : (thisArg: any, argArray?: any) => any +>g : (a: A) => B +>apply : (thisArg: any, argArray?: any) => any >null : null ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 2, 21)) +>a : A }; } // forEach :: [a] -> (a -> ()) -> () function forEach(list: A[], f: (a: A, n?: number) => void ): void { ->forEach : (list: A[], f: (a: A, n?: number) => void) => void, Symbol(forEach, Decl(genericTypeParameterEquivalence2.ts, 5, 1)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 8, 17)) ->list : A[], Symbol(list, Decl(genericTypeParameterEquivalence2.ts, 8, 20)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 8, 17)) ->f : (a: A, n?: number) => void, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 8, 30)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 8, 35)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 8, 17)) ->n : number, Symbol(n, Decl(genericTypeParameterEquivalence2.ts, 8, 40)) +>forEach : (list: A[], f: (a: A, n?: number) => void) => void +>A : A +>list : A[] +>A : A +>f : (a: A, n?: number) => void +>a : A +>A : A +>n : number for (var i = 0; i < list.length; ++i) { ->i : number, Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) +>i : number >0 : number >i < list.length : boolean ->i : number, Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) ->list.length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) ->list : A[], Symbol(list, Decl(genericTypeParameterEquivalence2.ts, 8, 20)) ->length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>i : number +>list.length : number +>list : A[] +>length : number >++i : number ->i : number, Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) +>i : number f(list[i], i); >f(list[i], i) : void ->f : (a: A, n?: number) => void, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 8, 30)) +>f : (a: A, n?: number) => void >list[i] : A ->list : A[], Symbol(list, Decl(genericTypeParameterEquivalence2.ts, 8, 20)) ->i : number, Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) ->i : number, Symbol(i, Decl(genericTypeParameterEquivalence2.ts, 9, 12)) +>list : A[] +>i : number +>i : number } } // filter :: (a->bool) -> [a] -> [a] function filter(f: (a: A) => boolean, ar: A[]): A[] { ->filter : (f: (a: A) => boolean, ar: A[]) => A[], Symbol(filter, Decl(genericTypeParameterEquivalence2.ts, 12, 1)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) ->f : (a: A) => boolean, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 15, 19)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 15, 23)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) ->ar : A[], Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 15, 40)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 15, 16)) +>filter : (f: (a: A) => boolean, ar: A[]) => A[] +>A : A +>f : (a: A) => boolean +>a : A +>A : A +>ar : A[] +>A : A +>A : A var ret = []; ->ret : any[], Symbol(ret, Decl(genericTypeParameterEquivalence2.ts, 16, 7)) +>ret : any[] >[] : undefined[] forEach(ar, (el) => { >forEach(ar, (el) => { if (f(el)) { ret.push(el); } } ) : void ->forEach : (list: A[], f: (a: A, n?: number) => void) => void, Symbol(forEach, Decl(genericTypeParameterEquivalence2.ts, 5, 1)) ->ar : A[], Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 15, 40)) +>forEach : (list: A[], f: (a: A, n?: number) => void) => void +>ar : A[] >(el) => { if (f(el)) { ret.push(el); } } : (el: A) => void ->el : A, Symbol(el, Decl(genericTypeParameterEquivalence2.ts, 17, 17)) +>el : A if (f(el)) { >f(el) : boolean ->f : (a: A) => boolean, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 15, 19)) ->el : A, Symbol(el, Decl(genericTypeParameterEquivalence2.ts, 17, 17)) +>f : (a: A) => boolean +>el : A ret.push(el); >ret.push(el) : number ->ret.push : (...items: any[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->ret : any[], Symbol(ret, Decl(genericTypeParameterEquivalence2.ts, 16, 7)) ->push : (...items: any[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->el : A, Symbol(el, Decl(genericTypeParameterEquivalence2.ts, 17, 17)) +>ret.push : (...items: any[]) => number +>ret : any[] +>push : (...items: any[]) => number +>el : A } } ); return ret; ->ret : any[], Symbol(ret, Decl(genericTypeParameterEquivalence2.ts, 16, 7)) +>ret : any[] } // length :: [a] -> Num function length2(ar: A[]): number { ->length2 : (ar: A[]) => number, Symbol(length2, Decl(genericTypeParameterEquivalence2.ts, 24, 1)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 27, 17)) ->ar : A[], Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 27, 20)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 27, 17)) +>length2 : (ar: A[]) => number +>A : A +>ar : A[] +>A : A return ar.length; ->ar.length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) ->ar : A[], Symbol(ar, Decl(genericTypeParameterEquivalence2.ts, 27, 20)) ->length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>ar.length : number +>ar : A[] +>length : number } // curry1 :: ((a,b)->c) -> (a->(b->c)) function curry1(f: (a: A, b: B) => C): (ax: A) => (bx: B) => C { ->curry1 : (f: (a: A, b: B) => C) => (ax: A) => (bx: B) => C, Symbol(curry1, Decl(genericTypeParameterEquivalence2.ts, 29, 1)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 32, 21)) ->f : (a: A, b: B) => C, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 32, 25)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 32, 29)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) ->b : B, Symbol(b, Decl(genericTypeParameterEquivalence2.ts, 32, 34)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 32, 21)) ->ax : A, Symbol(ax, Decl(genericTypeParameterEquivalence2.ts, 32, 49)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) ->bx : B, Symbol(bx, Decl(genericTypeParameterEquivalence2.ts, 32, 60)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) ->C : C, Symbol(C, Decl(genericTypeParameterEquivalence2.ts, 32, 21)) +>curry1 : (f: (a: A, b: B) => C) => (ax: A) => (bx: B) => C +>A : A +>B : B +>C : C +>f : (a: A, b: B) => C +>a : A +>A : A +>b : B +>B : B +>C : C +>ax : A +>A : A +>bx : B +>B : B +>C : C return function (ay: A) { >function (ay: A) { return function (by: B) { return f(ay, by); }; } : (ay: A) => (by: B) => C ->ay : A, Symbol(ay, Decl(genericTypeParameterEquivalence2.ts, 33, 21)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 32, 16)) +>ay : A +>A : A return function (by: B) { >function (by: B) { return f(ay, by); } : (by: B) => C ->by : B, Symbol(by, Decl(genericTypeParameterEquivalence2.ts, 34, 25)) ->B : B, Symbol(B, Decl(genericTypeParameterEquivalence2.ts, 32, 18)) +>by : B +>B : B return f(ay, by); >f(ay, by) : C ->f : (a: A, b: B) => C, Symbol(f, Decl(genericTypeParameterEquivalence2.ts, 32, 25)) ->ay : A, Symbol(ay, Decl(genericTypeParameterEquivalence2.ts, 33, 21)) ->by : B, Symbol(by, Decl(genericTypeParameterEquivalence2.ts, 34, 25)) +>f : (a: A, b: B) => C +>ay : A +>by : B }; }; } var cfilter = curry1(filter); ->cfilter : (ax: {}) => (bx: {}) => {}[], Symbol(cfilter, Decl(genericTypeParameterEquivalence2.ts, 40, 3)) +>cfilter : (ax: {}) => (bx: {}) => {}[] >curry1(filter) : (ax: {}) => (bx: {}) => {}[] ->curry1 : (f: (a: A, b: B) => C) => (ax: A) => (bx: B) => C, Symbol(curry1, Decl(genericTypeParameterEquivalence2.ts, 29, 1)) ->filter : (f: (a: A) => boolean, ar: A[]) => A[], Symbol(filter, Decl(genericTypeParameterEquivalence2.ts, 12, 1)) +>curry1 : (f: (a: A, b: B) => C) => (ax: A) => (bx: B) => C +>filter : (f: (a: A) => boolean, ar: A[]) => A[] // compose :: (b->c) -> (a->b) -> (a->c) // length :: [a] -> Num @@ -174,41 +174,41 @@ var cfilter = curry1(filter); // countWhere :: (a -> Bool) -> [a] -> Num function countWhere_1(pred: (a: A) => boolean): (a: A[]) => number { ->countWhere_1 : (pred: (a: A) => boolean) => (a: A[]) => number, Symbol(countWhere_1, Decl(genericTypeParameterEquivalence2.ts, 40, 29)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 50, 22)) ->pred : (a: A) => boolean, Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 50, 25)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 50, 32)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 50, 22)) ->a : A[], Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 50, 52)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 50, 22)) +>countWhere_1 : (pred: (a: A) => boolean) => (a: A[]) => number +>A : A +>pred : (a: A) => boolean +>a : A +>A : A +>a : A[] +>A : A return compose(length2, cfilter(pred)); >compose(length2, cfilter(pred)) : (a: {}) => number ->compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C, Symbol(compose, Decl(genericTypeParameterEquivalence2.ts, 0, 0)) ->length2 : (ar: A[]) => number, Symbol(length2, Decl(genericTypeParameterEquivalence2.ts, 24, 1)) +>compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C +>length2 : (ar: A[]) => number >cfilter(pred) : (bx: {}) => {}[] ->cfilter : (ax: {}) => (bx: {}) => {}[], Symbol(cfilter, Decl(genericTypeParameterEquivalence2.ts, 40, 3)) ->pred : (a: A) => boolean, Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 50, 25)) +>cfilter : (ax: {}) => (bx: {}) => {}[] +>pred : (a: A) => boolean } function countWhere_2(pred: (a: A) => boolean): (a: A[]) => number { ->countWhere_2 : (pred: (a: A) => boolean) => (a: A[]) => number, Symbol(countWhere_2, Decl(genericTypeParameterEquivalence2.ts, 52, 1)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 54, 22)) ->pred : (a: A) => boolean, Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 54, 25)) ->a : A, Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 54, 32)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 54, 22)) ->a : A[], Symbol(a, Decl(genericTypeParameterEquivalence2.ts, 54, 52)) ->A : A, Symbol(A, Decl(genericTypeParameterEquivalence2.ts, 54, 22)) +>countWhere_2 : (pred: (a: A) => boolean) => (a: A[]) => number +>A : A +>pred : (a: A) => boolean +>a : A +>A : A +>a : A[] +>A : A var where = cfilter(pred); ->where : (bx: {}) => {}[], Symbol(where, Decl(genericTypeParameterEquivalence2.ts, 55, 7)) +>where : (bx: {}) => {}[] >cfilter(pred) : (bx: {}) => {}[] ->cfilter : (ax: {}) => (bx: {}) => {}[], Symbol(cfilter, Decl(genericTypeParameterEquivalence2.ts, 40, 3)) ->pred : (a: A) => boolean, Symbol(pred, Decl(genericTypeParameterEquivalence2.ts, 54, 25)) +>cfilter : (ax: {}) => (bx: {}) => {}[] +>pred : (a: A) => boolean return compose(length2, where); >compose(length2, where) : (a: {}) => number ->compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C, Symbol(compose, Decl(genericTypeParameterEquivalence2.ts, 0, 0)) ->length2 : (ar: A[]) => number, Symbol(length2, Decl(genericTypeParameterEquivalence2.ts, 24, 1)) ->where : (bx: {}) => {}[], Symbol(where, Decl(genericTypeParameterEquivalence2.ts, 55, 7)) +>compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C +>length2 : (ar: A[]) => number +>where : (bx: {}) => {}[] } diff --git a/tests/baselines/reference/genericTypeWithCallableMembers.symbols b/tests/baselines/reference/genericTypeWithCallableMembers.symbols new file mode 100644 index 0000000000000..f162ddf64ccd4 --- /dev/null +++ b/tests/baselines/reference/genericTypeWithCallableMembers.symbols @@ -0,0 +1,36 @@ +=== tests/cases/compiler/genericTypeWithCallableMembers.ts === +interface Constructable { +>Constructable : Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) + + new (): Constructable; +>Constructable : Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) +} + +class C { +>C : Symbol(C, Decl(genericTypeWithCallableMembers.ts, 2, 1)) +>T : Symbol(T, Decl(genericTypeWithCallableMembers.ts, 4, 8)) +>Constructable : Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) + + constructor(public data: T, public data2: Constructable) { } +>data : Symbol(data, Decl(genericTypeWithCallableMembers.ts, 5, 16)) +>T : Symbol(T, Decl(genericTypeWithCallableMembers.ts, 4, 8)) +>data2 : Symbol(data2, Decl(genericTypeWithCallableMembers.ts, 5, 31)) +>Constructable : Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) + + create() { +>create : Symbol(create, Decl(genericTypeWithCallableMembers.ts, 5, 64)) + + var x = new this.data(); // no error +>x : Symbol(x, Decl(genericTypeWithCallableMembers.ts, 7, 11)) +>this.data : Symbol(data, Decl(genericTypeWithCallableMembers.ts, 5, 16)) +>this : Symbol(C, Decl(genericTypeWithCallableMembers.ts, 2, 1)) +>data : Symbol(data, Decl(genericTypeWithCallableMembers.ts, 5, 16)) + + var x2 = new this.data2(); // was error, shouldn't be +>x2 : Symbol(x2, Decl(genericTypeWithCallableMembers.ts, 8, 11)) +>this.data2 : Symbol(data2, Decl(genericTypeWithCallableMembers.ts, 5, 31)) +>this : Symbol(C, Decl(genericTypeWithCallableMembers.ts, 2, 1)) +>data2 : Symbol(data2, Decl(genericTypeWithCallableMembers.ts, 5, 31)) + } +} + diff --git a/tests/baselines/reference/genericTypeWithCallableMembers.types b/tests/baselines/reference/genericTypeWithCallableMembers.types index 5bba31d33dd9d..e0068d5ff2b2f 100644 --- a/tests/baselines/reference/genericTypeWithCallableMembers.types +++ b/tests/baselines/reference/genericTypeWithCallableMembers.types @@ -1,38 +1,38 @@ === tests/cases/compiler/genericTypeWithCallableMembers.ts === interface Constructable { ->Constructable : Constructable, Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) +>Constructable : Constructable new (): Constructable; ->Constructable : Constructable, Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) +>Constructable : Constructable } class C { ->C : C, Symbol(C, Decl(genericTypeWithCallableMembers.ts, 2, 1)) ->T : T, Symbol(T, Decl(genericTypeWithCallableMembers.ts, 4, 8)) ->Constructable : Constructable, Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) +>C : C +>T : T +>Constructable : Constructable constructor(public data: T, public data2: Constructable) { } ->data : T, Symbol(data, Decl(genericTypeWithCallableMembers.ts, 5, 16)) ->T : T, Symbol(T, Decl(genericTypeWithCallableMembers.ts, 4, 8)) ->data2 : Constructable, Symbol(data2, Decl(genericTypeWithCallableMembers.ts, 5, 31)) ->Constructable : Constructable, Symbol(Constructable, Decl(genericTypeWithCallableMembers.ts, 0, 0)) +>data : T +>T : T +>data2 : Constructable +>Constructable : Constructable create() { ->create : () => void, Symbol(create, Decl(genericTypeWithCallableMembers.ts, 5, 64)) +>create : () => void var x = new this.data(); // no error ->x : Constructable, Symbol(x, Decl(genericTypeWithCallableMembers.ts, 7, 11)) +>x : Constructable >new this.data() : Constructable ->this.data : T, Symbol(data, Decl(genericTypeWithCallableMembers.ts, 5, 16)) ->this : C, Symbol(C, Decl(genericTypeWithCallableMembers.ts, 2, 1)) ->data : T, Symbol(data, Decl(genericTypeWithCallableMembers.ts, 5, 16)) +>this.data : T +>this : C +>data : T var x2 = new this.data2(); // was error, shouldn't be ->x2 : Constructable, Symbol(x2, Decl(genericTypeWithCallableMembers.ts, 8, 11)) +>x2 : Constructable >new this.data2() : Constructable ->this.data2 : Constructable, Symbol(data2, Decl(genericTypeWithCallableMembers.ts, 5, 31)) ->this : C, Symbol(C, Decl(genericTypeWithCallableMembers.ts, 2, 1)) ->data2 : Constructable, Symbol(data2, Decl(genericTypeWithCallableMembers.ts, 5, 31)) +>this.data2 : Constructable +>this : C +>data2 : Constructable } } diff --git a/tests/baselines/reference/genericTypeWithCallableMembers2.symbols b/tests/baselines/reference/genericTypeWithCallableMembers2.symbols new file mode 100644 index 0000000000000..746e5d77be289 --- /dev/null +++ b/tests/baselines/reference/genericTypeWithCallableMembers2.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericTypeWithCallableMembers2.ts === +function foo1(f: T) { +>foo1 : Symbol(foo1, Decl(genericTypeWithCallableMembers2.ts, 0, 0)) +>T : Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 0, 14)) +>f : Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 0, 41)) +>T : Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 0, 14)) + + return f(); // should return 'string', once returned 'any' +>f : Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 0, 41)) +} + +function foo2(f: T) { +>foo2 : Symbol(foo2, Decl(genericTypeWithCallableMembers2.ts, 2, 1)) +>T : Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 4, 14)) +>f : Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 4, 45)) +>T : Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 4, 14)) + + return new f(); // should be legal, once was an error +>f : Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 4, 45)) +} diff --git a/tests/baselines/reference/genericTypeWithCallableMembers2.types b/tests/baselines/reference/genericTypeWithCallableMembers2.types index a80951ec2bf5a..5c265e30a8588 100644 --- a/tests/baselines/reference/genericTypeWithCallableMembers2.types +++ b/tests/baselines/reference/genericTypeWithCallableMembers2.types @@ -1,22 +1,22 @@ === tests/cases/compiler/genericTypeWithCallableMembers2.ts === function foo1(f: T) { ->foo1 : string>(f: T) => string, Symbol(foo1, Decl(genericTypeWithCallableMembers2.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 0, 14)) ->f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 0, 41)) ->T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 0, 14)) +>foo1 : string>(f: T) => string +>T : T +>f : T +>T : T return f(); // should return 'string', once returned 'any' >f() : string ->f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 0, 41)) +>f : T } function foo2(f: T) { ->foo2 : string>(f: T) => string, Symbol(foo2, Decl(genericTypeWithCallableMembers2.ts, 2, 1)) ->T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 4, 14)) ->f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 4, 45)) ->T : T, Symbol(T, Decl(genericTypeWithCallableMembers2.ts, 4, 14)) +>foo2 : string>(f: T) => string +>T : T +>f : T +>T : T return new f(); // should be legal, once was an error >new f() : string ->f : T, Symbol(f, Decl(genericTypeWithCallableMembers2.ts, 4, 45)) +>f : T } diff --git a/tests/baselines/reference/genericTypeWithMultipleBases1.symbols b/tests/baselines/reference/genericTypeWithMultipleBases1.symbols new file mode 100644 index 0000000000000..f38f47e903888 --- /dev/null +++ b/tests/baselines/reference/genericTypeWithMultipleBases1.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/genericTypeWithMultipleBases1.ts === +export interface I1 { +>I1 : Symbol(I1, Decl(genericTypeWithMultipleBases1.ts, 0, 0)) + + m1: () => void; +>m1 : Symbol(m1, Decl(genericTypeWithMultipleBases1.ts, 0, 21)) +} + +export interface I2 { +>I2 : Symbol(I2, Decl(genericTypeWithMultipleBases1.ts, 2, 1)) + + m2: () => void; +>m2 : Symbol(m2, Decl(genericTypeWithMultipleBases1.ts, 4, 21)) +} + +export interface I3 extends I1, I2 { +>I3 : Symbol(I3, Decl(genericTypeWithMultipleBases1.ts, 6, 1)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases1.ts, 8, 20)) +>I1 : Symbol(I1, Decl(genericTypeWithMultipleBases1.ts, 0, 0)) +>I2 : Symbol(I2, Decl(genericTypeWithMultipleBases1.ts, 2, 1)) + +//export interface I3 extends I2, I1 { + p1: T; +>p1 : Symbol(p1, Decl(genericTypeWithMultipleBases1.ts, 8, 39)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases1.ts, 8, 20)) +} + +var x: I3; +>x : Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) +>I3 : Symbol(I3, Decl(genericTypeWithMultipleBases1.ts, 6, 1)) + +x.p1; +>x.p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases1.ts, 8, 39)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) +>p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases1.ts, 8, 39)) + +x.m1(); +>x.m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases1.ts, 0, 21)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) +>m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases1.ts, 0, 21)) + +x.m2(); +>x.m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases1.ts, 4, 21)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) +>m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases1.ts, 4, 21)) + + diff --git a/tests/baselines/reference/genericTypeWithMultipleBases1.types b/tests/baselines/reference/genericTypeWithMultipleBases1.types index ad388a5967665..c3bb692d9f2b3 100644 --- a/tests/baselines/reference/genericTypeWithMultipleBases1.types +++ b/tests/baselines/reference/genericTypeWithMultipleBases1.types @@ -1,49 +1,49 @@ === tests/cases/compiler/genericTypeWithMultipleBases1.ts === export interface I1 { ->I1 : I1, Symbol(I1, Decl(genericTypeWithMultipleBases1.ts, 0, 0)) +>I1 : I1 m1: () => void; ->m1 : () => void, Symbol(m1, Decl(genericTypeWithMultipleBases1.ts, 0, 21)) +>m1 : () => void } export interface I2 { ->I2 : I2, Symbol(I2, Decl(genericTypeWithMultipleBases1.ts, 2, 1)) +>I2 : I2 m2: () => void; ->m2 : () => void, Symbol(m2, Decl(genericTypeWithMultipleBases1.ts, 4, 21)) +>m2 : () => void } export interface I3 extends I1, I2 { ->I3 : I3, Symbol(I3, Decl(genericTypeWithMultipleBases1.ts, 6, 1)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases1.ts, 8, 20)) ->I1 : I1, Symbol(I1, Decl(genericTypeWithMultipleBases1.ts, 0, 0)) ->I2 : I2, Symbol(I2, Decl(genericTypeWithMultipleBases1.ts, 2, 1)) +>I3 : I3 +>T : T +>I1 : I1 +>I2 : I2 //export interface I3 extends I2, I1 { p1: T; ->p1 : T, Symbol(p1, Decl(genericTypeWithMultipleBases1.ts, 8, 39)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases1.ts, 8, 20)) +>p1 : T +>T : T } var x: I3; ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) ->I3 : I3, Symbol(I3, Decl(genericTypeWithMultipleBases1.ts, 6, 1)) +>x : I3 +>I3 : I3 x.p1; ->x.p1 : number, Symbol(I3.p1, Decl(genericTypeWithMultipleBases1.ts, 8, 39)) ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) ->p1 : number, Symbol(I3.p1, Decl(genericTypeWithMultipleBases1.ts, 8, 39)) +>x.p1 : number +>x : I3 +>p1 : number x.m1(); >x.m1() : void ->x.m1 : () => void, Symbol(I1.m1, Decl(genericTypeWithMultipleBases1.ts, 0, 21)) ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) ->m1 : () => void, Symbol(I1.m1, Decl(genericTypeWithMultipleBases1.ts, 0, 21)) +>x.m1 : () => void +>x : I3 +>m1 : () => void x.m2(); >x.m2() : void ->x.m2 : () => void, Symbol(I2.m2, Decl(genericTypeWithMultipleBases1.ts, 4, 21)) ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases1.ts, 13, 3)) ->m2 : () => void, Symbol(I2.m2, Decl(genericTypeWithMultipleBases1.ts, 4, 21)) +>x.m2 : () => void +>x : I3 +>m2 : () => void diff --git a/tests/baselines/reference/genericTypeWithMultipleBases2.symbols b/tests/baselines/reference/genericTypeWithMultipleBases2.symbols new file mode 100644 index 0000000000000..e5b97ce73fa9b --- /dev/null +++ b/tests/baselines/reference/genericTypeWithMultipleBases2.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/genericTypeWithMultipleBases2.ts === +export interface I1 { +>I1 : Symbol(I1, Decl(genericTypeWithMultipleBases2.ts, 0, 0)) + + m1: () => void; +>m1 : Symbol(m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) +} + +export interface I2 { +>I2 : Symbol(I2, Decl(genericTypeWithMultipleBases2.ts, 2, 1)) + + m2: () => void; +>m2 : Symbol(m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) +} + +export interface I3 extends I2, I1 { +>I3 : Symbol(I3, Decl(genericTypeWithMultipleBases2.ts, 6, 1)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases2.ts, 8, 20)) +>I2 : Symbol(I2, Decl(genericTypeWithMultipleBases2.ts, 2, 1)) +>I1 : Symbol(I1, Decl(genericTypeWithMultipleBases2.ts, 0, 0)) + + p1: T; +>p1 : Symbol(p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases2.ts, 8, 20)) +} + +var x: I3; +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>I3 : Symbol(I3, Decl(genericTypeWithMultipleBases2.ts, 6, 1)) + +x.p1; +>x.p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>p1 : Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) + +x.m1(); +>x.m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>m1 : Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) + +x.m2(); +>x.m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) +>m2 : Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) + + diff --git a/tests/baselines/reference/genericTypeWithMultipleBases2.types b/tests/baselines/reference/genericTypeWithMultipleBases2.types index aa667b0f6de7c..a04e57075c393 100644 --- a/tests/baselines/reference/genericTypeWithMultipleBases2.types +++ b/tests/baselines/reference/genericTypeWithMultipleBases2.types @@ -1,48 +1,48 @@ === tests/cases/compiler/genericTypeWithMultipleBases2.ts === export interface I1 { ->I1 : I1, Symbol(I1, Decl(genericTypeWithMultipleBases2.ts, 0, 0)) +>I1 : I1 m1: () => void; ->m1 : () => void, Symbol(m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) +>m1 : () => void } export interface I2 { ->I2 : I2, Symbol(I2, Decl(genericTypeWithMultipleBases2.ts, 2, 1)) +>I2 : I2 m2: () => void; ->m2 : () => void, Symbol(m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) +>m2 : () => void } export interface I3 extends I2, I1 { ->I3 : I3, Symbol(I3, Decl(genericTypeWithMultipleBases2.ts, 6, 1)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases2.ts, 8, 20)) ->I2 : I2, Symbol(I2, Decl(genericTypeWithMultipleBases2.ts, 2, 1)) ->I1 : I1, Symbol(I1, Decl(genericTypeWithMultipleBases2.ts, 0, 0)) +>I3 : I3 +>T : T +>I2 : I2 +>I1 : I1 p1: T; ->p1 : T, Symbol(p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases2.ts, 8, 20)) +>p1 : T +>T : T } var x: I3; ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) ->I3 : I3, Symbol(I3, Decl(genericTypeWithMultipleBases2.ts, 6, 1)) +>x : I3 +>I3 : I3 x.p1; ->x.p1 : number, Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) ->p1 : number, Symbol(I3.p1, Decl(genericTypeWithMultipleBases2.ts, 8, 39)) +>x.p1 : number +>x : I3 +>p1 : number x.m1(); >x.m1() : void ->x.m1 : () => void, Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) ->m1 : () => void, Symbol(I1.m1, Decl(genericTypeWithMultipleBases2.ts, 0, 21)) +>x.m1 : () => void +>x : I3 +>m1 : () => void x.m2(); >x.m2() : void ->x.m2 : () => void, Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) ->x : I3, Symbol(x, Decl(genericTypeWithMultipleBases2.ts, 12, 3)) ->m2 : () => void, Symbol(I2.m2, Decl(genericTypeWithMultipleBases2.ts, 4, 21)) +>x.m2 : () => void +>x : I3 +>m2 : () => void diff --git a/tests/baselines/reference/genericTypeWithMultipleBases3.symbols b/tests/baselines/reference/genericTypeWithMultipleBases3.symbols new file mode 100644 index 0000000000000..024ddcdf37457 --- /dev/null +++ b/tests/baselines/reference/genericTypeWithMultipleBases3.symbols @@ -0,0 +1,49 @@ +=== tests/cases/compiler/genericTypeWithMultipleBases3.ts === +interface IA { +>IA : Symbol(IA, Decl(genericTypeWithMultipleBases3.ts, 0, 0)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 0, 13)) + +foo(x: T): T; +>foo : Symbol(foo, Decl(genericTypeWithMultipleBases3.ts, 0, 17)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases3.ts, 2, 4)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 0, 13)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 0, 13)) + +} + +interface IB { +>IB : Symbol(IB, Decl(genericTypeWithMultipleBases3.ts, 4, 1)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 6, 13)) + +bar(x: T): T; +>bar : Symbol(bar, Decl(genericTypeWithMultipleBases3.ts, 6, 17)) +>x : Symbol(x, Decl(genericTypeWithMultipleBases3.ts, 8, 4)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 6, 13)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 6, 13)) + +} + +interface IC extends IA, IB { } +>IC : Symbol(IC, Decl(genericTypeWithMultipleBases3.ts, 10, 1)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 12, 13)) +>IA : Symbol(IA, Decl(genericTypeWithMultipleBases3.ts, 0, 0)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 12, 13)) +>IB : Symbol(IB, Decl(genericTypeWithMultipleBases3.ts, 4, 1)) +>T : Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 12, 13)) + +var c: IC; +>c : Symbol(c, Decl(genericTypeWithMultipleBases3.ts, 14, 3)) +>IC : Symbol(IC, Decl(genericTypeWithMultipleBases3.ts, 10, 1)) + +var x = c.foo; +>x : Symbol(x, Decl(genericTypeWithMultipleBases3.ts, 16, 3)) +>c.foo : Symbol(IA.foo, Decl(genericTypeWithMultipleBases3.ts, 0, 17)) +>c : Symbol(c, Decl(genericTypeWithMultipleBases3.ts, 14, 3)) +>foo : Symbol(IA.foo, Decl(genericTypeWithMultipleBases3.ts, 0, 17)) + +var y = c.bar; +>y : Symbol(y, Decl(genericTypeWithMultipleBases3.ts, 18, 3)) +>c.bar : Symbol(IB.bar, Decl(genericTypeWithMultipleBases3.ts, 6, 17)) +>c : Symbol(c, Decl(genericTypeWithMultipleBases3.ts, 14, 3)) +>bar : Symbol(IB.bar, Decl(genericTypeWithMultipleBases3.ts, 6, 17)) + diff --git a/tests/baselines/reference/genericTypeWithMultipleBases3.types b/tests/baselines/reference/genericTypeWithMultipleBases3.types index 8e791396b8f89..a0127b456bbb4 100644 --- a/tests/baselines/reference/genericTypeWithMultipleBases3.types +++ b/tests/baselines/reference/genericTypeWithMultipleBases3.types @@ -1,49 +1,49 @@ === tests/cases/compiler/genericTypeWithMultipleBases3.ts === interface IA { ->IA : IA, Symbol(IA, Decl(genericTypeWithMultipleBases3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 0, 13)) +>IA : IA +>T : T foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(genericTypeWithMultipleBases3.ts, 0, 17)) ->x : T, Symbol(x, Decl(genericTypeWithMultipleBases3.ts, 2, 4)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 0, 13)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 0, 13)) +>foo : (x: T) => T +>x : T +>T : T +>T : T } interface IB { ->IB : IB, Symbol(IB, Decl(genericTypeWithMultipleBases3.ts, 4, 1)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 6, 13)) +>IB : IB +>T : T bar(x: T): T; ->bar : (x: T) => T, Symbol(bar, Decl(genericTypeWithMultipleBases3.ts, 6, 17)) ->x : T, Symbol(x, Decl(genericTypeWithMultipleBases3.ts, 8, 4)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 6, 13)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 6, 13)) +>bar : (x: T) => T +>x : T +>T : T +>T : T } interface IC extends IA, IB { } ->IC : IC, Symbol(IC, Decl(genericTypeWithMultipleBases3.ts, 10, 1)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 12, 13)) ->IA : IA, Symbol(IA, Decl(genericTypeWithMultipleBases3.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 12, 13)) ->IB : IB, Symbol(IB, Decl(genericTypeWithMultipleBases3.ts, 4, 1)) ->T : T, Symbol(T, Decl(genericTypeWithMultipleBases3.ts, 12, 13)) +>IC : IC +>T : T +>IA : IA +>T : T +>IB : IB +>T : T var c: IC; ->c : IC, Symbol(c, Decl(genericTypeWithMultipleBases3.ts, 14, 3)) ->IC : IC, Symbol(IC, Decl(genericTypeWithMultipleBases3.ts, 10, 1)) +>c : IC +>IC : IC var x = c.foo; ->x : (x: number) => number, Symbol(x, Decl(genericTypeWithMultipleBases3.ts, 16, 3)) ->c.foo : (x: number) => number, Symbol(IA.foo, Decl(genericTypeWithMultipleBases3.ts, 0, 17)) ->c : IC, Symbol(c, Decl(genericTypeWithMultipleBases3.ts, 14, 3)) ->foo : (x: number) => number, Symbol(IA.foo, Decl(genericTypeWithMultipleBases3.ts, 0, 17)) +>x : (x: number) => number +>c.foo : (x: number) => number +>c : IC +>foo : (x: number) => number var y = c.bar; ->y : (x: number) => number, Symbol(y, Decl(genericTypeWithMultipleBases3.ts, 18, 3)) ->c.bar : (x: number) => number, Symbol(IB.bar, Decl(genericTypeWithMultipleBases3.ts, 6, 17)) ->c : IC, Symbol(c, Decl(genericTypeWithMultipleBases3.ts, 14, 3)) ->bar : (x: number) => number, Symbol(IB.bar, Decl(genericTypeWithMultipleBases3.ts, 6, 17)) +>y : (x: number) => number +>c.bar : (x: number) => number +>c : IC +>bar : (x: number) => number diff --git a/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.symbols b/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.symbols new file mode 100644 index 0000000000000..02e73f4819eec --- /dev/null +++ b/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/genericWithCallSignatureReturningSpecialization.ts === +interface B { +>B : Symbol(B, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 0)) +>T : Symbol(T, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 12)) + + f(): B; +>f : Symbol(f, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 16)) +>B : Symbol(B, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 0)) + + (value: T): void; +>value : Symbol(value, Decl(genericWithCallSignatureReturningSpecialization.ts, 2, 5)) +>T : Symbol(T, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 12)) +} +var x: B; +>x : Symbol(x, Decl(genericWithCallSignatureReturningSpecialization.ts, 4, 3)) +>B : Symbol(B, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 0)) + +x(true); // was error +>x : Symbol(x, Decl(genericWithCallSignatureReturningSpecialization.ts, 4, 3)) + diff --git a/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.types b/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.types index b557326d54e59..c58d56e3a75d9 100644 --- a/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.types +++ b/tests/baselines/reference/genericWithCallSignatureReturningSpecialization.types @@ -1,22 +1,22 @@ === tests/cases/compiler/genericWithCallSignatureReturningSpecialization.ts === interface B { ->B : B, Symbol(B, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 12)) +>B : B +>T : T f(): B; ->f : () => B, Symbol(f, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 16)) ->B : B, Symbol(B, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 0)) +>f : () => B +>B : B (value: T): void; ->value : T, Symbol(value, Decl(genericWithCallSignatureReturningSpecialization.ts, 2, 5)) ->T : T, Symbol(T, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 12)) +>value : T +>T : T } var x: B; ->x : B, Symbol(x, Decl(genericWithCallSignatureReturningSpecialization.ts, 4, 3)) ->B : B, Symbol(B, Decl(genericWithCallSignatureReturningSpecialization.ts, 0, 0)) +>x : B +>B : B x(true); // was error >x(true) : void ->x : B, Symbol(x, Decl(genericWithCallSignatureReturningSpecialization.ts, 4, 3)) +>x : B >true : boolean diff --git a/tests/baselines/reference/genericWithCallSignatures1.symbols b/tests/baselines/reference/genericWithCallSignatures1.symbols new file mode 100644 index 0000000000000..d791308b46ead --- /dev/null +++ b/tests/baselines/reference/genericWithCallSignatures1.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/genericWithCallSignatures_1.ts === +/// +class MyClass { +>MyClass : Symbol(MyClass, Decl(genericWithCallSignatures_1.ts, 0, 0)) + + public callableThing: CallableExtention; +>callableThing : Symbol(callableThing, Decl(genericWithCallSignatures_1.ts, 1, 15)) +>CallableExtention : Symbol(CallableExtention, Decl(genericWithCallSignatures_0.ts, 3, 1)) + + public myMethod() { +>myMethod : Symbol(myMethod, Decl(genericWithCallSignatures_1.ts, 2, 52)) + + var x = this.callableThing(); +>x : Symbol(x, Decl(genericWithCallSignatures_1.ts, 5, 11)) +>this.callableThing : Symbol(callableThing, Decl(genericWithCallSignatures_1.ts, 1, 15)) +>this : Symbol(MyClass, Decl(genericWithCallSignatures_1.ts, 0, 0)) +>callableThing : Symbol(callableThing, Decl(genericWithCallSignatures_1.ts, 1, 15)) + } +} +=== tests/cases/compiler/genericWithCallSignatures_0.ts === +interface Callable { +>Callable : Symbol(Callable, Decl(genericWithCallSignatures_0.ts, 0, 0)) +>T : Symbol(T, Decl(genericWithCallSignatures_0.ts, 0, 19)) + + (): T; +>T : Symbol(T, Decl(genericWithCallSignatures_0.ts, 0, 19)) + + (value: T): void; +>value : Symbol(value, Decl(genericWithCallSignatures_0.ts, 2, 5)) +>T : Symbol(T, Decl(genericWithCallSignatures_0.ts, 0, 19)) +} + +interface CallableExtention extends Callable { } +>CallableExtention : Symbol(CallableExtention, Decl(genericWithCallSignatures_0.ts, 3, 1)) +>T : Symbol(T, Decl(genericWithCallSignatures_0.ts, 5, 28)) +>Callable : Symbol(Callable, Decl(genericWithCallSignatures_0.ts, 0, 0)) +>T : Symbol(T, Decl(genericWithCallSignatures_0.ts, 5, 28)) + diff --git a/tests/baselines/reference/genericWithCallSignatures1.types b/tests/baselines/reference/genericWithCallSignatures1.types index 38d4585845504..b55b4bbc64bdc 100644 --- a/tests/baselines/reference/genericWithCallSignatures1.types +++ b/tests/baselines/reference/genericWithCallSignatures1.types @@ -1,40 +1,40 @@ === tests/cases/compiler/genericWithCallSignatures_1.ts === /// class MyClass { ->MyClass : MyClass, Symbol(MyClass, Decl(genericWithCallSignatures_1.ts, 0, 0)) +>MyClass : MyClass public callableThing: CallableExtention; ->callableThing : CallableExtention, Symbol(callableThing, Decl(genericWithCallSignatures_1.ts, 1, 15)) ->CallableExtention : CallableExtention, Symbol(CallableExtention, Decl(genericWithCallSignatures_0.ts, 3, 1)) +>callableThing : CallableExtention +>CallableExtention : CallableExtention public myMethod() { ->myMethod : () => void, Symbol(myMethod, Decl(genericWithCallSignatures_1.ts, 2, 52)) +>myMethod : () => void var x = this.callableThing(); ->x : string, Symbol(x, Decl(genericWithCallSignatures_1.ts, 5, 11)) +>x : string > this.callableThing() : string >this.callableThing() : string ->this.callableThing : CallableExtention, Symbol(callableThing, Decl(genericWithCallSignatures_1.ts, 1, 15)) ->this : MyClass, Symbol(MyClass, Decl(genericWithCallSignatures_1.ts, 0, 0)) ->callableThing : CallableExtention, Symbol(callableThing, Decl(genericWithCallSignatures_1.ts, 1, 15)) +>this.callableThing : CallableExtention +>this : MyClass +>callableThing : CallableExtention } } === tests/cases/compiler/genericWithCallSignatures_0.ts === interface Callable { ->Callable : Callable, Symbol(Callable, Decl(genericWithCallSignatures_0.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericWithCallSignatures_0.ts, 0, 19)) +>Callable : Callable +>T : T (): T; ->T : T, Symbol(T, Decl(genericWithCallSignatures_0.ts, 0, 19)) +>T : T (value: T): void; ->value : T, Symbol(value, Decl(genericWithCallSignatures_0.ts, 2, 5)) ->T : T, Symbol(T, Decl(genericWithCallSignatures_0.ts, 0, 19)) +>value : T +>T : T } interface CallableExtention extends Callable { } ->CallableExtention : CallableExtention, Symbol(CallableExtention, Decl(genericWithCallSignatures_0.ts, 3, 1)) ->T : T, Symbol(T, Decl(genericWithCallSignatures_0.ts, 5, 28)) ->Callable : Callable, Symbol(Callable, Decl(genericWithCallSignatures_0.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericWithCallSignatures_0.ts, 5, 28)) +>CallableExtention : CallableExtention +>T : T +>Callable : Callable +>T : T diff --git a/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.symbols b/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.symbols new file mode 100644 index 0000000000000..26918e9ebfb33 --- /dev/null +++ b/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/genericWithIndexerOfTypeParameterType1.ts === +class LazyArray { +>LazyArray : Symbol(LazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 0)) +>T : Symbol(T, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 16)) + + private objects = <{ [objectId: string]: T; }>{}; +>objects : Symbol(objects, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 20)) +>objectId : Symbol(objectId, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 26)) +>T : Symbol(T, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 16)) + + array() { +>array : Symbol(array, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 53)) + + return this.objects; +>this.objects : Symbol(objects, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 20)) +>this : Symbol(LazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 0)) +>objects : Symbol(objects, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 20)) + } +} +var lazyArray = new LazyArray(); +>lazyArray : Symbol(lazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 6, 3)) +>LazyArray : Symbol(LazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 0)) + +var value: string = lazyArray.array()["test"]; // used to be an error +>value : Symbol(value, Decl(genericWithIndexerOfTypeParameterType1.ts, 7, 3)) +>lazyArray.array : Symbol(LazyArray.array, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 53)) +>lazyArray : Symbol(lazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 6, 3)) +>array : Symbol(LazyArray.array, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 53)) + diff --git a/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.types b/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.types index 8ab97a398281b..3e281f6072a52 100644 --- a/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.types +++ b/tests/baselines/reference/genericWithIndexerOfTypeParameterType1.types @@ -1,35 +1,35 @@ === tests/cases/compiler/genericWithIndexerOfTypeParameterType1.ts === class LazyArray { ->LazyArray : LazyArray, Symbol(LazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 0)) ->T : T, Symbol(T, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 16)) +>LazyArray : LazyArray +>T : T private objects = <{ [objectId: string]: T; }>{}; ->objects : { [objectId: string]: T; }, Symbol(objects, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 20)) +>objects : { [objectId: string]: T; } ><{ [objectId: string]: T; }>{} : { [objectId: string]: T; } ->objectId : string, Symbol(objectId, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 26)) ->T : T, Symbol(T, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 16)) +>objectId : string +>T : T >{} : { [x: string]: undefined; } array() { ->array : () => { [objectId: string]: T; }, Symbol(array, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 53)) +>array : () => { [objectId: string]: T; } return this.objects; ->this.objects : { [objectId: string]: T; }, Symbol(objects, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 20)) ->this : LazyArray, Symbol(LazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 0)) ->objects : { [objectId: string]: T; }, Symbol(objects, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 20)) +>this.objects : { [objectId: string]: T; } +>this : LazyArray +>objects : { [objectId: string]: T; } } } var lazyArray = new LazyArray(); ->lazyArray : LazyArray, Symbol(lazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 6, 3)) +>lazyArray : LazyArray >new LazyArray() : LazyArray ->LazyArray : typeof LazyArray, Symbol(LazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 0, 0)) +>LazyArray : typeof LazyArray var value: string = lazyArray.array()["test"]; // used to be an error ->value : string, Symbol(value, Decl(genericWithIndexerOfTypeParameterType1.ts, 7, 3)) +>value : string >lazyArray.array()["test"] : string >lazyArray.array() : { [objectId: string]: string; } ->lazyArray.array : () => { [objectId: string]: string; }, Symbol(LazyArray.array, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 53)) ->lazyArray : LazyArray, Symbol(lazyArray, Decl(genericWithIndexerOfTypeParameterType1.ts, 6, 3)) ->array : () => { [objectId: string]: string; }, Symbol(LazyArray.array, Decl(genericWithIndexerOfTypeParameterType1.ts, 1, 53)) +>lazyArray.array : () => { [objectId: string]: string; } +>lazyArray : LazyArray +>array : () => { [objectId: string]: string; } >"test" : string diff --git a/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.symbols b/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.symbols new file mode 100644 index 0000000000000..d09abef57be78 --- /dev/null +++ b/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts === +export class Collection { +>Collection : Symbol(Collection, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 0)) +>TItem : Symbol(TItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 24)) +>CollectionItem : Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) + + _itemsByKey: { [key: string]: TItem; }; +>_itemsByKey : Symbol(_itemsByKey, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 55)) +>key : Symbol(key, Decl(genericWithIndexerOfTypeParameterType2.ts, 1, 20)) +>TItem : Symbol(TItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 24)) +} + +export class List extends Collection{ +>List : Symbol(List, Decl(genericWithIndexerOfTypeParameterType2.ts, 2, 1)) +>Collection : Symbol(Collection, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 0)) +>ListItem : Symbol(ListItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 8, 30)) + + Bar() {} +>Bar : Symbol(Bar, Decl(genericWithIndexerOfTypeParameterType2.ts, 4, 47)) +} + +export class CollectionItem {} +>CollectionItem : Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) + +export class ListItem extends CollectionItem { +>ListItem : Symbol(ListItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 8, 30)) +>CollectionItem : Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) + + __isNew: boolean; +>__isNew : Symbol(__isNew, Decl(genericWithIndexerOfTypeParameterType2.ts, 10, 46)) +} + diff --git a/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.types b/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.types index 65e5108457b2f..e1cdfa85f1304 100644 --- a/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.types +++ b/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.types @@ -1,32 +1,32 @@ === tests/cases/compiler/genericWithIndexerOfTypeParameterType2.ts === export class Collection { ->Collection : Collection, Symbol(Collection, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 0)) ->TItem : TItem, Symbol(TItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 24)) ->CollectionItem : CollectionItem, Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) +>Collection : Collection +>TItem : TItem +>CollectionItem : CollectionItem _itemsByKey: { [key: string]: TItem; }; ->_itemsByKey : { [key: string]: TItem; }, Symbol(_itemsByKey, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 55)) ->key : string, Symbol(key, Decl(genericWithIndexerOfTypeParameterType2.ts, 1, 20)) ->TItem : TItem, Symbol(TItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 24)) +>_itemsByKey : { [key: string]: TItem; } +>key : string +>TItem : TItem } export class List extends Collection{ ->List : List, Symbol(List, Decl(genericWithIndexerOfTypeParameterType2.ts, 2, 1)) ->Collection : Collection, Symbol(Collection, Decl(genericWithIndexerOfTypeParameterType2.ts, 0, 0)) ->ListItem : ListItem, Symbol(ListItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 8, 30)) +>List : List +>Collection : Collection +>ListItem : ListItem Bar() {} ->Bar : () => void, Symbol(Bar, Decl(genericWithIndexerOfTypeParameterType2.ts, 4, 47)) +>Bar : () => void } export class CollectionItem {} ->CollectionItem : CollectionItem, Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) +>CollectionItem : CollectionItem export class ListItem extends CollectionItem { ->ListItem : ListItem, Symbol(ListItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 8, 30)) ->CollectionItem : CollectionItem, Symbol(CollectionItem, Decl(genericWithIndexerOfTypeParameterType2.ts, 6, 1)) +>ListItem : ListItem +>CollectionItem : CollectionItem __isNew: boolean; ->__isNew : boolean, Symbol(__isNew, Decl(genericWithIndexerOfTypeParameterType2.ts, 10, 46)) +>__isNew : boolean } diff --git a/tests/baselines/reference/generics0.symbols b/tests/baselines/reference/generics0.symbols new file mode 100644 index 0000000000000..801b56fe71891 --- /dev/null +++ b/tests/baselines/reference/generics0.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/generics0.ts === +interface G { +>G : Symbol(G, Decl(generics0.ts, 0, 0)) +>T : Symbol(T, Decl(generics0.ts, 0, 12)) + + x: T; +>x : Symbol(x, Decl(generics0.ts, 0, 16)) +>T : Symbol(T, Decl(generics0.ts, 0, 12)) +} + +var v2: G; +>v2 : Symbol(v2, Decl(generics0.ts, 4, 3)) +>G : Symbol(G, Decl(generics0.ts, 0, 0)) + +var z = v2.x; // 'y' should be of type 'string' +>z : Symbol(z, Decl(generics0.ts, 6, 3)) +>v2.x : Symbol(G.x, Decl(generics0.ts, 0, 16)) +>v2 : Symbol(v2, Decl(generics0.ts, 4, 3)) +>x : Symbol(G.x, Decl(generics0.ts, 0, 16)) + diff --git a/tests/baselines/reference/generics0.types b/tests/baselines/reference/generics0.types index ae5c547b4a63b..2febb5bd80873 100644 --- a/tests/baselines/reference/generics0.types +++ b/tests/baselines/reference/generics0.types @@ -1,20 +1,20 @@ === tests/cases/compiler/generics0.ts === interface G { ->G : G, Symbol(G, Decl(generics0.ts, 0, 0)) ->T : T, Symbol(T, Decl(generics0.ts, 0, 12)) +>G : G +>T : T x: T; ->x : T, Symbol(x, Decl(generics0.ts, 0, 16)) ->T : T, Symbol(T, Decl(generics0.ts, 0, 12)) +>x : T +>T : T } var v2: G; ->v2 : G, Symbol(v2, Decl(generics0.ts, 4, 3)) ->G : G, Symbol(G, Decl(generics0.ts, 0, 0)) +>v2 : G +>G : G var z = v2.x; // 'y' should be of type 'string' ->z : string, Symbol(z, Decl(generics0.ts, 6, 3)) ->v2.x : string, Symbol(G.x, Decl(generics0.ts, 0, 16)) ->v2 : G, Symbol(v2, Decl(generics0.ts, 4, 3)) ->x : string, Symbol(G.x, Decl(generics0.ts, 0, 16)) +>z : string +>v2.x : string +>v2 : G +>x : string diff --git a/tests/baselines/reference/generics1NoError.symbols b/tests/baselines/reference/generics1NoError.symbols new file mode 100644 index 0000000000000..fcf820f79c4e7 --- /dev/null +++ b/tests/baselines/reference/generics1NoError.symbols @@ -0,0 +1,49 @@ +=== tests/cases/compiler/generics1NoError.ts === +interface A { a: string; } +>A : Symbol(A, Decl(generics1NoError.ts, 0, 0)) +>a : Symbol(a, Decl(generics1NoError.ts, 0, 13)) + +interface B extends A { b: string; } +>B : Symbol(B, Decl(generics1NoError.ts, 0, 26)) +>A : Symbol(A, Decl(generics1NoError.ts, 0, 0)) +>b : Symbol(b, Decl(generics1NoError.ts, 1, 23)) + +interface C extends B { c: string; } +>C : Symbol(C, Decl(generics1NoError.ts, 1, 36)) +>B : Symbol(B, Decl(generics1NoError.ts, 0, 26)) +>c : Symbol(c, Decl(generics1NoError.ts, 2, 23)) + +interface G { +>G : Symbol(G, Decl(generics1NoError.ts, 2, 36)) +>T : Symbol(T, Decl(generics1NoError.ts, 3, 12)) +>U : Symbol(U, Decl(generics1NoError.ts, 3, 14)) +>B : Symbol(B, Decl(generics1NoError.ts, 0, 26)) + + x: T; +>x : Symbol(x, Decl(generics1NoError.ts, 3, 29)) +>T : Symbol(T, Decl(generics1NoError.ts, 3, 12)) + + y: U; +>y : Symbol(y, Decl(generics1NoError.ts, 4, 9)) +>U : Symbol(U, Decl(generics1NoError.ts, 3, 14)) +} +var v1: G; // Ok +>v1 : Symbol(v1, Decl(generics1NoError.ts, 7, 3)) +>G : Symbol(G, Decl(generics1NoError.ts, 2, 36)) +>A : Symbol(A, Decl(generics1NoError.ts, 0, 0)) +>C : Symbol(C, Decl(generics1NoError.ts, 1, 36)) + +var v2: G<{ a: string }, C>; // Ok, equivalent to G +>v2 : Symbol(v2, Decl(generics1NoError.ts, 8, 3)) +>G : Symbol(G, Decl(generics1NoError.ts, 2, 36)) +>a : Symbol(a, Decl(generics1NoError.ts, 8, 11)) +>C : Symbol(C, Decl(generics1NoError.ts, 1, 36)) + +var v4: G, C>; // Ok +>v4 : Symbol(v4, Decl(generics1NoError.ts, 9, 3)) +>G : Symbol(G, Decl(generics1NoError.ts, 2, 36)) +>G : Symbol(G, Decl(generics1NoError.ts, 2, 36)) +>A : Symbol(A, Decl(generics1NoError.ts, 0, 0)) +>B : Symbol(B, Decl(generics1NoError.ts, 0, 26)) +>C : Symbol(C, Decl(generics1NoError.ts, 1, 36)) + diff --git a/tests/baselines/reference/generics1NoError.types b/tests/baselines/reference/generics1NoError.types index d1fbe6927a04b..409517b56ce89 100644 --- a/tests/baselines/reference/generics1NoError.types +++ b/tests/baselines/reference/generics1NoError.types @@ -1,49 +1,49 @@ === tests/cases/compiler/generics1NoError.ts === interface A { a: string; } ->A : A, Symbol(A, Decl(generics1NoError.ts, 0, 0)) ->a : string, Symbol(a, Decl(generics1NoError.ts, 0, 13)) +>A : A +>a : string interface B extends A { b: string; } ->B : B, Symbol(B, Decl(generics1NoError.ts, 0, 26)) ->A : A, Symbol(A, Decl(generics1NoError.ts, 0, 0)) ->b : string, Symbol(b, Decl(generics1NoError.ts, 1, 23)) +>B : B +>A : A +>b : string interface C extends B { c: string; } ->C : C, Symbol(C, Decl(generics1NoError.ts, 1, 36)) ->B : B, Symbol(B, Decl(generics1NoError.ts, 0, 26)) ->c : string, Symbol(c, Decl(generics1NoError.ts, 2, 23)) +>C : C +>B : B +>c : string interface G { ->G : G, Symbol(G, Decl(generics1NoError.ts, 2, 36)) ->T : T, Symbol(T, Decl(generics1NoError.ts, 3, 12)) ->U : U, Symbol(U, Decl(generics1NoError.ts, 3, 14)) ->B : B, Symbol(B, Decl(generics1NoError.ts, 0, 26)) +>G : G +>T : T +>U : U +>B : B x: T; ->x : T, Symbol(x, Decl(generics1NoError.ts, 3, 29)) ->T : T, Symbol(T, Decl(generics1NoError.ts, 3, 12)) +>x : T +>T : T y: U; ->y : U, Symbol(y, Decl(generics1NoError.ts, 4, 9)) ->U : U, Symbol(U, Decl(generics1NoError.ts, 3, 14)) +>y : U +>U : U } var v1: G; // Ok ->v1 : G, Symbol(v1, Decl(generics1NoError.ts, 7, 3)) ->G : G, Symbol(G, Decl(generics1NoError.ts, 2, 36)) ->A : A, Symbol(A, Decl(generics1NoError.ts, 0, 0)) ->C : C, Symbol(C, Decl(generics1NoError.ts, 1, 36)) +>v1 : G +>G : G +>A : A +>C : C var v2: G<{ a: string }, C>; // Ok, equivalent to G ->v2 : G<{ a: string; }, C>, Symbol(v2, Decl(generics1NoError.ts, 8, 3)) ->G : G, Symbol(G, Decl(generics1NoError.ts, 2, 36)) ->a : string, Symbol(a, Decl(generics1NoError.ts, 8, 11)) ->C : C, Symbol(C, Decl(generics1NoError.ts, 1, 36)) +>v2 : G<{ a: string; }, C> +>G : G +>a : string +>C : C var v4: G, C>; // Ok ->v4 : G, C>, Symbol(v4, Decl(generics1NoError.ts, 9, 3)) ->G : G, Symbol(G, Decl(generics1NoError.ts, 2, 36)) ->G : G, Symbol(G, Decl(generics1NoError.ts, 2, 36)) ->A : A, Symbol(A, Decl(generics1NoError.ts, 0, 0)) ->B : B, Symbol(B, Decl(generics1NoError.ts, 0, 26)) ->C : C, Symbol(C, Decl(generics1NoError.ts, 1, 36)) +>v4 : G, C> +>G : G +>G : G +>A : A +>B : B +>C : C diff --git a/tests/baselines/reference/generics2NoError.symbols b/tests/baselines/reference/generics2NoError.symbols new file mode 100644 index 0000000000000..165eb435a5033 --- /dev/null +++ b/tests/baselines/reference/generics2NoError.symbols @@ -0,0 +1,61 @@ +=== tests/cases/compiler/generics2NoError.ts === +interface A { a: string; } +>A : Symbol(A, Decl(generics2NoError.ts, 0, 0)) +>a : Symbol(a, Decl(generics2NoError.ts, 0, 13)) + +interface B extends A { b: string; } +>B : Symbol(B, Decl(generics2NoError.ts, 0, 26)) +>A : Symbol(A, Decl(generics2NoError.ts, 0, 0)) +>b : Symbol(b, Decl(generics2NoError.ts, 1, 23)) + +interface C extends B { c: string; } +>C : Symbol(C, Decl(generics2NoError.ts, 1, 36)) +>B : Symbol(B, Decl(generics2NoError.ts, 0, 26)) +>c : Symbol(c, Decl(generics2NoError.ts, 2, 23)) + +interface G { +>G : Symbol(G, Decl(generics2NoError.ts, 2, 36)) +>T : Symbol(T, Decl(generics2NoError.ts, 3, 12)) +>U : Symbol(U, Decl(generics2NoError.ts, 3, 14)) +>B : Symbol(B, Decl(generics2NoError.ts, 0, 26)) + + x: T; +>x : Symbol(x, Decl(generics2NoError.ts, 3, 29)) +>T : Symbol(T, Decl(generics2NoError.ts, 3, 12)) + + y: U; +>y : Symbol(y, Decl(generics2NoError.ts, 4, 9)) +>U : Symbol(U, Decl(generics2NoError.ts, 3, 14)) +} + + +var v1: { +>v1 : Symbol(v1, Decl(generics2NoError.ts, 9, 3)) + + x: { a: string; } +>x : Symbol(x, Decl(generics2NoError.ts, 9, 9)) +>a : Symbol(a, Decl(generics2NoError.ts, 10, 8)) + + y: { a: string; b: string; c: string }; +>y : Symbol(y, Decl(generics2NoError.ts, 10, 21)) +>a : Symbol(a, Decl(generics2NoError.ts, 11, 8)) +>b : Symbol(b, Decl(generics2NoError.ts, 11, 19)) +>c : Symbol(c, Decl(generics2NoError.ts, 11, 30)) + +}; // Ok + + +var v2: G<{ a: string }, C>; // Ok, equivalent to G +>v2 : Symbol(v2, Decl(generics2NoError.ts, 15, 3)) +>G : Symbol(G, Decl(generics2NoError.ts, 2, 36)) +>a : Symbol(a, Decl(generics2NoError.ts, 15, 11)) +>C : Symbol(C, Decl(generics2NoError.ts, 1, 36)) + +var v4: G, C>; // Ok +>v4 : Symbol(v4, Decl(generics2NoError.ts, 16, 3)) +>G : Symbol(G, Decl(generics2NoError.ts, 2, 36)) +>G : Symbol(G, Decl(generics2NoError.ts, 2, 36)) +>A : Symbol(A, Decl(generics2NoError.ts, 0, 0)) +>B : Symbol(B, Decl(generics2NoError.ts, 0, 26)) +>C : Symbol(C, Decl(generics2NoError.ts, 1, 36)) + diff --git a/tests/baselines/reference/generics2NoError.types b/tests/baselines/reference/generics2NoError.types index b30a06d877fdf..6b6d526e4b263 100644 --- a/tests/baselines/reference/generics2NoError.types +++ b/tests/baselines/reference/generics2NoError.types @@ -1,61 +1,61 @@ === tests/cases/compiler/generics2NoError.ts === interface A { a: string; } ->A : A, Symbol(A, Decl(generics2NoError.ts, 0, 0)) ->a : string, Symbol(a, Decl(generics2NoError.ts, 0, 13)) +>A : A +>a : string interface B extends A { b: string; } ->B : B, Symbol(B, Decl(generics2NoError.ts, 0, 26)) ->A : A, Symbol(A, Decl(generics2NoError.ts, 0, 0)) ->b : string, Symbol(b, Decl(generics2NoError.ts, 1, 23)) +>B : B +>A : A +>b : string interface C extends B { c: string; } ->C : C, Symbol(C, Decl(generics2NoError.ts, 1, 36)) ->B : B, Symbol(B, Decl(generics2NoError.ts, 0, 26)) ->c : string, Symbol(c, Decl(generics2NoError.ts, 2, 23)) +>C : C +>B : B +>c : string interface G { ->G : G, Symbol(G, Decl(generics2NoError.ts, 2, 36)) ->T : T, Symbol(T, Decl(generics2NoError.ts, 3, 12)) ->U : U, Symbol(U, Decl(generics2NoError.ts, 3, 14)) ->B : B, Symbol(B, Decl(generics2NoError.ts, 0, 26)) +>G : G +>T : T +>U : U +>B : B x: T; ->x : T, Symbol(x, Decl(generics2NoError.ts, 3, 29)) ->T : T, Symbol(T, Decl(generics2NoError.ts, 3, 12)) +>x : T +>T : T y: U; ->y : U, Symbol(y, Decl(generics2NoError.ts, 4, 9)) ->U : U, Symbol(U, Decl(generics2NoError.ts, 3, 14)) +>y : U +>U : U } var v1: { ->v1 : { x: { a: string; }; y: { a: string; b: string; c: string; }; }, Symbol(v1, Decl(generics2NoError.ts, 9, 3)) +>v1 : { x: { a: string; }; y: { a: string; b: string; c: string; }; } x: { a: string; } ->x : { a: string; }, Symbol(x, Decl(generics2NoError.ts, 9, 9)) ->a : string, Symbol(a, Decl(generics2NoError.ts, 10, 8)) +>x : { a: string; } +>a : string y: { a: string; b: string; c: string }; ->y : { a: string; b: string; c: string; }, Symbol(y, Decl(generics2NoError.ts, 10, 21)) ->a : string, Symbol(a, Decl(generics2NoError.ts, 11, 8)) ->b : string, Symbol(b, Decl(generics2NoError.ts, 11, 19)) ->c : string, Symbol(c, Decl(generics2NoError.ts, 11, 30)) +>y : { a: string; b: string; c: string; } +>a : string +>b : string +>c : string }; // Ok var v2: G<{ a: string }, C>; // Ok, equivalent to G ->v2 : G<{ a: string; }, C>, Symbol(v2, Decl(generics2NoError.ts, 15, 3)) ->G : G, Symbol(G, Decl(generics2NoError.ts, 2, 36)) ->a : string, Symbol(a, Decl(generics2NoError.ts, 15, 11)) ->C : C, Symbol(C, Decl(generics2NoError.ts, 1, 36)) +>v2 : G<{ a: string; }, C> +>G : G +>a : string +>C : C var v4: G, C>; // Ok ->v4 : G, C>, Symbol(v4, Decl(generics2NoError.ts, 16, 3)) ->G : G, Symbol(G, Decl(generics2NoError.ts, 2, 36)) ->G : G, Symbol(G, Decl(generics2NoError.ts, 2, 36)) ->A : A, Symbol(A, Decl(generics2NoError.ts, 0, 0)) ->B : B, Symbol(B, Decl(generics2NoError.ts, 0, 26)) ->C : C, Symbol(C, Decl(generics2NoError.ts, 1, 36)) +>v4 : G, C> +>G : G +>G : G +>A : A +>B : B +>C : C diff --git a/tests/baselines/reference/generics3.symbols b/tests/baselines/reference/generics3.symbols new file mode 100644 index 0000000000000..be9c583ff5f69 --- /dev/null +++ b/tests/baselines/reference/generics3.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/generics3.ts === +class C { private x: T; } +>C : Symbol(C, Decl(generics3.ts, 0, 0)) +>T : Symbol(T, Decl(generics3.ts, 0, 8)) +>x : Symbol(x, Decl(generics3.ts, 0, 12)) +>T : Symbol(T, Decl(generics3.ts, 0, 8)) + +interface X { f(): string; } +>X : Symbol(X, Decl(generics3.ts, 0, 28)) +>f : Symbol(f, Decl(generics3.ts, 1, 13)) + +interface Y { f(): string; } +>Y : Symbol(Y, Decl(generics3.ts, 1, 28)) +>f : Symbol(f, Decl(generics3.ts, 2, 13)) + +var a: C; +>a : Symbol(a, Decl(generics3.ts, 3, 3)) +>C : Symbol(C, Decl(generics3.ts, 0, 0)) +>X : Symbol(X, Decl(generics3.ts, 0, 28)) + +var b: C; +>b : Symbol(b, Decl(generics3.ts, 4, 3)) +>C : Symbol(C, Decl(generics3.ts, 0, 0)) +>Y : Symbol(Y, Decl(generics3.ts, 1, 28)) + +a = b; // Ok - should be identical +>a : Symbol(a, Decl(generics3.ts, 3, 3)) +>b : Symbol(b, Decl(generics3.ts, 4, 3)) + diff --git a/tests/baselines/reference/generics3.types b/tests/baselines/reference/generics3.types index ac7ba074e29f6..510dcbfeaf813 100644 --- a/tests/baselines/reference/generics3.types +++ b/tests/baselines/reference/generics3.types @@ -1,30 +1,30 @@ === tests/cases/compiler/generics3.ts === class C { private x: T; } ->C : C, Symbol(C, Decl(generics3.ts, 0, 0)) ->T : T, Symbol(T, Decl(generics3.ts, 0, 8)) ->x : T, Symbol(x, Decl(generics3.ts, 0, 12)) ->T : T, Symbol(T, Decl(generics3.ts, 0, 8)) +>C : C +>T : T +>x : T +>T : T interface X { f(): string; } ->X : X, Symbol(X, Decl(generics3.ts, 0, 28)) ->f : () => string, Symbol(f, Decl(generics3.ts, 1, 13)) +>X : X +>f : () => string interface Y { f(): string; } ->Y : Y, Symbol(Y, Decl(generics3.ts, 1, 28)) ->f : () => string, Symbol(f, Decl(generics3.ts, 2, 13)) +>Y : Y +>f : () => string var a: C; ->a : C, Symbol(a, Decl(generics3.ts, 3, 3)) ->C : C, Symbol(C, Decl(generics3.ts, 0, 0)) ->X : X, Symbol(X, Decl(generics3.ts, 0, 28)) +>a : C +>C : C +>X : X var b: C; ->b : C, Symbol(b, Decl(generics3.ts, 4, 3)) ->C : C, Symbol(C, Decl(generics3.ts, 0, 0)) ->Y : Y, Symbol(Y, Decl(generics3.ts, 1, 28)) +>b : C +>C : C +>Y : Y a = b; // Ok - should be identical >a = b : C ->a : C, Symbol(a, Decl(generics3.ts, 3, 3)) ->b : C, Symbol(b, Decl(generics3.ts, 4, 3)) +>a : C +>b : C diff --git a/tests/baselines/reference/generics4NoError.symbols b/tests/baselines/reference/generics4NoError.symbols new file mode 100644 index 0000000000000..9ea547d4db91c --- /dev/null +++ b/tests/baselines/reference/generics4NoError.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/generics4NoError.ts === +class C { private x: T; } +>C : Symbol(C, Decl(generics4NoError.ts, 0, 0)) +>T : Symbol(T, Decl(generics4NoError.ts, 0, 8)) +>x : Symbol(x, Decl(generics4NoError.ts, 0, 12)) +>T : Symbol(T, Decl(generics4NoError.ts, 0, 8)) + +interface X { f(): string; } +>X : Symbol(X, Decl(generics4NoError.ts, 0, 28)) +>f : Symbol(f, Decl(generics4NoError.ts, 1, 13)) + +interface Y { f(): boolean; } +>Y : Symbol(Y, Decl(generics4NoError.ts, 1, 28)) +>f : Symbol(f, Decl(generics4NoError.ts, 2, 13)) + +var a: C; +>a : Symbol(a, Decl(generics4NoError.ts, 3, 3)) +>C : Symbol(C, Decl(generics4NoError.ts, 0, 0)) +>X : Symbol(X, Decl(generics4NoError.ts, 0, 28)) + +var b: C; +>b : Symbol(b, Decl(generics4NoError.ts, 4, 3)) +>C : Symbol(C, Decl(generics4NoError.ts, 0, 0)) +>Y : Symbol(Y, Decl(generics4NoError.ts, 1, 28)) + diff --git a/tests/baselines/reference/generics4NoError.types b/tests/baselines/reference/generics4NoError.types index 9cb752b7daa48..c22b1905e4455 100644 --- a/tests/baselines/reference/generics4NoError.types +++ b/tests/baselines/reference/generics4NoError.types @@ -1,25 +1,25 @@ === tests/cases/compiler/generics4NoError.ts === class C { private x: T; } ->C : C, Symbol(C, Decl(generics4NoError.ts, 0, 0)) ->T : T, Symbol(T, Decl(generics4NoError.ts, 0, 8)) ->x : T, Symbol(x, Decl(generics4NoError.ts, 0, 12)) ->T : T, Symbol(T, Decl(generics4NoError.ts, 0, 8)) +>C : C +>T : T +>x : T +>T : T interface X { f(): string; } ->X : X, Symbol(X, Decl(generics4NoError.ts, 0, 28)) ->f : () => string, Symbol(f, Decl(generics4NoError.ts, 1, 13)) +>X : X +>f : () => string interface Y { f(): boolean; } ->Y : Y, Symbol(Y, Decl(generics4NoError.ts, 1, 28)) ->f : () => boolean, Symbol(f, Decl(generics4NoError.ts, 2, 13)) +>Y : Y +>f : () => boolean var a: C; ->a : C, Symbol(a, Decl(generics4NoError.ts, 3, 3)) ->C : C, Symbol(C, Decl(generics4NoError.ts, 0, 0)) ->X : X, Symbol(X, Decl(generics4NoError.ts, 0, 28)) +>a : C +>C : C +>X : X var b: C; ->b : C, Symbol(b, Decl(generics4NoError.ts, 4, 3)) ->C : C, Symbol(C, Decl(generics4NoError.ts, 0, 0)) ->Y : Y, Symbol(Y, Decl(generics4NoError.ts, 1, 28)) +>b : C +>C : C +>Y : Y diff --git a/tests/baselines/reference/genericsAndHigherOrderFunctions.symbols b/tests/baselines/reference/genericsAndHigherOrderFunctions.symbols new file mode 100644 index 0000000000000..a9f324278d687 --- /dev/null +++ b/tests/baselines/reference/genericsAndHigherOrderFunctions.symbols @@ -0,0 +1,114 @@ +=== tests/cases/compiler/genericsAndHigherOrderFunctions.ts === +// no errors expected + +var combine: (f: (_: T) => S) => +>combine : Symbol(combine, Decl(genericsAndHigherOrderFunctions.ts, 2, 3)) +>T : Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 2, 14)) +>S : Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 2, 16)) +>f : Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 2, 20)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 2, 24)) +>T : Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 2, 14)) +>S : Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 2, 16)) + + (g: (_: U) => T) => +>U : Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 3, 5)) +>g : Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 3, 8)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 3, 12)) +>U : Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 3, 5)) +>T : Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 2, 14)) + + (x: U) => S +>x : Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 4, 5)) +>U : Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 3, 5)) +>S : Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 2, 16)) + + = (f: (_: T) => S) => +>T : Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 6, 7)) +>S : Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 6, 9)) +>f : Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 6, 13)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 6, 17)) +>T : Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 6, 7)) +>S : Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 6, 9)) + + (g: (_: U) => T) => +>U : Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 7, 9)) +>g : Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 7, 12)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 7, 16)) +>U : Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 7, 9)) +>T : Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 6, 7)) + + (x: U) => f(g(x)) +>x : Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 8, 13)) +>U : Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 7, 9)) +>f : Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 6, 13)) +>g : Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 7, 12)) +>x : Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 8, 13)) + +var foo: (g: (x: K) => N) => +>foo : Symbol(foo, Decl(genericsAndHigherOrderFunctions.ts, 10, 3)) +>K : Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 10, 10)) +>N : Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 10, 12)) +>g : Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 10, 16)) +>x : Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 10, 20)) +>K : Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 10, 10)) +>N : Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 10, 12)) + + (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => +>h : Symbol(h, Decl(genericsAndHigherOrderFunctions.ts, 11, 5)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 12)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 16)) +>K : Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 10, 10)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 26)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 42)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) + + (f: (_: N) => (_: R) => R) => (_: R) => R +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) +>f : Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 12, 8)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 12, 12)) +>N : Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 10, 12)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 12, 22)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 12, 38)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) + + = (g: (x: K) => N) => +>K : Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 14, 7)) +>N : Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 14, 9)) +>g : Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 14, 13)) +>x : Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 14, 17)) +>K : Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 14, 7)) +>N : Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 14, 9)) + + (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => +>h : Symbol(h, Decl(genericsAndHigherOrderFunctions.ts, 15, 9)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 16)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 20)) +>K : Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 14, 7)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 30)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 46)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) +>M : Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) + + (f: (_: N) => (_: R) => R) => h(combine(f)(g)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 16, 13)) +>f : Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 16, 16)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 16, 20)) +>N : Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 14, 9)) +>_ : Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 16, 30)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 16, 13)) +>R : Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 16, 13)) +>h : Symbol(h, Decl(genericsAndHigherOrderFunctions.ts, 15, 9)) +>combine : Symbol(combine, Decl(genericsAndHigherOrderFunctions.ts, 2, 3)) +>f : Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 16, 16)) +>g : Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 14, 13)) + diff --git a/tests/baselines/reference/genericsAndHigherOrderFunctions.types b/tests/baselines/reference/genericsAndHigherOrderFunctions.types index 7f47c53a1a912..04209ca99ec8a 100644 --- a/tests/baselines/reference/genericsAndHigherOrderFunctions.types +++ b/tests/baselines/reference/genericsAndHigherOrderFunctions.types @@ -2,124 +2,124 @@ // no errors expected var combine: (f: (_: T) => S) => ->combine : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S, Symbol(combine, Decl(genericsAndHigherOrderFunctions.ts, 2, 3)) ->T : T, Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 2, 14)) ->S : S, Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 2, 16)) ->f : (_: T) => S, Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 2, 20)) ->_ : T, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 2, 24)) ->T : T, Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 2, 14)) ->S : S, Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 2, 16)) +>combine : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S +>T : T +>S : S +>f : (_: T) => S +>_ : T +>T : T +>S : S (g: (_: U) => T) => ->U : U, Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 3, 5)) ->g : (_: U) => T, Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 3, 8)) ->_ : U, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 3, 12)) ->U : U, Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 3, 5)) ->T : T, Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 2, 14)) +>U : U +>g : (_: U) => T +>_ : U +>U : U +>T : T (x: U) => S ->x : U, Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 4, 5)) ->U : U, Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 3, 5)) ->S : S, Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 2, 16)) +>x : U +>U : U +>S : S = (f: (_: T) => S) => >(f: (_: T) => S) => (g: (_: U) => T) => (x: U) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S ->T : T, Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 6, 7)) ->S : S, Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 6, 9)) ->f : (_: T) => S, Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 6, 13)) ->_ : T, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 6, 17)) ->T : T, Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 6, 7)) ->S : S, Symbol(S, Decl(genericsAndHigherOrderFunctions.ts, 6, 9)) +>T : T +>S : S +>f : (_: T) => S +>_ : T +>T : T +>S : S (g: (_: U) => T) => >(g: (_: U) => T) => (x: U) => f(g(x)) : (g: (_: U) => T) => (x: U) => S ->U : U, Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 7, 9)) ->g : (_: U) => T, Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 7, 12)) ->_ : U, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 7, 16)) ->U : U, Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 7, 9)) ->T : T, Symbol(T, Decl(genericsAndHigherOrderFunctions.ts, 6, 7)) +>U : U +>g : (_: U) => T +>_ : U +>U : U +>T : T (x: U) => f(g(x)) >(x: U) => f(g(x)) : (x: U) => S ->x : U, Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 8, 13)) ->U : U, Symbol(U, Decl(genericsAndHigherOrderFunctions.ts, 7, 9)) +>x : U +>U : U >f(g(x)) : S ->f : (_: T) => S, Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 6, 13)) +>f : (_: T) => S >g(x) : T ->g : (_: U) => T, Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 7, 12)) ->x : U, Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 8, 13)) +>g : (_: U) => T +>x : U var foo: (g: (x: K) => N) => ->foo : (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R, Symbol(foo, Decl(genericsAndHigherOrderFunctions.ts, 10, 3)) ->K : K, Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 10, 10)) ->N : N, Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 10, 12)) ->g : (x: K) => N, Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 10, 16)) ->x : K, Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 10, 20)) ->K : K, Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 10, 10)) ->N : N, Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 10, 12)) +>foo : (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R +>K : K +>N : N +>g : (x: K) => N +>x : K +>K : K +>N : N (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => ->h : (_: (_: K) => (_: M) => M) => (_: M) => M, Symbol(h, Decl(genericsAndHigherOrderFunctions.ts, 11, 5)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) ->_ : (_: K) => (_: M) => M, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 12)) ->_ : K, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 16)) ->K : K, Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 10, 10)) ->_ : M, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 26)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) ->_ : M, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 11, 42)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 11, 9)) +>h : (_: (_: K) => (_: M) => M) => (_: M) => M +>M : M +>_ : (_: K) => (_: M) => M +>_ : K +>K : K +>_ : M +>M : M +>M : M +>_ : M +>M : M +>M : M (f: (_: N) => (_: R) => R) => (_: R) => R ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) ->f : (_: N) => (_: R) => R, Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 12, 8)) ->_ : N, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 12, 12)) ->N : N, Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 10, 12)) ->_ : R, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 12, 22)) ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) ->_ : R, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 12, 38)) ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 12, 5)) +>R : R +>f : (_: N) => (_: R) => R +>_ : N +>N : N +>_ : R +>R : R +>R : R +>_ : R +>R : R +>R : R = (g: (x: K) => N) => >(g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R ->K : K, Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 14, 7)) ->N : N, Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 14, 9)) ->g : (x: K) => N, Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 14, 13)) ->x : K, Symbol(x, Decl(genericsAndHigherOrderFunctions.ts, 14, 17)) ->K : K, Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 14, 7)) ->N : N, Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 14, 9)) +>K : K +>N : N +>g : (x: K) => N +>x : K +>K : K +>N : N (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => >(h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R ->h : (_: (_: K) => (_: M) => M) => (_: M) => M, Symbol(h, Decl(genericsAndHigherOrderFunctions.ts, 15, 9)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) ->_ : (_: K) => (_: M) => M, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 16)) ->_ : K, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 20)) ->K : K, Symbol(K, Decl(genericsAndHigherOrderFunctions.ts, 14, 7)) ->_ : M, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 30)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) ->_ : M, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 15, 46)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) ->M : M, Symbol(M, Decl(genericsAndHigherOrderFunctions.ts, 15, 13)) +>h : (_: (_: K) => (_: M) => M) => (_: M) => M +>M : M +>_ : (_: K) => (_: M) => M +>_ : K +>K : K +>_ : M +>M : M +>M : M +>_ : M +>M : M +>M : M (f: (_: N) => (_: R) => R) => h(combine(f)(g)) >(f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (f: (_: N) => (_: R) => R) => (_: R) => R ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 16, 13)) ->f : (_: N) => (_: R) => R, Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 16, 16)) ->_ : N, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 16, 20)) ->N : N, Symbol(N, Decl(genericsAndHigherOrderFunctions.ts, 14, 9)) ->_ : R, Symbol(_, Decl(genericsAndHigherOrderFunctions.ts, 16, 30)) ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 16, 13)) ->R : R, Symbol(R, Decl(genericsAndHigherOrderFunctions.ts, 16, 13)) +>R : R +>f : (_: N) => (_: R) => R +>_ : N +>N : N +>_ : R +>R : R +>R : R >h(combine(f)(g)) : (_: R) => R ->h : (_: (_: K) => (_: M) => M) => (_: M) => M, Symbol(h, Decl(genericsAndHigherOrderFunctions.ts, 15, 9)) +>h : (_: (_: K) => (_: M) => M) => (_: M) => M >combine(f)(g) : (x: K) => (_: R) => R >combine(f) : (g: (_: U) => N) => (x: U) => (_: R) => R ->combine : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S, Symbol(combine, Decl(genericsAndHigherOrderFunctions.ts, 2, 3)) ->f : (_: N) => (_: R) => R, Symbol(f, Decl(genericsAndHigherOrderFunctions.ts, 16, 16)) ->g : (x: K) => N, Symbol(g, Decl(genericsAndHigherOrderFunctions.ts, 14, 13)) +>combine : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S +>f : (_: N) => (_: R) => R +>g : (x: K) => N diff --git a/tests/baselines/reference/genericsManyTypeParameters.symbols b/tests/baselines/reference/genericsManyTypeParameters.symbols new file mode 100644 index 0000000000000..ef80bf62da128 --- /dev/null +++ b/tests/baselines/reference/genericsManyTypeParameters.symbols @@ -0,0 +1,547 @@ +=== tests/cases/compiler/genericsManyTypeParameters.ts === +function Foo< +>Foo : Symbol(Foo, Decl(genericsManyTypeParameters.ts, 0, 0)) + + a1, a21, a31, a41, a51, a61, +>a1 : Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) +>a21 : Symbol(a21, Decl(genericsManyTypeParameters.ts, 1, 7)) +>a31 : Symbol(a31, Decl(genericsManyTypeParameters.ts, 1, 12)) +>a41 : Symbol(a41, Decl(genericsManyTypeParameters.ts, 1, 17)) +>a51 : Symbol(a51, Decl(genericsManyTypeParameters.ts, 1, 22)) +>a61 : Symbol(a61, Decl(genericsManyTypeParameters.ts, 1, 27)) + + a119, a22, a32, a42, a52, a62, +>a119 : Symbol(a119, Decl(genericsManyTypeParameters.ts, 1, 32)) +>a22 : Symbol(a22, Decl(genericsManyTypeParameters.ts, 2, 9)) +>a32 : Symbol(a32, Decl(genericsManyTypeParameters.ts, 2, 14)) +>a42 : Symbol(a42, Decl(genericsManyTypeParameters.ts, 2, 19)) +>a52 : Symbol(a52, Decl(genericsManyTypeParameters.ts, 2, 24)) +>a62 : Symbol(a62, Decl(genericsManyTypeParameters.ts, 2, 29)) + + a219, a23, a33, a43, a53, a63, +>a219 : Symbol(a219, Decl(genericsManyTypeParameters.ts, 2, 34)) +>a23 : Symbol(a23, Decl(genericsManyTypeParameters.ts, 3, 9)) +>a33 : Symbol(a33, Decl(genericsManyTypeParameters.ts, 3, 14)) +>a43 : Symbol(a43, Decl(genericsManyTypeParameters.ts, 3, 19)) +>a53 : Symbol(a53, Decl(genericsManyTypeParameters.ts, 3, 24)) +>a63 : Symbol(a63, Decl(genericsManyTypeParameters.ts, 3, 29)) + + a319, a24, a34, a44, a54, a64, +>a319 : Symbol(a319, Decl(genericsManyTypeParameters.ts, 3, 34)) +>a24 : Symbol(a24, Decl(genericsManyTypeParameters.ts, 4, 9)) +>a34 : Symbol(a34, Decl(genericsManyTypeParameters.ts, 4, 14)) +>a44 : Symbol(a44, Decl(genericsManyTypeParameters.ts, 4, 19)) +>a54 : Symbol(a54, Decl(genericsManyTypeParameters.ts, 4, 24)) +>a64 : Symbol(a64, Decl(genericsManyTypeParameters.ts, 4, 29)) + + a419, a25, a35, a45, a55, a65, +>a419 : Symbol(a419, Decl(genericsManyTypeParameters.ts, 4, 34)) +>a25 : Symbol(a25, Decl(genericsManyTypeParameters.ts, 5, 9)) +>a35 : Symbol(a35, Decl(genericsManyTypeParameters.ts, 5, 14)) +>a45 : Symbol(a45, Decl(genericsManyTypeParameters.ts, 5, 19)) +>a55 : Symbol(a55, Decl(genericsManyTypeParameters.ts, 5, 24)) +>a65 : Symbol(a65, Decl(genericsManyTypeParameters.ts, 5, 29)) + + a519, a26, a36, a46, a56, a66, +>a519 : Symbol(a519, Decl(genericsManyTypeParameters.ts, 5, 34)) +>a26 : Symbol(a26, Decl(genericsManyTypeParameters.ts, 6, 9)) +>a36 : Symbol(a36, Decl(genericsManyTypeParameters.ts, 6, 14)) +>a46 : Symbol(a46, Decl(genericsManyTypeParameters.ts, 6, 19)) +>a56 : Symbol(a56, Decl(genericsManyTypeParameters.ts, 6, 24)) +>a66 : Symbol(a66, Decl(genericsManyTypeParameters.ts, 6, 29)) + + a619, a27, a37, a47, a57, a67, +>a619 : Symbol(a619, Decl(genericsManyTypeParameters.ts, 6, 34)) +>a27 : Symbol(a27, Decl(genericsManyTypeParameters.ts, 7, 9)) +>a37 : Symbol(a37, Decl(genericsManyTypeParameters.ts, 7, 14)) +>a47 : Symbol(a47, Decl(genericsManyTypeParameters.ts, 7, 19)) +>a57 : Symbol(a57, Decl(genericsManyTypeParameters.ts, 7, 24)) +>a67 : Symbol(a67, Decl(genericsManyTypeParameters.ts, 7, 29)) + + a71, a28, a38, a48, a58, a68, +>a71 : Symbol(a71, Decl(genericsManyTypeParameters.ts, 7, 34)) +>a28 : Symbol(a28, Decl(genericsManyTypeParameters.ts, 8, 8)) +>a38 : Symbol(a38, Decl(genericsManyTypeParameters.ts, 8, 13)) +>a48 : Symbol(a48, Decl(genericsManyTypeParameters.ts, 8, 18)) +>a58 : Symbol(a58, Decl(genericsManyTypeParameters.ts, 8, 23)) +>a68 : Symbol(a68, Decl(genericsManyTypeParameters.ts, 8, 28)) + + a81, a29, a39, a49, a59, a69, +>a81 : Symbol(a81, Decl(genericsManyTypeParameters.ts, 8, 33)) +>a29 : Symbol(a29, Decl(genericsManyTypeParameters.ts, 9, 8)) +>a39 : Symbol(a39, Decl(genericsManyTypeParameters.ts, 9, 13)) +>a49 : Symbol(a49, Decl(genericsManyTypeParameters.ts, 9, 18)) +>a59 : Symbol(a59, Decl(genericsManyTypeParameters.ts, 9, 23)) +>a69 : Symbol(a69, Decl(genericsManyTypeParameters.ts, 9, 28)) + + a91, a210, a310, a410, a510, a610, +>a91 : Symbol(a91, Decl(genericsManyTypeParameters.ts, 9, 33)) +>a210 : Symbol(a210, Decl(genericsManyTypeParameters.ts, 10, 8)) +>a310 : Symbol(a310, Decl(genericsManyTypeParameters.ts, 10, 14)) +>a410 : Symbol(a410, Decl(genericsManyTypeParameters.ts, 10, 20)) +>a510 : Symbol(a510, Decl(genericsManyTypeParameters.ts, 10, 26)) +>a610 : Symbol(a610, Decl(genericsManyTypeParameters.ts, 10, 32)) + + a111, a211, a311, a411, a511, a611, +>a111 : Symbol(a111, Decl(genericsManyTypeParameters.ts, 10, 38)) +>a211 : Symbol(a211, Decl(genericsManyTypeParameters.ts, 11, 9)) +>a311 : Symbol(a311, Decl(genericsManyTypeParameters.ts, 11, 15)) +>a411 : Symbol(a411, Decl(genericsManyTypeParameters.ts, 11, 21)) +>a511 : Symbol(a511, Decl(genericsManyTypeParameters.ts, 11, 27)) +>a611 : Symbol(a611, Decl(genericsManyTypeParameters.ts, 11, 33)) + + a112, a212, a312, a412, a512, a612, +>a112 : Symbol(a112, Decl(genericsManyTypeParameters.ts, 11, 39)) +>a212 : Symbol(a212, Decl(genericsManyTypeParameters.ts, 12, 9)) +>a312 : Symbol(a312, Decl(genericsManyTypeParameters.ts, 12, 15)) +>a412 : Symbol(a412, Decl(genericsManyTypeParameters.ts, 12, 21)) +>a512 : Symbol(a512, Decl(genericsManyTypeParameters.ts, 12, 27)) +>a612 : Symbol(a612, Decl(genericsManyTypeParameters.ts, 12, 33)) + + a113, a213, a313, a413, a513, a613, +>a113 : Symbol(a113, Decl(genericsManyTypeParameters.ts, 12, 39)) +>a213 : Symbol(a213, Decl(genericsManyTypeParameters.ts, 13, 9)) +>a313 : Symbol(a313, Decl(genericsManyTypeParameters.ts, 13, 15)) +>a413 : Symbol(a413, Decl(genericsManyTypeParameters.ts, 13, 21)) +>a513 : Symbol(a513, Decl(genericsManyTypeParameters.ts, 13, 27)) +>a613 : Symbol(a613, Decl(genericsManyTypeParameters.ts, 13, 33)) + + a114, a214, a314, a414, a514, a614, +>a114 : Symbol(a114, Decl(genericsManyTypeParameters.ts, 13, 39)) +>a214 : Symbol(a214, Decl(genericsManyTypeParameters.ts, 14, 9)) +>a314 : Symbol(a314, Decl(genericsManyTypeParameters.ts, 14, 15)) +>a414 : Symbol(a414, Decl(genericsManyTypeParameters.ts, 14, 21)) +>a514 : Symbol(a514, Decl(genericsManyTypeParameters.ts, 14, 27)) +>a614 : Symbol(a614, Decl(genericsManyTypeParameters.ts, 14, 33)) + + a115, a215, a315, a415, a515, a615, +>a115 : Symbol(a115, Decl(genericsManyTypeParameters.ts, 14, 39)) +>a215 : Symbol(a215, Decl(genericsManyTypeParameters.ts, 15, 9)) +>a315 : Symbol(a315, Decl(genericsManyTypeParameters.ts, 15, 15)) +>a415 : Symbol(a415, Decl(genericsManyTypeParameters.ts, 15, 21)) +>a515 : Symbol(a515, Decl(genericsManyTypeParameters.ts, 15, 27)) +>a615 : Symbol(a615, Decl(genericsManyTypeParameters.ts, 15, 33)) + + a116, a216, a316, a416, a516, a616, +>a116 : Symbol(a116, Decl(genericsManyTypeParameters.ts, 15, 39)) +>a216 : Symbol(a216, Decl(genericsManyTypeParameters.ts, 16, 9)) +>a316 : Symbol(a316, Decl(genericsManyTypeParameters.ts, 16, 15)) +>a416 : Symbol(a416, Decl(genericsManyTypeParameters.ts, 16, 21)) +>a516 : Symbol(a516, Decl(genericsManyTypeParameters.ts, 16, 27)) +>a616 : Symbol(a616, Decl(genericsManyTypeParameters.ts, 16, 33)) + + a117, a217, a317, a417, a517, a617, +>a117 : Symbol(a117, Decl(genericsManyTypeParameters.ts, 16, 39)) +>a217 : Symbol(a217, Decl(genericsManyTypeParameters.ts, 17, 9)) +>a317 : Symbol(a317, Decl(genericsManyTypeParameters.ts, 17, 15)) +>a417 : Symbol(a417, Decl(genericsManyTypeParameters.ts, 17, 21)) +>a517 : Symbol(a517, Decl(genericsManyTypeParameters.ts, 17, 27)) +>a617 : Symbol(a617, Decl(genericsManyTypeParameters.ts, 17, 33)) + + a118, a218, a318, a418, a518, a618> +>a118 : Symbol(a118, Decl(genericsManyTypeParameters.ts, 17, 39)) +>a218 : Symbol(a218, Decl(genericsManyTypeParameters.ts, 18, 9)) +>a318 : Symbol(a318, Decl(genericsManyTypeParameters.ts, 18, 15)) +>a418 : Symbol(a418, Decl(genericsManyTypeParameters.ts, 18, 21)) +>a518 : Symbol(a518, Decl(genericsManyTypeParameters.ts, 18, 27)) +>a618 : Symbol(a618, Decl(genericsManyTypeParameters.ts, 18, 33)) + + ( + x1: a1, y1: a21, z1: a31, a1: a41, b1: a51, c1: a61, +>x1 : Symbol(x1, Decl(genericsManyTypeParameters.ts, 19, 5)) +>a1 : Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) +>y1 : Symbol(y1, Decl(genericsManyTypeParameters.ts, 20, 15)) +>a21 : Symbol(a21, Decl(genericsManyTypeParameters.ts, 1, 7)) +>z1 : Symbol(z1, Decl(genericsManyTypeParameters.ts, 20, 24)) +>a31 : Symbol(a31, Decl(genericsManyTypeParameters.ts, 1, 12)) +>a1 : Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) +>a41 : Symbol(a41, Decl(genericsManyTypeParameters.ts, 1, 17)) +>b1 : Symbol(b1, Decl(genericsManyTypeParameters.ts, 20, 42)) +>a51 : Symbol(a51, Decl(genericsManyTypeParameters.ts, 1, 22)) +>c1 : Symbol(c1, Decl(genericsManyTypeParameters.ts, 20, 51)) +>a61 : Symbol(a61, Decl(genericsManyTypeParameters.ts, 1, 27)) + + x2: a119, y2: a22, z2: a32, a2: a42, b2: a52, c2: a62, +>x2 : Symbol(x2, Decl(genericsManyTypeParameters.ts, 20, 60)) +>a119 : Symbol(a119, Decl(genericsManyTypeParameters.ts, 1, 32)) +>y2 : Symbol(y2, Decl(genericsManyTypeParameters.ts, 21, 17)) +>a22 : Symbol(a22, Decl(genericsManyTypeParameters.ts, 2, 9)) +>z2 : Symbol(z2, Decl(genericsManyTypeParameters.ts, 21, 26)) +>a32 : Symbol(a32, Decl(genericsManyTypeParameters.ts, 2, 14)) +>a2 : Symbol(a2, Decl(genericsManyTypeParameters.ts, 21, 35)) +>a42 : Symbol(a42, Decl(genericsManyTypeParameters.ts, 2, 19)) +>b2 : Symbol(b2, Decl(genericsManyTypeParameters.ts, 21, 44)) +>a52 : Symbol(a52, Decl(genericsManyTypeParameters.ts, 2, 24)) +>c2 : Symbol(c2, Decl(genericsManyTypeParameters.ts, 21, 53)) +>a62 : Symbol(a62, Decl(genericsManyTypeParameters.ts, 2, 29)) + + x3: a219, y3: a23, z3: a33, a3: a43, b3: a53, c3: a63, +>x3 : Symbol(x3, Decl(genericsManyTypeParameters.ts, 21, 62)) +>a219 : Symbol(a219, Decl(genericsManyTypeParameters.ts, 2, 34)) +>y3 : Symbol(y3, Decl(genericsManyTypeParameters.ts, 22, 17)) +>a23 : Symbol(a23, Decl(genericsManyTypeParameters.ts, 3, 9)) +>z3 : Symbol(z3, Decl(genericsManyTypeParameters.ts, 22, 26)) +>a33 : Symbol(a33, Decl(genericsManyTypeParameters.ts, 3, 14)) +>a3 : Symbol(a3, Decl(genericsManyTypeParameters.ts, 22, 35)) +>a43 : Symbol(a43, Decl(genericsManyTypeParameters.ts, 3, 19)) +>b3 : Symbol(b3, Decl(genericsManyTypeParameters.ts, 22, 44)) +>a53 : Symbol(a53, Decl(genericsManyTypeParameters.ts, 3, 24)) +>c3 : Symbol(c3, Decl(genericsManyTypeParameters.ts, 22, 53)) +>a63 : Symbol(a63, Decl(genericsManyTypeParameters.ts, 3, 29)) + + x4: a319, y4: a24, z4: a34, a4: a44, b4: a54, c4: a64, +>x4 : Symbol(x4, Decl(genericsManyTypeParameters.ts, 22, 62)) +>a319 : Symbol(a319, Decl(genericsManyTypeParameters.ts, 3, 34)) +>y4 : Symbol(y4, Decl(genericsManyTypeParameters.ts, 23, 17)) +>a24 : Symbol(a24, Decl(genericsManyTypeParameters.ts, 4, 9)) +>z4 : Symbol(z4, Decl(genericsManyTypeParameters.ts, 23, 26)) +>a34 : Symbol(a34, Decl(genericsManyTypeParameters.ts, 4, 14)) +>a4 : Symbol(a4, Decl(genericsManyTypeParameters.ts, 23, 35)) +>a44 : Symbol(a44, Decl(genericsManyTypeParameters.ts, 4, 19)) +>b4 : Symbol(b4, Decl(genericsManyTypeParameters.ts, 23, 44)) +>a54 : Symbol(a54, Decl(genericsManyTypeParameters.ts, 4, 24)) +>c4 : Symbol(c4, Decl(genericsManyTypeParameters.ts, 23, 53)) +>a64 : Symbol(a64, Decl(genericsManyTypeParameters.ts, 4, 29)) + + x5: a419, y5: a25, z5: a35, a5: a45, b5: a55, c5: a65, +>x5 : Symbol(x5, Decl(genericsManyTypeParameters.ts, 23, 62)) +>a419 : Symbol(a419, Decl(genericsManyTypeParameters.ts, 4, 34)) +>y5 : Symbol(y5, Decl(genericsManyTypeParameters.ts, 24, 17)) +>a25 : Symbol(a25, Decl(genericsManyTypeParameters.ts, 5, 9)) +>z5 : Symbol(z5, Decl(genericsManyTypeParameters.ts, 24, 26)) +>a35 : Symbol(a35, Decl(genericsManyTypeParameters.ts, 5, 14)) +>a5 : Symbol(a5, Decl(genericsManyTypeParameters.ts, 24, 35)) +>a45 : Symbol(a45, Decl(genericsManyTypeParameters.ts, 5, 19)) +>b5 : Symbol(b5, Decl(genericsManyTypeParameters.ts, 24, 44)) +>a55 : Symbol(a55, Decl(genericsManyTypeParameters.ts, 5, 24)) +>c5 : Symbol(c5, Decl(genericsManyTypeParameters.ts, 24, 53)) +>a65 : Symbol(a65, Decl(genericsManyTypeParameters.ts, 5, 29)) + + x6: a519, y6: a26, z6: a36, a6: a46, b6: a56, c6: a66, +>x6 : Symbol(x6, Decl(genericsManyTypeParameters.ts, 24, 62)) +>a519 : Symbol(a519, Decl(genericsManyTypeParameters.ts, 5, 34)) +>y6 : Symbol(y6, Decl(genericsManyTypeParameters.ts, 25, 17)) +>a26 : Symbol(a26, Decl(genericsManyTypeParameters.ts, 6, 9)) +>z6 : Symbol(z6, Decl(genericsManyTypeParameters.ts, 25, 26)) +>a36 : Symbol(a36, Decl(genericsManyTypeParameters.ts, 6, 14)) +>a6 : Symbol(a6, Decl(genericsManyTypeParameters.ts, 25, 35)) +>a46 : Symbol(a46, Decl(genericsManyTypeParameters.ts, 6, 19)) +>b6 : Symbol(b6, Decl(genericsManyTypeParameters.ts, 25, 44)) +>a56 : Symbol(a56, Decl(genericsManyTypeParameters.ts, 6, 24)) +>c6 : Symbol(c6, Decl(genericsManyTypeParameters.ts, 25, 53)) +>a66 : Symbol(a66, Decl(genericsManyTypeParameters.ts, 6, 29)) + + x7: a619, y7: a27, z7: a37, a7: a47, b7: a57, c7: a67, +>x7 : Symbol(x7, Decl(genericsManyTypeParameters.ts, 25, 62)) +>a619 : Symbol(a619, Decl(genericsManyTypeParameters.ts, 6, 34)) +>y7 : Symbol(y7, Decl(genericsManyTypeParameters.ts, 26, 17)) +>a27 : Symbol(a27, Decl(genericsManyTypeParameters.ts, 7, 9)) +>z7 : Symbol(z7, Decl(genericsManyTypeParameters.ts, 26, 26)) +>a37 : Symbol(a37, Decl(genericsManyTypeParameters.ts, 7, 14)) +>a7 : Symbol(a7, Decl(genericsManyTypeParameters.ts, 26, 35)) +>a47 : Symbol(a47, Decl(genericsManyTypeParameters.ts, 7, 19)) +>b7 : Symbol(b7, Decl(genericsManyTypeParameters.ts, 26, 44)) +>a57 : Symbol(a57, Decl(genericsManyTypeParameters.ts, 7, 24)) +>c7 : Symbol(c7, Decl(genericsManyTypeParameters.ts, 26, 53)) +>a67 : Symbol(a67, Decl(genericsManyTypeParameters.ts, 7, 29)) + + x8: a71, y8: a28, z8: a38, a8: a48, b8: a58, c8: a68, +>x8 : Symbol(x8, Decl(genericsManyTypeParameters.ts, 26, 62)) +>a71 : Symbol(a71, Decl(genericsManyTypeParameters.ts, 7, 34)) +>y8 : Symbol(y8, Decl(genericsManyTypeParameters.ts, 27, 16)) +>a28 : Symbol(a28, Decl(genericsManyTypeParameters.ts, 8, 8)) +>z8 : Symbol(z8, Decl(genericsManyTypeParameters.ts, 27, 25)) +>a38 : Symbol(a38, Decl(genericsManyTypeParameters.ts, 8, 13)) +>a8 : Symbol(a8, Decl(genericsManyTypeParameters.ts, 27, 34)) +>a48 : Symbol(a48, Decl(genericsManyTypeParameters.ts, 8, 18)) +>b8 : Symbol(b8, Decl(genericsManyTypeParameters.ts, 27, 43)) +>a58 : Symbol(a58, Decl(genericsManyTypeParameters.ts, 8, 23)) +>c8 : Symbol(c8, Decl(genericsManyTypeParameters.ts, 27, 52)) +>a68 : Symbol(a68, Decl(genericsManyTypeParameters.ts, 8, 28)) + + x9: a81, y9: a29, z9: a39, a9: a49, b9: a59, c9: a69, +>x9 : Symbol(x9, Decl(genericsManyTypeParameters.ts, 27, 61)) +>a81 : Symbol(a81, Decl(genericsManyTypeParameters.ts, 8, 33)) +>y9 : Symbol(y9, Decl(genericsManyTypeParameters.ts, 28, 16)) +>a29 : Symbol(a29, Decl(genericsManyTypeParameters.ts, 9, 8)) +>z9 : Symbol(z9, Decl(genericsManyTypeParameters.ts, 28, 25)) +>a39 : Symbol(a39, Decl(genericsManyTypeParameters.ts, 9, 13)) +>a9 : Symbol(a9, Decl(genericsManyTypeParameters.ts, 28, 34)) +>a49 : Symbol(a49, Decl(genericsManyTypeParameters.ts, 9, 18)) +>b9 : Symbol(b9, Decl(genericsManyTypeParameters.ts, 28, 43)) +>a59 : Symbol(a59, Decl(genericsManyTypeParameters.ts, 9, 23)) +>c9 : Symbol(c9, Decl(genericsManyTypeParameters.ts, 28, 52)) +>a69 : Symbol(a69, Decl(genericsManyTypeParameters.ts, 9, 28)) + + x10: a91, y12: a210, z10: a310, a10: a410, b10: a510, c10: a610, +>x10 : Symbol(x10, Decl(genericsManyTypeParameters.ts, 28, 61)) +>a91 : Symbol(a91, Decl(genericsManyTypeParameters.ts, 9, 33)) +>y12 : Symbol(y12, Decl(genericsManyTypeParameters.ts, 29, 17)) +>a210 : Symbol(a210, Decl(genericsManyTypeParameters.ts, 10, 8)) +>z10 : Symbol(z10, Decl(genericsManyTypeParameters.ts, 29, 28)) +>a310 : Symbol(a310, Decl(genericsManyTypeParameters.ts, 10, 14)) +>a10 : Symbol(a10, Decl(genericsManyTypeParameters.ts, 29, 39)) +>a410 : Symbol(a410, Decl(genericsManyTypeParameters.ts, 10, 20)) +>b10 : Symbol(b10, Decl(genericsManyTypeParameters.ts, 29, 50)) +>a510 : Symbol(a510, Decl(genericsManyTypeParameters.ts, 10, 26)) +>c10 : Symbol(c10, Decl(genericsManyTypeParameters.ts, 29, 61)) +>a610 : Symbol(a610, Decl(genericsManyTypeParameters.ts, 10, 32)) + + x11: a111, y13: a211, z11: a311, a11: a411, b11: a511, c11: a611, +>x11 : Symbol(x11, Decl(genericsManyTypeParameters.ts, 29, 72)) +>a111 : Symbol(a111, Decl(genericsManyTypeParameters.ts, 10, 38)) +>y13 : Symbol(y13, Decl(genericsManyTypeParameters.ts, 30, 18)) +>a211 : Symbol(a211, Decl(genericsManyTypeParameters.ts, 11, 9)) +>z11 : Symbol(z11, Decl(genericsManyTypeParameters.ts, 30, 29)) +>a311 : Symbol(a311, Decl(genericsManyTypeParameters.ts, 11, 15)) +>a11 : Symbol(a11, Decl(genericsManyTypeParameters.ts, 30, 40)) +>a411 : Symbol(a411, Decl(genericsManyTypeParameters.ts, 11, 21)) +>b11 : Symbol(b11, Decl(genericsManyTypeParameters.ts, 30, 51)) +>a511 : Symbol(a511, Decl(genericsManyTypeParameters.ts, 11, 27)) +>c11 : Symbol(c11, Decl(genericsManyTypeParameters.ts, 30, 62)) +>a611 : Symbol(a611, Decl(genericsManyTypeParameters.ts, 11, 33)) + + x12: a112, y14: a212, z12: a312, a12: a412, b12: a512, c12: a612, +>x12 : Symbol(x12, Decl(genericsManyTypeParameters.ts, 30, 73)) +>a112 : Symbol(a112, Decl(genericsManyTypeParameters.ts, 11, 39)) +>y14 : Symbol(y14, Decl(genericsManyTypeParameters.ts, 31, 18)) +>a212 : Symbol(a212, Decl(genericsManyTypeParameters.ts, 12, 9)) +>z12 : Symbol(z12, Decl(genericsManyTypeParameters.ts, 31, 29)) +>a312 : Symbol(a312, Decl(genericsManyTypeParameters.ts, 12, 15)) +>a12 : Symbol(a12, Decl(genericsManyTypeParameters.ts, 31, 40)) +>a412 : Symbol(a412, Decl(genericsManyTypeParameters.ts, 12, 21)) +>b12 : Symbol(b12, Decl(genericsManyTypeParameters.ts, 31, 51)) +>a512 : Symbol(a512, Decl(genericsManyTypeParameters.ts, 12, 27)) +>c12 : Symbol(c12, Decl(genericsManyTypeParameters.ts, 31, 62)) +>a612 : Symbol(a612, Decl(genericsManyTypeParameters.ts, 12, 33)) + + x13: a113, y15: a213, z13: a313, a13: a413, b13: a513, c13: a613, +>x13 : Symbol(x13, Decl(genericsManyTypeParameters.ts, 31, 73)) +>a113 : Symbol(a113, Decl(genericsManyTypeParameters.ts, 12, 39)) +>y15 : Symbol(y15, Decl(genericsManyTypeParameters.ts, 32, 18)) +>a213 : Symbol(a213, Decl(genericsManyTypeParameters.ts, 13, 9)) +>z13 : Symbol(z13, Decl(genericsManyTypeParameters.ts, 32, 29)) +>a313 : Symbol(a313, Decl(genericsManyTypeParameters.ts, 13, 15)) +>a13 : Symbol(a13, Decl(genericsManyTypeParameters.ts, 32, 40)) +>a413 : Symbol(a413, Decl(genericsManyTypeParameters.ts, 13, 21)) +>b13 : Symbol(b13, Decl(genericsManyTypeParameters.ts, 32, 51)) +>a513 : Symbol(a513, Decl(genericsManyTypeParameters.ts, 13, 27)) +>c13 : Symbol(c13, Decl(genericsManyTypeParameters.ts, 32, 62)) +>a613 : Symbol(a613, Decl(genericsManyTypeParameters.ts, 13, 33)) + + x14: a114, y16: a214, z14: a314, a14: a414, b14: a514, c14: a614, +>x14 : Symbol(x14, Decl(genericsManyTypeParameters.ts, 32, 73)) +>a114 : Symbol(a114, Decl(genericsManyTypeParameters.ts, 13, 39)) +>y16 : Symbol(y16, Decl(genericsManyTypeParameters.ts, 33, 18)) +>a214 : Symbol(a214, Decl(genericsManyTypeParameters.ts, 14, 9)) +>z14 : Symbol(z14, Decl(genericsManyTypeParameters.ts, 33, 29)) +>a314 : Symbol(a314, Decl(genericsManyTypeParameters.ts, 14, 15)) +>a14 : Symbol(a14, Decl(genericsManyTypeParameters.ts, 33, 40)) +>a414 : Symbol(a414, Decl(genericsManyTypeParameters.ts, 14, 21)) +>b14 : Symbol(b14, Decl(genericsManyTypeParameters.ts, 33, 51)) +>a514 : Symbol(a514, Decl(genericsManyTypeParameters.ts, 14, 27)) +>c14 : Symbol(c14, Decl(genericsManyTypeParameters.ts, 33, 62)) +>a614 : Symbol(a614, Decl(genericsManyTypeParameters.ts, 14, 33)) + + x15: a115, y17: a215, z15: a315, a15: a415, b15: a515, c15: a615, +>x15 : Symbol(x15, Decl(genericsManyTypeParameters.ts, 33, 73)) +>a115 : Symbol(a115, Decl(genericsManyTypeParameters.ts, 14, 39)) +>y17 : Symbol(y17, Decl(genericsManyTypeParameters.ts, 34, 18)) +>a215 : Symbol(a215, Decl(genericsManyTypeParameters.ts, 15, 9)) +>z15 : Symbol(z15, Decl(genericsManyTypeParameters.ts, 34, 29)) +>a315 : Symbol(a315, Decl(genericsManyTypeParameters.ts, 15, 15)) +>a15 : Symbol(a15, Decl(genericsManyTypeParameters.ts, 34, 40)) +>a415 : Symbol(a415, Decl(genericsManyTypeParameters.ts, 15, 21)) +>b15 : Symbol(b15, Decl(genericsManyTypeParameters.ts, 34, 51)) +>a515 : Symbol(a515, Decl(genericsManyTypeParameters.ts, 15, 27)) +>c15 : Symbol(c15, Decl(genericsManyTypeParameters.ts, 34, 62)) +>a615 : Symbol(a615, Decl(genericsManyTypeParameters.ts, 15, 33)) + + x16: a116, y18: a216, z16: a316, a16: a416, b16: a516, c16: a616, +>x16 : Symbol(x16, Decl(genericsManyTypeParameters.ts, 34, 73)) +>a116 : Symbol(a116, Decl(genericsManyTypeParameters.ts, 15, 39)) +>y18 : Symbol(y18, Decl(genericsManyTypeParameters.ts, 35, 18)) +>a216 : Symbol(a216, Decl(genericsManyTypeParameters.ts, 16, 9)) +>z16 : Symbol(z16, Decl(genericsManyTypeParameters.ts, 35, 29)) +>a316 : Symbol(a316, Decl(genericsManyTypeParameters.ts, 16, 15)) +>a16 : Symbol(a16, Decl(genericsManyTypeParameters.ts, 35, 40)) +>a416 : Symbol(a416, Decl(genericsManyTypeParameters.ts, 16, 21)) +>b16 : Symbol(b16, Decl(genericsManyTypeParameters.ts, 35, 51)) +>a516 : Symbol(a516, Decl(genericsManyTypeParameters.ts, 16, 27)) +>c16 : Symbol(c16, Decl(genericsManyTypeParameters.ts, 35, 62)) +>a616 : Symbol(a616, Decl(genericsManyTypeParameters.ts, 16, 33)) + + x17: a117, y19: a217, z17: a317, a17: a417, b17: a517, c17: a617, +>x17 : Symbol(x17, Decl(genericsManyTypeParameters.ts, 35, 73)) +>a117 : Symbol(a117, Decl(genericsManyTypeParameters.ts, 16, 39)) +>y19 : Symbol(y19, Decl(genericsManyTypeParameters.ts, 36, 18)) +>a217 : Symbol(a217, Decl(genericsManyTypeParameters.ts, 17, 9)) +>z17 : Symbol(z17, Decl(genericsManyTypeParameters.ts, 36, 29)) +>a317 : Symbol(a317, Decl(genericsManyTypeParameters.ts, 17, 15)) +>a17 : Symbol(a17, Decl(genericsManyTypeParameters.ts, 36, 40)) +>a417 : Symbol(a417, Decl(genericsManyTypeParameters.ts, 17, 21)) +>b17 : Symbol(b17, Decl(genericsManyTypeParameters.ts, 36, 51)) +>a517 : Symbol(a517, Decl(genericsManyTypeParameters.ts, 17, 27)) +>c17 : Symbol(c17, Decl(genericsManyTypeParameters.ts, 36, 62)) +>a617 : Symbol(a617, Decl(genericsManyTypeParameters.ts, 17, 33)) + + x18: a118, y10: a218, z18: a318, a18: a418, b18: a518, c18: a618 +>x18 : Symbol(x18, Decl(genericsManyTypeParameters.ts, 36, 73)) +>a118 : Symbol(a118, Decl(genericsManyTypeParameters.ts, 17, 39)) +>y10 : Symbol(y10, Decl(genericsManyTypeParameters.ts, 37, 18)) +>a218 : Symbol(a218, Decl(genericsManyTypeParameters.ts, 18, 9)) +>z18 : Symbol(z18, Decl(genericsManyTypeParameters.ts, 37, 29)) +>a318 : Symbol(a318, Decl(genericsManyTypeParameters.ts, 18, 15)) +>a18 : Symbol(a18, Decl(genericsManyTypeParameters.ts, 37, 40)) +>a418 : Symbol(a418, Decl(genericsManyTypeParameters.ts, 18, 21)) +>b18 : Symbol(b18, Decl(genericsManyTypeParameters.ts, 37, 51)) +>a518 : Symbol(a518, Decl(genericsManyTypeParameters.ts, 18, 27)) +>c18 : Symbol(c18, Decl(genericsManyTypeParameters.ts, 37, 62)) +>a618 : Symbol(a618, Decl(genericsManyTypeParameters.ts, 18, 33)) + + ) + { + return [x1 , y1 , z1 , a1 , b1 , c1, +>x1 : Symbol(x1, Decl(genericsManyTypeParameters.ts, 19, 5)) +>y1 : Symbol(y1, Decl(genericsManyTypeParameters.ts, 20, 15)) +>z1 : Symbol(z1, Decl(genericsManyTypeParameters.ts, 20, 24)) +>a1 : Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) +>b1 : Symbol(b1, Decl(genericsManyTypeParameters.ts, 20, 42)) +>c1 : Symbol(c1, Decl(genericsManyTypeParameters.ts, 20, 51)) + + x2 , y2 , z2 , a2 , b2 , c2, +>x2 : Symbol(x2, Decl(genericsManyTypeParameters.ts, 20, 60)) +>y2 : Symbol(y2, Decl(genericsManyTypeParameters.ts, 21, 17)) +>z2 : Symbol(z2, Decl(genericsManyTypeParameters.ts, 21, 26)) +>a2 : Symbol(a2, Decl(genericsManyTypeParameters.ts, 21, 35)) +>b2 : Symbol(b2, Decl(genericsManyTypeParameters.ts, 21, 44)) +>c2 : Symbol(c2, Decl(genericsManyTypeParameters.ts, 21, 53)) + + x3 , y3 , z3 , a3 , b3 , c3, +>x3 : Symbol(x3, Decl(genericsManyTypeParameters.ts, 21, 62)) +>y3 : Symbol(y3, Decl(genericsManyTypeParameters.ts, 22, 17)) +>z3 : Symbol(z3, Decl(genericsManyTypeParameters.ts, 22, 26)) +>a3 : Symbol(a3, Decl(genericsManyTypeParameters.ts, 22, 35)) +>b3 : Symbol(b3, Decl(genericsManyTypeParameters.ts, 22, 44)) +>c3 : Symbol(c3, Decl(genericsManyTypeParameters.ts, 22, 53)) + + x4 , y4 , z4 , a4 , b4 , c4, +>x4 : Symbol(x4, Decl(genericsManyTypeParameters.ts, 22, 62)) +>y4 : Symbol(y4, Decl(genericsManyTypeParameters.ts, 23, 17)) +>z4 : Symbol(z4, Decl(genericsManyTypeParameters.ts, 23, 26)) +>a4 : Symbol(a4, Decl(genericsManyTypeParameters.ts, 23, 35)) +>b4 : Symbol(b4, Decl(genericsManyTypeParameters.ts, 23, 44)) +>c4 : Symbol(c4, Decl(genericsManyTypeParameters.ts, 23, 53)) + + x5 , y5 , z5 , a5 , b5 , c5, +>x5 : Symbol(x5, Decl(genericsManyTypeParameters.ts, 23, 62)) +>y5 : Symbol(y5, Decl(genericsManyTypeParameters.ts, 24, 17)) +>z5 : Symbol(z5, Decl(genericsManyTypeParameters.ts, 24, 26)) +>a5 : Symbol(a5, Decl(genericsManyTypeParameters.ts, 24, 35)) +>b5 : Symbol(b5, Decl(genericsManyTypeParameters.ts, 24, 44)) +>c5 : Symbol(c5, Decl(genericsManyTypeParameters.ts, 24, 53)) + + x6 , y6 , z6 , a6 , b6 , c6, +>x6 : Symbol(x6, Decl(genericsManyTypeParameters.ts, 24, 62)) +>y6 : Symbol(y6, Decl(genericsManyTypeParameters.ts, 25, 17)) +>z6 : Symbol(z6, Decl(genericsManyTypeParameters.ts, 25, 26)) +>a6 : Symbol(a6, Decl(genericsManyTypeParameters.ts, 25, 35)) +>b6 : Symbol(b6, Decl(genericsManyTypeParameters.ts, 25, 44)) +>c6 : Symbol(c6, Decl(genericsManyTypeParameters.ts, 25, 53)) + + x7 , y7 , z7 , a7 , b7 , c7, +>x7 : Symbol(x7, Decl(genericsManyTypeParameters.ts, 25, 62)) +>y7 : Symbol(y7, Decl(genericsManyTypeParameters.ts, 26, 17)) +>z7 : Symbol(z7, Decl(genericsManyTypeParameters.ts, 26, 26)) +>a7 : Symbol(a7, Decl(genericsManyTypeParameters.ts, 26, 35)) +>b7 : Symbol(b7, Decl(genericsManyTypeParameters.ts, 26, 44)) +>c7 : Symbol(c7, Decl(genericsManyTypeParameters.ts, 26, 53)) + + x8 , y8 , z8 , a8 , b8 , c8, +>x8 : Symbol(x8, Decl(genericsManyTypeParameters.ts, 26, 62)) +>y8 : Symbol(y8, Decl(genericsManyTypeParameters.ts, 27, 16)) +>z8 : Symbol(z8, Decl(genericsManyTypeParameters.ts, 27, 25)) +>a8 : Symbol(a8, Decl(genericsManyTypeParameters.ts, 27, 34)) +>b8 : Symbol(b8, Decl(genericsManyTypeParameters.ts, 27, 43)) +>c8 : Symbol(c8, Decl(genericsManyTypeParameters.ts, 27, 52)) + + x9 , y9 , z9 , a9 , b9 , c9, +>x9 : Symbol(x9, Decl(genericsManyTypeParameters.ts, 27, 61)) +>y9 : Symbol(y9, Decl(genericsManyTypeParameters.ts, 28, 16)) +>z9 : Symbol(z9, Decl(genericsManyTypeParameters.ts, 28, 25)) +>a9 : Symbol(a9, Decl(genericsManyTypeParameters.ts, 28, 34)) +>b9 : Symbol(b9, Decl(genericsManyTypeParameters.ts, 28, 43)) +>c9 : Symbol(c9, Decl(genericsManyTypeParameters.ts, 28, 52)) + + x10 , y12 , z10 , a10 , b10 , c10, +>x10 : Symbol(x10, Decl(genericsManyTypeParameters.ts, 28, 61)) +>y12 : Symbol(y12, Decl(genericsManyTypeParameters.ts, 29, 17)) +>z10 : Symbol(z10, Decl(genericsManyTypeParameters.ts, 29, 28)) +>a10 : Symbol(a10, Decl(genericsManyTypeParameters.ts, 29, 39)) +>b10 : Symbol(b10, Decl(genericsManyTypeParameters.ts, 29, 50)) +>c10 : Symbol(c10, Decl(genericsManyTypeParameters.ts, 29, 61)) + + x11 , y13 , z11 , a11 , b11 , c11, +>x11 : Symbol(x11, Decl(genericsManyTypeParameters.ts, 29, 72)) +>y13 : Symbol(y13, Decl(genericsManyTypeParameters.ts, 30, 18)) +>z11 : Symbol(z11, Decl(genericsManyTypeParameters.ts, 30, 29)) +>a11 : Symbol(a11, Decl(genericsManyTypeParameters.ts, 30, 40)) +>b11 : Symbol(b11, Decl(genericsManyTypeParameters.ts, 30, 51)) +>c11 : Symbol(c11, Decl(genericsManyTypeParameters.ts, 30, 62)) + + x12 , y14 , z12 , a12 , b12 , c12, +>x12 : Symbol(x12, Decl(genericsManyTypeParameters.ts, 30, 73)) +>y14 : Symbol(y14, Decl(genericsManyTypeParameters.ts, 31, 18)) +>z12 : Symbol(z12, Decl(genericsManyTypeParameters.ts, 31, 29)) +>a12 : Symbol(a12, Decl(genericsManyTypeParameters.ts, 31, 40)) +>b12 : Symbol(b12, Decl(genericsManyTypeParameters.ts, 31, 51)) +>c12 : Symbol(c12, Decl(genericsManyTypeParameters.ts, 31, 62)) + + x13 , y15 , z13 , a13 , b13 , c13, +>x13 : Symbol(x13, Decl(genericsManyTypeParameters.ts, 31, 73)) +>y15 : Symbol(y15, Decl(genericsManyTypeParameters.ts, 32, 18)) +>z13 : Symbol(z13, Decl(genericsManyTypeParameters.ts, 32, 29)) +>a13 : Symbol(a13, Decl(genericsManyTypeParameters.ts, 32, 40)) +>b13 : Symbol(b13, Decl(genericsManyTypeParameters.ts, 32, 51)) +>c13 : Symbol(c13, Decl(genericsManyTypeParameters.ts, 32, 62)) + + x14 , y16 , z14 , a14 , b14 , c14, +>x14 : Symbol(x14, Decl(genericsManyTypeParameters.ts, 32, 73)) +>y16 : Symbol(y16, Decl(genericsManyTypeParameters.ts, 33, 18)) +>z14 : Symbol(z14, Decl(genericsManyTypeParameters.ts, 33, 29)) +>a14 : Symbol(a14, Decl(genericsManyTypeParameters.ts, 33, 40)) +>b14 : Symbol(b14, Decl(genericsManyTypeParameters.ts, 33, 51)) +>c14 : Symbol(c14, Decl(genericsManyTypeParameters.ts, 33, 62)) + + x15 , y17 , z15 , a15 , b15 , c15, +>x15 : Symbol(x15, Decl(genericsManyTypeParameters.ts, 33, 73)) +>y17 : Symbol(y17, Decl(genericsManyTypeParameters.ts, 34, 18)) +>z15 : Symbol(z15, Decl(genericsManyTypeParameters.ts, 34, 29)) +>a15 : Symbol(a15, Decl(genericsManyTypeParameters.ts, 34, 40)) +>b15 : Symbol(b15, Decl(genericsManyTypeParameters.ts, 34, 51)) +>c15 : Symbol(c15, Decl(genericsManyTypeParameters.ts, 34, 62)) + + x16 , y18 , z16 , a16 , b16 , c16, +>x16 : Symbol(x16, Decl(genericsManyTypeParameters.ts, 34, 73)) +>y18 : Symbol(y18, Decl(genericsManyTypeParameters.ts, 35, 18)) +>z16 : Symbol(z16, Decl(genericsManyTypeParameters.ts, 35, 29)) +>a16 : Symbol(a16, Decl(genericsManyTypeParameters.ts, 35, 40)) +>b16 : Symbol(b16, Decl(genericsManyTypeParameters.ts, 35, 51)) +>c16 : Symbol(c16, Decl(genericsManyTypeParameters.ts, 35, 62)) + + x17 , y19 , z17 , a17 , b17 , c17, +>x17 : Symbol(x17, Decl(genericsManyTypeParameters.ts, 35, 73)) +>y19 : Symbol(y19, Decl(genericsManyTypeParameters.ts, 36, 18)) +>z17 : Symbol(z17, Decl(genericsManyTypeParameters.ts, 36, 29)) +>a17 : Symbol(a17, Decl(genericsManyTypeParameters.ts, 36, 40)) +>b17 : Symbol(b17, Decl(genericsManyTypeParameters.ts, 36, 51)) +>c17 : Symbol(c17, Decl(genericsManyTypeParameters.ts, 36, 62)) + + x18 , y10 , z18 , a18 , b18 , c18]; +>x18 : Symbol(x18, Decl(genericsManyTypeParameters.ts, 36, 73)) +>y10 : Symbol(y10, Decl(genericsManyTypeParameters.ts, 37, 18)) +>z18 : Symbol(z18, Decl(genericsManyTypeParameters.ts, 37, 29)) +>a18 : Symbol(a18, Decl(genericsManyTypeParameters.ts, 37, 40)) +>b18 : Symbol(b18, Decl(genericsManyTypeParameters.ts, 37, 51)) +>c18 : Symbol(c18, Decl(genericsManyTypeParameters.ts, 37, 62)) + } diff --git a/tests/baselines/reference/genericsManyTypeParameters.types b/tests/baselines/reference/genericsManyTypeParameters.types index 93bfdbfdb78fc..cb492c3062340 100644 --- a/tests/baselines/reference/genericsManyTypeParameters.types +++ b/tests/baselines/reference/genericsManyTypeParameters.types @@ -1,548 +1,548 @@ === tests/cases/compiler/genericsManyTypeParameters.ts === function Foo< ->Foo : (x1: a1, y1: a21, z1: a31, a1: a41, b1: a51, c1: a61, x2: a119, y2: a22, z2: a32, a2: a42, b2: a52, c2: a62, x3: a219, y3: a23, z3: a33, a3: a43, b3: a53, c3: a63, x4: a319, y4: a24, z4: a34, a4: a44, b4: a54, c4: a64, x5: a419, y5: a25, z5: a35, a5: a45, b5: a55, c5: a65, x6: a519, y6: a26, z6: a36, a6: a46, b6: a56, c6: a66, x7: a619, y7: a27, z7: a37, a7: a47, b7: a57, c7: a67, x8: a71, y8: a28, z8: a38, a8: a48, b8: a58, c8: a68, x9: a81, y9: a29, z9: a39, a9: a49, b9: a59, c9: a69, x10: a91, y12: a210, z10: a310, a10: a410, b10: a510, c10: a610, x11: a111, y13: a211, z11: a311, a11: a411, b11: a511, c11: a611, x12: a112, y14: a212, z12: a312, a12: a412, b12: a512, c12: a612, x13: a113, y15: a213, z13: a313, a13: a413, b13: a513, c13: a613, x14: a114, y16: a214, z14: a314, a14: a414, b14: a514, c14: a614, x15: a115, y17: a215, z15: a315, a15: a415, b15: a515, c15: a615, x16: a116, y18: a216, z16: a316, a16: a416, b16: a516, c16: a616, x17: a117, y19: a217, z17: a317, a17: a417, b17: a517, c17: a617, x18: a118, y10: a218, z18: a318, a18: a418, b18: a518, c18: a618) => (a1 | a21 | a31 | a41 | a51 | a61 | a119 | a22 | a32 | a42 | a52 | a62 | a219 | a23 | a33 | a43 | a53 | a63 | a319 | a24 | a34 | a44 | a54 | a64 | a419 | a25 | a35 | a45 | a55 | a65 | a519 | a26 | a36 | a46 | a56 | a66 | a619 | a27 | a37 | a47 | a57 | a67 | a71 | a28 | a38 | a48 | a58 | a68 | a81 | a29 | a39 | a49 | a59 | a69 | a91 | a210 | a310 | a410 | a510 | a610 | a111 | a211 | a311 | a411 | a511 | a611 | a112 | a212 | a312 | a412 | a512 | a612 | a113 | a213 | a313 | a413 | a513 | a613 | a114 | a214 | a314 | a414 | a514 | a614 | a115 | a215 | a315 | a415 | a515 | a615 | a116 | a216 | a316 | a416 | a516 | a616 | a117 | a217 | a317 | a417 | a517 | a617 | a118 | a218 | a318 | a418 | a518 | a618)[], Symbol(Foo, Decl(genericsManyTypeParameters.ts, 0, 0)) +>Foo : (x1: a1, y1: a21, z1: a31, a1: a41, b1: a51, c1: a61, x2: a119, y2: a22, z2: a32, a2: a42, b2: a52, c2: a62, x3: a219, y3: a23, z3: a33, a3: a43, b3: a53, c3: a63, x4: a319, y4: a24, z4: a34, a4: a44, b4: a54, c4: a64, x5: a419, y5: a25, z5: a35, a5: a45, b5: a55, c5: a65, x6: a519, y6: a26, z6: a36, a6: a46, b6: a56, c6: a66, x7: a619, y7: a27, z7: a37, a7: a47, b7: a57, c7: a67, x8: a71, y8: a28, z8: a38, a8: a48, b8: a58, c8: a68, x9: a81, y9: a29, z9: a39, a9: a49, b9: a59, c9: a69, x10: a91, y12: a210, z10: a310, a10: a410, b10: a510, c10: a610, x11: a111, y13: a211, z11: a311, a11: a411, b11: a511, c11: a611, x12: a112, y14: a212, z12: a312, a12: a412, b12: a512, c12: a612, x13: a113, y15: a213, z13: a313, a13: a413, b13: a513, c13: a613, x14: a114, y16: a214, z14: a314, a14: a414, b14: a514, c14: a614, x15: a115, y17: a215, z15: a315, a15: a415, b15: a515, c15: a615, x16: a116, y18: a216, z16: a316, a16: a416, b16: a516, c16: a616, x17: a117, y19: a217, z17: a317, a17: a417, b17: a517, c17: a617, x18: a118, y10: a218, z18: a318, a18: a418, b18: a518, c18: a618) => (a1 | a21 | a31 | a41 | a51 | a61 | a119 | a22 | a32 | a42 | a52 | a62 | a219 | a23 | a33 | a43 | a53 | a63 | a319 | a24 | a34 | a44 | a54 | a64 | a419 | a25 | a35 | a45 | a55 | a65 | a519 | a26 | a36 | a46 | a56 | a66 | a619 | a27 | a37 | a47 | a57 | a67 | a71 | a28 | a38 | a48 | a58 | a68 | a81 | a29 | a39 | a49 | a59 | a69 | a91 | a210 | a310 | a410 | a510 | a610 | a111 | a211 | a311 | a411 | a511 | a611 | a112 | a212 | a312 | a412 | a512 | a612 | a113 | a213 | a313 | a413 | a513 | a613 | a114 | a214 | a314 | a414 | a514 | a614 | a115 | a215 | a315 | a415 | a515 | a615 | a116 | a216 | a316 | a416 | a516 | a616 | a117 | a217 | a317 | a417 | a517 | a617 | a118 | a218 | a318 | a418 | a518 | a618)[] a1, a21, a31, a41, a51, a61, ->a1 : a1, Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) ->a21 : a21, Symbol(a21, Decl(genericsManyTypeParameters.ts, 1, 7)) ->a31 : a31, Symbol(a31, Decl(genericsManyTypeParameters.ts, 1, 12)) ->a41 : a41, Symbol(a41, Decl(genericsManyTypeParameters.ts, 1, 17)) ->a51 : a51, Symbol(a51, Decl(genericsManyTypeParameters.ts, 1, 22)) ->a61 : a61, Symbol(a61, Decl(genericsManyTypeParameters.ts, 1, 27)) +>a1 : a1 +>a21 : a21 +>a31 : a31 +>a41 : a41 +>a51 : a51 +>a61 : a61 a119, a22, a32, a42, a52, a62, ->a119 : a119, Symbol(a119, Decl(genericsManyTypeParameters.ts, 1, 32)) ->a22 : a22, Symbol(a22, Decl(genericsManyTypeParameters.ts, 2, 9)) ->a32 : a32, Symbol(a32, Decl(genericsManyTypeParameters.ts, 2, 14)) ->a42 : a42, Symbol(a42, Decl(genericsManyTypeParameters.ts, 2, 19)) ->a52 : a52, Symbol(a52, Decl(genericsManyTypeParameters.ts, 2, 24)) ->a62 : a62, Symbol(a62, Decl(genericsManyTypeParameters.ts, 2, 29)) +>a119 : a119 +>a22 : a22 +>a32 : a32 +>a42 : a42 +>a52 : a52 +>a62 : a62 a219, a23, a33, a43, a53, a63, ->a219 : a219, Symbol(a219, Decl(genericsManyTypeParameters.ts, 2, 34)) ->a23 : a23, Symbol(a23, Decl(genericsManyTypeParameters.ts, 3, 9)) ->a33 : a33, Symbol(a33, Decl(genericsManyTypeParameters.ts, 3, 14)) ->a43 : a43, Symbol(a43, Decl(genericsManyTypeParameters.ts, 3, 19)) ->a53 : a53, Symbol(a53, Decl(genericsManyTypeParameters.ts, 3, 24)) ->a63 : a63, Symbol(a63, Decl(genericsManyTypeParameters.ts, 3, 29)) +>a219 : a219 +>a23 : a23 +>a33 : a33 +>a43 : a43 +>a53 : a53 +>a63 : a63 a319, a24, a34, a44, a54, a64, ->a319 : a319, Symbol(a319, Decl(genericsManyTypeParameters.ts, 3, 34)) ->a24 : a24, Symbol(a24, Decl(genericsManyTypeParameters.ts, 4, 9)) ->a34 : a34, Symbol(a34, Decl(genericsManyTypeParameters.ts, 4, 14)) ->a44 : a44, Symbol(a44, Decl(genericsManyTypeParameters.ts, 4, 19)) ->a54 : a54, Symbol(a54, Decl(genericsManyTypeParameters.ts, 4, 24)) ->a64 : a64, Symbol(a64, Decl(genericsManyTypeParameters.ts, 4, 29)) +>a319 : a319 +>a24 : a24 +>a34 : a34 +>a44 : a44 +>a54 : a54 +>a64 : a64 a419, a25, a35, a45, a55, a65, ->a419 : a419, Symbol(a419, Decl(genericsManyTypeParameters.ts, 4, 34)) ->a25 : a25, Symbol(a25, Decl(genericsManyTypeParameters.ts, 5, 9)) ->a35 : a35, Symbol(a35, Decl(genericsManyTypeParameters.ts, 5, 14)) ->a45 : a45, Symbol(a45, Decl(genericsManyTypeParameters.ts, 5, 19)) ->a55 : a55, Symbol(a55, Decl(genericsManyTypeParameters.ts, 5, 24)) ->a65 : a65, Symbol(a65, Decl(genericsManyTypeParameters.ts, 5, 29)) +>a419 : a419 +>a25 : a25 +>a35 : a35 +>a45 : a45 +>a55 : a55 +>a65 : a65 a519, a26, a36, a46, a56, a66, ->a519 : a519, Symbol(a519, Decl(genericsManyTypeParameters.ts, 5, 34)) ->a26 : a26, Symbol(a26, Decl(genericsManyTypeParameters.ts, 6, 9)) ->a36 : a36, Symbol(a36, Decl(genericsManyTypeParameters.ts, 6, 14)) ->a46 : a46, Symbol(a46, Decl(genericsManyTypeParameters.ts, 6, 19)) ->a56 : a56, Symbol(a56, Decl(genericsManyTypeParameters.ts, 6, 24)) ->a66 : a66, Symbol(a66, Decl(genericsManyTypeParameters.ts, 6, 29)) +>a519 : a519 +>a26 : a26 +>a36 : a36 +>a46 : a46 +>a56 : a56 +>a66 : a66 a619, a27, a37, a47, a57, a67, ->a619 : a619, Symbol(a619, Decl(genericsManyTypeParameters.ts, 6, 34)) ->a27 : a27, Symbol(a27, Decl(genericsManyTypeParameters.ts, 7, 9)) ->a37 : a37, Symbol(a37, Decl(genericsManyTypeParameters.ts, 7, 14)) ->a47 : a47, Symbol(a47, Decl(genericsManyTypeParameters.ts, 7, 19)) ->a57 : a57, Symbol(a57, Decl(genericsManyTypeParameters.ts, 7, 24)) ->a67 : a67, Symbol(a67, Decl(genericsManyTypeParameters.ts, 7, 29)) +>a619 : a619 +>a27 : a27 +>a37 : a37 +>a47 : a47 +>a57 : a57 +>a67 : a67 a71, a28, a38, a48, a58, a68, ->a71 : a71, Symbol(a71, Decl(genericsManyTypeParameters.ts, 7, 34)) ->a28 : a28, Symbol(a28, Decl(genericsManyTypeParameters.ts, 8, 8)) ->a38 : a38, Symbol(a38, Decl(genericsManyTypeParameters.ts, 8, 13)) ->a48 : a48, Symbol(a48, Decl(genericsManyTypeParameters.ts, 8, 18)) ->a58 : a58, Symbol(a58, Decl(genericsManyTypeParameters.ts, 8, 23)) ->a68 : a68, Symbol(a68, Decl(genericsManyTypeParameters.ts, 8, 28)) +>a71 : a71 +>a28 : a28 +>a38 : a38 +>a48 : a48 +>a58 : a58 +>a68 : a68 a81, a29, a39, a49, a59, a69, ->a81 : a81, Symbol(a81, Decl(genericsManyTypeParameters.ts, 8, 33)) ->a29 : a29, Symbol(a29, Decl(genericsManyTypeParameters.ts, 9, 8)) ->a39 : a39, Symbol(a39, Decl(genericsManyTypeParameters.ts, 9, 13)) ->a49 : a49, Symbol(a49, Decl(genericsManyTypeParameters.ts, 9, 18)) ->a59 : a59, Symbol(a59, Decl(genericsManyTypeParameters.ts, 9, 23)) ->a69 : a69, Symbol(a69, Decl(genericsManyTypeParameters.ts, 9, 28)) +>a81 : a81 +>a29 : a29 +>a39 : a39 +>a49 : a49 +>a59 : a59 +>a69 : a69 a91, a210, a310, a410, a510, a610, ->a91 : a91, Symbol(a91, Decl(genericsManyTypeParameters.ts, 9, 33)) ->a210 : a210, Symbol(a210, Decl(genericsManyTypeParameters.ts, 10, 8)) ->a310 : a310, Symbol(a310, Decl(genericsManyTypeParameters.ts, 10, 14)) ->a410 : a410, Symbol(a410, Decl(genericsManyTypeParameters.ts, 10, 20)) ->a510 : a510, Symbol(a510, Decl(genericsManyTypeParameters.ts, 10, 26)) ->a610 : a610, Symbol(a610, Decl(genericsManyTypeParameters.ts, 10, 32)) +>a91 : a91 +>a210 : a210 +>a310 : a310 +>a410 : a410 +>a510 : a510 +>a610 : a610 a111, a211, a311, a411, a511, a611, ->a111 : a111, Symbol(a111, Decl(genericsManyTypeParameters.ts, 10, 38)) ->a211 : a211, Symbol(a211, Decl(genericsManyTypeParameters.ts, 11, 9)) ->a311 : a311, Symbol(a311, Decl(genericsManyTypeParameters.ts, 11, 15)) ->a411 : a411, Symbol(a411, Decl(genericsManyTypeParameters.ts, 11, 21)) ->a511 : a511, Symbol(a511, Decl(genericsManyTypeParameters.ts, 11, 27)) ->a611 : a611, Symbol(a611, Decl(genericsManyTypeParameters.ts, 11, 33)) +>a111 : a111 +>a211 : a211 +>a311 : a311 +>a411 : a411 +>a511 : a511 +>a611 : a611 a112, a212, a312, a412, a512, a612, ->a112 : a112, Symbol(a112, Decl(genericsManyTypeParameters.ts, 11, 39)) ->a212 : a212, Symbol(a212, Decl(genericsManyTypeParameters.ts, 12, 9)) ->a312 : a312, Symbol(a312, Decl(genericsManyTypeParameters.ts, 12, 15)) ->a412 : a412, Symbol(a412, Decl(genericsManyTypeParameters.ts, 12, 21)) ->a512 : a512, Symbol(a512, Decl(genericsManyTypeParameters.ts, 12, 27)) ->a612 : a612, Symbol(a612, Decl(genericsManyTypeParameters.ts, 12, 33)) +>a112 : a112 +>a212 : a212 +>a312 : a312 +>a412 : a412 +>a512 : a512 +>a612 : a612 a113, a213, a313, a413, a513, a613, ->a113 : a113, Symbol(a113, Decl(genericsManyTypeParameters.ts, 12, 39)) ->a213 : a213, Symbol(a213, Decl(genericsManyTypeParameters.ts, 13, 9)) ->a313 : a313, Symbol(a313, Decl(genericsManyTypeParameters.ts, 13, 15)) ->a413 : a413, Symbol(a413, Decl(genericsManyTypeParameters.ts, 13, 21)) ->a513 : a513, Symbol(a513, Decl(genericsManyTypeParameters.ts, 13, 27)) ->a613 : a613, Symbol(a613, Decl(genericsManyTypeParameters.ts, 13, 33)) +>a113 : a113 +>a213 : a213 +>a313 : a313 +>a413 : a413 +>a513 : a513 +>a613 : a613 a114, a214, a314, a414, a514, a614, ->a114 : a114, Symbol(a114, Decl(genericsManyTypeParameters.ts, 13, 39)) ->a214 : a214, Symbol(a214, Decl(genericsManyTypeParameters.ts, 14, 9)) ->a314 : a314, Symbol(a314, Decl(genericsManyTypeParameters.ts, 14, 15)) ->a414 : a414, Symbol(a414, Decl(genericsManyTypeParameters.ts, 14, 21)) ->a514 : a514, Symbol(a514, Decl(genericsManyTypeParameters.ts, 14, 27)) ->a614 : a614, Symbol(a614, Decl(genericsManyTypeParameters.ts, 14, 33)) +>a114 : a114 +>a214 : a214 +>a314 : a314 +>a414 : a414 +>a514 : a514 +>a614 : a614 a115, a215, a315, a415, a515, a615, ->a115 : a115, Symbol(a115, Decl(genericsManyTypeParameters.ts, 14, 39)) ->a215 : a215, Symbol(a215, Decl(genericsManyTypeParameters.ts, 15, 9)) ->a315 : a315, Symbol(a315, Decl(genericsManyTypeParameters.ts, 15, 15)) ->a415 : a415, Symbol(a415, Decl(genericsManyTypeParameters.ts, 15, 21)) ->a515 : a515, Symbol(a515, Decl(genericsManyTypeParameters.ts, 15, 27)) ->a615 : a615, Symbol(a615, Decl(genericsManyTypeParameters.ts, 15, 33)) +>a115 : a115 +>a215 : a215 +>a315 : a315 +>a415 : a415 +>a515 : a515 +>a615 : a615 a116, a216, a316, a416, a516, a616, ->a116 : a116, Symbol(a116, Decl(genericsManyTypeParameters.ts, 15, 39)) ->a216 : a216, Symbol(a216, Decl(genericsManyTypeParameters.ts, 16, 9)) ->a316 : a316, Symbol(a316, Decl(genericsManyTypeParameters.ts, 16, 15)) ->a416 : a416, Symbol(a416, Decl(genericsManyTypeParameters.ts, 16, 21)) ->a516 : a516, Symbol(a516, Decl(genericsManyTypeParameters.ts, 16, 27)) ->a616 : a616, Symbol(a616, Decl(genericsManyTypeParameters.ts, 16, 33)) +>a116 : a116 +>a216 : a216 +>a316 : a316 +>a416 : a416 +>a516 : a516 +>a616 : a616 a117, a217, a317, a417, a517, a617, ->a117 : a117, Symbol(a117, Decl(genericsManyTypeParameters.ts, 16, 39)) ->a217 : a217, Symbol(a217, Decl(genericsManyTypeParameters.ts, 17, 9)) ->a317 : a317, Symbol(a317, Decl(genericsManyTypeParameters.ts, 17, 15)) ->a417 : a417, Symbol(a417, Decl(genericsManyTypeParameters.ts, 17, 21)) ->a517 : a517, Symbol(a517, Decl(genericsManyTypeParameters.ts, 17, 27)) ->a617 : a617, Symbol(a617, Decl(genericsManyTypeParameters.ts, 17, 33)) +>a117 : a117 +>a217 : a217 +>a317 : a317 +>a417 : a417 +>a517 : a517 +>a617 : a617 a118, a218, a318, a418, a518, a618> ->a118 : a118, Symbol(a118, Decl(genericsManyTypeParameters.ts, 17, 39)) ->a218 : a218, Symbol(a218, Decl(genericsManyTypeParameters.ts, 18, 9)) ->a318 : a318, Symbol(a318, Decl(genericsManyTypeParameters.ts, 18, 15)) ->a418 : a418, Symbol(a418, Decl(genericsManyTypeParameters.ts, 18, 21)) ->a518 : a518, Symbol(a518, Decl(genericsManyTypeParameters.ts, 18, 27)) ->a618 : a618, Symbol(a618, Decl(genericsManyTypeParameters.ts, 18, 33)) +>a118 : a118 +>a218 : a218 +>a318 : a318 +>a418 : a418 +>a518 : a518 +>a618 : a618 ( x1: a1, y1: a21, z1: a31, a1: a41, b1: a51, c1: a61, ->x1 : a1, Symbol(x1, Decl(genericsManyTypeParameters.ts, 19, 5)) ->a1 : a1, Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) ->y1 : a21, Symbol(y1, Decl(genericsManyTypeParameters.ts, 20, 15)) ->a21 : a21, Symbol(a21, Decl(genericsManyTypeParameters.ts, 1, 7)) ->z1 : a31, Symbol(z1, Decl(genericsManyTypeParameters.ts, 20, 24)) ->a31 : a31, Symbol(a31, Decl(genericsManyTypeParameters.ts, 1, 12)) ->a1 : a41, Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) ->a41 : a41, Symbol(a41, Decl(genericsManyTypeParameters.ts, 1, 17)) ->b1 : a51, Symbol(b1, Decl(genericsManyTypeParameters.ts, 20, 42)) ->a51 : a51, Symbol(a51, Decl(genericsManyTypeParameters.ts, 1, 22)) ->c1 : a61, Symbol(c1, Decl(genericsManyTypeParameters.ts, 20, 51)) ->a61 : a61, Symbol(a61, Decl(genericsManyTypeParameters.ts, 1, 27)) +>x1 : a1 +>a1 : a1 +>y1 : a21 +>a21 : a21 +>z1 : a31 +>a31 : a31 +>a1 : a41 +>a41 : a41 +>b1 : a51 +>a51 : a51 +>c1 : a61 +>a61 : a61 x2: a119, y2: a22, z2: a32, a2: a42, b2: a52, c2: a62, ->x2 : a119, Symbol(x2, Decl(genericsManyTypeParameters.ts, 20, 60)) ->a119 : a119, Symbol(a119, Decl(genericsManyTypeParameters.ts, 1, 32)) ->y2 : a22, Symbol(y2, Decl(genericsManyTypeParameters.ts, 21, 17)) ->a22 : a22, Symbol(a22, Decl(genericsManyTypeParameters.ts, 2, 9)) ->z2 : a32, Symbol(z2, Decl(genericsManyTypeParameters.ts, 21, 26)) ->a32 : a32, Symbol(a32, Decl(genericsManyTypeParameters.ts, 2, 14)) ->a2 : a42, Symbol(a2, Decl(genericsManyTypeParameters.ts, 21, 35)) ->a42 : a42, Symbol(a42, Decl(genericsManyTypeParameters.ts, 2, 19)) ->b2 : a52, Symbol(b2, Decl(genericsManyTypeParameters.ts, 21, 44)) ->a52 : a52, Symbol(a52, Decl(genericsManyTypeParameters.ts, 2, 24)) ->c2 : a62, Symbol(c2, Decl(genericsManyTypeParameters.ts, 21, 53)) ->a62 : a62, Symbol(a62, Decl(genericsManyTypeParameters.ts, 2, 29)) +>x2 : a119 +>a119 : a119 +>y2 : a22 +>a22 : a22 +>z2 : a32 +>a32 : a32 +>a2 : a42 +>a42 : a42 +>b2 : a52 +>a52 : a52 +>c2 : a62 +>a62 : a62 x3: a219, y3: a23, z3: a33, a3: a43, b3: a53, c3: a63, ->x3 : a219, Symbol(x3, Decl(genericsManyTypeParameters.ts, 21, 62)) ->a219 : a219, Symbol(a219, Decl(genericsManyTypeParameters.ts, 2, 34)) ->y3 : a23, Symbol(y3, Decl(genericsManyTypeParameters.ts, 22, 17)) ->a23 : a23, Symbol(a23, Decl(genericsManyTypeParameters.ts, 3, 9)) ->z3 : a33, Symbol(z3, Decl(genericsManyTypeParameters.ts, 22, 26)) ->a33 : a33, Symbol(a33, Decl(genericsManyTypeParameters.ts, 3, 14)) ->a3 : a43, Symbol(a3, Decl(genericsManyTypeParameters.ts, 22, 35)) ->a43 : a43, Symbol(a43, Decl(genericsManyTypeParameters.ts, 3, 19)) ->b3 : a53, Symbol(b3, Decl(genericsManyTypeParameters.ts, 22, 44)) ->a53 : a53, Symbol(a53, Decl(genericsManyTypeParameters.ts, 3, 24)) ->c3 : a63, Symbol(c3, Decl(genericsManyTypeParameters.ts, 22, 53)) ->a63 : a63, Symbol(a63, Decl(genericsManyTypeParameters.ts, 3, 29)) +>x3 : a219 +>a219 : a219 +>y3 : a23 +>a23 : a23 +>z3 : a33 +>a33 : a33 +>a3 : a43 +>a43 : a43 +>b3 : a53 +>a53 : a53 +>c3 : a63 +>a63 : a63 x4: a319, y4: a24, z4: a34, a4: a44, b4: a54, c4: a64, ->x4 : a319, Symbol(x4, Decl(genericsManyTypeParameters.ts, 22, 62)) ->a319 : a319, Symbol(a319, Decl(genericsManyTypeParameters.ts, 3, 34)) ->y4 : a24, Symbol(y4, Decl(genericsManyTypeParameters.ts, 23, 17)) ->a24 : a24, Symbol(a24, Decl(genericsManyTypeParameters.ts, 4, 9)) ->z4 : a34, Symbol(z4, Decl(genericsManyTypeParameters.ts, 23, 26)) ->a34 : a34, Symbol(a34, Decl(genericsManyTypeParameters.ts, 4, 14)) ->a4 : a44, Symbol(a4, Decl(genericsManyTypeParameters.ts, 23, 35)) ->a44 : a44, Symbol(a44, Decl(genericsManyTypeParameters.ts, 4, 19)) ->b4 : a54, Symbol(b4, Decl(genericsManyTypeParameters.ts, 23, 44)) ->a54 : a54, Symbol(a54, Decl(genericsManyTypeParameters.ts, 4, 24)) ->c4 : a64, Symbol(c4, Decl(genericsManyTypeParameters.ts, 23, 53)) ->a64 : a64, Symbol(a64, Decl(genericsManyTypeParameters.ts, 4, 29)) +>x4 : a319 +>a319 : a319 +>y4 : a24 +>a24 : a24 +>z4 : a34 +>a34 : a34 +>a4 : a44 +>a44 : a44 +>b4 : a54 +>a54 : a54 +>c4 : a64 +>a64 : a64 x5: a419, y5: a25, z5: a35, a5: a45, b5: a55, c5: a65, ->x5 : a419, Symbol(x5, Decl(genericsManyTypeParameters.ts, 23, 62)) ->a419 : a419, Symbol(a419, Decl(genericsManyTypeParameters.ts, 4, 34)) ->y5 : a25, Symbol(y5, Decl(genericsManyTypeParameters.ts, 24, 17)) ->a25 : a25, Symbol(a25, Decl(genericsManyTypeParameters.ts, 5, 9)) ->z5 : a35, Symbol(z5, Decl(genericsManyTypeParameters.ts, 24, 26)) ->a35 : a35, Symbol(a35, Decl(genericsManyTypeParameters.ts, 5, 14)) ->a5 : a45, Symbol(a5, Decl(genericsManyTypeParameters.ts, 24, 35)) ->a45 : a45, Symbol(a45, Decl(genericsManyTypeParameters.ts, 5, 19)) ->b5 : a55, Symbol(b5, Decl(genericsManyTypeParameters.ts, 24, 44)) ->a55 : a55, Symbol(a55, Decl(genericsManyTypeParameters.ts, 5, 24)) ->c5 : a65, Symbol(c5, Decl(genericsManyTypeParameters.ts, 24, 53)) ->a65 : a65, Symbol(a65, Decl(genericsManyTypeParameters.ts, 5, 29)) +>x5 : a419 +>a419 : a419 +>y5 : a25 +>a25 : a25 +>z5 : a35 +>a35 : a35 +>a5 : a45 +>a45 : a45 +>b5 : a55 +>a55 : a55 +>c5 : a65 +>a65 : a65 x6: a519, y6: a26, z6: a36, a6: a46, b6: a56, c6: a66, ->x6 : a519, Symbol(x6, Decl(genericsManyTypeParameters.ts, 24, 62)) ->a519 : a519, Symbol(a519, Decl(genericsManyTypeParameters.ts, 5, 34)) ->y6 : a26, Symbol(y6, Decl(genericsManyTypeParameters.ts, 25, 17)) ->a26 : a26, Symbol(a26, Decl(genericsManyTypeParameters.ts, 6, 9)) ->z6 : a36, Symbol(z6, Decl(genericsManyTypeParameters.ts, 25, 26)) ->a36 : a36, Symbol(a36, Decl(genericsManyTypeParameters.ts, 6, 14)) ->a6 : a46, Symbol(a6, Decl(genericsManyTypeParameters.ts, 25, 35)) ->a46 : a46, Symbol(a46, Decl(genericsManyTypeParameters.ts, 6, 19)) ->b6 : a56, Symbol(b6, Decl(genericsManyTypeParameters.ts, 25, 44)) ->a56 : a56, Symbol(a56, Decl(genericsManyTypeParameters.ts, 6, 24)) ->c6 : a66, Symbol(c6, Decl(genericsManyTypeParameters.ts, 25, 53)) ->a66 : a66, Symbol(a66, Decl(genericsManyTypeParameters.ts, 6, 29)) +>x6 : a519 +>a519 : a519 +>y6 : a26 +>a26 : a26 +>z6 : a36 +>a36 : a36 +>a6 : a46 +>a46 : a46 +>b6 : a56 +>a56 : a56 +>c6 : a66 +>a66 : a66 x7: a619, y7: a27, z7: a37, a7: a47, b7: a57, c7: a67, ->x7 : a619, Symbol(x7, Decl(genericsManyTypeParameters.ts, 25, 62)) ->a619 : a619, Symbol(a619, Decl(genericsManyTypeParameters.ts, 6, 34)) ->y7 : a27, Symbol(y7, Decl(genericsManyTypeParameters.ts, 26, 17)) ->a27 : a27, Symbol(a27, Decl(genericsManyTypeParameters.ts, 7, 9)) ->z7 : a37, Symbol(z7, Decl(genericsManyTypeParameters.ts, 26, 26)) ->a37 : a37, Symbol(a37, Decl(genericsManyTypeParameters.ts, 7, 14)) ->a7 : a47, Symbol(a7, Decl(genericsManyTypeParameters.ts, 26, 35)) ->a47 : a47, Symbol(a47, Decl(genericsManyTypeParameters.ts, 7, 19)) ->b7 : a57, Symbol(b7, Decl(genericsManyTypeParameters.ts, 26, 44)) ->a57 : a57, Symbol(a57, Decl(genericsManyTypeParameters.ts, 7, 24)) ->c7 : a67, Symbol(c7, Decl(genericsManyTypeParameters.ts, 26, 53)) ->a67 : a67, Symbol(a67, Decl(genericsManyTypeParameters.ts, 7, 29)) +>x7 : a619 +>a619 : a619 +>y7 : a27 +>a27 : a27 +>z7 : a37 +>a37 : a37 +>a7 : a47 +>a47 : a47 +>b7 : a57 +>a57 : a57 +>c7 : a67 +>a67 : a67 x8: a71, y8: a28, z8: a38, a8: a48, b8: a58, c8: a68, ->x8 : a71, Symbol(x8, Decl(genericsManyTypeParameters.ts, 26, 62)) ->a71 : a71, Symbol(a71, Decl(genericsManyTypeParameters.ts, 7, 34)) ->y8 : a28, Symbol(y8, Decl(genericsManyTypeParameters.ts, 27, 16)) ->a28 : a28, Symbol(a28, Decl(genericsManyTypeParameters.ts, 8, 8)) ->z8 : a38, Symbol(z8, Decl(genericsManyTypeParameters.ts, 27, 25)) ->a38 : a38, Symbol(a38, Decl(genericsManyTypeParameters.ts, 8, 13)) ->a8 : a48, Symbol(a8, Decl(genericsManyTypeParameters.ts, 27, 34)) ->a48 : a48, Symbol(a48, Decl(genericsManyTypeParameters.ts, 8, 18)) ->b8 : a58, Symbol(b8, Decl(genericsManyTypeParameters.ts, 27, 43)) ->a58 : a58, Symbol(a58, Decl(genericsManyTypeParameters.ts, 8, 23)) ->c8 : a68, Symbol(c8, Decl(genericsManyTypeParameters.ts, 27, 52)) ->a68 : a68, Symbol(a68, Decl(genericsManyTypeParameters.ts, 8, 28)) +>x8 : a71 +>a71 : a71 +>y8 : a28 +>a28 : a28 +>z8 : a38 +>a38 : a38 +>a8 : a48 +>a48 : a48 +>b8 : a58 +>a58 : a58 +>c8 : a68 +>a68 : a68 x9: a81, y9: a29, z9: a39, a9: a49, b9: a59, c9: a69, ->x9 : a81, Symbol(x9, Decl(genericsManyTypeParameters.ts, 27, 61)) ->a81 : a81, Symbol(a81, Decl(genericsManyTypeParameters.ts, 8, 33)) ->y9 : a29, Symbol(y9, Decl(genericsManyTypeParameters.ts, 28, 16)) ->a29 : a29, Symbol(a29, Decl(genericsManyTypeParameters.ts, 9, 8)) ->z9 : a39, Symbol(z9, Decl(genericsManyTypeParameters.ts, 28, 25)) ->a39 : a39, Symbol(a39, Decl(genericsManyTypeParameters.ts, 9, 13)) ->a9 : a49, Symbol(a9, Decl(genericsManyTypeParameters.ts, 28, 34)) ->a49 : a49, Symbol(a49, Decl(genericsManyTypeParameters.ts, 9, 18)) ->b9 : a59, Symbol(b9, Decl(genericsManyTypeParameters.ts, 28, 43)) ->a59 : a59, Symbol(a59, Decl(genericsManyTypeParameters.ts, 9, 23)) ->c9 : a69, Symbol(c9, Decl(genericsManyTypeParameters.ts, 28, 52)) ->a69 : a69, Symbol(a69, Decl(genericsManyTypeParameters.ts, 9, 28)) +>x9 : a81 +>a81 : a81 +>y9 : a29 +>a29 : a29 +>z9 : a39 +>a39 : a39 +>a9 : a49 +>a49 : a49 +>b9 : a59 +>a59 : a59 +>c9 : a69 +>a69 : a69 x10: a91, y12: a210, z10: a310, a10: a410, b10: a510, c10: a610, ->x10 : a91, Symbol(x10, Decl(genericsManyTypeParameters.ts, 28, 61)) ->a91 : a91, Symbol(a91, Decl(genericsManyTypeParameters.ts, 9, 33)) ->y12 : a210, Symbol(y12, Decl(genericsManyTypeParameters.ts, 29, 17)) ->a210 : a210, Symbol(a210, Decl(genericsManyTypeParameters.ts, 10, 8)) ->z10 : a310, Symbol(z10, Decl(genericsManyTypeParameters.ts, 29, 28)) ->a310 : a310, Symbol(a310, Decl(genericsManyTypeParameters.ts, 10, 14)) ->a10 : a410, Symbol(a10, Decl(genericsManyTypeParameters.ts, 29, 39)) ->a410 : a410, Symbol(a410, Decl(genericsManyTypeParameters.ts, 10, 20)) ->b10 : a510, Symbol(b10, Decl(genericsManyTypeParameters.ts, 29, 50)) ->a510 : a510, Symbol(a510, Decl(genericsManyTypeParameters.ts, 10, 26)) ->c10 : a610, Symbol(c10, Decl(genericsManyTypeParameters.ts, 29, 61)) ->a610 : a610, Symbol(a610, Decl(genericsManyTypeParameters.ts, 10, 32)) +>x10 : a91 +>a91 : a91 +>y12 : a210 +>a210 : a210 +>z10 : a310 +>a310 : a310 +>a10 : a410 +>a410 : a410 +>b10 : a510 +>a510 : a510 +>c10 : a610 +>a610 : a610 x11: a111, y13: a211, z11: a311, a11: a411, b11: a511, c11: a611, ->x11 : a111, Symbol(x11, Decl(genericsManyTypeParameters.ts, 29, 72)) ->a111 : a111, Symbol(a111, Decl(genericsManyTypeParameters.ts, 10, 38)) ->y13 : a211, Symbol(y13, Decl(genericsManyTypeParameters.ts, 30, 18)) ->a211 : a211, Symbol(a211, Decl(genericsManyTypeParameters.ts, 11, 9)) ->z11 : a311, Symbol(z11, Decl(genericsManyTypeParameters.ts, 30, 29)) ->a311 : a311, Symbol(a311, Decl(genericsManyTypeParameters.ts, 11, 15)) ->a11 : a411, Symbol(a11, Decl(genericsManyTypeParameters.ts, 30, 40)) ->a411 : a411, Symbol(a411, Decl(genericsManyTypeParameters.ts, 11, 21)) ->b11 : a511, Symbol(b11, Decl(genericsManyTypeParameters.ts, 30, 51)) ->a511 : a511, Symbol(a511, Decl(genericsManyTypeParameters.ts, 11, 27)) ->c11 : a611, Symbol(c11, Decl(genericsManyTypeParameters.ts, 30, 62)) ->a611 : a611, Symbol(a611, Decl(genericsManyTypeParameters.ts, 11, 33)) +>x11 : a111 +>a111 : a111 +>y13 : a211 +>a211 : a211 +>z11 : a311 +>a311 : a311 +>a11 : a411 +>a411 : a411 +>b11 : a511 +>a511 : a511 +>c11 : a611 +>a611 : a611 x12: a112, y14: a212, z12: a312, a12: a412, b12: a512, c12: a612, ->x12 : a112, Symbol(x12, Decl(genericsManyTypeParameters.ts, 30, 73)) ->a112 : a112, Symbol(a112, Decl(genericsManyTypeParameters.ts, 11, 39)) ->y14 : a212, Symbol(y14, Decl(genericsManyTypeParameters.ts, 31, 18)) ->a212 : a212, Symbol(a212, Decl(genericsManyTypeParameters.ts, 12, 9)) ->z12 : a312, Symbol(z12, Decl(genericsManyTypeParameters.ts, 31, 29)) ->a312 : a312, Symbol(a312, Decl(genericsManyTypeParameters.ts, 12, 15)) ->a12 : a412, Symbol(a12, Decl(genericsManyTypeParameters.ts, 31, 40)) ->a412 : a412, Symbol(a412, Decl(genericsManyTypeParameters.ts, 12, 21)) ->b12 : a512, Symbol(b12, Decl(genericsManyTypeParameters.ts, 31, 51)) ->a512 : a512, Symbol(a512, Decl(genericsManyTypeParameters.ts, 12, 27)) ->c12 : a612, Symbol(c12, Decl(genericsManyTypeParameters.ts, 31, 62)) ->a612 : a612, Symbol(a612, Decl(genericsManyTypeParameters.ts, 12, 33)) +>x12 : a112 +>a112 : a112 +>y14 : a212 +>a212 : a212 +>z12 : a312 +>a312 : a312 +>a12 : a412 +>a412 : a412 +>b12 : a512 +>a512 : a512 +>c12 : a612 +>a612 : a612 x13: a113, y15: a213, z13: a313, a13: a413, b13: a513, c13: a613, ->x13 : a113, Symbol(x13, Decl(genericsManyTypeParameters.ts, 31, 73)) ->a113 : a113, Symbol(a113, Decl(genericsManyTypeParameters.ts, 12, 39)) ->y15 : a213, Symbol(y15, Decl(genericsManyTypeParameters.ts, 32, 18)) ->a213 : a213, Symbol(a213, Decl(genericsManyTypeParameters.ts, 13, 9)) ->z13 : a313, Symbol(z13, Decl(genericsManyTypeParameters.ts, 32, 29)) ->a313 : a313, Symbol(a313, Decl(genericsManyTypeParameters.ts, 13, 15)) ->a13 : a413, Symbol(a13, Decl(genericsManyTypeParameters.ts, 32, 40)) ->a413 : a413, Symbol(a413, Decl(genericsManyTypeParameters.ts, 13, 21)) ->b13 : a513, Symbol(b13, Decl(genericsManyTypeParameters.ts, 32, 51)) ->a513 : a513, Symbol(a513, Decl(genericsManyTypeParameters.ts, 13, 27)) ->c13 : a613, Symbol(c13, Decl(genericsManyTypeParameters.ts, 32, 62)) ->a613 : a613, Symbol(a613, Decl(genericsManyTypeParameters.ts, 13, 33)) +>x13 : a113 +>a113 : a113 +>y15 : a213 +>a213 : a213 +>z13 : a313 +>a313 : a313 +>a13 : a413 +>a413 : a413 +>b13 : a513 +>a513 : a513 +>c13 : a613 +>a613 : a613 x14: a114, y16: a214, z14: a314, a14: a414, b14: a514, c14: a614, ->x14 : a114, Symbol(x14, Decl(genericsManyTypeParameters.ts, 32, 73)) ->a114 : a114, Symbol(a114, Decl(genericsManyTypeParameters.ts, 13, 39)) ->y16 : a214, Symbol(y16, Decl(genericsManyTypeParameters.ts, 33, 18)) ->a214 : a214, Symbol(a214, Decl(genericsManyTypeParameters.ts, 14, 9)) ->z14 : a314, Symbol(z14, Decl(genericsManyTypeParameters.ts, 33, 29)) ->a314 : a314, Symbol(a314, Decl(genericsManyTypeParameters.ts, 14, 15)) ->a14 : a414, Symbol(a14, Decl(genericsManyTypeParameters.ts, 33, 40)) ->a414 : a414, Symbol(a414, Decl(genericsManyTypeParameters.ts, 14, 21)) ->b14 : a514, Symbol(b14, Decl(genericsManyTypeParameters.ts, 33, 51)) ->a514 : a514, Symbol(a514, Decl(genericsManyTypeParameters.ts, 14, 27)) ->c14 : a614, Symbol(c14, Decl(genericsManyTypeParameters.ts, 33, 62)) ->a614 : a614, Symbol(a614, Decl(genericsManyTypeParameters.ts, 14, 33)) +>x14 : a114 +>a114 : a114 +>y16 : a214 +>a214 : a214 +>z14 : a314 +>a314 : a314 +>a14 : a414 +>a414 : a414 +>b14 : a514 +>a514 : a514 +>c14 : a614 +>a614 : a614 x15: a115, y17: a215, z15: a315, a15: a415, b15: a515, c15: a615, ->x15 : a115, Symbol(x15, Decl(genericsManyTypeParameters.ts, 33, 73)) ->a115 : a115, Symbol(a115, Decl(genericsManyTypeParameters.ts, 14, 39)) ->y17 : a215, Symbol(y17, Decl(genericsManyTypeParameters.ts, 34, 18)) ->a215 : a215, Symbol(a215, Decl(genericsManyTypeParameters.ts, 15, 9)) ->z15 : a315, Symbol(z15, Decl(genericsManyTypeParameters.ts, 34, 29)) ->a315 : a315, Symbol(a315, Decl(genericsManyTypeParameters.ts, 15, 15)) ->a15 : a415, Symbol(a15, Decl(genericsManyTypeParameters.ts, 34, 40)) ->a415 : a415, Symbol(a415, Decl(genericsManyTypeParameters.ts, 15, 21)) ->b15 : a515, Symbol(b15, Decl(genericsManyTypeParameters.ts, 34, 51)) ->a515 : a515, Symbol(a515, Decl(genericsManyTypeParameters.ts, 15, 27)) ->c15 : a615, Symbol(c15, Decl(genericsManyTypeParameters.ts, 34, 62)) ->a615 : a615, Symbol(a615, Decl(genericsManyTypeParameters.ts, 15, 33)) +>x15 : a115 +>a115 : a115 +>y17 : a215 +>a215 : a215 +>z15 : a315 +>a315 : a315 +>a15 : a415 +>a415 : a415 +>b15 : a515 +>a515 : a515 +>c15 : a615 +>a615 : a615 x16: a116, y18: a216, z16: a316, a16: a416, b16: a516, c16: a616, ->x16 : a116, Symbol(x16, Decl(genericsManyTypeParameters.ts, 34, 73)) ->a116 : a116, Symbol(a116, Decl(genericsManyTypeParameters.ts, 15, 39)) ->y18 : a216, Symbol(y18, Decl(genericsManyTypeParameters.ts, 35, 18)) ->a216 : a216, Symbol(a216, Decl(genericsManyTypeParameters.ts, 16, 9)) ->z16 : a316, Symbol(z16, Decl(genericsManyTypeParameters.ts, 35, 29)) ->a316 : a316, Symbol(a316, Decl(genericsManyTypeParameters.ts, 16, 15)) ->a16 : a416, Symbol(a16, Decl(genericsManyTypeParameters.ts, 35, 40)) ->a416 : a416, Symbol(a416, Decl(genericsManyTypeParameters.ts, 16, 21)) ->b16 : a516, Symbol(b16, Decl(genericsManyTypeParameters.ts, 35, 51)) ->a516 : a516, Symbol(a516, Decl(genericsManyTypeParameters.ts, 16, 27)) ->c16 : a616, Symbol(c16, Decl(genericsManyTypeParameters.ts, 35, 62)) ->a616 : a616, Symbol(a616, Decl(genericsManyTypeParameters.ts, 16, 33)) +>x16 : a116 +>a116 : a116 +>y18 : a216 +>a216 : a216 +>z16 : a316 +>a316 : a316 +>a16 : a416 +>a416 : a416 +>b16 : a516 +>a516 : a516 +>c16 : a616 +>a616 : a616 x17: a117, y19: a217, z17: a317, a17: a417, b17: a517, c17: a617, ->x17 : a117, Symbol(x17, Decl(genericsManyTypeParameters.ts, 35, 73)) ->a117 : a117, Symbol(a117, Decl(genericsManyTypeParameters.ts, 16, 39)) ->y19 : a217, Symbol(y19, Decl(genericsManyTypeParameters.ts, 36, 18)) ->a217 : a217, Symbol(a217, Decl(genericsManyTypeParameters.ts, 17, 9)) ->z17 : a317, Symbol(z17, Decl(genericsManyTypeParameters.ts, 36, 29)) ->a317 : a317, Symbol(a317, Decl(genericsManyTypeParameters.ts, 17, 15)) ->a17 : a417, Symbol(a17, Decl(genericsManyTypeParameters.ts, 36, 40)) ->a417 : a417, Symbol(a417, Decl(genericsManyTypeParameters.ts, 17, 21)) ->b17 : a517, Symbol(b17, Decl(genericsManyTypeParameters.ts, 36, 51)) ->a517 : a517, Symbol(a517, Decl(genericsManyTypeParameters.ts, 17, 27)) ->c17 : a617, Symbol(c17, Decl(genericsManyTypeParameters.ts, 36, 62)) ->a617 : a617, Symbol(a617, Decl(genericsManyTypeParameters.ts, 17, 33)) +>x17 : a117 +>a117 : a117 +>y19 : a217 +>a217 : a217 +>z17 : a317 +>a317 : a317 +>a17 : a417 +>a417 : a417 +>b17 : a517 +>a517 : a517 +>c17 : a617 +>a617 : a617 x18: a118, y10: a218, z18: a318, a18: a418, b18: a518, c18: a618 ->x18 : a118, Symbol(x18, Decl(genericsManyTypeParameters.ts, 36, 73)) ->a118 : a118, Symbol(a118, Decl(genericsManyTypeParameters.ts, 17, 39)) ->y10 : a218, Symbol(y10, Decl(genericsManyTypeParameters.ts, 37, 18)) ->a218 : a218, Symbol(a218, Decl(genericsManyTypeParameters.ts, 18, 9)) ->z18 : a318, Symbol(z18, Decl(genericsManyTypeParameters.ts, 37, 29)) ->a318 : a318, Symbol(a318, Decl(genericsManyTypeParameters.ts, 18, 15)) ->a18 : a418, Symbol(a18, Decl(genericsManyTypeParameters.ts, 37, 40)) ->a418 : a418, Symbol(a418, Decl(genericsManyTypeParameters.ts, 18, 21)) ->b18 : a518, Symbol(b18, Decl(genericsManyTypeParameters.ts, 37, 51)) ->a518 : a518, Symbol(a518, Decl(genericsManyTypeParameters.ts, 18, 27)) ->c18 : a618, Symbol(c18, Decl(genericsManyTypeParameters.ts, 37, 62)) ->a618 : a618, Symbol(a618, Decl(genericsManyTypeParameters.ts, 18, 33)) +>x18 : a118 +>a118 : a118 +>y10 : a218 +>a218 : a218 +>z18 : a318 +>a318 : a318 +>a18 : a418 +>a418 : a418 +>b18 : a518 +>a518 : a518 +>c18 : a618 +>a618 : a618 ) { return [x1 , y1 , z1 , a1 , b1 , c1, >[x1 , y1 , z1 , a1 , b1 , c1, x2 , y2 , z2 , a2 , b2 , c2, x3 , y3 , z3 , a3 , b3 , c3, x4 , y4 , z4 , a4 , b4 , c4, x5 , y5 , z5 , a5 , b5 , c5, x6 , y6 , z6 , a6 , b6 , c6, x7 , y7 , z7 , a7 , b7 , c7, x8 , y8 , z8 , a8 , b8 , c8, x9 , y9 , z9 , a9 , b9 , c9, x10 , y12 , z10 , a10 , b10 , c10, x11 , y13 , z11 , a11 , b11 , c11, x12 , y14 , z12 , a12 , b12 , c12, x13 , y15 , z13 , a13 , b13 , c13, x14 , y16 , z14 , a14 , b14 , c14, x15 , y17 , z15 , a15 , b15 , c15, x16 , y18 , z16 , a16 , b16 , c16, x17 , y19 , z17 , a17 , b17 , c17, x18 , y10 , z18 , a18 , b18 , c18] : (a1 | a21 | a31 | a41 | a51 | a61 | a119 | a22 | a32 | a42 | a52 | a62 | a219 | a23 | a33 | a43 | a53 | a63 | a319 | a24 | a34 | a44 | a54 | a64 | a419 | a25 | a35 | a45 | a55 | a65 | a519 | a26 | a36 | a46 | a56 | a66 | a619 | a27 | a37 | a47 | a57 | a67 | a71 | a28 | a38 | a48 | a58 | a68 | a81 | a29 | a39 | a49 | a59 | a69 | a91 | a210 | a310 | a410 | a510 | a610 | a111 | a211 | a311 | a411 | a511 | a611 | a112 | a212 | a312 | a412 | a512 | a612 | a113 | a213 | a313 | a413 | a513 | a613 | a114 | a214 | a314 | a414 | a514 | a614 | a115 | a215 | a315 | a415 | a515 | a615 | a116 | a216 | a316 | a416 | a516 | a616 | a117 | a217 | a317 | a417 | a517 | a617 | a118 | a218 | a318 | a418 | a518 | a618)[] ->x1 : a1, Symbol(x1, Decl(genericsManyTypeParameters.ts, 19, 5)) ->y1 : a21, Symbol(y1, Decl(genericsManyTypeParameters.ts, 20, 15)) ->z1 : a31, Symbol(z1, Decl(genericsManyTypeParameters.ts, 20, 24)) ->a1 : a41, Symbol(a1, Decl(genericsManyTypeParameters.ts, 0, 13), Decl(genericsManyTypeParameters.ts, 20, 33)) ->b1 : a51, Symbol(b1, Decl(genericsManyTypeParameters.ts, 20, 42)) ->c1 : a61, Symbol(c1, Decl(genericsManyTypeParameters.ts, 20, 51)) +>x1 : a1 +>y1 : a21 +>z1 : a31 +>a1 : a41 +>b1 : a51 +>c1 : a61 x2 , y2 , z2 , a2 , b2 , c2, ->x2 : a119, Symbol(x2, Decl(genericsManyTypeParameters.ts, 20, 60)) ->y2 : a22, Symbol(y2, Decl(genericsManyTypeParameters.ts, 21, 17)) ->z2 : a32, Symbol(z2, Decl(genericsManyTypeParameters.ts, 21, 26)) ->a2 : a42, Symbol(a2, Decl(genericsManyTypeParameters.ts, 21, 35)) ->b2 : a52, Symbol(b2, Decl(genericsManyTypeParameters.ts, 21, 44)) ->c2 : a62, Symbol(c2, Decl(genericsManyTypeParameters.ts, 21, 53)) +>x2 : a119 +>y2 : a22 +>z2 : a32 +>a2 : a42 +>b2 : a52 +>c2 : a62 x3 , y3 , z3 , a3 , b3 , c3, ->x3 : a219, Symbol(x3, Decl(genericsManyTypeParameters.ts, 21, 62)) ->y3 : a23, Symbol(y3, Decl(genericsManyTypeParameters.ts, 22, 17)) ->z3 : a33, Symbol(z3, Decl(genericsManyTypeParameters.ts, 22, 26)) ->a3 : a43, Symbol(a3, Decl(genericsManyTypeParameters.ts, 22, 35)) ->b3 : a53, Symbol(b3, Decl(genericsManyTypeParameters.ts, 22, 44)) ->c3 : a63, Symbol(c3, Decl(genericsManyTypeParameters.ts, 22, 53)) +>x3 : a219 +>y3 : a23 +>z3 : a33 +>a3 : a43 +>b3 : a53 +>c3 : a63 x4 , y4 , z4 , a4 , b4 , c4, ->x4 : a319, Symbol(x4, Decl(genericsManyTypeParameters.ts, 22, 62)) ->y4 : a24, Symbol(y4, Decl(genericsManyTypeParameters.ts, 23, 17)) ->z4 : a34, Symbol(z4, Decl(genericsManyTypeParameters.ts, 23, 26)) ->a4 : a44, Symbol(a4, Decl(genericsManyTypeParameters.ts, 23, 35)) ->b4 : a54, Symbol(b4, Decl(genericsManyTypeParameters.ts, 23, 44)) ->c4 : a64, Symbol(c4, Decl(genericsManyTypeParameters.ts, 23, 53)) +>x4 : a319 +>y4 : a24 +>z4 : a34 +>a4 : a44 +>b4 : a54 +>c4 : a64 x5 , y5 , z5 , a5 , b5 , c5, ->x5 : a419, Symbol(x5, Decl(genericsManyTypeParameters.ts, 23, 62)) ->y5 : a25, Symbol(y5, Decl(genericsManyTypeParameters.ts, 24, 17)) ->z5 : a35, Symbol(z5, Decl(genericsManyTypeParameters.ts, 24, 26)) ->a5 : a45, Symbol(a5, Decl(genericsManyTypeParameters.ts, 24, 35)) ->b5 : a55, Symbol(b5, Decl(genericsManyTypeParameters.ts, 24, 44)) ->c5 : a65, Symbol(c5, Decl(genericsManyTypeParameters.ts, 24, 53)) +>x5 : a419 +>y5 : a25 +>z5 : a35 +>a5 : a45 +>b5 : a55 +>c5 : a65 x6 , y6 , z6 , a6 , b6 , c6, ->x6 : a519, Symbol(x6, Decl(genericsManyTypeParameters.ts, 24, 62)) ->y6 : a26, Symbol(y6, Decl(genericsManyTypeParameters.ts, 25, 17)) ->z6 : a36, Symbol(z6, Decl(genericsManyTypeParameters.ts, 25, 26)) ->a6 : a46, Symbol(a6, Decl(genericsManyTypeParameters.ts, 25, 35)) ->b6 : a56, Symbol(b6, Decl(genericsManyTypeParameters.ts, 25, 44)) ->c6 : a66, Symbol(c6, Decl(genericsManyTypeParameters.ts, 25, 53)) +>x6 : a519 +>y6 : a26 +>z6 : a36 +>a6 : a46 +>b6 : a56 +>c6 : a66 x7 , y7 , z7 , a7 , b7 , c7, ->x7 : a619, Symbol(x7, Decl(genericsManyTypeParameters.ts, 25, 62)) ->y7 : a27, Symbol(y7, Decl(genericsManyTypeParameters.ts, 26, 17)) ->z7 : a37, Symbol(z7, Decl(genericsManyTypeParameters.ts, 26, 26)) ->a7 : a47, Symbol(a7, Decl(genericsManyTypeParameters.ts, 26, 35)) ->b7 : a57, Symbol(b7, Decl(genericsManyTypeParameters.ts, 26, 44)) ->c7 : a67, Symbol(c7, Decl(genericsManyTypeParameters.ts, 26, 53)) +>x7 : a619 +>y7 : a27 +>z7 : a37 +>a7 : a47 +>b7 : a57 +>c7 : a67 x8 , y8 , z8 , a8 , b8 , c8, ->x8 : a71, Symbol(x8, Decl(genericsManyTypeParameters.ts, 26, 62)) ->y8 : a28, Symbol(y8, Decl(genericsManyTypeParameters.ts, 27, 16)) ->z8 : a38, Symbol(z8, Decl(genericsManyTypeParameters.ts, 27, 25)) ->a8 : a48, Symbol(a8, Decl(genericsManyTypeParameters.ts, 27, 34)) ->b8 : a58, Symbol(b8, Decl(genericsManyTypeParameters.ts, 27, 43)) ->c8 : a68, Symbol(c8, Decl(genericsManyTypeParameters.ts, 27, 52)) +>x8 : a71 +>y8 : a28 +>z8 : a38 +>a8 : a48 +>b8 : a58 +>c8 : a68 x9 , y9 , z9 , a9 , b9 , c9, ->x9 : a81, Symbol(x9, Decl(genericsManyTypeParameters.ts, 27, 61)) ->y9 : a29, Symbol(y9, Decl(genericsManyTypeParameters.ts, 28, 16)) ->z9 : a39, Symbol(z9, Decl(genericsManyTypeParameters.ts, 28, 25)) ->a9 : a49, Symbol(a9, Decl(genericsManyTypeParameters.ts, 28, 34)) ->b9 : a59, Symbol(b9, Decl(genericsManyTypeParameters.ts, 28, 43)) ->c9 : a69, Symbol(c9, Decl(genericsManyTypeParameters.ts, 28, 52)) +>x9 : a81 +>y9 : a29 +>z9 : a39 +>a9 : a49 +>b9 : a59 +>c9 : a69 x10 , y12 , z10 , a10 , b10 , c10, ->x10 : a91, Symbol(x10, Decl(genericsManyTypeParameters.ts, 28, 61)) ->y12 : a210, Symbol(y12, Decl(genericsManyTypeParameters.ts, 29, 17)) ->z10 : a310, Symbol(z10, Decl(genericsManyTypeParameters.ts, 29, 28)) ->a10 : a410, Symbol(a10, Decl(genericsManyTypeParameters.ts, 29, 39)) ->b10 : a510, Symbol(b10, Decl(genericsManyTypeParameters.ts, 29, 50)) ->c10 : a610, Symbol(c10, Decl(genericsManyTypeParameters.ts, 29, 61)) +>x10 : a91 +>y12 : a210 +>z10 : a310 +>a10 : a410 +>b10 : a510 +>c10 : a610 x11 , y13 , z11 , a11 , b11 , c11, ->x11 : a111, Symbol(x11, Decl(genericsManyTypeParameters.ts, 29, 72)) ->y13 : a211, Symbol(y13, Decl(genericsManyTypeParameters.ts, 30, 18)) ->z11 : a311, Symbol(z11, Decl(genericsManyTypeParameters.ts, 30, 29)) ->a11 : a411, Symbol(a11, Decl(genericsManyTypeParameters.ts, 30, 40)) ->b11 : a511, Symbol(b11, Decl(genericsManyTypeParameters.ts, 30, 51)) ->c11 : a611, Symbol(c11, Decl(genericsManyTypeParameters.ts, 30, 62)) +>x11 : a111 +>y13 : a211 +>z11 : a311 +>a11 : a411 +>b11 : a511 +>c11 : a611 x12 , y14 , z12 , a12 , b12 , c12, ->x12 : a112, Symbol(x12, Decl(genericsManyTypeParameters.ts, 30, 73)) ->y14 : a212, Symbol(y14, Decl(genericsManyTypeParameters.ts, 31, 18)) ->z12 : a312, Symbol(z12, Decl(genericsManyTypeParameters.ts, 31, 29)) ->a12 : a412, Symbol(a12, Decl(genericsManyTypeParameters.ts, 31, 40)) ->b12 : a512, Symbol(b12, Decl(genericsManyTypeParameters.ts, 31, 51)) ->c12 : a612, Symbol(c12, Decl(genericsManyTypeParameters.ts, 31, 62)) +>x12 : a112 +>y14 : a212 +>z12 : a312 +>a12 : a412 +>b12 : a512 +>c12 : a612 x13 , y15 , z13 , a13 , b13 , c13, ->x13 : a113, Symbol(x13, Decl(genericsManyTypeParameters.ts, 31, 73)) ->y15 : a213, Symbol(y15, Decl(genericsManyTypeParameters.ts, 32, 18)) ->z13 : a313, Symbol(z13, Decl(genericsManyTypeParameters.ts, 32, 29)) ->a13 : a413, Symbol(a13, Decl(genericsManyTypeParameters.ts, 32, 40)) ->b13 : a513, Symbol(b13, Decl(genericsManyTypeParameters.ts, 32, 51)) ->c13 : a613, Symbol(c13, Decl(genericsManyTypeParameters.ts, 32, 62)) +>x13 : a113 +>y15 : a213 +>z13 : a313 +>a13 : a413 +>b13 : a513 +>c13 : a613 x14 , y16 , z14 , a14 , b14 , c14, ->x14 : a114, Symbol(x14, Decl(genericsManyTypeParameters.ts, 32, 73)) ->y16 : a214, Symbol(y16, Decl(genericsManyTypeParameters.ts, 33, 18)) ->z14 : a314, Symbol(z14, Decl(genericsManyTypeParameters.ts, 33, 29)) ->a14 : a414, Symbol(a14, Decl(genericsManyTypeParameters.ts, 33, 40)) ->b14 : a514, Symbol(b14, Decl(genericsManyTypeParameters.ts, 33, 51)) ->c14 : a614, Symbol(c14, Decl(genericsManyTypeParameters.ts, 33, 62)) +>x14 : a114 +>y16 : a214 +>z14 : a314 +>a14 : a414 +>b14 : a514 +>c14 : a614 x15 , y17 , z15 , a15 , b15 , c15, ->x15 : a115, Symbol(x15, Decl(genericsManyTypeParameters.ts, 33, 73)) ->y17 : a215, Symbol(y17, Decl(genericsManyTypeParameters.ts, 34, 18)) ->z15 : a315, Symbol(z15, Decl(genericsManyTypeParameters.ts, 34, 29)) ->a15 : a415, Symbol(a15, Decl(genericsManyTypeParameters.ts, 34, 40)) ->b15 : a515, Symbol(b15, Decl(genericsManyTypeParameters.ts, 34, 51)) ->c15 : a615, Symbol(c15, Decl(genericsManyTypeParameters.ts, 34, 62)) +>x15 : a115 +>y17 : a215 +>z15 : a315 +>a15 : a415 +>b15 : a515 +>c15 : a615 x16 , y18 , z16 , a16 , b16 , c16, ->x16 : a116, Symbol(x16, Decl(genericsManyTypeParameters.ts, 34, 73)) ->y18 : a216, Symbol(y18, Decl(genericsManyTypeParameters.ts, 35, 18)) ->z16 : a316, Symbol(z16, Decl(genericsManyTypeParameters.ts, 35, 29)) ->a16 : a416, Symbol(a16, Decl(genericsManyTypeParameters.ts, 35, 40)) ->b16 : a516, Symbol(b16, Decl(genericsManyTypeParameters.ts, 35, 51)) ->c16 : a616, Symbol(c16, Decl(genericsManyTypeParameters.ts, 35, 62)) +>x16 : a116 +>y18 : a216 +>z16 : a316 +>a16 : a416 +>b16 : a516 +>c16 : a616 x17 , y19 , z17 , a17 , b17 , c17, ->x17 : a117, Symbol(x17, Decl(genericsManyTypeParameters.ts, 35, 73)) ->y19 : a217, Symbol(y19, Decl(genericsManyTypeParameters.ts, 36, 18)) ->z17 : a317, Symbol(z17, Decl(genericsManyTypeParameters.ts, 36, 29)) ->a17 : a417, Symbol(a17, Decl(genericsManyTypeParameters.ts, 36, 40)) ->b17 : a517, Symbol(b17, Decl(genericsManyTypeParameters.ts, 36, 51)) ->c17 : a617, Symbol(c17, Decl(genericsManyTypeParameters.ts, 36, 62)) +>x17 : a117 +>y19 : a217 +>z17 : a317 +>a17 : a417 +>b17 : a517 +>c17 : a617 x18 , y10 , z18 , a18 , b18 , c18]; ->x18 : a118, Symbol(x18, Decl(genericsManyTypeParameters.ts, 36, 73)) ->y10 : a218, Symbol(y10, Decl(genericsManyTypeParameters.ts, 37, 18)) ->z18 : a318, Symbol(z18, Decl(genericsManyTypeParameters.ts, 37, 29)) ->a18 : a418, Symbol(a18, Decl(genericsManyTypeParameters.ts, 37, 40)) ->b18 : a518, Symbol(b18, Decl(genericsManyTypeParameters.ts, 37, 51)) ->c18 : a618, Symbol(c18, Decl(genericsManyTypeParameters.ts, 37, 62)) +>x18 : a118 +>y10 : a218 +>z18 : a318 +>a18 : a418 +>b18 : a518 +>c18 : a618 } diff --git a/tests/baselines/reference/getterSetterNonAccessor.symbols b/tests/baselines/reference/getterSetterNonAccessor.symbols new file mode 100644 index 0000000000000..10ffc55480c74 --- /dev/null +++ b/tests/baselines/reference/getterSetterNonAccessor.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/getterSetterNonAccessor.ts === +function getFunc():any{return 0;} +>getFunc : Symbol(getFunc, Decl(getterSetterNonAccessor.ts, 0, 0)) + +function setFunc(v){} +>setFunc : Symbol(setFunc, Decl(getterSetterNonAccessor.ts, 0, 33)) +>v : Symbol(v, Decl(getterSetterNonAccessor.ts, 1, 17)) + +Object.defineProperty({}, "0", ({ +>Object.defineProperty : Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>defineProperty : Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) +>PropertyDescriptor : Symbol(PropertyDescriptor, Decl(lib.d.ts, 79, 66)) + + get: getFunc, +>get : Symbol(get, Decl(getterSetterNonAccessor.ts, 3, 53)) +>getFunc : Symbol(getFunc, Decl(getterSetterNonAccessor.ts, 0, 0)) + + set: setFunc, +>set : Symbol(set, Decl(getterSetterNonAccessor.ts, 4, 23)) +>setFunc : Symbol(setFunc, Decl(getterSetterNonAccessor.ts, 0, 33)) + + configurable: true +>configurable : Symbol(configurable, Decl(getterSetterNonAccessor.ts, 5, 23)) + + })); + diff --git a/tests/baselines/reference/getterSetterNonAccessor.types b/tests/baselines/reference/getterSetterNonAccessor.types index 299288a248478..48d9f9c85e0cb 100644 --- a/tests/baselines/reference/getterSetterNonAccessor.types +++ b/tests/baselines/reference/getterSetterNonAccessor.types @@ -1,34 +1,34 @@ === tests/cases/compiler/getterSetterNonAccessor.ts === function getFunc():any{return 0;} ->getFunc : () => any, Symbol(getFunc, Decl(getterSetterNonAccessor.ts, 0, 0)) +>getFunc : () => any >0 : number function setFunc(v){} ->setFunc : (v: any) => void, Symbol(setFunc, Decl(getterSetterNonAccessor.ts, 0, 33)) ->v : any, Symbol(v, Decl(getterSetterNonAccessor.ts, 1, 17)) +>setFunc : (v: any) => void +>v : any Object.defineProperty({}, "0", ({ >Object.defineProperty({}, "0", ({ get: getFunc, set: setFunc, configurable: true })) : any ->Object.defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any, Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any, Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) +>Object.defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any +>Object : ObjectConstructor +>defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any >{} : {} >"0" : string >({ get: getFunc, set: setFunc, configurable: true }) : PropertyDescriptor ->PropertyDescriptor : PropertyDescriptor, Symbol(PropertyDescriptor, Decl(lib.d.ts, 79, 66)) +>PropertyDescriptor : PropertyDescriptor >({ get: getFunc, set: setFunc, configurable: true }) : { get: () => any; set: (v: any) => void; configurable: boolean; } >{ get: getFunc, set: setFunc, configurable: true } : { get: () => any; set: (v: any) => void; configurable: boolean; } get: getFunc, ->get : () => any, Symbol(get, Decl(getterSetterNonAccessor.ts, 3, 53)) ->getFunc : () => any, Symbol(getFunc, Decl(getterSetterNonAccessor.ts, 0, 0)) +>get : () => any +>getFunc : () => any set: setFunc, ->set : (v: any) => void, Symbol(set, Decl(getterSetterNonAccessor.ts, 4, 23)) ->setFunc : (v: any) => void, Symbol(setFunc, Decl(getterSetterNonAccessor.ts, 0, 33)) +>set : (v: any) => void +>setFunc : (v: any) => void configurable: true ->configurable : boolean, Symbol(configurable, Decl(getterSetterNonAccessor.ts, 5, 23)) +>configurable : boolean >true : boolean })); diff --git a/tests/baselines/reference/global.symbols b/tests/baselines/reference/global.symbols new file mode 100644 index 0000000000000..ec7ab7d0ef2e1 --- /dev/null +++ b/tests/baselines/reference/global.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/global.ts === +module M { +>M : Symbol(M, Decl(global.ts, 0, 0)) + + export function f(y:number) { +>f : Symbol(f, Decl(global.ts, 0, 10)) +>y : Symbol(y, Decl(global.ts, 1, 22)) + + return x+y; +>x : Symbol(x, Decl(global.ts, 6, 3)) +>y : Symbol(y, Decl(global.ts, 1, 22)) + } +} + +var x=10; +>x : Symbol(x, Decl(global.ts, 6, 3)) + +M.f(3); +>M.f : Symbol(M.f, Decl(global.ts, 0, 10)) +>M : Symbol(M, Decl(global.ts, 0, 0)) +>f : Symbol(M.f, Decl(global.ts, 0, 10)) + + diff --git a/tests/baselines/reference/global.types b/tests/baselines/reference/global.types index 6fb54558a4dde..f866f062068a3 100644 --- a/tests/baselines/reference/global.types +++ b/tests/baselines/reference/global.types @@ -1,27 +1,27 @@ === tests/cases/compiler/global.ts === module M { ->M : typeof M, Symbol(M, Decl(global.ts, 0, 0)) +>M : typeof M export function f(y:number) { ->f : (y: number) => number, Symbol(f, Decl(global.ts, 0, 10)) ->y : number, Symbol(y, Decl(global.ts, 1, 22)) +>f : (y: number) => number +>y : number return x+y; >x+y : number ->x : number, Symbol(x, Decl(global.ts, 6, 3)) ->y : number, Symbol(y, Decl(global.ts, 1, 22)) +>x : number +>y : number } } var x=10; ->x : number, Symbol(x, Decl(global.ts, 6, 3)) +>x : number >10 : number M.f(3); >M.f(3) : number ->M.f : (y: number) => number, Symbol(M.f, Decl(global.ts, 0, 10)) ->M : typeof M, Symbol(M, Decl(global.ts, 0, 0)) ->f : (y: number) => number, Symbol(M.f, Decl(global.ts, 0, 10)) +>M.f : (y: number) => number +>M : typeof M +>f : (y: number) => number >3 : number diff --git a/tests/baselines/reference/globalThis.symbols b/tests/baselines/reference/globalThis.symbols new file mode 100644 index 0000000000000..77b65bbfa2bbb --- /dev/null +++ b/tests/baselines/reference/globalThis.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/globalThis.ts === +var __e = Math.E; // should not generate 'this.Math.E' +>__e : Symbol(__e, Decl(globalThis.ts, 0, 3)) +>Math.E : Symbol(Math.E, Decl(lib.d.ts, 524, 16)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>E : Symbol(Math.E, Decl(lib.d.ts, 524, 16)) + diff --git a/tests/baselines/reference/globalThis.types b/tests/baselines/reference/globalThis.types index 6f390b6236459..479b8ae276a91 100644 --- a/tests/baselines/reference/globalThis.types +++ b/tests/baselines/reference/globalThis.types @@ -1,7 +1,7 @@ === tests/cases/compiler/globalThis.ts === var __e = Math.E; // should not generate 'this.Math.E' ->__e : number, Symbol(__e, Decl(globalThis.ts, 0, 3)) ->Math.E : number, Symbol(Math.E, Decl(lib.d.ts, 524, 16)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->E : number, Symbol(Math.E, Decl(lib.d.ts, 524, 16)) +>__e : number +>Math.E : number +>Math : Math +>E : number diff --git a/tests/baselines/reference/globalThisCapture.symbols b/tests/baselines/reference/globalThisCapture.symbols new file mode 100644 index 0000000000000..bfb7bf147c0a4 --- /dev/null +++ b/tests/baselines/reference/globalThisCapture.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/globalThisCapture.ts === +// Add a lambda to ensure global 'this' capture is triggered +(()=>this.window); + +var parts = []; +>parts : Symbol(parts, Decl(globalThisCapture.ts, 3, 3)) + +// Ensure that the generated code is correct +parts[0]; +>parts : Symbol(parts, Decl(globalThisCapture.ts, 3, 3)) + diff --git a/tests/baselines/reference/globalThisCapture.types b/tests/baselines/reference/globalThisCapture.types index bd89167293220..b8ed146d8c464 100644 --- a/tests/baselines/reference/globalThisCapture.types +++ b/tests/baselines/reference/globalThisCapture.types @@ -8,12 +8,12 @@ >window : any var parts = []; ->parts : any[], Symbol(parts, Decl(globalThisCapture.ts, 3, 3)) +>parts : any[] >[] : undefined[] // Ensure that the generated code is correct parts[0]; >parts[0] : any ->parts : any[], Symbol(parts, Decl(globalThisCapture.ts, 3, 3)) +>parts : any[] >0 : number diff --git a/tests/baselines/reference/heterogeneousArrayLiterals.symbols b/tests/baselines/reference/heterogeneousArrayLiterals.symbols new file mode 100644 index 0000000000000..c7a73d5641445 --- /dev/null +++ b/tests/baselines/reference/heterogeneousArrayLiterals.symbols @@ -0,0 +1,417 @@ +=== tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts === +// type of an array is the best common type of its elements (plus its contextual type if it exists) + +var a = [1, '']; // {}[] +>a : Symbol(a, Decl(heterogeneousArrayLiterals.ts, 2, 3)) + +var b = [1, null]; // number[] +>b : Symbol(b, Decl(heterogeneousArrayLiterals.ts, 3, 3)) + +var c = [1, '', null]; // {}[] +>c : Symbol(c, Decl(heterogeneousArrayLiterals.ts, 4, 3)) + +var d = [{}, 1]; // {}[] +>d : Symbol(d, Decl(heterogeneousArrayLiterals.ts, 5, 3)) + +var e = [{}, Object]; // {}[] +>e : Symbol(e, Decl(heterogeneousArrayLiterals.ts, 6, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var f = [[], [1]]; // number[][] +>f : Symbol(f, Decl(heterogeneousArrayLiterals.ts, 8, 3)) + +var g = [[1], ['']]; // {}[] +>g : Symbol(g, Decl(heterogeneousArrayLiterals.ts, 9, 3)) + +var h = [{ foo: 1, bar: '' }, { foo: 2 }]; // {foo: number}[] +>h : Symbol(h, Decl(heterogeneousArrayLiterals.ts, 11, 3)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 11, 10)) +>bar : Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 11, 18)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 11, 31)) + +var i = [{ foo: 1, bar: '' }, { foo: '' }]; // {}[] +>i : Symbol(i, Decl(heterogeneousArrayLiterals.ts, 12, 3)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 12, 10)) +>bar : Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 12, 18)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 12, 31)) + +var j = [() => 1, () => '']; // {}[] +>j : Symbol(j, Decl(heterogeneousArrayLiterals.ts, 14, 3)) + +var k = [() => 1, () => 1]; // { (): number }[] +>k : Symbol(k, Decl(heterogeneousArrayLiterals.ts, 15, 3)) + +var l = [() => 1, () => null]; // { (): any }[] +>l : Symbol(l, Decl(heterogeneousArrayLiterals.ts, 16, 3)) + +var m = [() => 1, () => '', () => null]; // { (): any }[] +>m : Symbol(m, Decl(heterogeneousArrayLiterals.ts, 17, 3)) + +var n = [[() => 1], [() => '']]; // {}[] +>n : Symbol(n, Decl(heterogeneousArrayLiterals.ts, 18, 3)) + +class Base { foo: string; } +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 20, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>bar : Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 21, 28)) + +class Derived2 extends Base { baz: string; } +>Derived2 : Symbol(Derived2, Decl(heterogeneousArrayLiterals.ts, 21, 43)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>baz : Symbol(baz, Decl(heterogeneousArrayLiterals.ts, 22, 29)) + +var base: Base; +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) + +var derived: Derived; +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) + +var derived2: Derived2; +>derived2 : Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>Derived2 : Symbol(Derived2, Decl(heterogeneousArrayLiterals.ts, 21, 43)) + +module Derived { +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) + + var h = [{ foo: base, basear: derived }, { foo: base }]; // {foo: Base}[] +>h : Symbol(h, Decl(heterogeneousArrayLiterals.ts, 28, 7)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 28, 14)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>basear : Symbol(basear, Decl(heterogeneousArrayLiterals.ts, 28, 25)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 28, 46)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var i = [{ foo: base, basear: derived }, { foo: derived }]; // {foo: Derived}[] +>i : Symbol(i, Decl(heterogeneousArrayLiterals.ts, 29, 7)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 29, 14)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>basear : Symbol(basear, Decl(heterogeneousArrayLiterals.ts, 29, 25)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 29, 46)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var j = [() => base, () => derived]; // { {}: Base } +>j : Symbol(j, Decl(heterogeneousArrayLiterals.ts, 31, 7)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var k = [() => base, () => 1]; // {}[]~ +>k : Symbol(k, Decl(heterogeneousArrayLiterals.ts, 32, 7)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var l = [() => base, () => null]; // { (): any }[] +>l : Symbol(l, Decl(heterogeneousArrayLiterals.ts, 33, 7)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var m = [() => base, () => derived, () => null]; // { (): any }[] +>m : Symbol(m, Decl(heterogeneousArrayLiterals.ts, 34, 7)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var n = [[() => base], [() => derived]]; // { (): Base }[] +>n : Symbol(n, Decl(heterogeneousArrayLiterals.ts, 35, 7)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var o = [derived, derived2]; // {}[] +>o : Symbol(o, Decl(heterogeneousArrayLiterals.ts, 36, 7)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived2 : Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) + + var p = [derived, derived2, base]; // Base[] +>p : Symbol(p, Decl(heterogeneousArrayLiterals.ts, 37, 7)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived2 : Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var q = [[() => derived2], [() => derived]]; // {}[] +>q : Symbol(q, Decl(heterogeneousArrayLiterals.ts, 38, 7)) +>derived2 : Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +} + +module WithContextualType { +>WithContextualType : Symbol(WithContextualType, Decl(heterogeneousArrayLiterals.ts, 39, 1)) + + // no errors + var a: Base[] = [derived, derived2]; +>a : Symbol(a, Decl(heterogeneousArrayLiterals.ts, 43, 7)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived2 : Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) + + var b: Derived[] = [null]; +>b : Symbol(b, Decl(heterogeneousArrayLiterals.ts, 44, 7)) +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) + + var c: Derived[] = []; +>c : Symbol(c, Decl(heterogeneousArrayLiterals.ts, 45, 7)) +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) + + var d: { (): Base }[] = [() => derived, () => derived2]; +>d : Symbol(d, Decl(heterogeneousArrayLiterals.ts, 46, 7)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived2 : Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +} + +function foo(t: T, u: U) { +>foo : Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 47, 1)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 49, 13)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 49, 15)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 49, 13)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 49, 15)) + + var a = [t, t]; // T[] +>a : Symbol(a, Decl(heterogeneousArrayLiterals.ts, 50, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) + + var b = [t, null]; // T[] +>b : Symbol(b, Decl(heterogeneousArrayLiterals.ts, 51, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) + + var c = [t, u]; // {}[] +>c : Symbol(c, Decl(heterogeneousArrayLiterals.ts, 52, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) + + var d = [t, 1]; // {}[] +>d : Symbol(d, Decl(heterogeneousArrayLiterals.ts, 53, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) + + var e = [() => t, () => u]; // {}[] +>e : Symbol(e, Decl(heterogeneousArrayLiterals.ts, 54, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) + + var f = [() => t, () => u, () => null]; // { (): any }[] +>f : Symbol(f, Decl(heterogeneousArrayLiterals.ts, 55, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) +} + +function foo2(t: T, u: U) { +>foo2 : Symbol(foo2, Decl(heterogeneousArrayLiterals.ts, 56, 1)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 58, 14)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 58, 29)) +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 58, 14)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 58, 29)) + + var a = [t, t]; // T[] +>a : Symbol(a, Decl(heterogeneousArrayLiterals.ts, 59, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) + + var b = [t, null]; // T[] +>b : Symbol(b, Decl(heterogeneousArrayLiterals.ts, 60, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) + + var c = [t, u]; // {}[] +>c : Symbol(c, Decl(heterogeneousArrayLiterals.ts, 61, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) + + var d = [t, 1]; // {}[] +>d : Symbol(d, Decl(heterogeneousArrayLiterals.ts, 62, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) + + var e = [() => t, () => u]; // {}[] +>e : Symbol(e, Decl(heterogeneousArrayLiterals.ts, 63, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) + + var f = [() => t, () => u, () => null]; // { (): any }[] +>f : Symbol(f, Decl(heterogeneousArrayLiterals.ts, 64, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) + + var g = [t, base]; // Base[] +>g : Symbol(g, Decl(heterogeneousArrayLiterals.ts, 66, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var h = [t, derived]; // Derived[] +>h : Symbol(h, Decl(heterogeneousArrayLiterals.ts, 67, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var i = [u, base]; // Base[] +>i : Symbol(i, Decl(heterogeneousArrayLiterals.ts, 68, 7)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var j = [u, derived]; // Derived[] +>j : Symbol(j, Decl(heterogeneousArrayLiterals.ts, 69, 7)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +} + +function foo3(t: T, u: U) { +>foo3 : Symbol(foo3, Decl(heterogeneousArrayLiterals.ts, 70, 1)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 72, 14)) +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 72, 32)) +>Derived : Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 72, 14)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 72, 32)) + + var a = [t, t]; // T[] +>a : Symbol(a, Decl(heterogeneousArrayLiterals.ts, 73, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) + + var b = [t, null]; // T[] +>b : Symbol(b, Decl(heterogeneousArrayLiterals.ts, 74, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) + + var c = [t, u]; // {}[] +>c : Symbol(c, Decl(heterogeneousArrayLiterals.ts, 75, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) + + var d = [t, 1]; // {}[] +>d : Symbol(d, Decl(heterogeneousArrayLiterals.ts, 76, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) + + var e = [() => t, () => u]; // {}[] +>e : Symbol(e, Decl(heterogeneousArrayLiterals.ts, 77, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) + + var f = [() => t, () => u, () => null]; // { (): any }[] +>f : Symbol(f, Decl(heterogeneousArrayLiterals.ts, 78, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) + + var g = [t, base]; // Base[] +>g : Symbol(g, Decl(heterogeneousArrayLiterals.ts, 80, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var h = [t, derived]; // Derived[] +>h : Symbol(h, Decl(heterogeneousArrayLiterals.ts, 81, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var i = [u, base]; // Base[] +>i : Symbol(i, Decl(heterogeneousArrayLiterals.ts, 82, 7)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var j = [u, derived]; // Derived[] +>j : Symbol(j, Decl(heterogeneousArrayLiterals.ts, 83, 7)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +} + +function foo4(t: T, u: U) { +>foo4 : Symbol(foo4, Decl(heterogeneousArrayLiterals.ts, 84, 1)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 86, 14)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 86, 29)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>T : Symbol(T, Decl(heterogeneousArrayLiterals.ts, 86, 14)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>U : Symbol(U, Decl(heterogeneousArrayLiterals.ts, 86, 29)) + + var a = [t, t]; // T[] +>a : Symbol(a, Decl(heterogeneousArrayLiterals.ts, 87, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) + + var b = [t, null]; // T[] +>b : Symbol(b, Decl(heterogeneousArrayLiterals.ts, 88, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) + + var c = [t, u]; // BUG 821629 +>c : Symbol(c, Decl(heterogeneousArrayLiterals.ts, 89, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) + + var d = [t, 1]; // {}[] +>d : Symbol(d, Decl(heterogeneousArrayLiterals.ts, 90, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) + + var e = [() => t, () => u]; // {}[] +>e : Symbol(e, Decl(heterogeneousArrayLiterals.ts, 91, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) + + var f = [() => t, () => u, () => null]; // { (): any }[] +>f : Symbol(f, Decl(heterogeneousArrayLiterals.ts, 92, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) + + var g = [t, base]; // Base[] +>g : Symbol(g, Decl(heterogeneousArrayLiterals.ts, 94, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var h = [t, derived]; // Derived[] +>h : Symbol(h, Decl(heterogeneousArrayLiterals.ts, 95, 7)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var i = [u, base]; // Base[] +>i : Symbol(i, Decl(heterogeneousArrayLiterals.ts, 96, 7)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>base : Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) + + var j = [u, derived]; // Derived[] +>j : Symbol(j, Decl(heterogeneousArrayLiterals.ts, 97, 7)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>derived : Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) + + var k: Base[] = [t, u]; +>k : Symbol(k, Decl(heterogeneousArrayLiterals.ts, 99, 7)) +>Base : Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>t : Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>u : Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +} + +//function foo3(t: T, u: U) { +// var a = [t, t]; // T[] +// var b = [t, null]; // T[] +// var c = [t, u]; // {}[] +// var d = [t, 1]; // {}[] +// var e = [() => t, () => u]; // {}[] +// var f = [() => t, () => u, () => null]; // { (): any }[] + +// var g = [t, base]; // Base[] +// var h = [t, derived]; // Derived[] +// var i = [u, base]; // Base[] +// var j = [u, derived]; // Derived[] +//} + +//function foo4(t: T, u: U) { +// var a = [t, t]; // T[] +// var b = [t, null]; // T[] +// var c = [t, u]; // BUG 821629 +// var d = [t, 1]; // {}[] +// var e = [() => t, () => u]; // {}[] +// var f = [() => t, () => u, () => null]; // { (): any }[] + +// var g = [t, base]; // Base[] +// var h = [t, derived]; // Derived[] +// var i = [u, base]; // Base[] +// var j = [u, derived]; // Derived[] + +// var k: Base[] = [t, u]; +//} diff --git a/tests/baselines/reference/heterogeneousArrayLiterals.types b/tests/baselines/reference/heterogeneousArrayLiterals.types index da16b86cda334..81fa915ab0317 100644 --- a/tests/baselines/reference/heterogeneousArrayLiterals.types +++ b/tests/baselines/reference/heterogeneousArrayLiterals.types @@ -2,45 +2,45 @@ // type of an array is the best common type of its elements (plus its contextual type if it exists) var a = [1, '']; // {}[] ->a : (string | number)[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 2, 3)) +>a : (string | number)[] >[1, ''] : (string | number)[] >1 : number >'' : string var b = [1, null]; // number[] ->b : number[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 3, 3)) +>b : number[] >[1, null] : number[] >1 : number >null : null var c = [1, '', null]; // {}[] ->c : (string | number)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 4, 3)) +>c : (string | number)[] >[1, '', null] : (string | number)[] >1 : number >'' : string >null : null var d = [{}, 1]; // {}[] ->d : {}[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 5, 3)) +>d : {}[] >[{}, 1] : {}[] >{} : {} >1 : number var e = [{}, Object]; // {}[] ->e : {}[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 6, 3)) +>e : {}[] >[{}, Object] : {}[] >{} : {} ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor var f = [[], [1]]; // number[][] ->f : number[][], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 8, 3)) +>f : number[][] >[[], [1]] : number[][] >[] : undefined[] >[1] : number[] >1 : number var g = [[1], ['']]; // {}[] ->g : (string[] | number[])[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 9, 3)) +>g : (string[] | number[])[] >[[1], ['']] : (string[] | number[])[] >[1] : number[] >1 : number @@ -48,31 +48,31 @@ var g = [[1], ['']]; // {}[] >'' : string var h = [{ foo: 1, bar: '' }, { foo: 2 }]; // {foo: number}[] ->h : { foo: number; }[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 11, 3)) +>h : { foo: number; }[] >[{ foo: 1, bar: '' }, { foo: 2 }] : { foo: number; }[] >{ foo: 1, bar: '' } : { foo: number; bar: string; } ->foo : number, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 11, 10)) +>foo : number >1 : number ->bar : string, Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 11, 18)) +>bar : string >'' : string >{ foo: 2 } : { foo: number; } ->foo : number, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 11, 31)) +>foo : number >2 : number var i = [{ foo: 1, bar: '' }, { foo: '' }]; // {}[] ->i : ({ foo: number; bar: string; } | { foo: string; })[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 12, 3)) +>i : ({ foo: number; bar: string; } | { foo: string; })[] >[{ foo: 1, bar: '' }, { foo: '' }] : ({ foo: number; bar: string; } | { foo: string; })[] >{ foo: 1, bar: '' } : { foo: number; bar: string; } ->foo : number, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 12, 10)) +>foo : number >1 : number ->bar : string, Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 12, 18)) +>bar : string >'' : string >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 12, 31)) +>foo : string >'' : string var j = [() => 1, () => '']; // {}[] ->j : ((() => number) | (() => string))[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 14, 3)) +>j : ((() => number) | (() => string))[] >[() => 1, () => ''] : ((() => number) | (() => string))[] >() => 1 : () => number >1 : number @@ -80,7 +80,7 @@ var j = [() => 1, () => '']; // {}[] >'' : string var k = [() => 1, () => 1]; // { (): number }[] ->k : (() => number)[], Symbol(k, Decl(heterogeneousArrayLiterals.ts, 15, 3)) +>k : (() => number)[] >[() => 1, () => 1] : (() => number)[] >() => 1 : () => number >1 : number @@ -88,7 +88,7 @@ var k = [() => 1, () => 1]; // { (): number }[] >1 : number var l = [() => 1, () => null]; // { (): any }[] ->l : (() => any)[], Symbol(l, Decl(heterogeneousArrayLiterals.ts, 16, 3)) +>l : (() => any)[] >[() => 1, () => null] : (() => any)[] >() => 1 : () => number >1 : number @@ -96,7 +96,7 @@ var l = [() => 1, () => null]; // { (): any }[] >null : null var m = [() => 1, () => '', () => null]; // { (): any }[] ->m : (() => any)[], Symbol(m, Decl(heterogeneousArrayLiterals.ts, 17, 3)) +>m : (() => any)[] >[() => 1, () => '', () => null] : (() => any)[] >() => 1 : () => number >1 : number @@ -106,7 +106,7 @@ var m = [() => 1, () => '', () => null]; // { (): any }[] >null : null var n = [[() => 1], [() => '']]; // {}[] ->n : ((() => number)[] | (() => string)[])[], Symbol(n, Decl(heterogeneousArrayLiterals.ts, 18, 3)) +>n : ((() => number)[] | (() => string)[])[] >[[() => 1], [() => '']] : ((() => number)[] | (() => string)[])[] >[() => 1] : (() => number)[] >() => 1 : () => number @@ -116,449 +116,449 @@ var n = [[() => 1], [() => '']]; // {}[] >'' : string class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->foo : string, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 20, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->bar : string, Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 21, 28)) +>Derived : Derived +>Base : Base +>bar : string class Derived2 extends Base { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(heterogeneousArrayLiterals.ts, 21, 43)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->baz : string, Symbol(baz, Decl(heterogeneousArrayLiterals.ts, 22, 29)) +>Derived2 : Derived2 +>Base : Base +>baz : string var base: Base; ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>base : Base +>Base : Base var derived: Derived; ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>derived : Derived +>Derived : Derived var derived2: Derived2; ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) ->Derived2 : Derived2, Symbol(Derived2, Decl(heterogeneousArrayLiterals.ts, 21, 43)) +>derived2 : Derived2 +>Derived2 : Derived2 module Derived { ->Derived : typeof Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>Derived : typeof Derived var h = [{ foo: base, basear: derived }, { foo: base }]; // {foo: Base}[] ->h : { foo: Base; }[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 28, 7)) +>h : { foo: Base; }[] >[{ foo: base, basear: derived }, { foo: base }] : { foo: Base; }[] >{ foo: base, basear: derived } : { foo: Base; basear: Derived; } ->foo : Base, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 28, 14)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->basear : Derived, Symbol(basear, Decl(heterogeneousArrayLiterals.ts, 28, 25)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>foo : Base +>base : Base +>basear : Derived +>derived : Derived >{ foo: base } : { foo: Base; } ->foo : Base, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 28, 46)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>foo : Base +>base : Base var i = [{ foo: base, basear: derived }, { foo: derived }]; // {foo: Derived}[] ->i : ({ foo: Base; basear: Derived; } | { foo: Derived; })[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 29, 7)) +>i : ({ foo: Base; basear: Derived; } | { foo: Derived; })[] >[{ foo: base, basear: derived }, { foo: derived }] : ({ foo: Base; basear: Derived; } | { foo: Derived; })[] >{ foo: base, basear: derived } : { foo: Base; basear: Derived; } ->foo : Base, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 29, 14)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->basear : Derived, Symbol(basear, Decl(heterogeneousArrayLiterals.ts, 29, 25)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>foo : Base +>base : Base +>basear : Derived +>derived : Derived >{ foo: derived } : { foo: Derived; } ->foo : Derived, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 29, 46)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>foo : Derived +>derived : Derived var j = [() => base, () => derived]; // { {}: Base } ->j : (() => Base)[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 31, 7)) +>j : (() => Base)[] >[() => base, () => derived] : (() => Base)[] >() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>base : Base >() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived : Derived var k = [() => base, () => 1]; // {}[]~ ->k : ((() => Base) | (() => number))[], Symbol(k, Decl(heterogeneousArrayLiterals.ts, 32, 7)) +>k : ((() => Base) | (() => number))[] >[() => base, () => 1] : ((() => Base) | (() => number))[] >() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>base : Base >() => 1 : () => number >1 : number var l = [() => base, () => null]; // { (): any }[] ->l : (() => any)[], Symbol(l, Decl(heterogeneousArrayLiterals.ts, 33, 7)) +>l : (() => any)[] >[() => base, () => null] : (() => any)[] >() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>base : Base >() => null : () => any >null : null var m = [() => base, () => derived, () => null]; // { (): any }[] ->m : (() => any)[], Symbol(m, Decl(heterogeneousArrayLiterals.ts, 34, 7)) +>m : (() => any)[] >[() => base, () => derived, () => null] : (() => any)[] >() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>base : Base >() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived : Derived >() => null : () => any >null : null var n = [[() => base], [() => derived]]; // { (): Base }[] ->n : (() => Base)[][], Symbol(n, Decl(heterogeneousArrayLiterals.ts, 35, 7)) +>n : (() => Base)[][] >[[() => base], [() => derived]] : (() => Base)[][] >[() => base] : (() => Base)[] >() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>base : Base >[() => derived] : (() => Derived)[] >() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived : Derived var o = [derived, derived2]; // {}[] ->o : (Derived | Derived2)[], Symbol(o, Decl(heterogeneousArrayLiterals.ts, 36, 7)) +>o : (Derived | Derived2)[] >[derived, derived2] : (Derived | Derived2)[] ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>derived : Derived +>derived2 : Derived2 var p = [derived, derived2, base]; // Base[] ->p : Base[], Symbol(p, Decl(heterogeneousArrayLiterals.ts, 37, 7)) +>p : Base[] >[derived, derived2, base] : Base[] ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>derived : Derived +>derived2 : Derived2 +>base : Base var q = [[() => derived2], [() => derived]]; // {}[] ->q : ((() => Derived2)[] | (() => Derived)[])[], Symbol(q, Decl(heterogeneousArrayLiterals.ts, 38, 7)) +>q : ((() => Derived2)[] | (() => Derived)[])[] >[[() => derived2], [() => derived]] : ((() => Derived2)[] | (() => Derived)[])[] >[() => derived2] : (() => Derived2)[] >() => derived2 : () => Derived2 ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>derived2 : Derived2 >[() => derived] : (() => Derived)[] >() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived : Derived } module WithContextualType { ->WithContextualType : typeof WithContextualType, Symbol(WithContextualType, Decl(heterogeneousArrayLiterals.ts, 39, 1)) +>WithContextualType : typeof WithContextualType // no errors var a: Base[] = [derived, derived2]; ->a : Base[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 43, 7)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>a : Base[] +>Base : Base >[derived, derived2] : (Derived | Derived2)[] ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>derived : Derived +>derived2 : Derived2 var b: Derived[] = [null]; ->b : Derived[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 44, 7)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>b : Derived[] +>Derived : Derived >[null] : null[] >null : null var c: Derived[] = []; ->c : Derived[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 45, 7)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) +>c : Derived[] +>Derived : Derived >[] : undefined[] var d: { (): Base }[] = [() => derived, () => derived2]; ->d : (() => Base)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 46, 7)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>d : (() => Base)[] +>Base : Base >[() => derived, () => derived2] : ((() => Derived) | (() => Derived2))[] >() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>derived : Derived >() => derived2 : () => Derived2 ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) +>derived2 : Derived2 } function foo(t: T, u: U) { ->foo : (t: T, u: U) => void, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 47, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 49, 13)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 49, 15)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 49, 13)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 49, 15)) +>foo : (t: T, u: U) => void +>T : T +>U : U +>t : T +>T : T +>u : U +>U : U var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 50, 7)) +>a : T[] >[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>t : T +>t : T var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 51, 7)) +>b : T[] >[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>t : T >null : null var c = [t, u]; // {}[] ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 52, 7)) +>c : (T | U)[] >[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) +>t : T +>u : U var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 53, 7)) +>d : (number | T)[] >[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>t : T >1 : number var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 54, 7)) +>e : ((() => T) | (() => U))[] >[() => t, () => u] : ((() => T) | (() => U))[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) +>u : U var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 55, 7)) +>f : (() => any)[] >[() => t, () => u, () => null] : (() => any)[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) +>u : U >() => null : () => any >null : null } function foo2(t: T, u: U) { ->foo2 : (t: T, u: U) => void, Symbol(foo2, Decl(heterogeneousArrayLiterals.ts, 56, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 58, 14)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 58, 29)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 58, 14)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 58, 29)) +>foo2 : (t: T, u: U) => void +>T : T +>Base : Base +>U : U +>Derived : Derived +>t : T +>T : T +>u : U +>U : U var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 59, 7)) +>a : T[] >[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>t : T +>t : T var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 60, 7)) +>b : T[] >[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>t : T >null : null var c = [t, u]; // {}[] ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 61, 7)) +>c : (T | U)[] >[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) +>t : T +>u : U var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 62, 7)) +>d : (number | T)[] >[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>t : T >1 : number var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 63, 7)) +>e : ((() => T) | (() => U))[] >[() => t, () => u] : ((() => T) | (() => U))[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) +>u : U var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 64, 7)) +>f : (() => any)[] >[() => t, () => u, () => null] : (() => any)[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) +>u : U >() => null : () => any >null : null var g = [t, base]; // Base[] ->g : Base[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 66, 7)) +>g : Base[] >[t, base] : Base[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>t : T +>base : Base var h = [t, derived]; // Derived[] ->h : (Derived | T)[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 67, 7)) +>h : (Derived | T)[] >[t, derived] : (Derived | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>t : T +>derived : Derived var i = [u, base]; // Base[] ->i : Base[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 68, 7)) +>i : Base[] >[u, base] : Base[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>u : U +>base : Base var j = [u, derived]; // Derived[] ->j : Derived[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 69, 7)) +>j : Derived[] >[u, derived] : Derived[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>u : U +>derived : Derived } function foo3(t: T, u: U) { ->foo3 : (t: T, u: U) => void, Symbol(foo3, Decl(heterogeneousArrayLiterals.ts, 70, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 72, 14)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 72, 32)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 72, 14)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 72, 32)) +>foo3 : (t: T, u: U) => void +>T : T +>Derived : Derived +>U : U +>Derived : Derived +>t : T +>T : T +>u : U +>U : U var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 73, 7)) +>a : T[] >[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>t : T +>t : T var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 74, 7)) +>b : T[] >[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>t : T >null : null var c = [t, u]; // {}[] ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 75, 7)) +>c : (T | U)[] >[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) +>t : T +>u : U var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 76, 7)) +>d : (number | T)[] >[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>t : T >1 : number var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 77, 7)) +>e : ((() => T) | (() => U))[] >[() => t, () => u] : ((() => T) | (() => U))[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) +>u : U var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 78, 7)) +>f : (() => any)[] >[() => t, () => u, () => null] : (() => any)[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) +>u : U >() => null : () => any >null : null var g = [t, base]; // Base[] ->g : Base[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 80, 7)) +>g : Base[] >[t, base] : Base[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>t : T +>base : Base var h = [t, derived]; // Derived[] ->h : Derived[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 81, 7)) +>h : Derived[] >[t, derived] : Derived[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>t : T +>derived : Derived var i = [u, base]; // Base[] ->i : Base[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 82, 7)) +>i : Base[] >[u, base] : Base[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>u : U +>base : Base var j = [u, derived]; // Derived[] ->j : Derived[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 83, 7)) +>j : Derived[] >[u, derived] : Derived[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>u : U +>derived : Derived } function foo4(t: T, u: U) { ->foo4 : (t: T, u: U) => void, Symbol(foo4, Decl(heterogeneousArrayLiterals.ts, 84, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 86, 14)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 86, 29)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 86, 14)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 86, 29)) +>foo4 : (t: T, u: U) => void +>T : T +>Base : Base +>U : U +>Base : Base +>t : T +>T : T +>u : U +>U : U var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 87, 7)) +>a : T[] >[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>t : T +>t : T var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 88, 7)) +>b : T[] >[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>t : T >null : null var c = [t, u]; // BUG 821629 ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 89, 7)) +>c : (T | U)[] >[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>t : T +>u : U var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 90, 7)) +>d : (number | T)[] >[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>t : T >1 : number var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 91, 7)) +>e : ((() => T) | (() => U))[] >[() => t, () => u] : ((() => T) | (() => U))[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>u : U var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 92, 7)) +>f : (() => any)[] >[() => t, () => u, () => null] : (() => any)[] >() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) +>t : T >() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>u : U >() => null : () => any >null : null var g = [t, base]; // Base[] ->g : Base[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 94, 7)) +>g : Base[] >[t, base] : Base[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>t : T +>base : Base var h = [t, derived]; // Derived[] ->h : (Derived | T)[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 95, 7)) +>h : (Derived | T)[] >[t, derived] : (Derived | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>t : T +>derived : Derived var i = [u, base]; // Base[] ->i : Base[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 96, 7)) +>i : Base[] >[u, base] : Base[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) +>u : U +>base : Base var j = [u, derived]; // Derived[] ->j : (Derived | U)[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 97, 7)) +>j : (Derived | U)[] >[u, derived] : (Derived | U)[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) +>u : U +>derived : Derived var k: Base[] = [t, u]; ->k : Base[], Symbol(k, Decl(heterogeneousArrayLiterals.ts, 99, 7)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) +>k : Base[] +>Base : Base >[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) +>t : T +>u : U } //function foo3(t: T, u: U) { diff --git a/tests/baselines/reference/heterogeneousArrayLiterals.types.pull b/tests/baselines/reference/heterogeneousArrayLiterals.types.pull deleted file mode 100644 index 0cb47f873c254..0000000000000 --- a/tests/baselines/reference/heterogeneousArrayLiterals.types.pull +++ /dev/null @@ -1,592 +0,0 @@ -=== tests/cases/conformance/types/typeRelationships/bestCommonType/heterogeneousArrayLiterals.ts === -// type of an array is the best common type of its elements (plus its contextual type if it exists) - -var a = [1, '']; // {}[] ->a : (string | number)[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 2, 3)) ->[1, ''] : (string | number)[] ->1 : number ->'' : string - -var b = [1, null]; // number[] ->b : number[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 3, 3)) ->[1, null] : number[] ->1 : number ->null : null - -var c = [1, '', null]; // {}[] ->c : (string | number)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 4, 3)) ->[1, '', null] : (string | number)[] ->1 : number ->'' : string ->null : null - -var d = [{}, 1]; // {}[] ->d : {}[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 5, 3)) ->[{}, 1] : {}[] ->{} : {} ->1 : number - -var e = [{}, Object]; // {}[] ->e : {}[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 6, 3)) ->[{}, Object] : {}[] ->{} : {} ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) - -var f = [[], [1]]; // number[][] ->f : number[][], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 8, 3)) ->[[], [1]] : number[][] ->[] : undefined[] ->[1] : number[] ->1 : number - -var g = [[1], ['']]; // {}[] ->g : (number[] | string[])[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 9, 3)) ->[[1], ['']] : (number[] | string[])[] ->[1] : number[] ->1 : number ->[''] : string[] ->'' : string - -var h = [{ foo: 1, bar: '' }, { foo: 2 }]; // {foo: number}[] ->h : { foo: number; }[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 11, 3)) ->[{ foo: 1, bar: '' }, { foo: 2 }] : { foo: number; }[] ->{ foo: 1, bar: '' } : { foo: number; bar: string; } ->foo : number, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 11, 10)) ->1 : number ->bar : string, Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 11, 18)) ->'' : string ->{ foo: 2 } : { foo: number; } ->foo : number, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 11, 31)) ->2 : number - -var i = [{ foo: 1, bar: '' }, { foo: '' }]; // {}[] ->i : ({ foo: number; bar: string; } | { foo: string; })[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 12, 3)) ->[{ foo: 1, bar: '' }, { foo: '' }] : ({ foo: number; bar: string; } | { foo: string; })[] ->{ foo: 1, bar: '' } : { foo: number; bar: string; } ->foo : number, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 12, 10)) ->1 : number ->bar : string, Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 12, 18)) ->'' : string ->{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 12, 31)) ->'' : string - -var j = [() => 1, () => '']; // {}[] ->j : ((() => number) | (() => string))[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 14, 3)) ->[() => 1, () => ''] : ((() => number) | (() => string))[] ->() => 1 : () => number ->1 : number ->() => '' : () => string ->'' : string - -var k = [() => 1, () => 1]; // { (): number }[] ->k : (() => number)[], Symbol(k, Decl(heterogeneousArrayLiterals.ts, 15, 3)) ->[() => 1, () => 1] : (() => number)[] ->() => 1 : () => number ->1 : number ->() => 1 : () => number ->1 : number - -var l = [() => 1, () => null]; // { (): any }[] ->l : (() => any)[], Symbol(l, Decl(heterogeneousArrayLiterals.ts, 16, 3)) ->[() => 1, () => null] : (() => any)[] ->() => 1 : () => number ->1 : number ->() => null : () => any ->null : null - -var m = [() => 1, () => '', () => null]; // { (): any }[] ->m : (() => any)[], Symbol(m, Decl(heterogeneousArrayLiterals.ts, 17, 3)) ->[() => 1, () => '', () => null] : (() => any)[] ->() => 1 : () => number ->1 : number ->() => '' : () => string ->'' : string ->() => null : () => any ->null : null - -var n = [[() => 1], [() => '']]; // {}[] ->n : ((() => number)[] | (() => string)[])[], Symbol(n, Decl(heterogeneousArrayLiterals.ts, 18, 3)) ->[[() => 1], [() => '']] : ((() => number)[] | (() => string)[])[] ->[() => 1] : (() => number)[] ->() => 1 : () => number ->1 : number ->[() => ''] : (() => string)[] ->() => '' : () => string ->'' : string - -class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->foo : string, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 20, 12)) - -class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->bar : string, Symbol(bar, Decl(heterogeneousArrayLiterals.ts, 21, 28)) - -class Derived2 extends Base { baz: string; } ->Derived2 : Derived2, Symbol(Derived2, Decl(heterogeneousArrayLiterals.ts, 21, 43)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->baz : string, Symbol(baz, Decl(heterogeneousArrayLiterals.ts, 22, 29)) - -var base: Base; ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) - -var derived: Derived; ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) - -var derived2: Derived2; ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) ->Derived2 : Derived2, Symbol(Derived2, Decl(heterogeneousArrayLiterals.ts, 21, 43)) - -module Derived { ->Derived : typeof Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) - - var h = [{ foo: base, basear: derived }, { foo: base }]; // {foo: Base}[] ->h : { foo: Base; }[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 28, 7)) ->[{ foo: base, basear: derived }, { foo: base }] : { foo: Base; }[] ->{ foo: base, basear: derived } : { foo: Base; basear: Derived; } ->foo : Base, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 28, 14)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->basear : Derived, Symbol(basear, Decl(heterogeneousArrayLiterals.ts, 28, 25)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->{ foo: base } : { foo: Base; } ->foo : Base, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 28, 46)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var i = [{ foo: base, basear: derived }, { foo: derived }]; // {foo: Derived}[] ->i : ({ foo: Base; basear: Derived; } | { foo: Derived; })[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 29, 7)) ->[{ foo: base, basear: derived }, { foo: derived }] : ({ foo: Base; basear: Derived; } | { foo: Derived; })[] ->{ foo: base, basear: derived } : { foo: Base; basear: Derived; } ->foo : Base, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 29, 14)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->basear : Derived, Symbol(basear, Decl(heterogeneousArrayLiterals.ts, 29, 25)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->{ foo: derived } : { foo: Derived; } ->foo : Derived, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 29, 46)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var j = [() => base, () => derived]; // { {}: Base } ->j : (() => Base)[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 31, 7)) ->[() => base, () => derived] : (() => Base)[] ->() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var k = [() => base, () => 1]; // {}[]~ ->k : ((() => Base) | (() => number))[], Symbol(k, Decl(heterogeneousArrayLiterals.ts, 32, 7)) ->[() => base, () => 1] : ((() => Base) | (() => number))[] ->() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->() => 1 : () => number ->1 : number - - var l = [() => base, () => null]; // { (): any }[] ->l : (() => any)[], Symbol(l, Decl(heterogeneousArrayLiterals.ts, 33, 7)) ->[() => base, () => null] : (() => any)[] ->() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->() => null : () => any ->null : null - - var m = [() => base, () => derived, () => null]; // { (): any }[] ->m : (() => any)[], Symbol(m, Decl(heterogeneousArrayLiterals.ts, 34, 7)) ->[() => base, () => derived, () => null] : (() => any)[] ->() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->() => null : () => any ->null : null - - var n = [[() => base], [() => derived]]; // { (): Base }[] ->n : (() => Base)[][], Symbol(n, Decl(heterogeneousArrayLiterals.ts, 35, 7)) ->[[() => base], [() => derived]] : (() => Base)[][] ->[() => base] : (() => Base)[] ->() => base : () => Base ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) ->[() => derived] : (() => Derived)[] ->() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var o = [derived, derived2]; // {}[] ->o : (Derived | Derived2)[], Symbol(o, Decl(heterogeneousArrayLiterals.ts, 36, 7)) ->[derived, derived2] : (Derived | Derived2)[] ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) - - var p = [derived, derived2, base]; // Base[] ->p : Base[], Symbol(p, Decl(heterogeneousArrayLiterals.ts, 37, 7)) ->[derived, derived2, base] : Base[] ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var q = [[() => derived2], [() => derived]]; // {}[] ->q : ((() => Derived2)[] | (() => Derived)[])[], Symbol(q, Decl(heterogeneousArrayLiterals.ts, 38, 7)) ->[[() => derived2], [() => derived]] : ((() => Derived2)[] | (() => Derived)[])[] ->[() => derived2] : (() => Derived2)[] ->() => derived2 : () => Derived2 ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) ->[() => derived] : (() => Derived)[] ->() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) -} - -module WithContextualType { ->WithContextualType : typeof WithContextualType, Symbol(WithContextualType, Decl(heterogeneousArrayLiterals.ts, 39, 1)) - - // no errors - var a: Base[] = [derived, derived2]; ->a : Base[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 43, 7)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->[derived, derived2] : (Derived | Derived2)[] ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) - - var b: Derived[] = [null]; ->b : Derived[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 44, 7)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->[null] : null[] ->null : null - - var c: Derived[] = []; ->c : Derived[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 45, 7)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->[] : undefined[] - - var d: { (): Base }[] = [() => derived, () => derived2]; ->d : (() => Base)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 46, 7)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->[() => derived, () => derived2] : ((() => Derived) | (() => Derived2))[] ->() => derived : () => Derived ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) ->() => derived2 : () => Derived2 ->derived2 : Derived2, Symbol(derived2, Decl(heterogeneousArrayLiterals.ts, 25, 3)) -} - -function foo(t: T, u: U) { ->foo : (t: T, u: U) => void, Symbol(foo, Decl(heterogeneousArrayLiterals.ts, 47, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 49, 13)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 49, 15)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 49, 13)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 49, 15)) - - var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 50, 7)) ->[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) - - var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 51, 7)) ->[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->null : null - - var c = [t, u]; // {}[] ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 52, 7)) ->[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) - - var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 53, 7)) ->[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->1 : number - - var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 54, 7)) ->[() => t, () => u] : ((() => T) | (() => U))[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) - - var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 55, 7)) ->[() => t, () => u, () => null] : (() => any)[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 49, 19)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 49, 24)) ->() => null : () => any ->null : null -} - -function foo2(t: T, u: U) { ->foo2 : (t: T, u: U) => void, Symbol(foo2, Decl(heterogeneousArrayLiterals.ts, 56, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 58, 14)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 58, 29)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 58, 14)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 58, 29)) - - var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 59, 7)) ->[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) - - var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 60, 7)) ->[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->null : null - - var c = [t, u]; // {}[] ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 61, 7)) ->[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) - - var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 62, 7)) ->[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->1 : number - - var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 63, 7)) ->[() => t, () => u] : ((() => T) | (() => U))[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) - - var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 64, 7)) ->[() => t, () => u, () => null] : (() => any)[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->() => null : () => any ->null : null - - var g = [t, base]; // Base[] ->g : Base[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 66, 7)) ->[t, base] : Base[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var h = [t, derived]; // Derived[] ->h : (Derived | T)[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 67, 7)) ->[t, derived] : (Derived | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 58, 49)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var i = [u, base]; // Base[] ->i : Base[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 68, 7)) ->[u, base] : Base[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var j = [u, derived]; // Derived[] ->j : Derived[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 69, 7)) ->[u, derived] : Derived[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 58, 54)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) -} - -function foo3(t: T, u: U) { ->foo3 : (t: T, u: U) => void, Symbol(foo3, Decl(heterogeneousArrayLiterals.ts, 70, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 72, 14)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 72, 32)) ->Derived : Derived, Symbol(Derived, Decl(heterogeneousArrayLiterals.ts, 20, 27), Decl(heterogeneousArrayLiterals.ts, 25, 23)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 72, 14)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 72, 32)) - - var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 73, 7)) ->[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) - - var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 74, 7)) ->[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->null : null - - var c = [t, u]; // {}[] ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 75, 7)) ->[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) - - var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 76, 7)) ->[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->1 : number - - var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 77, 7)) ->[() => t, () => u] : ((() => T) | (() => U))[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) - - var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 78, 7)) ->[() => t, () => u, () => null] : (() => any)[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->() => null : () => any ->null : null - - var g = [t, base]; // Base[] ->g : Base[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 80, 7)) ->[t, base] : Base[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var h = [t, derived]; // Derived[] ->h : Derived[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 81, 7)) ->[t, derived] : Derived[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 72, 52)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var i = [u, base]; // Base[] ->i : Base[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 82, 7)) ->[u, base] : Base[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var j = [u, derived]; // Derived[] ->j : Derived[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 83, 7)) ->[u, derived] : Derived[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 72, 57)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) -} - -function foo4(t: T, u: U) { ->foo4 : (t: T, u: U) => void, Symbol(foo4, Decl(heterogeneousArrayLiterals.ts, 84, 1)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 86, 14)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 86, 29)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->T : T, Symbol(T, Decl(heterogeneousArrayLiterals.ts, 86, 14)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->U : U, Symbol(U, Decl(heterogeneousArrayLiterals.ts, 86, 29)) - - var a = [t, t]; // T[] ->a : T[], Symbol(a, Decl(heterogeneousArrayLiterals.ts, 87, 7)) ->[t, t] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) - - var b = [t, null]; // T[] ->b : T[], Symbol(b, Decl(heterogeneousArrayLiterals.ts, 88, 7)) ->[t, null] : T[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->null : null - - var c = [t, u]; // BUG 821629 ->c : (T | U)[], Symbol(c, Decl(heterogeneousArrayLiterals.ts, 89, 7)) ->[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) - - var d = [t, 1]; // {}[] ->d : (number | T)[], Symbol(d, Decl(heterogeneousArrayLiterals.ts, 90, 7)) ->[t, 1] : (number | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->1 : number - - var e = [() => t, () => u]; // {}[] ->e : ((() => T) | (() => U))[], Symbol(e, Decl(heterogeneousArrayLiterals.ts, 91, 7)) ->[() => t, () => u] : ((() => T) | (() => U))[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) - - var f = [() => t, () => u, () => null]; // { (): any }[] ->f : (() => any)[], Symbol(f, Decl(heterogeneousArrayLiterals.ts, 92, 7)) ->[() => t, () => u, () => null] : (() => any)[] ->() => t : () => T ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->() => u : () => U ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->() => null : () => any ->null : null - - var g = [t, base]; // Base[] ->g : Base[], Symbol(g, Decl(heterogeneousArrayLiterals.ts, 94, 7)) ->[t, base] : Base[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var h = [t, derived]; // Derived[] ->h : (Derived | T)[], Symbol(h, Decl(heterogeneousArrayLiterals.ts, 95, 7)) ->[t, derived] : (Derived | T)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var i = [u, base]; // Base[] ->i : Base[], Symbol(i, Decl(heterogeneousArrayLiterals.ts, 96, 7)) ->[u, base] : Base[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->base : Base, Symbol(base, Decl(heterogeneousArrayLiterals.ts, 23, 3)) - - var j = [u, derived]; // Derived[] ->j : (Derived | U)[], Symbol(j, Decl(heterogeneousArrayLiterals.ts, 97, 7)) ->[u, derived] : (Derived | U)[] ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) ->derived : Derived, Symbol(derived, Decl(heterogeneousArrayLiterals.ts, 24, 3)) - - var k: Base[] = [t, u]; ->k : Base[], Symbol(k, Decl(heterogeneousArrayLiterals.ts, 99, 7)) ->Base : Base, Symbol(Base, Decl(heterogeneousArrayLiterals.ts, 18, 32)) ->[t, u] : (T | U)[] ->t : T, Symbol(t, Decl(heterogeneousArrayLiterals.ts, 86, 46)) ->u : U, Symbol(u, Decl(heterogeneousArrayLiterals.ts, 86, 51)) -} - -//function foo3(t: T, u: U) { -// var a = [t, t]; // T[] -// var b = [t, null]; // T[] -// var c = [t, u]; // {}[] -// var d = [t, 1]; // {}[] -// var e = [() => t, () => u]; // {}[] -// var f = [() => t, () => u, () => null]; // { (): any }[] - -// var g = [t, base]; // Base[] -// var h = [t, derived]; // Derived[] -// var i = [u, base]; // Base[] -// var j = [u, derived]; // Derived[] -//} - -//function foo4(t: T, u: U) { -// var a = [t, t]; // T[] -// var b = [t, null]; // T[] -// var c = [t, u]; // BUG 821629 -// var d = [t, 1]; // {}[] -// var e = [() => t, () => u]; // {}[] -// var f = [() => t, () => u, () => null]; // { (): any }[] - -// var g = [t, base]; // Base[] -// var h = [t, derived]; // Derived[] -// var i = [u, base]; // Base[] -// var j = [u, derived]; // Derived[] - -// var k: Base[] = [t, u]; -//} diff --git a/tests/baselines/reference/hidingCallSignatures.symbols b/tests/baselines/reference/hidingCallSignatures.symbols new file mode 100644 index 0000000000000..5f6f057f6cdca --- /dev/null +++ b/tests/baselines/reference/hidingCallSignatures.symbols @@ -0,0 +1,55 @@ +=== tests/cases/compiler/hidingCallSignatures.ts === +interface C { +>C : Symbol(C, Decl(hidingCallSignatures.ts, 0, 0)) + + new (a: string): string; +>a : Symbol(a, Decl(hidingCallSignatures.ts, 1, 9)) +} + +interface D extends C { +>D : Symbol(D, Decl(hidingCallSignatures.ts, 2, 1)) +>C : Symbol(C, Decl(hidingCallSignatures.ts, 0, 0)) + + (a: string): number; // Should be ok +>a : Symbol(a, Decl(hidingCallSignatures.ts, 5, 5)) +} + +interface E { +>E : Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) + + (a: string): {}; +>a : Symbol(a, Decl(hidingCallSignatures.ts, 9, 5)) +} + +interface F extends E { +>F : Symbol(F, Decl(hidingCallSignatures.ts, 10, 1)) +>E : Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) + + (a: string): string; +>a : Symbol(a, Decl(hidingCallSignatures.ts, 13, 5)) +} + +var d: D; +>d : Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) +>D : Symbol(D, Decl(hidingCallSignatures.ts, 2, 1)) + +d(""); // number +>d : Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) + +new d(""); // should be string +>d : Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) + +var f: F; +>f : Symbol(f, Decl(hidingCallSignatures.ts, 20, 3)) +>F : Symbol(F, Decl(hidingCallSignatures.ts, 10, 1)) + +f(""); // string +>f : Symbol(f, Decl(hidingCallSignatures.ts, 20, 3)) + +var e: E; +>e : Symbol(e, Decl(hidingCallSignatures.ts, 23, 3)) +>E : Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) + +e(""); // {} +>e : Symbol(e, Decl(hidingCallSignatures.ts, 23, 3)) + diff --git a/tests/baselines/reference/hidingCallSignatures.types b/tests/baselines/reference/hidingCallSignatures.types index 34fe0b348b0d7..c45cab69d8a66 100644 --- a/tests/baselines/reference/hidingCallSignatures.types +++ b/tests/baselines/reference/hidingCallSignatures.types @@ -1,63 +1,63 @@ === tests/cases/compiler/hidingCallSignatures.ts === interface C { ->C : C, Symbol(C, Decl(hidingCallSignatures.ts, 0, 0)) +>C : C new (a: string): string; ->a : string, Symbol(a, Decl(hidingCallSignatures.ts, 1, 9)) +>a : string } interface D extends C { ->D : D, Symbol(D, Decl(hidingCallSignatures.ts, 2, 1)) ->C : C, Symbol(C, Decl(hidingCallSignatures.ts, 0, 0)) +>D : D +>C : C (a: string): number; // Should be ok ->a : string, Symbol(a, Decl(hidingCallSignatures.ts, 5, 5)) +>a : string } interface E { ->E : E, Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) +>E : E (a: string): {}; ->a : string, Symbol(a, Decl(hidingCallSignatures.ts, 9, 5)) +>a : string } interface F extends E { ->F : F, Symbol(F, Decl(hidingCallSignatures.ts, 10, 1)) ->E : E, Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) +>F : F +>E : E (a: string): string; ->a : string, Symbol(a, Decl(hidingCallSignatures.ts, 13, 5)) +>a : string } var d: D; ->d : D, Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) ->D : D, Symbol(D, Decl(hidingCallSignatures.ts, 2, 1)) +>d : D +>D : D d(""); // number >d("") : number ->d : D, Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) +>d : D >"" : string new d(""); // should be string >new d("") : string ->d : D, Symbol(d, Decl(hidingCallSignatures.ts, 16, 3)) +>d : D >"" : string var f: F; ->f : F, Symbol(f, Decl(hidingCallSignatures.ts, 20, 3)) ->F : F, Symbol(F, Decl(hidingCallSignatures.ts, 10, 1)) +>f : F +>F : F f(""); // string >f("") : string ->f : F, Symbol(f, Decl(hidingCallSignatures.ts, 20, 3)) +>f : F >"" : string var e: E; ->e : E, Symbol(e, Decl(hidingCallSignatures.ts, 23, 3)) ->E : E, Symbol(E, Decl(hidingCallSignatures.ts, 6, 1)) +>e : E +>E : E e(""); // {} >e("") : {} ->e : E, Symbol(e, Decl(hidingCallSignatures.ts, 23, 3)) +>e : E >"" : string diff --git a/tests/baselines/reference/hidingConstructSignatures.symbols b/tests/baselines/reference/hidingConstructSignatures.symbols new file mode 100644 index 0000000000000..d398c79ef85d8 --- /dev/null +++ b/tests/baselines/reference/hidingConstructSignatures.symbols @@ -0,0 +1,55 @@ +=== tests/cases/compiler/hidingConstructSignatures.ts === +interface C { +>C : Symbol(C, Decl(hidingConstructSignatures.ts, 0, 0)) + + (a: string): string; +>a : Symbol(a, Decl(hidingConstructSignatures.ts, 1, 5)) +} + +interface D extends C { +>D : Symbol(D, Decl(hidingConstructSignatures.ts, 2, 1)) +>C : Symbol(C, Decl(hidingConstructSignatures.ts, 0, 0)) + + new (a: string): number; // Should be ok +>a : Symbol(a, Decl(hidingConstructSignatures.ts, 5, 9)) +} + +interface E { +>E : Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1)) + + new (a: string): {}; +>a : Symbol(a, Decl(hidingConstructSignatures.ts, 9, 9)) +} + +interface F extends E { +>F : Symbol(F, Decl(hidingConstructSignatures.ts, 10, 1)) +>E : Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1)) + + new (a: string): string; +>a : Symbol(a, Decl(hidingConstructSignatures.ts, 13, 9)) +} + +var d: D; +>d : Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3)) +>D : Symbol(D, Decl(hidingConstructSignatures.ts, 2, 1)) + +d(""); // string +>d : Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3)) + +new d(""); // should be number +>d : Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3)) + +var f: F; +>f : Symbol(f, Decl(hidingConstructSignatures.ts, 20, 3)) +>F : Symbol(F, Decl(hidingConstructSignatures.ts, 10, 1)) + +new f(""); // string +>f : Symbol(f, Decl(hidingConstructSignatures.ts, 20, 3)) + +var e: E; +>e : Symbol(e, Decl(hidingConstructSignatures.ts, 23, 3)) +>E : Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1)) + +new e(""); // {} +>e : Symbol(e, Decl(hidingConstructSignatures.ts, 23, 3)) + diff --git a/tests/baselines/reference/hidingConstructSignatures.types b/tests/baselines/reference/hidingConstructSignatures.types index 9a2250023b4e4..0fd9860de25dc 100644 --- a/tests/baselines/reference/hidingConstructSignatures.types +++ b/tests/baselines/reference/hidingConstructSignatures.types @@ -1,63 +1,63 @@ === tests/cases/compiler/hidingConstructSignatures.ts === interface C { ->C : C, Symbol(C, Decl(hidingConstructSignatures.ts, 0, 0)) +>C : C (a: string): string; ->a : string, Symbol(a, Decl(hidingConstructSignatures.ts, 1, 5)) +>a : string } interface D extends C { ->D : D, Symbol(D, Decl(hidingConstructSignatures.ts, 2, 1)) ->C : C, Symbol(C, Decl(hidingConstructSignatures.ts, 0, 0)) +>D : D +>C : C new (a: string): number; // Should be ok ->a : string, Symbol(a, Decl(hidingConstructSignatures.ts, 5, 9)) +>a : string } interface E { ->E : E, Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1)) +>E : E new (a: string): {}; ->a : string, Symbol(a, Decl(hidingConstructSignatures.ts, 9, 9)) +>a : string } interface F extends E { ->F : F, Symbol(F, Decl(hidingConstructSignatures.ts, 10, 1)) ->E : E, Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1)) +>F : F +>E : E new (a: string): string; ->a : string, Symbol(a, Decl(hidingConstructSignatures.ts, 13, 9)) +>a : string } var d: D; ->d : D, Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3)) ->D : D, Symbol(D, Decl(hidingConstructSignatures.ts, 2, 1)) +>d : D +>D : D d(""); // string >d("") : string ->d : D, Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3)) +>d : D >"" : string new d(""); // should be number >new d("") : number ->d : D, Symbol(d, Decl(hidingConstructSignatures.ts, 16, 3)) +>d : D >"" : string var f: F; ->f : F, Symbol(f, Decl(hidingConstructSignatures.ts, 20, 3)) ->F : F, Symbol(F, Decl(hidingConstructSignatures.ts, 10, 1)) +>f : F +>F : F new f(""); // string >new f("") : string ->f : F, Symbol(f, Decl(hidingConstructSignatures.ts, 20, 3)) +>f : F >"" : string var e: E; ->e : E, Symbol(e, Decl(hidingConstructSignatures.ts, 23, 3)) ->E : E, Symbol(E, Decl(hidingConstructSignatures.ts, 6, 1)) +>e : E +>E : E new e(""); // {} >new e("") : {} ->e : E, Symbol(e, Decl(hidingConstructSignatures.ts, 23, 3)) +>e : E >"" : string diff --git a/tests/baselines/reference/hidingIndexSignatures.symbols b/tests/baselines/reference/hidingIndexSignatures.symbols new file mode 100644 index 0000000000000..0450a1c0e4ba4 --- /dev/null +++ b/tests/baselines/reference/hidingIndexSignatures.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/hidingIndexSignatures.ts === +interface A { +>A : Symbol(A, Decl(hidingIndexSignatures.ts, 0, 0)) + + [a: string]: {}; +>a : Symbol(a, Decl(hidingIndexSignatures.ts, 1, 5)) +} + +interface B extends A { +>B : Symbol(B, Decl(hidingIndexSignatures.ts, 2, 1)) +>A : Symbol(A, Decl(hidingIndexSignatures.ts, 0, 0)) + + [a: string]: number; // Number is not a subtype of string. Should error. +>a : Symbol(a, Decl(hidingIndexSignatures.ts, 5, 5)) +} + +var b: B; +>b : Symbol(b, Decl(hidingIndexSignatures.ts, 8, 3)) +>B : Symbol(B, Decl(hidingIndexSignatures.ts, 2, 1)) + +b[""]; // Should be number +>b : Symbol(b, Decl(hidingIndexSignatures.ts, 8, 3)) + +var a: A; +>a : Symbol(a, Decl(hidingIndexSignatures.ts, 10, 3)) +>A : Symbol(A, Decl(hidingIndexSignatures.ts, 0, 0)) + +a[""]; // Should be {} +>a : Symbol(a, Decl(hidingIndexSignatures.ts, 10, 3)) + diff --git a/tests/baselines/reference/hidingIndexSignatures.types b/tests/baselines/reference/hidingIndexSignatures.types index 3df7f17c82757..9a6346ace7bbe 100644 --- a/tests/baselines/reference/hidingIndexSignatures.types +++ b/tests/baselines/reference/hidingIndexSignatures.types @@ -1,34 +1,34 @@ === tests/cases/compiler/hidingIndexSignatures.ts === interface A { ->A : A, Symbol(A, Decl(hidingIndexSignatures.ts, 0, 0)) +>A : A [a: string]: {}; ->a : string, Symbol(a, Decl(hidingIndexSignatures.ts, 1, 5)) +>a : string } interface B extends A { ->B : B, Symbol(B, Decl(hidingIndexSignatures.ts, 2, 1)) ->A : A, Symbol(A, Decl(hidingIndexSignatures.ts, 0, 0)) +>B : B +>A : A [a: string]: number; // Number is not a subtype of string. Should error. ->a : string, Symbol(a, Decl(hidingIndexSignatures.ts, 5, 5)) +>a : string } var b: B; ->b : B, Symbol(b, Decl(hidingIndexSignatures.ts, 8, 3)) ->B : B, Symbol(B, Decl(hidingIndexSignatures.ts, 2, 1)) +>b : B +>B : B b[""]; // Should be number >b[""] : number ->b : B, Symbol(b, Decl(hidingIndexSignatures.ts, 8, 3)) +>b : B >"" : string var a: A; ->a : A, Symbol(a, Decl(hidingIndexSignatures.ts, 10, 3)) ->A : A, Symbol(A, Decl(hidingIndexSignatures.ts, 0, 0)) +>a : A +>A : A a[""]; // Should be {} >a[""] : {} ->a : A, Symbol(a, Decl(hidingIndexSignatures.ts, 10, 3)) +>a : A >"" : string diff --git a/tests/baselines/reference/icomparable.symbols b/tests/baselines/reference/icomparable.symbols new file mode 100644 index 0000000000000..03eac6b5bec5c --- /dev/null +++ b/tests/baselines/reference/icomparable.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/icomparable.ts === + interface IComparable { +>IComparable : Symbol(IComparable, Decl(icomparable.ts, 0, 0)) +>T : Symbol(T, Decl(icomparable.ts, 0, 26)) + + compareTo(other: T); +>compareTo : Symbol(compareTo, Decl(icomparable.ts, 0, 30)) +>other : Symbol(other, Decl(icomparable.ts, 1, 17)) +>T : Symbol(T, Decl(icomparable.ts, 0, 26)) + } + + declare function sort>(items: U[]): U[]; +>sort : Symbol(sort, Decl(icomparable.ts, 2, 5)) +>U : Symbol(U, Decl(icomparable.ts, 4, 26)) +>IComparable : Symbol(IComparable, Decl(icomparable.ts, 0, 0)) +>items : Symbol(items, Decl(icomparable.ts, 4, 54)) +>U : Symbol(U, Decl(icomparable.ts, 4, 26)) +>U : Symbol(U, Decl(icomparable.ts, 4, 26)) + + interface StringComparable extends IComparable { +>StringComparable : Symbol(StringComparable, Decl(icomparable.ts, 4, 71)) +>IComparable : Symbol(IComparable, Decl(icomparable.ts, 0, 0)) + } + + var sc: StringComparable[]; +>sc : Symbol(sc, Decl(icomparable.ts, 9, 7)) +>StringComparable : Symbol(StringComparable, Decl(icomparable.ts, 4, 71)) + + var x = sort(sc); +>x : Symbol(x, Decl(icomparable.ts, 11, 7)) +>sort : Symbol(sort, Decl(icomparable.ts, 2, 5)) +>sc : Symbol(sc, Decl(icomparable.ts, 9, 7)) + diff --git a/tests/baselines/reference/icomparable.types b/tests/baselines/reference/icomparable.types index 9fe93710fa071..2766743f41fda 100644 --- a/tests/baselines/reference/icomparable.types +++ b/tests/baselines/reference/icomparable.types @@ -1,34 +1,34 @@ === tests/cases/compiler/icomparable.ts === interface IComparable { ->IComparable : IComparable, Symbol(IComparable, Decl(icomparable.ts, 0, 0)) ->T : T, Symbol(T, Decl(icomparable.ts, 0, 26)) +>IComparable : IComparable +>T : T compareTo(other: T); ->compareTo : (other: T) => any, Symbol(compareTo, Decl(icomparable.ts, 0, 30)) ->other : T, Symbol(other, Decl(icomparable.ts, 1, 17)) ->T : T, Symbol(T, Decl(icomparable.ts, 0, 26)) +>compareTo : (other: T) => any +>other : T +>T : T } declare function sort>(items: U[]): U[]; ->sort : >(items: U[]) => U[], Symbol(sort, Decl(icomparable.ts, 2, 5)) ->U : U, Symbol(U, Decl(icomparable.ts, 4, 26)) ->IComparable : IComparable, Symbol(IComparable, Decl(icomparable.ts, 0, 0)) ->items : U[], Symbol(items, Decl(icomparable.ts, 4, 54)) ->U : U, Symbol(U, Decl(icomparable.ts, 4, 26)) ->U : U, Symbol(U, Decl(icomparable.ts, 4, 26)) +>sort : >(items: U[]) => U[] +>U : U +>IComparable : IComparable +>items : U[] +>U : U +>U : U interface StringComparable extends IComparable { ->StringComparable : StringComparable, Symbol(StringComparable, Decl(icomparable.ts, 4, 71)) ->IComparable : IComparable, Symbol(IComparable, Decl(icomparable.ts, 0, 0)) +>StringComparable : StringComparable +>IComparable : IComparable } var sc: StringComparable[]; ->sc : StringComparable[], Symbol(sc, Decl(icomparable.ts, 9, 7)) ->StringComparable : StringComparable, Symbol(StringComparable, Decl(icomparable.ts, 4, 71)) +>sc : StringComparable[] +>StringComparable : StringComparable var x = sort(sc); ->x : StringComparable[], Symbol(x, Decl(icomparable.ts, 11, 7)) +>x : StringComparable[] >sort(sc) : StringComparable[] ->sort : >(items: U[]) => U[], Symbol(sort, Decl(icomparable.ts, 2, 5)) ->sc : StringComparable[], Symbol(sc, Decl(icomparable.ts, 9, 7)) +>sort : >(items: U[]) => U[] +>sc : StringComparable[] diff --git a/tests/baselines/reference/idInProp.symbols b/tests/baselines/reference/idInProp.symbols new file mode 100644 index 0000000000000..56d7318ab19d1 --- /dev/null +++ b/tests/baselines/reference/idInProp.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/idInProp.ts === +function f() { +>f : Symbol(f, Decl(idInProp.ts, 0, 0)) + +var t: { (f: any) : any; }; +>t : Symbol(t, Decl(idInProp.ts, 2, 3)) +>f : Symbol(f, Decl(idInProp.ts, 2, 10)) + +} + diff --git a/tests/baselines/reference/idInProp.types b/tests/baselines/reference/idInProp.types index 67db60f8b2f0e..f300be6ebf295 100644 --- a/tests/baselines/reference/idInProp.types +++ b/tests/baselines/reference/idInProp.types @@ -1,10 +1,10 @@ === tests/cases/compiler/idInProp.ts === function f() { ->f : () => void, Symbol(f, Decl(idInProp.ts, 0, 0)) +>f : () => void var t: { (f: any) : any; }; ->t : (f: any) => any, Symbol(t, Decl(idInProp.ts, 2, 3)) ->f : any, Symbol(f, Decl(idInProp.ts, 2, 10)) +>t : (f: any) => any +>f : any } diff --git a/tests/baselines/reference/identicalCallSignatures.symbols b/tests/baselines/reference/identicalCallSignatures.symbols new file mode 100644 index 0000000000000..ede05ffed1d5d --- /dev/null +++ b/tests/baselines/reference/identicalCallSignatures.symbols @@ -0,0 +1,61 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/identicalCallSignatures.ts === +// Each pair of call signatures in these types have a duplicate signature error. +// Identical call signatures should generate an error. +interface I { +>I : Symbol(I, Decl(identicalCallSignatures.ts, 0, 0)) + + (x): number; +>x : Symbol(x, Decl(identicalCallSignatures.ts, 3, 5)) + + (x: any): number; +>x : Symbol(x, Decl(identicalCallSignatures.ts, 4, 5)) + + (x: T): T; +>T : Symbol(T, Decl(identicalCallSignatures.ts, 5, 5)) +>x : Symbol(x, Decl(identicalCallSignatures.ts, 5, 8)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 5, 5)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 5, 5)) + + (x: U): U; // error +>U : Symbol(U, Decl(identicalCallSignatures.ts, 6, 5)) +>x : Symbol(x, Decl(identicalCallSignatures.ts, 6, 8)) +>U : Symbol(U, Decl(identicalCallSignatures.ts, 6, 5)) +>U : Symbol(U, Decl(identicalCallSignatures.ts, 6, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(identicalCallSignatures.ts, 7, 1)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) + + (x: T): T; +>x : Symbol(x, Decl(identicalCallSignatures.ts, 10, 5)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) + + (x: T): T; // error +>x : Symbol(x, Decl(identicalCallSignatures.ts, 11, 5)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) +} + +var a: { +>a : Symbol(a, Decl(identicalCallSignatures.ts, 14, 3)) + + (x): number; +>x : Symbol(x, Decl(identicalCallSignatures.ts, 15, 5)) + + (x: any): number; +>x : Symbol(x, Decl(identicalCallSignatures.ts, 16, 5)) + + (x: T): T; +>T : Symbol(T, Decl(identicalCallSignatures.ts, 17, 5)) +>x : Symbol(x, Decl(identicalCallSignatures.ts, 17, 8)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 17, 5)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 17, 5)) + + (x: T): T; // error +>T : Symbol(T, Decl(identicalCallSignatures.ts, 18, 5)) +>x : Symbol(x, Decl(identicalCallSignatures.ts, 18, 8)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 18, 5)) +>T : Symbol(T, Decl(identicalCallSignatures.ts, 18, 5)) +} diff --git a/tests/baselines/reference/identicalCallSignatures.types b/tests/baselines/reference/identicalCallSignatures.types index b60ab8aa380f0..82616b44a60f7 100644 --- a/tests/baselines/reference/identicalCallSignatures.types +++ b/tests/baselines/reference/identicalCallSignatures.types @@ -2,60 +2,60 @@ // Each pair of call signatures in these types have a duplicate signature error. // Identical call signatures should generate an error. interface I { ->I : I, Symbol(I, Decl(identicalCallSignatures.ts, 0, 0)) +>I : I (x): number; ->x : any, Symbol(x, Decl(identicalCallSignatures.ts, 3, 5)) +>x : any (x: any): number; ->x : any, Symbol(x, Decl(identicalCallSignatures.ts, 4, 5)) +>x : any (x: T): T; ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 5, 5)) ->x : T, Symbol(x, Decl(identicalCallSignatures.ts, 5, 8)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 5, 5)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 5, 5)) +>T : T +>x : T +>T : T +>T : T (x: U): U; // error ->U : U, Symbol(U, Decl(identicalCallSignatures.ts, 6, 5)) ->x : U, Symbol(x, Decl(identicalCallSignatures.ts, 6, 8)) ->U : U, Symbol(U, Decl(identicalCallSignatures.ts, 6, 5)) ->U : U, Symbol(U, Decl(identicalCallSignatures.ts, 6, 5)) +>U : U +>x : U +>U : U +>U : U } interface I2 { ->I2 : I2, Symbol(I2, Decl(identicalCallSignatures.ts, 7, 1)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) +>I2 : I2 +>T : T (x: T): T; ->x : T, Symbol(x, Decl(identicalCallSignatures.ts, 10, 5)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) +>x : T +>T : T +>T : T (x: T): T; // error ->x : T, Symbol(x, Decl(identicalCallSignatures.ts, 11, 5)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 9, 13)) +>x : T +>T : T +>T : T } var a: { ->a : { (x: any): number; (x: any): number; (x: T): T; (x: T): T; }, Symbol(a, Decl(identicalCallSignatures.ts, 14, 3)) +>a : { (x: any): number; (x: any): number; (x: T): T; (x: T): T; } (x): number; ->x : any, Symbol(x, Decl(identicalCallSignatures.ts, 15, 5)) +>x : any (x: any): number; ->x : any, Symbol(x, Decl(identicalCallSignatures.ts, 16, 5)) +>x : any (x: T): T; ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 17, 5)) ->x : T, Symbol(x, Decl(identicalCallSignatures.ts, 17, 8)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 17, 5)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 17, 5)) +>T : T +>x : T +>T : T +>T : T (x: T): T; // error ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 18, 5)) ->x : T, Symbol(x, Decl(identicalCallSignatures.ts, 18, 8)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 18, 5)) ->T : T, Symbol(T, Decl(identicalCallSignatures.ts, 18, 5)) +>T : T +>x : T +>T : T +>T : T } diff --git a/tests/baselines/reference/identicalCallSignatures2.symbols b/tests/baselines/reference/identicalCallSignatures2.symbols new file mode 100644 index 0000000000000..ad7dbcd38128f --- /dev/null +++ b/tests/baselines/reference/identicalCallSignatures2.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/identicalCallSignatures2.ts === +// Normally it is an error to have multiple overloads with identical signatures in a single type declaration. +// Here the multiple overloads come from multiple bases. + +interface Base { +>Base : Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) +>T : Symbol(T, Decl(identicalCallSignatures2.ts, 3, 15)) + + (x: number): string; +>x : Symbol(x, Decl(identicalCallSignatures2.ts, 4, 5)) +} + +interface I extends Base, Base { } +>I : Symbol(I, Decl(identicalCallSignatures2.ts, 5, 1)) +>Base : Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) +>Base : Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) + +interface I2 extends Base, Base { } +>I2 : Symbol(I2, Decl(identicalCallSignatures2.ts, 7, 50)) +>T : Symbol(T, Decl(identicalCallSignatures2.ts, 9, 13)) +>Base : Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) +>Base : Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) + diff --git a/tests/baselines/reference/identicalCallSignatures2.types b/tests/baselines/reference/identicalCallSignatures2.types index cf5f50f96d3c1..febe2f38d8b91 100644 --- a/tests/baselines/reference/identicalCallSignatures2.types +++ b/tests/baselines/reference/identicalCallSignatures2.types @@ -3,21 +3,21 @@ // Here the multiple overloads come from multiple bases. interface Base { ->Base : Base, Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) ->T : T, Symbol(T, Decl(identicalCallSignatures2.ts, 3, 15)) +>Base : Base +>T : T (x: number): string; ->x : number, Symbol(x, Decl(identicalCallSignatures2.ts, 4, 5)) +>x : number } interface I extends Base, Base { } ->I : I, Symbol(I, Decl(identicalCallSignatures2.ts, 5, 1)) ->Base : Base, Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) +>I : I +>Base : Base +>Base : Base interface I2 extends Base, Base { } ->I2 : I2, Symbol(I2, Decl(identicalCallSignatures2.ts, 7, 50)) ->T : T, Symbol(T, Decl(identicalCallSignatures2.ts, 9, 13)) ->Base : Base, Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) ->Base : Base, Symbol(Base, Decl(identicalCallSignatures2.ts, 0, 0)) +>I2 : I2 +>T : T +>Base : Base +>Base : Base diff --git a/tests/baselines/reference/identicalCallSignatures3.symbols b/tests/baselines/reference/identicalCallSignatures3.symbols new file mode 100644 index 0000000000000..dc2749c4e0f52 --- /dev/null +++ b/tests/baselines/reference/identicalCallSignatures3.symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/identicalCallSignatures3.ts === +// Normally it is an error to have multiple overloads with identical signatures in a single type declaration. +// Here the multiple overloads come from multiple merged declarations, so we do not report errors. + +interface I { +>I : Symbol(I, Decl(identicalCallSignatures3.ts, 0, 0), Decl(identicalCallSignatures3.ts, 5, 1)) + + (x: number): string; +>x : Symbol(x, Decl(identicalCallSignatures3.ts, 4, 5)) +} + +interface I { +>I : Symbol(I, Decl(identicalCallSignatures3.ts, 0, 0), Decl(identicalCallSignatures3.ts, 5, 1)) + + (x: number): string; +>x : Symbol(x, Decl(identicalCallSignatures3.ts, 8, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(identicalCallSignatures3.ts, 9, 1), Decl(identicalCallSignatures3.ts, 13, 1)) +>T : Symbol(T, Decl(identicalCallSignatures3.ts, 11, 13), Decl(identicalCallSignatures3.ts, 15, 13)) + + (x: number): string; +>x : Symbol(x, Decl(identicalCallSignatures3.ts, 12, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(identicalCallSignatures3.ts, 9, 1), Decl(identicalCallSignatures3.ts, 13, 1)) +>T : Symbol(T, Decl(identicalCallSignatures3.ts, 11, 13), Decl(identicalCallSignatures3.ts, 15, 13)) + + (x: number): string; +>x : Symbol(x, Decl(identicalCallSignatures3.ts, 16, 5)) +} diff --git a/tests/baselines/reference/identicalCallSignatures3.types b/tests/baselines/reference/identicalCallSignatures3.types index 01d8c5a65ac22..d7334d9e5bbdd 100644 --- a/tests/baselines/reference/identicalCallSignatures3.types +++ b/tests/baselines/reference/identicalCallSignatures3.types @@ -3,31 +3,31 @@ // Here the multiple overloads come from multiple merged declarations, so we do not report errors. interface I { ->I : I, Symbol(I, Decl(identicalCallSignatures3.ts, 0, 0), Decl(identicalCallSignatures3.ts, 5, 1)) +>I : I (x: number): string; ->x : number, Symbol(x, Decl(identicalCallSignatures3.ts, 4, 5)) +>x : number } interface I { ->I : I, Symbol(I, Decl(identicalCallSignatures3.ts, 0, 0), Decl(identicalCallSignatures3.ts, 5, 1)) +>I : I (x: number): string; ->x : number, Symbol(x, Decl(identicalCallSignatures3.ts, 8, 5)) +>x : number } interface I2 { ->I2 : I2, Symbol(I2, Decl(identicalCallSignatures3.ts, 9, 1), Decl(identicalCallSignatures3.ts, 13, 1)) ->T : T, Symbol(T, Decl(identicalCallSignatures3.ts, 11, 13), Decl(identicalCallSignatures3.ts, 15, 13)) +>I2 : I2 +>T : T (x: number): string; ->x : number, Symbol(x, Decl(identicalCallSignatures3.ts, 12, 5)) +>x : number } interface I2 { ->I2 : I2, Symbol(I2, Decl(identicalCallSignatures3.ts, 9, 1), Decl(identicalCallSignatures3.ts, 13, 1)) ->T : T, Symbol(T, Decl(identicalCallSignatures3.ts, 11, 13), Decl(identicalCallSignatures3.ts, 15, 13)) +>I2 : I2 +>T : T (x: number): string; ->x : number, Symbol(x, Decl(identicalCallSignatures3.ts, 16, 5)) +>x : number } diff --git a/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.symbols b/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.symbols new file mode 100644 index 0000000000000..268e5d276b1fe --- /dev/null +++ b/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/identityForSignaturesWithTypeParametersSwitched.ts === +var f: (x: T, y: U) => T; +>f : Symbol(f, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 3), Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 3)) +>T : Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 8)) +>U : Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 10)) +>x : Symbol(x, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 14)) +>T : Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 8)) +>y : Symbol(y, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 19)) +>U : Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 10)) +>T : Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 8)) + +var f: (x: U, y: T) => U; +>f : Symbol(f, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 3), Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 3)) +>T : Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 8)) +>U : Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 10)) +>x : Symbol(x, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 14)) +>U : Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 10)) +>y : Symbol(y, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 19)) +>T : Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 8)) +>U : Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 10)) + diff --git a/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types b/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types index 97851d87c5a14..59e5017994629 100644 --- a/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types +++ b/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types @@ -1,21 +1,21 @@ === tests/cases/compiler/identityForSignaturesWithTypeParametersSwitched.ts === var f: (x: T, y: U) => T; ->f : (x: T, y: U) => T, Symbol(f, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 3), Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 3)) ->T : T, Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 8)) ->U : U, Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 10)) ->x : T, Symbol(x, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 14)) ->T : T, Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 8)) ->y : U, Symbol(y, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 19)) ->U : U, Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 10)) ->T : T, Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 8)) +>f : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T var f: (x: U, y: T) => U; ->f : (x: T, y: U) => T, Symbol(f, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 0, 3), Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 3)) ->T : T, Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 8)) ->U : U, Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 10)) ->x : U, Symbol(x, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 14)) ->U : U, Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 10)) ->y : T, Symbol(y, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 19)) ->T : T, Symbol(T, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 8)) ->U : U, Symbol(U, Decl(identityForSignaturesWithTypeParametersSwitched.ts, 1, 10)) +>f : (x: T, y: U) => T +>T : T +>U : U +>x : U +>U : U +>y : T +>T : T +>U : U diff --git a/tests/baselines/reference/ifDoWhileStatements.symbols b/tests/baselines/reference/ifDoWhileStatements.symbols new file mode 100644 index 0000000000000..36a990010efe4 --- /dev/null +++ b/tests/baselines/reference/ifDoWhileStatements.symbols @@ -0,0 +1,336 @@ +=== tests/cases/conformance/statements/ifDoWhileStatements/ifDoWhileStatements.ts === +interface I { +>I : Symbol(I, Decl(ifDoWhileStatements.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(ifDoWhileStatements.ts, 0, 13)) +} + +class C implements I { +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>I : Symbol(I, Decl(ifDoWhileStatements.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(ifDoWhileStatements.ts, 4, 22)) + + name: string; +>name : Symbol(name, Decl(ifDoWhileStatements.ts, 5, 15)) +} + +class C2 extends C { +>C2 : Symbol(C2, Decl(ifDoWhileStatements.ts, 7, 1)) +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + + valid: boolean; +>valid : Symbol(valid, Decl(ifDoWhileStatements.ts, 9, 20)) +} + +class D{ +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>T : Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) + + source: T; +>source : Symbol(source, Decl(ifDoWhileStatements.ts, 13, 11)) +>T : Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) + + recurse: D; +>recurse : Symbol(recurse, Decl(ifDoWhileStatements.ts, 14, 14)) +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>T : Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) + + wrapped: D> +>wrapped : Symbol(wrapped, Decl(ifDoWhileStatements.ts, 15, 18)) +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>T : Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) +} + +function F(x: string): number { return 42; } +>F : Symbol(F, Decl(ifDoWhileStatements.ts, 17, 1)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 19, 11)) + +function F2(x: number): boolean { return x < 42; } +>F2 : Symbol(F2, Decl(ifDoWhileStatements.ts, 19, 44)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 20, 12)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 20, 12)) + +module M { +>M : Symbol(M, Decl(ifDoWhileStatements.ts, 20, 50)) + + export class A { +>A : Symbol(A, Decl(ifDoWhileStatements.ts, 22, 10)) + + name: string; +>name : Symbol(name, Decl(ifDoWhileStatements.ts, 23, 20)) + } + + export function F2(x: number): string { return x.toString(); } +>F2 : Symbol(F2, Decl(ifDoWhileStatements.ts, 25, 5)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 27, 23)) +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 27, 23)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +} + +module N { +>N : Symbol(N, Decl(ifDoWhileStatements.ts, 28, 1)) + + export class A { +>A : Symbol(A, Decl(ifDoWhileStatements.ts, 30, 10)) + + id: number; +>id : Symbol(id, Decl(ifDoWhileStatements.ts, 31, 20)) + } + + export function F2(x: number): string { return x.toString(); } +>F2 : Symbol(F2, Decl(ifDoWhileStatements.ts, 33, 5)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 35, 23)) +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 35, 23)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +} + +// literals +if (true) { } +while (true) { } +do { }while(true) + +if (null) { } +while (null) { } +do { }while(null) + +if (undefined) { } +>undefined : Symbol(undefined) + +while (undefined) { } +>undefined : Symbol(undefined) + +do { }while(undefined) +>undefined : Symbol(undefined) + +if (0.0) { } +while (0.0) { } +do { }while(0.0) + +if ('a string') { } +while ('a string') { } +do { }while('a string') + +if ('') { } +while ('') { } +do { }while('') + +if (/[a-z]/) { } +while (/[a-z]/) { } +do { }while(/[a-z]/) + +if ([]) { } +while ([]) { } +do { }while([]) + +if ([1, 2]) { } +while ([1, 2]) { } +do { }while([1, 2]) + +if ({}) { } +while ({}) { } +do { }while({}) + +if ({ x: 1, y: 'a' }) { } +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 79, 5)) +>y : Symbol(y, Decl(ifDoWhileStatements.ts, 79, 11)) + +while ({ x: 1, y: 'a' }) { } +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 80, 8)) +>y : Symbol(y, Decl(ifDoWhileStatements.ts, 80, 14)) + +do { }while({ x: 1, y: 'a' }) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 81, 13)) +>y : Symbol(y, Decl(ifDoWhileStatements.ts, 81, 19)) + +if (() => 43) { } +while (() => 43) { } +do { }while(() => 43) + +if (new C()) { } +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + +while (new C()) { } +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + +do { }while(new C()) +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + +if (new D()) { } +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + +while (new D()) { } +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + +do { }while(new D()) +>D : Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) +>C : Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) + +// references +var a = true; +>a : Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) + +if (a) { } +>a : Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) + +while (a) { } +>a : Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) + +do { }while(a) +>a : Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) + +var b = null; +>b : Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) + +if (b) { } +>b : Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) + +while (b) { } +>b : Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) + +do { }while(b) +>b : Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) + +var c = undefined; +>c : Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) +>undefined : Symbol(undefined) + +if (c) { } +>c : Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) + +while (c) { } +>c : Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) + +do { }while(c) +>c : Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) + +var d = 0.0; +>d : Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) + +if (d) { } +>d : Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) + +while (d) { } +>d : Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) + +do { }while(d) +>d : Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) + +var e = 'a string'; +>e : Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) + +if (e) { } +>e : Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) + +while (e) { } +>e : Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) + +do { }while(e) +>e : Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) + +var f = ''; +>f : Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) + +if (f) { } +>f : Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) + +while (f) { } +>f : Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) + +do { }while(f) +>f : Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) + +var g = /[a-z]/ +>g : Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) + +if (g) { } +>g : Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) + +while (g) { } +>g : Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) + +do { }while(g) +>g : Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) + +var h = []; +>h : Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) + +if (h) { } +>h : Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) + +while (h) { } +>h : Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) + +do { }while(h) +>h : Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) + +var i = [1, 2]; +>i : Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) + +if (i) { } +>i : Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) + +while (i) { } +>i : Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) + +do { }while(i) +>i : Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) + +var j = {}; +>j : Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) + +if (j) { } +>j : Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) + +while (j) { } +>j : Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) + +do { }while(j) +>j : Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) + +var k = { x: 1, y: 'a' }; +>k : Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 146, 9)) +>y : Symbol(y, Decl(ifDoWhileStatements.ts, 146, 15)) + +if (k) { } +>k : Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) + +while (k) { } +>k : Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) + +do { }while(k) +>k : Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) + +function fn(x?: string): I { return null; } +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>x : Symbol(x, Decl(ifDoWhileStatements.ts, 151, 12)) +>I : Symbol(I, Decl(ifDoWhileStatements.ts, 0, 0)) + +if (fn()) { } +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) + +while (fn()) { } +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) + +do { }while(fn()) +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) + +if (fn) { } +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) + +while (fn) { } +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) + +do { }while(fn) +>fn : Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) + + + diff --git a/tests/baselines/reference/ifDoWhileStatements.types b/tests/baselines/reference/ifDoWhileStatements.types index 2183dec356f87..92a9df6a4dd7f 100644 --- a/tests/baselines/reference/ifDoWhileStatements.types +++ b/tests/baselines/reference/ifDoWhileStatements.types @@ -1,98 +1,98 @@ === tests/cases/conformance/statements/ifDoWhileStatements/ifDoWhileStatements.ts === interface I { ->I : I, Symbol(I, Decl(ifDoWhileStatements.ts, 0, 0)) +>I : I id: number; ->id : number, Symbol(id, Decl(ifDoWhileStatements.ts, 0, 13)) +>id : number } class C implements I { ->C : C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) ->I : I, Symbol(I, Decl(ifDoWhileStatements.ts, 0, 0)) +>C : C +>I : I id: number; ->id : number, Symbol(id, Decl(ifDoWhileStatements.ts, 4, 22)) +>id : number name: string; ->name : string, Symbol(name, Decl(ifDoWhileStatements.ts, 5, 15)) +>name : string } class C2 extends C { ->C2 : C2, Symbol(C2, Decl(ifDoWhileStatements.ts, 7, 1)) ->C : C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>C2 : C2 +>C : C valid: boolean; ->valid : boolean, Symbol(valid, Decl(ifDoWhileStatements.ts, 9, 20)) +>valid : boolean } class D{ ->D : D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->T : T, Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) +>D : D +>T : T source: T; ->source : T, Symbol(source, Decl(ifDoWhileStatements.ts, 13, 11)) ->T : T, Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) +>source : T +>T : T recurse: D; ->recurse : D, Symbol(recurse, Decl(ifDoWhileStatements.ts, 14, 14)) ->D : D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->T : T, Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) +>recurse : D +>D : D +>T : T wrapped: D> ->wrapped : D>, Symbol(wrapped, Decl(ifDoWhileStatements.ts, 15, 18)) ->D : D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->D : D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->T : T, Symbol(T, Decl(ifDoWhileStatements.ts, 13, 8)) +>wrapped : D> +>D : D +>D : D +>T : T } function F(x: string): number { return 42; } ->F : (x: string) => number, Symbol(F, Decl(ifDoWhileStatements.ts, 17, 1)) ->x : string, Symbol(x, Decl(ifDoWhileStatements.ts, 19, 11)) +>F : (x: string) => number +>x : string >42 : number function F2(x: number): boolean { return x < 42; } ->F2 : (x: number) => boolean, Symbol(F2, Decl(ifDoWhileStatements.ts, 19, 44)) ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 20, 12)) +>F2 : (x: number) => boolean +>x : number >x < 42 : boolean ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 20, 12)) +>x : number >42 : number module M { ->M : typeof M, Symbol(M, Decl(ifDoWhileStatements.ts, 20, 50)) +>M : typeof M export class A { ->A : A, Symbol(A, Decl(ifDoWhileStatements.ts, 22, 10)) +>A : A name: string; ->name : string, Symbol(name, Decl(ifDoWhileStatements.ts, 23, 20)) +>name : string } export function F2(x: number): string { return x.toString(); } ->F2 : (x: number) => string, Symbol(F2, Decl(ifDoWhileStatements.ts, 25, 5)) ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 27, 23)) +>F2 : (x: number) => string +>x : number >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 27, 23)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string } module N { ->N : typeof N, Symbol(N, Decl(ifDoWhileStatements.ts, 28, 1)) +>N : typeof N export class A { ->A : A, Symbol(A, Decl(ifDoWhileStatements.ts, 30, 10)) +>A : A id: number; ->id : number, Symbol(id, Decl(ifDoWhileStatements.ts, 31, 20)) +>id : number } export function F2(x: number): string { return x.toString(); } ->F2 : (x: number) => string, Symbol(F2, Decl(ifDoWhileStatements.ts, 33, 5)) ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 35, 23)) +>F2 : (x: number) => string +>x : number >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 35, 23)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string } // literals @@ -115,13 +115,13 @@ do { }while(null) >null : null if (undefined) { } ->undefined : undefined, Symbol(undefined) +>undefined : undefined while (undefined) { } ->undefined : undefined, Symbol(undefined) +>undefined : undefined do { }while(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined if (0.0) { } >0.0 : number @@ -194,23 +194,23 @@ do { }while({}) if ({ x: 1, y: 'a' }) { } >{ x: 1, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 79, 5)) +>x : number >1 : number ->y : string, Symbol(y, Decl(ifDoWhileStatements.ts, 79, 11)) +>y : string >'a' : string while ({ x: 1, y: 'a' }) { } >{ x: 1, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 80, 8)) +>x : number >1 : number ->y : string, Symbol(y, Decl(ifDoWhileStatements.ts, 80, 14)) +>y : string >'a' : string do { }while({ x: 1, y: 'a' }) >{ x: 1, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 81, 13)) +>x : number >1 : number ->y : string, Symbol(y, Decl(ifDoWhileStatements.ts, 81, 19)) +>y : string >'a' : string if (() => 43) { } @@ -227,207 +227,207 @@ do { }while(() => 43) if (new C()) { } >new C() : C ->C : typeof C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>C : typeof C while (new C()) { } >new C() : C ->C : typeof C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>C : typeof C do { }while(new C()) >new C() : C ->C : typeof C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>C : typeof C if (new D()) { } >new D() : D ->D : typeof D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->C : C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>D : typeof D +>C : C while (new D()) { } >new D() : D ->D : typeof D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->C : C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>D : typeof D +>C : C do { }while(new D()) >new D() : D ->D : typeof D, Symbol(D, Decl(ifDoWhileStatements.ts, 11, 1)) ->C : C, Symbol(C, Decl(ifDoWhileStatements.ts, 2, 1)) +>D : typeof D +>C : C // references var a = true; ->a : boolean, Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) +>a : boolean >true : boolean if (a) { } ->a : boolean, Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) +>a : boolean while (a) { } ->a : boolean, Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) +>a : boolean do { }while(a) ->a : boolean, Symbol(a, Decl(ifDoWhileStatements.ts, 96, 3)) +>a : boolean var b = null; ->b : any, Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) +>b : any >null : null if (b) { } ->b : any, Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) +>b : any while (b) { } ->b : any, Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) +>b : any do { }while(b) ->b : any, Symbol(b, Decl(ifDoWhileStatements.ts, 101, 3)) +>b : any var c = undefined; ->c : any, Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) ->undefined : undefined, Symbol(undefined) +>c : any +>undefined : undefined if (c) { } ->c : any, Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) +>c : any while (c) { } ->c : any, Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) +>c : any do { }while(c) ->c : any, Symbol(c, Decl(ifDoWhileStatements.ts, 106, 3)) +>c : any var d = 0.0; ->d : number, Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) +>d : number >0.0 : number if (d) { } ->d : number, Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) +>d : number while (d) { } ->d : number, Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) +>d : number do { }while(d) ->d : number, Symbol(d, Decl(ifDoWhileStatements.ts, 111, 3)) +>d : number var e = 'a string'; ->e : string, Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) +>e : string >'a string' : string if (e) { } ->e : string, Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) +>e : string while (e) { } ->e : string, Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) +>e : string do { }while(e) ->e : string, Symbol(e, Decl(ifDoWhileStatements.ts, 116, 3)) +>e : string var f = ''; ->f : string, Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) +>f : string >'' : string if (f) { } ->f : string, Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) +>f : string while (f) { } ->f : string, Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) +>f : string do { }while(f) ->f : string, Symbol(f, Decl(ifDoWhileStatements.ts, 121, 3)) +>f : string var g = /[a-z]/ ->g : RegExp, Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) +>g : RegExp >/[a-z]/ : RegExp if (g) { } ->g : RegExp, Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) +>g : RegExp while (g) { } ->g : RegExp, Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) +>g : RegExp do { }while(g) ->g : RegExp, Symbol(g, Decl(ifDoWhileStatements.ts, 126, 3)) +>g : RegExp var h = []; ->h : any[], Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) +>h : any[] >[] : undefined[] if (h) { } ->h : any[], Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) +>h : any[] while (h) { } ->h : any[], Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) +>h : any[] do { }while(h) ->h : any[], Symbol(h, Decl(ifDoWhileStatements.ts, 131, 3)) +>h : any[] var i = [1, 2]; ->i : number[], Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) +>i : number[] >[1, 2] : number[] >1 : number >2 : number if (i) { } ->i : number[], Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) +>i : number[] while (i) { } ->i : number[], Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) +>i : number[] do { }while(i) ->i : number[], Symbol(i, Decl(ifDoWhileStatements.ts, 136, 3)) +>i : number[] var j = {}; ->j : {}, Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) +>j : {} >{} : {} if (j) { } ->j : {}, Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) +>j : {} while (j) { } ->j : {}, Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) +>j : {} do { }while(j) ->j : {}, Symbol(j, Decl(ifDoWhileStatements.ts, 141, 3)) +>j : {} var k = { x: 1, y: 'a' }; ->k : { x: number; y: string; }, Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) +>k : { x: number; y: string; } >{ x: 1, y: 'a' } : { x: number; y: string; } ->x : number, Symbol(x, Decl(ifDoWhileStatements.ts, 146, 9)) +>x : number >1 : number ->y : string, Symbol(y, Decl(ifDoWhileStatements.ts, 146, 15)) +>y : string >'a' : string if (k) { } ->k : { x: number; y: string; }, Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) +>k : { x: number; y: string; } while (k) { } ->k : { x: number; y: string; }, Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) +>k : { x: number; y: string; } do { }while(k) ->k : { x: number; y: string; }, Symbol(k, Decl(ifDoWhileStatements.ts, 146, 3)) +>k : { x: number; y: string; } function fn(x?: string): I { return null; } ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) ->x : string, Symbol(x, Decl(ifDoWhileStatements.ts, 151, 12)) ->I : I, Symbol(I, Decl(ifDoWhileStatements.ts, 0, 0)) +>fn : (x?: string) => I +>x : string +>I : I >null : null if (fn()) { } >fn() : I ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>fn : (x?: string) => I while (fn()) { } >fn() : I ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>fn : (x?: string) => I do { }while(fn()) >fn() : I ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>fn : (x?: string) => I if (fn) { } ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>fn : (x?: string) => I while (fn) { } ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>fn : (x?: string) => I do { }while(fn) ->fn : (x?: string) => I, Symbol(fn, Decl(ifDoWhileStatements.ts, 149, 14)) +>fn : (x?: string) => I diff --git a/tests/baselines/reference/illegalGenericWrapping1.symbols b/tests/baselines/reference/illegalGenericWrapping1.symbols new file mode 100644 index 0000000000000..f4ab78ceb692f --- /dev/null +++ b/tests/baselines/reference/illegalGenericWrapping1.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/illegalGenericWrapping1.ts === +interface Sequence { +>Sequence : Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) + + each(iterator: (value: T) => void ): void; +>each : Symbol(each, Decl(illegalGenericWrapping1.ts, 0, 23)) +>iterator : Symbol(iterator, Decl(illegalGenericWrapping1.ts, 1, 9)) +>value : Symbol(value, Decl(illegalGenericWrapping1.ts, 1, 20)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) + + map(iterator: (value: T) => U): Sequence; +>map : Symbol(map, Decl(illegalGenericWrapping1.ts, 1, 46)) +>U : Symbol(U, Decl(illegalGenericWrapping1.ts, 2, 8)) +>iterator : Symbol(iterator, Decl(illegalGenericWrapping1.ts, 2, 11)) +>value : Symbol(value, Decl(illegalGenericWrapping1.ts, 2, 22)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>U : Symbol(U, Decl(illegalGenericWrapping1.ts, 2, 8)) +>Sequence : Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) +>U : Symbol(U, Decl(illegalGenericWrapping1.ts, 2, 8)) + + filter(iterator: (value: T) => boolean): Sequence; +>filter : Symbol(filter, Decl(illegalGenericWrapping1.ts, 2, 51)) +>iterator : Symbol(iterator, Decl(illegalGenericWrapping1.ts, 3, 11)) +>value : Symbol(value, Decl(illegalGenericWrapping1.ts, 3, 22)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>Sequence : Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) + + groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: Sequence; }>; +>groupBy : Symbol(groupBy, Decl(illegalGenericWrapping1.ts, 3, 57)) +>K : Symbol(K, Decl(illegalGenericWrapping1.ts, 4, 12)) +>keySelector : Symbol(keySelector, Decl(illegalGenericWrapping1.ts, 4, 15)) +>value : Symbol(value, Decl(illegalGenericWrapping1.ts, 4, 29)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>K : Symbol(K, Decl(illegalGenericWrapping1.ts, 4, 12)) +>Sequence : Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) +>key : Symbol(key, Decl(illegalGenericWrapping1.ts, 4, 56)) +>K : Symbol(K, Decl(illegalGenericWrapping1.ts, 4, 12)) +>items : Symbol(items, Decl(illegalGenericWrapping1.ts, 4, 64)) +>Sequence : Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) +>T : Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +} + diff --git a/tests/baselines/reference/illegalGenericWrapping1.types b/tests/baselines/reference/illegalGenericWrapping1.types index bc47a130b8345..82de593104c63 100644 --- a/tests/baselines/reference/illegalGenericWrapping1.types +++ b/tests/baselines/reference/illegalGenericWrapping1.types @@ -1,44 +1,44 @@ === tests/cases/compiler/illegalGenericWrapping1.ts === interface Sequence { ->Sequence : Sequence, Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>Sequence : Sequence +>T : T each(iterator: (value: T) => void ): void; ->each : (iterator: (value: T) => void) => void, Symbol(each, Decl(illegalGenericWrapping1.ts, 0, 23)) ->iterator : (value: T) => void, Symbol(iterator, Decl(illegalGenericWrapping1.ts, 1, 9)) ->value : T, Symbol(value, Decl(illegalGenericWrapping1.ts, 1, 20)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>each : (iterator: (value: T) => void) => void +>iterator : (value: T) => void +>value : T +>T : T map(iterator: (value: T) => U): Sequence; ->map : (iterator: (value: T) => U) => Sequence, Symbol(map, Decl(illegalGenericWrapping1.ts, 1, 46)) ->U : U, Symbol(U, Decl(illegalGenericWrapping1.ts, 2, 8)) ->iterator : (value: T) => U, Symbol(iterator, Decl(illegalGenericWrapping1.ts, 2, 11)) ->value : T, Symbol(value, Decl(illegalGenericWrapping1.ts, 2, 22)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) ->U : U, Symbol(U, Decl(illegalGenericWrapping1.ts, 2, 8)) ->Sequence : Sequence, Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) ->U : U, Symbol(U, Decl(illegalGenericWrapping1.ts, 2, 8)) +>map : (iterator: (value: T) => U) => Sequence +>U : U +>iterator : (value: T) => U +>value : T +>T : T +>U : U +>Sequence : Sequence +>U : U filter(iterator: (value: T) => boolean): Sequence; ->filter : (iterator: (value: T) => boolean) => Sequence, Symbol(filter, Decl(illegalGenericWrapping1.ts, 2, 51)) ->iterator : (value: T) => boolean, Symbol(iterator, Decl(illegalGenericWrapping1.ts, 3, 11)) ->value : T, Symbol(value, Decl(illegalGenericWrapping1.ts, 3, 22)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) ->Sequence : Sequence, Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>filter : (iterator: (value: T) => boolean) => Sequence +>iterator : (value: T) => boolean +>value : T +>T : T +>Sequence : Sequence +>T : T groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: Sequence; }>; ->groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: Sequence; }>, Symbol(groupBy, Decl(illegalGenericWrapping1.ts, 3, 57)) ->K : K, Symbol(K, Decl(illegalGenericWrapping1.ts, 4, 12)) ->keySelector : (value: T) => K, Symbol(keySelector, Decl(illegalGenericWrapping1.ts, 4, 15)) ->value : T, Symbol(value, Decl(illegalGenericWrapping1.ts, 4, 29)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) ->K : K, Symbol(K, Decl(illegalGenericWrapping1.ts, 4, 12)) ->Sequence : Sequence, Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) ->key : K, Symbol(key, Decl(illegalGenericWrapping1.ts, 4, 56)) ->K : K, Symbol(K, Decl(illegalGenericWrapping1.ts, 4, 12)) ->items : Sequence, Symbol(items, Decl(illegalGenericWrapping1.ts, 4, 64)) ->Sequence : Sequence, Symbol(Sequence, Decl(illegalGenericWrapping1.ts, 0, 0)) ->T : T, Symbol(T, Decl(illegalGenericWrapping1.ts, 0, 19)) +>groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: Sequence; }> +>K : K +>keySelector : (value: T) => K +>value : T +>T : T +>K : K +>Sequence : Sequence +>key : K +>K : K +>items : Sequence +>Sequence : Sequence +>T : T } diff --git a/tests/baselines/reference/implementArrayInterface.symbols b/tests/baselines/reference/implementArrayInterface.symbols new file mode 100644 index 0000000000000..97d106157fe92 --- /dev/null +++ b/tests/baselines/reference/implementArrayInterface.symbols @@ -0,0 +1,217 @@ +=== tests/cases/compiler/implementArrayInterface.ts === +declare class MyArray implements Array { +>MyArray : Symbol(MyArray, Decl(implementArrayInterface.ts, 0, 0)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + toString(): string; +>toString : Symbol(toString, Decl(implementArrayInterface.ts, 0, 46)) + + toLocaleString(): string; +>toLocaleString : Symbol(toLocaleString, Decl(implementArrayInterface.ts, 1, 23)) + + concat(...items: U[]): T[]; +>concat : Symbol(concat, Decl(implementArrayInterface.ts, 2, 29), Decl(implementArrayInterface.ts, 3, 46)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 3, 11)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>items : Symbol(items, Decl(implementArrayInterface.ts, 3, 26)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 3, 11)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + concat(...items: T[]): T[]; +>concat : Symbol(concat, Decl(implementArrayInterface.ts, 2, 29), Decl(implementArrayInterface.ts, 3, 46)) +>items : Symbol(items, Decl(implementArrayInterface.ts, 4, 11)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + join(separator?: string): string; +>join : Symbol(join, Decl(implementArrayInterface.ts, 4, 31)) +>separator : Symbol(separator, Decl(implementArrayInterface.ts, 5, 9)) + + pop(): T; +>pop : Symbol(pop, Decl(implementArrayInterface.ts, 5, 37)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + push(...items: T[]): number; +>push : Symbol(push, Decl(implementArrayInterface.ts, 6, 13)) +>items : Symbol(items, Decl(implementArrayInterface.ts, 7, 9)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + reverse(): T[]; +>reverse : Symbol(reverse, Decl(implementArrayInterface.ts, 7, 32)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + shift(): T; +>shift : Symbol(shift, Decl(implementArrayInterface.ts, 8, 19)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + slice(start?: number, end?: number): T[]; +>slice : Symbol(slice, Decl(implementArrayInterface.ts, 9, 15)) +>start : Symbol(start, Decl(implementArrayInterface.ts, 10, 10)) +>end : Symbol(end, Decl(implementArrayInterface.ts, 10, 25)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + sort(compareFn?: (a: T, b: T) => number): T[]; +>sort : Symbol(sort, Decl(implementArrayInterface.ts, 10, 45)) +>compareFn : Symbol(compareFn, Decl(implementArrayInterface.ts, 11, 9)) +>a : Symbol(a, Decl(implementArrayInterface.ts, 11, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>b : Symbol(b, Decl(implementArrayInterface.ts, 11, 27)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + splice(start: number): T[]; +>splice : Symbol(splice, Decl(implementArrayInterface.ts, 11, 50), Decl(implementArrayInterface.ts, 12, 31)) +>start : Symbol(start, Decl(implementArrayInterface.ts, 12, 11)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + splice(start: number, deleteCount: number, ...items: T[]): T[]; +>splice : Symbol(splice, Decl(implementArrayInterface.ts, 11, 50), Decl(implementArrayInterface.ts, 12, 31)) +>start : Symbol(start, Decl(implementArrayInterface.ts, 13, 11)) +>deleteCount : Symbol(deleteCount, Decl(implementArrayInterface.ts, 13, 25)) +>items : Symbol(items, Decl(implementArrayInterface.ts, 13, 46)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + unshift(...items: T[]): number; +>unshift : Symbol(unshift, Decl(implementArrayInterface.ts, 13, 67)) +>items : Symbol(items, Decl(implementArrayInterface.ts, 14, 12)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + indexOf(searchElement: T, fromIndex?: number): number; +>indexOf : Symbol(indexOf, Decl(implementArrayInterface.ts, 14, 35)) +>searchElement : Symbol(searchElement, Decl(implementArrayInterface.ts, 16, 12)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>fromIndex : Symbol(fromIndex, Decl(implementArrayInterface.ts, 16, 29)) + + lastIndexOf(searchElement: T, fromIndex?: number): number; +>lastIndexOf : Symbol(lastIndexOf, Decl(implementArrayInterface.ts, 16, 58)) +>searchElement : Symbol(searchElement, Decl(implementArrayInterface.ts, 17, 16)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>fromIndex : Symbol(fromIndex, Decl(implementArrayInterface.ts, 17, 33)) + + every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; +>every : Symbol(every, Decl(implementArrayInterface.ts, 17, 62)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 18, 10)) +>value : Symbol(value, Decl(implementArrayInterface.ts, 18, 23)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>index : Symbol(index, Decl(implementArrayInterface.ts, 18, 32)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 18, 47)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 18, 71)) + + some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; +>some : Symbol(some, Decl(implementArrayInterface.ts, 18, 96)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 19, 9)) +>value : Symbol(value, Decl(implementArrayInterface.ts, 19, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>index : Symbol(index, Decl(implementArrayInterface.ts, 19, 31)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 19, 46)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 19, 70)) + + forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; +>forEach : Symbol(forEach, Decl(implementArrayInterface.ts, 19, 95)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 20, 12)) +>value : Symbol(value, Decl(implementArrayInterface.ts, 20, 25)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>index : Symbol(index, Decl(implementArrayInterface.ts, 20, 34)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 20, 49)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 20, 70)) + + map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; +>map : Symbol(map, Decl(implementArrayInterface.ts, 20, 92)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 21, 11)) +>value : Symbol(value, Decl(implementArrayInterface.ts, 21, 24)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>index : Symbol(index, Decl(implementArrayInterface.ts, 21, 33)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 21, 48)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) +>thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 21, 66)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) + + filter(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[]; +>filter : Symbol(filter, Decl(implementArrayInterface.ts, 21, 87)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 22, 11)) +>value : Symbol(value, Decl(implementArrayInterface.ts, 22, 24)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>index : Symbol(index, Decl(implementArrayInterface.ts, 22, 33)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 22, 48)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>thisArg : Symbol(thisArg, Decl(implementArrayInterface.ts, 22, 72)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; +>reduce : Symbol(reduce, Decl(implementArrayInterface.ts, 22, 93), Decl(implementArrayInterface.ts, 23, 120)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 23, 11)) +>previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 23, 24)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 23, 41)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 23, 58)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 23, 80)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 23, 98)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; +>reduce : Symbol(reduce, Decl(implementArrayInterface.ts, 22, 93), Decl(implementArrayInterface.ts, 23, 120)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 24, 14)) +>previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 24, 27)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) +>currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 24, 44)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 24, 61)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 24, 83)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) +>initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 24, 101)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) + + reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; +>reduceRight : Symbol(reduceRight, Decl(implementArrayInterface.ts, 24, 122), Decl(implementArrayInterface.ts, 25, 125)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 25, 16)) +>previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 25, 29)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 25, 46)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 25, 63)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 25, 85)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 25, 103)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) + + reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; +>reduceRight : Symbol(reduceRight, Decl(implementArrayInterface.ts, 24, 122), Decl(implementArrayInterface.ts, 25, 125)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) +>callbackfn : Symbol(callbackfn, Decl(implementArrayInterface.ts, 26, 19)) +>previousValue : Symbol(previousValue, Decl(implementArrayInterface.ts, 26, 32)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) +>currentValue : Symbol(currentValue, Decl(implementArrayInterface.ts, 26, 49)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>currentIndex : Symbol(currentIndex, Decl(implementArrayInterface.ts, 26, 66)) +>array : Symbol(array, Decl(implementArrayInterface.ts, 26, 88)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) +>initialValue : Symbol(initialValue, Decl(implementArrayInterface.ts, 26, 106)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) +>U : Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) + + length: number; +>length : Symbol(length, Decl(implementArrayInterface.ts, 26, 127)) + + [n: number]: T; +>n : Symbol(n, Decl(implementArrayInterface.ts, 30, 5)) +>T : Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +} + diff --git a/tests/baselines/reference/implementArrayInterface.types b/tests/baselines/reference/implementArrayInterface.types index 319db7b54a4bc..347fcf37693e6 100644 --- a/tests/baselines/reference/implementArrayInterface.types +++ b/tests/baselines/reference/implementArrayInterface.types @@ -1,217 +1,217 @@ === tests/cases/compiler/implementArrayInterface.ts === declare class MyArray implements Array { ->MyArray : MyArray, Symbol(MyArray, Decl(implementArrayInterface.ts, 0, 0)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>MyArray : MyArray +>T : T +>Array : T[] +>T : T toString(): string; ->toString : () => string, Symbol(toString, Decl(implementArrayInterface.ts, 0, 46)) +>toString : () => string toLocaleString(): string; ->toLocaleString : () => string, Symbol(toLocaleString, Decl(implementArrayInterface.ts, 1, 23)) +>toLocaleString : () => string concat(...items: U[]): T[]; ->concat : { (...items: U[]): T[]; (...items: T[]): T[]; }, Symbol(concat, Decl(implementArrayInterface.ts, 2, 29), Decl(implementArrayInterface.ts, 3, 46)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 3, 11)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->items : U[], Symbol(items, Decl(implementArrayInterface.ts, 3, 26)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 3, 11)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>concat : { (...items: U[]): T[]; (...items: T[]): T[]; } +>U : U +>T : T +>items : U[] +>U : U +>T : T concat(...items: T[]): T[]; ->concat : { (...items: U[]): T[]; (...items: T[]): T[]; }, Symbol(concat, Decl(implementArrayInterface.ts, 2, 29), Decl(implementArrayInterface.ts, 3, 46)) ->items : T[], Symbol(items, Decl(implementArrayInterface.ts, 4, 11)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>concat : { (...items: U[]): T[]; (...items: T[]): T[]; } +>items : T[] +>T : T +>T : T join(separator?: string): string; ->join : (separator?: string) => string, Symbol(join, Decl(implementArrayInterface.ts, 4, 31)) ->separator : string, Symbol(separator, Decl(implementArrayInterface.ts, 5, 9)) +>join : (separator?: string) => string +>separator : string pop(): T; ->pop : () => T, Symbol(pop, Decl(implementArrayInterface.ts, 5, 37)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>pop : () => T +>T : T push(...items: T[]): number; ->push : (...items: T[]) => number, Symbol(push, Decl(implementArrayInterface.ts, 6, 13)) ->items : T[], Symbol(items, Decl(implementArrayInterface.ts, 7, 9)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>push : (...items: T[]) => number +>items : T[] +>T : T reverse(): T[]; ->reverse : () => T[], Symbol(reverse, Decl(implementArrayInterface.ts, 7, 32)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>reverse : () => T[] +>T : T shift(): T; ->shift : () => T, Symbol(shift, Decl(implementArrayInterface.ts, 8, 19)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>shift : () => T +>T : T slice(start?: number, end?: number): T[]; ->slice : (start?: number, end?: number) => T[], Symbol(slice, Decl(implementArrayInterface.ts, 9, 15)) ->start : number, Symbol(start, Decl(implementArrayInterface.ts, 10, 10)) ->end : number, Symbol(end, Decl(implementArrayInterface.ts, 10, 25)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>slice : (start?: number, end?: number) => T[] +>start : number +>end : number +>T : T sort(compareFn?: (a: T, b: T) => number): T[]; ->sort : (compareFn?: (a: T, b: T) => number) => T[], Symbol(sort, Decl(implementArrayInterface.ts, 10, 45)) ->compareFn : (a: T, b: T) => number, Symbol(compareFn, Decl(implementArrayInterface.ts, 11, 9)) ->a : T, Symbol(a, Decl(implementArrayInterface.ts, 11, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->b : T, Symbol(b, Decl(implementArrayInterface.ts, 11, 27)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>sort : (compareFn?: (a: T, b: T) => number) => T[] +>compareFn : (a: T, b: T) => number +>a : T +>T : T +>b : T +>T : T +>T : T splice(start: number): T[]; ->splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }, Symbol(splice, Decl(implementArrayInterface.ts, 11, 50), Decl(implementArrayInterface.ts, 12, 31)) ->start : number, Symbol(start, Decl(implementArrayInterface.ts, 12, 11)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; } +>start : number +>T : T splice(start: number, deleteCount: number, ...items: T[]): T[]; ->splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; }, Symbol(splice, Decl(implementArrayInterface.ts, 11, 50), Decl(implementArrayInterface.ts, 12, 31)) ->start : number, Symbol(start, Decl(implementArrayInterface.ts, 13, 11)) ->deleteCount : number, Symbol(deleteCount, Decl(implementArrayInterface.ts, 13, 25)) ->items : T[], Symbol(items, Decl(implementArrayInterface.ts, 13, 46)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>splice : { (start: number): T[]; (start: number, deleteCount: number, ...items: T[]): T[]; } +>start : number +>deleteCount : number +>items : T[] +>T : T +>T : T unshift(...items: T[]): number; ->unshift : (...items: T[]) => number, Symbol(unshift, Decl(implementArrayInterface.ts, 13, 67)) ->items : T[], Symbol(items, Decl(implementArrayInterface.ts, 14, 12)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>unshift : (...items: T[]) => number +>items : T[] +>T : T indexOf(searchElement: T, fromIndex?: number): number; ->indexOf : (searchElement: T, fromIndex?: number) => number, Symbol(indexOf, Decl(implementArrayInterface.ts, 14, 35)) ->searchElement : T, Symbol(searchElement, Decl(implementArrayInterface.ts, 16, 12)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->fromIndex : number, Symbol(fromIndex, Decl(implementArrayInterface.ts, 16, 29)) +>indexOf : (searchElement: T, fromIndex?: number) => number +>searchElement : T +>T : T +>fromIndex : number lastIndexOf(searchElement: T, fromIndex?: number): number; ->lastIndexOf : (searchElement: T, fromIndex?: number) => number, Symbol(lastIndexOf, Decl(implementArrayInterface.ts, 16, 58)) ->searchElement : T, Symbol(searchElement, Decl(implementArrayInterface.ts, 17, 16)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->fromIndex : number, Symbol(fromIndex, Decl(implementArrayInterface.ts, 17, 33)) +>lastIndexOf : (searchElement: T, fromIndex?: number) => number +>searchElement : T +>T : T +>fromIndex : number every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; ->every : (callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => boolean, Symbol(every, Decl(implementArrayInterface.ts, 17, 62)) ->callbackfn : (value: T, index: number, array: T[]) => boolean, Symbol(callbackfn, Decl(implementArrayInterface.ts, 18, 10)) ->value : T, Symbol(value, Decl(implementArrayInterface.ts, 18, 23)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->index : number, Symbol(index, Decl(implementArrayInterface.ts, 18, 32)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 18, 47)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->thisArg : any, Symbol(thisArg, Decl(implementArrayInterface.ts, 18, 71)) +>every : (callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => boolean +>callbackfn : (value: T, index: number, array: T[]) => boolean +>value : T +>T : T +>index : number +>array : T[] +>T : T +>thisArg : any some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): boolean; ->some : (callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => boolean, Symbol(some, Decl(implementArrayInterface.ts, 18, 96)) ->callbackfn : (value: T, index: number, array: T[]) => boolean, Symbol(callbackfn, Decl(implementArrayInterface.ts, 19, 9)) ->value : T, Symbol(value, Decl(implementArrayInterface.ts, 19, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->index : number, Symbol(index, Decl(implementArrayInterface.ts, 19, 31)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 19, 46)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->thisArg : any, Symbol(thisArg, Decl(implementArrayInterface.ts, 19, 70)) +>some : (callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => boolean +>callbackfn : (value: T, index: number, array: T[]) => boolean +>value : T +>T : T +>index : number +>array : T[] +>T : T +>thisArg : any forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; ->forEach : (callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any) => void, Symbol(forEach, Decl(implementArrayInterface.ts, 19, 95)) ->callbackfn : (value: T, index: number, array: T[]) => void, Symbol(callbackfn, Decl(implementArrayInterface.ts, 20, 12)) ->value : T, Symbol(value, Decl(implementArrayInterface.ts, 20, 25)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->index : number, Symbol(index, Decl(implementArrayInterface.ts, 20, 34)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 20, 49)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->thisArg : any, Symbol(thisArg, Decl(implementArrayInterface.ts, 20, 70)) +>forEach : (callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any) => void +>callbackfn : (value: T, index: number, array: T[]) => void +>value : T +>T : T +>index : number +>array : T[] +>T : T +>thisArg : any map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; ->map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[], Symbol(map, Decl(implementArrayInterface.ts, 20, 92)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) ->callbackfn : (value: T, index: number, array: T[]) => U, Symbol(callbackfn, Decl(implementArrayInterface.ts, 21, 11)) ->value : T, Symbol(value, Decl(implementArrayInterface.ts, 21, 24)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->index : number, Symbol(index, Decl(implementArrayInterface.ts, 21, 33)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 21, 48)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) ->thisArg : any, Symbol(thisArg, Decl(implementArrayInterface.ts, 21, 66)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 21, 8)) +>map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[] +>U : U +>callbackfn : (value: T, index: number, array: T[]) => U +>value : T +>T : T +>index : number +>array : T[] +>T : T +>U : U +>thisArg : any +>U : U filter(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[]; ->filter : (callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => T[], Symbol(filter, Decl(implementArrayInterface.ts, 21, 87)) ->callbackfn : (value: T, index: number, array: T[]) => boolean, Symbol(callbackfn, Decl(implementArrayInterface.ts, 22, 11)) ->value : T, Symbol(value, Decl(implementArrayInterface.ts, 22, 24)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->index : number, Symbol(index, Decl(implementArrayInterface.ts, 22, 33)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 22, 48)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->thisArg : any, Symbol(thisArg, Decl(implementArrayInterface.ts, 22, 72)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>filter : (callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any) => T[] +>callbackfn : (value: T, index: number, array: T[]) => boolean +>value : T +>T : T +>index : number +>array : T[] +>T : T +>thisArg : any +>T : T reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; ->reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }, Symbol(reduce, Decl(implementArrayInterface.ts, 22, 93), Decl(implementArrayInterface.ts, 23, 120)) ->callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, Symbol(callbackfn, Decl(implementArrayInterface.ts, 23, 11)) ->previousValue : T, Symbol(previousValue, Decl(implementArrayInterface.ts, 23, 24)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->currentValue : T, Symbol(currentValue, Decl(implementArrayInterface.ts, 23, 41)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->currentIndex : number, Symbol(currentIndex, Decl(implementArrayInterface.ts, 23, 58)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 23, 80)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->initialValue : T, Symbol(initialValue, Decl(implementArrayInterface.ts, 23, 98)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T +>previousValue : T +>T : T +>currentValue : T +>T : T +>currentIndex : number +>array : T[] +>T : T +>T : T +>initialValue : T +>T : T +>T : T reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; ->reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }, Symbol(reduce, Decl(implementArrayInterface.ts, 22, 93), Decl(implementArrayInterface.ts, 23, 120)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) ->callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, Symbol(callbackfn, Decl(implementArrayInterface.ts, 24, 14)) ->previousValue : U, Symbol(previousValue, Decl(implementArrayInterface.ts, 24, 27)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) ->currentValue : T, Symbol(currentValue, Decl(implementArrayInterface.ts, 24, 44)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->currentIndex : number, Symbol(currentIndex, Decl(implementArrayInterface.ts, 24, 61)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 24, 83)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) ->initialValue : U, Symbol(initialValue, Decl(implementArrayInterface.ts, 24, 101)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 24, 11)) +>reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>U : U +>callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U +>previousValue : U +>U : U +>currentValue : T +>T : T +>currentIndex : number +>array : T[] +>T : T +>U : U +>initialValue : U +>U : U +>U : U reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; ->reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }, Symbol(reduceRight, Decl(implementArrayInterface.ts, 24, 122), Decl(implementArrayInterface.ts, 25, 125)) ->callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, Symbol(callbackfn, Decl(implementArrayInterface.ts, 25, 16)) ->previousValue : T, Symbol(previousValue, Decl(implementArrayInterface.ts, 25, 29)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->currentValue : T, Symbol(currentValue, Decl(implementArrayInterface.ts, 25, 46)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->currentIndex : number, Symbol(currentIndex, Decl(implementArrayInterface.ts, 25, 63)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 25, 85)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->initialValue : T, Symbol(initialValue, Decl(implementArrayInterface.ts, 25, 103)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T +>previousValue : T +>T : T +>currentValue : T +>T : T +>currentIndex : number +>array : T[] +>T : T +>T : T +>initialValue : T +>T : T +>T : T reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; ->reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; }, Symbol(reduceRight, Decl(implementArrayInterface.ts, 24, 122), Decl(implementArrayInterface.ts, 25, 125)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) ->callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, Symbol(callbackfn, Decl(implementArrayInterface.ts, 26, 19)) ->previousValue : U, Symbol(previousValue, Decl(implementArrayInterface.ts, 26, 32)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) ->currentValue : T, Symbol(currentValue, Decl(implementArrayInterface.ts, 26, 49)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->currentIndex : number, Symbol(currentIndex, Decl(implementArrayInterface.ts, 26, 66)) ->array : T[], Symbol(array, Decl(implementArrayInterface.ts, 26, 88)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) ->initialValue : U, Symbol(initialValue, Decl(implementArrayInterface.ts, 26, 106)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) ->U : U, Symbol(U, Decl(implementArrayInterface.ts, 26, 16)) +>reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } +>U : U +>callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U +>previousValue : U +>U : U +>currentValue : T +>T : T +>currentIndex : number +>array : T[] +>T : T +>U : U +>initialValue : U +>U : U +>U : U length: number; ->length : number, Symbol(length, Decl(implementArrayInterface.ts, 26, 127)) +>length : number [n: number]: T; ->n : number, Symbol(n, Decl(implementArrayInterface.ts, 30, 5)) ->T : T, Symbol(T, Decl(implementArrayInterface.ts, 0, 22)) +>n : number +>T : T } diff --git a/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.symbols b/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.symbols new file mode 100644 index 0000000000000..bf53a92dcd3f0 --- /dev/null +++ b/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/implementInterfaceAnyMemberWithVoid.ts === +interface I { +>I : Symbol(I, Decl(implementInterfaceAnyMemberWithVoid.ts, 0, 0)) + + foo(value: number); +>foo : Symbol(foo, Decl(implementInterfaceAnyMemberWithVoid.ts, 0, 13)) +>value : Symbol(value, Decl(implementInterfaceAnyMemberWithVoid.ts, 1, 8)) +} + +class Bug implements I { +>Bug : Symbol(Bug, Decl(implementInterfaceAnyMemberWithVoid.ts, 2, 1)) +>I : Symbol(I, Decl(implementInterfaceAnyMemberWithVoid.ts, 0, 0)) + + public foo(value: number) { +>foo : Symbol(foo, Decl(implementInterfaceAnyMemberWithVoid.ts, 4, 24)) +>value : Symbol(value, Decl(implementInterfaceAnyMemberWithVoid.ts, 5, 15)) + } +} + diff --git a/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.types b/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.types index 19cf7269318ec..0b7fe6c69d068 100644 --- a/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.types +++ b/tests/baselines/reference/implementInterfaceAnyMemberWithVoid.types @@ -1,19 +1,19 @@ === tests/cases/compiler/implementInterfaceAnyMemberWithVoid.ts === interface I { ->I : I, Symbol(I, Decl(implementInterfaceAnyMemberWithVoid.ts, 0, 0)) +>I : I foo(value: number); ->foo : (value: number) => any, Symbol(foo, Decl(implementInterfaceAnyMemberWithVoid.ts, 0, 13)) ->value : number, Symbol(value, Decl(implementInterfaceAnyMemberWithVoid.ts, 1, 8)) +>foo : (value: number) => any +>value : number } class Bug implements I { ->Bug : Bug, Symbol(Bug, Decl(implementInterfaceAnyMemberWithVoid.ts, 2, 1)) ->I : I, Symbol(I, Decl(implementInterfaceAnyMemberWithVoid.ts, 0, 0)) +>Bug : Bug +>I : I public foo(value: number) { ->foo : (value: number) => void, Symbol(foo, Decl(implementInterfaceAnyMemberWithVoid.ts, 4, 24)) ->value : number, Symbol(value, Decl(implementInterfaceAnyMemberWithVoid.ts, 5, 15)) +>foo : (value: number) => void +>value : number } } diff --git a/tests/baselines/reference/implicitAnyAnyReturningFunction.symbols b/tests/baselines/reference/implicitAnyAnyReturningFunction.symbols new file mode 100644 index 0000000000000..73e91853255bf --- /dev/null +++ b/tests/baselines/reference/implicitAnyAnyReturningFunction.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/implicitAnyAnyReturningFunction.ts === +function A() { +>A : Symbol(A, Decl(implicitAnyAnyReturningFunction.ts, 0, 0)) + + return ""; +} + +function B() { +>B : Symbol(B, Decl(implicitAnyAnyReturningFunction.ts, 2, 1)) + + var someLocal: any = {}; +>someLocal : Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 5, 7)) + + return someLocal; +>someLocal : Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 5, 7)) +} + +class C { +>C : Symbol(C, Decl(implicitAnyAnyReturningFunction.ts, 7, 1)) + + public A() { +>A : Symbol(A, Decl(implicitAnyAnyReturningFunction.ts, 9, 9)) + + return ""; + } + + public B() { +>B : Symbol(B, Decl(implicitAnyAnyReturningFunction.ts, 12, 5)) + + var someLocal: any = {}; +>someLocal : Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 15, 11)) + + return someLocal; +>someLocal : Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 15, 11)) + } +} + diff --git a/tests/baselines/reference/implicitAnyAnyReturningFunction.types b/tests/baselines/reference/implicitAnyAnyReturningFunction.types index 0c4b6a3eb7621..66f9cf49cb03e 100644 --- a/tests/baselines/reference/implicitAnyAnyReturningFunction.types +++ b/tests/baselines/reference/implicitAnyAnyReturningFunction.types @@ -1,6 +1,6 @@ === tests/cases/compiler/implicitAnyAnyReturningFunction.ts === function A() { ->A : () => any, Symbol(A, Decl(implicitAnyAnyReturningFunction.ts, 0, 0)) +>A : () => any return ""; >"" : any @@ -8,21 +8,21 @@ function A() { } function B() { ->B : () => any, Symbol(B, Decl(implicitAnyAnyReturningFunction.ts, 2, 1)) +>B : () => any var someLocal: any = {}; ->someLocal : any, Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 5, 7)) +>someLocal : any >{} : {} return someLocal; ->someLocal : any, Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 5, 7)) +>someLocal : any } class C { ->C : C, Symbol(C, Decl(implicitAnyAnyReturningFunction.ts, 7, 1)) +>C : C public A() { ->A : () => any, Symbol(A, Decl(implicitAnyAnyReturningFunction.ts, 9, 9)) +>A : () => any return ""; >"" : any @@ -30,14 +30,14 @@ class C { } public B() { ->B : () => any, Symbol(B, Decl(implicitAnyAnyReturningFunction.ts, 12, 5)) +>B : () => any var someLocal: any = {}; ->someLocal : any, Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 15, 11)) +>someLocal : any >{} : {} return someLocal; ->someLocal : any, Symbol(someLocal, Decl(implicitAnyAnyReturningFunction.ts, 15, 11)) +>someLocal : any } } diff --git a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.symbols b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.symbols new file mode 100644 index 0000000000000..09d3a4a94302f --- /dev/null +++ b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/implicitAnyDeclareFunctionWithoutFormalType2.ts === +// generates function fn1(): number; +function fn1() { +>fn1 : Symbol(fn1, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 0, 0)) + + var x: number; +>x : Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 2, 7)) + + return x; +>x : Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 2, 7)) +} +// generates function fn2(): any; +function fn2(): any { +>fn2 : Symbol(fn2, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 4, 1)) + + var x: any; +>x : Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 7, 7)) + + return x; +>x : Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 7, 7)) +} +// generates function fn3(); +function fn3() { +>fn3 : Symbol(fn3, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 9, 1)) + + var x: any; +>x : Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 12, 7)) + + return x; +>x : Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 12, 7)) +} + diff --git a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.types b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.types index a957d3d5daee3..9fd971ab8625c 100644 --- a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.types +++ b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType2.types @@ -1,32 +1,32 @@ === tests/cases/compiler/implicitAnyDeclareFunctionWithoutFormalType2.ts === // generates function fn1(): number; function fn1() { ->fn1 : () => number, Symbol(fn1, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 0, 0)) +>fn1 : () => number var x: number; ->x : number, Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 2, 7)) +>x : number return x; ->x : number, Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 2, 7)) +>x : number } // generates function fn2(): any; function fn2(): any { ->fn2 : () => any, Symbol(fn2, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 4, 1)) +>fn2 : () => any var x: any; ->x : any, Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 7, 7)) +>x : any return x; ->x : any, Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 7, 7)) +>x : any } // generates function fn3(); function fn3() { ->fn3 : () => any, Symbol(fn3, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 9, 1)) +>fn3 : () => any var x: any; ->x : any, Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 12, 7)) +>x : any return x; ->x : any, Symbol(x, Decl(implicitAnyDeclareFunctionWithoutFormalType2.ts, 12, 7)) +>x : any } diff --git a/tests/baselines/reference/implicitAnyGenerics.symbols b/tests/baselines/reference/implicitAnyGenerics.symbols new file mode 100644 index 0000000000000..865f48fdd59ec --- /dev/null +++ b/tests/baselines/reference/implicitAnyGenerics.symbols @@ -0,0 +1,71 @@ +=== tests/cases/compiler/implicitAnyGenerics.ts === + +class C { +>C : Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>T : Symbol(T, Decl(implicitAnyGenerics.ts, 1, 8)) + + x: T; +>x : Symbol(x, Decl(implicitAnyGenerics.ts, 1, 12)) +>T : Symbol(T, Decl(implicitAnyGenerics.ts, 1, 8)) +} + +var c = new C(); +>c : Symbol(c, Decl(implicitAnyGenerics.ts, 5, 3)) +>C : Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) + +var c2 = new C(); +>c2 : Symbol(c2, Decl(implicitAnyGenerics.ts, 6, 3)) +>C : Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) + +var c3 = new C(); +>c3 : Symbol(c3, Decl(implicitAnyGenerics.ts, 7, 3)) +>C : Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) + +var c4: C = new C(); +>c4 : Symbol(c4, Decl(implicitAnyGenerics.ts, 8, 3)) +>C : Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>C : Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) + +class D { +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>T : Symbol(T, Decl(implicitAnyGenerics.ts, 10, 8)) + + constructor(x: T) { } +>x : Symbol(x, Decl(implicitAnyGenerics.ts, 11, 16)) +>T : Symbol(T, Decl(implicitAnyGenerics.ts, 10, 8)) +} + +var d = new D(null); +>d : Symbol(d, Decl(implicitAnyGenerics.ts, 14, 3)) +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) + +var d2 = new D(1); +>d2 : Symbol(d2, Decl(implicitAnyGenerics.ts, 15, 3)) +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) + +var d3 = new D(1); +>d3 : Symbol(d3, Decl(implicitAnyGenerics.ts, 16, 3)) +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) + +var d4 = new D(1); +>d4 : Symbol(d4, Decl(implicitAnyGenerics.ts, 17, 3)) +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) + +var d5: D = new D(null); +>d5 : Symbol(d5, Decl(implicitAnyGenerics.ts, 18, 3)) +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>D : Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) + +function foo(): T { return null; }; +>foo : Symbol(foo, Decl(implicitAnyGenerics.ts, 18, 29)) +>T : Symbol(T, Decl(implicitAnyGenerics.ts, 20, 13)) +>T : Symbol(T, Decl(implicitAnyGenerics.ts, 20, 13)) + +foo() +>foo : Symbol(foo, Decl(implicitAnyGenerics.ts, 18, 29)) + +foo(); +>foo : Symbol(foo, Decl(implicitAnyGenerics.ts, 18, 29)) + + + diff --git a/tests/baselines/reference/implicitAnyGenerics.types b/tests/baselines/reference/implicitAnyGenerics.types index 0f0abe3134ecc..e335c958fe984 100644 --- a/tests/baselines/reference/implicitAnyGenerics.types +++ b/tests/baselines/reference/implicitAnyGenerics.types @@ -1,89 +1,89 @@ === tests/cases/compiler/implicitAnyGenerics.ts === class C { ->C : C, Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) ->T : T, Symbol(T, Decl(implicitAnyGenerics.ts, 1, 8)) +>C : C +>T : T x: T; ->x : T, Symbol(x, Decl(implicitAnyGenerics.ts, 1, 12)) ->T : T, Symbol(T, Decl(implicitAnyGenerics.ts, 1, 8)) +>x : T +>T : T } var c = new C(); ->c : C<{}>, Symbol(c, Decl(implicitAnyGenerics.ts, 5, 3)) +>c : C<{}> >new C() : C<{}> ->C : typeof C, Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>C : typeof C var c2 = new C(); ->c2 : C, Symbol(c2, Decl(implicitAnyGenerics.ts, 6, 3)) +>c2 : C >new C() : C ->C : typeof C, Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>C : typeof C var c3 = new C(); ->c3 : C, Symbol(c3, Decl(implicitAnyGenerics.ts, 7, 3)) +>c3 : C >new C() : C ->C : typeof C, Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>C : typeof C var c4: C = new C(); ->c4 : C, Symbol(c4, Decl(implicitAnyGenerics.ts, 8, 3)) ->C : C, Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>c4 : C +>C : C >new C() : C<{}> ->C : typeof C, Symbol(C, Decl(implicitAnyGenerics.ts, 0, 0)) +>C : typeof C class D { ->D : D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) ->T : T, Symbol(T, Decl(implicitAnyGenerics.ts, 10, 8)) +>D : D +>T : T constructor(x: T) { } ->x : T, Symbol(x, Decl(implicitAnyGenerics.ts, 11, 16)) ->T : T, Symbol(T, Decl(implicitAnyGenerics.ts, 10, 8)) +>x : T +>T : T } var d = new D(null); ->d : D, Symbol(d, Decl(implicitAnyGenerics.ts, 14, 3)) +>d : D >new D(null) : D ->D : typeof D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>D : typeof D >null : null var d2 = new D(1); ->d2 : D, Symbol(d2, Decl(implicitAnyGenerics.ts, 15, 3)) +>d2 : D >new D(1) : D ->D : typeof D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>D : typeof D >1 : number var d3 = new D(1); ->d3 : D, Symbol(d3, Decl(implicitAnyGenerics.ts, 16, 3)) +>d3 : D >new D(1) : D ->D : typeof D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>D : typeof D >1 : number var d4 = new D(1); ->d4 : D, Symbol(d4, Decl(implicitAnyGenerics.ts, 17, 3)) +>d4 : D >new D(1) : D ->D : typeof D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>D : typeof D >1 : any >1 : number var d5: D = new D(null); ->d5 : D, Symbol(d5, Decl(implicitAnyGenerics.ts, 18, 3)) ->D : D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>d5 : D +>D : D >new D(null) : D ->D : typeof D, Symbol(D, Decl(implicitAnyGenerics.ts, 8, 25)) +>D : typeof D >null : null function foo(): T { return null; }; ->foo : () => T, Symbol(foo, Decl(implicitAnyGenerics.ts, 18, 29)) ->T : T, Symbol(T, Decl(implicitAnyGenerics.ts, 20, 13)) ->T : T, Symbol(T, Decl(implicitAnyGenerics.ts, 20, 13)) +>foo : () => T +>T : T +>T : T >null : null foo() >foo() : {} ->foo : () => T, Symbol(foo, Decl(implicitAnyGenerics.ts, 18, 29)) +>foo : () => T foo(); >foo() : any ->foo : () => T, Symbol(foo, Decl(implicitAnyGenerics.ts, 18, 29)) +>foo : () => T diff --git a/tests/baselines/reference/implicitAnyInCatch.symbols b/tests/baselines/reference/implicitAnyInCatch.symbols new file mode 100644 index 0000000000000..e576593da8224 --- /dev/null +++ b/tests/baselines/reference/implicitAnyInCatch.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/implicitAnyInCatch.ts === +// this should not be an error +try { } catch (error) { +>error : Symbol(error, Decl(implicitAnyInCatch.ts, 1, 15)) + + if (error.number === -2147024809) { } +>error : Symbol(error, Decl(implicitAnyInCatch.ts, 1, 15)) +} +for (var key in this) { } +>key : Symbol(key, Decl(implicitAnyInCatch.ts, 4, 8)) + +class C { +>C : Symbol(C, Decl(implicitAnyInCatch.ts, 4, 25)) + + public temp() { +>temp : Symbol(temp, Decl(implicitAnyInCatch.ts, 6, 9)) + + for (var x in this) { +>x : Symbol(x, Decl(implicitAnyInCatch.ts, 8, 16)) +>this : Symbol(C, Decl(implicitAnyInCatch.ts, 4, 25)) + } + } +} + + diff --git a/tests/baselines/reference/implicitAnyInCatch.types b/tests/baselines/reference/implicitAnyInCatch.types index c0e689cef1214..b0fbd4e7f1267 100644 --- a/tests/baselines/reference/implicitAnyInCatch.types +++ b/tests/baselines/reference/implicitAnyInCatch.types @@ -1,29 +1,29 @@ === tests/cases/compiler/implicitAnyInCatch.ts === // this should not be an error try { } catch (error) { ->error : any, Symbol(error, Decl(implicitAnyInCatch.ts, 1, 15)) +>error : any if (error.number === -2147024809) { } >error.number === -2147024809 : boolean >error.number : any ->error : any, Symbol(error, Decl(implicitAnyInCatch.ts, 1, 15)) +>error : any >number : any >-2147024809 : number >2147024809 : number } for (var key in this) { } ->key : any, Symbol(key, Decl(implicitAnyInCatch.ts, 4, 8)) +>key : any >this : any class C { ->C : C, Symbol(C, Decl(implicitAnyInCatch.ts, 4, 25)) +>C : C public temp() { ->temp : () => void, Symbol(temp, Decl(implicitAnyInCatch.ts, 6, 9)) +>temp : () => void for (var x in this) { ->x : any, Symbol(x, Decl(implicitAnyInCatch.ts, 8, 16)) ->this : C, Symbol(C, Decl(implicitAnyInCatch.ts, 4, 25)) +>x : any +>this : C } } } diff --git a/tests/baselines/reference/importAliasIdentifiers.symbols b/tests/baselines/reference/importAliasIdentifiers.symbols new file mode 100644 index 0000000000000..3b2ba0ea46abf --- /dev/null +++ b/tests/baselines/reference/importAliasIdentifiers.symbols @@ -0,0 +1,120 @@ +=== tests/cases/conformance/internalModules/importDeclarations/importAliasIdentifiers.ts === +module moduleA { +>moduleA : Symbol(moduleA, Decl(importAliasIdentifiers.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 0, 16)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 2, 20)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 2, 37)) + } +} + +import alias = moduleA; +>alias : Symbol(alias, Decl(importAliasIdentifiers.ts, 4, 1)) +>moduleA : Symbol(moduleA, Decl(importAliasIdentifiers.ts, 0, 0)) + +var p: alias.Point; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>alias : Symbol(alias, Decl(importAliasIdentifiers.ts, 4, 1)) +>Point : Symbol(alias.Point, Decl(importAliasIdentifiers.ts, 0, 16)) + +var p: moduleA.Point; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>moduleA : Symbol(moduleA, Decl(importAliasIdentifiers.ts, 0, 0)) +>Point : Symbol(alias.Point, Decl(importAliasIdentifiers.ts, 0, 16)) + +var p: { x: number; y: number; }; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 10, 8)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 10, 19)) + +class clodule { +>clodule : Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) + + name: string; +>name : Symbol(name, Decl(importAliasIdentifiers.ts, 12, 15)) +} + +module clodule { +>clodule : Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) + + export interface Point { +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 16, 16)) + + x: number; y: number; +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 17, 28)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 18, 18)) + } + var Point: Point = { x: 0, y: 0 }; +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 16, 16), Decl(importAliasIdentifiers.ts, 20, 7)) +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 16, 16)) +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 20, 24)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 20, 30)) +} + +import clolias = clodule; +>clolias : Symbol(clolias, Decl(importAliasIdentifiers.ts, 21, 1)) +>clodule : Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) + +var p: clolias.Point; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>clolias : Symbol(clolias, Decl(importAliasIdentifiers.ts, 21, 1)) +>Point : Symbol(clolias.Point, Decl(importAliasIdentifiers.ts, 16, 16)) + +var p: clodule.Point; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>clodule : Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) +>Point : Symbol(clolias.Point, Decl(importAliasIdentifiers.ts, 16, 16)) + +var p: { x: number; y: number; }; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 27, 8)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 27, 19)) + + +function fundule() { +>fundule : Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) + + return { x: 0, y: 0 }; +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 31, 12)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 31, 18)) +} + +module fundule { +>fundule : Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) + + export interface Point { +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 34, 16)) + + x: number; y: number; +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 35, 28)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 36, 18)) + } + var Point: Point = { x: 0, y: 0 }; +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 34, 16), Decl(importAliasIdentifiers.ts, 38, 7)) +>Point : Symbol(Point, Decl(importAliasIdentifiers.ts, 34, 16)) +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 38, 24)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 38, 30)) +} + +import funlias = fundule; +>funlias : Symbol(funlias, Decl(importAliasIdentifiers.ts, 39, 1)) +>fundule : Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) + +var p: funlias.Point; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>funlias : Symbol(funlias, Decl(importAliasIdentifiers.ts, 39, 1)) +>Point : Symbol(funlias.Point, Decl(importAliasIdentifiers.ts, 34, 16)) + +var p: fundule.Point; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>fundule : Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) +>Point : Symbol(funlias.Point, Decl(importAliasIdentifiers.ts, 34, 16)) + +var p: { x: number; y: number; }; +>p : Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) +>x : Symbol(x, Decl(importAliasIdentifiers.ts, 45, 8)) +>y : Symbol(y, Decl(importAliasIdentifiers.ts, 45, 19)) + diff --git a/tests/baselines/reference/importAliasIdentifiers.types b/tests/baselines/reference/importAliasIdentifiers.types index 30be7b2e8d78d..6746a5b3af7cb 100644 --- a/tests/baselines/reference/importAliasIdentifiers.types +++ b/tests/baselines/reference/importAliasIdentifiers.types @@ -1,129 +1,129 @@ === tests/cases/conformance/internalModules/importDeclarations/importAliasIdentifiers.ts === module moduleA { ->moduleA : typeof moduleA, Symbol(moduleA, Decl(importAliasIdentifiers.ts, 0, 0)) +>moduleA : typeof moduleA export class Point { ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 0, 16)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 2, 20)) ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 2, 37)) +>x : number +>y : number } } import alias = moduleA; ->alias : typeof moduleA, Symbol(alias, Decl(importAliasIdentifiers.ts, 4, 1)) ->moduleA : typeof moduleA, Symbol(moduleA, Decl(importAliasIdentifiers.ts, 0, 0)) +>alias : typeof moduleA +>moduleA : typeof moduleA var p: alias.Point; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->alias : any, Symbol(alias, Decl(importAliasIdentifiers.ts, 4, 1)) ->Point : alias.Point, Symbol(alias.Point, Decl(importAliasIdentifiers.ts, 0, 16)) +>p : alias.Point +>alias : any +>Point : alias.Point var p: moduleA.Point; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->moduleA : any, Symbol(moduleA, Decl(importAliasIdentifiers.ts, 0, 0)) ->Point : alias.Point, Symbol(alias.Point, Decl(importAliasIdentifiers.ts, 0, 16)) +>p : alias.Point +>moduleA : any +>Point : alias.Point var p: { x: number; y: number; }; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 10, 8)) ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 10, 19)) +>p : alias.Point +>x : number +>y : number class clodule { ->clodule : clodule, Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) +>clodule : clodule name: string; ->name : string, Symbol(name, Decl(importAliasIdentifiers.ts, 12, 15)) +>name : string } module clodule { ->clodule : typeof clodule, Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) +>clodule : typeof clodule export interface Point { ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 16, 16)) +>Point : Point x: number; y: number; ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 17, 28)) ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 18, 18)) +>x : number +>y : number } var Point: Point = { x: 0, y: 0 }; ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 16, 16), Decl(importAliasIdentifiers.ts, 20, 7)) ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 16, 16)) +>Point : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 20, 24)) +>x : number >0 : number ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 20, 30)) +>y : number >0 : number } import clolias = clodule; ->clolias : typeof clodule, Symbol(clolias, Decl(importAliasIdentifiers.ts, 21, 1)) ->clodule : clodule, Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) +>clolias : typeof clodule +>clodule : clodule var p: clolias.Point; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->clolias : any, Symbol(clolias, Decl(importAliasIdentifiers.ts, 21, 1)) ->Point : clolias.Point, Symbol(clolias.Point, Decl(importAliasIdentifiers.ts, 16, 16)) +>p : alias.Point +>clolias : any +>Point : clolias.Point var p: clodule.Point; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->clodule : any, Symbol(clodule, Decl(importAliasIdentifiers.ts, 10, 33), Decl(importAliasIdentifiers.ts, 14, 1)) ->Point : clolias.Point, Symbol(clolias.Point, Decl(importAliasIdentifiers.ts, 16, 16)) +>p : alias.Point +>clodule : any +>Point : clolias.Point var p: { x: number; y: number; }; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 27, 8)) ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 27, 19)) +>p : alias.Point +>x : number +>y : number function fundule() { ->fundule : typeof fundule, Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) +>fundule : typeof fundule return { x: 0, y: 0 }; >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 31, 12)) +>x : number >0 : number ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 31, 18)) +>y : number >0 : number } module fundule { ->fundule : typeof fundule, Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) +>fundule : typeof fundule export interface Point { ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 34, 16)) +>Point : Point x: number; y: number; ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 35, 28)) ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 36, 18)) +>x : number +>y : number } var Point: Point = { x: 0, y: 0 }; ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 34, 16), Decl(importAliasIdentifiers.ts, 38, 7)) ->Point : Point, Symbol(Point, Decl(importAliasIdentifiers.ts, 34, 16)) +>Point : Point +>Point : Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 38, 24)) +>x : number >0 : number ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 38, 30)) +>y : number >0 : number } import funlias = fundule; ->funlias : typeof fundule, Symbol(funlias, Decl(importAliasIdentifiers.ts, 39, 1)) ->fundule : typeof fundule, Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) +>funlias : typeof fundule +>fundule : typeof fundule var p: funlias.Point; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->funlias : any, Symbol(funlias, Decl(importAliasIdentifiers.ts, 39, 1)) ->Point : funlias.Point, Symbol(funlias.Point, Decl(importAliasIdentifiers.ts, 34, 16)) +>p : alias.Point +>funlias : any +>Point : funlias.Point var p: fundule.Point; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->fundule : any, Symbol(fundule, Decl(importAliasIdentifiers.ts, 27, 33), Decl(importAliasIdentifiers.ts, 32, 1)) ->Point : funlias.Point, Symbol(funlias.Point, Decl(importAliasIdentifiers.ts, 34, 16)) +>p : alias.Point +>fundule : any +>Point : funlias.Point var p: { x: number; y: number; }; ->p : alias.Point, Symbol(p, Decl(importAliasIdentifiers.ts, 8, 3), Decl(importAliasIdentifiers.ts, 9, 3), Decl(importAliasIdentifiers.ts, 10, 3), Decl(importAliasIdentifiers.ts, 25, 3), Decl(importAliasIdentifiers.ts, 26, 3), Decl(importAliasIdentifiers.ts, 27, 3), Decl(importAliasIdentifiers.ts, 43, 3), Decl(importAliasIdentifiers.ts, 44, 3), Decl(importAliasIdentifiers.ts, 45, 3)) ->x : number, Symbol(x, Decl(importAliasIdentifiers.ts, 45, 8)) ->y : number, Symbol(y, Decl(importAliasIdentifiers.ts, 45, 19)) +>p : alias.Point +>x : number +>y : number diff --git a/tests/baselines/reference/importAliasWithDottedName.symbols b/tests/baselines/reference/importAliasWithDottedName.symbols new file mode 100644 index 0000000000000..886bfdf2fce9f --- /dev/null +++ b/tests/baselines/reference/importAliasWithDottedName.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/importAliasWithDottedName.ts === +module M { +>M : Symbol(M, Decl(importAliasWithDottedName.ts, 0, 0)) + + export var x = 1; +>x : Symbol(x, Decl(importAliasWithDottedName.ts, 1, 14)) + + export module N { +>N : Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) + + export var y = 2; +>y : Symbol(y, Decl(importAliasWithDottedName.ts, 3, 18)) + } +} + +module A { +>A : Symbol(A, Decl(importAliasWithDottedName.ts, 5, 1)) + + import N = M.N; +>N : Symbol(N, Decl(importAliasWithDottedName.ts, 7, 10)) +>M : Symbol(M, Decl(importAliasWithDottedName.ts, 0, 0)) +>N : Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) + + var r = N.y; +>r : Symbol(r, Decl(importAliasWithDottedName.ts, 9, 7)) +>N.y : Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) +>N : Symbol(N, Decl(importAliasWithDottedName.ts, 7, 10)) +>y : Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) + + var r2 = M.N.y; +>r2 : Symbol(r2, Decl(importAliasWithDottedName.ts, 10, 7)) +>M.N.y : Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) +>M.N : Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) +>M : Symbol(M, Decl(importAliasWithDottedName.ts, 0, 0)) +>N : Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) +>y : Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) +} diff --git a/tests/baselines/reference/importAliasWithDottedName.types b/tests/baselines/reference/importAliasWithDottedName.types index db7015211e3a8..24ec5d1b0bb3b 100644 --- a/tests/baselines/reference/importAliasWithDottedName.types +++ b/tests/baselines/reference/importAliasWithDottedName.types @@ -1,39 +1,39 @@ === tests/cases/compiler/importAliasWithDottedName.ts === module M { ->M : typeof M, Symbol(M, Decl(importAliasWithDottedName.ts, 0, 0)) +>M : typeof M export var x = 1; ->x : number, Symbol(x, Decl(importAliasWithDottedName.ts, 1, 14)) +>x : number >1 : number export module N { ->N : typeof N, Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) +>N : typeof N export var y = 2; ->y : number, Symbol(y, Decl(importAliasWithDottedName.ts, 3, 18)) +>y : number >2 : number } } module A { ->A : typeof A, Symbol(A, Decl(importAliasWithDottedName.ts, 5, 1)) +>A : typeof A import N = M.N; ->N : typeof N, Symbol(N, Decl(importAliasWithDottedName.ts, 7, 10)) ->M : typeof M, Symbol(M, Decl(importAliasWithDottedName.ts, 0, 0)) ->N : typeof N, Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) +>N : typeof N +>M : typeof M +>N : typeof N var r = N.y; ->r : number, Symbol(r, Decl(importAliasWithDottedName.ts, 9, 7)) ->N.y : number, Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) ->N : typeof N, Symbol(N, Decl(importAliasWithDottedName.ts, 7, 10)) ->y : number, Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) +>r : number +>N.y : number +>N : typeof N +>y : number var r2 = M.N.y; ->r2 : number, Symbol(r2, Decl(importAliasWithDottedName.ts, 10, 7)) ->M.N.y : number, Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) ->M.N : typeof N, Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) ->M : typeof M, Symbol(M, Decl(importAliasWithDottedName.ts, 0, 0)) ->N : typeof N, Symbol(N, Decl(importAliasWithDottedName.ts, 1, 21)) ->y : number, Symbol(N.y, Decl(importAliasWithDottedName.ts, 3, 18)) +>r2 : number +>M.N.y : number +>M.N : typeof N +>M : typeof M +>N : typeof N +>y : number } diff --git a/tests/baselines/reference/importAndVariableDeclarationConflict2.symbols b/tests/baselines/reference/importAndVariableDeclarationConflict2.symbols new file mode 100644 index 0000000000000..570bb5e2b9811 --- /dev/null +++ b/tests/baselines/reference/importAndVariableDeclarationConflict2.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/importAndVariableDeclarationConflict2.ts === +module m { +>m : Symbol(m, Decl(importAndVariableDeclarationConflict2.ts, 0, 0)) + + export var m = ''; +>m : Symbol(m, Decl(importAndVariableDeclarationConflict2.ts, 1, 12)) +} + +import x = m.m; +>x : Symbol(x, Decl(importAndVariableDeclarationConflict2.ts, 2, 1)) +>m : Symbol(m, Decl(importAndVariableDeclarationConflict2.ts, 0, 0)) +>m : Symbol(x, Decl(importAndVariableDeclarationConflict2.ts, 1, 12)) + +class C { +>C : Symbol(C, Decl(importAndVariableDeclarationConflict2.ts, 4, 15)) + + public foo() { +>foo : Symbol(foo, Decl(importAndVariableDeclarationConflict2.ts, 6, 9)) + + var x = ''; +>x : Symbol(x, Decl(importAndVariableDeclarationConflict2.ts, 8, 7)) + } +} diff --git a/tests/baselines/reference/importAndVariableDeclarationConflict2.types b/tests/baselines/reference/importAndVariableDeclarationConflict2.types index dd0c4661346a4..eafc7be6deb50 100644 --- a/tests/baselines/reference/importAndVariableDeclarationConflict2.types +++ b/tests/baselines/reference/importAndVariableDeclarationConflict2.types @@ -1,25 +1,25 @@ === tests/cases/compiler/importAndVariableDeclarationConflict2.ts === module m { ->m : typeof m, Symbol(m, Decl(importAndVariableDeclarationConflict2.ts, 0, 0)) +>m : typeof m export var m = ''; ->m : string, Symbol(m, Decl(importAndVariableDeclarationConflict2.ts, 1, 12)) +>m : string >'' : string } import x = m.m; ->x : string, Symbol(x, Decl(importAndVariableDeclarationConflict2.ts, 2, 1)) ->m : typeof m, Symbol(m, Decl(importAndVariableDeclarationConflict2.ts, 0, 0)) ->m : string, Symbol(x, Decl(importAndVariableDeclarationConflict2.ts, 1, 12)) +>x : string +>m : typeof m +>m : string class C { ->C : C, Symbol(C, Decl(importAndVariableDeclarationConflict2.ts, 4, 15)) +>C : C public foo() { ->foo : () => void, Symbol(foo, Decl(importAndVariableDeclarationConflict2.ts, 6, 9)) +>foo : () => void var x = ''; ->x : string, Symbol(x, Decl(importAndVariableDeclarationConflict2.ts, 8, 7)) +>x : string >'' : string } } diff --git a/tests/baselines/reference/importDecl.symbols b/tests/baselines/reference/importDecl.symbols new file mode 100644 index 0000000000000..2341101b672e7 --- /dev/null +++ b/tests/baselines/reference/importDecl.symbols @@ -0,0 +1,220 @@ +=== tests/cases/compiler/importDecl_1.ts === +/// +/// +/// +/// +/// +import m4 = require("importDecl_require"); // Emit used +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) + +export var x4 = m4.x; +>x4 : Symbol(x4, Decl(importDecl_1.ts, 6, 10)) +>m4.x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) + +export var d4 = m4.d; +>d4 : Symbol(d4, Decl(importDecl_1.ts, 7, 10)) +>m4.d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) + +export var f4 = m4.foo(); +>f4 : Symbol(f4, Decl(importDecl_1.ts, 8, 10)) +>m4.foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) + +export module m1 { +>m1 : Symbol(m1, Decl(importDecl_1.ts, 8, 25)) + + export var x2 = m4.x; +>x2 : Symbol(x2, Decl(importDecl_1.ts, 11, 14)) +>m4.x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) + + export var d2 = m4.d; +>d2 : Symbol(d2, Decl(importDecl_1.ts, 12, 14)) +>m4.d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) + + export var f2 = m4.foo(); +>f2 : Symbol(f2, Decl(importDecl_1.ts, 13, 14)) +>m4.foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) + + var x3 = m4.x; +>x3 : Symbol(x3, Decl(importDecl_1.ts, 15, 7)) +>m4.x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) + + var d3 = m4.d; +>d3 : Symbol(d3, Decl(importDecl_1.ts, 16, 7)) +>m4.d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) + + var f3 = m4.foo(); +>f3 : Symbol(f3, Decl(importDecl_1.ts, 17, 7)) +>m4.foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>m4 : Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +} + +//Emit global only usage +import glo_m4 = require("importDecl_require1"); +>glo_m4 : Symbol(glo_m4, Decl(importDecl_1.ts, 18, 1)) + +export var useGlo_m4_d4 = glo_m4.d; +>useGlo_m4_d4 : Symbol(useGlo_m4_d4, Decl(importDecl_1.ts, 22, 10)) +>glo_m4.d : Symbol(glo_m4.d, Decl(importDecl_require1.ts, 0, 0)) +>glo_m4 : Symbol(glo_m4, Decl(importDecl_1.ts, 18, 1)) +>d : Symbol(glo_m4.d, Decl(importDecl_require1.ts, 0, 0)) + +export var useGlo_m4_f4 = glo_m4.foo(); +>useGlo_m4_f4 : Symbol(useGlo_m4_f4, Decl(importDecl_1.ts, 23, 10)) +>glo_m4.foo : Symbol(glo_m4.foo, Decl(importDecl_require1.ts, 3, 9)) +>glo_m4 : Symbol(glo_m4, Decl(importDecl_1.ts, 18, 1)) +>foo : Symbol(glo_m4.foo, Decl(importDecl_require1.ts, 3, 9)) + +//Emit even when used just in function type +import fncOnly_m4 = require("importDecl_require2"); +>fncOnly_m4 : Symbol(fncOnly_m4, Decl(importDecl_1.ts, 23, 39)) + +export var useFncOnly_m4_f4 = fncOnly_m4.foo(); +>useFncOnly_m4_f4 : Symbol(useFncOnly_m4_f4, Decl(importDecl_1.ts, 27, 10)) +>fncOnly_m4.foo : Symbol(fncOnly_m4.foo, Decl(importDecl_require2.ts, 3, 16)) +>fncOnly_m4 : Symbol(fncOnly_m4, Decl(importDecl_1.ts, 23, 39)) +>foo : Symbol(fncOnly_m4.foo, Decl(importDecl_require2.ts, 3, 16)) + +// only used privately no need to emit +import private_m4 = require("importDecl_require3"); +>private_m4 : Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) + +export module usePrivate_m4_m1 { +>usePrivate_m4_m1 : Symbol(usePrivate_m4_m1, Decl(importDecl_1.ts, 30, 51)) + + var x3 = private_m4.x; +>x3 : Symbol(x3, Decl(importDecl_1.ts, 32, 7)) +>private_m4.x : Symbol(private_m4.x, Decl(importDecl_require3.ts, 3, 10)) +>private_m4 : Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) +>x : Symbol(private_m4.x, Decl(importDecl_require3.ts, 3, 10)) + + var d3 = private_m4.d; +>d3 : Symbol(d3, Decl(importDecl_1.ts, 33, 7)) +>private_m4.d : Symbol(private_m4.d, Decl(importDecl_require3.ts, 0, 0)) +>private_m4 : Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) +>d : Symbol(private_m4.d, Decl(importDecl_require3.ts, 0, 0)) + + var f3 = private_m4.foo(); +>f3 : Symbol(f3, Decl(importDecl_1.ts, 34, 7)) +>private_m4.foo : Symbol(private_m4.foo, Decl(importDecl_require3.ts, 3, 16)) +>private_m4 : Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) +>foo : Symbol(private_m4.foo, Decl(importDecl_require3.ts, 3, 16)) +} + +// Do not emit unused import +import m5 = require("importDecl_require4"); +>m5 : Symbol(m5, Decl(importDecl_1.ts, 35, 1)) + +export var d = m5.foo2(); +>d : Symbol(d, Decl(importDecl_1.ts, 39, 10)) +>m5.foo2 : Symbol(m5.foo2, Decl(importDecl_require4.ts, 0, 42)) +>m5 : Symbol(m5, Decl(importDecl_1.ts, 35, 1)) +>foo2 : Symbol(m5.foo2, Decl(importDecl_require4.ts, 0, 42)) + +// Do not emit multiple used import statements +import multiImport_m4 = require("importDecl_require"); // Emit used +>multiImport_m4 : Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) + +export var useMultiImport_m4_x4 = multiImport_m4.x; +>useMultiImport_m4_x4 : Symbol(useMultiImport_m4_x4, Decl(importDecl_1.ts, 43, 10)) +>multiImport_m4.x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>multiImport_m4 : Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) +>x : Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) + +export var useMultiImport_m4_d4 = multiImport_m4.d; +>useMultiImport_m4_d4 : Symbol(useMultiImport_m4_d4, Decl(importDecl_1.ts, 44, 10)) +>multiImport_m4.d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>multiImport_m4 : Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) +>d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) + +export var useMultiImport_m4_f4 = multiImport_m4.foo(); +>useMultiImport_m4_f4 : Symbol(useMultiImport_m4_f4, Decl(importDecl_1.ts, 45, 10)) +>multiImport_m4.foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>multiImport_m4 : Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) +>foo : Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) + +=== tests/cases/compiler/importDecl_require.ts === +export class d { +>d : Symbol(d, Decl(importDecl_require.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(importDecl_require.ts, 0, 16)) +} +export var x: d; +>x : Symbol(x, Decl(importDecl_require.ts, 3, 10)) +>d : Symbol(d, Decl(importDecl_require.ts, 0, 0)) + +export function foo(): d { return null; } +>foo : Symbol(foo, Decl(importDecl_require.ts, 3, 16)) +>d : Symbol(d, Decl(importDecl_require.ts, 0, 0)) + +=== tests/cases/compiler/importDecl_require1.ts === +export class d { +>d : Symbol(d, Decl(importDecl_require1.ts, 0, 0)) + + bar: string; +>bar : Symbol(bar, Decl(importDecl_require1.ts, 0, 16)) +} +var x: d; +>x : Symbol(x, Decl(importDecl_require1.ts, 3, 3)) +>d : Symbol(d, Decl(importDecl_require1.ts, 0, 0)) + +export function foo(): d { return null; } +>foo : Symbol(foo, Decl(importDecl_require1.ts, 3, 9)) +>d : Symbol(d, Decl(importDecl_require1.ts, 0, 0)) + +=== tests/cases/compiler/importDecl_require2.ts === +export class d { +>d : Symbol(d, Decl(importDecl_require2.ts, 0, 0)) + + baz: string; +>baz : Symbol(baz, Decl(importDecl_require2.ts, 0, 16)) +} +export var x: d; +>x : Symbol(x, Decl(importDecl_require2.ts, 3, 10)) +>d : Symbol(d, Decl(importDecl_require2.ts, 0, 0)) + +export function foo(): d { return null; } +>foo : Symbol(foo, Decl(importDecl_require2.ts, 3, 16)) +>d : Symbol(d, Decl(importDecl_require2.ts, 0, 0)) + +=== tests/cases/compiler/importDecl_require3.ts === +export class d { +>d : Symbol(d, Decl(importDecl_require3.ts, 0, 0)) + + bing: string; +>bing : Symbol(bing, Decl(importDecl_require3.ts, 0, 16)) +} +export var x: d; +>x : Symbol(x, Decl(importDecl_require3.ts, 3, 10)) +>d : Symbol(d, Decl(importDecl_require3.ts, 0, 0)) + +export function foo(): d { return null; } +>foo : Symbol(foo, Decl(importDecl_require3.ts, 3, 16)) +>d : Symbol(d, Decl(importDecl_require3.ts, 0, 0)) + +=== tests/cases/compiler/importDecl_require4.ts === +import m4 = require("importDecl_require"); +>m4 : Symbol(m4, Decl(importDecl_require4.ts, 0, 0)) + +export function foo2(): m4.d { return null; } +>foo2 : Symbol(foo2, Decl(importDecl_require4.ts, 0, 42)) +>m4 : Symbol(m4, Decl(importDecl_require4.ts, 0, 0)) +>d : Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) + diff --git a/tests/baselines/reference/importDecl.types b/tests/baselines/reference/importDecl.types index 54e4b3c2b0981..58a56281bae47 100644 --- a/tests/baselines/reference/importDecl.types +++ b/tests/baselines/reference/importDecl.types @@ -5,229 +5,229 @@ /// /// import m4 = require("importDecl_require"); // Emit used ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) +>m4 : typeof m4 export var x4 = m4.x; ->x4 : m4.d, Symbol(x4, Decl(importDecl_1.ts, 6, 10)) ->m4.x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>x4 : m4.d +>m4.x : m4.d +>m4 : typeof m4 +>x : m4.d export var d4 = m4.d; ->d4 : typeof m4.d, Symbol(d4, Decl(importDecl_1.ts, 7, 10)) ->m4.d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>d4 : typeof m4.d +>m4.d : typeof m4.d +>m4 : typeof m4 +>d : typeof m4.d export var f4 = m4.foo(); ->f4 : m4.d, Symbol(f4, Decl(importDecl_1.ts, 8, 10)) +>f4 : m4.d >m4.foo() : m4.d ->m4.foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>m4.foo : () => m4.d +>m4 : typeof m4 +>foo : () => m4.d export module m1 { ->m1 : typeof m1, Symbol(m1, Decl(importDecl_1.ts, 8, 25)) +>m1 : typeof m1 export var x2 = m4.x; ->x2 : m4.d, Symbol(x2, Decl(importDecl_1.ts, 11, 14)) ->m4.x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>x2 : m4.d +>m4.x : m4.d +>m4 : typeof m4 +>x : m4.d export var d2 = m4.d; ->d2 : typeof m4.d, Symbol(d2, Decl(importDecl_1.ts, 12, 14)) ->m4.d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>d2 : typeof m4.d +>m4.d : typeof m4.d +>m4 : typeof m4 +>d : typeof m4.d export var f2 = m4.foo(); ->f2 : m4.d, Symbol(f2, Decl(importDecl_1.ts, 13, 14)) +>f2 : m4.d >m4.foo() : m4.d ->m4.foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>m4.foo : () => m4.d +>m4 : typeof m4 +>foo : () => m4.d var x3 = m4.x; ->x3 : m4.d, Symbol(x3, Decl(importDecl_1.ts, 15, 7)) ->m4.x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>x3 : m4.d +>m4.x : m4.d +>m4 : typeof m4 +>x : m4.d var d3 = m4.d; ->d3 : typeof m4.d, Symbol(d3, Decl(importDecl_1.ts, 16, 7)) ->m4.d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>d3 : typeof m4.d +>m4.d : typeof m4.d +>m4 : typeof m4 +>d : typeof m4.d var f3 = m4.foo(); ->f3 : m4.d, Symbol(f3, Decl(importDecl_1.ts, 17, 7)) +>f3 : m4.d >m4.foo() : m4.d ->m4.foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) ->m4 : typeof m4, Symbol(m4, Decl(importDecl_1.ts, 0, 0)) ->foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>m4.foo : () => m4.d +>m4 : typeof m4 +>foo : () => m4.d } //Emit global only usage import glo_m4 = require("importDecl_require1"); ->glo_m4 : typeof glo_m4, Symbol(glo_m4, Decl(importDecl_1.ts, 18, 1)) +>glo_m4 : typeof glo_m4 export var useGlo_m4_d4 = glo_m4.d; ->useGlo_m4_d4 : typeof glo_m4.d, Symbol(useGlo_m4_d4, Decl(importDecl_1.ts, 22, 10)) ->glo_m4.d : typeof glo_m4.d, Symbol(glo_m4.d, Decl(importDecl_require1.ts, 0, 0)) ->glo_m4 : typeof glo_m4, Symbol(glo_m4, Decl(importDecl_1.ts, 18, 1)) ->d : typeof glo_m4.d, Symbol(glo_m4.d, Decl(importDecl_require1.ts, 0, 0)) +>useGlo_m4_d4 : typeof glo_m4.d +>glo_m4.d : typeof glo_m4.d +>glo_m4 : typeof glo_m4 +>d : typeof glo_m4.d export var useGlo_m4_f4 = glo_m4.foo(); ->useGlo_m4_f4 : glo_m4.d, Symbol(useGlo_m4_f4, Decl(importDecl_1.ts, 23, 10)) +>useGlo_m4_f4 : glo_m4.d >glo_m4.foo() : glo_m4.d ->glo_m4.foo : () => glo_m4.d, Symbol(glo_m4.foo, Decl(importDecl_require1.ts, 3, 9)) ->glo_m4 : typeof glo_m4, Symbol(glo_m4, Decl(importDecl_1.ts, 18, 1)) ->foo : () => glo_m4.d, Symbol(glo_m4.foo, Decl(importDecl_require1.ts, 3, 9)) +>glo_m4.foo : () => glo_m4.d +>glo_m4 : typeof glo_m4 +>foo : () => glo_m4.d //Emit even when used just in function type import fncOnly_m4 = require("importDecl_require2"); ->fncOnly_m4 : typeof fncOnly_m4, Symbol(fncOnly_m4, Decl(importDecl_1.ts, 23, 39)) +>fncOnly_m4 : typeof fncOnly_m4 export var useFncOnly_m4_f4 = fncOnly_m4.foo(); ->useFncOnly_m4_f4 : fncOnly_m4.d, Symbol(useFncOnly_m4_f4, Decl(importDecl_1.ts, 27, 10)) +>useFncOnly_m4_f4 : fncOnly_m4.d >fncOnly_m4.foo() : fncOnly_m4.d ->fncOnly_m4.foo : () => fncOnly_m4.d, Symbol(fncOnly_m4.foo, Decl(importDecl_require2.ts, 3, 16)) ->fncOnly_m4 : typeof fncOnly_m4, Symbol(fncOnly_m4, Decl(importDecl_1.ts, 23, 39)) ->foo : () => fncOnly_m4.d, Symbol(fncOnly_m4.foo, Decl(importDecl_require2.ts, 3, 16)) +>fncOnly_m4.foo : () => fncOnly_m4.d +>fncOnly_m4 : typeof fncOnly_m4 +>foo : () => fncOnly_m4.d // only used privately no need to emit import private_m4 = require("importDecl_require3"); ->private_m4 : typeof private_m4, Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) +>private_m4 : typeof private_m4 export module usePrivate_m4_m1 { ->usePrivate_m4_m1 : typeof usePrivate_m4_m1, Symbol(usePrivate_m4_m1, Decl(importDecl_1.ts, 30, 51)) +>usePrivate_m4_m1 : typeof usePrivate_m4_m1 var x3 = private_m4.x; ->x3 : private_m4.d, Symbol(x3, Decl(importDecl_1.ts, 32, 7)) ->private_m4.x : private_m4.d, Symbol(private_m4.x, Decl(importDecl_require3.ts, 3, 10)) ->private_m4 : typeof private_m4, Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) ->x : private_m4.d, Symbol(private_m4.x, Decl(importDecl_require3.ts, 3, 10)) +>x3 : private_m4.d +>private_m4.x : private_m4.d +>private_m4 : typeof private_m4 +>x : private_m4.d var d3 = private_m4.d; ->d3 : typeof private_m4.d, Symbol(d3, Decl(importDecl_1.ts, 33, 7)) ->private_m4.d : typeof private_m4.d, Symbol(private_m4.d, Decl(importDecl_require3.ts, 0, 0)) ->private_m4 : typeof private_m4, Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) ->d : typeof private_m4.d, Symbol(private_m4.d, Decl(importDecl_require3.ts, 0, 0)) +>d3 : typeof private_m4.d +>private_m4.d : typeof private_m4.d +>private_m4 : typeof private_m4 +>d : typeof private_m4.d var f3 = private_m4.foo(); ->f3 : private_m4.d, Symbol(f3, Decl(importDecl_1.ts, 34, 7)) +>f3 : private_m4.d >private_m4.foo() : private_m4.d ->private_m4.foo : () => private_m4.d, Symbol(private_m4.foo, Decl(importDecl_require3.ts, 3, 16)) ->private_m4 : typeof private_m4, Symbol(private_m4, Decl(importDecl_1.ts, 27, 47)) ->foo : () => private_m4.d, Symbol(private_m4.foo, Decl(importDecl_require3.ts, 3, 16)) +>private_m4.foo : () => private_m4.d +>private_m4 : typeof private_m4 +>foo : () => private_m4.d } // Do not emit unused import import m5 = require("importDecl_require4"); ->m5 : typeof m5, Symbol(m5, Decl(importDecl_1.ts, 35, 1)) +>m5 : typeof m5 export var d = m5.foo2(); ->d : m4.d, Symbol(d, Decl(importDecl_1.ts, 39, 10)) +>d : m4.d >m5.foo2() : m4.d ->m5.foo2 : () => m4.d, Symbol(m5.foo2, Decl(importDecl_require4.ts, 0, 42)) ->m5 : typeof m5, Symbol(m5, Decl(importDecl_1.ts, 35, 1)) ->foo2 : () => m4.d, Symbol(m5.foo2, Decl(importDecl_require4.ts, 0, 42)) +>m5.foo2 : () => m4.d +>m5 : typeof m5 +>foo2 : () => m4.d // Do not emit multiple used import statements import multiImport_m4 = require("importDecl_require"); // Emit used ->multiImport_m4 : typeof m4, Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) +>multiImport_m4 : typeof m4 export var useMultiImport_m4_x4 = multiImport_m4.x; ->useMultiImport_m4_x4 : m4.d, Symbol(useMultiImport_m4_x4, Decl(importDecl_1.ts, 43, 10)) ->multiImport_m4.x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) ->multiImport_m4 : typeof m4, Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) ->x : m4.d, Symbol(m4.x, Decl(importDecl_require.ts, 3, 10)) +>useMultiImport_m4_x4 : m4.d +>multiImport_m4.x : m4.d +>multiImport_m4 : typeof m4 +>x : m4.d export var useMultiImport_m4_d4 = multiImport_m4.d; ->useMultiImport_m4_d4 : typeof m4.d, Symbol(useMultiImport_m4_d4, Decl(importDecl_1.ts, 44, 10)) ->multiImport_m4.d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) ->multiImport_m4 : typeof m4, Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) ->d : typeof m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>useMultiImport_m4_d4 : typeof m4.d +>multiImport_m4.d : typeof m4.d +>multiImport_m4 : typeof m4 +>d : typeof m4.d export var useMultiImport_m4_f4 = multiImport_m4.foo(); ->useMultiImport_m4_f4 : m4.d, Symbol(useMultiImport_m4_f4, Decl(importDecl_1.ts, 45, 10)) +>useMultiImport_m4_f4 : m4.d >multiImport_m4.foo() : m4.d ->multiImport_m4.foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) ->multiImport_m4 : typeof m4, Symbol(multiImport_m4, Decl(importDecl_1.ts, 39, 25)) ->foo : () => m4.d, Symbol(m4.foo, Decl(importDecl_require.ts, 3, 16)) +>multiImport_m4.foo : () => m4.d +>multiImport_m4 : typeof m4 +>foo : () => m4.d === tests/cases/compiler/importDecl_require.ts === export class d { ->d : d, Symbol(d, Decl(importDecl_require.ts, 0, 0)) +>d : d foo: string; ->foo : string, Symbol(foo, Decl(importDecl_require.ts, 0, 16)) +>foo : string } export var x: d; ->x : d, Symbol(x, Decl(importDecl_require.ts, 3, 10)) ->d : d, Symbol(d, Decl(importDecl_require.ts, 0, 0)) +>x : d +>d : d export function foo(): d { return null; } ->foo : () => d, Symbol(foo, Decl(importDecl_require.ts, 3, 16)) ->d : d, Symbol(d, Decl(importDecl_require.ts, 0, 0)) +>foo : () => d +>d : d >null : null === tests/cases/compiler/importDecl_require1.ts === export class d { ->d : d, Symbol(d, Decl(importDecl_require1.ts, 0, 0)) +>d : d bar: string; ->bar : string, Symbol(bar, Decl(importDecl_require1.ts, 0, 16)) +>bar : string } var x: d; ->x : d, Symbol(x, Decl(importDecl_require1.ts, 3, 3)) ->d : d, Symbol(d, Decl(importDecl_require1.ts, 0, 0)) +>x : d +>d : d export function foo(): d { return null; } ->foo : () => d, Symbol(foo, Decl(importDecl_require1.ts, 3, 9)) ->d : d, Symbol(d, Decl(importDecl_require1.ts, 0, 0)) +>foo : () => d +>d : d >null : null === tests/cases/compiler/importDecl_require2.ts === export class d { ->d : d, Symbol(d, Decl(importDecl_require2.ts, 0, 0)) +>d : d baz: string; ->baz : string, Symbol(baz, Decl(importDecl_require2.ts, 0, 16)) +>baz : string } export var x: d; ->x : d, Symbol(x, Decl(importDecl_require2.ts, 3, 10)) ->d : d, Symbol(d, Decl(importDecl_require2.ts, 0, 0)) +>x : d +>d : d export function foo(): d { return null; } ->foo : () => d, Symbol(foo, Decl(importDecl_require2.ts, 3, 16)) ->d : d, Symbol(d, Decl(importDecl_require2.ts, 0, 0)) +>foo : () => d +>d : d >null : null === tests/cases/compiler/importDecl_require3.ts === export class d { ->d : d, Symbol(d, Decl(importDecl_require3.ts, 0, 0)) +>d : d bing: string; ->bing : string, Symbol(bing, Decl(importDecl_require3.ts, 0, 16)) +>bing : string } export var x: d; ->x : d, Symbol(x, Decl(importDecl_require3.ts, 3, 10)) ->d : d, Symbol(d, Decl(importDecl_require3.ts, 0, 0)) +>x : d +>d : d export function foo(): d { return null; } ->foo : () => d, Symbol(foo, Decl(importDecl_require3.ts, 3, 16)) ->d : d, Symbol(d, Decl(importDecl_require3.ts, 0, 0)) +>foo : () => d +>d : d >null : null === tests/cases/compiler/importDecl_require4.ts === import m4 = require("importDecl_require"); ->m4 : typeof m4, Symbol(m4, Decl(importDecl_require4.ts, 0, 0)) +>m4 : typeof m4 export function foo2(): m4.d { return null; } ->foo2 : () => m4.d, Symbol(foo2, Decl(importDecl_require4.ts, 0, 42)) ->m4 : any, Symbol(m4, Decl(importDecl_require4.ts, 0, 0)) ->d : m4.d, Symbol(m4.d, Decl(importDecl_require.ts, 0, 0)) +>foo2 : () => m4.d +>m4 : any +>d : m4.d >null : null diff --git a/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.symbols b/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.symbols new file mode 100644 index 0000000000000..892cbf7464efb --- /dev/null +++ b/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/importDeclWithExportModifierInAmbientContext.ts === +declare module "m" { + module x { +>x : Symbol(x, Decl(importDeclWithExportModifierInAmbientContext.ts, 0, 20)) + + interface c { +>c : Symbol(c, Decl(importDeclWithExportModifierInAmbientContext.ts, 1, 14)) + } + } + export import a = x.c; +>a : Symbol(a, Decl(importDeclWithExportModifierInAmbientContext.ts, 4, 5)) +>x : Symbol(x, Decl(importDeclWithExportModifierInAmbientContext.ts, 0, 20)) +>c : Symbol(a, Decl(importDeclWithExportModifierInAmbientContext.ts, 1, 14)) + + var b: a; +>b : Symbol(b, Decl(importDeclWithExportModifierInAmbientContext.ts, 6, 7)) +>a : Symbol(a, Decl(importDeclWithExportModifierInAmbientContext.ts, 4, 5)) +} + diff --git a/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.types b/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.types index 37cc251da7ec6..617c133aeeee4 100644 --- a/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.types +++ b/tests/baselines/reference/importDeclWithExportModifierInAmbientContext.types @@ -1,19 +1,19 @@ === tests/cases/compiler/importDeclWithExportModifierInAmbientContext.ts === declare module "m" { module x { ->x : any, Symbol(x, Decl(importDeclWithExportModifierInAmbientContext.ts, 0, 20)) +>x : any interface c { ->c : c, Symbol(c, Decl(importDeclWithExportModifierInAmbientContext.ts, 1, 14)) +>c : c } } export import a = x.c; ->a : any, Symbol(a, Decl(importDeclWithExportModifierInAmbientContext.ts, 4, 5)) ->x : any, Symbol(x, Decl(importDeclWithExportModifierInAmbientContext.ts, 0, 20)) ->c : a, Symbol(a, Decl(importDeclWithExportModifierInAmbientContext.ts, 1, 14)) +>a : any +>x : any +>c : a var b: a; ->b : a, Symbol(b, Decl(importDeclWithExportModifierInAmbientContext.ts, 6, 7)) ->a : a, Symbol(a, Decl(importDeclWithExportModifierInAmbientContext.ts, 4, 5)) +>b : a +>a : a } diff --git a/tests/baselines/reference/importDeclarationUsedAsTypeQuery.symbols b/tests/baselines/reference/importDeclarationUsedAsTypeQuery.symbols new file mode 100644 index 0000000000000..2664691972f43 --- /dev/null +++ b/tests/baselines/reference/importDeclarationUsedAsTypeQuery.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/importDeclarationUsedAsTypeQuery_1.ts === +/// +import a = require('importDeclarationUsedAsTypeQuery_require'); +>a : Symbol(a, Decl(importDeclarationUsedAsTypeQuery_1.ts, 0, 0)) + +export var x: typeof a; +>x : Symbol(x, Decl(importDeclarationUsedAsTypeQuery_1.ts, 2, 10)) +>a : Symbol(a, Decl(importDeclarationUsedAsTypeQuery_1.ts, 0, 0)) + +=== tests/cases/compiler/importDeclarationUsedAsTypeQuery_require.ts === +export class B { +>B : Symbol(B, Decl(importDeclarationUsedAsTypeQuery_require.ts, 0, 0)) + + id: number; +>id : Symbol(id, Decl(importDeclarationUsedAsTypeQuery_require.ts, 0, 16)) +} + diff --git a/tests/baselines/reference/importDeclarationUsedAsTypeQuery.types b/tests/baselines/reference/importDeclarationUsedAsTypeQuery.types index 7884f2c2fce67..2f449c2aa8725 100644 --- a/tests/baselines/reference/importDeclarationUsedAsTypeQuery.types +++ b/tests/baselines/reference/importDeclarationUsedAsTypeQuery.types @@ -1,17 +1,17 @@ === tests/cases/compiler/importDeclarationUsedAsTypeQuery_1.ts === /// import a = require('importDeclarationUsedAsTypeQuery_require'); ->a : typeof a, Symbol(a, Decl(importDeclarationUsedAsTypeQuery_1.ts, 0, 0)) +>a : typeof a export var x: typeof a; ->x : typeof a, Symbol(x, Decl(importDeclarationUsedAsTypeQuery_1.ts, 2, 10)) ->a : typeof a, Symbol(a, Decl(importDeclarationUsedAsTypeQuery_1.ts, 0, 0)) +>x : typeof a +>a : typeof a === tests/cases/compiler/importDeclarationUsedAsTypeQuery_require.ts === export class B { ->B : B, Symbol(B, Decl(importDeclarationUsedAsTypeQuery_require.ts, 0, 0)) +>B : B id: number; ->id : number, Symbol(id, Decl(importDeclarationUsedAsTypeQuery_require.ts, 0, 16)) +>id : number } diff --git a/tests/baselines/reference/importImportOnlyModule.symbols b/tests/baselines/reference/importImportOnlyModule.symbols new file mode 100644 index 0000000000000..902f1b45a688d --- /dev/null +++ b/tests/baselines/reference/importImportOnlyModule.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/externalModules/foo_2.ts === +import foo = require("./foo_1"); +>foo : Symbol(foo, Decl(foo_2.ts, 0, 0)) + +var x = foo; // Cause a runtime dependency +>x : Symbol(x, Decl(foo_2.ts, 1, 3)) +>foo : Symbol(foo, Decl(foo_2.ts, 0, 0)) + +=== tests/cases/conformance/externalModules/foo_0.ts === +export class C1 { +>C1 : Symbol(C1, Decl(foo_0.ts, 0, 0)) + + m1 = 42; +>m1 : Symbol(m1, Decl(foo_0.ts, 0, 17)) + + static s1 = true; +>s1 : Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +} + +=== tests/cases/conformance/externalModules/foo_1.ts === +import c1 = require('./foo_0'); // Makes this an external module +>c1 : Symbol(c1, Decl(foo_1.ts, 0, 0)) + +var answer = 42; // No exports +>answer : Symbol(answer, Decl(foo_1.ts, 1, 3)) + diff --git a/tests/baselines/reference/importImportOnlyModule.types b/tests/baselines/reference/importImportOnlyModule.types index 3d485920b8a59..c1275bed51144 100644 --- a/tests/baselines/reference/importImportOnlyModule.types +++ b/tests/baselines/reference/importImportOnlyModule.types @@ -1,29 +1,29 @@ === tests/cases/conformance/externalModules/foo_2.ts === import foo = require("./foo_1"); ->foo : typeof foo, Symbol(foo, Decl(foo_2.ts, 0, 0)) +>foo : typeof foo var x = foo; // Cause a runtime dependency ->x : typeof foo, Symbol(x, Decl(foo_2.ts, 1, 3)) ->foo : typeof foo, Symbol(foo, Decl(foo_2.ts, 0, 0)) +>x : typeof foo +>foo : typeof foo === tests/cases/conformance/externalModules/foo_0.ts === export class C1 { ->C1 : C1, Symbol(C1, Decl(foo_0.ts, 0, 0)) +>C1 : C1 m1 = 42; ->m1 : number, Symbol(m1, Decl(foo_0.ts, 0, 17)) +>m1 : number >42 : number static s1 = true; ->s1 : boolean, Symbol(C1.s1, Decl(foo_0.ts, 1, 9)) +>s1 : boolean >true : boolean } === tests/cases/conformance/externalModules/foo_1.ts === import c1 = require('./foo_0'); // Makes this an external module ->c1 : typeof c1, Symbol(c1, Decl(foo_1.ts, 0, 0)) +>c1 : typeof c1 var answer = 42; // No exports ->answer : number, Symbol(answer, Decl(foo_1.ts, 1, 3)) +>answer : number >42 : number diff --git a/tests/baselines/reference/importInTypePosition.symbols b/tests/baselines/reference/importInTypePosition.symbols new file mode 100644 index 0000000000000..08f55093c5037 --- /dev/null +++ b/tests/baselines/reference/importInTypePosition.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/importInTypePosition.ts === +module A { +>A : Symbol(A, Decl(importInTypePosition.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(importInTypePosition.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(importInTypePosition.ts, 2, 20)) +>y : Symbol(y, Decl(importInTypePosition.ts, 2, 37)) + } + export var Origin = new Point(0, 0); +>Origin : Symbol(Origin, Decl(importInTypePosition.ts, 4, 14)) +>Point : Symbol(Point, Decl(importInTypePosition.ts, 0, 10)) +} + +// no code gen expected +module B { +>B : Symbol(B, Decl(importInTypePosition.ts, 5, 1)) + + import a = A; //Error generates 'var = ;' +>a : Symbol(a, Decl(importInTypePosition.ts, 8, 10)) +>A : Symbol(a, Decl(importInTypePosition.ts, 0, 0)) +} +// no code gen expected +module C { +>C : Symbol(C, Decl(importInTypePosition.ts, 11, 1)) + + import a = A; //Error generates 'var = ;' +>a : Symbol(a, Decl(importInTypePosition.ts, 13, 10)) +>A : Symbol(a, Decl(importInTypePosition.ts, 0, 0)) + + var m: typeof a; +>m : Symbol(m, Decl(importInTypePosition.ts, 16, 7)) +>a : Symbol(a, Decl(importInTypePosition.ts, 13, 10)) + + var p: a.Point; +>p : Symbol(p, Decl(importInTypePosition.ts, 17, 7), Decl(importInTypePosition.ts, 18, 7)) +>a : Symbol(a, Decl(importInTypePosition.ts, 13, 10)) +>Point : Symbol(a.Point, Decl(importInTypePosition.ts, 0, 10)) + + var p = { x: 0, y: 0 }; +>p : Symbol(p, Decl(importInTypePosition.ts, 17, 7), Decl(importInTypePosition.ts, 18, 7)) +>x : Symbol(x, Decl(importInTypePosition.ts, 18, 13)) +>y : Symbol(y, Decl(importInTypePosition.ts, 18, 19)) +} + diff --git a/tests/baselines/reference/importInTypePosition.types b/tests/baselines/reference/importInTypePosition.types index 66bb2939a3f58..7360416e4b3a1 100644 --- a/tests/baselines/reference/importInTypePosition.types +++ b/tests/baselines/reference/importInTypePosition.types @@ -1,53 +1,53 @@ === tests/cases/compiler/importInTypePosition.ts === module A { ->A : typeof A, Symbol(A, Decl(importInTypePosition.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(importInTypePosition.ts, 0, 10)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(importInTypePosition.ts, 2, 20)) ->y : number, Symbol(y, Decl(importInTypePosition.ts, 2, 37)) +>x : number +>y : number } export var Origin = new Point(0, 0); ->Origin : Point, Symbol(Origin, Decl(importInTypePosition.ts, 4, 14)) +>Origin : Point >new Point(0, 0) : Point ->Point : typeof Point, Symbol(Point, Decl(importInTypePosition.ts, 0, 10)) +>Point : typeof Point >0 : number >0 : number } // no code gen expected module B { ->B : any, Symbol(B, Decl(importInTypePosition.ts, 5, 1)) +>B : any import a = A; //Error generates 'var = ;' ->a : typeof a, Symbol(a, Decl(importInTypePosition.ts, 8, 10)) ->A : typeof a, Symbol(a, Decl(importInTypePosition.ts, 0, 0)) +>a : typeof a +>A : typeof a } // no code gen expected module C { ->C : typeof C, Symbol(C, Decl(importInTypePosition.ts, 11, 1)) +>C : typeof C import a = A; //Error generates 'var = ;' ->a : typeof a, Symbol(a, Decl(importInTypePosition.ts, 13, 10)) ->A : typeof a, Symbol(a, Decl(importInTypePosition.ts, 0, 0)) +>a : typeof a +>A : typeof a var m: typeof a; ->m : typeof a, Symbol(m, Decl(importInTypePosition.ts, 16, 7)) ->a : typeof a, Symbol(a, Decl(importInTypePosition.ts, 13, 10)) +>m : typeof a +>a : typeof a var p: a.Point; ->p : a.Point, Symbol(p, Decl(importInTypePosition.ts, 17, 7), Decl(importInTypePosition.ts, 18, 7)) ->a : any, Symbol(a, Decl(importInTypePosition.ts, 13, 10)) ->Point : a.Point, Symbol(a.Point, Decl(importInTypePosition.ts, 0, 10)) +>p : a.Point +>a : any +>Point : a.Point var p = { x: 0, y: 0 }; ->p : a.Point, Symbol(p, Decl(importInTypePosition.ts, 17, 7), Decl(importInTypePosition.ts, 18, 7)) +>p : a.Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(importInTypePosition.ts, 18, 13)) +>x : number >0 : number ->y : number, Symbol(y, Decl(importInTypePosition.ts, 18, 19)) +>y : number >0 : number } diff --git a/tests/baselines/reference/importOnAliasedIdentifiers.symbols b/tests/baselines/reference/importOnAliasedIdentifiers.symbols new file mode 100644 index 0000000000000..7717799d4db2b --- /dev/null +++ b/tests/baselines/reference/importOnAliasedIdentifiers.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/importOnAliasedIdentifiers.ts === +module A { +>A : Symbol(A, Decl(importOnAliasedIdentifiers.ts, 0, 0)) + + export interface X { s: string } +>X : Symbol(X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) +>s : Symbol(s, Decl(importOnAliasedIdentifiers.ts, 1, 24)) + + export var X: X; +>X : Symbol(X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) +>X : Symbol(X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) +} +module B { +>B : Symbol(B, Decl(importOnAliasedIdentifiers.ts, 3, 1)) + + interface A { n: number } +>A : Symbol(A, Decl(importOnAliasedIdentifiers.ts, 4, 10)) +>n : Symbol(n, Decl(importOnAliasedIdentifiers.ts, 5, 17)) + + import Y = A; // Alias only for module A +>Y : Symbol(Y, Decl(importOnAliasedIdentifiers.ts, 5, 29)) +>A : Symbol(Y, Decl(importOnAliasedIdentifiers.ts, 0, 0)) + + import Z = A.X; // Alias for both type and member A.X +>Z : Symbol(Z, Decl(importOnAliasedIdentifiers.ts, 6, 17)) +>A : Symbol(Y, Decl(importOnAliasedIdentifiers.ts, 0, 0)) +>X : Symbol(Y.X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) + + var v: Z = Z; +>v : Symbol(v, Decl(importOnAliasedIdentifiers.ts, 8, 7)) +>Z : Symbol(Z, Decl(importOnAliasedIdentifiers.ts, 6, 17)) +>Z : Symbol(Z, Decl(importOnAliasedIdentifiers.ts, 6, 17)) +} diff --git a/tests/baselines/reference/importOnAliasedIdentifiers.types b/tests/baselines/reference/importOnAliasedIdentifiers.types index 186ef8db5d78f..7772e909c9906 100644 --- a/tests/baselines/reference/importOnAliasedIdentifiers.types +++ b/tests/baselines/reference/importOnAliasedIdentifiers.types @@ -1,33 +1,33 @@ === tests/cases/compiler/importOnAliasedIdentifiers.ts === module A { ->A : typeof A, Symbol(A, Decl(importOnAliasedIdentifiers.ts, 0, 0)) +>A : typeof A export interface X { s: string } ->X : X, Symbol(X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) ->s : string, Symbol(s, Decl(importOnAliasedIdentifiers.ts, 1, 24)) +>X : X +>s : string export var X: X; ->X : X, Symbol(X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) ->X : X, Symbol(X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) +>X : X +>X : X } module B { ->B : typeof B, Symbol(B, Decl(importOnAliasedIdentifiers.ts, 3, 1)) +>B : typeof B interface A { n: number } ->A : A, Symbol(A, Decl(importOnAliasedIdentifiers.ts, 4, 10)) ->n : number, Symbol(n, Decl(importOnAliasedIdentifiers.ts, 5, 17)) +>A : A +>n : number import Y = A; // Alias only for module A ->Y : typeof Y, Symbol(Y, Decl(importOnAliasedIdentifiers.ts, 5, 29)) ->A : typeof Y, Symbol(Y, Decl(importOnAliasedIdentifiers.ts, 0, 0)) +>Y : typeof Y +>A : typeof Y import Z = A.X; // Alias for both type and member A.X ->Z : Y.X, Symbol(Z, Decl(importOnAliasedIdentifiers.ts, 6, 17)) ->A : typeof Y, Symbol(Y, Decl(importOnAliasedIdentifiers.ts, 0, 0)) ->X : Y.X, Symbol(Y.X, Decl(importOnAliasedIdentifiers.ts, 0, 10), Decl(importOnAliasedIdentifiers.ts, 2, 14)) +>Z : Y.X +>A : typeof Y +>X : Y.X var v: Z = Z; ->v : Y.X, Symbol(v, Decl(importOnAliasedIdentifiers.ts, 8, 7)) ->Z : Y.X, Symbol(Z, Decl(importOnAliasedIdentifiers.ts, 6, 17)) ->Z : Y.X, Symbol(Z, Decl(importOnAliasedIdentifiers.ts, 6, 17)) +>v : Y.X +>Z : Y.X +>Z : Y.X } diff --git a/tests/baselines/reference/importShadowsGlobalName.symbols b/tests/baselines/reference/importShadowsGlobalName.symbols new file mode 100644 index 0000000000000..f308572737b75 --- /dev/null +++ b/tests/baselines/reference/importShadowsGlobalName.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/Bar.ts === +import Error = require('Foo'); +>Error : Symbol(Error, Decl(Bar.ts, 0, 0)) + +class Bar extends Error {} +>Bar : Symbol(Bar, Decl(Bar.ts, 0, 30)) +>Error : Symbol(Error, Decl(Bar.ts, 0, 0)) + +export = Bar; +>Bar : Symbol(Bar, Decl(Bar.ts, 0, 30)) + +=== tests/cases/compiler/Foo.ts === + +class Foo {} +>Foo : Symbol(Foo, Decl(Foo.ts, 0, 0)) + +export = Foo; +>Foo : Symbol(Foo, Decl(Foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/importShadowsGlobalName.types b/tests/baselines/reference/importShadowsGlobalName.types index 7183846a1d280..a1f1106f1b828 100644 --- a/tests/baselines/reference/importShadowsGlobalName.types +++ b/tests/baselines/reference/importShadowsGlobalName.types @@ -1,19 +1,19 @@ === tests/cases/compiler/Bar.ts === import Error = require('Foo'); ->Error : typeof Error, Symbol(Error, Decl(Bar.ts, 0, 0)) +>Error : typeof Error class Bar extends Error {} ->Bar : Bar, Symbol(Bar, Decl(Bar.ts, 0, 30)) ->Error : Error, Symbol(Error, Decl(Bar.ts, 0, 0)) +>Bar : Bar +>Error : Error export = Bar; ->Bar : Bar, Symbol(Bar, Decl(Bar.ts, 0, 30)) +>Bar : Bar === tests/cases/compiler/Foo.ts === class Foo {} ->Foo : Foo, Symbol(Foo, Decl(Foo.ts, 0, 0)) +>Foo : Foo export = Foo; ->Foo : Foo, Symbol(Foo, Decl(Foo.ts, 0, 0)) +>Foo : Foo diff --git a/tests/baselines/reference/importStatements.symbols b/tests/baselines/reference/importStatements.symbols new file mode 100644 index 0000000000000..b160dcf2888b8 --- /dev/null +++ b/tests/baselines/reference/importStatements.symbols @@ -0,0 +1,88 @@ +=== tests/cases/conformance/internalModules/codeGeneration/importStatements.ts === +module A { +>A : Symbol(A, Decl(importStatements.ts, 0, 0)) + + export class Point { +>Point : Symbol(Point, Decl(importStatements.ts, 0, 10)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(importStatements.ts, 2, 20)) +>y : Symbol(y, Decl(importStatements.ts, 2, 37)) + } + + export var Origin = new Point(0, 0); +>Origin : Symbol(Origin, Decl(importStatements.ts, 5, 14)) +>Point : Symbol(Point, Decl(importStatements.ts, 0, 10)) +} + +// no code gen expected +module B { +>B : Symbol(B, Decl(importStatements.ts, 6, 1)) + + import a = A; //Error generates 'var = ;' +>a : Symbol(a, Decl(importStatements.ts, 9, 10)) +>A : Symbol(a, Decl(importStatements.ts, 0, 0)) +} + +// no code gen expected +module C { +>C : Symbol(C, Decl(importStatements.ts, 11, 1)) + + import a = A; //Error generates 'var = ;' +>a : Symbol(a, Decl(importStatements.ts, 14, 10)) +>A : Symbol(a, Decl(importStatements.ts, 0, 0)) + + var m: typeof a; +>m : Symbol(m, Decl(importStatements.ts, 16, 7)) +>a : Symbol(a, Decl(importStatements.ts, 14, 10)) + + var p: a.Point; +>p : Symbol(p, Decl(importStatements.ts, 17, 7), Decl(importStatements.ts, 18, 7)) +>a : Symbol(a, Decl(importStatements.ts, 14, 10)) +>Point : Symbol(a.Point, Decl(importStatements.ts, 0, 10)) + + var p = {x:0, y:0 }; +>p : Symbol(p, Decl(importStatements.ts, 17, 7), Decl(importStatements.ts, 18, 7)) +>x : Symbol(x, Decl(importStatements.ts, 18, 13)) +>y : Symbol(y, Decl(importStatements.ts, 18, 17)) +} + +// code gen expected +module D { +>D : Symbol(D, Decl(importStatements.ts, 19, 1)) + + import a = A; +>a : Symbol(a, Decl(importStatements.ts, 22, 10)) +>A : Symbol(a, Decl(importStatements.ts, 0, 0)) + + var p = new a.Point(1, 1); +>p : Symbol(p, Decl(importStatements.ts, 25, 7)) +>a.Point : Symbol(a.Point, Decl(importStatements.ts, 0, 10)) +>a : Symbol(a, Decl(importStatements.ts, 22, 10)) +>Point : Symbol(a.Point, Decl(importStatements.ts, 0, 10)) +} + +module E { +>E : Symbol(E, Decl(importStatements.ts, 26, 1)) + + import a = A; +>a : Symbol(a, Decl(importStatements.ts, 28, 10)) +>A : Symbol(a, Decl(importStatements.ts, 0, 0)) + + export function xDist(x: a.Point) { +>xDist : Symbol(xDist, Decl(importStatements.ts, 29, 17)) +>x : Symbol(x, Decl(importStatements.ts, 30, 26)) +>a : Symbol(a, Decl(importStatements.ts, 28, 10)) +>Point : Symbol(a.Point, Decl(importStatements.ts, 0, 10)) + + return (a.Origin.x - x.x); +>a.Origin.x : Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) +>a.Origin : Symbol(a.Origin, Decl(importStatements.ts, 5, 14)) +>a : Symbol(a, Decl(importStatements.ts, 28, 10)) +>Origin : Symbol(a.Origin, Decl(importStatements.ts, 5, 14)) +>x : Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) +>x.x : Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) +>x : Symbol(x, Decl(importStatements.ts, 30, 26)) +>x : Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) + } +} diff --git a/tests/baselines/reference/importStatements.types b/tests/baselines/reference/importStatements.types index 262b8b3fb4c77..ecf4453b3605e 100644 --- a/tests/baselines/reference/importStatements.types +++ b/tests/baselines/reference/importStatements.types @@ -1,99 +1,99 @@ === tests/cases/conformance/internalModules/codeGeneration/importStatements.ts === module A { ->A : typeof A, Symbol(A, Decl(importStatements.ts, 0, 0)) +>A : typeof A export class Point { ->Point : Point, Symbol(Point, Decl(importStatements.ts, 0, 10)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(importStatements.ts, 2, 20)) ->y : number, Symbol(y, Decl(importStatements.ts, 2, 37)) +>x : number +>y : number } export var Origin = new Point(0, 0); ->Origin : Point, Symbol(Origin, Decl(importStatements.ts, 5, 14)) +>Origin : Point >new Point(0, 0) : Point ->Point : typeof Point, Symbol(Point, Decl(importStatements.ts, 0, 10)) +>Point : typeof Point >0 : number >0 : number } // no code gen expected module B { ->B : any, Symbol(B, Decl(importStatements.ts, 6, 1)) +>B : any import a = A; //Error generates 'var = ;' ->a : typeof a, Symbol(a, Decl(importStatements.ts, 9, 10)) ->A : typeof a, Symbol(a, Decl(importStatements.ts, 0, 0)) +>a : typeof a +>A : typeof a } // no code gen expected module C { ->C : typeof C, Symbol(C, Decl(importStatements.ts, 11, 1)) +>C : typeof C import a = A; //Error generates 'var = ;' ->a : typeof a, Symbol(a, Decl(importStatements.ts, 14, 10)) ->A : typeof a, Symbol(a, Decl(importStatements.ts, 0, 0)) +>a : typeof a +>A : typeof a var m: typeof a; ->m : typeof a, Symbol(m, Decl(importStatements.ts, 16, 7)) ->a : typeof a, Symbol(a, Decl(importStatements.ts, 14, 10)) +>m : typeof a +>a : typeof a var p: a.Point; ->p : a.Point, Symbol(p, Decl(importStatements.ts, 17, 7), Decl(importStatements.ts, 18, 7)) ->a : any, Symbol(a, Decl(importStatements.ts, 14, 10)) ->Point : a.Point, Symbol(a.Point, Decl(importStatements.ts, 0, 10)) +>p : a.Point +>a : any +>Point : a.Point var p = {x:0, y:0 }; ->p : a.Point, Symbol(p, Decl(importStatements.ts, 17, 7), Decl(importStatements.ts, 18, 7)) +>p : a.Point >{x:0, y:0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(importStatements.ts, 18, 13)) +>x : number >0 : number ->y : number, Symbol(y, Decl(importStatements.ts, 18, 17)) +>y : number >0 : number } // code gen expected module D { ->D : typeof D, Symbol(D, Decl(importStatements.ts, 19, 1)) +>D : typeof D import a = A; ->a : typeof a, Symbol(a, Decl(importStatements.ts, 22, 10)) ->A : typeof a, Symbol(a, Decl(importStatements.ts, 0, 0)) +>a : typeof a +>A : typeof a var p = new a.Point(1, 1); ->p : a.Point, Symbol(p, Decl(importStatements.ts, 25, 7)) +>p : a.Point >new a.Point(1, 1) : a.Point ->a.Point : typeof a.Point, Symbol(a.Point, Decl(importStatements.ts, 0, 10)) ->a : typeof a, Symbol(a, Decl(importStatements.ts, 22, 10)) ->Point : typeof a.Point, Symbol(a.Point, Decl(importStatements.ts, 0, 10)) +>a.Point : typeof a.Point +>a : typeof a +>Point : typeof a.Point >1 : number >1 : number } module E { ->E : typeof E, Symbol(E, Decl(importStatements.ts, 26, 1)) +>E : typeof E import a = A; ->a : typeof a, Symbol(a, Decl(importStatements.ts, 28, 10)) ->A : typeof a, Symbol(a, Decl(importStatements.ts, 0, 0)) +>a : typeof a +>A : typeof a export function xDist(x: a.Point) { ->xDist : (x: a.Point) => number, Symbol(xDist, Decl(importStatements.ts, 29, 17)) ->x : a.Point, Symbol(x, Decl(importStatements.ts, 30, 26)) ->a : any, Symbol(a, Decl(importStatements.ts, 28, 10)) ->Point : a.Point, Symbol(a.Point, Decl(importStatements.ts, 0, 10)) +>xDist : (x: a.Point) => number +>x : a.Point +>a : any +>Point : a.Point return (a.Origin.x - x.x); >(a.Origin.x - x.x) : number >a.Origin.x - x.x : number ->a.Origin.x : number, Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) ->a.Origin : a.Point, Symbol(a.Origin, Decl(importStatements.ts, 5, 14)) ->a : typeof a, Symbol(a, Decl(importStatements.ts, 28, 10)) ->Origin : a.Point, Symbol(a.Origin, Decl(importStatements.ts, 5, 14)) ->x : number, Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) ->x.x : number, Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) ->x : a.Point, Symbol(x, Decl(importStatements.ts, 30, 26)) ->x : number, Symbol(a.Point.x, Decl(importStatements.ts, 2, 20)) +>a.Origin.x : number +>a.Origin : a.Point +>a : typeof a +>Origin : a.Point +>x : number +>x.x : number +>x : a.Point +>x : number } } diff --git a/tests/baselines/reference/importUsedInExtendsList1.symbols b/tests/baselines/reference/importUsedInExtendsList1.symbols new file mode 100644 index 0000000000000..1b3ac99ee9d1f --- /dev/null +++ b/tests/baselines/reference/importUsedInExtendsList1.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/importUsedInExtendsList1_1.ts === +/// +import foo = require('importUsedInExtendsList1_require'); +>foo : Symbol(foo, Decl(importUsedInExtendsList1_1.ts, 0, 0)) + +class Sub extends foo.Super { } +>Sub : Symbol(Sub, Decl(importUsedInExtendsList1_1.ts, 1, 57)) +>foo.Super : Symbol(foo.Super, Decl(importUsedInExtendsList1_require.ts, 0, 0)) +>foo : Symbol(foo, Decl(importUsedInExtendsList1_1.ts, 0, 0)) +>Super : Symbol(foo.Super, Decl(importUsedInExtendsList1_require.ts, 0, 0)) + +var s: Sub; +>s : Symbol(s, Decl(importUsedInExtendsList1_1.ts, 3, 3)) +>Sub : Symbol(Sub, Decl(importUsedInExtendsList1_1.ts, 1, 57)) + +var r: string = s.foo; +>r : Symbol(r, Decl(importUsedInExtendsList1_1.ts, 4, 3)) +>s.foo : Symbol(foo.Super.foo, Decl(importUsedInExtendsList1_require.ts, 0, 20)) +>s : Symbol(s, Decl(importUsedInExtendsList1_1.ts, 3, 3)) +>foo : Symbol(foo.Super.foo, Decl(importUsedInExtendsList1_require.ts, 0, 20)) + +=== tests/cases/compiler/importUsedInExtendsList1_require.ts === +export class Super { foo: string; } +>Super : Symbol(Super, Decl(importUsedInExtendsList1_require.ts, 0, 0)) +>foo : Symbol(foo, Decl(importUsedInExtendsList1_require.ts, 0, 20)) + diff --git a/tests/baselines/reference/importUsedInExtendsList1.types b/tests/baselines/reference/importUsedInExtendsList1.types index af9bff9449bee..74737c4db96cc 100644 --- a/tests/baselines/reference/importUsedInExtendsList1.types +++ b/tests/baselines/reference/importUsedInExtendsList1.types @@ -1,26 +1,26 @@ === tests/cases/compiler/importUsedInExtendsList1_1.ts === /// import foo = require('importUsedInExtendsList1_require'); ->foo : typeof foo, Symbol(foo, Decl(importUsedInExtendsList1_1.ts, 0, 0)) +>foo : typeof foo class Sub extends foo.Super { } ->Sub : Sub, Symbol(Sub, Decl(importUsedInExtendsList1_1.ts, 1, 57)) ->foo.Super : any, Symbol(foo.Super, Decl(importUsedInExtendsList1_require.ts, 0, 0)) ->foo : typeof foo, Symbol(foo, Decl(importUsedInExtendsList1_1.ts, 0, 0)) ->Super : foo.Super, Symbol(foo.Super, Decl(importUsedInExtendsList1_require.ts, 0, 0)) +>Sub : Sub +>foo.Super : any +>foo : typeof foo +>Super : foo.Super var s: Sub; ->s : Sub, Symbol(s, Decl(importUsedInExtendsList1_1.ts, 3, 3)) ->Sub : Sub, Symbol(Sub, Decl(importUsedInExtendsList1_1.ts, 1, 57)) +>s : Sub +>Sub : Sub var r: string = s.foo; ->r : string, Symbol(r, Decl(importUsedInExtendsList1_1.ts, 4, 3)) ->s.foo : string, Symbol(foo.Super.foo, Decl(importUsedInExtendsList1_require.ts, 0, 20)) ->s : Sub, Symbol(s, Decl(importUsedInExtendsList1_1.ts, 3, 3)) ->foo : string, Symbol(foo.Super.foo, Decl(importUsedInExtendsList1_require.ts, 0, 20)) +>r : string +>s.foo : string +>s : Sub +>foo : string === tests/cases/compiler/importUsedInExtendsList1_require.ts === export class Super { foo: string; } ->Super : Super, Symbol(Super, Decl(importUsedInExtendsList1_require.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(importUsedInExtendsList1_require.ts, 0, 20)) +>Super : Super +>foo : string diff --git a/tests/baselines/reference/import_reference-exported-alias.symbols b/tests/baselines/reference/import_reference-exported-alias.symbols new file mode 100644 index 0000000000000..424bb4bc8b4b1 --- /dev/null +++ b/tests/baselines/reference/import_reference-exported-alias.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/file2.ts === +import appJs = require("file1"); +>appJs : Symbol(appJs, Decl(file2.ts, 0, 0)) + +import Services = appJs.Services; +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) +>appJs : Symbol(appJs, Decl(file1.ts, 0, 0)) +>Services : Symbol(appJs.Services, Decl(file1.ts, 0, 12)) + +import UserServices = Services.UserServices; +>UserServices : Symbol(UserServices, Decl(file2.ts, 1, 33)) +>Services : Symbol(appJs.Services, Decl(file1.ts, 0, 12)) +>UserServices : Symbol(Services.UserServices, Decl(file1.ts, 1, 28)) + +var x = new UserServices().getUserName(); +>x : Symbol(x, Decl(file2.ts, 3, 3)) +>new UserServices().getUserName : Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) +>UserServices : Symbol(UserServices, Decl(file2.ts, 1, 33)) +>getUserName : Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) + +=== tests/cases/compiler/file1.ts === +module App { +>App : Symbol(App, Decl(file1.ts, 0, 0)) + + export module Services { +>Services : Symbol(Services, Decl(file1.ts, 0, 12)) + + export class UserServices { +>UserServices : Symbol(UserServices, Decl(file1.ts, 1, 28)) + + public getUserName(): string { +>getUserName : Symbol(getUserName, Decl(file1.ts, 2, 35)) + + return "Bill Gates"; + } + } + } +} + +import Mod = App; +>Mod : Symbol(Mod, Decl(file1.ts, 8, 1)) +>App : Symbol(App, Decl(file1.ts, 0, 0)) + +export = Mod; +>Mod : Symbol(Mod, Decl(file1.ts, 8, 1)) + diff --git a/tests/baselines/reference/import_reference-exported-alias.types b/tests/baselines/reference/import_reference-exported-alias.types index c098a5413c620..3f9c34f62dcf8 100644 --- a/tests/baselines/reference/import_reference-exported-alias.types +++ b/tests/baselines/reference/import_reference-exported-alias.types @@ -1,37 +1,37 @@ === tests/cases/compiler/file2.ts === import appJs = require("file1"); ->appJs : typeof appJs, Symbol(appJs, Decl(file2.ts, 0, 0)) +>appJs : typeof appJs import Services = appJs.Services; ->Services : typeof appJs.Services, Symbol(Services, Decl(file2.ts, 0, 32)) ->appJs : typeof appJs, Symbol(appJs, Decl(file1.ts, 0, 0)) ->Services : typeof appJs.Services, Symbol(appJs.Services, Decl(file1.ts, 0, 12)) +>Services : typeof appJs.Services +>appJs : typeof appJs +>Services : typeof appJs.Services import UserServices = Services.UserServices; ->UserServices : typeof Services.UserServices, Symbol(UserServices, Decl(file2.ts, 1, 33)) ->Services : typeof appJs.Services, Symbol(appJs.Services, Decl(file1.ts, 0, 12)) ->UserServices : Services.UserServices, Symbol(Services.UserServices, Decl(file1.ts, 1, 28)) +>UserServices : typeof Services.UserServices +>Services : typeof appJs.Services +>UserServices : Services.UserServices var x = new UserServices().getUserName(); ->x : string, Symbol(x, Decl(file2.ts, 3, 3)) +>x : string >new UserServices().getUserName() : string ->new UserServices().getUserName : () => string, Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) +>new UserServices().getUserName : () => string >new UserServices() : Services.UserServices ->UserServices : typeof Services.UserServices, Symbol(UserServices, Decl(file2.ts, 1, 33)) ->getUserName : () => string, Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) +>UserServices : typeof Services.UserServices +>getUserName : () => string === tests/cases/compiler/file1.ts === module App { ->App : typeof App, Symbol(App, Decl(file1.ts, 0, 0)) +>App : typeof App export module Services { ->Services : typeof Services, Symbol(Services, Decl(file1.ts, 0, 12)) +>Services : typeof Services export class UserServices { ->UserServices : UserServices, Symbol(UserServices, Decl(file1.ts, 1, 28)) +>UserServices : UserServices public getUserName(): string { ->getUserName : () => string, Symbol(getUserName, Decl(file1.ts, 2, 35)) +>getUserName : () => string return "Bill Gates"; >"Bill Gates" : string @@ -41,9 +41,9 @@ module App { } import Mod = App; ->Mod : typeof App, Symbol(Mod, Decl(file1.ts, 8, 1)) ->App : typeof App, Symbol(App, Decl(file1.ts, 0, 0)) +>Mod : typeof App +>App : typeof App export = Mod; ->Mod : typeof App, Symbol(Mod, Decl(file1.ts, 8, 1)) +>Mod : typeof App diff --git a/tests/baselines/reference/import_reference-to-type-alias.symbols b/tests/baselines/reference/import_reference-to-type-alias.symbols new file mode 100644 index 0000000000000..2fef0714a3ad1 --- /dev/null +++ b/tests/baselines/reference/import_reference-to-type-alias.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/file2.ts === +import appJs = require("file1"); +>appJs : Symbol(appJs, Decl(file2.ts, 0, 0)) + +import Services = appJs.App.Services; +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) +>appJs : Symbol(appJs, Decl(file1.ts, 0, 0)) +>App : Symbol(appJs.App, Decl(file1.ts, 0, 0)) +>Services : Symbol(Services, Decl(file1.ts, 0, 19)) + +var x = new Services.UserServices().getUserName(); +>x : Symbol(x, Decl(file2.ts, 2, 3)) +>new Services.UserServices().getUserName : Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) +>Services.UserServices : Symbol(Services.UserServices, Decl(file1.ts, 1, 28)) +>Services : Symbol(Services, Decl(file2.ts, 0, 32)) +>UserServices : Symbol(Services.UserServices, Decl(file1.ts, 1, 28)) +>getUserName : Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) + +=== tests/cases/compiler/file1.ts === +export module App { +>App : Symbol(App, Decl(file1.ts, 0, 0)) + + export module Services { +>Services : Symbol(Services, Decl(file1.ts, 0, 19)) + + export class UserServices { +>UserServices : Symbol(UserServices, Decl(file1.ts, 1, 28)) + + public getUserName(): string { +>getUserName : Symbol(getUserName, Decl(file1.ts, 2, 35)) + + return "Bill Gates"; + } + } + } +} + diff --git a/tests/baselines/reference/import_reference-to-type-alias.types b/tests/baselines/reference/import_reference-to-type-alias.types index 6a77d825f4769..53c7dabcd5f32 100644 --- a/tests/baselines/reference/import_reference-to-type-alias.types +++ b/tests/baselines/reference/import_reference-to-type-alias.types @@ -1,35 +1,35 @@ === tests/cases/compiler/file2.ts === import appJs = require("file1"); ->appJs : typeof appJs, Symbol(appJs, Decl(file2.ts, 0, 0)) +>appJs : typeof appJs import Services = appJs.App.Services; ->Services : typeof Services, Symbol(Services, Decl(file2.ts, 0, 32)) ->appJs : typeof appJs, Symbol(appJs, Decl(file1.ts, 0, 0)) ->App : typeof appJs.App, Symbol(appJs.App, Decl(file1.ts, 0, 0)) ->Services : typeof Services, Symbol(Services, Decl(file1.ts, 0, 19)) +>Services : typeof Services +>appJs : typeof appJs +>App : typeof appJs.App +>Services : typeof Services var x = new Services.UserServices().getUserName(); ->x : string, Symbol(x, Decl(file2.ts, 2, 3)) +>x : string >new Services.UserServices().getUserName() : string ->new Services.UserServices().getUserName : () => string, Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) +>new Services.UserServices().getUserName : () => string >new Services.UserServices() : Services.UserServices ->Services.UserServices : typeof Services.UserServices, Symbol(Services.UserServices, Decl(file1.ts, 1, 28)) ->Services : typeof Services, Symbol(Services, Decl(file2.ts, 0, 32)) ->UserServices : typeof Services.UserServices, Symbol(Services.UserServices, Decl(file1.ts, 1, 28)) ->getUserName : () => string, Symbol(Services.UserServices.getUserName, Decl(file1.ts, 2, 35)) +>Services.UserServices : typeof Services.UserServices +>Services : typeof Services +>UserServices : typeof Services.UserServices +>getUserName : () => string === tests/cases/compiler/file1.ts === export module App { ->App : typeof App, Symbol(App, Decl(file1.ts, 0, 0)) +>App : typeof App export module Services { ->Services : typeof Services, Symbol(Services, Decl(file1.ts, 0, 19)) +>Services : typeof Services export class UserServices { ->UserServices : UserServices, Symbol(UserServices, Decl(file1.ts, 1, 28)) +>UserServices : UserServices public getUserName(): string { ->getUserName : () => string, Symbol(getUserName, Decl(file1.ts, 2, 35)) +>getUserName : () => string return "Bill Gates"; >"Bill Gates" : string diff --git a/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols b/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols new file mode 100644 index 0000000000000..bfc29cd803236 --- /dev/null +++ b/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/a.ts === +/// +import ITest = require('ITest'); +>ITest : Symbol(ITest, Decl(a.ts, 0, 0)) + +var testData: ITest[]; +>testData : Symbol(testData, Decl(a.ts, 2, 3)) +>ITest : Symbol(ITest, Decl(a.ts, 0, 0)) + +var p = testData[0].name; +>p : Symbol(p, Decl(a.ts, 3, 3)) +>testData[0].name : Symbol(ITest.name, Decl(b.ts, 1, 20)) +>testData : Symbol(testData, Decl(a.ts, 2, 3)) +>name : Symbol(ITest.name, Decl(b.ts, 1, 20)) + +=== tests/cases/compiler/b.ts === +declare module "ITest" { + interface Name { +>Name : Symbol(Name, Decl(b.ts, 0, 24)) + + name: string; +>name : Symbol(name, Decl(b.ts, 1, 20)) + } + export = Name; +>Name : Symbol(Name, Decl(b.ts, 0, 24)) +} + diff --git a/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.types b/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.types index 19d6c23df2357..2fda99dc064ee 100644 --- a/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.types +++ b/tests/baselines/reference/import_unneeded-require-when-referenecing-aliased-type-throug-array.types @@ -1,29 +1,29 @@ === tests/cases/compiler/a.ts === /// import ITest = require('ITest'); ->ITest : any, Symbol(ITest, Decl(a.ts, 0, 0)) +>ITest : any var testData: ITest[]; ->testData : ITest[], Symbol(testData, Decl(a.ts, 2, 3)) ->ITest : ITest, Symbol(ITest, Decl(a.ts, 0, 0)) +>testData : ITest[] +>ITest : ITest var p = testData[0].name; ->p : string, Symbol(p, Decl(a.ts, 3, 3)) ->testData[0].name : string, Symbol(ITest.name, Decl(b.ts, 1, 20)) +>p : string +>testData[0].name : string >testData[0] : ITest ->testData : ITest[], Symbol(testData, Decl(a.ts, 2, 3)) +>testData : ITest[] >0 : number ->name : string, Symbol(ITest.name, Decl(b.ts, 1, 20)) +>name : string === tests/cases/compiler/b.ts === declare module "ITest" { interface Name { ->Name : Name, Symbol(Name, Decl(b.ts, 0, 24)) +>Name : Name name: string; ->name : string, Symbol(name, Decl(b.ts, 1, 20)) +>name : string } export = Name; ->Name : Name, Symbol(Name, Decl(b.ts, 0, 24)) +>Name : Name } diff --git a/tests/baselines/reference/import_var-referencing-an-imported-module-alias.symbols b/tests/baselines/reference/import_var-referencing-an-imported-module-alias.symbols new file mode 100644 index 0000000000000..0cc6d0aa9a15b --- /dev/null +++ b/tests/baselines/reference/import_var-referencing-an-imported-module-alias.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/consumer.ts === + +import host = require("host"); +>host : Symbol(host, Decl(consumer.ts, 0, 0)) + +var hostVar = host; +>hostVar : Symbol(hostVar, Decl(consumer.ts, 2, 3)) +>host : Symbol(host, Decl(consumer.ts, 0, 0)) + +var v = new hostVar.Host(); +>v : Symbol(v, Decl(consumer.ts, 3, 3)) +>hostVar.Host : Symbol(host.Host, Decl(host.ts, 0, 0)) +>hostVar : Symbol(hostVar, Decl(consumer.ts, 2, 3)) +>Host : Symbol(host.Host, Decl(host.ts, 0, 0)) + +=== tests/cases/compiler/host.ts === +export class Host { } +>Host : Symbol(Host, Decl(host.ts, 0, 0)) + diff --git a/tests/baselines/reference/import_var-referencing-an-imported-module-alias.types b/tests/baselines/reference/import_var-referencing-an-imported-module-alias.types index 1dc44c8f4ad54..137b339347a63 100644 --- a/tests/baselines/reference/import_var-referencing-an-imported-module-alias.types +++ b/tests/baselines/reference/import_var-referencing-an-imported-module-alias.types @@ -1,20 +1,20 @@ === tests/cases/compiler/consumer.ts === import host = require("host"); ->host : typeof host, Symbol(host, Decl(consumer.ts, 0, 0)) +>host : typeof host var hostVar = host; ->hostVar : typeof host, Symbol(hostVar, Decl(consumer.ts, 2, 3)) ->host : typeof host, Symbol(host, Decl(consumer.ts, 0, 0)) +>hostVar : typeof host +>host : typeof host var v = new hostVar.Host(); ->v : host.Host, Symbol(v, Decl(consumer.ts, 3, 3)) +>v : host.Host >new hostVar.Host() : host.Host ->hostVar.Host : typeof host.Host, Symbol(host.Host, Decl(host.ts, 0, 0)) ->hostVar : typeof host, Symbol(hostVar, Decl(consumer.ts, 2, 3)) ->Host : typeof host.Host, Symbol(host.Host, Decl(host.ts, 0, 0)) +>hostVar.Host : typeof host.Host +>hostVar : typeof host +>Host : typeof host.Host === tests/cases/compiler/host.ts === export class Host { } ->Host : Host, Symbol(Host, Decl(host.ts, 0, 0)) +>Host : Host diff --git a/tests/baselines/reference/importedAliasesInTypePositions.symbols b/tests/baselines/reference/importedAliasesInTypePositions.symbols new file mode 100644 index 0000000000000..50a6b582655c3 --- /dev/null +++ b/tests/baselines/reference/importedAliasesInTypePositions.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/file2.ts === +import RT_ALIAS = require("file1"); +>RT_ALIAS : Symbol(RT_ALIAS, Decl(file2.ts, 0, 0)) + +import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; +>ReferredTo : Symbol(ReferredTo, Decl(file2.ts, 0, 35)) +>RT_ALIAS : Symbol(RT_ALIAS, Decl(file1.ts, 0, 0)) +>elaborate : Symbol(RT_ALIAS.elaborate, Decl(file1.ts, 0, 0)) +>nested : Symbol(RT_ALIAS.elaborate.nested, Decl(file1.ts, 0, 24)) +>mod : Symbol(RT_ALIAS.elaborate.nested.mod, Decl(file1.ts, 0, 31)) +>name : Symbol(RT_ALIAS.elaborate.nested.mod.name, Decl(file1.ts, 0, 35)) +>ReferredTo : Symbol(ReferredTo, Decl(file1.ts, 0, 41)) + +export module ImportingModule { +>ImportingModule : Symbol(ImportingModule, Decl(file2.ts, 1, 66)) + + class UsesReferredType { +>UsesReferredType : Symbol(UsesReferredType, Decl(file2.ts, 3, 31)) + + constructor(private referred: ReferredTo) { } +>referred : Symbol(referred, Decl(file2.ts, 5, 20)) +>ReferredTo : Symbol(ReferredTo, Decl(file2.ts, 0, 35)) + } +} +=== tests/cases/compiler/file1.ts === +export module elaborate.nested.mod.name { +>elaborate : Symbol(elaborate, Decl(file1.ts, 0, 0)) +>nested : Symbol(nested, Decl(file1.ts, 0, 24)) +>mod : Symbol(mod, Decl(file1.ts, 0, 31)) +>name : Symbol(name, Decl(file1.ts, 0, 35)) + + export class ReferredTo { +>ReferredTo : Symbol(ReferredTo, Decl(file1.ts, 0, 41)) + + doSomething(): void { +>doSomething : Symbol(doSomething, Decl(file1.ts, 1, 29)) + } + } +} + diff --git a/tests/baselines/reference/importedAliasesInTypePositions.types b/tests/baselines/reference/importedAliasesInTypePositions.types index 82e02f8959161..ed78188d2755c 100644 --- a/tests/baselines/reference/importedAliasesInTypePositions.types +++ b/tests/baselines/reference/importedAliasesInTypePositions.types @@ -1,39 +1,39 @@ === tests/cases/compiler/file2.ts === import RT_ALIAS = require("file1"); ->RT_ALIAS : typeof RT_ALIAS, Symbol(RT_ALIAS, Decl(file2.ts, 0, 0)) +>RT_ALIAS : typeof RT_ALIAS import ReferredTo = RT_ALIAS.elaborate.nested.mod.name.ReferredTo; ->ReferredTo : typeof ReferredTo, Symbol(ReferredTo, Decl(file2.ts, 0, 35)) ->RT_ALIAS : typeof RT_ALIAS, Symbol(RT_ALIAS, Decl(file1.ts, 0, 0)) ->elaborate : typeof RT_ALIAS.elaborate, Symbol(RT_ALIAS.elaborate, Decl(file1.ts, 0, 0)) ->nested : typeof RT_ALIAS.elaborate.nested, Symbol(RT_ALIAS.elaborate.nested, Decl(file1.ts, 0, 24)) ->mod : typeof RT_ALIAS.elaborate.nested.mod, Symbol(RT_ALIAS.elaborate.nested.mod, Decl(file1.ts, 0, 31)) ->name : typeof RT_ALIAS.elaborate.nested.mod.name, Symbol(RT_ALIAS.elaborate.nested.mod.name, Decl(file1.ts, 0, 35)) ->ReferredTo : ReferredTo, Symbol(ReferredTo, Decl(file1.ts, 0, 41)) +>ReferredTo : typeof ReferredTo +>RT_ALIAS : typeof RT_ALIAS +>elaborate : typeof RT_ALIAS.elaborate +>nested : typeof RT_ALIAS.elaborate.nested +>mod : typeof RT_ALIAS.elaborate.nested.mod +>name : typeof RT_ALIAS.elaborate.nested.mod.name +>ReferredTo : ReferredTo export module ImportingModule { ->ImportingModule : typeof ImportingModule, Symbol(ImportingModule, Decl(file2.ts, 1, 66)) +>ImportingModule : typeof ImportingModule class UsesReferredType { ->UsesReferredType : UsesReferredType, Symbol(UsesReferredType, Decl(file2.ts, 3, 31)) +>UsesReferredType : UsesReferredType constructor(private referred: ReferredTo) { } ->referred : ReferredTo, Symbol(referred, Decl(file2.ts, 5, 20)) ->ReferredTo : ReferredTo, Symbol(ReferredTo, Decl(file2.ts, 0, 35)) +>referred : ReferredTo +>ReferredTo : ReferredTo } } === tests/cases/compiler/file1.ts === export module elaborate.nested.mod.name { ->elaborate : typeof elaborate, Symbol(elaborate, Decl(file1.ts, 0, 0)) ->nested : typeof nested, Symbol(nested, Decl(file1.ts, 0, 24)) ->mod : typeof mod, Symbol(mod, Decl(file1.ts, 0, 31)) ->name : typeof name, Symbol(name, Decl(file1.ts, 0, 35)) +>elaborate : typeof elaborate +>nested : typeof nested +>mod : typeof mod +>name : typeof name export class ReferredTo { ->ReferredTo : ReferredTo, Symbol(ReferredTo, Decl(file1.ts, 0, 41)) +>ReferredTo : ReferredTo doSomething(): void { ->doSomething : () => void, Symbol(doSomething, Decl(file1.ts, 1, 29)) +>doSomething : () => void } } } diff --git a/tests/baselines/reference/importedModuleClassNameClash.symbols b/tests/baselines/reference/importedModuleClassNameClash.symbols new file mode 100644 index 0000000000000..f394c48dde421 --- /dev/null +++ b/tests/baselines/reference/importedModuleClassNameClash.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/importedModuleClassNameClash.ts === +import foo = m1; +>foo : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 0), Decl(importedModuleClassNameClash.ts, 2, 20)) +>m1 : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 16)) + +export module m1 { } +>m1 : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 16)) + +class foo { } +>foo : Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 0), Decl(importedModuleClassNameClash.ts, 2, 20)) + diff --git a/tests/baselines/reference/importedModuleClassNameClash.types b/tests/baselines/reference/importedModuleClassNameClash.types index 260afcd291764..6720403e12747 100644 --- a/tests/baselines/reference/importedModuleClassNameClash.types +++ b/tests/baselines/reference/importedModuleClassNameClash.types @@ -1,11 +1,11 @@ === tests/cases/compiler/importedModuleClassNameClash.ts === import foo = m1; ->foo : typeof foo, Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 0), Decl(importedModuleClassNameClash.ts, 2, 20)) ->m1 : any, Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 16)) +>foo : typeof foo +>m1 : any export module m1 { } ->m1 : any, Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 16)) +>m1 : any class foo { } ->foo : foo, Symbol(foo, Decl(importedModuleClassNameClash.ts, 0, 0), Decl(importedModuleClassNameClash.ts, 2, 20)) +>foo : foo diff --git a/tests/baselines/reference/inOperatorWithFunction.symbols b/tests/baselines/reference/inOperatorWithFunction.symbols new file mode 100644 index 0000000000000..1e915ba107d80 --- /dev/null +++ b/tests/baselines/reference/inOperatorWithFunction.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/inOperatorWithFunction.ts === +var fn = function (val: boolean) { return val; } +>fn : Symbol(fn, Decl(inOperatorWithFunction.ts, 0, 3)) +>val : Symbol(val, Decl(inOperatorWithFunction.ts, 0, 19)) +>val : Symbol(val, Decl(inOperatorWithFunction.ts, 0, 19)) + +fn("a" in { "a": true }); +>fn : Symbol(fn, Decl(inOperatorWithFunction.ts, 0, 3)) + diff --git a/tests/baselines/reference/inOperatorWithFunction.types b/tests/baselines/reference/inOperatorWithFunction.types index 1e4ddc120ab22..e85a86632c7c4 100644 --- a/tests/baselines/reference/inOperatorWithFunction.types +++ b/tests/baselines/reference/inOperatorWithFunction.types @@ -1,13 +1,13 @@ === tests/cases/compiler/inOperatorWithFunction.ts === var fn = function (val: boolean) { return val; } ->fn : (val: boolean) => boolean, Symbol(fn, Decl(inOperatorWithFunction.ts, 0, 3)) +>fn : (val: boolean) => boolean >function (val: boolean) { return val; } : (val: boolean) => boolean ->val : boolean, Symbol(val, Decl(inOperatorWithFunction.ts, 0, 19)) ->val : boolean, Symbol(val, Decl(inOperatorWithFunction.ts, 0, 19)) +>val : boolean +>val : boolean fn("a" in { "a": true }); >fn("a" in { "a": true }) : boolean ->fn : (val: boolean) => boolean, Symbol(fn, Decl(inOperatorWithFunction.ts, 0, 3)) +>fn : (val: boolean) => boolean >"a" in { "a": true } : boolean >"a" : string >{ "a": true } : { "a": boolean; } diff --git a/tests/baselines/reference/inOperatorWithGeneric.symbols b/tests/baselines/reference/inOperatorWithGeneric.symbols new file mode 100644 index 0000000000000..7a84d7dce6be6 --- /dev/null +++ b/tests/baselines/reference/inOperatorWithGeneric.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/inOperatorWithGeneric.ts === +class C { +>C : Symbol(C, Decl(inOperatorWithGeneric.ts, 0, 0)) +>T : Symbol(T, Decl(inOperatorWithGeneric.ts, 0, 8)) + + foo(x:T) { +>foo : Symbol(foo, Decl(inOperatorWithGeneric.ts, 0, 12)) +>x : Symbol(x, Decl(inOperatorWithGeneric.ts, 1, 8)) +>T : Symbol(T, Decl(inOperatorWithGeneric.ts, 0, 8)) + + for (var p in x) { +>p : Symbol(p, Decl(inOperatorWithGeneric.ts, 2, 16)) +>x : Symbol(x, Decl(inOperatorWithGeneric.ts, 1, 8)) + } + } +} diff --git a/tests/baselines/reference/inOperatorWithGeneric.types b/tests/baselines/reference/inOperatorWithGeneric.types index 88963ac8c5b4d..2048e11082ab5 100644 --- a/tests/baselines/reference/inOperatorWithGeneric.types +++ b/tests/baselines/reference/inOperatorWithGeneric.types @@ -1,16 +1,16 @@ === tests/cases/compiler/inOperatorWithGeneric.ts === class C { ->C : C, Symbol(C, Decl(inOperatorWithGeneric.ts, 0, 0)) ->T : T, Symbol(T, Decl(inOperatorWithGeneric.ts, 0, 8)) +>C : C +>T : T foo(x:T) { ->foo : (x: T) => void, Symbol(foo, Decl(inOperatorWithGeneric.ts, 0, 12)) ->x : T, Symbol(x, Decl(inOperatorWithGeneric.ts, 1, 8)) ->T : T, Symbol(T, Decl(inOperatorWithGeneric.ts, 0, 8)) +>foo : (x: T) => void +>x : T +>T : T for (var p in x) { ->p : any, Symbol(p, Decl(inOperatorWithGeneric.ts, 2, 16)) ->x : T, Symbol(x, Decl(inOperatorWithGeneric.ts, 1, 8)) +>p : any +>x : T } } } diff --git a/tests/baselines/reference/inOperatorWithValidOperands.symbols b/tests/baselines/reference/inOperatorWithValidOperands.symbols new file mode 100644 index 0000000000000..07e0bd4f6de1b --- /dev/null +++ b/tests/baselines/reference/inOperatorWithValidOperands.symbols @@ -0,0 +1,93 @@ +=== tests/cases/conformance/expressions/binaryOperators/inOperator/inOperatorWithValidOperands.ts === +var x: any; +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +// valid left operands +// the left operand is required to be of type Any, the String primitive type, or the Number primitive type +var a1: string; +>a1 : Symbol(a1, Decl(inOperatorWithValidOperands.ts, 4, 3)) + +var a2: number; +>a2 : Symbol(a2, Decl(inOperatorWithValidOperands.ts, 5, 3)) + +var ra1 = x in x; +>ra1 : Symbol(ra1, Decl(inOperatorWithValidOperands.ts, 7, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +var ra2 = a1 in x; +>ra2 : Symbol(ra2, Decl(inOperatorWithValidOperands.ts, 8, 3)) +>a1 : Symbol(a1, Decl(inOperatorWithValidOperands.ts, 4, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +var ra3 = a2 in x; +>ra3 : Symbol(ra3, Decl(inOperatorWithValidOperands.ts, 9, 3)) +>a2 : Symbol(a2, Decl(inOperatorWithValidOperands.ts, 5, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +var ra4 = '' in x; +>ra4 : Symbol(ra4, Decl(inOperatorWithValidOperands.ts, 10, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +var ra5 = 0 in x; +>ra5 : Symbol(ra5, Decl(inOperatorWithValidOperands.ts, 11, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +// valid right operands +// the right operand is required to be of type Any, an object type, or a type parameter type +var b1: {}; +>b1 : Symbol(b1, Decl(inOperatorWithValidOperands.ts, 15, 3)) + +var rb1 = x in b1; +>rb1 : Symbol(rb1, Decl(inOperatorWithValidOperands.ts, 17, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>b1 : Symbol(b1, Decl(inOperatorWithValidOperands.ts, 15, 3)) + +var rb2 = x in {}; +>rb2 : Symbol(rb2, Decl(inOperatorWithValidOperands.ts, 18, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) + +function foo(t: T) { +>foo : Symbol(foo, Decl(inOperatorWithValidOperands.ts, 18, 18)) +>T : Symbol(T, Decl(inOperatorWithValidOperands.ts, 20, 13)) +>t : Symbol(t, Decl(inOperatorWithValidOperands.ts, 20, 16)) +>T : Symbol(T, Decl(inOperatorWithValidOperands.ts, 20, 13)) + + var rb3 = x in t; +>rb3 : Symbol(rb3, Decl(inOperatorWithValidOperands.ts, 21, 7)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>t : Symbol(t, Decl(inOperatorWithValidOperands.ts, 20, 16)) +} + +interface X { x: number } +>X : Symbol(X, Decl(inOperatorWithValidOperands.ts, 22, 1)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 24, 13)) + +interface Y { y: number } +>Y : Symbol(Y, Decl(inOperatorWithValidOperands.ts, 24, 25)) +>y : Symbol(y, Decl(inOperatorWithValidOperands.ts, 25, 13)) + +var c1: X | Y; +>c1 : Symbol(c1, Decl(inOperatorWithValidOperands.ts, 27, 3)) +>X : Symbol(X, Decl(inOperatorWithValidOperands.ts, 22, 1)) +>Y : Symbol(Y, Decl(inOperatorWithValidOperands.ts, 24, 25)) + +var c2: X; +>c2 : Symbol(c2, Decl(inOperatorWithValidOperands.ts, 28, 3)) +>X : Symbol(X, Decl(inOperatorWithValidOperands.ts, 22, 1)) + +var c3: Y; +>c3 : Symbol(c3, Decl(inOperatorWithValidOperands.ts, 29, 3)) +>Y : Symbol(Y, Decl(inOperatorWithValidOperands.ts, 24, 25)) + +var rc1 = x in c1; +>rc1 : Symbol(rc1, Decl(inOperatorWithValidOperands.ts, 31, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>c1 : Symbol(c1, Decl(inOperatorWithValidOperands.ts, 27, 3)) + +var rc2 = x in (c2 || c3); +>rc2 : Symbol(rc2, Decl(inOperatorWithValidOperands.ts, 32, 3)) +>x : Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>c2 : Symbol(c2, Decl(inOperatorWithValidOperands.ts, 28, 3)) +>c3 : Symbol(c3, Decl(inOperatorWithValidOperands.ts, 29, 3)) + diff --git a/tests/baselines/reference/inOperatorWithValidOperands.types b/tests/baselines/reference/inOperatorWithValidOperands.types index 4c21247965f41..0cca583e683c1 100644 --- a/tests/baselines/reference/inOperatorWithValidOperands.types +++ b/tests/baselines/reference/inOperatorWithValidOperands.types @@ -1,108 +1,108 @@ === tests/cases/conformance/expressions/binaryOperators/inOperator/inOperatorWithValidOperands.ts === var x: any; ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : any // valid left operands // the left operand is required to be of type Any, the String primitive type, or the Number primitive type var a1: string; ->a1 : string, Symbol(a1, Decl(inOperatorWithValidOperands.ts, 4, 3)) +>a1 : string var a2: number; ->a2 : number, Symbol(a2, Decl(inOperatorWithValidOperands.ts, 5, 3)) +>a2 : number var ra1 = x in x; ->ra1 : boolean, Symbol(ra1, Decl(inOperatorWithValidOperands.ts, 7, 3)) +>ra1 : boolean >x in x : boolean ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : any +>x : any var ra2 = a1 in x; ->ra2 : boolean, Symbol(ra2, Decl(inOperatorWithValidOperands.ts, 8, 3)) +>ra2 : boolean >a1 in x : boolean ->a1 : string, Symbol(a1, Decl(inOperatorWithValidOperands.ts, 4, 3)) ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>a1 : string +>x : any var ra3 = a2 in x; ->ra3 : boolean, Symbol(ra3, Decl(inOperatorWithValidOperands.ts, 9, 3)) +>ra3 : boolean >a2 in x : boolean ->a2 : number, Symbol(a2, Decl(inOperatorWithValidOperands.ts, 5, 3)) ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>a2 : number +>x : any var ra4 = '' in x; ->ra4 : boolean, Symbol(ra4, Decl(inOperatorWithValidOperands.ts, 10, 3)) +>ra4 : boolean >'' in x : boolean >'' : string ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : any var ra5 = 0 in x; ->ra5 : boolean, Symbol(ra5, Decl(inOperatorWithValidOperands.ts, 11, 3)) +>ra5 : boolean >0 in x : boolean >0 : number ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : any // valid right operands // the right operand is required to be of type Any, an object type, or a type parameter type var b1: {}; ->b1 : {}, Symbol(b1, Decl(inOperatorWithValidOperands.ts, 15, 3)) +>b1 : {} var rb1 = x in b1; ->rb1 : boolean, Symbol(rb1, Decl(inOperatorWithValidOperands.ts, 17, 3)) +>rb1 : boolean >x in b1 : boolean ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) ->b1 : {}, Symbol(b1, Decl(inOperatorWithValidOperands.ts, 15, 3)) +>x : any +>b1 : {} var rb2 = x in {}; ->rb2 : boolean, Symbol(rb2, Decl(inOperatorWithValidOperands.ts, 18, 3)) +>rb2 : boolean >x in {} : boolean ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : any >{} : {} function foo(t: T) { ->foo : (t: T) => void, Symbol(foo, Decl(inOperatorWithValidOperands.ts, 18, 18)) ->T : T, Symbol(T, Decl(inOperatorWithValidOperands.ts, 20, 13)) ->t : T, Symbol(t, Decl(inOperatorWithValidOperands.ts, 20, 16)) ->T : T, Symbol(T, Decl(inOperatorWithValidOperands.ts, 20, 13)) +>foo : (t: T) => void +>T : T +>t : T +>T : T var rb3 = x in t; ->rb3 : boolean, Symbol(rb3, Decl(inOperatorWithValidOperands.ts, 21, 7)) +>rb3 : boolean >x in t : boolean ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) ->t : T, Symbol(t, Decl(inOperatorWithValidOperands.ts, 20, 16)) +>x : any +>t : T } interface X { x: number } ->X : X, Symbol(X, Decl(inOperatorWithValidOperands.ts, 22, 1)) ->x : number, Symbol(x, Decl(inOperatorWithValidOperands.ts, 24, 13)) +>X : X +>x : number interface Y { y: number } ->Y : Y, Symbol(Y, Decl(inOperatorWithValidOperands.ts, 24, 25)) ->y : number, Symbol(y, Decl(inOperatorWithValidOperands.ts, 25, 13)) +>Y : Y +>y : number var c1: X | Y; ->c1 : X | Y, Symbol(c1, Decl(inOperatorWithValidOperands.ts, 27, 3)) ->X : X, Symbol(X, Decl(inOperatorWithValidOperands.ts, 22, 1)) ->Y : Y, Symbol(Y, Decl(inOperatorWithValidOperands.ts, 24, 25)) +>c1 : X | Y +>X : X +>Y : Y var c2: X; ->c2 : X, Symbol(c2, Decl(inOperatorWithValidOperands.ts, 28, 3)) ->X : X, Symbol(X, Decl(inOperatorWithValidOperands.ts, 22, 1)) +>c2 : X +>X : X var c3: Y; ->c3 : Y, Symbol(c3, Decl(inOperatorWithValidOperands.ts, 29, 3)) ->Y : Y, Symbol(Y, Decl(inOperatorWithValidOperands.ts, 24, 25)) +>c3 : Y +>Y : Y var rc1 = x in c1; ->rc1 : boolean, Symbol(rc1, Decl(inOperatorWithValidOperands.ts, 31, 3)) +>rc1 : boolean >x in c1 : boolean ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) ->c1 : X | Y, Symbol(c1, Decl(inOperatorWithValidOperands.ts, 27, 3)) +>x : any +>c1 : X | Y var rc2 = x in (c2 || c3); ->rc2 : boolean, Symbol(rc2, Decl(inOperatorWithValidOperands.ts, 32, 3)) +>rc2 : boolean >x in (c2 || c3) : boolean ->x : any, Symbol(x, Decl(inOperatorWithValidOperands.ts, 0, 3)) +>x : any >(c2 || c3) : X | Y >c2 || c3 : X | Y ->c2 : X, Symbol(c2, Decl(inOperatorWithValidOperands.ts, 28, 3)) ->c3 : Y, Symbol(c3, Decl(inOperatorWithValidOperands.ts, 29, 3)) +>c2 : X +>c3 : Y diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherType.symbols b/tests/baselines/reference/incrementOperatorWithAnyOtherType.symbols new file mode 100644 index 0000000000000..d0af700ea8e81 --- /dev/null +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherType.symbols @@ -0,0 +1,154 @@ +=== tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithAnyOtherType.ts === +// ++ operator on any type + +var ANY: any; +>ANY : Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) + +var ANY1; +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +var ANY2: any[] = ["", ""]; +>ANY2 : Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) + +var obj = {x:1,y:null}; +>obj : Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) +>x : Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) +>y : Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) + +class A { +>A : Symbol(A, Decl(incrementOperatorWithAnyOtherType.ts, 5, 23)) + + public a: any; +>a : Symbol(a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +} +module M { +>M : Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) + + export var n: any; +>n : Symbol(n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +} +var objA = new A(); +>objA : Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) +>A : Symbol(A, Decl(incrementOperatorWithAnyOtherType.ts, 5, 23)) + +// any type var +var ResultIsNumber1 = ++ANY; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(incrementOperatorWithAnyOtherType.ts, 15, 3)) +>ANY : Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) + +var ResultIsNumber2 = ++ANY1; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(incrementOperatorWithAnyOtherType.ts, 16, 3)) +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +var ResultIsNumber3 = ANY1++; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(incrementOperatorWithAnyOtherType.ts, 18, 3)) +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +var ResultIsNumber4 = ANY1++; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(incrementOperatorWithAnyOtherType.ts, 19, 3)) +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +// expressions +var ResultIsNumber5 = ++ANY2[0]; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(incrementOperatorWithAnyOtherType.ts, 22, 3)) +>ANY2 : Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) + +var ResultIsNumber6 = ++obj.x; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(incrementOperatorWithAnyOtherType.ts, 23, 3)) +>obj.x : Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj : Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) +>x : Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) + +var ResultIsNumber7 = ++obj.y; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(incrementOperatorWithAnyOtherType.ts, 24, 3)) +>obj.y : Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj : Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) +>y : Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) + +var ResultIsNumber8 = ++objA.a; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(incrementOperatorWithAnyOtherType.ts, 25, 3)) +>objA.a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) + +var ResultIsNumber = ++M.n; +>ResultIsNumber : Symbol(ResultIsNumber, Decl(incrementOperatorWithAnyOtherType.ts, 26, 3)) +>M.n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) + +var ResultIsNumber9 = ANY2[0]++; +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(incrementOperatorWithAnyOtherType.ts, 28, 3)) +>ANY2 : Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) + +var ResultIsNumber10 = obj.x++; +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(incrementOperatorWithAnyOtherType.ts, 29, 3)) +>obj.x : Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj : Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) +>x : Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) + +var ResultIsNumber11 = obj.y++; +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(incrementOperatorWithAnyOtherType.ts, 30, 3)) +>obj.y : Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj : Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) +>y : Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) + +var ResultIsNumber12 = objA.a++; +>ResultIsNumber12 : Symbol(ResultIsNumber12, Decl(incrementOperatorWithAnyOtherType.ts, 31, 3)) +>objA.a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) + +var ResultIsNumber13 = M.n++; +>ResultIsNumber13 : Symbol(ResultIsNumber13, Decl(incrementOperatorWithAnyOtherType.ts, 32, 3)) +>M.n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) + +// miss assignment opertors +++ANY; +>ANY : Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) + +++ANY1; +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +++ANY2[0]; +>ANY2 : Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) + +++ANY, ++ANY1; +>ANY : Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +++objA.a; +>objA.a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) + +++M.n; +>M.n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) + +ANY++; +>ANY : Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) + +ANY1++; +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +ANY2[0]++; +>ANY2 : Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) + +ANY++, ANY1++; +>ANY : Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY1 : Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) + +objA.a++; +>objA.a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) + +M.n++; +>M.n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M : Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) + diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherType.types b/tests/baselines/reference/incrementOperatorWithAnyOtherType.types index 179604e0b2b18..3643b646acead 100644 --- a/tests/baselines/reference/incrementOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherType.types @@ -2,198 +2,198 @@ // ++ operator on any type var ANY: any; ->ANY : any, Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any var ANY1; ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ANY2: any[] = ["", ""]; ->ANY2 : any[], Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >["", ""] : string[] >"" : string >"" : string var obj = {x:1,y:null}; ->obj : { x: number; y: any; }, Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) +>obj : { x: number; y: any; } >{x:1,y:null} : { x: number; y: null; } ->x : number, Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) +>x : number >1 : number ->y : null, Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) +>y : null >null : null class A { ->A : A, Symbol(A, Decl(incrementOperatorWithAnyOtherType.ts, 5, 23)) +>A : A public a: any; ->a : any, Symbol(a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>a : any } module M { ->M : typeof M, Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) +>M : typeof M export var n: any; ->n : any, Symbol(n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>n : any } var objA = new A(); ->objA : A, Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(incrementOperatorWithAnyOtherType.ts, 5, 23)) +>A : typeof A // any type var var ResultIsNumber1 = ++ANY; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(incrementOperatorWithAnyOtherType.ts, 15, 3)) +>ResultIsNumber1 : number >++ANY : number ->ANY : any, Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any var ResultIsNumber2 = ++ANY1; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(incrementOperatorWithAnyOtherType.ts, 16, 3)) +>ResultIsNumber2 : number >++ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ResultIsNumber3 = ANY1++; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(incrementOperatorWithAnyOtherType.ts, 18, 3)) +>ResultIsNumber3 : number >ANY1++ : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ResultIsNumber4 = ANY1++; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(incrementOperatorWithAnyOtherType.ts, 19, 3)) +>ResultIsNumber4 : number >ANY1++ : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any // expressions var ResultIsNumber5 = ++ANY2[0]; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(incrementOperatorWithAnyOtherType.ts, 22, 3)) +>ResultIsNumber5 : number >++ANY2[0] : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number var ResultIsNumber6 = ++obj.x; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(incrementOperatorWithAnyOtherType.ts, 23, 3)) +>ResultIsNumber6 : number >++obj.x : number ->obj.x : number, Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) ->x : number, Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj.x : number +>obj : { x: number; y: any; } +>x : number var ResultIsNumber7 = ++obj.y; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(incrementOperatorWithAnyOtherType.ts, 24, 3)) +>ResultIsNumber7 : number >++obj.y : number ->obj.y : any, Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) ->y : any, Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj.y : any +>obj : { x: number; y: any; } +>y : any var ResultIsNumber8 = ++objA.a; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(incrementOperatorWithAnyOtherType.ts, 25, 3)) +>ResultIsNumber8 : number >++objA.a : number ->objA.a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any var ResultIsNumber = ++M.n; ->ResultIsNumber : number, Symbol(ResultIsNumber, Decl(incrementOperatorWithAnyOtherType.ts, 26, 3)) +>ResultIsNumber : number >++M.n : number ->M.n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any var ResultIsNumber9 = ANY2[0]++; ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(incrementOperatorWithAnyOtherType.ts, 28, 3)) +>ResultIsNumber9 : number >ANY2[0]++ : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number var ResultIsNumber10 = obj.x++; ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(incrementOperatorWithAnyOtherType.ts, 29, 3)) +>ResultIsNumber10 : number >obj.x++ : number ->obj.x : number, Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) ->x : number, Symbol(x, Decl(incrementOperatorWithAnyOtherType.ts, 5, 11)) +>obj.x : number +>obj : { x: number; y: any; } +>x : number var ResultIsNumber11 = obj.y++; ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(incrementOperatorWithAnyOtherType.ts, 30, 3)) +>ResultIsNumber11 : number >obj.y++ : number ->obj.y : any, Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) ->obj : { x: number; y: any; }, Symbol(obj, Decl(incrementOperatorWithAnyOtherType.ts, 5, 3)) ->y : any, Symbol(y, Decl(incrementOperatorWithAnyOtherType.ts, 5, 15)) +>obj.y : any +>obj : { x: number; y: any; } +>y : any var ResultIsNumber12 = objA.a++; ->ResultIsNumber12 : number, Symbol(ResultIsNumber12, Decl(incrementOperatorWithAnyOtherType.ts, 31, 3)) +>ResultIsNumber12 : number >objA.a++ : number ->objA.a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any var ResultIsNumber13 = M.n++; ->ResultIsNumber13 : number, Symbol(ResultIsNumber13, Decl(incrementOperatorWithAnyOtherType.ts, 32, 3)) +>ResultIsNumber13 : number >M.n++ : number ->M.n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any // miss assignment opertors ++ANY; >++ANY : number ->ANY : any, Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any ++ANY1; >++ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any ++ANY2[0]; >++ANY2[0] : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number ++ANY, ++ANY1; >++ANY, ++ANY1 : number >++ANY : number ->ANY : any, Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any >++ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any ++objA.a; >++objA.a : number ->objA.a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any ++M.n; >++M.n : number ->M.n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any ANY++; >ANY++ : number ->ANY : any, Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any ANY1++; >ANY1++ : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any ANY2[0]++; >ANY2[0]++ : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(incrementOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number ANY++, ANY1++; >ANY++, ANY1++ : number >ANY++ : number ->ANY : any, Symbol(ANY, Decl(incrementOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any >ANY1++ : number ->ANY1 : any, Symbol(ANY1, Decl(incrementOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any objA.a++; >objA.a++ : number ->objA.a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithAnyOtherType.ts, 12, 3)) ->a : any, Symbol(A.a, Decl(incrementOperatorWithAnyOtherType.ts, 6, 9)) +>objA.a : any +>objA : A +>a : any M.n++; >M.n++ : number ->M.n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithAnyOtherType.ts, 8, 1)) ->n : any, Symbol(M.n, Decl(incrementOperatorWithAnyOtherType.ts, 10, 14)) +>M.n : any +>M : typeof M +>n : any diff --git a/tests/baselines/reference/incrementOperatorWithNumberType.symbols b/tests/baselines/reference/incrementOperatorWithNumberType.symbols new file mode 100644 index 0000000000000..3523e15135cd1 --- /dev/null +++ b/tests/baselines/reference/incrementOperatorWithNumberType.symbols @@ -0,0 +1,112 @@ +=== tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithNumberType.ts === +// ++ operator on number type +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) + +var NUMBER1: number[] = [1, 2]; +>NUMBER1 : Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) + +class A { +>A : Symbol(A, Decl(incrementOperatorWithNumberType.ts, 2, 31)) + + public a: number; +>a : Symbol(a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +} +module M { +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) + + export var n: number; +>n : Symbol(n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>A : Symbol(A, Decl(incrementOperatorWithNumberType.ts, 2, 31)) + +// number type var +var ResultIsNumber1 = ++NUMBER; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(incrementOperatorWithNumberType.ts, 14, 3)) +>NUMBER : Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) + +var ResultIsNumber2 = NUMBER++; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(incrementOperatorWithNumberType.ts, 16, 3)) +>NUMBER : Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) + +// expressions +var ResultIsNumber3 = ++objA.a; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(incrementOperatorWithNumberType.ts, 19, 3)) +>objA.a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) + +var ResultIsNumber4 = ++M.n; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(incrementOperatorWithNumberType.ts, 20, 3)) +>M.n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) + +var ResultIsNumber5 = objA.a++; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(incrementOperatorWithNumberType.ts, 22, 3)) +>objA.a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) + +var ResultIsNumber6 = M.n++; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(incrementOperatorWithNumberType.ts, 23, 3)) +>M.n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) + +var ResultIsNumber7 = NUMBER1[0]++; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(incrementOperatorWithNumberType.ts, 24, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) + +// miss assignment operators +++NUMBER; +>NUMBER : Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) + +++NUMBER1[0]; +>NUMBER1 : Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) + +++objA.a; +>objA.a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) + +++M.n; +>M.n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) + +++objA.a, M.n; +>objA.a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>M.n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) + +NUMBER++; +>NUMBER : Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) + +NUMBER1[0]++; +>NUMBER1 : Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) + +objA.a++; +>objA.a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) + +M.n++; +>M.n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) + +objA.a++, M.n++; +>objA.a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA : Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>a : Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>M.n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M : Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>n : Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) + diff --git a/tests/baselines/reference/incrementOperatorWithNumberType.types b/tests/baselines/reference/incrementOperatorWithNumberType.types index a22c9e4a35185..21211a3848c0a 100644 --- a/tests/baselines/reference/incrementOperatorWithNumberType.types +++ b/tests/baselines/reference/incrementOperatorWithNumberType.types @@ -1,142 +1,142 @@ === tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithNumberType.ts === // ++ operator on number type var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var NUMBER1: number[] = [1, 2]; ->NUMBER1 : number[], Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >[1, 2] : number[] >1 : number >2 : number class A { ->A : A, Symbol(A, Decl(incrementOperatorWithNumberType.ts, 2, 31)) +>A : A public a: number; ->a : number, Symbol(a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>a : number } module M { ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) +>M : typeof M export var n: number; ->n : number, Symbol(n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>n : number } var objA = new A(); ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(incrementOperatorWithNumberType.ts, 2, 31)) +>A : typeof A // number type var var ResultIsNumber1 = ++NUMBER; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(incrementOperatorWithNumberType.ts, 14, 3)) +>ResultIsNumber1 : number >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsNumber2 = NUMBER++; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(incrementOperatorWithNumberType.ts, 16, 3)) +>ResultIsNumber2 : number >NUMBER++ : number ->NUMBER : number, Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number // expressions var ResultIsNumber3 = ++objA.a; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(incrementOperatorWithNumberType.ts, 19, 3)) +>ResultIsNumber3 : number >++objA.a : number ->objA.a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsNumber4 = ++M.n; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(incrementOperatorWithNumberType.ts, 20, 3)) +>ResultIsNumber4 : number >++M.n : number ->M.n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsNumber5 = objA.a++; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(incrementOperatorWithNumberType.ts, 22, 3)) +>ResultIsNumber5 : number >objA.a++ : number ->objA.a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsNumber6 = M.n++; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(incrementOperatorWithNumberType.ts, 23, 3)) +>ResultIsNumber6 : number >M.n++ : number ->M.n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsNumber7 = NUMBER1[0]++; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(incrementOperatorWithNumberType.ts, 24, 3)) +>ResultIsNumber7 : number >NUMBER1[0]++ : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number // miss assignment operators ++NUMBER; >++NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number ++NUMBER1[0]; >++NUMBER1[0] : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number ++objA.a; >++objA.a : number ->objA.a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number ++M.n; >++M.n : number ->M.n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number ++objA.a, M.n; >++objA.a, M.n : number >++objA.a : number ->objA.a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->M.n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>objA.a : number +>objA : A +>a : number +>M.n : number +>M : typeof M +>n : number NUMBER++; >NUMBER++ : number ->NUMBER : number, Symbol(NUMBER, Decl(incrementOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number NUMBER1[0]++; >NUMBER1[0]++ : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(incrementOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number objA.a++; >objA.a++ : number ->objA.a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number M.n++; >M.n++ : number ->M.n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number objA.a++, M.n++; >objA.a++, M.n++ : number >objA.a++ : number ->objA.a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) ->objA : A, Symbol(objA, Decl(incrementOperatorWithNumberType.ts, 11, 3)) ->a : number, Symbol(A.a, Decl(incrementOperatorWithNumberType.ts, 4, 9)) +>objA.a : number +>objA : A +>a : number >M.n++ : number ->M.n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) ->M : typeof M, Symbol(M, Decl(incrementOperatorWithNumberType.ts, 6, 1)) ->n : number, Symbol(M.n, Decl(incrementOperatorWithNumberType.ts, 8, 14)) +>M.n : number +>M : typeof M +>n : number diff --git a/tests/baselines/reference/indexClassByNumber.symbols b/tests/baselines/reference/indexClassByNumber.symbols new file mode 100644 index 0000000000000..068ec9484e3ad --- /dev/null +++ b/tests/baselines/reference/indexClassByNumber.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/indexClassByNumber.ts === +// Shouldn't be able to index a class instance by a number (unless it has declared a number index signature) + +class foo { } +>foo : Symbol(foo, Decl(indexClassByNumber.ts, 0, 0)) + +var f = new foo(); +>f : Symbol(f, Decl(indexClassByNumber.ts, 4, 3)) +>foo : Symbol(foo, Decl(indexClassByNumber.ts, 0, 0)) + +f[0] = 4; // Shouldn't be allowed +>f : Symbol(f, Decl(indexClassByNumber.ts, 4, 3)) + diff --git a/tests/baselines/reference/indexClassByNumber.types b/tests/baselines/reference/indexClassByNumber.types index 41609a9484e08..b1fb79f256a3d 100644 --- a/tests/baselines/reference/indexClassByNumber.types +++ b/tests/baselines/reference/indexClassByNumber.types @@ -2,17 +2,17 @@ // Shouldn't be able to index a class instance by a number (unless it has declared a number index signature) class foo { } ->foo : foo, Symbol(foo, Decl(indexClassByNumber.ts, 0, 0)) +>foo : foo var f = new foo(); ->f : foo, Symbol(f, Decl(indexClassByNumber.ts, 4, 3)) +>f : foo >new foo() : foo ->foo : typeof foo, Symbol(foo, Decl(indexClassByNumber.ts, 0, 0)) +>foo : typeof foo f[0] = 4; // Shouldn't be allowed >f[0] = 4 : number >f[0] : any ->f : foo, Symbol(f, Decl(indexClassByNumber.ts, 4, 3)) +>f : foo >0 : number >4 : number diff --git a/tests/baselines/reference/indexIntoEnum.symbols b/tests/baselines/reference/indexIntoEnum.symbols new file mode 100644 index 0000000000000..9b6a4a7427ac5 --- /dev/null +++ b/tests/baselines/reference/indexIntoEnum.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/indexIntoEnum.ts === +module M { +>M : Symbol(M, Decl(indexIntoEnum.ts, 0, 0)) + + enum E { } +>E : Symbol(E, Decl(indexIntoEnum.ts, 0, 10)) + + var x = E[0]; +>x : Symbol(x, Decl(indexIntoEnum.ts, 4, 7)) +>E : Symbol(E, Decl(indexIntoEnum.ts, 0, 10)) +} diff --git a/tests/baselines/reference/indexIntoEnum.types b/tests/baselines/reference/indexIntoEnum.types index 21d17d910daa0..3c0d91cd24019 100644 --- a/tests/baselines/reference/indexIntoEnum.types +++ b/tests/baselines/reference/indexIntoEnum.types @@ -1,13 +1,13 @@ === tests/cases/compiler/indexIntoEnum.ts === module M { ->M : typeof M, Symbol(M, Decl(indexIntoEnum.ts, 0, 0)) +>M : typeof M enum E { } ->E : E, Symbol(E, Decl(indexIntoEnum.ts, 0, 10)) +>E : E var x = E[0]; ->x : string, Symbol(x, Decl(indexIntoEnum.ts, 4, 7)) +>x : string >E[0] : string ->E : typeof E, Symbol(E, Decl(indexIntoEnum.ts, 0, 10)) +>E : typeof E >0 : number } diff --git a/tests/baselines/reference/indexSignatureWithoutTypeAnnotation1..symbols b/tests/baselines/reference/indexSignatureWithoutTypeAnnotation1..symbols new file mode 100644 index 0000000000000..7ab1bd72cd791 --- /dev/null +++ b/tests/baselines/reference/indexSignatureWithoutTypeAnnotation1..symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/indexSignatureWithoutTypeAnnotation1..ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/indexSignaturesInferentialTyping.symbols b/tests/baselines/reference/indexSignaturesInferentialTyping.symbols new file mode 100644 index 0000000000000..a34aa7a5cd186 --- /dev/null +++ b/tests/baselines/reference/indexSignaturesInferentialTyping.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/indexSignaturesInferentialTyping.ts === +function foo(items: { [index: number]: T }): T { return undefined; } +>foo : Symbol(foo, Decl(indexSignaturesInferentialTyping.ts, 0, 0)) +>T : Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 0, 13)) +>items : Symbol(items, Decl(indexSignaturesInferentialTyping.ts, 0, 16)) +>index : Symbol(index, Decl(indexSignaturesInferentialTyping.ts, 0, 26)) +>T : Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 0, 13)) +>T : Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 0, 13)) +>undefined : Symbol(undefined) + +function bar(items: { [index: string]: T }): T { return undefined; } +>bar : Symbol(bar, Decl(indexSignaturesInferentialTyping.ts, 0, 71)) +>T : Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 1, 13)) +>items : Symbol(items, Decl(indexSignaturesInferentialTyping.ts, 1, 16)) +>index : Symbol(index, Decl(indexSignaturesInferentialTyping.ts, 1, 26)) +>T : Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 1, 13)) +>T : Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 1, 13)) +>undefined : Symbol(undefined) + +var x1 = foo({ 0: 0, 1: 1 }); // type should be number +>x1 : Symbol(x1, Decl(indexSignaturesInferentialTyping.ts, 3, 3)) +>foo : Symbol(foo, Decl(indexSignaturesInferentialTyping.ts, 0, 0)) + +var x2 = foo({ zero: 0, one: 1 }); +>x2 : Symbol(x2, Decl(indexSignaturesInferentialTyping.ts, 4, 3)) +>foo : Symbol(foo, Decl(indexSignaturesInferentialTyping.ts, 0, 0)) +>zero : Symbol(zero, Decl(indexSignaturesInferentialTyping.ts, 4, 14)) +>one : Symbol(one, Decl(indexSignaturesInferentialTyping.ts, 4, 23)) + +var x3 = bar({ 0: 0, 1: 1 }); +>x3 : Symbol(x3, Decl(indexSignaturesInferentialTyping.ts, 5, 3)) +>bar : Symbol(bar, Decl(indexSignaturesInferentialTyping.ts, 0, 71)) + +var x4 = bar({ zero: 0, one: 1 }); // type should be number +>x4 : Symbol(x4, Decl(indexSignaturesInferentialTyping.ts, 6, 3)) +>bar : Symbol(bar, Decl(indexSignaturesInferentialTyping.ts, 0, 71)) +>zero : Symbol(zero, Decl(indexSignaturesInferentialTyping.ts, 6, 14)) +>one : Symbol(one, Decl(indexSignaturesInferentialTyping.ts, 6, 23)) + diff --git a/tests/baselines/reference/indexSignaturesInferentialTyping.types b/tests/baselines/reference/indexSignaturesInferentialTyping.types index 5f437fe155254..328dbc18e4ff3 100644 --- a/tests/baselines/reference/indexSignaturesInferentialTyping.types +++ b/tests/baselines/reference/indexSignaturesInferentialTyping.types @@ -1,55 +1,55 @@ === tests/cases/compiler/indexSignaturesInferentialTyping.ts === function foo(items: { [index: number]: T }): T { return undefined; } ->foo : (items: { [index: number]: T; }) => T, Symbol(foo, Decl(indexSignaturesInferentialTyping.ts, 0, 0)) ->T : T, Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 0, 13)) ->items : { [index: number]: T; }, Symbol(items, Decl(indexSignaturesInferentialTyping.ts, 0, 16)) ->index : number, Symbol(index, Decl(indexSignaturesInferentialTyping.ts, 0, 26)) ->T : T, Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 0, 13)) ->T : T, Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 0, 13)) ->undefined : undefined, Symbol(undefined) +>foo : (items: { [index: number]: T; }) => T +>T : T +>items : { [index: number]: T; } +>index : number +>T : T +>T : T +>undefined : undefined function bar(items: { [index: string]: T }): T { return undefined; } ->bar : (items: { [index: string]: T; }) => T, Symbol(bar, Decl(indexSignaturesInferentialTyping.ts, 0, 71)) ->T : T, Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 1, 13)) ->items : { [index: string]: T; }, Symbol(items, Decl(indexSignaturesInferentialTyping.ts, 1, 16)) ->index : string, Symbol(index, Decl(indexSignaturesInferentialTyping.ts, 1, 26)) ->T : T, Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 1, 13)) ->T : T, Symbol(T, Decl(indexSignaturesInferentialTyping.ts, 1, 13)) ->undefined : undefined, Symbol(undefined) +>bar : (items: { [index: string]: T; }) => T +>T : T +>items : { [index: string]: T; } +>index : string +>T : T +>T : T +>undefined : undefined var x1 = foo({ 0: 0, 1: 1 }); // type should be number ->x1 : number, Symbol(x1, Decl(indexSignaturesInferentialTyping.ts, 3, 3)) +>x1 : number >foo({ 0: 0, 1: 1 }) : number ->foo : (items: { [index: number]: T; }) => T, Symbol(foo, Decl(indexSignaturesInferentialTyping.ts, 0, 0)) +>foo : (items: { [index: number]: T; }) => T >{ 0: 0, 1: 1 } : { [x: number]: number; 0: number; 1: number; } >0 : number >1 : number var x2 = foo({ zero: 0, one: 1 }); ->x2 : any, Symbol(x2, Decl(indexSignaturesInferentialTyping.ts, 4, 3)) +>x2 : any >foo({ zero: 0, one: 1 }) : any ->foo : (items: { [index: number]: T; }) => T, Symbol(foo, Decl(indexSignaturesInferentialTyping.ts, 0, 0)) +>foo : (items: { [index: number]: T; }) => T >{ zero: 0, one: 1 } : { [x: number]: undefined; zero: number; one: number; } ->zero : number, Symbol(zero, Decl(indexSignaturesInferentialTyping.ts, 4, 14)) +>zero : number >0 : number ->one : number, Symbol(one, Decl(indexSignaturesInferentialTyping.ts, 4, 23)) +>one : number >1 : number var x3 = bar({ 0: 0, 1: 1 }); ->x3 : number, Symbol(x3, Decl(indexSignaturesInferentialTyping.ts, 5, 3)) +>x3 : number >bar({ 0: 0, 1: 1 }) : number ->bar : (items: { [index: string]: T; }) => T, Symbol(bar, Decl(indexSignaturesInferentialTyping.ts, 0, 71)) +>bar : (items: { [index: string]: T; }) => T >{ 0: 0, 1: 1 } : { [x: string]: number; 0: number; 1: number; } >0 : number >1 : number var x4 = bar({ zero: 0, one: 1 }); // type should be number ->x4 : number, Symbol(x4, Decl(indexSignaturesInferentialTyping.ts, 6, 3)) +>x4 : number >bar({ zero: 0, one: 1 }) : number ->bar : (items: { [index: string]: T; }) => T, Symbol(bar, Decl(indexSignaturesInferentialTyping.ts, 0, 71)) +>bar : (items: { [index: string]: T; }) => T >{ zero: 0, one: 1 } : { [x: string]: number; zero: number; one: number; } ->zero : number, Symbol(zero, Decl(indexSignaturesInferentialTyping.ts, 6, 14)) +>zero : number >0 : number ->one : number, Symbol(one, Decl(indexSignaturesInferentialTyping.ts, 6, 23)) +>one : number >1 : number diff --git a/tests/baselines/reference/indexer.symbols b/tests/baselines/reference/indexer.symbols new file mode 100644 index 0000000000000..409bd8092d674 --- /dev/null +++ b/tests/baselines/reference/indexer.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/indexer.ts === +interface JQueryElement { +>JQueryElement : Symbol(JQueryElement, Decl(indexer.ts, 0, 0)) + + id:string; +>id : Symbol(id, Decl(indexer.ts, 0, 25)) +} + +interface JQuery { +>JQuery : Symbol(JQuery, Decl(indexer.ts, 2, 1)) + + [n:number]:JQueryElement; +>n : Symbol(n, Decl(indexer.ts, 5, 5)) +>JQueryElement : Symbol(JQueryElement, Decl(indexer.ts, 0, 0)) +} + +var jq:JQuery={ 0: { id : "a" }, 1: { id : "b" } }; +>jq : Symbol(jq, Decl(indexer.ts, 8, 3)) +>JQuery : Symbol(JQuery, Decl(indexer.ts, 2, 1)) +>id : Symbol(id, Decl(indexer.ts, 8, 20)) +>id : Symbol(id, Decl(indexer.ts, 8, 37)) + +jq[0].id; +>jq[0].id : Symbol(JQueryElement.id, Decl(indexer.ts, 0, 25)) +>jq : Symbol(jq, Decl(indexer.ts, 8, 3)) +>id : Symbol(JQueryElement.id, Decl(indexer.ts, 0, 25)) + diff --git a/tests/baselines/reference/indexer.types b/tests/baselines/reference/indexer.types index e702ea3256c6a..a0142bb93830e 100644 --- a/tests/baselines/reference/indexer.types +++ b/tests/baselines/reference/indexer.types @@ -1,34 +1,34 @@ === tests/cases/compiler/indexer.ts === interface JQueryElement { ->JQueryElement : JQueryElement, Symbol(JQueryElement, Decl(indexer.ts, 0, 0)) +>JQueryElement : JQueryElement id:string; ->id : string, Symbol(id, Decl(indexer.ts, 0, 25)) +>id : string } interface JQuery { ->JQuery : JQuery, Symbol(JQuery, Decl(indexer.ts, 2, 1)) +>JQuery : JQuery [n:number]:JQueryElement; ->n : number, Symbol(n, Decl(indexer.ts, 5, 5)) ->JQueryElement : JQueryElement, Symbol(JQueryElement, Decl(indexer.ts, 0, 0)) +>n : number +>JQueryElement : JQueryElement } var jq:JQuery={ 0: { id : "a" }, 1: { id : "b" } }; ->jq : JQuery, Symbol(jq, Decl(indexer.ts, 8, 3)) ->JQuery : JQuery, Symbol(JQuery, Decl(indexer.ts, 2, 1)) +>jq : JQuery +>JQuery : JQuery >{ 0: { id : "a" }, 1: { id : "b" } } : { [x: number]: { id: string; }; 0: { id: string; }; 1: { id: string; }; } >{ id : "a" } : { id: string; } ->id : string, Symbol(id, Decl(indexer.ts, 8, 20)) +>id : string >"a" : string >{ id : "b" } : { id: string; } ->id : string, Symbol(id, Decl(indexer.ts, 8, 37)) +>id : string >"b" : string jq[0].id; ->jq[0].id : string, Symbol(JQueryElement.id, Decl(indexer.ts, 0, 25)) +>jq[0].id : string >jq[0] : JQueryElement ->jq : JQuery, Symbol(jq, Decl(indexer.ts, 8, 3)) +>jq : JQuery >0 : number ->id : string, Symbol(JQueryElement.id, Decl(indexer.ts, 0, 25)) +>id : string diff --git a/tests/baselines/reference/indexer2.symbols b/tests/baselines/reference/indexer2.symbols new file mode 100644 index 0000000000000..c23debb925c90 --- /dev/null +++ b/tests/baselines/reference/indexer2.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/indexer2.ts === +interface IHeapObjectProperty {} +>IHeapObjectProperty : Symbol(IHeapObjectProperty, Decl(indexer2.ts, 0, 0)) + +interface IDirectChildrenMap { +>IDirectChildrenMap : Symbol(IDirectChildrenMap, Decl(indexer2.ts, 0, 32)) + + hasOwnProperty(objectId: number) : boolean; +>hasOwnProperty : Symbol(hasOwnProperty, Decl(indexer2.ts, 1, 30)) +>objectId : Symbol(objectId, Decl(indexer2.ts, 2, 23)) + + [objectId: number] : IHeapObjectProperty[]; +>objectId : Symbol(objectId, Decl(indexer2.ts, 3, 9)) +>IHeapObjectProperty : Symbol(IHeapObjectProperty, Decl(indexer2.ts, 0, 0)) +} +var directChildrenMap = {}; +>directChildrenMap : Symbol(directChildrenMap, Decl(indexer2.ts, 5, 3)) +>IDirectChildrenMap : Symbol(IDirectChildrenMap, Decl(indexer2.ts, 0, 32)) + diff --git a/tests/baselines/reference/indexer2.types b/tests/baselines/reference/indexer2.types index e035925eee04e..7f1ccd41cb59f 100644 --- a/tests/baselines/reference/indexer2.types +++ b/tests/baselines/reference/indexer2.types @@ -1,21 +1,21 @@ === tests/cases/compiler/indexer2.ts === interface IHeapObjectProperty {} ->IHeapObjectProperty : IHeapObjectProperty, Symbol(IHeapObjectProperty, Decl(indexer2.ts, 0, 0)) +>IHeapObjectProperty : IHeapObjectProperty interface IDirectChildrenMap { ->IDirectChildrenMap : IDirectChildrenMap, Symbol(IDirectChildrenMap, Decl(indexer2.ts, 0, 32)) +>IDirectChildrenMap : IDirectChildrenMap hasOwnProperty(objectId: number) : boolean; ->hasOwnProperty : (objectId: number) => boolean, Symbol(hasOwnProperty, Decl(indexer2.ts, 1, 30)) ->objectId : number, Symbol(objectId, Decl(indexer2.ts, 2, 23)) +>hasOwnProperty : (objectId: number) => boolean +>objectId : number [objectId: number] : IHeapObjectProperty[]; ->objectId : number, Symbol(objectId, Decl(indexer2.ts, 3, 9)) ->IHeapObjectProperty : IHeapObjectProperty, Symbol(IHeapObjectProperty, Decl(indexer2.ts, 0, 0)) +>objectId : number +>IHeapObjectProperty : IHeapObjectProperty } var directChildrenMap = {}; ->directChildrenMap : IDirectChildrenMap, Symbol(directChildrenMap, Decl(indexer2.ts, 5, 3)) +>directChildrenMap : IDirectChildrenMap >{} : IDirectChildrenMap ->IDirectChildrenMap : IDirectChildrenMap, Symbol(IDirectChildrenMap, Decl(indexer2.ts, 0, 32)) +>IDirectChildrenMap : IDirectChildrenMap >{} : { [x: number]: undefined; } diff --git a/tests/baselines/reference/indexer3.symbols b/tests/baselines/reference/indexer3.symbols new file mode 100644 index 0000000000000..1de91806faadd --- /dev/null +++ b/tests/baselines/reference/indexer3.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/indexer3.ts === +var dateMap: { [x: string]: Date; } = {} +>dateMap : Symbol(dateMap, Decl(indexer3.ts, 0, 3)) +>x : Symbol(x, Decl(indexer3.ts, 0, 16)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r: Date = dateMap["hello"] // result type includes indexer using BCT +>r : Symbol(r, Decl(indexer3.ts, 1, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>dateMap : Symbol(dateMap, Decl(indexer3.ts, 0, 3)) + diff --git a/tests/baselines/reference/indexer3.types b/tests/baselines/reference/indexer3.types index ec13804992d6a..8f0582f782ae8 100644 --- a/tests/baselines/reference/indexer3.types +++ b/tests/baselines/reference/indexer3.types @@ -1,14 +1,14 @@ === tests/cases/compiler/indexer3.ts === var dateMap: { [x: string]: Date; } = {} ->dateMap : { [x: string]: Date; }, Symbol(dateMap, Decl(indexer3.ts, 0, 3)) ->x : string, Symbol(x, Decl(indexer3.ts, 0, 16)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>dateMap : { [x: string]: Date; } +>x : string +>Date : Date >{} : { [x: string]: undefined; } var r: Date = dateMap["hello"] // result type includes indexer using BCT ->r : Date, Symbol(r, Decl(indexer3.ts, 1, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>r : Date +>Date : Date >dateMap["hello"] : Date ->dateMap : { [x: string]: Date; }, Symbol(dateMap, Decl(indexer3.ts, 0, 3)) +>dateMap : { [x: string]: Date; } >"hello" : string diff --git a/tests/baselines/reference/indexerA.symbols b/tests/baselines/reference/indexerA.symbols new file mode 100644 index 0000000000000..d549c3359d9c5 --- /dev/null +++ b/tests/baselines/reference/indexerA.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/indexerA.ts === +class JQueryElement { +>JQueryElement : Symbol(JQueryElement, Decl(indexerA.ts, 0, 0)) + + id:string; +>id : Symbol(id, Decl(indexerA.ts, 0, 21)) +} + +class JQuery { +>JQuery : Symbol(JQuery, Decl(indexerA.ts, 2, 1)) + + [n:number]:JQueryElement +>n : Symbol(n, Decl(indexerA.ts, 5, 5)) +>JQueryElement : Symbol(JQueryElement, Decl(indexerA.ts, 0, 0)) +} + +var jq:JQuery={ 0: { id : "a" }, 1: { id : "b" } }; +>jq : Symbol(jq, Decl(indexerA.ts, 8, 3)) +>JQuery : Symbol(JQuery, Decl(indexerA.ts, 2, 1)) +>id : Symbol(id, Decl(indexerA.ts, 8, 20)) +>id : Symbol(id, Decl(indexerA.ts, 8, 37)) + +jq[0].id; +>jq[0].id : Symbol(JQueryElement.id, Decl(indexerA.ts, 0, 21)) +>jq : Symbol(jq, Decl(indexerA.ts, 8, 3)) +>id : Symbol(JQueryElement.id, Decl(indexerA.ts, 0, 21)) + diff --git a/tests/baselines/reference/indexerA.types b/tests/baselines/reference/indexerA.types index a9763123f18a7..c6ff81b3a26ad 100644 --- a/tests/baselines/reference/indexerA.types +++ b/tests/baselines/reference/indexerA.types @@ -1,34 +1,34 @@ === tests/cases/compiler/indexerA.ts === class JQueryElement { ->JQueryElement : JQueryElement, Symbol(JQueryElement, Decl(indexerA.ts, 0, 0)) +>JQueryElement : JQueryElement id:string; ->id : string, Symbol(id, Decl(indexerA.ts, 0, 21)) +>id : string } class JQuery { ->JQuery : JQuery, Symbol(JQuery, Decl(indexerA.ts, 2, 1)) +>JQuery : JQuery [n:number]:JQueryElement ->n : number, Symbol(n, Decl(indexerA.ts, 5, 5)) ->JQueryElement : JQueryElement, Symbol(JQueryElement, Decl(indexerA.ts, 0, 0)) +>n : number +>JQueryElement : JQueryElement } var jq:JQuery={ 0: { id : "a" }, 1: { id : "b" } }; ->jq : JQuery, Symbol(jq, Decl(indexerA.ts, 8, 3)) ->JQuery : JQuery, Symbol(JQuery, Decl(indexerA.ts, 2, 1)) +>jq : JQuery +>JQuery : JQuery >{ 0: { id : "a" }, 1: { id : "b" } } : { [x: number]: { id: string; }; 0: { id: string; }; 1: { id: string; }; } >{ id : "a" } : { id: string; } ->id : string, Symbol(id, Decl(indexerA.ts, 8, 20)) +>id : string >"a" : string >{ id : "b" } : { id: string; } ->id : string, Symbol(id, Decl(indexerA.ts, 8, 37)) +>id : string >"b" : string jq[0].id; ->jq[0].id : string, Symbol(JQueryElement.id, Decl(indexerA.ts, 0, 21)) +>jq[0].id : string >jq[0] : JQueryElement ->jq : JQuery, Symbol(jq, Decl(indexerA.ts, 8, 3)) +>jq : JQuery >0 : number ->id : string, Symbol(JQueryElement.id, Decl(indexerA.ts, 0, 21)) +>id : string diff --git a/tests/baselines/reference/indexerReturningTypeParameter1.symbols b/tests/baselines/reference/indexerReturningTypeParameter1.symbols new file mode 100644 index 0000000000000..0bb1e305c80d7 --- /dev/null +++ b/tests/baselines/reference/indexerReturningTypeParameter1.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/indexerReturningTypeParameter1.ts === +interface f { +>f : Symbol(f, Decl(indexerReturningTypeParameter1.ts, 0, 0)) + + groupBy(): { [key: string]: T[]; }; +>groupBy : Symbol(groupBy, Decl(indexerReturningTypeParameter1.ts, 0, 13)) +>T : Symbol(T, Decl(indexerReturningTypeParameter1.ts, 1, 12)) +>key : Symbol(key, Decl(indexerReturningTypeParameter1.ts, 1, 21)) +>T : Symbol(T, Decl(indexerReturningTypeParameter1.ts, 1, 12)) +} +var a: f; +>a : Symbol(a, Decl(indexerReturningTypeParameter1.ts, 3, 3)) +>f : Symbol(f, Decl(indexerReturningTypeParameter1.ts, 0, 0)) + +var r = a.groupBy(); +>r : Symbol(r, Decl(indexerReturningTypeParameter1.ts, 4, 3)) +>a.groupBy : Symbol(f.groupBy, Decl(indexerReturningTypeParameter1.ts, 0, 13)) +>a : Symbol(a, Decl(indexerReturningTypeParameter1.ts, 3, 3)) +>groupBy : Symbol(f.groupBy, Decl(indexerReturningTypeParameter1.ts, 0, 13)) + +class c { +>c : Symbol(c, Decl(indexerReturningTypeParameter1.ts, 4, 20)) + + groupBy(): { [key: string]: T[]; } { +>groupBy : Symbol(groupBy, Decl(indexerReturningTypeParameter1.ts, 6, 9)) +>T : Symbol(T, Decl(indexerReturningTypeParameter1.ts, 7, 12)) +>key : Symbol(key, Decl(indexerReturningTypeParameter1.ts, 7, 21)) +>T : Symbol(T, Decl(indexerReturningTypeParameter1.ts, 7, 12)) + + return null; + } +} +var a2: c; +>a2 : Symbol(a2, Decl(indexerReturningTypeParameter1.ts, 11, 3)) +>c : Symbol(c, Decl(indexerReturningTypeParameter1.ts, 4, 20)) + +var r2 = a2.groupBy(); +>r2 : Symbol(r2, Decl(indexerReturningTypeParameter1.ts, 12, 3)) +>a2.groupBy : Symbol(c.groupBy, Decl(indexerReturningTypeParameter1.ts, 6, 9)) +>a2 : Symbol(a2, Decl(indexerReturningTypeParameter1.ts, 11, 3)) +>groupBy : Symbol(c.groupBy, Decl(indexerReturningTypeParameter1.ts, 6, 9)) + diff --git a/tests/baselines/reference/indexerReturningTypeParameter1.types b/tests/baselines/reference/indexerReturningTypeParameter1.types index b5dee119a9f4c..83028bef93f6c 100644 --- a/tests/baselines/reference/indexerReturningTypeParameter1.types +++ b/tests/baselines/reference/indexerReturningTypeParameter1.types @@ -1,45 +1,45 @@ === tests/cases/compiler/indexerReturningTypeParameter1.ts === interface f { ->f : f, Symbol(f, Decl(indexerReturningTypeParameter1.ts, 0, 0)) +>f : f groupBy(): { [key: string]: T[]; }; ->groupBy : () => { [key: string]: T[]; }, Symbol(groupBy, Decl(indexerReturningTypeParameter1.ts, 0, 13)) ->T : T, Symbol(T, Decl(indexerReturningTypeParameter1.ts, 1, 12)) ->key : string, Symbol(key, Decl(indexerReturningTypeParameter1.ts, 1, 21)) ->T : T, Symbol(T, Decl(indexerReturningTypeParameter1.ts, 1, 12)) +>groupBy : () => { [key: string]: T[]; } +>T : T +>key : string +>T : T } var a: f; ->a : f, Symbol(a, Decl(indexerReturningTypeParameter1.ts, 3, 3)) ->f : f, Symbol(f, Decl(indexerReturningTypeParameter1.ts, 0, 0)) +>a : f +>f : f var r = a.groupBy(); ->r : { [key: string]: {}[]; }, Symbol(r, Decl(indexerReturningTypeParameter1.ts, 4, 3)) +>r : { [key: string]: {}[]; } >a.groupBy() : { [key: string]: {}[]; } ->a.groupBy : () => { [key: string]: T[]; }, Symbol(f.groupBy, Decl(indexerReturningTypeParameter1.ts, 0, 13)) ->a : f, Symbol(a, Decl(indexerReturningTypeParameter1.ts, 3, 3)) ->groupBy : () => { [key: string]: T[]; }, Symbol(f.groupBy, Decl(indexerReturningTypeParameter1.ts, 0, 13)) +>a.groupBy : () => { [key: string]: T[]; } +>a : f +>groupBy : () => { [key: string]: T[]; } class c { ->c : c, Symbol(c, Decl(indexerReturningTypeParameter1.ts, 4, 20)) +>c : c groupBy(): { [key: string]: T[]; } { ->groupBy : () => { [key: string]: T[]; }, Symbol(groupBy, Decl(indexerReturningTypeParameter1.ts, 6, 9)) ->T : T, Symbol(T, Decl(indexerReturningTypeParameter1.ts, 7, 12)) ->key : string, Symbol(key, Decl(indexerReturningTypeParameter1.ts, 7, 21)) ->T : T, Symbol(T, Decl(indexerReturningTypeParameter1.ts, 7, 12)) +>groupBy : () => { [key: string]: T[]; } +>T : T +>key : string +>T : T return null; >null : null } } var a2: c; ->a2 : c, Symbol(a2, Decl(indexerReturningTypeParameter1.ts, 11, 3)) ->c : c, Symbol(c, Decl(indexerReturningTypeParameter1.ts, 4, 20)) +>a2 : c +>c : c var r2 = a2.groupBy(); ->r2 : { [key: string]: {}[]; }, Symbol(r2, Decl(indexerReturningTypeParameter1.ts, 12, 3)) +>r2 : { [key: string]: {}[]; } >a2.groupBy() : { [key: string]: {}[]; } ->a2.groupBy : () => { [key: string]: T[]; }, Symbol(c.groupBy, Decl(indexerReturningTypeParameter1.ts, 6, 9)) ->a2 : c, Symbol(a2, Decl(indexerReturningTypeParameter1.ts, 11, 3)) ->groupBy : () => { [key: string]: T[]; }, Symbol(c.groupBy, Decl(indexerReturningTypeParameter1.ts, 6, 9)) +>a2.groupBy : () => { [key: string]: T[]; } +>a2 : c +>groupBy : () => { [key: string]: T[]; } diff --git a/tests/baselines/reference/indexerWithTuple.symbols b/tests/baselines/reference/indexerWithTuple.symbols new file mode 100644 index 0000000000000..1ce5afbefacfd --- /dev/null +++ b/tests/baselines/reference/indexerWithTuple.symbols @@ -0,0 +1,131 @@ +=== tests/cases/conformance/types/tuple/indexerWithTuple.ts === +var strNumTuple: [string, number] = ["foo", 10]; +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) + +var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; +>numTupleTuple : Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) + +var unionTuple1: [number, string| number] = [10, "foo"]; +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) + +var unionTuple2: [boolean, string| number] = [true, "foo"]; +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) + +// no error +var idx0 = 0; +>idx0 : Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) + +var idx1 = 1; +>idx1 : Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) + +var ele10 = strNumTuple[0]; // string +>ele10 : Symbol(ele10, Decl(indexerWithTuple.ts, 8, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>0 : Symbol(0) + +var ele11 = strNumTuple[1]; // number +>ele11 : Symbol(ele11, Decl(indexerWithTuple.ts, 9, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>1 : Symbol(1) + +var ele12 = strNumTuple[2]; // string | number +>ele12 : Symbol(ele12, Decl(indexerWithTuple.ts, 10, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) + +var ele13 = strNumTuple[idx0]; // string | number +>ele13 : Symbol(ele13, Decl(indexerWithTuple.ts, 11, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>idx0 : Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) + +var ele14 = strNumTuple[idx1]; // string | number +>ele14 : Symbol(ele14, Decl(indexerWithTuple.ts, 12, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>idx1 : Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) + +var ele15 = strNumTuple["0"]; // string +>ele15 : Symbol(ele15, Decl(indexerWithTuple.ts, 13, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>"0" : Symbol(0) + +var ele16 = strNumTuple["1"]; // number +>ele16 : Symbol(ele16, Decl(indexerWithTuple.ts, 14, 3)) +>strNumTuple : Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>"1" : Symbol(1) + +var strNumTuple1 = numTupleTuple[1]; //[string, number]; +>strNumTuple1 : Symbol(strNumTuple1, Decl(indexerWithTuple.ts, 15, 3)) +>numTupleTuple : Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) +>1 : Symbol(1) + +var ele17 = numTupleTuple[2]; // number | [string, number] +>ele17 : Symbol(ele17, Decl(indexerWithTuple.ts, 16, 3)) +>numTupleTuple : Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) + +var eleUnion10 = unionTuple1[0]; // number +>eleUnion10 : Symbol(eleUnion10, Decl(indexerWithTuple.ts, 17, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>0 : Symbol(0) + +var eleUnion11 = unionTuple1[1]; // string | number +>eleUnion11 : Symbol(eleUnion11, Decl(indexerWithTuple.ts, 18, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>1 : Symbol(1) + +var eleUnion12 = unionTuple1[2]; // string | number +>eleUnion12 : Symbol(eleUnion12, Decl(indexerWithTuple.ts, 19, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) + +var eleUnion13 = unionTuple1[idx0]; // string | number +>eleUnion13 : Symbol(eleUnion13, Decl(indexerWithTuple.ts, 20, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>idx0 : Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) + +var eleUnion14 = unionTuple1[idx1]; // string | number +>eleUnion14 : Symbol(eleUnion14, Decl(indexerWithTuple.ts, 21, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>idx1 : Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) + +var eleUnion15 = unionTuple1["0"]; // number +>eleUnion15 : Symbol(eleUnion15, Decl(indexerWithTuple.ts, 22, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>"0" : Symbol(0) + +var eleUnion16 = unionTuple1["1"]; // string | number +>eleUnion16 : Symbol(eleUnion16, Decl(indexerWithTuple.ts, 23, 3)) +>unionTuple1 : Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>"1" : Symbol(1) + +var eleUnion20 = unionTuple2[0]; // boolean +>eleUnion20 : Symbol(eleUnion20, Decl(indexerWithTuple.ts, 25, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>0 : Symbol(0) + +var eleUnion21 = unionTuple2[1]; // string | number +>eleUnion21 : Symbol(eleUnion21, Decl(indexerWithTuple.ts, 26, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>1 : Symbol(1) + +var eleUnion22 = unionTuple2[2]; // string | number | boolean +>eleUnion22 : Symbol(eleUnion22, Decl(indexerWithTuple.ts, 27, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) + +var eleUnion23 = unionTuple2[idx0]; // string | number | boolean +>eleUnion23 : Symbol(eleUnion23, Decl(indexerWithTuple.ts, 28, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>idx0 : Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) + +var eleUnion24 = unionTuple2[idx1]; // string | number | boolean +>eleUnion24 : Symbol(eleUnion24, Decl(indexerWithTuple.ts, 29, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>idx1 : Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) + +var eleUnion25 = unionTuple2["0"]; // boolean +>eleUnion25 : Symbol(eleUnion25, Decl(indexerWithTuple.ts, 30, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>"0" : Symbol(0) + +var eleUnion26 = unionTuple2["1"]; // string | number +>eleUnion26 : Symbol(eleUnion26, Decl(indexerWithTuple.ts, 31, 3)) +>unionTuple2 : Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>"1" : Symbol(1) + diff --git a/tests/baselines/reference/indexerWithTuple.types b/tests/baselines/reference/indexerWithTuple.types index d9d1d6cbfc47b..4faae2cda29c3 100644 --- a/tests/baselines/reference/indexerWithTuple.types +++ b/tests/baselines/reference/indexerWithTuple.types @@ -1,12 +1,12 @@ === tests/cases/conformance/types/tuple/indexerWithTuple.ts === var strNumTuple: [string, number] = ["foo", 10]; ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>strNumTuple : [string, number] >["foo", 10] : [string, number] >"foo" : string >10 : number var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; ->numTupleTuple : [number, [string, number]], Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) +>numTupleTuple : [number, [string, number]] >[10, ["bar", 20]] : [number, [string, number]] >10 : number >["bar", 20] : [string, number] @@ -14,161 +14,161 @@ var numTupleTuple: [number, [string, number]] = [10, ["bar", 20]]; >20 : number var unionTuple1: [number, string| number] = [10, "foo"]; ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>unionTuple1 : [number, string | number] >[10, "foo"] : [number, string] >10 : number >"foo" : string var unionTuple2: [boolean, string| number] = [true, "foo"]; ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>unionTuple2 : [boolean, string | number] >[true, "foo"] : [boolean, string] >true : boolean >"foo" : string // no error var idx0 = 0; ->idx0 : number, Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) +>idx0 : number >0 : number var idx1 = 1; ->idx1 : number, Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) +>idx1 : number >1 : number var ele10 = strNumTuple[0]; // string ->ele10 : string, Symbol(ele10, Decl(indexerWithTuple.ts, 8, 3)) +>ele10 : string >strNumTuple[0] : string ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) ->0 : number, Symbol(0) +>strNumTuple : [string, number] +>0 : number var ele11 = strNumTuple[1]; // number ->ele11 : number, Symbol(ele11, Decl(indexerWithTuple.ts, 9, 3)) +>ele11 : number >strNumTuple[1] : number ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) ->1 : number, Symbol(1) +>strNumTuple : [string, number] +>1 : number var ele12 = strNumTuple[2]; // string | number ->ele12 : string | number, Symbol(ele12, Decl(indexerWithTuple.ts, 10, 3)) +>ele12 : string | number >strNumTuple[2] : string | number ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) +>strNumTuple : [string, number] >2 : number var ele13 = strNumTuple[idx0]; // string | number ->ele13 : string | number, Symbol(ele13, Decl(indexerWithTuple.ts, 11, 3)) +>ele13 : string | number >strNumTuple[idx0] : string | number ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) ->idx0 : number, Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) +>strNumTuple : [string, number] +>idx0 : number var ele14 = strNumTuple[idx1]; // string | number ->ele14 : string | number, Symbol(ele14, Decl(indexerWithTuple.ts, 12, 3)) +>ele14 : string | number >strNumTuple[idx1] : string | number ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) ->idx1 : number, Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) +>strNumTuple : [string, number] +>idx1 : number var ele15 = strNumTuple["0"]; // string ->ele15 : string, Symbol(ele15, Decl(indexerWithTuple.ts, 13, 3)) +>ele15 : string >strNumTuple["0"] : string ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) ->"0" : string, Symbol(0) +>strNumTuple : [string, number] +>"0" : string var ele16 = strNumTuple["1"]; // number ->ele16 : number, Symbol(ele16, Decl(indexerWithTuple.ts, 14, 3)) +>ele16 : number >strNumTuple["1"] : number ->strNumTuple : [string, number], Symbol(strNumTuple, Decl(indexerWithTuple.ts, 0, 3)) ->"1" : string, Symbol(1) +>strNumTuple : [string, number] +>"1" : string var strNumTuple1 = numTupleTuple[1]; //[string, number]; ->strNumTuple1 : [string, number], Symbol(strNumTuple1, Decl(indexerWithTuple.ts, 15, 3)) +>strNumTuple1 : [string, number] >numTupleTuple[1] : [string, number] ->numTupleTuple : [number, [string, number]], Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) ->1 : number, Symbol(1) +>numTupleTuple : [number, [string, number]] +>1 : number var ele17 = numTupleTuple[2]; // number | [string, number] ->ele17 : number | [string, number], Symbol(ele17, Decl(indexerWithTuple.ts, 16, 3)) +>ele17 : number | [string, number] >numTupleTuple[2] : number | [string, number] ->numTupleTuple : [number, [string, number]], Symbol(numTupleTuple, Decl(indexerWithTuple.ts, 1, 3)) +>numTupleTuple : [number, [string, number]] >2 : number var eleUnion10 = unionTuple1[0]; // number ->eleUnion10 : number, Symbol(eleUnion10, Decl(indexerWithTuple.ts, 17, 3)) +>eleUnion10 : number >unionTuple1[0] : number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) ->0 : number, Symbol(0) +>unionTuple1 : [number, string | number] +>0 : number var eleUnion11 = unionTuple1[1]; // string | number ->eleUnion11 : string | number, Symbol(eleUnion11, Decl(indexerWithTuple.ts, 18, 3)) +>eleUnion11 : string | number >unionTuple1[1] : string | number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) ->1 : number, Symbol(1) +>unionTuple1 : [number, string | number] +>1 : number var eleUnion12 = unionTuple1[2]; // string | number ->eleUnion12 : string | number, Symbol(eleUnion12, Decl(indexerWithTuple.ts, 19, 3)) +>eleUnion12 : string | number >unionTuple1[2] : string | number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) +>unionTuple1 : [number, string | number] >2 : number var eleUnion13 = unionTuple1[idx0]; // string | number ->eleUnion13 : string | number, Symbol(eleUnion13, Decl(indexerWithTuple.ts, 20, 3)) +>eleUnion13 : string | number >unionTuple1[idx0] : string | number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) ->idx0 : number, Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) +>unionTuple1 : [number, string | number] +>idx0 : number var eleUnion14 = unionTuple1[idx1]; // string | number ->eleUnion14 : string | number, Symbol(eleUnion14, Decl(indexerWithTuple.ts, 21, 3)) +>eleUnion14 : string | number >unionTuple1[idx1] : string | number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) ->idx1 : number, Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) +>unionTuple1 : [number, string | number] +>idx1 : number var eleUnion15 = unionTuple1["0"]; // number ->eleUnion15 : number, Symbol(eleUnion15, Decl(indexerWithTuple.ts, 22, 3)) +>eleUnion15 : number >unionTuple1["0"] : number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) ->"0" : string, Symbol(0) +>unionTuple1 : [number, string | number] +>"0" : string var eleUnion16 = unionTuple1["1"]; // string | number ->eleUnion16 : string | number, Symbol(eleUnion16, Decl(indexerWithTuple.ts, 23, 3)) +>eleUnion16 : string | number >unionTuple1["1"] : string | number ->unionTuple1 : [number, string | number], Symbol(unionTuple1, Decl(indexerWithTuple.ts, 2, 3)) ->"1" : string, Symbol(1) +>unionTuple1 : [number, string | number] +>"1" : string var eleUnion20 = unionTuple2[0]; // boolean ->eleUnion20 : boolean, Symbol(eleUnion20, Decl(indexerWithTuple.ts, 25, 3)) +>eleUnion20 : boolean >unionTuple2[0] : boolean ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) ->0 : number, Symbol(0) +>unionTuple2 : [boolean, string | number] +>0 : number var eleUnion21 = unionTuple2[1]; // string | number ->eleUnion21 : string | number, Symbol(eleUnion21, Decl(indexerWithTuple.ts, 26, 3)) +>eleUnion21 : string | number >unionTuple2[1] : string | number ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) ->1 : number, Symbol(1) +>unionTuple2 : [boolean, string | number] +>1 : number var eleUnion22 = unionTuple2[2]; // string | number | boolean ->eleUnion22 : string | number | boolean, Symbol(eleUnion22, Decl(indexerWithTuple.ts, 27, 3)) +>eleUnion22 : string | number | boolean >unionTuple2[2] : string | number | boolean ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) +>unionTuple2 : [boolean, string | number] >2 : number var eleUnion23 = unionTuple2[idx0]; // string | number | boolean ->eleUnion23 : string | number | boolean, Symbol(eleUnion23, Decl(indexerWithTuple.ts, 28, 3)) +>eleUnion23 : string | number | boolean >unionTuple2[idx0] : string | number | boolean ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) ->idx0 : number, Symbol(idx0, Decl(indexerWithTuple.ts, 6, 3)) +>unionTuple2 : [boolean, string | number] +>idx0 : number var eleUnion24 = unionTuple2[idx1]; // string | number | boolean ->eleUnion24 : string | number | boolean, Symbol(eleUnion24, Decl(indexerWithTuple.ts, 29, 3)) +>eleUnion24 : string | number | boolean >unionTuple2[idx1] : string | number | boolean ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) ->idx1 : number, Symbol(idx1, Decl(indexerWithTuple.ts, 7, 3)) +>unionTuple2 : [boolean, string | number] +>idx1 : number var eleUnion25 = unionTuple2["0"]; // boolean ->eleUnion25 : boolean, Symbol(eleUnion25, Decl(indexerWithTuple.ts, 30, 3)) +>eleUnion25 : boolean >unionTuple2["0"] : boolean ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) ->"0" : string, Symbol(0) +>unionTuple2 : [boolean, string | number] +>"0" : string var eleUnion26 = unionTuple2["1"]; // string | number ->eleUnion26 : string | number, Symbol(eleUnion26, Decl(indexerWithTuple.ts, 31, 3)) +>eleUnion26 : string | number >unionTuple2["1"] : string | number ->unionTuple2 : [boolean, string | number], Symbol(unionTuple2, Decl(indexerWithTuple.ts, 3, 3)) ->"1" : string, Symbol(1) +>unionTuple2 : [boolean, string | number] +>"1" : string diff --git a/tests/baselines/reference/indexersInClassType.symbols b/tests/baselines/reference/indexersInClassType.symbols new file mode 100644 index 0000000000000..e459888cc0d29 --- /dev/null +++ b/tests/baselines/reference/indexersInClassType.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/classes/members/classTypes/indexersInClassType.ts === +class C { +>C : Symbol(C, Decl(indexersInClassType.ts, 0, 0)) + + [x: number]: Date; +>x : Symbol(x, Decl(indexersInClassType.ts, 1, 5)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + [x: string]: Object; +>x : Symbol(x, Decl(indexersInClassType.ts, 2, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + 1: Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + 'a': {} + + fn() { +>fn : Symbol(fn, Decl(indexersInClassType.ts, 4, 11)) + + return this; +>this : Symbol(C, Decl(indexersInClassType.ts, 0, 0)) + } +} + +var c = new C(); +>c : Symbol(c, Decl(indexersInClassType.ts, 11, 3)) +>C : Symbol(C, Decl(indexersInClassType.ts, 0, 0)) + +var r = c.fn(); +>r : Symbol(r, Decl(indexersInClassType.ts, 12, 3)) +>c.fn : Symbol(C.fn, Decl(indexersInClassType.ts, 4, 11)) +>c : Symbol(c, Decl(indexersInClassType.ts, 11, 3)) +>fn : Symbol(C.fn, Decl(indexersInClassType.ts, 4, 11)) + +var r2 = r[1]; +>r2 : Symbol(r2, Decl(indexersInClassType.ts, 13, 3)) +>r : Symbol(r, Decl(indexersInClassType.ts, 12, 3)) +>1 : Symbol(C.1, Decl(indexersInClassType.ts, 2, 24)) + +var r3 = r.a +>r3 : Symbol(r3, Decl(indexersInClassType.ts, 14, 3)) +>r.a : Symbol(C.'a', Decl(indexersInClassType.ts, 3, 12)) +>r : Symbol(r, Decl(indexersInClassType.ts, 12, 3)) +>a : Symbol(C.'a', Decl(indexersInClassType.ts, 3, 12)) + + diff --git a/tests/baselines/reference/indexersInClassType.types b/tests/baselines/reference/indexersInClassType.types index 1dce4cedafd85..8e06bdfbfd30d 100644 --- a/tests/baselines/reference/indexersInClassType.types +++ b/tests/baselines/reference/indexersInClassType.types @@ -1,50 +1,50 @@ === tests/cases/conformance/classes/members/classTypes/indexersInClassType.ts === class C { ->C : C, Symbol(C, Decl(indexersInClassType.ts, 0, 0)) +>C : C [x: number]: Date; ->x : number, Symbol(x, Decl(indexersInClassType.ts, 1, 5)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : number +>Date : Date [x: string]: Object; ->x : string, Symbol(x, Decl(indexersInClassType.ts, 2, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object 1: Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date 'a': {} fn() { ->fn : () => C, Symbol(fn, Decl(indexersInClassType.ts, 4, 11)) +>fn : () => C return this; ->this : C, Symbol(C, Decl(indexersInClassType.ts, 0, 0)) +>this : C } } var c = new C(); ->c : C, Symbol(c, Decl(indexersInClassType.ts, 11, 3)) +>c : C >new C() : C ->C : typeof C, Symbol(C, Decl(indexersInClassType.ts, 0, 0)) +>C : typeof C var r = c.fn(); ->r : C, Symbol(r, Decl(indexersInClassType.ts, 12, 3)) +>r : C >c.fn() : C ->c.fn : () => C, Symbol(C.fn, Decl(indexersInClassType.ts, 4, 11)) ->c : C, Symbol(c, Decl(indexersInClassType.ts, 11, 3)) ->fn : () => C, Symbol(C.fn, Decl(indexersInClassType.ts, 4, 11)) +>c.fn : () => C +>c : C +>fn : () => C var r2 = r[1]; ->r2 : Date, Symbol(r2, Decl(indexersInClassType.ts, 13, 3)) +>r2 : Date >r[1] : Date ->r : C, Symbol(r, Decl(indexersInClassType.ts, 12, 3)) ->1 : number, Symbol(C.1, Decl(indexersInClassType.ts, 2, 24)) +>r : C +>1 : number var r3 = r.a ->r3 : {}, Symbol(r3, Decl(indexersInClassType.ts, 14, 3)) ->r.a : {}, Symbol(C.'a', Decl(indexersInClassType.ts, 3, 12)) ->r : C, Symbol(r, Decl(indexersInClassType.ts, 12, 3)) ->a : {}, Symbol(C.'a', Decl(indexersInClassType.ts, 3, 12)) +>r3 : {} +>r.a : {} +>r : C +>a : {} diff --git a/tests/baselines/reference/inferSecondaryParameter.symbols b/tests/baselines/reference/inferSecondaryParameter.symbols new file mode 100644 index 0000000000000..c2527ed14b34a --- /dev/null +++ b/tests/baselines/reference/inferSecondaryParameter.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/inferSecondaryParameter.ts === +// type inference on 'bug' should give 'any' + +interface Ib { m(test: string, fn: Function); } +>Ib : Symbol(Ib, Decl(inferSecondaryParameter.ts, 0, 0)) +>m : Symbol(m, Decl(inferSecondaryParameter.ts, 2, 14)) +>test : Symbol(test, Decl(inferSecondaryParameter.ts, 2, 17)) +>fn : Symbol(fn, Decl(inferSecondaryParameter.ts, 2, 30)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var b: Ib = { m: function (test: string, fn: Function) { } }; +>b : Symbol(b, Decl(inferSecondaryParameter.ts, 4, 3)) +>Ib : Symbol(Ib, Decl(inferSecondaryParameter.ts, 0, 0)) +>m : Symbol(m, Decl(inferSecondaryParameter.ts, 4, 13)) +>test : Symbol(test, Decl(inferSecondaryParameter.ts, 4, 27)) +>fn : Symbol(fn, Decl(inferSecondaryParameter.ts, 4, 40)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +b.m("test", function (bug) { +>b.m : Symbol(Ib.m, Decl(inferSecondaryParameter.ts, 2, 14)) +>b : Symbol(b, Decl(inferSecondaryParameter.ts, 4, 3)) +>m : Symbol(Ib.m, Decl(inferSecondaryParameter.ts, 2, 14)) +>bug : Symbol(bug, Decl(inferSecondaryParameter.ts, 6, 22)) + + var a: number = bug; +>a : Symbol(a, Decl(inferSecondaryParameter.ts, 7, 7)) +>bug : Symbol(bug, Decl(inferSecondaryParameter.ts, 6, 22)) + +}); diff --git a/tests/baselines/reference/inferSecondaryParameter.types b/tests/baselines/reference/inferSecondaryParameter.types index 6dea94d9125bf..34dbb14ea6668 100644 --- a/tests/baselines/reference/inferSecondaryParameter.types +++ b/tests/baselines/reference/inferSecondaryParameter.types @@ -2,33 +2,33 @@ // type inference on 'bug' should give 'any' interface Ib { m(test: string, fn: Function); } ->Ib : Ib, Symbol(Ib, Decl(inferSecondaryParameter.ts, 0, 0)) ->m : (test: string, fn: Function) => any, Symbol(m, Decl(inferSecondaryParameter.ts, 2, 14)) ->test : string, Symbol(test, Decl(inferSecondaryParameter.ts, 2, 17)) ->fn : Function, Symbol(fn, Decl(inferSecondaryParameter.ts, 2, 30)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>Ib : Ib +>m : (test: string, fn: Function) => any +>test : string +>fn : Function +>Function : Function var b: Ib = { m: function (test: string, fn: Function) { } }; ->b : Ib, Symbol(b, Decl(inferSecondaryParameter.ts, 4, 3)) ->Ib : Ib, Symbol(Ib, Decl(inferSecondaryParameter.ts, 0, 0)) +>b : Ib +>Ib : Ib >{ m: function (test: string, fn: Function) { } } : { m: (test: string, fn: Function) => void; } ->m : (test: string, fn: Function) => void, Symbol(m, Decl(inferSecondaryParameter.ts, 4, 13)) +>m : (test: string, fn: Function) => void >function (test: string, fn: Function) { } : (test: string, fn: Function) => void ->test : string, Symbol(test, Decl(inferSecondaryParameter.ts, 4, 27)) ->fn : Function, Symbol(fn, Decl(inferSecondaryParameter.ts, 4, 40)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>test : string +>fn : Function +>Function : Function b.m("test", function (bug) { >b.m("test", function (bug) { var a: number = bug;}) : any ->b.m : (test: string, fn: Function) => any, Symbol(Ib.m, Decl(inferSecondaryParameter.ts, 2, 14)) ->b : Ib, Symbol(b, Decl(inferSecondaryParameter.ts, 4, 3)) ->m : (test: string, fn: Function) => any, Symbol(Ib.m, Decl(inferSecondaryParameter.ts, 2, 14)) +>b.m : (test: string, fn: Function) => any +>b : Ib +>m : (test: string, fn: Function) => any >"test" : string >function (bug) { var a: number = bug;} : (bug: any) => void ->bug : any, Symbol(bug, Decl(inferSecondaryParameter.ts, 6, 22)) +>bug : any var a: number = bug; ->a : number, Symbol(a, Decl(inferSecondaryParameter.ts, 7, 7)) ->bug : any, Symbol(bug, Decl(inferSecondaryParameter.ts, 6, 22)) +>a : number +>bug : any }); diff --git a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.symbols b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.symbols new file mode 100644 index 0000000000000..22ab5fa4118f9 --- /dev/null +++ b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/inferTypeArgumentsInSignatureWithRestParameters.ts === +function f(array: T[], ...args) { } +>f : Symbol(f, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 0)) +>T : Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 11)) +>array : Symbol(array, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 14)) +>T : Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 11)) +>args : Symbol(args, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 25)) + +function g(array: number[], ...args) { } +>g : Symbol(g, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 38)) +>array : Symbol(array, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 11)) +>args : Symbol(args, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 27)) + +function h(nonarray: T, ...args) { } +>h : Symbol(h, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 40)) +>T : Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 11)) +>nonarray : Symbol(nonarray, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 14)) +>T : Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 11)) +>args : Symbol(args, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 26)) + +function i(array: T[], opt?: any[]) { } +>i : Symbol(i, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 39)) +>T : Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 11)) +>array : Symbol(array, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 14)) +>T : Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 11)) +>opt : Symbol(opt, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 25)) + +var a = [1, 2, 3, 4, 5]; +>a : Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) + +f(a); // OK +>f : Symbol(f, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 0)) +>a : Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) + +g(a); // OK +>g : Symbol(g, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 38)) +>a : Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) + +h(a); // OK +>h : Symbol(h, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 40)) +>a : Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) + +i(a); // OK +>i : Symbol(i, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 39)) +>a : Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) + diff --git a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types index 1bce7f7cac8e4..f4d94388f427c 100644 --- a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types +++ b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types @@ -1,32 +1,32 @@ === tests/cases/compiler/inferTypeArgumentsInSignatureWithRestParameters.ts === function f(array: T[], ...args) { } ->f : (array: T[], ...args: any[]) => void, Symbol(f, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 0)) ->T : T, Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 11)) ->array : T[], Symbol(array, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 14)) ->T : T, Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 11)) ->args : any[], Symbol(args, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 25)) +>f : (array: T[], ...args: any[]) => void +>T : T +>array : T[] +>T : T +>args : any[] function g(array: number[], ...args) { } ->g : (array: number[], ...args: any[]) => void, Symbol(g, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 38)) ->array : number[], Symbol(array, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 11)) ->args : any[], Symbol(args, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 27)) +>g : (array: number[], ...args: any[]) => void +>array : number[] +>args : any[] function h(nonarray: T, ...args) { } ->h : (nonarray: T, ...args: any[]) => void, Symbol(h, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 40)) ->T : T, Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 11)) ->nonarray : T, Symbol(nonarray, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 14)) ->T : T, Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 11)) ->args : any[], Symbol(args, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 26)) +>h : (nonarray: T, ...args: any[]) => void +>T : T +>nonarray : T +>T : T +>args : any[] function i(array: T[], opt?: any[]) { } ->i : (array: T[], opt?: any[]) => void, Symbol(i, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 39)) ->T : T, Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 11)) ->array : T[], Symbol(array, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 14)) ->T : T, Symbol(T, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 11)) ->opt : any[], Symbol(opt, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 3, 25)) +>i : (array: T[], opt?: any[]) => void +>T : T +>array : T[] +>T : T +>opt : any[] var a = [1, 2, 3, 4, 5]; ->a : number[], Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) +>a : number[] >[1, 2, 3, 4, 5] : number[] >1 : number >2 : number @@ -36,21 +36,21 @@ var a = [1, 2, 3, 4, 5]; f(a); // OK >f(a) : void ->f : (array: T[], ...args: any[]) => void, Symbol(f, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 0)) ->a : number[], Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) +>f : (array: T[], ...args: any[]) => void +>a : number[] g(a); // OK >g(a) : void ->g : (array: number[], ...args: any[]) => void, Symbol(g, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 0, 38)) ->a : number[], Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) +>g : (array: number[], ...args: any[]) => void +>a : number[] h(a); // OK >h(a) : void ->h : (nonarray: T, ...args: any[]) => void, Symbol(h, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 1, 40)) ->a : number[], Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) +>h : (nonarray: T, ...args: any[]) => void +>a : number[] i(a); // OK >i(a) : void ->i : (array: T[], opt?: any[]) => void, Symbol(i, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 2, 39)) ->a : number[], Symbol(a, Decl(inferTypeArgumentsInSignatureWithRestParameters.ts, 4, 3)) +>i : (array: T[], opt?: any[]) => void +>a : number[] diff --git a/tests/baselines/reference/inferenceFromParameterlessLambda.symbols b/tests/baselines/reference/inferenceFromParameterlessLambda.symbols new file mode 100644 index 0000000000000..6170a4d1149db --- /dev/null +++ b/tests/baselines/reference/inferenceFromParameterlessLambda.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/inferenceFromParameterlessLambda.ts === +function foo(o: Take, i: Make) { } +>foo : Symbol(foo, Decl(inferenceFromParameterlessLambda.ts, 0, 0)) +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 0, 13)) +>o : Symbol(o, Decl(inferenceFromParameterlessLambda.ts, 0, 16)) +>Take : Symbol(Take, Decl(inferenceFromParameterlessLambda.ts, 3, 1)) +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 0, 13)) +>i : Symbol(i, Decl(inferenceFromParameterlessLambda.ts, 0, 27)) +>Make : Symbol(Make, Decl(inferenceFromParameterlessLambda.ts, 0, 43)) +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 0, 13)) + +interface Make { +>Make : Symbol(Make, Decl(inferenceFromParameterlessLambda.ts, 0, 43)) +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 1, 15)) + + (): T; +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 1, 15)) +} +interface Take { +>Take : Symbol(Take, Decl(inferenceFromParameterlessLambda.ts, 3, 1)) +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 4, 15)) + + (n: T): void; +>n : Symbol(n, Decl(inferenceFromParameterlessLambda.ts, 5, 5)) +>T : Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 4, 15)) +} +// Infer string from second argument because it isn't context sensitive +foo(n => n.length, () => 'hi'); +>foo : Symbol(foo, Decl(inferenceFromParameterlessLambda.ts, 0, 0)) +>n : Symbol(n, Decl(inferenceFromParameterlessLambda.ts, 8, 4)) +>n.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>n : Symbol(n, Decl(inferenceFromParameterlessLambda.ts, 8, 4)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + diff --git a/tests/baselines/reference/inferenceFromParameterlessLambda.types b/tests/baselines/reference/inferenceFromParameterlessLambda.types index f3a3151ef5678..57747d881f646 100644 --- a/tests/baselines/reference/inferenceFromParameterlessLambda.types +++ b/tests/baselines/reference/inferenceFromParameterlessLambda.types @@ -1,38 +1,38 @@ === tests/cases/compiler/inferenceFromParameterlessLambda.ts === function foo(o: Take, i: Make) { } ->foo : (o: Take, i: Make) => void, Symbol(foo, Decl(inferenceFromParameterlessLambda.ts, 0, 0)) ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 0, 13)) ->o : Take, Symbol(o, Decl(inferenceFromParameterlessLambda.ts, 0, 16)) ->Take : Take, Symbol(Take, Decl(inferenceFromParameterlessLambda.ts, 3, 1)) ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 0, 13)) ->i : Make, Symbol(i, Decl(inferenceFromParameterlessLambda.ts, 0, 27)) ->Make : Make, Symbol(Make, Decl(inferenceFromParameterlessLambda.ts, 0, 43)) ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 0, 13)) +>foo : (o: Take, i: Make) => void +>T : T +>o : Take +>Take : Take +>T : T +>i : Make +>Make : Make +>T : T interface Make { ->Make : Make, Symbol(Make, Decl(inferenceFromParameterlessLambda.ts, 0, 43)) ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 1, 15)) +>Make : Make +>T : T (): T; ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 1, 15)) +>T : T } interface Take { ->Take : Take, Symbol(Take, Decl(inferenceFromParameterlessLambda.ts, 3, 1)) ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 4, 15)) +>Take : Take +>T : T (n: T): void; ->n : T, Symbol(n, Decl(inferenceFromParameterlessLambda.ts, 5, 5)) ->T : T, Symbol(T, Decl(inferenceFromParameterlessLambda.ts, 4, 15)) +>n : T +>T : T } // Infer string from second argument because it isn't context sensitive foo(n => n.length, () => 'hi'); >foo(n => n.length, () => 'hi') : void ->foo : (o: Take, i: Make) => void, Symbol(foo, Decl(inferenceFromParameterlessLambda.ts, 0, 0)) +>foo : (o: Take, i: Make) => void >n => n.length : (n: string) => number ->n : string, Symbol(n, Decl(inferenceFromParameterlessLambda.ts, 8, 4)) ->n.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->n : string, Symbol(n, Decl(inferenceFromParameterlessLambda.ts, 8, 4)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>n : string +>n.length : number +>n : string +>length : number >() => 'hi' : () => string >'hi' : string diff --git a/tests/baselines/reference/inferentialTypingWithFunctionType.symbols b/tests/baselines/reference/inferentialTypingWithFunctionType.symbols new file mode 100644 index 0000000000000..6b5eac3e5b741 --- /dev/null +++ b/tests/baselines/reference/inferentialTypingWithFunctionType.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/inferentialTypingWithFunctionType.ts === +declare function map(x: T, f: (s: T) => U): U; +>map : Symbol(map, Decl(inferentialTypingWithFunctionType.ts, 0, 0)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionType.ts, 0, 21)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionType.ts, 0, 23)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionType.ts, 0, 27)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionType.ts, 0, 21)) +>f : Symbol(f, Decl(inferentialTypingWithFunctionType.ts, 0, 32)) +>s : Symbol(s, Decl(inferentialTypingWithFunctionType.ts, 0, 37)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionType.ts, 0, 21)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionType.ts, 0, 23)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionType.ts, 0, 23)) + +declare function identity(y: V): V; +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionType.ts, 0, 52)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionType.ts, 1, 26)) +>y : Symbol(y, Decl(inferentialTypingWithFunctionType.ts, 1, 29)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionType.ts, 1, 26)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionType.ts, 1, 26)) + +var s = map("", identity); +>s : Symbol(s, Decl(inferentialTypingWithFunctionType.ts, 3, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionType.ts, 0, 0)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionType.ts, 0, 52)) + diff --git a/tests/baselines/reference/inferentialTypingWithFunctionType.types b/tests/baselines/reference/inferentialTypingWithFunctionType.types index c18f7fc61e804..460156c91ead6 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionType.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionType.types @@ -1,27 +1,27 @@ === tests/cases/compiler/inferentialTypingWithFunctionType.ts === declare function map(x: T, f: (s: T) => U): U; ->map : (x: T, f: (s: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionType.ts, 0, 0)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionType.ts, 0, 21)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionType.ts, 0, 23)) ->x : T, Symbol(x, Decl(inferentialTypingWithFunctionType.ts, 0, 27)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionType.ts, 0, 21)) ->f : (s: T) => U, Symbol(f, Decl(inferentialTypingWithFunctionType.ts, 0, 32)) ->s : T, Symbol(s, Decl(inferentialTypingWithFunctionType.ts, 0, 37)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionType.ts, 0, 21)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionType.ts, 0, 23)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionType.ts, 0, 23)) +>map : (x: T, f: (s: T) => U) => U +>T : T +>U : U +>x : T +>T : T +>f : (s: T) => U +>s : T +>T : T +>U : U +>U : U declare function identity(y: V): V; ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionType.ts, 0, 52)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionType.ts, 1, 26)) ->y : V, Symbol(y, Decl(inferentialTypingWithFunctionType.ts, 1, 29)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionType.ts, 1, 26)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionType.ts, 1, 26)) +>identity : (y: V) => V +>V : V +>y : V +>V : V +>V : V var s = map("", identity); ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionType.ts, 3, 3)) +>s : string >map("", identity) : string ->map : (x: T, f: (s: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionType.ts, 0, 0)) +>map : (x: T, f: (s: T) => U) => U >"" : string ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionType.ts, 0, 52)) +>identity : (y: V) => V diff --git a/tests/baselines/reference/inferentialTypingWithFunctionType2.symbols b/tests/baselines/reference/inferentialTypingWithFunctionType2.symbols new file mode 100644 index 0000000000000..5fcc91d816e95 --- /dev/null +++ b/tests/baselines/reference/inferentialTypingWithFunctionType2.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/inferentialTypingWithFunctionType2.ts === +function identity(a: A): A { +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionType2.ts, 0, 0)) +>A : Symbol(A, Decl(inferentialTypingWithFunctionType2.ts, 0, 18)) +>a : Symbol(a, Decl(inferentialTypingWithFunctionType2.ts, 0, 21)) +>A : Symbol(A, Decl(inferentialTypingWithFunctionType2.ts, 0, 18)) +>A : Symbol(A, Decl(inferentialTypingWithFunctionType2.ts, 0, 18)) + + return a; +>a : Symbol(a, Decl(inferentialTypingWithFunctionType2.ts, 0, 21)) +} +var x = [1, 2, 3].map(identity)[0]; +>x : Symbol(x, Decl(inferentialTypingWithFunctionType2.ts, 3, 3)) +>[1, 2, 3].map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionType2.ts, 0, 0)) + diff --git a/tests/baselines/reference/inferentialTypingWithFunctionType2.types b/tests/baselines/reference/inferentialTypingWithFunctionType2.types index f6ed847293446..6dc4cda3b6871 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionType2.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionType2.types @@ -1,24 +1,24 @@ === tests/cases/compiler/inferentialTypingWithFunctionType2.ts === function identity(a: A): A { ->identity : (a: A) => A, Symbol(identity, Decl(inferentialTypingWithFunctionType2.ts, 0, 0)) ->A : A, Symbol(A, Decl(inferentialTypingWithFunctionType2.ts, 0, 18)) ->a : A, Symbol(a, Decl(inferentialTypingWithFunctionType2.ts, 0, 21)) ->A : A, Symbol(A, Decl(inferentialTypingWithFunctionType2.ts, 0, 18)) ->A : A, Symbol(A, Decl(inferentialTypingWithFunctionType2.ts, 0, 18)) +>identity : (a: A) => A +>A : A +>a : A +>A : A +>A : A return a; ->a : A, Symbol(a, Decl(inferentialTypingWithFunctionType2.ts, 0, 21)) +>a : A } var x = [1, 2, 3].map(identity)[0]; ->x : number, Symbol(x, Decl(inferentialTypingWithFunctionType2.ts, 3, 3)) +>x : number >[1, 2, 3].map(identity)[0] : number >[1, 2, 3].map(identity) : number[] ->[1, 2, 3].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>[1, 2, 3].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number ->map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) ->identity : (a: A) => A, Symbol(identity, Decl(inferentialTypingWithFunctionType2.ts, 0, 0)) +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>identity : (a: A) => A >0 : number diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.symbols b/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.symbols new file mode 100644 index 0000000000000..ae72021b31bdd --- /dev/null +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/inferentialTypingWithFunctionTypeNested.ts === +declare function map(x: T, f: () => { x: (s: T) => U }): U; +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 0)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 21)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 23)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 27)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 21)) +>f : Symbol(f, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 32)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 43)) +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 48)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 21)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 23)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 23)) + +declare function identity(y: V): V; +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 65)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 26)) +>y : Symbol(y, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 29)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 26)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 26)) + +var s = map("", () => { return { x: identity }; }); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeNested.ts, 3, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 0)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeNested.ts, 3, 32)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 65)) + diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types b/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types index 5d7e6d3595b09..a83379b4c7317 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types @@ -1,31 +1,31 @@ === tests/cases/compiler/inferentialTypingWithFunctionTypeNested.ts === declare function map(x: T, f: () => { x: (s: T) => U }): U; ->map : (x: T, f: () => { x: (s: T) => U; }) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 0)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 21)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 23)) ->x : T, Symbol(x, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 27)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 21)) ->f : () => { x: (s: T) => U; }, Symbol(f, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 32)) ->x : (s: T) => U, Symbol(x, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 43)) ->s : T, Symbol(s, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 48)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 21)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 23)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 23)) +>map : (x: T, f: () => { x: (s: T) => U; }) => U +>T : T +>U : U +>x : T +>T : T +>f : () => { x: (s: T) => U; } +>x : (s: T) => U +>s : T +>T : T +>U : U +>U : U declare function identity(y: V): V; ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 65)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 26)) ->y : V, Symbol(y, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 29)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 26)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionTypeNested.ts, 1, 26)) +>identity : (y: V) => V +>V : V +>y : V +>V : V +>V : V var s = map("", () => { return { x: identity }; }); ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeNested.ts, 3, 3)) +>s : string >map("", () => { return { x: identity }; }) : string ->map : (x: T, f: () => { x: (s: T) => U; }) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 0)) +>map : (x: T, f: () => { x: (s: T) => U; }) => U >"" : string >() => { return { x: identity }; } : () => { x: (y: string) => string; } >{ x: identity } : { x: (y: V) => V; } ->x : (y: V) => V, Symbol(x, Decl(inferentialTypingWithFunctionTypeNested.ts, 3, 32)) ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeNested.ts, 0, 65)) +>x : (y: V) => V +>identity : (y: V) => V diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.symbols b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.symbols new file mode 100644 index 0000000000000..a9571bc8a388d --- /dev/null +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.symbols @@ -0,0 +1,94 @@ +=== tests/cases/compiler/inferentialTypingWithFunctionTypeSyntacticScenarios.ts === +declare function map(array: T, func: (x: T) => U): U; +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 21)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 23)) +>array : Symbol(array, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 27)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 21)) +>func : Symbol(func, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 36)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 44)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 21)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 23)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 23)) + +declare function identity(y: V): V; +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 26)) +>y : Symbol(y, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 29)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 26)) +>V : Symbol(V, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 26)) + +var s: string; +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) + +// dotted name +var dottedIdentity = { x: identity }; +>dottedIdentity : Symbol(dottedIdentity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 3)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) + +s = map("", dottedIdentity.x); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>dottedIdentity.x : Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) +>dottedIdentity : Symbol(dottedIdentity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 3)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) + +// index expression +s = map("", dottedIdentity['x']); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>dottedIdentity : Symbol(dottedIdentity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 3)) +>'x' : Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) + +// function call +s = map("", (() => identity)()); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) + +// construct +interface IdentityConstructor { +>IdentityConstructor : Symbol(IdentityConstructor, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 12, 32)) + + new (): typeof identity; +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +} +var ic: IdentityConstructor; +>ic : Symbol(ic, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 18, 3)) +>IdentityConstructor : Symbol(IdentityConstructor, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 12, 32)) + +s = map("", new ic()); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>ic : Symbol(ic, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 18, 3)) + +// assignment +var t; +>t : Symbol(t, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 22, 3)) + +s = map("", t = identity); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>t : Symbol(t, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 22, 3)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) + +// type assertion +s = map("", identity); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) + +// parenthesized expression +s = map("", (identity)); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) + +// comma +s = map("", ("", identity)); +>s : Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>map : Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>identity : Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) + diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types index c73306075a905..5a4decef4dc4e 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types @@ -1,130 +1,130 @@ === tests/cases/compiler/inferentialTypingWithFunctionTypeSyntacticScenarios.ts === declare function map(array: T, func: (x: T) => U): U; ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 21)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 23)) ->array : T, Symbol(array, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 27)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 21)) ->func : (x: T) => U, Symbol(func, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 36)) ->x : T, Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 44)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 21)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 23)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 23)) +>map : (array: T, func: (x: T) => U) => U +>T : T +>U : U +>array : T +>T : T +>func : (x: T) => U +>x : T +>T : T +>U : U +>U : U declare function identity(y: V): V; ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 26)) ->y : V, Symbol(y, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 29)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 26)) ->V : V, Symbol(V, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 1, 26)) +>identity : (y: V) => V +>V : V +>y : V +>V : V +>V : V var s: string; ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string // dotted name var dottedIdentity = { x: identity }; ->dottedIdentity : { x: (y: V) => V; }, Symbol(dottedIdentity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 3)) +>dottedIdentity : { x: (y: V) => V; } >{ x: identity } : { x: (y: V) => V; } ->x : (y: V) => V, Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>x : (y: V) => V +>identity : (y: V) => V s = map("", dottedIdentity.x); >s = map("", dottedIdentity.x) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", dottedIdentity.x) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string ->dottedIdentity.x : (y: V) => V, Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) ->dottedIdentity : { x: (y: V) => V; }, Symbol(dottedIdentity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 3)) ->x : (y: V) => V, Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) +>dottedIdentity.x : (y: V) => V +>dottedIdentity : { x: (y: V) => V; } +>x : (y: V) => V // index expression s = map("", dottedIdentity['x']); >s = map("", dottedIdentity['x']) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", dottedIdentity['x']) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >dottedIdentity['x'] : (y: V) => V ->dottedIdentity : { x: (y: V) => V; }, Symbol(dottedIdentity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 3)) ->'x' : string, Symbol(x, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 5, 22)) +>dottedIdentity : { x: (y: V) => V; } +>'x' : string // function call s = map("", (() => identity)()); >s = map("", (() => identity)()) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", (() => identity)()) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >(() => identity)() : (y: V) => V >(() => identity) : () => (y: V) => V >() => identity : () => (y: V) => V ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>identity : (y: V) => V // construct interface IdentityConstructor { ->IdentityConstructor : IdentityConstructor, Symbol(IdentityConstructor, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 12, 32)) +>IdentityConstructor : IdentityConstructor new (): typeof identity; ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>identity : (y: V) => V } var ic: IdentityConstructor; ->ic : IdentityConstructor, Symbol(ic, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 18, 3)) ->IdentityConstructor : IdentityConstructor, Symbol(IdentityConstructor, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 12, 32)) +>ic : IdentityConstructor +>IdentityConstructor : IdentityConstructor s = map("", new ic()); >s = map("", new ic()) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", new ic()) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >new ic() : (y: V) => V ->ic : IdentityConstructor, Symbol(ic, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 18, 3)) +>ic : IdentityConstructor // assignment var t; ->t : any, Symbol(t, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 22, 3)) +>t : any s = map("", t = identity); >s = map("", t = identity) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", t = identity) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >t = identity : (y: V) => V ->t : any, Symbol(t, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 22, 3)) ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>t : any +>identity : (y: V) => V // type assertion s = map("", identity); >s = map("", identity) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", identity) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >identity : (y: V) => V ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>identity : (y: V) => V +>identity : (y: V) => V // parenthesized expression s = map("", (identity)); >s = map("", (identity)) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", (identity)) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >(identity) : (y: V) => V ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>identity : (y: V) => V // comma s = map("", ("", identity)); >s = map("", ("", identity)) : string ->s : string, Symbol(s, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 2, 3)) +>s : string >map("", ("", identity)) : string ->map : (array: T, func: (x: T) => U) => U, Symbol(map, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 0)) +>map : (array: T, func: (x: T) => U) => U >"" : string >("", identity) : (y: V) => V >"", identity : (y: V) => V >"" : string ->identity : (y: V) => V, Symbol(identity, Decl(inferentialTypingWithFunctionTypeSyntacticScenarios.ts, 0, 59)) +>identity : (y: V) => V diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.symbols b/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.symbols new file mode 100644 index 0000000000000..144d3426f7a99 --- /dev/null +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/inferentialTypingWithFunctionTypeZip.ts === +var pair: (x: T) => (y: S) => { x: T; y: S; } +>pair : Symbol(pair, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 3)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 11)) +>S : Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 13)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 17)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 11)) +>y : Symbol(y, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 27)) +>S : Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 13)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 37)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 11)) +>y : Symbol(y, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 43)) +>S : Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 13)) + +var zipWith: (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[]; +>zipWith : Symbol(zipWith, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 3)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 14)) +>S : Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 16)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 19)) +>a : Symbol(a, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 23)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 14)) +>b : Symbol(b, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 30)) +>S : Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 16)) +>f : Symbol(f, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 38)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 43)) +>T : Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 14)) +>y : Symbol(y, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 53)) +>S : Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 16)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 19)) +>U : Symbol(U, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 19)) + +var result = zipWith([1, 2], ['a', 'b'], pair); +>result : Symbol(result, Decl(inferentialTypingWithFunctionTypeZip.ts, 2, 3)) +>zipWith : Symbol(zipWith, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 3)) +>pair : Symbol(pair, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 3)) + +var i = result[0].x; // number +>i : Symbol(i, Decl(inferentialTypingWithFunctionTypeZip.ts, 3, 3)) +>result[0].x : Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 37)) +>result : Symbol(result, Decl(inferentialTypingWithFunctionTypeZip.ts, 2, 3)) +>x : Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 37)) + diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types b/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types index 785b9defdfbea..cc9d8790bd4b5 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types @@ -1,51 +1,51 @@ === tests/cases/compiler/inferentialTypingWithFunctionTypeZip.ts === var pair: (x: T) => (y: S) => { x: T; y: S; } ->pair : (x: T) => (y: S) => { x: T; y: S; }, Symbol(pair, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 3)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 11)) ->S : S, Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 13)) ->x : T, Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 17)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 11)) ->y : S, Symbol(y, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 27)) ->S : S, Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 13)) ->x : T, Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 37)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 11)) ->y : S, Symbol(y, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 43)) ->S : S, Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 13)) +>pair : (x: T) => (y: S) => { x: T; y: S; } +>T : T +>S : S +>x : T +>T : T +>y : S +>S : S +>x : T +>T : T +>y : S +>S : S var zipWith: (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[]; ->zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[], Symbol(zipWith, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 3)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 14)) ->S : S, Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 16)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 19)) ->a : T[], Symbol(a, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 23)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 14)) ->b : S[], Symbol(b, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 30)) ->S : S, Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 16)) ->f : (x: T) => (y: S) => U, Symbol(f, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 38)) ->x : T, Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 43)) ->T : T, Symbol(T, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 14)) ->y : S, Symbol(y, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 53)) ->S : S, Symbol(S, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 16)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 19)) ->U : U, Symbol(U, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 19)) +>zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[] +>T : T +>S : S +>U : U +>a : T[] +>T : T +>b : S[] +>S : S +>f : (x: T) => (y: S) => U +>x : T +>T : T +>y : S +>S : S +>U : U +>U : U var result = zipWith([1, 2], ['a', 'b'], pair); ->result : { x: number; y: {}; }[], Symbol(result, Decl(inferentialTypingWithFunctionTypeZip.ts, 2, 3)) +>result : { x: number; y: {}; }[] >zipWith([1, 2], ['a', 'b'], pair) : { x: number; y: {}; }[] ->zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[], Symbol(zipWith, Decl(inferentialTypingWithFunctionTypeZip.ts, 1, 3)) +>zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[] >[1, 2] : number[] >1 : number >2 : number >['a', 'b'] : string[] >'a' : string >'b' : string ->pair : (x: T) => (y: S) => { x: T; y: S; }, Symbol(pair, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 3)) +>pair : (x: T) => (y: S) => { x: T; y: S; } var i = result[0].x; // number ->i : number, Symbol(i, Decl(inferentialTypingWithFunctionTypeZip.ts, 3, 3)) ->result[0].x : number, Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 37)) +>i : number +>result[0].x : number >result[0] : { x: number; y: {}; } ->result : { x: number; y: {}; }[], Symbol(result, Decl(inferentialTypingWithFunctionTypeZip.ts, 2, 3)) +>result : { x: number; y: {}; }[] >0 : number ->x : number, Symbol(x, Decl(inferentialTypingWithFunctionTypeZip.ts, 0, 37)) +>x : number diff --git a/tests/baselines/reference/inferentiallyTypingAnEmptyArray.symbols b/tests/baselines/reference/inferentiallyTypingAnEmptyArray.symbols new file mode 100644 index 0000000000000..b53f21579da17 --- /dev/null +++ b/tests/baselines/reference/inferentiallyTypingAnEmptyArray.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/inferentiallyTypingAnEmptyArray.ts === +// April 2014, Section 4.6: +// In the absence of a contextual type, the type of an array literal is C[], where C is the +// Undefined type(section 3.2.6) if the array literal is empty, or the best common type of +// the element expressions if the array literal is not empty. +// When an array literal is contextually typed(section 4.19) by an object type containing a +// numeric index signature of type T, each element expression is contextually typed by T and +// the type of the array literal is the best common type of T and the types of the element +// expressions. +// +// While the spec does not say it, an inferential type causes an empty array literal to have +// the undefined[] type. In other words, the first clause from the excerpt above applies even +// though there is a "contextual type" present. This is the intention, even though the spec +// seems to imply the contrary. +// Therefore, the following access to bar should not cause an error because we infer +// the undefined[] type. +declare function foo(arr: T[]): T; +>foo : Symbol(foo, Decl(inferentiallyTypingAnEmptyArray.ts, 0, 0)) +>T : Symbol(T, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 21)) +>arr : Symbol(arr, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 24)) +>T : Symbol(T, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 21)) +>T : Symbol(T, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 21)) + +foo([]).bar; +>foo : Symbol(foo, Decl(inferentiallyTypingAnEmptyArray.ts, 0, 0)) + diff --git a/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types b/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types index 9f8fad62e9407..451280ee16f41 100644 --- a/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types +++ b/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types @@ -15,16 +15,16 @@ // Therefore, the following access to bar should not cause an error because we infer // the undefined[] type. declare function foo(arr: T[]): T; ->foo : (arr: T[]) => T, Symbol(foo, Decl(inferentiallyTypingAnEmptyArray.ts, 0, 0)) ->T : T, Symbol(T, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 21)) ->arr : T[], Symbol(arr, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 24)) ->T : T, Symbol(T, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 21)) ->T : T, Symbol(T, Decl(inferentiallyTypingAnEmptyArray.ts, 15, 21)) +>foo : (arr: T[]) => T +>T : T +>arr : T[] +>T : T +>T : T foo([]).bar; >foo([]).bar : any >foo([]) : any ->foo : (arr: T[]) => T, Symbol(foo, Decl(inferentiallyTypingAnEmptyArray.ts, 0, 0)) +>foo : (arr: T[]) => T >[] : undefined[] >bar : any diff --git a/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.symbols b/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.symbols new file mode 100644 index 0000000000000..2640ec367dc1a --- /dev/null +++ b/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/infiniteExpandingTypeThroughInheritanceInstantiation.ts === +interface A +>A : Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) +>T : Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 12)) +{ + x: A> +>x : Symbol(x, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 1, 1)) +>A : Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) +>B : Symbol(B, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 3, 1)) +>T : Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 12)) +} + +interface B extends A // error +>B : Symbol(B, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 3, 1)) +>T : Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 5, 12)) +>A : Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) +>T : Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 5, 12)) +{ + x: B> +>x : Symbol(x, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 6, 1)) +>B : Symbol(B, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 3, 1)) +>A : Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) +>T : Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 5, 12)) +} + diff --git a/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.types b/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.types index 529dcd5401256..06416e6b02d3f 100644 --- a/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.types +++ b/tests/baselines/reference/infiniteExpandingTypeThroughInheritanceInstantiation.types @@ -1,25 +1,25 @@ === tests/cases/compiler/infiniteExpandingTypeThroughInheritanceInstantiation.ts === interface A ->A : A, Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) ->T : T, Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 12)) +>A : A +>T : T { x: A> ->x : A>, Symbol(x, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 1, 1)) ->A : A, Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) ->B : B, Symbol(B, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 3, 1)) ->T : T, Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 12)) +>x : A> +>A : A +>B : B +>T : T } interface B extends A // error ->B : B, Symbol(B, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 3, 1)) ->T : T, Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 5, 12)) ->A : A, Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) ->T : T, Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 5, 12)) +>B : B +>T : T +>A : A +>T : T { x: B> ->x : B>, Symbol(x, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 6, 1)) ->B : B, Symbol(B, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 3, 1)) ->A : A, Symbol(A, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 0, 0)) ->T : T, Symbol(T, Decl(infiniteExpandingTypeThroughInheritanceInstantiation.ts, 5, 12)) +>x : B> +>B : B +>A : A +>T : T } diff --git a/tests/baselines/reference/infiniteExpansionThroughTypeInference.symbols b/tests/baselines/reference/infiniteExpansionThroughTypeInference.symbols new file mode 100644 index 0000000000000..ba90d5c74a864 --- /dev/null +++ b/tests/baselines/reference/infiniteExpansionThroughTypeInference.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/types/typeRelationships/recursiveTypes/infiniteExpansionThroughTypeInference.ts === +interface G { +>G : Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) +>T : Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 0, 12)) + + x: G> // infinitely expanding type reference +>x : Symbol(x, Decl(infiniteExpansionThroughTypeInference.ts, 0, 16)) +>G : Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) +>G : Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) +>T : Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 0, 12)) + + y: T +>y : Symbol(y, Decl(infiniteExpansionThroughTypeInference.ts, 1, 14)) +>T : Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 0, 12)) +} + +function ff(g: G): void { +>ff : Symbol(ff, Decl(infiniteExpansionThroughTypeInference.ts, 3, 1)) +>T : Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 5, 12)) +>g : Symbol(g, Decl(infiniteExpansionThroughTypeInference.ts, 5, 15)) +>G : Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) +>T : Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 5, 12)) + + ff(g) // when infering T here we need to make sure to not descend into the structure of G infinitely +>ff : Symbol(ff, Decl(infiniteExpansionThroughTypeInference.ts, 3, 1)) +>g : Symbol(g, Decl(infiniteExpansionThroughTypeInference.ts, 5, 15)) +} + + diff --git a/tests/baselines/reference/infiniteExpansionThroughTypeInference.types b/tests/baselines/reference/infiniteExpansionThroughTypeInference.types index 32790b152c578..df818833aa0a0 100644 --- a/tests/baselines/reference/infiniteExpansionThroughTypeInference.types +++ b/tests/baselines/reference/infiniteExpansionThroughTypeInference.types @@ -1,30 +1,30 @@ === tests/cases/conformance/types/typeRelationships/recursiveTypes/infiniteExpansionThroughTypeInference.ts === interface G { ->G : G, Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) ->T : T, Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 0, 12)) +>G : G +>T : T x: G> // infinitely expanding type reference ->x : G>, Symbol(x, Decl(infiniteExpansionThroughTypeInference.ts, 0, 16)) ->G : G, Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) ->G : G, Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) ->T : T, Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 0, 12)) +>x : G> +>G : G +>G : G +>T : T y: T ->y : T, Symbol(y, Decl(infiniteExpansionThroughTypeInference.ts, 1, 14)) ->T : T, Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 0, 12)) +>y : T +>T : T } function ff(g: G): void { ->ff : (g: G) => void, Symbol(ff, Decl(infiniteExpansionThroughTypeInference.ts, 3, 1)) ->T : T, Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 5, 12)) ->g : G, Symbol(g, Decl(infiniteExpansionThroughTypeInference.ts, 5, 15)) ->G : G, Symbol(G, Decl(infiniteExpansionThroughTypeInference.ts, 0, 0)) ->T : T, Symbol(T, Decl(infiniteExpansionThroughTypeInference.ts, 5, 12)) +>ff : (g: G) => void +>T : T +>g : G +>G : G +>T : T ff(g) // when infering T here we need to make sure to not descend into the structure of G infinitely >ff(g) : void ->ff : (g: G) => void, Symbol(ff, Decl(infiniteExpansionThroughTypeInference.ts, 3, 1)) ->g : G, Symbol(g, Decl(infiniteExpansionThroughTypeInference.ts, 5, 15)) +>ff : (g: G) => void +>g : G } diff --git a/tests/baselines/reference/infinitelyExpandingBaseTypes1.symbols b/tests/baselines/reference/infinitelyExpandingBaseTypes1.symbols new file mode 100644 index 0000000000000..dc3456602bb05 --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingBaseTypes1.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/infinitelyExpandingBaseTypes1.ts === +interface A +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 0, 12)) +{ + x : A> +>x : Symbol(x, Decl(infinitelyExpandingBaseTypes1.ts, 1, 1)) +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 0, 12)) +} + +interface B +>B : Symbol(B, Decl(infinitelyExpandingBaseTypes1.ts, 3, 1)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 5, 12)) +{ + x : B +>x : Symbol(x, Decl(infinitelyExpandingBaseTypes1.ts, 6, 1)) +>B : Symbol(B, Decl(infinitelyExpandingBaseTypes1.ts, 3, 1)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 5, 12)) +} + +interface C extends A, B { } +>C : Symbol(C, Decl(infinitelyExpandingBaseTypes1.ts, 8, 1)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 10, 12)) +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 10, 12)) +>B : Symbol(B, Decl(infinitelyExpandingBaseTypes1.ts, 3, 1)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 10, 12)) + + + diff --git a/tests/baselines/reference/infinitelyExpandingBaseTypes1.types b/tests/baselines/reference/infinitelyExpandingBaseTypes1.types index 21507ed2d933d..a1d87a4a8073d 100644 --- a/tests/baselines/reference/infinitelyExpandingBaseTypes1.types +++ b/tests/baselines/reference/infinitelyExpandingBaseTypes1.types @@ -1,32 +1,32 @@ === tests/cases/compiler/infinitelyExpandingBaseTypes1.ts === interface A ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 0, 12)) +>A : A +>T : T { x : A> ->x : A>, Symbol(x, Decl(infinitelyExpandingBaseTypes1.ts, 1, 1)) ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 0, 12)) +>x : A> +>A : A +>A : A +>T : T } interface B ->B : B, Symbol(B, Decl(infinitelyExpandingBaseTypes1.ts, 3, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 5, 12)) +>B : B +>T : T { x : B ->x : B, Symbol(x, Decl(infinitelyExpandingBaseTypes1.ts, 6, 1)) ->B : B, Symbol(B, Decl(infinitelyExpandingBaseTypes1.ts, 3, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 5, 12)) +>x : B +>B : B +>T : T } interface C extends A, B { } ->C : C, Symbol(C, Decl(infinitelyExpandingBaseTypes1.ts, 8, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 10, 12)) ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes1.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 10, 12)) ->B : B, Symbol(B, Decl(infinitelyExpandingBaseTypes1.ts, 3, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes1.ts, 10, 12)) +>C : C +>T : T +>A : A +>T : T +>B : B +>T : T diff --git a/tests/baselines/reference/infinitelyExpandingBaseTypes2.symbols b/tests/baselines/reference/infinitelyExpandingBaseTypes2.symbols new file mode 100644 index 0000000000000..8379ea16878ad --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingBaseTypes2.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/infinitelyExpandingBaseTypes2.ts === +interface A +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes2.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 0, 12)) +{ + x : A<()=>T> +>x : Symbol(x, Decl(infinitelyExpandingBaseTypes2.ts, 1, 1)) +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes2.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 0, 12)) +} + +interface B +>B : Symbol(B, Decl(infinitelyExpandingBaseTypes2.ts, 3, 1)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 5, 12)) +{ + x : B<()=>T> +>x : Symbol(x, Decl(infinitelyExpandingBaseTypes2.ts, 6, 1)) +>B : Symbol(B, Decl(infinitelyExpandingBaseTypes2.ts, 3, 1)) +>T : Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 5, 12)) +} + +var a: A +>a : Symbol(a, Decl(infinitelyExpandingBaseTypes2.ts, 10, 3)) +>A : Symbol(A, Decl(infinitelyExpandingBaseTypes2.ts, 0, 0)) + +var b: B = a +>b : Symbol(b, Decl(infinitelyExpandingBaseTypes2.ts, 11, 3)) +>B : Symbol(B, Decl(infinitelyExpandingBaseTypes2.ts, 3, 1)) +>a : Symbol(a, Decl(infinitelyExpandingBaseTypes2.ts, 10, 3)) + diff --git a/tests/baselines/reference/infinitelyExpandingBaseTypes2.types b/tests/baselines/reference/infinitelyExpandingBaseTypes2.types index 4cacb0c78f78a..8b258f5b2be0a 100644 --- a/tests/baselines/reference/infinitelyExpandingBaseTypes2.types +++ b/tests/baselines/reference/infinitelyExpandingBaseTypes2.types @@ -1,30 +1,30 @@ === tests/cases/compiler/infinitelyExpandingBaseTypes2.ts === interface A ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes2.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 0, 12)) +>A : A +>T : T { x : A<()=>T> ->x : A<() => T>, Symbol(x, Decl(infinitelyExpandingBaseTypes2.ts, 1, 1)) ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes2.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 0, 12)) +>x : A<() => T> +>A : A +>T : T } interface B ->B : B, Symbol(B, Decl(infinitelyExpandingBaseTypes2.ts, 3, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 5, 12)) +>B : B +>T : T { x : B<()=>T> ->x : B<() => T>, Symbol(x, Decl(infinitelyExpandingBaseTypes2.ts, 6, 1)) ->B : B, Symbol(B, Decl(infinitelyExpandingBaseTypes2.ts, 3, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingBaseTypes2.ts, 5, 12)) +>x : B<() => T> +>B : B +>T : T } var a: A ->a : A, Symbol(a, Decl(infinitelyExpandingBaseTypes2.ts, 10, 3)) ->A : A, Symbol(A, Decl(infinitelyExpandingBaseTypes2.ts, 0, 0)) +>a : A +>A : A var b: B = a ->b : B, Symbol(b, Decl(infinitelyExpandingBaseTypes2.ts, 11, 3)) ->B : B, Symbol(B, Decl(infinitelyExpandingBaseTypes2.ts, 3, 1)) ->a : A, Symbol(a, Decl(infinitelyExpandingBaseTypes2.ts, 10, 3)) +>b : B +>B : B +>a : A diff --git a/tests/baselines/reference/infinitelyExpandingTypeAssignability.symbols b/tests/baselines/reference/infinitelyExpandingTypeAssignability.symbols new file mode 100644 index 0000000000000..1907ff33cf6f7 --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingTypeAssignability.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/infinitelyExpandingTypeAssignability.ts === +interface A { +>A : Symbol(A, Decl(infinitelyExpandingTypeAssignability.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 0, 12)) + + x : T +>x : Symbol(x, Decl(infinitelyExpandingTypeAssignability.ts, 0, 16)) +>T : Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 0, 12)) +} + +interface B extends A>>> { } +>B : Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 4, 12)) +>A : Symbol(A, Decl(infinitelyExpandingTypeAssignability.ts, 0, 0)) +>B : Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) +>B : Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) +>B : Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 4, 12)) + +interface C extends A>>> { } +>C : Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) +>T : Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 6, 12)) +>A : Symbol(A, Decl(infinitelyExpandingTypeAssignability.ts, 0, 0)) +>C : Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) +>C : Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) +>C : Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) +>T : Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 6, 12)) + +var x : B +>x : Symbol(x, Decl(infinitelyExpandingTypeAssignability.ts, 8, 3)) +>B : Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) + +var y : C = x +>y : Symbol(y, Decl(infinitelyExpandingTypeAssignability.ts, 9, 3)) +>C : Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) +>x : Symbol(x, Decl(infinitelyExpandingTypeAssignability.ts, 8, 3)) + diff --git a/tests/baselines/reference/infinitelyExpandingTypeAssignability.types b/tests/baselines/reference/infinitelyExpandingTypeAssignability.types index c81dd35827537..c145a60cdf189 100644 --- a/tests/baselines/reference/infinitelyExpandingTypeAssignability.types +++ b/tests/baselines/reference/infinitelyExpandingTypeAssignability.types @@ -1,37 +1,37 @@ === tests/cases/compiler/infinitelyExpandingTypeAssignability.ts === interface A { ->A : A, Symbol(A, Decl(infinitelyExpandingTypeAssignability.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 0, 12)) +>A : A +>T : T x : T ->x : T, Symbol(x, Decl(infinitelyExpandingTypeAssignability.ts, 0, 16)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 0, 12)) +>x : T +>T : T } interface B extends A>>> { } ->B : B, Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 4, 12)) ->A : A, Symbol(A, Decl(infinitelyExpandingTypeAssignability.ts, 0, 0)) ->B : B, Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) ->B : B, Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) ->B : B, Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 4, 12)) +>B : B +>T : T +>A : A +>B : B +>B : B +>B : B +>T : T interface C extends A>>> { } ->C : C, Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 6, 12)) ->A : A, Symbol(A, Decl(infinitelyExpandingTypeAssignability.ts, 0, 0)) ->C : C, Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) ->C : C, Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) ->C : C, Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypeAssignability.ts, 6, 12)) +>C : C +>T : T +>A : A +>C : C +>C : C +>C : C +>T : T var x : B ->x : B, Symbol(x, Decl(infinitelyExpandingTypeAssignability.ts, 8, 3)) ->B : B, Symbol(B, Decl(infinitelyExpandingTypeAssignability.ts, 2, 1)) +>x : B +>B : B var y : C = x ->y : C, Symbol(y, Decl(infinitelyExpandingTypeAssignability.ts, 9, 3)) ->C : C, Symbol(C, Decl(infinitelyExpandingTypeAssignability.ts, 4, 40)) ->x : B, Symbol(x, Decl(infinitelyExpandingTypeAssignability.ts, 8, 3)) +>y : C +>C : C +>x : B diff --git a/tests/baselines/reference/infinitelyExpandingTypes3.symbols b/tests/baselines/reference/infinitelyExpandingTypes3.symbols new file mode 100644 index 0000000000000..fbc14afc80fa2 --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingTypes3.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/infinitelyExpandingTypes3.ts === +interface List { +>List : Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) + + data: T; +>data : Symbol(data, Decl(infinitelyExpandingTypes3.ts, 0, 19)) +>T : Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) + + next: List; // will be recursive reference when OwnerList is expanded +>next : Symbol(next, Decl(infinitelyExpandingTypes3.ts, 1, 12)) +>List : Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) + + owner: OwnerList; +>owner : Symbol(owner, Decl(infinitelyExpandingTypes3.ts, 2, 18)) +>OwnerList : Symbol(OwnerList, Decl(infinitelyExpandingTypes3.ts, 4, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) +} + +interface OwnerList extends List> { +>OwnerList : Symbol(OwnerList, Decl(infinitelyExpandingTypes3.ts, 4, 1)) +>U : Symbol(U, Decl(infinitelyExpandingTypes3.ts, 6, 20)) +>List : Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) +>List : Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) +>U : Symbol(U, Decl(infinitelyExpandingTypes3.ts, 6, 20)) + + name: string; +>name : Symbol(name, Decl(infinitelyExpandingTypes3.ts, 6, 46)) +} + +interface OwnerList2 extends List> { +>OwnerList2 : Symbol(OwnerList2, Decl(infinitelyExpandingTypes3.ts, 8, 1)) +>U : Symbol(U, Decl(infinitelyExpandingTypes3.ts, 10, 21)) +>List : Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) +>List : Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) +>U : Symbol(U, Decl(infinitelyExpandingTypes3.ts, 10, 21)) + + name: string; +>name : Symbol(name, Decl(infinitelyExpandingTypes3.ts, 10, 47)) +} + +var o1: OwnerList; +>o1 : Symbol(o1, Decl(infinitelyExpandingTypes3.ts, 14, 3)) +>OwnerList : Symbol(OwnerList, Decl(infinitelyExpandingTypes3.ts, 4, 1)) + +var o2: OwnerList2; +>o2 : Symbol(o2, Decl(infinitelyExpandingTypes3.ts, 15, 3)) +>OwnerList2 : Symbol(OwnerList2, Decl(infinitelyExpandingTypes3.ts, 8, 1)) + +o1 = o2; // should not error +>o1 : Symbol(o1, Decl(infinitelyExpandingTypes3.ts, 14, 3)) +>o2 : Symbol(o2, Decl(infinitelyExpandingTypes3.ts, 15, 3)) + diff --git a/tests/baselines/reference/infinitelyExpandingTypes3.types b/tests/baselines/reference/infinitelyExpandingTypes3.types index 9d4faac2fb111..b63c87962535c 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes3.types +++ b/tests/baselines/reference/infinitelyExpandingTypes3.types @@ -1,55 +1,55 @@ === tests/cases/compiler/infinitelyExpandingTypes3.ts === interface List { ->List : List, Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) +>List : List +>T : T data: T; ->data : T, Symbol(data, Decl(infinitelyExpandingTypes3.ts, 0, 19)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) +>data : T +>T : T next: List; // will be recursive reference when OwnerList is expanded ->next : List, Symbol(next, Decl(infinitelyExpandingTypes3.ts, 1, 12)) ->List : List, Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) +>next : List +>List : List +>T : T owner: OwnerList; ->owner : OwnerList, Symbol(owner, Decl(infinitelyExpandingTypes3.ts, 2, 18)) ->OwnerList : OwnerList, Symbol(OwnerList, Decl(infinitelyExpandingTypes3.ts, 4, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes3.ts, 0, 15)) +>owner : OwnerList +>OwnerList : OwnerList +>T : T } interface OwnerList extends List> { ->OwnerList : OwnerList, Symbol(OwnerList, Decl(infinitelyExpandingTypes3.ts, 4, 1)) ->U : U, Symbol(U, Decl(infinitelyExpandingTypes3.ts, 6, 20)) ->List : List, Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) ->List : List, Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) ->U : U, Symbol(U, Decl(infinitelyExpandingTypes3.ts, 6, 20)) +>OwnerList : OwnerList +>U : U +>List : List +>List : List +>U : U name: string; ->name : string, Symbol(name, Decl(infinitelyExpandingTypes3.ts, 6, 46)) +>name : string } interface OwnerList2 extends List> { ->OwnerList2 : OwnerList2, Symbol(OwnerList2, Decl(infinitelyExpandingTypes3.ts, 8, 1)) ->U : U, Symbol(U, Decl(infinitelyExpandingTypes3.ts, 10, 21)) ->List : List, Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) ->List : List, Symbol(List, Decl(infinitelyExpandingTypes3.ts, 0, 0)) ->U : U, Symbol(U, Decl(infinitelyExpandingTypes3.ts, 10, 21)) +>OwnerList2 : OwnerList2 +>U : U +>List : List +>List : List +>U : U name: string; ->name : string, Symbol(name, Decl(infinitelyExpandingTypes3.ts, 10, 47)) +>name : string } var o1: OwnerList; ->o1 : OwnerList, Symbol(o1, Decl(infinitelyExpandingTypes3.ts, 14, 3)) ->OwnerList : OwnerList, Symbol(OwnerList, Decl(infinitelyExpandingTypes3.ts, 4, 1)) +>o1 : OwnerList +>OwnerList : OwnerList var o2: OwnerList2; ->o2 : OwnerList2, Symbol(o2, Decl(infinitelyExpandingTypes3.ts, 15, 3)) ->OwnerList2 : OwnerList2, Symbol(OwnerList2, Decl(infinitelyExpandingTypes3.ts, 8, 1)) +>o2 : OwnerList2 +>OwnerList2 : OwnerList2 o1 = o2; // should not error >o1 = o2 : OwnerList2 ->o1 : OwnerList, Symbol(o1, Decl(infinitelyExpandingTypes3.ts, 14, 3)) ->o2 : OwnerList2, Symbol(o2, Decl(infinitelyExpandingTypes3.ts, 15, 3)) +>o1 : OwnerList +>o2 : OwnerList2 diff --git a/tests/baselines/reference/infinitelyExpandingTypes4.symbols b/tests/baselines/reference/infinitelyExpandingTypes4.symbols new file mode 100644 index 0000000000000..af0aee01216f7 --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingTypes4.symbols @@ -0,0 +1,73 @@ +=== tests/cases/compiler/infinitelyExpandingTypes4.ts === +interface Query { +>Query : Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 0, 16)) + + // ... + groupBy(keySelector: (item: T) => K): Query>; +>groupBy : Symbol(groupBy, Decl(infinitelyExpandingTypes4.ts, 0, 20)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 2, 12)) +>keySelector : Symbol(keySelector, Decl(infinitelyExpandingTypes4.ts, 2, 15)) +>item : Symbol(item, Decl(infinitelyExpandingTypes4.ts, 2, 29)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 0, 16)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 2, 12)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) +>Grouping : Symbol(Grouping, Decl(infinitelyExpandingTypes4.ts, 10, 1)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 2, 12)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 0, 16)) + + // ... +} + +interface QueryEnumerator { +>QueryEnumerator : Symbol(QueryEnumerator, Decl(infinitelyExpandingTypes4.ts, 4, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 6, 26)) + + // ... + groupBy(keySelector: (item: T) => K): QueryEnumerator>; +>groupBy : Symbol(groupBy, Decl(infinitelyExpandingTypes4.ts, 6, 30)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 8, 12)) +>keySelector : Symbol(keySelector, Decl(infinitelyExpandingTypes4.ts, 8, 15)) +>item : Symbol(item, Decl(infinitelyExpandingTypes4.ts, 8, 29)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 6, 26)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 8, 12)) +>QueryEnumerator : Symbol(QueryEnumerator, Decl(infinitelyExpandingTypes4.ts, 4, 1)) +>Grouping : Symbol(Grouping, Decl(infinitelyExpandingTypes4.ts, 10, 1)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 8, 12)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 6, 26)) + + // ... +} + +interface Grouping extends Query { +>Grouping : Symbol(Grouping, Decl(infinitelyExpandingTypes4.ts, 10, 1)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 12, 19)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 12, 21)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes4.ts, 12, 21)) + + key(): K; +>key : Symbol(key, Decl(infinitelyExpandingTypes4.ts, 12, 43)) +>K : Symbol(K, Decl(infinitelyExpandingTypes4.ts, 12, 19)) +} + +var q1: Query; +>q1 : Symbol(q1, Decl(infinitelyExpandingTypes4.ts, 16, 3)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) + +var q2: QueryEnumerator; +>q2 : Symbol(q2, Decl(infinitelyExpandingTypes4.ts, 17, 3)) +>QueryEnumerator : Symbol(QueryEnumerator, Decl(infinitelyExpandingTypes4.ts, 4, 1)) + +var q3: Query; +>q3 : Symbol(q3, Decl(infinitelyExpandingTypes4.ts, 18, 3)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) + +q1 = q2; // should error +>q1 : Symbol(q1, Decl(infinitelyExpandingTypes4.ts, 16, 3)) +>q2 : Symbol(q2, Decl(infinitelyExpandingTypes4.ts, 17, 3)) + +q1 = q3; // should not error +>q1 : Symbol(q1, Decl(infinitelyExpandingTypes4.ts, 16, 3)) +>q3 : Symbol(q3, Decl(infinitelyExpandingTypes4.ts, 18, 3)) + diff --git a/tests/baselines/reference/infinitelyExpandingTypes4.types b/tests/baselines/reference/infinitelyExpandingTypes4.types index 3970ec39a1f58..7309d70956132 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes4.types +++ b/tests/baselines/reference/infinitelyExpandingTypes4.types @@ -1,75 +1,75 @@ === tests/cases/compiler/infinitelyExpandingTypes4.ts === interface Query { ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 0, 16)) +>Query : Query +>T : T // ... groupBy(keySelector: (item: T) => K): Query>; ->groupBy : (keySelector: (item: T) => K) => Query>, Symbol(groupBy, Decl(infinitelyExpandingTypes4.ts, 0, 20)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 2, 12)) ->keySelector : (item: T) => K, Symbol(keySelector, Decl(infinitelyExpandingTypes4.ts, 2, 15)) ->item : T, Symbol(item, Decl(infinitelyExpandingTypes4.ts, 2, 29)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 0, 16)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 2, 12)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) ->Grouping : Grouping, Symbol(Grouping, Decl(infinitelyExpandingTypes4.ts, 10, 1)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 2, 12)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 0, 16)) +>groupBy : (keySelector: (item: T) => K) => Query> +>K : K +>keySelector : (item: T) => K +>item : T +>T : T +>K : K +>Query : Query +>Grouping : Grouping +>K : K +>T : T // ... } interface QueryEnumerator { ->QueryEnumerator : QueryEnumerator, Symbol(QueryEnumerator, Decl(infinitelyExpandingTypes4.ts, 4, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 6, 26)) +>QueryEnumerator : QueryEnumerator +>T : T // ... groupBy(keySelector: (item: T) => K): QueryEnumerator>; ->groupBy : (keySelector: (item: T) => K) => QueryEnumerator>, Symbol(groupBy, Decl(infinitelyExpandingTypes4.ts, 6, 30)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 8, 12)) ->keySelector : (item: T) => K, Symbol(keySelector, Decl(infinitelyExpandingTypes4.ts, 8, 15)) ->item : T, Symbol(item, Decl(infinitelyExpandingTypes4.ts, 8, 29)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 6, 26)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 8, 12)) ->QueryEnumerator : QueryEnumerator, Symbol(QueryEnumerator, Decl(infinitelyExpandingTypes4.ts, 4, 1)) ->Grouping : Grouping, Symbol(Grouping, Decl(infinitelyExpandingTypes4.ts, 10, 1)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 8, 12)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 6, 26)) +>groupBy : (keySelector: (item: T) => K) => QueryEnumerator> +>K : K +>keySelector : (item: T) => K +>item : T +>T : T +>K : K +>QueryEnumerator : QueryEnumerator +>Grouping : Grouping +>K : K +>T : T // ... } interface Grouping extends Query { ->Grouping : Grouping, Symbol(Grouping, Decl(infinitelyExpandingTypes4.ts, 10, 1)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 12, 19)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 12, 21)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes4.ts, 12, 21)) +>Grouping : Grouping +>K : K +>T : T +>Query : Query +>T : T key(): K; ->key : () => K, Symbol(key, Decl(infinitelyExpandingTypes4.ts, 12, 43)) ->K : K, Symbol(K, Decl(infinitelyExpandingTypes4.ts, 12, 19)) +>key : () => K +>K : K } var q1: Query; ->q1 : Query, Symbol(q1, Decl(infinitelyExpandingTypes4.ts, 16, 3)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) +>q1 : Query +>Query : Query var q2: QueryEnumerator; ->q2 : QueryEnumerator, Symbol(q2, Decl(infinitelyExpandingTypes4.ts, 17, 3)) ->QueryEnumerator : QueryEnumerator, Symbol(QueryEnumerator, Decl(infinitelyExpandingTypes4.ts, 4, 1)) +>q2 : QueryEnumerator +>QueryEnumerator : QueryEnumerator var q3: Query; ->q3 : Query, Symbol(q3, Decl(infinitelyExpandingTypes4.ts, 18, 3)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes4.ts, 0, 0)) +>q3 : Query +>Query : Query q1 = q2; // should error >q1 = q2 : QueryEnumerator ->q1 : Query, Symbol(q1, Decl(infinitelyExpandingTypes4.ts, 16, 3)) ->q2 : QueryEnumerator, Symbol(q2, Decl(infinitelyExpandingTypes4.ts, 17, 3)) +>q1 : Query +>q2 : QueryEnumerator q1 = q3; // should not error >q1 = q3 : Query ->q1 : Query, Symbol(q1, Decl(infinitelyExpandingTypes4.ts, 16, 3)) ->q3 : Query, Symbol(q3, Decl(infinitelyExpandingTypes4.ts, 18, 3)) +>q1 : Query +>q3 : Query diff --git a/tests/baselines/reference/infinitelyExpandingTypes5.symbols b/tests/baselines/reference/infinitelyExpandingTypes5.symbols new file mode 100644 index 0000000000000..d67d605559efc --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingTypes5.symbols @@ -0,0 +1,49 @@ +=== tests/cases/compiler/infinitelyExpandingTypes5.ts === +interface Query { +>Query : Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) + + foo(x: T): Query; +>foo : Symbol(foo, Decl(infinitelyExpandingTypes5.ts, 0, 20)) +>x : Symbol(x, Decl(infinitelyExpandingTypes5.ts, 1, 8)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) +} + +interface Enumerator { +>Enumerator : Symbol(Enumerator, Decl(infinitelyExpandingTypes5.ts, 2, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 4, 21)) + + (action: (item: T, index: number) => boolean): boolean; +>action : Symbol(action, Decl(infinitelyExpandingTypes5.ts, 5, 5)) +>item : Symbol(item, Decl(infinitelyExpandingTypes5.ts, 5, 14)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 4, 21)) +>index : Symbol(index, Decl(infinitelyExpandingTypes5.ts, 5, 22)) +} + +function from(array: T[]): Query; +>from : Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) +>array : Symbol(array, Decl(infinitelyExpandingTypes5.ts, 8, 17)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) + +function from(enumerator: Enumerator): Query; +>from : Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) +>enumerator : Symbol(enumerator, Decl(infinitelyExpandingTypes5.ts, 9, 17)) +>Enumerator : Symbol(Enumerator, Decl(infinitelyExpandingTypes5.ts, 2, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) +>Query : Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) + +function from(arg: any): any { +>from : Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) +>arg : Symbol(arg, Decl(infinitelyExpandingTypes5.ts, 10, 14)) + + return undefined; +>undefined : Symbol(undefined) +} + diff --git a/tests/baselines/reference/infinitelyExpandingTypes5.types b/tests/baselines/reference/infinitelyExpandingTypes5.types index ebecd7d7eea44..f145ff9539f3b 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes5.types +++ b/tests/baselines/reference/infinitelyExpandingTypes5.types @@ -1,49 +1,49 @@ === tests/cases/compiler/infinitelyExpandingTypes5.ts === interface Query { ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) +>Query : Query +>T : T foo(x: T): Query; ->foo : (x: T) => Query, Symbol(foo, Decl(infinitelyExpandingTypes5.ts, 0, 20)) ->x : T, Symbol(x, Decl(infinitelyExpandingTypes5.ts, 1, 8)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) +>foo : (x: T) => Query +>x : T +>T : T +>Query : Query +>T : T } interface Enumerator { ->Enumerator : Enumerator, Symbol(Enumerator, Decl(infinitelyExpandingTypes5.ts, 2, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 4, 21)) +>Enumerator : Enumerator +>T : T (action: (item: T, index: number) => boolean): boolean; ->action : (item: T, index: number) => boolean, Symbol(action, Decl(infinitelyExpandingTypes5.ts, 5, 5)) ->item : T, Symbol(item, Decl(infinitelyExpandingTypes5.ts, 5, 14)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 4, 21)) ->index : number, Symbol(index, Decl(infinitelyExpandingTypes5.ts, 5, 22)) +>action : (item: T, index: number) => boolean +>item : T +>T : T +>index : number } function from(array: T[]): Query; ->from : { (array: T[]): Query; (enumerator: Enumerator): Query; }, Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) ->array : T[], Symbol(array, Decl(infinitelyExpandingTypes5.ts, 8, 17)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) +>from : { (array: T[]): Query; (enumerator: Enumerator): Query; } +>T : T +>array : T[] +>T : T +>Query : Query +>T : T function from(enumerator: Enumerator): Query; ->from : { (array: T[]): Query; (enumerator: Enumerator): Query; }, Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) ->enumerator : Enumerator, Symbol(enumerator, Decl(infinitelyExpandingTypes5.ts, 9, 17)) ->Enumerator : Enumerator, Symbol(Enumerator, Decl(infinitelyExpandingTypes5.ts, 2, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) ->Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) +>from : { (array: T[]): Query; (enumerator: Enumerator): Query; } +>T : T +>enumerator : Enumerator +>Enumerator : Enumerator +>T : T +>Query : Query +>T : T function from(arg: any): any { ->from : { (array: T[]): Query; (enumerator: Enumerator): Query; }, Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) ->arg : any, Symbol(arg, Decl(infinitelyExpandingTypes5.ts, 10, 14)) +>from : { (array: T[]): Query; (enumerator: Enumerator): Query; } +>arg : any return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } diff --git a/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.symbols b/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.symbols new file mode 100644 index 0000000000000..dfa5d6e03ed1a --- /dev/null +++ b/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.symbols @@ -0,0 +1,55 @@ +=== tests/cases/compiler/infinitelyExpandingTypesNonGenericBase.ts === +class Functionality { +>Functionality : Symbol(Functionality, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 0)) +>V : Symbol(V, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 20)) + + property: Options; +>property : Symbol(property, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 24)) +>Options : Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) +>V : Symbol(V, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 20)) +} + +class Base { +>Base : Symbol(Base, Decl(infinitelyExpandingTypesNonGenericBase.ts, 2, 1)) +} + +class A extends Base { +>A : Symbol(A, Decl(infinitelyExpandingTypesNonGenericBase.ts, 5, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 7, 8)) +>Base : Symbol(Base, Decl(infinitelyExpandingTypesNonGenericBase.ts, 2, 1)) + + options: Options[]>; +>options : Symbol(options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 7, 25)) +>Options : Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) +>Functionality : Symbol(Functionality, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 7, 8)) +} + +interface OptionsBase { +>OptionsBase : Symbol(OptionsBase, Decl(infinitelyExpandingTypesNonGenericBase.ts, 9, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 11, 22)) + + Options: Options; +>Options : Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 11, 26)) +>Options : Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 11, 22)) +} + +interface Options extends OptionsBase { +>Options : Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 15, 18)) +>OptionsBase : Symbol(OptionsBase, Decl(infinitelyExpandingTypesNonGenericBase.ts, 9, 1)) +>T : Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 15, 18)) +} + + +function o(type: new () => Base) { +>o : Symbol(o, Decl(infinitelyExpandingTypesNonGenericBase.ts, 16, 1)) +>type : Symbol(type, Decl(infinitelyExpandingTypesNonGenericBase.ts, 19, 11)) +>Base : Symbol(Base, Decl(infinitelyExpandingTypesNonGenericBase.ts, 2, 1)) +} + +o(A); +>o : Symbol(o, Decl(infinitelyExpandingTypesNonGenericBase.ts, 16, 1)) +>A : Symbol(A, Decl(infinitelyExpandingTypesNonGenericBase.ts, 5, 1)) + diff --git a/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.types b/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.types index 4fced50090a71..9190ef15779ab 100644 --- a/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.types +++ b/tests/baselines/reference/infinitelyExpandingTypesNonGenericBase.types @@ -1,56 +1,56 @@ === tests/cases/compiler/infinitelyExpandingTypesNonGenericBase.ts === class Functionality { ->Functionality : Functionality, Symbol(Functionality, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 0)) ->V : V, Symbol(V, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 20)) +>Functionality : Functionality +>V : V property: Options; ->property : Options, Symbol(property, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 24)) ->Options : Options, Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) ->V : V, Symbol(V, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 20)) +>property : Options +>Options : Options +>V : V } class Base { ->Base : Base, Symbol(Base, Decl(infinitelyExpandingTypesNonGenericBase.ts, 2, 1)) +>Base : Base } class A extends Base { ->A : A, Symbol(A, Decl(infinitelyExpandingTypesNonGenericBase.ts, 5, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 7, 8)) ->Base : Base, Symbol(Base, Decl(infinitelyExpandingTypesNonGenericBase.ts, 2, 1)) +>A : A +>T : T +>Base : Base options: Options[]>; ->options : Options[]>, Symbol(options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 7, 25)) ->Options : Options, Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) ->Functionality : Functionality, Symbol(Functionality, Decl(infinitelyExpandingTypesNonGenericBase.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 7, 8)) +>options : Options[]> +>Options : Options +>Functionality : Functionality +>T : T } interface OptionsBase { ->OptionsBase : OptionsBase, Symbol(OptionsBase, Decl(infinitelyExpandingTypesNonGenericBase.ts, 9, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 11, 22)) +>OptionsBase : OptionsBase +>T : T Options: Options; ->Options : Options, Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 11, 26)) ->Options : Options, Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 11, 22)) +>Options : Options +>Options : Options +>T : T } interface Options extends OptionsBase { ->Options : Options, Symbol(Options, Decl(infinitelyExpandingTypesNonGenericBase.ts, 13, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 15, 18)) ->OptionsBase : OptionsBase, Symbol(OptionsBase, Decl(infinitelyExpandingTypesNonGenericBase.ts, 9, 1)) ->T : T, Symbol(T, Decl(infinitelyExpandingTypesNonGenericBase.ts, 15, 18)) +>Options : Options +>T : T +>OptionsBase : OptionsBase +>T : T } function o(type: new () => Base) { ->o : (type: new () => Base) => void, Symbol(o, Decl(infinitelyExpandingTypesNonGenericBase.ts, 16, 1)) ->type : new () => Base, Symbol(type, Decl(infinitelyExpandingTypesNonGenericBase.ts, 19, 11)) ->Base : Base, Symbol(Base, Decl(infinitelyExpandingTypesNonGenericBase.ts, 2, 1)) +>o : (type: new () => Base) => void +>type : new () => Base +>Base : Base } o(A); >o(A) : void ->o : (type: new () => Base) => void, Symbol(o, Decl(infinitelyExpandingTypesNonGenericBase.ts, 16, 1)) ->A : typeof A, Symbol(A, Decl(infinitelyExpandingTypesNonGenericBase.ts, 5, 1)) +>o : (type: new () => Base) => void +>A : typeof A diff --git a/tests/baselines/reference/infinitelyGenerativeInheritance1.symbols b/tests/baselines/reference/infinitelyGenerativeInheritance1.symbols new file mode 100644 index 0000000000000..54ecd9c965b1b --- /dev/null +++ b/tests/baselines/reference/infinitelyGenerativeInheritance1.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/infinitelyGenerativeInheritance1.ts === +interface Stack { +>Stack : Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 0, 16)) + + pop(): T +>pop : Symbol(pop, Decl(infinitelyGenerativeInheritance1.ts, 0, 20)) +>T : Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 0, 16)) + + zip(a: Stack): Stack<{ x: T; y: S }> +>zip : Symbol(zip, Decl(infinitelyGenerativeInheritance1.ts, 1, 14)) +>S : Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 2, 10)) +>a : Symbol(a, Decl(infinitelyGenerativeInheritance1.ts, 2, 13)) +>Stack : Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) +>S : Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 2, 10)) +>Stack : Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) +>x : Symbol(x, Decl(infinitelyGenerativeInheritance1.ts, 2, 34)) +>T : Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 0, 16)) +>y : Symbol(y, Decl(infinitelyGenerativeInheritance1.ts, 2, 40)) +>S : Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 2, 10)) +} + +interface MyStack extends Stack { +>MyStack : Symbol(MyStack, Decl(infinitelyGenerativeInheritance1.ts, 3, 1)) +>T : Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 5, 18)) +>Stack : Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) +>T : Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 5, 18)) + + zip(a: Stack): Stack<{ x: T; y: S }> +>zip : Symbol(zip, Decl(infinitelyGenerativeInheritance1.ts, 5, 39)) +>S : Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 6, 10)) +>a : Symbol(a, Decl(infinitelyGenerativeInheritance1.ts, 6, 13)) +>Stack : Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) +>S : Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 6, 10)) +>Stack : Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) +>x : Symbol(x, Decl(infinitelyGenerativeInheritance1.ts, 6, 34)) +>T : Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 5, 18)) +>y : Symbol(y, Decl(infinitelyGenerativeInheritance1.ts, 6, 40)) +>S : Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 6, 10)) +} + diff --git a/tests/baselines/reference/infinitelyGenerativeInheritance1.types b/tests/baselines/reference/infinitelyGenerativeInheritance1.types index 8a5a27b06c770..e46262d56bc26 100644 --- a/tests/baselines/reference/infinitelyGenerativeInheritance1.types +++ b/tests/baselines/reference/infinitelyGenerativeInheritance1.types @@ -1,41 +1,41 @@ === tests/cases/compiler/infinitelyGenerativeInheritance1.ts === interface Stack { ->Stack : Stack, Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 0, 16)) +>Stack : Stack +>T : T pop(): T ->pop : () => T, Symbol(pop, Decl(infinitelyGenerativeInheritance1.ts, 0, 20)) ->T : T, Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 0, 16)) +>pop : () => T +>T : T zip(a: Stack): Stack<{ x: T; y: S }> ->zip : (a: Stack) => Stack<{ x: T; y: S; }>, Symbol(zip, Decl(infinitelyGenerativeInheritance1.ts, 1, 14)) ->S : S, Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 2, 10)) ->a : Stack, Symbol(a, Decl(infinitelyGenerativeInheritance1.ts, 2, 13)) ->Stack : Stack, Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) ->S : S, Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 2, 10)) ->Stack : Stack, Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) ->x : T, Symbol(x, Decl(infinitelyGenerativeInheritance1.ts, 2, 34)) ->T : T, Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 0, 16)) ->y : S, Symbol(y, Decl(infinitelyGenerativeInheritance1.ts, 2, 40)) ->S : S, Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 2, 10)) +>zip : (a: Stack) => Stack<{ x: T; y: S; }> +>S : S +>a : Stack +>Stack : Stack +>S : S +>Stack : Stack +>x : T +>T : T +>y : S +>S : S } interface MyStack extends Stack { ->MyStack : MyStack, Symbol(MyStack, Decl(infinitelyGenerativeInheritance1.ts, 3, 1)) ->T : T, Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 5, 18)) ->Stack : Stack, Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) ->T : T, Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 5, 18)) +>MyStack : MyStack +>T : T +>Stack : Stack +>T : T zip(a: Stack): Stack<{ x: T; y: S }> ->zip : (a: Stack) => Stack<{ x: T; y: S; }>, Symbol(zip, Decl(infinitelyGenerativeInheritance1.ts, 5, 39)) ->S : S, Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 6, 10)) ->a : Stack, Symbol(a, Decl(infinitelyGenerativeInheritance1.ts, 6, 13)) ->Stack : Stack, Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) ->S : S, Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 6, 10)) ->Stack : Stack, Symbol(Stack, Decl(infinitelyGenerativeInheritance1.ts, 0, 0)) ->x : T, Symbol(x, Decl(infinitelyGenerativeInheritance1.ts, 6, 34)) ->T : T, Symbol(T, Decl(infinitelyGenerativeInheritance1.ts, 5, 18)) ->y : S, Symbol(y, Decl(infinitelyGenerativeInheritance1.ts, 6, 40)) ->S : S, Symbol(S, Decl(infinitelyGenerativeInheritance1.ts, 6, 10)) +>zip : (a: Stack) => Stack<{ x: T; y: S; }> +>S : S +>a : Stack +>Stack : Stack +>S : S +>Stack : Stack +>x : T +>T : T +>y : S +>S : S } diff --git a/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.symbols b/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.symbols new file mode 100644 index 0000000000000..55655889ca459 --- /dev/null +++ b/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/inheritSameNamePrivatePropertiesFromSameOrigin.ts === +class B { +>B : Symbol(B, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 0)) + + private x: number; +>x : Symbol(x, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 9)) +} +class C extends B { } +>C : Symbol(C, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 2, 1)) +>B : Symbol(B, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 0)) + +class C2 extends B { } +>C2 : Symbol(C2, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 3, 21)) +>B : Symbol(B, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 0)) + +interface A extends C, C2 { // ok +>A : Symbol(A, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 5, 22)) +>C : Symbol(C, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 2, 1)) +>C2 : Symbol(C2, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 3, 21)) + + y: string; +>y : Symbol(y, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 7, 27)) +} diff --git a/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.types b/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.types index 68b56eac2c6ca..e8f05ca474d37 100644 --- a/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.types +++ b/tests/baselines/reference/inheritSameNamePrivatePropertiesFromSameOrigin.types @@ -1,23 +1,23 @@ === tests/cases/compiler/inheritSameNamePrivatePropertiesFromSameOrigin.ts === class B { ->B : B, Symbol(B, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 0)) +>B : B private x: number; ->x : number, Symbol(x, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 9)) +>x : number } class C extends B { } ->C : C, Symbol(C, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 2, 1)) ->B : B, Symbol(B, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 0)) +>C : C +>B : B class C2 extends B { } ->C2 : C2, Symbol(C2, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 3, 21)) ->B : B, Symbol(B, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 0, 0)) +>C2 : C2 +>B : B interface A extends C, C2 { // ok ->A : A, Symbol(A, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 5, 22)) ->C : C, Symbol(C, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 2, 1)) ->C2 : C2, Symbol(C2, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 3, 21)) +>A : A +>C : C +>C2 : C2 y: string; ->y : string, Symbol(y, Decl(inheritSameNamePrivatePropertiesFromSameOrigin.ts, 7, 27)) +>y : string } diff --git a/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.symbols b/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.symbols new file mode 100644 index 0000000000000..4c496fcc240c6 --- /dev/null +++ b/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/inheritanceMemberFuncOverridingMethod.ts === +class a { +>a : Symbol(a, Decl(inheritanceMemberFuncOverridingMethod.ts, 0, 0)) + + x() { +>x : Symbol(x, Decl(inheritanceMemberFuncOverridingMethod.ts, 0, 9)) + + return "10"; + } +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceMemberFuncOverridingMethod.ts, 4, 1)) +>a : Symbol(a, Decl(inheritanceMemberFuncOverridingMethod.ts, 0, 0)) + + x() { +>x : Symbol(x, Decl(inheritanceMemberFuncOverridingMethod.ts, 6, 19)) + + return "20"; + } +} diff --git a/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.types b/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.types index 45ec5920ef1f7..3f170d1a6ece6 100644 --- a/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.types +++ b/tests/baselines/reference/inheritanceMemberFuncOverridingMethod.types @@ -1,9 +1,9 @@ === tests/cases/compiler/inheritanceMemberFuncOverridingMethod.ts === class a { ->a : a, Symbol(a, Decl(inheritanceMemberFuncOverridingMethod.ts, 0, 0)) +>a : a x() { ->x : () => string, Symbol(x, Decl(inheritanceMemberFuncOverridingMethod.ts, 0, 9)) +>x : () => string return "10"; >"10" : string @@ -11,11 +11,11 @@ class a { } class b extends a { ->b : b, Symbol(b, Decl(inheritanceMemberFuncOverridingMethod.ts, 4, 1)) ->a : a, Symbol(a, Decl(inheritanceMemberFuncOverridingMethod.ts, 0, 0)) +>b : b +>a : a x() { ->x : () => string, Symbol(x, Decl(inheritanceMemberFuncOverridingMethod.ts, 6, 19)) +>x : () => string return "20"; >"20" : string diff --git a/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.symbols b/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.symbols new file mode 100644 index 0000000000000..bf7558821654f --- /dev/null +++ b/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/inheritanceMemberPropertyOverridingProperty.ts === +class a { +>a : Symbol(a, Decl(inheritanceMemberPropertyOverridingProperty.ts, 0, 0)) + + x: () => string; +>x : Symbol(x, Decl(inheritanceMemberPropertyOverridingProperty.ts, 0, 9)) +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceMemberPropertyOverridingProperty.ts, 2, 1)) +>a : Symbol(a, Decl(inheritanceMemberPropertyOverridingProperty.ts, 0, 0)) + + x: () => string; +>x : Symbol(x, Decl(inheritanceMemberPropertyOverridingProperty.ts, 4, 19)) +} diff --git a/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.types b/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.types index a355d37352975..d5f846187f8c7 100644 --- a/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.types +++ b/tests/baselines/reference/inheritanceMemberPropertyOverridingProperty.types @@ -1,15 +1,15 @@ === tests/cases/compiler/inheritanceMemberPropertyOverridingProperty.ts === class a { ->a : a, Symbol(a, Decl(inheritanceMemberPropertyOverridingProperty.ts, 0, 0)) +>a : a x: () => string; ->x : () => string, Symbol(x, Decl(inheritanceMemberPropertyOverridingProperty.ts, 0, 9)) +>x : () => string } class b extends a { ->b : b, Symbol(b, Decl(inheritanceMemberPropertyOverridingProperty.ts, 2, 1)) ->a : a, Symbol(a, Decl(inheritanceMemberPropertyOverridingProperty.ts, 0, 0)) +>b : b +>a : a x: () => string; ->x : () => string, Symbol(x, Decl(inheritanceMemberPropertyOverridingProperty.ts, 4, 19)) +>x : () => string } diff --git a/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.symbols b/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.symbols new file mode 100644 index 0000000000000..9c65c2e365537 --- /dev/null +++ b/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/inheritanceOfGenericConstructorMethod1.ts === +class A { } +>A : Symbol(A, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 0)) +>T : Symbol(T, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 8)) + +class B extends A {} +>B : Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) +>T : Symbol(T, Decl(inheritanceOfGenericConstructorMethod1.ts, 1, 8)) +>A : Symbol(A, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 0)) +>T : Symbol(T, Decl(inheritanceOfGenericConstructorMethod1.ts, 1, 8)) + +var a = new A(); +>a : Symbol(a, Decl(inheritanceOfGenericConstructorMethod1.ts, 2, 3)) +>A : Symbol(A, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var b1 = new B(); // no error +>b1 : Symbol(b1, Decl(inheritanceOfGenericConstructorMethod1.ts, 3, 3)) +>B : Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) + +var b2: B = new B(); // no error +>b2 : Symbol(b2, Decl(inheritanceOfGenericConstructorMethod1.ts, 4, 3)) +>B : Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>B : Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var b3 = new B(); // error, could not select overload for 'new' expression +>b3 : Symbol(b3, Decl(inheritanceOfGenericConstructorMethod1.ts, 5, 3)) +>B : Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + diff --git a/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.types b/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.types index 15a839a54ae9b..d18b02ec8d0c0 100644 --- a/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.types +++ b/tests/baselines/reference/inheritanceOfGenericConstructorMethod1.types @@ -1,36 +1,36 @@ === tests/cases/compiler/inheritanceOfGenericConstructorMethod1.ts === class A { } ->A : A, Symbol(A, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 0)) ->T : T, Symbol(T, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 8)) +>A : A +>T : T class B extends A {} ->B : B, Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) ->T : T, Symbol(T, Decl(inheritanceOfGenericConstructorMethod1.ts, 1, 8)) ->A : A, Symbol(A, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 0)) ->T : T, Symbol(T, Decl(inheritanceOfGenericConstructorMethod1.ts, 1, 8)) +>B : B +>T : T +>A : A +>T : T var a = new A(); ->a : A, Symbol(a, Decl(inheritanceOfGenericConstructorMethod1.ts, 2, 3)) +>a : A >new A() : A ->A : typeof A, Symbol(A, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>A : typeof A +>Date : Date var b1 = new B(); // no error ->b1 : B<{}>, Symbol(b1, Decl(inheritanceOfGenericConstructorMethod1.ts, 3, 3)) +>b1 : B<{}> >new B() : B<{}> ->B : typeof B, Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) +>B : typeof B var b2: B = new B(); // no error ->b2 : B, Symbol(b2, Decl(inheritanceOfGenericConstructorMethod1.ts, 4, 3)) ->B : B, Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>b2 : B +>B : B +>Date : Date >new B() : B ->B : typeof B, Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>B : typeof B +>Date : Date var b3 = new B(); // error, could not select overload for 'new' expression ->b3 : B, Symbol(b3, Decl(inheritanceOfGenericConstructorMethod1.ts, 5, 3)) +>b3 : B >new B() : B ->B : typeof B, Symbol(B, Decl(inheritanceOfGenericConstructorMethod1.ts, 0, 14)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>B : typeof B +>Date : Date diff --git a/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.symbols b/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.symbols new file mode 100644 index 0000000000000..8fe59ed1927b9 --- /dev/null +++ b/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/inheritanceOfGenericConstructorMethod2.ts === +module M { +>M : Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) + + export class C1 { } +>C1 : Symbol(C1, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 10)) + + export class C2 { } +>C2 : Symbol(C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) +>T : Symbol(T, Decl(inheritanceOfGenericConstructorMethod2.ts, 2, 19)) +} +module N { +>N : Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) + + export class D1 extends M.C1 { } +>D1 : Symbol(D1, Decl(inheritanceOfGenericConstructorMethod2.ts, 4, 10)) +>M.C1 : Symbol(M.C1, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 10)) +>M : Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) +>C1 : Symbol(M.C1, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 10)) + + export class D2 extends M.C2 { } +>D2 : Symbol(D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) +>T : Symbol(T, Decl(inheritanceOfGenericConstructorMethod2.ts, 6, 19)) +>M.C2 : Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) +>M : Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) +>C2 : Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) +>T : Symbol(T, Decl(inheritanceOfGenericConstructorMethod2.ts, 6, 19)) +} + +var c = new M.C2(); // no error +>c : Symbol(c, Decl(inheritanceOfGenericConstructorMethod2.ts, 9, 3)) +>M.C2 : Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) +>M : Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) +>C2 : Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) + +var n = new N.D1(); // no error +>n : Symbol(n, Decl(inheritanceOfGenericConstructorMethod2.ts, 10, 3)) +>N.D1 : Symbol(N.D1, Decl(inheritanceOfGenericConstructorMethod2.ts, 4, 10)) +>N : Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) +>D1 : Symbol(N.D1, Decl(inheritanceOfGenericConstructorMethod2.ts, 4, 10)) + +var n2 = new N.D2(); // error +>n2 : Symbol(n2, Decl(inheritanceOfGenericConstructorMethod2.ts, 11, 3)) +>N.D2 : Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) +>N : Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) +>D2 : Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) + +var n3 = new N.D2(); // no error, D2 +>n3 : Symbol(n3, Decl(inheritanceOfGenericConstructorMethod2.ts, 12, 3)) +>N.D2 : Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) +>N : Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) +>D2 : Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) + diff --git a/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.types b/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.types index d150205d13366..119b6a19046e8 100644 --- a/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.types +++ b/tests/baselines/reference/inheritanceOfGenericConstructorMethod2.types @@ -1,57 +1,57 @@ === tests/cases/compiler/inheritanceOfGenericConstructorMethod2.ts === module M { ->M : typeof M, Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) +>M : typeof M export class C1 { } ->C1 : C1, Symbol(C1, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 10)) +>C1 : C1 export class C2 { } ->C2 : C2, Symbol(C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) ->T : T, Symbol(T, Decl(inheritanceOfGenericConstructorMethod2.ts, 2, 19)) +>C2 : C2 +>T : T } module N { ->N : typeof N, Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) +>N : typeof N export class D1 extends M.C1 { } ->D1 : D1, Symbol(D1, Decl(inheritanceOfGenericConstructorMethod2.ts, 4, 10)) ->M.C1 : any, Symbol(M.C1, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 10)) ->M : typeof M, Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) ->C1 : M.C1, Symbol(M.C1, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 10)) +>D1 : D1 +>M.C1 : any +>M : typeof M +>C1 : M.C1 export class D2 extends M.C2 { } ->D2 : D2, Symbol(D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) ->T : T, Symbol(T, Decl(inheritanceOfGenericConstructorMethod2.ts, 6, 19)) ->M.C2 : any, Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) ->M : typeof M, Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) ->C2 : M.C2, Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) ->T : T, Symbol(T, Decl(inheritanceOfGenericConstructorMethod2.ts, 6, 19)) +>D2 : D2 +>T : T +>M.C2 : any +>M : typeof M +>C2 : M.C2 +>T : T } var c = new M.C2(); // no error ->c : M.C2, Symbol(c, Decl(inheritanceOfGenericConstructorMethod2.ts, 9, 3)) +>c : M.C2 >new M.C2() : M.C2 ->M.C2 : typeof M.C2, Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) ->M : typeof M, Symbol(M, Decl(inheritanceOfGenericConstructorMethod2.ts, 0, 0)) ->C2 : typeof M.C2, Symbol(M.C2, Decl(inheritanceOfGenericConstructorMethod2.ts, 1, 22)) +>M.C2 : typeof M.C2 +>M : typeof M +>C2 : typeof M.C2 var n = new N.D1(); // no error ->n : N.D1, Symbol(n, Decl(inheritanceOfGenericConstructorMethod2.ts, 10, 3)) +>n : N.D1 >new N.D1() : N.D1 ->N.D1 : typeof N.D1, Symbol(N.D1, Decl(inheritanceOfGenericConstructorMethod2.ts, 4, 10)) ->N : typeof N, Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) ->D1 : typeof N.D1, Symbol(N.D1, Decl(inheritanceOfGenericConstructorMethod2.ts, 4, 10)) +>N.D1 : typeof N.D1 +>N : typeof N +>D1 : typeof N.D1 var n2 = new N.D2(); // error ->n2 : N.D2, Symbol(n2, Decl(inheritanceOfGenericConstructorMethod2.ts, 11, 3)) +>n2 : N.D2 >new N.D2() : N.D2 ->N.D2 : typeof N.D2, Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) ->N : typeof N, Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) ->D2 : typeof N.D2, Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) +>N.D2 : typeof N.D2 +>N : typeof N +>D2 : typeof N.D2 var n3 = new N.D2(); // no error, D2 ->n3 : N.D2<{}>, Symbol(n3, Decl(inheritanceOfGenericConstructorMethod2.ts, 12, 3)) +>n3 : N.D2<{}> >new N.D2() : N.D2<{}> ->N.D2 : typeof N.D2, Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) ->N : typeof N, Symbol(N, Decl(inheritanceOfGenericConstructorMethod2.ts, 3, 1)) ->D2 : typeof N.D2, Symbol(N.D2, Decl(inheritanceOfGenericConstructorMethod2.ts, 5, 35)) +>N.D2 : typeof N.D2 +>N : typeof N +>D2 : typeof N.D2 diff --git a/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.symbols b/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.symbols new file mode 100644 index 0000000000000..55e595e89beeb --- /dev/null +++ b/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/inheritanceStaticFuncOverridingMethod.ts === +class a { +>a : Symbol(a, Decl(inheritanceStaticFuncOverridingMethod.ts, 0, 0)) + + static x() { +>x : Symbol(a.x, Decl(inheritanceStaticFuncOverridingMethod.ts, 0, 9)) + + return "10"; + } +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceStaticFuncOverridingMethod.ts, 4, 1)) +>a : Symbol(a, Decl(inheritanceStaticFuncOverridingMethod.ts, 0, 0)) + + static x() { +>x : Symbol(b.x, Decl(inheritanceStaticFuncOverridingMethod.ts, 6, 19)) + + return "20"; + } +} diff --git a/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.types b/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.types index 2c610e16c30d0..22fa0a6660f14 100644 --- a/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.types +++ b/tests/baselines/reference/inheritanceStaticFuncOverridingMethod.types @@ -1,9 +1,9 @@ === tests/cases/compiler/inheritanceStaticFuncOverridingMethod.ts === class a { ->a : a, Symbol(a, Decl(inheritanceStaticFuncOverridingMethod.ts, 0, 0)) +>a : a static x() { ->x : () => string, Symbol(a.x, Decl(inheritanceStaticFuncOverridingMethod.ts, 0, 9)) +>x : () => string return "10"; >"10" : string @@ -11,11 +11,11 @@ class a { } class b extends a { ->b : b, Symbol(b, Decl(inheritanceStaticFuncOverridingMethod.ts, 4, 1)) ->a : a, Symbol(a, Decl(inheritanceStaticFuncOverridingMethod.ts, 0, 0)) +>b : b +>a : a static x() { ->x : () => string, Symbol(b.x, Decl(inheritanceStaticFuncOverridingMethod.ts, 6, 19)) +>x : () => string return "20"; >"20" : string diff --git a/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.symbols b/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.symbols new file mode 100644 index 0000000000000..50a8db2e792b2 --- /dev/null +++ b/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/inheritanceStaticFuncOverridingPropertyOfFuncType.ts === +class a { +>a : Symbol(a, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 0, 0)) + + static x: () => string; +>x : Symbol(a.x, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 0, 9)) +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 2, 1)) +>a : Symbol(a, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 0, 0)) + + static x() { +>x : Symbol(b.x, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 4, 19)) + + return "20"; + } +} diff --git a/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.types b/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.types index 1d0c93c725c6f..a7df20382ec42 100644 --- a/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.types +++ b/tests/baselines/reference/inheritanceStaticFuncOverridingPropertyOfFuncType.types @@ -1,17 +1,17 @@ === tests/cases/compiler/inheritanceStaticFuncOverridingPropertyOfFuncType.ts === class a { ->a : a, Symbol(a, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 0, 0)) +>a : a static x: () => string; ->x : () => string, Symbol(a.x, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 0, 9)) +>x : () => string } class b extends a { ->b : b, Symbol(b, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 2, 1)) ->a : a, Symbol(a, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 0, 0)) +>b : b +>a : a static x() { ->x : () => string, Symbol(b.x, Decl(inheritanceStaticFuncOverridingPropertyOfFuncType.ts, 4, 19)) +>x : () => string return "20"; >"20" : string diff --git a/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.symbols b/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.symbols new file mode 100644 index 0000000000000..bf2f3d3aa1584 --- /dev/null +++ b/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/inheritanceStaticFunctionOverridingInstanceProperty.ts === +class a { +>a : Symbol(a, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 0)) + + x: string; +>x : Symbol(x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 9)) +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 2, 1)) +>a : Symbol(a, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 0)) + + static x() { +>x : Symbol(b.x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 4, 19)) + + return new b().x; +>new b().x : Symbol(a.x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 9)) +>b : Symbol(b, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 2, 1)) +>x : Symbol(a.x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 9)) + } +} diff --git a/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.types b/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.types index 9d51716dee2a3..4742dde63f6bf 100644 --- a/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.types +++ b/tests/baselines/reference/inheritanceStaticFunctionOverridingInstanceProperty.types @@ -1,22 +1,22 @@ === tests/cases/compiler/inheritanceStaticFunctionOverridingInstanceProperty.ts === class a { ->a : a, Symbol(a, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 0)) +>a : a x: string; ->x : string, Symbol(x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 9)) +>x : string } class b extends a { ->b : b, Symbol(b, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 2, 1)) ->a : a, Symbol(a, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 0)) +>b : b +>a : a static x() { ->x : () => string, Symbol(b.x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 4, 19)) +>x : () => string return new b().x; ->new b().x : string, Symbol(a.x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 9)) +>new b().x : string >new b() : b ->b : typeof b, Symbol(b, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 2, 1)) ->x : string, Symbol(a.x, Decl(inheritanceStaticFunctionOverridingInstanceProperty.ts, 0, 9)) +>b : typeof b +>x : string } } diff --git a/tests/baselines/reference/inheritanceStaticMembersCompatible.symbols b/tests/baselines/reference/inheritanceStaticMembersCompatible.symbols new file mode 100644 index 0000000000000..da502ae6428ca --- /dev/null +++ b/tests/baselines/reference/inheritanceStaticMembersCompatible.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/inheritanceStaticMembersCompatible.ts === +class a { +>a : Symbol(a, Decl(inheritanceStaticMembersCompatible.ts, 0, 0)) + + static x: a; +>x : Symbol(a.x, Decl(inheritanceStaticMembersCompatible.ts, 0, 9)) +>a : Symbol(a, Decl(inheritanceStaticMembersCompatible.ts, 0, 0)) +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceStaticMembersCompatible.ts, 2, 1)) +>a : Symbol(a, Decl(inheritanceStaticMembersCompatible.ts, 0, 0)) + + static x: b; +>x : Symbol(b.x, Decl(inheritanceStaticMembersCompatible.ts, 4, 19)) +>b : Symbol(b, Decl(inheritanceStaticMembersCompatible.ts, 2, 1)) +} diff --git a/tests/baselines/reference/inheritanceStaticMembersCompatible.types b/tests/baselines/reference/inheritanceStaticMembersCompatible.types index 8519d75dfa3e6..cab8be9378552 100644 --- a/tests/baselines/reference/inheritanceStaticMembersCompatible.types +++ b/tests/baselines/reference/inheritanceStaticMembersCompatible.types @@ -1,17 +1,17 @@ === tests/cases/compiler/inheritanceStaticMembersCompatible.ts === class a { ->a : a, Symbol(a, Decl(inheritanceStaticMembersCompatible.ts, 0, 0)) +>a : a static x: a; ->x : a, Symbol(a.x, Decl(inheritanceStaticMembersCompatible.ts, 0, 9)) ->a : a, Symbol(a, Decl(inheritanceStaticMembersCompatible.ts, 0, 0)) +>x : a +>a : a } class b extends a { ->b : b, Symbol(b, Decl(inheritanceStaticMembersCompatible.ts, 2, 1)) ->a : a, Symbol(a, Decl(inheritanceStaticMembersCompatible.ts, 0, 0)) +>b : b +>a : a static x: b; ->x : b, Symbol(b.x, Decl(inheritanceStaticMembersCompatible.ts, 4, 19)) ->b : b, Symbol(b, Decl(inheritanceStaticMembersCompatible.ts, 2, 1)) +>x : b +>b : b } diff --git a/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.symbols b/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.symbols new file mode 100644 index 0000000000000..a084b245815e6 --- /dev/null +++ b/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/inheritanceStaticPropertyOverridingProperty.ts === +class a { +>a : Symbol(a, Decl(inheritanceStaticPropertyOverridingProperty.ts, 0, 0)) + + static x: () => string; +>x : Symbol(a.x, Decl(inheritanceStaticPropertyOverridingProperty.ts, 0, 9)) +} + +class b extends a { +>b : Symbol(b, Decl(inheritanceStaticPropertyOverridingProperty.ts, 2, 1)) +>a : Symbol(a, Decl(inheritanceStaticPropertyOverridingProperty.ts, 0, 0)) + + static x: () => string; +>x : Symbol(b.x, Decl(inheritanceStaticPropertyOverridingProperty.ts, 4, 19)) +} diff --git a/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.types b/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.types index 4d31f151bda0f..958fb6723ccfa 100644 --- a/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.types +++ b/tests/baselines/reference/inheritanceStaticPropertyOverridingProperty.types @@ -1,15 +1,15 @@ === tests/cases/compiler/inheritanceStaticPropertyOverridingProperty.ts === class a { ->a : a, Symbol(a, Decl(inheritanceStaticPropertyOverridingProperty.ts, 0, 0)) +>a : a static x: () => string; ->x : () => string, Symbol(a.x, Decl(inheritanceStaticPropertyOverridingProperty.ts, 0, 9)) +>x : () => string } class b extends a { ->b : b, Symbol(b, Decl(inheritanceStaticPropertyOverridingProperty.ts, 2, 1)) ->a : a, Symbol(a, Decl(inheritanceStaticPropertyOverridingProperty.ts, 0, 0)) +>b : b +>a : a static x: () => string; ->x : () => string, Symbol(b.x, Decl(inheritanceStaticPropertyOverridingProperty.ts, 4, 19)) +>x : () => string } diff --git a/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.symbols b/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.symbols new file mode 100644 index 0000000000000..a76a4aad7fa0c --- /dev/null +++ b/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/inheritedFunctionAssignmentCompatibility.ts === +interface IResultCallback extends Function { } +>IResultCallback : Symbol(IResultCallback, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 0)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +function fn(cb: IResultCallback) { } +>fn : Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) +>cb : Symbol(cb, Decl(inheritedFunctionAssignmentCompatibility.ts, 2, 12)) +>IResultCallback : Symbol(IResultCallback, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 0)) + +fn((a, b) => true); +>fn : Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) +>a : Symbol(a, Decl(inheritedFunctionAssignmentCompatibility.ts, 4, 4)) +>b : Symbol(b, Decl(inheritedFunctionAssignmentCompatibility.ts, 4, 6)) + +fn(function (a, b) { return true; }) +>fn : Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) +>a : Symbol(a, Decl(inheritedFunctionAssignmentCompatibility.ts, 5, 13)) +>b : Symbol(b, Decl(inheritedFunctionAssignmentCompatibility.ts, 5, 15)) + + diff --git a/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.types b/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.types index 9111e6cba6a8e..b13fde1189a73 100644 --- a/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.types +++ b/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.types @@ -1,27 +1,27 @@ === tests/cases/compiler/inheritedFunctionAssignmentCompatibility.ts === interface IResultCallback extends Function { } ->IResultCallback : IResultCallback, Symbol(IResultCallback, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 0)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>IResultCallback : IResultCallback +>Function : Function function fn(cb: IResultCallback) { } ->fn : (cb: IResultCallback) => void, Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) ->cb : IResultCallback, Symbol(cb, Decl(inheritedFunctionAssignmentCompatibility.ts, 2, 12)) ->IResultCallback : IResultCallback, Symbol(IResultCallback, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 0)) +>fn : (cb: IResultCallback) => void +>cb : IResultCallback +>IResultCallback : IResultCallback fn((a, b) => true); >fn((a, b) => true) : void ->fn : (cb: IResultCallback) => void, Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) +>fn : (cb: IResultCallback) => void >(a, b) => true : (a: any, b: any) => boolean ->a : any, Symbol(a, Decl(inheritedFunctionAssignmentCompatibility.ts, 4, 4)) ->b : any, Symbol(b, Decl(inheritedFunctionAssignmentCompatibility.ts, 4, 6)) +>a : any +>b : any >true : boolean fn(function (a, b) { return true; }) >fn(function (a, b) { return true; }) : void ->fn : (cb: IResultCallback) => void, Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) +>fn : (cb: IResultCallback) => void >function (a, b) { return true; } : (a: any, b: any) => boolean ->a : any, Symbol(a, Decl(inheritedFunctionAssignmentCompatibility.ts, 5, 13)) ->b : any, Symbol(b, Decl(inheritedFunctionAssignmentCompatibility.ts, 5, 15)) +>a : any +>b : any >true : boolean diff --git a/tests/baselines/reference/inheritedGenericCallSignature.symbols b/tests/baselines/reference/inheritedGenericCallSignature.symbols new file mode 100644 index 0000000000000..491704011652c --- /dev/null +++ b/tests/baselines/reference/inheritedGenericCallSignature.symbols @@ -0,0 +1,50 @@ +=== tests/cases/compiler/inheritedGenericCallSignature.ts === + +interface I1 { +>I1 : Symbol(I1, Decl(inheritedGenericCallSignature.ts, 0, 0)) +>T : Symbol(T, Decl(inheritedGenericCallSignature.ts, 1, 13)) + + (a: T): T; +>a : Symbol(a, Decl(inheritedGenericCallSignature.ts, 3, 5)) +>T : Symbol(T, Decl(inheritedGenericCallSignature.ts, 1, 13)) +>T : Symbol(T, Decl(inheritedGenericCallSignature.ts, 1, 13)) + +} + + +interface Object {} +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11), Decl(inheritedGenericCallSignature.ts, 5, 1)) + + + +interface I2 extends I1 { +>I2 : Symbol(I2, Decl(inheritedGenericCallSignature.ts, 8, 19)) +>T : Symbol(T, Decl(inheritedGenericCallSignature.ts, 12, 13)) +>I1 : Symbol(I1, Decl(inheritedGenericCallSignature.ts, 0, 0)) +>T : Symbol(T, Decl(inheritedGenericCallSignature.ts, 12, 13)) + + b: T; +>b : Symbol(b, Decl(inheritedGenericCallSignature.ts, 12, 33)) +>T : Symbol(T, Decl(inheritedGenericCallSignature.ts, 12, 13)) + +} + + + +var x: I2; +>x : Symbol(x, Decl(inheritedGenericCallSignature.ts, 20, 3)) +>I2 : Symbol(I2, Decl(inheritedGenericCallSignature.ts, 8, 19)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + + +var y = x(undefined); +>y : Symbol(y, Decl(inheritedGenericCallSignature.ts, 24, 3)) +>x : Symbol(x, Decl(inheritedGenericCallSignature.ts, 20, 3)) +>undefined : Symbol(undefined) + +y.length; // should not error +>y.length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>y : Symbol(y, Decl(inheritedGenericCallSignature.ts, 24, 3)) +>length : Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) + diff --git a/tests/baselines/reference/inheritedGenericCallSignature.types b/tests/baselines/reference/inheritedGenericCallSignature.types index 52f7690eacadc..4382320862b12 100644 --- a/tests/baselines/reference/inheritedGenericCallSignature.types +++ b/tests/baselines/reference/inheritedGenericCallSignature.types @@ -1,51 +1,51 @@ === tests/cases/compiler/inheritedGenericCallSignature.ts === interface I1 { ->I1 : I1, Symbol(I1, Decl(inheritedGenericCallSignature.ts, 0, 0)) ->T : T, Symbol(T, Decl(inheritedGenericCallSignature.ts, 1, 13)) +>I1 : I1 +>T : T (a: T): T; ->a : T, Symbol(a, Decl(inheritedGenericCallSignature.ts, 3, 5)) ->T : T, Symbol(T, Decl(inheritedGenericCallSignature.ts, 1, 13)) ->T : T, Symbol(T, Decl(inheritedGenericCallSignature.ts, 1, 13)) +>a : T +>T : T +>T : T } interface Object {} ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11), Decl(inheritedGenericCallSignature.ts, 5, 1)) +>Object : Object interface I2 extends I1 { ->I2 : I2, Symbol(I2, Decl(inheritedGenericCallSignature.ts, 8, 19)) ->T : T, Symbol(T, Decl(inheritedGenericCallSignature.ts, 12, 13)) ->I1 : I1, Symbol(I1, Decl(inheritedGenericCallSignature.ts, 0, 0)) ->T : T, Symbol(T, Decl(inheritedGenericCallSignature.ts, 12, 13)) +>I2 : I2 +>T : T +>I1 : I1 +>T : T b: T; ->b : T, Symbol(b, Decl(inheritedGenericCallSignature.ts, 12, 33)) ->T : T, Symbol(T, Decl(inheritedGenericCallSignature.ts, 12, 13)) +>b : T +>T : T } var x: I2; ->x : I2, Symbol(x, Decl(inheritedGenericCallSignature.ts, 20, 3)) ->I2 : I2, Symbol(I2, Decl(inheritedGenericCallSignature.ts, 8, 19)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : I2 +>I2 : I2 +>Date : Date var y = x(undefined); ->y : Date[], Symbol(y, Decl(inheritedGenericCallSignature.ts, 24, 3)) +>y : Date[] >x(undefined) : Date[] ->x : I2, Symbol(x, Decl(inheritedGenericCallSignature.ts, 20, 3)) ->undefined : undefined, Symbol(undefined) +>x : I2 +>undefined : undefined y.length; // should not error ->y.length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) ->y : Date[], Symbol(y, Decl(inheritedGenericCallSignature.ts, 24, 3)) ->length : number, Symbol(Array.length, Decl(lib.d.ts, 1007, 20)) +>y.length : number +>y : Date[] +>length : number diff --git a/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.symbols b/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.symbols new file mode 100644 index 0000000000000..2cc31a14f7fcb --- /dev/null +++ b/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/inheritedMembersAndIndexSignaturesFromDifferentBases2.ts === +interface A { +>A : Symbol(A, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 0)) +>T : Symbol(T, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 12)) + + [n: number]: T; +>n : Symbol(n, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 1, 5)) +>T : Symbol(T, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 12)) +} + +interface B { +>B : Symbol(B, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 2, 1)) + + foo: number; +>foo : Symbol(foo, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 4, 13)) +} + +interface C extends B, A { } // Should succeed +>C : Symbol(C, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 6, 1)) +>B : Symbol(B, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 2, 1)) +>A : Symbol(A, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 0)) + diff --git a/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.types b/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.types index 5d375285bc740..2899e964efd29 100644 --- a/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.types +++ b/tests/baselines/reference/inheritedMembersAndIndexSignaturesFromDifferentBases2.types @@ -1,22 +1,22 @@ === tests/cases/compiler/inheritedMembersAndIndexSignaturesFromDifferentBases2.ts === interface A { ->A : A, Symbol(A, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 0)) ->T : T, Symbol(T, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 12)) +>A : A +>T : T [n: number]: T; ->n : number, Symbol(n, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 1, 5)) ->T : T, Symbol(T, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 12)) +>n : number +>T : T } interface B { ->B : B, Symbol(B, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 2, 1)) +>B : B foo: number; ->foo : number, Symbol(foo, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 4, 13)) +>foo : number } interface C extends B, A { } // Should succeed ->C : C, Symbol(C, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 6, 1)) ->B : B, Symbol(B, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 2, 1)) ->A : A, Symbol(A, Decl(inheritedMembersAndIndexSignaturesFromDifferentBases2.ts, 0, 0)) +>C : C +>B : B +>A : A diff --git a/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.symbols b/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.symbols new file mode 100644 index 0000000000000..1b1c6b21beb66 --- /dev/null +++ b/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.symbols @@ -0,0 +1,124 @@ +=== tests/cases/compiler/inheritedOverloadedSpecializedSignatures.ts === +interface A { +>A : Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) + + (key:string):void; +>key : Symbol(key, Decl(inheritedOverloadedSpecializedSignatures.ts, 1, 3)) +} + +interface B extends A { +>B : Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) +>A : Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) + + (key:'foo'):string; +>key : Symbol(key, Decl(inheritedOverloadedSpecializedSignatures.ts, 5, 3)) +} + +var b:B; +>b : Symbol(b, Decl(inheritedOverloadedSpecializedSignatures.ts, 8, 3)) +>B : Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) + +// Should not error +b('foo').charAt(0); +>b('foo').charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>b : Symbol(b, Decl(inheritedOverloadedSpecializedSignatures.ts, 8, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + +interface A { +>A : Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) + + (x: 'A1'): string; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 13, 5)) + + (x: string): void; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 14, 5)) +} + +interface B extends A { +>B : Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) +>A : Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) + + (x: 'B1'): number; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 18, 5)) +} + +interface A { +>A : Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) + + (x: 'A2'): boolean; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 22, 5)) +} + +interface B { +>B : Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) + + (x: 'B2'): string[]; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 26, 5)) +} + +interface C1 extends B { +>C1 : Symbol(C1, Decl(inheritedOverloadedSpecializedSignatures.ts, 27, 1)) +>B : Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) + + (x: 'C1'): number[]; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 30, 2)) +} + +interface C2 extends B { +>C2 : Symbol(C2, Decl(inheritedOverloadedSpecializedSignatures.ts, 31, 1)) +>B : Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) + + (x: 'C2'): boolean[]; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 34, 2)) +} + +interface C extends C1, C2 { +>C : Symbol(C, Decl(inheritedOverloadedSpecializedSignatures.ts, 35, 1)) +>C1 : Symbol(C1, Decl(inheritedOverloadedSpecializedSignatures.ts, 27, 1)) +>C2 : Symbol(C2, Decl(inheritedOverloadedSpecializedSignatures.ts, 31, 1)) + + (x: 'C'): string; +>x : Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 38, 2)) +} + +var c: C; +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>C : Symbol(C, Decl(inheritedOverloadedSpecializedSignatures.ts, 35, 1)) + +// none of these lines should error +var x1: string[] = c('B2'); +>x1 : Symbol(x1, Decl(inheritedOverloadedSpecializedSignatures.ts, 43, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x2: number = c('B1'); +>x2 : Symbol(x2, Decl(inheritedOverloadedSpecializedSignatures.ts, 44, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x3: boolean = c('A2'); +>x3 : Symbol(x3, Decl(inheritedOverloadedSpecializedSignatures.ts, 45, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x4: string = c('A1'); +>x4 : Symbol(x4, Decl(inheritedOverloadedSpecializedSignatures.ts, 46, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x5: void = c('A0'); +>x5 : Symbol(x5, Decl(inheritedOverloadedSpecializedSignatures.ts, 47, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x6: number[] = c('C1'); +>x6 : Symbol(x6, Decl(inheritedOverloadedSpecializedSignatures.ts, 48, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x7: boolean[] = c('C2'); +>x7 : Symbol(x7, Decl(inheritedOverloadedSpecializedSignatures.ts, 49, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x8: string = c('C'); +>x8 : Symbol(x8, Decl(inheritedOverloadedSpecializedSignatures.ts, 50, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + +var x9: void = c('generic'); +>x9 : Symbol(x9, Decl(inheritedOverloadedSpecializedSignatures.ts, 51, 3)) +>c : Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) + diff --git a/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.types b/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.types index 2817a7cc1ff53..dc8b9b465d81f 100644 --- a/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.types +++ b/tests/baselines/reference/inheritedOverloadedSpecializedSignatures.types @@ -1,146 +1,146 @@ === tests/cases/compiler/inheritedOverloadedSpecializedSignatures.ts === interface A { ->A : A, Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) +>A : A (key:string):void; ->key : string, Symbol(key, Decl(inheritedOverloadedSpecializedSignatures.ts, 1, 3)) +>key : string } interface B extends A { ->B : B, Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) ->A : A, Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) +>B : B +>A : A (key:'foo'):string; ->key : 'foo', Symbol(key, Decl(inheritedOverloadedSpecializedSignatures.ts, 5, 3)) +>key : 'foo' } var b:B; ->b : B, Symbol(b, Decl(inheritedOverloadedSpecializedSignatures.ts, 8, 3)) ->B : B, Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) +>b : B +>B : B // Should not error b('foo').charAt(0); >b('foo').charAt(0) : string ->b('foo').charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>b('foo').charAt : (pos: number) => string >b('foo') : string ->b : B, Symbol(b, Decl(inheritedOverloadedSpecializedSignatures.ts, 8, 3)) +>b : B >'foo' : string ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>charAt : (pos: number) => string >0 : number interface A { ->A : A, Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) +>A : A (x: 'A1'): string; ->x : 'A1', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 13, 5)) +>x : 'A1' (x: string): void; ->x : string, Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 14, 5)) +>x : string } interface B extends A { ->B : B, Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) ->A : A, Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) +>B : B +>A : A (x: 'B1'): number; ->x : 'B1', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 18, 5)) +>x : 'B1' } interface A { ->A : A, Symbol(A, Decl(inheritedOverloadedSpecializedSignatures.ts, 0, 0), Decl(inheritedOverloadedSpecializedSignatures.ts, 10, 19), Decl(inheritedOverloadedSpecializedSignatures.ts, 19, 1)) +>A : A (x: 'A2'): boolean; ->x : 'A2', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 22, 5)) +>x : 'A2' } interface B { ->B : B, Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) +>B : B (x: 'B2'): string[]; ->x : 'B2', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 26, 5)) +>x : 'B2' } interface C1 extends B { ->C1 : C1, Symbol(C1, Decl(inheritedOverloadedSpecializedSignatures.ts, 27, 1)) ->B : B, Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) +>C1 : C1 +>B : B (x: 'C1'): number[]; ->x : 'C1', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 30, 2)) +>x : 'C1' } interface C2 extends B { ->C2 : C2, Symbol(C2, Decl(inheritedOverloadedSpecializedSignatures.ts, 31, 1)) ->B : B, Symbol(B, Decl(inheritedOverloadedSpecializedSignatures.ts, 2, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 15, 1), Decl(inheritedOverloadedSpecializedSignatures.ts, 23, 1)) +>C2 : C2 +>B : B (x: 'C2'): boolean[]; ->x : 'C2', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 34, 2)) +>x : 'C2' } interface C extends C1, C2 { ->C : C, Symbol(C, Decl(inheritedOverloadedSpecializedSignatures.ts, 35, 1)) ->C1 : C1, Symbol(C1, Decl(inheritedOverloadedSpecializedSignatures.ts, 27, 1)) ->C2 : C2, Symbol(C2, Decl(inheritedOverloadedSpecializedSignatures.ts, 31, 1)) +>C : C +>C1 : C1 +>C2 : C2 (x: 'C'): string; ->x : 'C', Symbol(x, Decl(inheritedOverloadedSpecializedSignatures.ts, 38, 2)) +>x : 'C' } var c: C; ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) ->C : C, Symbol(C, Decl(inheritedOverloadedSpecializedSignatures.ts, 35, 1)) +>c : C +>C : C // none of these lines should error var x1: string[] = c('B2'); ->x1 : string[], Symbol(x1, Decl(inheritedOverloadedSpecializedSignatures.ts, 43, 3)) +>x1 : string[] >c('B2') : string[] ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'B2' : string var x2: number = c('B1'); ->x2 : number, Symbol(x2, Decl(inheritedOverloadedSpecializedSignatures.ts, 44, 3)) +>x2 : number >c('B1') : number ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'B1' : string var x3: boolean = c('A2'); ->x3 : boolean, Symbol(x3, Decl(inheritedOverloadedSpecializedSignatures.ts, 45, 3)) +>x3 : boolean >c('A2') : boolean ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'A2' : string var x4: string = c('A1'); ->x4 : string, Symbol(x4, Decl(inheritedOverloadedSpecializedSignatures.ts, 46, 3)) +>x4 : string >c('A1') : string ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'A1' : string var x5: void = c('A0'); ->x5 : void, Symbol(x5, Decl(inheritedOverloadedSpecializedSignatures.ts, 47, 3)) +>x5 : void >c('A0') : void ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'A0' : string var x6: number[] = c('C1'); ->x6 : number[], Symbol(x6, Decl(inheritedOverloadedSpecializedSignatures.ts, 48, 3)) +>x6 : number[] >c('C1') : number[] ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'C1' : string var x7: boolean[] = c('C2'); ->x7 : boolean[], Symbol(x7, Decl(inheritedOverloadedSpecializedSignatures.ts, 49, 3)) +>x7 : boolean[] >c('C2') : boolean[] ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'C2' : string var x8: string = c('C'); ->x8 : string, Symbol(x8, Decl(inheritedOverloadedSpecializedSignatures.ts, 50, 3)) +>x8 : string >c('C') : string ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'C' : string var x9: void = c('generic'); ->x9 : void, Symbol(x9, Decl(inheritedOverloadedSpecializedSignatures.ts, 51, 3)) +>x9 : void >c('generic') : void ->c : C, Symbol(c, Decl(inheritedOverloadedSpecializedSignatures.ts, 41, 3)) +>c : C >'generic' : string diff --git a/tests/baselines/reference/initializePropertiesWithRenamedLet.symbols b/tests/baselines/reference/initializePropertiesWithRenamedLet.symbols new file mode 100644 index 0000000000000..203508ddf9815 --- /dev/null +++ b/tests/baselines/reference/initializePropertiesWithRenamedLet.symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/initializePropertiesWithRenamedLet.ts === + +var x0; +>x0 : Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 1, 3)) + +if (true) { + let x0; +>x0 : Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 3, 7)) + + var obj1 = { x0: x0 }; +>obj1 : Symbol(obj1, Decl(initializePropertiesWithRenamedLet.ts, 4, 7)) +>x0 : Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 4, 16)) +>x0 : Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 3, 7)) + + var obj2 = { x0 }; +>obj2 : Symbol(obj2, Decl(initializePropertiesWithRenamedLet.ts, 5, 7)) +>x0 : Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 5, 16)) +} + +var x, y, z; +>x : Symbol(x, Decl(initializePropertiesWithRenamedLet.ts, 8, 3)) +>y : Symbol(y, Decl(initializePropertiesWithRenamedLet.ts, 8, 6)) +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 8, 9)) + +if (true) { + let { x: x } = { x: 0 }; +>x : Symbol(x, Decl(initializePropertiesWithRenamedLet.ts, 10, 9)) +>x : Symbol(x, Decl(initializePropertiesWithRenamedLet.ts, 10, 20)) + + let { y } = { y: 0 }; +>y : Symbol(y, Decl(initializePropertiesWithRenamedLet.ts, 11, 9)) +>y : Symbol(y, Decl(initializePropertiesWithRenamedLet.ts, 11, 17)) + + let z; +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 12, 7)) + + ({ z: z } = { z: 0 }); +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 13, 6)) +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 12, 7)) +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 13, 17)) + + ({ z } = { z: 0 }); +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 14, 6)) +>z : Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 14, 14)) +} diff --git a/tests/baselines/reference/initializePropertiesWithRenamedLet.types b/tests/baselines/reference/initializePropertiesWithRenamedLet.types index c0a2aace0a65f..3c6938cd64338 100644 --- a/tests/baselines/reference/initializePropertiesWithRenamedLet.types +++ b/tests/baselines/reference/initializePropertiesWithRenamedLet.types @@ -1,66 +1,66 @@ === tests/cases/compiler/initializePropertiesWithRenamedLet.ts === var x0; ->x0 : any, Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 1, 3)) +>x0 : any if (true) { >true : boolean let x0; ->x0 : any, Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 3, 7)) +>x0 : any var obj1 = { x0: x0 }; ->obj1 : { x0: any; }, Symbol(obj1, Decl(initializePropertiesWithRenamedLet.ts, 4, 7)) +>obj1 : { x0: any; } >{ x0: x0 } : { x0: any; } ->x0 : any, Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 4, 16)) ->x0 : any, Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 3, 7)) +>x0 : any +>x0 : any var obj2 = { x0 }; ->obj2 : { x0: any; }, Symbol(obj2, Decl(initializePropertiesWithRenamedLet.ts, 5, 7)) +>obj2 : { x0: any; } >{ x0 } : { x0: any; } ->x0 : any, Symbol(x0, Decl(initializePropertiesWithRenamedLet.ts, 5, 16)) +>x0 : any } var x, y, z; ->x : any, Symbol(x, Decl(initializePropertiesWithRenamedLet.ts, 8, 3)) ->y : any, Symbol(y, Decl(initializePropertiesWithRenamedLet.ts, 8, 6)) ->z : any, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 8, 9)) +>x : any +>y : any +>z : any if (true) { >true : boolean let { x: x } = { x: 0 }; >x : any ->x : number, Symbol(x, Decl(initializePropertiesWithRenamedLet.ts, 10, 9)) +>x : number >{ x: 0 } : { x: number; } ->x : number, Symbol(x, Decl(initializePropertiesWithRenamedLet.ts, 10, 20)) +>x : number >0 : number let { y } = { y: 0 }; ->y : number, Symbol(y, Decl(initializePropertiesWithRenamedLet.ts, 11, 9)) +>y : number >{ y: 0 } : { y: number; } ->y : number, Symbol(y, Decl(initializePropertiesWithRenamedLet.ts, 11, 17)) +>y : number >0 : number let z; ->z : any, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 12, 7)) +>z : any ({ z: z } = { z: 0 }); >({ z: z } = { z: 0 }) : { z: number; } >{ z: z } = { z: 0 } : { z: number; } >{ z: z } : { z: any; } ->z : any, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 13, 6)) ->z : any, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 12, 7)) +>z : any +>z : any >{ z: 0 } : { z: number; } ->z : number, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 13, 17)) +>z : number >0 : number ({ z } = { z: 0 }); >({ z } = { z: 0 }) : { z: number; } >{ z } = { z: 0 } : { z: number; } >{ z } : { z: any; } ->z : any, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 14, 6)) +>z : any >{ z: 0 } : { z: number; } ->z : number, Symbol(z, Decl(initializePropertiesWithRenamedLet.ts, 14, 14)) +>z : number >0 : number } diff --git a/tests/baselines/reference/initializersWidened.symbols b/tests/baselines/reference/initializersWidened.symbols new file mode 100644 index 0000000000000..625c066a0587e --- /dev/null +++ b/tests/baselines/reference/initializersWidened.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/types/typeRelationships/widenedTypes/initializersWidened.ts === +// these are widened to any at the point of assignment + +var x = null; +>x : Symbol(x, Decl(initializersWidened.ts, 2, 3)) + +var y = undefined; +>y : Symbol(y, Decl(initializersWidened.ts, 3, 3)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/initializersWidened.types b/tests/baselines/reference/initializersWidened.types index a3ef980fbcbbf..157055892460a 100644 --- a/tests/baselines/reference/initializersWidened.types +++ b/tests/baselines/reference/initializersWidened.types @@ -2,10 +2,10 @@ // these are widened to any at the point of assignment var x = null; ->x : any, Symbol(x, Decl(initializersWidened.ts, 2, 3)) +>x : any >null : null var y = undefined; ->y : any, Symbol(y, Decl(initializersWidened.ts, 3, 3)) ->undefined : undefined, Symbol(undefined) +>y : any +>undefined : undefined diff --git a/tests/baselines/reference/innerAliases2.symbols b/tests/baselines/reference/innerAliases2.symbols new file mode 100644 index 0000000000000..541fc03ffbd42 --- /dev/null +++ b/tests/baselines/reference/innerAliases2.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/innerAliases2.ts === +module _provider { +>_provider : Symbol(_provider, Decl(innerAliases2.ts, 0, 0)) + + export class UsefulClass { +>UsefulClass : Symbol(UsefulClass, Decl(innerAliases2.ts, 0, 18)) + + public foo() { +>foo : Symbol(foo, Decl(innerAliases2.ts, 1, 42)) + } + } +} + +module consumer { +>consumer : Symbol(consumer, Decl(innerAliases2.ts, 5, 1)) + + import provider = _provider; +>provider : Symbol(provider, Decl(innerAliases2.ts, 7, 17)) +>_provider : Symbol(provider, Decl(innerAliases2.ts, 0, 0)) + + var g:provider.UsefulClass= null; +>g : Symbol(g, Decl(innerAliases2.ts, 10, 19)) +>provider : Symbol(provider, Decl(innerAliases2.ts, 7, 17)) +>UsefulClass : Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) + + function use():provider.UsefulClass { +>use : Symbol(use, Decl(innerAliases2.ts, 10, 49)) +>provider : Symbol(provider, Decl(innerAliases2.ts, 7, 17)) +>UsefulClass : Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) + + var p2:provider.UsefulClass= new provider.UsefulClass(); +>p2 : Symbol(p2, Decl(innerAliases2.ts, 13, 35)) +>provider : Symbol(provider, Decl(innerAliases2.ts, 7, 17)) +>UsefulClass : Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>provider.UsefulClass : Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>provider : Symbol(provider, Decl(innerAliases2.ts, 7, 17)) +>UsefulClass : Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) + + return p2; +>p2 : Symbol(p2, Decl(innerAliases2.ts, 13, 35)) + } +} + + diff --git a/tests/baselines/reference/innerAliases2.types b/tests/baselines/reference/innerAliases2.types index ce0cd147c6c94..127497e38693c 100644 --- a/tests/baselines/reference/innerAliases2.types +++ b/tests/baselines/reference/innerAliases2.types @@ -1,45 +1,45 @@ === tests/cases/compiler/innerAliases2.ts === module _provider { ->_provider : typeof _provider, Symbol(_provider, Decl(innerAliases2.ts, 0, 0)) +>_provider : typeof _provider export class UsefulClass { ->UsefulClass : UsefulClass, Symbol(UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>UsefulClass : UsefulClass public foo() { ->foo : () => void, Symbol(foo, Decl(innerAliases2.ts, 1, 42)) +>foo : () => void } } } module consumer { ->consumer : typeof consumer, Symbol(consumer, Decl(innerAliases2.ts, 5, 1)) +>consumer : typeof consumer import provider = _provider; ->provider : typeof provider, Symbol(provider, Decl(innerAliases2.ts, 7, 17)) ->_provider : typeof provider, Symbol(provider, Decl(innerAliases2.ts, 0, 0)) +>provider : typeof provider +>_provider : typeof provider var g:provider.UsefulClass= null; ->g : provider.UsefulClass, Symbol(g, Decl(innerAliases2.ts, 10, 19)) ->provider : any, Symbol(provider, Decl(innerAliases2.ts, 7, 17)) ->UsefulClass : provider.UsefulClass, Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>g : provider.UsefulClass +>provider : any +>UsefulClass : provider.UsefulClass >null : null function use():provider.UsefulClass { ->use : () => provider.UsefulClass, Symbol(use, Decl(innerAliases2.ts, 10, 49)) ->provider : any, Symbol(provider, Decl(innerAliases2.ts, 7, 17)) ->UsefulClass : provider.UsefulClass, Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>use : () => provider.UsefulClass +>provider : any +>UsefulClass : provider.UsefulClass var p2:provider.UsefulClass= new provider.UsefulClass(); ->p2 : provider.UsefulClass, Symbol(p2, Decl(innerAliases2.ts, 13, 35)) ->provider : any, Symbol(provider, Decl(innerAliases2.ts, 7, 17)) ->UsefulClass : provider.UsefulClass, Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>p2 : provider.UsefulClass +>provider : any +>UsefulClass : provider.UsefulClass >new provider.UsefulClass() : provider.UsefulClass ->provider.UsefulClass : typeof provider.UsefulClass, Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) ->provider : typeof provider, Symbol(provider, Decl(innerAliases2.ts, 7, 17)) ->UsefulClass : typeof provider.UsefulClass, Symbol(provider.UsefulClass, Decl(innerAliases2.ts, 0, 18)) +>provider.UsefulClass : typeof provider.UsefulClass +>provider : typeof provider +>UsefulClass : typeof provider.UsefulClass return p2; ->p2 : provider.UsefulClass, Symbol(p2, Decl(innerAliases2.ts, 13, 35)) +>p2 : provider.UsefulClass } } diff --git a/tests/baselines/reference/innerBoundLambdaEmit.symbols b/tests/baselines/reference/innerBoundLambdaEmit.symbols new file mode 100644 index 0000000000000..689aa7d075b9e --- /dev/null +++ b/tests/baselines/reference/innerBoundLambdaEmit.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/innerBoundLambdaEmit.ts === +module M { +>M : Symbol(M, Decl(innerBoundLambdaEmit.ts, 0, 0)) + + export class Foo { +>Foo : Symbol(Foo, Decl(innerBoundLambdaEmit.ts, 0, 10)) + } + var bar = () => { }; +>bar : Symbol(bar, Decl(innerBoundLambdaEmit.ts, 3, 7)) +} +interface Array { +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(innerBoundLambdaEmit.ts, 4, 1)) +>T : Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(innerBoundLambdaEmit.ts, 5, 16)) + + toFoo(): M.Foo +>toFoo : Symbol(toFoo, Decl(innerBoundLambdaEmit.ts, 5, 20)) +>M : Symbol(M, Decl(innerBoundLambdaEmit.ts, 0, 0)) +>Foo : Symbol(M.Foo, Decl(innerBoundLambdaEmit.ts, 0, 10)) +} + diff --git a/tests/baselines/reference/innerBoundLambdaEmit.types b/tests/baselines/reference/innerBoundLambdaEmit.types index 62b4389f449b5..d4cc16ede1645 100644 --- a/tests/baselines/reference/innerBoundLambdaEmit.types +++ b/tests/baselines/reference/innerBoundLambdaEmit.types @@ -1,21 +1,21 @@ === tests/cases/compiler/innerBoundLambdaEmit.ts === module M { ->M : typeof M, Symbol(M, Decl(innerBoundLambdaEmit.ts, 0, 0)) +>M : typeof M export class Foo { ->Foo : Foo, Symbol(Foo, Decl(innerBoundLambdaEmit.ts, 0, 10)) +>Foo : Foo } var bar = () => { }; ->bar : () => void, Symbol(bar, Decl(innerBoundLambdaEmit.ts, 3, 7)) +>bar : () => void >() => { } : () => void } interface Array { ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11), Decl(innerBoundLambdaEmit.ts, 4, 1)) ->T : T, Symbol(T, Decl(lib.d.ts, 1007, 16), Decl(innerBoundLambdaEmit.ts, 5, 16)) +>Array : T[] +>T : T toFoo(): M.Foo ->toFoo : () => M.Foo, Symbol(toFoo, Decl(innerBoundLambdaEmit.ts, 5, 20)) ->M : any, Symbol(M, Decl(innerBoundLambdaEmit.ts, 0, 0)) ->Foo : M.Foo, Symbol(M.Foo, Decl(innerBoundLambdaEmit.ts, 0, 10)) +>toFoo : () => M.Foo +>M : any +>Foo : M.Foo } diff --git a/tests/baselines/reference/innerExtern.symbols b/tests/baselines/reference/innerExtern.symbols new file mode 100644 index 0000000000000..142af91a46f7d --- /dev/null +++ b/tests/baselines/reference/innerExtern.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/innerExtern.ts === +module A { +>A : Symbol(A, Decl(innerExtern.ts, 0, 0)) + + export declare module BB { +>BB : Symbol(BB, Decl(innerExtern.ts, 0, 10)) + + export var Elephant; +>Elephant : Symbol(Elephant, Decl(innerExtern.ts, 2, 18)) + } + export module B { +>B : Symbol(B, Decl(innerExtern.ts, 3, 5)) + + export class C { +>C : Symbol(C, Decl(innerExtern.ts, 4, 21)) + + x = BB.Elephant.X; +>x : Symbol(x, Decl(innerExtern.ts, 5, 24)) +>BB.Elephant : Symbol(BB.Elephant, Decl(innerExtern.ts, 2, 18)) +>BB : Symbol(BB, Decl(innerExtern.ts, 0, 10)) +>Elephant : Symbol(BB.Elephant, Decl(innerExtern.ts, 2, 18)) + } + } +} + + + diff --git a/tests/baselines/reference/innerExtern.types b/tests/baselines/reference/innerExtern.types index 1594fc8469133..17ef88427b32c 100644 --- a/tests/baselines/reference/innerExtern.types +++ b/tests/baselines/reference/innerExtern.types @@ -1,25 +1,25 @@ === tests/cases/compiler/innerExtern.ts === module A { ->A : typeof A, Symbol(A, Decl(innerExtern.ts, 0, 0)) +>A : typeof A export declare module BB { ->BB : typeof BB, Symbol(BB, Decl(innerExtern.ts, 0, 10)) +>BB : typeof BB export var Elephant; ->Elephant : any, Symbol(Elephant, Decl(innerExtern.ts, 2, 18)) +>Elephant : any } export module B { ->B : typeof B, Symbol(B, Decl(innerExtern.ts, 3, 5)) +>B : typeof B export class C { ->C : C, Symbol(C, Decl(innerExtern.ts, 4, 21)) +>C : C x = BB.Elephant.X; ->x : any, Symbol(x, Decl(innerExtern.ts, 5, 24)) +>x : any >BB.Elephant.X : any ->BB.Elephant : any, Symbol(BB.Elephant, Decl(innerExtern.ts, 2, 18)) ->BB : typeof BB, Symbol(BB, Decl(innerExtern.ts, 0, 10)) ->Elephant : any, Symbol(BB.Elephant, Decl(innerExtern.ts, 2, 18)) +>BB.Elephant : any +>BB : typeof BB +>Elephant : any >X : any } } diff --git a/tests/baselines/reference/innerFunc.symbols b/tests/baselines/reference/innerFunc.symbols new file mode 100644 index 0000000000000..459e1268f5f79 --- /dev/null +++ b/tests/baselines/reference/innerFunc.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/innerFunc.ts === +function salt() { +>salt : Symbol(salt, Decl(innerFunc.ts, 0, 0)) + + function pepper() { return 5;} +>pepper : Symbol(pepper, Decl(innerFunc.ts, 0, 17)) + + return pepper(); +>pepper : Symbol(pepper, Decl(innerFunc.ts, 0, 17)) +} + +module M { +>M : Symbol(M, Decl(innerFunc.ts, 3, 1)) + + export function tungsten() { +>tungsten : Symbol(tungsten, Decl(innerFunc.ts, 5, 10)) + + function oxygen() { return 6; }; +>oxygen : Symbol(oxygen, Decl(innerFunc.ts, 6, 32)) + + return oxygen(); +>oxygen : Symbol(oxygen, Decl(innerFunc.ts, 6, 32)) + } +} + diff --git a/tests/baselines/reference/innerFunc.types b/tests/baselines/reference/innerFunc.types index 62235c5e1737a..48d98ae42e1aa 100644 --- a/tests/baselines/reference/innerFunc.types +++ b/tests/baselines/reference/innerFunc.types @@ -1,29 +1,29 @@ === tests/cases/compiler/innerFunc.ts === function salt() { ->salt : () => number, Symbol(salt, Decl(innerFunc.ts, 0, 0)) +>salt : () => number function pepper() { return 5;} ->pepper : () => number, Symbol(pepper, Decl(innerFunc.ts, 0, 17)) +>pepper : () => number >5 : number return pepper(); >pepper() : number ->pepper : () => number, Symbol(pepper, Decl(innerFunc.ts, 0, 17)) +>pepper : () => number } module M { ->M : typeof M, Symbol(M, Decl(innerFunc.ts, 3, 1)) +>M : typeof M export function tungsten() { ->tungsten : () => number, Symbol(tungsten, Decl(innerFunc.ts, 5, 10)) +>tungsten : () => number function oxygen() { return 6; }; ->oxygen : () => number, Symbol(oxygen, Decl(innerFunc.ts, 6, 32)) +>oxygen : () => number >6 : number return oxygen(); >oxygen() : number ->oxygen : () => number, Symbol(oxygen, Decl(innerFunc.ts, 6, 32)) +>oxygen : () => number } } diff --git a/tests/baselines/reference/innerOverloads.symbols b/tests/baselines/reference/innerOverloads.symbols new file mode 100644 index 0000000000000..d87a60b26e82d --- /dev/null +++ b/tests/baselines/reference/innerOverloads.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/innerOverloads.ts === + +function outer() { +>outer : Symbol(outer, Decl(innerOverloads.ts, 0, 0)) + + function inner(x:number); // should work +>inner : Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) +>x : Symbol(x, Decl(innerOverloads.ts, 2, 19)) + + function inner(x:string); +>inner : Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) +>x : Symbol(x, Decl(innerOverloads.ts, 3, 19)) + + function inner(a:any) { return a; } +>inner : Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) +>a : Symbol(a, Decl(innerOverloads.ts, 4, 19)) +>a : Symbol(a, Decl(innerOverloads.ts, 4, 19)) + + return inner(0); +>inner : Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) +} + +var x = outer(); // should work +>x : Symbol(x, Decl(innerOverloads.ts, 9, 3)) +>outer : Symbol(outer, Decl(innerOverloads.ts, 0, 0)) + + diff --git a/tests/baselines/reference/innerOverloads.types b/tests/baselines/reference/innerOverloads.types index 73bee2e94d48d..68af57b3bea83 100644 --- a/tests/baselines/reference/innerOverloads.types +++ b/tests/baselines/reference/innerOverloads.types @@ -1,30 +1,30 @@ === tests/cases/compiler/innerOverloads.ts === function outer() { ->outer : () => any, Symbol(outer, Decl(innerOverloads.ts, 0, 0)) +>outer : () => any function inner(x:number); // should work ->inner : { (x: number): any; (x: string): any; }, Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) ->x : number, Symbol(x, Decl(innerOverloads.ts, 2, 19)) +>inner : { (x: number): any; (x: string): any; } +>x : number function inner(x:string); ->inner : { (x: number): any; (x: string): any; }, Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) ->x : string, Symbol(x, Decl(innerOverloads.ts, 3, 19)) +>inner : { (x: number): any; (x: string): any; } +>x : string function inner(a:any) { return a; } ->inner : { (x: number): any; (x: string): any; }, Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) ->a : any, Symbol(a, Decl(innerOverloads.ts, 4, 19)) ->a : any, Symbol(a, Decl(innerOverloads.ts, 4, 19)) +>inner : { (x: number): any; (x: string): any; } +>a : any +>a : any return inner(0); >inner(0) : any ->inner : { (x: number): any; (x: string): any; }, Symbol(inner, Decl(innerOverloads.ts, 1, 18), Decl(innerOverloads.ts, 2, 29), Decl(innerOverloads.ts, 3, 29)) +>inner : { (x: number): any; (x: string): any; } >0 : number } var x = outer(); // should work ->x : any, Symbol(x, Decl(innerOverloads.ts, 9, 3)) +>x : any >outer() : any ->outer : () => any, Symbol(outer, Decl(innerOverloads.ts, 0, 0)) +>outer : () => any diff --git a/tests/baselines/reference/innerTypeArgumentInference.symbols b/tests/baselines/reference/innerTypeArgumentInference.symbols new file mode 100644 index 0000000000000..441ce4986eff9 --- /dev/null +++ b/tests/baselines/reference/innerTypeArgumentInference.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/innerTypeArgumentInference.ts === +interface Generator { (): T; } +>Generator : Symbol(Generator, Decl(innerTypeArgumentInference.ts, 0, 0)) +>T : Symbol(T, Decl(innerTypeArgumentInference.ts, 0, 20)) +>T : Symbol(T, Decl(innerTypeArgumentInference.ts, 0, 20)) + +function Generate(func: Generator): U { +>Generate : Symbol(Generate, Decl(innerTypeArgumentInference.ts, 0, 33)) +>U : Symbol(U, Decl(innerTypeArgumentInference.ts, 1, 18)) +>func : Symbol(func, Decl(innerTypeArgumentInference.ts, 1, 21)) +>Generator : Symbol(Generator, Decl(innerTypeArgumentInference.ts, 0, 0)) +>U : Symbol(U, Decl(innerTypeArgumentInference.ts, 1, 18)) +>U : Symbol(U, Decl(innerTypeArgumentInference.ts, 1, 18)) + + return Generate(func); +>Generate : Symbol(Generate, Decl(innerTypeArgumentInference.ts, 0, 33)) +>func : Symbol(func, Decl(innerTypeArgumentInference.ts, 1, 21)) +} diff --git a/tests/baselines/reference/innerTypeArgumentInference.types b/tests/baselines/reference/innerTypeArgumentInference.types index 0986c0ae42273..759b78aa75f74 100644 --- a/tests/baselines/reference/innerTypeArgumentInference.types +++ b/tests/baselines/reference/innerTypeArgumentInference.types @@ -1,19 +1,19 @@ === tests/cases/compiler/innerTypeArgumentInference.ts === interface Generator { (): T; } ->Generator : Generator, Symbol(Generator, Decl(innerTypeArgumentInference.ts, 0, 0)) ->T : T, Symbol(T, Decl(innerTypeArgumentInference.ts, 0, 20)) ->T : T, Symbol(T, Decl(innerTypeArgumentInference.ts, 0, 20)) +>Generator : Generator +>T : T +>T : T function Generate(func: Generator): U { ->Generate : (func: Generator) => U, Symbol(Generate, Decl(innerTypeArgumentInference.ts, 0, 33)) ->U : U, Symbol(U, Decl(innerTypeArgumentInference.ts, 1, 18)) ->func : Generator, Symbol(func, Decl(innerTypeArgumentInference.ts, 1, 21)) ->Generator : Generator, Symbol(Generator, Decl(innerTypeArgumentInference.ts, 0, 0)) ->U : U, Symbol(U, Decl(innerTypeArgumentInference.ts, 1, 18)) ->U : U, Symbol(U, Decl(innerTypeArgumentInference.ts, 1, 18)) +>Generate : (func: Generator) => U +>U : U +>func : Generator +>Generator : Generator +>U : U +>U : U return Generate(func); >Generate(func) : U ->Generate : (func: Generator) => U, Symbol(Generate, Decl(innerTypeArgumentInference.ts, 0, 33)) ->func : Generator, Symbol(func, Decl(innerTypeArgumentInference.ts, 1, 21)) +>Generate : (func: Generator) => U +>func : Generator } diff --git a/tests/baselines/reference/innerTypeParameterShadowingOuterOne.symbols b/tests/baselines/reference/innerTypeParameterShadowingOuterOne.symbols new file mode 100644 index 0000000000000..b890c6c9ecff6 --- /dev/null +++ b/tests/baselines/reference/innerTypeParameterShadowingOuterOne.symbols @@ -0,0 +1,73 @@ +=== tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne.ts === +// inner type parameters shadow outer ones of the same name +// no errors expected + +function f() { +>f : Symbol(f, Decl(innerTypeParameterShadowingOuterOne.ts, 0, 0)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 3, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + function g() { +>g : Symbol(g, Decl(innerTypeParameterShadowingOuterOne.ts, 3, 30)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 4, 15)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + + var x: T; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 5, 11)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 4, 15)) + + x.toFixed(); +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 5, 11)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + } + var x: T; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 8, 7)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 3, 11)) + + x.getDate(); +>x.getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 8, 7)) +>getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +} + +function f2() { +>f2 : Symbol(f2, Decl(innerTypeParameterShadowingOuterOne.ts, 10, 1)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 27)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + function g() { +>g : Symbol(g, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 47)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 13, 15)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 13, 32)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + + var x: U; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 14, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 13, 32)) + + x.toFixed(); +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 14, 11)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + } + var x: U; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 17, 7)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 27)) + + x.getDate(); +>x.getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 17, 7)) +>getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +} +//function f2() { +// function g() { +// var x: U; +// x.toFixed(); +// } +// var x: U; +// x.getDate(); +//} diff --git a/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types b/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types index 33b5a63dbfc46..eb1ffb172172a 100644 --- a/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types +++ b/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types @@ -3,69 +3,69 @@ // no errors expected function f() { ->f : () => void, Symbol(f, Decl(innerTypeParameterShadowingOuterOne.ts, 0, 0)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 3, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>f : () => void +>T : T +>Date : Date function g() { ->g : () => void, Symbol(g, Decl(innerTypeParameterShadowingOuterOne.ts, 3, 30)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 4, 15)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>g : () => void +>T : T +>Number : Number var x: T; ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 5, 11)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 4, 15)) +>x : T +>T : T x.toFixed(); >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 5, 11)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : T +>toFixed : (fractionDigits?: number) => string } var x: T; ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 8, 7)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 3, 11)) +>x : T +>T : T x.getDate(); >x.getDate() : number ->x.getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 8, 7)) ->getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x.getDate : () => number +>x : T +>getDate : () => number } function f2() { ->f2 : () => void, Symbol(f2, Decl(innerTypeParameterShadowingOuterOne.ts, 10, 1)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 27)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>f2 : () => void +>T : T +>Date : Date +>U : U +>Date : Date function g() { ->g : () => void, Symbol(g, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 47)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne.ts, 13, 15)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 13, 32)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>g : () => void +>T : T +>Number : Number +>U : U +>Number : Number var x: U; ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 14, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 13, 32)) +>x : U +>U : U x.toFixed(); >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 14, 11)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : U +>toFixed : (fractionDigits?: number) => string } var x: U; ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 17, 7)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne.ts, 12, 27)) +>x : U +>U : U x.getDate(); >x.getDate() : number ->x.getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne.ts, 17, 7)) ->getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x.getDate : () => number +>x : U +>getDate : () => number } //function f2() { // function g() { diff --git a/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.symbols b/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.symbols new file mode 100644 index 0000000000000..13afcb3e123ac --- /dev/null +++ b/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.symbols @@ -0,0 +1,86 @@ +=== tests/cases/conformance/types/typeParameters/typeParameterLists/innerTypeParameterShadowingOuterOne2.ts === +// inner type parameters shadow outer ones of the same name +// no errors expected + +class C { +>C : Symbol(C, Decl(innerTypeParameterShadowingOuterOne2.ts, 0, 0)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 3, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + g() { +>g : Symbol(g, Decl(innerTypeParameterShadowingOuterOne2.ts, 3, 25)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 4, 6)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + + var x: T; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 5, 11)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 4, 6)) + + x.toFixed(); +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 5, 11)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + } + + h() { +>h : Symbol(h, Decl(innerTypeParameterShadowingOuterOne2.ts, 7, 5)) + + var x: T; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 10, 11)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 3, 8)) + + x.getDate(); +>x.getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 10, 11)) +>getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) + } +} + +class C2 { +>C2 : Symbol(C2, Decl(innerTypeParameterShadowingOuterOne2.ts, 13, 1)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 9)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 24)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + g() { +>g : Symbol(g, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 42)) +>T : Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 16, 6)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 16, 23)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + + var x: U; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 17, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 16, 23)) + + x.toFixed(); +>x.toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 17, 11)) +>toFixed : Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) + } + + h() { +>h : Symbol(h, Decl(innerTypeParameterShadowingOuterOne2.ts, 19, 5)) + + var x: U; +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 22, 11)) +>U : Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 24)) + + x.getDate(); +>x.getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x : Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 22, 11)) +>getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) + } +} +//class C2 { +// g() { +// var x: U; +// x.toFixed(); +// } + +// h() { +// var x: U; +// x.getDate(); +// } +//} diff --git a/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types b/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types index 6b0c826f079d9..08e19fe7f1e2a 100644 --- a/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types +++ b/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types @@ -3,78 +3,78 @@ // no errors expected class C { ->C : C, Symbol(C, Decl(innerTypeParameterShadowingOuterOne2.ts, 0, 0)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 3, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>C : C +>T : T +>Date : Date g() { ->g : () => void, Symbol(g, Decl(innerTypeParameterShadowingOuterOne2.ts, 3, 25)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 4, 6)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>g : () => void +>T : T +>Number : Number var x: T; ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 5, 11)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 4, 6)) +>x : T +>T : T x.toFixed(); >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 5, 11)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : T +>toFixed : (fractionDigits?: number) => string } h() { ->h : () => void, Symbol(h, Decl(innerTypeParameterShadowingOuterOne2.ts, 7, 5)) +>h : () => void var x: T; ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 10, 11)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 3, 8)) +>x : T +>T : T x.getDate(); >x.getDate() : number ->x.getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) ->x : T, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 10, 11)) ->getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x.getDate : () => number +>x : T +>getDate : () => number } } class C2 { ->C2 : C2, Symbol(C2, Decl(innerTypeParameterShadowingOuterOne2.ts, 13, 1)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 9)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 24)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>C2 : C2 +>T : T +>Date : Date +>U : U +>Date : Date g() { ->g : () => void, Symbol(g, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 42)) ->T : T, Symbol(T, Decl(innerTypeParameterShadowingOuterOne2.ts, 16, 6)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 16, 23)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>g : () => void +>T : T +>Number : Number +>U : U +>Number : Number var x: U; ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 17, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 16, 23)) +>x : U +>U : U x.toFixed(); >x.toFixed() : string ->x.toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 17, 11)) ->toFixed : (fractionDigits?: number) => string, Symbol(Number.toFixed, Decl(lib.d.ts, 463, 37)) +>x.toFixed : (fractionDigits?: number) => string +>x : U +>toFixed : (fractionDigits?: number) => string } h() { ->h : () => void, Symbol(h, Decl(innerTypeParameterShadowingOuterOne2.ts, 19, 5)) +>h : () => void var x: U; ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 22, 11)) ->U : U, Symbol(U, Decl(innerTypeParameterShadowingOuterOne2.ts, 15, 24)) +>x : U +>U : U x.getDate(); >x.getDate() : number ->x.getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) ->x : U, Symbol(x, Decl(innerTypeParameterShadowingOuterOne2.ts, 22, 11)) ->getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>x.getDate : () => number +>x : U +>getDate : () => number } } //class C2 { diff --git a/tests/baselines/reference/instanceAndStaticDeclarations1.symbols b/tests/baselines/reference/instanceAndStaticDeclarations1.symbols new file mode 100644 index 0000000000000..518d899eabfc0 --- /dev/null +++ b/tests/baselines/reference/instanceAndStaticDeclarations1.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/instanceAndStaticDeclarations1.ts === +// from spec + +class Point { +>Point : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) + + constructor(public x: number, public y: number) { } +>x : Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) +>y : Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) + + public distance(p: Point) { +>distance : Symbol(distance, Decl(instanceAndStaticDeclarations1.ts, 3, 55)) +>p : Symbol(p, Decl(instanceAndStaticDeclarations1.ts, 4, 20)) +>Point : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) + + var dx = this.x - p.x; +>dx : Symbol(dx, Decl(instanceAndStaticDeclarations1.ts, 5, 11)) +>this.x : Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) +>this : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>x : Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) +>p.x : Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) +>p : Symbol(p, Decl(instanceAndStaticDeclarations1.ts, 4, 20)) +>x : Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) + + var dy = this.y - p.y; +>dy : Symbol(dy, Decl(instanceAndStaticDeclarations1.ts, 6, 11)) +>this.y : Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) +>this : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>y : Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) +>p.y : Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) +>p : Symbol(p, Decl(instanceAndStaticDeclarations1.ts, 4, 20)) +>y : Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) + + return Math.sqrt(dx * dx + dy * dy); +>Math.sqrt : Symbol(Math.sqrt, Decl(lib.d.ts, 620, 27)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>sqrt : Symbol(Math.sqrt, Decl(lib.d.ts, 620, 27)) +>dx : Symbol(dx, Decl(instanceAndStaticDeclarations1.ts, 5, 11)) +>dx : Symbol(dx, Decl(instanceAndStaticDeclarations1.ts, 5, 11)) +>dy : Symbol(dy, Decl(instanceAndStaticDeclarations1.ts, 6, 11)) +>dy : Symbol(dy, Decl(instanceAndStaticDeclarations1.ts, 6, 11)) + } + static origin = new Point(0, 0); +>origin : Symbol(Point.origin, Decl(instanceAndStaticDeclarations1.ts, 8, 5)) +>Point : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) + + static distance(p1: Point, p2: Point) { return p1.distance(p2); } +>distance : Symbol(Point.distance, Decl(instanceAndStaticDeclarations1.ts, 9, 36)) +>p1 : Symbol(p1, Decl(instanceAndStaticDeclarations1.ts, 10, 20)) +>Point : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>p2 : Symbol(p2, Decl(instanceAndStaticDeclarations1.ts, 10, 30)) +>Point : Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>p1.distance : Symbol(distance, Decl(instanceAndStaticDeclarations1.ts, 3, 55)) +>p1 : Symbol(p1, Decl(instanceAndStaticDeclarations1.ts, 10, 20)) +>distance : Symbol(distance, Decl(instanceAndStaticDeclarations1.ts, 3, 55)) +>p2 : Symbol(p2, Decl(instanceAndStaticDeclarations1.ts, 10, 30)) +} diff --git a/tests/baselines/reference/instanceAndStaticDeclarations1.types b/tests/baselines/reference/instanceAndStaticDeclarations1.types index fe11e3fd76f58..9d6ba692735cb 100644 --- a/tests/baselines/reference/instanceAndStaticDeclarations1.types +++ b/tests/baselines/reference/instanceAndStaticDeclarations1.types @@ -2,66 +2,66 @@ // from spec class Point { ->Point : Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>Point : Point constructor(public x: number, public y: number) { } ->x : number, Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) ->y : number, Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) +>x : number +>y : number public distance(p: Point) { ->distance : (p: Point) => number, Symbol(distance, Decl(instanceAndStaticDeclarations1.ts, 3, 55)) ->p : Point, Symbol(p, Decl(instanceAndStaticDeclarations1.ts, 4, 20)) ->Point : Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>distance : (p: Point) => number +>p : Point +>Point : Point var dx = this.x - p.x; ->dx : number, Symbol(dx, Decl(instanceAndStaticDeclarations1.ts, 5, 11)) +>dx : number >this.x - p.x : number ->this.x : number, Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) ->this : Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) ->x : number, Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) ->p.x : number, Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) ->p : Point, Symbol(p, Decl(instanceAndStaticDeclarations1.ts, 4, 20)) ->x : number, Symbol(x, Decl(instanceAndStaticDeclarations1.ts, 3, 16)) +>this.x : number +>this : Point +>x : number +>p.x : number +>p : Point +>x : number var dy = this.y - p.y; ->dy : number, Symbol(dy, Decl(instanceAndStaticDeclarations1.ts, 6, 11)) +>dy : number >this.y - p.y : number ->this.y : number, Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) ->this : Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) ->y : number, Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) ->p.y : number, Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) ->p : Point, Symbol(p, Decl(instanceAndStaticDeclarations1.ts, 4, 20)) ->y : number, Symbol(y, Decl(instanceAndStaticDeclarations1.ts, 3, 33)) +>this.y : number +>this : Point +>y : number +>p.y : number +>p : Point +>y : number return Math.sqrt(dx * dx + dy * dy); >Math.sqrt(dx * dx + dy * dy) : number ->Math.sqrt : (x: number) => number, Symbol(Math.sqrt, Decl(lib.d.ts, 620, 27)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->sqrt : (x: number) => number, Symbol(Math.sqrt, Decl(lib.d.ts, 620, 27)) +>Math.sqrt : (x: number) => number +>Math : Math +>sqrt : (x: number) => number >dx * dx + dy * dy : number >dx * dx : number ->dx : number, Symbol(dx, Decl(instanceAndStaticDeclarations1.ts, 5, 11)) ->dx : number, Symbol(dx, Decl(instanceAndStaticDeclarations1.ts, 5, 11)) +>dx : number +>dx : number >dy * dy : number ->dy : number, Symbol(dy, Decl(instanceAndStaticDeclarations1.ts, 6, 11)) ->dy : number, Symbol(dy, Decl(instanceAndStaticDeclarations1.ts, 6, 11)) +>dy : number +>dy : number } static origin = new Point(0, 0); ->origin : Point, Symbol(Point.origin, Decl(instanceAndStaticDeclarations1.ts, 8, 5)) +>origin : Point >new Point(0, 0) : Point ->Point : typeof Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>Point : typeof Point >0 : number >0 : number static distance(p1: Point, p2: Point) { return p1.distance(p2); } ->distance : (p1: Point, p2: Point) => number, Symbol(Point.distance, Decl(instanceAndStaticDeclarations1.ts, 9, 36)) ->p1 : Point, Symbol(p1, Decl(instanceAndStaticDeclarations1.ts, 10, 20)) ->Point : Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) ->p2 : Point, Symbol(p2, Decl(instanceAndStaticDeclarations1.ts, 10, 30)) ->Point : Point, Symbol(Point, Decl(instanceAndStaticDeclarations1.ts, 0, 0)) +>distance : (p1: Point, p2: Point) => number +>p1 : Point +>Point : Point +>p2 : Point +>Point : Point >p1.distance(p2) : number ->p1.distance : (p: Point) => number, Symbol(distance, Decl(instanceAndStaticDeclarations1.ts, 3, 55)) ->p1 : Point, Symbol(p1, Decl(instanceAndStaticDeclarations1.ts, 10, 20)) ->distance : (p: Point) => number, Symbol(distance, Decl(instanceAndStaticDeclarations1.ts, 3, 55)) ->p2 : Point, Symbol(p2, Decl(instanceAndStaticDeclarations1.ts, 10, 30)) +>p1.distance : (p: Point) => number +>p1 : Point +>distance : (p: Point) => number +>p2 : Point } diff --git a/tests/baselines/reference/instanceMemberInitialization.symbols b/tests/baselines/reference/instanceMemberInitialization.symbols new file mode 100644 index 0000000000000..adc192208ca4f --- /dev/null +++ b/tests/baselines/reference/instanceMemberInitialization.symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts === +class C { +>C : Symbol(C, Decl(instanceMemberInitialization.ts, 0, 0)) + + x = 1; +>x : Symbol(x, Decl(instanceMemberInitialization.ts, 0, 9)) +} + +var c = new C(); +>c : Symbol(c, Decl(instanceMemberInitialization.ts, 4, 3)) +>C : Symbol(C, Decl(instanceMemberInitialization.ts, 0, 0)) + +c.x = 3; +>c.x : Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) +>c : Symbol(c, Decl(instanceMemberInitialization.ts, 4, 3)) +>x : Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) + +var c2 = new C(); +>c2 : Symbol(c2, Decl(instanceMemberInitialization.ts, 6, 3)) +>C : Symbol(C, Decl(instanceMemberInitialization.ts, 0, 0)) + +var r = c.x === c2.x; +>r : Symbol(r, Decl(instanceMemberInitialization.ts, 7, 3)) +>c.x : Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) +>c : Symbol(c, Decl(instanceMemberInitialization.ts, 4, 3)) +>x : Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) +>c2.x : Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) +>c2 : Symbol(c2, Decl(instanceMemberInitialization.ts, 6, 3)) +>x : Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) + diff --git a/tests/baselines/reference/instanceMemberInitialization.types b/tests/baselines/reference/instanceMemberInitialization.types index 6a57bab5f6ff9..4d65c62aa49bc 100644 --- a/tests/baselines/reference/instanceMemberInitialization.types +++ b/tests/baselines/reference/instanceMemberInitialization.types @@ -1,36 +1,36 @@ === tests/cases/conformance/classes/propertyMemberDeclarations/instanceMemberInitialization.ts === class C { ->C : C, Symbol(C, Decl(instanceMemberInitialization.ts, 0, 0)) +>C : C x = 1; ->x : number, Symbol(x, Decl(instanceMemberInitialization.ts, 0, 9)) +>x : number >1 : number } var c = new C(); ->c : C, Symbol(c, Decl(instanceMemberInitialization.ts, 4, 3)) +>c : C >new C() : C ->C : typeof C, Symbol(C, Decl(instanceMemberInitialization.ts, 0, 0)) +>C : typeof C c.x = 3; >c.x = 3 : number ->c.x : number, Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) ->c : C, Symbol(c, Decl(instanceMemberInitialization.ts, 4, 3)) ->x : number, Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) +>c.x : number +>c : C +>x : number >3 : number var c2 = new C(); ->c2 : C, Symbol(c2, Decl(instanceMemberInitialization.ts, 6, 3)) +>c2 : C >new C() : C ->C : typeof C, Symbol(C, Decl(instanceMemberInitialization.ts, 0, 0)) +>C : typeof C var r = c.x === c2.x; ->r : boolean, Symbol(r, Decl(instanceMemberInitialization.ts, 7, 3)) +>r : boolean >c.x === c2.x : boolean ->c.x : number, Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) ->c : C, Symbol(c, Decl(instanceMemberInitialization.ts, 4, 3)) ->x : number, Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) ->c2.x : number, Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) ->c2 : C, Symbol(c2, Decl(instanceMemberInitialization.ts, 6, 3)) ->x : number, Symbol(C.x, Decl(instanceMemberInitialization.ts, 0, 9)) +>c.x : number +>c : C +>x : number +>c2.x : number +>c2 : C +>x : number diff --git a/tests/baselines/reference/instanceOfInExternalModules.symbols b/tests/baselines/reference/instanceOfInExternalModules.symbols new file mode 100644 index 0000000000000..45d158fc62e91 --- /dev/null +++ b/tests/baselines/reference/instanceOfInExternalModules.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/instanceOfInExternalModules_1.ts === +/// +import Bar = require("instanceOfInExternalModules_require"); +>Bar : Symbol(Bar, Decl(instanceOfInExternalModules_1.ts, 0, 0)) + +function IsFoo(value: any): boolean { +>IsFoo : Symbol(IsFoo, Decl(instanceOfInExternalModules_1.ts, 1, 60)) +>value : Symbol(value, Decl(instanceOfInExternalModules_1.ts, 2, 15)) + + return value instanceof Bar.Foo; +>value : Symbol(value, Decl(instanceOfInExternalModules_1.ts, 2, 15)) +>Bar.Foo : Symbol(Bar.Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) +>Bar : Symbol(Bar, Decl(instanceOfInExternalModules_1.ts, 0, 0)) +>Foo : Symbol(Bar.Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) +} + +=== tests/cases/compiler/instanceOfInExternalModules_require.ts === +export class Foo { foo: string; } +>Foo : Symbol(Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) +>foo : Symbol(foo, Decl(instanceOfInExternalModules_require.ts, 0, 18)) + diff --git a/tests/baselines/reference/instanceOfInExternalModules.types b/tests/baselines/reference/instanceOfInExternalModules.types index 33b14d8210e5b..6e2eb8c77aa70 100644 --- a/tests/baselines/reference/instanceOfInExternalModules.types +++ b/tests/baselines/reference/instanceOfInExternalModules.types @@ -1,22 +1,22 @@ === tests/cases/compiler/instanceOfInExternalModules_1.ts === /// import Bar = require("instanceOfInExternalModules_require"); ->Bar : typeof Bar, Symbol(Bar, Decl(instanceOfInExternalModules_1.ts, 0, 0)) +>Bar : typeof Bar function IsFoo(value: any): boolean { ->IsFoo : (value: any) => boolean, Symbol(IsFoo, Decl(instanceOfInExternalModules_1.ts, 1, 60)) ->value : any, Symbol(value, Decl(instanceOfInExternalModules_1.ts, 2, 15)) +>IsFoo : (value: any) => boolean +>value : any return value instanceof Bar.Foo; >value instanceof Bar.Foo : boolean ->value : any, Symbol(value, Decl(instanceOfInExternalModules_1.ts, 2, 15)) ->Bar.Foo : typeof Bar.Foo, Symbol(Bar.Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) ->Bar : typeof Bar, Symbol(Bar, Decl(instanceOfInExternalModules_1.ts, 0, 0)) ->Foo : typeof Bar.Foo, Symbol(Bar.Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) +>value : any +>Bar.Foo : typeof Bar.Foo +>Bar : typeof Bar +>Foo : typeof Bar.Foo } === tests/cases/compiler/instanceOfInExternalModules_require.ts === export class Foo { foo: string; } ->Foo : Foo, Symbol(Foo, Decl(instanceOfInExternalModules_require.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(instanceOfInExternalModules_require.ts, 0, 18)) +>Foo : Foo +>foo : string diff --git a/tests/baselines/reference/instanceSubtypeCheck1.symbols b/tests/baselines/reference/instanceSubtypeCheck1.symbols new file mode 100644 index 0000000000000..c7f4bb4152dbc --- /dev/null +++ b/tests/baselines/reference/instanceSubtypeCheck1.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/instanceSubtypeCheck1.ts === +interface A +>A : Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) +>T : Symbol(T, Decl(instanceSubtypeCheck1.ts, 0, 12)) +{ + x: A> +>x : Symbol(x, Decl(instanceSubtypeCheck1.ts, 1, 1)) +>A : Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) +>B : Symbol(B, Decl(instanceSubtypeCheck1.ts, 3, 1)) +>T : Symbol(T, Decl(instanceSubtypeCheck1.ts, 0, 12)) +} + +interface B extends A +>B : Symbol(B, Decl(instanceSubtypeCheck1.ts, 3, 1)) +>T : Symbol(T, Decl(instanceSubtypeCheck1.ts, 5, 12)) +>A : Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) +>T : Symbol(T, Decl(instanceSubtypeCheck1.ts, 5, 12)) +{ + x: B> +>x : Symbol(x, Decl(instanceSubtypeCheck1.ts, 6, 1)) +>B : Symbol(B, Decl(instanceSubtypeCheck1.ts, 3, 1)) +>A : Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) +>T : Symbol(T, Decl(instanceSubtypeCheck1.ts, 5, 12)) +} diff --git a/tests/baselines/reference/instanceSubtypeCheck1.types b/tests/baselines/reference/instanceSubtypeCheck1.types index 8e57acdbef69e..f5c127e0025f3 100644 --- a/tests/baselines/reference/instanceSubtypeCheck1.types +++ b/tests/baselines/reference/instanceSubtypeCheck1.types @@ -1,24 +1,24 @@ === tests/cases/compiler/instanceSubtypeCheck1.ts === interface A ->A : A, Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) ->T : T, Symbol(T, Decl(instanceSubtypeCheck1.ts, 0, 12)) +>A : A +>T : T { x: A> ->x : A>, Symbol(x, Decl(instanceSubtypeCheck1.ts, 1, 1)) ->A : A, Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) ->B : B, Symbol(B, Decl(instanceSubtypeCheck1.ts, 3, 1)) ->T : T, Symbol(T, Decl(instanceSubtypeCheck1.ts, 0, 12)) +>x : A> +>A : A +>B : B +>T : T } interface B extends A ->B : B, Symbol(B, Decl(instanceSubtypeCheck1.ts, 3, 1)) ->T : T, Symbol(T, Decl(instanceSubtypeCheck1.ts, 5, 12)) ->A : A, Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) ->T : T, Symbol(T, Decl(instanceSubtypeCheck1.ts, 5, 12)) +>B : B +>T : T +>A : A +>T : T { x: B> ->x : B>, Symbol(x, Decl(instanceSubtypeCheck1.ts, 6, 1)) ->B : B, Symbol(B, Decl(instanceSubtypeCheck1.ts, 3, 1)) ->A : A, Symbol(A, Decl(instanceSubtypeCheck1.ts, 0, 0)) ->T : T, Symbol(T, Decl(instanceSubtypeCheck1.ts, 5, 12)) +>x : B> +>B : B +>A : A +>T : T } diff --git a/tests/baselines/reference/instanceofOperatorWithAny.symbols b/tests/baselines/reference/instanceofOperatorWithAny.symbols new file mode 100644 index 0000000000000..71e08c948e32e --- /dev/null +++ b/tests/baselines/reference/instanceofOperatorWithAny.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithAny.ts === +var a: any; +>a : Symbol(a, Decl(instanceofOperatorWithAny.ts, 0, 3)) + +var r: boolean = a instanceof a; +>r : Symbol(r, Decl(instanceofOperatorWithAny.ts, 2, 3)) +>a : Symbol(a, Decl(instanceofOperatorWithAny.ts, 0, 3)) +>a : Symbol(a, Decl(instanceofOperatorWithAny.ts, 0, 3)) + diff --git a/tests/baselines/reference/instanceofOperatorWithAny.types b/tests/baselines/reference/instanceofOperatorWithAny.types index b1dc369dbc78b..e53aa2d75cab6 100644 --- a/tests/baselines/reference/instanceofOperatorWithAny.types +++ b/tests/baselines/reference/instanceofOperatorWithAny.types @@ -1,10 +1,10 @@ === tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithAny.ts === var a: any; ->a : any, Symbol(a, Decl(instanceofOperatorWithAny.ts, 0, 3)) +>a : any var r: boolean = a instanceof a; ->r : boolean, Symbol(r, Decl(instanceofOperatorWithAny.ts, 2, 3)) +>r : boolean >a instanceof a : boolean ->a : any, Symbol(a, Decl(instanceofOperatorWithAny.ts, 0, 3)) ->a : any, Symbol(a, Decl(instanceofOperatorWithAny.ts, 0, 3)) +>a : any +>a : any diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.symbols b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.symbols new file mode 100644 index 0000000000000..44859d83f728c --- /dev/null +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts === +class C { } +>C : Symbol(C, Decl(instanceofOperatorWithLHSIsObject.ts, 0, 0)) + +var x1: any; +>x1 : Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) + +var x2: Function; +>x2 : Symbol(x2, Decl(instanceofOperatorWithLHSIsObject.ts, 3, 3)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var a: {}; +>a : Symbol(a, Decl(instanceofOperatorWithLHSIsObject.ts, 5, 3)) + +var b: Object; +>b : Symbol(b, Decl(instanceofOperatorWithLHSIsObject.ts, 6, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var c: C; +>c : Symbol(c, Decl(instanceofOperatorWithLHSIsObject.ts, 7, 3)) +>C : Symbol(C, Decl(instanceofOperatorWithLHSIsObject.ts, 0, 0)) + +var d: string | C; +>d : Symbol(d, Decl(instanceofOperatorWithLHSIsObject.ts, 8, 3)) +>C : Symbol(C, Decl(instanceofOperatorWithLHSIsObject.ts, 0, 0)) + +var r1 = a instanceof x1; +>r1 : Symbol(r1, Decl(instanceofOperatorWithLHSIsObject.ts, 10, 3)) +>a : Symbol(a, Decl(instanceofOperatorWithLHSIsObject.ts, 5, 3)) +>x1 : Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) + +var r2 = b instanceof x2; +>r2 : Symbol(r2, Decl(instanceofOperatorWithLHSIsObject.ts, 11, 3)) +>b : Symbol(b, Decl(instanceofOperatorWithLHSIsObject.ts, 6, 3)) +>x2 : Symbol(x2, Decl(instanceofOperatorWithLHSIsObject.ts, 3, 3)) + +var r3 = c instanceof x1; +>r3 : Symbol(r3, Decl(instanceofOperatorWithLHSIsObject.ts, 12, 3)) +>c : Symbol(c, Decl(instanceofOperatorWithLHSIsObject.ts, 7, 3)) +>x1 : Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) + +var r4 = d instanceof x1; +>r4 : Symbol(r4, Decl(instanceofOperatorWithLHSIsObject.ts, 13, 3)) +>d : Symbol(d, Decl(instanceofOperatorWithLHSIsObject.ts, 8, 3)) +>x1 : Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) + diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types index dad2a543fe13c..9962a23dcedc0 100644 --- a/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsObject.types @@ -1,50 +1,50 @@ === tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsObject.ts === class C { } ->C : C, Symbol(C, Decl(instanceofOperatorWithLHSIsObject.ts, 0, 0)) +>C : C var x1: any; ->x1 : any, Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) +>x1 : any var x2: Function; ->x2 : Function, Symbol(x2, Decl(instanceofOperatorWithLHSIsObject.ts, 3, 3)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>x2 : Function +>Function : Function var a: {}; ->a : {}, Symbol(a, Decl(instanceofOperatorWithLHSIsObject.ts, 5, 3)) +>a : {} var b: Object; ->b : Object, Symbol(b, Decl(instanceofOperatorWithLHSIsObject.ts, 6, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>b : Object +>Object : Object var c: C; ->c : C, Symbol(c, Decl(instanceofOperatorWithLHSIsObject.ts, 7, 3)) ->C : C, Symbol(C, Decl(instanceofOperatorWithLHSIsObject.ts, 0, 0)) +>c : C +>C : C var d: string | C; ->d : string | C, Symbol(d, Decl(instanceofOperatorWithLHSIsObject.ts, 8, 3)) ->C : C, Symbol(C, Decl(instanceofOperatorWithLHSIsObject.ts, 0, 0)) +>d : string | C +>C : C var r1 = a instanceof x1; ->r1 : boolean, Symbol(r1, Decl(instanceofOperatorWithLHSIsObject.ts, 10, 3)) +>r1 : boolean >a instanceof x1 : boolean ->a : {}, Symbol(a, Decl(instanceofOperatorWithLHSIsObject.ts, 5, 3)) ->x1 : any, Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) +>a : {} +>x1 : any var r2 = b instanceof x2; ->r2 : boolean, Symbol(r2, Decl(instanceofOperatorWithLHSIsObject.ts, 11, 3)) +>r2 : boolean >b instanceof x2 : boolean ->b : Object, Symbol(b, Decl(instanceofOperatorWithLHSIsObject.ts, 6, 3)) ->x2 : Function, Symbol(x2, Decl(instanceofOperatorWithLHSIsObject.ts, 3, 3)) +>b : Object +>x2 : Function var r3 = c instanceof x1; ->r3 : boolean, Symbol(r3, Decl(instanceofOperatorWithLHSIsObject.ts, 12, 3)) +>r3 : boolean >c instanceof x1 : boolean ->c : C, Symbol(c, Decl(instanceofOperatorWithLHSIsObject.ts, 7, 3)) ->x1 : any, Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) +>c : C +>x1 : any var r4 = d instanceof x1; ->r4 : boolean, Symbol(r4, Decl(instanceofOperatorWithLHSIsObject.ts, 13, 3)) +>r4 : boolean >d instanceof x1 : boolean ->d : string | C, Symbol(d, Decl(instanceofOperatorWithLHSIsObject.ts, 8, 3)) ->x1 : any, Symbol(x1, Decl(instanceofOperatorWithLHSIsObject.ts, 2, 3)) +>d : string | C +>x1 : any diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.symbols b/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.symbols new file mode 100644 index 0000000000000..a46802ac14447 --- /dev/null +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsTypeParameter.ts === +function foo(t: T) { +>foo : Symbol(foo, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 13)) +>t : Symbol(t, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 16)) +>T : Symbol(T, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 13)) + + var x: any; +>x : Symbol(x, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 1, 7)) + + var r = t instanceof x; +>r : Symbol(r, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 2, 7)) +>t : Symbol(t, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 16)) +>x : Symbol(x, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 1, 7)) +} diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types b/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types index df00cc1df6217..d10c6c5cafa50 100644 --- a/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types @@ -1,16 +1,16 @@ === tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithLHSIsTypeParameter.ts === function foo(t: T) { ->foo : (t: T) => void, Symbol(foo, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 13)) ->t : T, Symbol(t, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 16)) ->T : T, Symbol(T, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 13)) +>foo : (t: T) => void +>T : T +>t : T +>T : T var x: any; ->x : any, Symbol(x, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 1, 7)) +>x : any var r = t instanceof x; ->r : boolean, Symbol(r, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 2, 7)) +>r : boolean >t instanceof x : boolean ->t : T, Symbol(t, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 0, 16)) ->x : any, Symbol(x, Decl(instanceofOperatorWithLHSIsTypeParameter.ts, 1, 7)) +>t : T +>x : any } diff --git a/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.symbols b/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.symbols new file mode 100644 index 0000000000000..e15f4b7ea45c6 --- /dev/null +++ b/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.symbols @@ -0,0 +1,51 @@ +=== tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithRHSIsSubtypeOfFunction.ts === +interface I extends Function { } +>I : Symbol(I, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 0, 0)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var x: any; +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) + +var f1: Function; +>f1 : Symbol(f1, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 3, 3)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var f2: I; +>f2 : Symbol(f2, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 4, 3)) +>I : Symbol(I, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 0, 0)) + +var f3: { (): void }; +>f3 : Symbol(f3, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 5, 3)) + +var f4: { new (): number }; +>f4 : Symbol(f4, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 6, 3)) + +var r1 = x instanceof f1; +>r1 : Symbol(r1, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 8, 3)) +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>f1 : Symbol(f1, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 3, 3)) + +var r2 = x instanceof f2; +>r2 : Symbol(r2, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 9, 3)) +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>f2 : Symbol(f2, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 4, 3)) + +var r3 = x instanceof f3; +>r3 : Symbol(r3, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 10, 3)) +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>f3 : Symbol(f3, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 5, 3)) + +var r4 = x instanceof f4; +>r4 : Symbol(r4, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 11, 3)) +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>f4 : Symbol(f4, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 6, 3)) + +var r5 = x instanceof null; +>r5 : Symbol(r5, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 12, 3)) +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) + +var r6 = x instanceof undefined; +>r6 : Symbol(r6, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 13, 3)) +>x : Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.types b/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.types index 8dceee3aeda1a..256f26f8fc97a 100644 --- a/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.types +++ b/tests/baselines/reference/instanceofOperatorWithRHSIsSubtypeOfFunction.types @@ -1,58 +1,58 @@ === tests/cases/conformance/expressions/binaryOperators/instanceofOperator/instanceofOperatorWithRHSIsSubtypeOfFunction.ts === interface I extends Function { } ->I : I, Symbol(I, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 0, 0)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>I : I +>Function : Function var x: any; ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>x : any var f1: Function; ->f1 : Function, Symbol(f1, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 3, 3)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>f1 : Function +>Function : Function var f2: I; ->f2 : I, Symbol(f2, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 4, 3)) ->I : I, Symbol(I, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 0, 0)) +>f2 : I +>I : I var f3: { (): void }; ->f3 : () => void, Symbol(f3, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 5, 3)) +>f3 : () => void var f4: { new (): number }; ->f4 : new () => number, Symbol(f4, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 6, 3)) +>f4 : new () => number var r1 = x instanceof f1; ->r1 : boolean, Symbol(r1, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 8, 3)) +>r1 : boolean >x instanceof f1 : boolean ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) ->f1 : Function, Symbol(f1, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 3, 3)) +>x : any +>f1 : Function var r2 = x instanceof f2; ->r2 : boolean, Symbol(r2, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 9, 3)) +>r2 : boolean >x instanceof f2 : boolean ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) ->f2 : I, Symbol(f2, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 4, 3)) +>x : any +>f2 : I var r3 = x instanceof f3; ->r3 : boolean, Symbol(r3, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 10, 3)) +>r3 : boolean >x instanceof f3 : boolean ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) ->f3 : () => void, Symbol(f3, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 5, 3)) +>x : any +>f3 : () => void var r4 = x instanceof f4; ->r4 : boolean, Symbol(r4, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 11, 3)) +>r4 : boolean >x instanceof f4 : boolean ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) ->f4 : new () => number, Symbol(f4, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 6, 3)) +>x : any +>f4 : new () => number var r5 = x instanceof null; ->r5 : boolean, Symbol(r5, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 12, 3)) +>r5 : boolean >x instanceof null : boolean ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) +>x : any >null : null var r6 = x instanceof undefined; ->r6 : boolean, Symbol(r6, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 13, 3)) +>r6 : boolean >x instanceof undefined : boolean ->x : any, Symbol(x, Decl(instanceofOperatorWithRHSIsSubtypeOfFunction.ts, 2, 3)) ->undefined : undefined, Symbol(undefined) +>x : any +>undefined : undefined diff --git a/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.symbols b/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.symbols new file mode 100644 index 0000000000000..b20387d9b8021 --- /dev/null +++ b/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.symbols @@ -0,0 +1,34 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiateGenericClassWithZeroTypeArguments.ts === +// no errors expected when instantiating a generic type with no type arguments provided + +class C { +>C : Symbol(C, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 0, 0)) +>T : Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 2, 8)) + + x: T; +>x : Symbol(x, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 2, 12)) +>T : Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 2, 8)) +} + +var c = new C(); +>c : Symbol(c, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 6, 3)) +>C : Symbol(C, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 0, 0)) + +class D { +>D : Symbol(D, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 6, 16)) +>T : Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 8)) +>U : Symbol(U, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 10)) + + x: T +>x : Symbol(x, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 15)) +>T : Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 8)) + + y: U +>y : Symbol(y, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 9, 8)) +>U : Symbol(U, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 10)) +} + +var d = new D(); +>d : Symbol(d, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 13, 3)) +>D : Symbol(D, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 6, 16)) + diff --git a/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.types b/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.types index f3a34fc0cf7d2..0fe962e9c8f5f 100644 --- a/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.types +++ b/tests/baselines/reference/instantiateGenericClassWithZeroTypeArguments.types @@ -2,35 +2,35 @@ // no errors expected when instantiating a generic type with no type arguments provided class C { ->C : C, Symbol(C, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 0, 0)) ->T : T, Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 2, 8)) +>C : C +>T : T x: T; ->x : T, Symbol(x, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 2, 12)) ->T : T, Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 2, 8)) +>x : T +>T : T } var c = new C(); ->c : C<{}>, Symbol(c, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 6, 3)) +>c : C<{}> >new C() : C<{}> ->C : typeof C, Symbol(C, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 0, 0)) +>C : typeof C class D { ->D : D, Symbol(D, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 6, 16)) ->T : T, Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 8)) ->U : U, Symbol(U, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 10)) +>D : D +>T : T +>U : U x: T ->x : T, Symbol(x, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 15)) ->T : T, Symbol(T, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 8)) +>x : T +>T : T y: U ->y : U, Symbol(y, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 9, 8)) ->U : U, Symbol(U, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 8, 10)) +>y : U +>U : U } var d = new D(); ->d : D<{}, {}>, Symbol(d, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 13, 3)) +>d : D<{}, {}> >new D() : D<{}, {}> ->D : typeof D, Symbol(D, Decl(instantiateGenericClassWithZeroTypeArguments.ts, 6, 16)) +>D : typeof D diff --git a/tests/baselines/reference/instantiatedModule.symbols b/tests/baselines/reference/instantiatedModule.symbols new file mode 100644 index 0000000000000..42e0edcd2217f --- /dev/null +++ b/tests/baselines/reference/instantiatedModule.symbols @@ -0,0 +1,195 @@ +=== tests/cases/conformance/internalModules/moduleDeclarations/instantiatedModule.ts === +// adding the var makes this an instantiated module + +module M { +>M : Symbol(M, Decl(instantiatedModule.ts, 0, 0)) + + export interface Point { x: number; y: number } +>Point : Symbol(Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>x : Symbol(x, Decl(instantiatedModule.ts, 3, 28)) +>y : Symbol(y, Decl(instantiatedModule.ts, 3, 39)) + + export var Point = 1; +>Point : Symbol(Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +} + +// primary expression +var m: typeof M; +>m : Symbol(m, Decl(instantiatedModule.ts, 8, 3), Decl(instantiatedModule.ts, 9, 3)) +>M : Symbol(M, Decl(instantiatedModule.ts, 0, 0)) + +var m = M; +>m : Symbol(m, Decl(instantiatedModule.ts, 8, 3), Decl(instantiatedModule.ts, 9, 3)) +>M : Symbol(M, Decl(instantiatedModule.ts, 0, 0)) + +var a1: number; +>a1 : Symbol(a1, Decl(instantiatedModule.ts, 11, 3), Decl(instantiatedModule.ts, 12, 3), Decl(instantiatedModule.ts, 13, 3)) + +var a1 = M.Point; +>a1 : Symbol(a1, Decl(instantiatedModule.ts, 11, 3), Decl(instantiatedModule.ts, 12, 3), Decl(instantiatedModule.ts, 13, 3)) +>M.Point : Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>M : Symbol(M, Decl(instantiatedModule.ts, 0, 0)) +>Point : Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) + +var a1 = m.Point; +>a1 : Symbol(a1, Decl(instantiatedModule.ts, 11, 3), Decl(instantiatedModule.ts, 12, 3), Decl(instantiatedModule.ts, 13, 3)) +>m.Point : Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>m : Symbol(m, Decl(instantiatedModule.ts, 8, 3), Decl(instantiatedModule.ts, 9, 3)) +>Point : Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) + +var p1: { x: number; y: number; } +>p1 : Symbol(p1, Decl(instantiatedModule.ts, 15, 3), Decl(instantiatedModule.ts, 16, 3)) +>x : Symbol(x, Decl(instantiatedModule.ts, 15, 9)) +>y : Symbol(y, Decl(instantiatedModule.ts, 15, 20)) + +var p1: M.Point; +>p1 : Symbol(p1, Decl(instantiatedModule.ts, 15, 3), Decl(instantiatedModule.ts, 16, 3)) +>M : Symbol(M, Decl(instantiatedModule.ts, 0, 0)) +>Point : Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) + +// making the point a class instead of an interface +// makes this an instantiated mmodule +module M2 { +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) + + export class Point { +>Point : Symbol(Point, Decl(instantiatedModule.ts, 20, 11)) + + x: number; +>x : Symbol(x, Decl(instantiatedModule.ts, 21, 24)) + + y: number; +>y : Symbol(y, Decl(instantiatedModule.ts, 22, 18)) + + static Origin(): Point { +>Origin : Symbol(Point.Origin, Decl(instantiatedModule.ts, 23, 18)) +>Point : Symbol(Point, Decl(instantiatedModule.ts, 20, 11)) + + return { x: 0, y: 0 }; +>x : Symbol(x, Decl(instantiatedModule.ts, 25, 20)) +>y : Symbol(y, Decl(instantiatedModule.ts, 25, 26)) + } + } +} + +var m2: typeof M2; +>m2 : Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) + +var m2 = M2; +>m2 : Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) + +// static side of the class +var a2: typeof M2.Point; +>a2 : Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) +>M2.Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) + +var a2 = m2.Point; +>a2 : Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) +>m2.Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>m2 : Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) + +var a2 = M2.Point; +>a2 : Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) +>M2.Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) + +var o: M2.Point = a2.Origin(); +>o : Symbol(o, Decl(instantiatedModule.ts, 37, 3)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>a2.Origin : Symbol(M2.Point.Origin, Decl(instantiatedModule.ts, 23, 18)) +>a2 : Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) +>Origin : Symbol(M2.Point.Origin, Decl(instantiatedModule.ts, 23, 18)) + +var p2: { x: number; y: number } +>p2 : Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) +>x : Symbol(x, Decl(instantiatedModule.ts, 39, 9)) +>y : Symbol(y, Decl(instantiatedModule.ts, 39, 20)) + +var p2: M2.Point; +>p2 : Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) + +var p2 = new m2.Point(); +>p2 : Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) +>m2.Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>m2 : Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) + +var p2 = new M2.Point(); +>p2 : Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) +>M2.Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>M2 : Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>Point : Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) + +module M3 { +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) + + export enum Color { Blue, Red } +>Color : Symbol(Color, Decl(instantiatedModule.ts, 44, 11)) +>Blue : Symbol(Color.Blue, Decl(instantiatedModule.ts, 45, 23)) +>Red : Symbol(Color.Red, Decl(instantiatedModule.ts, 45, 29)) +} + +var m3: typeof M3; +>m3 : Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) + +var m3 = M3; +>m3 : Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) + +var a3: typeof M3.Color; +>a3 : Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) +>M3.Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) + +var a3 = m3.Color; +>a3 : Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) +>m3.Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>m3 : Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) + +var a3 = M3.Color; +>a3 : Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) +>M3.Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) + +var blue: M3.Color = a3.Blue; +>blue : Symbol(blue, Decl(instantiatedModule.ts, 54, 3)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>a3.Blue : Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) +>a3 : Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) +>Blue : Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) + +var p3: M3.Color; +>p3 : Symbol(p3, Decl(instantiatedModule.ts, 56, 3), Decl(instantiatedModule.ts, 57, 3), Decl(instantiatedModule.ts, 58, 3)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) + +var p3 = M3.Color.Red; +>p3 : Symbol(p3, Decl(instantiatedModule.ts, 56, 3), Decl(instantiatedModule.ts, 57, 3), Decl(instantiatedModule.ts, 58, 3)) +>M3.Color.Red : Symbol(M3.Color.Red, Decl(instantiatedModule.ts, 45, 29)) +>M3.Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>M3 : Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>Red : Symbol(M3.Color.Red, Decl(instantiatedModule.ts, 45, 29)) + +var p3 = m3.Color.Blue; +>p3 : Symbol(p3, Decl(instantiatedModule.ts, 56, 3), Decl(instantiatedModule.ts, 57, 3), Decl(instantiatedModule.ts, 58, 3)) +>m3.Color.Blue : Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) +>m3.Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>m3 : Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) +>Color : Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>Blue : Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) + diff --git a/tests/baselines/reference/instantiatedModule.types b/tests/baselines/reference/instantiatedModule.types index 6146c3b5f9f1f..e9933eea80458 100644 --- a/tests/baselines/reference/instantiatedModule.types +++ b/tests/baselines/reference/instantiatedModule.types @@ -2,201 +2,201 @@ // adding the var makes this an instantiated module module M { ->M : typeof M, Symbol(M, Decl(instantiatedModule.ts, 0, 0)) +>M : typeof M export interface Point { x: number; y: number } ->Point : Point, Symbol(Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) ->x : number, Symbol(x, Decl(instantiatedModule.ts, 3, 28)) ->y : number, Symbol(y, Decl(instantiatedModule.ts, 3, 39)) +>Point : Point +>x : number +>y : number export var Point = 1; ->Point : number, Symbol(Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>Point : number >1 : number } // primary expression var m: typeof M; ->m : typeof M, Symbol(m, Decl(instantiatedModule.ts, 8, 3), Decl(instantiatedModule.ts, 9, 3)) ->M : typeof M, Symbol(M, Decl(instantiatedModule.ts, 0, 0)) +>m : typeof M +>M : typeof M var m = M; ->m : typeof M, Symbol(m, Decl(instantiatedModule.ts, 8, 3), Decl(instantiatedModule.ts, 9, 3)) ->M : typeof M, Symbol(M, Decl(instantiatedModule.ts, 0, 0)) +>m : typeof M +>M : typeof M var a1: number; ->a1 : number, Symbol(a1, Decl(instantiatedModule.ts, 11, 3), Decl(instantiatedModule.ts, 12, 3), Decl(instantiatedModule.ts, 13, 3)) +>a1 : number var a1 = M.Point; ->a1 : number, Symbol(a1, Decl(instantiatedModule.ts, 11, 3), Decl(instantiatedModule.ts, 12, 3), Decl(instantiatedModule.ts, 13, 3)) ->M.Point : number, Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) ->M : typeof M, Symbol(M, Decl(instantiatedModule.ts, 0, 0)) ->Point : number, Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>a1 : number +>M.Point : number +>M : typeof M +>Point : number var a1 = m.Point; ->a1 : number, Symbol(a1, Decl(instantiatedModule.ts, 11, 3), Decl(instantiatedModule.ts, 12, 3), Decl(instantiatedModule.ts, 13, 3)) ->m.Point : number, Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) ->m : typeof M, Symbol(m, Decl(instantiatedModule.ts, 8, 3), Decl(instantiatedModule.ts, 9, 3)) ->Point : number, Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>a1 : number +>m.Point : number +>m : typeof M +>Point : number var p1: { x: number; y: number; } ->p1 : { x: number; y: number; }, Symbol(p1, Decl(instantiatedModule.ts, 15, 3), Decl(instantiatedModule.ts, 16, 3)) ->x : number, Symbol(x, Decl(instantiatedModule.ts, 15, 9)) ->y : number, Symbol(y, Decl(instantiatedModule.ts, 15, 20)) +>p1 : { x: number; y: number; } +>x : number +>y : number var p1: M.Point; ->p1 : { x: number; y: number; }, Symbol(p1, Decl(instantiatedModule.ts, 15, 3), Decl(instantiatedModule.ts, 16, 3)) ->M : any, Symbol(M, Decl(instantiatedModule.ts, 0, 0)) ->Point : M.Point, Symbol(M.Point, Decl(instantiatedModule.ts, 2, 10), Decl(instantiatedModule.ts, 4, 14)) +>p1 : { x: number; y: number; } +>M : any +>Point : M.Point // making the point a class instead of an interface // makes this an instantiated mmodule module M2 { ->M2 : typeof M2, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>M2 : typeof M2 export class Point { ->Point : Point, Symbol(Point, Decl(instantiatedModule.ts, 20, 11)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(instantiatedModule.ts, 21, 24)) +>x : number y: number; ->y : number, Symbol(y, Decl(instantiatedModule.ts, 22, 18)) +>y : number static Origin(): Point { ->Origin : () => Point, Symbol(Point.Origin, Decl(instantiatedModule.ts, 23, 18)) ->Point : Point, Symbol(Point, Decl(instantiatedModule.ts, 20, 11)) +>Origin : () => Point +>Point : Point return { x: 0, y: 0 }; >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(instantiatedModule.ts, 25, 20)) +>x : number >0 : number ->y : number, Symbol(y, Decl(instantiatedModule.ts, 25, 26)) +>y : number >0 : number } } } var m2: typeof M2; ->m2 : typeof M2, Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) ->M2 : typeof M2, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>m2 : typeof M2 +>M2 : typeof M2 var m2 = M2; ->m2 : typeof M2, Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) ->M2 : typeof M2, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) +>m2 : typeof M2 +>M2 : typeof M2 // static side of the class var a2: typeof M2.Point; ->a2 : typeof M2.Point, Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) ->M2.Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) ->M2 : typeof M2, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) ->Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>a2 : typeof M2.Point +>M2.Point : typeof M2.Point +>M2 : typeof M2 +>Point : typeof M2.Point var a2 = m2.Point; ->a2 : typeof M2.Point, Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) ->m2.Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) ->m2 : typeof M2, Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) ->Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>a2 : typeof M2.Point +>m2.Point : typeof M2.Point +>m2 : typeof M2 +>Point : typeof M2.Point var a2 = M2.Point; ->a2 : typeof M2.Point, Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) ->M2.Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) ->M2 : typeof M2, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) ->Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>a2 : typeof M2.Point +>M2.Point : typeof M2.Point +>M2 : typeof M2 +>Point : typeof M2.Point var o: M2.Point = a2.Origin(); ->o : M2.Point, Symbol(o, Decl(instantiatedModule.ts, 37, 3)) ->M2 : any, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) ->Point : M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>o : M2.Point +>M2 : any +>Point : M2.Point >a2.Origin() : M2.Point ->a2.Origin : () => M2.Point, Symbol(M2.Point.Origin, Decl(instantiatedModule.ts, 23, 18)) ->a2 : typeof M2.Point, Symbol(a2, Decl(instantiatedModule.ts, 34, 3), Decl(instantiatedModule.ts, 35, 3), Decl(instantiatedModule.ts, 36, 3)) ->Origin : () => M2.Point, Symbol(M2.Point.Origin, Decl(instantiatedModule.ts, 23, 18)) +>a2.Origin : () => M2.Point +>a2 : typeof M2.Point +>Origin : () => M2.Point var p2: { x: number; y: number } ->p2 : { x: number; y: number; }, Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) ->x : number, Symbol(x, Decl(instantiatedModule.ts, 39, 9)) ->y : number, Symbol(y, Decl(instantiatedModule.ts, 39, 20)) +>p2 : { x: number; y: number; } +>x : number +>y : number var p2: M2.Point; ->p2 : { x: number; y: number; }, Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) ->M2 : any, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) ->Point : M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>p2 : { x: number; y: number; } +>M2 : any +>Point : M2.Point var p2 = new m2.Point(); ->p2 : { x: number; y: number; }, Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) +>p2 : { x: number; y: number; } >new m2.Point() : M2.Point ->m2.Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) ->m2 : typeof M2, Symbol(m2, Decl(instantiatedModule.ts, 30, 3), Decl(instantiatedModule.ts, 31, 3)) ->Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>m2.Point : typeof M2.Point +>m2 : typeof M2 +>Point : typeof M2.Point var p2 = new M2.Point(); ->p2 : { x: number; y: number; }, Symbol(p2, Decl(instantiatedModule.ts, 39, 3), Decl(instantiatedModule.ts, 40, 3), Decl(instantiatedModule.ts, 41, 3), Decl(instantiatedModule.ts, 42, 3)) +>p2 : { x: number; y: number; } >new M2.Point() : M2.Point ->M2.Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) ->M2 : typeof M2, Symbol(M2, Decl(instantiatedModule.ts, 16, 16)) ->Point : typeof M2.Point, Symbol(M2.Point, Decl(instantiatedModule.ts, 20, 11)) +>M2.Point : typeof M2.Point +>M2 : typeof M2 +>Point : typeof M2.Point module M3 { ->M3 : typeof M3, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>M3 : typeof M3 export enum Color { Blue, Red } ->Color : Color, Symbol(Color, Decl(instantiatedModule.ts, 44, 11)) ->Blue : Color, Symbol(Color.Blue, Decl(instantiatedModule.ts, 45, 23)) ->Red : Color, Symbol(Color.Red, Decl(instantiatedModule.ts, 45, 29)) +>Color : Color +>Blue : Color +>Red : Color } var m3: typeof M3; ->m3 : typeof M3, Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) ->M3 : typeof M3, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>m3 : typeof M3 +>M3 : typeof M3 var m3 = M3; ->m3 : typeof M3, Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) ->M3 : typeof M3, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) +>m3 : typeof M3 +>M3 : typeof M3 var a3: typeof M3.Color; ->a3 : typeof M3.Color, Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) ->M3.Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->M3 : typeof M3, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) ->Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>a3 : typeof M3.Color +>M3.Color : typeof M3.Color +>M3 : typeof M3 +>Color : typeof M3.Color var a3 = m3.Color; ->a3 : typeof M3.Color, Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) ->m3.Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->m3 : typeof M3, Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) ->Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>a3 : typeof M3.Color +>m3.Color : typeof M3.Color +>m3 : typeof M3 +>Color : typeof M3.Color var a3 = M3.Color; ->a3 : typeof M3.Color, Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) ->M3.Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->M3 : typeof M3, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) ->Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>a3 : typeof M3.Color +>M3.Color : typeof M3.Color +>M3 : typeof M3 +>Color : typeof M3.Color var blue: M3.Color = a3.Blue; ->blue : M3.Color, Symbol(blue, Decl(instantiatedModule.ts, 54, 3)) ->M3 : any, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) ->Color : M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->a3.Blue : M3.Color, Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) ->a3 : typeof M3.Color, Symbol(a3, Decl(instantiatedModule.ts, 51, 3), Decl(instantiatedModule.ts, 52, 3), Decl(instantiatedModule.ts, 53, 3)) ->Blue : M3.Color, Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) +>blue : M3.Color +>M3 : any +>Color : M3.Color +>a3.Blue : M3.Color +>a3 : typeof M3.Color +>Blue : M3.Color var p3: M3.Color; ->p3 : M3.Color, Symbol(p3, Decl(instantiatedModule.ts, 56, 3), Decl(instantiatedModule.ts, 57, 3), Decl(instantiatedModule.ts, 58, 3)) ->M3 : any, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) ->Color : M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) +>p3 : M3.Color +>M3 : any +>Color : M3.Color var p3 = M3.Color.Red; ->p3 : M3.Color, Symbol(p3, Decl(instantiatedModule.ts, 56, 3), Decl(instantiatedModule.ts, 57, 3), Decl(instantiatedModule.ts, 58, 3)) ->M3.Color.Red : M3.Color, Symbol(M3.Color.Red, Decl(instantiatedModule.ts, 45, 29)) ->M3.Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->M3 : typeof M3, Symbol(M3, Decl(instantiatedModule.ts, 42, 24)) ->Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->Red : M3.Color, Symbol(M3.Color.Red, Decl(instantiatedModule.ts, 45, 29)) +>p3 : M3.Color +>M3.Color.Red : M3.Color +>M3.Color : typeof M3.Color +>M3 : typeof M3 +>Color : typeof M3.Color +>Red : M3.Color var p3 = m3.Color.Blue; ->p3 : M3.Color, Symbol(p3, Decl(instantiatedModule.ts, 56, 3), Decl(instantiatedModule.ts, 57, 3), Decl(instantiatedModule.ts, 58, 3)) ->m3.Color.Blue : M3.Color, Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) ->m3.Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->m3 : typeof M3, Symbol(m3, Decl(instantiatedModule.ts, 48, 3), Decl(instantiatedModule.ts, 49, 3)) ->Color : typeof M3.Color, Symbol(M3.Color, Decl(instantiatedModule.ts, 44, 11)) ->Blue : M3.Color, Symbol(M3.Color.Blue, Decl(instantiatedModule.ts, 45, 23)) +>p3 : M3.Color +>m3.Color.Blue : M3.Color +>m3.Color : typeof M3.Color +>m3 : typeof M3 +>Color : typeof M3.Color +>Blue : M3.Color diff --git a/tests/baselines/reference/instantiatedReturnTypeContravariance.symbols b/tests/baselines/reference/instantiatedReturnTypeContravariance.symbols new file mode 100644 index 0000000000000..f64ebfdce2180 --- /dev/null +++ b/tests/baselines/reference/instantiatedReturnTypeContravariance.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/instantiatedReturnTypeContravariance.ts === +interface B { +>B : Symbol(B, Decl(instantiatedReturnTypeContravariance.ts, 0, 0)) +>T : Symbol(T, Decl(instantiatedReturnTypeContravariance.ts, 0, 12)) + +name: string; +>name : Symbol(name, Decl(instantiatedReturnTypeContravariance.ts, 0, 16)) + +x(): T; +>x : Symbol(x, Decl(instantiatedReturnTypeContravariance.ts, 2, 13)) +>T : Symbol(T, Decl(instantiatedReturnTypeContravariance.ts, 0, 12)) + +} + +class c { +>c : Symbol(c, Decl(instantiatedReturnTypeContravariance.ts, 6, 1)) + +foo(): B { +>foo : Symbol(foo, Decl(instantiatedReturnTypeContravariance.ts, 8, 9)) +>B : Symbol(B, Decl(instantiatedReturnTypeContravariance.ts, 0, 0)) + +return null; + +} + +} + +class d extends c { +>d : Symbol(d, Decl(instantiatedReturnTypeContravariance.ts, 16, 1)) +>c : Symbol(c, Decl(instantiatedReturnTypeContravariance.ts, 6, 1)) + +foo(): B { +>foo : Symbol(foo, Decl(instantiatedReturnTypeContravariance.ts, 18, 19)) +>B : Symbol(B, Decl(instantiatedReturnTypeContravariance.ts, 0, 0)) + +return null; + +} + +} + + + diff --git a/tests/baselines/reference/instantiatedReturnTypeContravariance.types b/tests/baselines/reference/instantiatedReturnTypeContravariance.types index 587ed78a76837..1de1b8b7151e7 100644 --- a/tests/baselines/reference/instantiatedReturnTypeContravariance.types +++ b/tests/baselines/reference/instantiatedReturnTypeContravariance.types @@ -1,23 +1,23 @@ === tests/cases/compiler/instantiatedReturnTypeContravariance.ts === interface B { ->B : B, Symbol(B, Decl(instantiatedReturnTypeContravariance.ts, 0, 0)) ->T : T, Symbol(T, Decl(instantiatedReturnTypeContravariance.ts, 0, 12)) +>B : B +>T : T name: string; ->name : string, Symbol(name, Decl(instantiatedReturnTypeContravariance.ts, 0, 16)) +>name : string x(): T; ->x : () => T, Symbol(x, Decl(instantiatedReturnTypeContravariance.ts, 2, 13)) ->T : T, Symbol(T, Decl(instantiatedReturnTypeContravariance.ts, 0, 12)) +>x : () => T +>T : T } class c { ->c : c, Symbol(c, Decl(instantiatedReturnTypeContravariance.ts, 6, 1)) +>c : c foo(): B { ->foo : () => B, Symbol(foo, Decl(instantiatedReturnTypeContravariance.ts, 8, 9)) ->B : B, Symbol(B, Decl(instantiatedReturnTypeContravariance.ts, 0, 0)) +>foo : () => B +>B : B return null; >null : null @@ -27,12 +27,12 @@ return null; } class d extends c { ->d : d, Symbol(d, Decl(instantiatedReturnTypeContravariance.ts, 16, 1)) ->c : c, Symbol(c, Decl(instantiatedReturnTypeContravariance.ts, 6, 1)) +>d : d +>c : c foo(): B { ->foo : () => B, Symbol(foo, Decl(instantiatedReturnTypeContravariance.ts, 18, 19)) ->B : B, Symbol(B, Decl(instantiatedReturnTypeContravariance.ts, 0, 0)) +>foo : () => B +>B : B return null; >null : null diff --git a/tests/baselines/reference/interMixingModulesInterfaces0.symbols b/tests/baselines/reference/interMixingModulesInterfaces0.symbols new file mode 100644 index 0000000000000..6b482053b2e2b --- /dev/null +++ b/tests/baselines/reference/interMixingModulesInterfaces0.symbols @@ -0,0 +1,36 @@ +=== tests/cases/compiler/interMixingModulesInterfaces0.ts === +module A { +>A : Symbol(A, Decl(interMixingModulesInterfaces0.ts, 0, 0)) + + export module B { +>B : Symbol(B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) + + export function createB(): B { +>createB : Symbol(createB, Decl(interMixingModulesInterfaces0.ts, 2, 21)) +>B : Symbol(B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) + + return null; + } + } + + export interface B { +>B : Symbol(B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) + + name: string; +>name : Symbol(name, Decl(interMixingModulesInterfaces0.ts, 8, 24)) + + value: number; +>value : Symbol(value, Decl(interMixingModulesInterfaces0.ts, 9, 21)) + } +} + +var x: A.B = A.B.createB(); +>x : Symbol(x, Decl(interMixingModulesInterfaces0.ts, 14, 3)) +>A : Symbol(A, Decl(interMixingModulesInterfaces0.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>A.B.createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces0.ts, 2, 21)) +>A.B : Symbol(A.B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>A : Symbol(A, Decl(interMixingModulesInterfaces0.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces0.ts, 2, 21)) + diff --git a/tests/baselines/reference/interMixingModulesInterfaces0.types b/tests/baselines/reference/interMixingModulesInterfaces0.types index 6dd46e682644c..bc78303ba74f5 100644 --- a/tests/baselines/reference/interMixingModulesInterfaces0.types +++ b/tests/baselines/reference/interMixingModulesInterfaces0.types @@ -1,13 +1,13 @@ === tests/cases/compiler/interMixingModulesInterfaces0.ts === module A { ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces0.ts, 0, 0)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>B : typeof B export function createB(): B { ->createB : () => B, Symbol(createB, Decl(interMixingModulesInterfaces0.ts, 2, 21)) ->B : B, Symbol(B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>createB : () => B +>B : B return null; >null : null @@ -15,24 +15,24 @@ module A { } export interface B { ->B : B, Symbol(B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>B : B name: string; ->name : string, Symbol(name, Decl(interMixingModulesInterfaces0.ts, 8, 24)) +>name : string value: number; ->value : number, Symbol(value, Decl(interMixingModulesInterfaces0.ts, 9, 21)) +>value : number } } var x: A.B = A.B.createB(); ->x : A.B, Symbol(x, Decl(interMixingModulesInterfaces0.ts, 14, 3)) ->A : any, Symbol(A, Decl(interMixingModulesInterfaces0.ts, 0, 0)) ->B : A.B, Symbol(A.B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) +>x : A.B +>A : any +>B : A.B >A.B.createB() : A.B ->A.B.createB : () => A.B, Symbol(A.B.createB, Decl(interMixingModulesInterfaces0.ts, 2, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces0.ts, 0, 0)) ->B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces0.ts, 0, 10), Decl(interMixingModulesInterfaces0.ts, 6, 5)) ->createB : () => A.B, Symbol(A.B.createB, Decl(interMixingModulesInterfaces0.ts, 2, 21)) +>A.B.createB : () => A.B +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>createB : () => A.B diff --git a/tests/baselines/reference/interMixingModulesInterfaces1.symbols b/tests/baselines/reference/interMixingModulesInterfaces1.symbols new file mode 100644 index 0000000000000..39162cf5a4240 --- /dev/null +++ b/tests/baselines/reference/interMixingModulesInterfaces1.symbols @@ -0,0 +1,36 @@ +=== tests/cases/compiler/interMixingModulesInterfaces1.ts === +module A { +>A : Symbol(A, Decl(interMixingModulesInterfaces1.ts, 0, 0)) + + export interface B { +>B : Symbol(B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) + + name: string; +>name : Symbol(name, Decl(interMixingModulesInterfaces1.ts, 2, 24)) + + value: number; +>value : Symbol(value, Decl(interMixingModulesInterfaces1.ts, 3, 21)) + } + + export module B { +>B : Symbol(B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) + + export function createB(): B { +>createB : Symbol(createB, Decl(interMixingModulesInterfaces1.ts, 7, 21)) +>B : Symbol(B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) + + return null; + } + } +} + +var x: A.B = A.B.createB(); +>x : Symbol(x, Decl(interMixingModulesInterfaces1.ts, 14, 3)) +>A : Symbol(A, Decl(interMixingModulesInterfaces1.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>A.B.createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces1.ts, 7, 21)) +>A.B : Symbol(A.B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>A : Symbol(A, Decl(interMixingModulesInterfaces1.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces1.ts, 7, 21)) + diff --git a/tests/baselines/reference/interMixingModulesInterfaces1.types b/tests/baselines/reference/interMixingModulesInterfaces1.types index 491765bff0475..37401e3a788c7 100644 --- a/tests/baselines/reference/interMixingModulesInterfaces1.types +++ b/tests/baselines/reference/interMixingModulesInterfaces1.types @@ -1,23 +1,23 @@ === tests/cases/compiler/interMixingModulesInterfaces1.ts === module A { ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces1.ts, 0, 0)) +>A : typeof A export interface B { ->B : B, Symbol(B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>B : B name: string; ->name : string, Symbol(name, Decl(interMixingModulesInterfaces1.ts, 2, 24)) +>name : string value: number; ->value : number, Symbol(value, Decl(interMixingModulesInterfaces1.ts, 3, 21)) +>value : number } export module B { ->B : typeof B, Symbol(B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>B : typeof B export function createB(): B { ->createB : () => B, Symbol(createB, Decl(interMixingModulesInterfaces1.ts, 7, 21)) ->B : B, Symbol(B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>createB : () => B +>B : B return null; >null : null @@ -26,13 +26,13 @@ module A { } var x: A.B = A.B.createB(); ->x : A.B, Symbol(x, Decl(interMixingModulesInterfaces1.ts, 14, 3)) ->A : any, Symbol(A, Decl(interMixingModulesInterfaces1.ts, 0, 0)) ->B : A.B, Symbol(A.B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) +>x : A.B +>A : any +>B : A.B >A.B.createB() : A.B ->A.B.createB : () => A.B, Symbol(A.B.createB, Decl(interMixingModulesInterfaces1.ts, 7, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces1.ts, 0, 0)) ->B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces1.ts, 0, 10), Decl(interMixingModulesInterfaces1.ts, 5, 5)) ->createB : () => A.B, Symbol(A.B.createB, Decl(interMixingModulesInterfaces1.ts, 7, 21)) +>A.B.createB : () => A.B +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>createB : () => A.B diff --git a/tests/baselines/reference/interMixingModulesInterfaces2.symbols b/tests/baselines/reference/interMixingModulesInterfaces2.symbols new file mode 100644 index 0000000000000..0362909047abc --- /dev/null +++ b/tests/baselines/reference/interMixingModulesInterfaces2.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/interMixingModulesInterfaces2.ts === +module A { +>A : Symbol(A, Decl(interMixingModulesInterfaces2.ts, 0, 0)) + + export interface B { +>B : Symbol(B, Decl(interMixingModulesInterfaces2.ts, 0, 10)) + + name: string; +>name : Symbol(name, Decl(interMixingModulesInterfaces2.ts, 2, 24)) + + value: number; +>value : Symbol(value, Decl(interMixingModulesInterfaces2.ts, 3, 21)) + } + + module B { +>B : Symbol(B, Decl(interMixingModulesInterfaces2.ts, 0, 10), Decl(interMixingModulesInterfaces2.ts, 5, 5)) + + export function createB(): B { +>createB : Symbol(createB, Decl(interMixingModulesInterfaces2.ts, 7, 14)) +>B : Symbol(B, Decl(interMixingModulesInterfaces2.ts, 0, 10)) + + return null; + } + } +} + +var x: A.B = null; +>x : Symbol(x, Decl(interMixingModulesInterfaces2.ts, 14, 3)) +>A : Symbol(A, Decl(interMixingModulesInterfaces2.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces2.ts, 0, 10)) + diff --git a/tests/baselines/reference/interMixingModulesInterfaces2.types b/tests/baselines/reference/interMixingModulesInterfaces2.types index 4f51e0135babc..6780a34dc7e98 100644 --- a/tests/baselines/reference/interMixingModulesInterfaces2.types +++ b/tests/baselines/reference/interMixingModulesInterfaces2.types @@ -1,23 +1,23 @@ === tests/cases/compiler/interMixingModulesInterfaces2.ts === module A { ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces2.ts, 0, 0)) +>A : typeof A export interface B { ->B : B, Symbol(B, Decl(interMixingModulesInterfaces2.ts, 0, 10)) +>B : B name: string; ->name : string, Symbol(name, Decl(interMixingModulesInterfaces2.ts, 2, 24)) +>name : string value: number; ->value : number, Symbol(value, Decl(interMixingModulesInterfaces2.ts, 3, 21)) +>value : number } module B { ->B : typeof B, Symbol(B, Decl(interMixingModulesInterfaces2.ts, 0, 10), Decl(interMixingModulesInterfaces2.ts, 5, 5)) +>B : typeof B export function createB(): B { ->createB : () => B, Symbol(createB, Decl(interMixingModulesInterfaces2.ts, 7, 14)) ->B : B, Symbol(B, Decl(interMixingModulesInterfaces2.ts, 0, 10)) +>createB : () => B +>B : B return null; >null : null @@ -26,8 +26,8 @@ module A { } var x: A.B = null; ->x : A.B, Symbol(x, Decl(interMixingModulesInterfaces2.ts, 14, 3)) ->A : any, Symbol(A, Decl(interMixingModulesInterfaces2.ts, 0, 0)) ->B : A.B, Symbol(A.B, Decl(interMixingModulesInterfaces2.ts, 0, 10)) +>x : A.B +>A : any +>B : A.B >null : null diff --git a/tests/baselines/reference/interMixingModulesInterfaces3.symbols b/tests/baselines/reference/interMixingModulesInterfaces3.symbols new file mode 100644 index 0000000000000..482cc883930cf --- /dev/null +++ b/tests/baselines/reference/interMixingModulesInterfaces3.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/interMixingModulesInterfaces3.ts === +module A { +>A : Symbol(A, Decl(interMixingModulesInterfaces3.ts, 0, 0)) + + module B { +>B : Symbol(B, Decl(interMixingModulesInterfaces3.ts, 0, 10), Decl(interMixingModulesInterfaces3.ts, 6, 5)) + + export function createB(): B { +>createB : Symbol(createB, Decl(interMixingModulesInterfaces3.ts, 2, 14)) +>B : Symbol(B, Decl(interMixingModulesInterfaces3.ts, 6, 5)) + + return null; + } + } + + export interface B { +>B : Symbol(B, Decl(interMixingModulesInterfaces3.ts, 6, 5)) + + name: string; +>name : Symbol(name, Decl(interMixingModulesInterfaces3.ts, 8, 24)) + + value: number; +>value : Symbol(value, Decl(interMixingModulesInterfaces3.ts, 9, 21)) + } +} + +var x: A.B = null; +>x : Symbol(x, Decl(interMixingModulesInterfaces3.ts, 14, 3)) +>A : Symbol(A, Decl(interMixingModulesInterfaces3.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces3.ts, 6, 5)) + diff --git a/tests/baselines/reference/interMixingModulesInterfaces3.types b/tests/baselines/reference/interMixingModulesInterfaces3.types index ec2c16c7d66aa..416ac21522712 100644 --- a/tests/baselines/reference/interMixingModulesInterfaces3.types +++ b/tests/baselines/reference/interMixingModulesInterfaces3.types @@ -1,13 +1,13 @@ === tests/cases/compiler/interMixingModulesInterfaces3.ts === module A { ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces3.ts, 0, 0)) +>A : typeof A module B { ->B : typeof B, Symbol(B, Decl(interMixingModulesInterfaces3.ts, 0, 10), Decl(interMixingModulesInterfaces3.ts, 6, 5)) +>B : typeof B export function createB(): B { ->createB : () => B, Symbol(createB, Decl(interMixingModulesInterfaces3.ts, 2, 14)) ->B : B, Symbol(B, Decl(interMixingModulesInterfaces3.ts, 6, 5)) +>createB : () => B +>B : B return null; >null : null @@ -15,19 +15,19 @@ module A { } export interface B { ->B : B, Symbol(B, Decl(interMixingModulesInterfaces3.ts, 6, 5)) +>B : B name: string; ->name : string, Symbol(name, Decl(interMixingModulesInterfaces3.ts, 8, 24)) +>name : string value: number; ->value : number, Symbol(value, Decl(interMixingModulesInterfaces3.ts, 9, 21)) +>value : number } } var x: A.B = null; ->x : A.B, Symbol(x, Decl(interMixingModulesInterfaces3.ts, 14, 3)) ->A : any, Symbol(A, Decl(interMixingModulesInterfaces3.ts, 0, 0)) ->B : A.B, Symbol(A.B, Decl(interMixingModulesInterfaces3.ts, 6, 5)) +>x : A.B +>A : any +>B : A.B >null : null diff --git a/tests/baselines/reference/interMixingModulesInterfaces4.symbols b/tests/baselines/reference/interMixingModulesInterfaces4.symbols new file mode 100644 index 0000000000000..498b34c721fb0 --- /dev/null +++ b/tests/baselines/reference/interMixingModulesInterfaces4.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/interMixingModulesInterfaces4.ts === +module A { +>A : Symbol(A, Decl(interMixingModulesInterfaces4.ts, 0, 0)) + + export module B { +>B : Symbol(B, Decl(interMixingModulesInterfaces4.ts, 0, 10)) + + export function createB(): number { +>createB : Symbol(createB, Decl(interMixingModulesInterfaces4.ts, 2, 21)) + + return null; + } + } + + interface B { +>B : Symbol(B, Decl(interMixingModulesInterfaces4.ts, 0, 10), Decl(interMixingModulesInterfaces4.ts, 6, 5)) + + name: string; +>name : Symbol(name, Decl(interMixingModulesInterfaces4.ts, 8, 17)) + + value: number; +>value : Symbol(value, Decl(interMixingModulesInterfaces4.ts, 9, 21)) + } +} + +var x : number = A.B.createB(); +>x : Symbol(x, Decl(interMixingModulesInterfaces4.ts, 14, 3)) +>A.B.createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces4.ts, 2, 21)) +>A.B : Symbol(A.B, Decl(interMixingModulesInterfaces4.ts, 0, 10)) +>A : Symbol(A, Decl(interMixingModulesInterfaces4.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces4.ts, 0, 10)) +>createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces4.ts, 2, 21)) + diff --git a/tests/baselines/reference/interMixingModulesInterfaces4.types b/tests/baselines/reference/interMixingModulesInterfaces4.types index e7e1a9a2facd2..456f7fc220244 100644 --- a/tests/baselines/reference/interMixingModulesInterfaces4.types +++ b/tests/baselines/reference/interMixingModulesInterfaces4.types @@ -1,12 +1,12 @@ === tests/cases/compiler/interMixingModulesInterfaces4.ts === module A { ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces4.ts, 0, 0)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(interMixingModulesInterfaces4.ts, 0, 10)) +>B : typeof B export function createB(): number { ->createB : () => number, Symbol(createB, Decl(interMixingModulesInterfaces4.ts, 2, 21)) +>createB : () => number return null; >null : null @@ -14,22 +14,22 @@ module A { } interface B { ->B : B, Symbol(B, Decl(interMixingModulesInterfaces4.ts, 0, 10), Decl(interMixingModulesInterfaces4.ts, 6, 5)) +>B : B name: string; ->name : string, Symbol(name, Decl(interMixingModulesInterfaces4.ts, 8, 17)) +>name : string value: number; ->value : number, Symbol(value, Decl(interMixingModulesInterfaces4.ts, 9, 21)) +>value : number } } var x : number = A.B.createB(); ->x : number, Symbol(x, Decl(interMixingModulesInterfaces4.ts, 14, 3)) +>x : number >A.B.createB() : number ->A.B.createB : () => number, Symbol(A.B.createB, Decl(interMixingModulesInterfaces4.ts, 2, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces4.ts, 0, 10)) ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces4.ts, 0, 0)) ->B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces4.ts, 0, 10)) ->createB : () => number, Symbol(A.B.createB, Decl(interMixingModulesInterfaces4.ts, 2, 21)) +>A.B.createB : () => number +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>createB : () => number diff --git a/tests/baselines/reference/interMixingModulesInterfaces5.symbols b/tests/baselines/reference/interMixingModulesInterfaces5.symbols new file mode 100644 index 0000000000000..7f45a62c858b2 --- /dev/null +++ b/tests/baselines/reference/interMixingModulesInterfaces5.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/interMixingModulesInterfaces5.ts === +module A { +>A : Symbol(A, Decl(interMixingModulesInterfaces5.ts, 0, 0)) + + interface B { +>B : Symbol(B, Decl(interMixingModulesInterfaces5.ts, 0, 10), Decl(interMixingModulesInterfaces5.ts, 5, 5)) + + name: string; +>name : Symbol(name, Decl(interMixingModulesInterfaces5.ts, 2, 17)) + + value: number; +>value : Symbol(value, Decl(interMixingModulesInterfaces5.ts, 3, 21)) + } + + export module B { +>B : Symbol(B, Decl(interMixingModulesInterfaces5.ts, 5, 5)) + + export function createB(): number { +>createB : Symbol(createB, Decl(interMixingModulesInterfaces5.ts, 7, 21)) + + return null; + } + } +} + +var x: number = A.B.createB(); +>x : Symbol(x, Decl(interMixingModulesInterfaces5.ts, 14, 3)) +>A.B.createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces5.ts, 7, 21)) +>A.B : Symbol(A.B, Decl(interMixingModulesInterfaces5.ts, 5, 5)) +>A : Symbol(A, Decl(interMixingModulesInterfaces5.ts, 0, 0)) +>B : Symbol(A.B, Decl(interMixingModulesInterfaces5.ts, 5, 5)) +>createB : Symbol(A.B.createB, Decl(interMixingModulesInterfaces5.ts, 7, 21)) + diff --git a/tests/baselines/reference/interMixingModulesInterfaces5.types b/tests/baselines/reference/interMixingModulesInterfaces5.types index 00206b1684dd5..977ecc3966829 100644 --- a/tests/baselines/reference/interMixingModulesInterfaces5.types +++ b/tests/baselines/reference/interMixingModulesInterfaces5.types @@ -1,22 +1,22 @@ === tests/cases/compiler/interMixingModulesInterfaces5.ts === module A { ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces5.ts, 0, 0)) +>A : typeof A interface B { ->B : B, Symbol(B, Decl(interMixingModulesInterfaces5.ts, 0, 10), Decl(interMixingModulesInterfaces5.ts, 5, 5)) +>B : B name: string; ->name : string, Symbol(name, Decl(interMixingModulesInterfaces5.ts, 2, 17)) +>name : string value: number; ->value : number, Symbol(value, Decl(interMixingModulesInterfaces5.ts, 3, 21)) +>value : number } export module B { ->B : typeof B, Symbol(B, Decl(interMixingModulesInterfaces5.ts, 5, 5)) +>B : typeof B export function createB(): number { ->createB : () => number, Symbol(createB, Decl(interMixingModulesInterfaces5.ts, 7, 21)) +>createB : () => number return null; >null : null @@ -25,11 +25,11 @@ module A { } var x: number = A.B.createB(); ->x : number, Symbol(x, Decl(interMixingModulesInterfaces5.ts, 14, 3)) +>x : number >A.B.createB() : number ->A.B.createB : () => number, Symbol(A.B.createB, Decl(interMixingModulesInterfaces5.ts, 7, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces5.ts, 5, 5)) ->A : typeof A, Symbol(A, Decl(interMixingModulesInterfaces5.ts, 0, 0)) ->B : typeof A.B, Symbol(A.B, Decl(interMixingModulesInterfaces5.ts, 5, 5)) ->createB : () => number, Symbol(A.B.createB, Decl(interMixingModulesInterfaces5.ts, 7, 21)) +>A.B.createB : () => number +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>createB : () => number diff --git a/tests/baselines/reference/interface0.symbols b/tests/baselines/reference/interface0.symbols new file mode 100644 index 0000000000000..25e12370916df --- /dev/null +++ b/tests/baselines/reference/interface0.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/interface0.ts === +interface Generic { +>Generic : Symbol(Generic, Decl(interface0.ts, 0, 0)) +>T : Symbol(T, Decl(interface0.ts, 0, 18)) + + x: T; +>x : Symbol(x, Decl(interface0.ts, 0, 22)) +>T : Symbol(T, Decl(interface0.ts, 0, 18)) +} + +var y: Generic = { x: 3 }; +>y : Symbol(y, Decl(interface0.ts, 4, 3)) +>Generic : Symbol(Generic, Decl(interface0.ts, 0, 0)) +>x : Symbol(x, Decl(interface0.ts, 4, 26)) + diff --git a/tests/baselines/reference/interface0.types b/tests/baselines/reference/interface0.types index daf40fb72522f..8fd04eea83cd0 100644 --- a/tests/baselines/reference/interface0.types +++ b/tests/baselines/reference/interface0.types @@ -1,17 +1,17 @@ === tests/cases/compiler/interface0.ts === interface Generic { ->Generic : Generic, Symbol(Generic, Decl(interface0.ts, 0, 0)) ->T : T, Symbol(T, Decl(interface0.ts, 0, 18)) +>Generic : Generic +>T : T x: T; ->x : T, Symbol(x, Decl(interface0.ts, 0, 22)) ->T : T, Symbol(T, Decl(interface0.ts, 0, 18)) +>x : T +>T : T } var y: Generic = { x: 3 }; ->y : Generic, Symbol(y, Decl(interface0.ts, 4, 3)) ->Generic : Generic, Symbol(Generic, Decl(interface0.ts, 0, 0)) +>y : Generic +>Generic : Generic >{ x: 3 } : { x: number; } ->x : number, Symbol(x, Decl(interface0.ts, 4, 26)) +>x : number >3 : number diff --git a/tests/baselines/reference/interfaceContextualType.symbols b/tests/baselines/reference/interfaceContextualType.symbols new file mode 100644 index 0000000000000..3483188043184 --- /dev/null +++ b/tests/baselines/reference/interfaceContextualType.symbols @@ -0,0 +1,55 @@ +=== tests/cases/compiler/interfaceContextualType.ts === +export interface IOptions { +>IOptions : Symbol(IOptions, Decl(interfaceContextualType.ts, 0, 0)) + + italic?: boolean; +>italic : Symbol(italic, Decl(interfaceContextualType.ts, 0, 27)) + + bold?: boolean; +>bold : Symbol(bold, Decl(interfaceContextualType.ts, 1, 21)) +} +export interface IMap { +>IMap : Symbol(IMap, Decl(interfaceContextualType.ts, 3, 1)) + + [s: string]: IOptions; +>s : Symbol(s, Decl(interfaceContextualType.ts, 5, 5)) +>IOptions : Symbol(IOptions, Decl(interfaceContextualType.ts, 0, 0)) +} + +class Bug { +>Bug : Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) + + public values: IMap; +>values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>IMap : Symbol(IMap, Decl(interfaceContextualType.ts, 3, 1)) + + ok() { +>ok : Symbol(ok, Decl(interfaceContextualType.ts, 9, 24)) + + this.values = {}; +>this.values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>this : Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) +>values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) + + this.values['comments'] = { italic: true }; +>this.values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>this : Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) +>values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>italic : Symbol(italic, Decl(interfaceContextualType.ts, 12, 35)) + } + shouldBeOK() { +>shouldBeOK : Symbol(shouldBeOK, Decl(interfaceContextualType.ts, 13, 5)) + + this.values = { +>this.values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>this : Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) +>values : Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) + + comments: { italic: true } +>comments : Symbol(comments, Decl(interfaceContextualType.ts, 15, 23)) +>italic : Symbol(italic, Decl(interfaceContextualType.ts, 16, 23)) + + }; + } +} + diff --git a/tests/baselines/reference/interfaceContextualType.types b/tests/baselines/reference/interfaceContextualType.types index 3a21933e9ed3f..4b932a7153884 100644 --- a/tests/baselines/reference/interfaceContextualType.types +++ b/tests/baselines/reference/interfaceContextualType.types @@ -1,63 +1,63 @@ === tests/cases/compiler/interfaceContextualType.ts === export interface IOptions { ->IOptions : IOptions, Symbol(IOptions, Decl(interfaceContextualType.ts, 0, 0)) +>IOptions : IOptions italic?: boolean; ->italic : boolean, Symbol(italic, Decl(interfaceContextualType.ts, 0, 27)) +>italic : boolean bold?: boolean; ->bold : boolean, Symbol(bold, Decl(interfaceContextualType.ts, 1, 21)) +>bold : boolean } export interface IMap { ->IMap : IMap, Symbol(IMap, Decl(interfaceContextualType.ts, 3, 1)) +>IMap : IMap [s: string]: IOptions; ->s : string, Symbol(s, Decl(interfaceContextualType.ts, 5, 5)) ->IOptions : IOptions, Symbol(IOptions, Decl(interfaceContextualType.ts, 0, 0)) +>s : string +>IOptions : IOptions } class Bug { ->Bug : Bug, Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) +>Bug : Bug public values: IMap; ->values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) ->IMap : IMap, Symbol(IMap, Decl(interfaceContextualType.ts, 3, 1)) +>values : IMap +>IMap : IMap ok() { ->ok : () => void, Symbol(ok, Decl(interfaceContextualType.ts, 9, 24)) +>ok : () => void this.values = {}; >this.values = {} : { [x: string]: undefined; } ->this.values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) ->this : Bug, Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) ->values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>this.values : IMap +>this : Bug +>values : IMap >{} : { [x: string]: undefined; } this.values['comments'] = { italic: true }; >this.values['comments'] = { italic: true } : { italic: boolean; } >this.values['comments'] : IOptions ->this.values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) ->this : Bug, Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) ->values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>this.values : IMap +>this : Bug +>values : IMap >'comments' : string >{ italic: true } : { italic: boolean; } ->italic : boolean, Symbol(italic, Decl(interfaceContextualType.ts, 12, 35)) +>italic : boolean >true : boolean } shouldBeOK() { ->shouldBeOK : () => void, Symbol(shouldBeOK, Decl(interfaceContextualType.ts, 13, 5)) +>shouldBeOK : () => void this.values = { >this.values = { comments: { italic: true } } : { [x: string]: { italic: boolean; }; comments: { italic: boolean; }; } ->this.values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) ->this : Bug, Symbol(Bug, Decl(interfaceContextualType.ts, 6, 1)) ->values : IMap, Symbol(values, Decl(interfaceContextualType.ts, 8, 11)) +>this.values : IMap +>this : Bug +>values : IMap >{ comments: { italic: true } } : { [x: string]: { italic: boolean; }; comments: { italic: boolean; }; } comments: { italic: true } ->comments : { italic: boolean; }, Symbol(comments, Decl(interfaceContextualType.ts, 15, 23)) +>comments : { italic: boolean; } >{ italic: true } : { italic: boolean; } ->italic : boolean, Symbol(italic, Decl(interfaceContextualType.ts, 16, 23)) +>italic : boolean >true : boolean }; diff --git a/tests/baselines/reference/interfaceDeclaration5.symbols b/tests/baselines/reference/interfaceDeclaration5.symbols new file mode 100644 index 0000000000000..3478a56693a6c --- /dev/null +++ b/tests/baselines/reference/interfaceDeclaration5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/interfaceDeclaration5.ts === +export interface I1 { item:string; } +>I1 : Symbol(I1, Decl(interfaceDeclaration5.ts, 0, 0)) +>item : Symbol(item, Decl(interfaceDeclaration5.ts, 0, 21)) + +export class C1 { } +>C1 : Symbol(C1, Decl(interfaceDeclaration5.ts, 0, 36)) + diff --git a/tests/baselines/reference/interfaceDeclaration5.types b/tests/baselines/reference/interfaceDeclaration5.types index c7ea1db51e458..0cad7652a289f 100644 --- a/tests/baselines/reference/interfaceDeclaration5.types +++ b/tests/baselines/reference/interfaceDeclaration5.types @@ -1,8 +1,8 @@ === tests/cases/compiler/interfaceDeclaration5.ts === export interface I1 { item:string; } ->I1 : I1, Symbol(I1, Decl(interfaceDeclaration5.ts, 0, 0)) ->item : string, Symbol(item, Decl(interfaceDeclaration5.ts, 0, 21)) +>I1 : I1 +>item : string export class C1 { } ->C1 : C1, Symbol(C1, Decl(interfaceDeclaration5.ts, 0, 36)) +>C1 : C1 diff --git a/tests/baselines/reference/interfaceExtendsClass1.symbols b/tests/baselines/reference/interfaceExtendsClass1.symbols new file mode 100644 index 0000000000000..6caa2013a25da --- /dev/null +++ b/tests/baselines/reference/interfaceExtendsClass1.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/interfaceExtendsClass1.ts === +class Control { +>Control : Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) + + private state: any; +>state : Symbol(state, Decl(interfaceExtendsClass1.ts, 0, 15)) +} +interface SelectableControl extends Control { +>SelectableControl : Symbol(SelectableControl, Decl(interfaceExtendsClass1.ts, 2, 1)) +>Control : Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) + + select(): void; +>select : Symbol(select, Decl(interfaceExtendsClass1.ts, 3, 45)) +} +class Button extends Control { +>Button : Symbol(Button, Decl(interfaceExtendsClass1.ts, 5, 1)) +>Control : Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) + + select() { } +>select : Symbol(select, Decl(interfaceExtendsClass1.ts, 6, 30)) +} +class TextBox extends Control { +>TextBox : Symbol(TextBox, Decl(interfaceExtendsClass1.ts, 8, 1)) +>Control : Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) + + select() { } +>select : Symbol(select, Decl(interfaceExtendsClass1.ts, 9, 31)) +} +class Image extends Control { +>Image : Symbol(Image, Decl(interfaceExtendsClass1.ts, 11, 1)) +>Control : Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) +} +class Location { +>Location : Symbol(Location, Decl(interfaceExtendsClass1.ts, 13, 1)) + + select() { } +>select : Symbol(select, Decl(interfaceExtendsClass1.ts, 14, 16)) +} + diff --git a/tests/baselines/reference/interfaceExtendsClass1.types b/tests/baselines/reference/interfaceExtendsClass1.types index e4cd35265963d..c2370f7fe7fa0 100644 --- a/tests/baselines/reference/interfaceExtendsClass1.types +++ b/tests/baselines/reference/interfaceExtendsClass1.types @@ -1,39 +1,39 @@ === tests/cases/compiler/interfaceExtendsClass1.ts === class Control { ->Control : Control, Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) +>Control : Control private state: any; ->state : any, Symbol(state, Decl(interfaceExtendsClass1.ts, 0, 15)) +>state : any } interface SelectableControl extends Control { ->SelectableControl : SelectableControl, Symbol(SelectableControl, Decl(interfaceExtendsClass1.ts, 2, 1)) ->Control : Control, Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) +>SelectableControl : SelectableControl +>Control : Control select(): void; ->select : () => void, Symbol(select, Decl(interfaceExtendsClass1.ts, 3, 45)) +>select : () => void } class Button extends Control { ->Button : Button, Symbol(Button, Decl(interfaceExtendsClass1.ts, 5, 1)) ->Control : Control, Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) +>Button : Button +>Control : Control select() { } ->select : () => void, Symbol(select, Decl(interfaceExtendsClass1.ts, 6, 30)) +>select : () => void } class TextBox extends Control { ->TextBox : TextBox, Symbol(TextBox, Decl(interfaceExtendsClass1.ts, 8, 1)) ->Control : Control, Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) +>TextBox : TextBox +>Control : Control select() { } ->select : () => void, Symbol(select, Decl(interfaceExtendsClass1.ts, 9, 31)) +>select : () => void } class Image extends Control { ->Image : Image, Symbol(Image, Decl(interfaceExtendsClass1.ts, 11, 1)) ->Control : Control, Symbol(Control, Decl(interfaceExtendsClass1.ts, 0, 0)) +>Image : Image +>Control : Control } class Location { ->Location : Location, Symbol(Location, Decl(interfaceExtendsClass1.ts, 13, 1)) +>Location : Location select() { } ->select : () => void, Symbol(select, Decl(interfaceExtendsClass1.ts, 14, 16)) +>select : () => void } diff --git a/tests/baselines/reference/interfaceInReopenedModule.symbols b/tests/baselines/reference/interfaceInReopenedModule.symbols new file mode 100644 index 0000000000000..3cde824b451e3 --- /dev/null +++ b/tests/baselines/reference/interfaceInReopenedModule.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/interfaceInReopenedModule.ts === +module m { +>m : Symbol(m, Decl(interfaceInReopenedModule.ts, 0, 0), Decl(interfaceInReopenedModule.ts, 1, 1)) +} + +// In second instance of same module, exported interface is not visible +module m { +>m : Symbol(m, Decl(interfaceInReopenedModule.ts, 0, 0), Decl(interfaceInReopenedModule.ts, 1, 1)) + + interface f {} +>f : Symbol(f, Decl(interfaceInReopenedModule.ts, 4, 10)) + + export class n { +>n : Symbol(n, Decl(interfaceInReopenedModule.ts, 5, 18)) + + private n: f; +>n : Symbol(n, Decl(interfaceInReopenedModule.ts, 6, 20)) +>f : Symbol(f, Decl(interfaceInReopenedModule.ts, 4, 10)) + } +} + diff --git a/tests/baselines/reference/interfaceInReopenedModule.types b/tests/baselines/reference/interfaceInReopenedModule.types index 9b9341fa96fa7..e0ed40b186e06 100644 --- a/tests/baselines/reference/interfaceInReopenedModule.types +++ b/tests/baselines/reference/interfaceInReopenedModule.types @@ -1,21 +1,21 @@ === tests/cases/compiler/interfaceInReopenedModule.ts === module m { ->m : typeof m, Symbol(m, Decl(interfaceInReopenedModule.ts, 0, 0), Decl(interfaceInReopenedModule.ts, 1, 1)) +>m : typeof m } // In second instance of same module, exported interface is not visible module m { ->m : typeof m, Symbol(m, Decl(interfaceInReopenedModule.ts, 0, 0), Decl(interfaceInReopenedModule.ts, 1, 1)) +>m : typeof m interface f {} ->f : f, Symbol(f, Decl(interfaceInReopenedModule.ts, 4, 10)) +>f : f export class n { ->n : n, Symbol(n, Decl(interfaceInReopenedModule.ts, 5, 18)) +>n : n private n: f; ->n : f, Symbol(n, Decl(interfaceInReopenedModule.ts, 6, 20)) ->f : f, Symbol(f, Decl(interfaceInReopenedModule.ts, 4, 10)) +>n : f +>f : f } } diff --git a/tests/baselines/reference/interfaceInheritance2.symbols b/tests/baselines/reference/interfaceInheritance2.symbols new file mode 100644 index 0000000000000..4e72717f6d80f --- /dev/null +++ b/tests/baselines/reference/interfaceInheritance2.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/interfaceInheritance2.ts === +interface I6 { +>I6 : Symbol(I6, Decl(interfaceInheritance2.ts, 0, 0)) + + ():void; +} + +interface I7 extends I6 { } +>I7 : Symbol(I7, Decl(interfaceInheritance2.ts, 2, 1)) +>I6 : Symbol(I6, Decl(interfaceInheritance2.ts, 0, 0)) + +var v1:I7; +>v1 : Symbol(v1, Decl(interfaceInheritance2.ts, 6, 3)) +>I7 : Symbol(I7, Decl(interfaceInheritance2.ts, 2, 1)) + +v1(); +>v1 : Symbol(v1, Decl(interfaceInheritance2.ts, 6, 3)) + diff --git a/tests/baselines/reference/interfaceInheritance2.types b/tests/baselines/reference/interfaceInheritance2.types index 88ba1592669da..ac89931df6189 100644 --- a/tests/baselines/reference/interfaceInheritance2.types +++ b/tests/baselines/reference/interfaceInheritance2.types @@ -1,19 +1,19 @@ === tests/cases/compiler/interfaceInheritance2.ts === interface I6 { ->I6 : I6, Symbol(I6, Decl(interfaceInheritance2.ts, 0, 0)) +>I6 : I6 ():void; } interface I7 extends I6 { } ->I7 : I7, Symbol(I7, Decl(interfaceInheritance2.ts, 2, 1)) ->I6 : I6, Symbol(I6, Decl(interfaceInheritance2.ts, 0, 0)) +>I7 : I7 +>I6 : I6 var v1:I7; ->v1 : I7, Symbol(v1, Decl(interfaceInheritance2.ts, 6, 3)) ->I7 : I7, Symbol(I7, Decl(interfaceInheritance2.ts, 2, 1)) +>v1 : I7 +>I7 : I7 v1(); >v1() : void ->v1 : I7, Symbol(v1, Decl(interfaceInheritance2.ts, 6, 3)) +>v1 : I7 diff --git a/tests/baselines/reference/interfaceOnly.symbols b/tests/baselines/reference/interfaceOnly.symbols new file mode 100644 index 0000000000000..70473ff313980 --- /dev/null +++ b/tests/baselines/reference/interfaceOnly.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/interfaceOnly.ts === +interface foo { +>foo : Symbol(foo, Decl(interfaceOnly.ts, 0, 0)) + + foo(); +>foo : Symbol(foo, Decl(interfaceOnly.ts, 0, 15)) + + f2 (f: ()=> void); +>f2 : Symbol(f2, Decl(interfaceOnly.ts, 1, 10)) +>f : Symbol(f, Decl(interfaceOnly.ts, 2, 8)) +} diff --git a/tests/baselines/reference/interfaceOnly.types b/tests/baselines/reference/interfaceOnly.types index 0288294745df3..0dc38bea01abe 100644 --- a/tests/baselines/reference/interfaceOnly.types +++ b/tests/baselines/reference/interfaceOnly.types @@ -1,11 +1,11 @@ === tests/cases/compiler/interfaceOnly.ts === interface foo { ->foo : foo, Symbol(foo, Decl(interfaceOnly.ts, 0, 0)) +>foo : foo foo(); ->foo : () => any, Symbol(foo, Decl(interfaceOnly.ts, 0, 15)) +>foo : () => any f2 (f: ()=> void); ->f2 : (f: () => void) => any, Symbol(f2, Decl(interfaceOnly.ts, 1, 10)) ->f : () => void, Symbol(f, Decl(interfaceOnly.ts, 2, 8)) +>f2 : (f: () => void) => any +>f : () => void } diff --git a/tests/baselines/reference/interfacePropertiesWithSameName1.symbols b/tests/baselines/reference/interfacePropertiesWithSameName1.symbols new file mode 100644 index 0000000000000..aa002fa4af237 --- /dev/null +++ b/tests/baselines/reference/interfacePropertiesWithSameName1.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/interfacePropertiesWithSameName1.ts === +interface Mover { +>Mover : Symbol(Mover, Decl(interfacePropertiesWithSameName1.ts, 0, 0)) + + move(): void; +>move : Symbol(move, Decl(interfacePropertiesWithSameName1.ts, 0, 17)) + + getStatus(): { speed: number; }; +>getStatus : Symbol(getStatus, Decl(interfacePropertiesWithSameName1.ts, 1, 17)) +>speed : Symbol(speed, Decl(interfacePropertiesWithSameName1.ts, 2, 18)) +} +interface Shaker { +>Shaker : Symbol(Shaker, Decl(interfacePropertiesWithSameName1.ts, 3, 1)) + + shake(): void; +>shake : Symbol(shake, Decl(interfacePropertiesWithSameName1.ts, 4, 18)) + + getStatus(): { frequency: number; }; +>getStatus : Symbol(getStatus, Decl(interfacePropertiesWithSameName1.ts, 5, 18)) +>frequency : Symbol(frequency, Decl(interfacePropertiesWithSameName1.ts, 6, 18)) +} + +interface MoverShaker extends Mover, Shaker { +>MoverShaker : Symbol(MoverShaker, Decl(interfacePropertiesWithSameName1.ts, 7, 1)) +>Mover : Symbol(Mover, Decl(interfacePropertiesWithSameName1.ts, 0, 0)) +>Shaker : Symbol(Shaker, Decl(interfacePropertiesWithSameName1.ts, 3, 1)) + + getStatus(): { speed: number; frequency: number; }; +>getStatus : Symbol(getStatus, Decl(interfacePropertiesWithSameName1.ts, 9, 45)) +>speed : Symbol(speed, Decl(interfacePropertiesWithSameName1.ts, 10, 18)) +>frequency : Symbol(frequency, Decl(interfacePropertiesWithSameName1.ts, 10, 33)) +} + diff --git a/tests/baselines/reference/interfacePropertiesWithSameName1.types b/tests/baselines/reference/interfacePropertiesWithSameName1.types index 75d0f62b2ef1a..f034cd982555f 100644 --- a/tests/baselines/reference/interfacePropertiesWithSameName1.types +++ b/tests/baselines/reference/interfacePropertiesWithSameName1.types @@ -1,33 +1,33 @@ === tests/cases/compiler/interfacePropertiesWithSameName1.ts === interface Mover { ->Mover : Mover, Symbol(Mover, Decl(interfacePropertiesWithSameName1.ts, 0, 0)) +>Mover : Mover move(): void; ->move : () => void, Symbol(move, Decl(interfacePropertiesWithSameName1.ts, 0, 17)) +>move : () => void getStatus(): { speed: number; }; ->getStatus : () => { speed: number; }, Symbol(getStatus, Decl(interfacePropertiesWithSameName1.ts, 1, 17)) ->speed : number, Symbol(speed, Decl(interfacePropertiesWithSameName1.ts, 2, 18)) +>getStatus : () => { speed: number; } +>speed : number } interface Shaker { ->Shaker : Shaker, Symbol(Shaker, Decl(interfacePropertiesWithSameName1.ts, 3, 1)) +>Shaker : Shaker shake(): void; ->shake : () => void, Symbol(shake, Decl(interfacePropertiesWithSameName1.ts, 4, 18)) +>shake : () => void getStatus(): { frequency: number; }; ->getStatus : () => { frequency: number; }, Symbol(getStatus, Decl(interfacePropertiesWithSameName1.ts, 5, 18)) ->frequency : number, Symbol(frequency, Decl(interfacePropertiesWithSameName1.ts, 6, 18)) +>getStatus : () => { frequency: number; } +>frequency : number } interface MoverShaker extends Mover, Shaker { ->MoverShaker : MoverShaker, Symbol(MoverShaker, Decl(interfacePropertiesWithSameName1.ts, 7, 1)) ->Mover : Mover, Symbol(Mover, Decl(interfacePropertiesWithSameName1.ts, 0, 0)) ->Shaker : Shaker, Symbol(Shaker, Decl(interfacePropertiesWithSameName1.ts, 3, 1)) +>MoverShaker : MoverShaker +>Mover : Mover +>Shaker : Shaker getStatus(): { speed: number; frequency: number; }; ->getStatus : () => { speed: number; frequency: number; }, Symbol(getStatus, Decl(interfacePropertiesWithSameName1.ts, 9, 45)) ->speed : number, Symbol(speed, Decl(interfacePropertiesWithSameName1.ts, 10, 18)) ->frequency : number, Symbol(frequency, Decl(interfacePropertiesWithSameName1.ts, 10, 33)) +>getStatus : () => { speed: number; frequency: number; } +>speed : number +>frequency : number } diff --git a/tests/baselines/reference/interfaceSubtyping.symbols b/tests/baselines/reference/interfaceSubtyping.symbols new file mode 100644 index 0000000000000..6f77110885f6c --- /dev/null +++ b/tests/baselines/reference/interfaceSubtyping.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/interfaceSubtyping.ts === +interface iface { +>iface : Symbol(iface, Decl(interfaceSubtyping.ts, 0, 0)) + + foo(): void; +>foo : Symbol(foo, Decl(interfaceSubtyping.ts, 0, 17)) +} +class Camera implements iface{ +>Camera : Symbol(Camera, Decl(interfaceSubtyping.ts, 2, 1)) +>iface : Symbol(iface, Decl(interfaceSubtyping.ts, 0, 0)) + + constructor (public str: string) { +>str : Symbol(str, Decl(interfaceSubtyping.ts, 4, 17)) + } + foo() { return "s"; } +>foo : Symbol(foo, Decl(interfaceSubtyping.ts, 5, 5)) +} + diff --git a/tests/baselines/reference/interfaceSubtyping.types b/tests/baselines/reference/interfaceSubtyping.types index adb64e85eaac1..26a900a56b27a 100644 --- a/tests/baselines/reference/interfaceSubtyping.types +++ b/tests/baselines/reference/interfaceSubtyping.types @@ -1,19 +1,19 @@ === tests/cases/compiler/interfaceSubtyping.ts === interface iface { ->iface : iface, Symbol(iface, Decl(interfaceSubtyping.ts, 0, 0)) +>iface : iface foo(): void; ->foo : () => void, Symbol(foo, Decl(interfaceSubtyping.ts, 0, 17)) +>foo : () => void } class Camera implements iface{ ->Camera : Camera, Symbol(Camera, Decl(interfaceSubtyping.ts, 2, 1)) ->iface : iface, Symbol(iface, Decl(interfaceSubtyping.ts, 0, 0)) +>Camera : Camera +>iface : iface constructor (public str: string) { ->str : string, Symbol(str, Decl(interfaceSubtyping.ts, 4, 17)) +>str : string } foo() { return "s"; } ->foo : () => string, Symbol(foo, Decl(interfaceSubtyping.ts, 5, 5)) +>foo : () => string >"s" : string } diff --git a/tests/baselines/reference/interfaceThatHidesBaseProperty.symbols b/tests/baselines/reference/interfaceThatHidesBaseProperty.symbols new file mode 100644 index 0000000000000..2705aef2b27ef --- /dev/null +++ b/tests/baselines/reference/interfaceThatHidesBaseProperty.symbols @@ -0,0 +1,22 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatHidesBaseProperty.ts === +interface Base { +>Base : Symbol(Base, Decl(interfaceThatHidesBaseProperty.ts, 0, 0)) + + x: { a: number }; +>x : Symbol(x, Decl(interfaceThatHidesBaseProperty.ts, 0, 16)) +>a : Symbol(a, Decl(interfaceThatHidesBaseProperty.ts, 1, 8)) +} + +interface Derived extends Base { +>Derived : Symbol(Derived, Decl(interfaceThatHidesBaseProperty.ts, 2, 1)) +>Base : Symbol(Base, Decl(interfaceThatHidesBaseProperty.ts, 0, 0)) + + x: { +>x : Symbol(x, Decl(interfaceThatHidesBaseProperty.ts, 4, 32)) + + a: number; b: number; +>a : Symbol(a, Decl(interfaceThatHidesBaseProperty.ts, 5, 8)) +>b : Symbol(b, Decl(interfaceThatHidesBaseProperty.ts, 6, 18)) + + }; +} diff --git a/tests/baselines/reference/interfaceThatHidesBaseProperty.types b/tests/baselines/reference/interfaceThatHidesBaseProperty.types index d10f098d50d30..f27ec5abfc822 100644 --- a/tests/baselines/reference/interfaceThatHidesBaseProperty.types +++ b/tests/baselines/reference/interfaceThatHidesBaseProperty.types @@ -1,22 +1,22 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceThatHidesBaseProperty.ts === interface Base { ->Base : Base, Symbol(Base, Decl(interfaceThatHidesBaseProperty.ts, 0, 0)) +>Base : Base x: { a: number }; ->x : { a: number; }, Symbol(x, Decl(interfaceThatHidesBaseProperty.ts, 0, 16)) ->a : number, Symbol(a, Decl(interfaceThatHidesBaseProperty.ts, 1, 8)) +>x : { a: number; } +>a : number } interface Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(interfaceThatHidesBaseProperty.ts, 2, 1)) ->Base : Base, Symbol(Base, Decl(interfaceThatHidesBaseProperty.ts, 0, 0)) +>Derived : Derived +>Base : Base x: { ->x : { a: number; b: number; }, Symbol(x, Decl(interfaceThatHidesBaseProperty.ts, 4, 32)) +>x : { a: number; b: number; } a: number; b: number; ->a : number, Symbol(a, Decl(interfaceThatHidesBaseProperty.ts, 5, 8)) ->b : number, Symbol(b, Decl(interfaceThatHidesBaseProperty.ts, 6, 18)) +>a : number +>b : number }; } diff --git a/tests/baselines/reference/interfaceWithCallAndConstructSignature.symbols b/tests/baselines/reference/interfaceWithCallAndConstructSignature.symbols new file mode 100644 index 0000000000000..d9811466659b9 --- /dev/null +++ b/tests/baselines/reference/interfaceWithCallAndConstructSignature.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithCallAndConstructSignature.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithCallAndConstructSignature.ts, 0, 0)) + + (): number; + new (): any; +} + +var f: Foo; +>f : Symbol(f, Decl(interfaceWithCallAndConstructSignature.ts, 5, 3)) +>Foo : Symbol(Foo, Decl(interfaceWithCallAndConstructSignature.ts, 0, 0)) + +var r = f(); +>r : Symbol(r, Decl(interfaceWithCallAndConstructSignature.ts, 6, 3)) +>f : Symbol(f, Decl(interfaceWithCallAndConstructSignature.ts, 5, 3)) + +var r2 = new f(); +>r2 : Symbol(r2, Decl(interfaceWithCallAndConstructSignature.ts, 7, 3)) +>f : Symbol(f, Decl(interfaceWithCallAndConstructSignature.ts, 5, 3)) + diff --git a/tests/baselines/reference/interfaceWithCallAndConstructSignature.types b/tests/baselines/reference/interfaceWithCallAndConstructSignature.types index 2a16fa9991108..93d6bf7a4194e 100644 --- a/tests/baselines/reference/interfaceWithCallAndConstructSignature.types +++ b/tests/baselines/reference/interfaceWithCallAndConstructSignature.types @@ -1,22 +1,22 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithCallAndConstructSignature.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCallAndConstructSignature.ts, 0, 0)) +>Foo : Foo (): number; new (): any; } var f: Foo; ->f : Foo, Symbol(f, Decl(interfaceWithCallAndConstructSignature.ts, 5, 3)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCallAndConstructSignature.ts, 0, 0)) +>f : Foo +>Foo : Foo var r = f(); ->r : number, Symbol(r, Decl(interfaceWithCallAndConstructSignature.ts, 6, 3)) +>r : number >f() : number ->f : Foo, Symbol(f, Decl(interfaceWithCallAndConstructSignature.ts, 5, 3)) +>f : Foo var r2 = new f(); ->r2 : any, Symbol(r2, Decl(interfaceWithCallAndConstructSignature.ts, 7, 3)) +>r2 : any >new f() : any ->f : Foo, Symbol(f, Decl(interfaceWithCallAndConstructSignature.ts, 5, 3)) +>f : Foo diff --git a/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.symbols b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.symbols new file mode 100644 index 0000000000000..8557f8e61b9f7 --- /dev/null +++ b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithCallSignaturesThatHidesBaseSignature.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 0, 0)) + + (): { a: number }; +>a : Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 1, 9)) +} + +interface Derived extends Foo { +>Derived : Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 0, 0)) + + (): { a: number; b: number }; +>a : Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 5, 9)) +>b : Symbol(b, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 5, 20)) +} + +var d: Derived; +>d : Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 8, 3)) +>Derived : Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 2, 1)) + +var r = d(); +>r : Symbol(r, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 9, 3)) +>d : Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 8, 3)) + diff --git a/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.types b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.types index 03fbff5f3e0fd..63933b41bea66 100644 --- a/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.types +++ b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature.types @@ -1,26 +1,26 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithCallSignaturesThatHidesBaseSignature.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 0, 0)) +>Foo : Foo (): { a: number }; ->a : number, Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 1, 9)) +>a : number } interface Derived extends Foo { ->Derived : Derived, Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 0, 0)) +>Derived : Derived +>Foo : Foo (): { a: number; b: number }; ->a : number, Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 5, 9)) ->b : number, Symbol(b, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 5, 20)) +>a : number +>b : number } var d: Derived; ->d : Derived, Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 8, 3)) ->Derived : Derived, Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 2, 1)) +>d : Derived +>Derived : Derived var r = d(); ->r : { a: number; b: number; }, Symbol(r, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 9, 3)) +>r : { a: number; b: number; } >d() : { a: number; b: number; } ->d : Derived, Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature.ts, 8, 3)) +>d : Derived diff --git a/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.symbols b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.symbols new file mode 100644 index 0000000000000..0636b2dbaff9f --- /dev/null +++ b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithCallSignaturesThatHidesBaseSignature2.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 0, 0)) + + (): { a: number; b: number }; +>a : Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 1, 9)) +>b : Symbol(b, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 1, 20)) +} + +interface Derived extends Foo { // error +>Derived : Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 0, 0)) + + (): { a: number }; +>a : Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 5, 9)) +} + +var d: Derived; +>d : Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 8, 3)) +>Derived : Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 2, 1)) + +var r = d(); +>r : Symbol(r, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 9, 3)) +>d : Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 8, 3)) + diff --git a/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.types b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.types index ab5f549549a8c..c91d6864defd8 100644 --- a/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.types +++ b/tests/baselines/reference/interfaceWithCallSignaturesThatHidesBaseSignature2.types @@ -1,26 +1,26 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithCallSignaturesThatHidesBaseSignature2.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 0, 0)) +>Foo : Foo (): { a: number; b: number }; ->a : number, Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 1, 9)) ->b : number, Symbol(b, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 1, 20)) +>a : number +>b : number } interface Derived extends Foo { // error ->Derived : Derived, Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 0, 0)) +>Derived : Derived +>Foo : Foo (): { a: number }; ->a : number, Symbol(a, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 5, 9)) +>a : number } var d: Derived; ->d : Derived, Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 8, 3)) ->Derived : Derived, Symbol(Derived, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 2, 1)) +>d : Derived +>Derived : Derived var r = d(); ->r : { a: number; }, Symbol(r, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 9, 3)) +>r : { a: number; } >d() : { a: number; } ->d : Derived, Symbol(d, Decl(interfaceWithCallSignaturesThatHidesBaseSignature2.ts, 8, 3)) +>d : Derived diff --git a/tests/baselines/reference/interfaceWithCommaSeparators.symbols b/tests/baselines/reference/interfaceWithCommaSeparators.symbols new file mode 100644 index 0000000000000..e96a8852d56d8 --- /dev/null +++ b/tests/baselines/reference/interfaceWithCommaSeparators.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/interfaceWithCommaSeparators.ts === +var v: { bar(): void, baz } +>v : Symbol(v, Decl(interfaceWithCommaSeparators.ts, 0, 3)) +>bar : Symbol(bar, Decl(interfaceWithCommaSeparators.ts, 0, 8)) +>baz : Symbol(baz, Decl(interfaceWithCommaSeparators.ts, 0, 21)) + +interface Foo { bar(): void, baz } +>Foo : Symbol(Foo, Decl(interfaceWithCommaSeparators.ts, 0, 27)) +>bar : Symbol(bar, Decl(interfaceWithCommaSeparators.ts, 1, 15)) +>baz : Symbol(baz, Decl(interfaceWithCommaSeparators.ts, 1, 28)) + diff --git a/tests/baselines/reference/interfaceWithCommaSeparators.types b/tests/baselines/reference/interfaceWithCommaSeparators.types index 5a689fded79c9..8af41a4344ad0 100644 --- a/tests/baselines/reference/interfaceWithCommaSeparators.types +++ b/tests/baselines/reference/interfaceWithCommaSeparators.types @@ -1,11 +1,11 @@ === tests/cases/compiler/interfaceWithCommaSeparators.ts === var v: { bar(): void, baz } ->v : { bar(): void; baz: any; }, Symbol(v, Decl(interfaceWithCommaSeparators.ts, 0, 3)) ->bar : () => void, Symbol(bar, Decl(interfaceWithCommaSeparators.ts, 0, 8)) ->baz : any, Symbol(baz, Decl(interfaceWithCommaSeparators.ts, 0, 21)) +>v : { bar(): void; baz: any; } +>bar : () => void +>baz : any interface Foo { bar(): void, baz } ->Foo : Foo, Symbol(Foo, Decl(interfaceWithCommaSeparators.ts, 0, 27)) ->bar : () => void, Symbol(bar, Decl(interfaceWithCommaSeparators.ts, 1, 15)) ->baz : any, Symbol(baz, Decl(interfaceWithCommaSeparators.ts, 1, 28)) +>Foo : Foo +>bar : () => void +>baz : any diff --git a/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.symbols b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.symbols new file mode 100644 index 0000000000000..377d8053414e4 --- /dev/null +++ b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithConstructSignaturesThatHidesBaseSignature.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 0, 0)) + + new (): { a: number }; +>a : Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 1, 13)) +} + +interface Derived extends Foo { +>Derived : Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 0, 0)) + + new (): { a: number; b: number }; +>a : Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 5, 13)) +>b : Symbol(b, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 5, 24)) +} + +var d: Derived; +>d : Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 8, 3)) +>Derived : Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 2, 1)) + +var r = new d(); +>r : Symbol(r, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 9, 3)) +>d : Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 8, 3)) + diff --git a/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.types b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.types index ae0f1bd6fbde8..45c14f60386cd 100644 --- a/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.types +++ b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature.types @@ -1,26 +1,26 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithConstructSignaturesThatHidesBaseSignature.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 0, 0)) +>Foo : Foo new (): { a: number }; ->a : number, Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 1, 13)) +>a : number } interface Derived extends Foo { ->Derived : Derived, Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 0, 0)) +>Derived : Derived +>Foo : Foo new (): { a: number; b: number }; ->a : number, Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 5, 13)) ->b : number, Symbol(b, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 5, 24)) +>a : number +>b : number } var d: Derived; ->d : Derived, Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 8, 3)) ->Derived : Derived, Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 2, 1)) +>d : Derived +>Derived : Derived var r = new d(); ->r : { a: number; b: number; }, Symbol(r, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 9, 3)) +>r : { a: number; b: number; } >new d() : { a: number; b: number; } ->d : Derived, Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature.ts, 8, 3)) +>d : Derived diff --git a/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.symbols b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.symbols new file mode 100644 index 0000000000000..b15dcd632e7ae --- /dev/null +++ b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithConstructSignaturesThatHidesBaseSignature2.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 0, 0)) + + new (): { a: number; b: number }; +>a : Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 1, 13)) +>b : Symbol(b, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 1, 24)) +} + +interface Derived extends Foo { +>Derived : Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 0, 0)) + + new (): { a: number }; // constructors not checked for conformance like a call signature is +>a : Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 5, 13)) +} + +var d: Derived; +>d : Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 8, 3)) +>Derived : Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 2, 1)) + +var r = new d(); +>r : Symbol(r, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 9, 3)) +>d : Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 8, 3)) + diff --git a/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.types b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.types index 237d4b32055f7..635625d56960c 100644 --- a/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.types +++ b/tests/baselines/reference/interfaceWithConstructSignaturesThatHidesBaseSignature2.types @@ -1,26 +1,26 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithConstructSignaturesThatHidesBaseSignature2.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 0, 0)) +>Foo : Foo new (): { a: number; b: number }; ->a : number, Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 1, 13)) ->b : number, Symbol(b, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 1, 24)) +>a : number +>b : number } interface Derived extends Foo { ->Derived : Derived, Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 0, 0)) +>Derived : Derived +>Foo : Foo new (): { a: number }; // constructors not checked for conformance like a call signature is ->a : number, Symbol(a, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 5, 13)) +>a : number } var d: Derived; ->d : Derived, Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 8, 3)) ->Derived : Derived, Symbol(Derived, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 2, 1)) +>d : Derived +>Derived : Derived var r = new d(); ->r : { a: number; }, Symbol(r, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 9, 3)) +>r : { a: number; } >new d() : { a: number; } ->d : Derived, Symbol(d, Decl(interfaceWithConstructSignaturesThatHidesBaseSignature2.ts, 8, 3)) +>d : Derived diff --git a/tests/baselines/reference/interfaceWithOptionalProperty.symbols b/tests/baselines/reference/interfaceWithOptionalProperty.symbols new file mode 100644 index 0000000000000..262b3f01ccc05 --- /dev/null +++ b/tests/baselines/reference/interfaceWithOptionalProperty.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/interfaceWithOptionalProperty.ts === + +interface I { +>I : Symbol(I, Decl(interfaceWithOptionalProperty.ts, 0, 0)) + + x?: number; +>x : Symbol(x, Decl(interfaceWithOptionalProperty.ts, 1, 13)) +} diff --git a/tests/baselines/reference/interfaceWithOptionalProperty.types b/tests/baselines/reference/interfaceWithOptionalProperty.types index cb895622cab7a..862857483da02 100644 --- a/tests/baselines/reference/interfaceWithOptionalProperty.types +++ b/tests/baselines/reference/interfaceWithOptionalProperty.types @@ -1,8 +1,8 @@ === tests/cases/compiler/interfaceWithOptionalProperty.ts === interface I { ->I : I, Symbol(I, Decl(interfaceWithOptionalProperty.ts, 0, 0)) +>I : I x?: number; ->x : number, Symbol(x, Decl(interfaceWithOptionalProperty.ts, 1, 13)) +>x : number } diff --git a/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.symbols b/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.symbols new file mode 100644 index 0000000000000..28dcb55238b8c --- /dev/null +++ b/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.symbols @@ -0,0 +1,34 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithOverloadedCallAndConstructSignatures.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 0, 0)) + + (): number; + (x: string): number; +>x : Symbol(x, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 2, 5)) + + new (): any; + new (x: string): Object; +>x : Symbol(x, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 5, 9)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +var f: Foo; +>f : Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) +>Foo : Symbol(Foo, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 0, 0)) + +var r1 = f(); +>r1 : Symbol(r1, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 9, 3)) +>f : Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) + +var r2 = f(''); +>r2 : Symbol(r2, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 10, 3)) +>f : Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) + +var r3 = new f(); +>r3 : Symbol(r3, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 11, 3)) +>f : Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) + +var r4 = new f(''); +>r4 : Symbol(r4, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 12, 3)) +>f : Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) + diff --git a/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.types b/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.types index 7553273d41b21..1110992fd5251 100644 --- a/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.types +++ b/tests/baselines/reference/interfaceWithOverloadedCallAndConstructSignatures.types @@ -1,40 +1,40 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithOverloadedCallAndConstructSignatures.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 0, 0)) +>Foo : Foo (): number; (x: string): number; ->x : string, Symbol(x, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 2, 5)) +>x : string new (): any; new (x: string): Object; ->x : string, Symbol(x, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 5, 9)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object } var f: Foo; ->f : Foo, Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 0, 0)) +>f : Foo +>Foo : Foo var r1 = f(); ->r1 : number, Symbol(r1, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 9, 3)) +>r1 : number >f() : number ->f : Foo, Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo var r2 = f(''); ->r2 : number, Symbol(r2, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 10, 3)) +>r2 : number >f('') : number ->f : Foo, Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo >'' : string var r3 = new f(); ->r3 : any, Symbol(r3, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 11, 3)) +>r3 : any >new f() : any ->f : Foo, Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo var r4 = new f(''); ->r4 : Object, Symbol(r4, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 12, 3)) +>r4 : Object >new f('') : Object ->f : Foo, Symbol(f, Decl(interfaceWithOverloadedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo >'' : string diff --git a/tests/baselines/reference/interfaceWithPropertyOfEveryType.symbols b/tests/baselines/reference/interfaceWithPropertyOfEveryType.symbols new file mode 100644 index 0000000000000..46c8e92261ff8 --- /dev/null +++ b/tests/baselines/reference/interfaceWithPropertyOfEveryType.symbols @@ -0,0 +1,139 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts === +class C { foo: string; } +>C : Symbol(C, Decl(interfaceWithPropertyOfEveryType.ts, 0, 0)) +>foo : Symbol(foo, Decl(interfaceWithPropertyOfEveryType.ts, 0, 9)) + +function f1() { } +>f1 : Symbol(f1, Decl(interfaceWithPropertyOfEveryType.ts, 0, 24)) + +module M { +>M : Symbol(M, Decl(interfaceWithPropertyOfEveryType.ts, 1, 17)) + + export var y = 1; +>y : Symbol(y, Decl(interfaceWithPropertyOfEveryType.ts, 3, 14)) +} +enum E { A } +>E : Symbol(E, Decl(interfaceWithPropertyOfEveryType.ts, 4, 1)) +>A : Symbol(E.A, Decl(interfaceWithPropertyOfEveryType.ts, 5, 8)) + +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) + + a: number; +>a : Symbol(a, Decl(interfaceWithPropertyOfEveryType.ts, 7, 15)) + + b: string; +>b : Symbol(b, Decl(interfaceWithPropertyOfEveryType.ts, 8, 14)) + + c: boolean; +>c : Symbol(c, Decl(interfaceWithPropertyOfEveryType.ts, 9, 14)) + + d: any; +>d : Symbol(d, Decl(interfaceWithPropertyOfEveryType.ts, 10, 15)) + + e: void; +>e : Symbol(e, Decl(interfaceWithPropertyOfEveryType.ts, 11, 11)) + + f: number[]; +>f : Symbol(f, Decl(interfaceWithPropertyOfEveryType.ts, 12, 12)) + + g: Object; +>g : Symbol(g, Decl(interfaceWithPropertyOfEveryType.ts, 13, 16)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + h: (x: number) => number; +>h : Symbol(h, Decl(interfaceWithPropertyOfEveryType.ts, 14, 14)) +>x : Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 15, 8)) + + i: (x: T) => T; +>i : Symbol(i, Decl(interfaceWithPropertyOfEveryType.ts, 15, 29)) +>T : Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 16, 8)) +>x : Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 16, 11)) +>T : Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 16, 8)) +>T : Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 16, 8)) + + j: Foo; +>j : Symbol(j, Decl(interfaceWithPropertyOfEveryType.ts, 16, 22)) +>Foo : Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) + + k: C; +>k : Symbol(k, Decl(interfaceWithPropertyOfEveryType.ts, 17, 11)) +>C : Symbol(C, Decl(interfaceWithPropertyOfEveryType.ts, 0, 0)) + + l: typeof f1; +>l : Symbol(l, Decl(interfaceWithPropertyOfEveryType.ts, 18, 9)) +>f1 : Symbol(f1, Decl(interfaceWithPropertyOfEveryType.ts, 0, 24)) + + m: typeof M; +>m : Symbol(m, Decl(interfaceWithPropertyOfEveryType.ts, 19, 17)) +>M : Symbol(M, Decl(interfaceWithPropertyOfEveryType.ts, 1, 17)) + + n: {}; +>n : Symbol(n, Decl(interfaceWithPropertyOfEveryType.ts, 20, 16)) + + o: E; +>o : Symbol(o, Decl(interfaceWithPropertyOfEveryType.ts, 21, 10)) +>E : Symbol(E, Decl(interfaceWithPropertyOfEveryType.ts, 4, 1)) +} + +var a: Foo = { +>a : Symbol(a, Decl(interfaceWithPropertyOfEveryType.ts, 25, 3)) +>Foo : Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) + + a: 1, +>a : Symbol(a, Decl(interfaceWithPropertyOfEveryType.ts, 25, 14)) + + b: '', +>b : Symbol(b, Decl(interfaceWithPropertyOfEveryType.ts, 26, 9)) + + c: true, +>c : Symbol(c, Decl(interfaceWithPropertyOfEveryType.ts, 27, 10)) + + d: {}, +>d : Symbol(d, Decl(interfaceWithPropertyOfEveryType.ts, 28, 12)) + + e: null , +>e : Symbol(e, Decl(interfaceWithPropertyOfEveryType.ts, 29, 10)) + + f: [1], +>f : Symbol(f, Decl(interfaceWithPropertyOfEveryType.ts, 30, 13)) + + g: {}, +>g : Symbol(g, Decl(interfaceWithPropertyOfEveryType.ts, 31, 11)) + + h: (x: number) => 1, +>h : Symbol(h, Decl(interfaceWithPropertyOfEveryType.ts, 32, 10)) +>x : Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 33, 8)) + + i: (x: T) => x, +>i : Symbol(i, Decl(interfaceWithPropertyOfEveryType.ts, 33, 24)) +>T : Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 34, 8)) +>x : Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 34, 11)) +>T : Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 34, 8)) +>x : Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 34, 11)) + + j: null, +>j : Symbol(j, Decl(interfaceWithPropertyOfEveryType.ts, 34, 22)) +>Foo : Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) + + k: new C(), +>k : Symbol(k, Decl(interfaceWithPropertyOfEveryType.ts, 35, 17)) +>C : Symbol(C, Decl(interfaceWithPropertyOfEveryType.ts, 0, 0)) + + l: f1, +>l : Symbol(l, Decl(interfaceWithPropertyOfEveryType.ts, 36, 15)) +>f1 : Symbol(f1, Decl(interfaceWithPropertyOfEveryType.ts, 0, 24)) + + m: M, +>m : Symbol(m, Decl(interfaceWithPropertyOfEveryType.ts, 37, 10)) +>M : Symbol(M, Decl(interfaceWithPropertyOfEveryType.ts, 1, 17)) + + n: {}, +>n : Symbol(n, Decl(interfaceWithPropertyOfEveryType.ts, 38, 9)) + + o: E.A +>o : Symbol(o, Decl(interfaceWithPropertyOfEveryType.ts, 39, 10)) +>E.A : Symbol(E.A, Decl(interfaceWithPropertyOfEveryType.ts, 5, 8)) +>E : Symbol(E, Decl(interfaceWithPropertyOfEveryType.ts, 4, 1)) +>A : Symbol(E.A, Decl(interfaceWithPropertyOfEveryType.ts, 5, 8)) +} diff --git a/tests/baselines/reference/interfaceWithPropertyOfEveryType.types b/tests/baselines/reference/interfaceWithPropertyOfEveryType.types index 46727f48c494a..7428ee73aa126 100644 --- a/tests/baselines/reference/interfaceWithPropertyOfEveryType.types +++ b/tests/baselines/reference/interfaceWithPropertyOfEveryType.types @@ -1,156 +1,156 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithPropertyOfEveryType.ts === class C { foo: string; } ->C : C, Symbol(C, Decl(interfaceWithPropertyOfEveryType.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(interfaceWithPropertyOfEveryType.ts, 0, 9)) +>C : C +>foo : string function f1() { } ->f1 : () => void, Symbol(f1, Decl(interfaceWithPropertyOfEveryType.ts, 0, 24)) +>f1 : () => void module M { ->M : typeof M, Symbol(M, Decl(interfaceWithPropertyOfEveryType.ts, 1, 17)) +>M : typeof M export var y = 1; ->y : number, Symbol(y, Decl(interfaceWithPropertyOfEveryType.ts, 3, 14)) +>y : number >1 : number } enum E { A } ->E : E, Symbol(E, Decl(interfaceWithPropertyOfEveryType.ts, 4, 1)) ->A : E, Symbol(E.A, Decl(interfaceWithPropertyOfEveryType.ts, 5, 8)) +>E : E +>A : E interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) +>Foo : Foo a: number; ->a : number, Symbol(a, Decl(interfaceWithPropertyOfEveryType.ts, 7, 15)) +>a : number b: string; ->b : string, Symbol(b, Decl(interfaceWithPropertyOfEveryType.ts, 8, 14)) +>b : string c: boolean; ->c : boolean, Symbol(c, Decl(interfaceWithPropertyOfEveryType.ts, 9, 14)) +>c : boolean d: any; ->d : any, Symbol(d, Decl(interfaceWithPropertyOfEveryType.ts, 10, 15)) +>d : any e: void; ->e : void, Symbol(e, Decl(interfaceWithPropertyOfEveryType.ts, 11, 11)) +>e : void f: number[]; ->f : number[], Symbol(f, Decl(interfaceWithPropertyOfEveryType.ts, 12, 12)) +>f : number[] g: Object; ->g : Object, Symbol(g, Decl(interfaceWithPropertyOfEveryType.ts, 13, 16)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>g : Object +>Object : Object h: (x: number) => number; ->h : (x: number) => number, Symbol(h, Decl(interfaceWithPropertyOfEveryType.ts, 14, 14)) ->x : number, Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 15, 8)) +>h : (x: number) => number +>x : number i: (x: T) => T; ->i : (x: T) => T, Symbol(i, Decl(interfaceWithPropertyOfEveryType.ts, 15, 29)) ->T : T, Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 16, 8)) ->x : T, Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 16, 11)) ->T : T, Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 16, 8)) ->T : T, Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 16, 8)) +>i : (x: T) => T +>T : T +>x : T +>T : T +>T : T j: Foo; ->j : Foo, Symbol(j, Decl(interfaceWithPropertyOfEveryType.ts, 16, 22)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) +>j : Foo +>Foo : Foo k: C; ->k : C, Symbol(k, Decl(interfaceWithPropertyOfEveryType.ts, 17, 11)) ->C : C, Symbol(C, Decl(interfaceWithPropertyOfEveryType.ts, 0, 0)) +>k : C +>C : C l: typeof f1; ->l : () => void, Symbol(l, Decl(interfaceWithPropertyOfEveryType.ts, 18, 9)) ->f1 : () => void, Symbol(f1, Decl(interfaceWithPropertyOfEveryType.ts, 0, 24)) +>l : () => void +>f1 : () => void m: typeof M; ->m : typeof M, Symbol(m, Decl(interfaceWithPropertyOfEveryType.ts, 19, 17)) ->M : typeof M, Symbol(M, Decl(interfaceWithPropertyOfEveryType.ts, 1, 17)) +>m : typeof M +>M : typeof M n: {}; ->n : {}, Symbol(n, Decl(interfaceWithPropertyOfEveryType.ts, 20, 16)) +>n : {} o: E; ->o : E, Symbol(o, Decl(interfaceWithPropertyOfEveryType.ts, 21, 10)) ->E : E, Symbol(E, Decl(interfaceWithPropertyOfEveryType.ts, 4, 1)) +>o : E +>E : E } var a: Foo = { ->a : Foo, Symbol(a, Decl(interfaceWithPropertyOfEveryType.ts, 25, 3)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) +>a : Foo +>Foo : Foo >{ a: 1, b: '', c: true, d: {}, e: null , f: [1], g: {}, h: (x: number) => 1, i: (x: T) => x, j: null, k: new C(), l: f1, m: M, n: {}, o: E.A} : { a: number; b: string; c: boolean; d: {}; e: null; f: number[]; g: {}; h: (x: number) => number; i: (x: T) => T; j: Foo; k: C; l: () => void; m: typeof M; n: {}; o: E; } a: 1, ->a : number, Symbol(a, Decl(interfaceWithPropertyOfEveryType.ts, 25, 14)) +>a : number >1 : number b: '', ->b : string, Symbol(b, Decl(interfaceWithPropertyOfEveryType.ts, 26, 9)) +>b : string >'' : string c: true, ->c : boolean, Symbol(c, Decl(interfaceWithPropertyOfEveryType.ts, 27, 10)) +>c : boolean >true : boolean d: {}, ->d : {}, Symbol(d, Decl(interfaceWithPropertyOfEveryType.ts, 28, 12)) +>d : {} >{} : {} e: null , ->e : null, Symbol(e, Decl(interfaceWithPropertyOfEveryType.ts, 29, 10)) +>e : null >null : null f: [1], ->f : number[], Symbol(f, Decl(interfaceWithPropertyOfEveryType.ts, 30, 13)) +>f : number[] >[1] : number[] >1 : number g: {}, ->g : {}, Symbol(g, Decl(interfaceWithPropertyOfEveryType.ts, 31, 11)) +>g : {} >{} : {} h: (x: number) => 1, ->h : (x: number) => number, Symbol(h, Decl(interfaceWithPropertyOfEveryType.ts, 32, 10)) +>h : (x: number) => number >(x: number) => 1 : (x: number) => number ->x : number, Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 33, 8)) +>x : number >1 : number i: (x: T) => x, ->i : (x: T) => T, Symbol(i, Decl(interfaceWithPropertyOfEveryType.ts, 33, 24)) +>i : (x: T) => T >(x: T) => x : (x: T) => T ->T : T, Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 34, 8)) ->x : T, Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 34, 11)) ->T : T, Symbol(T, Decl(interfaceWithPropertyOfEveryType.ts, 34, 8)) ->x : T, Symbol(x, Decl(interfaceWithPropertyOfEveryType.ts, 34, 11)) +>T : T +>x : T +>T : T +>x : T j: null, ->j : Foo, Symbol(j, Decl(interfaceWithPropertyOfEveryType.ts, 34, 22)) +>j : Foo >null : Foo ->Foo : Foo, Symbol(Foo, Decl(interfaceWithPropertyOfEveryType.ts, 5, 12)) +>Foo : Foo >null : null k: new C(), ->k : C, Symbol(k, Decl(interfaceWithPropertyOfEveryType.ts, 35, 17)) +>k : C >new C() : C ->C : typeof C, Symbol(C, Decl(interfaceWithPropertyOfEveryType.ts, 0, 0)) +>C : typeof C l: f1, ->l : () => void, Symbol(l, Decl(interfaceWithPropertyOfEveryType.ts, 36, 15)) ->f1 : () => void, Symbol(f1, Decl(interfaceWithPropertyOfEveryType.ts, 0, 24)) +>l : () => void +>f1 : () => void m: M, ->m : typeof M, Symbol(m, Decl(interfaceWithPropertyOfEveryType.ts, 37, 10)) ->M : typeof M, Symbol(M, Decl(interfaceWithPropertyOfEveryType.ts, 1, 17)) +>m : typeof M +>M : typeof M n: {}, ->n : {}, Symbol(n, Decl(interfaceWithPropertyOfEveryType.ts, 38, 9)) +>n : {} >{} : {} o: E.A ->o : E, Symbol(o, Decl(interfaceWithPropertyOfEveryType.ts, 39, 10)) ->E.A : E, Symbol(E.A, Decl(interfaceWithPropertyOfEveryType.ts, 5, 8)) ->E : typeof E, Symbol(E, Decl(interfaceWithPropertyOfEveryType.ts, 4, 1)) ->A : E, Symbol(E.A, Decl(interfaceWithPropertyOfEveryType.ts, 5, 8)) +>o : E +>E.A : E +>E : typeof E +>A : E } diff --git a/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.symbols b/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.symbols new file mode 100644 index 0000000000000..40ec7863a0436 --- /dev/null +++ b/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithSpecializedCallAndConstructSignatures.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 0, 0)) + + (x: 'a'): number; +>x : Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 1, 5)) + + (x: string): any; +>x : Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 2, 5)) + + new (x: 'a'): any; +>x : Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 4, 9)) + + new (x: string): Object; +>x : Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 5, 9)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +var f: Foo; +>f : Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) +>Foo : Symbol(Foo, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 0, 0)) + +var r = f('a'); +>r : Symbol(r, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 9, 3)) +>f : Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) + +var r2 = f('A'); +>r2 : Symbol(r2, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 10, 3)) +>f : Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) + +var r3 = new f('a'); +>r3 : Symbol(r3, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 11, 3)) +>f : Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) + +var r4 = new f('A'); +>r4 : Symbol(r4, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 12, 3)) +>f : Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) + diff --git a/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.types b/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.types index 691a220c6347d..971b5e56907fa 100644 --- a/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.types +++ b/tests/baselines/reference/interfaceWithSpecializedCallAndConstructSignatures.types @@ -1,46 +1,46 @@ === tests/cases/conformance/interfaces/interfaceDeclarations/interfaceWithSpecializedCallAndConstructSignatures.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 0, 0)) +>Foo : Foo (x: 'a'): number; ->x : 'a', Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 1, 5)) +>x : 'a' (x: string): any; ->x : string, Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 2, 5)) +>x : string new (x: 'a'): any; ->x : 'a', Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 4, 9)) +>x : 'a' new (x: string): Object; ->x : string, Symbol(x, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 5, 9)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object } var f: Foo; ->f : Foo, Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) ->Foo : Foo, Symbol(Foo, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 0, 0)) +>f : Foo +>Foo : Foo var r = f('a'); ->r : number, Symbol(r, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 9, 3)) +>r : number >f('a') : number ->f : Foo, Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo >'a' : string var r2 = f('A'); ->r2 : any, Symbol(r2, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 10, 3)) +>r2 : any >f('A') : any ->f : Foo, Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo >'A' : string var r3 = new f('a'); ->r3 : any, Symbol(r3, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 11, 3)) +>r3 : any >new f('a') : any ->f : Foo, Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo >'a' : string var r4 = new f('A'); ->r4 : Object, Symbol(r4, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 12, 3)) +>r4 : Object >new f('A') : Object ->f : Foo, Symbol(f, Decl(interfaceWithSpecializedCallAndConstructSignatures.ts, 8, 3)) +>f : Foo >'A' : string diff --git a/tests/baselines/reference/interfacedecl.symbols b/tests/baselines/reference/interfacedecl.symbols new file mode 100644 index 0000000000000..eb9cce5f1fd8b --- /dev/null +++ b/tests/baselines/reference/interfacedecl.symbols @@ -0,0 +1,94 @@ +=== tests/cases/compiler/interfacedecl.ts === +interface a0 { +>a0 : Symbol(a0, Decl(interfacedecl.ts, 0, 0)) + + (): string; + (a, b, c?: string): number; +>a : Symbol(a, Decl(interfacedecl.ts, 2, 5)) +>b : Symbol(b, Decl(interfacedecl.ts, 2, 7)) +>c : Symbol(c, Decl(interfacedecl.ts, 2, 10)) + + new (): string; + new (s: string); +>s : Symbol(s, Decl(interfacedecl.ts, 5, 9)) + + [n: number]: ()=>string; +>n : Symbol(n, Decl(interfacedecl.ts, 7, 5)) + + [s: string]: any; +>s : Symbol(s, Decl(interfacedecl.ts, 8, 5)) + + p1; +>p1 : Symbol(p1, Decl(interfacedecl.ts, 8, 21)) + + p2: string; +>p2 : Symbol(p2, Decl(interfacedecl.ts, 10, 7)) + + p3?; +>p3 : Symbol(p3, Decl(interfacedecl.ts, 11, 15)) + + p4?: number; +>p4 : Symbol(p4, Decl(interfacedecl.ts, 12, 8)) + + p5: (s: number) =>string; +>p5 : Symbol(p5, Decl(interfacedecl.ts, 13, 16)) +>s : Symbol(s, Decl(interfacedecl.ts, 14, 9)) + + f1(); +>f1 : Symbol(f1, Decl(interfacedecl.ts, 14, 29)) + + f2? (); +>f2 : Symbol(f2, Decl(interfacedecl.ts, 16, 9)) + + f3(a: string): number; +>f3 : Symbol(f3, Decl(interfacedecl.ts, 17, 11)) +>a : Symbol(a, Decl(interfacedecl.ts, 18, 7)) + + f4? (s: number): string; +>f4 : Symbol(f4, Decl(interfacedecl.ts, 18, 26)) +>s : Symbol(s, Decl(interfacedecl.ts, 19, 9)) +} + + +interface a1 { +>a1 : Symbol(a1, Decl(interfacedecl.ts, 20, 1)) + + [n: number]: number; +>n : Symbol(n, Decl(interfacedecl.ts, 24, 5)) +} + +interface a2 { +>a2 : Symbol(a2, Decl(interfacedecl.ts, 25, 1)) + + [s: string]: number; +>s : Symbol(s, Decl(interfacedecl.ts, 28, 5)) +} + +interface a { +>a : Symbol(a, Decl(interfacedecl.ts, 29, 1)) +} + +interface b extends a { +>b : Symbol(b, Decl(interfacedecl.ts, 32, 1)) +>a : Symbol(a, Decl(interfacedecl.ts, 29, 1)) +} + +interface c extends a, b { +>c : Symbol(c, Decl(interfacedecl.ts, 35, 1)) +>a : Symbol(a, Decl(interfacedecl.ts, 29, 1)) +>b : Symbol(b, Decl(interfacedecl.ts, 32, 1)) +} + +interface d extends a { +>d : Symbol(d, Decl(interfacedecl.ts, 38, 1)) +>a : Symbol(a, Decl(interfacedecl.ts, 29, 1)) +} + +class c1 implements a { +>c1 : Symbol(c1, Decl(interfacedecl.ts, 41, 1)) +>a : Symbol(a, Decl(interfacedecl.ts, 29, 1)) +} +var instance2 = new c1(); +>instance2 : Symbol(instance2, Decl(interfacedecl.ts, 45, 3)) +>c1 : Symbol(c1, Decl(interfacedecl.ts, 41, 1)) + diff --git a/tests/baselines/reference/interfacedecl.types b/tests/baselines/reference/interfacedecl.types index 8282d9be54b3c..377e4f286397a 100644 --- a/tests/baselines/reference/interfacedecl.types +++ b/tests/baselines/reference/interfacedecl.types @@ -1,95 +1,95 @@ === tests/cases/compiler/interfacedecl.ts === interface a0 { ->a0 : a0, Symbol(a0, Decl(interfacedecl.ts, 0, 0)) +>a0 : a0 (): string; (a, b, c?: string): number; ->a : any, Symbol(a, Decl(interfacedecl.ts, 2, 5)) ->b : any, Symbol(b, Decl(interfacedecl.ts, 2, 7)) ->c : string, Symbol(c, Decl(interfacedecl.ts, 2, 10)) +>a : any +>b : any +>c : string new (): string; new (s: string); ->s : string, Symbol(s, Decl(interfacedecl.ts, 5, 9)) +>s : string [n: number]: ()=>string; ->n : number, Symbol(n, Decl(interfacedecl.ts, 7, 5)) +>n : number [s: string]: any; ->s : string, Symbol(s, Decl(interfacedecl.ts, 8, 5)) +>s : string p1; ->p1 : any, Symbol(p1, Decl(interfacedecl.ts, 8, 21)) +>p1 : any p2: string; ->p2 : string, Symbol(p2, Decl(interfacedecl.ts, 10, 7)) +>p2 : string p3?; ->p3 : any, Symbol(p3, Decl(interfacedecl.ts, 11, 15)) +>p3 : any p4?: number; ->p4 : number, Symbol(p4, Decl(interfacedecl.ts, 12, 8)) +>p4 : number p5: (s: number) =>string; ->p5 : (s: number) => string, Symbol(p5, Decl(interfacedecl.ts, 13, 16)) ->s : number, Symbol(s, Decl(interfacedecl.ts, 14, 9)) +>p5 : (s: number) => string +>s : number f1(); ->f1 : () => any, Symbol(f1, Decl(interfacedecl.ts, 14, 29)) +>f1 : () => any f2? (); ->f2 : () => any, Symbol(f2, Decl(interfacedecl.ts, 16, 9)) +>f2 : () => any f3(a: string): number; ->f3 : (a: string) => number, Symbol(f3, Decl(interfacedecl.ts, 17, 11)) ->a : string, Symbol(a, Decl(interfacedecl.ts, 18, 7)) +>f3 : (a: string) => number +>a : string f4? (s: number): string; ->f4 : (s: number) => string, Symbol(f4, Decl(interfacedecl.ts, 18, 26)) ->s : number, Symbol(s, Decl(interfacedecl.ts, 19, 9)) +>f4 : (s: number) => string +>s : number } interface a1 { ->a1 : a1, Symbol(a1, Decl(interfacedecl.ts, 20, 1)) +>a1 : a1 [n: number]: number; ->n : number, Symbol(n, Decl(interfacedecl.ts, 24, 5)) +>n : number } interface a2 { ->a2 : a2, Symbol(a2, Decl(interfacedecl.ts, 25, 1)) +>a2 : a2 [s: string]: number; ->s : string, Symbol(s, Decl(interfacedecl.ts, 28, 5)) +>s : string } interface a { ->a : a, Symbol(a, Decl(interfacedecl.ts, 29, 1)) +>a : a } interface b extends a { ->b : b, Symbol(b, Decl(interfacedecl.ts, 32, 1)) ->a : a, Symbol(a, Decl(interfacedecl.ts, 29, 1)) +>b : b +>a : a } interface c extends a, b { ->c : c, Symbol(c, Decl(interfacedecl.ts, 35, 1)) ->a : a, Symbol(a, Decl(interfacedecl.ts, 29, 1)) ->b : b, Symbol(b, Decl(interfacedecl.ts, 32, 1)) +>c : c +>a : a +>b : b } interface d extends a { ->d : d, Symbol(d, Decl(interfacedecl.ts, 38, 1)) ->a : a, Symbol(a, Decl(interfacedecl.ts, 29, 1)) +>d : d +>a : a } class c1 implements a { ->c1 : c1, Symbol(c1, Decl(interfacedecl.ts, 41, 1)) ->a : a, Symbol(a, Decl(interfacedecl.ts, 29, 1)) +>c1 : c1 +>a : a } var instance2 = new c1(); ->instance2 : c1, Symbol(instance2, Decl(interfacedecl.ts, 45, 3)) +>instance2 : c1 >new c1() : c1 ->c1 : typeof c1, Symbol(c1, Decl(interfacedecl.ts, 41, 1)) +>c1 : typeof c1 diff --git a/tests/baselines/reference/internalAliasClass.symbols b/tests/baselines/reference/internalAliasClass.symbols new file mode 100644 index 0000000000000..4695367cf6e03 --- /dev/null +++ b/tests/baselines/reference/internalAliasClass.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/internalAliasClass.ts === +module a { +>a : Symbol(a, Decl(internalAliasClass.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(internalAliasClass.ts, 0, 10)) + } +} + +module c { +>c : Symbol(c, Decl(internalAliasClass.ts, 3, 1)) + + import b = a.c; +>b : Symbol(b, Decl(internalAliasClass.ts, 5, 10)) +>a : Symbol(a, Decl(internalAliasClass.ts, 0, 0)) +>c : Symbol(b, Decl(internalAliasClass.ts, 0, 10)) + + export var x: b = new b(); +>x : Symbol(x, Decl(internalAliasClass.ts, 7, 14)) +>b : Symbol(b, Decl(internalAliasClass.ts, 5, 10)) +>b : Symbol(b, Decl(internalAliasClass.ts, 5, 10)) +} diff --git a/tests/baselines/reference/internalAliasClass.types b/tests/baselines/reference/internalAliasClass.types index 961b5e3d52e10..8531714b5e828 100644 --- a/tests/baselines/reference/internalAliasClass.types +++ b/tests/baselines/reference/internalAliasClass.types @@ -1,23 +1,23 @@ === tests/cases/compiler/internalAliasClass.ts === module a { ->a : typeof a, Symbol(a, Decl(internalAliasClass.ts, 0, 0)) +>a : typeof a export class c { ->c : c, Symbol(c, Decl(internalAliasClass.ts, 0, 10)) +>c : c } } module c { ->c : typeof c, Symbol(c, Decl(internalAliasClass.ts, 3, 1)) +>c : typeof c import b = a.c; ->b : typeof b, Symbol(b, Decl(internalAliasClass.ts, 5, 10)) ->a : typeof a, Symbol(a, Decl(internalAliasClass.ts, 0, 0)) ->c : b, Symbol(b, Decl(internalAliasClass.ts, 0, 10)) +>b : typeof b +>a : typeof a +>c : b export var x: b = new b(); ->x : b, Symbol(x, Decl(internalAliasClass.ts, 7, 14)) ->b : b, Symbol(b, Decl(internalAliasClass.ts, 5, 10)) +>x : b +>b : b >new b() : b ->b : typeof b, Symbol(b, Decl(internalAliasClass.ts, 5, 10)) +>b : typeof b } diff --git a/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..f3a796cf66cfd --- /dev/null +++ b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.symbols @@ -0,0 +1,48 @@ +=== tests/cases/compiler/internalAliasClassInsideLocalModuleWithExport.ts === +export module x { +>x : Symbol(x, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 17)) + + foo(a: number) { +>foo : Symbol(foo, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 1, 20)) +>a : Symbol(a, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 2, 12)) + + return a; +>a : Symbol(a, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 2, 12)) + } + } +} + +export module m2 { +>m2 : Symbol(m2, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 6, 1)) + + export module m3 { +>m3 : Symbol(m3, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 8, 18)) + + export import c = x.c; +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) +>x : Symbol(x, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 0)) +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 17)) + + export var cProp = new c(); +>cProp : Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 11, 18)) +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) + + var cReturnVal = cProp.foo(10); +>cReturnVal : Symbol(cReturnVal, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 12, 11)) +>cProp.foo : Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 1, 20)) +>cProp : Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 11, 18)) +>foo : Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 1, 20)) + } +} + +export var d = new m2.m3.c(); +>d : Symbol(d, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 16, 10)) +>m2.m3.c : Symbol(m2.m3.c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) +>m2.m3 : Symbol(m2.m3, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 8, 18)) +>m2 : Symbol(m2, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 6, 1)) +>m3 : Symbol(m2.m3, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 8, 18)) +>c : Symbol(m2.m3.c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) + diff --git a/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.types index 0cc03faea6d8a..58afd2071fe99 100644 --- a/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithExport.types @@ -1,52 +1,52 @@ === tests/cases/compiler/internalAliasClassInsideLocalModuleWithExport.ts === export module x { ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 0)) +>x : typeof x export class c { ->c : c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 17)) +>c : c foo(a: number) { ->foo : (a: number) => number, Symbol(foo, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 1, 20)) ->a : number, Symbol(a, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 2, 12)) +>foo : (a: number) => number +>a : number return a; ->a : number, Symbol(a, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 2, 12)) +>a : number } } } export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 6, 1)) +>m2 : typeof m2 export module m3 { ->m3 : typeof m3, Symbol(m3, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 8, 18)) +>m3 : typeof m3 export import c = x.c; ->c : typeof c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 0)) ->c : c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 0, 17)) +>c : typeof c +>x : typeof x +>c : c export var cProp = new c(); ->cProp : c, Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 11, 18)) +>cProp : c >new c() : c ->c : typeof c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) +>c : typeof c var cReturnVal = cProp.foo(10); ->cReturnVal : number, Symbol(cReturnVal, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 12, 11)) +>cReturnVal : number >cProp.foo(10) : number ->cProp.foo : (a: number) => number, Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 1, 20)) ->cProp : c, Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 11, 18)) ->foo : (a: number) => number, Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 1, 20)) +>cProp.foo : (a: number) => number +>cProp : c +>foo : (a: number) => number >10 : number } } export var d = new m2.m3.c(); ->d : x.c, Symbol(d, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 16, 10)) +>d : x.c >new m2.m3.c() : x.c ->m2.m3.c : typeof x.c, Symbol(m2.m3.c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) ->m2.m3 : typeof m2.m3, Symbol(m2.m3, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 8, 18)) ->m2 : typeof m2, Symbol(m2, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 6, 1)) ->m3 : typeof m2.m3, Symbol(m2.m3, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 8, 18)) ->c : typeof x.c, Symbol(m2.m3.c, Decl(internalAliasClassInsideLocalModuleWithExport.ts, 9, 22)) +>m2.m3.c : typeof x.c +>m2.m3 : typeof m2.m3 +>m2 : typeof m2 +>m3 : typeof m2.m3 +>c : typeof x.c diff --git a/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..5c1d8b16afc7b --- /dev/null +++ b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/internalAliasClassInsideLocalModuleWithoutExport.ts === +export module x { +>x : Symbol(x, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 17)) + + foo(a: number) { +>foo : Symbol(foo, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 1, 20)) +>a : Symbol(a, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 2, 12)) + + return a; +>a : Symbol(a, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 2, 12)) + } + } +} + +export module m2 { +>m2 : Symbol(m2, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 6, 1)) + + export module m3 { +>m3 : Symbol(m3, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 8, 18)) + + import c = x.c; +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 9, 22)) +>x : Symbol(x, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 0)) +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 17)) + + export var cProp = new c(); +>cProp : Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 11, 18)) +>c : Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 9, 22)) + + var cReturnVal = cProp.foo(10); +>cReturnVal : Symbol(cReturnVal, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 12, 11)) +>cProp.foo : Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 1, 20)) +>cProp : Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 11, 18)) +>foo : Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 1, 20)) + } +} diff --git a/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.types index caf05da56db19..43f612d3f4423 100644 --- a/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasClassInsideLocalModuleWithoutExport.types @@ -1,42 +1,42 @@ === tests/cases/compiler/internalAliasClassInsideLocalModuleWithoutExport.ts === export module x { ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 0)) +>x : typeof x export class c { ->c : c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 17)) +>c : c foo(a: number) { ->foo : (a: number) => number, Symbol(foo, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 1, 20)) ->a : number, Symbol(a, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 2, 12)) +>foo : (a: number) => number +>a : number return a; ->a : number, Symbol(a, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 2, 12)) +>a : number } } } export module m2 { ->m2 : typeof m2, Symbol(m2, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 6, 1)) +>m2 : typeof m2 export module m3 { ->m3 : typeof m3, Symbol(m3, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 8, 18)) +>m3 : typeof m3 import c = x.c; ->c : typeof c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 9, 22)) ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 0)) ->c : c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 0, 17)) +>c : typeof c +>x : typeof x +>c : c export var cProp = new c(); ->cProp : c, Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 11, 18)) +>cProp : c >new c() : c ->c : typeof c, Symbol(c, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 9, 22)) +>c : typeof c var cReturnVal = cProp.foo(10); ->cReturnVal : number, Symbol(cReturnVal, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 12, 11)) +>cReturnVal : number >cProp.foo(10) : number ->cProp.foo : (a: number) => number, Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 1, 20)) ->cProp : c, Symbol(cProp, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 11, 18)) ->foo : (a: number) => number, Symbol(c.foo, Decl(internalAliasClassInsideLocalModuleWithoutExport.ts, 1, 20)) +>cProp.foo : (a: number) => number +>cProp : c +>foo : (a: number) => number >10 : number } } diff --git a/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..1b4d44307e3d1 --- /dev/null +++ b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/internalAliasClassInsideTopLevelModuleWithExport.ts === +export module x { +>x : Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 17)) + + foo(a: number) { +>foo : Symbol(foo, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 1, 20)) +>a : Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 2, 12)) + + return a; +>a : Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 2, 12)) + } + } +} + +export import xc = x.c; +>xc : Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 6, 1)) +>x : Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 0)) +>c : Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 17)) + +export var cProp = new xc(); +>cProp : Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 9, 10)) +>xc : Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 6, 1)) + +var cReturnVal = cProp.foo(10); +>cReturnVal : Symbol(cReturnVal, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 10, 3)) +>cProp.foo : Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 1, 20)) +>cProp : Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 9, 10)) +>foo : Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 1, 20)) + diff --git a/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.types index a8341e2493506..3d72c04aad6cf 100644 --- a/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithExport.types @@ -1,35 +1,35 @@ === tests/cases/compiler/internalAliasClassInsideTopLevelModuleWithExport.ts === export module x { ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 0)) +>x : typeof x export class c { ->c : c, Symbol(c, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 17)) +>c : c foo(a: number) { ->foo : (a: number) => number, Symbol(foo, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 1, 20)) ->a : number, Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 2, 12)) +>foo : (a: number) => number +>a : number return a; ->a : number, Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 2, 12)) +>a : number } } } export import xc = x.c; ->xc : typeof xc, Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 6, 1)) ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 0)) ->c : xc, Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 0, 17)) +>xc : typeof xc +>x : typeof x +>c : xc export var cProp = new xc(); ->cProp : xc, Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 9, 10)) +>cProp : xc >new xc() : xc ->xc : typeof xc, Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 6, 1)) +>xc : typeof xc var cReturnVal = cProp.foo(10); ->cReturnVal : number, Symbol(cReturnVal, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 10, 3)) +>cReturnVal : number >cProp.foo(10) : number ->cProp.foo : (a: number) => number, Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 1, 20)) ->cProp : xc, Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 9, 10)) ->foo : (a: number) => number, Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithExport.ts, 1, 20)) +>cProp.foo : (a: number) => number +>cProp : xc +>foo : (a: number) => number >10 : number diff --git a/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..b4e720cec94b8 --- /dev/null +++ b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/internalAliasClassInsideTopLevelModuleWithoutExport.ts === +export module x { +>x : Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export class c { +>c : Symbol(c, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 17)) + + foo(a: number) { +>foo : Symbol(foo, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 1, 20)) +>a : Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 2, 12)) + + return a; +>a : Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 2, 12)) + } + } +} + +import xc = x.c; +>xc : Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>x : Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>c : Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 17)) + +export var cProp = new xc(); +>cProp : Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>xc : Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 6, 1)) + +var cReturnVal = cProp.foo(10); +>cReturnVal : Symbol(cReturnVal, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 10, 3)) +>cProp.foo : Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 1, 20)) +>cProp : Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>foo : Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 1, 20)) + diff --git a/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.types index 7d14dec71388a..f816fdce7af61 100644 --- a/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasClassInsideTopLevelModuleWithoutExport.types @@ -1,35 +1,35 @@ === tests/cases/compiler/internalAliasClassInsideTopLevelModuleWithoutExport.ts === export module x { ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>x : typeof x export class c { ->c : c, Symbol(c, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>c : c foo(a: number) { ->foo : (a: number) => number, Symbol(foo, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 1, 20)) ->a : number, Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 2, 12)) +>foo : (a: number) => number +>a : number return a; ->a : number, Symbol(a, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 2, 12)) +>a : number } } } import xc = x.c; ->xc : typeof xc, Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 6, 1)) ->x : typeof x, Symbol(x, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->c : xc, Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>xc : typeof xc +>x : typeof x +>c : xc export var cProp = new xc(); ->cProp : xc, Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>cProp : xc >new xc() : xc ->xc : typeof xc, Symbol(xc, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>xc : typeof xc var cReturnVal = cProp.foo(10); ->cReturnVal : number, Symbol(cReturnVal, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 10, 3)) +>cReturnVal : number >cProp.foo(10) : number ->cProp.foo : (a: number) => number, Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 1, 20)) ->cProp : xc, Symbol(cProp, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 9, 10)) ->foo : (a: number) => number, Symbol(xc.foo, Decl(internalAliasClassInsideTopLevelModuleWithoutExport.ts, 1, 20)) +>cProp.foo : (a: number) => number +>cProp : xc +>foo : (a: number) => number >10 : number diff --git a/tests/baselines/reference/internalAliasEnum.symbols b/tests/baselines/reference/internalAliasEnum.symbols new file mode 100644 index 0000000000000..d08317ae9a78a --- /dev/null +++ b/tests/baselines/reference/internalAliasEnum.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/internalAliasEnum.ts === +module a { +>a : Symbol(a, Decl(internalAliasEnum.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnum.ts, 0, 10)) + + Friday, +>Friday : Symbol(weekend.Friday, Decl(internalAliasEnum.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(weekend.Saturday, Decl(internalAliasEnum.ts, 2, 15)) + + Sunday +>Sunday : Symbol(weekend.Sunday, Decl(internalAliasEnum.ts, 3, 17)) + } +} + +module c { +>c : Symbol(c, Decl(internalAliasEnum.ts, 6, 1)) + + import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnum.ts, 8, 10)) +>a : Symbol(a, Decl(internalAliasEnum.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnum.ts, 0, 10)) + + export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnum.ts, 10, 14)) +>b : Symbol(b, Decl(internalAliasEnum.ts, 8, 10)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnum.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnum.ts, 8, 10)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnum.ts, 3, 17)) +} + diff --git a/tests/baselines/reference/internalAliasEnum.types b/tests/baselines/reference/internalAliasEnum.types index 453fac80d1920..87cab6cc56dee 100644 --- a/tests/baselines/reference/internalAliasEnum.types +++ b/tests/baselines/reference/internalAliasEnum.types @@ -1,34 +1,34 @@ === tests/cases/compiler/internalAliasEnum.ts === module a { ->a : typeof a, Symbol(a, Decl(internalAliasEnum.ts, 0, 0)) +>a : typeof a export enum weekend { ->weekend : weekend, Symbol(weekend, Decl(internalAliasEnum.ts, 0, 10)) +>weekend : weekend Friday, ->Friday : weekend, Symbol(weekend.Friday, Decl(internalAliasEnum.ts, 1, 25)) +>Friday : weekend Saturday, ->Saturday : weekend, Symbol(weekend.Saturday, Decl(internalAliasEnum.ts, 2, 15)) +>Saturday : weekend Sunday ->Sunday : weekend, Symbol(weekend.Sunday, Decl(internalAliasEnum.ts, 3, 17)) +>Sunday : weekend } } module c { ->c : typeof c, Symbol(c, Decl(internalAliasEnum.ts, 6, 1)) +>c : typeof c import b = a.weekend; ->b : typeof b, Symbol(b, Decl(internalAliasEnum.ts, 8, 10)) ->a : typeof a, Symbol(a, Decl(internalAliasEnum.ts, 0, 0)) ->weekend : b, Symbol(b, Decl(internalAliasEnum.ts, 0, 10)) +>b : typeof b +>a : typeof a +>weekend : b export var bVal: b = b.Sunday; ->bVal : b, Symbol(bVal, Decl(internalAliasEnum.ts, 10, 14)) ->b : b, Symbol(b, Decl(internalAliasEnum.ts, 8, 10)) ->b.Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnum.ts, 3, 17)) ->b : typeof b, Symbol(b, Decl(internalAliasEnum.ts, 8, 10)) ->Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnum.ts, 3, 17)) +>bVal : b +>b : b +>b.Sunday : b +>b : typeof b +>Sunday : b } diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..84b7cb44f4827 --- /dev/null +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/internalAliasEnumInsideLocalModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 17)) + + Friday, +>Friday : Symbol(weekend.Friday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(weekend.Saturday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 2, 15)) + + Sunday +>Sunday : Symbol(weekend.Sunday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 3, 17)) + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 6, 1)) + + export import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 8, 17)) +>a : Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 17)) + + export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 10, 14)) +>b : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 8, 17)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 8, 17)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 3, 17)) +} + diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types index c326768c0242c..0d09b930f9533 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithExport.types @@ -1,34 +1,34 @@ === tests/cases/compiler/internalAliasEnumInsideLocalModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 0)) +>a : typeof a export enum weekend { ->weekend : weekend, Symbol(weekend, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 17)) +>weekend : weekend Friday, ->Friday : weekend, Symbol(weekend.Friday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 1, 25)) +>Friday : weekend Saturday, ->Saturday : weekend, Symbol(weekend.Saturday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 2, 15)) +>Saturday : weekend Sunday ->Sunday : weekend, Symbol(weekend.Sunday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 3, 17)) +>Sunday : weekend } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 6, 1)) +>c : typeof c export import b = a.weekend; ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 8, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 0)) ->weekend : b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>weekend : b export var bVal: b = b.Sunday; ->bVal : b, Symbol(bVal, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 10, 14)) ->b : b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 8, 17)) ->b.Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 3, 17)) ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 8, 17)) ->Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithExport.ts, 3, 17)) +>bVal : b +>b : b +>b.Sunday : b +>b : typeof b +>Sunday : b } diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..c9e77221b6cb7 --- /dev/null +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/internalAliasEnumInsideLocalModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 17)) + + Friday, +>Friday : Symbol(weekend.Friday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(weekend.Saturday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 2, 15)) + + Sunday +>Sunday : Symbol(weekend.Sunday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 3, 17)) + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 6, 1)) + + import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 8, 17)) +>a : Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 17)) + + export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 10, 14)) +>b : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 8, 17)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 8, 17)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 3, 17)) +} + diff --git a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types index ff55a7a4ffcec..881e51324af81 100644 --- a/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideLocalModuleWithoutExport.types @@ -1,34 +1,34 @@ === tests/cases/compiler/internalAliasEnumInsideLocalModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 0)) +>a : typeof a export enum weekend { ->weekend : weekend, Symbol(weekend, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 17)) +>weekend : weekend Friday, ->Friday : weekend, Symbol(weekend.Friday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 1, 25)) +>Friday : weekend Saturday, ->Saturday : weekend, Symbol(weekend.Saturday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 2, 15)) +>Saturday : weekend Sunday ->Sunday : weekend, Symbol(weekend.Sunday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 3, 17)) +>Sunday : weekend } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 6, 1)) +>c : typeof c import b = a.weekend; ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 8, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 0)) ->weekend : b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>weekend : b export var bVal: b = b.Sunday; ->bVal : b, Symbol(bVal, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 10, 14)) ->b : b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 8, 17)) ->b.Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 3, 17)) ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 8, 17)) ->Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideLocalModuleWithoutExport.ts, 3, 17)) +>bVal : b +>b : b +>b.Sunday : b +>b : typeof b +>Sunday : b } diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..404dceb8507b9 --- /dev/null +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 17)) + + Friday, +>Friday : Symbol(b.Friday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(b.Saturday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 2, 15)) + + Sunday +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) + } +} + +export import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 17)) + +export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) + diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types index 87cd6bde183d7..8458d885738d3 100644 --- a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithExport.types @@ -1,30 +1,30 @@ === tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 0)) +>a : typeof a export enum weekend { ->weekend : weekend, Symbol(weekend, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 17)) +>weekend : weekend Friday, ->Friday : weekend, Symbol(b.Friday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 1, 25)) +>Friday : weekend Saturday, ->Saturday : weekend, Symbol(b.Saturday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 2, 15)) +>Saturday : weekend Sunday ->Sunday : weekend, Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) +>Sunday : weekend } } export import b = a.weekend; ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 0)) ->weekend : b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>weekend : b export var bVal: b = b.Sunday; ->bVal : b, Symbol(bVal, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 9, 10)) ->b : b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) ->b.Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 6, 1)) ->Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithExport.ts, 3, 17)) +>bVal : b +>b : b +>b.Sunday : b +>b : typeof b +>Sunday : b diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..ca69a0f318167 --- /dev/null +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export enum weekend { +>weekend : Symbol(weekend, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 17)) + + Friday, +>Friday : Symbol(b.Friday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 1, 25)) + + Saturday, +>Saturday : Symbol(b.Saturday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 2, 15)) + + Sunday +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) + } +} + +import b = a.weekend; +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>weekend : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 17)) + +export var bVal: b = b.Sunday; +>bVal : Symbol(bVal, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>b.Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) +>b : Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>Sunday : Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) + diff --git a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types index 00ebd1d45d4f5..6e75bd81bdf89 100644 --- a/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasEnumInsideTopLevelModuleWithoutExport.types @@ -1,30 +1,30 @@ === tests/cases/compiler/internalAliasEnumInsideTopLevelModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>a : typeof a export enum weekend { ->weekend : weekend, Symbol(weekend, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>weekend : weekend Friday, ->Friday : weekend, Symbol(b.Friday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 1, 25)) +>Friday : weekend Saturday, ->Saturday : weekend, Symbol(b.Saturday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 2, 15)) +>Saturday : weekend Sunday ->Sunday : weekend, Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) +>Sunday : weekend } } import b = a.weekend; ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->weekend : b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>weekend : b export var bVal: b = b.Sunday; ->bVal : b, Symbol(bVal, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 9, 10)) ->b : b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) ->b.Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) ->b : typeof b, Symbol(b, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 6, 1)) ->Sunday : b, Symbol(b.Sunday, Decl(internalAliasEnumInsideTopLevelModuleWithoutExport.ts, 3, 17)) +>bVal : b +>b : b +>b.Sunday : b +>b : typeof b +>Sunday : b diff --git a/tests/baselines/reference/internalAliasFunction.symbols b/tests/baselines/reference/internalAliasFunction.symbols new file mode 100644 index 0000000000000..cae4be7d574c0 --- /dev/null +++ b/tests/baselines/reference/internalAliasFunction.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/internalAliasFunction.ts === +module a { +>a : Symbol(a, Decl(internalAliasFunction.ts, 0, 0)) + + export function foo(x: number) { +>foo : Symbol(foo, Decl(internalAliasFunction.ts, 0, 10)) +>x : Symbol(x, Decl(internalAliasFunction.ts, 1, 24)) + + return x; +>x : Symbol(x, Decl(internalAliasFunction.ts, 1, 24)) + } +} + +module c { +>c : Symbol(c, Decl(internalAliasFunction.ts, 4, 1)) + + import b = a.foo; +>b : Symbol(b, Decl(internalAliasFunction.ts, 6, 10)) +>a : Symbol(a, Decl(internalAliasFunction.ts, 0, 0)) +>foo : Symbol(b, Decl(internalAliasFunction.ts, 0, 10)) + + export var bVal = b(10); +>bVal : Symbol(bVal, Decl(internalAliasFunction.ts, 8, 14)) +>b : Symbol(b, Decl(internalAliasFunction.ts, 6, 10)) + + export var bVal2 = b; +>bVal2 : Symbol(bVal2, Decl(internalAliasFunction.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasFunction.ts, 6, 10)) +} + diff --git a/tests/baselines/reference/internalAliasFunction.types b/tests/baselines/reference/internalAliasFunction.types index dcaf6d607f908..d67535c76f78e 100644 --- a/tests/baselines/reference/internalAliasFunction.types +++ b/tests/baselines/reference/internalAliasFunction.types @@ -1,32 +1,32 @@ === tests/cases/compiler/internalAliasFunction.ts === module a { ->a : typeof a, Symbol(a, Decl(internalAliasFunction.ts, 0, 0)) +>a : typeof a export function foo(x: number) { ->foo : (x: number) => number, Symbol(foo, Decl(internalAliasFunction.ts, 0, 10)) ->x : number, Symbol(x, Decl(internalAliasFunction.ts, 1, 24)) +>foo : (x: number) => number +>x : number return x; ->x : number, Symbol(x, Decl(internalAliasFunction.ts, 1, 24)) +>x : number } } module c { ->c : typeof c, Symbol(c, Decl(internalAliasFunction.ts, 4, 1)) +>c : typeof c import b = a.foo; ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunction.ts, 6, 10)) ->a : typeof a, Symbol(a, Decl(internalAliasFunction.ts, 0, 0)) ->foo : (x: number) => number, Symbol(b, Decl(internalAliasFunction.ts, 0, 10)) +>b : (x: number) => number +>a : typeof a +>foo : (x: number) => number export var bVal = b(10); ->bVal : number, Symbol(bVal, Decl(internalAliasFunction.ts, 8, 14)) +>bVal : number >b(10) : number ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunction.ts, 6, 10)) +>b : (x: number) => number >10 : number export var bVal2 = b; ->bVal2 : (x: number) => number, Symbol(bVal2, Decl(internalAliasFunction.ts, 9, 14)) ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunction.ts, 6, 10)) +>bVal2 : (x: number) => number +>b : (x: number) => number } diff --git a/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..82fa9b118e0a6 --- /dev/null +++ b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/internalAliasFunctionInsideLocalModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 0)) + + export function foo(x: number) { +>foo : Symbol(foo, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 17)) +>x : Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 1, 24)) + + return x; +>x : Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 1, 24)) + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 4, 1)) + + export import b = a.foo; +>b : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 6, 17)) +>a : Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 0)) +>foo : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 17)) + + export var bVal = b(10); +>bVal : Symbol(bVal, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 8, 14)) +>b : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 6, 17)) + + export var bVal2 = b; +>bVal2 : Symbol(bVal2, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 6, 17)) +} + diff --git a/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.types index e2f8fa99e50fa..928d8530228a9 100644 --- a/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithExport.types @@ -1,32 +1,32 @@ === tests/cases/compiler/internalAliasFunctionInsideLocalModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 0)) +>a : typeof a export function foo(x: number) { ->foo : (x: number) => number, Symbol(foo, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 17)) ->x : number, Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 1, 24)) +>foo : (x: number) => number +>x : number return x; ->x : number, Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 1, 24)) +>x : number } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 4, 1)) +>c : typeof c export import b = a.foo; ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 6, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 0)) ->foo : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 0, 17)) +>b : (x: number) => number +>a : typeof a +>foo : (x: number) => number export var bVal = b(10); ->bVal : number, Symbol(bVal, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 8, 14)) +>bVal : number >b(10) : number ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 6, 17)) +>b : (x: number) => number >10 : number export var bVal2 = b; ->bVal2 : (x: number) => number, Symbol(bVal2, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 9, 14)) ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithExport.ts, 6, 17)) +>bVal2 : (x: number) => number +>b : (x: number) => number } diff --git a/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..4fe034d91a673 --- /dev/null +++ b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/internalAliasFunctionInsideLocalModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 0)) + + export function foo(x: number) { +>foo : Symbol(foo, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 17)) +>x : Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 1, 24)) + + return x; +>x : Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 1, 24)) + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 4, 1)) + + import b = a.foo; +>b : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 6, 17)) +>a : Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 0)) +>foo : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 17)) + + var bVal = b(10); +>bVal : Symbol(bVal, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 8, 7)) +>b : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 6, 17)) + + export var bVal2 = b; +>bVal2 : Symbol(bVal2, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 6, 17)) +} + diff --git a/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.types index d51bef76a438c..630be11c71ece 100644 --- a/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasFunctionInsideLocalModuleWithoutExport.types @@ -1,32 +1,32 @@ === tests/cases/compiler/internalAliasFunctionInsideLocalModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 0)) +>a : typeof a export function foo(x: number) { ->foo : (x: number) => number, Symbol(foo, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 17)) ->x : number, Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 1, 24)) +>foo : (x: number) => number +>x : number return x; ->x : number, Symbol(x, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 1, 24)) +>x : number } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 4, 1)) +>c : typeof c import b = a.foo; ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 6, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 0)) ->foo : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : (x: number) => number +>a : typeof a +>foo : (x: number) => number var bVal = b(10); ->bVal : number, Symbol(bVal, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 8, 7)) +>bVal : number >b(10) : number ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 6, 17)) +>b : (x: number) => number >10 : number export var bVal2 = b; ->bVal2 : (x: number) => number, Symbol(bVal2, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 9, 14)) ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideLocalModuleWithoutExport.ts, 6, 17)) +>bVal2 : (x: number) => number +>b : (x: number) => number } diff --git a/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..9281660ddd50c --- /dev/null +++ b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 0)) + + export function foo(x: number) { +>foo : Symbol(foo, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 17)) +>x : Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 1, 24)) + + return x; +>x : Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 1, 24)) + } +} + +export import b = a.foo; +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) +>a : Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 0)) +>foo : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 17)) + +export var bVal = b(10); +>bVal : Symbol(bVal, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 7, 10)) +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) + +export var bVal2 = b; +>bVal2 : Symbol(bVal2, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 8, 10)) +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) + diff --git a/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.types index 1c871f008d8af..c1e9f9af3d7f5 100644 --- a/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithExport.types @@ -1,28 +1,28 @@ === tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 0)) +>a : typeof a export function foo(x: number) { ->foo : (x: number) => number, Symbol(foo, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 17)) ->x : number, Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 1, 24)) +>foo : (x: number) => number +>x : number return x; ->x : number, Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 1, 24)) +>x : number } } export import b = a.foo; ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 0)) ->foo : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : (x: number) => number +>a : typeof a +>foo : (x: number) => number export var bVal = b(10); ->bVal : number, Symbol(bVal, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 7, 10)) +>bVal : number >b(10) : number ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) +>b : (x: number) => number >10 : number export var bVal2 = b; ->bVal2 : (x: number) => number, Symbol(bVal2, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 8, 10)) ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithExport.ts, 4, 1)) +>bVal2 : (x: number) => number +>b : (x: number) => number diff --git a/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..ff079a3492021 --- /dev/null +++ b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export function foo(x: number) { +>foo : Symbol(foo, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>x : Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 1, 24)) + + return x; +>x : Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 1, 24)) + } +} + +import b = a.foo; +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 4, 1)) +>a : Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>foo : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 17)) + +export var bVal = b(10); +>bVal : Symbol(bVal, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 7, 10)) +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 4, 1)) + +export var bVal2 = b; +>bVal2 : Symbol(bVal2, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 8, 10)) +>b : Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 4, 1)) + diff --git a/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.types index dc6c313263186..bca35e33dec78 100644 --- a/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasFunctionInsideTopLevelModuleWithoutExport.types @@ -1,28 +1,28 @@ === tests/cases/compiler/internalAliasFunctionInsideTopLevelModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>a : typeof a export function foo(x: number) { ->foo : (x: number) => number, Symbol(foo, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 17)) ->x : number, Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 1, 24)) +>foo : (x: number) => number +>x : number return x; ->x : number, Symbol(x, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 1, 24)) +>x : number } } import b = a.foo; ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 4, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->foo : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : (x: number) => number +>a : typeof a +>foo : (x: number) => number export var bVal = b(10); ->bVal : number, Symbol(bVal, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 7, 10)) +>bVal : number >b(10) : number ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 4, 1)) +>b : (x: number) => number >10 : number export var bVal2 = b; ->bVal2 : (x: number) => number, Symbol(bVal2, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 8, 10)) ->b : (x: number) => number, Symbol(b, Decl(internalAliasFunctionInsideTopLevelModuleWithoutExport.ts, 4, 1)) +>bVal2 : (x: number) => number +>b : (x: number) => number diff --git a/tests/baselines/reference/internalAliasInitializedModule.symbols b/tests/baselines/reference/internalAliasInitializedModule.symbols new file mode 100644 index 0000000000000..0487879019e58 --- /dev/null +++ b/tests/baselines/reference/internalAliasInitializedModule.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/internalAliasInitializedModule.ts === +module a { +>a : Symbol(a, Decl(internalAliasInitializedModule.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasInitializedModule.ts, 0, 10)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModule.ts, 1, 21)) + } + } +} + +module c { +>c : Symbol(c, Decl(internalAliasInitializedModule.ts, 5, 1)) + + import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModule.ts, 7, 10)) +>a : Symbol(a, Decl(internalAliasInitializedModule.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModule.ts, 0, 10)) + + export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModule.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasInitializedModule.ts, 7, 10)) +>c : Symbol(b.c, Decl(internalAliasInitializedModule.ts, 1, 21)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModule.ts, 1, 21)) +>b : Symbol(b, Decl(internalAliasInitializedModule.ts, 7, 10)) +>c : Symbol(b.c, Decl(internalAliasInitializedModule.ts, 1, 21)) +} diff --git a/tests/baselines/reference/internalAliasInitializedModule.types b/tests/baselines/reference/internalAliasInitializedModule.types index 66dba14ff7671..0e7c965018267 100644 --- a/tests/baselines/reference/internalAliasInitializedModule.types +++ b/tests/baselines/reference/internalAliasInitializedModule.types @@ -1,30 +1,30 @@ === tests/cases/compiler/internalAliasInitializedModule.ts === module a { ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModule.ts, 0, 0)) +>a : typeof a export module b { ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModule.ts, 0, 10)) +>b : typeof b export class c { ->c : c, Symbol(c, Decl(internalAliasInitializedModule.ts, 1, 21)) +>c : c } } } module c { ->c : typeof c, Symbol(c, Decl(internalAliasInitializedModule.ts, 5, 1)) +>c : typeof c import b = a.b; ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModule.ts, 7, 10)) ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModule.ts, 0, 0)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModule.ts, 0, 10)) +>b : typeof b +>a : typeof a +>b : typeof b export var x: b.c = new b.c(); ->x : b.c, Symbol(x, Decl(internalAliasInitializedModule.ts, 9, 14)) ->b : any, Symbol(b, Decl(internalAliasInitializedModule.ts, 7, 10)) ->c : b.c, Symbol(b.c, Decl(internalAliasInitializedModule.ts, 1, 21)) +>x : b.c +>b : any +>c : b.c >new b.c() : b.c ->b.c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModule.ts, 1, 21)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModule.ts, 7, 10)) ->c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModule.ts, 1, 21)) +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c } diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..35b121410e4c6 --- /dev/null +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) + } + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 5, 1)) + + export import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 17)) +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) + + export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 17)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 17)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +} diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.types index 70aec7ce7ebd0..302ac5ada4313 100644 --- a/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithExport.types @@ -1,30 +1,30 @@ === tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) +>a : typeof a export module b { ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) +>b : typeof b export class c { ->c : c, Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>c : c } } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 5, 1)) +>c : typeof c export import b = a.b; ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>b : typeof b export var x: b.c = new b.c(); ->x : b.c, Symbol(x, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 9, 14)) ->b : any, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 17)) ->c : b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>x : b.c +>b : any +>c : b.c >new b.c() : b.c ->b.c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 7, 17)) ->c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c } diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..539874f4534c1 --- /dev/null +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) + } + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 5, 1)) + + import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 7, 17)) +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) + + export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 9, 14)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 7, 17)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 7, 17)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +} diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.types index 0c9c67093fb55..f5ea07fb744cf 100644 --- a/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideLocalModuleWithoutExport.types @@ -1,30 +1,30 @@ === tests/cases/compiler/internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) +>a : typeof a export module b { ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : typeof b export class c { ->c : c, Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>c : c } } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 5, 1)) +>c : typeof c import b = a.b; ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 7, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>b : typeof b export var x: b.c = new b.c(); ->x : b.c, Symbol(x, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 9, 14)) ->b : any, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 7, 17)) ->c : b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>x : b.c +>b : any +>c : b.c >new b.c() : b.c ->b.c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 7, 17)) ->c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c } diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..78b6ee2858973 --- /dev/null +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) + } + } +} + +export import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 5, 1)) +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) + +export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 8, 10)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 5, 1)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 5, 1)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) + diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.types index e3c5c61d9679c..f6ba838f3d794 100644 --- a/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithExport.types @@ -1,27 +1,27 @@ === tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) +>a : typeof a export module b { ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : typeof b export class c { ->c : c, Symbol(c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>c : c } } } export import b = a.b; ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 5, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>b : typeof b export var x: b.c = new b.c(); ->x : b.c, Symbol(x, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 8, 10)) ->b : any, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 5, 1)) ->c : b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>x : b.c +>b : any +>c : b.c >new b.c() : b.c ->b.c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 5, 1)) ->c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..ec49c87d61749 --- /dev/null +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) + + export class c { +>c : Symbol(c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) + } + } +} + +import b = a.b; +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) +>a : Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) + +export var x: b.c = new b.c(); +>x : Symbol(x, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 8, 10)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>b.c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>b : Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) +>c : Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) + diff --git a/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types index d741c8a4f0125..b15bb6dc8ec4c 100644 --- a/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.types @@ -1,27 +1,27 @@ === tests/cases/compiler/internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>a : typeof a export module b { ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : typeof b export class c { ->c : c, Symbol(c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>c : c } } } import b = a.b; ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : typeof b +>a : typeof a +>b : typeof b export var x: b.c = new b.c(); ->x : b.c, Symbol(x, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 8, 10)) ->b : any, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) ->c : b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>x : b.c +>b : any +>c : b.c >new b.c() : b.c ->b.c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) ->b : typeof b, Symbol(b, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 5, 1)) ->c : typeof b.c, Symbol(b.c, Decl(internalAliasInitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>b.c : typeof b.c +>b : typeof b +>c : typeof b.c diff --git a/tests/baselines/reference/internalAliasInterface.symbols b/tests/baselines/reference/internalAliasInterface.symbols new file mode 100644 index 0000000000000..f4c3d493c6fa9 --- /dev/null +++ b/tests/baselines/reference/internalAliasInterface.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/internalAliasInterface.ts === +module a { +>a : Symbol(a, Decl(internalAliasInterface.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterface.ts, 0, 10)) + } +} + +module c { +>c : Symbol(c, Decl(internalAliasInterface.ts, 3, 1)) + + import b = a.I; +>b : Symbol(b, Decl(internalAliasInterface.ts, 5, 10)) +>a : Symbol(a, Decl(internalAliasInterface.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterface.ts, 0, 10)) + + export var x: b; +>x : Symbol(x, Decl(internalAliasInterface.ts, 7, 14)) +>b : Symbol(b, Decl(internalAliasInterface.ts, 5, 10)) +} + diff --git a/tests/baselines/reference/internalAliasInterface.types b/tests/baselines/reference/internalAliasInterface.types index 9d36cff1bb572..fdb60eee7ceb9 100644 --- a/tests/baselines/reference/internalAliasInterface.types +++ b/tests/baselines/reference/internalAliasInterface.types @@ -1,22 +1,22 @@ === tests/cases/compiler/internalAliasInterface.ts === module a { ->a : any, Symbol(a, Decl(internalAliasInterface.ts, 0, 0)) +>a : any export interface I { ->I : I, Symbol(I, Decl(internalAliasInterface.ts, 0, 10)) +>I : I } } module c { ->c : typeof c, Symbol(c, Decl(internalAliasInterface.ts, 3, 1)) +>c : typeof c import b = a.I; ->b : any, Symbol(b, Decl(internalAliasInterface.ts, 5, 10)) ->a : any, Symbol(a, Decl(internalAliasInterface.ts, 0, 0)) ->I : b, Symbol(b, Decl(internalAliasInterface.ts, 0, 10)) +>b : any +>a : any +>I : b export var x: b; ->x : b, Symbol(x, Decl(internalAliasInterface.ts, 7, 14)) ->b : b, Symbol(b, Decl(internalAliasInterface.ts, 5, 10)) +>x : b +>b : b } diff --git a/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..d2455d8234349 --- /dev/null +++ b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 17)) + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 3, 1)) + + export import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 5, 17)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 17)) + + export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 7, 14)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 5, 17)) +} + diff --git a/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.types index 52f8b642eaf72..84dae24aeb6ba 100644 --- a/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithExport.types @@ -1,22 +1,22 @@ === tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 0)) +>a : any export interface I { ->I : I, Symbol(I, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 17)) +>I : I } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 3, 1)) +>c : typeof c export import b = a.I; ->b : any, Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 5, 17)) ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 0)) ->I : b, Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 0, 17)) +>b : any +>a : any +>I : b export var x: b; ->x : b, Symbol(x, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 7, 14)) ->b : b, Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithExport.ts, 5, 17)) +>x : b +>b : b } diff --git a/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..00aa21e52fa88 --- /dev/null +++ b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 17)) + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 3, 1)) + + import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 5, 17)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 17)) + + export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 7, 14)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 5, 17)) +} + diff --git a/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.types index 8e03dc23cb6ba..f236f9b49a869 100644 --- a/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasInterfaceInsideLocalModuleWithoutExport.types @@ -1,22 +1,22 @@ === tests/cases/compiler/internalAliasInterfaceInsideLocalModuleWithoutExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 0)) +>a : any export interface I { ->I : I, Symbol(I, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 17)) +>I : I } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 3, 1)) +>c : typeof c import b = a.I; ->b : any, Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 5, 17)) ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 0)) ->I : b, Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : any +>a : any +>I : b export var x: b; ->x : b, Symbol(x, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 7, 14)) ->b : b, Symbol(b, Decl(internalAliasInterfaceInsideLocalModuleWithoutExport.ts, 5, 17)) +>x : b +>b : b } diff --git a/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..3947509fad3a6 --- /dev/null +++ b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 17)) + } +} + +export import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 3, 1)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 17)) + +export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 6, 10)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 3, 1)) + diff --git a/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.types index 2f1222ec0af9a..365c526383cd0 100644 --- a/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithExport.types @@ -1,18 +1,18 @@ === tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 0)) +>a : any export interface I { ->I : I, Symbol(I, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 17)) +>I : I } } export import b = a.I; ->b : any, Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 3, 1)) ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 0)) ->I : b, Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : any +>a : any +>I : b export var x: b; ->x : b, Symbol(x, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 6, 10)) ->b : b, Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithExport.ts, 3, 1)) +>x : b +>b : b diff --git a/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..9561b8617313a --- /dev/null +++ b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export interface I { +>I : Symbol(I, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 17)) + } +} + +import b = a.I; +>b : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 3, 1)) +>a : Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>I : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 17)) + +export var x: b; +>x : Symbol(x, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 6, 10)) +>b : Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 3, 1)) + diff --git a/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types index 8d92865b68b35..2a8ee86a7f7ed 100644 --- a/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasInterfaceInsideTopLevelModuleWithoutExport.types @@ -1,18 +1,18 @@ === tests/cases/compiler/internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>a : any export interface I { ->I : I, Symbol(I, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>I : I } } import b = a.I; ->b : any, Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 3, 1)) ->a : any, Symbol(a, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->I : b, Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : any +>a : any +>I : b export var x: b; ->x : b, Symbol(x, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 6, 10)) ->b : b, Symbol(b, Decl(internalAliasInterfaceInsideTopLevelModuleWithoutExport.ts, 3, 1)) +>x : b +>b : b diff --git a/tests/baselines/reference/internalAliasUninitializedModule.symbols b/tests/baselines/reference/internalAliasUninitializedModule.symbols new file mode 100644 index 0000000000000..95af5c5699d87 --- /dev/null +++ b/tests/baselines/reference/internalAliasUninitializedModule.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/internalAliasUninitializedModule.ts === +module a { +>a : Symbol(a, Decl(internalAliasUninitializedModule.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasUninitializedModule.ts, 0, 10)) + + export interface I { +>I : Symbol(I, Decl(internalAliasUninitializedModule.ts, 1, 21)) + + foo(); +>foo : Symbol(foo, Decl(internalAliasUninitializedModule.ts, 2, 28)) + } + } +} + +module c { +>c : Symbol(c, Decl(internalAliasUninitializedModule.ts, 6, 1)) + + import b = a.b; +>b : Symbol(b, Decl(internalAliasUninitializedModule.ts, 8, 10)) +>a : Symbol(a, Decl(internalAliasUninitializedModule.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasUninitializedModule.ts, 0, 10)) + + export var x: b.I; +>x : Symbol(x, Decl(internalAliasUninitializedModule.ts, 10, 14)) +>b : Symbol(b, Decl(internalAliasUninitializedModule.ts, 8, 10)) +>I : Symbol(b.I, Decl(internalAliasUninitializedModule.ts, 1, 21)) + + x.foo(); +>x.foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModule.ts, 2, 28)) +>x : Symbol(x, Decl(internalAliasUninitializedModule.ts, 10, 14)) +>foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModule.ts, 2, 28)) +} diff --git a/tests/baselines/reference/internalAliasUninitializedModule.types b/tests/baselines/reference/internalAliasUninitializedModule.types index 3b2ad0561c0e9..6599fd0fda0c9 100644 --- a/tests/baselines/reference/internalAliasUninitializedModule.types +++ b/tests/baselines/reference/internalAliasUninitializedModule.types @@ -1,35 +1,35 @@ === tests/cases/compiler/internalAliasUninitializedModule.ts === module a { ->a : any, Symbol(a, Decl(internalAliasUninitializedModule.ts, 0, 0)) +>a : any export module b { ->b : any, Symbol(b, Decl(internalAliasUninitializedModule.ts, 0, 10)) +>b : any export interface I { ->I : I, Symbol(I, Decl(internalAliasUninitializedModule.ts, 1, 21)) +>I : I foo(); ->foo : () => any, Symbol(foo, Decl(internalAliasUninitializedModule.ts, 2, 28)) +>foo : () => any } } } module c { ->c : typeof c, Symbol(c, Decl(internalAliasUninitializedModule.ts, 6, 1)) +>c : typeof c import b = a.b; ->b : any, Symbol(b, Decl(internalAliasUninitializedModule.ts, 8, 10)) ->a : any, Symbol(a, Decl(internalAliasUninitializedModule.ts, 0, 0)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModule.ts, 0, 10)) +>b : any +>a : any +>b : any export var x: b.I; ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModule.ts, 10, 14)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModule.ts, 8, 10)) ->I : b.I, Symbol(b.I, Decl(internalAliasUninitializedModule.ts, 1, 21)) +>x : b.I +>b : any +>I : b.I x.foo(); >x.foo() : any ->x.foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModule.ts, 2, 28)) ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModule.ts, 10, 14)) ->foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModule.ts, 2, 28)) +>x.foo : () => any +>x : b.I +>foo : () => any } diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..861859ce2ea8f --- /dev/null +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/internalAliasUninitializedModuleInsideLocalModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) + + export interface I { +>I : Symbol(I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) + + foo(); +>foo : Symbol(foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 2, 28)) + } + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 6, 1)) + + export import b = a.b; +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 8, 17)) +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) + + export var x: b.I; +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 10, 14)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 8, 17)) +>I : Symbol(b.I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) + + x.foo(); +>x.foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 2, 28)) +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 10, 14)) +>foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 2, 28)) +} diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.types index bfce1b68b51ff..d54620658e6f3 100644 --- a/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithExport.types @@ -1,35 +1,35 @@ === tests/cases/compiler/internalAliasUninitializedModuleInsideLocalModuleWithExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) +>a : any export module b { ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) +>b : any export interface I { ->I : I, Symbol(I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>I : I foo(); ->foo : () => any, Symbol(foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 2, 28)) +>foo : () => any } } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 6, 1)) +>c : typeof c export import b = a.b; ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 8, 17)) ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 0)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 0, 17)) +>b : any +>a : any +>b : any export var x: b.I; ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 10, 14)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 8, 17)) ->I : b.I, Symbol(b.I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 1, 21)) +>x : b.I +>b : any +>I : b.I x.foo(); >x.foo() : any ->x.foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 2, 28)) ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 10, 14)) ->foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithExport.ts, 2, 28)) +>x.foo : () => any +>x : b.I +>foo : () => any } diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..433426c9fd9bb --- /dev/null +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) + + export interface I { +>I : Symbol(I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) + + foo(); +>foo : Symbol(foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 2, 28)) + } + } +} + +export module c { +>c : Symbol(c, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 6, 1)) + + import b = a.b; +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 8, 17)) +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) + + export var x: b.I; +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 10, 14)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 8, 17)) +>I : Symbol(b.I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) + + x.foo(); +>x.foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 2, 28)) +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 10, 14)) +>foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 2, 28)) +} diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.types index ab2911013f495..9bb409b22e1e3 100644 --- a/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.types @@ -1,35 +1,35 @@ === tests/cases/compiler/internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) +>a : any export module b { ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : any export interface I { ->I : I, Symbol(I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>I : I foo(); ->foo : () => any, Symbol(foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 2, 28)) +>foo : () => any } } } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 6, 1)) +>c : typeof c import b = a.b; ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 8, 17)) ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 0)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 0, 17)) +>b : any +>a : any +>b : any export var x: b.I; ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 10, 14)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 8, 17)) ->I : b.I, Symbol(b.I, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 1, 21)) +>x : b.I +>b : any +>I : b.I x.foo(); >x.foo() : any ->x.foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 2, 28)) ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 10, 14)) ->foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideLocalModuleWithoutExport.ts, 2, 28)) +>x.foo : () => any +>x : b.I +>foo : () => any } diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..14428deac437c --- /dev/null +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) + + export interface I { +>I : Symbol(I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) + + foo(); +>foo : Symbol(foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) + } + } +} + +export import b = a.b; +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) + +export var x: b.I; +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 6, 1)) +>I : Symbol(b.I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) + +x.foo(); +>x.foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 9, 10)) +>foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) + diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types index e90625d4f57f5..dbca81bf40b08 100644 --- a/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.types @@ -1,32 +1,32 @@ === tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) +>a : any export module b { ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : any export interface I { ->I : I, Symbol(I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>I : I foo(); ->foo : () => any, Symbol(foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) +>foo : () => any } } } export import b = a.b; ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 6, 1)) ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 0)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 0, 17)) +>b : any +>a : any +>b : any export var x: b.I; ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 9, 10)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 6, 1)) ->I : b.I, Symbol(b.I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 1, 21)) +>x : b.I +>b : any +>I : b.I x.foo(); >x.foo() : any ->x.foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 9, 10)) ->foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithExport.ts, 2, 28)) +>x.foo : () => any +>x : b.I +>foo : () => any diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..cd17daeb0230e --- /dev/null +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export module b { +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) + + export interface I { +>I : Symbol(I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) + + foo(); +>foo : Symbol(foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 2, 28)) + } + } +} + +import b = a.b; +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>a : Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) + +export var x: b.I; +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>b : Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 6, 1)) +>I : Symbol(b.I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) + +x.foo(); +>x.foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 2, 28)) +>x : Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 9, 10)) +>foo : Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 2, 28)) + diff --git a/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.types index 3623542056d05..a2b0704929552 100644 --- a/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.types @@ -1,32 +1,32 @@ === tests/cases/compiler/internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts === export module a { ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>a : any export module b { ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : any export interface I { ->I : I, Symbol(I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>I : I foo(); ->foo : () => any, Symbol(foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 2, 28)) +>foo : () => any } } } import b = a.b; ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 6, 1)) ->a : any, Symbol(a, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 0, 17)) +>b : any +>a : any +>b : any export var x: b.I; ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 9, 10)) ->b : any, Symbol(b, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 6, 1)) ->I : b.I, Symbol(b.I, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 1, 21)) +>x : b.I +>b : any +>I : b.I x.foo(); >x.foo() : any ->x.foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 2, 28)) ->x : b.I, Symbol(x, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 9, 10)) ->foo : () => any, Symbol(b.I.foo, Decl(internalAliasUninitializedModuleInsideTopLevelModuleWithoutExport.ts, 2, 28)) +>x.foo : () => any +>x : b.I +>foo : () => any diff --git a/tests/baselines/reference/internalAliasVar.symbols b/tests/baselines/reference/internalAliasVar.symbols new file mode 100644 index 0000000000000..52b1d3233f504 --- /dev/null +++ b/tests/baselines/reference/internalAliasVar.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/internalAliasVar.ts === +module a { +>a : Symbol(a, Decl(internalAliasVar.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVar.ts, 1, 14)) +} + +module c { +>c : Symbol(c, Decl(internalAliasVar.ts, 2, 1)) + + import b = a.x; +>b : Symbol(b, Decl(internalAliasVar.ts, 4, 10)) +>a : Symbol(a, Decl(internalAliasVar.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVar.ts, 1, 14)) + + export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVar.ts, 6, 14)) +>b : Symbol(b, Decl(internalAliasVar.ts, 4, 10)) +} + diff --git a/tests/baselines/reference/internalAliasVar.types b/tests/baselines/reference/internalAliasVar.types index 644f7f050b6cc..59da851b569bf 100644 --- a/tests/baselines/reference/internalAliasVar.types +++ b/tests/baselines/reference/internalAliasVar.types @@ -1,22 +1,22 @@ === tests/cases/compiler/internalAliasVar.ts === module a { ->a : typeof a, Symbol(a, Decl(internalAliasVar.ts, 0, 0)) +>a : typeof a export var x = 10; ->x : number, Symbol(x, Decl(internalAliasVar.ts, 1, 14)) +>x : number >10 : number } module c { ->c : typeof c, Symbol(c, Decl(internalAliasVar.ts, 2, 1)) +>c : typeof c import b = a.x; ->b : number, Symbol(b, Decl(internalAliasVar.ts, 4, 10)) ->a : typeof a, Symbol(a, Decl(internalAliasVar.ts, 0, 0)) ->x : number, Symbol(b, Decl(internalAliasVar.ts, 1, 14)) +>b : number +>a : typeof a +>x : number export var bVal = b; ->bVal : number, Symbol(bVal, Decl(internalAliasVar.ts, 6, 14)) ->b : number, Symbol(b, Decl(internalAliasVar.ts, 4, 10)) +>bVal : number +>b : number } diff --git a/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.symbols b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.symbols new file mode 100644 index 0000000000000..099d257ec71a0 --- /dev/null +++ b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 1, 14)) +} + +export module c { +>c : Symbol(c, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 2, 1)) + + export import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 4, 17)) +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 1, 14)) + + export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 6, 14)) +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 4, 17)) +} + diff --git a/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.types b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.types index 2d1000d6b85c6..995c24bc382da 100644 --- a/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.types +++ b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithExport.types @@ -1,22 +1,22 @@ === tests/cases/compiler/internalAliasVarInsideLocalModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 0, 0)) +>a : typeof a export var x = 10; ->x : number, Symbol(x, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 1, 14)) +>x : number >10 : number } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 2, 1)) +>c : typeof c export import b = a.x; ->b : number, Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 4, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 0, 0)) ->x : number, Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 1, 14)) +>b : number +>a : typeof a +>x : number export var bVal = b; ->bVal : number, Symbol(bVal, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 6, 14)) ->b : number, Symbol(b, Decl(internalAliasVarInsideLocalModuleWithExport.ts, 4, 17)) +>bVal : number +>b : number } diff --git a/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.symbols new file mode 100644 index 0000000000000..9a32adb40690c --- /dev/null +++ b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 1, 14)) +} + +export module c { +>c : Symbol(c, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 2, 1)) + + import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 4, 17)) +>a : Symbol(a, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 1, 14)) + + export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 6, 14)) +>b : Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 4, 17)) +} + diff --git a/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.types b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.types index b7973bfdef80e..5e322f8483cc5 100644 --- a/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasVarInsideLocalModuleWithoutExport.types @@ -1,22 +1,22 @@ === tests/cases/compiler/internalAliasVarInsideLocalModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 0, 0)) +>a : typeof a export var x = 10; ->x : number, Symbol(x, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 1, 14)) +>x : number >10 : number } export module c { ->c : typeof c, Symbol(c, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 2, 1)) +>c : typeof c import b = a.x; ->b : number, Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 4, 17)) ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 0, 0)) ->x : number, Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 1, 14)) +>b : number +>a : typeof a +>x : number export var bVal = b; ->bVal : number, Symbol(bVal, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 6, 14)) ->b : number, Symbol(b, Decl(internalAliasVarInsideLocalModuleWithoutExport.ts, 4, 17)) +>bVal : number +>b : number } diff --git a/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.symbols b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.symbols new file mode 100644 index 0000000000000..1fa0bf59d5096 --- /dev/null +++ b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 1, 14)) +} + +export import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 2, 1)) +>a : Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 1, 14)) + +export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 5, 10)) +>b : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 2, 1)) + + diff --git a/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.types b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.types index 23f141b1263f6..199de9cae510f 100644 --- a/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.types +++ b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithExport.types @@ -1,19 +1,19 @@ === tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 0, 0)) +>a : typeof a export var x = 10; ->x : number, Symbol(x, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 1, 14)) +>x : number >10 : number } export import b = a.x; ->b : number, Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 2, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 0, 0)) ->x : number, Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 1, 14)) +>b : number +>a : typeof a +>x : number export var bVal = b; ->bVal : number, Symbol(bVal, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 5, 10)) ->b : number, Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithExport.ts, 2, 1)) +>bVal : number +>b : number diff --git a/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.symbols b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.symbols new file mode 100644 index 0000000000000..a1d9ab3cc45a1 --- /dev/null +++ b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithoutExport.ts === +export module a { +>a : Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 0, 0)) + + export var x = 10; +>x : Symbol(x, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 1, 14)) +} + +import b = a.x; +>b : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 2, 1)) +>a : Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>x : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 1, 14)) + +export var bVal = b; +>bVal : Symbol(bVal, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 5, 10)) +>b : Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 2, 1)) + + diff --git a/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.types b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.types index 9ddcf8654bc31..d7a7309ccb4c4 100644 --- a/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.types +++ b/tests/baselines/reference/internalAliasVarInsideTopLevelModuleWithoutExport.types @@ -1,19 +1,19 @@ === tests/cases/compiler/internalAliasVarInsideTopLevelModuleWithoutExport.ts === export module a { ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 0, 0)) +>a : typeof a export var x = 10; ->x : number, Symbol(x, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 1, 14)) +>x : number >10 : number } import b = a.x; ->b : number, Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 2, 1)) ->a : typeof a, Symbol(a, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 0, 0)) ->x : number, Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 1, 14)) +>b : number +>a : typeof a +>x : number export var bVal = b; ->bVal : number, Symbol(bVal, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 5, 10)) ->b : number, Symbol(b, Decl(internalAliasVarInsideTopLevelModuleWithoutExport.ts, 2, 1)) +>bVal : number +>b : number diff --git a/tests/baselines/reference/internalAliasWithDottedNameEmit.symbols b/tests/baselines/reference/internalAliasWithDottedNameEmit.symbols new file mode 100644 index 0000000000000..d4fe1ff9d5806 --- /dev/null +++ b/tests/baselines/reference/internalAliasWithDottedNameEmit.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/internalAliasWithDottedNameEmit.ts === +module a.b.c { +>a : Symbol(a, Decl(internalAliasWithDottedNameEmit.ts, 0, 0), Decl(internalAliasWithDottedNameEmit.ts, 2, 1)) +>b : Symbol(b, Decl(internalAliasWithDottedNameEmit.ts, 0, 9)) +>c : Symbol(c, Decl(internalAliasWithDottedNameEmit.ts, 0, 11)) + + export var d; +>d : Symbol(d, Decl(internalAliasWithDottedNameEmit.ts, 1, 16)) +} +module a.e.f { +>a : Symbol(a, Decl(internalAliasWithDottedNameEmit.ts, 0, 0), Decl(internalAliasWithDottedNameEmit.ts, 2, 1)) +>e : Symbol(e, Decl(internalAliasWithDottedNameEmit.ts, 3, 9)) +>f : Symbol(f, Decl(internalAliasWithDottedNameEmit.ts, 3, 11)) + + import g = b.c; +>g : Symbol(g, Decl(internalAliasWithDottedNameEmit.ts, 3, 14)) +>b : Symbol(b, Decl(internalAliasWithDottedNameEmit.ts, 0, 9)) +>c : Symbol(g, Decl(internalAliasWithDottedNameEmit.ts, 0, 11)) +} + diff --git a/tests/baselines/reference/internalAliasWithDottedNameEmit.types b/tests/baselines/reference/internalAliasWithDottedNameEmit.types index 62ca6aa93a53b..60cae3c887a5e 100644 --- a/tests/baselines/reference/internalAliasWithDottedNameEmit.types +++ b/tests/baselines/reference/internalAliasWithDottedNameEmit.types @@ -1,20 +1,20 @@ === tests/cases/compiler/internalAliasWithDottedNameEmit.ts === module a.b.c { ->a : typeof a, Symbol(a, Decl(internalAliasWithDottedNameEmit.ts, 0, 0), Decl(internalAliasWithDottedNameEmit.ts, 2, 1)) ->b : typeof b, Symbol(b, Decl(internalAliasWithDottedNameEmit.ts, 0, 9)) ->c : typeof c, Symbol(c, Decl(internalAliasWithDottedNameEmit.ts, 0, 11)) +>a : typeof a +>b : typeof b +>c : typeof c export var d; ->d : any, Symbol(d, Decl(internalAliasWithDottedNameEmit.ts, 1, 16)) +>d : any } module a.e.f { ->a : typeof a, Symbol(a, Decl(internalAliasWithDottedNameEmit.ts, 0, 0), Decl(internalAliasWithDottedNameEmit.ts, 2, 1)) ->e : any, Symbol(e, Decl(internalAliasWithDottedNameEmit.ts, 3, 9)) ->f : any, Symbol(f, Decl(internalAliasWithDottedNameEmit.ts, 3, 11)) +>a : typeof a +>e : any +>f : any import g = b.c; ->g : typeof g, Symbol(g, Decl(internalAliasWithDottedNameEmit.ts, 3, 14)) ->b : typeof b, Symbol(b, Decl(internalAliasWithDottedNameEmit.ts, 0, 9)) ->c : typeof g, Symbol(g, Decl(internalAliasWithDottedNameEmit.ts, 0, 11)) +>g : typeof g +>b : typeof b +>c : typeof g } diff --git a/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.symbols b/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.symbols new file mode 100644 index 0000000000000..e1098948fd6d9 --- /dev/null +++ b/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts === +class A { +>A : Symbol(A, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) + + aProp: string; +>aProp : Symbol(aProp, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 9)) +} +module A { +>A : Symbol(A, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) + + export interface X { s: string } +>X : Symbol(X, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 3, 10)) +>s : Symbol(s, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 4, 24)) + + export var a = 10; +>a : Symbol(a, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 5, 14)) +} + +module B { +>B : Symbol(B, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 6, 1)) + + import Y = A; +>Y : Symbol(Y, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 8, 10)) +>A : Symbol(Y, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +} + diff --git a/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types b/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types index 2122f15fe223b..e0548f1f8676e 100644 --- a/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types +++ b/tests/baselines/reference/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types @@ -1,27 +1,27 @@ === tests/cases/compiler/internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts === class A { ->A : A, Symbol(A, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +>A : A aProp: string; ->aProp : string, Symbol(aProp, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 9)) +>aProp : string } module A { ->A : typeof A, Symbol(A, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +>A : typeof A export interface X { s: string } ->X : X, Symbol(X, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 3, 10)) ->s : string, Symbol(s, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 4, 24)) +>X : X +>s : string export var a = 10; ->a : number, Symbol(a, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 5, 14)) +>a : number >10 : number } module B { ->B : any, Symbol(B, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 6, 1)) +>B : any import Y = A; ->Y : typeof Y, Symbol(Y, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 8, 10)) ->A : Y, Symbol(Y, Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +>Y : typeof Y +>A : Y } diff --git a/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.symbols b/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.symbols new file mode 100644 index 0000000000000..5852777fe1c2e --- /dev/null +++ b/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts === +class A { +>A : Symbol(A, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) + + aProp: string; +>aProp : Symbol(aProp, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 9)) +} +module A { +>A : Symbol(A, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) + + export interface X { s: string } +>X : Symbol(X, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 3, 10)) +>s : Symbol(s, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 4, 24)) +} + +module B { +>B : Symbol(B, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 5, 1)) + + import Y = A; +>Y : Symbol(Y, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 7, 10)) +>A : Symbol(Y, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +} + diff --git a/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types b/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types index 9aa89fc5da929..8a6b8b1215f6b 100644 --- a/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types +++ b/tests/baselines/reference/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.types @@ -1,23 +1,23 @@ === tests/cases/compiler/internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts === class A { ->A : A, Symbol(A, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +>A : A aProp: string; ->aProp : string, Symbol(aProp, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 9)) +>aProp : string } module A { ->A : typeof A, Symbol(A, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +>A : typeof A export interface X { s: string } ->X : X, Symbol(X, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 3, 10)) ->s : string, Symbol(s, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 4, 24)) +>X : X +>s : string } module B { ->B : any, Symbol(B, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 5, 1)) +>B : any import Y = A; ->Y : typeof Y, Symbol(Y, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 7, 10)) ->A : Y, Symbol(Y, Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 0, 0), Decl(internalImportUnInstantiatedModuleMergedWithClassNotReferencingInstanceNoConflict.ts, 2, 1)) +>Y : typeof Y +>A : Y } diff --git a/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.symbols b/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.symbols new file mode 100644 index 0000000000000..06df9fbfa3f7f --- /dev/null +++ b/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts === +module A { +>A : Symbol(A, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 0, 0)) + + export interface X { s: string } +>X : Symbol(X, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 0, 10)) +>s : Symbol(s, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 1, 24)) +} + +module B { +>B : Symbol(B, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 2, 1)) + + var A = 1; +>A : Symbol(A, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 5, 7)) + + import Y = A; +>Y : Symbol(Y, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 5, 14)) +>A : Symbol(Y, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.types b/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.types index 7a23abe81730b..1226ca3cbc4f9 100644 --- a/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.types +++ b/tests/baselines/reference/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.types @@ -1,21 +1,21 @@ === tests/cases/compiler/internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts === module A { ->A : any, Symbol(A, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 0, 0)) +>A : any export interface X { s: string } ->X : X, Symbol(X, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 0, 10)) ->s : string, Symbol(s, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 1, 24)) +>X : X +>s : string } module B { ->B : typeof B, Symbol(B, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 2, 1)) +>B : typeof B var A = 1; ->A : number, Symbol(A, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 5, 7)) +>A : number >1 : number import Y = A; ->Y : any, Symbol(Y, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 5, 14)) ->A : any, Symbol(Y, Decl(internalImportUnInstantiatedModuleNotReferencingInstanceNoConflict.ts, 0, 0)) +>Y : any +>A : any } diff --git a/tests/baselines/reference/invalidSplice.symbols b/tests/baselines/reference/invalidSplice.symbols new file mode 100644 index 0000000000000..dc028776cb3a7 --- /dev/null +++ b/tests/baselines/reference/invalidSplice.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/invalidSplice.ts === +var arr = [].splice(0,3,4,5); +>arr : Symbol(arr, Decl(invalidSplice.ts, 0, 3)) +>[].splice : Symbol(Array.splice, Decl(lib.d.ts, 1060, 50), Decl(lib.d.ts, 1066, 31)) +>splice : Symbol(Array.splice, Decl(lib.d.ts, 1060, 50), Decl(lib.d.ts, 1066, 31)) + diff --git a/tests/baselines/reference/invalidSplice.types b/tests/baselines/reference/invalidSplice.types index fd7622a86185d..1e3b42ff55103 100644 --- a/tests/baselines/reference/invalidSplice.types +++ b/tests/baselines/reference/invalidSplice.types @@ -1,10 +1,10 @@ === tests/cases/compiler/invalidSplice.ts === var arr = [].splice(0,3,4,5); ->arr : any[], Symbol(arr, Decl(invalidSplice.ts, 0, 3)) +>arr : any[] >[].splice(0,3,4,5) : any[] ->[].splice : { (start: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; }, Symbol(Array.splice, Decl(lib.d.ts, 1060, 50), Decl(lib.d.ts, 1066, 31)) +>[].splice : { (start: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; } >[] : undefined[] ->splice : { (start: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; }, Symbol(Array.splice, Decl(lib.d.ts, 1060, 50), Decl(lib.d.ts, 1066, 31)) +>splice : { (start: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; } >0 : number >3 : number >4 : number diff --git a/tests/baselines/reference/invalidSwitchBreakStatement.symbols b/tests/baselines/reference/invalidSwitchBreakStatement.symbols new file mode 100644 index 0000000000000..a17a2a7dee289 --- /dev/null +++ b/tests/baselines/reference/invalidSwitchBreakStatement.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/statements/breakStatements/invalidSwitchBreakStatement.ts === +// break is not allowed in a switch statement +No type information for this code. +No type information for this code.switch (12) { +No type information for this code. case 5: +No type information for this code. break; +No type information for this code.} +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/invalidTypeNames.symbols b/tests/baselines/reference/invalidTypeNames.symbols new file mode 100644 index 0000000000000..c91de26233fa0 --- /dev/null +++ b/tests/baselines/reference/invalidTypeNames.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/invalidTypeNames.ts === +// Refer to calling code - a real illegal name is subbed in here +class illegal_name_here { +>illegal_name_here : Symbol(illegal_name_here, Decl(invalidTypeNames.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/invalidTypeNames.types b/tests/baselines/reference/invalidTypeNames.types index 92951f0e927d7..d16ce3b57e03a 100644 --- a/tests/baselines/reference/invalidTypeNames.types +++ b/tests/baselines/reference/invalidTypeNames.types @@ -1,6 +1,6 @@ === tests/cases/compiler/invalidTypeNames.ts === // Refer to calling code - a real illegal name is subbed in here class illegal_name_here { ->illegal_name_here : illegal_name_here, Symbol(illegal_name_here, Decl(invalidTypeNames.ts, 0, 0)) +>illegal_name_here : illegal_name_here } diff --git a/tests/baselines/reference/invalidUndefinedValues.symbols b/tests/baselines/reference/invalidUndefinedValues.symbols new file mode 100644 index 0000000000000..5a9b81fde3104 --- /dev/null +++ b/tests/baselines/reference/invalidUndefinedValues.symbols @@ -0,0 +1,92 @@ +=== tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts === +var x: typeof undefined; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>undefined : Symbol(undefined) + +x = 1; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) + +x = ''; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) + +x = true; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) + +var a: void; +>a : Symbol(a, Decl(invalidUndefinedValues.ts, 5, 3)) + +x = a; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>a : Symbol(a, Decl(invalidUndefinedValues.ts, 5, 3)) + +x = null; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) + +class C { foo: string } +>C : Symbol(C, Decl(invalidUndefinedValues.ts, 7, 9)) +>foo : Symbol(foo, Decl(invalidUndefinedValues.ts, 9, 9)) + +var b: C; +>b : Symbol(b, Decl(invalidUndefinedValues.ts, 10, 3)) +>C : Symbol(C, Decl(invalidUndefinedValues.ts, 7, 9)) + +x = C; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>C : Symbol(C, Decl(invalidUndefinedValues.ts, 7, 9)) + +x = b; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>b : Symbol(b, Decl(invalidUndefinedValues.ts, 10, 3)) + +interface I { foo: string } +>I : Symbol(I, Decl(invalidUndefinedValues.ts, 12, 6)) +>foo : Symbol(foo, Decl(invalidUndefinedValues.ts, 14, 13)) + +var c: I; +>c : Symbol(c, Decl(invalidUndefinedValues.ts, 15, 3)) +>I : Symbol(I, Decl(invalidUndefinedValues.ts, 12, 6)) + +x = c; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>c : Symbol(c, Decl(invalidUndefinedValues.ts, 15, 3)) + +module M { export var x = 1; } +>M : Symbol(M, Decl(invalidUndefinedValues.ts, 16, 6)) +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 18, 21)) + +x = M; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>M : Symbol(M, Decl(invalidUndefinedValues.ts, 16, 6)) + +x = { f() { } } +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>f : Symbol(f, Decl(invalidUndefinedValues.ts, 21, 5)) + +function f(a: T) { +>f : Symbol(f, Decl(invalidUndefinedValues.ts, 21, 15)) +>T : Symbol(T, Decl(invalidUndefinedValues.ts, 23, 11)) +>a : Symbol(a, Decl(invalidUndefinedValues.ts, 23, 14)) +>T : Symbol(T, Decl(invalidUndefinedValues.ts, 23, 11)) + + x = a; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>a : Symbol(a, Decl(invalidUndefinedValues.ts, 23, 14)) +} +x = f; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>f : Symbol(f, Decl(invalidUndefinedValues.ts, 21, 15)) + +enum E { A } +>E : Symbol(E, Decl(invalidUndefinedValues.ts, 26, 6)) +>A : Symbol(E.A, Decl(invalidUndefinedValues.ts, 28, 8)) + +x = E; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>E : Symbol(E, Decl(invalidUndefinedValues.ts, 26, 6)) + +x = E.A; +>x : Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>E.A : Symbol(E.A, Decl(invalidUndefinedValues.ts, 28, 8)) +>E : Symbol(E, Decl(invalidUndefinedValues.ts, 26, 6)) +>A : Symbol(E.A, Decl(invalidUndefinedValues.ts, 28, 8)) + diff --git a/tests/baselines/reference/invalidUndefinedValues.types b/tests/baselines/reference/invalidUndefinedValues.types index d22e4a2d12dc4..b88c202161874 100644 --- a/tests/baselines/reference/invalidUndefinedValues.types +++ b/tests/baselines/reference/invalidUndefinedValues.types @@ -1,112 +1,112 @@ === tests/cases/conformance/types/primitives/undefined/invalidUndefinedValues.ts === var x: typeof undefined; ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->undefined : undefined, Symbol(undefined) +>x : any +>undefined : undefined x = 1; >x = 1 : number ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>x : any >1 : number x = ''; >x = '' : string ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>x : any >'' : string x = true; >x = true : boolean ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>x : any >true : boolean var a: void; ->a : void, Symbol(a, Decl(invalidUndefinedValues.ts, 5, 3)) +>a : void x = a; >x = a : void ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->a : void, Symbol(a, Decl(invalidUndefinedValues.ts, 5, 3)) +>x : any +>a : void x = null; >x = null : null ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>x : any >null : null class C { foo: string } ->C : C, Symbol(C, Decl(invalidUndefinedValues.ts, 7, 9)) ->foo : string, Symbol(foo, Decl(invalidUndefinedValues.ts, 9, 9)) +>C : C +>foo : string var b: C; ->b : C, Symbol(b, Decl(invalidUndefinedValues.ts, 10, 3)) ->C : C, Symbol(C, Decl(invalidUndefinedValues.ts, 7, 9)) +>b : C +>C : C x = C; >x = C : typeof C ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->C : typeof C, Symbol(C, Decl(invalidUndefinedValues.ts, 7, 9)) +>x : any +>C : typeof C x = b; >x = b : C ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->b : C, Symbol(b, Decl(invalidUndefinedValues.ts, 10, 3)) +>x : any +>b : C interface I { foo: string } ->I : I, Symbol(I, Decl(invalidUndefinedValues.ts, 12, 6)) ->foo : string, Symbol(foo, Decl(invalidUndefinedValues.ts, 14, 13)) +>I : I +>foo : string var c: I; ->c : I, Symbol(c, Decl(invalidUndefinedValues.ts, 15, 3)) ->I : I, Symbol(I, Decl(invalidUndefinedValues.ts, 12, 6)) +>c : I +>I : I x = c; >x = c : I ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->c : I, Symbol(c, Decl(invalidUndefinedValues.ts, 15, 3)) +>x : any +>c : I module M { export var x = 1; } ->M : typeof M, Symbol(M, Decl(invalidUndefinedValues.ts, 16, 6)) ->x : number, Symbol(x, Decl(invalidUndefinedValues.ts, 18, 21)) +>M : typeof M +>x : number >1 : number x = M; >x = M : typeof M ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->M : typeof M, Symbol(M, Decl(invalidUndefinedValues.ts, 16, 6)) +>x : any +>M : typeof M x = { f() { } } >x = { f() { } } : { f(): void; } ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) +>x : any >{ f() { } } : { f(): void; } ->f : () => void, Symbol(f, Decl(invalidUndefinedValues.ts, 21, 5)) +>f : () => void function f(a: T) { ->f : (a: T) => void, Symbol(f, Decl(invalidUndefinedValues.ts, 21, 15)) ->T : T, Symbol(T, Decl(invalidUndefinedValues.ts, 23, 11)) ->a : T, Symbol(a, Decl(invalidUndefinedValues.ts, 23, 14)) ->T : T, Symbol(T, Decl(invalidUndefinedValues.ts, 23, 11)) +>f : (a: T) => void +>T : T +>a : T +>T : T x = a; >x = a : T ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->a : T, Symbol(a, Decl(invalidUndefinedValues.ts, 23, 14)) +>x : any +>a : T } x = f; >x = f : (a: T) => void ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->f : (a: T) => void, Symbol(f, Decl(invalidUndefinedValues.ts, 21, 15)) +>x : any +>f : (a: T) => void enum E { A } ->E : E, Symbol(E, Decl(invalidUndefinedValues.ts, 26, 6)) ->A : E, Symbol(E.A, Decl(invalidUndefinedValues.ts, 28, 8)) +>E : E +>A : E x = E; >x = E : typeof E ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->E : typeof E, Symbol(E, Decl(invalidUndefinedValues.ts, 26, 6)) +>x : any +>E : typeof E x = E.A; >x = E.A : E ->x : any, Symbol(x, Decl(invalidUndefinedValues.ts, 0, 3)) ->E.A : E, Symbol(E.A, Decl(invalidUndefinedValues.ts, 28, 8)) ->E : typeof E, Symbol(E, Decl(invalidUndefinedValues.ts, 26, 6)) ->A : E, Symbol(E.A, Decl(invalidUndefinedValues.ts, 28, 8)) +>x : any +>E.A : E +>E : typeof E +>A : E diff --git a/tests/baselines/reference/ipromise2.symbols b/tests/baselines/reference/ipromise2.symbols new file mode 100644 index 0000000000000..be936f4512a27 --- /dev/null +++ b/tests/baselines/reference/ipromise2.symbols @@ -0,0 +1,122 @@ +=== tests/cases/compiler/ipromise2.ts === +declare module Windows.Foundation { +>Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) + + export interface IPromise { +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) + + then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise2.ts, 2, 13)) +>success : Symbol(success, Decl(ipromise2.ts, 2, 16)) +>value : Symbol(value, Decl(ipromise2.ts, 2, 27)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 2, 13)) +>error : Symbol(error, Decl(ipromise2.ts, 2, 52)) +>error : Symbol(error, Decl(ipromise2.ts, 2, 62)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 2, 13)) +>progress : Symbol(progress, Decl(ipromise2.ts, 2, 89)) +>progress : Symbol(progress, Decl(ipromise2.ts, 2, 102)) +>Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 2, 13)) + + then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise2.ts, 3, 13)) +>success : Symbol(success, Decl(ipromise2.ts, 3, 16)) +>value : Symbol(value, Decl(ipromise2.ts, 3, 27)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 3, 13)) +>error : Symbol(error, Decl(ipromise2.ts, 3, 52)) +>error : Symbol(error, Decl(ipromise2.ts, 3, 62)) +>U : Symbol(U, Decl(ipromise2.ts, 3, 13)) +>progress : Symbol(progress, Decl(ipromise2.ts, 3, 79)) +>progress : Symbol(progress, Decl(ipromise2.ts, 3, 92)) +>Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 3, 13)) + + then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise2.ts, 4, 13)) +>success : Symbol(success, Decl(ipromise2.ts, 4, 16)) +>value : Symbol(value, Decl(ipromise2.ts, 4, 27)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) +>U : Symbol(U, Decl(ipromise2.ts, 4, 13)) +>error : Symbol(error, Decl(ipromise2.ts, 4, 42)) +>error : Symbol(error, Decl(ipromise2.ts, 4, 52)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 4, 13)) +>progress : Symbol(progress, Decl(ipromise2.ts, 4, 79)) +>progress : Symbol(progress, Decl(ipromise2.ts, 4, 92)) +>Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 4, 13)) + + then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise2.ts, 5, 13)) +>success : Symbol(success, Decl(ipromise2.ts, 5, 16)) +>value : Symbol(value, Decl(ipromise2.ts, 5, 27)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) +>U : Symbol(U, Decl(ipromise2.ts, 5, 13)) +>error : Symbol(error, Decl(ipromise2.ts, 5, 42)) +>error : Symbol(error, Decl(ipromise2.ts, 5, 52)) +>U : Symbol(U, Decl(ipromise2.ts, 5, 13)) +>progress : Symbol(progress, Decl(ipromise2.ts, 5, 69)) +>progress : Symbol(progress, Decl(ipromise2.ts, 5, 82)) +>Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise2.ts, 5, 13)) + + done(success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; +>done : Symbol(done, Decl(ipromise2.ts, 5, 139)) +>U : Symbol(U, Decl(ipromise2.ts, 6, 13)) +>success : Symbol(success, Decl(ipromise2.ts, 6, 16)) +>value : Symbol(value, Decl(ipromise2.ts, 6, 27)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) +>error : Symbol(error, Decl(ipromise2.ts, 6, 44)) +>error : Symbol(error, Decl(ipromise2.ts, 6, 54)) +>progress : Symbol(progress, Decl(ipromise2.ts, 6, 73)) +>progress : Symbol(progress, Decl(ipromise2.ts, 6, 86)) + + value: T; +>value : Symbol(value, Decl(ipromise2.ts, 6, 117)) +>T : Symbol(T, Decl(ipromise2.ts, 1, 30)) + } +} + +var p: Windows.Foundation.IPromise; +>p : Symbol(p, Decl(ipromise2.ts, 11, 3)) +>Windows : Symbol(Windows, Decl(ipromise2.ts, 0, 0)) +>Foundation : Symbol(Windows.Foundation, Decl(ipromise2.ts, 0, 23)) +>IPromise : Symbol(Windows.Foundation.IPromise, Decl(ipromise2.ts, 0, 35)) + +var p2 = p.then(function (s) { +>p2 : Symbol(p2, Decl(ipromise2.ts, 13, 3)) +>p.then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>p : Symbol(p, Decl(ipromise2.ts, 11, 3)) +>then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>s : Symbol(s, Decl(ipromise2.ts, 13, 26)) + + return 34; +} ); + + +var x: number = p2.value; +>x : Symbol(x, Decl(ipromise2.ts, 18, 3)) +>p2.value : Symbol(Windows.Foundation.IPromise.value, Decl(ipromise2.ts, 6, 117)) +>p2 : Symbol(p2, Decl(ipromise2.ts, 13, 3)) +>value : Symbol(Windows.Foundation.IPromise.value, Decl(ipromise2.ts, 6, 117)) + + diff --git a/tests/baselines/reference/ipromise2.types b/tests/baselines/reference/ipromise2.types index e62c01598ea35..b52c3460dd467 100644 --- a/tests/baselines/reference/ipromise2.types +++ b/tests/baselines/reference/ipromise2.types @@ -1,115 +1,115 @@ === tests/cases/compiler/ipromise2.ts === declare module Windows.Foundation { ->Windows : any, Symbol(Windows, Decl(ipromise2.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) +>Windows : any +>Foundation : any export interface IPromise { ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) +>IPromise : IPromise +>T : T then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise2.ts, 2, 13)) ->success : (value: T) => IPromise, Symbol(success, Decl(ipromise2.ts, 2, 16)) ->value : T, Symbol(value, Decl(ipromise2.ts, 2, 27)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 2, 13)) ->error : (error: any) => IPromise, Symbol(error, Decl(ipromise2.ts, 2, 52)) ->error : any, Symbol(error, Decl(ipromise2.ts, 2, 62)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 2, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise2.ts, 2, 89)) ->progress : any, Symbol(progress, Decl(ipromise2.ts, 2, 102)) ->Windows : any, Symbol(Windows, Decl(ipromise2.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 2, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => IPromise +>value : T +>T : T +>IPromise : IPromise +>U : U +>error : (error: any) => IPromise +>error : any +>IPromise : IPromise +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise2.ts, 3, 13)) ->success : (value: T) => IPromise, Symbol(success, Decl(ipromise2.ts, 3, 16)) ->value : T, Symbol(value, Decl(ipromise2.ts, 3, 27)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 3, 13)) ->error : (error: any) => U, Symbol(error, Decl(ipromise2.ts, 3, 52)) ->error : any, Symbol(error, Decl(ipromise2.ts, 3, 62)) ->U : U, Symbol(U, Decl(ipromise2.ts, 3, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise2.ts, 3, 79)) ->progress : any, Symbol(progress, Decl(ipromise2.ts, 3, 92)) ->Windows : any, Symbol(Windows, Decl(ipromise2.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 3, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => IPromise +>value : T +>T : T +>IPromise : IPromise +>U : U +>error : (error: any) => U +>error : any +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise2.ts, 4, 13)) ->success : (value: T) => U, Symbol(success, Decl(ipromise2.ts, 4, 16)) ->value : T, Symbol(value, Decl(ipromise2.ts, 4, 27)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) ->U : U, Symbol(U, Decl(ipromise2.ts, 4, 13)) ->error : (error: any) => IPromise, Symbol(error, Decl(ipromise2.ts, 4, 42)) ->error : any, Symbol(error, Decl(ipromise2.ts, 4, 52)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 4, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise2.ts, 4, 79)) ->progress : any, Symbol(progress, Decl(ipromise2.ts, 4, 92)) ->Windows : any, Symbol(Windows, Decl(ipromise2.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 4, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => U +>value : T +>T : T +>U : U +>error : (error: any) => IPromise +>error : any +>IPromise : IPromise +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise2.ts, 5, 13)) ->success : (value: T) => U, Symbol(success, Decl(ipromise2.ts, 5, 16)) ->value : T, Symbol(value, Decl(ipromise2.ts, 5, 27)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) ->U : U, Symbol(U, Decl(ipromise2.ts, 5, 13)) ->error : (error: any) => U, Symbol(error, Decl(ipromise2.ts, 5, 42)) ->error : any, Symbol(error, Decl(ipromise2.ts, 5, 52)) ->U : U, Symbol(U, Decl(ipromise2.ts, 5, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise2.ts, 5, 69)) ->progress : any, Symbol(progress, Decl(ipromise2.ts, 5, 82)) ->Windows : any, Symbol(Windows, Decl(ipromise2.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise2.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise2.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise2.ts, 5, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => U +>value : T +>T : T +>U : U +>error : (error: any) => U +>error : any +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U done(success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; ->done : (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void) => void, Symbol(done, Decl(ipromise2.ts, 5, 139)) ->U : U, Symbol(U, Decl(ipromise2.ts, 6, 13)) ->success : (value: T) => any, Symbol(success, Decl(ipromise2.ts, 6, 16)) ->value : T, Symbol(value, Decl(ipromise2.ts, 6, 27)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) ->error : (error: any) => any, Symbol(error, Decl(ipromise2.ts, 6, 44)) ->error : any, Symbol(error, Decl(ipromise2.ts, 6, 54)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise2.ts, 6, 73)) ->progress : any, Symbol(progress, Decl(ipromise2.ts, 6, 86)) +>done : (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void) => void +>U : U +>success : (value: T) => any +>value : T +>T : T +>error : (error: any) => any +>error : any +>progress : (progress: any) => void +>progress : any value: T; ->value : T, Symbol(value, Decl(ipromise2.ts, 6, 117)) ->T : T, Symbol(T, Decl(ipromise2.ts, 1, 30)) +>value : T +>T : T } } var p: Windows.Foundation.IPromise; ->p : Windows.Foundation.IPromise, Symbol(p, Decl(ipromise2.ts, 11, 3)) ->Windows : any, Symbol(Windows, Decl(ipromise2.ts, 0, 0)) ->Foundation : any, Symbol(Windows.Foundation, Decl(ipromise2.ts, 0, 23)) ->IPromise : Windows.Foundation.IPromise, Symbol(Windows.Foundation.IPromise, Decl(ipromise2.ts, 0, 35)) +>p : Windows.Foundation.IPromise +>Windows : any +>Foundation : any +>IPromise : Windows.Foundation.IPromise var p2 = p.then(function (s) { ->p2 : Windows.Foundation.IPromise, Symbol(p2, Decl(ipromise2.ts, 13, 3)) +>p2 : Windows.Foundation.IPromise >p.then(function (s) { return 34;} ) : Windows.Foundation.IPromise ->p.then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) ->p : Windows.Foundation.IPromise, Symbol(p, Decl(ipromise2.ts, 11, 3)) ->then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise2.ts, 1, 34), Decl(ipromise2.ts, 2, 159), Decl(ipromise2.ts, 3, 149), Decl(ipromise2.ts, 4, 149)) +>p.then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } +>p : Windows.Foundation.IPromise +>then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >function (s) { return 34;} : (s: string) => number ->s : string, Symbol(s, Decl(ipromise2.ts, 13, 26)) +>s : string return 34; >34 : number @@ -118,9 +118,9 @@ var p2 = p.then(function (s) { var x: number = p2.value; ->x : number, Symbol(x, Decl(ipromise2.ts, 18, 3)) ->p2.value : number, Symbol(Windows.Foundation.IPromise.value, Decl(ipromise2.ts, 6, 117)) ->p2 : Windows.Foundation.IPromise, Symbol(p2, Decl(ipromise2.ts, 13, 3)) ->value : number, Symbol(Windows.Foundation.IPromise.value, Decl(ipromise2.ts, 6, 117)) +>x : number +>p2.value : number +>p2 : Windows.Foundation.IPromise +>value : number diff --git a/tests/baselines/reference/ipromise3.symbols b/tests/baselines/reference/ipromise3.symbols new file mode 100644 index 0000000000000..3605a94fc88d3 --- /dev/null +++ b/tests/baselines/reference/ipromise3.symbols @@ -0,0 +1,97 @@ +=== tests/cases/compiler/ipromise3.ts === +interface IPromise3 { +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>T : Symbol(T, Decl(ipromise3.ts, 0, 20)) + + then(success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void ): IPromise3; +>then : Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>U : Symbol(U, Decl(ipromise3.ts, 1, 9)) +>success : Symbol(success, Decl(ipromise3.ts, 1, 12)) +>value : Symbol(value, Decl(ipromise3.ts, 1, 23)) +>T : Symbol(T, Decl(ipromise3.ts, 0, 20)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 1, 9)) +>error : Symbol(error, Decl(ipromise3.ts, 1, 49)) +>error : Symbol(error, Decl(ipromise3.ts, 1, 59)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 1, 9)) +>progress : Symbol(progress, Decl(ipromise3.ts, 1, 87)) +>progress : Symbol(progress, Decl(ipromise3.ts, 1, 100)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 1, 9)) + + then(success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise3; +>then : Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>U : Symbol(U, Decl(ipromise3.ts, 2, 9)) +>success : Symbol(success, Decl(ipromise3.ts, 2, 12)) +>value : Symbol(value, Decl(ipromise3.ts, 2, 23)) +>T : Symbol(T, Decl(ipromise3.ts, 0, 20)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 2, 9)) +>error : Symbol(error, Decl(ipromise3.ts, 2, 49)) +>error : Symbol(error, Decl(ipromise3.ts, 2, 59)) +>U : Symbol(U, Decl(ipromise3.ts, 2, 9)) +>progress : Symbol(progress, Decl(ipromise3.ts, 2, 76)) +>progress : Symbol(progress, Decl(ipromise3.ts, 2, 89)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 2, 9)) + + then(success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void ): IPromise3; +>then : Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>U : Symbol(U, Decl(ipromise3.ts, 3, 9)) +>success : Symbol(success, Decl(ipromise3.ts, 3, 12)) +>value : Symbol(value, Decl(ipromise3.ts, 3, 23)) +>T : Symbol(T, Decl(ipromise3.ts, 0, 20)) +>U : Symbol(U, Decl(ipromise3.ts, 3, 9)) +>error : Symbol(error, Decl(ipromise3.ts, 3, 38)) +>error : Symbol(error, Decl(ipromise3.ts, 3, 48)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 3, 9)) +>progress : Symbol(progress, Decl(ipromise3.ts, 3, 76)) +>progress : Symbol(progress, Decl(ipromise3.ts, 3, 89)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 3, 9)) + + then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise3; +>then : Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>U : Symbol(U, Decl(ipromise3.ts, 4, 9)) +>success : Symbol(success, Decl(ipromise3.ts, 4, 12)) +>value : Symbol(value, Decl(ipromise3.ts, 4, 23)) +>T : Symbol(T, Decl(ipromise3.ts, 0, 20)) +>U : Symbol(U, Decl(ipromise3.ts, 4, 9)) +>error : Symbol(error, Decl(ipromise3.ts, 4, 38)) +>error : Symbol(error, Decl(ipromise3.ts, 4, 48)) +>U : Symbol(U, Decl(ipromise3.ts, 4, 9)) +>progress : Symbol(progress, Decl(ipromise3.ts, 4, 65)) +>progress : Symbol(progress, Decl(ipromise3.ts, 4, 78)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>U : Symbol(U, Decl(ipromise3.ts, 4, 9)) + + done? (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; +>done : Symbol(done, Decl(ipromise3.ts, 4, 117)) +>U : Symbol(U, Decl(ipromise3.ts, 5, 11)) +>success : Symbol(success, Decl(ipromise3.ts, 5, 14)) +>value : Symbol(value, Decl(ipromise3.ts, 5, 25)) +>T : Symbol(T, Decl(ipromise3.ts, 0, 20)) +>error : Symbol(error, Decl(ipromise3.ts, 5, 42)) +>error : Symbol(error, Decl(ipromise3.ts, 5, 52)) +>progress : Symbol(progress, Decl(ipromise3.ts, 5, 71)) +>progress : Symbol(progress, Decl(ipromise3.ts, 5, 84)) +} +var p1: IPromise3; +>p1 : Symbol(p1, Decl(ipromise3.ts, 7, 3)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) + +var p2: IPromise3 = p1.then(function (x) { +>p2 : Symbol(p2, Decl(ipromise3.ts, 8, 3)) +>IPromise3 : Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>p1.then : Symbol(IPromise3.then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>p1 : Symbol(p1, Decl(ipromise3.ts, 7, 3)) +>then : Symbol(IPromise3.then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>x : Symbol(x, Decl(ipromise3.ts, 8, 46)) + + return x; +>x : Symbol(x, Decl(ipromise3.ts, 8, 46)) + +}); + diff --git a/tests/baselines/reference/ipromise3.types b/tests/baselines/reference/ipromise3.types index fcd2fe4217fb2..7f11624db09ef 100644 --- a/tests/baselines/reference/ipromise3.types +++ b/tests/baselines/reference/ipromise3.types @@ -1,99 +1,99 @@ === tests/cases/compiler/ipromise3.ts === interface IPromise3 { ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->T : T, Symbol(T, Decl(ipromise3.ts, 0, 20)) +>IPromise3 : IPromise3 +>T : T then(success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void ): IPromise3; ->then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; }, Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) ->U : U, Symbol(U, Decl(ipromise3.ts, 1, 9)) ->success : (value: T) => IPromise3, Symbol(success, Decl(ipromise3.ts, 1, 12)) ->value : T, Symbol(value, Decl(ipromise3.ts, 1, 23)) ->T : T, Symbol(T, Decl(ipromise3.ts, 0, 20)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 1, 9)) ->error : (error: any) => IPromise3, Symbol(error, Decl(ipromise3.ts, 1, 49)) ->error : any, Symbol(error, Decl(ipromise3.ts, 1, 59)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 1, 9)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise3.ts, 1, 87)) ->progress : any, Symbol(progress, Decl(ipromise3.ts, 1, 100)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 1, 9)) +>then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } +>U : U +>success : (value: T) => IPromise3 +>value : T +>T : T +>IPromise3 : IPromise3 +>U : U +>error : (error: any) => IPromise3 +>error : any +>IPromise3 : IPromise3 +>U : U +>progress : (progress: any) => void +>progress : any +>IPromise3 : IPromise3 +>U : U then(success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise3; ->then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; }, Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) ->U : U, Symbol(U, Decl(ipromise3.ts, 2, 9)) ->success : (value: T) => IPromise3, Symbol(success, Decl(ipromise3.ts, 2, 12)) ->value : T, Symbol(value, Decl(ipromise3.ts, 2, 23)) ->T : T, Symbol(T, Decl(ipromise3.ts, 0, 20)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 2, 9)) ->error : (error: any) => U, Symbol(error, Decl(ipromise3.ts, 2, 49)) ->error : any, Symbol(error, Decl(ipromise3.ts, 2, 59)) ->U : U, Symbol(U, Decl(ipromise3.ts, 2, 9)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise3.ts, 2, 76)) ->progress : any, Symbol(progress, Decl(ipromise3.ts, 2, 89)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 2, 9)) +>then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } +>U : U +>success : (value: T) => IPromise3 +>value : T +>T : T +>IPromise3 : IPromise3 +>U : U +>error : (error: any) => U +>error : any +>U : U +>progress : (progress: any) => void +>progress : any +>IPromise3 : IPromise3 +>U : U then(success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void ): IPromise3; ->then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; }, Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) ->U : U, Symbol(U, Decl(ipromise3.ts, 3, 9)) ->success : (value: T) => U, Symbol(success, Decl(ipromise3.ts, 3, 12)) ->value : T, Symbol(value, Decl(ipromise3.ts, 3, 23)) ->T : T, Symbol(T, Decl(ipromise3.ts, 0, 20)) ->U : U, Symbol(U, Decl(ipromise3.ts, 3, 9)) ->error : (error: any) => IPromise3, Symbol(error, Decl(ipromise3.ts, 3, 38)) ->error : any, Symbol(error, Decl(ipromise3.ts, 3, 48)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 3, 9)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise3.ts, 3, 76)) ->progress : any, Symbol(progress, Decl(ipromise3.ts, 3, 89)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 3, 9)) +>then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } +>U : U +>success : (value: T) => U +>value : T +>T : T +>U : U +>error : (error: any) => IPromise3 +>error : any +>IPromise3 : IPromise3 +>U : U +>progress : (progress: any) => void +>progress : any +>IPromise3 : IPromise3 +>U : U then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise3; ->then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; }, Symbol(then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) ->U : U, Symbol(U, Decl(ipromise3.ts, 4, 9)) ->success : (value: T) => U, Symbol(success, Decl(ipromise3.ts, 4, 12)) ->value : T, Symbol(value, Decl(ipromise3.ts, 4, 23)) ->T : T, Symbol(T, Decl(ipromise3.ts, 0, 20)) ->U : U, Symbol(U, Decl(ipromise3.ts, 4, 9)) ->error : (error: any) => U, Symbol(error, Decl(ipromise3.ts, 4, 38)) ->error : any, Symbol(error, Decl(ipromise3.ts, 4, 48)) ->U : U, Symbol(U, Decl(ipromise3.ts, 4, 9)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise3.ts, 4, 65)) ->progress : any, Symbol(progress, Decl(ipromise3.ts, 4, 78)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) ->U : U, Symbol(U, Decl(ipromise3.ts, 4, 9)) +>then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } +>U : U +>success : (value: T) => U +>value : T +>T : T +>U : U +>error : (error: any) => U +>error : any +>U : U +>progress : (progress: any) => void +>progress : any +>IPromise3 : IPromise3 +>U : U done? (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; ->done : (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void) => void, Symbol(done, Decl(ipromise3.ts, 4, 117)) ->U : U, Symbol(U, Decl(ipromise3.ts, 5, 11)) ->success : (value: T) => any, Symbol(success, Decl(ipromise3.ts, 5, 14)) ->value : T, Symbol(value, Decl(ipromise3.ts, 5, 25)) ->T : T, Symbol(T, Decl(ipromise3.ts, 0, 20)) ->error : (error: any) => any, Symbol(error, Decl(ipromise3.ts, 5, 42)) ->error : any, Symbol(error, Decl(ipromise3.ts, 5, 52)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise3.ts, 5, 71)) ->progress : any, Symbol(progress, Decl(ipromise3.ts, 5, 84)) +>done : (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void) => void +>U : U +>success : (value: T) => any +>value : T +>T : T +>error : (error: any) => any +>error : any +>progress : (progress: any) => void +>progress : any } var p1: IPromise3; ->p1 : IPromise3, Symbol(p1, Decl(ipromise3.ts, 7, 3)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>p1 : IPromise3 +>IPromise3 : IPromise3 var p2: IPromise3 = p1.then(function (x) { ->p2 : IPromise3, Symbol(p2, Decl(ipromise3.ts, 8, 3)) ->IPromise3 : IPromise3, Symbol(IPromise3, Decl(ipromise3.ts, 0, 0)) +>p2 : IPromise3 +>IPromise3 : IPromise3 >p1.then(function (x) { return x;}) : IPromise3 ->p1.then : { (success?: (value: string) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; }, Symbol(IPromise3.then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) ->p1 : IPromise3, Symbol(p1, Decl(ipromise3.ts, 7, 3)) ->then : { (success?: (value: string) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; }, Symbol(IPromise3.then, Decl(ipromise3.ts, 0, 24), Decl(ipromise3.ts, 1, 139), Decl(ipromise3.ts, 2, 128), Decl(ipromise3.ts, 3, 128)) +>p1.then : { (success?: (value: string) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } +>p1 : IPromise3 +>then : { (success?: (value: string) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } >function (x) { return x;} : (x: string) => string ->x : string, Symbol(x, Decl(ipromise3.ts, 8, 46)) +>x : string return x; ->x : string, Symbol(x, Decl(ipromise3.ts, 8, 46)) +>x : string }); diff --git a/tests/baselines/reference/ipromise4.symbols b/tests/baselines/reference/ipromise4.symbols new file mode 100644 index 0000000000000..65ae5f90cfe92 --- /dev/null +++ b/tests/baselines/reference/ipromise4.symbols @@ -0,0 +1,117 @@ +=== tests/cases/compiler/ipromise4.ts === +declare module Windows.Foundation { +>Windows : Symbol(Windows, Decl(ipromise4.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) + + export interface IPromise { +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>T : Symbol(T, Decl(ipromise4.ts, 1, 30)) + + then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise4.ts, 2, 13)) +>success : Symbol(success, Decl(ipromise4.ts, 2, 16)) +>value : Symbol(value, Decl(ipromise4.ts, 2, 27)) +>T : Symbol(T, Decl(ipromise4.ts, 1, 30)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 2, 13)) +>error : Symbol(error, Decl(ipromise4.ts, 2, 52)) +>error : Symbol(error, Decl(ipromise4.ts, 2, 62)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 2, 13)) +>progress : Symbol(progress, Decl(ipromise4.ts, 2, 89)) +>progress : Symbol(progress, Decl(ipromise4.ts, 2, 102)) +>Windows : Symbol(Windows, Decl(ipromise4.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 2, 13)) + + then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise4.ts, 3, 13)) +>success : Symbol(success, Decl(ipromise4.ts, 3, 16)) +>value : Symbol(value, Decl(ipromise4.ts, 3, 27)) +>T : Symbol(T, Decl(ipromise4.ts, 1, 30)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 3, 13)) +>error : Symbol(error, Decl(ipromise4.ts, 3, 52)) +>error : Symbol(error, Decl(ipromise4.ts, 3, 62)) +>U : Symbol(U, Decl(ipromise4.ts, 3, 13)) +>progress : Symbol(progress, Decl(ipromise4.ts, 3, 79)) +>progress : Symbol(progress, Decl(ipromise4.ts, 3, 92)) +>Windows : Symbol(Windows, Decl(ipromise4.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 3, 13)) + + then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise4.ts, 4, 13)) +>success : Symbol(success, Decl(ipromise4.ts, 4, 16)) +>value : Symbol(value, Decl(ipromise4.ts, 4, 27)) +>T : Symbol(T, Decl(ipromise4.ts, 1, 30)) +>U : Symbol(U, Decl(ipromise4.ts, 4, 13)) +>error : Symbol(error, Decl(ipromise4.ts, 4, 42)) +>error : Symbol(error, Decl(ipromise4.ts, 4, 52)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 4, 13)) +>progress : Symbol(progress, Decl(ipromise4.ts, 4, 79)) +>progress : Symbol(progress, Decl(ipromise4.ts, 4, 92)) +>Windows : Symbol(Windows, Decl(ipromise4.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 4, 13)) + + then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; +>then : Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>U : Symbol(U, Decl(ipromise4.ts, 5, 13)) +>success : Symbol(success, Decl(ipromise4.ts, 5, 16)) +>value : Symbol(value, Decl(ipromise4.ts, 5, 27)) +>T : Symbol(T, Decl(ipromise4.ts, 1, 30)) +>U : Symbol(U, Decl(ipromise4.ts, 5, 13)) +>error : Symbol(error, Decl(ipromise4.ts, 5, 42)) +>error : Symbol(error, Decl(ipromise4.ts, 5, 52)) +>U : Symbol(U, Decl(ipromise4.ts, 5, 13)) +>progress : Symbol(progress, Decl(ipromise4.ts, 5, 69)) +>progress : Symbol(progress, Decl(ipromise4.ts, 5, 82)) +>Windows : Symbol(Windows, Decl(ipromise4.ts, 0, 0)) +>Foundation : Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) +>IPromise : Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) +>U : Symbol(U, Decl(ipromise4.ts, 5, 13)) + + done? (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; +>done : Symbol(done, Decl(ipromise4.ts, 5, 139)) +>U : Symbol(U, Decl(ipromise4.ts, 6, 15)) +>success : Symbol(success, Decl(ipromise4.ts, 6, 18)) +>value : Symbol(value, Decl(ipromise4.ts, 6, 29)) +>T : Symbol(T, Decl(ipromise4.ts, 1, 30)) +>error : Symbol(error, Decl(ipromise4.ts, 6, 46)) +>error : Symbol(error, Decl(ipromise4.ts, 6, 56)) +>progress : Symbol(progress, Decl(ipromise4.ts, 6, 75)) +>progress : Symbol(progress, Decl(ipromise4.ts, 6, 88)) + } +} + +var p: Windows.Foundation.IPromise = null; +>p : Symbol(p, Decl(ipromise4.ts, 10, 3)) +>Windows : Symbol(Windows, Decl(ipromise4.ts, 0, 0)) +>Foundation : Symbol(Windows.Foundation, Decl(ipromise4.ts, 0, 23)) +>IPromise : Symbol(Windows.Foundation.IPromise, Decl(ipromise4.ts, 0, 35)) + +p.then(function (x) { } ); // should not error +>p.then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>p : Symbol(p, Decl(ipromise4.ts, 10, 3)) +>then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>x : Symbol(x, Decl(ipromise4.ts, 12, 17)) + +p.then(function (x) { return "hello"; } ).then(function (x) { return x } ); // should not error +>p.then(function (x) { return "hello"; } ).then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>p.then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>p : Symbol(p, Decl(ipromise4.ts, 10, 3)) +>then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>x : Symbol(x, Decl(ipromise4.ts, 13, 17)) +>then : Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>x : Symbol(x, Decl(ipromise4.ts, 13, 57)) +>x : Symbol(x, Decl(ipromise4.ts, 13, 57)) + + diff --git a/tests/baselines/reference/ipromise4.types b/tests/baselines/reference/ipromise4.types index 90152fbbe703e..b12c47c7ed5b6 100644 --- a/tests/baselines/reference/ipromise4.types +++ b/tests/baselines/reference/ipromise4.types @@ -1,125 +1,125 @@ === tests/cases/compiler/ipromise4.ts === declare module Windows.Foundation { ->Windows : any, Symbol(Windows, Decl(ipromise4.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) +>Windows : any +>Foundation : any export interface IPromise { ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->T : T, Symbol(T, Decl(ipromise4.ts, 1, 30)) +>IPromise : IPromise +>T : T then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise4.ts, 2, 13)) ->success : (value: T) => IPromise, Symbol(success, Decl(ipromise4.ts, 2, 16)) ->value : T, Symbol(value, Decl(ipromise4.ts, 2, 27)) ->T : T, Symbol(T, Decl(ipromise4.ts, 1, 30)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 2, 13)) ->error : (error: any) => IPromise, Symbol(error, Decl(ipromise4.ts, 2, 52)) ->error : any, Symbol(error, Decl(ipromise4.ts, 2, 62)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 2, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise4.ts, 2, 89)) ->progress : any, Symbol(progress, Decl(ipromise4.ts, 2, 102)) ->Windows : any, Symbol(Windows, Decl(ipromise4.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 2, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => IPromise +>value : T +>T : T +>IPromise : IPromise +>U : U +>error : (error: any) => IPromise +>error : any +>IPromise : IPromise +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise4.ts, 3, 13)) ->success : (value: T) => IPromise, Symbol(success, Decl(ipromise4.ts, 3, 16)) ->value : T, Symbol(value, Decl(ipromise4.ts, 3, 27)) ->T : T, Symbol(T, Decl(ipromise4.ts, 1, 30)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 3, 13)) ->error : (error: any) => U, Symbol(error, Decl(ipromise4.ts, 3, 52)) ->error : any, Symbol(error, Decl(ipromise4.ts, 3, 62)) ->U : U, Symbol(U, Decl(ipromise4.ts, 3, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise4.ts, 3, 79)) ->progress : any, Symbol(progress, Decl(ipromise4.ts, 3, 92)) ->Windows : any, Symbol(Windows, Decl(ipromise4.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 3, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => IPromise +>value : T +>T : T +>IPromise : IPromise +>U : U +>error : (error: any) => U +>error : any +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise4.ts, 4, 13)) ->success : (value: T) => U, Symbol(success, Decl(ipromise4.ts, 4, 16)) ->value : T, Symbol(value, Decl(ipromise4.ts, 4, 27)) ->T : T, Symbol(T, Decl(ipromise4.ts, 1, 30)) ->U : U, Symbol(U, Decl(ipromise4.ts, 4, 13)) ->error : (error: any) => IPromise, Symbol(error, Decl(ipromise4.ts, 4, 42)) ->error : any, Symbol(error, Decl(ipromise4.ts, 4, 52)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 4, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise4.ts, 4, 79)) ->progress : any, Symbol(progress, Decl(ipromise4.ts, 4, 92)) ->Windows : any, Symbol(Windows, Decl(ipromise4.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 4, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => U +>value : T +>T : T +>U : U +>error : (error: any) => IPromise +>error : any +>IPromise : IPromise +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; ->then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; }, Symbol(then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) ->U : U, Symbol(U, Decl(ipromise4.ts, 5, 13)) ->success : (value: T) => U, Symbol(success, Decl(ipromise4.ts, 5, 16)) ->value : T, Symbol(value, Decl(ipromise4.ts, 5, 27)) ->T : T, Symbol(T, Decl(ipromise4.ts, 1, 30)) ->U : U, Symbol(U, Decl(ipromise4.ts, 5, 13)) ->error : (error: any) => U, Symbol(error, Decl(ipromise4.ts, 5, 42)) ->error : any, Symbol(error, Decl(ipromise4.ts, 5, 52)) ->U : U, Symbol(U, Decl(ipromise4.ts, 5, 13)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise4.ts, 5, 69)) ->progress : any, Symbol(progress, Decl(ipromise4.ts, 5, 82)) ->Windows : any, Symbol(Windows, Decl(ipromise4.ts, 0, 0)) ->Foundation : any, Symbol(Foundation, Decl(ipromise4.ts, 0, 23)) ->IPromise : IPromise, Symbol(IPromise, Decl(ipromise4.ts, 0, 35)) ->U : U, Symbol(U, Decl(ipromise4.ts, 5, 13)) +>then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } +>U : U +>success : (value: T) => U +>value : T +>T : T +>U : U +>error : (error: any) => U +>error : any +>U : U +>progress : (progress: any) => void +>progress : any +>Windows : any +>Foundation : any +>IPromise : IPromise +>U : U done? (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void ): void; ->done : (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void) => void, Symbol(done, Decl(ipromise4.ts, 5, 139)) ->U : U, Symbol(U, Decl(ipromise4.ts, 6, 15)) ->success : (value: T) => any, Symbol(success, Decl(ipromise4.ts, 6, 18)) ->value : T, Symbol(value, Decl(ipromise4.ts, 6, 29)) ->T : T, Symbol(T, Decl(ipromise4.ts, 1, 30)) ->error : (error: any) => any, Symbol(error, Decl(ipromise4.ts, 6, 46)) ->error : any, Symbol(error, Decl(ipromise4.ts, 6, 56)) ->progress : (progress: any) => void, Symbol(progress, Decl(ipromise4.ts, 6, 75)) ->progress : any, Symbol(progress, Decl(ipromise4.ts, 6, 88)) +>done : (success?: (value: T) => any, error?: (error: any) => any, progress?: (progress: any) => void) => void +>U : U +>success : (value: T) => any +>value : T +>T : T +>error : (error: any) => any +>error : any +>progress : (progress: any) => void +>progress : any } } var p: Windows.Foundation.IPromise = null; ->p : Windows.Foundation.IPromise, Symbol(p, Decl(ipromise4.ts, 10, 3)) ->Windows : any, Symbol(Windows, Decl(ipromise4.ts, 0, 0)) ->Foundation : any, Symbol(Windows.Foundation, Decl(ipromise4.ts, 0, 23)) ->IPromise : Windows.Foundation.IPromise, Symbol(Windows.Foundation.IPromise, Decl(ipromise4.ts, 0, 35)) +>p : Windows.Foundation.IPromise +>Windows : any +>Foundation : any +>IPromise : Windows.Foundation.IPromise >null : null p.then(function (x) { } ); // should not error >p.then(function (x) { } ) : Windows.Foundation.IPromise ->p.then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) ->p : Windows.Foundation.IPromise, Symbol(p, Decl(ipromise4.ts, 10, 3)) ->then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>p.then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } +>p : Windows.Foundation.IPromise +>then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >function (x) { } : (x: number) => void ->x : number, Symbol(x, Decl(ipromise4.ts, 12, 17)) +>x : number p.then(function (x) { return "hello"; } ).then(function (x) { return x } ); // should not error >p.then(function (x) { return "hello"; } ).then(function (x) { return x } ) : Windows.Foundation.IPromise ->p.then(function (x) { return "hello"; } ).then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>p.then(function (x) { return "hello"; } ).then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >p.then(function (x) { return "hello"; } ) : Windows.Foundation.IPromise ->p.then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) ->p : Windows.Foundation.IPromise, Symbol(p, Decl(ipromise4.ts, 10, 3)) ->then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>p.then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } +>p : Windows.Foundation.IPromise +>then : { (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >function (x) { return "hello"; } : (x: number) => string ->x : number, Symbol(x, Decl(ipromise4.ts, 13, 17)) +>x : number >"hello" : string ->then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; }, Symbol(Windows.Foundation.IPromise.then, Decl(ipromise4.ts, 1, 34), Decl(ipromise4.ts, 2, 159), Decl(ipromise4.ts, 3, 149), Decl(ipromise4.ts, 4, 149)) +>then : { (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => Windows.Foundation.IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => Windows.Foundation.IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: string) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } >function (x) { return x } : (x: string) => string ->x : string, Symbol(x, Decl(ipromise4.ts, 13, 57)) ->x : string, Symbol(x, Decl(ipromise4.ts, 13, 57)) +>x : string +>x : string diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.symbols b/tests/baselines/reference/isDeclarationVisibleNodeKinds.symbols new file mode 100644 index 0000000000000..659a1330616cf --- /dev/null +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.symbols @@ -0,0 +1,168 @@ +=== tests/cases/compiler/isDeclarationVisibleNodeKinds.ts === + +// Function types +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator1(schema: any): (data: T) => T { +>createValidator1 : Symbol(createValidator1, Decl(isDeclarationVisibleNodeKinds.ts, 2, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 3, 37)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 3, 52)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 3, 55)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 3, 52)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 3, 52)) + + return undefined; +>undefined : Symbol(undefined) + } +} + +// Constructor types +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator2(schema: any): new (data: T) => T { +>createValidator2 : Symbol(createValidator2, Decl(isDeclarationVisibleNodeKinds.ts, 9, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 10, 37)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 10, 56)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 10, 59)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 10, 56)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 10, 56)) + + return undefined; +>undefined : Symbol(undefined) + } +} + +// union types +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator3(schema: any): number | { new (data: T): T; } { +>createValidator3 : Symbol(createValidator3, Decl(isDeclarationVisibleNodeKinds.ts, 16, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 17, 38)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 17, 68)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 17, 71)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 17, 68)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 17, 68)) + + return undefined; +>undefined : Symbol(undefined) + } +} + +// Array types +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator4(schema: any): { new (data: T): T; }[] { +>createValidator4 : Symbol(createValidator4, Decl(isDeclarationVisibleNodeKinds.ts, 23, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 24, 38)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 24, 59)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 24, 62)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 24, 59)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 24, 59)) + + return undefined; +>undefined : Symbol(undefined) + } +} + + +// TypeLiterals +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator5(schema: any): { new (data: T): T } { +>createValidator5 : Symbol(createValidator5, Decl(isDeclarationVisibleNodeKinds.ts, 31, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 32, 37)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 32, 58)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 32, 61)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 32, 58)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 32, 58)) + + return undefined; +>undefined : Symbol(undefined) + } +} + +// Tuple types +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator6(schema: any): [ new (data: T) => T, number] { +>createValidator6 : Symbol(createValidator6, Decl(isDeclarationVisibleNodeKinds.ts, 38, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 39, 37)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 39, 58)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 39, 61)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 39, 58)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 39, 58)) + + return undefined; +>undefined : Symbol(undefined) + } +} + +// Paren Types +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator7(schema: any): (new (data: T)=>T )[] { +>createValidator7 : Symbol(createValidator7, Decl(isDeclarationVisibleNodeKinds.ts, 45, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 46, 37)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 46, 57)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 46, 60)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 46, 57)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 46, 57)) + + return undefined; +>undefined : Symbol(undefined) + } +} + +// Type reference +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export function createValidator8(schema: any): Array<{ (data: T) : T}> { +>createValidator8 : Symbol(createValidator8, Decl(isDeclarationVisibleNodeKinds.ts, 52, 15)) +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 53, 37)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 53, 60)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 53, 63)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 53, 60)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 53, 60)) + + return undefined; +>undefined : Symbol(undefined) + } +} + + +module schema { +>schema : Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) + + export class T { +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 59, 15)) + + get createValidator9(): (data: T) => T { +>createValidator9 : Symbol(createValidator9, Decl(isDeclarationVisibleNodeKinds.ts, 60, 20)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 61, 33)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 61, 36)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 61, 33)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 61, 33)) + + return undefined; +>undefined : Symbol(undefined) + } + + set createValidator10(v: (data: T) => T) { +>createValidator10 : Symbol(createValidator10, Decl(isDeclarationVisibleNodeKinds.ts, 63, 9)) +>v : Symbol(v, Decl(isDeclarationVisibleNodeKinds.ts, 65, 30)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 65, 34)) +>data : Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 65, 37)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 65, 34)) +>T : Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 65, 34)) + } + } +} diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types index d03429fbcf8e9..b3fe8d684b72a 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types @@ -2,167 +2,167 @@ // Function types module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator1(schema: any): (data: T) => T { ->createValidator1 : (schema: any) => (data: T) => T, Symbol(createValidator1, Decl(isDeclarationVisibleNodeKinds.ts, 2, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 3, 37)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 3, 52)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 3, 55)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 3, 52)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 3, 52)) +>createValidator1 : (schema: any) => (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // Constructor types module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator2(schema: any): new (data: T) => T { ->createValidator2 : (schema: any) => new (data: T) => T, Symbol(createValidator2, Decl(isDeclarationVisibleNodeKinds.ts, 9, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 10, 37)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 10, 56)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 10, 59)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 10, 56)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 10, 56)) +>createValidator2 : (schema: any) => new (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // union types module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator3(schema: any): number | { new (data: T): T; } { ->createValidator3 : (schema: any) => number | (new (data: T) => T), Symbol(createValidator3, Decl(isDeclarationVisibleNodeKinds.ts, 16, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 17, 38)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 17, 68)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 17, 71)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 17, 68)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 17, 68)) +>createValidator3 : (schema: any) => number | (new (data: T) => T) +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // Array types module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator4(schema: any): { new (data: T): T; }[] { ->createValidator4 : (schema: any) => (new (data: T) => T)[], Symbol(createValidator4, Decl(isDeclarationVisibleNodeKinds.ts, 23, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 24, 38)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 24, 59)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 24, 62)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 24, 59)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 24, 59)) +>createValidator4 : (schema: any) => (new (data: T) => T)[] +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // TypeLiterals module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator5(schema: any): { new (data: T): T } { ->createValidator5 : (schema: any) => new (data: T) => T, Symbol(createValidator5, Decl(isDeclarationVisibleNodeKinds.ts, 31, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 32, 37)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 32, 58)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 32, 61)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 32, 58)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 32, 58)) +>createValidator5 : (schema: any) => new (data: T) => T +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // Tuple types module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator6(schema: any): [ new (data: T) => T, number] { ->createValidator6 : (schema: any) => [new (data: T) => T, number], Symbol(createValidator6, Decl(isDeclarationVisibleNodeKinds.ts, 38, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 39, 37)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 39, 58)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 39, 61)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 39, 58)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 39, 58)) +>createValidator6 : (schema: any) => [new (data: T) => T, number] +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // Paren Types module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator7(schema: any): (new (data: T)=>T )[] { ->createValidator7 : (schema: any) => (new (data: T) => T)[], Symbol(createValidator7, Decl(isDeclarationVisibleNodeKinds.ts, 45, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 46, 37)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 46, 57)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 46, 60)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 46, 57)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 46, 57)) +>createValidator7 : (schema: any) => (new (data: T) => T)[] +>schema : any +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } // Type reference module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export function createValidator8(schema: any): Array<{ (data: T) : T}> { ->createValidator8 : (schema: any) => ((data: T) => T)[], Symbol(createValidator8, Decl(isDeclarationVisibleNodeKinds.ts, 52, 15)) ->schema : any, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 53, 37)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 53, 60)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 53, 63)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 53, 60)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 53, 60)) +>createValidator8 : (schema: any) => ((data: T) => T)[] +>schema : any +>Array : T[] +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } } module schema { ->schema : typeof schema, Symbol(schema, Decl(isDeclarationVisibleNodeKinds.ts, 0, 0), Decl(isDeclarationVisibleNodeKinds.ts, 6, 1), Decl(isDeclarationVisibleNodeKinds.ts, 13, 1), Decl(isDeclarationVisibleNodeKinds.ts, 20, 1), Decl(isDeclarationVisibleNodeKinds.ts, 27, 1), Decl(isDeclarationVisibleNodeKinds.ts, 35, 1), Decl(isDeclarationVisibleNodeKinds.ts, 42, 1), Decl(isDeclarationVisibleNodeKinds.ts, 49, 1), Decl(isDeclarationVisibleNodeKinds.ts, 56, 1)) +>schema : typeof schema export class T { ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 59, 15)) +>T : T get createValidator9(): (data: T) => T { ->createValidator9 : (data: T) => T, Symbol(createValidator9, Decl(isDeclarationVisibleNodeKinds.ts, 60, 20)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 61, 33)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 61, 36)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 61, 33)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 61, 33)) +>createValidator9 : (data: T) => T +>T : T +>data : T +>T : T +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } set createValidator10(v: (data: T) => T) { ->createValidator10 : (data: T) => T, Symbol(createValidator10, Decl(isDeclarationVisibleNodeKinds.ts, 63, 9)) ->v : (data: T) => T, Symbol(v, Decl(isDeclarationVisibleNodeKinds.ts, 65, 30)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 65, 34)) ->data : T, Symbol(data, Decl(isDeclarationVisibleNodeKinds.ts, 65, 37)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 65, 34)) ->T : T, Symbol(T, Decl(isDeclarationVisibleNodeKinds.ts, 65, 34)) +>createValidator10 : (data: T) => T +>v : (data: T) => T +>T : T +>data : T +>T : T +>T : T } } } diff --git a/tests/baselines/reference/isLiteral1.symbols b/tests/baselines/reference/isLiteral1.symbols new file mode 100644 index 0000000000000..62163aabfbb00 --- /dev/null +++ b/tests/baselines/reference/isLiteral1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/isLiteral1.ts === +var x: number = 02343; +>x : Symbol(x, Decl(isLiteral1.ts, 0, 3)) + diff --git a/tests/baselines/reference/isLiteral1.types b/tests/baselines/reference/isLiteral1.types index 785d5ec5c8ac7..7ef84568f860a 100644 --- a/tests/baselines/reference/isLiteral1.types +++ b/tests/baselines/reference/isLiteral1.types @@ -1,5 +1,5 @@ === tests/cases/compiler/isLiteral1.ts === var x: number = 02343; ->x : number, Symbol(x, Decl(isLiteral1.ts, 0, 3)) +>x : number >02343 : number diff --git a/tests/baselines/reference/isLiteral2.symbols b/tests/baselines/reference/isLiteral2.symbols new file mode 100644 index 0000000000000..e1f25bf00a2e3 --- /dev/null +++ b/tests/baselines/reference/isLiteral2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/isLiteral2.ts === +var x: number = 02343 +>x : Symbol(x, Decl(isLiteral2.ts, 0, 3)) + diff --git a/tests/baselines/reference/isLiteral2.types b/tests/baselines/reference/isLiteral2.types index a30da1eefbcfc..ab62993fab6c0 100644 --- a/tests/baselines/reference/isLiteral2.types +++ b/tests/baselines/reference/isLiteral2.types @@ -1,5 +1,5 @@ === tests/cases/compiler/isLiteral2.ts === var x: number = 02343 ->x : number, Symbol(x, Decl(isLiteral2.ts, 0, 3)) +>x : number >02343 : number diff --git a/tests/baselines/reference/iterableArrayPattern1.symbols b/tests/baselines/reference/iterableArrayPattern1.symbols new file mode 100644 index 0000000000000..ae0acb823a050 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern1.symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern1.ts === +var [a, b] = new SymbolIterator; +>a : Symbol(a, Decl(iterableArrayPattern1.ts, 0, 5)) +>b : Symbol(b, Decl(iterableArrayPattern1.ts, 0, 7)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iterableArrayPattern1.ts, 0, 32)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iterableArrayPattern1.ts, 0, 32)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern1.ts, 1, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iterableArrayPattern1.ts, 3, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern1.ts, 4, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iterableArrayPattern1.ts, 0, 32)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern1.types b/tests/baselines/reference/iterableArrayPattern1.types index 190627a151278..2cfd2354f31d9 100644 --- a/tests/baselines/reference/iterableArrayPattern1.types +++ b/tests/baselines/reference/iterableArrayPattern1.types @@ -1,37 +1,37 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern1.ts === var [a, b] = new SymbolIterator; ->a : symbol, Symbol(a, Decl(iterableArrayPattern1.ts, 0, 5)) ->b : symbol, Symbol(b, Decl(iterableArrayPattern1.ts, 0, 7)) +>a : symbol +>b : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iterableArrayPattern1.ts, 0, 32)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iterableArrayPattern1.ts, 0, 32)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iterableArrayPattern1.ts, 1, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iterableArrayPattern1.ts, 3, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern1.ts, 4, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iterableArrayPattern1.ts, 0, 32)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern11.symbols b/tests/baselines/reference/iterableArrayPattern11.symbols new file mode 100644 index 0000000000000..38a9b18e2d171 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern11.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern11.ts === +function fun([a, b] = new FooIterator) { } +>fun : Symbol(fun, Decl(iterableArrayPattern11.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern11.ts, 0, 14)) +>b : Symbol(b, Decl(iterableArrayPattern11.ts, 0, 16)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) + +fun(new FooIterator); +>fun : Symbol(fun, Decl(iterableArrayPattern11.ts, 0, 0)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern11.ts, 1, 21)) +>x : Symbol(x, Decl(iterableArrayPattern11.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern11.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern11.ts, 1, 21)) +>y : Symbol(y, Decl(iterableArrayPattern11.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern11.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern11.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern11.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern11.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern11.types b/tests/baselines/reference/iterableArrayPattern11.types index 9d44005c02856..3118e748d6f12 100644 --- a/tests/baselines/reference/iterableArrayPattern11.types +++ b/tests/baselines/reference/iterableArrayPattern11.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern11.ts === function fun([a, b] = new FooIterator) { } ->fun : ([a, b]?: FooIterator) => void, Symbol(fun, Decl(iterableArrayPattern11.ts, 0, 0)) ->a : Foo, Symbol(a, Decl(iterableArrayPattern11.ts, 0, 14)) ->b : Foo, Symbol(b, Decl(iterableArrayPattern11.ts, 0, 16)) +>fun : ([a, b]?: FooIterator) => void +>a : Foo +>b : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) +>FooIterator : typeof FooIterator fun(new FooIterator); >fun(new FooIterator) : void ->fun : ([a, b]?: FooIterator) => void, Symbol(fun, Decl(iterableArrayPattern11.ts, 0, 0)) +>fun : ([a, b]?: FooIterator) => void >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern11.ts, 1, 21)) ->x : any, Symbol(x, Decl(iterableArrayPattern11.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern11.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern11.ts, 1, 21)) ->y : any, Symbol(y, Decl(iterableArrayPattern11.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern11.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern11.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern11.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern11.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern11.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern12.symbols b/tests/baselines/reference/iterableArrayPattern12.symbols new file mode 100644 index 0000000000000..118bea4d0b4fb --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern12.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern12.ts === +function fun([a, ...b] = new FooIterator) { } +>fun : Symbol(fun, Decl(iterableArrayPattern12.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern12.ts, 0, 14)) +>b : Symbol(b, Decl(iterableArrayPattern12.ts, 0, 16)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) + +fun(new FooIterator); +>fun : Symbol(fun, Decl(iterableArrayPattern12.ts, 0, 0)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern12.ts, 1, 21)) +>x : Symbol(x, Decl(iterableArrayPattern12.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern12.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern12.ts, 1, 21)) +>y : Symbol(y, Decl(iterableArrayPattern12.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern12.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern12.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern12.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern12.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern12.types b/tests/baselines/reference/iterableArrayPattern12.types index 3135136e3b6da..b32c2ff7dc82d 100644 --- a/tests/baselines/reference/iterableArrayPattern12.types +++ b/tests/baselines/reference/iterableArrayPattern12.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern12.ts === function fun([a, ...b] = new FooIterator) { } ->fun : ([a, ...b]?: FooIterator) => void, Symbol(fun, Decl(iterableArrayPattern12.ts, 0, 0)) ->a : Foo, Symbol(a, Decl(iterableArrayPattern12.ts, 0, 14)) ->b : Foo[], Symbol(b, Decl(iterableArrayPattern12.ts, 0, 16)) +>fun : ([a, ...b]?: FooIterator) => void +>a : Foo +>b : Foo[] >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) +>FooIterator : typeof FooIterator fun(new FooIterator); >fun(new FooIterator) : void ->fun : ([a, ...b]?: FooIterator) => void, Symbol(fun, Decl(iterableArrayPattern12.ts, 0, 0)) +>fun : ([a, ...b]?: FooIterator) => void >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern12.ts, 1, 21)) ->x : any, Symbol(x, Decl(iterableArrayPattern12.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern12.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern12.ts, 1, 21)) ->y : any, Symbol(y, Decl(iterableArrayPattern12.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern12.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern12.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern12.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern12.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern12.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern13.symbols b/tests/baselines/reference/iterableArrayPattern13.symbols new file mode 100644 index 0000000000000..832d8ecf69cc9 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern13.symbols @@ -0,0 +1,45 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern13.ts === +function fun([a, ...b]) { } +>fun : Symbol(fun, Decl(iterableArrayPattern13.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern13.ts, 0, 14)) +>b : Symbol(b, Decl(iterableArrayPattern13.ts, 0, 16)) + +fun(new FooIterator); +>fun : Symbol(fun, Decl(iterableArrayPattern13.ts, 0, 0)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern13.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern13.ts, 1, 21)) +>x : Symbol(x, Decl(iterableArrayPattern13.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern13.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern13.ts, 1, 21)) +>y : Symbol(y, Decl(iterableArrayPattern13.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern13.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern13.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern13.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern13.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern13.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern13.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern13.types b/tests/baselines/reference/iterableArrayPattern13.types index 0f493780c8088..556a871f5a862 100644 --- a/tests/baselines/reference/iterableArrayPattern13.types +++ b/tests/baselines/reference/iterableArrayPattern13.types @@ -1,51 +1,51 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern13.ts === function fun([a, ...b]) { } ->fun : ([a, ...b]: Iterable) => void, Symbol(fun, Decl(iterableArrayPattern13.ts, 0, 0)) ->a : any, Symbol(a, Decl(iterableArrayPattern13.ts, 0, 14)) ->b : any[], Symbol(b, Decl(iterableArrayPattern13.ts, 0, 16)) +>fun : ([a, ...b]: Iterable) => void +>a : any +>b : any[] fun(new FooIterator); >fun(new FooIterator) : void ->fun : ([a, ...b]: Iterable) => void, Symbol(fun, Decl(iterableArrayPattern13.ts, 0, 0)) +>fun : ([a, ...b]: Iterable) => void >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern13.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern13.ts, 1, 21)) ->x : any, Symbol(x, Decl(iterableArrayPattern13.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern13.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern13.ts, 1, 21)) ->y : any, Symbol(y, Decl(iterableArrayPattern13.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern13.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern13.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern13.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern13.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern13.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern13.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern14.symbols b/tests/baselines/reference/iterableArrayPattern14.symbols new file mode 100644 index 0000000000000..6fbf26014d0a0 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern14.symbols @@ -0,0 +1,45 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern14.ts === +function fun(...[a, ...b]) { } +>fun : Symbol(fun, Decl(iterableArrayPattern14.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern14.ts, 0, 17)) +>b : Symbol(b, Decl(iterableArrayPattern14.ts, 0, 19)) + +fun(new FooIterator); +>fun : Symbol(fun, Decl(iterableArrayPattern14.ts, 0, 0)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern14.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern14.ts, 1, 21)) +>x : Symbol(x, Decl(iterableArrayPattern14.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern14.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern14.ts, 1, 21)) +>y : Symbol(y, Decl(iterableArrayPattern14.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern14.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern14.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern14.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern14.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern14.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern14.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern14.types b/tests/baselines/reference/iterableArrayPattern14.types index cb4958f042717..110e185cea890 100644 --- a/tests/baselines/reference/iterableArrayPattern14.types +++ b/tests/baselines/reference/iterableArrayPattern14.types @@ -1,51 +1,51 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern14.ts === function fun(...[a, ...b]) { } ->fun : (...[a, ...b]: any[]) => void, Symbol(fun, Decl(iterableArrayPattern14.ts, 0, 0)) ->a : any, Symbol(a, Decl(iterableArrayPattern14.ts, 0, 17)) ->b : any[], Symbol(b, Decl(iterableArrayPattern14.ts, 0, 19)) +>fun : (...[a, ...b]: any[]) => void +>a : any +>b : any[] fun(new FooIterator); >fun(new FooIterator) : void ->fun : (...[a, ...b]: any[]) => void, Symbol(fun, Decl(iterableArrayPattern14.ts, 0, 0)) +>fun : (...[a, ...b]: any[]) => void >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern14.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern14.ts, 1, 21)) ->x : any, Symbol(x, Decl(iterableArrayPattern14.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern14.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern14.ts, 1, 21)) ->y : any, Symbol(y, Decl(iterableArrayPattern14.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern14.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern14.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern14.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern14.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern14.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern14.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern15.symbols b/tests/baselines/reference/iterableArrayPattern15.symbols new file mode 100644 index 0000000000000..c0624ef10b38c --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern15.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern15.ts === +function fun(...[a, b]: Bar[]) { } +>fun : Symbol(fun, Decl(iterableArrayPattern15.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern15.ts, 0, 17)) +>b : Symbol(b, Decl(iterableArrayPattern15.ts, 0, 19)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern15.ts, 1, 24)) + +fun(...new FooIterator); +>fun : Symbol(fun, Decl(iterableArrayPattern15.ts, 0, 0)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern15.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern15.ts, 1, 24)) +>x : Symbol(x, Decl(iterableArrayPattern15.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern15.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern15.ts, 1, 24)) +>y : Symbol(y, Decl(iterableArrayPattern15.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern15.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern15.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern15.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern15.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern15.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern15.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern15.types b/tests/baselines/reference/iterableArrayPattern15.types index f0b8473f77d8e..6475c2c30de9f 100644 --- a/tests/baselines/reference/iterableArrayPattern15.types +++ b/tests/baselines/reference/iterableArrayPattern15.types @@ -1,53 +1,53 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern15.ts === function fun(...[a, b]: Bar[]) { } ->fun : (...[a, b]: Bar[]) => void, Symbol(fun, Decl(iterableArrayPattern15.ts, 0, 0)) ->a : Bar, Symbol(a, Decl(iterableArrayPattern15.ts, 0, 17)) ->b : Bar, Symbol(b, Decl(iterableArrayPattern15.ts, 0, 19)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern15.ts, 1, 24)) +>fun : (...[a, b]: Bar[]) => void +>a : Bar +>b : Bar +>Bar : Bar fun(...new FooIterator); >fun(...new FooIterator) : void ->fun : (...[a, b]: Bar[]) => void, Symbol(fun, Decl(iterableArrayPattern15.ts, 0, 0)) +>fun : (...[a, b]: Bar[]) => void >...new FooIterator : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern15.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern15.ts, 1, 24)) ->x : any, Symbol(x, Decl(iterableArrayPattern15.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern15.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern15.ts, 1, 24)) ->y : any, Symbol(y, Decl(iterableArrayPattern15.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern15.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern15.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern15.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern15.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern15.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern15.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern2.symbols b/tests/baselines/reference/iterableArrayPattern2.symbols new file mode 100644 index 0000000000000..0f4e768223599 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern2.symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern2.ts === +var [a, ...b] = new SymbolIterator; +>a : Symbol(a, Decl(iterableArrayPattern2.ts, 0, 5)) +>b : Symbol(b, Decl(iterableArrayPattern2.ts, 0, 7)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iterableArrayPattern2.ts, 0, 35)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iterableArrayPattern2.ts, 0, 35)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern2.ts, 1, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iterableArrayPattern2.ts, 3, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern2.ts, 4, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iterableArrayPattern2.ts, 0, 35)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern2.types b/tests/baselines/reference/iterableArrayPattern2.types index cd34b0e7e4840..bd58cb86b7992 100644 --- a/tests/baselines/reference/iterableArrayPattern2.types +++ b/tests/baselines/reference/iterableArrayPattern2.types @@ -1,37 +1,37 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern2.ts === var [a, ...b] = new SymbolIterator; ->a : symbol, Symbol(a, Decl(iterableArrayPattern2.ts, 0, 5)) ->b : symbol[], Symbol(b, Decl(iterableArrayPattern2.ts, 0, 7)) +>a : symbol +>b : symbol[] >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iterableArrayPattern2.ts, 0, 35)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iterableArrayPattern2.ts, 0, 35)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iterableArrayPattern2.ts, 1, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iterableArrayPattern2.ts, 3, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern2.ts, 4, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iterableArrayPattern2.ts, 0, 35)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern20.symbols b/tests/baselines/reference/iterableArrayPattern20.symbols new file mode 100644 index 0000000000000..80587a99322c8 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern20.symbols @@ -0,0 +1,48 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern20.ts === +function fun(...[[a = new Foo], b = [new Foo]]: Bar[][]) { } +>fun : Symbol(fun, Decl(iterableArrayPattern20.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern20.ts, 0, 18)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) +>b : Symbol(b, Decl(iterableArrayPattern20.ts, 0, 31)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern20.ts, 1, 29)) + +fun(...new FooArrayIterator); +>fun : Symbol(fun, Decl(iterableArrayPattern20.ts, 0, 0)) +>FooArrayIterator : Symbol(FooArrayIterator, Decl(iterableArrayPattern20.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern20.ts, 1, 29)) +>x : Symbol(x, Decl(iterableArrayPattern20.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern20.ts, 1, 29)) +>y : Symbol(y, Decl(iterableArrayPattern20.ts, 3, 23)) + +class FooArrayIterator { +>FooArrayIterator : Symbol(FooArrayIterator, Decl(iterableArrayPattern20.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern20.ts, 4, 24)) + + return { + value: [new Foo], +>value : Symbol(value, Decl(iterableArrayPattern20.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern20.ts, 7, 29)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooArrayIterator, Decl(iterableArrayPattern20.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern20.types b/tests/baselines/reference/iterableArrayPattern20.types index 43f24a20971c8..b7bd26377a980 100644 --- a/tests/baselines/reference/iterableArrayPattern20.types +++ b/tests/baselines/reference/iterableArrayPattern20.types @@ -1,59 +1,59 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern20.ts === function fun(...[[a = new Foo], b = [new Foo]]: Bar[][]) { } ->fun : (...[[a = new Foo], b = [new Foo]]: Bar[][]) => void, Symbol(fun, Decl(iterableArrayPattern20.ts, 0, 0)) ->a : Bar, Symbol(a, Decl(iterableArrayPattern20.ts, 0, 18)) +>fun : (...[[a = new Foo], b = [new Foo]]: Bar[][]) => void +>a : Bar >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) ->b : Bar[], Symbol(b, Decl(iterableArrayPattern20.ts, 0, 31)) +>Foo : typeof Foo +>b : Bar[] >[new Foo] : Foo[] >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern20.ts, 1, 29)) +>Foo : typeof Foo +>Bar : Bar fun(...new FooArrayIterator); >fun(...new FooArrayIterator) : void ->fun : (...[[a = new Foo], b = [new Foo]]: Bar[][]) => void, Symbol(fun, Decl(iterableArrayPattern20.ts, 0, 0)) +>fun : (...[[a = new Foo], b = [new Foo]]: Bar[][]) => void >...new FooArrayIterator : Foo[] >new FooArrayIterator : FooArrayIterator ->FooArrayIterator : typeof FooArrayIterator, Symbol(FooArrayIterator, Decl(iterableArrayPattern20.ts, 3, 27)) +>FooArrayIterator : typeof FooArrayIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern20.ts, 1, 29)) ->x : any, Symbol(x, Decl(iterableArrayPattern20.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern20.ts, 1, 29)) ->y : any, Symbol(y, Decl(iterableArrayPattern20.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooArrayIterator { ->FooArrayIterator : FooArrayIterator, Symbol(FooArrayIterator, Decl(iterableArrayPattern20.ts, 3, 27)) +>FooArrayIterator : FooArrayIterator next() { ->next : () => { value: Foo[]; done: boolean; }, Symbol(next, Decl(iterableArrayPattern20.ts, 4, 24)) +>next : () => { value: Foo[]; done: boolean; } return { >{ value: [new Foo], done: false } : { value: Foo[]; done: boolean; } value: [new Foo], ->value : Foo[], Symbol(value, Decl(iterableArrayPattern20.ts, 6, 16)) +>value : Foo[] >[new Foo] : Foo[] >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern20.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern20.ts, 7, 29)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooArrayIterator, Symbol(FooArrayIterator, Decl(iterableArrayPattern20.ts, 3, 27)) +>this : FooArrayIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern27.symbols b/tests/baselines/reference/iterableArrayPattern27.symbols new file mode 100644 index 0000000000000..0f5e8b7094b63 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern27.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern27.ts === +function takeFirstTwoEntries(...[[k1, v1], [k2, v2]]: [string, number][]) { } +>takeFirstTwoEntries : Symbol(takeFirstTwoEntries, Decl(iterableArrayPattern27.ts, 0, 0)) +>k1 : Symbol(k1, Decl(iterableArrayPattern27.ts, 0, 34)) +>v1 : Symbol(v1, Decl(iterableArrayPattern27.ts, 0, 37)) +>k2 : Symbol(k2, Decl(iterableArrayPattern27.ts, 0, 44)) +>v2 : Symbol(v2, Decl(iterableArrayPattern27.ts, 0, 47)) + +takeFirstTwoEntries(...new Map([["", 0], ["hello", 1]])); +>takeFirstTwoEntries : Symbol(takeFirstTwoEntries, Decl(iterableArrayPattern27.ts, 0, 0)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + diff --git a/tests/baselines/reference/iterableArrayPattern27.types b/tests/baselines/reference/iterableArrayPattern27.types index 838d222232cd2..d6f87590326de 100644 --- a/tests/baselines/reference/iterableArrayPattern27.types +++ b/tests/baselines/reference/iterableArrayPattern27.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern27.ts === function takeFirstTwoEntries(...[[k1, v1], [k2, v2]]: [string, number][]) { } ->takeFirstTwoEntries : (...[[k1, v1], [k2, v2]]: [string, number][]) => void, Symbol(takeFirstTwoEntries, Decl(iterableArrayPattern27.ts, 0, 0)) ->k1 : string, Symbol(k1, Decl(iterableArrayPattern27.ts, 0, 34)) ->v1 : number, Symbol(v1, Decl(iterableArrayPattern27.ts, 0, 37)) ->k2 : string, Symbol(k2, Decl(iterableArrayPattern27.ts, 0, 44)) ->v2 : number, Symbol(v2, Decl(iterableArrayPattern27.ts, 0, 47)) +>takeFirstTwoEntries : (...[[k1, v1], [k2, v2]]: [string, number][]) => void +>k1 : string +>v1 : number +>k2 : string +>v2 : number takeFirstTwoEntries(...new Map([["", 0], ["hello", 1]])); >takeFirstTwoEntries(...new Map([["", 0], ["hello", 1]])) : void ->takeFirstTwoEntries : (...[[k1, v1], [k2, v2]]: [string, number][]) => void, Symbol(takeFirstTwoEntries, Decl(iterableArrayPattern27.ts, 0, 0)) +>takeFirstTwoEntries : (...[[k1, v1], [k2, v2]]: [string, number][]) => void >...new Map([["", 0], ["hello", 1]]) : [string, number] >new Map([["", 0], ["hello", 1]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", 0], ["hello", 1]] : [string, number][] >["", 0] : [string, number] >"" : string diff --git a/tests/baselines/reference/iterableArrayPattern3.symbols b/tests/baselines/reference/iterableArrayPattern3.symbols new file mode 100644 index 0000000000000..32907a90b20c1 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern3.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern3.ts === +var a: Bar, b: Bar; +>a : Symbol(a, Decl(iterableArrayPattern3.ts, 0, 3)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) +>b : Symbol(b, Decl(iterableArrayPattern3.ts, 0, 11)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) + +[a, b] = new FooIterator; +>a : Symbol(a, Decl(iterableArrayPattern3.ts, 0, 3)) +>b : Symbol(b, Decl(iterableArrayPattern3.ts, 0, 11)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern3.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) +>x : Symbol(x, Decl(iterableArrayPattern3.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern3.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) +>y : Symbol(y, Decl(iterableArrayPattern3.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern3.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern3.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern3.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern3.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern3.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern3.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern3.types b/tests/baselines/reference/iterableArrayPattern3.types index c31d90b8d4326..fed5c7f07d373 100644 --- a/tests/baselines/reference/iterableArrayPattern3.types +++ b/tests/baselines/reference/iterableArrayPattern3.types @@ -1,54 +1,54 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern3.ts === var a: Bar, b: Bar; ->a : Bar, Symbol(a, Decl(iterableArrayPattern3.ts, 0, 3)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) ->b : Bar, Symbol(b, Decl(iterableArrayPattern3.ts, 0, 11)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) +>a : Bar +>Bar : Bar +>b : Bar +>Bar : Bar [a, b] = new FooIterator; >[a, b] = new FooIterator : FooIterator >[a, b] : [Bar, Bar] ->a : Bar, Symbol(a, Decl(iterableArrayPattern3.ts, 0, 3)) ->b : Bar, Symbol(b, Decl(iterableArrayPattern3.ts, 0, 11)) +>a : Bar +>b : Bar >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern3.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) ->x : any, Symbol(x, Decl(iterableArrayPattern3.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern3.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern3.ts, 1, 25)) ->y : any, Symbol(y, Decl(iterableArrayPattern3.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern3.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern3.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern3.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern3.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern3.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern3.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern30.symbols b/tests/baselines/reference/iterableArrayPattern30.symbols new file mode 100644 index 0000000000000..d291c3b128b35 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern30.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern30.ts === +const [[k1, v1], [k2, v2]] = new Map([["", true], ["hello", true]]) +>k1 : Symbol(k1, Decl(iterableArrayPattern30.ts, 0, 8)) +>v1 : Symbol(v1, Decl(iterableArrayPattern30.ts, 0, 11)) +>k2 : Symbol(k2, Decl(iterableArrayPattern30.ts, 0, 18)) +>v2 : Symbol(v2, Decl(iterableArrayPattern30.ts, 0, 21)) +>Map : Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) + diff --git a/tests/baselines/reference/iterableArrayPattern30.types b/tests/baselines/reference/iterableArrayPattern30.types index f2bb8e3563f2d..d27db2e7544b7 100644 --- a/tests/baselines/reference/iterableArrayPattern30.types +++ b/tests/baselines/reference/iterableArrayPattern30.types @@ -1,11 +1,11 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern30.ts === const [[k1, v1], [k2, v2]] = new Map([["", true], ["hello", true]]) ->k1 : string, Symbol(k1, Decl(iterableArrayPattern30.ts, 0, 8)) ->v1 : boolean, Symbol(v1, Decl(iterableArrayPattern30.ts, 0, 11)) ->k2 : string, Symbol(k2, Decl(iterableArrayPattern30.ts, 0, 18)) ->v2 : boolean, Symbol(v2, Decl(iterableArrayPattern30.ts, 0, 21)) +>k1 : string +>v1 : boolean +>k2 : string +>v2 : boolean >new Map([["", true], ["hello", true]]) : Map ->Map : MapConstructor, Symbol(Map, Decl(lib.d.ts, 1837, 1), Decl(lib.d.ts, 1859, 11)) +>Map : MapConstructor >[["", true], ["hello", true]] : [string, boolean][] >["", true] : [string, boolean] >"" : string diff --git a/tests/baselines/reference/iterableArrayPattern4.symbols b/tests/baselines/reference/iterableArrayPattern4.symbols new file mode 100644 index 0000000000000..473262707b078 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern4.symbols @@ -0,0 +1,47 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern4.ts === +var a: Bar, b: Bar[]; +>a : Symbol(a, Decl(iterableArrayPattern4.ts, 0, 3)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) +>b : Symbol(b, Decl(iterableArrayPattern4.ts, 0, 11)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) + +[a, ...b] = new FooIterator; +>a : Symbol(a, Decl(iterableArrayPattern4.ts, 0, 3)) +>b : Symbol(b, Decl(iterableArrayPattern4.ts, 0, 11)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern4.ts, 3, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) +>x : Symbol(x, Decl(iterableArrayPattern4.ts, 2, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern4.ts, 2, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) +>y : Symbol(y, Decl(iterableArrayPattern4.ts, 3, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern4.ts, 3, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern4.ts, 4, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern4.ts, 6, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern4.ts, 2, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern4.ts, 7, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern4.ts, 3, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern4.types b/tests/baselines/reference/iterableArrayPattern4.types index c0b797d65d735..8f05a454b5346 100644 --- a/tests/baselines/reference/iterableArrayPattern4.types +++ b/tests/baselines/reference/iterableArrayPattern4.types @@ -1,55 +1,55 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern4.ts === var a: Bar, b: Bar[]; ->a : Bar, Symbol(a, Decl(iterableArrayPattern4.ts, 0, 3)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) ->b : Bar[], Symbol(b, Decl(iterableArrayPattern4.ts, 0, 11)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) +>a : Bar +>Bar : Bar +>b : Bar[] +>Bar : Bar [a, ...b] = new FooIterator; >[a, ...b] = new FooIterator : FooIterator >[a, ...b] : Bar[] ->a : Bar, Symbol(a, Decl(iterableArrayPattern4.ts, 0, 3)) +>a : Bar >...b : Bar ->b : Bar[], Symbol(b, Decl(iterableArrayPattern4.ts, 0, 11)) +>b : Bar[] >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern4.ts, 3, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) ->x : any, Symbol(x, Decl(iterableArrayPattern4.ts, 2, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern4.ts, 2, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern4.ts, 1, 28)) ->y : any, Symbol(y, Decl(iterableArrayPattern4.ts, 3, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern4.ts, 3, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern4.ts, 4, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern4.ts, 6, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern4.ts, 2, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern4.ts, 7, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern4.ts, 3, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableArrayPattern9.symbols b/tests/baselines/reference/iterableArrayPattern9.symbols new file mode 100644 index 0000000000000..7e188f1c94e39 --- /dev/null +++ b/tests/baselines/reference/iterableArrayPattern9.symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/es6/destructuring/iterableArrayPattern9.ts === +function fun([a, b] = new FooIterator) { } +>fun : Symbol(fun, Decl(iterableArrayPattern9.ts, 0, 0)) +>a : Symbol(a, Decl(iterableArrayPattern9.ts, 0, 14)) +>b : Symbol(b, Decl(iterableArrayPattern9.ts, 0, 16)) +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern9.ts, 2, 27)) + +class Bar { x } +>Bar : Symbol(Bar, Decl(iterableArrayPattern9.ts, 0, 42)) +>x : Symbol(x, Decl(iterableArrayPattern9.ts, 1, 11)) + +class Foo extends Bar { y } +>Foo : Symbol(Foo, Decl(iterableArrayPattern9.ts, 1, 15)) +>Bar : Symbol(Bar, Decl(iterableArrayPattern9.ts, 0, 42)) +>y : Symbol(y, Decl(iterableArrayPattern9.ts, 2, 23)) + +class FooIterator { +>FooIterator : Symbol(FooIterator, Decl(iterableArrayPattern9.ts, 2, 27)) + + next() { +>next : Symbol(next, Decl(iterableArrayPattern9.ts, 3, 19)) + + return { + value: new Foo, +>value : Symbol(value, Decl(iterableArrayPattern9.ts, 5, 16)) +>Foo : Symbol(Foo, Decl(iterableArrayPattern9.ts, 1, 15)) + + done: false +>done : Symbol(done, Decl(iterableArrayPattern9.ts, 6, 27)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(FooIterator, Decl(iterableArrayPattern9.ts, 2, 27)) + } +} diff --git a/tests/baselines/reference/iterableArrayPattern9.types b/tests/baselines/reference/iterableArrayPattern9.types index 028319c86c718..03cfa31b621af 100644 --- a/tests/baselines/reference/iterableArrayPattern9.types +++ b/tests/baselines/reference/iterableArrayPattern9.types @@ -1,47 +1,47 @@ === tests/cases/conformance/es6/destructuring/iterableArrayPattern9.ts === function fun([a, b] = new FooIterator) { } ->fun : ([a, b]?: FooIterator) => void, Symbol(fun, Decl(iterableArrayPattern9.ts, 0, 0)) ->a : Foo, Symbol(a, Decl(iterableArrayPattern9.ts, 0, 14)) ->b : Foo, Symbol(b, Decl(iterableArrayPattern9.ts, 0, 16)) +>fun : ([a, b]?: FooIterator) => void +>a : Foo +>b : Foo >new FooIterator : FooIterator ->FooIterator : typeof FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern9.ts, 2, 27)) +>FooIterator : typeof FooIterator class Bar { x } ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern9.ts, 0, 42)) ->x : any, Symbol(x, Decl(iterableArrayPattern9.ts, 1, 11)) +>Bar : Bar +>x : any class Foo extends Bar { y } ->Foo : Foo, Symbol(Foo, Decl(iterableArrayPattern9.ts, 1, 15)) ->Bar : Bar, Symbol(Bar, Decl(iterableArrayPattern9.ts, 0, 42)) ->y : any, Symbol(y, Decl(iterableArrayPattern9.ts, 2, 23)) +>Foo : Foo +>Bar : Bar +>y : any class FooIterator { ->FooIterator : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern9.ts, 2, 27)) +>FooIterator : FooIterator next() { ->next : () => { value: Foo; done: boolean; }, Symbol(next, Decl(iterableArrayPattern9.ts, 3, 19)) +>next : () => { value: Foo; done: boolean; } return { >{ value: new Foo, done: false } : { value: Foo; done: boolean; } value: new Foo, ->value : Foo, Symbol(value, Decl(iterableArrayPattern9.ts, 5, 16)) +>value : Foo >new Foo : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iterableArrayPattern9.ts, 1, 15)) +>Foo : typeof Foo done: false ->done : boolean, Symbol(done, Decl(iterableArrayPattern9.ts, 6, 27)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : FooIterator, Symbol(FooIterator, Decl(iterableArrayPattern9.ts, 2, 27)) +>this : FooIterator } } diff --git a/tests/baselines/reference/iterableContextualTyping1.symbols b/tests/baselines/reference/iterableContextualTyping1.symbols new file mode 100644 index 0000000000000..90b025ddbb0aa --- /dev/null +++ b/tests/baselines/reference/iterableContextualTyping1.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/expressions/contextualTyping/iterableContextualTyping1.ts === +var iter: Iterable<(x: string) => number> = [s => s.length]; +>iter : Symbol(iter, Decl(iterableContextualTyping1.ts, 0, 3)) +>Iterable : Symbol(Iterable, Decl(lib.d.ts, 1633, 1)) +>x : Symbol(x, Decl(iterableContextualTyping1.ts, 0, 20)) +>s : Symbol(s, Decl(iterableContextualTyping1.ts, 0, 45)) +>s.length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : Symbol(s, Decl(iterableContextualTyping1.ts, 0, 45)) +>length : Symbol(String.length, Decl(lib.d.ts, 414, 19)) + diff --git a/tests/baselines/reference/iterableContextualTyping1.types b/tests/baselines/reference/iterableContextualTyping1.types index ed348f835ac8c..386d64312fc7b 100644 --- a/tests/baselines/reference/iterableContextualTyping1.types +++ b/tests/baselines/reference/iterableContextualTyping1.types @@ -1,12 +1,12 @@ === tests/cases/conformance/expressions/contextualTyping/iterableContextualTyping1.ts === var iter: Iterable<(x: string) => number> = [s => s.length]; ->iter : Iterable<(x: string) => number>, Symbol(iter, Decl(iterableContextualTyping1.ts, 0, 3)) ->Iterable : Iterable, Symbol(Iterable, Decl(lib.d.ts, 1633, 1)) ->x : string, Symbol(x, Decl(iterableContextualTyping1.ts, 0, 20)) +>iter : Iterable<(x: string) => number> +>Iterable : Iterable +>x : string >[s => s.length] : ((s: string) => number)[] >s => s.length : (s: string) => number ->s : string, Symbol(s, Decl(iterableContextualTyping1.ts, 0, 45)) ->s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) ->s : string, Symbol(s, Decl(iterableContextualTyping1.ts, 0, 45)) ->length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) +>s : string +>s.length : number +>s : string +>length : number diff --git a/tests/baselines/reference/iteratorSpreadInArray.symbols b/tests/baselines/reference/iteratorSpreadInArray.symbols new file mode 100644 index 0000000000000..c535fe5426f36 --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInArray.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInArray.ts === +var array = [...new SymbolIterator]; +>array : Symbol(array, Decl(iteratorSpreadInArray.ts, 0, 3)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray.ts, 0, 36)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray.ts, 0, 36)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInArray.ts, 2, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInArray.ts, 4, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInArray.ts, 5, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInArray.ts, 0, 36)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInArray.types b/tests/baselines/reference/iteratorSpreadInArray.types index 47e54de03d1aa..2c4a1d207ef8a 100644 --- a/tests/baselines/reference/iteratorSpreadInArray.types +++ b/tests/baselines/reference/iteratorSpreadInArray.types @@ -1,38 +1,38 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInArray.ts === var array = [...new SymbolIterator]; ->array : symbol[], Symbol(array, Decl(iteratorSpreadInArray.ts, 0, 3)) +>array : symbol[] >[...new SymbolIterator] : symbol[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray.ts, 0, 36)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray.ts, 0, 36)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInArray.ts, 2, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInArray.ts, 4, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInArray.ts, 5, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray.ts, 0, 36)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInArray11.symbols b/tests/baselines/reference/iteratorSpreadInArray11.symbols new file mode 100644 index 0000000000000..7df50594c22cf --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInArray11.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInArray11.ts === +var iter: Iterable; +>iter : Symbol(iter, Decl(iteratorSpreadInArray11.ts, 0, 3)) +>Iterable : Symbol(Iterable, Decl(lib.d.ts, 1633, 1)) + +var array = [...iter]; +>array : Symbol(array, Decl(iteratorSpreadInArray11.ts, 1, 3)) +>iter : Symbol(iter, Decl(iteratorSpreadInArray11.ts, 0, 3)) + diff --git a/tests/baselines/reference/iteratorSpreadInArray11.types b/tests/baselines/reference/iteratorSpreadInArray11.types index 77ea247f7b2ac..a3ed7826e071a 100644 --- a/tests/baselines/reference/iteratorSpreadInArray11.types +++ b/tests/baselines/reference/iteratorSpreadInArray11.types @@ -1,11 +1,11 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInArray11.ts === var iter: Iterable; ->iter : Iterable, Symbol(iter, Decl(iteratorSpreadInArray11.ts, 0, 3)) ->Iterable : Iterable, Symbol(Iterable, Decl(lib.d.ts, 1633, 1)) +>iter : Iterable +>Iterable : Iterable var array = [...iter]; ->array : number[], Symbol(array, Decl(iteratorSpreadInArray11.ts, 1, 3)) +>array : number[] >[...iter] : number[] >...iter : number ->iter : Iterable, Symbol(iter, Decl(iteratorSpreadInArray11.ts, 0, 3)) +>iter : Iterable diff --git a/tests/baselines/reference/iteratorSpreadInArray2.symbols b/tests/baselines/reference/iteratorSpreadInArray2.symbols new file mode 100644 index 0000000000000..48f2f853db8d2 --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInArray2.symbols @@ -0,0 +1,58 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInArray2.ts === +var array = [...new NumberIterator, ...new SymbolIterator]; +>array : Symbol(array, Decl(iteratorSpreadInArray2.ts, 0, 3)) +>NumberIterator : Symbol(NumberIterator, Decl(iteratorSpreadInArray2.ts, 13, 1)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray2.ts, 0, 59)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray2.ts, 0, 59)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInArray2.ts, 2, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInArray2.ts, 4, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInArray2.ts, 5, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInArray2.ts, 0, 59)) + } +} + +class NumberIterator { +>NumberIterator : Symbol(NumberIterator, Decl(iteratorSpreadInArray2.ts, 13, 1)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInArray2.ts, 15, 22)) + + return { + value: 0, +>value : Symbol(value, Decl(iteratorSpreadInArray2.ts, 17, 16)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInArray2.ts, 18, 21)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(NumberIterator, Decl(iteratorSpreadInArray2.ts, 13, 1)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInArray2.types b/tests/baselines/reference/iteratorSpreadInArray2.types index 7398199f23c5e..a59c2cf6c6763 100644 --- a/tests/baselines/reference/iteratorSpreadInArray2.types +++ b/tests/baselines/reference/iteratorSpreadInArray2.types @@ -1,71 +1,71 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInArray2.ts === var array = [...new NumberIterator, ...new SymbolIterator]; ->array : (number | symbol)[], Symbol(array, Decl(iteratorSpreadInArray2.ts, 0, 3)) +>array : (number | symbol)[] >[...new NumberIterator, ...new SymbolIterator] : (number | symbol)[] >...new NumberIterator : number >new NumberIterator : NumberIterator ->NumberIterator : typeof NumberIterator, Symbol(NumberIterator, Decl(iteratorSpreadInArray2.ts, 13, 1)) +>NumberIterator : typeof NumberIterator >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray2.ts, 0, 59)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray2.ts, 0, 59)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInArray2.ts, 2, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInArray2.ts, 4, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInArray2.ts, 5, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray2.ts, 0, 59)) +>this : SymbolIterator } } class NumberIterator { ->NumberIterator : NumberIterator, Symbol(NumberIterator, Decl(iteratorSpreadInArray2.ts, 13, 1)) +>NumberIterator : NumberIterator next() { ->next : () => { value: number; done: boolean; }, Symbol(next, Decl(iteratorSpreadInArray2.ts, 15, 22)) +>next : () => { value: number; done: boolean; } return { >{ value: 0, done: false } : { value: number; done: boolean; } value: 0, ->value : number, Symbol(value, Decl(iteratorSpreadInArray2.ts, 17, 16)) +>value : number >0 : number done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInArray2.ts, 18, 21)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : NumberIterator, Symbol(NumberIterator, Decl(iteratorSpreadInArray2.ts, 13, 1)) +>this : NumberIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInArray3.symbols b/tests/baselines/reference/iteratorSpreadInArray3.symbols new file mode 100644 index 0000000000000..b55f8e415ffcc --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInArray3.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInArray3.ts === +var array = [...[0, 1], ...new SymbolIterator]; +>array : Symbol(array, Decl(iteratorSpreadInArray3.ts, 0, 3)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray3.ts, 0, 47)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray3.ts, 0, 47)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInArray3.ts, 2, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInArray3.ts, 4, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInArray3.ts, 5, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInArray3.ts, 0, 47)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInArray3.types b/tests/baselines/reference/iteratorSpreadInArray3.types index d18a553ac4999..0374f28b6b99d 100644 --- a/tests/baselines/reference/iteratorSpreadInArray3.types +++ b/tests/baselines/reference/iteratorSpreadInArray3.types @@ -1,6 +1,6 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInArray3.ts === var array = [...[0, 1], ...new SymbolIterator]; ->array : (number | symbol)[], Symbol(array, Decl(iteratorSpreadInArray3.ts, 0, 3)) +>array : (number | symbol)[] >[...[0, 1], ...new SymbolIterator] : (number | symbol)[] >...[0, 1] : number >[0, 1] : number[] @@ -8,35 +8,35 @@ var array = [...[0, 1], ...new SymbolIterator]; >1 : number >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray3.ts, 0, 47)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray3.ts, 0, 47)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInArray3.ts, 2, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInArray3.ts, 4, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInArray3.ts, 5, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray3.ts, 0, 47)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInArray4.symbols b/tests/baselines/reference/iteratorSpreadInArray4.symbols new file mode 100644 index 0000000000000..a1cba88d942c9 --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInArray4.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInArray4.ts === +var array = [0, 1, ...new SymbolIterator]; +>array : Symbol(array, Decl(iteratorSpreadInArray4.ts, 0, 3)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray4.ts, 0, 42)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray4.ts, 0, 42)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInArray4.ts, 2, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInArray4.ts, 4, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInArray4.ts, 5, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInArray4.ts, 0, 42)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInArray4.types b/tests/baselines/reference/iteratorSpreadInArray4.types index b8e87f4adb28b..d9a304421ba14 100644 --- a/tests/baselines/reference/iteratorSpreadInArray4.types +++ b/tests/baselines/reference/iteratorSpreadInArray4.types @@ -1,40 +1,40 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInArray4.ts === var array = [0, 1, ...new SymbolIterator]; ->array : (number | symbol)[], Symbol(array, Decl(iteratorSpreadInArray4.ts, 0, 3)) +>array : (number | symbol)[] >[0, 1, ...new SymbolIterator] : (number | symbol)[] >0 : number >1 : number >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray4.ts, 0, 42)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray4.ts, 0, 42)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInArray4.ts, 2, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInArray4.ts, 4, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInArray4.ts, 5, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray4.ts, 0, 42)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInArray7.symbols b/tests/baselines/reference/iteratorSpreadInArray7.symbols new file mode 100644 index 0000000000000..c9b8bba10908c --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInArray7.symbols @@ -0,0 +1,36 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInArray7.ts === +var array: symbol[]; +>array : Symbol(array, Decl(iteratorSpreadInArray7.ts, 0, 3)) + +array.concat([...new SymbolIterator]); +>array.concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>array : Symbol(array, Decl(iteratorSpreadInArray7.ts, 0, 3)) +>concat : Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 1, 38)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 1, 38)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInArray7.ts, 3, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInArray7.ts, 5, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInArray7.ts, 6, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 1, 38)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInArray7.types b/tests/baselines/reference/iteratorSpreadInArray7.types index 0af45eab1339a..f207a56f3d5d5 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.types +++ b/tests/baselines/reference/iteratorSpreadInArray7.types @@ -1,44 +1,44 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInArray7.ts === var array: symbol[]; ->array : symbol[], Symbol(array, Decl(iteratorSpreadInArray7.ts, 0, 3)) +>array : symbol[] array.concat([...new SymbolIterator]); >array.concat([...new SymbolIterator]) : symbol[] ->array.concat : { (...items: U[]): symbol[]; (...items: symbol[]): symbol[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) ->array : symbol[], Symbol(array, Decl(iteratorSpreadInArray7.ts, 0, 3)) ->concat : { (...items: U[]): symbol[]; (...items: symbol[]): symbol[]; }, Symbol(Array.concat, Decl(lib.d.ts, 1025, 13), Decl(lib.d.ts, 1030, 46)) +>array.concat : { (...items: U[]): symbol[]; (...items: symbol[]): symbol[]; } +>array : symbol[] +>concat : { (...items: U[]): symbol[]; (...items: symbol[]): symbol[]; } >[...new SymbolIterator] : symbol[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 1, 38)) +>SymbolIterator : typeof SymbolIterator class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 1, 38)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInArray7.ts, 3, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInArray7.ts, 5, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInArray7.ts, 6, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInArray7.ts, 1, 38)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInCall11.symbols b/tests/baselines/reference/iteratorSpreadInCall11.symbols new file mode 100644 index 0000000000000..fbc31e96020ac --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInCall11.symbols @@ -0,0 +1,38 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInCall11.ts === +foo(...new SymbolIterator); +>foo : Symbol(foo, Decl(iteratorSpreadInCall11.ts, 0, 27)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall11.ts, 2, 42)) + +function foo(...s: T[]) { return s[0] } +>foo : Symbol(foo, Decl(iteratorSpreadInCall11.ts, 0, 27)) +>T : Symbol(T, Decl(iteratorSpreadInCall11.ts, 2, 13)) +>s : Symbol(s, Decl(iteratorSpreadInCall11.ts, 2, 16)) +>T : Symbol(T, Decl(iteratorSpreadInCall11.ts, 2, 13)) +>s : Symbol(s, Decl(iteratorSpreadInCall11.ts, 2, 16)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall11.ts, 2, 42)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInCall11.ts, 4, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInCall11.ts, 6, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInCall11.ts, 7, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInCall11.ts, 2, 42)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInCall11.types b/tests/baselines/reference/iteratorSpreadInCall11.types index 70fbacfe06597..edce8b10355f7 100644 --- a/tests/baselines/reference/iteratorSpreadInCall11.types +++ b/tests/baselines/reference/iteratorSpreadInCall11.types @@ -1,47 +1,47 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInCall11.ts === foo(...new SymbolIterator); >foo(...new SymbolIterator) : symbol ->foo : (...s: T[]) => T, Symbol(foo, Decl(iteratorSpreadInCall11.ts, 0, 27)) +>foo : (...s: T[]) => T >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall11.ts, 2, 42)) +>SymbolIterator : typeof SymbolIterator function foo(...s: T[]) { return s[0] } ->foo : (...s: T[]) => T, Symbol(foo, Decl(iteratorSpreadInCall11.ts, 0, 27)) ->T : T, Symbol(T, Decl(iteratorSpreadInCall11.ts, 2, 13)) ->s : T[], Symbol(s, Decl(iteratorSpreadInCall11.ts, 2, 16)) ->T : T, Symbol(T, Decl(iteratorSpreadInCall11.ts, 2, 13)) +>foo : (...s: T[]) => T +>T : T +>s : T[] +>T : T >s[0] : T ->s : T[], Symbol(s, Decl(iteratorSpreadInCall11.ts, 2, 16)) +>s : T[] >0 : number class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall11.ts, 2, 42)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInCall11.ts, 4, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInCall11.ts, 6, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInCall11.ts, 7, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall11.ts, 2, 42)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInCall12.symbols b/tests/baselines/reference/iteratorSpreadInCall12.symbols new file mode 100644 index 0000000000000..66a8fc2f66717 --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInCall12.symbols @@ -0,0 +1,67 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInCall12.ts === +new Foo(...[...new SymbolIterator, ...[...new StringIterator]]); +>Foo : Symbol(Foo, Decl(iteratorSpreadInCall12.ts, 0, 64)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall12.ts, 4, 1)) +>StringIterator : Symbol(StringIterator, Decl(iteratorSpreadInCall12.ts, 17, 1)) + +class Foo { +>Foo : Symbol(Foo, Decl(iteratorSpreadInCall12.ts, 0, 64)) +>T : Symbol(T, Decl(iteratorSpreadInCall12.ts, 2, 10)) + + constructor(...s: T[]) { } +>s : Symbol(s, Decl(iteratorSpreadInCall12.ts, 3, 16)) +>T : Symbol(T, Decl(iteratorSpreadInCall12.ts, 2, 10)) +} + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall12.ts, 4, 1)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInCall12.ts, 6, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInCall12.ts, 8, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInCall12.ts, 9, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInCall12.ts, 4, 1)) + } +} + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(iteratorSpreadInCall12.ts, 17, 1)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInCall12.ts, 19, 22)) + + return { + value: "", +>value : Symbol(value, Decl(iteratorSpreadInCall12.ts, 21, 16)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInCall12.ts, 22, 22)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(StringIterator, Decl(iteratorSpreadInCall12.ts, 17, 1)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInCall12.types b/tests/baselines/reference/iteratorSpreadInCall12.types index 822ff0e7fd2a0..fcc4bbc3d454e 100644 --- a/tests/baselines/reference/iteratorSpreadInCall12.types +++ b/tests/baselines/reference/iteratorSpreadInCall12.types @@ -1,84 +1,84 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInCall12.ts === new Foo(...[...new SymbolIterator, ...[...new StringIterator]]); >new Foo(...[...new SymbolIterator, ...[...new StringIterator]]) : Foo ->Foo : typeof Foo, Symbol(Foo, Decl(iteratorSpreadInCall12.ts, 0, 64)) +>Foo : typeof Foo >...[...new SymbolIterator, ...[...new StringIterator]] : string | symbol >[...new SymbolIterator, ...[...new StringIterator]] : (string | symbol)[] >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall12.ts, 4, 1)) +>SymbolIterator : typeof SymbolIterator >...[...new StringIterator] : string >[...new StringIterator] : string[] >...new StringIterator : string >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(iteratorSpreadInCall12.ts, 17, 1)) +>StringIterator : typeof StringIterator class Foo { ->Foo : Foo, Symbol(Foo, Decl(iteratorSpreadInCall12.ts, 0, 64)) ->T : T, Symbol(T, Decl(iteratorSpreadInCall12.ts, 2, 10)) +>Foo : Foo +>T : T constructor(...s: T[]) { } ->s : T[], Symbol(s, Decl(iteratorSpreadInCall12.ts, 3, 16)) ->T : T, Symbol(T, Decl(iteratorSpreadInCall12.ts, 2, 10)) +>s : T[] +>T : T } class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall12.ts, 4, 1)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInCall12.ts, 6, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInCall12.ts, 8, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInCall12.ts, 9, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall12.ts, 4, 1)) +>this : SymbolIterator } } class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(iteratorSpreadInCall12.ts, 17, 1)) +>StringIterator : StringIterator next() { ->next : () => { value: string; done: boolean; }, Symbol(next, Decl(iteratorSpreadInCall12.ts, 19, 22)) +>next : () => { value: string; done: boolean; } return { >{ value: "", done: false } : { value: string; done: boolean; } value: "", ->value : string, Symbol(value, Decl(iteratorSpreadInCall12.ts, 21, 16)) +>value : string >"" : string done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInCall12.ts, 22, 22)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : StringIterator, Symbol(StringIterator, Decl(iteratorSpreadInCall12.ts, 17, 1)) +>this : StringIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInCall3.symbols b/tests/baselines/reference/iteratorSpreadInCall3.symbols new file mode 100644 index 0000000000000..121c10ec977a9 --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInCall3.symbols @@ -0,0 +1,35 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInCall3.ts === +foo(...new SymbolIterator); +>foo : Symbol(foo, Decl(iteratorSpreadInCall3.ts, 0, 27)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall3.ts, 2, 32)) + +function foo(...s: symbol[]) { } +>foo : Symbol(foo, Decl(iteratorSpreadInCall3.ts, 0, 27)) +>s : Symbol(s, Decl(iteratorSpreadInCall3.ts, 2, 13)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall3.ts, 2, 32)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInCall3.ts, 3, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInCall3.ts, 5, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInCall3.ts, 6, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInCall3.ts, 2, 32)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInCall3.types b/tests/baselines/reference/iteratorSpreadInCall3.types index 596425150c125..b566c3866ff72 100644 --- a/tests/baselines/reference/iteratorSpreadInCall3.types +++ b/tests/baselines/reference/iteratorSpreadInCall3.types @@ -1,42 +1,42 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInCall3.ts === foo(...new SymbolIterator); >foo(...new SymbolIterator) : void ->foo : (...s: symbol[]) => void, Symbol(foo, Decl(iteratorSpreadInCall3.ts, 0, 27)) +>foo : (...s: symbol[]) => void >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall3.ts, 2, 32)) +>SymbolIterator : typeof SymbolIterator function foo(...s: symbol[]) { } ->foo : (...s: symbol[]) => void, Symbol(foo, Decl(iteratorSpreadInCall3.ts, 0, 27)) ->s : symbol[], Symbol(s, Decl(iteratorSpreadInCall3.ts, 2, 13)) +>foo : (...s: symbol[]) => void +>s : symbol[] class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall3.ts, 2, 32)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInCall3.ts, 3, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInCall3.ts, 5, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInCall3.ts, 6, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall3.ts, 2, 32)) +>this : SymbolIterator } } diff --git a/tests/baselines/reference/iteratorSpreadInCall5.symbols b/tests/baselines/reference/iteratorSpreadInCall5.symbols new file mode 100644 index 0000000000000..5e88a2be8a14a --- /dev/null +++ b/tests/baselines/reference/iteratorSpreadInCall5.symbols @@ -0,0 +1,62 @@ +=== tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts === +foo(...new SymbolIterator, ...new StringIterator); +>foo : Symbol(foo, Decl(iteratorSpreadInCall5.ts, 0, 50)) +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) +>StringIterator : Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) + +function foo(...s: (symbol | string)[]) { } +>foo : Symbol(foo, Decl(iteratorSpreadInCall5.ts, 0, 50)) +>s : Symbol(s, Decl(iteratorSpreadInCall5.ts, 2, 13)) + +class SymbolIterator { +>SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInCall5.ts, 3, 22)) + + return { + value: Symbol(), +>value : Symbol(value, Decl(iteratorSpreadInCall5.ts, 5, 16)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInCall5.ts, 6, 28)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) + } +} + +class StringIterator { +>StringIterator : Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) + + next() { +>next : Symbol(next, Decl(iteratorSpreadInCall5.ts, 16, 22)) + + return { + value: "", +>value : Symbol(value, Decl(iteratorSpreadInCall5.ts, 18, 16)) + + done: false +>done : Symbol(done, Decl(iteratorSpreadInCall5.ts, 19, 22)) + + }; + } + + [Symbol.iterator]() { +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + return this; +>this : Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) + } +} diff --git a/tests/baselines/reference/iteratorSpreadInCall5.types b/tests/baselines/reference/iteratorSpreadInCall5.types index a7c802be0316a..2401a41cca8de 100644 --- a/tests/baselines/reference/iteratorSpreadInCall5.types +++ b/tests/baselines/reference/iteratorSpreadInCall5.types @@ -1,75 +1,75 @@ === tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts === foo(...new SymbolIterator, ...new StringIterator); >foo(...new SymbolIterator, ...new StringIterator) : void ->foo : (...s: (string | symbol)[]) => void, Symbol(foo, Decl(iteratorSpreadInCall5.ts, 0, 50)) +>foo : (...s: (string | symbol)[]) => void >...new SymbolIterator : symbol >new SymbolIterator : SymbolIterator ->SymbolIterator : typeof SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) +>SymbolIterator : typeof SymbolIterator >...new StringIterator : string >new StringIterator : StringIterator ->StringIterator : typeof StringIterator, Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) +>StringIterator : typeof StringIterator function foo(...s: (symbol | string)[]) { } ->foo : (...s: (string | symbol)[]) => void, Symbol(foo, Decl(iteratorSpreadInCall5.ts, 0, 50)) ->s : (string | symbol)[], Symbol(s, Decl(iteratorSpreadInCall5.ts, 2, 13)) +>foo : (...s: (string | symbol)[]) => void +>s : (string | symbol)[] class SymbolIterator { ->SymbolIterator : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) +>SymbolIterator : SymbolIterator next() { ->next : () => { value: symbol; done: boolean; }, Symbol(next, Decl(iteratorSpreadInCall5.ts, 3, 22)) +>next : () => { value: symbol; done: boolean; } return { >{ value: Symbol(), done: false } : { value: symbol; done: boolean; } value: Symbol(), ->value : symbol, Symbol(value, Decl(iteratorSpreadInCall5.ts, 5, 16)) +>value : symbol >Symbol() : symbol ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>Symbol : SymbolConstructor done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInCall5.ts, 6, 28)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : SymbolIterator, Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) +>this : SymbolIterator } } class StringIterator { ->StringIterator : StringIterator, Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) +>StringIterator : StringIterator next() { ->next : () => { value: string; done: boolean; }, Symbol(next, Decl(iteratorSpreadInCall5.ts, 16, 22)) +>next : () => { value: string; done: boolean; } return { >{ value: "", done: false } : { value: string; done: boolean; } value: "", ->value : string, Symbol(value, Decl(iteratorSpreadInCall5.ts, 18, 16)) +>value : string >"" : string done: false ->done : boolean, Symbol(done, Decl(iteratorSpreadInCall5.ts, 19, 22)) +>done : boolean >false : boolean }; } [Symbol.iterator]() { ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol return this; ->this : StringIterator, Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) +>this : StringIterator } } diff --git a/tests/baselines/reference/keywordField.symbols b/tests/baselines/reference/keywordField.symbols new file mode 100644 index 0000000000000..7ea3438d9852d --- /dev/null +++ b/tests/baselines/reference/keywordField.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/keywordField.ts === +var obj:any = {}; +>obj : Symbol(obj, Decl(keywordField.ts, 0, 3)) + +obj.if = 1; +>obj : Symbol(obj, Decl(keywordField.ts, 0, 3)) + +var a = { if: "test" } +>a : Symbol(a, Decl(keywordField.ts, 4, 3)) +>if : Symbol(if, Decl(keywordField.ts, 4, 9)) + +var n = a.if +>n : Symbol(n, Decl(keywordField.ts, 6, 3)) +>a.if : Symbol(if, Decl(keywordField.ts, 4, 9)) +>a : Symbol(a, Decl(keywordField.ts, 4, 3)) +>if : Symbol(if, Decl(keywordField.ts, 4, 9)) + +var q = a["if"]; +>q : Symbol(q, Decl(keywordField.ts, 8, 3)) +>a : Symbol(a, Decl(keywordField.ts, 4, 3)) +>"if" : Symbol(if, Decl(keywordField.ts, 4, 9)) + diff --git a/tests/baselines/reference/keywordField.types b/tests/baselines/reference/keywordField.types index 8e3c756e9c9d7..8bc977edd747f 100644 --- a/tests/baselines/reference/keywordField.types +++ b/tests/baselines/reference/keywordField.types @@ -1,30 +1,30 @@ === tests/cases/compiler/keywordField.ts === var obj:any = {}; ->obj : any, Symbol(obj, Decl(keywordField.ts, 0, 3)) +>obj : any >{} : {} obj.if = 1; >obj.if = 1 : number >obj.if : any ->obj : any, Symbol(obj, Decl(keywordField.ts, 0, 3)) +>obj : any >if : any >1 : number var a = { if: "test" } ->a : { if: string; }, Symbol(a, Decl(keywordField.ts, 4, 3)) +>a : { if: string; } >{ if: "test" } : { if: string; } ->if : string, Symbol(if, Decl(keywordField.ts, 4, 9)) +>if : string >"test" : string var n = a.if ->n : string, Symbol(n, Decl(keywordField.ts, 6, 3)) ->a.if : string, Symbol(if, Decl(keywordField.ts, 4, 9)) ->a : { if: string; }, Symbol(a, Decl(keywordField.ts, 4, 3)) ->if : string, Symbol(if, Decl(keywordField.ts, 4, 9)) +>n : string +>a.if : string +>a : { if: string; } +>if : string var q = a["if"]; ->q : string, Symbol(q, Decl(keywordField.ts, 8, 3)) +>q : string >a["if"] : string ->a : { if: string; }, Symbol(a, Decl(keywordField.ts, 4, 3)) ->"if" : string, Symbol(if, Decl(keywordField.ts, 4, 9)) +>a : { if: string; } +>"if" : string diff --git a/tests/baselines/reference/lambdaASIEmit.symbols b/tests/baselines/reference/lambdaASIEmit.symbols new file mode 100644 index 0000000000000..d33cc16817a3c --- /dev/null +++ b/tests/baselines/reference/lambdaASIEmit.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/lambdaASIEmit.ts === + +function Foo(x: any) +>Foo : Symbol(Foo, Decl(lambdaASIEmit.ts, 0, 0)) +>x : Symbol(x, Decl(lambdaASIEmit.ts, 1, 13)) +{ +} + +Foo(() => +>Foo : Symbol(Foo, Decl(lambdaASIEmit.ts, 0, 0)) + + // do something + 127); + diff --git a/tests/baselines/reference/lambdaASIEmit.types b/tests/baselines/reference/lambdaASIEmit.types index f06ee68351a4f..8ea881c4cd5e0 100644 --- a/tests/baselines/reference/lambdaASIEmit.types +++ b/tests/baselines/reference/lambdaASIEmit.types @@ -1,14 +1,14 @@ === tests/cases/compiler/lambdaASIEmit.ts === function Foo(x: any) ->Foo : (x: any) => void, Symbol(Foo, Decl(lambdaASIEmit.ts, 0, 0)) ->x : any, Symbol(x, Decl(lambdaASIEmit.ts, 1, 13)) +>Foo : (x: any) => void +>x : any { } Foo(() => >Foo(() => // do something 127) : void ->Foo : (x: any) => void, Symbol(Foo, Decl(lambdaASIEmit.ts, 0, 0)) +>Foo : (x: any) => void >() => // do something 127 : () => number // do something diff --git a/tests/baselines/reference/lambdaExpression.symbols b/tests/baselines/reference/lambdaExpression.symbols new file mode 100644 index 0000000000000..48bda5ce07fb0 --- /dev/null +++ b/tests/baselines/reference/lambdaExpression.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/lambdaExpression.ts === +() => 0; // Needs to be wrapped in parens to be a valid expression (not declaration) +var y = 0; +>y : Symbol(y, Decl(lambdaExpression.ts, 1, 3)) + +(()=>0); +var x = 0; +>x : Symbol(x, Decl(lambdaExpression.ts, 3, 3)) + diff --git a/tests/baselines/reference/lambdaExpression.types b/tests/baselines/reference/lambdaExpression.types index 55618197c3d6a..714cd851d63f8 100644 --- a/tests/baselines/reference/lambdaExpression.types +++ b/tests/baselines/reference/lambdaExpression.types @@ -4,7 +4,7 @@ >0 : number var y = 0; ->y : number, Symbol(y, Decl(lambdaExpression.ts, 1, 3)) +>y : number >0 : number (()=>0); @@ -13,6 +13,6 @@ var y = 0; >0 : number var x = 0; ->x : number, Symbol(x, Decl(lambdaExpression.ts, 3, 3)) +>x : number >0 : number diff --git a/tests/baselines/reference/letAsIdentifier.symbols b/tests/baselines/reference/letAsIdentifier.symbols new file mode 100644 index 0000000000000..be5066f5ac7c1 --- /dev/null +++ b/tests/baselines/reference/letAsIdentifier.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/letAsIdentifier.ts === + +var let = 10; +>let : Symbol(let, Decl(letAsIdentifier.ts, 1, 3)) + +var a = 10; +>a : Symbol(a, Decl(letAsIdentifier.ts, 2, 3)) + +let = 30; +>let : Symbol(let, Decl(letAsIdentifier.ts, 1, 3)) + +let +>let : Symbol(let, Decl(letAsIdentifier.ts, 1, 3)) + +a; +>a : Symbol(a, Decl(letAsIdentifier.ts, 2, 3)) + diff --git a/tests/baselines/reference/letAsIdentifier.types b/tests/baselines/reference/letAsIdentifier.types index 52d30c36e5467..36c190a92e4fb 100644 --- a/tests/baselines/reference/letAsIdentifier.types +++ b/tests/baselines/reference/letAsIdentifier.types @@ -1,21 +1,21 @@ === tests/cases/compiler/letAsIdentifier.ts === var let = 10; ->let : number, Symbol(let, Decl(letAsIdentifier.ts, 1, 3)) +>let : number >10 : number var a = 10; ->a : number, Symbol(a, Decl(letAsIdentifier.ts, 2, 3)) +>a : number >10 : number let = 30; >let = 30 : number ->let : number, Symbol(let, Decl(letAsIdentifier.ts, 1, 3)) +>let : number >30 : number let ->let : number, Symbol(let, Decl(letAsIdentifier.ts, 1, 3)) +>let : number a; ->a : number, Symbol(a, Decl(letAsIdentifier.ts, 2, 3)) +>a : number diff --git a/tests/baselines/reference/letConstMatchingParameterNames.symbols b/tests/baselines/reference/letConstMatchingParameterNames.symbols new file mode 100644 index 0000000000000..b0a2f9c38104c --- /dev/null +++ b/tests/baselines/reference/letConstMatchingParameterNames.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/letConstMatchingParameterNames.ts === +let parent = true; +>parent : Symbol(parent, Decl(letConstMatchingParameterNames.ts, 0, 3)) + +const parent2 = true; +>parent2 : Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 1, 5)) + +declare function use(a: any); +>use : Symbol(use, Decl(letConstMatchingParameterNames.ts, 1, 21)) +>a : Symbol(a, Decl(letConstMatchingParameterNames.ts, 2, 21)) + +function a() { +>a : Symbol(a, Decl(letConstMatchingParameterNames.ts, 2, 29)) + + let parent = 1; +>parent : Symbol(parent, Decl(letConstMatchingParameterNames.ts, 6, 7)) + + const parent2 = 2; +>parent2 : Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 7, 9)) + + function b(parent: string, parent2: number) { +>b : Symbol(b, Decl(letConstMatchingParameterNames.ts, 7, 22)) +>parent : Symbol(parent, Decl(letConstMatchingParameterNames.ts, 9, 15)) +>parent2 : Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 9, 30)) + + use(parent); +>use : Symbol(use, Decl(letConstMatchingParameterNames.ts, 1, 21)) +>parent : Symbol(parent, Decl(letConstMatchingParameterNames.ts, 9, 15)) + + use(parent2); +>use : Symbol(use, Decl(letConstMatchingParameterNames.ts, 1, 21)) +>parent2 : Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 9, 30)) + } +} + diff --git a/tests/baselines/reference/letConstMatchingParameterNames.types b/tests/baselines/reference/letConstMatchingParameterNames.types index 8fd75ab05122c..2e29dff289b49 100644 --- a/tests/baselines/reference/letConstMatchingParameterNames.types +++ b/tests/baselines/reference/letConstMatchingParameterNames.types @@ -1,41 +1,41 @@ === tests/cases/compiler/letConstMatchingParameterNames.ts === let parent = true; ->parent : boolean, Symbol(parent, Decl(letConstMatchingParameterNames.ts, 0, 3)) +>parent : boolean >true : boolean const parent2 = true; ->parent2 : boolean, Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 1, 5)) +>parent2 : boolean >true : boolean declare function use(a: any); ->use : (a: any) => any, Symbol(use, Decl(letConstMatchingParameterNames.ts, 1, 21)) ->a : any, Symbol(a, Decl(letConstMatchingParameterNames.ts, 2, 21)) +>use : (a: any) => any +>a : any function a() { ->a : () => void, Symbol(a, Decl(letConstMatchingParameterNames.ts, 2, 29)) +>a : () => void let parent = 1; ->parent : number, Symbol(parent, Decl(letConstMatchingParameterNames.ts, 6, 7)) +>parent : number >1 : number const parent2 = 2; ->parent2 : number, Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 7, 9)) +>parent2 : number >2 : number function b(parent: string, parent2: number) { ->b : (parent: string, parent2: number) => void, Symbol(b, Decl(letConstMatchingParameterNames.ts, 7, 22)) ->parent : string, Symbol(parent, Decl(letConstMatchingParameterNames.ts, 9, 15)) ->parent2 : number, Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 9, 30)) +>b : (parent: string, parent2: number) => void +>parent : string +>parent2 : number use(parent); >use(parent) : any ->use : (a: any) => any, Symbol(use, Decl(letConstMatchingParameterNames.ts, 1, 21)) ->parent : string, Symbol(parent, Decl(letConstMatchingParameterNames.ts, 9, 15)) +>use : (a: any) => any +>parent : string use(parent2); >use(parent2) : any ->use : (a: any) => any, Symbol(use, Decl(letConstMatchingParameterNames.ts, 1, 21)) ->parent2 : number, Symbol(parent2, Decl(letConstMatchingParameterNames.ts, 9, 30)) +>use : (a: any) => any +>parent2 : number } } diff --git a/tests/baselines/reference/letDeclarations-access.symbols b/tests/baselines/reference/letDeclarations-access.symbols new file mode 100644 index 0000000000000..dfc9ea4c53300 --- /dev/null +++ b/tests/baselines/reference/letDeclarations-access.symbols @@ -0,0 +1,87 @@ +=== tests/cases/compiler/letDeclarations-access.ts === + +let x = 0 +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +// No errors + +x = 1; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x += 2; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x -= 3; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x *= 4; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x /= 5; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x %= 6; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x <<= 7; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x >>= 8; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x >>>= 9; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x &= 10; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x |= 11; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x ^= 12; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x++; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x--; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +++x; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +--x; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +var a = x + 1; +>a : Symbol(a, Decl(letDeclarations-access.ts, 23, 3)) +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +function f(v: number) { } +>f : Symbol(f, Decl(letDeclarations-access.ts, 23, 14)) +>v : Symbol(v, Decl(letDeclarations-access.ts, 25, 11)) + +f(x); +>f : Symbol(f, Decl(letDeclarations-access.ts, 23, 14)) +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +if (x) { } +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +(x); +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +-x; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + ++x; +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) + +x.toString(); +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + diff --git a/tests/baselines/reference/letDeclarations-access.types b/tests/baselines/reference/letDeclarations-access.types index 7578627e22bae..673fc97f80bd3 100644 --- a/tests/baselines/reference/letDeclarations-access.types +++ b/tests/baselines/reference/letDeclarations-access.types @@ -1,123 +1,123 @@ === tests/cases/compiler/letDeclarations-access.ts === let x = 0 ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >0 : number // No errors x = 1; >x = 1 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >1 : number x += 2; >x += 2 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >2 : number x -= 3; >x -= 3 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >3 : number x *= 4; >x *= 4 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >4 : number x /= 5; >x /= 5 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >5 : number x %= 6; >x %= 6 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >6 : number x <<= 7; >x <<= 7 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >7 : number x >>= 8; >x >>= 8 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >8 : number x >>>= 9; >x >>>= 9 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >9 : number x &= 10; >x &= 10 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >10 : number x |= 11; >x |= 11 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >11 : number x ^= 12; >x ^= 12 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >12 : number x++; >x++ : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number x--; >x-- : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number ++x; >++x : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number --x; >--x : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number var a = x + 1; ->a : number, Symbol(a, Decl(letDeclarations-access.ts, 23, 3)) +>a : number >x + 1 : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number >1 : number function f(v: number) { } ->f : (v: number) => void, Symbol(f, Decl(letDeclarations-access.ts, 23, 14)) ->v : number, Symbol(v, Decl(letDeclarations-access.ts, 25, 11)) +>f : (v: number) => void +>v : number f(x); >f(x) : void ->f : (v: number) => void, Symbol(f, Decl(letDeclarations-access.ts, 23, 14)) ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>f : (v: number) => void +>x : number if (x) { } ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number x; ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number (x); >(x) : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number -x; >-x : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number +x; >+x : number ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) +>x : number x.toString(); >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(letDeclarations-access.ts, 1, 3)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string diff --git a/tests/baselines/reference/letDeclarations-es5-1.symbols b/tests/baselines/reference/letDeclarations-es5-1.symbols new file mode 100644 index 0000000000000..22ae7bd6c1821 --- /dev/null +++ b/tests/baselines/reference/letDeclarations-es5-1.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/letDeclarations-es5-1.ts === + let l1; +>l1 : Symbol(l1, Decl(letDeclarations-es5-1.ts, 0, 7)) + + let l2: number; +>l2 : Symbol(l2, Decl(letDeclarations-es5-1.ts, 1, 7)) + + let l3, l4, l5 :string, l6; +>l3 : Symbol(l3, Decl(letDeclarations-es5-1.ts, 2, 7)) +>l4 : Symbol(l4, Decl(letDeclarations-es5-1.ts, 2, 11)) +>l5 : Symbol(l5, Decl(letDeclarations-es5-1.ts, 2, 15)) +>l6 : Symbol(l6, Decl(letDeclarations-es5-1.ts, 2, 27)) + + let l7 = false; +>l7 : Symbol(l7, Decl(letDeclarations-es5-1.ts, 3, 7)) + + let l8: number = 23; +>l8 : Symbol(l8, Decl(letDeclarations-es5-1.ts, 4, 7)) + + let l9 = 0, l10 :string = "", l11 = null; +>l9 : Symbol(l9, Decl(letDeclarations-es5-1.ts, 5, 7)) +>l10 : Symbol(l10, Decl(letDeclarations-es5-1.ts, 5, 15)) +>l11 : Symbol(l11, Decl(letDeclarations-es5-1.ts, 5, 33)) + diff --git a/tests/baselines/reference/letDeclarations-es5-1.types b/tests/baselines/reference/letDeclarations-es5-1.types index 945aaf60301dd..b088677cd0a15 100644 --- a/tests/baselines/reference/letDeclarations-es5-1.types +++ b/tests/baselines/reference/letDeclarations-es5-1.types @@ -1,29 +1,29 @@ === tests/cases/compiler/letDeclarations-es5-1.ts === let l1; ->l1 : any, Symbol(l1, Decl(letDeclarations-es5-1.ts, 0, 7)) +>l1 : any let l2: number; ->l2 : number, Symbol(l2, Decl(letDeclarations-es5-1.ts, 1, 7)) +>l2 : number let l3, l4, l5 :string, l6; ->l3 : any, Symbol(l3, Decl(letDeclarations-es5-1.ts, 2, 7)) ->l4 : any, Symbol(l4, Decl(letDeclarations-es5-1.ts, 2, 11)) ->l5 : string, Symbol(l5, Decl(letDeclarations-es5-1.ts, 2, 15)) ->l6 : any, Symbol(l6, Decl(letDeclarations-es5-1.ts, 2, 27)) +>l3 : any +>l4 : any +>l5 : string +>l6 : any let l7 = false; ->l7 : boolean, Symbol(l7, Decl(letDeclarations-es5-1.ts, 3, 7)) +>l7 : boolean >false : boolean let l8: number = 23; ->l8 : number, Symbol(l8, Decl(letDeclarations-es5-1.ts, 4, 7)) +>l8 : number >23 : number let l9 = 0, l10 :string = "", l11 = null; ->l9 : number, Symbol(l9, Decl(letDeclarations-es5-1.ts, 5, 7)) +>l9 : number >0 : number ->l10 : string, Symbol(l10, Decl(letDeclarations-es5-1.ts, 5, 15)) +>l10 : string >"" : string ->l11 : any, Symbol(l11, Decl(letDeclarations-es5-1.ts, 5, 33)) +>l11 : any >null : null diff --git a/tests/baselines/reference/letDeclarations-es5.symbols b/tests/baselines/reference/letDeclarations-es5.symbols new file mode 100644 index 0000000000000..ac2daaaac8933 --- /dev/null +++ b/tests/baselines/reference/letDeclarations-es5.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/letDeclarations-es5.ts === + +let l1; +>l1 : Symbol(l1, Decl(letDeclarations-es5.ts, 1, 3)) + +let l2: number; +>l2 : Symbol(l2, Decl(letDeclarations-es5.ts, 2, 3)) + +let l3, l4, l5 :string, l6; +>l3 : Symbol(l3, Decl(letDeclarations-es5.ts, 3, 3)) +>l4 : Symbol(l4, Decl(letDeclarations-es5.ts, 3, 7)) +>l5 : Symbol(l5, Decl(letDeclarations-es5.ts, 3, 11)) +>l6 : Symbol(l6, Decl(letDeclarations-es5.ts, 3, 23)) + +let l7 = false; +>l7 : Symbol(l7, Decl(letDeclarations-es5.ts, 5, 3)) + +let l8: number = 23; +>l8 : Symbol(l8, Decl(letDeclarations-es5.ts, 6, 3)) + +let l9 = 0, l10 :string = "", l11 = null; +>l9 : Symbol(l9, Decl(letDeclarations-es5.ts, 7, 3)) +>l10 : Symbol(l10, Decl(letDeclarations-es5.ts, 7, 11)) +>l11 : Symbol(l11, Decl(letDeclarations-es5.ts, 7, 29)) + +for(let l11 in {}) { } +>l11 : Symbol(l11, Decl(letDeclarations-es5.ts, 9, 7)) + +for(let l12 = 0; l12 < 9; l12++) { } +>l12 : Symbol(l12, Decl(letDeclarations-es5.ts, 11, 7)) +>l12 : Symbol(l12, Decl(letDeclarations-es5.ts, 11, 7)) +>l12 : Symbol(l12, Decl(letDeclarations-es5.ts, 11, 7)) + diff --git a/tests/baselines/reference/letDeclarations-es5.types b/tests/baselines/reference/letDeclarations-es5.types index 3d79c418f4fa9..005e0b2615570 100644 --- a/tests/baselines/reference/letDeclarations-es5.types +++ b/tests/baselines/reference/letDeclarations-es5.types @@ -1,43 +1,43 @@ === tests/cases/compiler/letDeclarations-es5.ts === let l1; ->l1 : any, Symbol(l1, Decl(letDeclarations-es5.ts, 1, 3)) +>l1 : any let l2: number; ->l2 : number, Symbol(l2, Decl(letDeclarations-es5.ts, 2, 3)) +>l2 : number let l3, l4, l5 :string, l6; ->l3 : any, Symbol(l3, Decl(letDeclarations-es5.ts, 3, 3)) ->l4 : any, Symbol(l4, Decl(letDeclarations-es5.ts, 3, 7)) ->l5 : string, Symbol(l5, Decl(letDeclarations-es5.ts, 3, 11)) ->l6 : any, Symbol(l6, Decl(letDeclarations-es5.ts, 3, 23)) +>l3 : any +>l4 : any +>l5 : string +>l6 : any let l7 = false; ->l7 : boolean, Symbol(l7, Decl(letDeclarations-es5.ts, 5, 3)) +>l7 : boolean >false : boolean let l8: number = 23; ->l8 : number, Symbol(l8, Decl(letDeclarations-es5.ts, 6, 3)) +>l8 : number >23 : number let l9 = 0, l10 :string = "", l11 = null; ->l9 : number, Symbol(l9, Decl(letDeclarations-es5.ts, 7, 3)) +>l9 : number >0 : number ->l10 : string, Symbol(l10, Decl(letDeclarations-es5.ts, 7, 11)) +>l10 : string >"" : string ->l11 : any, Symbol(l11, Decl(letDeclarations-es5.ts, 7, 29)) +>l11 : any >null : null for(let l11 in {}) { } ->l11 : any, Symbol(l11, Decl(letDeclarations-es5.ts, 9, 7)) +>l11 : any >{} : {} for(let l12 = 0; l12 < 9; l12++) { } ->l12 : number, Symbol(l12, Decl(letDeclarations-es5.ts, 11, 7)) +>l12 : number >0 : number >l12 < 9 : boolean ->l12 : number, Symbol(l12, Decl(letDeclarations-es5.ts, 11, 7)) +>l12 : number >9 : number >l12++ : number ->l12 : number, Symbol(l12, Decl(letDeclarations-es5.ts, 11, 7)) +>l12 : number diff --git a/tests/baselines/reference/letDeclarations.symbols b/tests/baselines/reference/letDeclarations.symbols new file mode 100644 index 0000000000000..dbbaac211ac73 --- /dev/null +++ b/tests/baselines/reference/letDeclarations.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/letDeclarations.ts === + +let l1; +>l1 : Symbol(l1, Decl(letDeclarations.ts, 1, 3)) + +let l2: number; +>l2 : Symbol(l2, Decl(letDeclarations.ts, 2, 3)) + +let l3, l4, l5 :string, l6; +>l3 : Symbol(l3, Decl(letDeclarations.ts, 3, 3)) +>l4 : Symbol(l4, Decl(letDeclarations.ts, 3, 7)) +>l5 : Symbol(l5, Decl(letDeclarations.ts, 3, 11)) +>l6 : Symbol(l6, Decl(letDeclarations.ts, 3, 23)) + +let l7 = false; +>l7 : Symbol(l7, Decl(letDeclarations.ts, 5, 3)) + +let l8: number = 23; +>l8 : Symbol(l8, Decl(letDeclarations.ts, 6, 3)) + +let l9 = 0, l10 :string = "", l11 = null; +>l9 : Symbol(l9, Decl(letDeclarations.ts, 7, 3)) +>l10 : Symbol(l10, Decl(letDeclarations.ts, 7, 11)) +>l11 : Symbol(l11, Decl(letDeclarations.ts, 7, 29)) + +for(let l11 in {}) { } +>l11 : Symbol(l11, Decl(letDeclarations.ts, 9, 7)) + +for(let l12 = 0; l12 < 9; l12++) { } +>l12 : Symbol(l12, Decl(letDeclarations.ts, 11, 7)) +>l12 : Symbol(l12, Decl(letDeclarations.ts, 11, 7)) +>l12 : Symbol(l12, Decl(letDeclarations.ts, 11, 7)) + diff --git a/tests/baselines/reference/letDeclarations.types b/tests/baselines/reference/letDeclarations.types index 43b56d243a586..55be4326b195e 100644 --- a/tests/baselines/reference/letDeclarations.types +++ b/tests/baselines/reference/letDeclarations.types @@ -1,43 +1,43 @@ === tests/cases/compiler/letDeclarations.ts === let l1; ->l1 : any, Symbol(l1, Decl(letDeclarations.ts, 1, 3)) +>l1 : any let l2: number; ->l2 : number, Symbol(l2, Decl(letDeclarations.ts, 2, 3)) +>l2 : number let l3, l4, l5 :string, l6; ->l3 : any, Symbol(l3, Decl(letDeclarations.ts, 3, 3)) ->l4 : any, Symbol(l4, Decl(letDeclarations.ts, 3, 7)) ->l5 : string, Symbol(l5, Decl(letDeclarations.ts, 3, 11)) ->l6 : any, Symbol(l6, Decl(letDeclarations.ts, 3, 23)) +>l3 : any +>l4 : any +>l5 : string +>l6 : any let l7 = false; ->l7 : boolean, Symbol(l7, Decl(letDeclarations.ts, 5, 3)) +>l7 : boolean >false : boolean let l8: number = 23; ->l8 : number, Symbol(l8, Decl(letDeclarations.ts, 6, 3)) +>l8 : number >23 : number let l9 = 0, l10 :string = "", l11 = null; ->l9 : number, Symbol(l9, Decl(letDeclarations.ts, 7, 3)) +>l9 : number >0 : number ->l10 : string, Symbol(l10, Decl(letDeclarations.ts, 7, 11)) +>l10 : string >"" : string ->l11 : any, Symbol(l11, Decl(letDeclarations.ts, 7, 29)) +>l11 : any >null : null for(let l11 in {}) { } ->l11 : any, Symbol(l11, Decl(letDeclarations.ts, 9, 7)) +>l11 : any >{} : {} for(let l12 = 0; l12 < 9; l12++) { } ->l12 : number, Symbol(l12, Decl(letDeclarations.ts, 11, 7)) +>l12 : number >0 : number >l12 < 9 : boolean ->l12 : number, Symbol(l12, Decl(letDeclarations.ts, 11, 7)) +>l12 : number >9 : number >l12++ : number ->l12 : number, Symbol(l12, Decl(letDeclarations.ts, 11, 7)) +>l12 : number diff --git a/tests/baselines/reference/letDeclarations2.symbols b/tests/baselines/reference/letDeclarations2.symbols new file mode 100644 index 0000000000000..1f4bcb1242042 --- /dev/null +++ b/tests/baselines/reference/letDeclarations2.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/letDeclarations2.ts === + +module M { +>M : Symbol(M, Decl(letDeclarations2.ts, 0, 0)) + + let l1 = "s"; +>l1 : Symbol(l1, Decl(letDeclarations2.ts, 2, 7)) + + export let l2 = 0; +>l2 : Symbol(l2, Decl(letDeclarations2.ts, 3, 14)) +} diff --git a/tests/baselines/reference/letDeclarations2.types b/tests/baselines/reference/letDeclarations2.types index aa71c9aad3cf3..eeb66838a6a7c 100644 --- a/tests/baselines/reference/letDeclarations2.types +++ b/tests/baselines/reference/letDeclarations2.types @@ -1,13 +1,13 @@ === tests/cases/compiler/letDeclarations2.ts === module M { ->M : typeof M, Symbol(M, Decl(letDeclarations2.ts, 0, 0)) +>M : typeof M let l1 = "s"; ->l1 : string, Symbol(l1, Decl(letDeclarations2.ts, 2, 7)) +>l1 : string >"s" : string export let l2 = 0; ->l2 : number, Symbol(l2, Decl(letDeclarations2.ts, 3, 14)) +>l2 : number >0 : number } diff --git a/tests/baselines/reference/letInNonStrictMode.symbols b/tests/baselines/reference/letInNonStrictMode.symbols new file mode 100644 index 0000000000000..2b854a8c03fb5 --- /dev/null +++ b/tests/baselines/reference/letInNonStrictMode.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/letInNonStrictMode.ts === +let [x] = [1]; +>x : Symbol(x, Decl(letInNonStrictMode.ts, 0, 5)) + +let {a: y} = {a: 1}; +>y : Symbol(y, Decl(letInNonStrictMode.ts, 1, 5)) +>a : Symbol(a, Decl(letInNonStrictMode.ts, 1, 14)) + diff --git a/tests/baselines/reference/letInNonStrictMode.types b/tests/baselines/reference/letInNonStrictMode.types index a050d268f8a2c..ceb59dba6a34f 100644 --- a/tests/baselines/reference/letInNonStrictMode.types +++ b/tests/baselines/reference/letInNonStrictMode.types @@ -1,13 +1,13 @@ === tests/cases/compiler/letInNonStrictMode.ts === let [x] = [1]; ->x : number, Symbol(x, Decl(letInNonStrictMode.ts, 0, 5)) +>x : number >[1] : [number] >1 : number let {a: y} = {a: 1}; >a : any ->y : number, Symbol(y, Decl(letInNonStrictMode.ts, 1, 5)) +>y : number >{a: 1} : { a: number; } ->a : number, Symbol(a, Decl(letInNonStrictMode.ts, 1, 14)) +>a : number >1 : number diff --git a/tests/baselines/reference/letKeepNamesOfTopLevelItems.symbols b/tests/baselines/reference/letKeepNamesOfTopLevelItems.symbols new file mode 100644 index 0000000000000..dc6e579a73fd5 --- /dev/null +++ b/tests/baselines/reference/letKeepNamesOfTopLevelItems.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/letKeepNamesOfTopLevelItems.ts === +let x; +>x : Symbol(x, Decl(letKeepNamesOfTopLevelItems.ts, 0, 3)) + +function foo() { +>foo : Symbol(foo, Decl(letKeepNamesOfTopLevelItems.ts, 0, 6)) + + let x; +>x : Symbol(x, Decl(letKeepNamesOfTopLevelItems.ts, 2, 7)) +} + +module A { +>A : Symbol(A, Decl(letKeepNamesOfTopLevelItems.ts, 3, 1)) + + let x; +>x : Symbol(x, Decl(letKeepNamesOfTopLevelItems.ts, 6, 7)) +} diff --git a/tests/baselines/reference/letKeepNamesOfTopLevelItems.types b/tests/baselines/reference/letKeepNamesOfTopLevelItems.types index 59547c099a049..952be1512a984 100644 --- a/tests/baselines/reference/letKeepNamesOfTopLevelItems.types +++ b/tests/baselines/reference/letKeepNamesOfTopLevelItems.types @@ -1,17 +1,17 @@ === tests/cases/compiler/letKeepNamesOfTopLevelItems.ts === let x; ->x : any, Symbol(x, Decl(letKeepNamesOfTopLevelItems.ts, 0, 3)) +>x : any function foo() { ->foo : () => void, Symbol(foo, Decl(letKeepNamesOfTopLevelItems.ts, 0, 6)) +>foo : () => void let x; ->x : any, Symbol(x, Decl(letKeepNamesOfTopLevelItems.ts, 2, 7)) +>x : any } module A { ->A : typeof A, Symbol(A, Decl(letKeepNamesOfTopLevelItems.ts, 3, 1)) +>A : typeof A let x; ->x : any, Symbol(x, Decl(letKeepNamesOfTopLevelItems.ts, 6, 7)) +>x : any } diff --git a/tests/baselines/reference/libdtsFix.symbols b/tests/baselines/reference/libdtsFix.symbols new file mode 100644 index 0000000000000..158b0587ec693 --- /dev/null +++ b/tests/baselines/reference/libdtsFix.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/libdtsFix.ts === +interface HTMLElement { +>HTMLElement : Symbol(HTMLElement, Decl(libdtsFix.ts, 0, 0)) + + type: string; +>type : Symbol(type, Decl(libdtsFix.ts, 0, 23)) +} + diff --git a/tests/baselines/reference/libdtsFix.types b/tests/baselines/reference/libdtsFix.types index 341db628efca9..4f94635d9984e 100644 --- a/tests/baselines/reference/libdtsFix.types +++ b/tests/baselines/reference/libdtsFix.types @@ -1,8 +1,8 @@ === tests/cases/compiler/libdtsFix.ts === interface HTMLElement { ->HTMLElement : HTMLElement, Symbol(HTMLElement, Decl(libdtsFix.ts, 0, 0)) +>HTMLElement : HTMLElement type: string; ->type : string, Symbol(type, Decl(libdtsFix.ts, 0, 23)) +>type : string } diff --git a/tests/baselines/reference/library_ArraySlice.symbols b/tests/baselines/reference/library_ArraySlice.symbols new file mode 100644 index 0000000000000..25e6fbd5b5b81 --- /dev/null +++ b/tests/baselines/reference/library_ArraySlice.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/library_ArraySlice.ts === +// Array.prototype.slice can have zero, one, or two arguments +Array.prototype.slice(); +>Array.prototype.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>Array.prototype : Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>prototype : Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) +>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) + +Array.prototype.slice(0); +>Array.prototype.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>Array.prototype : Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>prototype : Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) +>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) + +Array.prototype.slice(0, 1); +>Array.prototype.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>Array.prototype : Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>prototype : Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) +>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) + diff --git a/tests/baselines/reference/library_ArraySlice.types b/tests/baselines/reference/library_ArraySlice.types index 90e402c2fcd70..b92d925439013 100644 --- a/tests/baselines/reference/library_ArraySlice.types +++ b/tests/baselines/reference/library_ArraySlice.types @@ -2,28 +2,28 @@ // Array.prototype.slice can have zero, one, or two arguments Array.prototype.slice(); >Array.prototype.slice() : any[] ->Array.prototype.slice : (start?: number, end?: number) => any[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) ->Array.prototype : any[], Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->prototype : any[], Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) ->slice : (start?: number, end?: number) => any[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>Array.prototype.slice : (start?: number, end?: number) => any[] +>Array.prototype : any[] +>Array : ArrayConstructor +>prototype : any[] +>slice : (start?: number, end?: number) => any[] Array.prototype.slice(0); >Array.prototype.slice(0) : any[] ->Array.prototype.slice : (start?: number, end?: number) => any[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) ->Array.prototype : any[], Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->prototype : any[], Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) ->slice : (start?: number, end?: number) => any[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>Array.prototype.slice : (start?: number, end?: number) => any[] +>Array.prototype : any[] +>Array : ArrayConstructor +>prototype : any[] +>slice : (start?: number, end?: number) => any[] >0 : number Array.prototype.slice(0, 1); >Array.prototype.slice(0, 1) : any[] ->Array.prototype.slice : (start?: number, end?: number) => any[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) ->Array.prototype : any[], Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->prototype : any[], Symbol(ArrayConstructor.prototype, Decl(lib.d.ts, 1167, 31)) ->slice : (start?: number, end?: number) => any[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>Array.prototype.slice : (start?: number, end?: number) => any[] +>Array.prototype : any[] +>Array : ArrayConstructor +>prototype : any[] +>slice : (start?: number, end?: number) => any[] >0 : number >1 : number diff --git a/tests/baselines/reference/library_DatePrototypeProperties.symbols b/tests/baselines/reference/library_DatePrototypeProperties.symbols new file mode 100644 index 0000000000000..c6d0b7e87fbc0 --- /dev/null +++ b/tests/baselines/reference/library_DatePrototypeProperties.symbols @@ -0,0 +1,311 @@ +=== tests/cases/compiler/library_DatePrototypeProperties.ts === +// Properties of the Date prototype object as per ES5 spec +// http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5 +Date.prototype.constructor; +>Date.prototype.constructor : Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>constructor : Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) + +Date.prototype.toString(); +>Date.prototype.toString : Symbol(Date.toString, Decl(lib.d.ts, 636, 16)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toString : Symbol(Date.toString, Decl(lib.d.ts, 636, 16)) + +Date.prototype.toDateString(); +>Date.prototype.toDateString : Symbol(Date.toDateString, Decl(lib.d.ts, 638, 23)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toDateString : Symbol(Date.toDateString, Decl(lib.d.ts, 638, 23)) + +Date.prototype.toTimeString(); +>Date.prototype.toTimeString : Symbol(Date.toTimeString, Decl(lib.d.ts, 640, 27)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toTimeString : Symbol(Date.toTimeString, Decl(lib.d.ts, 640, 27)) + +Date.prototype.toLocaleString(); +>Date.prototype.toLocaleString : Symbol(Date.toLocaleString, Decl(lib.d.ts, 642, 27)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toLocaleString : Symbol(Date.toLocaleString, Decl(lib.d.ts, 642, 27)) + +Date.prototype.toLocaleDateString(); +>Date.prototype.toLocaleDateString : Symbol(Date.toLocaleDateString, Decl(lib.d.ts, 644, 29)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toLocaleDateString : Symbol(Date.toLocaleDateString, Decl(lib.d.ts, 644, 29)) + +Date.prototype.toLocaleTimeString(); +>Date.prototype.toLocaleTimeString : Symbol(Date.toLocaleTimeString, Decl(lib.d.ts, 646, 33)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toLocaleTimeString : Symbol(Date.toLocaleTimeString, Decl(lib.d.ts, 646, 33)) + +Date.prototype.valueOf(); +>Date.prototype.valueOf : Symbol(Date.valueOf, Decl(lib.d.ts, 648, 33)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>valueOf : Symbol(Date.valueOf, Decl(lib.d.ts, 648, 33)) + +Date.prototype.getTime(); +>Date.prototype.getTime : Symbol(Date.getTime, Decl(lib.d.ts, 650, 22)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getTime : Symbol(Date.getTime, Decl(lib.d.ts, 650, 22)) + +Date.prototype.getFullYear(); +>Date.prototype.getFullYear : Symbol(Date.getFullYear, Decl(lib.d.ts, 652, 22)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getFullYear : Symbol(Date.getFullYear, Decl(lib.d.ts, 652, 22)) + +Date.prototype.getUTCFullYear(); +>Date.prototype.getUTCFullYear : Symbol(Date.getUTCFullYear, Decl(lib.d.ts, 654, 26)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCFullYear : Symbol(Date.getUTCFullYear, Decl(lib.d.ts, 654, 26)) + +Date.prototype.getMonth(); +>Date.prototype.getMonth : Symbol(Date.getMonth, Decl(lib.d.ts, 656, 29)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getMonth : Symbol(Date.getMonth, Decl(lib.d.ts, 656, 29)) + +Date.prototype.getUTCMonth(); +>Date.prototype.getUTCMonth : Symbol(Date.getUTCMonth, Decl(lib.d.ts, 658, 23)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCMonth : Symbol(Date.getUTCMonth, Decl(lib.d.ts, 658, 23)) + +Date.prototype.getDate(); +>Date.prototype.getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getDate : Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) + +Date.prototype.getUTCDate(); +>Date.prototype.getUTCDate : Symbol(Date.getUTCDate, Decl(lib.d.ts, 662, 22)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCDate : Symbol(Date.getUTCDate, Decl(lib.d.ts, 662, 22)) + +Date.prototype.getDay(); +>Date.prototype.getDay : Symbol(Date.getDay, Decl(lib.d.ts, 664, 25)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getDay : Symbol(Date.getDay, Decl(lib.d.ts, 664, 25)) + +Date.prototype.getUTCDay(); +>Date.prototype.getUTCDay : Symbol(Date.getUTCDay, Decl(lib.d.ts, 666, 21)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCDay : Symbol(Date.getUTCDay, Decl(lib.d.ts, 666, 21)) + +Date.prototype.getHours(); +>Date.prototype.getHours : Symbol(Date.getHours, Decl(lib.d.ts, 668, 24)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getHours : Symbol(Date.getHours, Decl(lib.d.ts, 668, 24)) + +Date.prototype.getUTCHours(); +>Date.prototype.getUTCHours : Symbol(Date.getUTCHours, Decl(lib.d.ts, 670, 23)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCHours : Symbol(Date.getUTCHours, Decl(lib.d.ts, 670, 23)) + +Date.prototype.getMinutes(); +>Date.prototype.getMinutes : Symbol(Date.getMinutes, Decl(lib.d.ts, 672, 26)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getMinutes : Symbol(Date.getMinutes, Decl(lib.d.ts, 672, 26)) + +Date.prototype.getUTCMinutes(); +>Date.prototype.getUTCMinutes : Symbol(Date.getUTCMinutes, Decl(lib.d.ts, 674, 25)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCMinutes : Symbol(Date.getUTCMinutes, Decl(lib.d.ts, 674, 25)) + +Date.prototype.getSeconds(); +>Date.prototype.getSeconds : Symbol(Date.getSeconds, Decl(lib.d.ts, 676, 28)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getSeconds : Symbol(Date.getSeconds, Decl(lib.d.ts, 676, 28)) + +Date.prototype.getUTCSeconds(); +>Date.prototype.getUTCSeconds : Symbol(Date.getUTCSeconds, Decl(lib.d.ts, 678, 25)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCSeconds : Symbol(Date.getUTCSeconds, Decl(lib.d.ts, 678, 25)) + +Date.prototype.getMilliseconds(); +>Date.prototype.getMilliseconds : Symbol(Date.getMilliseconds, Decl(lib.d.ts, 680, 28)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getMilliseconds : Symbol(Date.getMilliseconds, Decl(lib.d.ts, 680, 28)) + +Date.prototype.getUTCMilliseconds(); +>Date.prototype.getUTCMilliseconds : Symbol(Date.getUTCMilliseconds, Decl(lib.d.ts, 682, 30)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getUTCMilliseconds : Symbol(Date.getUTCMilliseconds, Decl(lib.d.ts, 682, 30)) + +Date.prototype.getTimezoneOffset(); +>Date.prototype.getTimezoneOffset : Symbol(Date.getTimezoneOffset, Decl(lib.d.ts, 684, 33)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>getTimezoneOffset : Symbol(Date.getTimezoneOffset, Decl(lib.d.ts, 684, 33)) + +Date.prototype.setTime(0); +>Date.prototype.setTime : Symbol(Date.setTime, Decl(lib.d.ts, 686, 32)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setTime : Symbol(Date.setTime, Decl(lib.d.ts, 686, 32)) + +Date.prototype.setMilliseconds(0); +>Date.prototype.setMilliseconds : Symbol(Date.setMilliseconds, Decl(lib.d.ts, 691, 34)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setMilliseconds : Symbol(Date.setMilliseconds, Decl(lib.d.ts, 691, 34)) + +Date.prototype.setUTCMilliseconds(0); +>Date.prototype.setUTCMilliseconds : Symbol(Date.setUTCMilliseconds, Decl(lib.d.ts, 696, 40)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCMilliseconds : Symbol(Date.setUTCMilliseconds, Decl(lib.d.ts, 696, 40)) + +Date.prototype.setSeconds(0); +>Date.prototype.setSeconds : Symbol(Date.setSeconds, Decl(lib.d.ts, 701, 43)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setSeconds : Symbol(Date.setSeconds, Decl(lib.d.ts, 701, 43)) + +Date.prototype.setUTCSeconds(0); +>Date.prototype.setUTCSeconds : Symbol(Date.setUTCSeconds, Decl(lib.d.ts, 708, 49)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCSeconds : Symbol(Date.setUTCSeconds, Decl(lib.d.ts, 708, 49)) + +Date.prototype.setMinutes(0); +>Date.prototype.setMinutes : Symbol(Date.setMinutes, Decl(lib.d.ts, 714, 52)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setMinutes : Symbol(Date.setMinutes, Decl(lib.d.ts, 714, 52)) + +Date.prototype.setUTCMinutes(0); +>Date.prototype.setUTCMinutes : Symbol(Date.setUTCMinutes, Decl(lib.d.ts, 721, 63)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCMinutes : Symbol(Date.setUTCMinutes, Decl(lib.d.ts, 721, 63)) + +Date.prototype.setHours(0); +>Date.prototype.setHours : Symbol(Date.setHours, Decl(lib.d.ts, 728, 66)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setHours : Symbol(Date.setHours, Decl(lib.d.ts, 728, 66)) + +Date.prototype.setUTCHours(0); +>Date.prototype.setUTCHours : Symbol(Date.setUTCHours, Decl(lib.d.ts, 736, 77)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCHours : Symbol(Date.setUTCHours, Decl(lib.d.ts, 736, 77)) + +Date.prototype.setDate(0); +>Date.prototype.setDate : Symbol(Date.setDate, Decl(lib.d.ts, 744, 80)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setDate : Symbol(Date.setDate, Decl(lib.d.ts, 744, 80)) + +Date.prototype.setUTCDate(0); +>Date.prototype.setUTCDate : Symbol(Date.setUTCDate, Decl(lib.d.ts, 749, 34)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCDate : Symbol(Date.setUTCDate, Decl(lib.d.ts, 749, 34)) + +Date.prototype.setMonth(0); +>Date.prototype.setMonth : Symbol(Date.setMonth, Decl(lib.d.ts, 754, 37)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setMonth : Symbol(Date.setMonth, Decl(lib.d.ts, 754, 37)) + +Date.prototype.setUTCMonth(0); +>Date.prototype.setUTCMonth : Symbol(Date.setUTCMonth, Decl(lib.d.ts, 760, 51)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCMonth : Symbol(Date.setUTCMonth, Decl(lib.d.ts, 760, 51)) + +Date.prototype.setFullYear(0); +>Date.prototype.setFullYear : Symbol(Date.setFullYear, Decl(lib.d.ts, 766, 54)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setFullYear : Symbol(Date.setFullYear, Decl(lib.d.ts, 766, 54)) + +Date.prototype.setUTCFullYear(0); +>Date.prototype.setUTCFullYear : Symbol(Date.setUTCFullYear, Decl(lib.d.ts, 773, 69)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>setUTCFullYear : Symbol(Date.setUTCFullYear, Decl(lib.d.ts, 773, 69)) + +Date.prototype.toUTCString(); +>Date.prototype.toUTCString : Symbol(Date.toUTCString, Decl(lib.d.ts, 780, 72)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toUTCString : Symbol(Date.toUTCString, Decl(lib.d.ts, 780, 72)) + +Date.prototype.toISOString(); +>Date.prototype.toISOString : Symbol(Date.toISOString, Decl(lib.d.ts, 782, 26)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toISOString : Symbol(Date.toISOString, Decl(lib.d.ts, 782, 26)) + +Date.prototype.toJSON(null); +>Date.prototype.toJSON : Symbol(Date.toJSON, Decl(lib.d.ts, 784, 26)) +>Date.prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>prototype : Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) +>toJSON : Symbol(Date.toJSON, Decl(lib.d.ts, 784, 26)) + diff --git a/tests/baselines/reference/library_DatePrototypeProperties.types b/tests/baselines/reference/library_DatePrototypeProperties.types index 7a10aedd7652c..79aad91245b5c 100644 --- a/tests/baselines/reference/library_DatePrototypeProperties.types +++ b/tests/baselines/reference/library_DatePrototypeProperties.types @@ -2,369 +2,369 @@ // Properties of the Date prototype object as per ES5 spec // http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.5 Date.prototype.constructor; ->Date.prototype.constructor : Function, Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->constructor : Function, Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) +>Date.prototype.constructor : Function +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>constructor : Function Date.prototype.toString(); >Date.prototype.toString() : string ->Date.prototype.toString : () => string, Symbol(Date.toString, Decl(lib.d.ts, 636, 16)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toString : () => string, Symbol(Date.toString, Decl(lib.d.ts, 636, 16)) +>Date.prototype.toString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toString : () => string Date.prototype.toDateString(); >Date.prototype.toDateString() : string ->Date.prototype.toDateString : () => string, Symbol(Date.toDateString, Decl(lib.d.ts, 638, 23)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toDateString : () => string, Symbol(Date.toDateString, Decl(lib.d.ts, 638, 23)) +>Date.prototype.toDateString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toDateString : () => string Date.prototype.toTimeString(); >Date.prototype.toTimeString() : string ->Date.prototype.toTimeString : () => string, Symbol(Date.toTimeString, Decl(lib.d.ts, 640, 27)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toTimeString : () => string, Symbol(Date.toTimeString, Decl(lib.d.ts, 640, 27)) +>Date.prototype.toTimeString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toTimeString : () => string Date.prototype.toLocaleString(); >Date.prototype.toLocaleString() : string ->Date.prototype.toLocaleString : () => string, Symbol(Date.toLocaleString, Decl(lib.d.ts, 642, 27)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toLocaleString : () => string, Symbol(Date.toLocaleString, Decl(lib.d.ts, 642, 27)) +>Date.prototype.toLocaleString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toLocaleString : () => string Date.prototype.toLocaleDateString(); >Date.prototype.toLocaleDateString() : string ->Date.prototype.toLocaleDateString : () => string, Symbol(Date.toLocaleDateString, Decl(lib.d.ts, 644, 29)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toLocaleDateString : () => string, Symbol(Date.toLocaleDateString, Decl(lib.d.ts, 644, 29)) +>Date.prototype.toLocaleDateString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toLocaleDateString : () => string Date.prototype.toLocaleTimeString(); >Date.prototype.toLocaleTimeString() : string ->Date.prototype.toLocaleTimeString : () => string, Symbol(Date.toLocaleTimeString, Decl(lib.d.ts, 646, 33)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toLocaleTimeString : () => string, Symbol(Date.toLocaleTimeString, Decl(lib.d.ts, 646, 33)) +>Date.prototype.toLocaleTimeString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toLocaleTimeString : () => string Date.prototype.valueOf(); >Date.prototype.valueOf() : number ->Date.prototype.valueOf : () => number, Symbol(Date.valueOf, Decl(lib.d.ts, 648, 33)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->valueOf : () => number, Symbol(Date.valueOf, Decl(lib.d.ts, 648, 33)) +>Date.prototype.valueOf : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>valueOf : () => number Date.prototype.getTime(); >Date.prototype.getTime() : number ->Date.prototype.getTime : () => number, Symbol(Date.getTime, Decl(lib.d.ts, 650, 22)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getTime : () => number, Symbol(Date.getTime, Decl(lib.d.ts, 650, 22)) +>Date.prototype.getTime : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getTime : () => number Date.prototype.getFullYear(); >Date.prototype.getFullYear() : number ->Date.prototype.getFullYear : () => number, Symbol(Date.getFullYear, Decl(lib.d.ts, 652, 22)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getFullYear : () => number, Symbol(Date.getFullYear, Decl(lib.d.ts, 652, 22)) +>Date.prototype.getFullYear : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getFullYear : () => number Date.prototype.getUTCFullYear(); >Date.prototype.getUTCFullYear() : number ->Date.prototype.getUTCFullYear : () => number, Symbol(Date.getUTCFullYear, Decl(lib.d.ts, 654, 26)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCFullYear : () => number, Symbol(Date.getUTCFullYear, Decl(lib.d.ts, 654, 26)) +>Date.prototype.getUTCFullYear : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCFullYear : () => number Date.prototype.getMonth(); >Date.prototype.getMonth() : number ->Date.prototype.getMonth : () => number, Symbol(Date.getMonth, Decl(lib.d.ts, 656, 29)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getMonth : () => number, Symbol(Date.getMonth, Decl(lib.d.ts, 656, 29)) +>Date.prototype.getMonth : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getMonth : () => number Date.prototype.getUTCMonth(); >Date.prototype.getUTCMonth() : number ->Date.prototype.getUTCMonth : () => number, Symbol(Date.getUTCMonth, Decl(lib.d.ts, 658, 23)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCMonth : () => number, Symbol(Date.getUTCMonth, Decl(lib.d.ts, 658, 23)) +>Date.prototype.getUTCMonth : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCMonth : () => number Date.prototype.getDate(); >Date.prototype.getDate() : number ->Date.prototype.getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getDate : () => number, Symbol(Date.getDate, Decl(lib.d.ts, 660, 26)) +>Date.prototype.getDate : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getDate : () => number Date.prototype.getUTCDate(); >Date.prototype.getUTCDate() : number ->Date.prototype.getUTCDate : () => number, Symbol(Date.getUTCDate, Decl(lib.d.ts, 662, 22)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCDate : () => number, Symbol(Date.getUTCDate, Decl(lib.d.ts, 662, 22)) +>Date.prototype.getUTCDate : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCDate : () => number Date.prototype.getDay(); >Date.prototype.getDay() : number ->Date.prototype.getDay : () => number, Symbol(Date.getDay, Decl(lib.d.ts, 664, 25)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getDay : () => number, Symbol(Date.getDay, Decl(lib.d.ts, 664, 25)) +>Date.prototype.getDay : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getDay : () => number Date.prototype.getUTCDay(); >Date.prototype.getUTCDay() : number ->Date.prototype.getUTCDay : () => number, Symbol(Date.getUTCDay, Decl(lib.d.ts, 666, 21)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCDay : () => number, Symbol(Date.getUTCDay, Decl(lib.d.ts, 666, 21)) +>Date.prototype.getUTCDay : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCDay : () => number Date.prototype.getHours(); >Date.prototype.getHours() : number ->Date.prototype.getHours : () => number, Symbol(Date.getHours, Decl(lib.d.ts, 668, 24)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getHours : () => number, Symbol(Date.getHours, Decl(lib.d.ts, 668, 24)) +>Date.prototype.getHours : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getHours : () => number Date.prototype.getUTCHours(); >Date.prototype.getUTCHours() : number ->Date.prototype.getUTCHours : () => number, Symbol(Date.getUTCHours, Decl(lib.d.ts, 670, 23)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCHours : () => number, Symbol(Date.getUTCHours, Decl(lib.d.ts, 670, 23)) +>Date.prototype.getUTCHours : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCHours : () => number Date.prototype.getMinutes(); >Date.prototype.getMinutes() : number ->Date.prototype.getMinutes : () => number, Symbol(Date.getMinutes, Decl(lib.d.ts, 672, 26)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getMinutes : () => number, Symbol(Date.getMinutes, Decl(lib.d.ts, 672, 26)) +>Date.prototype.getMinutes : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getMinutes : () => number Date.prototype.getUTCMinutes(); >Date.prototype.getUTCMinutes() : number ->Date.prototype.getUTCMinutes : () => number, Symbol(Date.getUTCMinutes, Decl(lib.d.ts, 674, 25)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCMinutes : () => number, Symbol(Date.getUTCMinutes, Decl(lib.d.ts, 674, 25)) +>Date.prototype.getUTCMinutes : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCMinutes : () => number Date.prototype.getSeconds(); >Date.prototype.getSeconds() : number ->Date.prototype.getSeconds : () => number, Symbol(Date.getSeconds, Decl(lib.d.ts, 676, 28)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getSeconds : () => number, Symbol(Date.getSeconds, Decl(lib.d.ts, 676, 28)) +>Date.prototype.getSeconds : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getSeconds : () => number Date.prototype.getUTCSeconds(); >Date.prototype.getUTCSeconds() : number ->Date.prototype.getUTCSeconds : () => number, Symbol(Date.getUTCSeconds, Decl(lib.d.ts, 678, 25)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCSeconds : () => number, Symbol(Date.getUTCSeconds, Decl(lib.d.ts, 678, 25)) +>Date.prototype.getUTCSeconds : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCSeconds : () => number Date.prototype.getMilliseconds(); >Date.prototype.getMilliseconds() : number ->Date.prototype.getMilliseconds : () => number, Symbol(Date.getMilliseconds, Decl(lib.d.ts, 680, 28)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getMilliseconds : () => number, Symbol(Date.getMilliseconds, Decl(lib.d.ts, 680, 28)) +>Date.prototype.getMilliseconds : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getMilliseconds : () => number Date.prototype.getUTCMilliseconds(); >Date.prototype.getUTCMilliseconds() : number ->Date.prototype.getUTCMilliseconds : () => number, Symbol(Date.getUTCMilliseconds, Decl(lib.d.ts, 682, 30)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getUTCMilliseconds : () => number, Symbol(Date.getUTCMilliseconds, Decl(lib.d.ts, 682, 30)) +>Date.prototype.getUTCMilliseconds : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getUTCMilliseconds : () => number Date.prototype.getTimezoneOffset(); >Date.prototype.getTimezoneOffset() : number ->Date.prototype.getTimezoneOffset : () => number, Symbol(Date.getTimezoneOffset, Decl(lib.d.ts, 684, 33)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->getTimezoneOffset : () => number, Symbol(Date.getTimezoneOffset, Decl(lib.d.ts, 684, 33)) +>Date.prototype.getTimezoneOffset : () => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>getTimezoneOffset : () => number Date.prototype.setTime(0); >Date.prototype.setTime(0) : number ->Date.prototype.setTime : (time: number) => number, Symbol(Date.setTime, Decl(lib.d.ts, 686, 32)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setTime : (time: number) => number, Symbol(Date.setTime, Decl(lib.d.ts, 686, 32)) +>Date.prototype.setTime : (time: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setTime : (time: number) => number >0 : number Date.prototype.setMilliseconds(0); >Date.prototype.setMilliseconds(0) : number ->Date.prototype.setMilliseconds : (ms: number) => number, Symbol(Date.setMilliseconds, Decl(lib.d.ts, 691, 34)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setMilliseconds : (ms: number) => number, Symbol(Date.setMilliseconds, Decl(lib.d.ts, 691, 34)) +>Date.prototype.setMilliseconds : (ms: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setMilliseconds : (ms: number) => number >0 : number Date.prototype.setUTCMilliseconds(0); >Date.prototype.setUTCMilliseconds(0) : number ->Date.prototype.setUTCMilliseconds : (ms: number) => number, Symbol(Date.setUTCMilliseconds, Decl(lib.d.ts, 696, 40)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCMilliseconds : (ms: number) => number, Symbol(Date.setUTCMilliseconds, Decl(lib.d.ts, 696, 40)) +>Date.prototype.setUTCMilliseconds : (ms: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCMilliseconds : (ms: number) => number >0 : number Date.prototype.setSeconds(0); >Date.prototype.setSeconds(0) : number ->Date.prototype.setSeconds : (sec: number, ms?: number) => number, Symbol(Date.setSeconds, Decl(lib.d.ts, 701, 43)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setSeconds : (sec: number, ms?: number) => number, Symbol(Date.setSeconds, Decl(lib.d.ts, 701, 43)) +>Date.prototype.setSeconds : (sec: number, ms?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setSeconds : (sec: number, ms?: number) => number >0 : number Date.prototype.setUTCSeconds(0); >Date.prototype.setUTCSeconds(0) : number ->Date.prototype.setUTCSeconds : (sec: number, ms?: number) => number, Symbol(Date.setUTCSeconds, Decl(lib.d.ts, 708, 49)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCSeconds : (sec: number, ms?: number) => number, Symbol(Date.setUTCSeconds, Decl(lib.d.ts, 708, 49)) +>Date.prototype.setUTCSeconds : (sec: number, ms?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCSeconds : (sec: number, ms?: number) => number >0 : number Date.prototype.setMinutes(0); >Date.prototype.setMinutes(0) : number ->Date.prototype.setMinutes : (min: number, sec?: number, ms?: number) => number, Symbol(Date.setMinutes, Decl(lib.d.ts, 714, 52)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setMinutes : (min: number, sec?: number, ms?: number) => number, Symbol(Date.setMinutes, Decl(lib.d.ts, 714, 52)) +>Date.prototype.setMinutes : (min: number, sec?: number, ms?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setMinutes : (min: number, sec?: number, ms?: number) => number >0 : number Date.prototype.setUTCMinutes(0); >Date.prototype.setUTCMinutes(0) : number ->Date.prototype.setUTCMinutes : (min: number, sec?: number, ms?: number) => number, Symbol(Date.setUTCMinutes, Decl(lib.d.ts, 721, 63)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCMinutes : (min: number, sec?: number, ms?: number) => number, Symbol(Date.setUTCMinutes, Decl(lib.d.ts, 721, 63)) +>Date.prototype.setUTCMinutes : (min: number, sec?: number, ms?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCMinutes : (min: number, sec?: number, ms?: number) => number >0 : number Date.prototype.setHours(0); >Date.prototype.setHours(0) : number ->Date.prototype.setHours : (hours: number, min?: number, sec?: number, ms?: number) => number, Symbol(Date.setHours, Decl(lib.d.ts, 728, 66)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setHours : (hours: number, min?: number, sec?: number, ms?: number) => number, Symbol(Date.setHours, Decl(lib.d.ts, 728, 66)) +>Date.prototype.setHours : (hours: number, min?: number, sec?: number, ms?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setHours : (hours: number, min?: number, sec?: number, ms?: number) => number >0 : number Date.prototype.setUTCHours(0); >Date.prototype.setUTCHours(0) : number ->Date.prototype.setUTCHours : (hours: number, min?: number, sec?: number, ms?: number) => number, Symbol(Date.setUTCHours, Decl(lib.d.ts, 736, 77)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCHours : (hours: number, min?: number, sec?: number, ms?: number) => number, Symbol(Date.setUTCHours, Decl(lib.d.ts, 736, 77)) +>Date.prototype.setUTCHours : (hours: number, min?: number, sec?: number, ms?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCHours : (hours: number, min?: number, sec?: number, ms?: number) => number >0 : number Date.prototype.setDate(0); >Date.prototype.setDate(0) : number ->Date.prototype.setDate : (date: number) => number, Symbol(Date.setDate, Decl(lib.d.ts, 744, 80)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setDate : (date: number) => number, Symbol(Date.setDate, Decl(lib.d.ts, 744, 80)) +>Date.prototype.setDate : (date: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setDate : (date: number) => number >0 : number Date.prototype.setUTCDate(0); >Date.prototype.setUTCDate(0) : number ->Date.prototype.setUTCDate : (date: number) => number, Symbol(Date.setUTCDate, Decl(lib.d.ts, 749, 34)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCDate : (date: number) => number, Symbol(Date.setUTCDate, Decl(lib.d.ts, 749, 34)) +>Date.prototype.setUTCDate : (date: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCDate : (date: number) => number >0 : number Date.prototype.setMonth(0); >Date.prototype.setMonth(0) : number ->Date.prototype.setMonth : (month: number, date?: number) => number, Symbol(Date.setMonth, Decl(lib.d.ts, 754, 37)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setMonth : (month: number, date?: number) => number, Symbol(Date.setMonth, Decl(lib.d.ts, 754, 37)) +>Date.prototype.setMonth : (month: number, date?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setMonth : (month: number, date?: number) => number >0 : number Date.prototype.setUTCMonth(0); >Date.prototype.setUTCMonth(0) : number ->Date.prototype.setUTCMonth : (month: number, date?: number) => number, Symbol(Date.setUTCMonth, Decl(lib.d.ts, 760, 51)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCMonth : (month: number, date?: number) => number, Symbol(Date.setUTCMonth, Decl(lib.d.ts, 760, 51)) +>Date.prototype.setUTCMonth : (month: number, date?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCMonth : (month: number, date?: number) => number >0 : number Date.prototype.setFullYear(0); >Date.prototype.setFullYear(0) : number ->Date.prototype.setFullYear : (year: number, month?: number, date?: number) => number, Symbol(Date.setFullYear, Decl(lib.d.ts, 766, 54)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setFullYear : (year: number, month?: number, date?: number) => number, Symbol(Date.setFullYear, Decl(lib.d.ts, 766, 54)) +>Date.prototype.setFullYear : (year: number, month?: number, date?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setFullYear : (year: number, month?: number, date?: number) => number >0 : number Date.prototype.setUTCFullYear(0); >Date.prototype.setUTCFullYear(0) : number ->Date.prototype.setUTCFullYear : (year: number, month?: number, date?: number) => number, Symbol(Date.setUTCFullYear, Decl(lib.d.ts, 773, 69)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->setUTCFullYear : (year: number, month?: number, date?: number) => number, Symbol(Date.setUTCFullYear, Decl(lib.d.ts, 773, 69)) +>Date.prototype.setUTCFullYear : (year: number, month?: number, date?: number) => number +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>setUTCFullYear : (year: number, month?: number, date?: number) => number >0 : number Date.prototype.toUTCString(); >Date.prototype.toUTCString() : string ->Date.prototype.toUTCString : () => string, Symbol(Date.toUTCString, Decl(lib.d.ts, 780, 72)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toUTCString : () => string, Symbol(Date.toUTCString, Decl(lib.d.ts, 780, 72)) +>Date.prototype.toUTCString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toUTCString : () => string Date.prototype.toISOString(); >Date.prototype.toISOString() : string ->Date.prototype.toISOString : () => string, Symbol(Date.toISOString, Decl(lib.d.ts, 782, 26)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toISOString : () => string, Symbol(Date.toISOString, Decl(lib.d.ts, 782, 26)) +>Date.prototype.toISOString : () => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toISOString : () => string Date.prototype.toJSON(null); >Date.prototype.toJSON(null) : string ->Date.prototype.toJSON : (key?: any) => string, Symbol(Date.toJSON, Decl(lib.d.ts, 784, 26)) ->Date.prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->prototype : Date, Symbol(DateConstructor.prototype, Decl(lib.d.ts, 794, 15)) ->toJSON : (key?: any) => string, Symbol(Date.toJSON, Decl(lib.d.ts, 784, 26)) +>Date.prototype.toJSON : (key?: any) => string +>Date.prototype : Date +>Date : DateConstructor +>prototype : Date +>toJSON : (key?: any) => string >null : null diff --git a/tests/baselines/reference/library_ObjectPrototypeProperties.symbols b/tests/baselines/reference/library_ObjectPrototypeProperties.symbols new file mode 100644 index 0000000000000..eb24374af2ae0 --- /dev/null +++ b/tests/baselines/reference/library_ObjectPrototypeProperties.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/library_ObjectPrototypeProperties.ts === +// Properties of the Object Prototype Object as per ES5 spec +// http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.4 +Object.prototype.constructor; +>Object.prototype.constructor : Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>constructor : Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) + +Object.prototype.toString(); +>Object.prototype.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +Object.prototype.toLocaleString(); +>Object.prototype.toLocaleString : Symbol(Object.toLocaleString, Decl(lib.d.ts, 99, 23)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>toLocaleString : Symbol(Object.toLocaleString, Decl(lib.d.ts, 99, 23)) + +Object.prototype.valueOf(); +>Object.prototype.valueOf : Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>valueOf : Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) + +Object.prototype.hasOwnProperty("string"); +>Object.prototype.hasOwnProperty : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>hasOwnProperty : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) + +Object.prototype.isPrototypeOf(Object); +>Object.prototype.isPrototypeOf : Symbol(Object.isPrototypeOf, Decl(lib.d.ts, 111, 39)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>isPrototypeOf : Symbol(Object.isPrototypeOf, Decl(lib.d.ts, 111, 39)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +Object.prototype.propertyIsEnumerable("string"); +>Object.prototype.propertyIsEnumerable : Symbol(Object.propertyIsEnumerable, Decl(lib.d.ts, 117, 38)) +>Object.prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>prototype : Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) +>propertyIsEnumerable : Symbol(Object.propertyIsEnumerable, Decl(lib.d.ts, 117, 38)) + diff --git a/tests/baselines/reference/library_ObjectPrototypeProperties.types b/tests/baselines/reference/library_ObjectPrototypeProperties.types index eef4b1ca382f7..616a9da633bd3 100644 --- a/tests/baselines/reference/library_ObjectPrototypeProperties.types +++ b/tests/baselines/reference/library_ObjectPrototypeProperties.types @@ -2,60 +2,60 @@ // Properties of the Object Prototype Object as per ES5 spec // http://www.ecma-international.org/ecma-262/5.1/#sec-15.2.4 Object.prototype.constructor; ->Object.prototype.constructor : Function, Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->constructor : Function, Symbol(Object.constructor, Decl(lib.d.ts, 94, 18)) +>Object.prototype.constructor : Function +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>constructor : Function Object.prototype.toString(); >Object.prototype.toString() : string ->Object.prototype.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>Object.prototype.toString : () => string +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>toString : () => string Object.prototype.toLocaleString(); >Object.prototype.toLocaleString() : string ->Object.prototype.toLocaleString : () => string, Symbol(Object.toLocaleString, Decl(lib.d.ts, 99, 23)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->toLocaleString : () => string, Symbol(Object.toLocaleString, Decl(lib.d.ts, 99, 23)) +>Object.prototype.toLocaleString : () => string +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>toLocaleString : () => string Object.prototype.valueOf(); >Object.prototype.valueOf() : Object ->Object.prototype.valueOf : () => Object, Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->valueOf : () => Object, Symbol(Object.valueOf, Decl(lib.d.ts, 102, 29)) +>Object.prototype.valueOf : () => Object +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>valueOf : () => Object Object.prototype.hasOwnProperty("string"); >Object.prototype.hasOwnProperty("string") : boolean ->Object.prototype.hasOwnProperty : (v: string) => boolean, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->hasOwnProperty : (v: string) => boolean, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>Object.prototype.hasOwnProperty : (v: string) => boolean +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>hasOwnProperty : (v: string) => boolean >"string" : string Object.prototype.isPrototypeOf(Object); >Object.prototype.isPrototypeOf(Object) : boolean ->Object.prototype.isPrototypeOf : (v: Object) => boolean, Symbol(Object.isPrototypeOf, Decl(lib.d.ts, 111, 39)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->isPrototypeOf : (v: Object) => boolean, Symbol(Object.isPrototypeOf, Decl(lib.d.ts, 111, 39)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object.prototype.isPrototypeOf : (v: Object) => boolean +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>isPrototypeOf : (v: Object) => boolean +>Object : ObjectConstructor Object.prototype.propertyIsEnumerable("string"); >Object.prototype.propertyIsEnumerable("string") : boolean ->Object.prototype.propertyIsEnumerable : (v: string) => boolean, Symbol(Object.propertyIsEnumerable, Decl(lib.d.ts, 117, 38)) ->Object.prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->prototype : Object, Symbol(ObjectConstructor.prototype, Decl(lib.d.ts, 129, 22)) ->propertyIsEnumerable : (v: string) => boolean, Symbol(Object.propertyIsEnumerable, Decl(lib.d.ts, 117, 38)) +>Object.prototype.propertyIsEnumerable : (v: string) => boolean +>Object.prototype : Object +>Object : ObjectConstructor +>prototype : Object +>propertyIsEnumerable : (v: string) => boolean >"string" : string diff --git a/tests/baselines/reference/library_RegExpExecArraySlice.symbols b/tests/baselines/reference/library_RegExpExecArraySlice.symbols new file mode 100644 index 0000000000000..bc460801fe84f --- /dev/null +++ b/tests/baselines/reference/library_RegExpExecArraySlice.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/library_RegExpExecArraySlice.ts === +// RegExpExecArray.slice can have zero, one, or two arguments +var regExpExecArrayValue: RegExpExecArray; +>regExpExecArrayValue : Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) +>RegExpExecArray : Symbol(RegExpExecArray, Decl(lib.d.ts, 820, 1)) + +regExpExecArrayValue.slice(); +>regExpExecArrayValue.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>regExpExecArrayValue : Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) +>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) + +regExpExecArrayValue.slice(0); +>regExpExecArrayValue.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>regExpExecArrayValue : Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) +>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) + +regExpExecArrayValue.slice(0,1); +>regExpExecArrayValue.slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>regExpExecArrayValue : Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) +>slice : Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) + diff --git a/tests/baselines/reference/library_RegExpExecArraySlice.types b/tests/baselines/reference/library_RegExpExecArraySlice.types index 488bc3cda2573..b4673adb98835 100644 --- a/tests/baselines/reference/library_RegExpExecArraySlice.types +++ b/tests/baselines/reference/library_RegExpExecArraySlice.types @@ -1,27 +1,27 @@ === tests/cases/compiler/library_RegExpExecArraySlice.ts === // RegExpExecArray.slice can have zero, one, or two arguments var regExpExecArrayValue: RegExpExecArray; ->regExpExecArrayValue : RegExpExecArray, Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) ->RegExpExecArray : RegExpExecArray, Symbol(RegExpExecArray, Decl(lib.d.ts, 820, 1)) +>regExpExecArrayValue : RegExpExecArray +>RegExpExecArray : RegExpExecArray regExpExecArrayValue.slice(); >regExpExecArrayValue.slice() : string[] ->regExpExecArrayValue.slice : (start?: number, end?: number) => string[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) ->regExpExecArrayValue : RegExpExecArray, Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) ->slice : (start?: number, end?: number) => string[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>regExpExecArrayValue.slice : (start?: number, end?: number) => string[] +>regExpExecArrayValue : RegExpExecArray +>slice : (start?: number, end?: number) => string[] regExpExecArrayValue.slice(0); >regExpExecArrayValue.slice(0) : string[] ->regExpExecArrayValue.slice : (start?: number, end?: number) => string[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) ->regExpExecArrayValue : RegExpExecArray, Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) ->slice : (start?: number, end?: number) => string[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>regExpExecArrayValue.slice : (start?: number, end?: number) => string[] +>regExpExecArrayValue : RegExpExecArray +>slice : (start?: number, end?: number) => string[] >0 : number regExpExecArrayValue.slice(0,1); >regExpExecArrayValue.slice(0,1) : string[] ->regExpExecArrayValue.slice : (start?: number, end?: number) => string[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) ->regExpExecArrayValue : RegExpExecArray, Symbol(regExpExecArrayValue, Decl(library_RegExpExecArraySlice.ts, 1, 3)) ->slice : (start?: number, end?: number) => string[], Symbol(Array.slice, Decl(lib.d.ts, 1048, 15)) +>regExpExecArrayValue.slice : (start?: number, end?: number) => string[] +>regExpExecArrayValue : RegExpExecArray +>slice : (start?: number, end?: number) => string[] >0 : number >1 : number diff --git a/tests/baselines/reference/library_StringSlice.symbols b/tests/baselines/reference/library_StringSlice.symbols new file mode 100644 index 0000000000000..92c80089511de --- /dev/null +++ b/tests/baselines/reference/library_StringSlice.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/library_StringSlice.ts === +// String.prototype.slice can have zero, one, or two arguments +String.prototype.slice(); +>String.prototype.slice : Symbol(String.slice, Decl(lib.d.ts, 369, 35)) +>String.prototype : Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>prototype : Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) +>slice : Symbol(String.slice, Decl(lib.d.ts, 369, 35)) + +String.prototype.slice(0); +>String.prototype.slice : Symbol(String.slice, Decl(lib.d.ts, 369, 35)) +>String.prototype : Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>prototype : Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) +>slice : Symbol(String.slice, Decl(lib.d.ts, 369, 35)) + +String.prototype.slice(0,1); +>String.prototype.slice : Symbol(String.slice, Decl(lib.d.ts, 369, 35)) +>String.prototype : Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>prototype : Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) +>slice : Symbol(String.slice, Decl(lib.d.ts, 369, 35)) + diff --git a/tests/baselines/reference/library_StringSlice.types b/tests/baselines/reference/library_StringSlice.types index 4283211cb3082..09b2a0b399594 100644 --- a/tests/baselines/reference/library_StringSlice.types +++ b/tests/baselines/reference/library_StringSlice.types @@ -2,28 +2,28 @@ // String.prototype.slice can have zero, one, or two arguments String.prototype.slice(); >String.prototype.slice() : string ->String.prototype.slice : (start?: number, end?: number) => string, Symbol(String.slice, Decl(lib.d.ts, 369, 35)) ->String.prototype : String, Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) ->String : StringConstructor, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->prototype : String, Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) ->slice : (start?: number, end?: number) => string, Symbol(String.slice, Decl(lib.d.ts, 369, 35)) +>String.prototype.slice : (start?: number, end?: number) => string +>String.prototype : String +>String : StringConstructor +>prototype : String +>slice : (start?: number, end?: number) => string String.prototype.slice(0); >String.prototype.slice(0) : string ->String.prototype.slice : (start?: number, end?: number) => string, Symbol(String.slice, Decl(lib.d.ts, 369, 35)) ->String.prototype : String, Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) ->String : StringConstructor, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->prototype : String, Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) ->slice : (start?: number, end?: number) => string, Symbol(String.slice, Decl(lib.d.ts, 369, 35)) +>String.prototype.slice : (start?: number, end?: number) => string +>String.prototype : String +>String : StringConstructor +>prototype : String +>slice : (start?: number, end?: number) => string >0 : number String.prototype.slice(0,1); >String.prototype.slice(0,1) : string ->String.prototype.slice : (start?: number, end?: number) => string, Symbol(String.slice, Decl(lib.d.ts, 369, 35)) ->String.prototype : String, Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) ->String : StringConstructor, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->prototype : String, Symbol(StringConstructor.prototype, Decl(lib.d.ts, 435, 26)) ->slice : (start?: number, end?: number) => string, Symbol(String.slice, Decl(lib.d.ts, 369, 35)) +>String.prototype.slice : (start?: number, end?: number) => string +>String.prototype : String +>String : StringConstructor +>prototype : String +>slice : (start?: number, end?: number) => string >0 : number >1 : number diff --git a/tests/baselines/reference/listFailure.symbols b/tests/baselines/reference/listFailure.symbols new file mode 100644 index 0000000000000..53b1acf09ee6f --- /dev/null +++ b/tests/baselines/reference/listFailure.symbols @@ -0,0 +1,120 @@ +=== tests/cases/compiler/listFailure.ts === +module Editor { +>Editor : Symbol(Editor, Decl(listFailure.ts, 0, 0)) + + export class Buffer { +>Buffer : Symbol(Buffer, Decl(listFailure.ts, 0, 15)) + + lines: List = ListMakeHead(); +>lines : Symbol(lines, Decl(listFailure.ts, 2, 25)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>Line : Symbol(Line, Decl(listFailure.ts, 37, 5)) +>ListMakeHead : Symbol(ListMakeHead, Decl(listFailure.ts, 16, 5)) +>Line : Symbol(Line, Decl(listFailure.ts, 37, 5)) + + addLine(lineText: string): List { +>addLine : Symbol(addLine, Decl(listFailure.ts, 3, 46)) +>lineText : Symbol(lineText, Decl(listFailure.ts, 5, 16)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>Line : Symbol(Line, Decl(listFailure.ts, 37, 5)) + + var line: Line = new Line(); +>line : Symbol(line, Decl(listFailure.ts, 7, 15)) +>Line : Symbol(Line, Decl(listFailure.ts, 37, 5)) +>Line : Symbol(Line, Decl(listFailure.ts, 37, 5)) + + var lineEntry = this.lines.add(line); +>lineEntry : Symbol(lineEntry, Decl(listFailure.ts, 8, 15)) +>this.lines.add : Symbol(List.add, Decl(listFailure.ts, 27, 29)) +>this.lines : Symbol(lines, Decl(listFailure.ts, 2, 25)) +>this : Symbol(Buffer, Decl(listFailure.ts, 0, 15)) +>lines : Symbol(lines, Decl(listFailure.ts, 2, 25)) +>add : Symbol(List.add, Decl(listFailure.ts, 27, 29)) +>line : Symbol(line, Decl(listFailure.ts, 7, 15)) + + return lineEntry; +>lineEntry : Symbol(lineEntry, Decl(listFailure.ts, 8, 15)) + } + } + + export function ListRemoveEntry(entry: List): List { +>ListRemoveEntry : Symbol(ListRemoveEntry, Decl(listFailure.ts, 12, 5)) +>U : Symbol(U, Decl(listFailure.ts, 14, 36)) +>entry : Symbol(entry, Decl(listFailure.ts, 14, 39)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>U : Symbol(U, Decl(listFailure.ts, 14, 36)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>U : Symbol(U, Decl(listFailure.ts, 14, 36)) + + return entry; +>entry : Symbol(entry, Decl(listFailure.ts, 14, 39)) + } + + export function ListMakeHead(): List { +>ListMakeHead : Symbol(ListMakeHead, Decl(listFailure.ts, 16, 5)) +>U : Symbol(U, Decl(listFailure.ts, 18, 33)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>U : Symbol(U, Decl(listFailure.ts, 18, 33)) + + return null; + } + + export function ListMakeEntry(data: U): List { +>ListMakeEntry : Symbol(ListMakeEntry, Decl(listFailure.ts, 20, 5)) +>U : Symbol(U, Decl(listFailure.ts, 22, 34)) +>data : Symbol(data, Decl(listFailure.ts, 22, 37)) +>U : Symbol(U, Decl(listFailure.ts, 22, 34)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>U : Symbol(U, Decl(listFailure.ts, 22, 34)) + + return null; + } + + class List { +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>T : Symbol(T, Decl(listFailure.ts, 26, 15)) + + public next: List; +>next : Symbol(next, Decl(listFailure.ts, 26, 19)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>T : Symbol(T, Decl(listFailure.ts, 26, 15)) + + add(data: T): List { +>add : Symbol(add, Decl(listFailure.ts, 27, 29)) +>data : Symbol(data, Decl(listFailure.ts, 29, 12)) +>T : Symbol(T, Decl(listFailure.ts, 26, 15)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>T : Symbol(T, Decl(listFailure.ts, 26, 15)) + + this.next = ListMakeEntry(data); +>this.next : Symbol(next, Decl(listFailure.ts, 26, 19)) +>this : Symbol(List, Decl(listFailure.ts, 24, 5)) +>next : Symbol(next, Decl(listFailure.ts, 26, 19)) +>ListMakeEntry : Symbol(ListMakeEntry, Decl(listFailure.ts, 20, 5)) +>data : Symbol(data, Decl(listFailure.ts, 29, 12)) + + return this.next; +>this.next : Symbol(next, Decl(listFailure.ts, 26, 19)) +>this : Symbol(List, Decl(listFailure.ts, 24, 5)) +>next : Symbol(next, Decl(listFailure.ts, 26, 19)) + } + + popEntry(head: List): List { +>popEntry : Symbol(popEntry, Decl(listFailure.ts, 32, 9)) +>head : Symbol(head, Decl(listFailure.ts, 34, 17)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>T : Symbol(T, Decl(listFailure.ts, 26, 15)) +>List : Symbol(List, Decl(listFailure.ts, 24, 5)) +>T : Symbol(T, Decl(listFailure.ts, 26, 15)) + + return (ListRemoveEntry(this.next)); +>ListRemoveEntry : Symbol(ListRemoveEntry, Decl(listFailure.ts, 12, 5)) +>this.next : Symbol(next, Decl(listFailure.ts, 26, 19)) +>this : Symbol(List, Decl(listFailure.ts, 24, 5)) +>next : Symbol(next, Decl(listFailure.ts, 26, 19)) + } + } + + export class Line {} +>Line : Symbol(Line, Decl(listFailure.ts, 37, 5)) +} diff --git a/tests/baselines/reference/listFailure.types b/tests/baselines/reference/listFailure.types index 96abf54a87e8d..05c3cb5dfad94 100644 --- a/tests/baselines/reference/listFailure.types +++ b/tests/baselines/reference/listFailure.types @@ -1,129 +1,129 @@ === tests/cases/compiler/listFailure.ts === module Editor { ->Editor : typeof Editor, Symbol(Editor, Decl(listFailure.ts, 0, 0)) +>Editor : typeof Editor export class Buffer { ->Buffer : Buffer, Symbol(Buffer, Decl(listFailure.ts, 0, 15)) +>Buffer : Buffer lines: List = ListMakeHead(); ->lines : List, Symbol(lines, Decl(listFailure.ts, 2, 25)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->Line : Line, Symbol(Line, Decl(listFailure.ts, 37, 5)) +>lines : List +>List : List +>Line : Line >ListMakeHead() : List ->ListMakeHead : () => List, Symbol(ListMakeHead, Decl(listFailure.ts, 16, 5)) ->Line : Line, Symbol(Line, Decl(listFailure.ts, 37, 5)) +>ListMakeHead : () => List +>Line : Line addLine(lineText: string): List { ->addLine : (lineText: string) => List, Symbol(addLine, Decl(listFailure.ts, 3, 46)) ->lineText : string, Symbol(lineText, Decl(listFailure.ts, 5, 16)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->Line : Line, Symbol(Line, Decl(listFailure.ts, 37, 5)) +>addLine : (lineText: string) => List +>lineText : string +>List : List +>Line : Line var line: Line = new Line(); ->line : Line, Symbol(line, Decl(listFailure.ts, 7, 15)) ->Line : Line, Symbol(Line, Decl(listFailure.ts, 37, 5)) +>line : Line +>Line : Line >new Line() : Line ->Line : typeof Line, Symbol(Line, Decl(listFailure.ts, 37, 5)) +>Line : typeof Line var lineEntry = this.lines.add(line); ->lineEntry : List, Symbol(lineEntry, Decl(listFailure.ts, 8, 15)) +>lineEntry : List >this.lines.add(line) : List ->this.lines.add : (data: Line) => List, Symbol(List.add, Decl(listFailure.ts, 27, 29)) ->this.lines : List, Symbol(lines, Decl(listFailure.ts, 2, 25)) ->this : Buffer, Symbol(Buffer, Decl(listFailure.ts, 0, 15)) ->lines : List, Symbol(lines, Decl(listFailure.ts, 2, 25)) ->add : (data: Line) => List, Symbol(List.add, Decl(listFailure.ts, 27, 29)) ->line : Line, Symbol(line, Decl(listFailure.ts, 7, 15)) +>this.lines.add : (data: Line) => List +>this.lines : List +>this : Buffer +>lines : List +>add : (data: Line) => List +>line : Line return lineEntry; ->lineEntry : List, Symbol(lineEntry, Decl(listFailure.ts, 8, 15)) +>lineEntry : List } } export function ListRemoveEntry(entry: List): List { ->ListRemoveEntry : (entry: List) => List, Symbol(ListRemoveEntry, Decl(listFailure.ts, 12, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 14, 36)) ->entry : List, Symbol(entry, Decl(listFailure.ts, 14, 39)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 14, 36)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 14, 36)) +>ListRemoveEntry : (entry: List) => List +>U : U +>entry : List +>List : List +>U : U +>List : List +>U : U return entry; ->entry : List, Symbol(entry, Decl(listFailure.ts, 14, 39)) +>entry : List } export function ListMakeHead(): List { ->ListMakeHead : () => List, Symbol(ListMakeHead, Decl(listFailure.ts, 16, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 18, 33)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 18, 33)) +>ListMakeHead : () => List +>U : U +>List : List +>U : U return null; >null : null } export function ListMakeEntry(data: U): List { ->ListMakeEntry : (data: U) => List, Symbol(ListMakeEntry, Decl(listFailure.ts, 20, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 22, 34)) ->data : U, Symbol(data, Decl(listFailure.ts, 22, 37)) ->U : U, Symbol(U, Decl(listFailure.ts, 22, 34)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->U : U, Symbol(U, Decl(listFailure.ts, 22, 34)) +>ListMakeEntry : (data: U) => List +>U : U +>data : U +>U : U +>List : List +>U : U return null; >null : null } class List { ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->T : T, Symbol(T, Decl(listFailure.ts, 26, 15)) +>List : List +>T : T public next: List; ->next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->T : T, Symbol(T, Decl(listFailure.ts, 26, 15)) +>next : List +>List : List +>T : T add(data: T): List { ->add : (data: T) => List, Symbol(add, Decl(listFailure.ts, 27, 29)) ->data : T, Symbol(data, Decl(listFailure.ts, 29, 12)) ->T : T, Symbol(T, Decl(listFailure.ts, 26, 15)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->T : T, Symbol(T, Decl(listFailure.ts, 26, 15)) +>add : (data: T) => List +>data : T +>T : T +>List : List +>T : T this.next = ListMakeEntry(data); >this.next = ListMakeEntry(data) : List ->this.next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) ->this : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) +>this.next : List +>this : List +>next : List >ListMakeEntry(data) : List ->ListMakeEntry : (data: U) => List, Symbol(ListMakeEntry, Decl(listFailure.ts, 20, 5)) ->data : T, Symbol(data, Decl(listFailure.ts, 29, 12)) +>ListMakeEntry : (data: U) => List +>data : T return this.next; ->this.next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) ->this : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) +>this.next : List +>this : List +>next : List } popEntry(head: List): List { ->popEntry : (head: List) => List, Symbol(popEntry, Decl(listFailure.ts, 32, 9)) ->head : List, Symbol(head, Decl(listFailure.ts, 34, 17)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->T : T, Symbol(T, Decl(listFailure.ts, 26, 15)) ->List : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->T : T, Symbol(T, Decl(listFailure.ts, 26, 15)) +>popEntry : (head: List) => List +>head : List +>List : List +>T : T +>List : List +>T : T return (ListRemoveEntry(this.next)); >(ListRemoveEntry(this.next)) : List >ListRemoveEntry(this.next) : List ->ListRemoveEntry : (entry: List) => List, Symbol(ListRemoveEntry, Decl(listFailure.ts, 12, 5)) ->this.next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) ->this : List, Symbol(List, Decl(listFailure.ts, 24, 5)) ->next : List, Symbol(next, Decl(listFailure.ts, 26, 19)) +>ListRemoveEntry : (entry: List) => List +>this.next : List +>this : List +>next : List } } export class Line {} ->Line : Line, Symbol(Line, Decl(listFailure.ts, 37, 5)) +>Line : Line } diff --git a/tests/baselines/reference/literals1.symbols b/tests/baselines/reference/literals1.symbols new file mode 100644 index 0000000000000..067e49a271790 --- /dev/null +++ b/tests/baselines/reference/literals1.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/literals1.ts === +var a = 42; +>a : Symbol(a, Decl(literals1.ts, 0, 3)) + +var b = 0xFA34; +>b : Symbol(b, Decl(literals1.ts, 1, 3)) + +var c = 0.1715; +>c : Symbol(c, Decl(literals1.ts, 2, 3)) + +var d = 3.14E5; +>d : Symbol(d, Decl(literals1.ts, 3, 3)) + +var e = 8.14e-5; +>e : Symbol(e, Decl(literals1.ts, 4, 3)) + +var f = true; +>f : Symbol(f, Decl(literals1.ts, 6, 3)) + +var g = false; +>g : Symbol(g, Decl(literals1.ts, 7, 3)) + +var h = ""; +>h : Symbol(h, Decl(literals1.ts, 9, 3)) + +var i = "hi"; +>i : Symbol(i, Decl(literals1.ts, 10, 3)) + +var j = ''; +>j : Symbol(j, Decl(literals1.ts, 11, 3)) + +var k = 'q\tq'; +>k : Symbol(k, Decl(literals1.ts, 12, 3)) + +var m = /q/; +>m : Symbol(m, Decl(literals1.ts, 14, 3)) + +var n = /\d+/g; +>n : Symbol(n, Decl(literals1.ts, 15, 3)) + +var o = /[3-5]+/i; +>o : Symbol(o, Decl(literals1.ts, 16, 3)) + diff --git a/tests/baselines/reference/literals1.types b/tests/baselines/reference/literals1.types index 72f1142b11cf8..69e50c22f4a57 100644 --- a/tests/baselines/reference/literals1.types +++ b/tests/baselines/reference/literals1.types @@ -1,57 +1,57 @@ === tests/cases/compiler/literals1.ts === var a = 42; ->a : number, Symbol(a, Decl(literals1.ts, 0, 3)) +>a : number >42 : number var b = 0xFA34; ->b : number, Symbol(b, Decl(literals1.ts, 1, 3)) +>b : number >0xFA34 : number var c = 0.1715; ->c : number, Symbol(c, Decl(literals1.ts, 2, 3)) +>c : number >0.1715 : number var d = 3.14E5; ->d : number, Symbol(d, Decl(literals1.ts, 3, 3)) +>d : number >3.14E5 : number var e = 8.14e-5; ->e : number, Symbol(e, Decl(literals1.ts, 4, 3)) +>e : number >8.14e-5 : number var f = true; ->f : boolean, Symbol(f, Decl(literals1.ts, 6, 3)) +>f : boolean >true : boolean var g = false; ->g : boolean, Symbol(g, Decl(literals1.ts, 7, 3)) +>g : boolean >false : boolean var h = ""; ->h : string, Symbol(h, Decl(literals1.ts, 9, 3)) +>h : string >"" : string var i = "hi"; ->i : string, Symbol(i, Decl(literals1.ts, 10, 3)) +>i : string >"hi" : string var j = ''; ->j : string, Symbol(j, Decl(literals1.ts, 11, 3)) +>j : string >'' : string var k = 'q\tq'; ->k : string, Symbol(k, Decl(literals1.ts, 12, 3)) +>k : string >'q\tq' : string var m = /q/; ->m : RegExp, Symbol(m, Decl(literals1.ts, 14, 3)) +>m : RegExp >/q/ : RegExp var n = /\d+/g; ->n : RegExp, Symbol(n, Decl(literals1.ts, 15, 3)) +>n : RegExp >/\d+/g : RegExp var o = /[3-5]+/i; ->o : RegExp, Symbol(o, Decl(literals1.ts, 16, 3)) +>o : RegExp >/[3-5]+/i : RegExp diff --git a/tests/baselines/reference/localAliasExportAssignment.symbols b/tests/baselines/reference/localAliasExportAssignment.symbols new file mode 100644 index 0000000000000..43c99941384e2 --- /dev/null +++ b/tests/baselines/reference/localAliasExportAssignment.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/localAliasExportAssignment_1.ts === +/// +import connect = require('localAliasExportAssignment_0'); +>connect : Symbol(connect, Decl(localAliasExportAssignment_1.ts, 0, 0)) + +connect(); +>connect : Symbol(connect, Decl(localAliasExportAssignment_1.ts, 0, 0)) + + + +=== tests/cases/compiler/localAliasExportAssignment_0.ts === +var server: { +>server : Symbol(server, Decl(localAliasExportAssignment_0.ts, 0, 3)) + + (): any; +}; + +export = server; +>server : Symbol(server, Decl(localAliasExportAssignment_0.ts, 0, 3)) + diff --git a/tests/baselines/reference/localAliasExportAssignment.types b/tests/baselines/reference/localAliasExportAssignment.types index 711c25be819f4..5ea0d3085c1bf 100644 --- a/tests/baselines/reference/localAliasExportAssignment.types +++ b/tests/baselines/reference/localAliasExportAssignment.types @@ -1,21 +1,21 @@ === tests/cases/compiler/localAliasExportAssignment_1.ts === /// import connect = require('localAliasExportAssignment_0'); ->connect : () => any, Symbol(connect, Decl(localAliasExportAssignment_1.ts, 0, 0)) +>connect : () => any connect(); >connect() : any ->connect : () => any, Symbol(connect, Decl(localAliasExportAssignment_1.ts, 0, 0)) +>connect : () => any === tests/cases/compiler/localAliasExportAssignment_0.ts === var server: { ->server : () => any, Symbol(server, Decl(localAliasExportAssignment_0.ts, 0, 3)) +>server : () => any (): any; }; export = server; ->server : () => any, Symbol(server, Decl(localAliasExportAssignment_0.ts, 0, 3)) +>server : () => any diff --git a/tests/baselines/reference/localImportNameVsGlobalName.symbols b/tests/baselines/reference/localImportNameVsGlobalName.symbols new file mode 100644 index 0000000000000..d1f00d7907865 --- /dev/null +++ b/tests/baselines/reference/localImportNameVsGlobalName.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/localImportNameVsGlobalName.ts === +module Keyboard { +>Keyboard : Symbol(Keyboard, Decl(localImportNameVsGlobalName.ts, 0, 0)) + + export enum Key { UP, DOWN, LEFT, RIGHT } +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 0, 17)) +>UP : Symbol(Key.UP, Decl(localImportNameVsGlobalName.ts, 1, 19)) +>DOWN : Symbol(Key.DOWN, Decl(localImportNameVsGlobalName.ts, 1, 23)) +>LEFT : Symbol(Key.LEFT, Decl(localImportNameVsGlobalName.ts, 1, 29)) +>RIGHT : Symbol(Key.RIGHT, Decl(localImportNameVsGlobalName.ts, 1, 35)) +} + +module App { +>App : Symbol(App, Decl(localImportNameVsGlobalName.ts, 2, 1)) + + import Key = Keyboard.Key; +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) +>Keyboard : Symbol(Keyboard, Decl(localImportNameVsGlobalName.ts, 0, 0)) +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 0, 17)) + + export function foo(key: Key): void {} +>foo : Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) +>key : Symbol(key, Decl(localImportNameVsGlobalName.ts, 7, 22)) +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) + + foo(Key.UP); +>foo : Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) +>Key.UP : Symbol(Key.UP, Decl(localImportNameVsGlobalName.ts, 1, 19)) +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) +>UP : Symbol(Key.UP, Decl(localImportNameVsGlobalName.ts, 1, 19)) + + foo(Key.DOWN); +>foo : Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) +>Key.DOWN : Symbol(Key.DOWN, Decl(localImportNameVsGlobalName.ts, 1, 23)) +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) +>DOWN : Symbol(Key.DOWN, Decl(localImportNameVsGlobalName.ts, 1, 23)) + + foo(Key.LEFT); +>foo : Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) +>Key.LEFT : Symbol(Key.LEFT, Decl(localImportNameVsGlobalName.ts, 1, 29)) +>Key : Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) +>LEFT : Symbol(Key.LEFT, Decl(localImportNameVsGlobalName.ts, 1, 29)) +} diff --git a/tests/baselines/reference/localImportNameVsGlobalName.types b/tests/baselines/reference/localImportNameVsGlobalName.types index 1d39808b0e0c6..7cb45208e81ee 100644 --- a/tests/baselines/reference/localImportNameVsGlobalName.types +++ b/tests/baselines/reference/localImportNameVsGlobalName.types @@ -1,46 +1,46 @@ === tests/cases/compiler/localImportNameVsGlobalName.ts === module Keyboard { ->Keyboard : typeof Keyboard, Symbol(Keyboard, Decl(localImportNameVsGlobalName.ts, 0, 0)) +>Keyboard : typeof Keyboard export enum Key { UP, DOWN, LEFT, RIGHT } ->Key : Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 0, 17)) ->UP : Key, Symbol(Key.UP, Decl(localImportNameVsGlobalName.ts, 1, 19)) ->DOWN : Key, Symbol(Key.DOWN, Decl(localImportNameVsGlobalName.ts, 1, 23)) ->LEFT : Key, Symbol(Key.LEFT, Decl(localImportNameVsGlobalName.ts, 1, 29)) ->RIGHT : Key, Symbol(Key.RIGHT, Decl(localImportNameVsGlobalName.ts, 1, 35)) +>Key : Key +>UP : Key +>DOWN : Key +>LEFT : Key +>RIGHT : Key } module App { ->App : typeof App, Symbol(App, Decl(localImportNameVsGlobalName.ts, 2, 1)) +>App : typeof App import Key = Keyboard.Key; ->Key : typeof Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) ->Keyboard : typeof Keyboard, Symbol(Keyboard, Decl(localImportNameVsGlobalName.ts, 0, 0)) ->Key : Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 0, 17)) +>Key : typeof Key +>Keyboard : typeof Keyboard +>Key : Key export function foo(key: Key): void {} ->foo : (key: Key) => void, Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) ->key : Key, Symbol(key, Decl(localImportNameVsGlobalName.ts, 7, 22)) ->Key : Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) +>foo : (key: Key) => void +>key : Key +>Key : Key foo(Key.UP); >foo(Key.UP) : void ->foo : (key: Key) => void, Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) ->Key.UP : Key, Symbol(Key.UP, Decl(localImportNameVsGlobalName.ts, 1, 19)) ->Key : typeof Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) ->UP : Key, Symbol(Key.UP, Decl(localImportNameVsGlobalName.ts, 1, 19)) +>foo : (key: Key) => void +>Key.UP : Key +>Key : typeof Key +>UP : Key foo(Key.DOWN); >foo(Key.DOWN) : void ->foo : (key: Key) => void, Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) ->Key.DOWN : Key, Symbol(Key.DOWN, Decl(localImportNameVsGlobalName.ts, 1, 23)) ->Key : typeof Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) ->DOWN : Key, Symbol(Key.DOWN, Decl(localImportNameVsGlobalName.ts, 1, 23)) +>foo : (key: Key) => void +>Key.DOWN : Key +>Key : typeof Key +>DOWN : Key foo(Key.LEFT); >foo(Key.LEFT) : void ->foo : (key: Key) => void, Symbol(foo, Decl(localImportNameVsGlobalName.ts, 5, 28)) ->Key.LEFT : Key, Symbol(Key.LEFT, Decl(localImportNameVsGlobalName.ts, 1, 29)) ->Key : typeof Key, Symbol(Key, Decl(localImportNameVsGlobalName.ts, 4, 12)) ->LEFT : Key, Symbol(Key.LEFT, Decl(localImportNameVsGlobalName.ts, 1, 29)) +>foo : (key: Key) => void +>Key.LEFT : Key +>Key : typeof Key +>LEFT : Key } diff --git a/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.symbols b/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.symbols new file mode 100644 index 0000000000000..b97ac7163d549 --- /dev/null +++ b/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/localVariablesReturnedFromCatchBlocks.ts === +function f() { +>f : Symbol(f, Decl(localVariablesReturnedFromCatchBlocks.ts, 0, 0)) + + try { + } catch (e) { +>e : Symbol(e, Decl(localVariablesReturnedFromCatchBlocks.ts, 2, 13)) + + var stack2 = e.stack; +>stack2 : Symbol(stack2, Decl(localVariablesReturnedFromCatchBlocks.ts, 3, 11)) +>e : Symbol(e, Decl(localVariablesReturnedFromCatchBlocks.ts, 2, 13)) + + return stack2; //error TS2095: Could not find symbol 'stack2'. +>stack2 : Symbol(stack2, Decl(localVariablesReturnedFromCatchBlocks.ts, 3, 11)) + } +} diff --git a/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.types b/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.types index f57e11f12485b..81ee0ddc74a3a 100644 --- a/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.types +++ b/tests/baselines/reference/localVariablesReturnedFromCatchBlocks.types @@ -1,18 +1,18 @@ === tests/cases/compiler/localVariablesReturnedFromCatchBlocks.ts === function f() { ->f : () => any, Symbol(f, Decl(localVariablesReturnedFromCatchBlocks.ts, 0, 0)) +>f : () => any try { } catch (e) { ->e : any, Symbol(e, Decl(localVariablesReturnedFromCatchBlocks.ts, 2, 13)) +>e : any var stack2 = e.stack; ->stack2 : any, Symbol(stack2, Decl(localVariablesReturnedFromCatchBlocks.ts, 3, 11)) +>stack2 : any >e.stack : any ->e : any, Symbol(e, Decl(localVariablesReturnedFromCatchBlocks.ts, 2, 13)) +>e : any >stack : any return stack2; //error TS2095: Could not find symbol 'stack2'. ->stack2 : any, Symbol(stack2, Decl(localVariablesReturnedFromCatchBlocks.ts, 3, 11)) +>stack2 : any } } diff --git a/tests/baselines/reference/logicalAndOperatorWithEveryType.symbols b/tests/baselines/reference/logicalAndOperatorWithEveryType.symbols new file mode 100644 index 0000000000000..440bfbf56517d --- /dev/null +++ b/tests/baselines/reference/logicalAndOperatorWithEveryType.symbols @@ -0,0 +1,515 @@ +=== tests/cases/conformance/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithEveryType.ts === +// The && operator permits the operands to be of any type and produces a result of the same +// type as the second operand. + +enum E { a, b, c } +>E : Symbol(E, Decl(logicalAndOperatorWithEveryType.ts, 0, 0)) +>a : Symbol(E.a, Decl(logicalAndOperatorWithEveryType.ts, 3, 8)) +>b : Symbol(E.b, Decl(logicalAndOperatorWithEveryType.ts, 3, 11)) +>c : Symbol(E.c, Decl(logicalAndOperatorWithEveryType.ts, 3, 14)) + +var a1: any; +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var a2: boolean; +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var a3: number +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var a4: string; +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var a5: void; +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var a6: E; +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>E : Symbol(E, Decl(logicalAndOperatorWithEveryType.ts, 0, 0)) + +var a7: {}; +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var a8: string[]; +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var ra1 = a1 && a1; +>ra1 : Symbol(ra1, Decl(logicalAndOperatorWithEveryType.ts, 14, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra2 = a2 && a1; +>ra2 : Symbol(ra2, Decl(logicalAndOperatorWithEveryType.ts, 15, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra3 = a3 && a1; +>ra3 : Symbol(ra3, Decl(logicalAndOperatorWithEveryType.ts, 16, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra4 = a4 && a1; +>ra4 : Symbol(ra4, Decl(logicalAndOperatorWithEveryType.ts, 17, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra5 = a5 && a1; +>ra5 : Symbol(ra5, Decl(logicalAndOperatorWithEveryType.ts, 18, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra6 = a6 && a1; +>ra6 : Symbol(ra6, Decl(logicalAndOperatorWithEveryType.ts, 19, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra7 = a7 && a1; +>ra7 : Symbol(ra7, Decl(logicalAndOperatorWithEveryType.ts, 20, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra8 = a8 && a1; +>ra8 : Symbol(ra8, Decl(logicalAndOperatorWithEveryType.ts, 21, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra9 = null && a1; +>ra9 : Symbol(ra9, Decl(logicalAndOperatorWithEveryType.ts, 22, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ra10 = undefined && a1; +>ra10 : Symbol(ra10, Decl(logicalAndOperatorWithEveryType.ts, 23, 3)) +>undefined : Symbol(undefined) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var rb1 = a1 && a2; +>rb1 : Symbol(rb1, Decl(logicalAndOperatorWithEveryType.ts, 25, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb2 = a2 && a2; +>rb2 : Symbol(rb2, Decl(logicalAndOperatorWithEveryType.ts, 26, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb3 = a3 && a2; +>rb3 : Symbol(rb3, Decl(logicalAndOperatorWithEveryType.ts, 27, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb4 = a4 && a2; +>rb4 : Symbol(rb4, Decl(logicalAndOperatorWithEveryType.ts, 28, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb5 = a5 && a2; +>rb5 : Symbol(rb5, Decl(logicalAndOperatorWithEveryType.ts, 29, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb6 = a6 && a2; +>rb6 : Symbol(rb6, Decl(logicalAndOperatorWithEveryType.ts, 30, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb7 = a7 && a2; +>rb7 : Symbol(rb7, Decl(logicalAndOperatorWithEveryType.ts, 31, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb8 = a8 && a2; +>rb8 : Symbol(rb8, Decl(logicalAndOperatorWithEveryType.ts, 32, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb9 = null && a2; +>rb9 : Symbol(rb9, Decl(logicalAndOperatorWithEveryType.ts, 33, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rb10 = undefined && a2; +>rb10 : Symbol(rb10, Decl(logicalAndOperatorWithEveryType.ts, 34, 3)) +>undefined : Symbol(undefined) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var rc1 = a1 && a3; +>rc1 : Symbol(rc1, Decl(logicalAndOperatorWithEveryType.ts, 36, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc2 = a2 && a3; +>rc2 : Symbol(rc2, Decl(logicalAndOperatorWithEveryType.ts, 37, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc3 = a3 && a3; +>rc3 : Symbol(rc3, Decl(logicalAndOperatorWithEveryType.ts, 38, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc4 = a4 && a3; +>rc4 : Symbol(rc4, Decl(logicalAndOperatorWithEveryType.ts, 39, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc5 = a5 && a3; +>rc5 : Symbol(rc5, Decl(logicalAndOperatorWithEveryType.ts, 40, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc6 = a6 && a3; +>rc6 : Symbol(rc6, Decl(logicalAndOperatorWithEveryType.ts, 41, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc7 = a7 && a3; +>rc7 : Symbol(rc7, Decl(logicalAndOperatorWithEveryType.ts, 42, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc8 = a8 && a3; +>rc8 : Symbol(rc8, Decl(logicalAndOperatorWithEveryType.ts, 43, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc9 = null && a3; +>rc9 : Symbol(rc9, Decl(logicalAndOperatorWithEveryType.ts, 44, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rc10 = undefined && a3; +>rc10 : Symbol(rc10, Decl(logicalAndOperatorWithEveryType.ts, 45, 3)) +>undefined : Symbol(undefined) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var rd1 = a1 && a4; +>rd1 : Symbol(rd1, Decl(logicalAndOperatorWithEveryType.ts, 47, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd2 = a2 && a4; +>rd2 : Symbol(rd2, Decl(logicalAndOperatorWithEveryType.ts, 48, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd3 = a3 && a4; +>rd3 : Symbol(rd3, Decl(logicalAndOperatorWithEveryType.ts, 49, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd4 = a4 && a4; +>rd4 : Symbol(rd4, Decl(logicalAndOperatorWithEveryType.ts, 50, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd5 = a5 && a4; +>rd5 : Symbol(rd5, Decl(logicalAndOperatorWithEveryType.ts, 51, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd6 = a6 && a4; +>rd6 : Symbol(rd6, Decl(logicalAndOperatorWithEveryType.ts, 52, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd7 = a7 && a4; +>rd7 : Symbol(rd7, Decl(logicalAndOperatorWithEveryType.ts, 53, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd8 = a8 && a4; +>rd8 : Symbol(rd8, Decl(logicalAndOperatorWithEveryType.ts, 54, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd9 = null && a4; +>rd9 : Symbol(rd9, Decl(logicalAndOperatorWithEveryType.ts, 55, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var rd10 = undefined && a4; +>rd10 : Symbol(rd10, Decl(logicalAndOperatorWithEveryType.ts, 56, 3)) +>undefined : Symbol(undefined) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var re1 = a1 && a5; +>re1 : Symbol(re1, Decl(logicalAndOperatorWithEveryType.ts, 58, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re2 = a2 && a5; +>re2 : Symbol(re2, Decl(logicalAndOperatorWithEveryType.ts, 59, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re3 = a3 && a5; +>re3 : Symbol(re3, Decl(logicalAndOperatorWithEveryType.ts, 60, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re4 = a4 && a5; +>re4 : Symbol(re4, Decl(logicalAndOperatorWithEveryType.ts, 61, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re5 = a5 && a5; +>re5 : Symbol(re5, Decl(logicalAndOperatorWithEveryType.ts, 62, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re6 = a6 && a5; +>re6 : Symbol(re6, Decl(logicalAndOperatorWithEveryType.ts, 63, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re7 = a7 && a5; +>re7 : Symbol(re7, Decl(logicalAndOperatorWithEveryType.ts, 64, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re8 = a8 && a5; +>re8 : Symbol(re8, Decl(logicalAndOperatorWithEveryType.ts, 65, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re9 = null && a5; +>re9 : Symbol(re9, Decl(logicalAndOperatorWithEveryType.ts, 66, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var re10 = undefined && a5; +>re10 : Symbol(re10, Decl(logicalAndOperatorWithEveryType.ts, 67, 3)) +>undefined : Symbol(undefined) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var rf1 = a1 && a6; +>rf1 : Symbol(rf1, Decl(logicalAndOperatorWithEveryType.ts, 69, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf2 = a2 && a6; +>rf2 : Symbol(rf2, Decl(logicalAndOperatorWithEveryType.ts, 70, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf3 = a3 && a6; +>rf3 : Symbol(rf3, Decl(logicalAndOperatorWithEveryType.ts, 71, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf4 = a4 && a6; +>rf4 : Symbol(rf4, Decl(logicalAndOperatorWithEveryType.ts, 72, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf5 = a5 && a6; +>rf5 : Symbol(rf5, Decl(logicalAndOperatorWithEveryType.ts, 73, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf6 = a6 && a6; +>rf6 : Symbol(rf6, Decl(logicalAndOperatorWithEveryType.ts, 74, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf7 = a7 && a6; +>rf7 : Symbol(rf7, Decl(logicalAndOperatorWithEveryType.ts, 75, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf8 = a8 && a6; +>rf8 : Symbol(rf8, Decl(logicalAndOperatorWithEveryType.ts, 76, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf9 = null && a6; +>rf9 : Symbol(rf9, Decl(logicalAndOperatorWithEveryType.ts, 77, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rf10 = undefined && a6; +>rf10 : Symbol(rf10, Decl(logicalAndOperatorWithEveryType.ts, 78, 3)) +>undefined : Symbol(undefined) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var rg1 = a1 && a7; +>rg1 : Symbol(rg1, Decl(logicalAndOperatorWithEveryType.ts, 80, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg2 = a2 && a7; +>rg2 : Symbol(rg2, Decl(logicalAndOperatorWithEveryType.ts, 81, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg3 = a3 && a7; +>rg3 : Symbol(rg3, Decl(logicalAndOperatorWithEveryType.ts, 82, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg4 = a4 && a7; +>rg4 : Symbol(rg4, Decl(logicalAndOperatorWithEveryType.ts, 83, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg5 = a5 && a7; +>rg5 : Symbol(rg5, Decl(logicalAndOperatorWithEveryType.ts, 84, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg6 = a6 && a7; +>rg6 : Symbol(rg6, Decl(logicalAndOperatorWithEveryType.ts, 85, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg7 = a7 && a7; +>rg7 : Symbol(rg7, Decl(logicalAndOperatorWithEveryType.ts, 86, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg8 = a8 && a7; +>rg8 : Symbol(rg8, Decl(logicalAndOperatorWithEveryType.ts, 87, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg9 = null && a7; +>rg9 : Symbol(rg9, Decl(logicalAndOperatorWithEveryType.ts, 88, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rg10 = undefined && a7; +>rg10 : Symbol(rg10, Decl(logicalAndOperatorWithEveryType.ts, 89, 3)) +>undefined : Symbol(undefined) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var rh1 = a1 && a8; +>rh1 : Symbol(rh1, Decl(logicalAndOperatorWithEveryType.ts, 91, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh2 = a2 && a8; +>rh2 : Symbol(rh2, Decl(logicalAndOperatorWithEveryType.ts, 92, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh3 = a3 && a8; +>rh3 : Symbol(rh3, Decl(logicalAndOperatorWithEveryType.ts, 93, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh4 = a4 && a8; +>rh4 : Symbol(rh4, Decl(logicalAndOperatorWithEveryType.ts, 94, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh5 = a5 && a8; +>rh5 : Symbol(rh5, Decl(logicalAndOperatorWithEveryType.ts, 95, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh6 = a6 && a8; +>rh6 : Symbol(rh6, Decl(logicalAndOperatorWithEveryType.ts, 96, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh7 = a7 && a8; +>rh7 : Symbol(rh7, Decl(logicalAndOperatorWithEveryType.ts, 97, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh8 = a8 && a8; +>rh8 : Symbol(rh8, Decl(logicalAndOperatorWithEveryType.ts, 98, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh9 = null && a8; +>rh9 : Symbol(rh9, Decl(logicalAndOperatorWithEveryType.ts, 99, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var rh10 = undefined && a8; +>rh10 : Symbol(rh10, Decl(logicalAndOperatorWithEveryType.ts, 100, 3)) +>undefined : Symbol(undefined) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var ri1 = a1 && null; +>ri1 : Symbol(ri1, Decl(logicalAndOperatorWithEveryType.ts, 102, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) + +var ri2 = a2 && null; +>ri2 : Symbol(ri2, Decl(logicalAndOperatorWithEveryType.ts, 103, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) + +var ri3 = a3 && null; +>ri3 : Symbol(ri3, Decl(logicalAndOperatorWithEveryType.ts, 104, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) + +var ri4 = a4 && null; +>ri4 : Symbol(ri4, Decl(logicalAndOperatorWithEveryType.ts, 105, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) + +var ri5 = a5 && null; +>ri5 : Symbol(ri5, Decl(logicalAndOperatorWithEveryType.ts, 106, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) + +var ri6 = a6 && null; +>ri6 : Symbol(ri6, Decl(logicalAndOperatorWithEveryType.ts, 107, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) + +var ri7 = a7 && null; +>ri7 : Symbol(ri7, Decl(logicalAndOperatorWithEveryType.ts, 108, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) + +var ri8 = a8 && null; +>ri8 : Symbol(ri8, Decl(logicalAndOperatorWithEveryType.ts, 109, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) + +var ri9 = null && null; +>ri9 : Symbol(ri9, Decl(logicalAndOperatorWithEveryType.ts, 110, 3)) + +var ri10 = undefined && null; +>ri10 : Symbol(ri10, Decl(logicalAndOperatorWithEveryType.ts, 111, 3)) +>undefined : Symbol(undefined) + +var rj1 = a1 && undefined; +>rj1 : Symbol(rj1, Decl(logicalAndOperatorWithEveryType.ts, 113, 3)) +>a1 : Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>undefined : Symbol(undefined) + +var rj2 = a2 && undefined; +>rj2 : Symbol(rj2, Decl(logicalAndOperatorWithEveryType.ts, 114, 3)) +>a2 : Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>undefined : Symbol(undefined) + +var rj3 = a3 && undefined; +>rj3 : Symbol(rj3, Decl(logicalAndOperatorWithEveryType.ts, 115, 3)) +>a3 : Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>undefined : Symbol(undefined) + +var rj4 = a4 && undefined; +>rj4 : Symbol(rj4, Decl(logicalAndOperatorWithEveryType.ts, 116, 3)) +>a4 : Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rj5 = a5 && undefined; +>rj5 : Symbol(rj5, Decl(logicalAndOperatorWithEveryType.ts, 117, 3)) +>a5 : Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rj6 = a6 && undefined; +>rj6 : Symbol(rj6, Decl(logicalAndOperatorWithEveryType.ts, 118, 3)) +>a6 : Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>undefined : Symbol(undefined) + +var rj7 = a7 && undefined; +>rj7 : Symbol(rj7, Decl(logicalAndOperatorWithEveryType.ts, 119, 3)) +>a7 : Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>undefined : Symbol(undefined) + +var rj8 = a8 && undefined; +>rj8 : Symbol(rj8, Decl(logicalAndOperatorWithEveryType.ts, 120, 3)) +>a8 : Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>undefined : Symbol(undefined) + +var rj9 = null && undefined; +>rj9 : Symbol(rj9, Decl(logicalAndOperatorWithEveryType.ts, 121, 3)) +>undefined : Symbol(undefined) + +var rj10 = undefined && undefined; +>rj10 : Symbol(rj10, Decl(logicalAndOperatorWithEveryType.ts, 122, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/logicalAndOperatorWithEveryType.types b/tests/baselines/reference/logicalAndOperatorWithEveryType.types index 635c72e0532f1..bd913e94da58c 100644 --- a/tests/baselines/reference/logicalAndOperatorWithEveryType.types +++ b/tests/baselines/reference/logicalAndOperatorWithEveryType.types @@ -3,633 +3,633 @@ // type as the second operand. enum E { a, b, c } ->E : E, Symbol(E, Decl(logicalAndOperatorWithEveryType.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(logicalAndOperatorWithEveryType.ts, 3, 8)) ->b : E, Symbol(E.b, Decl(logicalAndOperatorWithEveryType.ts, 3, 11)) ->c : E, Symbol(E.c, Decl(logicalAndOperatorWithEveryType.ts, 3, 14)) +>E : E +>a : E +>b : E +>c : E var a1: any; ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a1 : any var a2: boolean; ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a2 : boolean var a3: number ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a3 : number var a4: string; ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a4 : string var a5: void; ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a5 : void var a6: E; ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->E : E, Symbol(E, Decl(logicalAndOperatorWithEveryType.ts, 0, 0)) +>a6 : E +>E : E var a7: {}; ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a7 : {} var a8: string[]; ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a8 : string[] var ra1 = a1 && a1; ->ra1 : any, Symbol(ra1, Decl(logicalAndOperatorWithEveryType.ts, 14, 3)) +>ra1 : any >a1 && a1 : any ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a1 : any +>a1 : any var ra2 = a2 && a1; ->ra2 : any, Symbol(ra2, Decl(logicalAndOperatorWithEveryType.ts, 15, 3)) +>ra2 : any >a2 && a1 : any ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a2 : boolean +>a1 : any var ra3 = a3 && a1; ->ra3 : any, Symbol(ra3, Decl(logicalAndOperatorWithEveryType.ts, 16, 3)) +>ra3 : any >a3 && a1 : any ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a3 : number +>a1 : any var ra4 = a4 && a1; ->ra4 : any, Symbol(ra4, Decl(logicalAndOperatorWithEveryType.ts, 17, 3)) +>ra4 : any >a4 && a1 : any ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a4 : string +>a1 : any var ra5 = a5 && a1; ->ra5 : any, Symbol(ra5, Decl(logicalAndOperatorWithEveryType.ts, 18, 3)) +>ra5 : any >a5 && a1 : any ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a5 : void +>a1 : any var ra6 = a6 && a1; ->ra6 : any, Symbol(ra6, Decl(logicalAndOperatorWithEveryType.ts, 19, 3)) +>ra6 : any >a6 && a1 : any ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a6 : E +>a1 : any var ra7 = a7 && a1; ->ra7 : any, Symbol(ra7, Decl(logicalAndOperatorWithEveryType.ts, 20, 3)) +>ra7 : any >a7 && a1 : any ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a7 : {} +>a1 : any var ra8 = a8 && a1; ->ra8 : any, Symbol(ra8, Decl(logicalAndOperatorWithEveryType.ts, 21, 3)) +>ra8 : any >a8 && a1 : any ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a8 : string[] +>a1 : any var ra9 = null && a1; ->ra9 : any, Symbol(ra9, Decl(logicalAndOperatorWithEveryType.ts, 22, 3)) +>ra9 : any >null && a1 : any >null : null ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a1 : any var ra10 = undefined && a1; ->ra10 : any, Symbol(ra10, Decl(logicalAndOperatorWithEveryType.ts, 23, 3)) +>ra10 : any >undefined && a1 : any ->undefined : undefined, Symbol(undefined) ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>undefined : undefined +>a1 : any var rb1 = a1 && a2; ->rb1 : boolean, Symbol(rb1, Decl(logicalAndOperatorWithEveryType.ts, 25, 3)) +>rb1 : boolean >a1 && a2 : boolean ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a1 : any +>a2 : boolean var rb2 = a2 && a2; ->rb2 : boolean, Symbol(rb2, Decl(logicalAndOperatorWithEveryType.ts, 26, 3)) +>rb2 : boolean >a2 && a2 : boolean ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a2 : boolean +>a2 : boolean var rb3 = a3 && a2; ->rb3 : boolean, Symbol(rb3, Decl(logicalAndOperatorWithEveryType.ts, 27, 3)) +>rb3 : boolean >a3 && a2 : boolean ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a3 : number +>a2 : boolean var rb4 = a4 && a2; ->rb4 : boolean, Symbol(rb4, Decl(logicalAndOperatorWithEveryType.ts, 28, 3)) +>rb4 : boolean >a4 && a2 : boolean ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a4 : string +>a2 : boolean var rb5 = a5 && a2; ->rb5 : boolean, Symbol(rb5, Decl(logicalAndOperatorWithEveryType.ts, 29, 3)) +>rb5 : boolean >a5 && a2 : boolean ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a5 : void +>a2 : boolean var rb6 = a6 && a2; ->rb6 : boolean, Symbol(rb6, Decl(logicalAndOperatorWithEveryType.ts, 30, 3)) +>rb6 : boolean >a6 && a2 : boolean ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a6 : E +>a2 : boolean var rb7 = a7 && a2; ->rb7 : boolean, Symbol(rb7, Decl(logicalAndOperatorWithEveryType.ts, 31, 3)) +>rb7 : boolean >a7 && a2 : boolean ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a7 : {} +>a2 : boolean var rb8 = a8 && a2; ->rb8 : boolean, Symbol(rb8, Decl(logicalAndOperatorWithEveryType.ts, 32, 3)) +>rb8 : boolean >a8 && a2 : boolean ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a8 : string[] +>a2 : boolean var rb9 = null && a2; ->rb9 : boolean, Symbol(rb9, Decl(logicalAndOperatorWithEveryType.ts, 33, 3)) +>rb9 : boolean >null && a2 : boolean >null : null ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a2 : boolean var rb10 = undefined && a2; ->rb10 : boolean, Symbol(rb10, Decl(logicalAndOperatorWithEveryType.ts, 34, 3)) +>rb10 : boolean >undefined && a2 : boolean ->undefined : undefined, Symbol(undefined) ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>undefined : undefined +>a2 : boolean var rc1 = a1 && a3; ->rc1 : number, Symbol(rc1, Decl(logicalAndOperatorWithEveryType.ts, 36, 3)) +>rc1 : number >a1 && a3 : number ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a1 : any +>a3 : number var rc2 = a2 && a3; ->rc2 : number, Symbol(rc2, Decl(logicalAndOperatorWithEveryType.ts, 37, 3)) +>rc2 : number >a2 && a3 : number ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a2 : boolean +>a3 : number var rc3 = a3 && a3; ->rc3 : number, Symbol(rc3, Decl(logicalAndOperatorWithEveryType.ts, 38, 3)) +>rc3 : number >a3 && a3 : number ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a3 : number +>a3 : number var rc4 = a4 && a3; ->rc4 : number, Symbol(rc4, Decl(logicalAndOperatorWithEveryType.ts, 39, 3)) +>rc4 : number >a4 && a3 : number ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a4 : string +>a3 : number var rc5 = a5 && a3; ->rc5 : number, Symbol(rc5, Decl(logicalAndOperatorWithEveryType.ts, 40, 3)) +>rc5 : number >a5 && a3 : number ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a5 : void +>a3 : number var rc6 = a6 && a3; ->rc6 : number, Symbol(rc6, Decl(logicalAndOperatorWithEveryType.ts, 41, 3)) +>rc6 : number >a6 && a3 : number ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a6 : E +>a3 : number var rc7 = a7 && a3; ->rc7 : number, Symbol(rc7, Decl(logicalAndOperatorWithEveryType.ts, 42, 3)) +>rc7 : number >a7 && a3 : number ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a7 : {} +>a3 : number var rc8 = a8 && a3; ->rc8 : number, Symbol(rc8, Decl(logicalAndOperatorWithEveryType.ts, 43, 3)) +>rc8 : number >a8 && a3 : number ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a8 : string[] +>a3 : number var rc9 = null && a3; ->rc9 : number, Symbol(rc9, Decl(logicalAndOperatorWithEveryType.ts, 44, 3)) +>rc9 : number >null && a3 : number >null : null ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a3 : number var rc10 = undefined && a3; ->rc10 : number, Symbol(rc10, Decl(logicalAndOperatorWithEveryType.ts, 45, 3)) +>rc10 : number >undefined && a3 : number ->undefined : undefined, Symbol(undefined) ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>undefined : undefined +>a3 : number var rd1 = a1 && a4; ->rd1 : string, Symbol(rd1, Decl(logicalAndOperatorWithEveryType.ts, 47, 3)) +>rd1 : string >a1 && a4 : string ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a1 : any +>a4 : string var rd2 = a2 && a4; ->rd2 : string, Symbol(rd2, Decl(logicalAndOperatorWithEveryType.ts, 48, 3)) +>rd2 : string >a2 && a4 : string ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a2 : boolean +>a4 : string var rd3 = a3 && a4; ->rd3 : string, Symbol(rd3, Decl(logicalAndOperatorWithEveryType.ts, 49, 3)) +>rd3 : string >a3 && a4 : string ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a3 : number +>a4 : string var rd4 = a4 && a4; ->rd4 : string, Symbol(rd4, Decl(logicalAndOperatorWithEveryType.ts, 50, 3)) +>rd4 : string >a4 && a4 : string ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a4 : string +>a4 : string var rd5 = a5 && a4; ->rd5 : string, Symbol(rd5, Decl(logicalAndOperatorWithEveryType.ts, 51, 3)) +>rd5 : string >a5 && a4 : string ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a5 : void +>a4 : string var rd6 = a6 && a4; ->rd6 : string, Symbol(rd6, Decl(logicalAndOperatorWithEveryType.ts, 52, 3)) +>rd6 : string >a6 && a4 : string ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a6 : E +>a4 : string var rd7 = a7 && a4; ->rd7 : string, Symbol(rd7, Decl(logicalAndOperatorWithEveryType.ts, 53, 3)) +>rd7 : string >a7 && a4 : string ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a7 : {} +>a4 : string var rd8 = a8 && a4; ->rd8 : string, Symbol(rd8, Decl(logicalAndOperatorWithEveryType.ts, 54, 3)) +>rd8 : string >a8 && a4 : string ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a8 : string[] +>a4 : string var rd9 = null && a4; ->rd9 : string, Symbol(rd9, Decl(logicalAndOperatorWithEveryType.ts, 55, 3)) +>rd9 : string >null && a4 : string >null : null ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a4 : string var rd10 = undefined && a4; ->rd10 : string, Symbol(rd10, Decl(logicalAndOperatorWithEveryType.ts, 56, 3)) +>rd10 : string >undefined && a4 : string ->undefined : undefined, Symbol(undefined) ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>undefined : undefined +>a4 : string var re1 = a1 && a5; ->re1 : void, Symbol(re1, Decl(logicalAndOperatorWithEveryType.ts, 58, 3)) +>re1 : void >a1 && a5 : void ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a1 : any +>a5 : void var re2 = a2 && a5; ->re2 : void, Symbol(re2, Decl(logicalAndOperatorWithEveryType.ts, 59, 3)) +>re2 : void >a2 && a5 : void ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a2 : boolean +>a5 : void var re3 = a3 && a5; ->re3 : void, Symbol(re3, Decl(logicalAndOperatorWithEveryType.ts, 60, 3)) +>re3 : void >a3 && a5 : void ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a3 : number +>a5 : void var re4 = a4 && a5; ->re4 : void, Symbol(re4, Decl(logicalAndOperatorWithEveryType.ts, 61, 3)) +>re4 : void >a4 && a5 : void ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a4 : string +>a5 : void var re5 = a5 && a5; ->re5 : void, Symbol(re5, Decl(logicalAndOperatorWithEveryType.ts, 62, 3)) +>re5 : void >a5 && a5 : void ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a5 : void +>a5 : void var re6 = a6 && a5; ->re6 : void, Symbol(re6, Decl(logicalAndOperatorWithEveryType.ts, 63, 3)) +>re6 : void >a6 && a5 : void ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a6 : E +>a5 : void var re7 = a7 && a5; ->re7 : void, Symbol(re7, Decl(logicalAndOperatorWithEveryType.ts, 64, 3)) +>re7 : void >a7 && a5 : void ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a7 : {} +>a5 : void var re8 = a8 && a5; ->re8 : void, Symbol(re8, Decl(logicalAndOperatorWithEveryType.ts, 65, 3)) +>re8 : void >a8 && a5 : void ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a8 : string[] +>a5 : void var re9 = null && a5; ->re9 : void, Symbol(re9, Decl(logicalAndOperatorWithEveryType.ts, 66, 3)) +>re9 : void >null && a5 : void >null : null ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a5 : void var re10 = undefined && a5; ->re10 : void, Symbol(re10, Decl(logicalAndOperatorWithEveryType.ts, 67, 3)) +>re10 : void >undefined && a5 : void ->undefined : undefined, Symbol(undefined) ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>undefined : undefined +>a5 : void var rf1 = a1 && a6; ->rf1 : E, Symbol(rf1, Decl(logicalAndOperatorWithEveryType.ts, 69, 3)) +>rf1 : E >a1 && a6 : E ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a1 : any +>a6 : E var rf2 = a2 && a6; ->rf2 : E, Symbol(rf2, Decl(logicalAndOperatorWithEveryType.ts, 70, 3)) +>rf2 : E >a2 && a6 : E ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a2 : boolean +>a6 : E var rf3 = a3 && a6; ->rf3 : E, Symbol(rf3, Decl(logicalAndOperatorWithEveryType.ts, 71, 3)) +>rf3 : E >a3 && a6 : E ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a3 : number +>a6 : E var rf4 = a4 && a6; ->rf4 : E, Symbol(rf4, Decl(logicalAndOperatorWithEveryType.ts, 72, 3)) +>rf4 : E >a4 && a6 : E ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a4 : string +>a6 : E var rf5 = a5 && a6; ->rf5 : E, Symbol(rf5, Decl(logicalAndOperatorWithEveryType.ts, 73, 3)) +>rf5 : E >a5 && a6 : E ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a5 : void +>a6 : E var rf6 = a6 && a6; ->rf6 : E, Symbol(rf6, Decl(logicalAndOperatorWithEveryType.ts, 74, 3)) +>rf6 : E >a6 && a6 : E ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a6 : E +>a6 : E var rf7 = a7 && a6; ->rf7 : E, Symbol(rf7, Decl(logicalAndOperatorWithEveryType.ts, 75, 3)) +>rf7 : E >a7 && a6 : E ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a7 : {} +>a6 : E var rf8 = a8 && a6; ->rf8 : E, Symbol(rf8, Decl(logicalAndOperatorWithEveryType.ts, 76, 3)) +>rf8 : E >a8 && a6 : E ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a8 : string[] +>a6 : E var rf9 = null && a6; ->rf9 : E, Symbol(rf9, Decl(logicalAndOperatorWithEveryType.ts, 77, 3)) +>rf9 : E >null && a6 : E >null : null ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a6 : E var rf10 = undefined && a6; ->rf10 : E, Symbol(rf10, Decl(logicalAndOperatorWithEveryType.ts, 78, 3)) +>rf10 : E >undefined && a6 : E ->undefined : undefined, Symbol(undefined) ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>undefined : undefined +>a6 : E var rg1 = a1 && a7; ->rg1 : {}, Symbol(rg1, Decl(logicalAndOperatorWithEveryType.ts, 80, 3)) +>rg1 : {} >a1 && a7 : {} ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a1 : any +>a7 : {} var rg2 = a2 && a7; ->rg2 : {}, Symbol(rg2, Decl(logicalAndOperatorWithEveryType.ts, 81, 3)) +>rg2 : {} >a2 && a7 : {} ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a2 : boolean +>a7 : {} var rg3 = a3 && a7; ->rg3 : {}, Symbol(rg3, Decl(logicalAndOperatorWithEveryType.ts, 82, 3)) +>rg3 : {} >a3 && a7 : {} ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a3 : number +>a7 : {} var rg4 = a4 && a7; ->rg4 : {}, Symbol(rg4, Decl(logicalAndOperatorWithEveryType.ts, 83, 3)) +>rg4 : {} >a4 && a7 : {} ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a4 : string +>a7 : {} var rg5 = a5 && a7; ->rg5 : {}, Symbol(rg5, Decl(logicalAndOperatorWithEveryType.ts, 84, 3)) +>rg5 : {} >a5 && a7 : {} ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a5 : void +>a7 : {} var rg6 = a6 && a7; ->rg6 : {}, Symbol(rg6, Decl(logicalAndOperatorWithEveryType.ts, 85, 3)) +>rg6 : {} >a6 && a7 : {} ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a6 : E +>a7 : {} var rg7 = a7 && a7; ->rg7 : {}, Symbol(rg7, Decl(logicalAndOperatorWithEveryType.ts, 86, 3)) +>rg7 : {} >a7 && a7 : {} ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a7 : {} +>a7 : {} var rg8 = a8 && a7; ->rg8 : {}, Symbol(rg8, Decl(logicalAndOperatorWithEveryType.ts, 87, 3)) +>rg8 : {} >a8 && a7 : {} ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a8 : string[] +>a7 : {} var rg9 = null && a7; ->rg9 : {}, Symbol(rg9, Decl(logicalAndOperatorWithEveryType.ts, 88, 3)) +>rg9 : {} >null && a7 : {} >null : null ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a7 : {} var rg10 = undefined && a7; ->rg10 : {}, Symbol(rg10, Decl(logicalAndOperatorWithEveryType.ts, 89, 3)) +>rg10 : {} >undefined && a7 : {} ->undefined : undefined, Symbol(undefined) ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>undefined : undefined +>a7 : {} var rh1 = a1 && a8; ->rh1 : string[], Symbol(rh1, Decl(logicalAndOperatorWithEveryType.ts, 91, 3)) +>rh1 : string[] >a1 && a8 : string[] ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a1 : any +>a8 : string[] var rh2 = a2 && a8; ->rh2 : string[], Symbol(rh2, Decl(logicalAndOperatorWithEveryType.ts, 92, 3)) +>rh2 : string[] >a2 && a8 : string[] ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a2 : boolean +>a8 : string[] var rh3 = a3 && a8; ->rh3 : string[], Symbol(rh3, Decl(logicalAndOperatorWithEveryType.ts, 93, 3)) +>rh3 : string[] >a3 && a8 : string[] ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a3 : number +>a8 : string[] var rh4 = a4 && a8; ->rh4 : string[], Symbol(rh4, Decl(logicalAndOperatorWithEveryType.ts, 94, 3)) +>rh4 : string[] >a4 && a8 : string[] ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a4 : string +>a8 : string[] var rh5 = a5 && a8; ->rh5 : string[], Symbol(rh5, Decl(logicalAndOperatorWithEveryType.ts, 95, 3)) +>rh5 : string[] >a5 && a8 : string[] ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a5 : void +>a8 : string[] var rh6 = a6 && a8; ->rh6 : string[], Symbol(rh6, Decl(logicalAndOperatorWithEveryType.ts, 96, 3)) +>rh6 : string[] >a6 && a8 : string[] ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a6 : E +>a8 : string[] var rh7 = a7 && a8; ->rh7 : string[], Symbol(rh7, Decl(logicalAndOperatorWithEveryType.ts, 97, 3)) +>rh7 : string[] >a7 && a8 : string[] ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a7 : {} +>a8 : string[] var rh8 = a8 && a8; ->rh8 : string[], Symbol(rh8, Decl(logicalAndOperatorWithEveryType.ts, 98, 3)) +>rh8 : string[] >a8 && a8 : string[] ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a8 : string[] +>a8 : string[] var rh9 = null && a8; ->rh9 : string[], Symbol(rh9, Decl(logicalAndOperatorWithEveryType.ts, 99, 3)) +>rh9 : string[] >null && a8 : string[] >null : null ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a8 : string[] var rh10 = undefined && a8; ->rh10 : string[], Symbol(rh10, Decl(logicalAndOperatorWithEveryType.ts, 100, 3)) +>rh10 : string[] >undefined && a8 : string[] ->undefined : undefined, Symbol(undefined) ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>undefined : undefined +>a8 : string[] var ri1 = a1 && null; ->ri1 : any, Symbol(ri1, Decl(logicalAndOperatorWithEveryType.ts, 102, 3)) +>ri1 : any >a1 && null : null ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) +>a1 : any >null : null var ri2 = a2 && null; ->ri2 : any, Symbol(ri2, Decl(logicalAndOperatorWithEveryType.ts, 103, 3)) +>ri2 : any >a2 && null : null ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) +>a2 : boolean >null : null var ri3 = a3 && null; ->ri3 : any, Symbol(ri3, Decl(logicalAndOperatorWithEveryType.ts, 104, 3)) +>ri3 : any >a3 && null : null ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) +>a3 : number >null : null var ri4 = a4 && null; ->ri4 : any, Symbol(ri4, Decl(logicalAndOperatorWithEveryType.ts, 105, 3)) +>ri4 : any >a4 && null : null ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) +>a4 : string >null : null var ri5 = a5 && null; ->ri5 : any, Symbol(ri5, Decl(logicalAndOperatorWithEveryType.ts, 106, 3)) +>ri5 : any >a5 && null : null ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) +>a5 : void >null : null var ri6 = a6 && null; ->ri6 : any, Symbol(ri6, Decl(logicalAndOperatorWithEveryType.ts, 107, 3)) +>ri6 : any >a6 && null : null ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) +>a6 : E >null : null var ri7 = a7 && null; ->ri7 : any, Symbol(ri7, Decl(logicalAndOperatorWithEveryType.ts, 108, 3)) +>ri7 : any >a7 && null : null ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) +>a7 : {} >null : null var ri8 = a8 && null; ->ri8 : any, Symbol(ri8, Decl(logicalAndOperatorWithEveryType.ts, 109, 3)) +>ri8 : any >a8 && null : null ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) +>a8 : string[] >null : null var ri9 = null && null; ->ri9 : any, Symbol(ri9, Decl(logicalAndOperatorWithEveryType.ts, 110, 3)) +>ri9 : any >null && null : null >null : null >null : null var ri10 = undefined && null; ->ri10 : any, Symbol(ri10, Decl(logicalAndOperatorWithEveryType.ts, 111, 3)) +>ri10 : any >undefined && null : null ->undefined : undefined, Symbol(undefined) +>undefined : undefined >null : null var rj1 = a1 && undefined; ->rj1 : any, Symbol(rj1, Decl(logicalAndOperatorWithEveryType.ts, 113, 3)) +>rj1 : any >a1 && undefined : undefined ->a1 : any, Symbol(a1, Decl(logicalAndOperatorWithEveryType.ts, 5, 3)) ->undefined : undefined, Symbol(undefined) +>a1 : any +>undefined : undefined var rj2 = a2 && undefined; ->rj2 : any, Symbol(rj2, Decl(logicalAndOperatorWithEveryType.ts, 114, 3)) +>rj2 : any >a2 && undefined : undefined ->a2 : boolean, Symbol(a2, Decl(logicalAndOperatorWithEveryType.ts, 6, 3)) ->undefined : undefined, Symbol(undefined) +>a2 : boolean +>undefined : undefined var rj3 = a3 && undefined; ->rj3 : any, Symbol(rj3, Decl(logicalAndOperatorWithEveryType.ts, 115, 3)) +>rj3 : any >a3 && undefined : undefined ->a3 : number, Symbol(a3, Decl(logicalAndOperatorWithEveryType.ts, 7, 3)) ->undefined : undefined, Symbol(undefined) +>a3 : number +>undefined : undefined var rj4 = a4 && undefined; ->rj4 : any, Symbol(rj4, Decl(logicalAndOperatorWithEveryType.ts, 116, 3)) +>rj4 : any >a4 && undefined : undefined ->a4 : string, Symbol(a4, Decl(logicalAndOperatorWithEveryType.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a4 : string +>undefined : undefined var rj5 = a5 && undefined; ->rj5 : any, Symbol(rj5, Decl(logicalAndOperatorWithEveryType.ts, 117, 3)) +>rj5 : any >a5 && undefined : undefined ->a5 : void, Symbol(a5, Decl(logicalAndOperatorWithEveryType.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>a5 : void +>undefined : undefined var rj6 = a6 && undefined; ->rj6 : any, Symbol(rj6, Decl(logicalAndOperatorWithEveryType.ts, 118, 3)) +>rj6 : any >a6 && undefined : undefined ->a6 : E, Symbol(a6, Decl(logicalAndOperatorWithEveryType.ts, 10, 3)) ->undefined : undefined, Symbol(undefined) +>a6 : E +>undefined : undefined var rj7 = a7 && undefined; ->rj7 : any, Symbol(rj7, Decl(logicalAndOperatorWithEveryType.ts, 119, 3)) +>rj7 : any >a7 && undefined : undefined ->a7 : {}, Symbol(a7, Decl(logicalAndOperatorWithEveryType.ts, 11, 3)) ->undefined : undefined, Symbol(undefined) +>a7 : {} +>undefined : undefined var rj8 = a8 && undefined; ->rj8 : any, Symbol(rj8, Decl(logicalAndOperatorWithEveryType.ts, 120, 3)) +>rj8 : any >a8 && undefined : undefined ->a8 : string[], Symbol(a8, Decl(logicalAndOperatorWithEveryType.ts, 12, 3)) ->undefined : undefined, Symbol(undefined) +>a8 : string[] +>undefined : undefined var rj9 = null && undefined; ->rj9 : any, Symbol(rj9, Decl(logicalAndOperatorWithEveryType.ts, 121, 3)) +>rj9 : any >null && undefined : undefined >null : null ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rj10 = undefined && undefined; ->rj10 : any, Symbol(rj10, Decl(logicalAndOperatorWithEveryType.ts, 122, 3)) +>rj10 : any >undefined && undefined : undefined ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined diff --git a/tests/baselines/reference/logicalAndOperatorWithTypeParameters.symbols b/tests/baselines/reference/logicalAndOperatorWithTypeParameters.symbols new file mode 100644 index 0000000000000..c64544ffe152f --- /dev/null +++ b/tests/baselines/reference/logicalAndOperatorWithTypeParameters.symbols @@ -0,0 +1,69 @@ +=== tests/cases/conformance/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.ts === +// The && operator permits the operands to be of any type and produces a result of the same +// type as the second operand. + +function foo(t: T, u: U, v: V) { +>foo : Symbol(foo, Decl(logicalAndOperatorWithTypeParameters.ts, 0, 0)) +>T : Symbol(T, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 13)) +>U : Symbol(U, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 15)) +>V : Symbol(V, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 18)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>T : Symbol(T, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 13)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>U : Symbol(U, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 15)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>V : Symbol(V, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 18)) + + var r1 = t && t; +>r1 : Symbol(r1, Decl(logicalAndOperatorWithTypeParameters.ts, 4, 7)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) + + var r2 = u && t; +>r2 : Symbol(r2, Decl(logicalAndOperatorWithTypeParameters.ts, 5, 7)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) + + var r3 = v && t; +>r3 : Symbol(r3, Decl(logicalAndOperatorWithTypeParameters.ts, 6, 7)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) + + var r4 = t && u; +>r4 : Symbol(r4, Decl(logicalAndOperatorWithTypeParameters.ts, 8, 7)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) + + var r5 = u && u; +>r5 : Symbol(r5, Decl(logicalAndOperatorWithTypeParameters.ts, 9, 7)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) + + var r6 = v && u; +>r6 : Symbol(r6, Decl(logicalAndOperatorWithTypeParameters.ts, 10, 7)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) + + var r7 = t && v; +>r7 : Symbol(r7, Decl(logicalAndOperatorWithTypeParameters.ts, 12, 7)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) + + var r8 = u && v; +>r8 : Symbol(r8, Decl(logicalAndOperatorWithTypeParameters.ts, 13, 7)) +>u : Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) + + var r9 = v && v; +>r9 : Symbol(r9, Decl(logicalAndOperatorWithTypeParameters.ts, 14, 7)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>v : Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) + + var a: number; +>a : Symbol(a, Decl(logicalAndOperatorWithTypeParameters.ts, 16, 7)) + + var r10 = t && a; +>r10 : Symbol(r10, Decl(logicalAndOperatorWithTypeParameters.ts, 17, 7)) +>t : Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>a : Symbol(a, Decl(logicalAndOperatorWithTypeParameters.ts, 16, 7)) +} diff --git a/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types b/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types index ea547128c308b..f77b231c6bc02 100644 --- a/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types +++ b/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types @@ -3,77 +3,77 @@ // type as the second operand. function foo(t: T, u: U, v: V) { ->foo : (t: T, u: U, v: V) => void, Symbol(foo, Decl(logicalAndOperatorWithTypeParameters.ts, 0, 0)) ->T : T, Symbol(T, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 13)) ->U : U, Symbol(U, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 15)) ->V : V, Symbol(V, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 18)) ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) ->T : T, Symbol(T, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 13)) ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) ->U : U, Symbol(U, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 15)) ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) ->V : V, Symbol(V, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 18)) +>foo : (t: T, u: U, v: V) => void +>T : T +>U : U +>V : V +>t : T +>T : T +>u : U +>U : U +>v : V +>V : V var r1 = t && t; ->r1 : T, Symbol(r1, Decl(logicalAndOperatorWithTypeParameters.ts, 4, 7)) +>r1 : T >t && t : T ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>t : T +>t : T var r2 = u && t; ->r2 : T, Symbol(r2, Decl(logicalAndOperatorWithTypeParameters.ts, 5, 7)) +>r2 : T >u && t : T ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>u : U +>t : T var r3 = v && t; ->r3 : T, Symbol(r3, Decl(logicalAndOperatorWithTypeParameters.ts, 6, 7)) +>r3 : T >v && t : T ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) +>v : V +>t : T var r4 = t && u; ->r4 : U, Symbol(r4, Decl(logicalAndOperatorWithTypeParameters.ts, 8, 7)) +>r4 : U >t && u : U ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>t : T +>u : U var r5 = u && u; ->r5 : U, Symbol(r5, Decl(logicalAndOperatorWithTypeParameters.ts, 9, 7)) +>r5 : U >u && u : U ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>u : U +>u : U var r6 = v && u; ->r6 : U, Symbol(r6, Decl(logicalAndOperatorWithTypeParameters.ts, 10, 7)) +>r6 : U >v && u : U ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) +>v : V +>u : U var r7 = t && v; ->r7 : V, Symbol(r7, Decl(logicalAndOperatorWithTypeParameters.ts, 12, 7)) +>r7 : V >t && v : V ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>t : T +>v : V var r8 = u && v; ->r8 : V, Symbol(r8, Decl(logicalAndOperatorWithTypeParameters.ts, 13, 7)) +>r8 : V >u && v : V ->u : U, Symbol(u, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 41)) ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>u : U +>v : V var r9 = v && v; ->r9 : V, Symbol(r9, Decl(logicalAndOperatorWithTypeParameters.ts, 14, 7)) +>r9 : V >v && v : V ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) ->v : V, Symbol(v, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 47)) +>v : V +>v : V var a: number; ->a : number, Symbol(a, Decl(logicalAndOperatorWithTypeParameters.ts, 16, 7)) +>a : number var r10 = t && a; ->r10 : number, Symbol(r10, Decl(logicalAndOperatorWithTypeParameters.ts, 17, 7)) +>r10 : number >t && a : number ->t : T, Symbol(t, Decl(logicalAndOperatorWithTypeParameters.ts, 3, 36)) ->a : number, Symbol(a, Decl(logicalAndOperatorWithTypeParameters.ts, 16, 7)) +>t : T +>a : number } diff --git a/tests/baselines/reference/logicalNotOperatorWithBooleanType.symbols b/tests/baselines/reference/logicalNotOperatorWithBooleanType.symbols new file mode 100644 index 0000000000000..b42b9d7922ecd --- /dev/null +++ b/tests/baselines/reference/logicalNotOperatorWithBooleanType.symbols @@ -0,0 +1,89 @@ +=== tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithBooleanType.ts === +// ! operator on boolean type +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) + +function foo(): boolean { return true; } +>foo : Symbol(foo, Decl(logicalNotOperatorWithBooleanType.ts, 1, 21)) + +class A { +>A : Symbol(A, Decl(logicalNotOperatorWithBooleanType.ts, 3, 40)) + + public a: boolean; +>a : Symbol(a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) + + static foo() { return false; } +>foo : Symbol(A.foo, Decl(logicalNotOperatorWithBooleanType.ts, 6, 22)) +} +module M { +>M : Symbol(M, Decl(logicalNotOperatorWithBooleanType.ts, 8, 1)) + + export var n: boolean; +>n : Symbol(n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(logicalNotOperatorWithBooleanType.ts, 13, 3)) +>A : Symbol(A, Decl(logicalNotOperatorWithBooleanType.ts, 3, 40)) + +// boolean type var +var ResultIsBoolean1 = !BOOLEAN; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithBooleanType.ts, 16, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) + +// boolean type literal +var ResultIsBoolean2 = !true; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithBooleanType.ts, 19, 3)) + +var ResultIsBoolean3 = !{ x: true, y: false }; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithBooleanType.ts, 20, 3)) +>x : Symbol(x, Decl(logicalNotOperatorWithBooleanType.ts, 20, 25)) +>y : Symbol(y, Decl(logicalNotOperatorWithBooleanType.ts, 20, 34)) + +// boolean type expressions +var ResultIsBoolean4 = !objA.a; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithBooleanType.ts, 23, 3)) +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) + +var ResultIsBoolean5 = !M.n; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithBooleanType.ts, 24, 3)) +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) + +var ResultIsBoolean6 = !foo(); +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(logicalNotOperatorWithBooleanType.ts, 25, 3)) +>foo : Symbol(foo, Decl(logicalNotOperatorWithBooleanType.ts, 1, 21)) + +var ResultIsBoolean7 = !A.foo(); +>ResultIsBoolean7 : Symbol(ResultIsBoolean7, Decl(logicalNotOperatorWithBooleanType.ts, 26, 3)) +>A.foo : Symbol(A.foo, Decl(logicalNotOperatorWithBooleanType.ts, 6, 22)) +>A : Symbol(A, Decl(logicalNotOperatorWithBooleanType.ts, 3, 40)) +>foo : Symbol(A.foo, Decl(logicalNotOperatorWithBooleanType.ts, 6, 22)) + +// multiple ! operators +var ResultIsBoolean = !!BOOLEAN; +>ResultIsBoolean : Symbol(ResultIsBoolean, Decl(logicalNotOperatorWithBooleanType.ts, 29, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) + +// miss assignment operators +!true; +!BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) + +!foo(); +>foo : Symbol(foo, Decl(logicalNotOperatorWithBooleanType.ts, 1, 21)) + +!true, false; +!objA.a; +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) + +!M.n; +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) + diff --git a/tests/baselines/reference/logicalNotOperatorWithBooleanType.types b/tests/baselines/reference/logicalNotOperatorWithBooleanType.types index 4ed8c1d88ac1f..b8aa6feac4cf4 100644 --- a/tests/baselines/reference/logicalNotOperatorWithBooleanType.types +++ b/tests/baselines/reference/logicalNotOperatorWithBooleanType.types @@ -1,90 +1,90 @@ === tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithBooleanType.ts === // ! operator on boolean type var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean function foo(): boolean { return true; } ->foo : () => boolean, Symbol(foo, Decl(logicalNotOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean >true : boolean class A { ->A : A, Symbol(A, Decl(logicalNotOperatorWithBooleanType.ts, 3, 40)) +>A : A public a: boolean; ->a : boolean, Symbol(a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) +>a : boolean static foo() { return false; } ->foo : () => boolean, Symbol(A.foo, Decl(logicalNotOperatorWithBooleanType.ts, 6, 22)) +>foo : () => boolean >false : boolean } module M { ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithBooleanType.ts, 8, 1)) +>M : typeof M export var n: boolean; ->n : boolean, Symbol(n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) +>n : boolean } var objA = new A(); ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithBooleanType.ts, 13, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(logicalNotOperatorWithBooleanType.ts, 3, 40)) +>A : typeof A // boolean type var var ResultIsBoolean1 = !BOOLEAN; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithBooleanType.ts, 16, 3)) +>ResultIsBoolean1 : boolean >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // boolean type literal var ResultIsBoolean2 = !true; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithBooleanType.ts, 19, 3)) +>ResultIsBoolean2 : boolean >!true : boolean >true : boolean var ResultIsBoolean3 = !{ x: true, y: false }; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithBooleanType.ts, 20, 3)) +>ResultIsBoolean3 : boolean >!{ x: true, y: false } : boolean >{ x: true, y: false } : { x: boolean; y: boolean; } ->x : boolean, Symbol(x, Decl(logicalNotOperatorWithBooleanType.ts, 20, 25)) +>x : boolean >true : boolean ->y : boolean, Symbol(y, Decl(logicalNotOperatorWithBooleanType.ts, 20, 34)) +>y : boolean >false : boolean // boolean type expressions var ResultIsBoolean4 = !objA.a; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithBooleanType.ts, 23, 3)) +>ResultIsBoolean4 : boolean >!objA.a : boolean ->objA.a : boolean, Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean var ResultIsBoolean5 = !M.n; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithBooleanType.ts, 24, 3)) +>ResultIsBoolean5 : boolean >!M.n : boolean ->M.n : boolean, Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean var ResultIsBoolean6 = !foo(); ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(logicalNotOperatorWithBooleanType.ts, 25, 3)) +>ResultIsBoolean6 : boolean >!foo() : boolean >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(logicalNotOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean var ResultIsBoolean7 = !A.foo(); ->ResultIsBoolean7 : boolean, Symbol(ResultIsBoolean7, Decl(logicalNotOperatorWithBooleanType.ts, 26, 3)) +>ResultIsBoolean7 : boolean >!A.foo() : boolean >A.foo() : boolean ->A.foo : () => boolean, Symbol(A.foo, Decl(logicalNotOperatorWithBooleanType.ts, 6, 22)) ->A : typeof A, Symbol(A, Decl(logicalNotOperatorWithBooleanType.ts, 3, 40)) ->foo : () => boolean, Symbol(A.foo, Decl(logicalNotOperatorWithBooleanType.ts, 6, 22)) +>A.foo : () => boolean +>A : typeof A +>foo : () => boolean // multiple ! operators var ResultIsBoolean = !!BOOLEAN; ->ResultIsBoolean : boolean, Symbol(ResultIsBoolean, Decl(logicalNotOperatorWithBooleanType.ts, 29, 3)) +>ResultIsBoolean : boolean >!!BOOLEAN : boolean >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // miss assignment operators !true; @@ -93,12 +93,12 @@ var ResultIsBoolean = !!BOOLEAN; !BOOLEAN; >!BOOLEAN : boolean ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(logicalNotOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean !foo(); >!foo() : boolean >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(logicalNotOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean !true, false; >!true, false : boolean @@ -108,13 +108,13 @@ var ResultIsBoolean = !!BOOLEAN; !objA.a; >!objA.a : boolean ->objA.a : boolean, Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(logicalNotOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean !M.n; >!M.n : boolean ->M.n : boolean, Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(logicalNotOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean diff --git a/tests/baselines/reference/logicalNotOperatorWithEnumType.symbols b/tests/baselines/reference/logicalNotOperatorWithEnumType.symbols new file mode 100644 index 0000000000000..5f4dee7a3ea29 --- /dev/null +++ b/tests/baselines/reference/logicalNotOperatorWithEnumType.symbols @@ -0,0 +1,60 @@ +=== tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithEnumType.ts === +// ! operator on enum type + +enum ENUM { A, B, C }; +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>A : Symbol(ENUM.A, Decl(logicalNotOperatorWithEnumType.ts, 2, 11)) +>B : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>C : Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) + +enum ENUM1 { }; +>ENUM1 : Symbol(ENUM1, Decl(logicalNotOperatorWithEnumType.ts, 2, 22)) + +// enum type var +var ResultIsBoolean1 = !ENUM; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithEnumType.ts, 6, 3)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) + +// enum type expressions +var ResultIsBoolean2 = !ENUM["B"]; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithEnumType.ts, 9, 3)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>"B" : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) + +var ResultIsBoolean3 = !(ENUM.B + ENUM["C"]); +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithEnumType.ts, 10, 3)) +>ENUM.B : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>B : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>"C" : Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) + +// multiple ! operators +var ResultIsBoolean4 = !!ENUM; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithEnumType.ts, 13, 3)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) + +var ResultIsBoolean5 = !!!(ENUM["B"] + ENUM.C); +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithEnumType.ts, 14, 3)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>"B" : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM.C : Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>C : Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) + +// miss assignment operators +!ENUM; +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) + +!ENUM1; +>ENUM1 : Symbol(ENUM1, Decl(logicalNotOperatorWithEnumType.ts, 2, 22)) + +!ENUM.B; +>ENUM.B : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>B : Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) + +!ENUM, ENUM1; +>ENUM : Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : Symbol(ENUM1, Decl(logicalNotOperatorWithEnumType.ts, 2, 22)) + diff --git a/tests/baselines/reference/logicalNotOperatorWithEnumType.types b/tests/baselines/reference/logicalNotOperatorWithEnumType.types index 01c073be8c5a0..5d57916ceaafc 100644 --- a/tests/baselines/reference/logicalNotOperatorWithEnumType.types +++ b/tests/baselines/reference/logicalNotOperatorWithEnumType.types @@ -2,79 +2,79 @@ // ! operator on enum type enum ENUM { A, B, C }; ->ENUM : ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->A : ENUM, Symbol(ENUM.A, Decl(logicalNotOperatorWithEnumType.ts, 2, 11)) ->B : ENUM, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) ->C : ENUM, Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) +>ENUM : ENUM +>A : ENUM +>B : ENUM +>C : ENUM enum ENUM1 { }; ->ENUM1 : ENUM1, Symbol(ENUM1, Decl(logicalNotOperatorWithEnumType.ts, 2, 22)) +>ENUM1 : ENUM1 // enum type var var ResultIsBoolean1 = !ENUM; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithEnumType.ts, 6, 3)) +>ResultIsBoolean1 : boolean >!ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM // enum type expressions var ResultIsBoolean2 = !ENUM["B"]; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithEnumType.ts, 9, 3)) +>ResultIsBoolean2 : boolean >!ENUM["B"] : boolean >ENUM["B"] : ENUM ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->"B" : string, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM : typeof ENUM +>"B" : string var ResultIsBoolean3 = !(ENUM.B + ENUM["C"]); ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithEnumType.ts, 10, 3)) +>ResultIsBoolean3 : boolean >!(ENUM.B + ENUM["C"]) : boolean >(ENUM.B + ENUM["C"]) : number >ENUM.B + ENUM["C"] : number ->ENUM.B : ENUM, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->B : ENUM, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM.B : ENUM +>ENUM : typeof ENUM +>B : ENUM >ENUM["C"] : ENUM ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->"C" : string, Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) +>ENUM : typeof ENUM +>"C" : string // multiple ! operators var ResultIsBoolean4 = !!ENUM; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithEnumType.ts, 13, 3)) +>ResultIsBoolean4 : boolean >!!ENUM : boolean >!ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM var ResultIsBoolean5 = !!!(ENUM["B"] + ENUM.C); ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithEnumType.ts, 14, 3)) +>ResultIsBoolean5 : boolean >!!!(ENUM["B"] + ENUM.C) : boolean >!!(ENUM["B"] + ENUM.C) : boolean >!(ENUM["B"] + ENUM.C) : boolean >(ENUM["B"] + ENUM.C) : number >ENUM["B"] + ENUM.C : number >ENUM["B"] : ENUM ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->"B" : string, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) ->ENUM.C : ENUM, Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->C : ENUM, Symbol(ENUM.C, Decl(logicalNotOperatorWithEnumType.ts, 2, 17)) +>ENUM : typeof ENUM +>"B" : string +>ENUM.C : ENUM +>ENUM : typeof ENUM +>C : ENUM // miss assignment operators !ENUM; >!ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM !ENUM1; >!ENUM1 : boolean ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(logicalNotOperatorWithEnumType.ts, 2, 22)) +>ENUM1 : typeof ENUM1 !ENUM.B; >!ENUM.B : boolean ->ENUM.B : ENUM, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->B : ENUM, Symbol(ENUM.B, Decl(logicalNotOperatorWithEnumType.ts, 2, 14)) +>ENUM.B : ENUM +>ENUM : typeof ENUM +>B : ENUM !ENUM, ENUM1; >!ENUM, ENUM1 : typeof ENUM1 >!ENUM : boolean ->ENUM : typeof ENUM, Symbol(ENUM, Decl(logicalNotOperatorWithEnumType.ts, 0, 0)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(logicalNotOperatorWithEnumType.ts, 2, 22)) +>ENUM : typeof ENUM +>ENUM1 : typeof ENUM1 diff --git a/tests/baselines/reference/logicalNotOperatorWithNumberType.symbols b/tests/baselines/reference/logicalNotOperatorWithNumberType.symbols new file mode 100644 index 0000000000000..4f277a8db54c5 --- /dev/null +++ b/tests/baselines/reference/logicalNotOperatorWithNumberType.symbols @@ -0,0 +1,127 @@ +=== tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithNumberType.ts === +// ! operator on number type +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) + +var NUMBER1: number[] = [1, 2]; +>NUMBER1 : Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) + +function foo(): number { return 1; } +>foo : Symbol(foo, Decl(logicalNotOperatorWithNumberType.ts, 2, 31)) + +class A { +>A : Symbol(A, Decl(logicalNotOperatorWithNumberType.ts, 4, 36)) + + public a: number; +>a : Symbol(a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) + + static foo() { return 1; } +>foo : Symbol(A.foo, Decl(logicalNotOperatorWithNumberType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) + + export var n: number; +>n : Symbol(n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) +>A : Symbol(A, Decl(logicalNotOperatorWithNumberType.ts, 4, 36)) + +// number type var +var ResultIsBoolean1 = !NUMBER; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithNumberType.ts, 17, 3)) +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) + +var ResultIsBoolean2 = !NUMBER1; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithNumberType.ts, 18, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) + +// number type literal +var ResultIsBoolean3 = !1; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithNumberType.ts, 21, 3)) + +var ResultIsBoolean4 = !{ x: 1, y: 2}; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithNumberType.ts, 22, 3)) +>x : Symbol(x, Decl(logicalNotOperatorWithNumberType.ts, 22, 25)) +>y : Symbol(y, Decl(logicalNotOperatorWithNumberType.ts, 22, 31)) + +var ResultIsBoolean5 = !{ x: 1, y: (n: number) => { return n; } }; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithNumberType.ts, 23, 3)) +>x : Symbol(x, Decl(logicalNotOperatorWithNumberType.ts, 23, 25)) +>y : Symbol(y, Decl(logicalNotOperatorWithNumberType.ts, 23, 31)) +>n : Symbol(n, Decl(logicalNotOperatorWithNumberType.ts, 23, 36)) +>n : Symbol(n, Decl(logicalNotOperatorWithNumberType.ts, 23, 36)) + +// number type expressions +var ResultIsBoolean6 = !objA.a; +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(logicalNotOperatorWithNumberType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) + +var ResultIsBoolean7 = !M.n; +>ResultIsBoolean7 : Symbol(ResultIsBoolean7, Decl(logicalNotOperatorWithNumberType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) + +var ResultIsBoolean8 = !NUMBER1[0]; +>ResultIsBoolean8 : Symbol(ResultIsBoolean8, Decl(logicalNotOperatorWithNumberType.ts, 28, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) + +var ResultIsBoolean9 = !foo(); +>ResultIsBoolean9 : Symbol(ResultIsBoolean9, Decl(logicalNotOperatorWithNumberType.ts, 29, 3)) +>foo : Symbol(foo, Decl(logicalNotOperatorWithNumberType.ts, 2, 31)) + +var ResultIsBoolean10 = !A.foo(); +>ResultIsBoolean10 : Symbol(ResultIsBoolean10, Decl(logicalNotOperatorWithNumberType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(logicalNotOperatorWithNumberType.ts, 7, 21)) +>A : Symbol(A, Decl(logicalNotOperatorWithNumberType.ts, 4, 36)) +>foo : Symbol(A.foo, Decl(logicalNotOperatorWithNumberType.ts, 7, 21)) + +var ResultIsBoolean11 = !(NUMBER + NUMBER); +>ResultIsBoolean11 : Symbol(ResultIsBoolean11, Decl(logicalNotOperatorWithNumberType.ts, 31, 3)) +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) + +// multiple ! operator +var ResultIsBoolean12 = !!NUMBER; +>ResultIsBoolean12 : Symbol(ResultIsBoolean12, Decl(logicalNotOperatorWithNumberType.ts, 34, 3)) +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) + +var ResultIsBoolean13 = !!!(NUMBER + NUMBER); +>ResultIsBoolean13 : Symbol(ResultIsBoolean13, Decl(logicalNotOperatorWithNumberType.ts, 35, 3)) +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) + +// miss assignment operators +!1; +!NUMBER; +>NUMBER : Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) + +!NUMBER1; +>NUMBER1 : Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) + +!foo(); +>foo : Symbol(foo, Decl(logicalNotOperatorWithNumberType.ts, 2, 31)) + +!objA.a; +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) + +!M.n; +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) + +!objA.a, M.n; +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) + diff --git a/tests/baselines/reference/logicalNotOperatorWithNumberType.types b/tests/baselines/reference/logicalNotOperatorWithNumberType.types index 2719d55f88352..6b7ce5b60883b 100644 --- a/tests/baselines/reference/logicalNotOperatorWithNumberType.types +++ b/tests/baselines/reference/logicalNotOperatorWithNumberType.types @@ -1,137 +1,137 @@ === tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithNumberType.ts === // ! operator on number type var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var NUMBER1: number[] = [1, 2]; ->NUMBER1 : number[], Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >[1, 2] : number[] >1 : number >2 : number function foo(): number { return 1; } ->foo : () => number, Symbol(foo, Decl(logicalNotOperatorWithNumberType.ts, 2, 31)) +>foo : () => number >1 : number class A { ->A : A, Symbol(A, Decl(logicalNotOperatorWithNumberType.ts, 4, 36)) +>A : A public a: number; ->a : number, Symbol(a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>a : number static foo() { return 1; } ->foo : () => number, Symbol(A.foo, Decl(logicalNotOperatorWithNumberType.ts, 7, 21)) +>foo : () => number >1 : number } module M { ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) +>M : typeof M export var n: number; ->n : number, Symbol(n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>n : number } var objA = new A(); ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(logicalNotOperatorWithNumberType.ts, 4, 36)) +>A : typeof A // number type var var ResultIsBoolean1 = !NUMBER; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithNumberType.ts, 17, 3)) +>ResultIsBoolean1 : boolean >!NUMBER : boolean ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsBoolean2 = !NUMBER1; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithNumberType.ts, 18, 3)) +>ResultIsBoolean2 : boolean >!NUMBER1 : boolean ->NUMBER1 : number[], Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] // number type literal var ResultIsBoolean3 = !1; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithNumberType.ts, 21, 3)) +>ResultIsBoolean3 : boolean >!1 : boolean >1 : number var ResultIsBoolean4 = !{ x: 1, y: 2}; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithNumberType.ts, 22, 3)) +>ResultIsBoolean4 : boolean >!{ x: 1, y: 2} : boolean >{ x: 1, y: 2} : { x: number; y: number; } ->x : number, Symbol(x, Decl(logicalNotOperatorWithNumberType.ts, 22, 25)) +>x : number >1 : number ->y : number, Symbol(y, Decl(logicalNotOperatorWithNumberType.ts, 22, 31)) +>y : number >2 : number var ResultIsBoolean5 = !{ x: 1, y: (n: number) => { return n; } }; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithNumberType.ts, 23, 3)) +>ResultIsBoolean5 : boolean >!{ x: 1, y: (n: number) => { return n; } } : boolean >{ x: 1, y: (n: number) => { return n; } } : { x: number; y: (n: number) => number; } ->x : number, Symbol(x, Decl(logicalNotOperatorWithNumberType.ts, 23, 25)) +>x : number >1 : number ->y : (n: number) => number, Symbol(y, Decl(logicalNotOperatorWithNumberType.ts, 23, 31)) +>y : (n: number) => number >(n: number) => { return n; } : (n: number) => number ->n : number, Symbol(n, Decl(logicalNotOperatorWithNumberType.ts, 23, 36)) ->n : number, Symbol(n, Decl(logicalNotOperatorWithNumberType.ts, 23, 36)) +>n : number +>n : number // number type expressions var ResultIsBoolean6 = !objA.a; ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(logicalNotOperatorWithNumberType.ts, 26, 3)) +>ResultIsBoolean6 : boolean >!objA.a : boolean ->objA.a : number, Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsBoolean7 = !M.n; ->ResultIsBoolean7 : boolean, Symbol(ResultIsBoolean7, Decl(logicalNotOperatorWithNumberType.ts, 27, 3)) +>ResultIsBoolean7 : boolean >!M.n : boolean ->M.n : number, Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsBoolean8 = !NUMBER1[0]; ->ResultIsBoolean8 : boolean, Symbol(ResultIsBoolean8, Decl(logicalNotOperatorWithNumberType.ts, 28, 3)) +>ResultIsBoolean8 : boolean >!NUMBER1[0] : boolean >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number var ResultIsBoolean9 = !foo(); ->ResultIsBoolean9 : boolean, Symbol(ResultIsBoolean9, Decl(logicalNotOperatorWithNumberType.ts, 29, 3)) +>ResultIsBoolean9 : boolean >!foo() : boolean >foo() : number ->foo : () => number, Symbol(foo, Decl(logicalNotOperatorWithNumberType.ts, 2, 31)) +>foo : () => number var ResultIsBoolean10 = !A.foo(); ->ResultIsBoolean10 : boolean, Symbol(ResultIsBoolean10, Decl(logicalNotOperatorWithNumberType.ts, 30, 3)) +>ResultIsBoolean10 : boolean >!A.foo() : boolean >A.foo() : number ->A.foo : () => number, Symbol(A.foo, Decl(logicalNotOperatorWithNumberType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(logicalNotOperatorWithNumberType.ts, 4, 36)) ->foo : () => number, Symbol(A.foo, Decl(logicalNotOperatorWithNumberType.ts, 7, 21)) +>A.foo : () => number +>A : typeof A +>foo : () => number var ResultIsBoolean11 = !(NUMBER + NUMBER); ->ResultIsBoolean11 : boolean, Symbol(ResultIsBoolean11, Decl(logicalNotOperatorWithNumberType.ts, 31, 3)) +>ResultIsBoolean11 : boolean >!(NUMBER + NUMBER) : boolean >(NUMBER + NUMBER) : number >NUMBER + NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // multiple ! operator var ResultIsBoolean12 = !!NUMBER; ->ResultIsBoolean12 : boolean, Symbol(ResultIsBoolean12, Decl(logicalNotOperatorWithNumberType.ts, 34, 3)) +>ResultIsBoolean12 : boolean >!!NUMBER : boolean >!NUMBER : boolean ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsBoolean13 = !!!(NUMBER + NUMBER); ->ResultIsBoolean13 : boolean, Symbol(ResultIsBoolean13, Decl(logicalNotOperatorWithNumberType.ts, 35, 3)) +>ResultIsBoolean13 : boolean >!!!(NUMBER + NUMBER) : boolean >!!(NUMBER + NUMBER) : boolean >!(NUMBER + NUMBER) : boolean >(NUMBER + NUMBER) : number >NUMBER + NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // miss assignment operators !1; @@ -140,36 +140,36 @@ var ResultIsBoolean13 = !!!(NUMBER + NUMBER); !NUMBER; >!NUMBER : boolean ->NUMBER : number, Symbol(NUMBER, Decl(logicalNotOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number !NUMBER1; >!NUMBER1 : boolean ->NUMBER1 : number[], Symbol(NUMBER1, Decl(logicalNotOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] !foo(); >!foo() : boolean >foo() : number ->foo : () => number, Symbol(foo, Decl(logicalNotOperatorWithNumberType.ts, 2, 31)) +>foo : () => number !objA.a; >!objA.a : boolean ->objA.a : number, Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number !M.n; >!M.n : boolean ->M.n : number, Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number !objA.a, M.n; >!objA.a, M.n : number >!objA.a : boolean ->objA.a : number, Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(logicalNotOperatorWithNumberType.ts, 6, 9)) ->M.n : number, Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(logicalNotOperatorWithNumberType.ts, 11, 14)) +>objA.a : number +>objA : A +>a : number +>M.n : number +>M : typeof M +>n : number diff --git a/tests/baselines/reference/logicalNotOperatorWithStringType.symbols b/tests/baselines/reference/logicalNotOperatorWithStringType.symbols new file mode 100644 index 0000000000000..ff266361321b5 --- /dev/null +++ b/tests/baselines/reference/logicalNotOperatorWithStringType.symbols @@ -0,0 +1,123 @@ +=== tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithStringType.ts === +// ! operator on string type +var STRING: string; +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) + +var STRING1: string[] = ["", "abc"]; +>STRING1 : Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) + +function foo(): string { return "abc"; } +>foo : Symbol(foo, Decl(logicalNotOperatorWithStringType.ts, 2, 36)) + +class A { +>A : Symbol(A, Decl(logicalNotOperatorWithStringType.ts, 4, 40)) + + public a: string; +>a : Symbol(a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) + + static foo() { return ""; } +>foo : Symbol(A.foo, Decl(logicalNotOperatorWithStringType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(logicalNotOperatorWithStringType.ts, 9, 1)) + + export var n: string; +>n : Symbol(n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(logicalNotOperatorWithStringType.ts, 14, 3)) +>A : Symbol(A, Decl(logicalNotOperatorWithStringType.ts, 4, 40)) + +// string type var +var ResultIsBoolean1 = !STRING; +>ResultIsBoolean1 : Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithStringType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) + +var ResultIsBoolean2 = !STRING1; +>ResultIsBoolean2 : Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithStringType.ts, 18, 3)) +>STRING1 : Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) + +// string type literal +var ResultIsBoolean3 = !""; +>ResultIsBoolean3 : Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithStringType.ts, 21, 3)) + +var ResultIsBoolean4 = !{ x: "", y: "" }; +>ResultIsBoolean4 : Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithStringType.ts, 22, 3)) +>x : Symbol(x, Decl(logicalNotOperatorWithStringType.ts, 22, 25)) +>y : Symbol(y, Decl(logicalNotOperatorWithStringType.ts, 22, 32)) + +var ResultIsBoolean5 = !{ x: "", y: (s: string) => { return s; } }; +>ResultIsBoolean5 : Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithStringType.ts, 23, 3)) +>x : Symbol(x, Decl(logicalNotOperatorWithStringType.ts, 23, 25)) +>y : Symbol(y, Decl(logicalNotOperatorWithStringType.ts, 23, 32)) +>s : Symbol(s, Decl(logicalNotOperatorWithStringType.ts, 23, 37)) +>s : Symbol(s, Decl(logicalNotOperatorWithStringType.ts, 23, 37)) + +// string type expressions +var ResultIsBoolean6 = !objA.a; +>ResultIsBoolean6 : Symbol(ResultIsBoolean6, Decl(logicalNotOperatorWithStringType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) + +var ResultIsBoolean7 = !M.n; +>ResultIsBoolean7 : Symbol(ResultIsBoolean7, Decl(logicalNotOperatorWithStringType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) + +var ResultIsBoolean8 = !STRING1[0]; +>ResultIsBoolean8 : Symbol(ResultIsBoolean8, Decl(logicalNotOperatorWithStringType.ts, 28, 3)) +>STRING1 : Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) + +var ResultIsBoolean9 = !foo(); +>ResultIsBoolean9 : Symbol(ResultIsBoolean9, Decl(logicalNotOperatorWithStringType.ts, 29, 3)) +>foo : Symbol(foo, Decl(logicalNotOperatorWithStringType.ts, 2, 36)) + +var ResultIsBoolean10 = !A.foo(); +>ResultIsBoolean10 : Symbol(ResultIsBoolean10, Decl(logicalNotOperatorWithStringType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(logicalNotOperatorWithStringType.ts, 7, 21)) +>A : Symbol(A, Decl(logicalNotOperatorWithStringType.ts, 4, 40)) +>foo : Symbol(A.foo, Decl(logicalNotOperatorWithStringType.ts, 7, 21)) + +var ResultIsBoolean11 = !(STRING + STRING); +>ResultIsBoolean11 : Symbol(ResultIsBoolean11, Decl(logicalNotOperatorWithStringType.ts, 31, 3)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) + +var ResultIsBoolean12 = !STRING.charAt(0); +>ResultIsBoolean12 : Symbol(ResultIsBoolean12, Decl(logicalNotOperatorWithStringType.ts, 32, 3)) +>STRING.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + +// multiple ! operator +var ResultIsBoolean13 = !!STRING; +>ResultIsBoolean13 : Symbol(ResultIsBoolean13, Decl(logicalNotOperatorWithStringType.ts, 35, 3)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) + +var ResultIsBoolean14 = !!!(STRING + STRING); +>ResultIsBoolean14 : Symbol(ResultIsBoolean14, Decl(logicalNotOperatorWithStringType.ts, 36, 3)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) + +// miss assignment operators +!""; +!STRING; +>STRING : Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) + +!STRING1; +>STRING1 : Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) + +!foo(); +>foo : Symbol(foo, Decl(logicalNotOperatorWithStringType.ts, 2, 36)) + +!objA.a,M.n; +>objA.a : Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(logicalNotOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(logicalNotOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) + diff --git a/tests/baselines/reference/logicalNotOperatorWithStringType.types b/tests/baselines/reference/logicalNotOperatorWithStringType.types index bd0d030d18363..5ca820ea6d0aa 100644 --- a/tests/baselines/reference/logicalNotOperatorWithStringType.types +++ b/tests/baselines/reference/logicalNotOperatorWithStringType.types @@ -1,146 +1,146 @@ === tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithStringType.ts === // ! operator on string type var STRING: string; ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : string var STRING1: string[] = ["", "abc"]; ->STRING1 : string[], Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >["", "abc"] : string[] >"" : string >"abc" : string function foo(): string { return "abc"; } ->foo : () => string, Symbol(foo, Decl(logicalNotOperatorWithStringType.ts, 2, 36)) +>foo : () => string >"abc" : string class A { ->A : A, Symbol(A, Decl(logicalNotOperatorWithStringType.ts, 4, 40)) +>A : A public a: string; ->a : string, Symbol(a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) +>a : string static foo() { return ""; } ->foo : () => string, Symbol(A.foo, Decl(logicalNotOperatorWithStringType.ts, 7, 21)) +>foo : () => string >"" : string } module M { ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithStringType.ts, 9, 1)) +>M : typeof M export var n: string; ->n : string, Symbol(n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) +>n : string } var objA = new A(); ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithStringType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(logicalNotOperatorWithStringType.ts, 4, 40)) +>A : typeof A // string type var var ResultIsBoolean1 = !STRING; ->ResultIsBoolean1 : boolean, Symbol(ResultIsBoolean1, Decl(logicalNotOperatorWithStringType.ts, 17, 3)) +>ResultIsBoolean1 : boolean >!STRING : boolean ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsBoolean2 = !STRING1; ->ResultIsBoolean2 : boolean, Symbol(ResultIsBoolean2, Decl(logicalNotOperatorWithStringType.ts, 18, 3)) +>ResultIsBoolean2 : boolean >!STRING1 : boolean ->STRING1 : string[], Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] // string type literal var ResultIsBoolean3 = !""; ->ResultIsBoolean3 : boolean, Symbol(ResultIsBoolean3, Decl(logicalNotOperatorWithStringType.ts, 21, 3)) +>ResultIsBoolean3 : boolean >!"" : boolean >"" : string var ResultIsBoolean4 = !{ x: "", y: "" }; ->ResultIsBoolean4 : boolean, Symbol(ResultIsBoolean4, Decl(logicalNotOperatorWithStringType.ts, 22, 3)) +>ResultIsBoolean4 : boolean >!{ x: "", y: "" } : boolean >{ x: "", y: "" } : { x: string; y: string; } ->x : string, Symbol(x, Decl(logicalNotOperatorWithStringType.ts, 22, 25)) +>x : string >"" : string ->y : string, Symbol(y, Decl(logicalNotOperatorWithStringType.ts, 22, 32)) +>y : string >"" : string var ResultIsBoolean5 = !{ x: "", y: (s: string) => { return s; } }; ->ResultIsBoolean5 : boolean, Symbol(ResultIsBoolean5, Decl(logicalNotOperatorWithStringType.ts, 23, 3)) +>ResultIsBoolean5 : boolean >!{ x: "", y: (s: string) => { return s; } } : boolean >{ x: "", y: (s: string) => { return s; } } : { x: string; y: (s: string) => string; } ->x : string, Symbol(x, Decl(logicalNotOperatorWithStringType.ts, 23, 25)) +>x : string >"" : string ->y : (s: string) => string, Symbol(y, Decl(logicalNotOperatorWithStringType.ts, 23, 32)) +>y : (s: string) => string >(s: string) => { return s; } : (s: string) => string ->s : string, Symbol(s, Decl(logicalNotOperatorWithStringType.ts, 23, 37)) ->s : string, Symbol(s, Decl(logicalNotOperatorWithStringType.ts, 23, 37)) +>s : string +>s : string // string type expressions var ResultIsBoolean6 = !objA.a; ->ResultIsBoolean6 : boolean, Symbol(ResultIsBoolean6, Decl(logicalNotOperatorWithStringType.ts, 26, 3)) +>ResultIsBoolean6 : boolean >!objA.a : boolean ->objA.a : string, Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) +>objA.a : string +>objA : A +>a : string var ResultIsBoolean7 = !M.n; ->ResultIsBoolean7 : boolean, Symbol(ResultIsBoolean7, Decl(logicalNotOperatorWithStringType.ts, 27, 3)) +>ResultIsBoolean7 : boolean >!M.n : boolean ->M.n : string, Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) +>M.n : string +>M : typeof M +>n : string var ResultIsBoolean8 = !STRING1[0]; ->ResultIsBoolean8 : boolean, Symbol(ResultIsBoolean8, Decl(logicalNotOperatorWithStringType.ts, 28, 3)) +>ResultIsBoolean8 : boolean >!STRING1[0] : boolean >STRING1[0] : string ->STRING1 : string[], Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >0 : number var ResultIsBoolean9 = !foo(); ->ResultIsBoolean9 : boolean, Symbol(ResultIsBoolean9, Decl(logicalNotOperatorWithStringType.ts, 29, 3)) +>ResultIsBoolean9 : boolean >!foo() : boolean >foo() : string ->foo : () => string, Symbol(foo, Decl(logicalNotOperatorWithStringType.ts, 2, 36)) +>foo : () => string var ResultIsBoolean10 = !A.foo(); ->ResultIsBoolean10 : boolean, Symbol(ResultIsBoolean10, Decl(logicalNotOperatorWithStringType.ts, 30, 3)) +>ResultIsBoolean10 : boolean >!A.foo() : boolean >A.foo() : string ->A.foo : () => string, Symbol(A.foo, Decl(logicalNotOperatorWithStringType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(logicalNotOperatorWithStringType.ts, 4, 40)) ->foo : () => string, Symbol(A.foo, Decl(logicalNotOperatorWithStringType.ts, 7, 21)) +>A.foo : () => string +>A : typeof A +>foo : () => string var ResultIsBoolean11 = !(STRING + STRING); ->ResultIsBoolean11 : boolean, Symbol(ResultIsBoolean11, Decl(logicalNotOperatorWithStringType.ts, 31, 3)) +>ResultIsBoolean11 : boolean >!(STRING + STRING) : boolean >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string var ResultIsBoolean12 = !STRING.charAt(0); ->ResultIsBoolean12 : boolean, Symbol(ResultIsBoolean12, Decl(logicalNotOperatorWithStringType.ts, 32, 3)) +>ResultIsBoolean12 : boolean >!STRING.charAt(0) : boolean >STRING.charAt(0) : string ->STRING.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING.charAt : (pos: number) => string +>STRING : string +>charAt : (pos: number) => string >0 : number // multiple ! operator var ResultIsBoolean13 = !!STRING; ->ResultIsBoolean13 : boolean, Symbol(ResultIsBoolean13, Decl(logicalNotOperatorWithStringType.ts, 35, 3)) +>ResultIsBoolean13 : boolean >!!STRING : boolean >!STRING : boolean ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsBoolean14 = !!!(STRING + STRING); ->ResultIsBoolean14 : boolean, Symbol(ResultIsBoolean14, Decl(logicalNotOperatorWithStringType.ts, 36, 3)) +>ResultIsBoolean14 : boolean >!!!(STRING + STRING) : boolean >!!(STRING + STRING) : boolean >!(STRING + STRING) : boolean >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string // miss assignment operators !""; @@ -149,24 +149,24 @@ var ResultIsBoolean14 = !!!(STRING + STRING); !STRING; >!STRING : boolean ->STRING : string, Symbol(STRING, Decl(logicalNotOperatorWithStringType.ts, 1, 3)) +>STRING : string !STRING1; >!STRING1 : boolean ->STRING1 : string[], Symbol(STRING1, Decl(logicalNotOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] !foo(); >!foo() : boolean >foo() : string ->foo : () => string, Symbol(foo, Decl(logicalNotOperatorWithStringType.ts, 2, 36)) +>foo : () => string !objA.a,M.n; >!objA.a,M.n : string >!objA.a : boolean ->objA.a : string, Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(logicalNotOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(logicalNotOperatorWithStringType.ts, 6, 9)) ->M.n : string, Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(logicalNotOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(logicalNotOperatorWithStringType.ts, 11, 14)) +>objA.a : string +>objA : A +>a : string +>M.n : string +>M : typeof M +>n : string diff --git a/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.symbols b/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.symbols new file mode 100644 index 0000000000000..90fc4ac163ce5 --- /dev/null +++ b/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrExpressionIsContextuallyTyped.ts === +// The || operator permits the operands to be of any type. +// If the || expression is contextually typed, the operands are contextually typed by the +// same type and the result is of the best common type of the contextual type and the two +// operand types. + +var r: { a: string } = { a: '', b: 123 } || { a: '', b: true }; +>r : Symbol(r, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 3)) +>a : Symbol(a, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 8)) +>a : Symbol(a, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 24)) +>b : Symbol(b, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 31)) +>a : Symbol(a, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 45)) +>b : Symbol(b, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 52)) + diff --git a/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types b/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types index c6bafce712057..52315226bb64c 100644 --- a/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types +++ b/tests/baselines/reference/logicalOrExpressionIsContextuallyTyped.types @@ -5,17 +5,17 @@ // operand types. var r: { a: string } = { a: '', b: 123 } || { a: '', b: true }; ->r : { a: string; }, Symbol(r, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 3)) ->a : string, Symbol(a, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 8)) +>r : { a: string; } +>a : string >{ a: '', b: 123 } || { a: '', b: true } : { a: string; b: number; } | { a: string; b: boolean; } >{ a: '', b: 123 } : { a: string; b: number; } ->a : string, Symbol(a, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 24)) +>a : string >'' : string ->b : number, Symbol(b, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 31)) +>b : number >123 : number >{ a: '', b: true } : { a: string; b: boolean; } ->a : string, Symbol(a, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 45)) +>a : string >'' : string ->b : boolean, Symbol(b, Decl(logicalOrExpressionIsContextuallyTyped.ts, 5, 52)) +>b : boolean >true : boolean diff --git a/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.symbols b/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.symbols new file mode 100644 index 0000000000000..6cfbf7ea6b675 --- /dev/null +++ b/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrExpressionIsNotContextuallyTyped.ts === +// The || operator permits the operands to be of any type. +// If the || expression is not contextually typed, the right operand is contextually typed +// by the type of the left operand and the result is of the best common type of the two +// operand types. + + +var a: (a: string) => string; +>a : Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 6, 3)) +>a : Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 6, 8)) + +// bug 786110 +var r = a || ((a) => a.toLowerCase()); +>r : Symbol(r, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 9, 3)) +>a : Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 6, 3)) +>a : Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 9, 15)) +>a.toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>a : Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 9, 15)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) + diff --git a/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.types b/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.types index 6acbfc9f5042b..72fd6281ba9cd 100644 --- a/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.types +++ b/tests/baselines/reference/logicalOrExpressionIsNotContextuallyTyped.types @@ -6,19 +6,19 @@ var a: (a: string) => string; ->a : (a: string) => string, Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 6, 3)) ->a : string, Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 6, 8)) +>a : (a: string) => string +>a : string // bug 786110 var r = a || ((a) => a.toLowerCase()); ->r : (a: string) => string, Symbol(r, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 9, 3)) +>r : (a: string) => string >a || ((a) => a.toLowerCase()) : (a: string) => string ->a : (a: string) => string, Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 6, 3)) +>a : (a: string) => string >((a) => a.toLowerCase()) : (a: string) => string >(a) => a.toLowerCase() : (a: string) => string ->a : string, Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 9, 15)) +>a : string >a.toLowerCase() : string ->a.toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) ->a : string, Symbol(a, Decl(logicalOrExpressionIsNotContextuallyTyped.ts, 9, 15)) ->toLowerCase : () => string, Symbol(String.toLowerCase, Decl(lib.d.ts, 399, 51)) +>a.toLowerCase : () => string +>a : string +>toLowerCase : () => string diff --git a/tests/baselines/reference/logicalOrOperatorWithEveryType.symbols b/tests/baselines/reference/logicalOrOperatorWithEveryType.symbols new file mode 100644 index 0000000000000..df2084351df8e --- /dev/null +++ b/tests/baselines/reference/logicalOrOperatorWithEveryType.symbols @@ -0,0 +1,518 @@ +=== tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts === +// The || operator permits the operands to be of any type. +// If the || expression is not contextually typed, the right operand is contextually typed +// by the type of the left operand and the result is of the best common type of the two +// operand types. + +enum E { a, b, c } +>E : Symbol(E, Decl(logicalOrOperatorWithEveryType.ts, 0, 0)) +>a : Symbol(E.a, Decl(logicalOrOperatorWithEveryType.ts, 5, 8)) +>b : Symbol(E.b, Decl(logicalOrOperatorWithEveryType.ts, 5, 11)) +>c : Symbol(E.c, Decl(logicalOrOperatorWithEveryType.ts, 5, 14)) + +var a1: any; +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var a2: boolean; +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var a3: number +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var a4: string; +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var a5: void; +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var a6: E; +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>E : Symbol(E, Decl(logicalOrOperatorWithEveryType.ts, 0, 0)) + +var a7: {a: string}; +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a : Symbol(a, Decl(logicalOrOperatorWithEveryType.ts, 13, 9)) + +var a8: string[]; +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ra1 = a1 || a1; // any || any is any +>ra1 : Symbol(ra1, Decl(logicalOrOperatorWithEveryType.ts, 16, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra2 = a2 || a1; // boolean || any is any +>ra2 : Symbol(ra2, Decl(logicalOrOperatorWithEveryType.ts, 17, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra3 = a3 || a1; // number || any is any +>ra3 : Symbol(ra3, Decl(logicalOrOperatorWithEveryType.ts, 18, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra4 = a4 || a1; // string || any is any +>ra4 : Symbol(ra4, Decl(logicalOrOperatorWithEveryType.ts, 19, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra5 = a5 || a1; // void || any is any +>ra5 : Symbol(ra5, Decl(logicalOrOperatorWithEveryType.ts, 20, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra6 = a6 || a1; // enum || any is any +>ra6 : Symbol(ra6, Decl(logicalOrOperatorWithEveryType.ts, 21, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra7 = a7 || a1; // object || any is any +>ra7 : Symbol(ra7, Decl(logicalOrOperatorWithEveryType.ts, 22, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra8 = a8 || a1; // array || any is any +>ra8 : Symbol(ra8, Decl(logicalOrOperatorWithEveryType.ts, 23, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra9 = null || a1; // null || any is any +>ra9 : Symbol(ra9, Decl(logicalOrOperatorWithEveryType.ts, 24, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var ra10 = undefined || a1; // undefined || any is any +>ra10 : Symbol(ra10, Decl(logicalOrOperatorWithEveryType.ts, 25, 3)) +>undefined : Symbol(undefined) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var rb1 = a1 || a2; // any || boolean is any +>rb1 : Symbol(rb1, Decl(logicalOrOperatorWithEveryType.ts, 27, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb2 = a2 || a2; // boolean || boolean is boolean +>rb2 : Symbol(rb2, Decl(logicalOrOperatorWithEveryType.ts, 28, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb3 = a3 || a2; // number || boolean is number | boolean +>rb3 : Symbol(rb3, Decl(logicalOrOperatorWithEveryType.ts, 29, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb4 = a4 || a2; // string || boolean is string | boolean +>rb4 : Symbol(rb4, Decl(logicalOrOperatorWithEveryType.ts, 30, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb5 = a5 || a2; // void || boolean is void | boolean +>rb5 : Symbol(rb5, Decl(logicalOrOperatorWithEveryType.ts, 31, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb6 = a6 || a2; // enum || boolean is E | boolean +>rb6 : Symbol(rb6, Decl(logicalOrOperatorWithEveryType.ts, 32, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb7 = a7 || a2; // object || boolean is object | boolean +>rb7 : Symbol(rb7, Decl(logicalOrOperatorWithEveryType.ts, 33, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb8 = a8 || a2; // array || boolean is array | boolean +>rb8 : Symbol(rb8, Decl(logicalOrOperatorWithEveryType.ts, 34, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb9 = null || a2; // null || boolean is boolean +>rb9 : Symbol(rb9, Decl(logicalOrOperatorWithEveryType.ts, 35, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rb10= undefined || a2; // undefined || boolean is boolean +>rb10 : Symbol(rb10, Decl(logicalOrOperatorWithEveryType.ts, 36, 3)) +>undefined : Symbol(undefined) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rc1 = a1 || a3; // any || number is any +>rc1 : Symbol(rc1, Decl(logicalOrOperatorWithEveryType.ts, 38, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc2 = a2 || a3; // boolean || number is boolean | number +>rc2 : Symbol(rc2, Decl(logicalOrOperatorWithEveryType.ts, 39, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc3 = a3 || a3; // number || number is number +>rc3 : Symbol(rc3, Decl(logicalOrOperatorWithEveryType.ts, 40, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc4 = a4 || a3; // string || number is string | number +>rc4 : Symbol(rc4, Decl(logicalOrOperatorWithEveryType.ts, 41, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc5 = a5 || a3; // void || number is void | number +>rc5 : Symbol(rc5, Decl(logicalOrOperatorWithEveryType.ts, 42, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc6 = a6 || a3; // enum || number is number +>rc6 : Symbol(rc6, Decl(logicalOrOperatorWithEveryType.ts, 43, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc7 = a7 || a3; // object || number is object | number +>rc7 : Symbol(rc7, Decl(logicalOrOperatorWithEveryType.ts, 44, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc8 = a8 || a3; // array || number is array | number +>rc8 : Symbol(rc8, Decl(logicalOrOperatorWithEveryType.ts, 45, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc9 = null || a3; // null || number is number +>rc9 : Symbol(rc9, Decl(logicalOrOperatorWithEveryType.ts, 46, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rc10 = undefined || a3; // undefined || number is number +>rc10 : Symbol(rc10, Decl(logicalOrOperatorWithEveryType.ts, 47, 3)) +>undefined : Symbol(undefined) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rd1 = a1 || a4; // any || string is any +>rd1 : Symbol(rd1, Decl(logicalOrOperatorWithEveryType.ts, 49, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd2 = a2 || a4; // boolean || string is boolean | string +>rd2 : Symbol(rd2, Decl(logicalOrOperatorWithEveryType.ts, 50, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd3 = a3 || a4; // number || string is number | string +>rd3 : Symbol(rd3, Decl(logicalOrOperatorWithEveryType.ts, 51, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd4 = a4 || a4; // string || string is string +>rd4 : Symbol(rd4, Decl(logicalOrOperatorWithEveryType.ts, 52, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd5 = a5 || a4; // void || string is void | string +>rd5 : Symbol(rd5, Decl(logicalOrOperatorWithEveryType.ts, 53, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd6 = a6 || a4; // enum || string is enum | string +>rd6 : Symbol(rd6, Decl(logicalOrOperatorWithEveryType.ts, 54, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd7 = a7 || a4; // object || string is object | string +>rd7 : Symbol(rd7, Decl(logicalOrOperatorWithEveryType.ts, 55, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd8 = a8 || a4; // array || string is array | string +>rd8 : Symbol(rd8, Decl(logicalOrOperatorWithEveryType.ts, 56, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd9 = null || a4; // null || string is string +>rd9 : Symbol(rd9, Decl(logicalOrOperatorWithEveryType.ts, 57, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rd10 = undefined || a4; // undefined || string is string +>rd10 : Symbol(rd10, Decl(logicalOrOperatorWithEveryType.ts, 58, 3)) +>undefined : Symbol(undefined) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var re1 = a1 || a5; // any || void is any +>re1 : Symbol(re1, Decl(logicalOrOperatorWithEveryType.ts, 60, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re2 = a2 || a5; // boolean || void is boolean | void +>re2 : Symbol(re2, Decl(logicalOrOperatorWithEveryType.ts, 61, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re3 = a3 || a5; // number || void is number | void +>re3 : Symbol(re3, Decl(logicalOrOperatorWithEveryType.ts, 62, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re4 = a4 || a5; // string || void is string | void +>re4 : Symbol(re4, Decl(logicalOrOperatorWithEveryType.ts, 63, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re5 = a5 || a5; // void || void is void +>re5 : Symbol(re5, Decl(logicalOrOperatorWithEveryType.ts, 64, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re6 = a6 || a5; // enum || void is enum | void +>re6 : Symbol(re6, Decl(logicalOrOperatorWithEveryType.ts, 65, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re7 = a7 || a5; // object || void is object | void +>re7 : Symbol(re7, Decl(logicalOrOperatorWithEveryType.ts, 66, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re8 = a8 || a5; // array || void is array | void +>re8 : Symbol(re8, Decl(logicalOrOperatorWithEveryType.ts, 67, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re9 = null || a5; // null || void is void +>re9 : Symbol(re9, Decl(logicalOrOperatorWithEveryType.ts, 68, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var re10 = undefined || a5; // undefined || void is void +>re10 : Symbol(re10, Decl(logicalOrOperatorWithEveryType.ts, 69, 3)) +>undefined : Symbol(undefined) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var rg1 = a1 || a6; // any || enum is any +>rg1 : Symbol(rg1, Decl(logicalOrOperatorWithEveryType.ts, 71, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg2 = a2 || a6; // boolean || enum is boolean | enum +>rg2 : Symbol(rg2, Decl(logicalOrOperatorWithEveryType.ts, 72, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg3 = a3 || a6; // number || enum is number +>rg3 : Symbol(rg3, Decl(logicalOrOperatorWithEveryType.ts, 73, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg4 = a4 || a6; // string || enum is string | enum +>rg4 : Symbol(rg4, Decl(logicalOrOperatorWithEveryType.ts, 74, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg5 = a5 || a6; // void || enum is void | enum +>rg5 : Symbol(rg5, Decl(logicalOrOperatorWithEveryType.ts, 75, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg6 = a6 || a6; // enum || enum is E +>rg6 : Symbol(rg6, Decl(logicalOrOperatorWithEveryType.ts, 76, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg7 = a7 || a6; // object || enum is object | enum +>rg7 : Symbol(rg7, Decl(logicalOrOperatorWithEveryType.ts, 77, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg8 = a8 || a6; // array || enum is array | enum +>rg8 : Symbol(rg8, Decl(logicalOrOperatorWithEveryType.ts, 78, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg9 = null || a6; // null || enum is E +>rg9 : Symbol(rg9, Decl(logicalOrOperatorWithEveryType.ts, 79, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rg10 = undefined || a6; // undefined || enum is E +>rg10 : Symbol(rg10, Decl(logicalOrOperatorWithEveryType.ts, 80, 3)) +>undefined : Symbol(undefined) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rh1 = a1 || a7; // any || object is any +>rh1 : Symbol(rh1, Decl(logicalOrOperatorWithEveryType.ts, 82, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh2 = a2 || a7; // boolean || object is boolean | object +>rh2 : Symbol(rh2, Decl(logicalOrOperatorWithEveryType.ts, 83, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh3 = a3 || a7; // number || object is number | object +>rh3 : Symbol(rh3, Decl(logicalOrOperatorWithEveryType.ts, 84, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh4 = a4 || a7; // string || object is string | object +>rh4 : Symbol(rh4, Decl(logicalOrOperatorWithEveryType.ts, 85, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh5 = a5 || a7; // void || object is void | object +>rh5 : Symbol(rh5, Decl(logicalOrOperatorWithEveryType.ts, 86, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh6 = a6 || a7; // enum || object is enum | object +>rh6 : Symbol(rh6, Decl(logicalOrOperatorWithEveryType.ts, 87, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh7 = a7 || a7; // object || object is object +>rh7 : Symbol(rh7, Decl(logicalOrOperatorWithEveryType.ts, 88, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh8 = a8 || a7; // array || object is array | object +>rh8 : Symbol(rh8, Decl(logicalOrOperatorWithEveryType.ts, 89, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh9 = null || a7; // null || object is object +>rh9 : Symbol(rh9, Decl(logicalOrOperatorWithEveryType.ts, 90, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rh10 = undefined || a7; // undefined || object is object +>rh10 : Symbol(rh10, Decl(logicalOrOperatorWithEveryType.ts, 91, 3)) +>undefined : Symbol(undefined) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var ri1 = a1 || a8; // any || array is any +>ri1 : Symbol(ri1, Decl(logicalOrOperatorWithEveryType.ts, 93, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri2 = a2 || a8; // boolean || array is boolean | array +>ri2 : Symbol(ri2, Decl(logicalOrOperatorWithEveryType.ts, 94, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri3 = a3 || a8; // number || array is number | array +>ri3 : Symbol(ri3, Decl(logicalOrOperatorWithEveryType.ts, 95, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri4 = a4 || a8; // string || array is string | array +>ri4 : Symbol(ri4, Decl(logicalOrOperatorWithEveryType.ts, 96, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri5 = a5 || a8; // void || array is void | array +>ri5 : Symbol(ri5, Decl(logicalOrOperatorWithEveryType.ts, 97, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri6 = a6 || a8; // enum || array is enum | array +>ri6 : Symbol(ri6, Decl(logicalOrOperatorWithEveryType.ts, 98, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri7 = a7 || a8; // object || array is object | array +>ri7 : Symbol(ri7, Decl(logicalOrOperatorWithEveryType.ts, 99, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri8 = a8 || a8; // array || array is array +>ri8 : Symbol(ri8, Decl(logicalOrOperatorWithEveryType.ts, 100, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri9 = null || a8; // null || array is array +>ri9 : Symbol(ri9, Decl(logicalOrOperatorWithEveryType.ts, 101, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var ri10 = undefined || a8; // undefined || array is array +>ri10 : Symbol(ri10, Decl(logicalOrOperatorWithEveryType.ts, 102, 3)) +>undefined : Symbol(undefined) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var rj1 = a1 || null; // any || null is any +>rj1 : Symbol(rj1, Decl(logicalOrOperatorWithEveryType.ts, 104, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) + +var rj2 = a2 || null; // boolean || null is boolean +>rj2 : Symbol(rj2, Decl(logicalOrOperatorWithEveryType.ts, 105, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) + +var rj3 = a3 || null; // number || null is number +>rj3 : Symbol(rj3, Decl(logicalOrOperatorWithEveryType.ts, 106, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) + +var rj4 = a4 || null; // string || null is string +>rj4 : Symbol(rj4, Decl(logicalOrOperatorWithEveryType.ts, 107, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) + +var rj5 = a5 || null; // void || null is void +>rj5 : Symbol(rj5, Decl(logicalOrOperatorWithEveryType.ts, 108, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) + +var rj6 = a6 || null; // enum || null is E +>rj6 : Symbol(rj6, Decl(logicalOrOperatorWithEveryType.ts, 109, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) + +var rj7 = a7 || null; // object || null is object +>rj7 : Symbol(rj7, Decl(logicalOrOperatorWithEveryType.ts, 110, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) + +var rj8 = a8 || null; // array || null is array +>rj8 : Symbol(rj8, Decl(logicalOrOperatorWithEveryType.ts, 111, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) + +var rj9 = null || null; // null || null is any +>rj9 : Symbol(rj9, Decl(logicalOrOperatorWithEveryType.ts, 112, 3)) + +var rj10 = undefined || null; // undefined || null is any +>rj10 : Symbol(rj10, Decl(logicalOrOperatorWithEveryType.ts, 113, 3)) +>undefined : Symbol(undefined) + +var rf1 = a1 || undefined; // any || undefined is any +>rf1 : Symbol(rf1, Decl(logicalOrOperatorWithEveryType.ts, 115, 3)) +>a1 : Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>undefined : Symbol(undefined) + +var rf2 = a2 || undefined; // boolean || undefined is boolean +>rf2 : Symbol(rf2, Decl(logicalOrOperatorWithEveryType.ts, 116, 3)) +>a2 : Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>undefined : Symbol(undefined) + +var rf3 = a3 || undefined; // number || undefined is number +>rf3 : Symbol(rf3, Decl(logicalOrOperatorWithEveryType.ts, 117, 3)) +>a3 : Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>undefined : Symbol(undefined) + +var rf4 = a4 || undefined; // string || undefined is string +>rf4 : Symbol(rf4, Decl(logicalOrOperatorWithEveryType.ts, 118, 3)) +>a4 : Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>undefined : Symbol(undefined) + +var rf5 = a5 || undefined; // void || undefined is void +>rf5 : Symbol(rf5, Decl(logicalOrOperatorWithEveryType.ts, 119, 3)) +>a5 : Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>undefined : Symbol(undefined) + +var rf6 = a6 || undefined; // enum || undefined is E +>rf6 : Symbol(rf6, Decl(logicalOrOperatorWithEveryType.ts, 120, 3)) +>a6 : Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>undefined : Symbol(undefined) + +var rf7 = a7 || undefined; // object || undefined is object +>rf7 : Symbol(rf7, Decl(logicalOrOperatorWithEveryType.ts, 121, 3)) +>a7 : Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>undefined : Symbol(undefined) + +var rf8 = a8 || undefined; // array || undefined is array +>rf8 : Symbol(rf8, Decl(logicalOrOperatorWithEveryType.ts, 122, 3)) +>a8 : Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>undefined : Symbol(undefined) + +var rf9 = null || undefined; // null || undefined is any +>rf9 : Symbol(rf9, Decl(logicalOrOperatorWithEveryType.ts, 123, 3)) +>undefined : Symbol(undefined) + +var rf10 = undefined || undefined; // undefined || undefined is any +>rf10 : Symbol(rf10, Decl(logicalOrOperatorWithEveryType.ts, 124, 3)) +>undefined : Symbol(undefined) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/logicalOrOperatorWithEveryType.types b/tests/baselines/reference/logicalOrOperatorWithEveryType.types index fa152b7ffe51b..c98966acb9855 100644 --- a/tests/baselines/reference/logicalOrOperatorWithEveryType.types +++ b/tests/baselines/reference/logicalOrOperatorWithEveryType.types @@ -5,634 +5,634 @@ // operand types. enum E { a, b, c } ->E : E, Symbol(E, Decl(logicalOrOperatorWithEveryType.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(logicalOrOperatorWithEveryType.ts, 5, 8)) ->b : E, Symbol(E.b, Decl(logicalOrOperatorWithEveryType.ts, 5, 11)) ->c : E, Symbol(E.c, Decl(logicalOrOperatorWithEveryType.ts, 5, 14)) +>E : E +>a : E +>b : E +>c : E var a1: any; ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a1 : any var a2: boolean; ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a2 : boolean var a3: number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a3 : number var a4: string; ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a4 : string var a5: void; ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a5 : void var a6: E; ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->E : E, Symbol(E, Decl(logicalOrOperatorWithEveryType.ts, 0, 0)) +>a6 : E +>E : E var a7: {a: string}; ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a : string, Symbol(a, Decl(logicalOrOperatorWithEveryType.ts, 13, 9)) +>a7 : { a: string; } +>a : string var a8: string[]; ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a8 : string[] var ra1 = a1 || a1; // any || any is any ->ra1 : any, Symbol(ra1, Decl(logicalOrOperatorWithEveryType.ts, 16, 3)) +>ra1 : any >a1 || a1 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a1 : any +>a1 : any var ra2 = a2 || a1; // boolean || any is any ->ra2 : any, Symbol(ra2, Decl(logicalOrOperatorWithEveryType.ts, 17, 3)) +>ra2 : any >a2 || a1 : any ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a2 : boolean +>a1 : any var ra3 = a3 || a1; // number || any is any ->ra3 : any, Symbol(ra3, Decl(logicalOrOperatorWithEveryType.ts, 18, 3)) +>ra3 : any >a3 || a1 : any ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a3 : number +>a1 : any var ra4 = a4 || a1; // string || any is any ->ra4 : any, Symbol(ra4, Decl(logicalOrOperatorWithEveryType.ts, 19, 3)) +>ra4 : any >a4 || a1 : any ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a4 : string +>a1 : any var ra5 = a5 || a1; // void || any is any ->ra5 : any, Symbol(ra5, Decl(logicalOrOperatorWithEveryType.ts, 20, 3)) +>ra5 : any >a5 || a1 : any ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a5 : void +>a1 : any var ra6 = a6 || a1; // enum || any is any ->ra6 : any, Symbol(ra6, Decl(logicalOrOperatorWithEveryType.ts, 21, 3)) +>ra6 : any >a6 || a1 : any ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a6 : E +>a1 : any var ra7 = a7 || a1; // object || any is any ->ra7 : any, Symbol(ra7, Decl(logicalOrOperatorWithEveryType.ts, 22, 3)) +>ra7 : any >a7 || a1 : any ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a7 : { a: string; } +>a1 : any var ra8 = a8 || a1; // array || any is any ->ra8 : any, Symbol(ra8, Decl(logicalOrOperatorWithEveryType.ts, 23, 3)) +>ra8 : any >a8 || a1 : any ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a8 : string[] +>a1 : any var ra9 = null || a1; // null || any is any ->ra9 : any, Symbol(ra9, Decl(logicalOrOperatorWithEveryType.ts, 24, 3)) +>ra9 : any >null || a1 : any >null : null ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a1 : any var ra10 = undefined || a1; // undefined || any is any ->ra10 : any, Symbol(ra10, Decl(logicalOrOperatorWithEveryType.ts, 25, 3)) +>ra10 : any >undefined || a1 : any ->undefined : undefined, Symbol(undefined) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>undefined : undefined +>a1 : any var rb1 = a1 || a2; // any || boolean is any ->rb1 : any, Symbol(rb1, Decl(logicalOrOperatorWithEveryType.ts, 27, 3)) +>rb1 : any >a1 || a2 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a1 : any +>a2 : boolean var rb2 = a2 || a2; // boolean || boolean is boolean ->rb2 : boolean, Symbol(rb2, Decl(logicalOrOperatorWithEveryType.ts, 28, 3)) +>rb2 : boolean >a2 || a2 : boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a2 : boolean +>a2 : boolean var rb3 = a3 || a2; // number || boolean is number | boolean ->rb3 : number | boolean, Symbol(rb3, Decl(logicalOrOperatorWithEveryType.ts, 29, 3)) +>rb3 : number | boolean >a3 || a2 : number | boolean ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a3 : number +>a2 : boolean var rb4 = a4 || a2; // string || boolean is string | boolean ->rb4 : string | boolean, Symbol(rb4, Decl(logicalOrOperatorWithEveryType.ts, 30, 3)) +>rb4 : string | boolean >a4 || a2 : string | boolean ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a4 : string +>a2 : boolean var rb5 = a5 || a2; // void || boolean is void | boolean ->rb5 : boolean | void, Symbol(rb5, Decl(logicalOrOperatorWithEveryType.ts, 31, 3)) +>rb5 : boolean | void >a5 || a2 : boolean | void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a5 : void +>a2 : boolean var rb6 = a6 || a2; // enum || boolean is E | boolean ->rb6 : boolean | E, Symbol(rb6, Decl(logicalOrOperatorWithEveryType.ts, 32, 3)) +>rb6 : boolean | E >a6 || a2 : boolean | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a6 : E +>a2 : boolean var rb7 = a7 || a2; // object || boolean is object | boolean ->rb7 : boolean | { a: string; }, Symbol(rb7, Decl(logicalOrOperatorWithEveryType.ts, 33, 3)) +>rb7 : boolean | { a: string; } >a7 || a2 : boolean | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a7 : { a: string; } +>a2 : boolean var rb8 = a8 || a2; // array || boolean is array | boolean ->rb8 : boolean | string[], Symbol(rb8, Decl(logicalOrOperatorWithEveryType.ts, 34, 3)) +>rb8 : boolean | string[] >a8 || a2 : boolean | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a8 : string[] +>a2 : boolean var rb9 = null || a2; // null || boolean is boolean ->rb9 : boolean, Symbol(rb9, Decl(logicalOrOperatorWithEveryType.ts, 35, 3)) +>rb9 : boolean >null || a2 : boolean >null : null ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a2 : boolean var rb10= undefined || a2; // undefined || boolean is boolean ->rb10 : boolean, Symbol(rb10, Decl(logicalOrOperatorWithEveryType.ts, 36, 3)) +>rb10 : boolean >undefined || a2 : boolean ->undefined : undefined, Symbol(undefined) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>undefined : undefined +>a2 : boolean var rc1 = a1 || a3; // any || number is any ->rc1 : any, Symbol(rc1, Decl(logicalOrOperatorWithEveryType.ts, 38, 3)) +>rc1 : any >a1 || a3 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a1 : any +>a3 : number var rc2 = a2 || a3; // boolean || number is boolean | number ->rc2 : number | boolean, Symbol(rc2, Decl(logicalOrOperatorWithEveryType.ts, 39, 3)) +>rc2 : number | boolean >a2 || a3 : number | boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a2 : boolean +>a3 : number var rc3 = a3 || a3; // number || number is number ->rc3 : number, Symbol(rc3, Decl(logicalOrOperatorWithEveryType.ts, 40, 3)) +>rc3 : number >a3 || a3 : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a3 : number +>a3 : number var rc4 = a4 || a3; // string || number is string | number ->rc4 : string | number, Symbol(rc4, Decl(logicalOrOperatorWithEveryType.ts, 41, 3)) +>rc4 : string | number >a4 || a3 : string | number ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a4 : string +>a3 : number var rc5 = a5 || a3; // void || number is void | number ->rc5 : number | void, Symbol(rc5, Decl(logicalOrOperatorWithEveryType.ts, 42, 3)) +>rc5 : number | void >a5 || a3 : number | void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a5 : void +>a3 : number var rc6 = a6 || a3; // enum || number is number ->rc6 : number, Symbol(rc6, Decl(logicalOrOperatorWithEveryType.ts, 43, 3)) +>rc6 : number >a6 || a3 : number ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a6 : E +>a3 : number var rc7 = a7 || a3; // object || number is object | number ->rc7 : number | { a: string; }, Symbol(rc7, Decl(logicalOrOperatorWithEveryType.ts, 44, 3)) +>rc7 : number | { a: string; } >a7 || a3 : number | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a7 : { a: string; } +>a3 : number var rc8 = a8 || a3; // array || number is array | number ->rc8 : number | string[], Symbol(rc8, Decl(logicalOrOperatorWithEveryType.ts, 45, 3)) +>rc8 : number | string[] >a8 || a3 : number | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a8 : string[] +>a3 : number var rc9 = null || a3; // null || number is number ->rc9 : number, Symbol(rc9, Decl(logicalOrOperatorWithEveryType.ts, 46, 3)) +>rc9 : number >null || a3 : number >null : null ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a3 : number var rc10 = undefined || a3; // undefined || number is number ->rc10 : number, Symbol(rc10, Decl(logicalOrOperatorWithEveryType.ts, 47, 3)) +>rc10 : number >undefined || a3 : number ->undefined : undefined, Symbol(undefined) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>undefined : undefined +>a3 : number var rd1 = a1 || a4; // any || string is any ->rd1 : any, Symbol(rd1, Decl(logicalOrOperatorWithEveryType.ts, 49, 3)) +>rd1 : any >a1 || a4 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a1 : any +>a4 : string var rd2 = a2 || a4; // boolean || string is boolean | string ->rd2 : string | boolean, Symbol(rd2, Decl(logicalOrOperatorWithEveryType.ts, 50, 3)) +>rd2 : string | boolean >a2 || a4 : string | boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a2 : boolean +>a4 : string var rd3 = a3 || a4; // number || string is number | string ->rd3 : string | number, Symbol(rd3, Decl(logicalOrOperatorWithEveryType.ts, 51, 3)) +>rd3 : string | number >a3 || a4 : string | number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a3 : number +>a4 : string var rd4 = a4 || a4; // string || string is string ->rd4 : string, Symbol(rd4, Decl(logicalOrOperatorWithEveryType.ts, 52, 3)) +>rd4 : string >a4 || a4 : string ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a4 : string +>a4 : string var rd5 = a5 || a4; // void || string is void | string ->rd5 : string | void, Symbol(rd5, Decl(logicalOrOperatorWithEveryType.ts, 53, 3)) +>rd5 : string | void >a5 || a4 : string | void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a5 : void +>a4 : string var rd6 = a6 || a4; // enum || string is enum | string ->rd6 : string | E, Symbol(rd6, Decl(logicalOrOperatorWithEveryType.ts, 54, 3)) +>rd6 : string | E >a6 || a4 : string | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a6 : E +>a4 : string var rd7 = a7 || a4; // object || string is object | string ->rd7 : string | { a: string; }, Symbol(rd7, Decl(logicalOrOperatorWithEveryType.ts, 55, 3)) +>rd7 : string | { a: string; } >a7 || a4 : string | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a7 : { a: string; } +>a4 : string var rd8 = a8 || a4; // array || string is array | string ->rd8 : string | string[], Symbol(rd8, Decl(logicalOrOperatorWithEveryType.ts, 56, 3)) +>rd8 : string | string[] >a8 || a4 : string | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a8 : string[] +>a4 : string var rd9 = null || a4; // null || string is string ->rd9 : string, Symbol(rd9, Decl(logicalOrOperatorWithEveryType.ts, 57, 3)) +>rd9 : string >null || a4 : string >null : null ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a4 : string var rd10 = undefined || a4; // undefined || string is string ->rd10 : string, Symbol(rd10, Decl(logicalOrOperatorWithEveryType.ts, 58, 3)) +>rd10 : string >undefined || a4 : string ->undefined : undefined, Symbol(undefined) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>undefined : undefined +>a4 : string var re1 = a1 || a5; // any || void is any ->re1 : any, Symbol(re1, Decl(logicalOrOperatorWithEveryType.ts, 60, 3)) +>re1 : any >a1 || a5 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a1 : any +>a5 : void var re2 = a2 || a5; // boolean || void is boolean | void ->re2 : boolean | void, Symbol(re2, Decl(logicalOrOperatorWithEveryType.ts, 61, 3)) +>re2 : boolean | void >a2 || a5 : boolean | void ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a2 : boolean +>a5 : void var re3 = a3 || a5; // number || void is number | void ->re3 : number | void, Symbol(re3, Decl(logicalOrOperatorWithEveryType.ts, 62, 3)) +>re3 : number | void >a3 || a5 : number | void ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a3 : number +>a5 : void var re4 = a4 || a5; // string || void is string | void ->re4 : string | void, Symbol(re4, Decl(logicalOrOperatorWithEveryType.ts, 63, 3)) +>re4 : string | void >a4 || a5 : string | void ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a4 : string +>a5 : void var re5 = a5 || a5; // void || void is void ->re5 : void, Symbol(re5, Decl(logicalOrOperatorWithEveryType.ts, 64, 3)) +>re5 : void >a5 || a5 : void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a5 : void +>a5 : void var re6 = a6 || a5; // enum || void is enum | void ->re6 : void | E, Symbol(re6, Decl(logicalOrOperatorWithEveryType.ts, 65, 3)) +>re6 : void | E >a6 || a5 : void | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a6 : E +>a5 : void var re7 = a7 || a5; // object || void is object | void ->re7 : void | { a: string; }, Symbol(re7, Decl(logicalOrOperatorWithEveryType.ts, 66, 3)) +>re7 : void | { a: string; } >a7 || a5 : void | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a7 : { a: string; } +>a5 : void var re8 = a8 || a5; // array || void is array | void ->re8 : void | string[], Symbol(re8, Decl(logicalOrOperatorWithEveryType.ts, 67, 3)) +>re8 : void | string[] >a8 || a5 : void | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a8 : string[] +>a5 : void var re9 = null || a5; // null || void is void ->re9 : void, Symbol(re9, Decl(logicalOrOperatorWithEveryType.ts, 68, 3)) +>re9 : void >null || a5 : void >null : null ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a5 : void var re10 = undefined || a5; // undefined || void is void ->re10 : void, Symbol(re10, Decl(logicalOrOperatorWithEveryType.ts, 69, 3)) +>re10 : void >undefined || a5 : void ->undefined : undefined, Symbol(undefined) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>undefined : undefined +>a5 : void var rg1 = a1 || a6; // any || enum is any ->rg1 : any, Symbol(rg1, Decl(logicalOrOperatorWithEveryType.ts, 71, 3)) +>rg1 : any >a1 || a6 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a1 : any +>a6 : E var rg2 = a2 || a6; // boolean || enum is boolean | enum ->rg2 : boolean | E, Symbol(rg2, Decl(logicalOrOperatorWithEveryType.ts, 72, 3)) +>rg2 : boolean | E >a2 || a6 : boolean | E ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a2 : boolean +>a6 : E var rg3 = a3 || a6; // number || enum is number ->rg3 : number, Symbol(rg3, Decl(logicalOrOperatorWithEveryType.ts, 73, 3)) +>rg3 : number >a3 || a6 : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a3 : number +>a6 : E var rg4 = a4 || a6; // string || enum is string | enum ->rg4 : string | E, Symbol(rg4, Decl(logicalOrOperatorWithEveryType.ts, 74, 3)) +>rg4 : string | E >a4 || a6 : string | E ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a4 : string +>a6 : E var rg5 = a5 || a6; // void || enum is void | enum ->rg5 : void | E, Symbol(rg5, Decl(logicalOrOperatorWithEveryType.ts, 75, 3)) +>rg5 : void | E >a5 || a6 : void | E ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a5 : void +>a6 : E var rg6 = a6 || a6; // enum || enum is E ->rg6 : E, Symbol(rg6, Decl(logicalOrOperatorWithEveryType.ts, 76, 3)) +>rg6 : E >a6 || a6 : E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a6 : E +>a6 : E var rg7 = a7 || a6; // object || enum is object | enum ->rg7 : E | { a: string; }, Symbol(rg7, Decl(logicalOrOperatorWithEveryType.ts, 77, 3)) +>rg7 : E | { a: string; } >a7 || a6 : E | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a7 : { a: string; } +>a6 : E var rg8 = a8 || a6; // array || enum is array | enum ->rg8 : string[] | E, Symbol(rg8, Decl(logicalOrOperatorWithEveryType.ts, 78, 3)) +>rg8 : string[] | E >a8 || a6 : string[] | E ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a8 : string[] +>a6 : E var rg9 = null || a6; // null || enum is E ->rg9 : E, Symbol(rg9, Decl(logicalOrOperatorWithEveryType.ts, 79, 3)) +>rg9 : E >null || a6 : E >null : null ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a6 : E var rg10 = undefined || a6; // undefined || enum is E ->rg10 : E, Symbol(rg10, Decl(logicalOrOperatorWithEveryType.ts, 80, 3)) +>rg10 : E >undefined || a6 : E ->undefined : undefined, Symbol(undefined) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>undefined : undefined +>a6 : E var rh1 = a1 || a7; // any || object is any ->rh1 : any, Symbol(rh1, Decl(logicalOrOperatorWithEveryType.ts, 82, 3)) +>rh1 : any >a1 || a7 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a1 : any +>a7 : { a: string; } var rh2 = a2 || a7; // boolean || object is boolean | object ->rh2 : boolean | { a: string; }, Symbol(rh2, Decl(logicalOrOperatorWithEveryType.ts, 83, 3)) +>rh2 : boolean | { a: string; } >a2 || a7 : boolean | { a: string; } ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a2 : boolean +>a7 : { a: string; } var rh3 = a3 || a7; // number || object is number | object ->rh3 : number | { a: string; }, Symbol(rh3, Decl(logicalOrOperatorWithEveryType.ts, 84, 3)) +>rh3 : number | { a: string; } >a3 || a7 : number | { a: string; } ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a3 : number +>a7 : { a: string; } var rh4 = a4 || a7; // string || object is string | object ->rh4 : string | { a: string; }, Symbol(rh4, Decl(logicalOrOperatorWithEveryType.ts, 85, 3)) +>rh4 : string | { a: string; } >a4 || a7 : string | { a: string; } ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a4 : string +>a7 : { a: string; } var rh5 = a5 || a7; // void || object is void | object ->rh5 : void | { a: string; }, Symbol(rh5, Decl(logicalOrOperatorWithEveryType.ts, 86, 3)) +>rh5 : void | { a: string; } >a5 || a7 : void | { a: string; } ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a5 : void +>a7 : { a: string; } var rh6 = a6 || a7; // enum || object is enum | object ->rh6 : E | { a: string; }, Symbol(rh6, Decl(logicalOrOperatorWithEveryType.ts, 87, 3)) +>rh6 : E | { a: string; } >a6 || a7 : E | { a: string; } ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a6 : E +>a7 : { a: string; } var rh7 = a7 || a7; // object || object is object ->rh7 : { a: string; }, Symbol(rh7, Decl(logicalOrOperatorWithEveryType.ts, 88, 3)) +>rh7 : { a: string; } >a7 || a7 : { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a7 : { a: string; } +>a7 : { a: string; } var rh8 = a8 || a7; // array || object is array | object ->rh8 : string[] | { a: string; }, Symbol(rh8, Decl(logicalOrOperatorWithEveryType.ts, 89, 3)) +>rh8 : string[] | { a: string; } >a8 || a7 : string[] | { a: string; } ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a8 : string[] +>a7 : { a: string; } var rh9 = null || a7; // null || object is object ->rh9 : { a: string; }, Symbol(rh9, Decl(logicalOrOperatorWithEveryType.ts, 90, 3)) +>rh9 : { a: string; } >null || a7 : { a: string; } >null : null ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a7 : { a: string; } var rh10 = undefined || a7; // undefined || object is object ->rh10 : { a: string; }, Symbol(rh10, Decl(logicalOrOperatorWithEveryType.ts, 91, 3)) +>rh10 : { a: string; } >undefined || a7 : { a: string; } ->undefined : undefined, Symbol(undefined) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>undefined : undefined +>a7 : { a: string; } var ri1 = a1 || a8; // any || array is any ->ri1 : any, Symbol(ri1, Decl(logicalOrOperatorWithEveryType.ts, 93, 3)) +>ri1 : any >a1 || a8 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a1 : any +>a8 : string[] var ri2 = a2 || a8; // boolean || array is boolean | array ->ri2 : boolean | string[], Symbol(ri2, Decl(logicalOrOperatorWithEveryType.ts, 94, 3)) +>ri2 : boolean | string[] >a2 || a8 : boolean | string[] ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a2 : boolean +>a8 : string[] var ri3 = a3 || a8; // number || array is number | array ->ri3 : number | string[], Symbol(ri3, Decl(logicalOrOperatorWithEveryType.ts, 95, 3)) +>ri3 : number | string[] >a3 || a8 : number | string[] ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a3 : number +>a8 : string[] var ri4 = a4 || a8; // string || array is string | array ->ri4 : string | string[], Symbol(ri4, Decl(logicalOrOperatorWithEveryType.ts, 96, 3)) +>ri4 : string | string[] >a4 || a8 : string | string[] ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a4 : string +>a8 : string[] var ri5 = a5 || a8; // void || array is void | array ->ri5 : void | string[], Symbol(ri5, Decl(logicalOrOperatorWithEveryType.ts, 97, 3)) +>ri5 : void | string[] >a5 || a8 : void | string[] ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a5 : void +>a8 : string[] var ri6 = a6 || a8; // enum || array is enum | array ->ri6 : string[] | E, Symbol(ri6, Decl(logicalOrOperatorWithEveryType.ts, 98, 3)) +>ri6 : string[] | E >a6 || a8 : string[] | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a6 : E +>a8 : string[] var ri7 = a7 || a8; // object || array is object | array ->ri7 : string[] | { a: string; }, Symbol(ri7, Decl(logicalOrOperatorWithEveryType.ts, 99, 3)) +>ri7 : string[] | { a: string; } >a7 || a8 : string[] | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a7 : { a: string; } +>a8 : string[] var ri8 = a8 || a8; // array || array is array ->ri8 : string[], Symbol(ri8, Decl(logicalOrOperatorWithEveryType.ts, 100, 3)) +>ri8 : string[] >a8 || a8 : string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a8 : string[] +>a8 : string[] var ri9 = null || a8; // null || array is array ->ri9 : string[], Symbol(ri9, Decl(logicalOrOperatorWithEveryType.ts, 101, 3)) +>ri9 : string[] >null || a8 : string[] >null : null ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a8 : string[] var ri10 = undefined || a8; // undefined || array is array ->ri10 : string[], Symbol(ri10, Decl(logicalOrOperatorWithEveryType.ts, 102, 3)) +>ri10 : string[] >undefined || a8 : string[] ->undefined : undefined, Symbol(undefined) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>undefined : undefined +>a8 : string[] var rj1 = a1 || null; // any || null is any ->rj1 : any, Symbol(rj1, Decl(logicalOrOperatorWithEveryType.ts, 104, 3)) +>rj1 : any >a1 || null : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) +>a1 : any >null : null var rj2 = a2 || null; // boolean || null is boolean ->rj2 : boolean, Symbol(rj2, Decl(logicalOrOperatorWithEveryType.ts, 105, 3)) +>rj2 : boolean >a2 || null : boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) +>a2 : boolean >null : null var rj3 = a3 || null; // number || null is number ->rj3 : number, Symbol(rj3, Decl(logicalOrOperatorWithEveryType.ts, 106, 3)) +>rj3 : number >a3 || null : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) +>a3 : number >null : null var rj4 = a4 || null; // string || null is string ->rj4 : string, Symbol(rj4, Decl(logicalOrOperatorWithEveryType.ts, 107, 3)) +>rj4 : string >a4 || null : string ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) +>a4 : string >null : null var rj5 = a5 || null; // void || null is void ->rj5 : void, Symbol(rj5, Decl(logicalOrOperatorWithEveryType.ts, 108, 3)) +>rj5 : void >a5 || null : void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) +>a5 : void >null : null var rj6 = a6 || null; // enum || null is E ->rj6 : E, Symbol(rj6, Decl(logicalOrOperatorWithEveryType.ts, 109, 3)) +>rj6 : E >a6 || null : E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) +>a6 : E >null : null var rj7 = a7 || null; // object || null is object ->rj7 : { a: string; }, Symbol(rj7, Decl(logicalOrOperatorWithEveryType.ts, 110, 3)) +>rj7 : { a: string; } >a7 || null : { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) +>a7 : { a: string; } >null : null var rj8 = a8 || null; // array || null is array ->rj8 : string[], Symbol(rj8, Decl(logicalOrOperatorWithEveryType.ts, 111, 3)) +>rj8 : string[] >a8 || null : string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) +>a8 : string[] >null : null var rj9 = null || null; // null || null is any ->rj9 : any, Symbol(rj9, Decl(logicalOrOperatorWithEveryType.ts, 112, 3)) +>rj9 : any >null || null : null >null : null >null : null var rj10 = undefined || null; // undefined || null is any ->rj10 : any, Symbol(rj10, Decl(logicalOrOperatorWithEveryType.ts, 113, 3)) +>rj10 : any >undefined || null : null ->undefined : undefined, Symbol(undefined) +>undefined : undefined >null : null var rf1 = a1 || undefined; // any || undefined is any ->rf1 : any, Symbol(rf1, Decl(logicalOrOperatorWithEveryType.ts, 115, 3)) +>rf1 : any >a1 || undefined : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->undefined : undefined, Symbol(undefined) +>a1 : any +>undefined : undefined var rf2 = a2 || undefined; // boolean || undefined is boolean ->rf2 : boolean, Symbol(rf2, Decl(logicalOrOperatorWithEveryType.ts, 116, 3)) +>rf2 : boolean >a2 || undefined : boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) +>a2 : boolean +>undefined : undefined var rf3 = a3 || undefined; // number || undefined is number ->rf3 : number, Symbol(rf3, Decl(logicalOrOperatorWithEveryType.ts, 117, 3)) +>rf3 : number >a3 || undefined : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) +>a3 : number +>undefined : undefined var rf4 = a4 || undefined; // string || undefined is string ->rf4 : string, Symbol(rf4, Decl(logicalOrOperatorWithEveryType.ts, 118, 3)) +>rf4 : string >a4 || undefined : string ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->undefined : undefined, Symbol(undefined) +>a4 : string +>undefined : undefined var rf5 = a5 || undefined; // void || undefined is void ->rf5 : void, Symbol(rf5, Decl(logicalOrOperatorWithEveryType.ts, 119, 3)) +>rf5 : void >a5 || undefined : void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->undefined : undefined, Symbol(undefined) +>a5 : void +>undefined : undefined var rf6 = a6 || undefined; // enum || undefined is E ->rf6 : E, Symbol(rf6, Decl(logicalOrOperatorWithEveryType.ts, 120, 3)) +>rf6 : E >a6 || undefined : E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->undefined : undefined, Symbol(undefined) +>a6 : E +>undefined : undefined var rf7 = a7 || undefined; // object || undefined is object ->rf7 : { a: string; }, Symbol(rf7, Decl(logicalOrOperatorWithEveryType.ts, 121, 3)) +>rf7 : { a: string; } >a7 || undefined : { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->undefined : undefined, Symbol(undefined) +>a7 : { a: string; } +>undefined : undefined var rf8 = a8 || undefined; // array || undefined is array ->rf8 : string[], Symbol(rf8, Decl(logicalOrOperatorWithEveryType.ts, 122, 3)) +>rf8 : string[] >a8 || undefined : string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->undefined : undefined, Symbol(undefined) +>a8 : string[] +>undefined : undefined var rf9 = null || undefined; // null || undefined is any ->rf9 : any, Symbol(rf9, Decl(logicalOrOperatorWithEveryType.ts, 123, 3)) +>rf9 : any >null || undefined : null >null : null ->undefined : undefined, Symbol(undefined) +>undefined : undefined var rf10 = undefined || undefined; // undefined || undefined is any ->rf10 : any, Symbol(rf10, Decl(logicalOrOperatorWithEveryType.ts, 124, 3)) +>rf10 : any >undefined || undefined : undefined ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) +>undefined : undefined +>undefined : undefined diff --git a/tests/baselines/reference/logicalOrOperatorWithEveryType.types.pull b/tests/baselines/reference/logicalOrOperatorWithEveryType.types.pull deleted file mode 100644 index 00f42bba35ba5..0000000000000 --- a/tests/baselines/reference/logicalOrOperatorWithEveryType.types.pull +++ /dev/null @@ -1,638 +0,0 @@ -=== tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithEveryType.ts === -// The || operator permits the operands to be of any type. -// If the || expression is not contextually typed, the right operand is contextually typed -// by the type of the left operand and the result is of the best common type of the two -// operand types. - -enum E { a, b, c } ->E : E, Symbol(E, Decl(logicalOrOperatorWithEveryType.ts, 0, 0)) ->a : E, Symbol(E.a, Decl(logicalOrOperatorWithEveryType.ts, 5, 8)) ->b : E, Symbol(E.b, Decl(logicalOrOperatorWithEveryType.ts, 5, 11)) ->c : E, Symbol(E.c, Decl(logicalOrOperatorWithEveryType.ts, 5, 14)) - -var a1: any; ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var a2: boolean; ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var a3: number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var a4: string; ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var a5: void; ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var a6: E; ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->E : E, Symbol(E, Decl(logicalOrOperatorWithEveryType.ts, 0, 0)) - -var a7: {a: string}; ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a : string, Symbol(a, Decl(logicalOrOperatorWithEveryType.ts, 13, 9)) - -var a8: string[]; ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ra1 = a1 || a1; // any || any is any ->ra1 : any, Symbol(ra1, Decl(logicalOrOperatorWithEveryType.ts, 16, 3)) ->a1 || a1 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra2 = a2 || a1; // boolean || any is any ->ra2 : any, Symbol(ra2, Decl(logicalOrOperatorWithEveryType.ts, 17, 3)) ->a2 || a1 : any ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra3 = a3 || a1; // number || any is any ->ra3 : any, Symbol(ra3, Decl(logicalOrOperatorWithEveryType.ts, 18, 3)) ->a3 || a1 : any ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra4 = a4 || a1; // string || any is any ->ra4 : any, Symbol(ra4, Decl(logicalOrOperatorWithEveryType.ts, 19, 3)) ->a4 || a1 : any ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra5 = a5 || a1; // void || any is any ->ra5 : any, Symbol(ra5, Decl(logicalOrOperatorWithEveryType.ts, 20, 3)) ->a5 || a1 : any ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra6 = a6 || a1; // enum || any is any ->ra6 : any, Symbol(ra6, Decl(logicalOrOperatorWithEveryType.ts, 21, 3)) ->a6 || a1 : any ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra7 = a7 || a1; // object || any is any ->ra7 : any, Symbol(ra7, Decl(logicalOrOperatorWithEveryType.ts, 22, 3)) ->a7 || a1 : any ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra8 = a8 || a1; // array || any is any ->ra8 : any, Symbol(ra8, Decl(logicalOrOperatorWithEveryType.ts, 23, 3)) ->a8 || a1 : any ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra9 = null || a1; // null || any is any ->ra9 : any, Symbol(ra9, Decl(logicalOrOperatorWithEveryType.ts, 24, 3)) ->null || a1 : any ->null : null ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var ra10 = undefined || a1; // undefined || any is any ->ra10 : any, Symbol(ra10, Decl(logicalOrOperatorWithEveryType.ts, 25, 3)) ->undefined || a1 : any ->undefined : undefined, Symbol(undefined) ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) - -var rb1 = a1 || a2; // any || boolean is any ->rb1 : any, Symbol(rb1, Decl(logicalOrOperatorWithEveryType.ts, 27, 3)) ->a1 || a2 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb2 = a2 || a2; // boolean || boolean is boolean ->rb2 : boolean, Symbol(rb2, Decl(logicalOrOperatorWithEveryType.ts, 28, 3)) ->a2 || a2 : boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb3 = a3 || a2; // number || boolean is number | boolean ->rb3 : number | boolean, Symbol(rb3, Decl(logicalOrOperatorWithEveryType.ts, 29, 3)) ->a3 || a2 : number | boolean ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb4 = a4 || a2; // string || boolean is string | boolean ->rb4 : string | boolean, Symbol(rb4, Decl(logicalOrOperatorWithEveryType.ts, 30, 3)) ->a4 || a2 : string | boolean ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb5 = a5 || a2; // void || boolean is void | boolean ->rb5 : boolean | void, Symbol(rb5, Decl(logicalOrOperatorWithEveryType.ts, 31, 3)) ->a5 || a2 : boolean | void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb6 = a6 || a2; // enum || boolean is E | boolean ->rb6 : boolean | E, Symbol(rb6, Decl(logicalOrOperatorWithEveryType.ts, 32, 3)) ->a6 || a2 : boolean | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb7 = a7 || a2; // object || boolean is object | boolean ->rb7 : boolean | { a: string; }, Symbol(rb7, Decl(logicalOrOperatorWithEveryType.ts, 33, 3)) ->a7 || a2 : boolean | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb8 = a8 || a2; // array || boolean is array | boolean ->rb8 : boolean | string[], Symbol(rb8, Decl(logicalOrOperatorWithEveryType.ts, 34, 3)) ->a8 || a2 : boolean | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb9 = null || a2; // null || boolean is boolean ->rb9 : boolean, Symbol(rb9, Decl(logicalOrOperatorWithEveryType.ts, 35, 3)) ->null || a2 : boolean ->null : null ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rb10= undefined || a2; // undefined || boolean is boolean ->rb10 : boolean, Symbol(rb10, Decl(logicalOrOperatorWithEveryType.ts, 36, 3)) ->undefined || a2 : boolean ->undefined : undefined, Symbol(undefined) ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) - -var rc1 = a1 || a3; // any || number is any ->rc1 : any, Symbol(rc1, Decl(logicalOrOperatorWithEveryType.ts, 38, 3)) ->a1 || a3 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc2 = a2 || a3; // boolean || number is boolean | number ->rc2 : number | boolean, Symbol(rc2, Decl(logicalOrOperatorWithEveryType.ts, 39, 3)) ->a2 || a3 : number | boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc3 = a3 || a3; // number || number is number ->rc3 : number, Symbol(rc3, Decl(logicalOrOperatorWithEveryType.ts, 40, 3)) ->a3 || a3 : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc4 = a4 || a3; // string || number is string | number ->rc4 : string | number, Symbol(rc4, Decl(logicalOrOperatorWithEveryType.ts, 41, 3)) ->a4 || a3 : string | number ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc5 = a5 || a3; // void || number is void | number ->rc5 : number | void, Symbol(rc5, Decl(logicalOrOperatorWithEveryType.ts, 42, 3)) ->a5 || a3 : number | void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc6 = a6 || a3; // enum || number is number ->rc6 : number, Symbol(rc6, Decl(logicalOrOperatorWithEveryType.ts, 43, 3)) ->a6 || a3 : number ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc7 = a7 || a3; // object || number is object | number ->rc7 : number | { a: string; }, Symbol(rc7, Decl(logicalOrOperatorWithEveryType.ts, 44, 3)) ->a7 || a3 : number | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc8 = a8 || a3; // array || number is array | number ->rc8 : number | string[], Symbol(rc8, Decl(logicalOrOperatorWithEveryType.ts, 45, 3)) ->a8 || a3 : number | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc9 = null || a3; // null || number is number ->rc9 : number, Symbol(rc9, Decl(logicalOrOperatorWithEveryType.ts, 46, 3)) ->null || a3 : number ->null : null ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rc10 = undefined || a3; // undefined || number is number ->rc10 : number, Symbol(rc10, Decl(logicalOrOperatorWithEveryType.ts, 47, 3)) ->undefined || a3 : number ->undefined : undefined, Symbol(undefined) ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) - -var rd1 = a1 || a4; // any || string is any ->rd1 : any, Symbol(rd1, Decl(logicalOrOperatorWithEveryType.ts, 49, 3)) ->a1 || a4 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd2 = a2 || a4; // boolean || string is boolean | string ->rd2 : string | boolean, Symbol(rd2, Decl(logicalOrOperatorWithEveryType.ts, 50, 3)) ->a2 || a4 : string | boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd3 = a3 || a4; // number || string is number | string ->rd3 : string | number, Symbol(rd3, Decl(logicalOrOperatorWithEveryType.ts, 51, 3)) ->a3 || a4 : string | number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd4 = a4 || a4; // string || string is string ->rd4 : string, Symbol(rd4, Decl(logicalOrOperatorWithEveryType.ts, 52, 3)) ->a4 || a4 : string ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd5 = a5 || a4; // void || string is void | string ->rd5 : string | void, Symbol(rd5, Decl(logicalOrOperatorWithEveryType.ts, 53, 3)) ->a5 || a4 : string | void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd6 = a6 || a4; // enum || string is enum | string ->rd6 : string | E, Symbol(rd6, Decl(logicalOrOperatorWithEveryType.ts, 54, 3)) ->a6 || a4 : string | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd7 = a7 || a4; // object || string is object | string ->rd7 : string | { a: string; }, Symbol(rd7, Decl(logicalOrOperatorWithEveryType.ts, 55, 3)) ->a7 || a4 : string | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd8 = a8 || a4; // array || string is array | string ->rd8 : string | string[], Symbol(rd8, Decl(logicalOrOperatorWithEveryType.ts, 56, 3)) ->a8 || a4 : string | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd9 = null || a4; // null || string is string ->rd9 : string, Symbol(rd9, Decl(logicalOrOperatorWithEveryType.ts, 57, 3)) ->null || a4 : string ->null : null ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var rd10 = undefined || a4; // undefined || string is string ->rd10 : string, Symbol(rd10, Decl(logicalOrOperatorWithEveryType.ts, 58, 3)) ->undefined || a4 : string ->undefined : undefined, Symbol(undefined) ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) - -var re1 = a1 || a5; // any || void is any ->re1 : any, Symbol(re1, Decl(logicalOrOperatorWithEveryType.ts, 60, 3)) ->a1 || a5 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re2 = a2 || a5; // boolean || void is boolean | void ->re2 : boolean | void, Symbol(re2, Decl(logicalOrOperatorWithEveryType.ts, 61, 3)) ->a2 || a5 : boolean | void ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re3 = a3 || a5; // number || void is number | void ->re3 : number | void, Symbol(re3, Decl(logicalOrOperatorWithEveryType.ts, 62, 3)) ->a3 || a5 : number | void ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re4 = a4 || a5; // string || void is string | void ->re4 : string | void, Symbol(re4, Decl(logicalOrOperatorWithEveryType.ts, 63, 3)) ->a4 || a5 : string | void ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re5 = a5 || a5; // void || void is void ->re5 : void, Symbol(re5, Decl(logicalOrOperatorWithEveryType.ts, 64, 3)) ->a5 || a5 : void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re6 = a6 || a5; // enum || void is enum | void ->re6 : void | E, Symbol(re6, Decl(logicalOrOperatorWithEveryType.ts, 65, 3)) ->a6 || a5 : void | E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re7 = a7 || a5; // object || void is object | void ->re7 : void | { a: string; }, Symbol(re7, Decl(logicalOrOperatorWithEveryType.ts, 66, 3)) ->a7 || a5 : void | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re8 = a8 || a5; // array || void is array | void ->re8 : void | string[], Symbol(re8, Decl(logicalOrOperatorWithEveryType.ts, 67, 3)) ->a8 || a5 : void | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re9 = null || a5; // null || void is void ->re9 : void, Symbol(re9, Decl(logicalOrOperatorWithEveryType.ts, 68, 3)) ->null || a5 : void ->null : null ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var re10 = undefined || a5; // undefined || void is void ->re10 : void, Symbol(re10, Decl(logicalOrOperatorWithEveryType.ts, 69, 3)) ->undefined || a5 : void ->undefined : undefined, Symbol(undefined) ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) - -var rg1 = a1 || a6; // any || enum is any ->rg1 : any, Symbol(rg1, Decl(logicalOrOperatorWithEveryType.ts, 71, 3)) ->a1 || a6 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg2 = a2 || a6; // boolean || enum is boolean | enum ->rg2 : boolean | E, Symbol(rg2, Decl(logicalOrOperatorWithEveryType.ts, 72, 3)) ->a2 || a6 : boolean | E ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg3 = a3 || a6; // number || enum is number ->rg3 : number, Symbol(rg3, Decl(logicalOrOperatorWithEveryType.ts, 73, 3)) ->a3 || a6 : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg4 = a4 || a6; // string || enum is string | enum ->rg4 : string | E, Symbol(rg4, Decl(logicalOrOperatorWithEveryType.ts, 74, 3)) ->a4 || a6 : string | E ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg5 = a5 || a6; // void || enum is void | enum ->rg5 : void | E, Symbol(rg5, Decl(logicalOrOperatorWithEveryType.ts, 75, 3)) ->a5 || a6 : void | E ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg6 = a6 || a6; // enum || enum is E ->rg6 : E, Symbol(rg6, Decl(logicalOrOperatorWithEveryType.ts, 76, 3)) ->a6 || a6 : E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg7 = a7 || a6; // object || enum is object | enum ->rg7 : E | { a: string; }, Symbol(rg7, Decl(logicalOrOperatorWithEveryType.ts, 77, 3)) ->a7 || a6 : E | { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg8 = a8 || a6; // array || enum is array | enum ->rg8 : E | string[], Symbol(rg8, Decl(logicalOrOperatorWithEveryType.ts, 78, 3)) ->a8 || a6 : E | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg9 = null || a6; // null || enum is E ->rg9 : E, Symbol(rg9, Decl(logicalOrOperatorWithEveryType.ts, 79, 3)) ->null || a6 : E ->null : null ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rg10 = undefined || a6; // undefined || enum is E ->rg10 : E, Symbol(rg10, Decl(logicalOrOperatorWithEveryType.ts, 80, 3)) ->undefined || a6 : E ->undefined : undefined, Symbol(undefined) ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) - -var rh1 = a1 || a7; // any || object is any ->rh1 : any, Symbol(rh1, Decl(logicalOrOperatorWithEveryType.ts, 82, 3)) ->a1 || a7 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh2 = a2 || a7; // boolean || object is boolean | object ->rh2 : boolean | { a: string; }, Symbol(rh2, Decl(logicalOrOperatorWithEveryType.ts, 83, 3)) ->a2 || a7 : boolean | { a: string; } ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh3 = a3 || a7; // number || object is number | object ->rh3 : number | { a: string; }, Symbol(rh3, Decl(logicalOrOperatorWithEveryType.ts, 84, 3)) ->a3 || a7 : number | { a: string; } ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh4 = a4 || a7; // string || object is string | object ->rh4 : string | { a: string; }, Symbol(rh4, Decl(logicalOrOperatorWithEveryType.ts, 85, 3)) ->a4 || a7 : string | { a: string; } ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh5 = a5 || a7; // void || object is void | object ->rh5 : void | { a: string; }, Symbol(rh5, Decl(logicalOrOperatorWithEveryType.ts, 86, 3)) ->a5 || a7 : void | { a: string; } ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh6 = a6 || a7; // enum || object is enum | object ->rh6 : E | { a: string; }, Symbol(rh6, Decl(logicalOrOperatorWithEveryType.ts, 87, 3)) ->a6 || a7 : E | { a: string; } ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh7 = a7 || a7; // object || object is object ->rh7 : { a: string; }, Symbol(rh7, Decl(logicalOrOperatorWithEveryType.ts, 88, 3)) ->a7 || a7 : { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh8 = a8 || a7; // array || object is array | object ->rh8 : { a: string; } | string[], Symbol(rh8, Decl(logicalOrOperatorWithEveryType.ts, 89, 3)) ->a8 || a7 : { a: string; } | string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh9 = null || a7; // null || object is object ->rh9 : { a: string; }, Symbol(rh9, Decl(logicalOrOperatorWithEveryType.ts, 90, 3)) ->null || a7 : { a: string; } ->null : null ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var rh10 = undefined || a7; // undefined || object is object ->rh10 : { a: string; }, Symbol(rh10, Decl(logicalOrOperatorWithEveryType.ts, 91, 3)) ->undefined || a7 : { a: string; } ->undefined : undefined, Symbol(undefined) ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) - -var ri1 = a1 || a8; // any || array is any ->ri1 : any, Symbol(ri1, Decl(logicalOrOperatorWithEveryType.ts, 93, 3)) ->a1 || a8 : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri2 = a2 || a8; // boolean || array is boolean | array ->ri2 : boolean | string[], Symbol(ri2, Decl(logicalOrOperatorWithEveryType.ts, 94, 3)) ->a2 || a8 : boolean | string[] ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri3 = a3 || a8; // number || array is number | array ->ri3 : number | string[], Symbol(ri3, Decl(logicalOrOperatorWithEveryType.ts, 95, 3)) ->a3 || a8 : number | string[] ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri4 = a4 || a8; // string || array is string | array ->ri4 : string | string[], Symbol(ri4, Decl(logicalOrOperatorWithEveryType.ts, 96, 3)) ->a4 || a8 : string | string[] ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri5 = a5 || a8; // void || array is void | array ->ri5 : void | string[], Symbol(ri5, Decl(logicalOrOperatorWithEveryType.ts, 97, 3)) ->a5 || a8 : void | string[] ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri6 = a6 || a8; // enum || array is enum | array ->ri6 : E | string[], Symbol(ri6, Decl(logicalOrOperatorWithEveryType.ts, 98, 3)) ->a6 || a8 : E | string[] ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri7 = a7 || a8; // object || array is object | array ->ri7 : { a: string; } | string[], Symbol(ri7, Decl(logicalOrOperatorWithEveryType.ts, 99, 3)) ->a7 || a8 : { a: string; } | string[] ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri8 = a8 || a8; // array || array is array ->ri8 : string[], Symbol(ri8, Decl(logicalOrOperatorWithEveryType.ts, 100, 3)) ->a8 || a8 : string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri9 = null || a8; // null || array is array ->ri9 : string[], Symbol(ri9, Decl(logicalOrOperatorWithEveryType.ts, 101, 3)) ->null || a8 : string[] ->null : null ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var ri10 = undefined || a8; // undefined || array is array ->ri10 : string[], Symbol(ri10, Decl(logicalOrOperatorWithEveryType.ts, 102, 3)) ->undefined || a8 : string[] ->undefined : undefined, Symbol(undefined) ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) - -var rj1 = a1 || null; // any || null is any ->rj1 : any, Symbol(rj1, Decl(logicalOrOperatorWithEveryType.ts, 104, 3)) ->a1 || null : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->null : null - -var rj2 = a2 || null; // boolean || null is boolean ->rj2 : boolean, Symbol(rj2, Decl(logicalOrOperatorWithEveryType.ts, 105, 3)) ->a2 || null : boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->null : null - -var rj3 = a3 || null; // number || null is number ->rj3 : number, Symbol(rj3, Decl(logicalOrOperatorWithEveryType.ts, 106, 3)) ->a3 || null : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->null : null - -var rj4 = a4 || null; // string || null is string ->rj4 : string, Symbol(rj4, Decl(logicalOrOperatorWithEveryType.ts, 107, 3)) ->a4 || null : string ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->null : null - -var rj5 = a5 || null; // void || null is void ->rj5 : void, Symbol(rj5, Decl(logicalOrOperatorWithEveryType.ts, 108, 3)) ->a5 || null : void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->null : null - -var rj6 = a6 || null; // enum || null is E ->rj6 : E, Symbol(rj6, Decl(logicalOrOperatorWithEveryType.ts, 109, 3)) ->a6 || null : E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->null : null - -var rj7 = a7 || null; // object || null is object ->rj7 : { a: string; }, Symbol(rj7, Decl(logicalOrOperatorWithEveryType.ts, 110, 3)) ->a7 || null : { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->null : null - -var rj8 = a8 || null; // array || null is array ->rj8 : string[], Symbol(rj8, Decl(logicalOrOperatorWithEveryType.ts, 111, 3)) ->a8 || null : string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->null : null - -var rj9 = null || null; // null || null is any ->rj9 : any, Symbol(rj9, Decl(logicalOrOperatorWithEveryType.ts, 112, 3)) ->null || null : null ->null : null ->null : null - -var rj10 = undefined || null; // undefined || null is any ->rj10 : any, Symbol(rj10, Decl(logicalOrOperatorWithEveryType.ts, 113, 3)) ->undefined || null : null ->undefined : undefined, Symbol(undefined) ->null : null - -var rf1 = a1 || undefined; // any || undefined is any ->rf1 : any, Symbol(rf1, Decl(logicalOrOperatorWithEveryType.ts, 115, 3)) ->a1 || undefined : any ->a1 : any, Symbol(a1, Decl(logicalOrOperatorWithEveryType.ts, 7, 3)) ->undefined : undefined, Symbol(undefined) - -var rf2 = a2 || undefined; // boolean || undefined is boolean ->rf2 : boolean, Symbol(rf2, Decl(logicalOrOperatorWithEveryType.ts, 116, 3)) ->a2 || undefined : boolean ->a2 : boolean, Symbol(a2, Decl(logicalOrOperatorWithEveryType.ts, 8, 3)) ->undefined : undefined, Symbol(undefined) - -var rf3 = a3 || undefined; // number || undefined is number ->rf3 : number, Symbol(rf3, Decl(logicalOrOperatorWithEveryType.ts, 117, 3)) ->a3 || undefined : number ->a3 : number, Symbol(a3, Decl(logicalOrOperatorWithEveryType.ts, 9, 3)) ->undefined : undefined, Symbol(undefined) - -var rf4 = a4 || undefined; // string || undefined is string ->rf4 : string, Symbol(rf4, Decl(logicalOrOperatorWithEveryType.ts, 118, 3)) ->a4 || undefined : string ->a4 : string, Symbol(a4, Decl(logicalOrOperatorWithEveryType.ts, 10, 3)) ->undefined : undefined, Symbol(undefined) - -var rf5 = a5 || undefined; // void || undefined is void ->rf5 : void, Symbol(rf5, Decl(logicalOrOperatorWithEveryType.ts, 119, 3)) ->a5 || undefined : void ->a5 : void, Symbol(a5, Decl(logicalOrOperatorWithEveryType.ts, 11, 3)) ->undefined : undefined, Symbol(undefined) - -var rf6 = a6 || undefined; // enum || undefined is E ->rf6 : E, Symbol(rf6, Decl(logicalOrOperatorWithEveryType.ts, 120, 3)) ->a6 || undefined : E ->a6 : E, Symbol(a6, Decl(logicalOrOperatorWithEveryType.ts, 12, 3)) ->undefined : undefined, Symbol(undefined) - -var rf7 = a7 || undefined; // object || undefined is object ->rf7 : { a: string; }, Symbol(rf7, Decl(logicalOrOperatorWithEveryType.ts, 121, 3)) ->a7 || undefined : { a: string; } ->a7 : { a: string; }, Symbol(a7, Decl(logicalOrOperatorWithEveryType.ts, 13, 3)) ->undefined : undefined, Symbol(undefined) - -var rf8 = a8 || undefined; // array || undefined is array ->rf8 : string[], Symbol(rf8, Decl(logicalOrOperatorWithEveryType.ts, 122, 3)) ->a8 || undefined : string[] ->a8 : string[], Symbol(a8, Decl(logicalOrOperatorWithEveryType.ts, 14, 3)) ->undefined : undefined, Symbol(undefined) - -var rf9 = null || undefined; // null || undefined is any ->rf9 : any, Symbol(rf9, Decl(logicalOrOperatorWithEveryType.ts, 123, 3)) ->null || undefined : null ->null : null ->undefined : undefined, Symbol(undefined) - -var rf10 = undefined || undefined; // undefined || undefined is any ->rf10 : any, Symbol(rf10, Decl(logicalOrOperatorWithEveryType.ts, 124, 3)) ->undefined || undefined : undefined ->undefined : undefined, Symbol(undefined) ->undefined : undefined, Symbol(undefined) - diff --git a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.symbols b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.symbols new file mode 100644 index 0000000000000..05b33a2b185e9 --- /dev/null +++ b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.symbols @@ -0,0 +1,108 @@ +=== tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithTypeParameters.ts === +function fn1(t: T, u: U) { +>fn1 : Symbol(fn1, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 0)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 13)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 15)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 13)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 24)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 15)) + + var r1 = t || t; +>r1 : Symbol(r1, Decl(logicalOrOperatorWithTypeParameters.ts, 1, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) + + var r2: T = t || t; +>r2 : Symbol(r2, Decl(logicalOrOperatorWithTypeParameters.ts, 2, 7)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 13)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) + + var r3 = t || u; +>r3 : Symbol(r3, Decl(logicalOrOperatorWithTypeParameters.ts, 3, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 24)) + + var r4: {} = t || u; +>r4 : Symbol(r4, Decl(logicalOrOperatorWithTypeParameters.ts, 4, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 24)) +} + +function fn2(t: T, u: U, v: V) { +>fn2 : Symbol(fn2, Decl(logicalOrOperatorWithTypeParameters.ts, 5, 1)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 13)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 15)) +>V : Symbol(V, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 32)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 50)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 13)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 15)) +>v : Symbol(v, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 61)) +>V : Symbol(V, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 32)) + + var r1 = t || u; +>r1 : Symbol(r1, Decl(logicalOrOperatorWithTypeParameters.ts, 8, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 50)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) + + //var r2: T = t || u; + var r3 = u || u; +>r3 : Symbol(r3, Decl(logicalOrOperatorWithTypeParameters.ts, 10, 7)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) + + var r4: U = u || u; +>r4 : Symbol(r4, Decl(logicalOrOperatorWithTypeParameters.ts, 11, 7)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 15)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) + + var r5 = u || v; +>r5 : Symbol(r5, Decl(logicalOrOperatorWithTypeParameters.ts, 12, 7)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>v : Symbol(v, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 61)) + + var r6: {} = u || v; +>r6 : Symbol(r6, Decl(logicalOrOperatorWithTypeParameters.ts, 13, 7)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>v : Symbol(v, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 61)) + + //var r7: T = u || v; +} + +function fn3(t: T, u: U) { +>fn3 : Symbol(fn3, Decl(logicalOrOperatorWithTypeParameters.ts, 15, 1)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 13)) +>a : Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 24)) +>b : Symbol(b, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 35)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 48)) +>a : Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 60)) +>b : Symbol(b, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 71)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) +>T : Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 13)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) +>U : Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 48)) + + var r1 = t || u; +>r1 : Symbol(r1, Decl(logicalOrOperatorWithTypeParameters.ts, 18, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) + + var r2: {} = t || u; +>r2 : Symbol(r2, Decl(logicalOrOperatorWithTypeParameters.ts, 19, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) + + var r3 = t || { a: '' }; +>r3 : Symbol(r3, Decl(logicalOrOperatorWithTypeParameters.ts, 20, 7)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) +>a : Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 20, 19)) + + var r4: { a: string } = t || u; +>r4 : Symbol(r4, Decl(logicalOrOperatorWithTypeParameters.ts, 21, 7)) +>a : Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 21, 13)) +>t : Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) +>u : Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) +} diff --git a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types index 29b3db3d8d631..f887ad7ae140c 100644 --- a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types +++ b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types @@ -1,123 +1,123 @@ === tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrOperatorWithTypeParameters.ts === function fn1(t: T, u: U) { ->fn1 : (t: T, u: U) => void, Symbol(fn1, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 0)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 13)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 15)) ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 13)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 24)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 15)) +>fn1 : (t: T, u: U) => void +>T : T +>U : U +>t : T +>T : T +>u : U +>U : U var r1 = t || t; ->r1 : T, Symbol(r1, Decl(logicalOrOperatorWithTypeParameters.ts, 1, 7)) +>r1 : T >t || t : T ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>t : T +>t : T var r2: T = t || t; ->r2 : T, Symbol(r2, Decl(logicalOrOperatorWithTypeParameters.ts, 2, 7)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 13)) +>r2 : T +>T : T >t || t : T ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) +>t : T +>t : T var r3 = t || u; ->r3 : T | U, Symbol(r3, Decl(logicalOrOperatorWithTypeParameters.ts, 3, 7)) +>r3 : T | U >t || u : T | U ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 24)) +>t : T +>u : U var r4: {} = t || u; ->r4 : {}, Symbol(r4, Decl(logicalOrOperatorWithTypeParameters.ts, 4, 7)) +>r4 : {} >t || u : T | U ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 19)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 0, 24)) +>t : T +>u : U } function fn2(t: T, u: U, v: V) { ->fn2 : (t: T, u: U, v: V) => void, Symbol(fn2, Decl(logicalOrOperatorWithTypeParameters.ts, 5, 1)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 13)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 15)) ->V : V, Symbol(V, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 32)) ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 50)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 13)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 15)) ->v : V, Symbol(v, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 61)) ->V : V, Symbol(V, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 32)) +>fn2 : (t: T, u: U, v: V) => void +>T : T +>U : U +>V : V +>t : T +>T : T +>u : U +>U : U +>v : V +>V : V var r1 = t || u; ->r1 : T | U, Symbol(r1, Decl(logicalOrOperatorWithTypeParameters.ts, 8, 7)) +>r1 : T | U >t || u : T | U ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 50)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>t : T +>u : U //var r2: T = t || u; var r3 = u || u; ->r3 : U, Symbol(r3, Decl(logicalOrOperatorWithTypeParameters.ts, 10, 7)) +>r3 : U >u || u : U ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>u : U +>u : U var r4: U = u || u; ->r4 : U, Symbol(r4, Decl(logicalOrOperatorWithTypeParameters.ts, 11, 7)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 15)) +>r4 : U +>U : U >u || u : U ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) +>u : U +>u : U var r5 = u || v; ->r5 : U | V, Symbol(r5, Decl(logicalOrOperatorWithTypeParameters.ts, 12, 7)) +>r5 : U | V >u || v : U | V ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) ->v : V, Symbol(v, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 61)) +>u : U +>v : V var r6: {} = u || v; ->r6 : {}, Symbol(r6, Decl(logicalOrOperatorWithTypeParameters.ts, 13, 7)) +>r6 : {} >u || v : U | V ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 55)) ->v : V, Symbol(v, Decl(logicalOrOperatorWithTypeParameters.ts, 7, 61)) +>u : U +>v : V //var r7: T = u || v; } function fn3(t: T, u: U) { ->fn3 : (t: T, u: U) => void, Symbol(fn3, Decl(logicalOrOperatorWithTypeParameters.ts, 15, 1)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 13)) ->a : string, Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 24)) ->b : string, Symbol(b, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 35)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 48)) ->a : string, Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 60)) ->b : number, Symbol(b, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 71)) ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) ->T : T, Symbol(T, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 13)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) ->U : U, Symbol(U, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 48)) +>fn3 : (t: T, u: U) => void +>T : T +>a : string +>b : string +>U : U +>a : string +>b : number +>t : T +>T : T +>u : U +>U : U var r1 = t || u; ->r1 : T | U, Symbol(r1, Decl(logicalOrOperatorWithTypeParameters.ts, 18, 7)) +>r1 : T | U >t || u : T | U ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) +>t : T +>u : U var r2: {} = t || u; ->r2 : {}, Symbol(r2, Decl(logicalOrOperatorWithTypeParameters.ts, 19, 7)) +>r2 : {} >t || u : T | U ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) +>t : T +>u : U var r3 = t || { a: '' }; ->r3 : { a: string; }, Symbol(r3, Decl(logicalOrOperatorWithTypeParameters.ts, 20, 7)) +>r3 : { a: string; } >t || { a: '' } : { a: string; } ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) +>t : T >{ a: '' } : { a: string; } ->a : string, Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 20, 19)) +>a : string >'' : string var r4: { a: string } = t || u; ->r4 : { a: string; }, Symbol(r4, Decl(logicalOrOperatorWithTypeParameters.ts, 21, 7)) ->a : string, Symbol(a, Decl(logicalOrOperatorWithTypeParameters.ts, 21, 13)) +>r4 : { a: string; } +>a : string >t || u : T | U ->t : T, Symbol(t, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 85)) ->u : U, Symbol(u, Decl(logicalOrOperatorWithTypeParameters.ts, 17, 90)) +>t : T +>u : U } diff --git a/tests/baselines/reference/m7Bugs.symbols b/tests/baselines/reference/m7Bugs.symbols new file mode 100644 index 0000000000000..be6d798a8a532 --- /dev/null +++ b/tests/baselines/reference/m7Bugs.symbols @@ -0,0 +1,57 @@ +=== tests/cases/compiler/m7Bugs.ts === +// scenario 1 +interface ISomething { +>ISomething : Symbol(ISomething, Decl(m7Bugs.ts, 0, 0)) + + something: number; +>something : Symbol(something, Decl(m7Bugs.ts, 1, 22)) +} + +var s: ISomething = ({ }); +>s : Symbol(s, Decl(m7Bugs.ts, 5, 3)) +>ISomething : Symbol(ISomething, Decl(m7Bugs.ts, 0, 0)) +>ISomething : Symbol(ISomething, Decl(m7Bugs.ts, 0, 0)) + + +// scenario 2 +interface A { x: string; } +>A : Symbol(A, Decl(m7Bugs.ts, 5, 38)) +>x : Symbol(x, Decl(m7Bugs.ts, 9, 13)) + +interface B extends A { } +>B : Symbol(B, Decl(m7Bugs.ts, 9, 26)) +>A : Symbol(A, Decl(m7Bugs.ts, 5, 38)) + +var x: B = { }; +>x : Symbol(x, Decl(m7Bugs.ts, 13, 3)) +>B : Symbol(B, Decl(m7Bugs.ts, 9, 26)) +>B : Symbol(B, Decl(m7Bugs.ts, 9, 26)) + +class C1 { +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) + + public x: string; +>x : Symbol(x, Decl(m7Bugs.ts, 15, 10)) +} + +class C2 extends C1 {} +>C2 : Symbol(C2, Decl(m7Bugs.ts, 17, 1)) +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) + +var y1: C1 = new C2(); +>y1 : Symbol(y1, Decl(m7Bugs.ts, 21, 3)) +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C2 : Symbol(C2, Decl(m7Bugs.ts, 17, 1)) + +var y2: C1 = new C2(); +>y2 : Symbol(y2, Decl(m7Bugs.ts, 22, 3)) +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C2 : Symbol(C2, Decl(m7Bugs.ts, 17, 1)) + +var y3: C1 = {}; +>y3 : Symbol(y3, Decl(m7Bugs.ts, 23, 3)) +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C1 : Symbol(C1, Decl(m7Bugs.ts, 13, 18)) + + diff --git a/tests/baselines/reference/m7Bugs.types b/tests/baselines/reference/m7Bugs.types index e32def09aac2b..fa627f20cf72b 100644 --- a/tests/baselines/reference/m7Bugs.types +++ b/tests/baselines/reference/m7Bugs.types @@ -1,67 +1,67 @@ === tests/cases/compiler/m7Bugs.ts === // scenario 1 interface ISomething { ->ISomething : ISomething, Symbol(ISomething, Decl(m7Bugs.ts, 0, 0)) +>ISomething : ISomething something: number; ->something : number, Symbol(something, Decl(m7Bugs.ts, 1, 22)) +>something : number } var s: ISomething = ({ }); ->s : ISomething, Symbol(s, Decl(m7Bugs.ts, 5, 3)) ->ISomething : ISomething, Symbol(ISomething, Decl(m7Bugs.ts, 0, 0)) +>s : ISomething +>ISomething : ISomething >({ }) : ISomething ->ISomething : ISomething, Symbol(ISomething, Decl(m7Bugs.ts, 0, 0)) +>ISomething : ISomething >({ }) : {} >{ } : {} // scenario 2 interface A { x: string; } ->A : A, Symbol(A, Decl(m7Bugs.ts, 5, 38)) ->x : string, Symbol(x, Decl(m7Bugs.ts, 9, 13)) +>A : A +>x : string interface B extends A { } ->B : B, Symbol(B, Decl(m7Bugs.ts, 9, 26)) ->A : A, Symbol(A, Decl(m7Bugs.ts, 5, 38)) +>B : B +>A : A var x: B = { }; ->x : B, Symbol(x, Decl(m7Bugs.ts, 13, 3)) ->B : B, Symbol(B, Decl(m7Bugs.ts, 9, 26)) +>x : B +>B : B >{ } : B ->B : B, Symbol(B, Decl(m7Bugs.ts, 9, 26)) +>B : B >{ } : {} class C1 { ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C1 : C1 public x: string; ->x : string, Symbol(x, Decl(m7Bugs.ts, 15, 10)) +>x : string } class C2 extends C1 {} ->C2 : C2, Symbol(C2, Decl(m7Bugs.ts, 17, 1)) ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C2 : C2 +>C1 : C1 var y1: C1 = new C2(); ->y1 : C1, Symbol(y1, Decl(m7Bugs.ts, 21, 3)) ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>y1 : C1 +>C1 : C1 >new C2() : C2 ->C2 : typeof C2, Symbol(C2, Decl(m7Bugs.ts, 17, 1)) +>C2 : typeof C2 var y2: C1 = new C2(); ->y2 : C1, Symbol(y2, Decl(m7Bugs.ts, 22, 3)) ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>y2 : C1 +>C1 : C1 > new C2() : C1 ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C1 : C1 >new C2() : C2 ->C2 : typeof C2, Symbol(C2, Decl(m7Bugs.ts, 17, 1)) +>C2 : typeof C2 var y3: C1 = {}; ->y3 : C1, Symbol(y3, Decl(m7Bugs.ts, 23, 3)) ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>y3 : C1 +>C1 : C1 > {} : C1 ->C1 : C1, Symbol(C1, Decl(m7Bugs.ts, 13, 18)) +>C1 : C1 >{} : {} diff --git a/tests/baselines/reference/memberAccessMustUseModuleInstances.symbols b/tests/baselines/reference/memberAccessMustUseModuleInstances.symbols new file mode 100644 index 0000000000000..434a2370520cd --- /dev/null +++ b/tests/baselines/reference/memberAccessMustUseModuleInstances.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/memberAccessMustUseModuleInstances_1.ts === +/// +import WinJS = require('memberAccessMustUseModuleInstances_0'); +>WinJS : Symbol(WinJS, Decl(memberAccessMustUseModuleInstances_1.ts, 0, 0)) + +WinJS.Promise.timeout(10); +>WinJS.Promise.timeout : Symbol(WinJS.Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) +>WinJS.Promise : Symbol(WinJS.Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) +>WinJS : Symbol(WinJS, Decl(memberAccessMustUseModuleInstances_1.ts, 0, 0)) +>Promise : Symbol(WinJS.Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) +>timeout : Symbol(WinJS.Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) + +=== tests/cases/compiler/memberAccessMustUseModuleInstances_0.ts === +export class Promise { +>Promise : Symbol(Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) + + static timeout(delay: number): Promise { +>timeout : Symbol(Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) +>delay : Symbol(delay, Decl(memberAccessMustUseModuleInstances_0.ts, 1, 19)) +>Promise : Symbol(Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) + + return null; + } +} + diff --git a/tests/baselines/reference/memberAccessMustUseModuleInstances.types b/tests/baselines/reference/memberAccessMustUseModuleInstances.types index be7211ea3d7c2..b1848660dac78 100644 --- a/tests/baselines/reference/memberAccessMustUseModuleInstances.types +++ b/tests/baselines/reference/memberAccessMustUseModuleInstances.types @@ -1,25 +1,25 @@ === tests/cases/compiler/memberAccessMustUseModuleInstances_1.ts === /// import WinJS = require('memberAccessMustUseModuleInstances_0'); ->WinJS : typeof WinJS, Symbol(WinJS, Decl(memberAccessMustUseModuleInstances_1.ts, 0, 0)) +>WinJS : typeof WinJS WinJS.Promise.timeout(10); >WinJS.Promise.timeout(10) : WinJS.Promise ->WinJS.Promise.timeout : (delay: number) => WinJS.Promise, Symbol(WinJS.Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) ->WinJS.Promise : typeof WinJS.Promise, Symbol(WinJS.Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) ->WinJS : typeof WinJS, Symbol(WinJS, Decl(memberAccessMustUseModuleInstances_1.ts, 0, 0)) ->Promise : typeof WinJS.Promise, Symbol(WinJS.Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) ->timeout : (delay: number) => WinJS.Promise, Symbol(WinJS.Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) +>WinJS.Promise.timeout : (delay: number) => WinJS.Promise +>WinJS.Promise : typeof WinJS.Promise +>WinJS : typeof WinJS +>Promise : typeof WinJS.Promise +>timeout : (delay: number) => WinJS.Promise >10 : number === tests/cases/compiler/memberAccessMustUseModuleInstances_0.ts === export class Promise { ->Promise : Promise, Symbol(Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) +>Promise : Promise static timeout(delay: number): Promise { ->timeout : (delay: number) => Promise, Symbol(Promise.timeout, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 22)) ->delay : number, Symbol(delay, Decl(memberAccessMustUseModuleInstances_0.ts, 1, 19)) ->Promise : Promise, Symbol(Promise, Decl(memberAccessMustUseModuleInstances_0.ts, 0, 0)) +>timeout : (delay: number) => Promise +>delay : number +>Promise : Promise return null; >null : null diff --git a/tests/baselines/reference/memberAccessOnConstructorType.symbols b/tests/baselines/reference/memberAccessOnConstructorType.symbols new file mode 100644 index 0000000000000..0e3c707c4f9d5 --- /dev/null +++ b/tests/baselines/reference/memberAccessOnConstructorType.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/memberAccessOnConstructorType.ts === +var f: new () => void; +>f : Symbol(f, Decl(memberAccessOnConstructorType.ts, 0, 3)) + +f.arguments == 0; +>f.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>f : Symbol(f, Decl(memberAccessOnConstructorType.ts, 0, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + diff --git a/tests/baselines/reference/memberAccessOnConstructorType.types b/tests/baselines/reference/memberAccessOnConstructorType.types index 9052812d3ec40..a767336ec12c5 100644 --- a/tests/baselines/reference/memberAccessOnConstructorType.types +++ b/tests/baselines/reference/memberAccessOnConstructorType.types @@ -1,11 +1,11 @@ === tests/cases/compiler/memberAccessOnConstructorType.ts === var f: new () => void; ->f : new () => void, Symbol(f, Decl(memberAccessOnConstructorType.ts, 0, 3)) +>f : new () => void f.arguments == 0; >f.arguments == 0 : boolean ->f.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->f : new () => void, Symbol(f, Decl(memberAccessOnConstructorType.ts, 0, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>f.arguments : any +>f : new () => void +>arguments : any >0 : number diff --git a/tests/baselines/reference/memberFunctionsWithPublicOverloads.symbols b/tests/baselines/reference/memberFunctionsWithPublicOverloads.symbols new file mode 100644 index 0000000000000..435af50a5f73f --- /dev/null +++ b/tests/baselines/reference/memberFunctionsWithPublicOverloads.symbols @@ -0,0 +1,142 @@ +=== tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionsWithPublicOverloads.ts === +class C { +>C : Symbol(C, Decl(memberFunctionsWithPublicOverloads.ts, 0, 0)) + + public foo(x: number); +>foo : Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 0, 9), Decl(memberFunctionsWithPublicOverloads.ts, 1, 26), Decl(memberFunctionsWithPublicOverloads.ts, 2, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 1, 15)) + + public foo(x: number, y: string); +>foo : Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 0, 9), Decl(memberFunctionsWithPublicOverloads.ts, 1, 26), Decl(memberFunctionsWithPublicOverloads.ts, 2, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 2, 15)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 2, 25)) + + public foo(x: any, y?: any) { } +>foo : Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 0, 9), Decl(memberFunctionsWithPublicOverloads.ts, 1, 26), Decl(memberFunctionsWithPublicOverloads.ts, 2, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 3, 15)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 3, 22)) + + public bar(x: 'hi'); +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 5, 15)) + + public bar(x: string); +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 6, 15)) + + public bar(x: number, y: string); +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 7, 15)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 7, 25)) + + public bar(x: any, y?: any) { } +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 8, 15)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 8, 22)) + + public static foo(x: number); +>foo : Symbol(C.foo, Decl(memberFunctionsWithPublicOverloads.ts, 8, 35), Decl(memberFunctionsWithPublicOverloads.ts, 10, 33), Decl(memberFunctionsWithPublicOverloads.ts, 11, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 10, 22)) + + public static foo(x: number, y: string); +>foo : Symbol(C.foo, Decl(memberFunctionsWithPublicOverloads.ts, 8, 35), Decl(memberFunctionsWithPublicOverloads.ts, 10, 33), Decl(memberFunctionsWithPublicOverloads.ts, 11, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 11, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 11, 32)) + + public static foo(x: any, y?: any) { } +>foo : Symbol(C.foo, Decl(memberFunctionsWithPublicOverloads.ts, 8, 35), Decl(memberFunctionsWithPublicOverloads.ts, 10, 33), Decl(memberFunctionsWithPublicOverloads.ts, 11, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 12, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 12, 29)) + + public static bar(x: 'hi'); +>bar : Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 14, 22)) + + public static bar(x: string); +>bar : Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 15, 22)) + + public static bar(x: number, y: string); +>bar : Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 16, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 16, 32)) + + public static bar(x: any, y?: any) { } +>bar : Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 17, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 17, 29)) +} + +class D { +>D : Symbol(D, Decl(memberFunctionsWithPublicOverloads.ts, 18, 1)) +>T : Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) + + public foo(x: number); +>foo : Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 20, 12), Decl(memberFunctionsWithPublicOverloads.ts, 21, 26), Decl(memberFunctionsWithPublicOverloads.ts, 22, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 21, 15)) + + public foo(x: T, y: T); +>foo : Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 20, 12), Decl(memberFunctionsWithPublicOverloads.ts, 21, 26), Decl(memberFunctionsWithPublicOverloads.ts, 22, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 22, 15)) +>T : Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 22, 20)) +>T : Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) + + public foo(x: any, y?: any) { } +>foo : Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 20, 12), Decl(memberFunctionsWithPublicOverloads.ts, 21, 26), Decl(memberFunctionsWithPublicOverloads.ts, 22, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 23, 15)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 23, 22)) + + public bar(x: 'hi'); +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 25, 15)) + + public bar(x: string); +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 26, 15)) + + public bar(x: T, y: T); +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 27, 15)) +>T : Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 27, 20)) +>T : Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) + + public bar(x: any, y?: any) { } +>bar : Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 28, 15)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 28, 22)) + + public static foo(x: number); +>foo : Symbol(D.foo, Decl(memberFunctionsWithPublicOverloads.ts, 28, 35), Decl(memberFunctionsWithPublicOverloads.ts, 30, 33), Decl(memberFunctionsWithPublicOverloads.ts, 31, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 30, 22)) + + public static foo(x: number, y: string); +>foo : Symbol(D.foo, Decl(memberFunctionsWithPublicOverloads.ts, 28, 35), Decl(memberFunctionsWithPublicOverloads.ts, 30, 33), Decl(memberFunctionsWithPublicOverloads.ts, 31, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 31, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 31, 32)) + + public static foo(x: any, y?: any) { } +>foo : Symbol(D.foo, Decl(memberFunctionsWithPublicOverloads.ts, 28, 35), Decl(memberFunctionsWithPublicOverloads.ts, 30, 33), Decl(memberFunctionsWithPublicOverloads.ts, 31, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 32, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 32, 29)) + + public static bar(x: 'hi'); +>bar : Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 34, 22)) + + public static bar(x: string); +>bar : Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 35, 22)) + + public static bar(x: number, y: string); +>bar : Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 36, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 36, 32)) + + public static bar(x: any, y?: any) { } +>bar : Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) +>x : Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 37, 22)) +>y : Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 37, 29)) + +} diff --git a/tests/baselines/reference/memberFunctionsWithPublicOverloads.types b/tests/baselines/reference/memberFunctionsWithPublicOverloads.types index 19f20ea5d371f..7cbc2aca1ffb8 100644 --- a/tests/baselines/reference/memberFunctionsWithPublicOverloads.types +++ b/tests/baselines/reference/memberFunctionsWithPublicOverloads.types @@ -1,142 +1,142 @@ === tests/cases/conformance/classes/propertyMemberDeclarations/memberFunctionDeclarations/memberFunctionsWithPublicOverloads.ts === class C { ->C : C, Symbol(C, Decl(memberFunctionsWithPublicOverloads.ts, 0, 0)) +>C : C public foo(x: number); ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 0, 9), Decl(memberFunctionsWithPublicOverloads.ts, 1, 26), Decl(memberFunctionsWithPublicOverloads.ts, 2, 37)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 1, 15)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : number public foo(x: number, y: string); ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 0, 9), Decl(memberFunctionsWithPublicOverloads.ts, 1, 26), Decl(memberFunctionsWithPublicOverloads.ts, 2, 37)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 2, 15)) ->y : string, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 2, 25)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : number +>y : string public foo(x: any, y?: any) { } ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 0, 9), Decl(memberFunctionsWithPublicOverloads.ts, 1, 26), Decl(memberFunctionsWithPublicOverloads.ts, 2, 37)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 3, 15)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 3, 22)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : any +>y : any public bar(x: 'hi'); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) ->x : 'hi', Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 5, 15)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : 'hi' public bar(x: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) ->x : string, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 6, 15)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : string public bar(x: number, y: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 7, 15)) ->y : string, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 7, 25)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : number +>y : string public bar(x: any, y?: any) { } ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 3, 35), Decl(memberFunctionsWithPublicOverloads.ts, 5, 24), Decl(memberFunctionsWithPublicOverloads.ts, 6, 26), Decl(memberFunctionsWithPublicOverloads.ts, 7, 37)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 8, 15)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 8, 22)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : any +>y : any public static foo(x: number); ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(C.foo, Decl(memberFunctionsWithPublicOverloads.ts, 8, 35), Decl(memberFunctionsWithPublicOverloads.ts, 10, 33), Decl(memberFunctionsWithPublicOverloads.ts, 11, 44)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 10, 22)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : number public static foo(x: number, y: string); ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(C.foo, Decl(memberFunctionsWithPublicOverloads.ts, 8, 35), Decl(memberFunctionsWithPublicOverloads.ts, 10, 33), Decl(memberFunctionsWithPublicOverloads.ts, 11, 44)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 11, 22)) ->y : string, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 11, 32)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : number +>y : string public static foo(x: any, y?: any) { } ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(C.foo, Decl(memberFunctionsWithPublicOverloads.ts, 8, 35), Decl(memberFunctionsWithPublicOverloads.ts, 10, 33), Decl(memberFunctionsWithPublicOverloads.ts, 11, 44)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 12, 22)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 12, 29)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : any +>y : any public static bar(x: 'hi'); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) ->x : 'hi', Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 14, 22)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : 'hi' public static bar(x: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) ->x : string, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 15, 22)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : string public static bar(x: number, y: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 16, 22)) ->y : string, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 16, 32)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : number +>y : string public static bar(x: any, y?: any) { } ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(C.bar, Decl(memberFunctionsWithPublicOverloads.ts, 12, 42), Decl(memberFunctionsWithPublicOverloads.ts, 14, 31), Decl(memberFunctionsWithPublicOverloads.ts, 15, 33), Decl(memberFunctionsWithPublicOverloads.ts, 16, 44)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 17, 22)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 17, 29)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : any +>y : any } class D { ->D : D, Symbol(D, Decl(memberFunctionsWithPublicOverloads.ts, 18, 1)) ->T : T, Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) +>D : D +>T : T public foo(x: number); ->foo : { (x: number): any; (x: T, y: T): any; }, Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 20, 12), Decl(memberFunctionsWithPublicOverloads.ts, 21, 26), Decl(memberFunctionsWithPublicOverloads.ts, 22, 27)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 21, 15)) +>foo : { (x: number): any; (x: T, y: T): any; } +>x : number public foo(x: T, y: T); ->foo : { (x: number): any; (x: T, y: T): any; }, Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 20, 12), Decl(memberFunctionsWithPublicOverloads.ts, 21, 26), Decl(memberFunctionsWithPublicOverloads.ts, 22, 27)) ->x : T, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 22, 15)) ->T : T, Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) ->y : T, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 22, 20)) ->T : T, Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) +>foo : { (x: number): any; (x: T, y: T): any; } +>x : T +>T : T +>y : T +>T : T public foo(x: any, y?: any) { } ->foo : { (x: number): any; (x: T, y: T): any; }, Symbol(foo, Decl(memberFunctionsWithPublicOverloads.ts, 20, 12), Decl(memberFunctionsWithPublicOverloads.ts, 21, 26), Decl(memberFunctionsWithPublicOverloads.ts, 22, 27)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 23, 15)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 23, 22)) +>foo : { (x: number): any; (x: T, y: T): any; } +>x : any +>y : any public bar(x: 'hi'); ->bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) ->x : 'hi', Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 25, 15)) +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } +>x : 'hi' public bar(x: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) ->x : string, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 26, 15)) +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } +>x : string public bar(x: T, y: T); ->bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) ->x : T, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 27, 15)) ->T : T, Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) ->y : T, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 27, 20)) ->T : T, Symbol(T, Decl(memberFunctionsWithPublicOverloads.ts, 20, 8)) +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } +>x : T +>T : T +>y : T +>T : T public bar(x: any, y?: any) { } ->bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; }, Symbol(bar, Decl(memberFunctionsWithPublicOverloads.ts, 23, 35), Decl(memberFunctionsWithPublicOverloads.ts, 25, 24), Decl(memberFunctionsWithPublicOverloads.ts, 26, 26), Decl(memberFunctionsWithPublicOverloads.ts, 27, 27)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 28, 15)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 28, 22)) +>bar : { (x: 'hi'): any; (x: string): any; (x: T, y: T): any; } +>x : any +>y : any public static foo(x: number); ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(D.foo, Decl(memberFunctionsWithPublicOverloads.ts, 28, 35), Decl(memberFunctionsWithPublicOverloads.ts, 30, 33), Decl(memberFunctionsWithPublicOverloads.ts, 31, 44)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 30, 22)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : number public static foo(x: number, y: string); ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(D.foo, Decl(memberFunctionsWithPublicOverloads.ts, 28, 35), Decl(memberFunctionsWithPublicOverloads.ts, 30, 33), Decl(memberFunctionsWithPublicOverloads.ts, 31, 44)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 31, 22)) ->y : string, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 31, 32)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : number +>y : string public static foo(x: any, y?: any) { } ->foo : { (x: number): any; (x: number, y: string): any; }, Symbol(D.foo, Decl(memberFunctionsWithPublicOverloads.ts, 28, 35), Decl(memberFunctionsWithPublicOverloads.ts, 30, 33), Decl(memberFunctionsWithPublicOverloads.ts, 31, 44)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 32, 22)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 32, 29)) +>foo : { (x: number): any; (x: number, y: string): any; } +>x : any +>y : any public static bar(x: 'hi'); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) ->x : 'hi', Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 34, 22)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : 'hi' public static bar(x: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) ->x : string, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 35, 22)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : string public static bar(x: number, y: string); ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) ->x : number, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 36, 22)) ->y : string, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 36, 32)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : number +>y : string public static bar(x: any, y?: any) { } ->bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; }, Symbol(D.bar, Decl(memberFunctionsWithPublicOverloads.ts, 32, 42), Decl(memberFunctionsWithPublicOverloads.ts, 34, 31), Decl(memberFunctionsWithPublicOverloads.ts, 35, 33), Decl(memberFunctionsWithPublicOverloads.ts, 36, 44)) ->x : any, Symbol(x, Decl(memberFunctionsWithPublicOverloads.ts, 37, 22)) ->y : any, Symbol(y, Decl(memberFunctionsWithPublicOverloads.ts, 37, 29)) +>bar : { (x: 'hi'): any; (x: string): any; (x: number, y: string): any; } +>x : any +>y : any } diff --git a/tests/baselines/reference/memberVariableDeclarations1.symbols b/tests/baselines/reference/memberVariableDeclarations1.symbols new file mode 100644 index 0000000000000..fbd3529262b6a --- /dev/null +++ b/tests/baselines/reference/memberVariableDeclarations1.symbols @@ -0,0 +1,78 @@ +=== tests/cases/compiler/memberVariableDeclarations1.ts === +// from spec + +class Employee { +>Employee : Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) + + public name: string; +>name : Symbol(name, Decl(memberVariableDeclarations1.ts, 2, 16)) + + public address: string; +>address : Symbol(address, Decl(memberVariableDeclarations1.ts, 3, 24)) + + public retired = false; +>retired : Symbol(retired, Decl(memberVariableDeclarations1.ts, 4, 27)) + + public manager: Employee = null; +>manager : Symbol(manager, Decl(memberVariableDeclarations1.ts, 5, 27)) +>Employee : Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) + + public reports: Employee[] = []; +>reports : Symbol(reports, Decl(memberVariableDeclarations1.ts, 6, 36)) +>Employee : Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +} + +class Employee2 { +>Employee2 : Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) + + public name: string; +>name : Symbol(name, Decl(memberVariableDeclarations1.ts, 10, 17)) + + public address: string; +>address : Symbol(address, Decl(memberVariableDeclarations1.ts, 11, 24)) + + public retired: boolean; +>retired : Symbol(retired, Decl(memberVariableDeclarations1.ts, 12, 27)) + + public manager: Employee; +>manager : Symbol(manager, Decl(memberVariableDeclarations1.ts, 13, 28)) +>Employee : Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) + + public reports: Employee[]; +>reports : Symbol(reports, Decl(memberVariableDeclarations1.ts, 14, 29)) +>Employee : Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) + + constructor() { + this.retired = false; +>this.retired : Symbol(retired, Decl(memberVariableDeclarations1.ts, 12, 27)) +>this : Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) +>retired : Symbol(retired, Decl(memberVariableDeclarations1.ts, 12, 27)) + + this.manager = null; +>this.manager : Symbol(manager, Decl(memberVariableDeclarations1.ts, 13, 28)) +>this : Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) +>manager : Symbol(manager, Decl(memberVariableDeclarations1.ts, 13, 28)) + + this.reports = []; +>this.reports : Symbol(reports, Decl(memberVariableDeclarations1.ts, 14, 29)) +>this : Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) +>reports : Symbol(reports, Decl(memberVariableDeclarations1.ts, 14, 29)) + } +} + +var e1: Employee; +>e1 : Symbol(e1, Decl(memberVariableDeclarations1.ts, 23, 3)) +>Employee : Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) + +var e2: Employee2; +>e2 : Symbol(e2, Decl(memberVariableDeclarations1.ts, 24, 3)) +>Employee2 : Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) + +e1 = e2; +>e1 : Symbol(e1, Decl(memberVariableDeclarations1.ts, 23, 3)) +>e2 : Symbol(e2, Decl(memberVariableDeclarations1.ts, 24, 3)) + +e2 = e1; +>e2 : Symbol(e2, Decl(memberVariableDeclarations1.ts, 24, 3)) +>e1 : Symbol(e1, Decl(memberVariableDeclarations1.ts, 23, 3)) + diff --git a/tests/baselines/reference/memberVariableDeclarations1.types b/tests/baselines/reference/memberVariableDeclarations1.types index a699e5aabfe58..9aec8aa12aa5c 100644 --- a/tests/baselines/reference/memberVariableDeclarations1.types +++ b/tests/baselines/reference/memberVariableDeclarations1.types @@ -2,88 +2,88 @@ // from spec class Employee { ->Employee : Employee, Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +>Employee : Employee public name: string; ->name : string, Symbol(name, Decl(memberVariableDeclarations1.ts, 2, 16)) +>name : string public address: string; ->address : string, Symbol(address, Decl(memberVariableDeclarations1.ts, 3, 24)) +>address : string public retired = false; ->retired : boolean, Symbol(retired, Decl(memberVariableDeclarations1.ts, 4, 27)) +>retired : boolean >false : boolean public manager: Employee = null; ->manager : Employee, Symbol(manager, Decl(memberVariableDeclarations1.ts, 5, 27)) ->Employee : Employee, Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +>manager : Employee +>Employee : Employee >null : null public reports: Employee[] = []; ->reports : Employee[], Symbol(reports, Decl(memberVariableDeclarations1.ts, 6, 36)) ->Employee : Employee, Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +>reports : Employee[] +>Employee : Employee >[] : undefined[] } class Employee2 { ->Employee2 : Employee2, Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) +>Employee2 : Employee2 public name: string; ->name : string, Symbol(name, Decl(memberVariableDeclarations1.ts, 10, 17)) +>name : string public address: string; ->address : string, Symbol(address, Decl(memberVariableDeclarations1.ts, 11, 24)) +>address : string public retired: boolean; ->retired : boolean, Symbol(retired, Decl(memberVariableDeclarations1.ts, 12, 27)) +>retired : boolean public manager: Employee; ->manager : Employee, Symbol(manager, Decl(memberVariableDeclarations1.ts, 13, 28)) ->Employee : Employee, Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +>manager : Employee +>Employee : Employee public reports: Employee[]; ->reports : Employee[], Symbol(reports, Decl(memberVariableDeclarations1.ts, 14, 29)) ->Employee : Employee, Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +>reports : Employee[] +>Employee : Employee constructor() { this.retired = false; >this.retired = false : boolean ->this.retired : boolean, Symbol(retired, Decl(memberVariableDeclarations1.ts, 12, 27)) ->this : Employee2, Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) ->retired : boolean, Symbol(retired, Decl(memberVariableDeclarations1.ts, 12, 27)) +>this.retired : boolean +>this : Employee2 +>retired : boolean >false : boolean this.manager = null; >this.manager = null : null ->this.manager : Employee, Symbol(manager, Decl(memberVariableDeclarations1.ts, 13, 28)) ->this : Employee2, Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) ->manager : Employee, Symbol(manager, Decl(memberVariableDeclarations1.ts, 13, 28)) +>this.manager : Employee +>this : Employee2 +>manager : Employee >null : null this.reports = []; >this.reports = [] : undefined[] ->this.reports : Employee[], Symbol(reports, Decl(memberVariableDeclarations1.ts, 14, 29)) ->this : Employee2, Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) ->reports : Employee[], Symbol(reports, Decl(memberVariableDeclarations1.ts, 14, 29)) +>this.reports : Employee[] +>this : Employee2 +>reports : Employee[] >[] : undefined[] } } var e1: Employee; ->e1 : Employee, Symbol(e1, Decl(memberVariableDeclarations1.ts, 23, 3)) ->Employee : Employee, Symbol(Employee, Decl(memberVariableDeclarations1.ts, 0, 0)) +>e1 : Employee +>Employee : Employee var e2: Employee2; ->e2 : Employee2, Symbol(e2, Decl(memberVariableDeclarations1.ts, 24, 3)) ->Employee2 : Employee2, Symbol(Employee2, Decl(memberVariableDeclarations1.ts, 8, 1)) +>e2 : Employee2 +>Employee2 : Employee2 e1 = e2; >e1 = e2 : Employee2 ->e1 : Employee, Symbol(e1, Decl(memberVariableDeclarations1.ts, 23, 3)) ->e2 : Employee2, Symbol(e2, Decl(memberVariableDeclarations1.ts, 24, 3)) +>e1 : Employee +>e2 : Employee2 e2 = e1; >e2 = e1 : Employee ->e2 : Employee2, Symbol(e2, Decl(memberVariableDeclarations1.ts, 24, 3)) ->e1 : Employee, Symbol(e1, Decl(memberVariableDeclarations1.ts, 23, 3)) +>e2 : Employee2 +>e1 : Employee diff --git a/tests/baselines/reference/mergeThreeInterfaces.symbols b/tests/baselines/reference/mergeThreeInterfaces.symbols new file mode 100644 index 0000000000000..24bebf49de689 --- /dev/null +++ b/tests/baselines/reference/mergeThreeInterfaces.symbols @@ -0,0 +1,197 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergeThreeInterfaces.ts === +// interfaces with the same root module should merge + +// basic case +interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) + + foo: string; +>foo : Symbol(foo, Decl(mergeThreeInterfaces.ts, 3, 13)) +} + +interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) + + bar: number; +>bar : Symbol(bar, Decl(mergeThreeInterfaces.ts, 7, 13)) +} + +interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) + + baz: boolean; +>baz : Symbol(baz, Decl(mergeThreeInterfaces.ts, 11, 13)) +} + +var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) + +var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeThreeInterfaces.ts, 16, 3)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 3, 13)) +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 3, 13)) + +var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeThreeInterfaces.ts, 17, 3)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 7, 13)) +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 7, 13)) + +var r3 = a.baz; +>r3 : Symbol(r3, Decl(mergeThreeInterfaces.ts, 18, 3)) +>a.baz : Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 11, 13)) +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) +>baz : Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 11, 13)) + +// basic generic case +interface B { +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) + + foo: T; +>foo : Symbol(foo, Decl(mergeThreeInterfaces.ts, 21, 16)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +} + +interface B { +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) + + bar: T; +>bar : Symbol(bar, Decl(mergeThreeInterfaces.ts, 25, 16)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +} + +interface B { +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) + + baz: T; +>baz : Symbol(baz, Decl(mergeThreeInterfaces.ts, 29, 16)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +} + +var b: B; +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) + +var r4 = b.foo +>r4 : Symbol(r4, Decl(mergeThreeInterfaces.ts, 34, 3)) +>b.foo : Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 21, 16)) +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) +>foo : Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 21, 16)) + +var r5 = b.bar; +>r5 : Symbol(r5, Decl(mergeThreeInterfaces.ts, 35, 3)) +>b.bar : Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 25, 16)) +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) +>bar : Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 25, 16)) + +var r6 = b.baz; +>r6 : Symbol(r6, Decl(mergeThreeInterfaces.ts, 36, 3)) +>b.baz : Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 29, 16)) +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) +>baz : Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 29, 16)) + +// basic non-generic and generic case inside a module +module M { +>M : Symbol(M, Decl(mergeThreeInterfaces.ts, 36, 15)) + + interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) + + foo: string; +>foo : Symbol(foo, Decl(mergeThreeInterfaces.ts, 40, 17)) + } + + interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) + + bar: number; +>bar : Symbol(bar, Decl(mergeThreeInterfaces.ts, 44, 17)) + } + + interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) + + baz: boolean; +>baz : Symbol(baz, Decl(mergeThreeInterfaces.ts, 48, 17)) + } + + var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) +>A : Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) + + var r1 = a.foo; +>r1 : Symbol(r1, Decl(mergeThreeInterfaces.ts, 53, 7)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 40, 17)) +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 40, 17)) + + // BUG 856491 + var r2 = a.bar; // any, should be number +>r2 : Symbol(r2, Decl(mergeThreeInterfaces.ts, 55, 7)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 44, 17)) +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 44, 17)) + + // BUG 856491 + var r3 = a.baz; // any, should be boolean +>r3 : Symbol(r3, Decl(mergeThreeInterfaces.ts, 57, 7)) +>a.baz : Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 48, 17)) +>a : Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) +>baz : Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 48, 17)) + + interface B { +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) + + foo: T; +>foo : Symbol(foo, Decl(mergeThreeInterfaces.ts, 59, 20)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) + } + + interface B { +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) + + bar: T; +>bar : Symbol(bar, Decl(mergeThreeInterfaces.ts, 63, 20)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) + } + + interface B { +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) + + baz: T; +>baz : Symbol(baz, Decl(mergeThreeInterfaces.ts, 67, 20)) +>T : Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) + } + + var b: B; +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) +>B : Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) + + var r4 = b.foo +>r4 : Symbol(r4, Decl(mergeThreeInterfaces.ts, 72, 7)) +>b.foo : Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 59, 20)) +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) +>foo : Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 59, 20)) + + // BUG 856491 + var r5 = b.bar; // any, should be number +>r5 : Symbol(r5, Decl(mergeThreeInterfaces.ts, 74, 7)) +>b.bar : Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 63, 20)) +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) +>bar : Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 63, 20)) + + // BUG 856491 + var r6 = b.baz; // any, should be boolean +>r6 : Symbol(r6, Decl(mergeThreeInterfaces.ts, 76, 7)) +>b.baz : Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 67, 20)) +>b : Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) +>baz : Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 67, 20)) +} diff --git a/tests/baselines/reference/mergeThreeInterfaces.types b/tests/baselines/reference/mergeThreeInterfaces.types index db22fb00dd05f..4f4fba64358b1 100644 --- a/tests/baselines/reference/mergeThreeInterfaces.types +++ b/tests/baselines/reference/mergeThreeInterfaces.types @@ -3,195 +3,195 @@ // basic case interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeThreeInterfaces.ts, 3, 13)) +>foo : string } interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeThreeInterfaces.ts, 7, 13)) +>bar : number } interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) +>A : A baz: boolean; ->baz : boolean, Symbol(baz, Decl(mergeThreeInterfaces.ts, 11, 13)) +>baz : boolean } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 0, 0), Decl(mergeThreeInterfaces.ts, 5, 1), Decl(mergeThreeInterfaces.ts, 9, 1)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces.ts, 16, 3)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 3, 13)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 3, 13)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces.ts, 17, 3)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 7, 13)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 7, 13)) +>r2 : number +>a.bar : number +>a : A +>bar : number var r3 = a.baz; ->r3 : boolean, Symbol(r3, Decl(mergeThreeInterfaces.ts, 18, 3)) ->a.baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 11, 13)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 15, 3)) ->baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 11, 13)) +>r3 : boolean +>a.baz : boolean +>a : A +>baz : boolean // basic generic case interface B { ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +>B : B +>T : T foo: T; ->foo : T, Symbol(foo, Decl(mergeThreeInterfaces.ts, 21, 16)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +>foo : T +>T : T } interface B { ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +>B : B +>T : T bar: T; ->bar : T, Symbol(bar, Decl(mergeThreeInterfaces.ts, 25, 16)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +>bar : T +>T : T } interface B { ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +>B : B +>T : T baz: T; ->baz : T, Symbol(baz, Decl(mergeThreeInterfaces.ts, 29, 16)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 21, 12), Decl(mergeThreeInterfaces.ts, 25, 12), Decl(mergeThreeInterfaces.ts, 29, 12)) +>baz : T +>T : T } var b: B; ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 18, 15), Decl(mergeThreeInterfaces.ts, 23, 1), Decl(mergeThreeInterfaces.ts, 27, 1)) +>b : B +>B : B var r4 = b.foo ->r4 : string, Symbol(r4, Decl(mergeThreeInterfaces.ts, 34, 3)) ->b.foo : string, Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 21, 16)) ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) ->foo : string, Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 21, 16)) +>r4 : string +>b.foo : string +>b : B +>foo : string var r5 = b.bar; ->r5 : string, Symbol(r5, Decl(mergeThreeInterfaces.ts, 35, 3)) ->b.bar : string, Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 25, 16)) ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) ->bar : string, Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 25, 16)) +>r5 : string +>b.bar : string +>b : B +>bar : string var r6 = b.baz; ->r6 : string, Symbol(r6, Decl(mergeThreeInterfaces.ts, 36, 3)) ->b.baz : string, Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 29, 16)) ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 33, 3)) ->baz : string, Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 29, 16)) +>r6 : string +>b.baz : string +>b : B +>baz : string // basic non-generic and generic case inside a module module M { ->M : typeof M, Symbol(M, Decl(mergeThreeInterfaces.ts, 36, 15)) +>M : typeof M interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeThreeInterfaces.ts, 40, 17)) +>foo : string } interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeThreeInterfaces.ts, 44, 17)) +>bar : number } interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) +>A : A baz: boolean; ->baz : boolean, Symbol(baz, Decl(mergeThreeInterfaces.ts, 48, 17)) +>baz : boolean } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces.ts, 39, 10), Decl(mergeThreeInterfaces.ts, 42, 5), Decl(mergeThreeInterfaces.ts, 46, 5)) +>a : A +>A : A var r1 = a.foo; ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces.ts, 53, 7)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 40, 17)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces.ts, 40, 17)) +>r1 : string +>a.foo : string +>a : A +>foo : string // BUG 856491 var r2 = a.bar; // any, should be number ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces.ts, 55, 7)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 44, 17)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces.ts, 44, 17)) +>r2 : number +>a.bar : number +>a : A +>bar : number // BUG 856491 var r3 = a.baz; // any, should be boolean ->r3 : boolean, Symbol(r3, Decl(mergeThreeInterfaces.ts, 57, 7)) ->a.baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 48, 17)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces.ts, 52, 7)) ->baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces.ts, 48, 17)) +>r3 : boolean +>a.baz : boolean +>a : A +>baz : boolean interface B { ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) +>B : B +>T : T foo: T; ->foo : T, Symbol(foo, Decl(mergeThreeInterfaces.ts, 59, 20)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) +>foo : T +>T : T } interface B { ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) +>B : B +>T : T bar: T; ->bar : T, Symbol(bar, Decl(mergeThreeInterfaces.ts, 63, 20)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) +>bar : T +>T : T } interface B { ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) +>B : B +>T : T baz: T; ->baz : T, Symbol(baz, Decl(mergeThreeInterfaces.ts, 67, 20)) ->T : T, Symbol(T, Decl(mergeThreeInterfaces.ts, 59, 16), Decl(mergeThreeInterfaces.ts, 63, 16), Decl(mergeThreeInterfaces.ts, 67, 16)) +>baz : T +>T : T } var b: B; ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) ->B : B, Symbol(B, Decl(mergeThreeInterfaces.ts, 57, 19), Decl(mergeThreeInterfaces.ts, 61, 5), Decl(mergeThreeInterfaces.ts, 65, 5)) +>b : B +>B : B var r4 = b.foo ->r4 : string, Symbol(r4, Decl(mergeThreeInterfaces.ts, 72, 7)) ->b.foo : string, Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 59, 20)) ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) ->foo : string, Symbol(B.foo, Decl(mergeThreeInterfaces.ts, 59, 20)) +>r4 : string +>b.foo : string +>b : B +>foo : string // BUG 856491 var r5 = b.bar; // any, should be number ->r5 : string, Symbol(r5, Decl(mergeThreeInterfaces.ts, 74, 7)) ->b.bar : string, Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 63, 20)) ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) ->bar : string, Symbol(B.bar, Decl(mergeThreeInterfaces.ts, 63, 20)) +>r5 : string +>b.bar : string +>b : B +>bar : string // BUG 856491 var r6 = b.baz; // any, should be boolean ->r6 : string, Symbol(r6, Decl(mergeThreeInterfaces.ts, 76, 7)) ->b.baz : string, Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 67, 20)) ->b : B, Symbol(b, Decl(mergeThreeInterfaces.ts, 71, 7)) ->baz : string, Symbol(B.baz, Decl(mergeThreeInterfaces.ts, 67, 20)) +>r6 : string +>b.baz : string +>b : B +>baz : string } diff --git a/tests/baselines/reference/mergeThreeInterfaces2.symbols b/tests/baselines/reference/mergeThreeInterfaces2.symbols new file mode 100644 index 0000000000000..66942fd660d66 --- /dev/null +++ b/tests/baselines/reference/mergeThreeInterfaces2.symbols @@ -0,0 +1,176 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergeThreeInterfaces2.ts === +// two interfaces with the same root module should merge + +// root module now multiple module declarations +module M2 { +>M2 : Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) + + export interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) + + foo: string; +>foo : Symbol(foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) + } + + var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 8, 7)) +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) + + var r1 = a.foo; +>r1 : Symbol(r1, Decl(mergeThreeInterfaces2.ts, 9, 7)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 8, 7)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeThreeInterfaces2.ts, 10, 7)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 8, 7)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) +} + +module M2 { +>M2 : Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) + + export interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) + + bar: number; +>bar : Symbol(bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) + } + + export interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) + + baz: boolean; +>baz : Symbol(baz, Decl(mergeThreeInterfaces2.ts, 18, 24)) + } + + var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) + + var r1 = a.foo; +>r1 : Symbol(r1, Decl(mergeThreeInterfaces2.ts, 23, 7)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeThreeInterfaces2.ts, 24, 7)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) + + var r3 = a.baz; +>r3 : Symbol(r3, Decl(mergeThreeInterfaces2.ts, 25, 7)) +>a.baz : Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 18, 24)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) +>baz : Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 18, 24)) +} + +// same as above but with an additional level of nesting and third module declaration +module M2 { +>M2 : Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) + + export module M3 { +>M3 : Symbol(M3, Decl(mergeThreeInterfaces2.ts, 29, 11), Decl(mergeThreeInterfaces2.ts, 41, 11), Decl(mergeThreeInterfaces2.ts, 55, 11)) + + export interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) + + foo: string; +>foo : Symbol(foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) + } + + var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 35, 11)) +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) + + var r1 = a.foo; +>r1 : Symbol(r1, Decl(mergeThreeInterfaces2.ts, 36, 11)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 35, 11)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeThreeInterfaces2.ts, 37, 11)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 35, 11)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) + } +} + +module M2 { +>M2 : Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) + + export module M3 { +>M3 : Symbol(M3, Decl(mergeThreeInterfaces2.ts, 29, 11), Decl(mergeThreeInterfaces2.ts, 41, 11), Decl(mergeThreeInterfaces2.ts, 55, 11)) + + export interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) + + bar: number; +>bar : Symbol(bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) + } + + var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) + + var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeThreeInterfaces2.ts, 49, 11)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeThreeInterfaces2.ts, 50, 11)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) + + var r3 = a.baz; +>r3 : Symbol(r3, Decl(mergeThreeInterfaces2.ts, 51, 11)) +>a.baz : Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) +>baz : Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) + } +} + +module M2 { +>M2 : Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) + + export module M3 { +>M3 : Symbol(M3, Decl(mergeThreeInterfaces2.ts, 29, 11), Decl(mergeThreeInterfaces2.ts, 41, 11), Decl(mergeThreeInterfaces2.ts, 55, 11)) + + export interface A { +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) + + baz: boolean; +>baz : Symbol(baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) + } + + var a: A; +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) +>A : Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) + + var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeThreeInterfaces2.ts, 62, 11)) +>a.foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) +>foo : Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeThreeInterfaces2.ts, 63, 11)) +>a.bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) +>bar : Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) + + var r3 = a.baz; +>r3 : Symbol(r3, Decl(mergeThreeInterfaces2.ts, 64, 11)) +>a.baz : Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) +>a : Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) +>baz : Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) + } +} diff --git a/tests/baselines/reference/mergeThreeInterfaces2.types b/tests/baselines/reference/mergeThreeInterfaces2.types index 611677a555087..31339187e3df0 100644 --- a/tests/baselines/reference/mergeThreeInterfaces2.types +++ b/tests/baselines/reference/mergeThreeInterfaces2.types @@ -3,174 +3,174 @@ // root module now multiple module declarations module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) +>M2 : typeof M2 export interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) +>foo : string } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 8, 7)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) +>a : A +>A : A var r1 = a.foo; ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces2.ts, 9, 7)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 8, 7)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces2.ts, 10, 7)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 8, 7)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) +>r2 : number +>a.bar : number +>a : A +>bar : number } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) +>M2 : typeof M2 export interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) +>bar : number } export interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) +>A : A baz: boolean; ->baz : boolean, Symbol(baz, Decl(mergeThreeInterfaces2.ts, 18, 24)) +>baz : boolean } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 3, 11), Decl(mergeThreeInterfaces2.ts, 13, 11), Decl(mergeThreeInterfaces2.ts, 16, 5)) +>a : A +>A : A var r1 = a.foo; ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces2.ts, 23, 7)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 4, 24)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces2.ts, 24, 7)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 14, 24)) +>r2 : number +>a.bar : number +>a : A +>bar : number var r3 = a.baz; ->r3 : boolean, Symbol(r3, Decl(mergeThreeInterfaces2.ts, 25, 7)) ->a.baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 18, 24)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 22, 7)) ->baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 18, 24)) +>r3 : boolean +>a.baz : boolean +>a : A +>baz : boolean } // same as above but with an additional level of nesting and third module declaration module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) +>M2 : typeof M2 export module M3 { ->M3 : typeof M3, Symbol(M3, Decl(mergeThreeInterfaces2.ts, 29, 11), Decl(mergeThreeInterfaces2.ts, 41, 11), Decl(mergeThreeInterfaces2.ts, 55, 11)) +>M3 : typeof M3 export interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>foo : string } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 35, 11)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) +>a : A +>A : A var r1 = a.foo; ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces2.ts, 36, 11)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 35, 11)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces2.ts, 37, 11)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 35, 11)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>r2 : number +>a.bar : number +>a : A +>bar : number } } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) +>M2 : typeof M2 export module M3 { ->M3 : typeof M3, Symbol(M3, Decl(mergeThreeInterfaces2.ts, 29, 11), Decl(mergeThreeInterfaces2.ts, 41, 11), Decl(mergeThreeInterfaces2.ts, 55, 11)) +>M3 : typeof M3 export interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>bar : number } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces2.ts, 49, 11)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces2.ts, 50, 11)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>r2 : number +>a.bar : number +>a : A +>bar : number var r3 = a.baz; ->r3 : boolean, Symbol(r3, Decl(mergeThreeInterfaces2.ts, 51, 11)) ->a.baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 47, 11)) ->baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) +>r3 : boolean +>a.baz : boolean +>a : A +>baz : boolean } } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeThreeInterfaces2.ts, 0, 0), Decl(mergeThreeInterfaces2.ts, 11, 1), Decl(mergeThreeInterfaces2.ts, 26, 1), Decl(mergeThreeInterfaces2.ts, 39, 1), Decl(mergeThreeInterfaces2.ts, 53, 1)) +>M2 : typeof M2 export module M3 { ->M3 : typeof M3, Symbol(M3, Decl(mergeThreeInterfaces2.ts, 29, 11), Decl(mergeThreeInterfaces2.ts, 41, 11), Decl(mergeThreeInterfaces2.ts, 55, 11)) +>M3 : typeof M3 export interface A { ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) +>A : A baz: boolean; ->baz : boolean, Symbol(baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) +>baz : boolean } var a: A; ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) ->A : A, Symbol(A, Decl(mergeThreeInterfaces2.ts, 30, 22), Decl(mergeThreeInterfaces2.ts, 42, 22), Decl(mergeThreeInterfaces2.ts, 56, 22)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeThreeInterfaces2.ts, 62, 11)) ->a.foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) ->foo : string, Symbol(A.foo, Decl(mergeThreeInterfaces2.ts, 31, 28)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeThreeInterfaces2.ts, 63, 11)) ->a.bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) ->bar : number, Symbol(A.bar, Decl(mergeThreeInterfaces2.ts, 43, 28)) +>r2 : number +>a.bar : number +>a : A +>bar : number var r3 = a.baz; ->r3 : boolean, Symbol(r3, Decl(mergeThreeInterfaces2.ts, 64, 11)) ->a.baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) ->a : A, Symbol(a, Decl(mergeThreeInterfaces2.ts, 61, 11)) ->baz : boolean, Symbol(A.baz, Decl(mergeThreeInterfaces2.ts, 57, 28)) +>r3 : boolean +>a.baz : boolean +>a : A +>baz : boolean } } diff --git a/tests/baselines/reference/mergeTwoInterfaces.symbols b/tests/baselines/reference/mergeTwoInterfaces.symbols new file mode 100644 index 0000000000000..d34ad6ec9a289 --- /dev/null +++ b/tests/baselines/reference/mergeTwoInterfaces.symbols @@ -0,0 +1,142 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergeTwoInterfaces.ts === +// two interfaces with the same root module should merge + +// basic case +interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) + + foo: string; +>foo : Symbol(foo, Decl(mergeTwoInterfaces.ts, 3, 13)) +} + +interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) + + bar: number; +>bar : Symbol(bar, Decl(mergeTwoInterfaces.ts, 7, 13)) +} + +var a: A; +>a : Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) +>A : Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) + +var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeTwoInterfaces.ts, 12, 3)) +>a.foo : Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 3, 13)) +>a : Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) +>foo : Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 3, 13)) + +var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeTwoInterfaces.ts, 13, 3)) +>a.bar : Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 7, 13)) +>a : Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) +>bar : Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 7, 13)) + +// basic generic case +interface B { +>B : Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) + + baz: string; +>baz : Symbol(baz, Decl(mergeTwoInterfaces.ts, 16, 16)) + + foo: T; +>foo : Symbol(foo, Decl(mergeTwoInterfaces.ts, 17, 16)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) +} + +interface B { +>B : Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) + + bar: T; +>bar : Symbol(bar, Decl(mergeTwoInterfaces.ts, 21, 16)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) +} + +var b: B; +>b : Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) +>B : Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) + +var r3 = b.foo +>r3 : Symbol(r3, Decl(mergeTwoInterfaces.ts, 26, 3)) +>b.foo : Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 17, 16)) +>b : Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) +>foo : Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 17, 16)) + +var r4 = b.bar; +>r4 : Symbol(r4, Decl(mergeTwoInterfaces.ts, 27, 3)) +>b.bar : Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 21, 16)) +>b : Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) +>bar : Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 21, 16)) + +// basic non-generic and generic case inside a module +module M { +>M : Symbol(M, Decl(mergeTwoInterfaces.ts, 27, 15)) + + interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) + + foo: string; +>foo : Symbol(foo, Decl(mergeTwoInterfaces.ts, 31, 17)) + } + + interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) + + bar: number; +>bar : Symbol(bar, Decl(mergeTwoInterfaces.ts, 35, 17)) + } + + var a: A; +>a : Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) +>A : Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) + + var r1 = a.foo; +>r1 : Symbol(r1, Decl(mergeTwoInterfaces.ts, 40, 7)) +>a.foo : Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 31, 17)) +>a : Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) +>foo : Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 31, 17)) + + // BUG 856491 + var r2 = a.bar; // any, should be number +>r2 : Symbol(r2, Decl(mergeTwoInterfaces.ts, 42, 7)) +>a.bar : Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 35, 17)) +>a : Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) +>bar : Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 35, 17)) + + interface B { +>B : Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) + + foo: T; +>foo : Symbol(foo, Decl(mergeTwoInterfaces.ts, 44, 20)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) + } + + interface B { +>B : Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) + + bar: T; +>bar : Symbol(bar, Decl(mergeTwoInterfaces.ts, 48, 20)) +>T : Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) + } + + var b: B; +>b : Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) +>B : Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) + + var r3 = b.foo +>r3 : Symbol(r3, Decl(mergeTwoInterfaces.ts, 53, 7)) +>b.foo : Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 44, 20)) +>b : Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) +>foo : Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 44, 20)) + + // BUG 856491 + var r4 = b.bar; // any, should be string +>r4 : Symbol(r4, Decl(mergeTwoInterfaces.ts, 55, 7)) +>b.bar : Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 48, 20)) +>b : Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) +>bar : Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 48, 20)) +} diff --git a/tests/baselines/reference/mergeTwoInterfaces.types b/tests/baselines/reference/mergeTwoInterfaces.types index eee5f42dc6b85..539f01d424029 100644 --- a/tests/baselines/reference/mergeTwoInterfaces.types +++ b/tests/baselines/reference/mergeTwoInterfaces.types @@ -3,140 +3,140 @@ // basic case interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeTwoInterfaces.ts, 3, 13)) +>foo : string } interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeTwoInterfaces.ts, 7, 13)) +>bar : number } var a: A; ->a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) ->A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeTwoInterfaces.ts, 12, 3)) ->a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 3, 13)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) ->foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 3, 13)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeTwoInterfaces.ts, 13, 3)) ->a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 7, 13)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) ->bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 7, 13)) +>r2 : number +>a.bar : number +>a : A +>bar : number // basic generic case interface B { ->B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) +>B : B +>T : T baz: string; ->baz : string, Symbol(baz, Decl(mergeTwoInterfaces.ts, 16, 16)) +>baz : string foo: T; ->foo : T, Symbol(foo, Decl(mergeTwoInterfaces.ts, 17, 16)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) +>foo : T +>T : T } interface B { ->B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) +>B : B +>T : T bar: T; ->bar : T, Symbol(bar, Decl(mergeTwoInterfaces.ts, 21, 16)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) +>bar : T +>T : T } var b: B; ->b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) ->B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) +>b : B +>B : B var r3 = b.foo ->r3 : string, Symbol(r3, Decl(mergeTwoInterfaces.ts, 26, 3)) ->b.foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 17, 16)) ->b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) ->foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 17, 16)) +>r3 : string +>b.foo : string +>b : B +>foo : string var r4 = b.bar; ->r4 : string, Symbol(r4, Decl(mergeTwoInterfaces.ts, 27, 3)) ->b.bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 21, 16)) ->b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) ->bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 21, 16)) +>r4 : string +>b.bar : string +>b : B +>bar : string // basic non-generic and generic case inside a module module M { ->M : typeof M, Symbol(M, Decl(mergeTwoInterfaces.ts, 27, 15)) +>M : typeof M interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeTwoInterfaces.ts, 31, 17)) +>foo : string } interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeTwoInterfaces.ts, 35, 17)) +>bar : number } var a: A; ->a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) ->A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) +>a : A +>A : A var r1 = a.foo; ->r1 : string, Symbol(r1, Decl(mergeTwoInterfaces.ts, 40, 7)) ->a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 31, 17)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) ->foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 31, 17)) +>r1 : string +>a.foo : string +>a : A +>foo : string // BUG 856491 var r2 = a.bar; // any, should be number ->r2 : number, Symbol(r2, Decl(mergeTwoInterfaces.ts, 42, 7)) ->a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 35, 17)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) ->bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 35, 17)) +>r2 : number +>a.bar : number +>a : A +>bar : number interface B { ->B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) +>B : B +>T : T foo: T; ->foo : T, Symbol(foo, Decl(mergeTwoInterfaces.ts, 44, 20)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) +>foo : T +>T : T } interface B { ->B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) +>B : B +>T : T bar: T; ->bar : T, Symbol(bar, Decl(mergeTwoInterfaces.ts, 48, 20)) ->T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) +>bar : T +>T : T } var b: B; ->b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) ->B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) +>b : B +>B : B var r3 = b.foo ->r3 : string, Symbol(r3, Decl(mergeTwoInterfaces.ts, 53, 7)) ->b.foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 44, 20)) ->b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) ->foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 44, 20)) +>r3 : string +>b.foo : string +>b : B +>foo : string // BUG 856491 var r4 = b.bar; // any, should be string ->r4 : string, Symbol(r4, Decl(mergeTwoInterfaces.ts, 55, 7)) ->b.bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 48, 20)) ->b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) ->bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 48, 20)) +>r4 : string +>b.bar : string +>b : B +>bar : string } diff --git a/tests/baselines/reference/mergeTwoInterfaces2.symbols b/tests/baselines/reference/mergeTwoInterfaces2.symbols new file mode 100644 index 0000000000000..661fbdc14d404 --- /dev/null +++ b/tests/baselines/reference/mergeTwoInterfaces2.symbols @@ -0,0 +1,120 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergeTwoInterfaces2.ts === +// two interfaces with the same root module should merge + +// root module now multiple module declarations +module M2 { +>M2 : Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) + + export interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) + + foo: string; +>foo : Symbol(foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) + } + + var a: A; +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 8, 7)) +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) + + var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeTwoInterfaces2.ts, 9, 7)) +>a.foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 8, 7)) +>foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeTwoInterfaces2.ts, 10, 7)) +>a.bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 8, 7)) +>bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +} + +module M2 { +>M2 : Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) + + export interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) + + bar: number; +>bar : Symbol(bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) + } + + var a: A; +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 18, 7)) +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) + + var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeTwoInterfaces2.ts, 19, 7)) +>a.foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 18, 7)) +>foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeTwoInterfaces2.ts, 20, 7)) +>a.bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 18, 7)) +>bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +} + +// same as above but with an additional level of nesting +module M2 { +>M2 : Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) + + export module M3 { +>M3 : Symbol(M3, Decl(mergeTwoInterfaces2.ts, 24, 11), Decl(mergeTwoInterfaces2.ts, 36, 11)) + + export interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) + + foo: string; +>foo : Symbol(foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) + } + + var a: A; +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 30, 11)) +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) + + var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeTwoInterfaces2.ts, 31, 11)) +>a.foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 30, 11)) +>foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeTwoInterfaces2.ts, 32, 11)) +>a.bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 30, 11)) +>bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) + } +} + +module M2 { +>M2 : Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) + + export module M3 { +>M3 : Symbol(M3, Decl(mergeTwoInterfaces2.ts, 24, 11), Decl(mergeTwoInterfaces2.ts, 36, 11)) + + export interface A { +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) + + bar: number; +>bar : Symbol(bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) + } + + var a: A; +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 42, 11)) +>A : Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) + + var r1 = a.foo +>r1 : Symbol(r1, Decl(mergeTwoInterfaces2.ts, 43, 11)) +>a.foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 42, 11)) +>foo : Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) + + var r2 = a.bar; +>r2 : Symbol(r2, Decl(mergeTwoInterfaces2.ts, 44, 11)) +>a.bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) +>a : Symbol(a, Decl(mergeTwoInterfaces2.ts, 42, 11)) +>bar : Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) + } +} diff --git a/tests/baselines/reference/mergeTwoInterfaces2.types b/tests/baselines/reference/mergeTwoInterfaces2.types index 3041de74a8249..f3908a6fe6738 100644 --- a/tests/baselines/reference/mergeTwoInterfaces2.types +++ b/tests/baselines/reference/mergeTwoInterfaces2.types @@ -3,118 +3,118 @@ // root module now multiple module declarations module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) +>M2 : typeof M2 export interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) +>foo : string } var a: A; ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 8, 7)) ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeTwoInterfaces2.ts, 9, 7)) ->a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 8, 7)) ->foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeTwoInterfaces2.ts, 10, 7)) ->a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 8, 7)) ->bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +>r2 : number +>a.bar : number +>a : A +>bar : number } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) +>M2 : typeof M2 export interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +>bar : number } var a: A; ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 18, 7)) ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 3, 11), Decl(mergeTwoInterfaces2.ts, 13, 11)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeTwoInterfaces2.ts, 19, 7)) ->a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 18, 7)) ->foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 4, 24)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeTwoInterfaces2.ts, 20, 7)) ->a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 18, 7)) ->bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 14, 24)) +>r2 : number +>a.bar : number +>a : A +>bar : number } // same as above but with an additional level of nesting module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) +>M2 : typeof M2 export module M3 { ->M3 : typeof M3, Symbol(M3, Decl(mergeTwoInterfaces2.ts, 24, 11), Decl(mergeTwoInterfaces2.ts, 36, 11)) +>M3 : typeof M3 export interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) +>foo : string } var a: A; ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 30, 11)) ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeTwoInterfaces2.ts, 31, 11)) ->a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 30, 11)) ->foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeTwoInterfaces2.ts, 32, 11)) ->a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 30, 11)) ->bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) +>r2 : number +>a.bar : number +>a : A +>bar : number } } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(mergeTwoInterfaces2.ts, 0, 0), Decl(mergeTwoInterfaces2.ts, 11, 1), Decl(mergeTwoInterfaces2.ts, 21, 1), Decl(mergeTwoInterfaces2.ts, 34, 1)) +>M2 : typeof M2 export module M3 { ->M3 : typeof M3, Symbol(M3, Decl(mergeTwoInterfaces2.ts, 24, 11), Decl(mergeTwoInterfaces2.ts, 36, 11)) +>M3 : typeof M3 export interface A { ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) +>A : A bar: number; ->bar : number, Symbol(bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) +>bar : number } var a: A; ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 42, 11)) ->A : A, Symbol(A, Decl(mergeTwoInterfaces2.ts, 25, 22), Decl(mergeTwoInterfaces2.ts, 37, 22)) +>a : A +>A : A var r1 = a.foo ->r1 : string, Symbol(r1, Decl(mergeTwoInterfaces2.ts, 43, 11)) ->a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 42, 11)) ->foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces2.ts, 26, 28)) +>r1 : string +>a.foo : string +>a : A +>foo : string var r2 = a.bar; ->r2 : number, Symbol(r2, Decl(mergeTwoInterfaces2.ts, 44, 11)) ->a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) ->a : A, Symbol(a, Decl(mergeTwoInterfaces2.ts, 42, 11)) ->bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces2.ts, 38, 28)) +>r2 : number +>a.bar : number +>a : A +>bar : number } } diff --git a/tests/baselines/reference/mergedDeclarations1.symbols b/tests/baselines/reference/mergedDeclarations1.symbols new file mode 100644 index 0000000000000..733b9c4ee3250 --- /dev/null +++ b/tests/baselines/reference/mergedDeclarations1.symbols @@ -0,0 +1,69 @@ +=== tests/cases/compiler/mergedDeclarations1.ts === +interface Point { +>Point : Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) + + x: number; +>x : Symbol(x, Decl(mergedDeclarations1.ts, 0, 17)) + + y: number; +>y : Symbol(y, Decl(mergedDeclarations1.ts, 1, 14)) +} +function point(x: number, y: number): Point { +>point : Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) +>x : Symbol(x, Decl(mergedDeclarations1.ts, 4, 15)) +>y : Symbol(y, Decl(mergedDeclarations1.ts, 4, 25)) +>Point : Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) + + return { x: x, y: y }; +>x : Symbol(x, Decl(mergedDeclarations1.ts, 5, 12)) +>x : Symbol(x, Decl(mergedDeclarations1.ts, 4, 15)) +>y : Symbol(y, Decl(mergedDeclarations1.ts, 5, 18)) +>y : Symbol(y, Decl(mergedDeclarations1.ts, 4, 25)) +} +module point { +>point : Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) + + export var origin = point(0, 0); +>origin : Symbol(origin, Decl(mergedDeclarations1.ts, 8, 14)) +>point : Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) + + export function equals(p1: Point, p2: Point) { +>equals : Symbol(equals, Decl(mergedDeclarations1.ts, 8, 36)) +>p1 : Symbol(p1, Decl(mergedDeclarations1.ts, 9, 27)) +>Point : Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) +>p2 : Symbol(p2, Decl(mergedDeclarations1.ts, 9, 37)) +>Point : Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) + + return p1.x == p2.x && p1.y == p2.y; +>p1.x : Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) +>p1 : Symbol(p1, Decl(mergedDeclarations1.ts, 9, 27)) +>x : Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) +>p2.x : Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) +>p2 : Symbol(p2, Decl(mergedDeclarations1.ts, 9, 37)) +>x : Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) +>p1.y : Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) +>p1 : Symbol(p1, Decl(mergedDeclarations1.ts, 9, 27)) +>y : Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) +>p2.y : Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) +>p2 : Symbol(p2, Decl(mergedDeclarations1.ts, 9, 37)) +>y : Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) + } +} +var p1 = point(0, 0); +>p1 : Symbol(p1, Decl(mergedDeclarations1.ts, 13, 3)) +>point : Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) + +var p2 = point.origin; +>p2 : Symbol(p2, Decl(mergedDeclarations1.ts, 14, 3)) +>point.origin : Symbol(point.origin, Decl(mergedDeclarations1.ts, 8, 14)) +>point : Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) +>origin : Symbol(point.origin, Decl(mergedDeclarations1.ts, 8, 14)) + +var b = point.equals(p1, p2); +>b : Symbol(b, Decl(mergedDeclarations1.ts, 15, 3)) +>point.equals : Symbol(point.equals, Decl(mergedDeclarations1.ts, 8, 36)) +>point : Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) +>equals : Symbol(point.equals, Decl(mergedDeclarations1.ts, 8, 36)) +>p1 : Symbol(p1, Decl(mergedDeclarations1.ts, 13, 3)) +>p2 : Symbol(p2, Decl(mergedDeclarations1.ts, 14, 3)) + diff --git a/tests/baselines/reference/mergedDeclarations1.types b/tests/baselines/reference/mergedDeclarations1.types index a2d1118327180..2a4f18947ce88 100644 --- a/tests/baselines/reference/mergedDeclarations1.types +++ b/tests/baselines/reference/mergedDeclarations1.types @@ -1,80 +1,80 @@ === tests/cases/compiler/mergedDeclarations1.ts === interface Point { ->Point : Point, Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(mergedDeclarations1.ts, 0, 17)) +>x : number y: number; ->y : number, Symbol(y, Decl(mergedDeclarations1.ts, 1, 14)) +>y : number } function point(x: number, y: number): Point { ->point : typeof point, Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) ->x : number, Symbol(x, Decl(mergedDeclarations1.ts, 4, 15)) ->y : number, Symbol(y, Decl(mergedDeclarations1.ts, 4, 25)) ->Point : Point, Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) +>point : typeof point +>x : number +>y : number +>Point : Point return { x: x, y: y }; >{ x: x, y: y } : { x: number; y: number; } ->x : number, Symbol(x, Decl(mergedDeclarations1.ts, 5, 12)) ->x : number, Symbol(x, Decl(mergedDeclarations1.ts, 4, 15)) ->y : number, Symbol(y, Decl(mergedDeclarations1.ts, 5, 18)) ->y : number, Symbol(y, Decl(mergedDeclarations1.ts, 4, 25)) +>x : number +>x : number +>y : number +>y : number } module point { ->point : typeof point, Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) +>point : typeof point export var origin = point(0, 0); ->origin : Point, Symbol(origin, Decl(mergedDeclarations1.ts, 8, 14)) +>origin : Point >point(0, 0) : Point ->point : typeof point, Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) +>point : typeof point >0 : number >0 : number export function equals(p1: Point, p2: Point) { ->equals : (p1: Point, p2: Point) => boolean, Symbol(equals, Decl(mergedDeclarations1.ts, 8, 36)) ->p1 : Point, Symbol(p1, Decl(mergedDeclarations1.ts, 9, 27)) ->Point : Point, Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) ->p2 : Point, Symbol(p2, Decl(mergedDeclarations1.ts, 9, 37)) ->Point : Point, Symbol(Point, Decl(mergedDeclarations1.ts, 0, 0)) +>equals : (p1: Point, p2: Point) => boolean +>p1 : Point +>Point : Point +>p2 : Point +>Point : Point return p1.x == p2.x && p1.y == p2.y; >p1.x == p2.x && p1.y == p2.y : boolean >p1.x == p2.x : boolean ->p1.x : number, Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) ->p1 : Point, Symbol(p1, Decl(mergedDeclarations1.ts, 9, 27)) ->x : number, Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) ->p2.x : number, Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) ->p2 : Point, Symbol(p2, Decl(mergedDeclarations1.ts, 9, 37)) ->x : number, Symbol(Point.x, Decl(mergedDeclarations1.ts, 0, 17)) +>p1.x : number +>p1 : Point +>x : number +>p2.x : number +>p2 : Point +>x : number >p1.y == p2.y : boolean ->p1.y : number, Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) ->p1 : Point, Symbol(p1, Decl(mergedDeclarations1.ts, 9, 27)) ->y : number, Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) ->p2.y : number, Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) ->p2 : Point, Symbol(p2, Decl(mergedDeclarations1.ts, 9, 37)) ->y : number, Symbol(Point.y, Decl(mergedDeclarations1.ts, 1, 14)) +>p1.y : number +>p1 : Point +>y : number +>p2.y : number +>p2 : Point +>y : number } } var p1 = point(0, 0); ->p1 : Point, Symbol(p1, Decl(mergedDeclarations1.ts, 13, 3)) +>p1 : Point >point(0, 0) : Point ->point : typeof point, Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) +>point : typeof point >0 : number >0 : number var p2 = point.origin; ->p2 : Point, Symbol(p2, Decl(mergedDeclarations1.ts, 14, 3)) ->point.origin : Point, Symbol(point.origin, Decl(mergedDeclarations1.ts, 8, 14)) ->point : typeof point, Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) ->origin : Point, Symbol(point.origin, Decl(mergedDeclarations1.ts, 8, 14)) +>p2 : Point +>point.origin : Point +>point : typeof point +>origin : Point var b = point.equals(p1, p2); ->b : boolean, Symbol(b, Decl(mergedDeclarations1.ts, 15, 3)) +>b : boolean >point.equals(p1, p2) : boolean ->point.equals : (p1: Point, p2: Point) => boolean, Symbol(point.equals, Decl(mergedDeclarations1.ts, 8, 36)) ->point : typeof point, Symbol(point, Decl(mergedDeclarations1.ts, 3, 1), Decl(mergedDeclarations1.ts, 6, 1)) ->equals : (p1: Point, p2: Point) => boolean, Symbol(point.equals, Decl(mergedDeclarations1.ts, 8, 36)) ->p1 : Point, Symbol(p1, Decl(mergedDeclarations1.ts, 13, 3)) ->p2 : Point, Symbol(p2, Decl(mergedDeclarations1.ts, 14, 3)) +>point.equals : (p1: Point, p2: Point) => boolean +>point : typeof point +>equals : (p1: Point, p2: Point) => boolean +>p1 : Point +>p2 : Point diff --git a/tests/baselines/reference/mergedDeclarations4.symbols b/tests/baselines/reference/mergedDeclarations4.symbols new file mode 100644 index 0000000000000..7cd2728843af8 --- /dev/null +++ b/tests/baselines/reference/mergedDeclarations4.symbols @@ -0,0 +1,58 @@ +=== tests/cases/compiler/mergedDeclarations4.ts === +module M { +>M : Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) + + export function f() { } +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + + f(); +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + + M.f(); +>M.f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M : Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + + var r = f.hello; +>r : Symbol(r, Decl(mergedDeclarations4.ts, 4, 7)) +>f.hello : Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>hello : Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +} + +module M { +>M : Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) + + export module f { +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + + export var hello = 1; +>hello : Symbol(hello, Decl(mergedDeclarations4.ts, 9, 18)) + } + f(); +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + + M.f(); +>M.f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M : Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + + var r = f.hello; +>r : Symbol(r, Decl(mergedDeclarations4.ts, 13, 7)) +>f.hello : Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +>f : Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>hello : Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +} + +M.f(); +>M.f : Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M : Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) +>f : Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) + +M.f.hello; +>M.f.hello : Symbol(M.f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +>M.f : Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M : Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) +>f : Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>hello : Symbol(M.f.hello, Decl(mergedDeclarations4.ts, 9, 18)) + diff --git a/tests/baselines/reference/mergedDeclarations4.types b/tests/baselines/reference/mergedDeclarations4.types index 29853fb9b8d83..9c55747c6f68e 100644 --- a/tests/baselines/reference/mergedDeclarations4.types +++ b/tests/baselines/reference/mergedDeclarations4.types @@ -1,64 +1,64 @@ === tests/cases/compiler/mergedDeclarations4.ts === module M { ->M : typeof M, Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) +>M : typeof M export function f() { } ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>f : typeof f f(); >f() : void ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>f : typeof f M.f(); >M.f() : void ->M.f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->M : typeof M, Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M.f : typeof f +>M : typeof M +>f : typeof f var r = f.hello; ->r : number, Symbol(r, Decl(mergedDeclarations4.ts, 4, 7)) ->f.hello : number, Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->hello : number, Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +>r : number +>f.hello : number +>f : typeof f +>hello : number } module M { ->M : typeof M, Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) +>M : typeof M export module f { ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>f : typeof f export var hello = 1; ->hello : number, Symbol(hello, Decl(mergedDeclarations4.ts, 9, 18)) +>hello : number >1 : number } f(); >f() : void ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>f : typeof f M.f(); >M.f() : void ->M.f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->M : typeof M, Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M.f : typeof f +>M : typeof M +>f : typeof f var r = f.hello; ->r : number, Symbol(r, Decl(mergedDeclarations4.ts, 13, 7)) ->f.hello : number, Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) ->f : typeof f, Symbol(f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->hello : number, Symbol(f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +>r : number +>f.hello : number +>f : typeof f +>hello : number } M.f(); >M.f() : void ->M.f : typeof M.f, Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->M : typeof M, Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) ->f : typeof M.f, Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) +>M.f : typeof M.f +>M : typeof M +>f : typeof M.f M.f.hello; ->M.f.hello : number, Symbol(M.f.hello, Decl(mergedDeclarations4.ts, 9, 18)) ->M.f : typeof M.f, Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->M : typeof M, Symbol(M, Decl(mergedDeclarations4.ts, 0, 0), Decl(mergedDeclarations4.ts, 5, 1)) ->f : typeof M.f, Symbol(M.f, Decl(mergedDeclarations4.ts, 0, 10), Decl(mergedDeclarations4.ts, 7, 10)) ->hello : number, Symbol(M.f.hello, Decl(mergedDeclarations4.ts, 9, 18)) +>M.f.hello : number +>M.f : typeof M.f +>M : typeof M +>f : typeof M.f +>hello : number diff --git a/tests/baselines/reference/mergedEnumDeclarationCodeGen.symbols b/tests/baselines/reference/mergedEnumDeclarationCodeGen.symbols new file mode 100644 index 0000000000000..7a15860d490d7 --- /dev/null +++ b/tests/baselines/reference/mergedEnumDeclarationCodeGen.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/mergedEnumDeclarationCodeGen.ts === +enum E { +>E : Symbol(E, Decl(mergedEnumDeclarationCodeGen.ts, 0, 0), Decl(mergedEnumDeclarationCodeGen.ts, 3, 1)) + + a, +>a : Symbol(E.a, Decl(mergedEnumDeclarationCodeGen.ts, 0, 8)) + + b = a +>b : Symbol(E.b, Decl(mergedEnumDeclarationCodeGen.ts, 1, 6)) +>a : Symbol(E.a, Decl(mergedEnumDeclarationCodeGen.ts, 0, 8)) +} +enum E { +>E : Symbol(E, Decl(mergedEnumDeclarationCodeGen.ts, 0, 0), Decl(mergedEnumDeclarationCodeGen.ts, 3, 1)) + + c = a +>c : Symbol(E.c, Decl(mergedEnumDeclarationCodeGen.ts, 4, 8)) +>a : Symbol(E.a, Decl(mergedEnumDeclarationCodeGen.ts, 0, 8)) +} diff --git a/tests/baselines/reference/mergedEnumDeclarationCodeGen.types b/tests/baselines/reference/mergedEnumDeclarationCodeGen.types index 215a8fc0779ca..84e6a8237e58d 100644 --- a/tests/baselines/reference/mergedEnumDeclarationCodeGen.types +++ b/tests/baselines/reference/mergedEnumDeclarationCodeGen.types @@ -1,18 +1,18 @@ === tests/cases/compiler/mergedEnumDeclarationCodeGen.ts === enum E { ->E : E, Symbol(E, Decl(mergedEnumDeclarationCodeGen.ts, 0, 0), Decl(mergedEnumDeclarationCodeGen.ts, 3, 1)) +>E : E a, ->a : E, Symbol(E.a, Decl(mergedEnumDeclarationCodeGen.ts, 0, 8)) +>a : E b = a ->b : E, Symbol(E.b, Decl(mergedEnumDeclarationCodeGen.ts, 1, 6)) ->a : E, Symbol(E.a, Decl(mergedEnumDeclarationCodeGen.ts, 0, 8)) +>b : E +>a : E } enum E { ->E : E, Symbol(E, Decl(mergedEnumDeclarationCodeGen.ts, 0, 0), Decl(mergedEnumDeclarationCodeGen.ts, 3, 1)) +>E : E c = a ->c : E, Symbol(E.c, Decl(mergedEnumDeclarationCodeGen.ts, 4, 8)) ->a : E, Symbol(E.a, Decl(mergedEnumDeclarationCodeGen.ts, 0, 8)) +>c : E +>a : E } diff --git a/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.symbols b/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.symbols new file mode 100644 index 0000000000000..f34501f025b82 --- /dev/null +++ b/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/mergedInterfaceFromMultipleFiles1_1.ts === +/// + +interface D { bar(): number; } +>D : Symbol(D, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 0, 0)) +>bar : Symbol(bar, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 13)) + +interface C extends D { +>C : Symbol(C, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 30), Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 30)) +>D : Symbol(D, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 0, 0)) + + b(): Date; +>b : Symbol(b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 4, 23)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var c:C; +>c : Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) +>C : Symbol(C, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 30), Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 30)) + +var a: string = c.foo(); +>a : Symbol(a, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 9, 3)) +>c.foo : Symbol(I.foo, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 13)) +>c : Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) +>foo : Symbol(I.foo, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 13)) + +var b: number = c.bar(); +>b : Symbol(b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 10, 3)) +>c.bar : Symbol(D.bar, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 13)) +>c : Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) +>bar : Symbol(D.bar, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 13)) + +var d: number = c.a(); +>d : Symbol(d, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 11, 3)) +>c.a : Symbol(C.a, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 3, 23)) +>c : Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) +>a : Symbol(C.a, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 3, 23)) + +var e: Date = c.b(); +>e : Symbol(e, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 12, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>c.b : Symbol(C.b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 4, 23)) +>c : Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) +>b : Symbol(C.b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 4, 23)) + +=== tests/cases/compiler/mergedInterfaceFromMultipleFiles1_0.ts === + +interface I { foo(): string; } +>I : Symbol(I, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 0, 0)) +>foo : Symbol(foo, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 13)) + +interface C extends I { +>C : Symbol(C, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 30), Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 30)) +>I : Symbol(I, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 0, 0)) + + a(): number; +>a : Symbol(a, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 3, 23)) +} + diff --git a/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.types b/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.types index a6f480aca71bc..ad6b07f0312e6 100644 --- a/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.types +++ b/tests/baselines/reference/mergedInterfaceFromMultipleFiles1.types @@ -2,62 +2,62 @@ /// interface D { bar(): number; } ->D : D, Symbol(D, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 0, 0)) ->bar : () => number, Symbol(bar, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 13)) +>D : D +>bar : () => number interface C extends D { ->C : C, Symbol(C, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 30), Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 30)) ->D : D, Symbol(D, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 0, 0)) +>C : C +>D : D b(): Date; ->b : () => Date, Symbol(b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 4, 23)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>b : () => Date +>Date : Date } var c:C; ->c : C, Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) ->C : C, Symbol(C, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 30), Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 30)) +>c : C +>C : C var a: string = c.foo(); ->a : string, Symbol(a, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 9, 3)) +>a : string >c.foo() : string ->c.foo : () => string, Symbol(I.foo, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 13)) ->c : C, Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) ->foo : () => string, Symbol(I.foo, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 13)) +>c.foo : () => string +>c : C +>foo : () => string var b: number = c.bar(); ->b : number, Symbol(b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 10, 3)) +>b : number >c.bar() : number ->c.bar : () => number, Symbol(D.bar, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 13)) ->c : C, Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) ->bar : () => number, Symbol(D.bar, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 13)) +>c.bar : () => number +>c : C +>bar : () => number var d: number = c.a(); ->d : number, Symbol(d, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 11, 3)) +>d : number >c.a() : number ->c.a : () => number, Symbol(C.a, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 3, 23)) ->c : C, Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) ->a : () => number, Symbol(C.a, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 3, 23)) +>c.a : () => number +>c : C +>a : () => number var e: Date = c.b(); ->e : Date, Symbol(e, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 12, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>e : Date +>Date : Date >c.b() : Date ->c.b : () => Date, Symbol(C.b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 4, 23)) ->c : C, Symbol(c, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 8, 3)) ->b : () => Date, Symbol(C.b, Decl(mergedInterfaceFromMultipleFiles1_1.ts, 4, 23)) +>c.b : () => Date +>c : C +>b : () => Date === tests/cases/compiler/mergedInterfaceFromMultipleFiles1_0.ts === interface I { foo(): string; } ->I : I, Symbol(I, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 0, 0)) ->foo : () => string, Symbol(foo, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 13)) +>I : I +>foo : () => string interface C extends I { ->C : C, Symbol(C, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 1, 30), Decl(mergedInterfaceFromMultipleFiles1_1.ts, 2, 30)) ->I : I, Symbol(I, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 0, 0)) +>C : C +>I : I a(): number; ->a : () => number, Symbol(a, Decl(mergedInterfaceFromMultipleFiles1_0.ts, 3, 23)) +>a : () => number } diff --git a/tests/baselines/reference/mergedInterfacesWithIndexers.symbols b/tests/baselines/reference/mergedInterfacesWithIndexers.symbols new file mode 100644 index 0000000000000..b4e47c58878e2 --- /dev/null +++ b/tests/baselines/reference/mergedInterfacesWithIndexers.symbols @@ -0,0 +1,35 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithIndexers.ts === +// indexers should behave like other members when merging interface declarations + +interface A { +>A : Symbol(A, Decl(mergedInterfacesWithIndexers.ts, 0, 0), Decl(mergedInterfacesWithIndexers.ts, 4, 1)) + + [x: number]: string; +>x : Symbol(x, Decl(mergedInterfacesWithIndexers.ts, 3, 5)) +} + + +interface A { +>A : Symbol(A, Decl(mergedInterfacesWithIndexers.ts, 0, 0), Decl(mergedInterfacesWithIndexers.ts, 4, 1)) + + [x: string]: { length: number }; +>x : Symbol(x, Decl(mergedInterfacesWithIndexers.ts, 8, 5)) +>length : Symbol(length, Decl(mergedInterfacesWithIndexers.ts, 8, 18)) +} + +var a: A; +>a : Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) +>A : Symbol(A, Decl(mergedInterfacesWithIndexers.ts, 0, 0), Decl(mergedInterfacesWithIndexers.ts, 4, 1)) + +var r = a[1]; +>r : Symbol(r, Decl(mergedInterfacesWithIndexers.ts, 12, 3)) +>a : Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) + +var r2 = a['1']; +>r2 : Symbol(r2, Decl(mergedInterfacesWithIndexers.ts, 13, 3)) +>a : Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) + +var r3 = a['hi']; +>r3 : Symbol(r3, Decl(mergedInterfacesWithIndexers.ts, 14, 3)) +>a : Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) + diff --git a/tests/baselines/reference/mergedInterfacesWithIndexers.types b/tests/baselines/reference/mergedInterfacesWithIndexers.types index 235f9316821ae..b228931660a3c 100644 --- a/tests/baselines/reference/mergedInterfacesWithIndexers.types +++ b/tests/baselines/reference/mergedInterfacesWithIndexers.types @@ -2,40 +2,40 @@ // indexers should behave like other members when merging interface declarations interface A { ->A : A, Symbol(A, Decl(mergedInterfacesWithIndexers.ts, 0, 0), Decl(mergedInterfacesWithIndexers.ts, 4, 1)) +>A : A [x: number]: string; ->x : number, Symbol(x, Decl(mergedInterfacesWithIndexers.ts, 3, 5)) +>x : number } interface A { ->A : A, Symbol(A, Decl(mergedInterfacesWithIndexers.ts, 0, 0), Decl(mergedInterfacesWithIndexers.ts, 4, 1)) +>A : A [x: string]: { length: number }; ->x : string, Symbol(x, Decl(mergedInterfacesWithIndexers.ts, 8, 5)) ->length : number, Symbol(length, Decl(mergedInterfacesWithIndexers.ts, 8, 18)) +>x : string +>length : number } var a: A; ->a : A, Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) ->A : A, Symbol(A, Decl(mergedInterfacesWithIndexers.ts, 0, 0), Decl(mergedInterfacesWithIndexers.ts, 4, 1)) +>a : A +>A : A var r = a[1]; ->r : string, Symbol(r, Decl(mergedInterfacesWithIndexers.ts, 12, 3)) +>r : string >a[1] : string ->a : A, Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) +>a : A >1 : number var r2 = a['1']; ->r2 : { length: number; }, Symbol(r2, Decl(mergedInterfacesWithIndexers.ts, 13, 3)) +>r2 : { length: number; } >a['1'] : { length: number; } ->a : A, Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) +>a : A >'1' : string var r3 = a['hi']; ->r3 : { length: number; }, Symbol(r3, Decl(mergedInterfacesWithIndexers.ts, 14, 3)) +>r3 : { length: number; } >a['hi'] : { length: number; } ->a : A, Symbol(a, Decl(mergedInterfacesWithIndexers.ts, 11, 3)) +>a : A >'hi' : string diff --git a/tests/baselines/reference/mergedInterfacesWithMultipleBases.symbols b/tests/baselines/reference/mergedInterfacesWithMultipleBases.symbols new file mode 100644 index 0000000000000..b3fe87bca29e4 --- /dev/null +++ b/tests/baselines/reference/mergedInterfacesWithMultipleBases.symbols @@ -0,0 +1,121 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases.ts === +// merged interfaces behave as if all extends clauses from each declaration are merged together +// no errors expected + +class C { +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 0, 0)) + + a: number; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 3, 9)) +} + +class C2 { +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 5, 1)) + + b: number; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 7, 10)) +} + +interface A extends C { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 0, 0)) + + y: string; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 11, 23)) +} + +interface A extends C2 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 5, 1)) + + z: string; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 15, 24)) +} + +class D implements A { +>D : Symbol(D, Decl(mergedInterfacesWithMultipleBases.ts, 17, 1)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) + + a: number; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 19, 22)) + + b: number; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 20, 14)) + + y: string; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 21, 14)) + + z: string; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 22, 14)) +} + +var a: A; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 26, 3)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) + +var r = a.a; +>r : Symbol(r, Decl(mergedInterfacesWithMultipleBases.ts, 27, 3)) +>a.a : Symbol(C.a, Decl(mergedInterfacesWithMultipleBases.ts, 3, 9)) +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 26, 3)) +>a : Symbol(C.a, Decl(mergedInterfacesWithMultipleBases.ts, 3, 9)) + +// generic interfaces in a module +module M { +>M : Symbol(M, Decl(mergedInterfacesWithMultipleBases.ts, 27, 12)) + + class C { +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 30, 10)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 31, 12)) + + a: T; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 31, 16)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 31, 12)) + } + + class C2 { +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 33, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 35, 13)) + + b: T; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 35, 17)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 35, 13)) + } + + interface A extends C { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 37, 5), Decl(mergedInterfacesWithMultipleBases.ts, 41, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 30, 10)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) + + y: T; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 39, 33)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) + } + + interface A extends C2 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 37, 5), Decl(mergedInterfacesWithMultipleBases.ts, 41, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 33, 5)) + + z: T; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 43, 39)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) + } + + class D implements A { +>D : Symbol(D, Decl(mergedInterfacesWithMultipleBases.ts, 45, 5)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 37, 5), Decl(mergedInterfacesWithMultipleBases.ts, 41, 5)) + + a: boolean; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 47, 35)) + + b: string; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 48, 19)) + + y: boolean; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 49, 18)) + + z: boolean; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 50, 19)) + } +} diff --git a/tests/baselines/reference/mergedInterfacesWithMultipleBases.types b/tests/baselines/reference/mergedInterfacesWithMultipleBases.types index 6217509b273ad..4fb955dab2e92 100644 --- a/tests/baselines/reference/mergedInterfacesWithMultipleBases.types +++ b/tests/baselines/reference/mergedInterfacesWithMultipleBases.types @@ -3,119 +3,119 @@ // no errors expected class C { ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 0, 0)) +>C : C a: number; ->a : number, Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 3, 9)) +>a : number } class C2 { ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 5, 1)) +>C2 : C2 b: number; ->b : number, Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 7, 10)) +>b : number } interface A extends C { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 0, 0)) +>A : A +>C : C y: string; ->y : string, Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 11, 23)) +>y : string } interface A extends C2 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 5, 1)) +>A : A +>C2 : C2 z: string; ->z : string, Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 15, 24)) +>z : string } class D implements A { ->D : D, Symbol(D, Decl(mergedInterfacesWithMultipleBases.ts, 17, 1)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) +>D : D +>A : A a: number; ->a : number, Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 19, 22)) +>a : number b: number; ->b : number, Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 20, 14)) +>b : number y: string; ->y : string, Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 21, 14)) +>y : string z: string; ->z : string, Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 22, 14)) +>z : string } var a: A; ->a : A, Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 26, 3)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 9, 1), Decl(mergedInterfacesWithMultipleBases.ts, 13, 1)) +>a : A +>A : A var r = a.a; ->r : number, Symbol(r, Decl(mergedInterfacesWithMultipleBases.ts, 27, 3)) ->a.a : number, Symbol(C.a, Decl(mergedInterfacesWithMultipleBases.ts, 3, 9)) ->a : A, Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 26, 3)) ->a : number, Symbol(C.a, Decl(mergedInterfacesWithMultipleBases.ts, 3, 9)) +>r : number +>a.a : number +>a : A +>a : number // generic interfaces in a module module M { ->M : typeof M, Symbol(M, Decl(mergedInterfacesWithMultipleBases.ts, 27, 12)) +>M : typeof M class C { ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 30, 10)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 31, 12)) +>C : C +>T : T a: T; ->a : T, Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 31, 16)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 31, 12)) +>a : T +>T : T } class C2 { ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 33, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 35, 13)) +>C2 : C2 +>T : T b: T; ->b : T, Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 35, 17)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 35, 13)) +>b : T +>T : T } interface A extends C { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 37, 5), Decl(mergedInterfacesWithMultipleBases.ts, 41, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases.ts, 30, 10)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) +>A : A +>T : T +>C : C +>T : T y: T; ->y : T, Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 39, 33)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) +>y : T +>T : T } interface A extends C2 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 37, 5), Decl(mergedInterfacesWithMultipleBases.ts, 41, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases.ts, 33, 5)) +>A : A +>T : T +>C2 : C2 z: T; ->z : T, Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 43, 39)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases.ts, 39, 16), Decl(mergedInterfacesWithMultipleBases.ts, 43, 16)) +>z : T +>T : T } class D implements A { ->D : D, Symbol(D, Decl(mergedInterfacesWithMultipleBases.ts, 45, 5)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases.ts, 37, 5), Decl(mergedInterfacesWithMultipleBases.ts, 41, 5)) +>D : D +>A : A a: boolean; ->a : boolean, Symbol(a, Decl(mergedInterfacesWithMultipleBases.ts, 47, 35)) +>a : boolean b: string; ->b : string, Symbol(b, Decl(mergedInterfacesWithMultipleBases.ts, 48, 19)) +>b : string y: boolean; ->y : boolean, Symbol(y, Decl(mergedInterfacesWithMultipleBases.ts, 49, 18)) +>y : boolean z: boolean; ->z : boolean, Symbol(z, Decl(mergedInterfacesWithMultipleBases.ts, 50, 19)) +>z : boolean } } diff --git a/tests/baselines/reference/mergedInterfacesWithMultipleBases2.symbols b/tests/baselines/reference/mergedInterfacesWithMultipleBases2.symbols new file mode 100644 index 0000000000000..7424e0d110bb1 --- /dev/null +++ b/tests/baselines/reference/mergedInterfacesWithMultipleBases2.symbols @@ -0,0 +1,171 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases2.ts === +// merged interfaces behave as if all extends clauses from each declaration are merged together +// no errors expected + +class C { +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 0, 0)) + + a: number; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 3, 9)) +} + +class C2 { +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 5, 1)) + + b: number; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 7, 10)) +} + +class C3 { +>C3 : Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 9, 1)) + + c: string; +>c : Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 11, 10)) +} + +class C4 { +>C4 : Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 13, 1)) + + d: string; +>d : Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 15, 10)) +} + + +interface A extends C, C3 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 0, 0)) +>C3 : Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 9, 1)) + + y: string; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 20, 27)) +} + +interface A extends C2, C4 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 5, 1)) +>C4 : Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 13, 1)) + + z: string; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 24, 28)) +} + +class D implements A { +>D : Symbol(D, Decl(mergedInterfacesWithMultipleBases2.ts, 26, 1)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) + + a: number; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 28, 22)) + + b: number; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 29, 14)) + + c: string; +>c : Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 30, 14)) + + d: string; +>d : Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 31, 14)) + + y: string; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 32, 14)) + + z: string; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 33, 14)) +} + +var a: A; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 37, 3)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) + +var r = a.a; +>r : Symbol(r, Decl(mergedInterfacesWithMultipleBases2.ts, 38, 3)) +>a.a : Symbol(C.a, Decl(mergedInterfacesWithMultipleBases2.ts, 3, 9)) +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 37, 3)) +>a : Symbol(C.a, Decl(mergedInterfacesWithMultipleBases2.ts, 3, 9)) + +// generic interfaces in a module +module M { +>M : Symbol(M, Decl(mergedInterfacesWithMultipleBases2.ts, 38, 12)) + + class C { +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 41, 10)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 42, 12)) + + a: T; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 42, 16)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 42, 12)) + } + + class C2 { +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 44, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 46, 13)) + + b: T; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 46, 17)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 46, 13)) + } + + class C3 { +>C3 : Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 48, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 50, 13)) + + c: T; +>c : Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 50, 17)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 50, 13)) + } + + class C4 { +>C4 : Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 52, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 54, 13)) + + d: T; +>d : Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 54, 17)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 54, 13)) + } + + interface A extends C, C3 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 56, 5), Decl(mergedInterfacesWithMultipleBases2.ts, 60, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 41, 10)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) +>C3 : Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 48, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) + + y: T; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 40)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) + } + + interface A extends C2, C4 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 56, 5), Decl(mergedInterfacesWithMultipleBases2.ts, 60, 5)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 44, 5)) +>C4 : Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 52, 5)) + + z: T; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 62, 51)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) + } + + class D implements A { +>D : Symbol(D, Decl(mergedInterfacesWithMultipleBases2.ts, 64, 5)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 56, 5), Decl(mergedInterfacesWithMultipleBases2.ts, 60, 5)) + + a: boolean; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 66, 35)) + + b: string; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 67, 19)) + + c: boolean; +>c : Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 68, 18)) + + d: string; +>d : Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 69, 19)) + + y: boolean; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 70, 18)) + + z: boolean; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 71, 19)) + } +} diff --git a/tests/baselines/reference/mergedInterfacesWithMultipleBases2.types b/tests/baselines/reference/mergedInterfacesWithMultipleBases2.types index a21f9e4421d54..b8dfec64baea2 100644 --- a/tests/baselines/reference/mergedInterfacesWithMultipleBases2.types +++ b/tests/baselines/reference/mergedInterfacesWithMultipleBases2.types @@ -3,169 +3,169 @@ // no errors expected class C { ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 0, 0)) +>C : C a: number; ->a : number, Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 3, 9)) +>a : number } class C2 { ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 5, 1)) +>C2 : C2 b: number; ->b : number, Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 7, 10)) +>b : number } class C3 { ->C3 : C3, Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 9, 1)) +>C3 : C3 c: string; ->c : string, Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 11, 10)) +>c : string } class C4 { ->C4 : C4, Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 13, 1)) +>C4 : C4 d: string; ->d : string, Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 15, 10)) +>d : string } interface A extends C, C3 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 0, 0)) ->C3 : C3, Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 9, 1)) +>A : A +>C : C +>C3 : C3 y: string; ->y : string, Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 20, 27)) +>y : string } interface A extends C2, C4 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 5, 1)) ->C4 : C4, Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 13, 1)) +>A : A +>C2 : C2 +>C4 : C4 z: string; ->z : string, Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 24, 28)) +>z : string } class D implements A { ->D : D, Symbol(D, Decl(mergedInterfacesWithMultipleBases2.ts, 26, 1)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) +>D : D +>A : A a: number; ->a : number, Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 28, 22)) +>a : number b: number; ->b : number, Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 29, 14)) +>b : number c: string; ->c : string, Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 30, 14)) +>c : string d: string; ->d : string, Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 31, 14)) +>d : string y: string; ->y : string, Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 32, 14)) +>y : string z: string; ->z : string, Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 33, 14)) +>z : string } var a: A; ->a : A, Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 37, 3)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases2.ts, 22, 1)) +>a : A +>A : A var r = a.a; ->r : number, Symbol(r, Decl(mergedInterfacesWithMultipleBases2.ts, 38, 3)) ->a.a : number, Symbol(C.a, Decl(mergedInterfacesWithMultipleBases2.ts, 3, 9)) ->a : A, Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 37, 3)) ->a : number, Symbol(C.a, Decl(mergedInterfacesWithMultipleBases2.ts, 3, 9)) +>r : number +>a.a : number +>a : A +>a : number // generic interfaces in a module module M { ->M : typeof M, Symbol(M, Decl(mergedInterfacesWithMultipleBases2.ts, 38, 12)) +>M : typeof M class C { ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 41, 10)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 42, 12)) +>C : C +>T : T a: T; ->a : T, Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 42, 16)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 42, 12)) +>a : T +>T : T } class C2 { ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 44, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 46, 13)) +>C2 : C2 +>T : T b: T; ->b : T, Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 46, 17)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 46, 13)) +>b : T +>T : T } class C3 { ->C3 : C3, Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 48, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 50, 13)) +>C3 : C3 +>T : T c: T; ->c : T, Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 50, 17)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 50, 13)) +>c : T +>T : T } class C4 { ->C4 : C4, Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 52, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 54, 13)) +>C4 : C4 +>T : T d: T; ->d : T, Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 54, 17)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 54, 13)) +>d : T +>T : T } interface A extends C, C3 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 56, 5), Decl(mergedInterfacesWithMultipleBases2.ts, 60, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases2.ts, 41, 10)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) ->C3 : C3, Symbol(C3, Decl(mergedInterfacesWithMultipleBases2.ts, 48, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) +>A : A +>T : T +>C : C +>T : T +>C3 : C3 +>T : T y: T; ->y : T, Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 40)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) +>y : T +>T : T } interface A extends C2, C4 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 56, 5), Decl(mergedInterfacesWithMultipleBases2.ts, 60, 5)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases2.ts, 44, 5)) ->C4 : C4, Symbol(C4, Decl(mergedInterfacesWithMultipleBases2.ts, 52, 5)) +>A : A +>T : T +>C2 : C2 +>C4 : C4 z: T; ->z : T, Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 62, 51)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases2.ts, 58, 16), Decl(mergedInterfacesWithMultipleBases2.ts, 62, 16)) +>z : T +>T : T } class D implements A { ->D : D, Symbol(D, Decl(mergedInterfacesWithMultipleBases2.ts, 64, 5)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases2.ts, 56, 5), Decl(mergedInterfacesWithMultipleBases2.ts, 60, 5)) +>D : D +>A : A a: boolean; ->a : boolean, Symbol(a, Decl(mergedInterfacesWithMultipleBases2.ts, 66, 35)) +>a : boolean b: string; ->b : string, Symbol(b, Decl(mergedInterfacesWithMultipleBases2.ts, 67, 19)) +>b : string c: boolean; ->c : boolean, Symbol(c, Decl(mergedInterfacesWithMultipleBases2.ts, 68, 18)) +>c : boolean d: string; ->d : string, Symbol(d, Decl(mergedInterfacesWithMultipleBases2.ts, 69, 19)) +>d : string y: boolean; ->y : boolean, Symbol(y, Decl(mergedInterfacesWithMultipleBases2.ts, 70, 18)) +>y : boolean z: boolean; ->z : boolean, Symbol(z, Decl(mergedInterfacesWithMultipleBases2.ts, 71, 19)) +>z : boolean } } diff --git a/tests/baselines/reference/mergedInterfacesWithMultipleBases3.symbols b/tests/baselines/reference/mergedInterfacesWithMultipleBases3.symbols new file mode 100644 index 0000000000000..337ef1dbb1cab --- /dev/null +++ b/tests/baselines/reference/mergedInterfacesWithMultipleBases3.symbols @@ -0,0 +1,85 @@ +=== tests/cases/conformance/interfaces/declarationMerging/mergedInterfacesWithMultipleBases3.ts === +// merged interfaces behave as if all extends clauses from each declaration are merged together +// no errors expected + +class C { +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases3.ts, 0, 0)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 3, 8)) + + a: T; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases3.ts, 3, 12)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 3, 8)) +} + +class C2 { +>C2 : Symbol(C2, Decl(mergedInterfacesWithMultipleBases3.ts, 5, 1)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 7, 9)) + + b: T; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases3.ts, 7, 13)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 7, 9)) +} + +class C3 { +>C3 : Symbol(C3, Decl(mergedInterfacesWithMultipleBases3.ts, 9, 1)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 11, 9)) + + c: T; +>c : Symbol(c, Decl(mergedInterfacesWithMultipleBases3.ts, 11, 13)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 11, 9)) +} + +class C4 { +>C4 : Symbol(C4, Decl(mergedInterfacesWithMultipleBases3.ts, 13, 1)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 15, 9)) + + d: T; +>d : Symbol(d, Decl(mergedInterfacesWithMultipleBases3.ts, 15, 13)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 15, 9)) +} + +interface A extends C, C3 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases3.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases3.ts, 21, 1)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases3.ts, 0, 0)) +>C3 : Symbol(C3, Decl(mergedInterfacesWithMultipleBases3.ts, 9, 1)) + + y: T; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 46)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) +} + +interface A extends C, C4 { +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases3.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases3.ts, 21, 1)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) +>C : Symbol(C, Decl(mergedInterfacesWithMultipleBases3.ts, 0, 0)) +>C4 : Symbol(C4, Decl(mergedInterfacesWithMultipleBases3.ts, 13, 1)) + + z: T; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases3.ts, 23, 46)) +>T : Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) +} + +class D implements A { +>D : Symbol(D, Decl(mergedInterfacesWithMultipleBases3.ts, 25, 1)) +>A : Symbol(A, Decl(mergedInterfacesWithMultipleBases3.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases3.ts, 21, 1)) + + a: string; +>a : Symbol(a, Decl(mergedInterfacesWithMultipleBases3.ts, 27, 31)) + + b: Date; +>b : Symbol(b, Decl(mergedInterfacesWithMultipleBases3.ts, 28, 14)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + c: string; +>c : Symbol(c, Decl(mergedInterfacesWithMultipleBases3.ts, 29, 12)) + + d: string; +>d : Symbol(d, Decl(mergedInterfacesWithMultipleBases3.ts, 30, 14)) + + y: boolean; +>y : Symbol(y, Decl(mergedInterfacesWithMultipleBases3.ts, 31, 14)) + + z: boolean; +>z : Symbol(z, Decl(mergedInterfacesWithMultipleBases3.ts, 32, 15)) +} diff --git a/tests/baselines/reference/mergedInterfacesWithMultipleBases3.types b/tests/baselines/reference/mergedInterfacesWithMultipleBases3.types index 9c0dbd8009d28..f59510089321a 100644 --- a/tests/baselines/reference/mergedInterfacesWithMultipleBases3.types +++ b/tests/baselines/reference/mergedInterfacesWithMultipleBases3.types @@ -3,83 +3,83 @@ // no errors expected class C { ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases3.ts, 0, 0)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 3, 8)) +>C : C +>T : T a: T; ->a : T, Symbol(a, Decl(mergedInterfacesWithMultipleBases3.ts, 3, 12)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 3, 8)) +>a : T +>T : T } class C2 { ->C2 : C2, Symbol(C2, Decl(mergedInterfacesWithMultipleBases3.ts, 5, 1)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 7, 9)) +>C2 : C2 +>T : T b: T; ->b : T, Symbol(b, Decl(mergedInterfacesWithMultipleBases3.ts, 7, 13)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 7, 9)) +>b : T +>T : T } class C3 { ->C3 : C3, Symbol(C3, Decl(mergedInterfacesWithMultipleBases3.ts, 9, 1)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 11, 9)) +>C3 : C3 +>T : T c: T; ->c : T, Symbol(c, Decl(mergedInterfacesWithMultipleBases3.ts, 11, 13)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 11, 9)) +>c : T +>T : T } class C4 { ->C4 : C4, Symbol(C4, Decl(mergedInterfacesWithMultipleBases3.ts, 13, 1)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 15, 9)) +>C4 : C4 +>T : T d: T; ->d : T, Symbol(d, Decl(mergedInterfacesWithMultipleBases3.ts, 15, 13)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 15, 9)) +>d : T +>T : T } interface A extends C, C3 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases3.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases3.ts, 21, 1)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases3.ts, 0, 0)) ->C3 : C3, Symbol(C3, Decl(mergedInterfacesWithMultipleBases3.ts, 9, 1)) +>A : A +>T : T +>C : C +>C3 : C3 y: T; ->y : T, Symbol(y, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 46)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) +>y : T +>T : T } interface A extends C, C4 { ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases3.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases3.ts, 21, 1)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) ->C : C, Symbol(C, Decl(mergedInterfacesWithMultipleBases3.ts, 0, 0)) ->C4 : C4, Symbol(C4, Decl(mergedInterfacesWithMultipleBases3.ts, 13, 1)) +>A : A +>T : T +>C : C +>C4 : C4 z: T; ->z : T, Symbol(z, Decl(mergedInterfacesWithMultipleBases3.ts, 23, 46)) ->T : T, Symbol(T, Decl(mergedInterfacesWithMultipleBases3.ts, 19, 12), Decl(mergedInterfacesWithMultipleBases3.ts, 23, 12)) +>z : T +>T : T } class D implements A { ->D : D, Symbol(D, Decl(mergedInterfacesWithMultipleBases3.ts, 25, 1)) ->A : A, Symbol(A, Decl(mergedInterfacesWithMultipleBases3.ts, 17, 1), Decl(mergedInterfacesWithMultipleBases3.ts, 21, 1)) +>D : D +>A : A a: string; ->a : string, Symbol(a, Decl(mergedInterfacesWithMultipleBases3.ts, 27, 31)) +>a : string b: Date; ->b : Date, Symbol(b, Decl(mergedInterfacesWithMultipleBases3.ts, 28, 14)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>b : Date +>Date : Date c: string; ->c : string, Symbol(c, Decl(mergedInterfacesWithMultipleBases3.ts, 29, 12)) +>c : string d: string; ->d : string, Symbol(d, Decl(mergedInterfacesWithMultipleBases3.ts, 30, 14)) +>d : string y: boolean; ->y : boolean, Symbol(y, Decl(mergedInterfacesWithMultipleBases3.ts, 31, 14)) +>y : boolean z: boolean; ->z : boolean, Symbol(z, Decl(mergedInterfacesWithMultipleBases3.ts, 32, 15)) +>z : boolean } diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen2.symbols b/tests/baselines/reference/mergedModuleDeclarationCodeGen2.symbols new file mode 100644 index 0000000000000..a58a2443ff9f8 --- /dev/null +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen2.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/mergedModuleDeclarationCodeGen2.ts === +module my.data.foo { +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen2.ts, 2, 1)) +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen2.ts, 3, 10)) +>foo : Symbol(foo, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 15)) + + export function buz() { } +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 20)) +} +module my.data { +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen2.ts, 2, 1)) +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen2.ts, 3, 10)) + + function data(my) { +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen2.ts, 3, 16)) +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen2.ts, 4, 18)) + + foo.buz(); +>foo.buz : Symbol(foo.buz, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 20)) +>foo : Symbol(foo, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 15)) +>buz : Symbol(foo.buz, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 20)) + } +} diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen2.types b/tests/baselines/reference/mergedModuleDeclarationCodeGen2.types index 94bb815042a0c..790ec8d93776f 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen2.types +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen2.types @@ -1,24 +1,24 @@ === tests/cases/compiler/mergedModuleDeclarationCodeGen2.ts === module my.data.foo { ->my : typeof my, Symbol(my, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen2.ts, 2, 1)) ->data : typeof data, Symbol(data, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen2.ts, 3, 10)) ->foo : typeof foo, Symbol(foo, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 15)) +>my : typeof my +>data : typeof data +>foo : typeof foo export function buz() { } ->buz : () => void, Symbol(buz, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 20)) +>buz : () => void } module my.data { ->my : typeof my, Symbol(my, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen2.ts, 2, 1)) ->data : typeof my.data, Symbol(data, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen2.ts, 3, 10)) +>my : typeof my +>data : typeof my.data function data(my) { ->data : (my: any) => void, Symbol(data, Decl(mergedModuleDeclarationCodeGen2.ts, 3, 16)) ->my : any, Symbol(my, Decl(mergedModuleDeclarationCodeGen2.ts, 4, 18)) +>data : (my: any) => void +>my : any foo.buz(); >foo.buz() : void ->foo.buz : () => void, Symbol(foo.buz, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 20)) ->foo : typeof foo, Symbol(foo, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 15)) ->buz : () => void, Symbol(foo.buz, Decl(mergedModuleDeclarationCodeGen2.ts, 0, 20)) +>foo.buz : () => void +>foo : typeof foo +>buz : () => void } } diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen3.symbols b/tests/baselines/reference/mergedModuleDeclarationCodeGen3.symbols new file mode 100644 index 0000000000000..f991b90f86943 --- /dev/null +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen3.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/mergedModuleDeclarationCodeGen3.ts === +module my.data { +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen3.ts, 2, 1)) +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen3.ts, 3, 10)) + + export function buz() { } +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 16)) +} +module my.data.foo { +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen3.ts, 2, 1)) +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen3.ts, 3, 10)) +>foo : Symbol(foo, Decl(mergedModuleDeclarationCodeGen3.ts, 3, 15)) + + function data(my, foo) { +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen3.ts, 3, 20)) +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen3.ts, 4, 18)) +>foo : Symbol(foo, Decl(mergedModuleDeclarationCodeGen3.ts, 4, 21)) + + buz(); +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 16)) + } +} diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen3.types b/tests/baselines/reference/mergedModuleDeclarationCodeGen3.types index c2c78e3ef5405..45f652fe3c001 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen3.types +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen3.types @@ -1,23 +1,23 @@ === tests/cases/compiler/mergedModuleDeclarationCodeGen3.ts === module my.data { ->my : typeof my, Symbol(my, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen3.ts, 2, 1)) ->data : typeof data, Symbol(data, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen3.ts, 3, 10)) +>my : typeof my +>data : typeof data export function buz() { } ->buz : () => void, Symbol(buz, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 16)) +>buz : () => void } module my.data.foo { ->my : typeof my, Symbol(my, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen3.ts, 2, 1)) ->data : typeof data, Symbol(data, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 10), Decl(mergedModuleDeclarationCodeGen3.ts, 3, 10)) ->foo : typeof foo, Symbol(foo, Decl(mergedModuleDeclarationCodeGen3.ts, 3, 15)) +>my : typeof my +>data : typeof data +>foo : typeof foo function data(my, foo) { ->data : (my: any, foo: any) => void, Symbol(data, Decl(mergedModuleDeclarationCodeGen3.ts, 3, 20)) ->my : any, Symbol(my, Decl(mergedModuleDeclarationCodeGen3.ts, 4, 18)) ->foo : any, Symbol(foo, Decl(mergedModuleDeclarationCodeGen3.ts, 4, 21)) +>data : (my: any, foo: any) => void +>my : any +>foo : any buz(); >buz() : void ->buz : () => void, Symbol(buz, Decl(mergedModuleDeclarationCodeGen3.ts, 0, 16)) +>buz : () => void } } diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen4.symbols b/tests/baselines/reference/mergedModuleDeclarationCodeGen4.symbols new file mode 100644 index 0000000000000..86e6b97988116 --- /dev/null +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen4.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/mergedModuleDeclarationCodeGen4.ts === +module superContain { +>superContain : Symbol(superContain, Decl(mergedModuleDeclarationCodeGen4.ts, 0, 0)) + + export module contain { +>contain : Symbol(contain, Decl(mergedModuleDeclarationCodeGen4.ts, 0, 21)) + + export module my.buz { +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen4.ts, 1, 27), Decl(mergedModuleDeclarationCodeGen4.ts, 6, 9)) +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 25), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 25)) + + export module data { +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 30), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 30)) + + export function foo() { } +>foo : Symbol(foo, Decl(mergedModuleDeclarationCodeGen4.ts, 3, 32)) + } + } + export module my.buz { +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen4.ts, 1, 27), Decl(mergedModuleDeclarationCodeGen4.ts, 6, 9)) +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 25), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 25)) + + export module data { +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 30), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 30)) + + export function bar(contain, my, buz, data) { +>bar : Symbol(bar, Decl(mergedModuleDeclarationCodeGen4.ts, 8, 32)) +>contain : Symbol(contain, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 36)) +>my : Symbol(my, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 44)) +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 48)) +>data : Symbol(data, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 53)) + + foo(); +>foo : Symbol(foo, Decl(mergedModuleDeclarationCodeGen4.ts, 3, 32)) + } + } + } + } +} diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen4.types b/tests/baselines/reference/mergedModuleDeclarationCodeGen4.types index 388b936f336c9..0907a21a969b4 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen4.types +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen4.types @@ -1,38 +1,38 @@ === tests/cases/compiler/mergedModuleDeclarationCodeGen4.ts === module superContain { ->superContain : typeof superContain, Symbol(superContain, Decl(mergedModuleDeclarationCodeGen4.ts, 0, 0)) +>superContain : typeof superContain export module contain { ->contain : typeof contain, Symbol(contain, Decl(mergedModuleDeclarationCodeGen4.ts, 0, 21)) +>contain : typeof contain export module my.buz { ->my : typeof my, Symbol(my, Decl(mergedModuleDeclarationCodeGen4.ts, 1, 27), Decl(mergedModuleDeclarationCodeGen4.ts, 6, 9)) ->buz : typeof buz, Symbol(buz, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 25), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 25)) +>my : typeof my +>buz : typeof buz export module data { ->data : typeof data, Symbol(data, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 30), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 30)) +>data : typeof data export function foo() { } ->foo : () => void, Symbol(foo, Decl(mergedModuleDeclarationCodeGen4.ts, 3, 32)) +>foo : () => void } } export module my.buz { ->my : typeof my, Symbol(my, Decl(mergedModuleDeclarationCodeGen4.ts, 1, 27), Decl(mergedModuleDeclarationCodeGen4.ts, 6, 9)) ->buz : typeof buz, Symbol(buz, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 25), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 25)) +>my : typeof my +>buz : typeof buz export module data { ->data : typeof data, Symbol(data, Decl(mergedModuleDeclarationCodeGen4.ts, 2, 30), Decl(mergedModuleDeclarationCodeGen4.ts, 7, 30)) +>data : typeof data export function bar(contain, my, buz, data) { ->bar : (contain: any, my: any, buz: any, data: any) => void, Symbol(bar, Decl(mergedModuleDeclarationCodeGen4.ts, 8, 32)) ->contain : any, Symbol(contain, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 36)) ->my : any, Symbol(my, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 44)) ->buz : any, Symbol(buz, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 48)) ->data : any, Symbol(data, Decl(mergedModuleDeclarationCodeGen4.ts, 9, 53)) +>bar : (contain: any, my: any, buz: any, data: any) => void +>contain : any +>my : any +>buz : any +>data : any foo(); >foo() : void ->foo : () => void, Symbol(foo, Decl(mergedModuleDeclarationCodeGen4.ts, 3, 32)) +>foo : () => void } } } diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.symbols b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.symbols new file mode 100644 index 0000000000000..6f4cc0ef3e53c --- /dev/null +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.symbols @@ -0,0 +1,54 @@ +=== tests/cases/compiler/mergedModuleDeclarationCodeGen5.ts === +module M.buz.plop { +>M : Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen5.ts, 3, 1)) +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 9), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 9)) +>plop : Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 13), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 13)) + + export function doom() { } +>doom : Symbol(doom, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 19)) + + export function M() { } +>M : Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 1, 30)) +} +module M.buz.plop { +>M : Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen5.ts, 3, 1)) +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 9), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 9)) +>plop : Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 13), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 13)) + + function gunk() { } +>gunk : Symbol(gunk, Decl(mergedModuleDeclarationCodeGen5.ts, 4, 19)) + + function buz() { } +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 5, 23)) + + export class fudge { } +>fudge : Symbol(fudge, Decl(mergedModuleDeclarationCodeGen5.ts, 6, 22)) + + export enum plop { } +>plop : Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 7, 26)) + + // Emit these references as follows + var v1 = gunk; // gunk +>v1 : Symbol(v1, Decl(mergedModuleDeclarationCodeGen5.ts, 11, 7)) +>gunk : Symbol(gunk, Decl(mergedModuleDeclarationCodeGen5.ts, 4, 19)) + + var v2 = buz; // buz +>v2 : Symbol(v2, Decl(mergedModuleDeclarationCodeGen5.ts, 12, 7)) +>buz : Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 5, 23)) + + export var v3 = doom; // _plop.doom +>v3 : Symbol(v3, Decl(mergedModuleDeclarationCodeGen5.ts, 13, 14)) +>doom : Symbol(doom, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 19)) + + export var v4 = M; // _plop.M +>v4 : Symbol(v4, Decl(mergedModuleDeclarationCodeGen5.ts, 14, 14)) +>M : Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 1, 30)) + + export var v5 = fudge; // fudge +>v5 : Symbol(v5, Decl(mergedModuleDeclarationCodeGen5.ts, 15, 14)) +>fudge : Symbol(fudge, Decl(mergedModuleDeclarationCodeGen5.ts, 6, 22)) + + export var v6 = plop; // plop +>v6 : Symbol(v6, Decl(mergedModuleDeclarationCodeGen5.ts, 16, 14)) +>plop : Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 7, 26)) +} diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.types b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.types index d790775d611e1..ab4203d795127 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.types +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.types @@ -1,54 +1,54 @@ === tests/cases/compiler/mergedModuleDeclarationCodeGen5.ts === module M.buz.plop { ->M : typeof M, Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen5.ts, 3, 1)) ->buz : typeof buz, Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 9), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 9)) ->plop : typeof buz.plop, Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 13), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 13)) +>M : typeof M +>buz : typeof buz +>plop : typeof buz.plop export function doom() { } ->doom : () => void, Symbol(doom, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 19)) +>doom : () => void export function M() { } ->M : () => void, Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 1, 30)) +>M : () => void } module M.buz.plop { ->M : typeof M, Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 0), Decl(mergedModuleDeclarationCodeGen5.ts, 3, 1)) ->buz : typeof buz, Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 9), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 9)) ->plop : typeof M.buz.plop, Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 13), Decl(mergedModuleDeclarationCodeGen5.ts, 4, 13)) +>M : typeof M +>buz : typeof buz +>plop : typeof M.buz.plop function gunk() { } ->gunk : () => void, Symbol(gunk, Decl(mergedModuleDeclarationCodeGen5.ts, 4, 19)) +>gunk : () => void function buz() { } ->buz : () => void, Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 5, 23)) +>buz : () => void export class fudge { } ->fudge : fudge, Symbol(fudge, Decl(mergedModuleDeclarationCodeGen5.ts, 6, 22)) +>fudge : fudge export enum plop { } ->plop : plop, Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 7, 26)) +>plop : plop // Emit these references as follows var v1 = gunk; // gunk ->v1 : () => void, Symbol(v1, Decl(mergedModuleDeclarationCodeGen5.ts, 11, 7)) ->gunk : () => void, Symbol(gunk, Decl(mergedModuleDeclarationCodeGen5.ts, 4, 19)) +>v1 : () => void +>gunk : () => void var v2 = buz; // buz ->v2 : () => void, Symbol(v2, Decl(mergedModuleDeclarationCodeGen5.ts, 12, 7)) ->buz : () => void, Symbol(buz, Decl(mergedModuleDeclarationCodeGen5.ts, 5, 23)) +>v2 : () => void +>buz : () => void export var v3 = doom; // _plop.doom ->v3 : () => void, Symbol(v3, Decl(mergedModuleDeclarationCodeGen5.ts, 13, 14)) ->doom : () => void, Symbol(doom, Decl(mergedModuleDeclarationCodeGen5.ts, 0, 19)) +>v3 : () => void +>doom : () => void export var v4 = M; // _plop.M ->v4 : () => void, Symbol(v4, Decl(mergedModuleDeclarationCodeGen5.ts, 14, 14)) ->M : () => void, Symbol(M, Decl(mergedModuleDeclarationCodeGen5.ts, 1, 30)) +>v4 : () => void +>M : () => void export var v5 = fudge; // fudge ->v5 : typeof fudge, Symbol(v5, Decl(mergedModuleDeclarationCodeGen5.ts, 15, 14)) ->fudge : typeof fudge, Symbol(fudge, Decl(mergedModuleDeclarationCodeGen5.ts, 6, 22)) +>v5 : typeof fudge +>fudge : typeof fudge export var v6 = plop; // plop ->v6 : typeof plop, Symbol(v6, Decl(mergedModuleDeclarationCodeGen5.ts, 16, 14)) ->plop : typeof plop, Symbol(plop, Decl(mergedModuleDeclarationCodeGen5.ts, 7, 26)) +>v6 : typeof plop +>plop : typeof plop } diff --git a/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.symbols b/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.symbols new file mode 100644 index 0000000000000..a7f074023a68b --- /dev/null +++ b/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/mergedModuleDeclarationWithSharedExportedVar.ts === +module M { +>M : Symbol(M, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 0, 0), Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 3, 1)) + + export var v = 10; +>v : Symbol(v, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 1, 14)) + + v; +>v : Symbol(v, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 1, 14)) +} +module M { +>M : Symbol(M, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 0, 0), Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 3, 1)) + + v; +>v : Symbol(v, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 1, 14)) +} diff --git a/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.types b/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.types index 097a8f383aaa9..484cee0b0af1d 100644 --- a/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.types +++ b/tests/baselines/reference/mergedModuleDeclarationWithSharedExportedVar.types @@ -1,17 +1,17 @@ === tests/cases/compiler/mergedModuleDeclarationWithSharedExportedVar.ts === module M { ->M : typeof M, Symbol(M, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 0, 0), Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 3, 1)) +>M : typeof M export var v = 10; ->v : number, Symbol(v, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 1, 14)) +>v : number >10 : number v; ->v : number, Symbol(v, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 1, 14)) +>v : number } module M { ->M : typeof M, Symbol(M, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 0, 0), Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 3, 1)) +>M : typeof M v; ->v : number, Symbol(v, Decl(mergedModuleDeclarationWithSharedExportedVar.ts, 1, 14)) +>v : number } diff --git a/tests/baselines/reference/methodContainingLocalFunction.symbols b/tests/baselines/reference/methodContainingLocalFunction.symbols new file mode 100644 index 0000000000000..e449d68562f89 --- /dev/null +++ b/tests/baselines/reference/methodContainingLocalFunction.symbols @@ -0,0 +1,122 @@ +=== tests/cases/compiler/methodContainingLocalFunction.ts === +// The first case here (BugExhibition) caused a crash. Try with different permutations of features. +class BugExhibition { +>BugExhibition : Symbol(BugExhibition, Decl(methodContainingLocalFunction.ts, 0, 0)) +>T : Symbol(T, Decl(methodContainingLocalFunction.ts, 1, 20)) + + public exhibitBug() { +>exhibitBug : Symbol(exhibitBug, Decl(methodContainingLocalFunction.ts, 1, 24)) + + function localFunction() { } +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 2, 25)) + + var x: { (): void; }; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 4, 11)) + + x = localFunction; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 4, 11)) +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 2, 25)) + } +} + +class BugExhibition2 { +>BugExhibition2 : Symbol(BugExhibition2, Decl(methodContainingLocalFunction.ts, 7, 1)) +>T : Symbol(T, Decl(methodContainingLocalFunction.ts, 9, 21)) + + private static get exhibitBug() { +>exhibitBug : Symbol(BugExhibition2.exhibitBug, Decl(methodContainingLocalFunction.ts, 9, 25)) + + function localFunction() { } +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 10, 37)) + + var x: { (): void; }; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 12, 11)) + + x = localFunction; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 12, 11)) +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 10, 37)) + + return null; + } +} + +class BugExhibition3 { +>BugExhibition3 : Symbol(BugExhibition3, Decl(methodContainingLocalFunction.ts, 16, 1)) +>T : Symbol(T, Decl(methodContainingLocalFunction.ts, 18, 21)) + + public exhibitBug() { +>exhibitBug : Symbol(exhibitBug, Decl(methodContainingLocalFunction.ts, 18, 25)) + + function localGenericFunction(u?: U) { } +>localGenericFunction : Symbol(localGenericFunction, Decl(methodContainingLocalFunction.ts, 19, 25)) +>U : Symbol(U, Decl(methodContainingLocalFunction.ts, 20, 38)) +>u : Symbol(u, Decl(methodContainingLocalFunction.ts, 20, 41)) +>U : Symbol(U, Decl(methodContainingLocalFunction.ts, 20, 38)) + + var x: { (): void; }; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 21, 11)) + + x = localGenericFunction; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 21, 11)) +>localGenericFunction : Symbol(localGenericFunction, Decl(methodContainingLocalFunction.ts, 19, 25)) + } +} + +class C { +>C : Symbol(C, Decl(methodContainingLocalFunction.ts, 24, 1)) + + exhibit() { +>exhibit : Symbol(exhibit, Decl(methodContainingLocalFunction.ts, 26, 9)) + + var funcExpr = (u?: U) => { }; +>funcExpr : Symbol(funcExpr, Decl(methodContainingLocalFunction.ts, 28, 11)) +>U : Symbol(U, Decl(methodContainingLocalFunction.ts, 28, 24)) +>u : Symbol(u, Decl(methodContainingLocalFunction.ts, 28, 27)) +>U : Symbol(U, Decl(methodContainingLocalFunction.ts, 28, 24)) + + var x: { (): void; }; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 29, 11)) + + x = funcExpr; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 29, 11)) +>funcExpr : Symbol(funcExpr, Decl(methodContainingLocalFunction.ts, 28, 11)) + } +} + +module M { +>M : Symbol(M, Decl(methodContainingLocalFunction.ts, 32, 1)) + + export function exhibitBug() { +>exhibitBug : Symbol(exhibitBug, Decl(methodContainingLocalFunction.ts, 34, 10)) + + function localFunction() { } +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 35, 34)) + + var x: { (): void; }; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 37, 11)) + + x = localFunction; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 37, 11)) +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 35, 34)) + } +} + +enum E { +>E : Symbol(E, Decl(methodContainingLocalFunction.ts, 40, 1)) + + A = (() => { +>A : Symbol(E.A, Decl(methodContainingLocalFunction.ts, 42, 8)) + + function localFunction() { } +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 43, 16)) + + var x: { (): void; }; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 45, 11)) + + x = localFunction; +>x : Symbol(x, Decl(methodContainingLocalFunction.ts, 45, 11)) +>localFunction : Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 43, 16)) + + return 0; + })() +} diff --git a/tests/baselines/reference/methodContainingLocalFunction.types b/tests/baselines/reference/methodContainingLocalFunction.types index 38c7672680e6c..8b6d102ade809 100644 --- a/tests/baselines/reference/methodContainingLocalFunction.types +++ b/tests/baselines/reference/methodContainingLocalFunction.types @@ -1,42 +1,42 @@ === tests/cases/compiler/methodContainingLocalFunction.ts === // The first case here (BugExhibition) caused a crash. Try with different permutations of features. class BugExhibition { ->BugExhibition : BugExhibition, Symbol(BugExhibition, Decl(methodContainingLocalFunction.ts, 0, 0)) ->T : T, Symbol(T, Decl(methodContainingLocalFunction.ts, 1, 20)) +>BugExhibition : BugExhibition +>T : T public exhibitBug() { ->exhibitBug : () => void, Symbol(exhibitBug, Decl(methodContainingLocalFunction.ts, 1, 24)) +>exhibitBug : () => void function localFunction() { } ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 2, 25)) +>localFunction : () => void var x: { (): void; }; ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 4, 11)) +>x : () => void x = localFunction; >x = localFunction : () => void ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 4, 11)) ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 2, 25)) +>x : () => void +>localFunction : () => void } } class BugExhibition2 { ->BugExhibition2 : BugExhibition2, Symbol(BugExhibition2, Decl(methodContainingLocalFunction.ts, 7, 1)) ->T : T, Symbol(T, Decl(methodContainingLocalFunction.ts, 9, 21)) +>BugExhibition2 : BugExhibition2 +>T : T private static get exhibitBug() { ->exhibitBug : any, Symbol(BugExhibition2.exhibitBug, Decl(methodContainingLocalFunction.ts, 9, 25)) +>exhibitBug : any function localFunction() { } ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 10, 37)) +>localFunction : () => void var x: { (): void; }; ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 12, 11)) +>x : () => void x = localFunction; >x = localFunction : () => void ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 12, 11)) ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 10, 37)) +>x : () => void +>localFunction : () => void return null; >null : null @@ -44,89 +44,89 @@ class BugExhibition2 { } class BugExhibition3 { ->BugExhibition3 : BugExhibition3, Symbol(BugExhibition3, Decl(methodContainingLocalFunction.ts, 16, 1)) ->T : T, Symbol(T, Decl(methodContainingLocalFunction.ts, 18, 21)) +>BugExhibition3 : BugExhibition3 +>T : T public exhibitBug() { ->exhibitBug : () => void, Symbol(exhibitBug, Decl(methodContainingLocalFunction.ts, 18, 25)) +>exhibitBug : () => void function localGenericFunction(u?: U) { } ->localGenericFunction : (u?: U) => void, Symbol(localGenericFunction, Decl(methodContainingLocalFunction.ts, 19, 25)) ->U : U, Symbol(U, Decl(methodContainingLocalFunction.ts, 20, 38)) ->u : U, Symbol(u, Decl(methodContainingLocalFunction.ts, 20, 41)) ->U : U, Symbol(U, Decl(methodContainingLocalFunction.ts, 20, 38)) +>localGenericFunction : (u?: U) => void +>U : U +>u : U +>U : U var x: { (): void; }; ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 21, 11)) +>x : () => void x = localGenericFunction; >x = localGenericFunction : (u?: U) => void ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 21, 11)) ->localGenericFunction : (u?: U) => void, Symbol(localGenericFunction, Decl(methodContainingLocalFunction.ts, 19, 25)) +>x : () => void +>localGenericFunction : (u?: U) => void } } class C { ->C : C, Symbol(C, Decl(methodContainingLocalFunction.ts, 24, 1)) +>C : C exhibit() { ->exhibit : () => void, Symbol(exhibit, Decl(methodContainingLocalFunction.ts, 26, 9)) +>exhibit : () => void var funcExpr = (u?: U) => { }; ->funcExpr : (u?: U) => void, Symbol(funcExpr, Decl(methodContainingLocalFunction.ts, 28, 11)) +>funcExpr : (u?: U) => void >(u?: U) => { } : (u?: U) => void ->U : U, Symbol(U, Decl(methodContainingLocalFunction.ts, 28, 24)) ->u : U, Symbol(u, Decl(methodContainingLocalFunction.ts, 28, 27)) ->U : U, Symbol(U, Decl(methodContainingLocalFunction.ts, 28, 24)) +>U : U +>u : U +>U : U var x: { (): void; }; ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 29, 11)) +>x : () => void x = funcExpr; >x = funcExpr : (u?: U) => void ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 29, 11)) ->funcExpr : (u?: U) => void, Symbol(funcExpr, Decl(methodContainingLocalFunction.ts, 28, 11)) +>x : () => void +>funcExpr : (u?: U) => void } } module M { ->M : typeof M, Symbol(M, Decl(methodContainingLocalFunction.ts, 32, 1)) +>M : typeof M export function exhibitBug() { ->exhibitBug : () => void, Symbol(exhibitBug, Decl(methodContainingLocalFunction.ts, 34, 10)) +>exhibitBug : () => void function localFunction() { } ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 35, 34)) +>localFunction : () => void var x: { (): void; }; ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 37, 11)) +>x : () => void x = localFunction; >x = localFunction : () => void ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 37, 11)) ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 35, 34)) +>x : () => void +>localFunction : () => void } } enum E { ->E : E, Symbol(E, Decl(methodContainingLocalFunction.ts, 40, 1)) +>E : E A = (() => { ->A : E, Symbol(E.A, Decl(methodContainingLocalFunction.ts, 42, 8)) +>A : E >(() => { function localFunction() { } var x: { (): void; }; x = localFunction; return 0; })() : number >(() => { function localFunction() { } var x: { (): void; }; x = localFunction; return 0; }) : () => number >() => { function localFunction() { } var x: { (): void; }; x = localFunction; return 0; } : () => number function localFunction() { } ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 43, 16)) +>localFunction : () => void var x: { (): void; }; ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 45, 11)) +>x : () => void x = localFunction; >x = localFunction : () => void ->x : () => void, Symbol(x, Decl(methodContainingLocalFunction.ts, 45, 11)) ->localFunction : () => void, Symbol(localFunction, Decl(methodContainingLocalFunction.ts, 43, 16)) +>x : () => void +>localFunction : () => void return 0; >0 : number diff --git a/tests/baselines/reference/methodSignatureDeclarationEmit1.symbols b/tests/baselines/reference/methodSignatureDeclarationEmit1.symbols new file mode 100644 index 0000000000000..80e0d2e1e6c9e --- /dev/null +++ b/tests/baselines/reference/methodSignatureDeclarationEmit1.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/methodSignatureDeclarationEmit1.ts === +class C { +>C : Symbol(C, Decl(methodSignatureDeclarationEmit1.ts, 0, 0)) + + public foo(n: number): void; +>foo : Symbol(foo, Decl(methodSignatureDeclarationEmit1.ts, 0, 9), Decl(methodSignatureDeclarationEmit1.ts, 1, 30), Decl(methodSignatureDeclarationEmit1.ts, 2, 30)) +>n : Symbol(n, Decl(methodSignatureDeclarationEmit1.ts, 1, 13)) + + public foo(s: string): void; +>foo : Symbol(foo, Decl(methodSignatureDeclarationEmit1.ts, 0, 9), Decl(methodSignatureDeclarationEmit1.ts, 1, 30), Decl(methodSignatureDeclarationEmit1.ts, 2, 30)) +>s : Symbol(s, Decl(methodSignatureDeclarationEmit1.ts, 2, 13)) + + public foo(a: any): void { +>foo : Symbol(foo, Decl(methodSignatureDeclarationEmit1.ts, 0, 9), Decl(methodSignatureDeclarationEmit1.ts, 1, 30), Decl(methodSignatureDeclarationEmit1.ts, 2, 30)) +>a : Symbol(a, Decl(methodSignatureDeclarationEmit1.ts, 3, 13)) + } +} diff --git a/tests/baselines/reference/methodSignatureDeclarationEmit1.types b/tests/baselines/reference/methodSignatureDeclarationEmit1.types index f970aa4583e45..30bcf0661b6d6 100644 --- a/tests/baselines/reference/methodSignatureDeclarationEmit1.types +++ b/tests/baselines/reference/methodSignatureDeclarationEmit1.types @@ -1,17 +1,17 @@ === tests/cases/compiler/methodSignatureDeclarationEmit1.ts === class C { ->C : C, Symbol(C, Decl(methodSignatureDeclarationEmit1.ts, 0, 0)) +>C : C public foo(n: number): void; ->foo : { (n: number): void; (s: string): void; }, Symbol(foo, Decl(methodSignatureDeclarationEmit1.ts, 0, 9), Decl(methodSignatureDeclarationEmit1.ts, 1, 30), Decl(methodSignatureDeclarationEmit1.ts, 2, 30)) ->n : number, Symbol(n, Decl(methodSignatureDeclarationEmit1.ts, 1, 13)) +>foo : { (n: number): void; (s: string): void; } +>n : number public foo(s: string): void; ->foo : { (n: number): void; (s: string): void; }, Symbol(foo, Decl(methodSignatureDeclarationEmit1.ts, 0, 9), Decl(methodSignatureDeclarationEmit1.ts, 1, 30), Decl(methodSignatureDeclarationEmit1.ts, 2, 30)) ->s : string, Symbol(s, Decl(methodSignatureDeclarationEmit1.ts, 2, 13)) +>foo : { (n: number): void; (s: string): void; } +>s : string public foo(a: any): void { ->foo : { (n: number): void; (s: string): void; }, Symbol(foo, Decl(methodSignatureDeclarationEmit1.ts, 0, 9), Decl(methodSignatureDeclarationEmit1.ts, 1, 30), Decl(methodSignatureDeclarationEmit1.ts, 2, 30)) ->a : any, Symbol(a, Decl(methodSignatureDeclarationEmit1.ts, 3, 13)) +>foo : { (n: number): void; (s: string): void; } +>a : any } } diff --git a/tests/baselines/reference/methodSignaturesWithOverloads2.symbols b/tests/baselines/reference/methodSignaturesWithOverloads2.symbols new file mode 100644 index 0000000000000..6446c128405e0 --- /dev/null +++ b/tests/baselines/reference/methodSignaturesWithOverloads2.symbols @@ -0,0 +1,92 @@ +=== tests/cases/conformance/types/objectTypeLiteral/methodSignatures/methodSignaturesWithOverloads2.ts === +// Object type literals permit overloads with optionality but they must match + +var c: { +>c : Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) + + func4?(x: number): number; +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) +>x : Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 3, 11)) + + func4?(s: string): string; +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) +>s : Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 4, 11)) + + func5?: { +>func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) + + (x: number): number; +>x : Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 6, 9)) + + (s: string): string; +>s : Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 7, 9)) + + }; +}; + +// no errors +c.func4 = c.func5; +>c.func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) +>c : Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) +>c.func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) +>c : Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) +>func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) + +c.func5 = c.func4; +>c.func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) +>c : Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) +>func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) +>c.func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) +>c : Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) + + +var c2: { +>c2 : Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) + + func4?(x: T): number; +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 17, 11)) +>x : Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 17, 14)) +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 17, 11)) + + func4? (s: T): string; +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 18, 12)) +>s : Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 18, 15)) +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 18, 12)) + + func5?: { +>func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) + + (x: T): number; +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 20, 9)) +>x : Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 20, 12)) +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 20, 9)) + + (s: T): string; +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 21, 9)) +>s : Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 21, 12)) +>T : Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 21, 9)) + + }; +}; + +// no errors +c2.func4 = c2.func5; +>c2.func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) +>c2 : Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) +>c2.func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) +>c2 : Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) +>func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) + +c2.func5 = c2.func4; +>c2.func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) +>c2 : Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) +>func5 : Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) +>c2.func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) +>c2 : Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) +>func4 : Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) + diff --git a/tests/baselines/reference/methodSignaturesWithOverloads2.types b/tests/baselines/reference/methodSignaturesWithOverloads2.types index 93ec34ad6bca0..1c0a44db75362 100644 --- a/tests/baselines/reference/methodSignaturesWithOverloads2.types +++ b/tests/baselines/reference/methodSignaturesWithOverloads2.types @@ -2,24 +2,24 @@ // Object type literals permit overloads with optionality but they must match var c: { ->c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) +>c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; } func4?(x: number): number; ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) ->x : number, Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 3, 11)) +>func4 : { (x: number): number; (s: string): string; } +>x : number func4?(s: string): string; ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) ->s : string, Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 4, 11)) +>func4 : { (x: number): number; (s: string): string; } +>s : string func5?: { ->func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) +>func5 : { (x: number): number; (s: string): string; } (x: number): number; ->x : number, Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 6, 9)) +>x : number (s: string): string; ->s : string, Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 7, 9)) +>s : string }; }; @@ -27,50 +27,50 @@ var c: { // no errors c.func4 = c.func5; >c.func4 = c.func5 : { (x: number): number; (s: string): string; } ->c.func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) ->c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) ->c.func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) ->c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) ->func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) +>c.func4 : { (x: number): number; (s: string): string; } +>c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; } +>func4 : { (x: number): number; (s: string): string; } +>c.func5 : { (x: number): number; (s: string): string; } +>c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; } +>func5 : { (x: number): number; (s: string): string; } c.func5 = c.func4; >c.func5 = c.func4 : { (x: number): number; (s: string): string; } ->c.func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) ->c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) ->func5 : { (x: number): number; (s: string): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 4, 30)) ->c.func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) ->c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; }, Symbol(c, Decl(methodSignaturesWithOverloads2.ts, 2, 3)) ->func4 : { (x: number): number; (s: string): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 2, 8), Decl(methodSignaturesWithOverloads2.ts, 3, 30)) +>c.func5 : { (x: number): number; (s: string): string; } +>c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; } +>func5 : { (x: number): number; (s: string): string; } +>c.func4 : { (x: number): number; (s: string): string; } +>c : { func4?(x: number): number; func4?(s: string): string; func5?: { (x: number): number; (s: string): string; }; } +>func4 : { (x: number): number; (s: string): string; } var c2: { ->c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) +>c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } func4?(x: T): number; ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 17, 11)) ->x : T, Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 17, 14)) ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 17, 11)) +>func4 : { (x: T): number; (s: T): string; } +>T : T +>x : T +>T : T func4? (s: T): string; ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 18, 12)) ->s : T, Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 18, 15)) ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 18, 12)) +>func4 : { (x: T): number; (s: T): string; } +>T : T +>s : T +>T : T func5?: { ->func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) +>func5 : { (x: T): number; (s: T): string; } (x: T): number; ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 20, 9)) ->x : T, Symbol(x, Decl(methodSignaturesWithOverloads2.ts, 20, 12)) ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 20, 9)) +>T : T +>x : T +>T : T (s: T): string; ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 21, 9)) ->s : T, Symbol(s, Decl(methodSignaturesWithOverloads2.ts, 21, 12)) ->T : T, Symbol(T, Decl(methodSignaturesWithOverloads2.ts, 21, 9)) +>T : T +>s : T +>T : T }; }; @@ -78,19 +78,19 @@ var c2: { // no errors c2.func4 = c2.func5; >c2.func4 = c2.func5 : { (x: T): number; (s: T): string; } ->c2.func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) ->c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) ->c2.func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) ->c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) ->func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) +>c2.func4 : { (x: T): number; (s: T): string; } +>c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } +>func4 : { (x: T): number; (s: T): string; } +>c2.func5 : { (x: T): number; (s: T): string; } +>c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } +>func5 : { (x: T): number; (s: T): string; } c2.func5 = c2.func4; >c2.func5 = c2.func4 : { (x: T): number; (s: T): string; } ->c2.func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) ->c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) ->func5 : { (x: T): number; (s: T): string; }, Symbol(func5, Decl(methodSignaturesWithOverloads2.ts, 18, 29)) ->c2.func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) ->c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; }, Symbol(c2, Decl(methodSignaturesWithOverloads2.ts, 16, 3)) ->func4 : { (x: T): number; (s: T): string; }, Symbol(func4, Decl(methodSignaturesWithOverloads2.ts, 16, 9), Decl(methodSignaturesWithOverloads2.ts, 17, 28)) +>c2.func5 : { (x: T): number; (s: T): string; } +>c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } +>func5 : { (x: T): number; (s: T): string; } +>c2.func4 : { (x: T): number; (s: T): string; } +>c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } +>func4 : { (x: T): number; (s: T): string; } diff --git a/tests/baselines/reference/mismatchedGenericArguments1.symbols b/tests/baselines/reference/mismatchedGenericArguments1.symbols new file mode 100644 index 0000000000000..f540c3d7ccbe4 --- /dev/null +++ b/tests/baselines/reference/mismatchedGenericArguments1.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/mismatchedGenericArguments1.ts === +interface IFoo { +>IFoo : Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 0, 15)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(mismatchedGenericArguments1.ts, 0, 19)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7)) +>x : Symbol(x, Decl(mismatchedGenericArguments1.ts, 1, 10)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7)) +} +class C implements IFoo { +>C : Symbol(C, Decl(mismatchedGenericArguments1.ts, 2, 1)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 3, 8)) +>IFoo : Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 3, 8)) + + foo(x: string): number { +>foo : Symbol(foo, Decl(mismatchedGenericArguments1.ts, 3, 31)) +>x : Symbol(x, Decl(mismatchedGenericArguments1.ts, 4, 7)) + + return null; + } +} + +class C2 implements IFoo { +>C2 : Symbol(C2, Decl(mismatchedGenericArguments1.ts, 7, 1)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 9, 9)) +>IFoo : Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0)) +>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 9, 9)) + + foo(x: string): number { +>foo : Symbol(foo, Decl(mismatchedGenericArguments1.ts, 9, 32)) +>U : Symbol(U, Decl(mismatchedGenericArguments1.ts, 10, 7)) +>x : Symbol(x, Decl(mismatchedGenericArguments1.ts, 10, 10)) + + return null; + } +} + diff --git a/tests/baselines/reference/mismatchedGenericArguments1.types b/tests/baselines/reference/mismatchedGenericArguments1.types index 823a01f672050..c681445ab162d 100644 --- a/tests/baselines/reference/mismatchedGenericArguments1.types +++ b/tests/baselines/reference/mismatchedGenericArguments1.types @@ -1,24 +1,24 @@ === tests/cases/compiler/mismatchedGenericArguments1.ts === interface IFoo { ->IFoo : IFoo, Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 0, 15)) +>IFoo : IFoo +>T : T foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(mismatchedGenericArguments1.ts, 0, 19)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7)) ->x : T, Symbol(x, Decl(mismatchedGenericArguments1.ts, 1, 10)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T } class C implements IFoo { ->C : C, Symbol(C, Decl(mismatchedGenericArguments1.ts, 2, 1)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 3, 8)) ->IFoo : IFoo, Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 3, 8)) +>C : C +>T : T +>IFoo : IFoo +>T : T foo(x: string): number { ->foo : (x: string) => number, Symbol(foo, Decl(mismatchedGenericArguments1.ts, 3, 31)) ->x : string, Symbol(x, Decl(mismatchedGenericArguments1.ts, 4, 7)) +>foo : (x: string) => number +>x : string return null; >null : null @@ -26,15 +26,15 @@ class C implements IFoo { } class C2 implements IFoo { ->C2 : C2, Symbol(C2, Decl(mismatchedGenericArguments1.ts, 7, 1)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 9, 9)) ->IFoo : IFoo, Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0)) ->T : T, Symbol(T, Decl(mismatchedGenericArguments1.ts, 9, 9)) +>C2 : C2 +>T : T +>IFoo : IFoo +>T : T foo(x: string): number { ->foo : (x: string) => number, Symbol(foo, Decl(mismatchedGenericArguments1.ts, 9, 32)) ->U : U, Symbol(U, Decl(mismatchedGenericArguments1.ts, 10, 7)) ->x : string, Symbol(x, Decl(mismatchedGenericArguments1.ts, 10, 10)) +>foo : (x: string) => number +>U : U +>x : string return null; >null : null diff --git a/tests/baselines/reference/missingImportAfterModuleImport.symbols b/tests/baselines/reference/missingImportAfterModuleImport.symbols new file mode 100644 index 0000000000000..3ed1d93431ceb --- /dev/null +++ b/tests/baselines/reference/missingImportAfterModuleImport.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/missingImportAfterModuleImport_1.ts === +/// +import SubModule = require('SubModule'); +>SubModule : Symbol(SubModule, Decl(missingImportAfterModuleImport_1.ts, 0, 0)) + +class MainModule { +>MainModule : Symbol(MainModule, Decl(missingImportAfterModuleImport_1.ts, 1, 40)) + + // public static SubModule: SubModule; + public SubModule: SubModule; +>SubModule : Symbol(SubModule, Decl(missingImportAfterModuleImport_1.ts, 2, 18)) +>SubModule : Symbol(SubModule, Decl(missingImportAfterModuleImport_1.ts, 0, 0)) + + constructor() { } +} +export = MainModule; +>MainModule : Symbol(MainModule, Decl(missingImportAfterModuleImport_1.ts, 1, 40)) + + +=== tests/cases/compiler/missingImportAfterModuleImport_0.ts === + +declare module "SubModule" { + class SubModule { +>SubModule : Symbol(SubModule, Decl(missingImportAfterModuleImport_0.ts, 1, 28)) + + public static StaticVar: number; +>StaticVar : Symbol(SubModule.StaticVar, Decl(missingImportAfterModuleImport_0.ts, 2, 21)) + + public InstanceVar: number; +>InstanceVar : Symbol(InstanceVar, Decl(missingImportAfterModuleImport_0.ts, 3, 40)) + + constructor(); + } + export = SubModule; +>SubModule : Symbol(SubModule, Decl(missingImportAfterModuleImport_0.ts, 1, 28)) +} + diff --git a/tests/baselines/reference/missingImportAfterModuleImport.types b/tests/baselines/reference/missingImportAfterModuleImport.types index 1af3e1f61dad2..b8602ca06d019 100644 --- a/tests/baselines/reference/missingImportAfterModuleImport.types +++ b/tests/baselines/reference/missingImportAfterModuleImport.types @@ -1,37 +1,37 @@ === tests/cases/compiler/missingImportAfterModuleImport_1.ts === /// import SubModule = require('SubModule'); ->SubModule : typeof SubModule, Symbol(SubModule, Decl(missingImportAfterModuleImport_1.ts, 0, 0)) +>SubModule : typeof SubModule class MainModule { ->MainModule : MainModule, Symbol(MainModule, Decl(missingImportAfterModuleImport_1.ts, 1, 40)) +>MainModule : MainModule // public static SubModule: SubModule; public SubModule: SubModule; ->SubModule : SubModule, Symbol(SubModule, Decl(missingImportAfterModuleImport_1.ts, 2, 18)) ->SubModule : SubModule, Symbol(SubModule, Decl(missingImportAfterModuleImport_1.ts, 0, 0)) +>SubModule : SubModule +>SubModule : SubModule constructor() { } } export = MainModule; ->MainModule : MainModule, Symbol(MainModule, Decl(missingImportAfterModuleImport_1.ts, 1, 40)) +>MainModule : MainModule === tests/cases/compiler/missingImportAfterModuleImport_0.ts === declare module "SubModule" { class SubModule { ->SubModule : SubModule, Symbol(SubModule, Decl(missingImportAfterModuleImport_0.ts, 1, 28)) +>SubModule : SubModule public static StaticVar: number; ->StaticVar : number, Symbol(SubModule.StaticVar, Decl(missingImportAfterModuleImport_0.ts, 2, 21)) +>StaticVar : number public InstanceVar: number; ->InstanceVar : number, Symbol(InstanceVar, Decl(missingImportAfterModuleImport_0.ts, 3, 40)) +>InstanceVar : number constructor(); } export = SubModule; ->SubModule : SubModule, Symbol(SubModule, Decl(missingImportAfterModuleImport_0.ts, 1, 28)) +>SubModule : SubModule } diff --git a/tests/baselines/reference/missingSelf.symbols b/tests/baselines/reference/missingSelf.symbols new file mode 100644 index 0000000000000..b4b5bd0b905b2 --- /dev/null +++ b/tests/baselines/reference/missingSelf.symbols @@ -0,0 +1,46 @@ +=== tests/cases/compiler/missingSelf.ts === +class CalcButton +>CalcButton : Symbol(CalcButton, Decl(missingSelf.ts, 0, 0)) +{ + public a() { this.onClick(); } +>a : Symbol(a, Decl(missingSelf.ts, 1, 1)) +>this.onClick : Symbol(onClick, Decl(missingSelf.ts, 2, 34)) +>this : Symbol(CalcButton, Decl(missingSelf.ts, 0, 0)) +>onClick : Symbol(onClick, Decl(missingSelf.ts, 2, 34)) + + public onClick() { } +>onClick : Symbol(onClick, Decl(missingSelf.ts, 2, 34)) +} + +class CalcButton2 +>CalcButton2 : Symbol(CalcButton2, Decl(missingSelf.ts, 4, 1)) +{ + public b() { () => this.onClick(); } +>b : Symbol(b, Decl(missingSelf.ts, 7, 1)) +>this.onClick : Symbol(onClick, Decl(missingSelf.ts, 8, 40)) +>this : Symbol(CalcButton2, Decl(missingSelf.ts, 4, 1)) +>onClick : Symbol(onClick, Decl(missingSelf.ts, 8, 40)) + + public onClick() { } +>onClick : Symbol(onClick, Decl(missingSelf.ts, 8, 40)) +} + +var c = new CalcButton(); +>c : Symbol(c, Decl(missingSelf.ts, 12, 3)) +>CalcButton : Symbol(CalcButton, Decl(missingSelf.ts, 0, 0)) + +c.a(); +>c.a : Symbol(CalcButton.a, Decl(missingSelf.ts, 1, 1)) +>c : Symbol(c, Decl(missingSelf.ts, 12, 3)) +>a : Symbol(CalcButton.a, Decl(missingSelf.ts, 1, 1)) + +var c2 = new CalcButton2(); +>c2 : Symbol(c2, Decl(missingSelf.ts, 14, 3)) +>CalcButton2 : Symbol(CalcButton2, Decl(missingSelf.ts, 4, 1)) + +c2.b(); +>c2.b : Symbol(CalcButton2.b, Decl(missingSelf.ts, 7, 1)) +>c2 : Symbol(c2, Decl(missingSelf.ts, 14, 3)) +>b : Symbol(CalcButton2.b, Decl(missingSelf.ts, 7, 1)) + + diff --git a/tests/baselines/reference/missingSelf.types b/tests/baselines/reference/missingSelf.types index 740ee0d26d4bc..5b46bf85db184 100644 --- a/tests/baselines/reference/missingSelf.types +++ b/tests/baselines/reference/missingSelf.types @@ -1,53 +1,53 @@ === tests/cases/compiler/missingSelf.ts === class CalcButton ->CalcButton : CalcButton, Symbol(CalcButton, Decl(missingSelf.ts, 0, 0)) +>CalcButton : CalcButton { public a() { this.onClick(); } ->a : () => void, Symbol(a, Decl(missingSelf.ts, 1, 1)) +>a : () => void >this.onClick() : void ->this.onClick : () => void, Symbol(onClick, Decl(missingSelf.ts, 2, 34)) ->this : CalcButton, Symbol(CalcButton, Decl(missingSelf.ts, 0, 0)) ->onClick : () => void, Symbol(onClick, Decl(missingSelf.ts, 2, 34)) +>this.onClick : () => void +>this : CalcButton +>onClick : () => void public onClick() { } ->onClick : () => void, Symbol(onClick, Decl(missingSelf.ts, 2, 34)) +>onClick : () => void } class CalcButton2 ->CalcButton2 : CalcButton2, Symbol(CalcButton2, Decl(missingSelf.ts, 4, 1)) +>CalcButton2 : CalcButton2 { public b() { () => this.onClick(); } ->b : () => void, Symbol(b, Decl(missingSelf.ts, 7, 1)) +>b : () => void >() => this.onClick() : () => void >this.onClick() : void ->this.onClick : () => void, Symbol(onClick, Decl(missingSelf.ts, 8, 40)) ->this : CalcButton2, Symbol(CalcButton2, Decl(missingSelf.ts, 4, 1)) ->onClick : () => void, Symbol(onClick, Decl(missingSelf.ts, 8, 40)) +>this.onClick : () => void +>this : CalcButton2 +>onClick : () => void public onClick() { } ->onClick : () => void, Symbol(onClick, Decl(missingSelf.ts, 8, 40)) +>onClick : () => void } var c = new CalcButton(); ->c : CalcButton, Symbol(c, Decl(missingSelf.ts, 12, 3)) +>c : CalcButton >new CalcButton() : CalcButton ->CalcButton : typeof CalcButton, Symbol(CalcButton, Decl(missingSelf.ts, 0, 0)) +>CalcButton : typeof CalcButton c.a(); >c.a() : void ->c.a : () => void, Symbol(CalcButton.a, Decl(missingSelf.ts, 1, 1)) ->c : CalcButton, Symbol(c, Decl(missingSelf.ts, 12, 3)) ->a : () => void, Symbol(CalcButton.a, Decl(missingSelf.ts, 1, 1)) +>c.a : () => void +>c : CalcButton +>a : () => void var c2 = new CalcButton2(); ->c2 : CalcButton2, Symbol(c2, Decl(missingSelf.ts, 14, 3)) +>c2 : CalcButton2 >new CalcButton2() : CalcButton2 ->CalcButton2 : typeof CalcButton2, Symbol(CalcButton2, Decl(missingSelf.ts, 4, 1)) +>CalcButton2 : typeof CalcButton2 c2.b(); >c2.b() : void ->c2.b : () => void, Symbol(CalcButton2.b, Decl(missingSelf.ts, 7, 1)) ->c2 : CalcButton2, Symbol(c2, Decl(missingSelf.ts, 14, 3)) ->b : () => void, Symbol(CalcButton2.b, Decl(missingSelf.ts, 7, 1)) +>c2.b : () => void +>c2 : CalcButton2 +>b : () => void diff --git a/tests/baselines/reference/missingTypeArguments3.symbols b/tests/baselines/reference/missingTypeArguments3.symbols new file mode 100644 index 0000000000000..4bd7943eacef0 --- /dev/null +++ b/tests/baselines/reference/missingTypeArguments3.symbols @@ -0,0 +1,172 @@ +=== tests/cases/compiler/missingTypeArguments3.ts === +declare module linq { +>linq : Symbol(linq, Decl(missingTypeArguments3.ts, 0, 0)) + + interface Enumerable { +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) + + OrderByDescending(keySelector?: string): OrderedEnumerable; +>OrderByDescending : Symbol(OrderByDescending, Decl(missingTypeArguments3.ts, 2, 29)) +>keySelector : Symbol(keySelector, Decl(missingTypeArguments3.ts, 3, 26)) +>OrderedEnumerable : Symbol(OrderedEnumerable, Decl(missingTypeArguments3.ts, 7, 5)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) + + GroupBy(keySelector: (element: T) => TKey): Enumerable>; +>GroupBy : Symbol(GroupBy, Decl(missingTypeArguments3.ts, 3, 70), Decl(missingTypeArguments3.ts, 4, 88)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 4, 16)) +>keySelector : Symbol(keySelector, Decl(missingTypeArguments3.ts, 4, 22)) +>element : Symbol(element, Decl(missingTypeArguments3.ts, 4, 36)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 4, 16)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>Grouping : Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 4, 16)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) + + GroupBy(keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; +>GroupBy : Symbol(GroupBy, Decl(missingTypeArguments3.ts, 3, 70), Decl(missingTypeArguments3.ts, 4, 88)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 5, 16)) +>TElement : Symbol(TElement, Decl(missingTypeArguments3.ts, 5, 21)) +>keySelector : Symbol(keySelector, Decl(missingTypeArguments3.ts, 5, 32)) +>element : Symbol(element, Decl(missingTypeArguments3.ts, 5, 46)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 5, 16)) +>elementSelector : Symbol(elementSelector, Decl(missingTypeArguments3.ts, 5, 66)) +>element : Symbol(element, Decl(missingTypeArguments3.ts, 5, 85)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>TElement : Symbol(TElement, Decl(missingTypeArguments3.ts, 5, 21)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>Grouping : Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 5, 16)) +>TElement : Symbol(TElement, Decl(missingTypeArguments3.ts, 5, 21)) + + ToDictionary(keySelector: (element: T) => TKey): Dictionary; +>ToDictionary : Symbol(ToDictionary, Decl(missingTypeArguments3.ts, 5, 148)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 6, 21)) +>keySelector : Symbol(keySelector, Decl(missingTypeArguments3.ts, 6, 27)) +>element : Symbol(element, Decl(missingTypeArguments3.ts, 6, 41)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 6, 21)) +>Dictionary : Symbol(Dictionary, Decl(missingTypeArguments3.ts, 22, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 6, 21)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) + } + + interface OrderedEnumerable extends Enumerable { +>OrderedEnumerable : Symbol(OrderedEnumerable, Decl(missingTypeArguments3.ts, 7, 5)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) + + ThenBy(keySelector: (element: T) => TCompare): OrderedEnumerable; // used to incorrectly think this was missing a type argument +>ThenBy : Symbol(ThenBy, Decl(missingTypeArguments3.ts, 9, 58)) +>TCompare : Symbol(TCompare, Decl(missingTypeArguments3.ts, 10, 15)) +>keySelector : Symbol(keySelector, Decl(missingTypeArguments3.ts, 10, 25)) +>element : Symbol(element, Decl(missingTypeArguments3.ts, 10, 39)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) +>TCompare : Symbol(TCompare, Decl(missingTypeArguments3.ts, 10, 15)) +>OrderedEnumerable : Symbol(OrderedEnumerable, Decl(missingTypeArguments3.ts, 7, 5)) +>T : Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) + } + + interface Grouping extends Enumerable { +>Grouping : Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 13, 23)) +>TElement : Symbol(TElement, Decl(missingTypeArguments3.ts, 13, 28)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>TElement : Symbol(TElement, Decl(missingTypeArguments3.ts, 13, 28)) + + Key(): TKey; +>Key : Symbol(Key, Decl(missingTypeArguments3.ts, 13, 69)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 13, 23)) + } + + interface Lookup { +>Lookup : Symbol(Lookup, Decl(missingTypeArguments3.ts, 15, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 17, 21)) +>TElement : Symbol(TElement, Decl(missingTypeArguments3.ts, 17, 26)) + + Count(): number; +>Count : Symbol(Count, Decl(missingTypeArguments3.ts, 17, 38)) + + Get(key): Enumerable; +>Get : Symbol(Get, Decl(missingTypeArguments3.ts, 18, 24)) +>key : Symbol(key, Decl(missingTypeArguments3.ts, 19, 12)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) + + Contains(key): boolean; +>Contains : Symbol(Contains, Decl(missingTypeArguments3.ts, 19, 34)) +>key : Symbol(key, Decl(missingTypeArguments3.ts, 20, 17)) + + ToEnumerable(): Enumerable>; +>ToEnumerable : Symbol(ToEnumerable, Decl(missingTypeArguments3.ts, 20, 31)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>Grouping : Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 17, 21)) + } + + interface Dictionary { +>Dictionary : Symbol(Dictionary, Decl(missingTypeArguments3.ts, 22, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) + + Add(key: TKey, value: TValue): void; +>Add : Symbol(Add, Decl(missingTypeArguments3.ts, 24, 40)) +>key : Symbol(key, Decl(missingTypeArguments3.ts, 25, 12)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>value : Symbol(value, Decl(missingTypeArguments3.ts, 25, 22)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) + + Get(ke: TKey): TValue; +>Get : Symbol(Get, Decl(missingTypeArguments3.ts, 25, 44)) +>ke : Symbol(ke, Decl(missingTypeArguments3.ts, 26, 12)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) + + Set(key: TKey, value: TValue): boolean; +>Set : Symbol(Set, Decl(missingTypeArguments3.ts, 26, 30)) +>key : Symbol(key, Decl(missingTypeArguments3.ts, 27, 12)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>value : Symbol(value, Decl(missingTypeArguments3.ts, 27, 22)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) + + Contains(key: TKey): boolean; +>Contains : Symbol(Contains, Decl(missingTypeArguments3.ts, 27, 47)) +>key : Symbol(key, Decl(missingTypeArguments3.ts, 28, 17)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) + + Clear(): void; +>Clear : Symbol(Clear, Decl(missingTypeArguments3.ts, 28, 37)) + + Remove(key: TKey): void; +>Remove : Symbol(Remove, Decl(missingTypeArguments3.ts, 29, 22)) +>key : Symbol(key, Decl(missingTypeArguments3.ts, 30, 15)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) + + Count(): number; +>Count : Symbol(Count, Decl(missingTypeArguments3.ts, 30, 32)) + + ToEnumerable(): Enumerable>; +>ToEnumerable : Symbol(ToEnumerable, Decl(missingTypeArguments3.ts, 31, 24)) +>Enumerable : Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>KeyValuePair : Symbol(KeyValuePair, Decl(missingTypeArguments3.ts, 33, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) + } + + interface KeyValuePair { +>KeyValuePair : Symbol(KeyValuePair, Decl(missingTypeArguments3.ts, 33, 5)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 35, 27)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 35, 32)) + + Key: TKey; +>Key : Symbol(Key, Decl(missingTypeArguments3.ts, 35, 42)) +>TKey : Symbol(TKey, Decl(missingTypeArguments3.ts, 35, 27)) + + Value: TValue; +>Value : Symbol(Value, Decl(missingTypeArguments3.ts, 36, 18)) +>TValue : Symbol(TValue, Decl(missingTypeArguments3.ts, 35, 32)) + } +} + diff --git a/tests/baselines/reference/missingTypeArguments3.types b/tests/baselines/reference/missingTypeArguments3.types index 76146d4119e52..d7f850916f946 100644 --- a/tests/baselines/reference/missingTypeArguments3.types +++ b/tests/baselines/reference/missingTypeArguments3.types @@ -1,172 +1,172 @@ === tests/cases/compiler/missingTypeArguments3.ts === declare module linq { ->linq : any, Symbol(linq, Decl(missingTypeArguments3.ts, 0, 0)) +>linq : any interface Enumerable { ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>Enumerable : Enumerable +>T : T OrderByDescending(keySelector?: string): OrderedEnumerable; ->OrderByDescending : (keySelector?: string) => OrderedEnumerable, Symbol(OrderByDescending, Decl(missingTypeArguments3.ts, 2, 29)) ->keySelector : string, Symbol(keySelector, Decl(missingTypeArguments3.ts, 3, 26)) ->OrderedEnumerable : OrderedEnumerable, Symbol(OrderedEnumerable, Decl(missingTypeArguments3.ts, 7, 5)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>OrderByDescending : (keySelector?: string) => OrderedEnumerable +>keySelector : string +>OrderedEnumerable : OrderedEnumerable +>T : T GroupBy(keySelector: (element: T) => TKey): Enumerable>; ->GroupBy : { (keySelector: (element: T) => TKey): Enumerable>; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; }, Symbol(GroupBy, Decl(missingTypeArguments3.ts, 3, 70), Decl(missingTypeArguments3.ts, 4, 88)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 4, 16)) ->keySelector : (element: T) => TKey, Symbol(keySelector, Decl(missingTypeArguments3.ts, 4, 22)) ->element : T, Symbol(element, Decl(missingTypeArguments3.ts, 4, 36)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 4, 16)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->Grouping : Grouping, Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 4, 16)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>GroupBy : { (keySelector: (element: T) => TKey): Enumerable>; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; } +>TKey : TKey +>keySelector : (element: T) => TKey +>element : T +>T : T +>TKey : TKey +>Enumerable : Enumerable +>Grouping : Grouping +>TKey : TKey +>T : T GroupBy(keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; ->GroupBy : { (keySelector: (element: T) => TKey): Enumerable>; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; }, Symbol(GroupBy, Decl(missingTypeArguments3.ts, 3, 70), Decl(missingTypeArguments3.ts, 4, 88)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 5, 16)) ->TElement : TElement, Symbol(TElement, Decl(missingTypeArguments3.ts, 5, 21)) ->keySelector : (element: T) => TKey, Symbol(keySelector, Decl(missingTypeArguments3.ts, 5, 32)) ->element : T, Symbol(element, Decl(missingTypeArguments3.ts, 5, 46)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 5, 16)) ->elementSelector : (element: T) => TElement, Symbol(elementSelector, Decl(missingTypeArguments3.ts, 5, 66)) ->element : T, Symbol(element, Decl(missingTypeArguments3.ts, 5, 85)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) ->TElement : TElement, Symbol(TElement, Decl(missingTypeArguments3.ts, 5, 21)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->Grouping : Grouping, Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 5, 16)) ->TElement : TElement, Symbol(TElement, Decl(missingTypeArguments3.ts, 5, 21)) +>GroupBy : { (keySelector: (element: T) => TKey): Enumerable>; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; } +>TKey : TKey +>TElement : TElement +>keySelector : (element: T) => TKey +>element : T +>T : T +>TKey : TKey +>elementSelector : (element: T) => TElement +>element : T +>T : T +>TElement : TElement +>Enumerable : Enumerable +>Grouping : Grouping +>TKey : TKey +>TElement : TElement ToDictionary(keySelector: (element: T) => TKey): Dictionary; ->ToDictionary : (keySelector: (element: T) => TKey) => Dictionary, Symbol(ToDictionary, Decl(missingTypeArguments3.ts, 5, 148)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 6, 21)) ->keySelector : (element: T) => TKey, Symbol(keySelector, Decl(missingTypeArguments3.ts, 6, 27)) ->element : T, Symbol(element, Decl(missingTypeArguments3.ts, 6, 41)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 6, 21)) ->Dictionary : Dictionary, Symbol(Dictionary, Decl(missingTypeArguments3.ts, 22, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 6, 21)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 2, 25)) +>ToDictionary : (keySelector: (element: T) => TKey) => Dictionary +>TKey : TKey +>keySelector : (element: T) => TKey +>element : T +>T : T +>TKey : TKey +>Dictionary : Dictionary +>TKey : TKey +>T : T } interface OrderedEnumerable extends Enumerable { ->OrderedEnumerable : OrderedEnumerable, Symbol(OrderedEnumerable, Decl(missingTypeArguments3.ts, 7, 5)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) +>OrderedEnumerable : OrderedEnumerable +>T : T +>Enumerable : Enumerable +>T : T ThenBy(keySelector: (element: T) => TCompare): OrderedEnumerable; // used to incorrectly think this was missing a type argument ->ThenBy : (keySelector: (element: T) => TCompare) => OrderedEnumerable, Symbol(ThenBy, Decl(missingTypeArguments3.ts, 9, 58)) ->TCompare : TCompare, Symbol(TCompare, Decl(missingTypeArguments3.ts, 10, 15)) ->keySelector : (element: T) => TCompare, Symbol(keySelector, Decl(missingTypeArguments3.ts, 10, 25)) ->element : T, Symbol(element, Decl(missingTypeArguments3.ts, 10, 39)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) ->TCompare : TCompare, Symbol(TCompare, Decl(missingTypeArguments3.ts, 10, 15)) ->OrderedEnumerable : OrderedEnumerable, Symbol(OrderedEnumerable, Decl(missingTypeArguments3.ts, 7, 5)) ->T : T, Symbol(T, Decl(missingTypeArguments3.ts, 9, 32)) +>ThenBy : (keySelector: (element: T) => TCompare) => OrderedEnumerable +>TCompare : TCompare +>keySelector : (element: T) => TCompare +>element : T +>T : T +>TCompare : TCompare +>OrderedEnumerable : OrderedEnumerable +>T : T } interface Grouping extends Enumerable { ->Grouping : Grouping, Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 13, 23)) ->TElement : TElement, Symbol(TElement, Decl(missingTypeArguments3.ts, 13, 28)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->TElement : TElement, Symbol(TElement, Decl(missingTypeArguments3.ts, 13, 28)) +>Grouping : Grouping +>TKey : TKey +>TElement : TElement +>Enumerable : Enumerable +>TElement : TElement Key(): TKey; ->Key : () => TKey, Symbol(Key, Decl(missingTypeArguments3.ts, 13, 69)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 13, 23)) +>Key : () => TKey +>TKey : TKey } interface Lookup { ->Lookup : Lookup, Symbol(Lookup, Decl(missingTypeArguments3.ts, 15, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 17, 21)) ->TElement : TElement, Symbol(TElement, Decl(missingTypeArguments3.ts, 17, 26)) +>Lookup : Lookup +>TKey : TKey +>TElement : TElement Count(): number; ->Count : () => number, Symbol(Count, Decl(missingTypeArguments3.ts, 17, 38)) +>Count : () => number Get(key): Enumerable; ->Get : (key: any) => Enumerable, Symbol(Get, Decl(missingTypeArguments3.ts, 18, 24)) ->key : any, Symbol(key, Decl(missingTypeArguments3.ts, 19, 12)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) +>Get : (key: any) => Enumerable +>key : any +>Enumerable : Enumerable Contains(key): boolean; ->Contains : (key: any) => boolean, Symbol(Contains, Decl(missingTypeArguments3.ts, 19, 34)) ->key : any, Symbol(key, Decl(missingTypeArguments3.ts, 20, 17)) +>Contains : (key: any) => boolean +>key : any ToEnumerable(): Enumerable>; ->ToEnumerable : () => Enumerable>, Symbol(ToEnumerable, Decl(missingTypeArguments3.ts, 20, 31)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->Grouping : Grouping, Symbol(Grouping, Decl(missingTypeArguments3.ts, 11, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 17, 21)) +>ToEnumerable : () => Enumerable> +>Enumerable : Enumerable +>Grouping : Grouping +>TKey : TKey } interface Dictionary { ->Dictionary : Dictionary, Symbol(Dictionary, Decl(missingTypeArguments3.ts, 22, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) +>Dictionary : Dictionary +>TKey : TKey +>TValue : TValue Add(key: TKey, value: TValue): void; ->Add : (key: TKey, value: TValue) => void, Symbol(Add, Decl(missingTypeArguments3.ts, 24, 40)) ->key : TKey, Symbol(key, Decl(missingTypeArguments3.ts, 25, 12)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) ->value : TValue, Symbol(value, Decl(missingTypeArguments3.ts, 25, 22)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) +>Add : (key: TKey, value: TValue) => void +>key : TKey +>TKey : TKey +>value : TValue +>TValue : TValue Get(ke: TKey): TValue; ->Get : (ke: TKey) => TValue, Symbol(Get, Decl(missingTypeArguments3.ts, 25, 44)) ->ke : TKey, Symbol(ke, Decl(missingTypeArguments3.ts, 26, 12)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) +>Get : (ke: TKey) => TValue +>ke : TKey +>TKey : TKey +>TValue : TValue Set(key: TKey, value: TValue): boolean; ->Set : (key: TKey, value: TValue) => boolean, Symbol(Set, Decl(missingTypeArguments3.ts, 26, 30)) ->key : TKey, Symbol(key, Decl(missingTypeArguments3.ts, 27, 12)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) ->value : TValue, Symbol(value, Decl(missingTypeArguments3.ts, 27, 22)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) +>Set : (key: TKey, value: TValue) => boolean +>key : TKey +>TKey : TKey +>value : TValue +>TValue : TValue Contains(key: TKey): boolean; ->Contains : (key: TKey) => boolean, Symbol(Contains, Decl(missingTypeArguments3.ts, 27, 47)) ->key : TKey, Symbol(key, Decl(missingTypeArguments3.ts, 28, 17)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>Contains : (key: TKey) => boolean +>key : TKey +>TKey : TKey Clear(): void; ->Clear : () => void, Symbol(Clear, Decl(missingTypeArguments3.ts, 28, 37)) +>Clear : () => void Remove(key: TKey): void; ->Remove : (key: TKey) => void, Symbol(Remove, Decl(missingTypeArguments3.ts, 29, 22)) ->key : TKey, Symbol(key, Decl(missingTypeArguments3.ts, 30, 15)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) +>Remove : (key: TKey) => void +>key : TKey +>TKey : TKey Count(): number; ->Count : () => number, Symbol(Count, Decl(missingTypeArguments3.ts, 30, 32)) +>Count : () => number ToEnumerable(): Enumerable>; ->ToEnumerable : () => Enumerable>, Symbol(ToEnumerable, Decl(missingTypeArguments3.ts, 31, 24)) ->Enumerable : Enumerable, Symbol(Enumerable, Decl(missingTypeArguments3.ts, 0, 21)) ->KeyValuePair : KeyValuePair, Symbol(KeyValuePair, Decl(missingTypeArguments3.ts, 33, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 24, 25)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 24, 30)) +>ToEnumerable : () => Enumerable> +>Enumerable : Enumerable +>KeyValuePair : KeyValuePair +>TKey : TKey +>TValue : TValue } interface KeyValuePair { ->KeyValuePair : KeyValuePair, Symbol(KeyValuePair, Decl(missingTypeArguments3.ts, 33, 5)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 35, 27)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 35, 32)) +>KeyValuePair : KeyValuePair +>TKey : TKey +>TValue : TValue Key: TKey; ->Key : TKey, Symbol(Key, Decl(missingTypeArguments3.ts, 35, 42)) ->TKey : TKey, Symbol(TKey, Decl(missingTypeArguments3.ts, 35, 27)) +>Key : TKey +>TKey : TKey Value: TValue; ->Value : TValue, Symbol(Value, Decl(missingTypeArguments3.ts, 36, 18)) ->TValue : TValue, Symbol(TValue, Decl(missingTypeArguments3.ts, 35, 32)) +>Value : TValue +>TValue : TValue } } diff --git a/tests/baselines/reference/mixedExports.symbols b/tests/baselines/reference/mixedExports.symbols new file mode 100644 index 0000000000000..317b60e0a8c5f --- /dev/null +++ b/tests/baselines/reference/mixedExports.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/mixedExports.ts === +declare module M { +>M : Symbol(M, Decl(mixedExports.ts, 0, 0)) + + function foo(); +>foo : Symbol(foo, Decl(mixedExports.ts, 0, 18), Decl(mixedExports.ts, 1, 20), Decl(mixedExports.ts, 2, 27)) + + export function foo(); +>foo : Symbol(foo, Decl(mixedExports.ts, 0, 18), Decl(mixedExports.ts, 1, 20), Decl(mixedExports.ts, 2, 27)) + + function foo(); +>foo : Symbol(foo, Decl(mixedExports.ts, 0, 18), Decl(mixedExports.ts, 1, 20), Decl(mixedExports.ts, 2, 27)) +} + +declare module M1 { +>M1 : Symbol(M1, Decl(mixedExports.ts, 4, 1)) + + export interface Foo {} +>Foo : Symbol(Foo, Decl(mixedExports.ts, 6, 19), Decl(mixedExports.ts, 7, 28)) + + interface Foo {} +>Foo : Symbol(Foo, Decl(mixedExports.ts, 6, 19), Decl(mixedExports.ts, 7, 28)) +} + +module A { +>A : Symbol(A, Decl(mixedExports.ts, 9, 1)) + + interface X {x} +>X : Symbol(X, Decl(mixedExports.ts, 11, 10), Decl(mixedExports.ts, 12, 20), Decl(mixedExports.ts, 13, 23)) +>x : Symbol(x, Decl(mixedExports.ts, 12, 18)) + + export module X {} +>X : Symbol(X, Decl(mixedExports.ts, 12, 20)) + + interface X {y} +>X : Symbol(X, Decl(mixedExports.ts, 11, 10), Decl(mixedExports.ts, 12, 20), Decl(mixedExports.ts, 13, 23)) +>y : Symbol(y, Decl(mixedExports.ts, 14, 18)) +} diff --git a/tests/baselines/reference/mixedExports.types b/tests/baselines/reference/mixedExports.types index d467d4666a2fd..fd0d24391e54f 100644 --- a/tests/baselines/reference/mixedExports.types +++ b/tests/baselines/reference/mixedExports.types @@ -1,38 +1,38 @@ === tests/cases/compiler/mixedExports.ts === declare module M { ->M : typeof M, Symbol(M, Decl(mixedExports.ts, 0, 0)) +>M : typeof M function foo(); ->foo : { (): any; (): any; (): any; }, Symbol(foo, Decl(mixedExports.ts, 0, 18), Decl(mixedExports.ts, 1, 20), Decl(mixedExports.ts, 2, 27)) +>foo : { (): any; (): any; (): any; } export function foo(); ->foo : { (): any; (): any; (): any; }, Symbol(foo, Decl(mixedExports.ts, 0, 18), Decl(mixedExports.ts, 1, 20), Decl(mixedExports.ts, 2, 27)) +>foo : { (): any; (): any; (): any; } function foo(); ->foo : { (): any; (): any; (): any; }, Symbol(foo, Decl(mixedExports.ts, 0, 18), Decl(mixedExports.ts, 1, 20), Decl(mixedExports.ts, 2, 27)) +>foo : { (): any; (): any; (): any; } } declare module M1 { ->M1 : any, Symbol(M1, Decl(mixedExports.ts, 4, 1)) +>M1 : any export interface Foo {} ->Foo : Foo, Symbol(Foo, Decl(mixedExports.ts, 6, 19), Decl(mixedExports.ts, 7, 28)) +>Foo : Foo interface Foo {} ->Foo : Foo, Symbol(Foo, Decl(mixedExports.ts, 6, 19), Decl(mixedExports.ts, 7, 28)) +>Foo : Foo } module A { ->A : any, Symbol(A, Decl(mixedExports.ts, 9, 1)) +>A : any interface X {x} ->X : X, Symbol(X, Decl(mixedExports.ts, 11, 10), Decl(mixedExports.ts, 12, 20), Decl(mixedExports.ts, 13, 23)) ->x : any, Symbol(x, Decl(mixedExports.ts, 12, 18)) +>X : X +>x : any export module X {} ->X : any, Symbol(X, Decl(mixedExports.ts, 12, 20)) +>X : any interface X {y} ->X : X, Symbol(X, Decl(mixedExports.ts, 11, 10), Decl(mixedExports.ts, 12, 20), Decl(mixedExports.ts, 13, 23)) ->y : any, Symbol(y, Decl(mixedExports.ts, 14, 18)) +>X : X +>y : any } diff --git a/tests/baselines/reference/mixingFunctionAndAmbientModule1.symbols b/tests/baselines/reference/mixingFunctionAndAmbientModule1.symbols new file mode 100644 index 0000000000000..9fc43fd4ac099 --- /dev/null +++ b/tests/baselines/reference/mixingFunctionAndAmbientModule1.symbols @@ -0,0 +1,90 @@ +=== tests/cases/compiler/mixingFunctionAndAmbientModule1.ts === +module A { +>A : Symbol(A, Decl(mixingFunctionAndAmbientModule1.ts, 0, 0)) + + declare module My { +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 0, 10), Decl(mixingFunctionAndAmbientModule1.ts, 3, 5)) + + export var x: number; +>x : Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 2, 18)) + } + function My(s: string) { } +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 0, 10), Decl(mixingFunctionAndAmbientModule1.ts, 3, 5)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 4, 16)) +} + +module B { +>B : Symbol(B, Decl(mixingFunctionAndAmbientModule1.ts, 5, 1)) + + declare module My { +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 7, 10), Decl(mixingFunctionAndAmbientModule1.ts, 10, 5), Decl(mixingFunctionAndAmbientModule1.ts, 11, 28)) + + export var x: number; +>x : Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 9, 18)) + } + function My(s: boolean); +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 7, 10), Decl(mixingFunctionAndAmbientModule1.ts, 10, 5), Decl(mixingFunctionAndAmbientModule1.ts, 11, 28)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 11, 16)) + + function My(s: any) { } +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 7, 10), Decl(mixingFunctionAndAmbientModule1.ts, 10, 5), Decl(mixingFunctionAndAmbientModule1.ts, 11, 28)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 12, 16)) +} + +module C { +>C : Symbol(C, Decl(mixingFunctionAndAmbientModule1.ts, 13, 1)) + + declare module My { +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 15, 10), Decl(mixingFunctionAndAmbientModule1.ts, 18, 5)) + + export var x: number; +>x : Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 17, 18)) + } + declare function My(s: boolean); +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 15, 10), Decl(mixingFunctionAndAmbientModule1.ts, 18, 5)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 19, 24)) +} + +module D { +>D : Symbol(D, Decl(mixingFunctionAndAmbientModule1.ts, 20, 1)) + + declare module My { +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 22, 10), Decl(mixingFunctionAndAmbientModule1.ts, 25, 5), Decl(mixingFunctionAndAmbientModule1.ts, 26, 36)) + + export var x: number; +>x : Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 24, 18)) + } + declare function My(s: boolean); +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 22, 10), Decl(mixingFunctionAndAmbientModule1.ts, 25, 5), Decl(mixingFunctionAndAmbientModule1.ts, 26, 36)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 26, 24)) + + declare function My(s: any); +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 22, 10), Decl(mixingFunctionAndAmbientModule1.ts, 25, 5), Decl(mixingFunctionAndAmbientModule1.ts, 26, 36)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 27, 24)) +} + + +module E { +>E : Symbol(E, Decl(mixingFunctionAndAmbientModule1.ts, 28, 1)) + + declare module My { +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) + + export var x: number; +>x : Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 33, 18)) + } + declare function My(s: boolean); +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 35, 24)) + + declare module My { +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) + + export var y: number; +>y : Symbol(y, Decl(mixingFunctionAndAmbientModule1.ts, 37, 18)) + } + declare function My(s: any); +>My : Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) +>s : Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 39, 24)) +} + diff --git a/tests/baselines/reference/mixingFunctionAndAmbientModule1.types b/tests/baselines/reference/mixingFunctionAndAmbientModule1.types index 46cde145dfb4b..c9e2e1167a973 100644 --- a/tests/baselines/reference/mixingFunctionAndAmbientModule1.types +++ b/tests/baselines/reference/mixingFunctionAndAmbientModule1.types @@ -1,90 +1,90 @@ === tests/cases/compiler/mixingFunctionAndAmbientModule1.ts === module A { ->A : typeof A, Symbol(A, Decl(mixingFunctionAndAmbientModule1.ts, 0, 0)) +>A : typeof A declare module My { ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 0, 10), Decl(mixingFunctionAndAmbientModule1.ts, 3, 5)) +>My : typeof My export var x: number; ->x : number, Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 2, 18)) +>x : number } function My(s: string) { } ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 0, 10), Decl(mixingFunctionAndAmbientModule1.ts, 3, 5)) ->s : string, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 4, 16)) +>My : typeof My +>s : string } module B { ->B : typeof B, Symbol(B, Decl(mixingFunctionAndAmbientModule1.ts, 5, 1)) +>B : typeof B declare module My { ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 7, 10), Decl(mixingFunctionAndAmbientModule1.ts, 10, 5), Decl(mixingFunctionAndAmbientModule1.ts, 11, 28)) +>My : typeof My export var x: number; ->x : number, Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 9, 18)) +>x : number } function My(s: boolean); ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 7, 10), Decl(mixingFunctionAndAmbientModule1.ts, 10, 5), Decl(mixingFunctionAndAmbientModule1.ts, 11, 28)) ->s : boolean, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 11, 16)) +>My : typeof My +>s : boolean function My(s: any) { } ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 7, 10), Decl(mixingFunctionAndAmbientModule1.ts, 10, 5), Decl(mixingFunctionAndAmbientModule1.ts, 11, 28)) ->s : any, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 12, 16)) +>My : typeof My +>s : any } module C { ->C : typeof C, Symbol(C, Decl(mixingFunctionAndAmbientModule1.ts, 13, 1)) +>C : typeof C declare module My { ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 15, 10), Decl(mixingFunctionAndAmbientModule1.ts, 18, 5)) +>My : typeof My export var x: number; ->x : number, Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 17, 18)) +>x : number } declare function My(s: boolean); ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 15, 10), Decl(mixingFunctionAndAmbientModule1.ts, 18, 5)) ->s : boolean, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 19, 24)) +>My : typeof My +>s : boolean } module D { ->D : typeof D, Symbol(D, Decl(mixingFunctionAndAmbientModule1.ts, 20, 1)) +>D : typeof D declare module My { ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 22, 10), Decl(mixingFunctionAndAmbientModule1.ts, 25, 5), Decl(mixingFunctionAndAmbientModule1.ts, 26, 36)) +>My : typeof My export var x: number; ->x : number, Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 24, 18)) +>x : number } declare function My(s: boolean); ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 22, 10), Decl(mixingFunctionAndAmbientModule1.ts, 25, 5), Decl(mixingFunctionAndAmbientModule1.ts, 26, 36)) ->s : boolean, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 26, 24)) +>My : typeof My +>s : boolean declare function My(s: any); ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 22, 10), Decl(mixingFunctionAndAmbientModule1.ts, 25, 5), Decl(mixingFunctionAndAmbientModule1.ts, 26, 36)) ->s : any, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 27, 24)) +>My : typeof My +>s : any } module E { ->E : typeof E, Symbol(E, Decl(mixingFunctionAndAmbientModule1.ts, 28, 1)) +>E : typeof E declare module My { ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) +>My : typeof My export var x: number; ->x : number, Symbol(x, Decl(mixingFunctionAndAmbientModule1.ts, 33, 18)) +>x : number } declare function My(s: boolean); ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) ->s : boolean, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 35, 24)) +>My : typeof My +>s : boolean declare module My { ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) +>My : typeof My export var y: number; ->y : number, Symbol(y, Decl(mixingFunctionAndAmbientModule1.ts, 37, 18)) +>y : number } declare function My(s: any); ->My : typeof My, Symbol(My, Decl(mixingFunctionAndAmbientModule1.ts, 31, 10), Decl(mixingFunctionAndAmbientModule1.ts, 34, 5), Decl(mixingFunctionAndAmbientModule1.ts, 35, 36), Decl(mixingFunctionAndAmbientModule1.ts, 38, 5)) ->s : any, Symbol(s, Decl(mixingFunctionAndAmbientModule1.ts, 39, 24)) +>My : typeof My +>s : any } diff --git a/tests/baselines/reference/modFunctionCrash.symbols b/tests/baselines/reference/modFunctionCrash.symbols new file mode 100644 index 0000000000000..b1063a40cd502 --- /dev/null +++ b/tests/baselines/reference/modFunctionCrash.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/modFunctionCrash.ts === +declare module Q { +>Q : Symbol(Q, Decl(modFunctionCrash.ts, 0, 0)) + + function f(fn:()=>void); // typechecking the function type shouldnot crash the compiler +>f : Symbol(f, Decl(modFunctionCrash.ts, 0, 18)) +>fn : Symbol(fn, Decl(modFunctionCrash.ts, 1, 15)) +} + + +Q.f(function() {this;}); +>Q.f : Symbol(Q.f, Decl(modFunctionCrash.ts, 0, 18)) +>Q : Symbol(Q, Decl(modFunctionCrash.ts, 0, 0)) +>f : Symbol(Q.f, Decl(modFunctionCrash.ts, 0, 18)) + diff --git a/tests/baselines/reference/modFunctionCrash.types b/tests/baselines/reference/modFunctionCrash.types index 47db71ec22839..596dac999a14c 100644 --- a/tests/baselines/reference/modFunctionCrash.types +++ b/tests/baselines/reference/modFunctionCrash.types @@ -1,18 +1,18 @@ === tests/cases/compiler/modFunctionCrash.ts === declare module Q { ->Q : typeof Q, Symbol(Q, Decl(modFunctionCrash.ts, 0, 0)) +>Q : typeof Q function f(fn:()=>void); // typechecking the function type shouldnot crash the compiler ->f : (fn: () => void) => any, Symbol(f, Decl(modFunctionCrash.ts, 0, 18)) ->fn : () => void, Symbol(fn, Decl(modFunctionCrash.ts, 1, 15)) +>f : (fn: () => void) => any +>fn : () => void } Q.f(function() {this;}); >Q.f(function() {this;}) : any ->Q.f : (fn: () => void) => any, Symbol(Q.f, Decl(modFunctionCrash.ts, 0, 18)) ->Q : typeof Q, Symbol(Q, Decl(modFunctionCrash.ts, 0, 0)) ->f : (fn: () => void) => any, Symbol(Q.f, Decl(modFunctionCrash.ts, 0, 18)) +>Q.f : (fn: () => void) => any +>Q : typeof Q +>f : (fn: () => void) => any >function() {this;} : () => void >this : any diff --git a/tests/baselines/reference/modKeyword.symbols b/tests/baselines/reference/modKeyword.symbols new file mode 100644 index 0000000000000..e308cb0a46ca2 --- /dev/null +++ b/tests/baselines/reference/modKeyword.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/modKeyword.ts === +var module:any; +>module : Symbol(module, Decl(modKeyword.ts, 0, 3)) + +var foo:any; +>foo : Symbol(foo, Decl(modKeyword.ts, 1, 3)) + +var _ = module.exports = foo +>_ : Symbol(_, Decl(modKeyword.ts, 3, 3)) +>module : Symbol(module, Decl(modKeyword.ts, 0, 3)) +>foo : Symbol(foo, Decl(modKeyword.ts, 1, 3)) + diff --git a/tests/baselines/reference/modKeyword.types b/tests/baselines/reference/modKeyword.types index e70c288786b71..6c11fed31fc8d 100644 --- a/tests/baselines/reference/modKeyword.types +++ b/tests/baselines/reference/modKeyword.types @@ -1,15 +1,15 @@ === tests/cases/compiler/modKeyword.ts === var module:any; ->module : any, Symbol(module, Decl(modKeyword.ts, 0, 3)) +>module : any var foo:any; ->foo : any, Symbol(foo, Decl(modKeyword.ts, 1, 3)) +>foo : any var _ = module.exports = foo ->_ : any, Symbol(_, Decl(modKeyword.ts, 3, 3)) +>_ : any >module.exports = foo : any >module.exports : any ->module : any, Symbol(module, Decl(modKeyword.ts, 0, 3)) +>module : any >exports : any ->foo : any, Symbol(foo, Decl(modKeyword.ts, 1, 3)) +>foo : any diff --git a/tests/baselines/reference/moduleAliasAsFunctionArgument.symbols b/tests/baselines/reference/moduleAliasAsFunctionArgument.symbols new file mode 100644 index 0000000000000..520dba18d067f --- /dev/null +++ b/tests/baselines/reference/moduleAliasAsFunctionArgument.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/moduleAliasAsFunctionArgument_1.ts === +/// +import a = require('moduleAliasAsFunctionArgument_0'); +>a : Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) + +function fn(arg: { x: number }) { +>fn : Symbol(fn, Decl(moduleAliasAsFunctionArgument_1.ts, 1, 54)) +>arg : Symbol(arg, Decl(moduleAliasAsFunctionArgument_1.ts, 3, 12)) +>x : Symbol(x, Decl(moduleAliasAsFunctionArgument_1.ts, 3, 18)) +} + +a.x; // OK +>a.x : Symbol(a.x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) +>a : Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) +>x : Symbol(a.x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) + +fn(a); // Error: property 'x' is missing from 'a' +>fn : Symbol(fn, Decl(moduleAliasAsFunctionArgument_1.ts, 1, 54)) +>a : Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) + +=== tests/cases/compiler/moduleAliasAsFunctionArgument_0.ts === +export var x: number; +>x : Symbol(x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) + diff --git a/tests/baselines/reference/moduleAliasAsFunctionArgument.types b/tests/baselines/reference/moduleAliasAsFunctionArgument.types index 877b39555b709..dc621aa5dbf4c 100644 --- a/tests/baselines/reference/moduleAliasAsFunctionArgument.types +++ b/tests/baselines/reference/moduleAliasAsFunctionArgument.types @@ -1,25 +1,25 @@ === tests/cases/compiler/moduleAliasAsFunctionArgument_1.ts === /// import a = require('moduleAliasAsFunctionArgument_0'); ->a : typeof a, Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) +>a : typeof a function fn(arg: { x: number }) { ->fn : (arg: { x: number; }) => void, Symbol(fn, Decl(moduleAliasAsFunctionArgument_1.ts, 1, 54)) ->arg : { x: number; }, Symbol(arg, Decl(moduleAliasAsFunctionArgument_1.ts, 3, 12)) ->x : number, Symbol(x, Decl(moduleAliasAsFunctionArgument_1.ts, 3, 18)) +>fn : (arg: { x: number; }) => void +>arg : { x: number; } +>x : number } a.x; // OK ->a.x : number, Symbol(a.x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) ->a : typeof a, Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) ->x : number, Symbol(a.x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) +>a.x : number +>a : typeof a +>x : number fn(a); // Error: property 'x' is missing from 'a' >fn(a) : void ->fn : (arg: { x: number; }) => void, Symbol(fn, Decl(moduleAliasAsFunctionArgument_1.ts, 1, 54)) ->a : typeof a, Symbol(a, Decl(moduleAliasAsFunctionArgument_1.ts, 0, 0)) +>fn : (arg: { x: number; }) => void +>a : typeof a === tests/cases/compiler/moduleAliasAsFunctionArgument_0.ts === export var x: number; ->x : number, Symbol(x, Decl(moduleAliasAsFunctionArgument_0.ts, 0, 10)) +>x : number diff --git a/tests/baselines/reference/moduleAliasInterface.symbols b/tests/baselines/reference/moduleAliasInterface.symbols new file mode 100644 index 0000000000000..9c4cfdf9b142e --- /dev/null +++ b/tests/baselines/reference/moduleAliasInterface.symbols @@ -0,0 +1,121 @@ +=== tests/cases/compiler/moduleAliasInterface.ts === +module _modes { +>_modes : Symbol(_modes, Decl(moduleAliasInterface.ts, 0, 0)) + + export interface IMode { +>IMode : Symbol(IMode, Decl(moduleAliasInterface.ts, 0, 15)) + + } + + export class Mode { +>Mode : Symbol(Mode, Decl(moduleAliasInterface.ts, 3, 2)) + + } +} + +// _modes. // produces an internal error - please implement in derived class + +module editor { +>editor : Symbol(editor, Decl(moduleAliasInterface.ts, 8, 1)) + + import modes = _modes; +>modes : Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) +>_modes : Symbol(modes, Decl(moduleAliasInterface.ts, 0, 0)) + + var i : modes.IMode; +>i : Symbol(i, Decl(moduleAliasInterface.ts, 15, 4)) +>modes : Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) +>IMode : Symbol(modes.IMode, Decl(moduleAliasInterface.ts, 0, 15)) + + // If you just use p1:modes, the compiler accepts it - should be an error + class Bug { +>Bug : Symbol(Bug, Decl(moduleAliasInterface.ts, 15, 21)) + + constructor(p1: modes.IMode, p2: modes.Mode) { }// should be an error on p2 - it's not exported +>p1 : Symbol(p1, Decl(moduleAliasInterface.ts, 19, 14)) +>modes : Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) +>IMode : Symbol(modes.IMode, Decl(moduleAliasInterface.ts, 0, 15)) +>p2 : Symbol(p2, Decl(moduleAliasInterface.ts, 19, 30)) +>modes : Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) +>Mode : Symbol(modes.Mode, Decl(moduleAliasInterface.ts, 3, 2)) + + public foo(p1:modes.IMode) { +>foo : Symbol(foo, Decl(moduleAliasInterface.ts, 19, 50)) +>p1 : Symbol(p1, Decl(moduleAliasInterface.ts, 20, 13)) +>modes : Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) +>IMode : Symbol(modes.IMode, Decl(moduleAliasInterface.ts, 0, 15)) + + } + } +} + +import modesOuter = _modes; +>modesOuter : Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) +>_modes : Symbol(_modes, Decl(moduleAliasInterface.ts, 0, 0)) + +module editor2 { +>editor2 : Symbol(editor2, Decl(moduleAliasInterface.ts, 26, 27)) + + var i : modesOuter.IMode; +>i : Symbol(i, Decl(moduleAliasInterface.ts, 29, 4)) +>modesOuter : Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) +>IMode : Symbol(modesOuter.IMode, Decl(moduleAliasInterface.ts, 0, 15)) + + class Bug { +>Bug : Symbol(Bug, Decl(moduleAliasInterface.ts, 29, 26)) + + constructor(p1: modesOuter.IMode, p2: modesOuter.Mode) { }// no error here, since modesOuter is declared externally +>p1 : Symbol(p1, Decl(moduleAliasInterface.ts, 32, 17)) +>modesOuter : Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) +>IMode : Symbol(modesOuter.IMode, Decl(moduleAliasInterface.ts, 0, 15)) +>p2 : Symbol(p2, Decl(moduleAliasInterface.ts, 32, 38)) +>modesOuter : Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) +>Mode : Symbol(modesOuter.Mode, Decl(moduleAliasInterface.ts, 3, 2)) + + } + + module Foo { export class Bar{} } +>Foo : Symbol(Foo, Decl(moduleAliasInterface.ts, 34, 2)) +>Bar : Symbol(Bar, Decl(moduleAliasInterface.ts, 36, 14)) + + class Bug2 { +>Bug2 : Symbol(Bug2, Decl(moduleAliasInterface.ts, 36, 35)) + + constructor(p1: Foo.Bar, p2: modesOuter.Mode) { } +>p1 : Symbol(p1, Decl(moduleAliasInterface.ts, 39, 18)) +>Foo : Symbol(Foo, Decl(moduleAliasInterface.ts, 34, 2)) +>Bar : Symbol(Foo.Bar, Decl(moduleAliasInterface.ts, 36, 14)) +>p2 : Symbol(p2, Decl(moduleAliasInterface.ts, 39, 30)) +>modesOuter : Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) +>Mode : Symbol(modesOuter.Mode, Decl(moduleAliasInterface.ts, 3, 2)) + } +} + +module A1 { +>A1 : Symbol(A1, Decl(moduleAliasInterface.ts, 41, 1)) + + export interface A1I1 {} +>A1I1 : Symbol(A1I1, Decl(moduleAliasInterface.ts, 43, 11)) + + export class A1C1 {} +>A1C1 : Symbol(A1C1, Decl(moduleAliasInterface.ts, 44, 28)) +} + +module B1 { +>B1 : Symbol(B1, Decl(moduleAliasInterface.ts, 46, 1)) + + import A1Alias1 = A1; +>A1Alias1 : Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 48, 11)) +>A1 : Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 41, 1)) + + var i : A1Alias1.A1I1; +>i : Symbol(i, Decl(moduleAliasInterface.ts, 51, 7)) +>A1Alias1 : Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 48, 11)) +>A1I1 : Symbol(A1Alias1.A1I1, Decl(moduleAliasInterface.ts, 43, 11)) + + var c : A1Alias1.A1C1; +>c : Symbol(c, Decl(moduleAliasInterface.ts, 52, 7)) +>A1Alias1 : Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 48, 11)) +>A1C1 : Symbol(A1Alias1.A1C1, Decl(moduleAliasInterface.ts, 44, 28)) +} + diff --git a/tests/baselines/reference/moduleAliasInterface.types b/tests/baselines/reference/moduleAliasInterface.types index de49f85873f16..8e1dd1ec82cea 100644 --- a/tests/baselines/reference/moduleAliasInterface.types +++ b/tests/baselines/reference/moduleAliasInterface.types @@ -1,14 +1,14 @@ === tests/cases/compiler/moduleAliasInterface.ts === module _modes { ->_modes : typeof _modes, Symbol(_modes, Decl(moduleAliasInterface.ts, 0, 0)) +>_modes : typeof _modes export interface IMode { ->IMode : IMode, Symbol(IMode, Decl(moduleAliasInterface.ts, 0, 15)) +>IMode : IMode } export class Mode { ->Mode : Mode, Symbol(Mode, Decl(moduleAliasInterface.ts, 3, 2)) +>Mode : Mode } } @@ -16,106 +16,106 @@ module _modes { // _modes. // produces an internal error - please implement in derived class module editor { ->editor : typeof editor, Symbol(editor, Decl(moduleAliasInterface.ts, 8, 1)) +>editor : typeof editor import modes = _modes; ->modes : typeof modes, Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) ->_modes : typeof modes, Symbol(modes, Decl(moduleAliasInterface.ts, 0, 0)) +>modes : typeof modes +>_modes : typeof modes var i : modes.IMode; ->i : modes.IMode, Symbol(i, Decl(moduleAliasInterface.ts, 15, 4)) ->modes : any, Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) ->IMode : modes.IMode, Symbol(modes.IMode, Decl(moduleAliasInterface.ts, 0, 15)) +>i : modes.IMode +>modes : any +>IMode : modes.IMode // If you just use p1:modes, the compiler accepts it - should be an error class Bug { ->Bug : Bug, Symbol(Bug, Decl(moduleAliasInterface.ts, 15, 21)) +>Bug : Bug constructor(p1: modes.IMode, p2: modes.Mode) { }// should be an error on p2 - it's not exported ->p1 : modes.IMode, Symbol(p1, Decl(moduleAliasInterface.ts, 19, 14)) ->modes : any, Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) ->IMode : modes.IMode, Symbol(modes.IMode, Decl(moduleAliasInterface.ts, 0, 15)) ->p2 : modes.Mode, Symbol(p2, Decl(moduleAliasInterface.ts, 19, 30)) ->modes : any, Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) ->Mode : modes.Mode, Symbol(modes.Mode, Decl(moduleAliasInterface.ts, 3, 2)) +>p1 : modes.IMode +>modes : any +>IMode : modes.IMode +>p2 : modes.Mode +>modes : any +>Mode : modes.Mode public foo(p1:modes.IMode) { ->foo : (p1: modes.IMode) => void, Symbol(foo, Decl(moduleAliasInterface.ts, 19, 50)) ->p1 : modes.IMode, Symbol(p1, Decl(moduleAliasInterface.ts, 20, 13)) ->modes : any, Symbol(modes, Decl(moduleAliasInterface.ts, 12, 15)) ->IMode : modes.IMode, Symbol(modes.IMode, Decl(moduleAliasInterface.ts, 0, 15)) +>foo : (p1: modes.IMode) => void +>p1 : modes.IMode +>modes : any +>IMode : modes.IMode } } } import modesOuter = _modes; ->modesOuter : typeof _modes, Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) ->_modes : typeof _modes, Symbol(_modes, Decl(moduleAliasInterface.ts, 0, 0)) +>modesOuter : typeof _modes +>_modes : typeof _modes module editor2 { ->editor2 : typeof editor2, Symbol(editor2, Decl(moduleAliasInterface.ts, 26, 27)) +>editor2 : typeof editor2 var i : modesOuter.IMode; ->i : modesOuter.IMode, Symbol(i, Decl(moduleAliasInterface.ts, 29, 4)) ->modesOuter : any, Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) ->IMode : modesOuter.IMode, Symbol(modesOuter.IMode, Decl(moduleAliasInterface.ts, 0, 15)) +>i : modesOuter.IMode +>modesOuter : any +>IMode : modesOuter.IMode class Bug { ->Bug : Bug, Symbol(Bug, Decl(moduleAliasInterface.ts, 29, 26)) +>Bug : Bug constructor(p1: modesOuter.IMode, p2: modesOuter.Mode) { }// no error here, since modesOuter is declared externally ->p1 : modesOuter.IMode, Symbol(p1, Decl(moduleAliasInterface.ts, 32, 17)) ->modesOuter : any, Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) ->IMode : modesOuter.IMode, Symbol(modesOuter.IMode, Decl(moduleAliasInterface.ts, 0, 15)) ->p2 : modesOuter.Mode, Symbol(p2, Decl(moduleAliasInterface.ts, 32, 38)) ->modesOuter : any, Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) ->Mode : modesOuter.Mode, Symbol(modesOuter.Mode, Decl(moduleAliasInterface.ts, 3, 2)) +>p1 : modesOuter.IMode +>modesOuter : any +>IMode : modesOuter.IMode +>p2 : modesOuter.Mode +>modesOuter : any +>Mode : modesOuter.Mode } module Foo { export class Bar{} } ->Foo : typeof Foo, Symbol(Foo, Decl(moduleAliasInterface.ts, 34, 2)) ->Bar : Bar, Symbol(Bar, Decl(moduleAliasInterface.ts, 36, 14)) +>Foo : typeof Foo +>Bar : Bar class Bug2 { ->Bug2 : Bug2, Symbol(Bug2, Decl(moduleAliasInterface.ts, 36, 35)) +>Bug2 : Bug2 constructor(p1: Foo.Bar, p2: modesOuter.Mode) { } ->p1 : Foo.Bar, Symbol(p1, Decl(moduleAliasInterface.ts, 39, 18)) ->Foo : any, Symbol(Foo, Decl(moduleAliasInterface.ts, 34, 2)) ->Bar : Foo.Bar, Symbol(Foo.Bar, Decl(moduleAliasInterface.ts, 36, 14)) ->p2 : modesOuter.Mode, Symbol(p2, Decl(moduleAliasInterface.ts, 39, 30)) ->modesOuter : any, Symbol(modesOuter, Decl(moduleAliasInterface.ts, 24, 1)) ->Mode : modesOuter.Mode, Symbol(modesOuter.Mode, Decl(moduleAliasInterface.ts, 3, 2)) +>p1 : Foo.Bar +>Foo : any +>Bar : Foo.Bar +>p2 : modesOuter.Mode +>modesOuter : any +>Mode : modesOuter.Mode } } module A1 { ->A1 : typeof A1, Symbol(A1, Decl(moduleAliasInterface.ts, 41, 1)) +>A1 : typeof A1 export interface A1I1 {} ->A1I1 : A1I1, Symbol(A1I1, Decl(moduleAliasInterface.ts, 43, 11)) +>A1I1 : A1I1 export class A1C1 {} ->A1C1 : A1C1, Symbol(A1C1, Decl(moduleAliasInterface.ts, 44, 28)) +>A1C1 : A1C1 } module B1 { ->B1 : typeof B1, Symbol(B1, Decl(moduleAliasInterface.ts, 46, 1)) +>B1 : typeof B1 import A1Alias1 = A1; ->A1Alias1 : typeof A1Alias1, Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 48, 11)) ->A1 : typeof A1Alias1, Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 41, 1)) +>A1Alias1 : typeof A1Alias1 +>A1 : typeof A1Alias1 var i : A1Alias1.A1I1; ->i : A1Alias1.A1I1, Symbol(i, Decl(moduleAliasInterface.ts, 51, 7)) ->A1Alias1 : any, Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 48, 11)) ->A1I1 : A1Alias1.A1I1, Symbol(A1Alias1.A1I1, Decl(moduleAliasInterface.ts, 43, 11)) +>i : A1Alias1.A1I1 +>A1Alias1 : any +>A1I1 : A1Alias1.A1I1 var c : A1Alias1.A1C1; ->c : A1Alias1.A1C1, Symbol(c, Decl(moduleAliasInterface.ts, 52, 7)) ->A1Alias1 : any, Symbol(A1Alias1, Decl(moduleAliasInterface.ts, 48, 11)) ->A1C1 : A1Alias1.A1C1, Symbol(A1Alias1.A1C1, Decl(moduleAliasInterface.ts, 44, 28)) +>c : A1Alias1.A1C1 +>A1Alias1 : any +>A1C1 : A1Alias1.A1C1 } diff --git a/tests/baselines/reference/moduleAndInterfaceSharingName.symbols b/tests/baselines/reference/moduleAndInterfaceSharingName.symbols new file mode 100644 index 0000000000000..8a3a3621e1b46 --- /dev/null +++ b/tests/baselines/reference/moduleAndInterfaceSharingName.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/moduleAndInterfaceSharingName.ts === +module X { +>X : Symbol(X, Decl(moduleAndInterfaceSharingName.ts, 0, 0)) + + export module Y { +>Y : Symbol(Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) + + export interface Z { } +>Z : Symbol(Z, Decl(moduleAndInterfaceSharingName.ts, 1, 21)) + } + export interface Y { } +>Y : Symbol(Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) +} +var z: X.Y.Z = null; +>z : Symbol(z, Decl(moduleAndInterfaceSharingName.ts, 6, 3)) +>X : Symbol(X, Decl(moduleAndInterfaceSharingName.ts, 0, 0)) +>Y : Symbol(X.Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) +>Z : Symbol(X.Y.Z, Decl(moduleAndInterfaceSharingName.ts, 1, 21)) + +var z2: X.Y; +>z2 : Symbol(z2, Decl(moduleAndInterfaceSharingName.ts, 7, 3)) +>X : Symbol(X, Decl(moduleAndInterfaceSharingName.ts, 0, 0)) +>Y : Symbol(X.Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) + diff --git a/tests/baselines/reference/moduleAndInterfaceSharingName.types b/tests/baselines/reference/moduleAndInterfaceSharingName.types index 0a456329e5cf0..e5b537f856ec4 100644 --- a/tests/baselines/reference/moduleAndInterfaceSharingName.types +++ b/tests/baselines/reference/moduleAndInterfaceSharingName.types @@ -1,25 +1,25 @@ === tests/cases/compiler/moduleAndInterfaceSharingName.ts === module X { ->X : any, Symbol(X, Decl(moduleAndInterfaceSharingName.ts, 0, 0)) +>X : any export module Y { ->Y : any, Symbol(Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) +>Y : any export interface Z { } ->Z : Z, Symbol(Z, Decl(moduleAndInterfaceSharingName.ts, 1, 21)) +>Z : Z } export interface Y { } ->Y : Y, Symbol(Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) +>Y : Y } var z: X.Y.Z = null; ->z : X.Y.Z, Symbol(z, Decl(moduleAndInterfaceSharingName.ts, 6, 3)) ->X : any, Symbol(X, Decl(moduleAndInterfaceSharingName.ts, 0, 0)) ->Y : any, Symbol(X.Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) ->Z : X.Y.Z, Symbol(X.Y.Z, Decl(moduleAndInterfaceSharingName.ts, 1, 21)) +>z : X.Y.Z +>X : any +>Y : any +>Z : X.Y.Z >null : null var z2: X.Y; ->z2 : X.Y, Symbol(z2, Decl(moduleAndInterfaceSharingName.ts, 7, 3)) ->X : any, Symbol(X, Decl(moduleAndInterfaceSharingName.ts, 0, 0)) ->Y : X.Y, Symbol(X.Y, Decl(moduleAndInterfaceSharingName.ts, 0, 10), Decl(moduleAndInterfaceSharingName.ts, 3, 5)) +>z2 : X.Y +>X : any +>Y : X.Y diff --git a/tests/baselines/reference/moduleAndInterfaceSharingName3.symbols b/tests/baselines/reference/moduleAndInterfaceSharingName3.symbols new file mode 100644 index 0000000000000..6b57995347b93 --- /dev/null +++ b/tests/baselines/reference/moduleAndInterfaceSharingName3.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/moduleAndInterfaceSharingName3.ts === +module X { +>X : Symbol(X, Decl(moduleAndInterfaceSharingName3.ts, 0, 0)) + + export module Y { +>Y : Symbol(Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) + + export interface Z { } +>Z : Symbol(Z, Decl(moduleAndInterfaceSharingName3.ts, 1, 21)) + } + export interface Y { } +>Y : Symbol(Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) +>T : Symbol(T, Decl(moduleAndInterfaceSharingName3.ts, 4, 23)) +} +var z: X.Y.Z = null; +>z : Symbol(z, Decl(moduleAndInterfaceSharingName3.ts, 6, 3)) +>X : Symbol(X, Decl(moduleAndInterfaceSharingName3.ts, 0, 0)) +>Y : Symbol(X.Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) +>Z : Symbol(X.Y.Z, Decl(moduleAndInterfaceSharingName3.ts, 1, 21)) + +var z2: X.Y; +>z2 : Symbol(z2, Decl(moduleAndInterfaceSharingName3.ts, 7, 3)) +>X : Symbol(X, Decl(moduleAndInterfaceSharingName3.ts, 0, 0)) +>Y : Symbol(X.Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) + diff --git a/tests/baselines/reference/moduleAndInterfaceSharingName3.types b/tests/baselines/reference/moduleAndInterfaceSharingName3.types index 7e2ee5a2774e7..690256bcf0899 100644 --- a/tests/baselines/reference/moduleAndInterfaceSharingName3.types +++ b/tests/baselines/reference/moduleAndInterfaceSharingName3.types @@ -1,26 +1,26 @@ === tests/cases/compiler/moduleAndInterfaceSharingName3.ts === module X { ->X : any, Symbol(X, Decl(moduleAndInterfaceSharingName3.ts, 0, 0)) +>X : any export module Y { ->Y : any, Symbol(Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) +>Y : any export interface Z { } ->Z : Z, Symbol(Z, Decl(moduleAndInterfaceSharingName3.ts, 1, 21)) +>Z : Z } export interface Y { } ->Y : Y, Symbol(Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) ->T : T, Symbol(T, Decl(moduleAndInterfaceSharingName3.ts, 4, 23)) +>Y : Y +>T : T } var z: X.Y.Z = null; ->z : X.Y.Z, Symbol(z, Decl(moduleAndInterfaceSharingName3.ts, 6, 3)) ->X : any, Symbol(X, Decl(moduleAndInterfaceSharingName3.ts, 0, 0)) ->Y : any, Symbol(X.Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) ->Z : X.Y.Z, Symbol(X.Y.Z, Decl(moduleAndInterfaceSharingName3.ts, 1, 21)) +>z : X.Y.Z +>X : any +>Y : any +>Z : X.Y.Z >null : null var z2: X.Y; ->z2 : X.Y, Symbol(z2, Decl(moduleAndInterfaceSharingName3.ts, 7, 3)) ->X : any, Symbol(X, Decl(moduleAndInterfaceSharingName3.ts, 0, 0)) ->Y : X.Y, Symbol(X.Y, Decl(moduleAndInterfaceSharingName3.ts, 0, 10), Decl(moduleAndInterfaceSharingName3.ts, 3, 5)) +>z2 : X.Y +>X : any +>Y : X.Y diff --git a/tests/baselines/reference/moduleAndInterfaceSharingName4.symbols b/tests/baselines/reference/moduleAndInterfaceSharingName4.symbols new file mode 100644 index 0000000000000..383b1801b2d98 --- /dev/null +++ b/tests/baselines/reference/moduleAndInterfaceSharingName4.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/moduleAndInterfaceSharingName4.ts === +declare module D3 { +>D3 : Symbol(D3, Decl(moduleAndInterfaceSharingName4.ts, 0, 0)) + + var x: D3.Color.Color; +>x : Symbol(x, Decl(moduleAndInterfaceSharingName4.ts, 1, 7)) +>D3 : Symbol(D3, Decl(moduleAndInterfaceSharingName4.ts, 0, 0)) +>Color : Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 1, 26)) +>Color : Symbol(Color.Color, Decl(moduleAndInterfaceSharingName4.ts, 3, 18)) + + module Color { +>Color : Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 1, 26)) + + export interface Color { +>Color : Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 3, 18)) + + darker: Color; +>darker : Symbol(darker, Decl(moduleAndInterfaceSharingName4.ts, 4, 32)) +>Color : Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 3, 18)) + } + } +} diff --git a/tests/baselines/reference/moduleAndInterfaceSharingName4.types b/tests/baselines/reference/moduleAndInterfaceSharingName4.types index cbb2a51c67189..1b96fce240637 100644 --- a/tests/baselines/reference/moduleAndInterfaceSharingName4.types +++ b/tests/baselines/reference/moduleAndInterfaceSharingName4.types @@ -1,22 +1,22 @@ === tests/cases/compiler/moduleAndInterfaceSharingName4.ts === declare module D3 { ->D3 : typeof D3, Symbol(D3, Decl(moduleAndInterfaceSharingName4.ts, 0, 0)) +>D3 : typeof D3 var x: D3.Color.Color; ->x : Color.Color, Symbol(x, Decl(moduleAndInterfaceSharingName4.ts, 1, 7)) ->D3 : any, Symbol(D3, Decl(moduleAndInterfaceSharingName4.ts, 0, 0)) ->Color : any, Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 1, 26)) ->Color : Color.Color, Symbol(Color.Color, Decl(moduleAndInterfaceSharingName4.ts, 3, 18)) +>x : Color.Color +>D3 : any +>Color : any +>Color : Color.Color module Color { ->Color : any, Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 1, 26)) +>Color : any export interface Color { ->Color : Color, Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 3, 18)) +>Color : Color darker: Color; ->darker : Color, Symbol(darker, Decl(moduleAndInterfaceSharingName4.ts, 4, 32)) ->Color : Color, Symbol(Color, Decl(moduleAndInterfaceSharingName4.ts, 3, 18)) +>darker : Color +>Color : Color } } } diff --git a/tests/baselines/reference/moduleCodeGenTest3.symbols b/tests/baselines/reference/moduleCodeGenTest3.symbols new file mode 100644 index 0000000000000..3a14deedcbd0f --- /dev/null +++ b/tests/baselines/reference/moduleCodeGenTest3.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/moduleCodeGenTest3.ts === +module Baz { export var x = "hello"; } +>Baz : Symbol(Baz, Decl(moduleCodeGenTest3.ts, 0, 0)) +>x : Symbol(x, Decl(moduleCodeGenTest3.ts, 0, 23)) + +Baz.x = "goodbye"; +>Baz.x : Symbol(Baz.x, Decl(moduleCodeGenTest3.ts, 0, 23)) +>Baz : Symbol(Baz, Decl(moduleCodeGenTest3.ts, 0, 0)) +>x : Symbol(Baz.x, Decl(moduleCodeGenTest3.ts, 0, 23)) + diff --git a/tests/baselines/reference/moduleCodeGenTest3.types b/tests/baselines/reference/moduleCodeGenTest3.types index 87c0748e4dc60..288b794326f61 100644 --- a/tests/baselines/reference/moduleCodeGenTest3.types +++ b/tests/baselines/reference/moduleCodeGenTest3.types @@ -1,13 +1,13 @@ === tests/cases/compiler/moduleCodeGenTest3.ts === module Baz { export var x = "hello"; } ->Baz : typeof Baz, Symbol(Baz, Decl(moduleCodeGenTest3.ts, 0, 0)) ->x : string, Symbol(x, Decl(moduleCodeGenTest3.ts, 0, 23)) +>Baz : typeof Baz +>x : string >"hello" : string Baz.x = "goodbye"; >Baz.x = "goodbye" : string ->Baz.x : string, Symbol(Baz.x, Decl(moduleCodeGenTest3.ts, 0, 23)) ->Baz : typeof Baz, Symbol(Baz, Decl(moduleCodeGenTest3.ts, 0, 0)) ->x : string, Symbol(Baz.x, Decl(moduleCodeGenTest3.ts, 0, 23)) +>Baz.x : string +>Baz : typeof Baz +>x : string >"goodbye" : string diff --git a/tests/baselines/reference/moduleCodeGenTest5.symbols b/tests/baselines/reference/moduleCodeGenTest5.symbols new file mode 100644 index 0000000000000..1e68d44966521 --- /dev/null +++ b/tests/baselines/reference/moduleCodeGenTest5.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/moduleCodeGenTest5.ts === +export var x = 0; +>x : Symbol(x, Decl(moduleCodeGenTest5.ts, 0, 10)) + +var y = 0; +>y : Symbol(y, Decl(moduleCodeGenTest5.ts, 1, 3)) + +export function f1() {} +>f1 : Symbol(f1, Decl(moduleCodeGenTest5.ts, 1, 10)) + +function f2() {} +>f2 : Symbol(f2, Decl(moduleCodeGenTest5.ts, 3, 23)) + +export class C1 { +>C1 : Symbol(C1, Decl(moduleCodeGenTest5.ts, 4, 16)) + + public p1 = 0; +>p1 : Symbol(p1, Decl(moduleCodeGenTest5.ts, 6, 17)) + + public p2() {} +>p2 : Symbol(p2, Decl(moduleCodeGenTest5.ts, 7, 15)) +} +class C2{ +>C2 : Symbol(C2, Decl(moduleCodeGenTest5.ts, 9, 1)) + + public p1 = 0; +>p1 : Symbol(p1, Decl(moduleCodeGenTest5.ts, 10, 9)) + + public p2() {} +>p2 : Symbol(p2, Decl(moduleCodeGenTest5.ts, 11, 15)) +} + +export enum E1 {A=0} +>E1 : Symbol(E1, Decl(moduleCodeGenTest5.ts, 13, 1)) +>A : Symbol(E1.A, Decl(moduleCodeGenTest5.ts, 15, 16)) + +var u = E1.A; +>u : Symbol(u, Decl(moduleCodeGenTest5.ts, 16, 3)) +>E1.A : Symbol(E1.A, Decl(moduleCodeGenTest5.ts, 15, 16)) +>E1 : Symbol(E1, Decl(moduleCodeGenTest5.ts, 13, 1)) +>A : Symbol(E1.A, Decl(moduleCodeGenTest5.ts, 15, 16)) + +enum E2 {B=0} +>E2 : Symbol(E2, Decl(moduleCodeGenTest5.ts, 16, 13)) +>B : Symbol(E2.B, Decl(moduleCodeGenTest5.ts, 17, 9)) + +var v = E2.B; +>v : Symbol(v, Decl(moduleCodeGenTest5.ts, 18, 3)) +>E2.B : Symbol(E2.B, Decl(moduleCodeGenTest5.ts, 17, 9)) +>E2 : Symbol(E2, Decl(moduleCodeGenTest5.ts, 16, 13)) +>B : Symbol(E2.B, Decl(moduleCodeGenTest5.ts, 17, 9)) + + diff --git a/tests/baselines/reference/moduleCodeGenTest5.types b/tests/baselines/reference/moduleCodeGenTest5.types index 687bd0a361937..c2e4ccf6d6511 100644 --- a/tests/baselines/reference/moduleCodeGenTest5.types +++ b/tests/baselines/reference/moduleCodeGenTest5.types @@ -1,59 +1,59 @@ === tests/cases/compiler/moduleCodeGenTest5.ts === export var x = 0; ->x : number, Symbol(x, Decl(moduleCodeGenTest5.ts, 0, 10)) +>x : number >0 : number var y = 0; ->y : number, Symbol(y, Decl(moduleCodeGenTest5.ts, 1, 3)) +>y : number >0 : number export function f1() {} ->f1 : () => void, Symbol(f1, Decl(moduleCodeGenTest5.ts, 1, 10)) +>f1 : () => void function f2() {} ->f2 : () => void, Symbol(f2, Decl(moduleCodeGenTest5.ts, 3, 23)) +>f2 : () => void export class C1 { ->C1 : C1, Symbol(C1, Decl(moduleCodeGenTest5.ts, 4, 16)) +>C1 : C1 public p1 = 0; ->p1 : number, Symbol(p1, Decl(moduleCodeGenTest5.ts, 6, 17)) +>p1 : number >0 : number public p2() {} ->p2 : () => void, Symbol(p2, Decl(moduleCodeGenTest5.ts, 7, 15)) +>p2 : () => void } class C2{ ->C2 : C2, Symbol(C2, Decl(moduleCodeGenTest5.ts, 9, 1)) +>C2 : C2 public p1 = 0; ->p1 : number, Symbol(p1, Decl(moduleCodeGenTest5.ts, 10, 9)) +>p1 : number >0 : number public p2() {} ->p2 : () => void, Symbol(p2, Decl(moduleCodeGenTest5.ts, 11, 15)) +>p2 : () => void } export enum E1 {A=0} ->E1 : E1, Symbol(E1, Decl(moduleCodeGenTest5.ts, 13, 1)) ->A : E1, Symbol(E1.A, Decl(moduleCodeGenTest5.ts, 15, 16)) +>E1 : E1 +>A : E1 >0 : number var u = E1.A; ->u : E1, Symbol(u, Decl(moduleCodeGenTest5.ts, 16, 3)) ->E1.A : E1, Symbol(E1.A, Decl(moduleCodeGenTest5.ts, 15, 16)) ->E1 : typeof E1, Symbol(E1, Decl(moduleCodeGenTest5.ts, 13, 1)) ->A : E1, Symbol(E1.A, Decl(moduleCodeGenTest5.ts, 15, 16)) +>u : E1 +>E1.A : E1 +>E1 : typeof E1 +>A : E1 enum E2 {B=0} ->E2 : E2, Symbol(E2, Decl(moduleCodeGenTest5.ts, 16, 13)) ->B : E2, Symbol(E2.B, Decl(moduleCodeGenTest5.ts, 17, 9)) +>E2 : E2 +>B : E2 >0 : number var v = E2.B; ->v : E2, Symbol(v, Decl(moduleCodeGenTest5.ts, 18, 3)) ->E2.B : E2, Symbol(E2.B, Decl(moduleCodeGenTest5.ts, 17, 9)) ->E2 : typeof E2, Symbol(E2, Decl(moduleCodeGenTest5.ts, 16, 13)) ->B : E2, Symbol(E2.B, Decl(moduleCodeGenTest5.ts, 17, 9)) +>v : E2 +>E2.B : E2 +>E2 : typeof E2 +>B : E2 diff --git a/tests/baselines/reference/moduleCodegenTest4.symbols b/tests/baselines/reference/moduleCodegenTest4.symbols new file mode 100644 index 0000000000000..166ab3a8eb174 --- /dev/null +++ b/tests/baselines/reference/moduleCodegenTest4.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/moduleCodegenTest4.ts === +export module Baz { export var x = "hello"; } +>Baz : Symbol(Baz, Decl(moduleCodegenTest4.ts, 0, 0)) +>x : Symbol(x, Decl(moduleCodegenTest4.ts, 0, 30)) + +Baz.x = "goodbye"; +>Baz.x : Symbol(Baz.x, Decl(moduleCodegenTest4.ts, 0, 30)) +>Baz : Symbol(Baz, Decl(moduleCodegenTest4.ts, 0, 0)) +>x : Symbol(Baz.x, Decl(moduleCodegenTest4.ts, 0, 30)) + +void 0; diff --git a/tests/baselines/reference/moduleCodegenTest4.types b/tests/baselines/reference/moduleCodegenTest4.types index 1d34f872fc5a1..919432c938f1f 100644 --- a/tests/baselines/reference/moduleCodegenTest4.types +++ b/tests/baselines/reference/moduleCodegenTest4.types @@ -1,14 +1,14 @@ === tests/cases/compiler/moduleCodegenTest4.ts === export module Baz { export var x = "hello"; } ->Baz : typeof Baz, Symbol(Baz, Decl(moduleCodegenTest4.ts, 0, 0)) ->x : string, Symbol(x, Decl(moduleCodegenTest4.ts, 0, 30)) +>Baz : typeof Baz +>x : string >"hello" : string Baz.x = "goodbye"; >Baz.x = "goodbye" : string ->Baz.x : string, Symbol(Baz.x, Decl(moduleCodegenTest4.ts, 0, 30)) ->Baz : typeof Baz, Symbol(Baz, Decl(moduleCodegenTest4.ts, 0, 0)) ->x : string, Symbol(Baz.x, Decl(moduleCodegenTest4.ts, 0, 30)) +>Baz.x : string +>Baz : typeof Baz +>x : string >"goodbye" : string void 0; diff --git a/tests/baselines/reference/moduleIdentifiers.symbols b/tests/baselines/reference/moduleIdentifiers.symbols new file mode 100644 index 0000000000000..ffb3ffa73350d --- /dev/null +++ b/tests/baselines/reference/moduleIdentifiers.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/moduleIdentifiers.ts === +module M { +>M : Symbol(M, Decl(moduleIdentifiers.ts, 0, 0)) + + interface P { x: number; y: number; } +>P : Symbol(P, Decl(moduleIdentifiers.ts, 0, 10)) +>x : Symbol(x, Decl(moduleIdentifiers.ts, 1, 17)) +>y : Symbol(y, Decl(moduleIdentifiers.ts, 1, 28)) + + export var a = 1 +>a : Symbol(a, Decl(moduleIdentifiers.ts, 2, 14)) +} + +//var p: M.P; +//var m: M = M; +var x1 = M.a; +>x1 : Symbol(x1, Decl(moduleIdentifiers.ts, 7, 3)) +>M.a : Symbol(M.a, Decl(moduleIdentifiers.ts, 2, 14)) +>M : Symbol(M, Decl(moduleIdentifiers.ts, 0, 0)) +>a : Symbol(M.a, Decl(moduleIdentifiers.ts, 2, 14)) + +//var x2 = m.a; +//var q: m.P; diff --git a/tests/baselines/reference/moduleIdentifiers.types b/tests/baselines/reference/moduleIdentifiers.types index 3ee3ce4b67632..dc5408238158f 100644 --- a/tests/baselines/reference/moduleIdentifiers.types +++ b/tests/baselines/reference/moduleIdentifiers.types @@ -1,24 +1,24 @@ === tests/cases/compiler/moduleIdentifiers.ts === module M { ->M : typeof M, Symbol(M, Decl(moduleIdentifiers.ts, 0, 0)) +>M : typeof M interface P { x: number; y: number; } ->P : P, Symbol(P, Decl(moduleIdentifiers.ts, 0, 10)) ->x : number, Symbol(x, Decl(moduleIdentifiers.ts, 1, 17)) ->y : number, Symbol(y, Decl(moduleIdentifiers.ts, 1, 28)) +>P : P +>x : number +>y : number export var a = 1 ->a : number, Symbol(a, Decl(moduleIdentifiers.ts, 2, 14)) +>a : number >1 : number } //var p: M.P; //var m: M = M; var x1 = M.a; ->x1 : number, Symbol(x1, Decl(moduleIdentifiers.ts, 7, 3)) ->M.a : number, Symbol(M.a, Decl(moduleIdentifiers.ts, 2, 14)) ->M : typeof M, Symbol(M, Decl(moduleIdentifiers.ts, 0, 0)) ->a : number, Symbol(M.a, Decl(moduleIdentifiers.ts, 2, 14)) +>x1 : number +>M.a : number +>M : typeof M +>a : number //var x2 = m.a; //var q: m.P; diff --git a/tests/baselines/reference/moduleImportedForTypeArgumentPosition.symbols b/tests/baselines/reference/moduleImportedForTypeArgumentPosition.symbols new file mode 100644 index 0000000000000..3d443f3413b10 --- /dev/null +++ b/tests/baselines/reference/moduleImportedForTypeArgumentPosition.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/moduleImportedForTypeArgumentPosition_1.ts === +/**This is on import declaration*/ +import M2 = require("moduleImportedForTypeArgumentPosition_0"); +>M2 : Symbol(M2, Decl(moduleImportedForTypeArgumentPosition_1.ts, 0, 0)) + +class C1{ } +>C1 : Symbol(C1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 1, 63)) +>T : Symbol(T, Decl(moduleImportedForTypeArgumentPosition_1.ts, 2, 9)) + +class Test1 extends C1 { +>Test1 : Symbol(Test1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 2, 14)) +>C1 : Symbol(C1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 1, 63)) +>M2 : Symbol(M2, Decl(moduleImportedForTypeArgumentPosition_1.ts, 0, 0)) +>M2C : Symbol(M2.M2C, Decl(moduleImportedForTypeArgumentPosition_0.ts, 0, 0)) +} + +=== tests/cases/compiler/moduleImportedForTypeArgumentPosition_0.ts === +export interface M2C { } +>M2C : Symbol(M2C, Decl(moduleImportedForTypeArgumentPosition_0.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleImportedForTypeArgumentPosition.types b/tests/baselines/reference/moduleImportedForTypeArgumentPosition.types index 611040ec16fad..0a85e6e0002cd 100644 --- a/tests/baselines/reference/moduleImportedForTypeArgumentPosition.types +++ b/tests/baselines/reference/moduleImportedForTypeArgumentPosition.types @@ -1,20 +1,20 @@ === tests/cases/compiler/moduleImportedForTypeArgumentPosition_1.ts === /**This is on import declaration*/ import M2 = require("moduleImportedForTypeArgumentPosition_0"); ->M2 : typeof M2, Symbol(M2, Decl(moduleImportedForTypeArgumentPosition_1.ts, 0, 0)) +>M2 : typeof M2 class C1{ } ->C1 : C1, Symbol(C1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 1, 63)) ->T : T, Symbol(T, Decl(moduleImportedForTypeArgumentPosition_1.ts, 2, 9)) +>C1 : C1 +>T : T class Test1 extends C1 { ->Test1 : Test1, Symbol(Test1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 2, 14)) ->C1 : C1, Symbol(C1, Decl(moduleImportedForTypeArgumentPosition_1.ts, 1, 63)) ->M2 : any, Symbol(M2, Decl(moduleImportedForTypeArgumentPosition_1.ts, 0, 0)) ->M2C : M2.M2C, Symbol(M2.M2C, Decl(moduleImportedForTypeArgumentPosition_0.ts, 0, 0)) +>Test1 : Test1 +>C1 : C1 +>M2 : any +>M2C : M2.M2C } === tests/cases/compiler/moduleImportedForTypeArgumentPosition_0.ts === export interface M2C { } ->M2C : M2C, Symbol(M2C, Decl(moduleImportedForTypeArgumentPosition_0.ts, 0, 0)) +>M2C : M2C diff --git a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.symbols b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.symbols new file mode 100644 index 0000000000000..fb743ea4f57d2 --- /dev/null +++ b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.symbols @@ -0,0 +1,113 @@ +=== tests/cases/compiler/moduleMemberWithoutTypeAnnotation1.ts === +module TypeScript.Parser { +>TypeScript : Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) +>Parser : Symbol(Parser, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 18)) + + class SyntaxCursor { +>SyntaxCursor : Symbol(SyntaxCursor, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 26)) + + public currentNode(): SyntaxNode { +>currentNode : Symbol(currentNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 1, 24)) +>SyntaxNode : Symbol(SyntaxNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 24, 19)) + + return null; + } + } +} + +module TypeScript { +>TypeScript : Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) + + export interface ISyntaxElement { }; +>ISyntaxElement : Symbol(ISyntaxElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 8, 19)) + + export interface ISyntaxToken { }; +>ISyntaxToken : Symbol(ISyntaxToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 9, 40)) + + export class PositionedElement { +>PositionedElement : Symbol(PositionedElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 10, 38)) + + public childIndex(child: ISyntaxElement) { +>childIndex : Symbol(childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 12, 36)) +>child : Symbol(child, Decl(moduleMemberWithoutTypeAnnotation1.ts, 13, 26)) +>ISyntaxElement : Symbol(ISyntaxElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 8, 19)) + + return Syntax.childIndex(); +>Syntax.childIndex : Symbol(Syntax.childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 26)) +>Syntax : Symbol(Syntax, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 18)) +>childIndex : Symbol(Syntax.childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 26)) + } + } + + export class PositionedToken { +>PositionedToken : Symbol(PositionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 16, 5)) + + constructor(parent: PositionedElement, token: ISyntaxToken, fullStart: number) { +>parent : Symbol(parent, Decl(moduleMemberWithoutTypeAnnotation1.ts, 19, 20)) +>PositionedElement : Symbol(PositionedElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 10, 38)) +>token : Symbol(token, Decl(moduleMemberWithoutTypeAnnotation1.ts, 19, 46)) +>ISyntaxToken : Symbol(ISyntaxToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 9, 40)) +>fullStart : Symbol(fullStart, Decl(moduleMemberWithoutTypeAnnotation1.ts, 19, 67)) + } + } +} + +module TypeScript { +>TypeScript : Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) + + export class SyntaxNode { +>SyntaxNode : Symbol(SyntaxNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 24, 19)) + + public findToken(position: number, includeSkippedTokens: boolean = false): PositionedToken { +>findToken : Symbol(findToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 25, 29)) +>position : Symbol(position, Decl(moduleMemberWithoutTypeAnnotation1.ts, 26, 25)) +>includeSkippedTokens : Symbol(includeSkippedTokens, Decl(moduleMemberWithoutTypeAnnotation1.ts, 26, 42)) +>PositionedToken : Symbol(PositionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 16, 5)) + + var positionedToken = this.findTokenInternal(null, position, 0); +>positionedToken : Symbol(positionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 27, 15)) +>this.findTokenInternal : Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 29, 9)) +>this : Symbol(SyntaxNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 24, 19)) +>findTokenInternal : Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 29, 9)) +>position : Symbol(position, Decl(moduleMemberWithoutTypeAnnotation1.ts, 26, 25)) + + return null; + } + findTokenInternal(x, y, z) { +>findTokenInternal : Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 29, 9)) +>x : Symbol(x, Decl(moduleMemberWithoutTypeAnnotation1.ts, 30, 26)) +>y : Symbol(y, Decl(moduleMemberWithoutTypeAnnotation1.ts, 30, 28)) +>z : Symbol(z, Decl(moduleMemberWithoutTypeAnnotation1.ts, 30, 31)) + + return null; + } + } +} + +module TypeScript.Syntax { +>TypeScript : Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) +>Syntax : Symbol(Syntax, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 18)) + + export function childIndex() { } +>childIndex : Symbol(childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 26)) + + export class VariableWidthTokenWithTrailingTrivia implements ISyntaxToken { +>VariableWidthTokenWithTrailingTrivia : Symbol(VariableWidthTokenWithTrailingTrivia, Decl(moduleMemberWithoutTypeAnnotation1.ts, 37, 36)) +>ISyntaxToken : Symbol(ISyntaxToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 9, 40)) + + private findTokenInternal(parent: PositionedElement, position: number, fullStart: number) { +>findTokenInternal : Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 39, 79)) +>parent : Symbol(parent, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 34)) +>PositionedElement : Symbol(PositionedElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 10, 38)) +>position : Symbol(position, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 60)) +>fullStart : Symbol(fullStart, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 78)) + + return new PositionedToken(parent, this, fullStart); +>PositionedToken : Symbol(PositionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 16, 5)) +>parent : Symbol(parent, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 34)) +>this : Symbol(VariableWidthTokenWithTrailingTrivia, Decl(moduleMemberWithoutTypeAnnotation1.ts, 37, 36)) +>fullStart : Symbol(fullStart, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 78)) + } + } +} + diff --git a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.types b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.types index 32dfc04382080..ebe70d8e6fbce 100644 --- a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.types +++ b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.types @@ -1,14 +1,14 @@ === tests/cases/compiler/moduleMemberWithoutTypeAnnotation1.ts === module TypeScript.Parser { ->TypeScript : typeof TypeScript, Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) ->Parser : typeof Parser, Symbol(Parser, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 18)) +>TypeScript : typeof TypeScript +>Parser : typeof Parser class SyntaxCursor { ->SyntaxCursor : SyntaxCursor, Symbol(SyntaxCursor, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 26)) +>SyntaxCursor : SyntaxCursor public currentNode(): SyntaxNode { ->currentNode : () => SyntaxNode, Symbol(currentNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 1, 24)) ->SyntaxNode : SyntaxNode, Symbol(SyntaxNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 24, 19)) +>currentNode : () => SyntaxNode +>SyntaxNode : SyntaxNode return null; >null : null @@ -17,74 +17,74 @@ module TypeScript.Parser { } module TypeScript { ->TypeScript : typeof TypeScript, Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) +>TypeScript : typeof TypeScript export interface ISyntaxElement { }; ->ISyntaxElement : ISyntaxElement, Symbol(ISyntaxElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 8, 19)) +>ISyntaxElement : ISyntaxElement export interface ISyntaxToken { }; ->ISyntaxToken : ISyntaxToken, Symbol(ISyntaxToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 9, 40)) +>ISyntaxToken : ISyntaxToken export class PositionedElement { ->PositionedElement : PositionedElement, Symbol(PositionedElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 10, 38)) +>PositionedElement : PositionedElement public childIndex(child: ISyntaxElement) { ->childIndex : (child: ISyntaxElement) => void, Symbol(childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 12, 36)) ->child : ISyntaxElement, Symbol(child, Decl(moduleMemberWithoutTypeAnnotation1.ts, 13, 26)) ->ISyntaxElement : ISyntaxElement, Symbol(ISyntaxElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 8, 19)) +>childIndex : (child: ISyntaxElement) => void +>child : ISyntaxElement +>ISyntaxElement : ISyntaxElement return Syntax.childIndex(); >Syntax.childIndex() : void ->Syntax.childIndex : () => void, Symbol(Syntax.childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 26)) ->Syntax : typeof Syntax, Symbol(Syntax, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 18)) ->childIndex : () => void, Symbol(Syntax.childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 26)) +>Syntax.childIndex : () => void +>Syntax : typeof Syntax +>childIndex : () => void } } export class PositionedToken { ->PositionedToken : PositionedToken, Symbol(PositionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 16, 5)) +>PositionedToken : PositionedToken constructor(parent: PositionedElement, token: ISyntaxToken, fullStart: number) { ->parent : PositionedElement, Symbol(parent, Decl(moduleMemberWithoutTypeAnnotation1.ts, 19, 20)) ->PositionedElement : PositionedElement, Symbol(PositionedElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 10, 38)) ->token : ISyntaxToken, Symbol(token, Decl(moduleMemberWithoutTypeAnnotation1.ts, 19, 46)) ->ISyntaxToken : ISyntaxToken, Symbol(ISyntaxToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 9, 40)) ->fullStart : number, Symbol(fullStart, Decl(moduleMemberWithoutTypeAnnotation1.ts, 19, 67)) +>parent : PositionedElement +>PositionedElement : PositionedElement +>token : ISyntaxToken +>ISyntaxToken : ISyntaxToken +>fullStart : number } } } module TypeScript { ->TypeScript : typeof TypeScript, Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) +>TypeScript : typeof TypeScript export class SyntaxNode { ->SyntaxNode : SyntaxNode, Symbol(SyntaxNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 24, 19)) +>SyntaxNode : SyntaxNode public findToken(position: number, includeSkippedTokens: boolean = false): PositionedToken { ->findToken : (position: number, includeSkippedTokens?: boolean) => PositionedToken, Symbol(findToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 25, 29)) ->position : number, Symbol(position, Decl(moduleMemberWithoutTypeAnnotation1.ts, 26, 25)) ->includeSkippedTokens : boolean, Symbol(includeSkippedTokens, Decl(moduleMemberWithoutTypeAnnotation1.ts, 26, 42)) +>findToken : (position: number, includeSkippedTokens?: boolean) => PositionedToken +>position : number +>includeSkippedTokens : boolean >false : boolean ->PositionedToken : PositionedToken, Symbol(PositionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 16, 5)) +>PositionedToken : PositionedToken var positionedToken = this.findTokenInternal(null, position, 0); ->positionedToken : any, Symbol(positionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 27, 15)) +>positionedToken : any >this.findTokenInternal(null, position, 0) : any ->this.findTokenInternal : (x: any, y: any, z: any) => any, Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 29, 9)) ->this : SyntaxNode, Symbol(SyntaxNode, Decl(moduleMemberWithoutTypeAnnotation1.ts, 24, 19)) ->findTokenInternal : (x: any, y: any, z: any) => any, Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 29, 9)) +>this.findTokenInternal : (x: any, y: any, z: any) => any +>this : SyntaxNode +>findTokenInternal : (x: any, y: any, z: any) => any >null : null ->position : number, Symbol(position, Decl(moduleMemberWithoutTypeAnnotation1.ts, 26, 25)) +>position : number >0 : number return null; >null : null } findTokenInternal(x, y, z) { ->findTokenInternal : (x: any, y: any, z: any) => any, Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 29, 9)) ->x : any, Symbol(x, Decl(moduleMemberWithoutTypeAnnotation1.ts, 30, 26)) ->y : any, Symbol(y, Decl(moduleMemberWithoutTypeAnnotation1.ts, 30, 28)) ->z : any, Symbol(z, Decl(moduleMemberWithoutTypeAnnotation1.ts, 30, 31)) +>findTokenInternal : (x: any, y: any, z: any) => any +>x : any +>y : any +>z : any return null; >null : null @@ -93,29 +93,29 @@ module TypeScript { } module TypeScript.Syntax { ->TypeScript : typeof TypeScript, Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation1.ts, 0, 0), Decl(moduleMemberWithoutTypeAnnotation1.ts, 6, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 22, 1), Decl(moduleMemberWithoutTypeAnnotation1.ts, 34, 1)) ->Syntax : typeof Syntax, Symbol(Syntax, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 18)) +>TypeScript : typeof TypeScript +>Syntax : typeof Syntax export function childIndex() { } ->childIndex : () => void, Symbol(childIndex, Decl(moduleMemberWithoutTypeAnnotation1.ts, 36, 26)) +>childIndex : () => void export class VariableWidthTokenWithTrailingTrivia implements ISyntaxToken { ->VariableWidthTokenWithTrailingTrivia : VariableWidthTokenWithTrailingTrivia, Symbol(VariableWidthTokenWithTrailingTrivia, Decl(moduleMemberWithoutTypeAnnotation1.ts, 37, 36)) ->ISyntaxToken : ISyntaxToken, Symbol(ISyntaxToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 9, 40)) +>VariableWidthTokenWithTrailingTrivia : VariableWidthTokenWithTrailingTrivia +>ISyntaxToken : ISyntaxToken private findTokenInternal(parent: PositionedElement, position: number, fullStart: number) { ->findTokenInternal : (parent: PositionedElement, position: number, fullStart: number) => PositionedToken, Symbol(findTokenInternal, Decl(moduleMemberWithoutTypeAnnotation1.ts, 39, 79)) ->parent : PositionedElement, Symbol(parent, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 34)) ->PositionedElement : PositionedElement, Symbol(PositionedElement, Decl(moduleMemberWithoutTypeAnnotation1.ts, 10, 38)) ->position : number, Symbol(position, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 60)) ->fullStart : number, Symbol(fullStart, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 78)) +>findTokenInternal : (parent: PositionedElement, position: number, fullStart: number) => PositionedToken +>parent : PositionedElement +>PositionedElement : PositionedElement +>position : number +>fullStart : number return new PositionedToken(parent, this, fullStart); >new PositionedToken(parent, this, fullStart) : PositionedToken ->PositionedToken : typeof PositionedToken, Symbol(PositionedToken, Decl(moduleMemberWithoutTypeAnnotation1.ts, 16, 5)) ->parent : PositionedElement, Symbol(parent, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 34)) ->this : VariableWidthTokenWithTrailingTrivia, Symbol(VariableWidthTokenWithTrailingTrivia, Decl(moduleMemberWithoutTypeAnnotation1.ts, 37, 36)) ->fullStart : number, Symbol(fullStart, Decl(moduleMemberWithoutTypeAnnotation1.ts, 40, 78)) +>PositionedToken : typeof PositionedToken +>parent : PositionedElement +>this : VariableWidthTokenWithTrailingTrivia +>fullStart : number } } } diff --git a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.symbols b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.symbols new file mode 100644 index 0000000000000..e69b8c3745873 --- /dev/null +++ b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/moduleMemberWithoutTypeAnnotation2.ts === +module TypeScript { +>TypeScript : Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation2.ts, 0, 0)) + + export module CompilerDiagnostics { +>CompilerDiagnostics : Symbol(CompilerDiagnostics, Decl(moduleMemberWithoutTypeAnnotation2.ts, 0, 19)) + + export interface IDiagnosticWriter { +>IDiagnosticWriter : Symbol(IDiagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 1, 39)) + + Alert(output: string): void; +>Alert : Symbol(Alert, Decl(moduleMemberWithoutTypeAnnotation2.ts, 3, 44)) +>output : Symbol(output, Decl(moduleMemberWithoutTypeAnnotation2.ts, 4, 18)) + } + + export var diagnosticWriter = null; +>diagnosticWriter : Symbol(diagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 18)) + + export function Alert(output: string) { +>Alert : Symbol(Alert, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 43)) +>output : Symbol(output, Decl(moduleMemberWithoutTypeAnnotation2.ts, 9, 30)) + + if (diagnosticWriter) { +>diagnosticWriter : Symbol(diagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 18)) + + diagnosticWriter.Alert(output); +>diagnosticWriter : Symbol(diagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 18)) +>output : Symbol(output, Decl(moduleMemberWithoutTypeAnnotation2.ts, 9, 30)) + } + } + } +} + diff --git a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.types b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.types index 5c47eb192b7bb..8a06502f1fc5b 100644 --- a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.types +++ b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation2.types @@ -1,35 +1,35 @@ === tests/cases/compiler/moduleMemberWithoutTypeAnnotation2.ts === module TypeScript { ->TypeScript : typeof TypeScript, Symbol(TypeScript, Decl(moduleMemberWithoutTypeAnnotation2.ts, 0, 0)) +>TypeScript : typeof TypeScript export module CompilerDiagnostics { ->CompilerDiagnostics : typeof CompilerDiagnostics, Symbol(CompilerDiagnostics, Decl(moduleMemberWithoutTypeAnnotation2.ts, 0, 19)) +>CompilerDiagnostics : typeof CompilerDiagnostics export interface IDiagnosticWriter { ->IDiagnosticWriter : IDiagnosticWriter, Symbol(IDiagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 1, 39)) +>IDiagnosticWriter : IDiagnosticWriter Alert(output: string): void; ->Alert : (output: string) => void, Symbol(Alert, Decl(moduleMemberWithoutTypeAnnotation2.ts, 3, 44)) ->output : string, Symbol(output, Decl(moduleMemberWithoutTypeAnnotation2.ts, 4, 18)) +>Alert : (output: string) => void +>output : string } export var diagnosticWriter = null; ->diagnosticWriter : any, Symbol(diagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 18)) +>diagnosticWriter : any >null : null export function Alert(output: string) { ->Alert : (output: string) => void, Symbol(Alert, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 43)) ->output : string, Symbol(output, Decl(moduleMemberWithoutTypeAnnotation2.ts, 9, 30)) +>Alert : (output: string) => void +>output : string if (diagnosticWriter) { ->diagnosticWriter : any, Symbol(diagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 18)) +>diagnosticWriter : any diagnosticWriter.Alert(output); >diagnosticWriter.Alert(output) : any >diagnosticWriter.Alert : any ->diagnosticWriter : any, Symbol(diagnosticWriter, Decl(moduleMemberWithoutTypeAnnotation2.ts, 7, 18)) +>diagnosticWriter : any >Alert : any ->output : string, Symbol(output, Decl(moduleMemberWithoutTypeAnnotation2.ts, 9, 30)) +>output : string } } } diff --git a/tests/baselines/reference/moduleMerge.symbols b/tests/baselines/reference/moduleMerge.symbols new file mode 100644 index 0000000000000..2c288be6ff663 --- /dev/null +++ b/tests/baselines/reference/moduleMerge.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/moduleMerge.ts === +// This should not compile both B classes are in the same module this should be a collission + +module A +>A : Symbol(A, Decl(moduleMerge.ts, 0, 0), Decl(moduleMerge.ts, 11, 1)) +{ + class B +>B : Symbol(B, Decl(moduleMerge.ts, 3, 1)) + { + public Hello(): string +>Hello : Symbol(Hello, Decl(moduleMerge.ts, 5, 5)) + { + return "from private B"; + } + } +} + +module A +>A : Symbol(A, Decl(moduleMerge.ts, 0, 0), Decl(moduleMerge.ts, 11, 1)) +{ + export class B +>B : Symbol(B, Decl(moduleMerge.ts, 14, 1)) + { + public Hello(): string +>Hello : Symbol(Hello, Decl(moduleMerge.ts, 16, 5)) + { + return "from export B"; + } + } +} diff --git a/tests/baselines/reference/moduleMerge.types b/tests/baselines/reference/moduleMerge.types index e723bfe6ab273..06d532673edc0 100644 --- a/tests/baselines/reference/moduleMerge.types +++ b/tests/baselines/reference/moduleMerge.types @@ -2,13 +2,13 @@ // This should not compile both B classes are in the same module this should be a collission module A ->A : typeof A, Symbol(A, Decl(moduleMerge.ts, 0, 0), Decl(moduleMerge.ts, 11, 1)) +>A : typeof A { class B ->B : B, Symbol(B, Decl(moduleMerge.ts, 3, 1)) +>B : B { public Hello(): string ->Hello : () => string, Symbol(Hello, Decl(moduleMerge.ts, 5, 5)) +>Hello : () => string { return "from private B"; >"from private B" : string @@ -17,13 +17,13 @@ module A } module A ->A : typeof A, Symbol(A, Decl(moduleMerge.ts, 0, 0), Decl(moduleMerge.ts, 11, 1)) +>A : typeof A { export class B ->B : B, Symbol(B, Decl(moduleMerge.ts, 14, 1)) +>B : B { public Hello(): string ->Hello : () => string, Symbol(Hello, Decl(moduleMerge.ts, 16, 5)) +>Hello : () => string { return "from export B"; >"from export B" : string diff --git a/tests/baselines/reference/moduleNoEmit.symbols b/tests/baselines/reference/moduleNoEmit.symbols new file mode 100644 index 0000000000000..3bc3467dc6d61 --- /dev/null +++ b/tests/baselines/reference/moduleNoEmit.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/moduleNoEmit.ts === +module Foo { +>Foo : Symbol(Foo, Decl(moduleNoEmit.ts, 0, 0)) + + 1+1; +} diff --git a/tests/baselines/reference/moduleNoEmit.types b/tests/baselines/reference/moduleNoEmit.types index 727e0c491dae8..1097bea5a4cdf 100644 --- a/tests/baselines/reference/moduleNoEmit.types +++ b/tests/baselines/reference/moduleNoEmit.types @@ -1,6 +1,6 @@ === tests/cases/compiler/moduleNoEmit.ts === module Foo { ->Foo : typeof Foo, Symbol(Foo, Decl(moduleNoEmit.ts, 0, 0)) +>Foo : typeof Foo 1+1; >1+1 : number diff --git a/tests/baselines/reference/moduleOuterQualification.symbols b/tests/baselines/reference/moduleOuterQualification.symbols new file mode 100644 index 0000000000000..32791347258fc --- /dev/null +++ b/tests/baselines/reference/moduleOuterQualification.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/moduleOuterQualification.ts === + +declare module outer { +>outer : Symbol(outer, Decl(moduleOuterQualification.ts, 0, 0)) + + interface Beta { } +>Beta : Symbol(Beta, Decl(moduleOuterQualification.ts, 1, 22)) + + module inner { +>inner : Symbol(inner, Decl(moduleOuterQualification.ts, 2, 20)) + + // .d.ts emit: should be 'extends outer.Beta' + export interface Beta extends outer.Beta { } +>Beta : Symbol(Beta, Decl(moduleOuterQualification.ts, 3, 16)) +>outer.Beta : Symbol(Beta, Decl(moduleOuterQualification.ts, 1, 22)) +>outer : Symbol(outer, Decl(moduleOuterQualification.ts, 0, 0)) +>Beta : Symbol(Beta, Decl(moduleOuterQualification.ts, 1, 22)) + } +} + diff --git a/tests/baselines/reference/moduleOuterQualification.types b/tests/baselines/reference/moduleOuterQualification.types index 91614f6b6d54e..7cfab63502357 100644 --- a/tests/baselines/reference/moduleOuterQualification.types +++ b/tests/baselines/reference/moduleOuterQualification.types @@ -1,20 +1,20 @@ === tests/cases/compiler/moduleOuterQualification.ts === declare module outer { ->outer : any, Symbol(outer, Decl(moduleOuterQualification.ts, 0, 0)) +>outer : any interface Beta { } ->Beta : Beta, Symbol(Beta, Decl(moduleOuterQualification.ts, 1, 22)) +>Beta : Beta module inner { ->inner : any, Symbol(inner, Decl(moduleOuterQualification.ts, 2, 20)) +>inner : any // .d.ts emit: should be 'extends outer.Beta' export interface Beta extends outer.Beta { } ->Beta : Beta, Symbol(Beta, Decl(moduleOuterQualification.ts, 3, 16)) ->outer.Beta : any, Symbol(Beta, Decl(moduleOuterQualification.ts, 1, 22)) ->outer : any, Symbol(outer, Decl(moduleOuterQualification.ts, 0, 0)) ->Beta : outer.Beta, Symbol(Beta, Decl(moduleOuterQualification.ts, 1, 22)) +>Beta : Beta +>outer.Beta : any +>outer : any +>Beta : outer.Beta } } diff --git a/tests/baselines/reference/moduleRedifinitionErrors.symbols b/tests/baselines/reference/moduleRedifinitionErrors.symbols new file mode 100644 index 0000000000000..ad4c07ff7f33a --- /dev/null +++ b/tests/baselines/reference/moduleRedifinitionErrors.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/moduleRedifinitionErrors.ts === +class A { +>A : Symbol(A, Decl(moduleRedifinitionErrors.ts, 0, 0), Decl(moduleRedifinitionErrors.ts, 1, 1)) +} +module A { +>A : Symbol(A, Decl(moduleRedifinitionErrors.ts, 0, 0), Decl(moduleRedifinitionErrors.ts, 1, 1)) +} + diff --git a/tests/baselines/reference/moduleRedifinitionErrors.types b/tests/baselines/reference/moduleRedifinitionErrors.types index 1ad183e22e78b..34a5f428596c8 100644 --- a/tests/baselines/reference/moduleRedifinitionErrors.types +++ b/tests/baselines/reference/moduleRedifinitionErrors.types @@ -1,8 +1,8 @@ === tests/cases/compiler/moduleRedifinitionErrors.ts === class A { ->A : A, Symbol(A, Decl(moduleRedifinitionErrors.ts, 0, 0), Decl(moduleRedifinitionErrors.ts, 1, 1)) +>A : A } module A { ->A : typeof A, Symbol(A, Decl(moduleRedifinitionErrors.ts, 0, 0), Decl(moduleRedifinitionErrors.ts, 1, 1)) +>A : typeof A } diff --git a/tests/baselines/reference/moduleReopenedTypeOtherBlock.symbols b/tests/baselines/reference/moduleReopenedTypeOtherBlock.symbols new file mode 100644 index 0000000000000..1a5017b89c789 --- /dev/null +++ b/tests/baselines/reference/moduleReopenedTypeOtherBlock.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/moduleReopenedTypeOtherBlock.ts === +module M { +>M : Symbol(M, Decl(moduleReopenedTypeOtherBlock.ts, 0, 0), Decl(moduleReopenedTypeOtherBlock.ts, 3, 1)) + + export class C1 { } +>C1 : Symbol(C1, Decl(moduleReopenedTypeOtherBlock.ts, 0, 10)) + + export interface I { n: number; } +>I : Symbol(I, Decl(moduleReopenedTypeOtherBlock.ts, 1, 23)) +>n : Symbol(n, Decl(moduleReopenedTypeOtherBlock.ts, 2, 24)) +} +module M { +>M : Symbol(M, Decl(moduleReopenedTypeOtherBlock.ts, 0, 0), Decl(moduleReopenedTypeOtherBlock.ts, 3, 1)) + + export class C2 { f(): I { return null; } } +>C2 : Symbol(C2, Decl(moduleReopenedTypeOtherBlock.ts, 4, 10)) +>f : Symbol(f, Decl(moduleReopenedTypeOtherBlock.ts, 5, 21)) +>I : Symbol(I, Decl(moduleReopenedTypeOtherBlock.ts, 1, 23)) +} + diff --git a/tests/baselines/reference/moduleReopenedTypeOtherBlock.types b/tests/baselines/reference/moduleReopenedTypeOtherBlock.types index ecbfc381cdfe9..c48c43ffd9ab7 100644 --- a/tests/baselines/reference/moduleReopenedTypeOtherBlock.types +++ b/tests/baselines/reference/moduleReopenedTypeOtherBlock.types @@ -1,21 +1,21 @@ === tests/cases/compiler/moduleReopenedTypeOtherBlock.ts === module M { ->M : typeof M, Symbol(M, Decl(moduleReopenedTypeOtherBlock.ts, 0, 0), Decl(moduleReopenedTypeOtherBlock.ts, 3, 1)) +>M : typeof M export class C1 { } ->C1 : C1, Symbol(C1, Decl(moduleReopenedTypeOtherBlock.ts, 0, 10)) +>C1 : C1 export interface I { n: number; } ->I : I, Symbol(I, Decl(moduleReopenedTypeOtherBlock.ts, 1, 23)) ->n : number, Symbol(n, Decl(moduleReopenedTypeOtherBlock.ts, 2, 24)) +>I : I +>n : number } module M { ->M : typeof M, Symbol(M, Decl(moduleReopenedTypeOtherBlock.ts, 0, 0), Decl(moduleReopenedTypeOtherBlock.ts, 3, 1)) +>M : typeof M export class C2 { f(): I { return null; } } ->C2 : C2, Symbol(C2, Decl(moduleReopenedTypeOtherBlock.ts, 4, 10)) ->f : () => I, Symbol(f, Decl(moduleReopenedTypeOtherBlock.ts, 5, 21)) ->I : I, Symbol(I, Decl(moduleReopenedTypeOtherBlock.ts, 1, 23)) +>C2 : C2 +>f : () => I +>I : I >null : null } diff --git a/tests/baselines/reference/moduleReopenedTypeSameBlock.symbols b/tests/baselines/reference/moduleReopenedTypeSameBlock.symbols new file mode 100644 index 0000000000000..a593b63cd01c7 --- /dev/null +++ b/tests/baselines/reference/moduleReopenedTypeSameBlock.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/moduleReopenedTypeSameBlock.ts === +module M { export class C1 { } } +>M : Symbol(M, Decl(moduleReopenedTypeSameBlock.ts, 0, 0), Decl(moduleReopenedTypeSameBlock.ts, 0, 32)) +>C1 : Symbol(C1, Decl(moduleReopenedTypeSameBlock.ts, 0, 10)) + +module M { +>M : Symbol(M, Decl(moduleReopenedTypeSameBlock.ts, 0, 0), Decl(moduleReopenedTypeSameBlock.ts, 0, 32)) + + export interface I { n: number; } +>I : Symbol(I, Decl(moduleReopenedTypeSameBlock.ts, 1, 10)) +>n : Symbol(n, Decl(moduleReopenedTypeSameBlock.ts, 2, 24)) + + export class C2 { f(): I { return null; } } +>C2 : Symbol(C2, Decl(moduleReopenedTypeSameBlock.ts, 2, 37)) +>f : Symbol(f, Decl(moduleReopenedTypeSameBlock.ts, 3, 21)) +>I : Symbol(I, Decl(moduleReopenedTypeSameBlock.ts, 1, 10)) +} + diff --git a/tests/baselines/reference/moduleReopenedTypeSameBlock.types b/tests/baselines/reference/moduleReopenedTypeSameBlock.types index 8d35878ee2bf7..7dec66f6c7b13 100644 --- a/tests/baselines/reference/moduleReopenedTypeSameBlock.types +++ b/tests/baselines/reference/moduleReopenedTypeSameBlock.types @@ -1,19 +1,19 @@ === tests/cases/compiler/moduleReopenedTypeSameBlock.ts === module M { export class C1 { } } ->M : typeof M, Symbol(M, Decl(moduleReopenedTypeSameBlock.ts, 0, 0), Decl(moduleReopenedTypeSameBlock.ts, 0, 32)) ->C1 : C1, Symbol(C1, Decl(moduleReopenedTypeSameBlock.ts, 0, 10)) +>M : typeof M +>C1 : C1 module M { ->M : typeof M, Symbol(M, Decl(moduleReopenedTypeSameBlock.ts, 0, 0), Decl(moduleReopenedTypeSameBlock.ts, 0, 32)) +>M : typeof M export interface I { n: number; } ->I : I, Symbol(I, Decl(moduleReopenedTypeSameBlock.ts, 1, 10)) ->n : number, Symbol(n, Decl(moduleReopenedTypeSameBlock.ts, 2, 24)) +>I : I +>n : number export class C2 { f(): I { return null; } } ->C2 : C2, Symbol(C2, Decl(moduleReopenedTypeSameBlock.ts, 2, 37)) ->f : () => I, Symbol(f, Decl(moduleReopenedTypeSameBlock.ts, 3, 21)) ->I : I, Symbol(I, Decl(moduleReopenedTypeSameBlock.ts, 1, 10)) +>C2 : C2 +>f : () => I +>I : I >null : null } diff --git a/tests/baselines/reference/moduleScopingBug.symbols b/tests/baselines/reference/moduleScopingBug.symbols new file mode 100644 index 0000000000000..277f1a48f7bba --- /dev/null +++ b/tests/baselines/reference/moduleScopingBug.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/moduleScopingBug.ts === +module M +>M : Symbol(M, Decl(moduleScopingBug.ts, 0, 0)) + +{ + + var outer: number; +>outer : Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) + + function f() { +>f : Symbol(f, Decl(moduleScopingBug.ts, 4, 22)) + + var inner = outer; // Ok +>inner : Symbol(inner, Decl(moduleScopingBug.ts, 8, 11)) +>outer : Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) + + } + + class C { +>C : Symbol(C, Decl(moduleScopingBug.ts, 10, 5)) + + constructor() { + var inner = outer; // Ok +>inner : Symbol(inner, Decl(moduleScopingBug.ts, 15, 15)) +>outer : Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) + } + + } + + module X { +>X : Symbol(X, Decl(moduleScopingBug.ts, 18, 5)) + + var inner = outer; // Error: outer not visible +>inner : Symbol(inner, Decl(moduleScopingBug.ts, 22, 11)) +>outer : Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) + + } + +} + + diff --git a/tests/baselines/reference/moduleScopingBug.types b/tests/baselines/reference/moduleScopingBug.types index e814719304677..b92b8de0c819b 100644 --- a/tests/baselines/reference/moduleScopingBug.types +++ b/tests/baselines/reference/moduleScopingBug.types @@ -1,38 +1,38 @@ === tests/cases/compiler/moduleScopingBug.ts === module M ->M : typeof M, Symbol(M, Decl(moduleScopingBug.ts, 0, 0)) +>M : typeof M { var outer: number; ->outer : number, Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) +>outer : number function f() { ->f : () => void, Symbol(f, Decl(moduleScopingBug.ts, 4, 22)) +>f : () => void var inner = outer; // Ok ->inner : number, Symbol(inner, Decl(moduleScopingBug.ts, 8, 11)) ->outer : number, Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) +>inner : number +>outer : number } class C { ->C : C, Symbol(C, Decl(moduleScopingBug.ts, 10, 5)) +>C : C constructor() { var inner = outer; // Ok ->inner : number, Symbol(inner, Decl(moduleScopingBug.ts, 15, 15)) ->outer : number, Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) +>inner : number +>outer : number } } module X { ->X : typeof X, Symbol(X, Decl(moduleScopingBug.ts, 18, 5)) +>X : typeof X var inner = outer; // Error: outer not visible ->inner : number, Symbol(inner, Decl(moduleScopingBug.ts, 22, 11)) ->outer : number, Symbol(outer, Decl(moduleScopingBug.ts, 4, 7)) +>inner : number +>outer : number } diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.symbols b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.symbols new file mode 100644 index 0000000000000..6dcd97aa0dc25 --- /dev/null +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt.ts === +module Z.M { +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 12)) + + return ""; + } +} +module A.M { +>A : Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 4, 1)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 5, 9)) + + import M = Z.M; +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 5, 12)) +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 6, 19)) + } + M.bar(); // Should call Z.M.bar +>M.bar : Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 12)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 5, 12)) +>bar : Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 12)) +} diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.types b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.types index 2972baf3978a9..b473adf2aa477 100644 --- a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.types +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt.types @@ -1,30 +1,30 @@ === tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt.ts === module Z.M { ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 9)) +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => string, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 12)) +>bar : () => string return ""; >"" : string } } module A.M { ->A : typeof A, Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 4, 1)) ->M : typeof A.M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 5, 9)) +>A : typeof A +>M : typeof A.M import M = Z.M; ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 5, 12)) ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 9)) +>M : typeof M +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => void, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 6, 19)) +>bar : () => void } M.bar(); // Should call Z.M.bar >M.bar() : string ->M.bar : () => string, Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 12)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 5, 12)) ->bar : () => string, Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt.ts, 0, 12)) +>M.bar : () => string +>M : typeof M +>bar : () => string } diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.symbols b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.symbols new file mode 100644 index 0000000000000..c5185cbda0a06 --- /dev/null +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt2.ts === +module Z.M { +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 12)) + + return ""; + } +} +module A.M { +>A : Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 4, 1)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 5, 9)) + + export import M = Z.M; +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 5, 12)) +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 6, 26)) + } + M.bar(); // Should call Z.M.bar +>M.bar : Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 12)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 5, 12)) +>bar : Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 12)) +} diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.types b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.types index 826cee6bb389b..56160637e0f4d 100644 --- a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.types +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt2.types @@ -1,30 +1,30 @@ === tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt2.ts === module Z.M { ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 9)) +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => string, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 12)) +>bar : () => string return ""; >"" : string } } module A.M { ->A : typeof A, Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 4, 1)) ->M : typeof A.M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 5, 9)) +>A : typeof A +>M : typeof A.M export import M = Z.M; ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 5, 12)) ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 9)) +>M : typeof M +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => void, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 6, 26)) +>bar : () => void } M.bar(); // Should call Z.M.bar >M.bar() : string ->M.bar : () => string, Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 12)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 5, 12)) ->bar : () => string, Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt2.ts, 0, 12)) +>M.bar : () => string +>M : typeof M +>bar : () => string } diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.symbols b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.symbols new file mode 100644 index 0000000000000..8ef55c23d9ff6 --- /dev/null +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt4.ts === +module Z.M { +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 12)) + + return ""; + } +} +module A.M { +>A : Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 4, 1)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 9)) + + interface M { } +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 12), Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 6, 19)) + + import M = Z.M; +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 12), Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 6, 19)) +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 7, 19)) + } + M.bar(); // Should call Z.M.bar +>M.bar : Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 12)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 12), Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 6, 19)) +>bar : Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 12)) +} diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.types b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.types index 4972b4615304e..b8574a2c71f69 100644 --- a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.types +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt4.types @@ -1,33 +1,33 @@ === tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt4.ts === module Z.M { ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 9)) +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => string, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 12)) +>bar : () => string return ""; >"" : string } } module A.M { ->A : typeof A, Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 4, 1)) ->M : typeof A.M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 9)) +>A : typeof A +>M : typeof A.M interface M { } ->M : M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 12), Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 6, 19)) +>M : M import M = Z.M; ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 12), Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 6, 19)) ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 9)) +>M : typeof M +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => void, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 7, 19)) +>bar : () => void } M.bar(); // Should call Z.M.bar >M.bar() : string ->M.bar : () => string, Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 12)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 5, 12), Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 6, 19)) ->bar : () => string, Symbol(M.bar, Decl(moduleSharesNameWithImportDeclarationInsideIt4.ts, 0, 12)) +>M.bar : () => string +>M : typeof M +>bar : () => string } diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.symbols b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.symbols new file mode 100644 index 0000000000000..47761f66028ea --- /dev/null +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt6.ts === +module Z.M { +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 12)) + + return ""; + } +} +module A.M { +>A : Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 4, 1)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 5, 9)) + + import M = Z.M; +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 5, 12)) +>Z : Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 0)) +>M : Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 9)) + + export function bar() { +>bar : Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 6, 19)) + } +} diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.types b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.types index 2cfe65a5c07a3..65f820e060647 100644 --- a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.types +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.types @@ -1,25 +1,25 @@ === tests/cases/compiler/moduleSharesNameWithImportDeclarationInsideIt6.ts === module Z.M { ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 9)) +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => string, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 12)) +>bar : () => string return ""; >"" : string } } module A.M { ->A : typeof A, Symbol(A, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 4, 1)) ->M : typeof A.M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 5, 9)) +>A : typeof A +>M : typeof A.M import M = Z.M; ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 5, 12)) ->Z : typeof Z, Symbol(Z, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 0)) ->M : typeof M, Symbol(M, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 0, 9)) +>M : typeof M +>Z : typeof Z +>M : typeof M export function bar() { ->bar : () => void, Symbol(bar, Decl(moduleSharesNameWithImportDeclarationInsideIt6.ts, 6, 19)) +>bar : () => void } } diff --git a/tests/baselines/reference/moduleSymbolMerging.symbols b/tests/baselines/reference/moduleSymbolMerging.symbols new file mode 100644 index 0000000000000..4e8ca8a1526e6 --- /dev/null +++ b/tests/baselines/reference/moduleSymbolMerging.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/B.ts === +/// +module A { ; } +>A : Symbol(A, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) + +module B { +>B : Symbol(B, Decl(B.ts, 1, 14)) + + export function f(): A.I { return null; } +>f : Symbol(f, Decl(B.ts, 2, 10)) +>A : Symbol(A, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) +>I : Symbol(A.I, Decl(A.ts, 1, 10)) +} + + +=== tests/cases/compiler/A.ts === + +module A { export interface I {} } +>A : Symbol(A, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) +>I : Symbol(I, Decl(A.ts, 1, 10)) + diff --git a/tests/baselines/reference/moduleSymbolMerging.types b/tests/baselines/reference/moduleSymbolMerging.types index 1440f0abf463c..0f5dfae5c3d3c 100644 --- a/tests/baselines/reference/moduleSymbolMerging.types +++ b/tests/baselines/reference/moduleSymbolMerging.types @@ -1,15 +1,15 @@ === tests/cases/compiler/B.ts === /// module A { ; } ->A : typeof A, Symbol(A, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) +>A : typeof A module B { ->B : typeof B, Symbol(B, Decl(B.ts, 1, 14)) +>B : typeof B export function f(): A.I { return null; } ->f : () => A.I, Symbol(f, Decl(B.ts, 2, 10)) ->A : any, Symbol(A, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) ->I : A.I, Symbol(A.I, Decl(A.ts, 1, 10)) +>f : () => A.I +>A : any +>I : A.I >null : null } @@ -17,6 +17,6 @@ module B { === tests/cases/compiler/A.ts === module A { export interface I {} } ->A : typeof A, Symbol(A, Decl(A.ts, 0, 0), Decl(B.ts, 0, 0)) ->I : I, Symbol(I, Decl(A.ts, 1, 10)) +>A : typeof A +>I : I diff --git a/tests/baselines/reference/moduleUnassignedVariable.symbols b/tests/baselines/reference/moduleUnassignedVariable.symbols new file mode 100644 index 0000000000000..fe17767dcf275 --- /dev/null +++ b/tests/baselines/reference/moduleUnassignedVariable.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/moduleUnassignedVariable.ts === +module Bar { +>Bar : Symbol(Bar, Decl(moduleUnassignedVariable.ts, 0, 0)) + + export var a = 1; +>a : Symbol(a, Decl(moduleUnassignedVariable.ts, 1, 14)) + + function fooA() { return a; } // Correct: return Bar.a +>fooA : Symbol(fooA, Decl(moduleUnassignedVariable.ts, 1, 21)) +>a : Symbol(a, Decl(moduleUnassignedVariable.ts, 1, 14)) + + export var b; +>b : Symbol(b, Decl(moduleUnassignedVariable.ts, 4, 14)) + + function fooB() { return b; } // Incorrect: return b +>fooB : Symbol(fooB, Decl(moduleUnassignedVariable.ts, 4, 17)) +>b : Symbol(b, Decl(moduleUnassignedVariable.ts, 4, 14)) +} + diff --git a/tests/baselines/reference/moduleUnassignedVariable.types b/tests/baselines/reference/moduleUnassignedVariable.types index bf9301cc054d9..3e5ab538ad543 100644 --- a/tests/baselines/reference/moduleUnassignedVariable.types +++ b/tests/baselines/reference/moduleUnassignedVariable.types @@ -1,20 +1,20 @@ === tests/cases/compiler/moduleUnassignedVariable.ts === module Bar { ->Bar : typeof Bar, Symbol(Bar, Decl(moduleUnassignedVariable.ts, 0, 0)) +>Bar : typeof Bar export var a = 1; ->a : number, Symbol(a, Decl(moduleUnassignedVariable.ts, 1, 14)) +>a : number >1 : number function fooA() { return a; } // Correct: return Bar.a ->fooA : () => number, Symbol(fooA, Decl(moduleUnassignedVariable.ts, 1, 21)) ->a : number, Symbol(a, Decl(moduleUnassignedVariable.ts, 1, 14)) +>fooA : () => number +>a : number export var b; ->b : any, Symbol(b, Decl(moduleUnassignedVariable.ts, 4, 14)) +>b : any function fooB() { return b; } // Incorrect: return b ->fooB : () => any, Symbol(fooB, Decl(moduleUnassignedVariable.ts, 4, 17)) ->b : any, Symbol(b, Decl(moduleUnassignedVariable.ts, 4, 14)) +>fooB : () => any +>b : any } diff --git a/tests/baselines/reference/moduleVariableArrayIndexer.symbols b/tests/baselines/reference/moduleVariableArrayIndexer.symbols new file mode 100644 index 0000000000000..9a60da7bd6be1 --- /dev/null +++ b/tests/baselines/reference/moduleVariableArrayIndexer.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/moduleVariableArrayIndexer.ts === +module Bar { +>Bar : Symbol(Bar, Decl(moduleVariableArrayIndexer.ts, 0, 0)) + + export var a = 1; +>a : Symbol(a, Decl(moduleVariableArrayIndexer.ts, 1, 14)) + + var t = undefined[a][a]; // CG: var t = undefined[Bar.a][a]; +>t : Symbol(t, Decl(moduleVariableArrayIndexer.ts, 2, 7)) +>undefined : Symbol(undefined) +>a : Symbol(a, Decl(moduleVariableArrayIndexer.ts, 1, 14)) +>a : Symbol(a, Decl(moduleVariableArrayIndexer.ts, 1, 14)) +} + diff --git a/tests/baselines/reference/moduleVariableArrayIndexer.types b/tests/baselines/reference/moduleVariableArrayIndexer.types index 66534b13c458a..4c8e73b947811 100644 --- a/tests/baselines/reference/moduleVariableArrayIndexer.types +++ b/tests/baselines/reference/moduleVariableArrayIndexer.types @@ -1,17 +1,17 @@ === tests/cases/compiler/moduleVariableArrayIndexer.ts === module Bar { ->Bar : typeof Bar, Symbol(Bar, Decl(moduleVariableArrayIndexer.ts, 0, 0)) +>Bar : typeof Bar export var a = 1; ->a : number, Symbol(a, Decl(moduleVariableArrayIndexer.ts, 1, 14)) +>a : number >1 : number var t = undefined[a][a]; // CG: var t = undefined[Bar.a][a]; ->t : any, Symbol(t, Decl(moduleVariableArrayIndexer.ts, 2, 7)) +>t : any >undefined[a][a] : any >undefined[a] : any ->undefined : undefined, Symbol(undefined) ->a : number, Symbol(a, Decl(moduleVariableArrayIndexer.ts, 1, 14)) ->a : number, Symbol(a, Decl(moduleVariableArrayIndexer.ts, 1, 14)) +>undefined : undefined +>a : number +>a : number } diff --git a/tests/baselines/reference/moduleVariables.symbols b/tests/baselines/reference/moduleVariables.symbols new file mode 100644 index 0000000000000..7b4ac8e0c5cd1 --- /dev/null +++ b/tests/baselines/reference/moduleVariables.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/moduleVariables.ts === +declare var console: any; +>console : Symbol(console, Decl(moduleVariables.ts, 0, 11)) + +var x = 1; +>x : Symbol(x, Decl(moduleVariables.ts, 2, 3)) + +module M { +>M : Symbol(M, Decl(moduleVariables.ts, 2, 10), Decl(moduleVariables.ts, 6, 1), Decl(moduleVariables.ts, 10, 1)) + + export var x = 2; +>x : Symbol(x, Decl(moduleVariables.ts, 4, 14)) + + console.log(x); // 2 +>console : Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>x : Symbol(x, Decl(moduleVariables.ts, 4, 14)) +} + +module M { +>M : Symbol(M, Decl(moduleVariables.ts, 2, 10), Decl(moduleVariables.ts, 6, 1), Decl(moduleVariables.ts, 10, 1)) + + console.log(x); // 2 +>console : Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>x : Symbol(x, Decl(moduleVariables.ts, 4, 14)) +} + +module M { +>M : Symbol(M, Decl(moduleVariables.ts, 2, 10), Decl(moduleVariables.ts, 6, 1), Decl(moduleVariables.ts, 10, 1)) + + var x = 3; +>x : Symbol(x, Decl(moduleVariables.ts, 13, 7)) + + console.log(x); // 3 +>console : Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>x : Symbol(x, Decl(moduleVariables.ts, 13, 7)) +} + diff --git a/tests/baselines/reference/moduleVariables.types b/tests/baselines/reference/moduleVariables.types index 9169f0678d99c..5bdf8490aed09 100644 --- a/tests/baselines/reference/moduleVariables.types +++ b/tests/baselines/reference/moduleVariables.types @@ -1,49 +1,49 @@ === tests/cases/compiler/moduleVariables.ts === declare var console: any; ->console : any, Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>console : any var x = 1; ->x : number, Symbol(x, Decl(moduleVariables.ts, 2, 3)) +>x : number >1 : number module M { ->M : typeof M, Symbol(M, Decl(moduleVariables.ts, 2, 10), Decl(moduleVariables.ts, 6, 1), Decl(moduleVariables.ts, 10, 1)) +>M : typeof M export var x = 2; ->x : number, Symbol(x, Decl(moduleVariables.ts, 4, 14)) +>x : number >2 : number console.log(x); // 2 >console.log(x) : any >console.log : any ->console : any, Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>console : any >log : any ->x : number, Symbol(x, Decl(moduleVariables.ts, 4, 14)) +>x : number } module M { ->M : typeof M, Symbol(M, Decl(moduleVariables.ts, 2, 10), Decl(moduleVariables.ts, 6, 1), Decl(moduleVariables.ts, 10, 1)) +>M : typeof M console.log(x); // 2 >console.log(x) : any >console.log : any ->console : any, Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>console : any >log : any ->x : number, Symbol(x, Decl(moduleVariables.ts, 4, 14)) +>x : number } module M { ->M : typeof M, Symbol(M, Decl(moduleVariables.ts, 2, 10), Decl(moduleVariables.ts, 6, 1), Decl(moduleVariables.ts, 10, 1)) +>M : typeof M var x = 3; ->x : number, Symbol(x, Decl(moduleVariables.ts, 13, 7)) +>x : number >3 : number console.log(x); // 3 >console.log(x) : any >console.log : any ->console : any, Symbol(console, Decl(moduleVariables.ts, 0, 11)) +>console : any >log : any ->x : number, Symbol(x, Decl(moduleVariables.ts, 13, 7)) +>x : number } diff --git a/tests/baselines/reference/moduleVisibilityTest1.symbols b/tests/baselines/reference/moduleVisibilityTest1.symbols new file mode 100644 index 0000000000000..9879d8a0151ca --- /dev/null +++ b/tests/baselines/reference/moduleVisibilityTest1.symbols @@ -0,0 +1,166 @@ +=== tests/cases/compiler/moduleVisibilityTest1.ts === + + +module OuterMod { +>OuterMod : Symbol(OuterMod, Decl(moduleVisibilityTest1.ts, 0, 0)) + + export function someExportedOuterFunc() { return -1; } +>someExportedOuterFunc : Symbol(someExportedOuterFunc, Decl(moduleVisibilityTest1.ts, 2, 17)) + + export module OuterInnerMod { +>OuterInnerMod : Symbol(OuterInnerMod, Decl(moduleVisibilityTest1.ts, 3, 55)) + + export function someExportedOuterInnerFunc() { return "foo"; } +>someExportedOuterInnerFunc : Symbol(someExportedOuterInnerFunc, Decl(moduleVisibilityTest1.ts, 5, 30)) + } +} + +import OuterInnerAlias = OuterMod.OuterInnerMod; +>OuterInnerAlias : Symbol(OuterInnerAlias, Decl(moduleVisibilityTest1.ts, 8, 1)) +>OuterMod : Symbol(OuterMod, Decl(moduleVisibilityTest1.ts, 0, 0)) +>OuterInnerMod : Symbol(OuterInnerAlias, Decl(moduleVisibilityTest1.ts, 3, 55)) + +module M { +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) + + export module InnerMod { +>InnerMod : Symbol(InnerMod, Decl(moduleVisibilityTest1.ts, 12, 10)) + + export function someExportedInnerFunc() { return -2; } +>someExportedInnerFunc : Symbol(someExportedInnerFunc, Decl(moduleVisibilityTest1.ts, 14, 25)) + } + + export enum E { +>E : Symbol(E, Decl(moduleVisibilityTest1.ts, 16, 2)) + + A, +>A : Symbol(E.A, Decl(moduleVisibilityTest1.ts, 18, 16)) + + B, +>B : Symbol(E.B, Decl(moduleVisibilityTest1.ts, 19, 4)) + + C, +>C : Symbol(E.C, Decl(moduleVisibilityTest1.ts, 20, 4)) + } + + export var x = 5; +>x : Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) + + export declare var exported_var; +>exported_var : Symbol(exported_var, Decl(moduleVisibilityTest1.ts, 25, 19)) + + var y = x + x; +>y : Symbol(y, Decl(moduleVisibilityTest1.ts, 27, 4)) +>x : Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) +>x : Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) + + + export interface I { +>I : Symbol(I, Decl(moduleVisibilityTest1.ts, 27, 15)) + + someMethod():number; +>someMethod : Symbol(someMethod, Decl(moduleVisibilityTest1.ts, 30, 21)) + } + + class B {public b = 0;} +>B : Symbol(B, Decl(moduleVisibilityTest1.ts, 32, 2)) +>b : Symbol(b, Decl(moduleVisibilityTest1.ts, 34, 11)) + + export class C implements I { +>C : Symbol(C, Decl(moduleVisibilityTest1.ts, 34, 25)) +>I : Symbol(I, Decl(moduleVisibilityTest1.ts, 27, 15)) + + public someMethodThatCallsAnOuterMethod() {return OuterInnerAlias.someExportedOuterInnerFunc();} +>someMethodThatCallsAnOuterMethod : Symbol(someMethodThatCallsAnOuterMethod, Decl(moduleVisibilityTest1.ts, 36, 31)) +>OuterInnerAlias.someExportedOuterInnerFunc : Symbol(OuterInnerAlias.someExportedOuterInnerFunc, Decl(moduleVisibilityTest1.ts, 5, 30)) +>OuterInnerAlias : Symbol(OuterInnerAlias, Decl(moduleVisibilityTest1.ts, 8, 1)) +>someExportedOuterInnerFunc : Symbol(OuterInnerAlias.someExportedOuterInnerFunc, Decl(moduleVisibilityTest1.ts, 5, 30)) + + public someMethodThatCallsAnInnerMethod() {return InnerMod.someExportedInnerFunc();} +>someMethodThatCallsAnInnerMethod : Symbol(someMethodThatCallsAnInnerMethod, Decl(moduleVisibilityTest1.ts, 37, 98)) +>InnerMod.someExportedInnerFunc : Symbol(InnerMod.someExportedInnerFunc, Decl(moduleVisibilityTest1.ts, 14, 25)) +>InnerMod : Symbol(InnerMod, Decl(moduleVisibilityTest1.ts, 12, 10)) +>someExportedInnerFunc : Symbol(InnerMod.someExportedInnerFunc, Decl(moduleVisibilityTest1.ts, 14, 25)) + + public someMethodThatCallsAnOuterInnerMethod() {return OuterMod.someExportedOuterFunc();} +>someMethodThatCallsAnOuterInnerMethod : Symbol(someMethodThatCallsAnOuterInnerMethod, Decl(moduleVisibilityTest1.ts, 38, 86)) +>OuterMod.someExportedOuterFunc : Symbol(OuterMod.someExportedOuterFunc, Decl(moduleVisibilityTest1.ts, 2, 17)) +>OuterMod : Symbol(OuterMod, Decl(moduleVisibilityTest1.ts, 0, 0)) +>someExportedOuterFunc : Symbol(OuterMod.someExportedOuterFunc, Decl(moduleVisibilityTest1.ts, 2, 17)) + + public someMethod() { return 0; } +>someMethod : Symbol(someMethod, Decl(moduleVisibilityTest1.ts, 39, 91)) + + public someProp = 1; +>someProp : Symbol(someProp, Decl(moduleVisibilityTest1.ts, 40, 35)) + + constructor() { + function someInnerFunc() { return 2; } +>someInnerFunc : Symbol(someInnerFunc, Decl(moduleVisibilityTest1.ts, 43, 17)) + + var someInnerVar = 3; +>someInnerVar : Symbol(someInnerVar, Decl(moduleVisibilityTest1.ts, 45, 15)) + } + } + + var someModuleVar = 4; +>someModuleVar : Symbol(someModuleVar, Decl(moduleVisibilityTest1.ts, 49, 4)) + + function someModuleFunction() { return 5;} +>someModuleFunction : Symbol(someModuleFunction, Decl(moduleVisibilityTest1.ts, 49, 23)) +} + +module M { +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) + + export var c = x; +>c : Symbol(c, Decl(moduleVisibilityTest1.ts, 55, 11)) +>x : Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) + + export var meb = M.E.B; +>meb : Symbol(meb, Decl(moduleVisibilityTest1.ts, 56, 11)) +>M.E.B : Symbol(E.B, Decl(moduleVisibilityTest1.ts, 19, 4)) +>M.E : Symbol(E, Decl(moduleVisibilityTest1.ts, 16, 2)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>E : Symbol(E, Decl(moduleVisibilityTest1.ts, 16, 2)) +>B : Symbol(E.B, Decl(moduleVisibilityTest1.ts, 19, 4)) +} + +var cprime : M.I = null; +>cprime : Symbol(cprime, Decl(moduleVisibilityTest1.ts, 59, 3)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>I : Symbol(M.I, Decl(moduleVisibilityTest1.ts, 27, 15)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>I : Symbol(M.I, Decl(moduleVisibilityTest1.ts, 27, 15)) + +var c = new M.C(); +>c : Symbol(c, Decl(moduleVisibilityTest1.ts, 61, 3)) +>M.C : Symbol(M.C, Decl(moduleVisibilityTest1.ts, 34, 25)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>C : Symbol(M.C, Decl(moduleVisibilityTest1.ts, 34, 25)) + +var z = M.x; +>z : Symbol(z, Decl(moduleVisibilityTest1.ts, 62, 3)) +>M.x : Symbol(M.x, Decl(moduleVisibilityTest1.ts, 24, 11)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>x : Symbol(M.x, Decl(moduleVisibilityTest1.ts, 24, 11)) + +var alpha = M.E.A; +>alpha : Symbol(alpha, Decl(moduleVisibilityTest1.ts, 63, 3)) +>M.E.A : Symbol(M.E.A, Decl(moduleVisibilityTest1.ts, 18, 16)) +>M.E : Symbol(M.E, Decl(moduleVisibilityTest1.ts, 16, 2)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>E : Symbol(M.E, Decl(moduleVisibilityTest1.ts, 16, 2)) +>A : Symbol(M.E.A, Decl(moduleVisibilityTest1.ts, 18, 16)) + +var omega = M.exported_var; +>omega : Symbol(omega, Decl(moduleVisibilityTest1.ts, 64, 3)) +>M.exported_var : Symbol(M.exported_var, Decl(moduleVisibilityTest1.ts, 25, 19)) +>M : Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>exported_var : Symbol(M.exported_var, Decl(moduleVisibilityTest1.ts, 25, 19)) + +c.someMethodThatCallsAnOuterMethod(); +>c.someMethodThatCallsAnOuterMethod : Symbol(M.C.someMethodThatCallsAnOuterMethod, Decl(moduleVisibilityTest1.ts, 36, 31)) +>c : Symbol(c, Decl(moduleVisibilityTest1.ts, 61, 3)) +>someMethodThatCallsAnOuterMethod : Symbol(M.C.someMethodThatCallsAnOuterMethod, Decl(moduleVisibilityTest1.ts, 36, 31)) + diff --git a/tests/baselines/reference/moduleVisibilityTest1.types b/tests/baselines/reference/moduleVisibilityTest1.types index 2fd85c637942a..b54f897d01434 100644 --- a/tests/baselines/reference/moduleVisibilityTest1.types +++ b/tests/baselines/reference/moduleVisibilityTest1.types @@ -2,186 +2,186 @@ module OuterMod { ->OuterMod : typeof OuterMod, Symbol(OuterMod, Decl(moduleVisibilityTest1.ts, 0, 0)) +>OuterMod : typeof OuterMod export function someExportedOuterFunc() { return -1; } ->someExportedOuterFunc : () => number, Symbol(someExportedOuterFunc, Decl(moduleVisibilityTest1.ts, 2, 17)) +>someExportedOuterFunc : () => number >-1 : number >1 : number export module OuterInnerMod { ->OuterInnerMod : typeof OuterInnerMod, Symbol(OuterInnerMod, Decl(moduleVisibilityTest1.ts, 3, 55)) +>OuterInnerMod : typeof OuterInnerMod export function someExportedOuterInnerFunc() { return "foo"; } ->someExportedOuterInnerFunc : () => string, Symbol(someExportedOuterInnerFunc, Decl(moduleVisibilityTest1.ts, 5, 30)) +>someExportedOuterInnerFunc : () => string >"foo" : string } } import OuterInnerAlias = OuterMod.OuterInnerMod; ->OuterInnerAlias : typeof OuterInnerAlias, Symbol(OuterInnerAlias, Decl(moduleVisibilityTest1.ts, 8, 1)) ->OuterMod : typeof OuterMod, Symbol(OuterMod, Decl(moduleVisibilityTest1.ts, 0, 0)) ->OuterInnerMod : typeof OuterInnerAlias, Symbol(OuterInnerAlias, Decl(moduleVisibilityTest1.ts, 3, 55)) +>OuterInnerAlias : typeof OuterInnerAlias +>OuterMod : typeof OuterMod +>OuterInnerMod : typeof OuterInnerAlias module M { ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>M : typeof M export module InnerMod { ->InnerMod : typeof InnerMod, Symbol(InnerMod, Decl(moduleVisibilityTest1.ts, 12, 10)) +>InnerMod : typeof InnerMod export function someExportedInnerFunc() { return -2; } ->someExportedInnerFunc : () => number, Symbol(someExportedInnerFunc, Decl(moduleVisibilityTest1.ts, 14, 25)) +>someExportedInnerFunc : () => number >-2 : number >2 : number } export enum E { ->E : E, Symbol(E, Decl(moduleVisibilityTest1.ts, 16, 2)) +>E : E A, ->A : E, Symbol(E.A, Decl(moduleVisibilityTest1.ts, 18, 16)) +>A : E B, ->B : E, Symbol(E.B, Decl(moduleVisibilityTest1.ts, 19, 4)) +>B : E C, ->C : E, Symbol(E.C, Decl(moduleVisibilityTest1.ts, 20, 4)) +>C : E } export var x = 5; ->x : number, Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) +>x : number >5 : number export declare var exported_var; ->exported_var : any, Symbol(exported_var, Decl(moduleVisibilityTest1.ts, 25, 19)) +>exported_var : any var y = x + x; ->y : number, Symbol(y, Decl(moduleVisibilityTest1.ts, 27, 4)) +>y : number >x + x : number ->x : number, Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) ->x : number, Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) +>x : number +>x : number export interface I { ->I : I, Symbol(I, Decl(moduleVisibilityTest1.ts, 27, 15)) +>I : I someMethod():number; ->someMethod : () => number, Symbol(someMethod, Decl(moduleVisibilityTest1.ts, 30, 21)) +>someMethod : () => number } class B {public b = 0;} ->B : B, Symbol(B, Decl(moduleVisibilityTest1.ts, 32, 2)) ->b : number, Symbol(b, Decl(moduleVisibilityTest1.ts, 34, 11)) +>B : B +>b : number >0 : number export class C implements I { ->C : C, Symbol(C, Decl(moduleVisibilityTest1.ts, 34, 25)) ->I : I, Symbol(I, Decl(moduleVisibilityTest1.ts, 27, 15)) +>C : C +>I : I public someMethodThatCallsAnOuterMethod() {return OuterInnerAlias.someExportedOuterInnerFunc();} ->someMethodThatCallsAnOuterMethod : () => string, Symbol(someMethodThatCallsAnOuterMethod, Decl(moduleVisibilityTest1.ts, 36, 31)) +>someMethodThatCallsAnOuterMethod : () => string >OuterInnerAlias.someExportedOuterInnerFunc() : string ->OuterInnerAlias.someExportedOuterInnerFunc : () => string, Symbol(OuterInnerAlias.someExportedOuterInnerFunc, Decl(moduleVisibilityTest1.ts, 5, 30)) ->OuterInnerAlias : typeof OuterInnerAlias, Symbol(OuterInnerAlias, Decl(moduleVisibilityTest1.ts, 8, 1)) ->someExportedOuterInnerFunc : () => string, Symbol(OuterInnerAlias.someExportedOuterInnerFunc, Decl(moduleVisibilityTest1.ts, 5, 30)) +>OuterInnerAlias.someExportedOuterInnerFunc : () => string +>OuterInnerAlias : typeof OuterInnerAlias +>someExportedOuterInnerFunc : () => string public someMethodThatCallsAnInnerMethod() {return InnerMod.someExportedInnerFunc();} ->someMethodThatCallsAnInnerMethod : () => number, Symbol(someMethodThatCallsAnInnerMethod, Decl(moduleVisibilityTest1.ts, 37, 98)) +>someMethodThatCallsAnInnerMethod : () => number >InnerMod.someExportedInnerFunc() : number ->InnerMod.someExportedInnerFunc : () => number, Symbol(InnerMod.someExportedInnerFunc, Decl(moduleVisibilityTest1.ts, 14, 25)) ->InnerMod : typeof InnerMod, Symbol(InnerMod, Decl(moduleVisibilityTest1.ts, 12, 10)) ->someExportedInnerFunc : () => number, Symbol(InnerMod.someExportedInnerFunc, Decl(moduleVisibilityTest1.ts, 14, 25)) +>InnerMod.someExportedInnerFunc : () => number +>InnerMod : typeof InnerMod +>someExportedInnerFunc : () => number public someMethodThatCallsAnOuterInnerMethod() {return OuterMod.someExportedOuterFunc();} ->someMethodThatCallsAnOuterInnerMethod : () => number, Symbol(someMethodThatCallsAnOuterInnerMethod, Decl(moduleVisibilityTest1.ts, 38, 86)) +>someMethodThatCallsAnOuterInnerMethod : () => number >OuterMod.someExportedOuterFunc() : number ->OuterMod.someExportedOuterFunc : () => number, Symbol(OuterMod.someExportedOuterFunc, Decl(moduleVisibilityTest1.ts, 2, 17)) ->OuterMod : typeof OuterMod, Symbol(OuterMod, Decl(moduleVisibilityTest1.ts, 0, 0)) ->someExportedOuterFunc : () => number, Symbol(OuterMod.someExportedOuterFunc, Decl(moduleVisibilityTest1.ts, 2, 17)) +>OuterMod.someExportedOuterFunc : () => number +>OuterMod : typeof OuterMod +>someExportedOuterFunc : () => number public someMethod() { return 0; } ->someMethod : () => number, Symbol(someMethod, Decl(moduleVisibilityTest1.ts, 39, 91)) +>someMethod : () => number >0 : number public someProp = 1; ->someProp : number, Symbol(someProp, Decl(moduleVisibilityTest1.ts, 40, 35)) +>someProp : number >1 : number constructor() { function someInnerFunc() { return 2; } ->someInnerFunc : () => number, Symbol(someInnerFunc, Decl(moduleVisibilityTest1.ts, 43, 17)) +>someInnerFunc : () => number >2 : number var someInnerVar = 3; ->someInnerVar : number, Symbol(someInnerVar, Decl(moduleVisibilityTest1.ts, 45, 15)) +>someInnerVar : number >3 : number } } var someModuleVar = 4; ->someModuleVar : number, Symbol(someModuleVar, Decl(moduleVisibilityTest1.ts, 49, 4)) +>someModuleVar : number >4 : number function someModuleFunction() { return 5;} ->someModuleFunction : () => number, Symbol(someModuleFunction, Decl(moduleVisibilityTest1.ts, 49, 23)) +>someModuleFunction : () => number >5 : number } module M { ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) +>M : typeof M export var c = x; ->c : number, Symbol(c, Decl(moduleVisibilityTest1.ts, 55, 11)) ->x : number, Symbol(x, Decl(moduleVisibilityTest1.ts, 24, 11)) +>c : number +>x : number export var meb = M.E.B; ->meb : E, Symbol(meb, Decl(moduleVisibilityTest1.ts, 56, 11)) ->M.E.B : E, Symbol(E.B, Decl(moduleVisibilityTest1.ts, 19, 4)) ->M.E : typeof E, Symbol(E, Decl(moduleVisibilityTest1.ts, 16, 2)) ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->E : typeof E, Symbol(E, Decl(moduleVisibilityTest1.ts, 16, 2)) ->B : E, Symbol(E.B, Decl(moduleVisibilityTest1.ts, 19, 4)) +>meb : E +>M.E.B : E +>M.E : typeof E +>M : typeof M +>E : typeof E +>B : E } var cprime : M.I = null; ->cprime : M.I, Symbol(cprime, Decl(moduleVisibilityTest1.ts, 59, 3)) ->M : any, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->I : M.I, Symbol(M.I, Decl(moduleVisibilityTest1.ts, 27, 15)) +>cprime : M.I +>M : any +>I : M.I >null : M.I ->M : any, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->I : M.I, Symbol(M.I, Decl(moduleVisibilityTest1.ts, 27, 15)) +>M : any +>I : M.I >null : null var c = new M.C(); ->c : M.C, Symbol(c, Decl(moduleVisibilityTest1.ts, 61, 3)) +>c : M.C >new M.C() : M.C ->M.C : typeof M.C, Symbol(M.C, Decl(moduleVisibilityTest1.ts, 34, 25)) ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->C : typeof M.C, Symbol(M.C, Decl(moduleVisibilityTest1.ts, 34, 25)) +>M.C : typeof M.C +>M : typeof M +>C : typeof M.C var z = M.x; ->z : number, Symbol(z, Decl(moduleVisibilityTest1.ts, 62, 3)) ->M.x : number, Symbol(M.x, Decl(moduleVisibilityTest1.ts, 24, 11)) ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->x : number, Symbol(M.x, Decl(moduleVisibilityTest1.ts, 24, 11)) +>z : number +>M.x : number +>M : typeof M +>x : number var alpha = M.E.A; ->alpha : M.E, Symbol(alpha, Decl(moduleVisibilityTest1.ts, 63, 3)) ->M.E.A : M.E, Symbol(M.E.A, Decl(moduleVisibilityTest1.ts, 18, 16)) ->M.E : typeof M.E, Symbol(M.E, Decl(moduleVisibilityTest1.ts, 16, 2)) ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->E : typeof M.E, Symbol(M.E, Decl(moduleVisibilityTest1.ts, 16, 2)) ->A : M.E, Symbol(M.E.A, Decl(moduleVisibilityTest1.ts, 18, 16)) +>alpha : M.E +>M.E.A : M.E +>M.E : typeof M.E +>M : typeof M +>E : typeof M.E +>A : M.E var omega = M.exported_var; ->omega : any, Symbol(omega, Decl(moduleVisibilityTest1.ts, 64, 3)) ->M.exported_var : any, Symbol(M.exported_var, Decl(moduleVisibilityTest1.ts, 25, 19)) ->M : typeof M, Symbol(M, Decl(moduleVisibilityTest1.ts, 10, 48), Decl(moduleVisibilityTest1.ts, 52, 1)) ->exported_var : any, Symbol(M.exported_var, Decl(moduleVisibilityTest1.ts, 25, 19)) +>omega : any +>M.exported_var : any +>M : typeof M +>exported_var : any c.someMethodThatCallsAnOuterMethod(); >c.someMethodThatCallsAnOuterMethod() : string ->c.someMethodThatCallsAnOuterMethod : () => string, Symbol(M.C.someMethodThatCallsAnOuterMethod, Decl(moduleVisibilityTest1.ts, 36, 31)) ->c : M.C, Symbol(c, Decl(moduleVisibilityTest1.ts, 61, 3)) ->someMethodThatCallsAnOuterMethod : () => string, Symbol(M.C.someMethodThatCallsAnOuterMethod, Decl(moduleVisibilityTest1.ts, 36, 31)) +>c.someMethodThatCallsAnOuterMethod : () => string +>c : M.C +>someMethodThatCallsAnOuterMethod : () => string diff --git a/tests/baselines/reference/moduleWithStatementsOfEveryKind.symbols b/tests/baselines/reference/moduleWithStatementsOfEveryKind.symbols new file mode 100644 index 0000000000000..d121e6b5367cc --- /dev/null +++ b/tests/baselines/reference/moduleWithStatementsOfEveryKind.symbols @@ -0,0 +1,157 @@ +=== tests/cases/conformance/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts === +module A { +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 0, 0)) + + class A { s: string } +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 0, 10)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 1, 13)) + + class AA { s: T } +>AA : Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 1, 25)) +>T : Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 2, 13)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 2, 17)) +>T : Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 2, 13)) + + interface I { id: number } +>I : Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 2, 24)) +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 3, 17)) + + class B extends AA implements I { id: number } +>B : Symbol(B, Decl(moduleWithStatementsOfEveryKind.ts, 3, 30)) +>AA : Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 1, 25)) +>I : Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 2, 24)) +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 5, 45)) + + class BB extends A { +>BB : Symbol(BB, Decl(moduleWithStatementsOfEveryKind.ts, 5, 58)) +>T : Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 6, 13)) +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 0, 10)) + + id: number; +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 6, 27)) + } + + module Module { +>Module : Symbol(Module, Decl(moduleWithStatementsOfEveryKind.ts, 8, 5)) + + class A { s: string } +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 10, 19)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 11, 17)) + } + enum Color { Blue, Red } +>Color : Symbol(Color, Decl(moduleWithStatementsOfEveryKind.ts, 12, 5)) +>Blue : Symbol(Color.Blue, Decl(moduleWithStatementsOfEveryKind.ts, 13, 16)) +>Red : Symbol(Color.Red, Decl(moduleWithStatementsOfEveryKind.ts, 13, 22)) + + var x = 12; +>x : Symbol(x, Decl(moduleWithStatementsOfEveryKind.ts, 14, 7)) + + function F(s: string): number { +>F : Symbol(F, Decl(moduleWithStatementsOfEveryKind.ts, 14, 15)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 15, 15)) + + return 2; + } + var array: I[] = null; +>array : Symbol(array, Decl(moduleWithStatementsOfEveryKind.ts, 18, 7)) +>I : Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 2, 24)) + + var fn = (s: string) => { +>fn : Symbol(fn, Decl(moduleWithStatementsOfEveryKind.ts, 19, 7)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 19, 14)) + + return 'hello ' + s; +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 19, 14)) + } + var ol = { s: 'hello', id: 2, isvalid: true }; +>ol : Symbol(ol, Decl(moduleWithStatementsOfEveryKind.ts, 22, 7)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 22, 14)) +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 22, 26)) +>isvalid : Symbol(isvalid, Decl(moduleWithStatementsOfEveryKind.ts, 22, 33)) + + declare class DC { +>DC : Symbol(DC, Decl(moduleWithStatementsOfEveryKind.ts, 22, 50)) + + static x: number; +>x : Symbol(DC.x, Decl(moduleWithStatementsOfEveryKind.ts, 24, 22)) + } +} + +module Y { +>Y : Symbol(Y, Decl(moduleWithStatementsOfEveryKind.ts, 27, 1)) + + export class A { s: string } +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 29, 10)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 30, 20)) + + export class AA { s: T } +>AA : Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 30, 32)) +>T : Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 31, 20)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 31, 24)) +>T : Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 31, 20)) + + export interface I { id: number } +>I : Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 31, 31)) +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 32, 24)) + + export class B extends AA implements I { id: number } +>B : Symbol(B, Decl(moduleWithStatementsOfEveryKind.ts, 32, 37)) +>AA : Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 30, 32)) +>I : Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 31, 31)) +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 34, 52)) + + export class BB extends A { +>BB : Symbol(BB, Decl(moduleWithStatementsOfEveryKind.ts, 34, 65)) +>T : Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 35, 20)) +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 29, 10)) + + id: number; +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 35, 34)) + } + + export module Module { +>Module : Symbol(Module, Decl(moduleWithStatementsOfEveryKind.ts, 37, 5)) + + class A { s: string } +>A : Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 39, 26)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 40, 17)) + } + export enum Color { Blue, Red } +>Color : Symbol(Color, Decl(moduleWithStatementsOfEveryKind.ts, 41, 5)) +>Blue : Symbol(Color.Blue, Decl(moduleWithStatementsOfEveryKind.ts, 42, 23)) +>Red : Symbol(Color.Red, Decl(moduleWithStatementsOfEveryKind.ts, 42, 29)) + + export var x = 12; +>x : Symbol(x, Decl(moduleWithStatementsOfEveryKind.ts, 43, 14)) + + export function F(s: string): number { +>F : Symbol(F, Decl(moduleWithStatementsOfEveryKind.ts, 43, 22)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 44, 22)) + + return 2; + } + export var array: I[] = null; +>array : Symbol(array, Decl(moduleWithStatementsOfEveryKind.ts, 47, 14)) +>I : Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 31, 31)) + + export var fn = (s: string) => { +>fn : Symbol(fn, Decl(moduleWithStatementsOfEveryKind.ts, 48, 14)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 48, 21)) + + return 'hello ' + s; +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 48, 21)) + } + export var ol = { s: 'hello', id: 2, isvalid: true }; +>ol : Symbol(ol, Decl(moduleWithStatementsOfEveryKind.ts, 51, 14)) +>s : Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 51, 21)) +>id : Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 51, 33)) +>isvalid : Symbol(isvalid, Decl(moduleWithStatementsOfEveryKind.ts, 51, 40)) + + export declare class DC { +>DC : Symbol(DC, Decl(moduleWithStatementsOfEveryKind.ts, 51, 57)) + + static x: number; +>x : Symbol(DC.x, Decl(moduleWithStatementsOfEveryKind.ts, 53, 29)) + } +} + diff --git a/tests/baselines/reference/moduleWithStatementsOfEveryKind.types b/tests/baselines/reference/moduleWithStatementsOfEveryKind.types index 3ffc5eb935c1f..9475d9cfdcbdc 100644 --- a/tests/baselines/reference/moduleWithStatementsOfEveryKind.types +++ b/tests/baselines/reference/moduleWithStatementsOfEveryKind.types @@ -1,177 +1,177 @@ === tests/cases/conformance/internalModules/moduleBody/moduleWithStatementsOfEveryKind.ts === module A { ->A : typeof A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 0, 0)) +>A : typeof A class A { s: string } ->A : A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 0, 10)) ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 1, 13)) +>A : A +>s : string class AA { s: T } ->AA : AA, Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 1, 25)) ->T : T, Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 2, 13)) ->s : T, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 2, 17)) ->T : T, Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 2, 13)) +>AA : AA +>T : T +>s : T +>T : T interface I { id: number } ->I : I, Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 2, 24)) ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 3, 17)) +>I : I +>id : number class B extends AA implements I { id: number } ->B : B, Symbol(B, Decl(moduleWithStatementsOfEveryKind.ts, 3, 30)) ->AA : AA, Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 1, 25)) ->I : I, Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 2, 24)) ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 5, 45)) +>B : B +>AA : AA +>I : I +>id : number class BB extends A { ->BB : BB, Symbol(BB, Decl(moduleWithStatementsOfEveryKind.ts, 5, 58)) ->T : T, Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 6, 13)) ->A : A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 0, 10)) +>BB : BB +>T : T +>A : A id: number; ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 6, 27)) +>id : number } module Module { ->Module : typeof Module, Symbol(Module, Decl(moduleWithStatementsOfEveryKind.ts, 8, 5)) +>Module : typeof Module class A { s: string } ->A : A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 10, 19)) ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 11, 17)) +>A : A +>s : string } enum Color { Blue, Red } ->Color : Color, Symbol(Color, Decl(moduleWithStatementsOfEveryKind.ts, 12, 5)) ->Blue : Color, Symbol(Color.Blue, Decl(moduleWithStatementsOfEveryKind.ts, 13, 16)) ->Red : Color, Symbol(Color.Red, Decl(moduleWithStatementsOfEveryKind.ts, 13, 22)) +>Color : Color +>Blue : Color +>Red : Color var x = 12; ->x : number, Symbol(x, Decl(moduleWithStatementsOfEveryKind.ts, 14, 7)) +>x : number >12 : number function F(s: string): number { ->F : (s: string) => number, Symbol(F, Decl(moduleWithStatementsOfEveryKind.ts, 14, 15)) ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 15, 15)) +>F : (s: string) => number +>s : string return 2; >2 : number } var array: I[] = null; ->array : I[], Symbol(array, Decl(moduleWithStatementsOfEveryKind.ts, 18, 7)) ->I : I, Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 2, 24)) +>array : I[] +>I : I >null : null var fn = (s: string) => { ->fn : (s: string) => string, Symbol(fn, Decl(moduleWithStatementsOfEveryKind.ts, 19, 7)) +>fn : (s: string) => string >(s: string) => { return 'hello ' + s; } : (s: string) => string ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 19, 14)) +>s : string return 'hello ' + s; >'hello ' + s : string >'hello ' : string ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 19, 14)) +>s : string } var ol = { s: 'hello', id: 2, isvalid: true }; ->ol : { s: string; id: number; isvalid: boolean; }, Symbol(ol, Decl(moduleWithStatementsOfEveryKind.ts, 22, 7)) +>ol : { s: string; id: number; isvalid: boolean; } >{ s: 'hello', id: 2, isvalid: true } : { s: string; id: number; isvalid: boolean; } ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 22, 14)) +>s : string >'hello' : string ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 22, 26)) +>id : number >2 : number ->isvalid : boolean, Symbol(isvalid, Decl(moduleWithStatementsOfEveryKind.ts, 22, 33)) +>isvalid : boolean >true : boolean declare class DC { ->DC : DC, Symbol(DC, Decl(moduleWithStatementsOfEveryKind.ts, 22, 50)) +>DC : DC static x: number; ->x : number, Symbol(DC.x, Decl(moduleWithStatementsOfEveryKind.ts, 24, 22)) +>x : number } } module Y { ->Y : typeof Y, Symbol(Y, Decl(moduleWithStatementsOfEveryKind.ts, 27, 1)) +>Y : typeof Y export class A { s: string } ->A : A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 29, 10)) ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 30, 20)) +>A : A +>s : string export class AA { s: T } ->AA : AA, Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 30, 32)) ->T : T, Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 31, 20)) ->s : T, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 31, 24)) ->T : T, Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 31, 20)) +>AA : AA +>T : T +>s : T +>T : T export interface I { id: number } ->I : I, Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 31, 31)) ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 32, 24)) +>I : I +>id : number export class B extends AA implements I { id: number } ->B : B, Symbol(B, Decl(moduleWithStatementsOfEveryKind.ts, 32, 37)) ->AA : AA, Symbol(AA, Decl(moduleWithStatementsOfEveryKind.ts, 30, 32)) ->I : I, Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 31, 31)) ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 34, 52)) +>B : B +>AA : AA +>I : I +>id : number export class BB extends A { ->BB : BB, Symbol(BB, Decl(moduleWithStatementsOfEveryKind.ts, 34, 65)) ->T : T, Symbol(T, Decl(moduleWithStatementsOfEveryKind.ts, 35, 20)) ->A : A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 29, 10)) +>BB : BB +>T : T +>A : A id: number; ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 35, 34)) +>id : number } export module Module { ->Module : typeof Module, Symbol(Module, Decl(moduleWithStatementsOfEveryKind.ts, 37, 5)) +>Module : typeof Module class A { s: string } ->A : A, Symbol(A, Decl(moduleWithStatementsOfEveryKind.ts, 39, 26)) ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 40, 17)) +>A : A +>s : string } export enum Color { Blue, Red } ->Color : Color, Symbol(Color, Decl(moduleWithStatementsOfEveryKind.ts, 41, 5)) ->Blue : Color, Symbol(Color.Blue, Decl(moduleWithStatementsOfEveryKind.ts, 42, 23)) ->Red : Color, Symbol(Color.Red, Decl(moduleWithStatementsOfEveryKind.ts, 42, 29)) +>Color : Color +>Blue : Color +>Red : Color export var x = 12; ->x : number, Symbol(x, Decl(moduleWithStatementsOfEveryKind.ts, 43, 14)) +>x : number >12 : number export function F(s: string): number { ->F : (s: string) => number, Symbol(F, Decl(moduleWithStatementsOfEveryKind.ts, 43, 22)) ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 44, 22)) +>F : (s: string) => number +>s : string return 2; >2 : number } export var array: I[] = null; ->array : I[], Symbol(array, Decl(moduleWithStatementsOfEveryKind.ts, 47, 14)) ->I : I, Symbol(I, Decl(moduleWithStatementsOfEveryKind.ts, 31, 31)) +>array : I[] +>I : I >null : null export var fn = (s: string) => { ->fn : (s: string) => string, Symbol(fn, Decl(moduleWithStatementsOfEveryKind.ts, 48, 14)) +>fn : (s: string) => string >(s: string) => { return 'hello ' + s; } : (s: string) => string ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 48, 21)) +>s : string return 'hello ' + s; >'hello ' + s : string >'hello ' : string ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 48, 21)) +>s : string } export var ol = { s: 'hello', id: 2, isvalid: true }; ->ol : { s: string; id: number; isvalid: boolean; }, Symbol(ol, Decl(moduleWithStatementsOfEveryKind.ts, 51, 14)) +>ol : { s: string; id: number; isvalid: boolean; } >{ s: 'hello', id: 2, isvalid: true } : { s: string; id: number; isvalid: boolean; } ->s : string, Symbol(s, Decl(moduleWithStatementsOfEveryKind.ts, 51, 21)) +>s : string >'hello' : string ->id : number, Symbol(id, Decl(moduleWithStatementsOfEveryKind.ts, 51, 33)) +>id : number >2 : number ->isvalid : boolean, Symbol(isvalid, Decl(moduleWithStatementsOfEveryKind.ts, 51, 40)) +>isvalid : boolean >true : boolean export declare class DC { ->DC : DC, Symbol(DC, Decl(moduleWithStatementsOfEveryKind.ts, 51, 57)) +>DC : DC static x: number; ->x : number, Symbol(DC.x, Decl(moduleWithStatementsOfEveryKind.ts, 53, 29)) +>x : number } } diff --git a/tests/baselines/reference/moduleWithTryStatement1.symbols b/tests/baselines/reference/moduleWithTryStatement1.symbols new file mode 100644 index 0000000000000..236c10341828a --- /dev/null +++ b/tests/baselines/reference/moduleWithTryStatement1.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/moduleWithTryStatement1.ts === +module M { +>M : Symbol(M, Decl(moduleWithTryStatement1.ts, 0, 0)) + + try { + } + catch (e) { +>e : Symbol(e, Decl(moduleWithTryStatement1.ts, 3, 9)) + } +} +var v = M; +>v : Symbol(v, Decl(moduleWithTryStatement1.ts, 6, 3)) +>M : Symbol(M, Decl(moduleWithTryStatement1.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleWithTryStatement1.types b/tests/baselines/reference/moduleWithTryStatement1.types index 33343d888bb81..9e18b649735d6 100644 --- a/tests/baselines/reference/moduleWithTryStatement1.types +++ b/tests/baselines/reference/moduleWithTryStatement1.types @@ -1,14 +1,14 @@ === tests/cases/compiler/moduleWithTryStatement1.ts === module M { ->M : typeof M, Symbol(M, Decl(moduleWithTryStatement1.ts, 0, 0)) +>M : typeof M try { } catch (e) { ->e : any, Symbol(e, Decl(moduleWithTryStatement1.ts, 3, 9)) +>e : any } } var v = M; ->v : typeof M, Symbol(v, Decl(moduleWithTryStatement1.ts, 6, 3)) ->M : typeof M, Symbol(M, Decl(moduleWithTryStatement1.ts, 0, 0)) +>v : typeof M +>M : typeof M diff --git a/tests/baselines/reference/multiCallOverloads.symbols b/tests/baselines/reference/multiCallOverloads.symbols new file mode 100644 index 0000000000000..26b414b463f58 --- /dev/null +++ b/tests/baselines/reference/multiCallOverloads.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/multiCallOverloads.ts === +interface ICallback { +>ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) + + (x?: string):void; +>x : Symbol(x, Decl(multiCallOverloads.ts, 1, 5)) +} + +function load(f: ICallback) {} +>load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) +>f : Symbol(f, Decl(multiCallOverloads.ts, 4, 14)) +>ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) + +var f1: ICallback = function(z?) {} +>f1 : Symbol(f1, Decl(multiCallOverloads.ts, 6, 3)) +>ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) +>z : Symbol(z, Decl(multiCallOverloads.ts, 6, 29)) + +var f2: ICallback = function(z?) {} +>f2 : Symbol(f2, Decl(multiCallOverloads.ts, 7, 3)) +>ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) +>z : Symbol(z, Decl(multiCallOverloads.ts, 7, 29)) + +load(f1) // ok +>load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) +>f1 : Symbol(f1, Decl(multiCallOverloads.ts, 6, 3)) + +load(f2) // ok +>load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) +>f2 : Symbol(f2, Decl(multiCallOverloads.ts, 7, 3)) + +load(function() {}) // this shouldn’t be an error +>load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) + +load(function(z?) {}) // this shouldn't be an error +>load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) +>z : Symbol(z, Decl(multiCallOverloads.ts, 11, 14)) + diff --git a/tests/baselines/reference/multiCallOverloads.types b/tests/baselines/reference/multiCallOverloads.types index 68fe4e6c32ab8..8c78951058034 100644 --- a/tests/baselines/reference/multiCallOverloads.types +++ b/tests/baselines/reference/multiCallOverloads.types @@ -1,46 +1,46 @@ === tests/cases/compiler/multiCallOverloads.ts === interface ICallback { ->ICallback : ICallback, Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) +>ICallback : ICallback (x?: string):void; ->x : string, Symbol(x, Decl(multiCallOverloads.ts, 1, 5)) +>x : string } function load(f: ICallback) {} ->load : (f: ICallback) => void, Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) ->f : ICallback, Symbol(f, Decl(multiCallOverloads.ts, 4, 14)) ->ICallback : ICallback, Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) +>load : (f: ICallback) => void +>f : ICallback +>ICallback : ICallback var f1: ICallback = function(z?) {} ->f1 : ICallback, Symbol(f1, Decl(multiCallOverloads.ts, 6, 3)) ->ICallback : ICallback, Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) +>f1 : ICallback +>ICallback : ICallback >function(z?) {} : (z?: string) => void ->z : string, Symbol(z, Decl(multiCallOverloads.ts, 6, 29)) +>z : string var f2: ICallback = function(z?) {} ->f2 : ICallback, Symbol(f2, Decl(multiCallOverloads.ts, 7, 3)) ->ICallback : ICallback, Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) +>f2 : ICallback +>ICallback : ICallback >function(z?) {} : (z?: string) => void ->z : string, Symbol(z, Decl(multiCallOverloads.ts, 7, 29)) +>z : string load(f1) // ok >load(f1) : void ->load : (f: ICallback) => void, Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) ->f1 : ICallback, Symbol(f1, Decl(multiCallOverloads.ts, 6, 3)) +>load : (f: ICallback) => void +>f1 : ICallback load(f2) // ok >load(f2) : void ->load : (f: ICallback) => void, Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) ->f2 : ICallback, Symbol(f2, Decl(multiCallOverloads.ts, 7, 3)) +>load : (f: ICallback) => void +>f2 : ICallback load(function() {}) // this shouldn’t be an error >load(function() {}) : void ->load : (f: ICallback) => void, Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) +>load : (f: ICallback) => void >function() {} : () => void load(function(z?) {}) // this shouldn't be an error >load(function(z?) {}) : void ->load : (f: ICallback) => void, Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) +>load : (f: ICallback) => void >function(z?) {} : (z?: string) => void ->z : string, Symbol(z, Decl(multiCallOverloads.ts, 11, 14)) +>z : string diff --git a/tests/baselines/reference/multiExtendsSplitInterfaces2.symbols b/tests/baselines/reference/multiExtendsSplitInterfaces2.symbols new file mode 100644 index 0000000000000..c9f390f16216e --- /dev/null +++ b/tests/baselines/reference/multiExtendsSplitInterfaces2.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/multiExtendsSplitInterfaces2.ts === +interface A { +>A : Symbol(A, Decl(multiExtendsSplitInterfaces2.ts, 0, 0)) + + a: number; +>a : Symbol(a, Decl(multiExtendsSplitInterfaces2.ts, 0, 13)) +} + +interface I extends A { +>I : Symbol(I, Decl(multiExtendsSplitInterfaces2.ts, 2, 1), Decl(multiExtendsSplitInterfaces2.ts, 10, 1)) +>A : Symbol(A, Decl(multiExtendsSplitInterfaces2.ts, 0, 0)) + + i1: number; +>i1 : Symbol(i1, Decl(multiExtendsSplitInterfaces2.ts, 4, 23)) +} + +interface B { +>B : Symbol(B, Decl(multiExtendsSplitInterfaces2.ts, 6, 1)) + + b: number; +>b : Symbol(b, Decl(multiExtendsSplitInterfaces2.ts, 8, 13)) +} + +interface I extends B { +>I : Symbol(I, Decl(multiExtendsSplitInterfaces2.ts, 2, 1), Decl(multiExtendsSplitInterfaces2.ts, 10, 1)) +>B : Symbol(B, Decl(multiExtendsSplitInterfaces2.ts, 6, 1)) + + i2: number; +>i2 : Symbol(i2, Decl(multiExtendsSplitInterfaces2.ts, 12, 23)) +} + +var i: I; +>i : Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) +>I : Symbol(I, Decl(multiExtendsSplitInterfaces2.ts, 2, 1), Decl(multiExtendsSplitInterfaces2.ts, 10, 1)) + +var a = i.a; +>a : Symbol(a, Decl(multiExtendsSplitInterfaces2.ts, 18, 3)) +>i.a : Symbol(A.a, Decl(multiExtendsSplitInterfaces2.ts, 0, 13)) +>i : Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) +>a : Symbol(A.a, Decl(multiExtendsSplitInterfaces2.ts, 0, 13)) + +var i1 = i.i1; +>i1 : Symbol(i1, Decl(multiExtendsSplitInterfaces2.ts, 19, 3)) +>i.i1 : Symbol(I.i1, Decl(multiExtendsSplitInterfaces2.ts, 4, 23)) +>i : Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) +>i1 : Symbol(I.i1, Decl(multiExtendsSplitInterfaces2.ts, 4, 23)) + +var b = i.b; +>b : Symbol(b, Decl(multiExtendsSplitInterfaces2.ts, 20, 3)) +>i.b : Symbol(B.b, Decl(multiExtendsSplitInterfaces2.ts, 8, 13)) +>i : Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) +>b : Symbol(B.b, Decl(multiExtendsSplitInterfaces2.ts, 8, 13)) + +var i2 = i.i2; +>i2 : Symbol(i2, Decl(multiExtendsSplitInterfaces2.ts, 21, 3)) +>i.i2 : Symbol(I.i2, Decl(multiExtendsSplitInterfaces2.ts, 12, 23)) +>i : Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) +>i2 : Symbol(I.i2, Decl(multiExtendsSplitInterfaces2.ts, 12, 23)) + diff --git a/tests/baselines/reference/multiExtendsSplitInterfaces2.types b/tests/baselines/reference/multiExtendsSplitInterfaces2.types index fbc8cdea0030f..b957d3dc26030 100644 --- a/tests/baselines/reference/multiExtendsSplitInterfaces2.types +++ b/tests/baselines/reference/multiExtendsSplitInterfaces2.types @@ -1,59 +1,59 @@ === tests/cases/compiler/multiExtendsSplitInterfaces2.ts === interface A { ->A : A, Symbol(A, Decl(multiExtendsSplitInterfaces2.ts, 0, 0)) +>A : A a: number; ->a : number, Symbol(a, Decl(multiExtendsSplitInterfaces2.ts, 0, 13)) +>a : number } interface I extends A { ->I : I, Symbol(I, Decl(multiExtendsSplitInterfaces2.ts, 2, 1), Decl(multiExtendsSplitInterfaces2.ts, 10, 1)) ->A : A, Symbol(A, Decl(multiExtendsSplitInterfaces2.ts, 0, 0)) +>I : I +>A : A i1: number; ->i1 : number, Symbol(i1, Decl(multiExtendsSplitInterfaces2.ts, 4, 23)) +>i1 : number } interface B { ->B : B, Symbol(B, Decl(multiExtendsSplitInterfaces2.ts, 6, 1)) +>B : B b: number; ->b : number, Symbol(b, Decl(multiExtendsSplitInterfaces2.ts, 8, 13)) +>b : number } interface I extends B { ->I : I, Symbol(I, Decl(multiExtendsSplitInterfaces2.ts, 2, 1), Decl(multiExtendsSplitInterfaces2.ts, 10, 1)) ->B : B, Symbol(B, Decl(multiExtendsSplitInterfaces2.ts, 6, 1)) +>I : I +>B : B i2: number; ->i2 : number, Symbol(i2, Decl(multiExtendsSplitInterfaces2.ts, 12, 23)) +>i2 : number } var i: I; ->i : I, Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) ->I : I, Symbol(I, Decl(multiExtendsSplitInterfaces2.ts, 2, 1), Decl(multiExtendsSplitInterfaces2.ts, 10, 1)) +>i : I +>I : I var a = i.a; ->a : number, Symbol(a, Decl(multiExtendsSplitInterfaces2.ts, 18, 3)) ->i.a : number, Symbol(A.a, Decl(multiExtendsSplitInterfaces2.ts, 0, 13)) ->i : I, Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) ->a : number, Symbol(A.a, Decl(multiExtendsSplitInterfaces2.ts, 0, 13)) +>a : number +>i.a : number +>i : I +>a : number var i1 = i.i1; ->i1 : number, Symbol(i1, Decl(multiExtendsSplitInterfaces2.ts, 19, 3)) ->i.i1 : number, Symbol(I.i1, Decl(multiExtendsSplitInterfaces2.ts, 4, 23)) ->i : I, Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) ->i1 : number, Symbol(I.i1, Decl(multiExtendsSplitInterfaces2.ts, 4, 23)) +>i1 : number +>i.i1 : number +>i : I +>i1 : number var b = i.b; ->b : number, Symbol(b, Decl(multiExtendsSplitInterfaces2.ts, 20, 3)) ->i.b : number, Symbol(B.b, Decl(multiExtendsSplitInterfaces2.ts, 8, 13)) ->i : I, Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) ->b : number, Symbol(B.b, Decl(multiExtendsSplitInterfaces2.ts, 8, 13)) +>b : number +>i.b : number +>i : I +>b : number var i2 = i.i2; ->i2 : number, Symbol(i2, Decl(multiExtendsSplitInterfaces2.ts, 21, 3)) ->i.i2 : number, Symbol(I.i2, Decl(multiExtendsSplitInterfaces2.ts, 12, 23)) ->i : I, Symbol(i, Decl(multiExtendsSplitInterfaces2.ts, 16, 3)) ->i2 : number, Symbol(I.i2, Decl(multiExtendsSplitInterfaces2.ts, 12, 23)) +>i2 : number +>i.i2 : number +>i : I +>i2 : number diff --git a/tests/baselines/reference/multiImportExport.symbols b/tests/baselines/reference/multiImportExport.symbols new file mode 100644 index 0000000000000..6601571aabc65 --- /dev/null +++ b/tests/baselines/reference/multiImportExport.symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/consumer.ts === +import Drawing = require('./Drawing'); +>Drawing : Symbol(Drawing, Decl(consumer.ts, 0, 0)) + +var addr = new Drawing.Math.Adder(); +>addr : Symbol(addr, Decl(consumer.ts, 1, 3)) +>Drawing.Math.Adder : Symbol(Adder, Decl(Math.ts, 2, 12)) +>Drawing.Math : Symbol(Drawing.Math, Decl(Drawing.ts, 0, 0)) +>Drawing : Symbol(Drawing, Decl(consumer.ts, 0, 0)) +>Math : Symbol(Drawing.Math, Decl(Drawing.ts, 0, 0)) +>Adder : Symbol(Adder, Decl(Math.ts, 2, 12)) + +=== tests/cases/compiler/Drawing.ts === +export import Math = require('Math/Math') +>Math : Symbol(Math, Decl(Drawing.ts, 0, 0)) + +=== tests/cases/compiler/Math/Math.ts === +import Adder = require('Math/Adder'); +>Adder : Symbol(Adder, Decl(Math.ts, 0, 0)) + +var Math = { +>Math : Symbol(Math, Decl(Math.ts, 2, 3)) + + Adder:Adder +>Adder : Symbol(Adder, Decl(Math.ts, 2, 12)) +>Adder : Symbol(Adder, Decl(Math.ts, 0, 0)) + +}; + +export = Math +>Math : Symbol(Math, Decl(Math.ts, 2, 3)) + +=== tests/cases/compiler/Math/Adder.ts === +class Adder { +>Adder : Symbol(Adder, Decl(Adder.ts, 0, 0)) + + add(a: number, b: number) { +>add : Symbol(add, Decl(Adder.ts, 0, 13)) +>a : Symbol(a, Decl(Adder.ts, 1, 8)) +>b : Symbol(b, Decl(Adder.ts, 1, 18)) + + } +} + +export = Adder; +>Adder : Symbol(Adder, Decl(Adder.ts, 0, 0)) + diff --git a/tests/baselines/reference/multiImportExport.types b/tests/baselines/reference/multiImportExport.types index 9c3871aae76b2..aac60aaee9078 100644 --- a/tests/baselines/reference/multiImportExport.types +++ b/tests/baselines/reference/multiImportExport.types @@ -1,49 +1,49 @@ === tests/cases/compiler/consumer.ts === import Drawing = require('./Drawing'); ->Drawing : typeof Drawing, Symbol(Drawing, Decl(consumer.ts, 0, 0)) +>Drawing : typeof Drawing var addr = new Drawing.Math.Adder(); ->addr : Adder, Symbol(addr, Decl(consumer.ts, 1, 3)) +>addr : Adder >new Drawing.Math.Adder() : Adder ->Drawing.Math.Adder : typeof Adder, Symbol(Adder, Decl(Math.ts, 2, 12)) ->Drawing.Math : { Adder: typeof Adder; }, Symbol(Drawing.Math, Decl(Drawing.ts, 0, 0)) ->Drawing : typeof Drawing, Symbol(Drawing, Decl(consumer.ts, 0, 0)) ->Math : { Adder: typeof Adder; }, Symbol(Drawing.Math, Decl(Drawing.ts, 0, 0)) ->Adder : typeof Adder, Symbol(Adder, Decl(Math.ts, 2, 12)) +>Drawing.Math.Adder : typeof Adder +>Drawing.Math : { Adder: typeof Adder; } +>Drawing : typeof Drawing +>Math : { Adder: typeof Adder; } +>Adder : typeof Adder === tests/cases/compiler/Drawing.ts === export import Math = require('Math/Math') ->Math : { Adder: typeof Adder; }, Symbol(Math, Decl(Drawing.ts, 0, 0)) +>Math : { Adder: typeof Adder; } === tests/cases/compiler/Math/Math.ts === import Adder = require('Math/Adder'); ->Adder : typeof Adder, Symbol(Adder, Decl(Math.ts, 0, 0)) +>Adder : typeof Adder var Math = { ->Math : { Adder: typeof Adder; }, Symbol(Math, Decl(Math.ts, 2, 3)) +>Math : { Adder: typeof Adder; } >{ Adder:Adder} : { Adder: typeof Adder; } Adder:Adder ->Adder : typeof Adder, Symbol(Adder, Decl(Math.ts, 2, 12)) ->Adder : typeof Adder, Symbol(Adder, Decl(Math.ts, 0, 0)) +>Adder : typeof Adder +>Adder : typeof Adder }; export = Math ->Math : { Adder: typeof Adder; }, Symbol(Math, Decl(Math.ts, 2, 3)) +>Math : { Adder: typeof Adder; } === tests/cases/compiler/Math/Adder.ts === class Adder { ->Adder : Adder, Symbol(Adder, Decl(Adder.ts, 0, 0)) +>Adder : Adder add(a: number, b: number) { ->add : (a: number, b: number) => void, Symbol(add, Decl(Adder.ts, 0, 13)) ->a : number, Symbol(a, Decl(Adder.ts, 1, 8)) ->b : number, Symbol(b, Decl(Adder.ts, 1, 18)) +>add : (a: number, b: number) => void +>a : number +>b : number } } export = Adder; ->Adder : Adder, Symbol(Adder, Decl(Adder.ts, 0, 0)) +>Adder : Adder diff --git a/tests/baselines/reference/multiModuleClodule1.symbols b/tests/baselines/reference/multiModuleClodule1.symbols new file mode 100644 index 0000000000000..8f83e58ed269f --- /dev/null +++ b/tests/baselines/reference/multiModuleClodule1.symbols @@ -0,0 +1,51 @@ +=== tests/cases/compiler/multiModuleClodule1.ts === +class C { +>C : Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) + + constructor(x: number) { } +>x : Symbol(x, Decl(multiModuleClodule1.ts, 1, 16)) + + foo() { } +>foo : Symbol(foo, Decl(multiModuleClodule1.ts, 1, 30)) + + bar() { } +>bar : Symbol(bar, Decl(multiModuleClodule1.ts, 2, 13)) + + static boo() { } +>boo : Symbol(C.boo, Decl(multiModuleClodule1.ts, 3, 13)) +} + +module C { +>C : Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) + + export var x = 1; +>x : Symbol(x, Decl(multiModuleClodule1.ts, 8, 14)) + + var y = 2; +>y : Symbol(y, Decl(multiModuleClodule1.ts, 9, 7)) +} +module C { +>C : Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) + + export function foo() { } +>foo : Symbol(foo, Decl(multiModuleClodule1.ts, 11, 10)) + + function baz() { return ''; } +>baz : Symbol(baz, Decl(multiModuleClodule1.ts, 12, 29)) +} + +var c = new C(C.x); +>c : Symbol(c, Decl(multiModuleClodule1.ts, 16, 3)) +>C : Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) +>C.x : Symbol(C.x, Decl(multiModuleClodule1.ts, 8, 14)) +>C : Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) +>x : Symbol(C.x, Decl(multiModuleClodule1.ts, 8, 14)) + +c.foo = C.foo; +>c.foo : Symbol(C.foo, Decl(multiModuleClodule1.ts, 1, 30)) +>c : Symbol(c, Decl(multiModuleClodule1.ts, 16, 3)) +>foo : Symbol(C.foo, Decl(multiModuleClodule1.ts, 1, 30)) +>C.foo : Symbol(C.foo, Decl(multiModuleClodule1.ts, 11, 10)) +>C : Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) +>foo : Symbol(C.foo, Decl(multiModuleClodule1.ts, 11, 10)) + diff --git a/tests/baselines/reference/multiModuleClodule1.types b/tests/baselines/reference/multiModuleClodule1.types index 268c932c26d63..b958d18f98400 100644 --- a/tests/baselines/reference/multiModuleClodule1.types +++ b/tests/baselines/reference/multiModuleClodule1.types @@ -1,56 +1,56 @@ === tests/cases/compiler/multiModuleClodule1.ts === class C { ->C : C, Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) +>C : C constructor(x: number) { } ->x : number, Symbol(x, Decl(multiModuleClodule1.ts, 1, 16)) +>x : number foo() { } ->foo : () => void, Symbol(foo, Decl(multiModuleClodule1.ts, 1, 30)) +>foo : () => void bar() { } ->bar : () => void, Symbol(bar, Decl(multiModuleClodule1.ts, 2, 13)) +>bar : () => void static boo() { } ->boo : () => void, Symbol(C.boo, Decl(multiModuleClodule1.ts, 3, 13)) +>boo : () => void } module C { ->C : typeof C, Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) +>C : typeof C export var x = 1; ->x : number, Symbol(x, Decl(multiModuleClodule1.ts, 8, 14)) +>x : number >1 : number var y = 2; ->y : number, Symbol(y, Decl(multiModuleClodule1.ts, 9, 7)) +>y : number >2 : number } module C { ->C : typeof C, Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) +>C : typeof C export function foo() { } ->foo : () => void, Symbol(foo, Decl(multiModuleClodule1.ts, 11, 10)) +>foo : () => void function baz() { return ''; } ->baz : () => string, Symbol(baz, Decl(multiModuleClodule1.ts, 12, 29)) +>baz : () => string >'' : string } var c = new C(C.x); ->c : C, Symbol(c, Decl(multiModuleClodule1.ts, 16, 3)) +>c : C >new C(C.x) : C ->C : typeof C, Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) ->C.x : number, Symbol(C.x, Decl(multiModuleClodule1.ts, 8, 14)) ->C : typeof C, Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) ->x : number, Symbol(C.x, Decl(multiModuleClodule1.ts, 8, 14)) +>C : typeof C +>C.x : number +>C : typeof C +>x : number c.foo = C.foo; >c.foo = C.foo : () => void ->c.foo : () => void, Symbol(C.foo, Decl(multiModuleClodule1.ts, 1, 30)) ->c : C, Symbol(c, Decl(multiModuleClodule1.ts, 16, 3)) ->foo : () => void, Symbol(C.foo, Decl(multiModuleClodule1.ts, 1, 30)) ->C.foo : () => void, Symbol(C.foo, Decl(multiModuleClodule1.ts, 11, 10)) ->C : typeof C, Symbol(C, Decl(multiModuleClodule1.ts, 0, 0), Decl(multiModuleClodule1.ts, 5, 1), Decl(multiModuleClodule1.ts, 10, 1)) ->foo : () => void, Symbol(C.foo, Decl(multiModuleClodule1.ts, 11, 10)) +>c.foo : () => void +>c : C +>foo : () => void +>C.foo : () => void +>C : typeof C +>foo : () => void diff --git a/tests/baselines/reference/multiModuleFundule1.symbols b/tests/baselines/reference/multiModuleFundule1.symbols new file mode 100644 index 0000000000000..39b2e7e6be0b1 --- /dev/null +++ b/tests/baselines/reference/multiModuleFundule1.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/multiModuleFundule1.ts === +function C(x: number) { } +>C : Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) +>x : Symbol(x, Decl(multiModuleFundule1.ts, 0, 11)) + +module C { +>C : Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) + + export var x = 1; +>x : Symbol(x, Decl(multiModuleFundule1.ts, 3, 14)) +} +module C { +>C : Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) + + export function foo() { } +>foo : Symbol(foo, Decl(multiModuleFundule1.ts, 5, 10)) +} + +var r = C(2); +>r : Symbol(r, Decl(multiModuleFundule1.ts, 9, 3)) +>C : Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) + +var r2 = new C(2); // using void returning function as constructor +>r2 : Symbol(r2, Decl(multiModuleFundule1.ts, 10, 3)) +>C : Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) + +var r3 = C.foo(); +>r3 : Symbol(r3, Decl(multiModuleFundule1.ts, 11, 3)) +>C.foo : Symbol(C.foo, Decl(multiModuleFundule1.ts, 5, 10)) +>C : Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) +>foo : Symbol(C.foo, Decl(multiModuleFundule1.ts, 5, 10)) + diff --git a/tests/baselines/reference/multiModuleFundule1.types b/tests/baselines/reference/multiModuleFundule1.types index 213815b232092..7eed100c199f7 100644 --- a/tests/baselines/reference/multiModuleFundule1.types +++ b/tests/baselines/reference/multiModuleFundule1.types @@ -1,38 +1,38 @@ === tests/cases/compiler/multiModuleFundule1.ts === function C(x: number) { } ->C : typeof C, Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) ->x : number, Symbol(x, Decl(multiModuleFundule1.ts, 0, 11)) +>C : typeof C +>x : number module C { ->C : typeof C, Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) +>C : typeof C export var x = 1; ->x : number, Symbol(x, Decl(multiModuleFundule1.ts, 3, 14)) +>x : number >1 : number } module C { ->C : typeof C, Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) +>C : typeof C export function foo() { } ->foo : () => void, Symbol(foo, Decl(multiModuleFundule1.ts, 5, 10)) +>foo : () => void } var r = C(2); ->r : void, Symbol(r, Decl(multiModuleFundule1.ts, 9, 3)) +>r : void >C(2) : void ->C : typeof C, Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) +>C : typeof C >2 : number var r2 = new C(2); // using void returning function as constructor ->r2 : any, Symbol(r2, Decl(multiModuleFundule1.ts, 10, 3)) +>r2 : any >new C(2) : any ->C : typeof C, Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) +>C : typeof C >2 : number var r3 = C.foo(); ->r3 : void, Symbol(r3, Decl(multiModuleFundule1.ts, 11, 3)) +>r3 : void >C.foo() : void ->C.foo : () => void, Symbol(C.foo, Decl(multiModuleFundule1.ts, 5, 10)) ->C : typeof C, Symbol(C, Decl(multiModuleFundule1.ts, 0, 0), Decl(multiModuleFundule1.ts, 0, 25), Decl(multiModuleFundule1.ts, 4, 1)) ->foo : () => void, Symbol(C.foo, Decl(multiModuleFundule1.ts, 5, 10)) +>C.foo : () => void +>C : typeof C +>foo : () => void diff --git a/tests/baselines/reference/mutrec.symbols b/tests/baselines/reference/mutrec.symbols new file mode 100644 index 0000000000000..2a24cc4c65efb --- /dev/null +++ b/tests/baselines/reference/mutrec.symbols @@ -0,0 +1,102 @@ +=== tests/cases/compiler/mutrec.ts === +interface A { +>A : Symbol(A, Decl(mutrec.ts, 0, 0)) + + x:B[]; +>x : Symbol(x, Decl(mutrec.ts, 0, 13)) +>B : Symbol(B, Decl(mutrec.ts, 2, 1)) +} + +interface B { +>B : Symbol(B, Decl(mutrec.ts, 2, 1)) + + x:A[]; +>x : Symbol(x, Decl(mutrec.ts, 4, 13)) +>A : Symbol(A, Decl(mutrec.ts, 0, 0)) +} + +function f(p: A) { return p }; +>f : Symbol(f, Decl(mutrec.ts, 6, 1)) +>p : Symbol(p, Decl(mutrec.ts, 8, 11)) +>A : Symbol(A, Decl(mutrec.ts, 0, 0)) +>p : Symbol(p, Decl(mutrec.ts, 8, 11)) + +var b:B; +>b : Symbol(b, Decl(mutrec.ts, 9, 3)) +>B : Symbol(B, Decl(mutrec.ts, 2, 1)) + +f(b); +>f : Symbol(f, Decl(mutrec.ts, 6, 1)) +>b : Symbol(b, Decl(mutrec.ts, 9, 3)) + +interface I1 { +>I1 : Symbol(I1, Decl(mutrec.ts, 10, 5)) + + y:I2; +>y : Symbol(y, Decl(mutrec.ts, 12, 14)) +>I2 : Symbol(I2, Decl(mutrec.ts, 14, 1)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(mutrec.ts, 14, 1)) + + y:I3; +>y : Symbol(y, Decl(mutrec.ts, 16, 14)) +>I3 : Symbol(I3, Decl(mutrec.ts, 18, 1)) +} + +interface I3 { +>I3 : Symbol(I3, Decl(mutrec.ts, 18, 1)) + + y:I1; +>y : Symbol(y, Decl(mutrec.ts, 20, 14)) +>I1 : Symbol(I1, Decl(mutrec.ts, 10, 5)) +} + +function g(p: I1) { return p }; +>g : Symbol(g, Decl(mutrec.ts, 22, 1)) +>p : Symbol(p, Decl(mutrec.ts, 24, 11)) +>I1 : Symbol(I1, Decl(mutrec.ts, 10, 5)) +>p : Symbol(p, Decl(mutrec.ts, 24, 11)) + +var i2:I2; +>i2 : Symbol(i2, Decl(mutrec.ts, 25, 3)) +>I2 : Symbol(I2, Decl(mutrec.ts, 14, 1)) + +g(i2); +>g : Symbol(g, Decl(mutrec.ts, 22, 1)) +>i2 : Symbol(i2, Decl(mutrec.ts, 25, 3)) + +var i3:I3; +>i3 : Symbol(i3, Decl(mutrec.ts, 27, 3)) +>I3 : Symbol(I3, Decl(mutrec.ts, 18, 1)) + +g(i3); +>g : Symbol(g, Decl(mutrec.ts, 22, 1)) +>i3 : Symbol(i3, Decl(mutrec.ts, 27, 3)) + +interface I4 { +>I4 : Symbol(I4, Decl(mutrec.ts, 28, 6)) + + y:I5; +>y : Symbol(y, Decl(mutrec.ts, 30, 14)) +>I5 : Symbol(I5, Decl(mutrec.ts, 32, 1)) +} + +interface I5 { +>I5 : Symbol(I5, Decl(mutrec.ts, 32, 1)) + + y:I4; +>y : Symbol(y, Decl(mutrec.ts, 34, 14)) +>I4 : Symbol(I4, Decl(mutrec.ts, 28, 6)) +} + +var i4:I4; +>i4 : Symbol(i4, Decl(mutrec.ts, 38, 3)) +>I4 : Symbol(I4, Decl(mutrec.ts, 28, 6)) + +g(i4); +>g : Symbol(g, Decl(mutrec.ts, 22, 1)) +>i4 : Symbol(i4, Decl(mutrec.ts, 38, 3)) + + diff --git a/tests/baselines/reference/mutrec.types b/tests/baselines/reference/mutrec.types index c3f29c7d80ecc..6c1471744848f 100644 --- a/tests/baselines/reference/mutrec.types +++ b/tests/baselines/reference/mutrec.types @@ -1,106 +1,106 @@ === tests/cases/compiler/mutrec.ts === interface A { ->A : A, Symbol(A, Decl(mutrec.ts, 0, 0)) +>A : A x:B[]; ->x : B[], Symbol(x, Decl(mutrec.ts, 0, 13)) ->B : B, Symbol(B, Decl(mutrec.ts, 2, 1)) +>x : B[] +>B : B } interface B { ->B : B, Symbol(B, Decl(mutrec.ts, 2, 1)) +>B : B x:A[]; ->x : A[], Symbol(x, Decl(mutrec.ts, 4, 13)) ->A : A, Symbol(A, Decl(mutrec.ts, 0, 0)) +>x : A[] +>A : A } function f(p: A) { return p }; ->f : (p: A) => A, Symbol(f, Decl(mutrec.ts, 6, 1)) ->p : A, Symbol(p, Decl(mutrec.ts, 8, 11)) ->A : A, Symbol(A, Decl(mutrec.ts, 0, 0)) ->p : A, Symbol(p, Decl(mutrec.ts, 8, 11)) +>f : (p: A) => A +>p : A +>A : A +>p : A var b:B; ->b : B, Symbol(b, Decl(mutrec.ts, 9, 3)) ->B : B, Symbol(B, Decl(mutrec.ts, 2, 1)) +>b : B +>B : B f(b); >f(b) : A ->f : (p: A) => A, Symbol(f, Decl(mutrec.ts, 6, 1)) ->b : B, Symbol(b, Decl(mutrec.ts, 9, 3)) +>f : (p: A) => A +>b : B interface I1 { ->I1 : I1, Symbol(I1, Decl(mutrec.ts, 10, 5)) +>I1 : I1 y:I2; ->y : I2, Symbol(y, Decl(mutrec.ts, 12, 14)) ->I2 : I2, Symbol(I2, Decl(mutrec.ts, 14, 1)) +>y : I2 +>I2 : I2 } interface I2 { ->I2 : I2, Symbol(I2, Decl(mutrec.ts, 14, 1)) +>I2 : I2 y:I3; ->y : I3, Symbol(y, Decl(mutrec.ts, 16, 14)) ->I3 : I3, Symbol(I3, Decl(mutrec.ts, 18, 1)) +>y : I3 +>I3 : I3 } interface I3 { ->I3 : I3, Symbol(I3, Decl(mutrec.ts, 18, 1)) +>I3 : I3 y:I1; ->y : I1, Symbol(y, Decl(mutrec.ts, 20, 14)) ->I1 : I1, Symbol(I1, Decl(mutrec.ts, 10, 5)) +>y : I1 +>I1 : I1 } function g(p: I1) { return p }; ->g : (p: I1) => I1, Symbol(g, Decl(mutrec.ts, 22, 1)) ->p : I1, Symbol(p, Decl(mutrec.ts, 24, 11)) ->I1 : I1, Symbol(I1, Decl(mutrec.ts, 10, 5)) ->p : I1, Symbol(p, Decl(mutrec.ts, 24, 11)) +>g : (p: I1) => I1 +>p : I1 +>I1 : I1 +>p : I1 var i2:I2; ->i2 : I2, Symbol(i2, Decl(mutrec.ts, 25, 3)) ->I2 : I2, Symbol(I2, Decl(mutrec.ts, 14, 1)) +>i2 : I2 +>I2 : I2 g(i2); >g(i2) : I1 ->g : (p: I1) => I1, Symbol(g, Decl(mutrec.ts, 22, 1)) ->i2 : I2, Symbol(i2, Decl(mutrec.ts, 25, 3)) +>g : (p: I1) => I1 +>i2 : I2 var i3:I3; ->i3 : I3, Symbol(i3, Decl(mutrec.ts, 27, 3)) ->I3 : I3, Symbol(I3, Decl(mutrec.ts, 18, 1)) +>i3 : I3 +>I3 : I3 g(i3); >g(i3) : I1 ->g : (p: I1) => I1, Symbol(g, Decl(mutrec.ts, 22, 1)) ->i3 : I3, Symbol(i3, Decl(mutrec.ts, 27, 3)) +>g : (p: I1) => I1 +>i3 : I3 interface I4 { ->I4 : I4, Symbol(I4, Decl(mutrec.ts, 28, 6)) +>I4 : I4 y:I5; ->y : I5, Symbol(y, Decl(mutrec.ts, 30, 14)) ->I5 : I5, Symbol(I5, Decl(mutrec.ts, 32, 1)) +>y : I5 +>I5 : I5 } interface I5 { ->I5 : I5, Symbol(I5, Decl(mutrec.ts, 32, 1)) +>I5 : I5 y:I4; ->y : I4, Symbol(y, Decl(mutrec.ts, 34, 14)) ->I4 : I4, Symbol(I4, Decl(mutrec.ts, 28, 6)) +>y : I4 +>I4 : I4 } var i4:I4; ->i4 : I4, Symbol(i4, Decl(mutrec.ts, 38, 3)) ->I4 : I4, Symbol(I4, Decl(mutrec.ts, 28, 6)) +>i4 : I4 +>I4 : I4 g(i4); >g(i4) : I1 ->g : (p: I1) => I1, Symbol(g, Decl(mutrec.ts, 22, 1)) ->i4 : I4, Symbol(i4, Decl(mutrec.ts, 38, 3)) +>g : (p: I1) => I1 +>i4 : I4 diff --git a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.symbols b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.symbols new file mode 100644 index 0000000000000..67871a590cb6e --- /dev/null +++ b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/mutuallyRecursiveGenericBaseTypes1.ts === +interface A { +>A : Symbol(A, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 0)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 12)) + + foo(): B; // instead of B does see this +>foo : Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) +>B : Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 12)) + + foo(): void; // instead of B does see this +>foo : Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) + + foo2(): B; +>foo2 : Symbol(foo2, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 2, 16)) +>B : Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) +} + +interface B extends A { +>B : Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 7, 12)) +>A : Symbol(A, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 0)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 7, 12)) + + bar(): void; +>bar : Symbol(bar, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 7, 29)) +} + +var b: B; +>b : Symbol(b, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 11, 3)) +>B : Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) + +b.foo(); // should not error +>b.foo : Symbol(A.foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) +>b : Symbol(b, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 11, 3)) +>foo : Symbol(A.foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) + + + diff --git a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types index 35b1fb3f37633..989f7d32d29ee 100644 --- a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types +++ b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types @@ -1,40 +1,40 @@ === tests/cases/compiler/mutuallyRecursiveGenericBaseTypes1.ts === interface A { ->A : A, Symbol(A, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 0)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 12)) +>A : A +>T : T foo(): B; // instead of B does see this ->foo : { (): B; (): void; }, Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) ->B : B, Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 12)) +>foo : { (): B; (): void; } +>B : B +>T : T foo(): void; // instead of B does see this ->foo : { (): B; (): void; }, Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) +>foo : { (): B; (): void; } foo2(): B; ->foo2 : () => B, Symbol(foo2, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 2, 16)) ->B : B, Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) +>foo2 : () => B +>B : B } interface B extends A { ->B : B, Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 7, 12)) ->A : A, Symbol(A, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 0)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 7, 12)) +>B : B +>T : T +>A : A +>T : T bar(): void; ->bar : () => void, Symbol(bar, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 7, 29)) +>bar : () => void } var b: B; ->b : B, Symbol(b, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 11, 3)) ->B : B, Symbol(B, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 5, 1)) +>b : B +>B : B b.foo(); // should not error >b.foo() : B ->b.foo : { (): B; (): void; }, Symbol(A.foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) ->b : B, Symbol(b, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 11, 3)) ->foo : { (): B; (): void; }, Symbol(A.foo, Decl(mutuallyRecursiveGenericBaseTypes1.ts, 0, 16), Decl(mutuallyRecursiveGenericBaseTypes1.ts, 1, 16)) +>b.foo : { (): B; (): void; } +>b : B +>foo : { (): B; (): void; } diff --git a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.symbols b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.symbols new file mode 100644 index 0000000000000..d66f6a0c66f46 --- /dev/null +++ b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/mutuallyRecursiveGenericBaseTypes2.ts === +class foo +>foo : Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 0)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 10)) +{ + bar(): foo2 { return null; } +>bar : Symbol(bar, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 1, 1)) +>foo2 : Symbol(foo2, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 3, 1)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 10)) +} + +class foo2 extends foo { +>foo2 : Symbol(foo2, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 3, 1)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 5, 11)) +>foo : Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 0)) +>T : Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 5, 11)) +} + +var test = new foo(); +>test : Symbol(test, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 8, 3)) +>foo : Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 0)) + diff --git a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.types b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.types index dcd192dcd9fa5..ac722f8a063af 100644 --- a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.types +++ b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes2.types @@ -1,24 +1,24 @@ === tests/cases/compiler/mutuallyRecursiveGenericBaseTypes2.ts === class foo ->foo : foo, Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 0)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 10)) +>foo : foo +>T : T { bar(): foo2 { return null; } ->bar : () => foo2, Symbol(bar, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 1, 1)) ->foo2 : foo2, Symbol(foo2, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 3, 1)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 10)) +>bar : () => foo2 +>foo2 : foo2 +>T : T >null : null } class foo2 extends foo { ->foo2 : foo2, Symbol(foo2, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 3, 1)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 5, 11)) ->foo : foo, Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 0)) ->T : T, Symbol(T, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 5, 11)) +>foo2 : foo2 +>T : T +>foo : foo +>T : T } var test = new foo(); ->test : foo, Symbol(test, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 8, 3)) +>test : foo >new foo() : foo ->foo : typeof foo, Symbol(foo, Decl(mutuallyRecursiveGenericBaseTypes2.ts, 0, 0)) +>foo : typeof foo diff --git a/tests/baselines/reference/nameCollision.symbols b/tests/baselines/reference/nameCollision.symbols new file mode 100644 index 0000000000000..064726e21faa3 --- /dev/null +++ b/tests/baselines/reference/nameCollision.symbols @@ -0,0 +1,88 @@ +=== tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts === +module A { +>A : Symbol(A, Decl(nameCollision.ts, 0, 0)) + + // these 2 statements force an underscore before the 'A' + // in the generated function call. + var A = 12; +>A : Symbol(A, Decl(nameCollision.ts, 3, 7)) + + var _A = ''; +>_A : Symbol(_A, Decl(nameCollision.ts, 4, 7)) +} + +module B { +>B : Symbol(B, Decl(nameCollision.ts, 5, 1), Decl(nameCollision.ts, 9, 1)) + + var A = 12; +>A : Symbol(A, Decl(nameCollision.ts, 8, 7)) +} + +module B { +>B : Symbol(B, Decl(nameCollision.ts, 5, 1), Decl(nameCollision.ts, 9, 1)) + + // re-opened module with colliding name + // this should add an underscore. + class B { +>B : Symbol(B, Decl(nameCollision.ts, 11, 10)) + + name: string; +>name : Symbol(name, Decl(nameCollision.ts, 14, 13)) + } +} + +module X { +>X : Symbol(X, Decl(nameCollision.ts, 17, 1)) + + var X = 13; +>X : Symbol(X, Decl(nameCollision.ts, 20, 7)) + + export module Y { +>Y : Symbol(Y, Decl(nameCollision.ts, 20, 15)) + + var Y = 13; +>Y : Symbol(Y, Decl(nameCollision.ts, 22, 11)) + + export module Z { +>Z : Symbol(Z, Decl(nameCollision.ts, 22, 19)) + + var X = 12; +>X : Symbol(X, Decl(nameCollision.ts, 24, 15)) + + var Y = 12; +>Y : Symbol(Y, Decl(nameCollision.ts, 25, 15)) + + var Z = 12; +>Z : Symbol(Z, Decl(nameCollision.ts, 26, 15)) + } + } +} + +module Y.Y { +>Y : Symbol(Y, Decl(nameCollision.ts, 29, 1)) +>Y : Symbol(Y, Decl(nameCollision.ts, 31, 9)) + + export enum Y { +>Y : Symbol(Y, Decl(nameCollision.ts, 31, 12)) + + Red, Blue +>Red : Symbol(Y.Red, Decl(nameCollision.ts, 32, 19)) +>Blue : Symbol(Y.Blue, Decl(nameCollision.ts, 33, 12)) + } +} + +// no collision, since interface doesn't +// generate code. +module D { +>D : Symbol(D, Decl(nameCollision.ts, 35, 1)) + + export interface D { +>D : Symbol(D, Decl(nameCollision.ts, 39, 10)) + + id: number; +>id : Symbol(id, Decl(nameCollision.ts, 40, 24)) + } + + export var E = 'hello'; +>E : Symbol(E, Decl(nameCollision.ts, 44, 14)) +} diff --git a/tests/baselines/reference/nameCollision.types b/tests/baselines/reference/nameCollision.types index 07b376551b473..e8badb7ab92ef 100644 --- a/tests/baselines/reference/nameCollision.types +++ b/tests/baselines/reference/nameCollision.types @@ -1,97 +1,97 @@ === tests/cases/conformance/internalModules/codeGeneration/nameCollision.ts === module A { ->A : typeof A, Symbol(A, Decl(nameCollision.ts, 0, 0)) +>A : typeof A // these 2 statements force an underscore before the 'A' // in the generated function call. var A = 12; ->A : number, Symbol(A, Decl(nameCollision.ts, 3, 7)) +>A : number >12 : number var _A = ''; ->_A : string, Symbol(_A, Decl(nameCollision.ts, 4, 7)) +>_A : string >'' : string } module B { ->B : typeof B, Symbol(B, Decl(nameCollision.ts, 5, 1), Decl(nameCollision.ts, 9, 1)) +>B : typeof B var A = 12; ->A : number, Symbol(A, Decl(nameCollision.ts, 8, 7)) +>A : number >12 : number } module B { ->B : typeof B, Symbol(B, Decl(nameCollision.ts, 5, 1), Decl(nameCollision.ts, 9, 1)) +>B : typeof B // re-opened module with colliding name // this should add an underscore. class B { ->B : B, Symbol(B, Decl(nameCollision.ts, 11, 10)) +>B : B name: string; ->name : string, Symbol(name, Decl(nameCollision.ts, 14, 13)) +>name : string } } module X { ->X : typeof X, Symbol(X, Decl(nameCollision.ts, 17, 1)) +>X : typeof X var X = 13; ->X : number, Symbol(X, Decl(nameCollision.ts, 20, 7)) +>X : number >13 : number export module Y { ->Y : typeof X.Y, Symbol(Y, Decl(nameCollision.ts, 20, 15)) +>Y : typeof X.Y var Y = 13; ->Y : number, Symbol(Y, Decl(nameCollision.ts, 22, 11)) +>Y : number >13 : number export module Z { ->Z : typeof X.Y.Z, Symbol(Z, Decl(nameCollision.ts, 22, 19)) +>Z : typeof X.Y.Z var X = 12; ->X : number, Symbol(X, Decl(nameCollision.ts, 24, 15)) +>X : number >12 : number var Y = 12; ->Y : number, Symbol(Y, Decl(nameCollision.ts, 25, 15)) +>Y : number >12 : number var Z = 12; ->Z : number, Symbol(Z, Decl(nameCollision.ts, 26, 15)) +>Z : number >12 : number } } } module Y.Y { ->Y : typeof Y, Symbol(Y, Decl(nameCollision.ts, 29, 1)) ->Y : typeof Y.Y, Symbol(Y, Decl(nameCollision.ts, 31, 9)) +>Y : typeof Y +>Y : typeof Y.Y export enum Y { ->Y : Y, Symbol(Y, Decl(nameCollision.ts, 31, 12)) +>Y : Y Red, Blue ->Red : Y, Symbol(Y.Red, Decl(nameCollision.ts, 32, 19)) ->Blue : Y, Symbol(Y.Blue, Decl(nameCollision.ts, 33, 12)) +>Red : Y +>Blue : Y } } // no collision, since interface doesn't // generate code. module D { ->D : typeof D, Symbol(D, Decl(nameCollision.ts, 35, 1)) +>D : typeof D export interface D { ->D : D, Symbol(D, Decl(nameCollision.ts, 39, 10)) +>D : D id: number; ->id : number, Symbol(id, Decl(nameCollision.ts, 40, 24)) +>id : number } export var E = 'hello'; ->E : string, Symbol(E, Decl(nameCollision.ts, 44, 14)) +>E : string >'hello' : string } diff --git a/tests/baselines/reference/nameCollisionsInPropertyAssignments.symbols b/tests/baselines/reference/nameCollisionsInPropertyAssignments.symbols new file mode 100644 index 0000000000000..2e40d0f8bc51a --- /dev/null +++ b/tests/baselines/reference/nameCollisionsInPropertyAssignments.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/nameCollisionsInPropertyAssignments.ts === +var x = 1 +>x : Symbol(x, Decl(nameCollisionsInPropertyAssignments.ts, 0, 3)) + +var y = { x() { x++; } }; +>y : Symbol(y, Decl(nameCollisionsInPropertyAssignments.ts, 1, 3)) +>x : Symbol(x, Decl(nameCollisionsInPropertyAssignments.ts, 1, 9)) +>x : Symbol(x, Decl(nameCollisionsInPropertyAssignments.ts, 0, 3)) + diff --git a/tests/baselines/reference/nameCollisionsInPropertyAssignments.types b/tests/baselines/reference/nameCollisionsInPropertyAssignments.types index e78d33912bedb..bffe75896c40c 100644 --- a/tests/baselines/reference/nameCollisionsInPropertyAssignments.types +++ b/tests/baselines/reference/nameCollisionsInPropertyAssignments.types @@ -1,12 +1,12 @@ === tests/cases/compiler/nameCollisionsInPropertyAssignments.ts === var x = 1 ->x : number, Symbol(x, Decl(nameCollisionsInPropertyAssignments.ts, 0, 3)) +>x : number >1 : number var y = { x() { x++; } }; ->y : { x(): void; }, Symbol(y, Decl(nameCollisionsInPropertyAssignments.ts, 1, 3)) +>y : { x(): void; } >{ x() { x++; } } : { x(): void; } ->x : () => void, Symbol(x, Decl(nameCollisionsInPropertyAssignments.ts, 1, 9)) +>x : () => void >x++ : number ->x : number, Symbol(x, Decl(nameCollisionsInPropertyAssignments.ts, 0, 3)) +>x : number diff --git a/tests/baselines/reference/nameDelimitedBySlashes.symbols b/tests/baselines/reference/nameDelimitedBySlashes.symbols new file mode 100644 index 0000000000000..d09ce913419f3 --- /dev/null +++ b/tests/baselines/reference/nameDelimitedBySlashes.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/externalModules/foo_1.ts === +import foo = require('./test/foo_0'); +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) + +var x = foo.foo + 42; +>x : Symbol(x, Decl(foo_1.ts, 1, 3)) +>foo.foo : Symbol(foo.foo, Decl(foo_0.ts, 0, 10)) +>foo : Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : Symbol(foo.foo, Decl(foo_0.ts, 0, 10)) + +=== tests/cases/conformance/externalModules/test/foo_0.ts === +export var foo = 42; +>foo : Symbol(foo, Decl(foo_0.ts, 0, 10)) + diff --git a/tests/baselines/reference/nameDelimitedBySlashes.types b/tests/baselines/reference/nameDelimitedBySlashes.types index 585ef2d16ef42..4987a52196fe4 100644 --- a/tests/baselines/reference/nameDelimitedBySlashes.types +++ b/tests/baselines/reference/nameDelimitedBySlashes.types @@ -1,17 +1,17 @@ === tests/cases/conformance/externalModules/foo_1.ts === import foo = require('./test/foo_0'); ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) +>foo : typeof foo var x = foo.foo + 42; ->x : number, Symbol(x, Decl(foo_1.ts, 1, 3)) +>x : number >foo.foo + 42 : number ->foo.foo : number, Symbol(foo.foo, Decl(foo_0.ts, 0, 10)) ->foo : typeof foo, Symbol(foo, Decl(foo_1.ts, 0, 0)) ->foo : number, Symbol(foo.foo, Decl(foo_0.ts, 0, 10)) +>foo.foo : number +>foo : typeof foo +>foo : number >42 : number === tests/cases/conformance/externalModules/test/foo_0.ts === export var foo = 42; ->foo : number, Symbol(foo, Decl(foo_0.ts, 0, 10)) +>foo : number >42 : number diff --git a/tests/baselines/reference/nameWithRelativePaths.symbols b/tests/baselines/reference/nameWithRelativePaths.symbols new file mode 100644 index 0000000000000..d86eb64bff28b --- /dev/null +++ b/tests/baselines/reference/nameWithRelativePaths.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/externalModules/test/foo_3.ts === +import foo0 = require('../foo_0'); +>foo0 : Symbol(foo0, Decl(foo_3.ts, 0, 0)) + +import foo1 = require('./test/foo_1'); +>foo1 : Symbol(foo1, Decl(foo_3.ts, 0, 34)) + +import foo2 = require('./.././test/foo_2'); +>foo2 : Symbol(foo2, Decl(foo_3.ts, 1, 38)) + +if(foo2.M2.x){ +>foo2.M2.x : Symbol(foo2.M2.x, Decl(foo_2.ts, 1, 11)) +>foo2.M2 : Symbol(foo2.M2, Decl(foo_2.ts, 0, 0)) +>foo2 : Symbol(foo2, Decl(foo_3.ts, 1, 38)) +>M2 : Symbol(foo2.M2, Decl(foo_2.ts, 0, 0)) +>x : Symbol(foo2.M2.x, Decl(foo_2.ts, 1, 11)) + + var x = foo0.foo + foo1.f(); +>x : Symbol(x, Decl(foo_3.ts, 5, 4)) +>foo0.foo : Symbol(foo0.foo, Decl(foo_0.ts, 0, 10)) +>foo0 : Symbol(foo0, Decl(foo_3.ts, 0, 0)) +>foo : Symbol(foo0.foo, Decl(foo_0.ts, 0, 10)) +>foo1.f : Symbol(foo1.f, Decl(foo_1.ts, 0, 0)) +>foo1 : Symbol(foo1, Decl(foo_3.ts, 0, 34)) +>f : Symbol(foo1.f, Decl(foo_1.ts, 0, 0)) +} + +=== tests/cases/conformance/externalModules/foo_0.ts === +export var foo = 42; +>foo : Symbol(foo, Decl(foo_0.ts, 0, 10)) + +=== tests/cases/conformance/externalModules/test/test/foo_1.ts === +export function f(){ +>f : Symbol(f, Decl(foo_1.ts, 0, 0)) + + return 42; +} + +=== tests/cases/conformance/externalModules/test/foo_2.ts === +export module M2 { +>M2 : Symbol(M2, Decl(foo_2.ts, 0, 0)) + + export var x = true; +>x : Symbol(x, Decl(foo_2.ts, 1, 11)) +} + diff --git a/tests/baselines/reference/nameWithRelativePaths.types b/tests/baselines/reference/nameWithRelativePaths.types index d89ce86de5749..ea552cfa5310d 100644 --- a/tests/baselines/reference/nameWithRelativePaths.types +++ b/tests/baselines/reference/nameWithRelativePaths.types @@ -1,40 +1,40 @@ === tests/cases/conformance/externalModules/test/foo_3.ts === import foo0 = require('../foo_0'); ->foo0 : typeof foo0, Symbol(foo0, Decl(foo_3.ts, 0, 0)) +>foo0 : typeof foo0 import foo1 = require('./test/foo_1'); ->foo1 : typeof foo1, Symbol(foo1, Decl(foo_3.ts, 0, 34)) +>foo1 : typeof foo1 import foo2 = require('./.././test/foo_2'); ->foo2 : typeof foo2, Symbol(foo2, Decl(foo_3.ts, 1, 38)) +>foo2 : typeof foo2 if(foo2.M2.x){ ->foo2.M2.x : boolean, Symbol(foo2.M2.x, Decl(foo_2.ts, 1, 11)) ->foo2.M2 : typeof foo2.M2, Symbol(foo2.M2, Decl(foo_2.ts, 0, 0)) ->foo2 : typeof foo2, Symbol(foo2, Decl(foo_3.ts, 1, 38)) ->M2 : typeof foo2.M2, Symbol(foo2.M2, Decl(foo_2.ts, 0, 0)) ->x : boolean, Symbol(foo2.M2.x, Decl(foo_2.ts, 1, 11)) +>foo2.M2.x : boolean +>foo2.M2 : typeof foo2.M2 +>foo2 : typeof foo2 +>M2 : typeof foo2.M2 +>x : boolean var x = foo0.foo + foo1.f(); ->x : number, Symbol(x, Decl(foo_3.ts, 5, 4)) +>x : number >foo0.foo + foo1.f() : number ->foo0.foo : number, Symbol(foo0.foo, Decl(foo_0.ts, 0, 10)) ->foo0 : typeof foo0, Symbol(foo0, Decl(foo_3.ts, 0, 0)) ->foo : number, Symbol(foo0.foo, Decl(foo_0.ts, 0, 10)) +>foo0.foo : number +>foo0 : typeof foo0 +>foo : number >foo1.f() : number ->foo1.f : () => number, Symbol(foo1.f, Decl(foo_1.ts, 0, 0)) ->foo1 : typeof foo1, Symbol(foo1, Decl(foo_3.ts, 0, 34)) ->f : () => number, Symbol(foo1.f, Decl(foo_1.ts, 0, 0)) +>foo1.f : () => number +>foo1 : typeof foo1 +>f : () => number } === tests/cases/conformance/externalModules/foo_0.ts === export var foo = 42; ->foo : number, Symbol(foo, Decl(foo_0.ts, 0, 10)) +>foo : number >42 : number === tests/cases/conformance/externalModules/test/test/foo_1.ts === export function f(){ ->f : () => number, Symbol(f, Decl(foo_1.ts, 0, 0)) +>f : () => number return 42; >42 : number @@ -42,10 +42,10 @@ export function f(){ === tests/cases/conformance/externalModules/test/foo_2.ts === export module M2 { ->M2 : typeof M2, Symbol(M2, Decl(foo_2.ts, 0, 0)) +>M2 : typeof M2 export var x = true; ->x : boolean, Symbol(x, Decl(foo_2.ts, 1, 11)) +>x : boolean >true : boolean } diff --git a/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.symbols b/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.symbols new file mode 100644 index 0000000000000..707bc64571f43 --- /dev/null +++ b/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/namedFunctionExpressionAssignedToClassProperty.ts === +class Foo{ +>Foo : Symbol(Foo, Decl(namedFunctionExpressionAssignedToClassProperty.ts, 0, 0)) + + a = function bar(){ +>a : Symbol(a, Decl(namedFunctionExpressionAssignedToClassProperty.ts, 0, 10)) +>bar : Symbol(bar, Decl(namedFunctionExpressionAssignedToClassProperty.ts, 2, 10)) + + }; // this shouldn't crash the compiler... + + + + constructor(){ + + } + +} + diff --git a/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.types b/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.types index 679ee07459959..49ba563379efe 100644 --- a/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.types +++ b/tests/baselines/reference/namedFunctionExpressionAssignedToClassProperty.types @@ -1,11 +1,11 @@ === tests/cases/compiler/namedFunctionExpressionAssignedToClassProperty.ts === class Foo{ ->Foo : Foo, Symbol(Foo, Decl(namedFunctionExpressionAssignedToClassProperty.ts, 0, 0)) +>Foo : Foo a = function bar(){ ->a : () => void, Symbol(a, Decl(namedFunctionExpressionAssignedToClassProperty.ts, 0, 10)) +>a : () => void >function bar(){ } : () => void ->bar : () => void, Symbol(bar, Decl(namedFunctionExpressionAssignedToClassProperty.ts, 2, 10)) +>bar : () => void }; // this shouldn't crash the compiler... diff --git a/tests/baselines/reference/namedFunctionExpressionCall.symbols b/tests/baselines/reference/namedFunctionExpressionCall.symbols new file mode 100644 index 0000000000000..c4ee0d3db4be7 --- /dev/null +++ b/tests/baselines/reference/namedFunctionExpressionCall.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/namedFunctionExpressionCall.ts === +var recurser = function foo() { +>recurser : Symbol(recurser, Decl(namedFunctionExpressionCall.ts, 0, 3)) +>foo : Symbol(foo, Decl(namedFunctionExpressionCall.ts, 0, 14)) + + // using the local name + foo(); +>foo : Symbol(foo, Decl(namedFunctionExpressionCall.ts, 0, 14)) + + // using the globally visible name + recurser(); +>recurser : Symbol(recurser, Decl(namedFunctionExpressionCall.ts, 0, 3)) + +}; + + +(function bar() { +>bar : Symbol(bar, Decl(namedFunctionExpressionCall.ts, 9, 1)) + + bar(); +>bar : Symbol(bar, Decl(namedFunctionExpressionCall.ts, 9, 1)) + +}); diff --git a/tests/baselines/reference/namedFunctionExpressionCall.types b/tests/baselines/reference/namedFunctionExpressionCall.types index b4684ea6675dd..f70bc8c17dcb6 100644 --- a/tests/baselines/reference/namedFunctionExpressionCall.types +++ b/tests/baselines/reference/namedFunctionExpressionCall.types @@ -1,18 +1,18 @@ === tests/cases/compiler/namedFunctionExpressionCall.ts === var recurser = function foo() { ->recurser : () => void, Symbol(recurser, Decl(namedFunctionExpressionCall.ts, 0, 3)) +>recurser : () => void >function foo() { // using the local name foo(); // using the globally visible name recurser();} : () => void ->foo : () => void, Symbol(foo, Decl(namedFunctionExpressionCall.ts, 0, 14)) +>foo : () => void // using the local name foo(); >foo() : void ->foo : () => void, Symbol(foo, Decl(namedFunctionExpressionCall.ts, 0, 14)) +>foo : () => void // using the globally visible name recurser(); >recurser() : void ->recurser : () => void, Symbol(recurser, Decl(namedFunctionExpressionCall.ts, 0, 3)) +>recurser : () => void }; @@ -20,10 +20,10 @@ var recurser = function foo() { (function bar() { >(function bar() { bar();}) : () => void >function bar() { bar();} : () => void ->bar : () => void, Symbol(bar, Decl(namedFunctionExpressionCall.ts, 9, 1)) +>bar : () => void bar(); >bar() : void ->bar : () => void, Symbol(bar, Decl(namedFunctionExpressionCall.ts, 9, 1)) +>bar : () => void }); diff --git a/tests/baselines/reference/namedFunctionExpressionInModule.symbols b/tests/baselines/reference/namedFunctionExpressionInModule.symbols new file mode 100644 index 0000000000000..703cce7bf1428 --- /dev/null +++ b/tests/baselines/reference/namedFunctionExpressionInModule.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/namedFunctionExpressionInModule.ts === +module Variables{ +>Variables : Symbol(Variables, Decl(namedFunctionExpressionInModule.ts, 0, 0)) + + var x = function bar(a, b, c) { +>x : Symbol(x, Decl(namedFunctionExpressionInModule.ts, 1, 7)) +>bar : Symbol(bar, Decl(namedFunctionExpressionInModule.ts, 1, 11)) +>a : Symbol(a, Decl(namedFunctionExpressionInModule.ts, 1, 25)) +>b : Symbol(b, Decl(namedFunctionExpressionInModule.ts, 1, 27)) +>c : Symbol(c, Decl(namedFunctionExpressionInModule.ts, 1, 30)) + } + x(1, 2, 3); +>x : Symbol(x, Decl(namedFunctionExpressionInModule.ts, 1, 7)) +} + diff --git a/tests/baselines/reference/namedFunctionExpressionInModule.types b/tests/baselines/reference/namedFunctionExpressionInModule.types index ea06471e953a5..8202cfbaf1bf4 100644 --- a/tests/baselines/reference/namedFunctionExpressionInModule.types +++ b/tests/baselines/reference/namedFunctionExpressionInModule.types @@ -1,18 +1,18 @@ === tests/cases/compiler/namedFunctionExpressionInModule.ts === module Variables{ ->Variables : typeof Variables, Symbol(Variables, Decl(namedFunctionExpressionInModule.ts, 0, 0)) +>Variables : typeof Variables var x = function bar(a, b, c) { ->x : (a: any, b: any, c: any) => void, Symbol(x, Decl(namedFunctionExpressionInModule.ts, 1, 7)) +>x : (a: any, b: any, c: any) => void >function bar(a, b, c) { } : (a: any, b: any, c: any) => void ->bar : (a: any, b: any, c: any) => void, Symbol(bar, Decl(namedFunctionExpressionInModule.ts, 1, 11)) ->a : any, Symbol(a, Decl(namedFunctionExpressionInModule.ts, 1, 25)) ->b : any, Symbol(b, Decl(namedFunctionExpressionInModule.ts, 1, 27)) ->c : any, Symbol(c, Decl(namedFunctionExpressionInModule.ts, 1, 30)) +>bar : (a: any, b: any, c: any) => void +>a : any +>b : any +>c : any } x(1, 2, 3); >x(1, 2, 3) : void ->x : (a: any, b: any, c: any) => void, Symbol(x, Decl(namedFunctionExpressionInModule.ts, 1, 7)) +>x : (a: any, b: any, c: any) => void >1 : number >2 : number >3 : number diff --git a/tests/baselines/reference/namespaces1.symbols b/tests/baselines/reference/namespaces1.symbols new file mode 100644 index 0000000000000..f31860b5a2771 --- /dev/null +++ b/tests/baselines/reference/namespaces1.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/namespaces1.ts === +module X { +>X : Symbol(X, Decl(namespaces1.ts, 0, 0)) + + export module Y { +>Y : Symbol(Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) + + export interface Z { } +>Z : Symbol(Z, Decl(namespaces1.ts, 1, 21)) + } + export interface Y { } +>Y : Symbol(Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) +} + +var x: X.Y.Z; +>x : Symbol(x, Decl(namespaces1.ts, 7, 3)) +>X : Symbol(X, Decl(namespaces1.ts, 0, 0)) +>Y : Symbol(X.Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) +>Z : Symbol(X.Y.Z, Decl(namespaces1.ts, 1, 21)) + +var x2: X.Y; +>x2 : Symbol(x2, Decl(namespaces1.ts, 8, 3)) +>X : Symbol(X, Decl(namespaces1.ts, 0, 0)) +>Y : Symbol(X.Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) + diff --git a/tests/baselines/reference/namespaces1.types b/tests/baselines/reference/namespaces1.types index 397fffca34462..9aa0f8f4dfaf5 100644 --- a/tests/baselines/reference/namespaces1.types +++ b/tests/baselines/reference/namespaces1.types @@ -1,25 +1,25 @@ === tests/cases/compiler/namespaces1.ts === module X { ->X : any, Symbol(X, Decl(namespaces1.ts, 0, 0)) +>X : any export module Y { ->Y : any, Symbol(Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) +>Y : any export interface Z { } ->Z : Z, Symbol(Z, Decl(namespaces1.ts, 1, 21)) +>Z : Z } export interface Y { } ->Y : Y, Symbol(Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) +>Y : Y } var x: X.Y.Z; ->x : X.Y.Z, Symbol(x, Decl(namespaces1.ts, 7, 3)) ->X : any, Symbol(X, Decl(namespaces1.ts, 0, 0)) ->Y : any, Symbol(X.Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) ->Z : X.Y.Z, Symbol(X.Y.Z, Decl(namespaces1.ts, 1, 21)) +>x : X.Y.Z +>X : any +>Y : any +>Z : X.Y.Z var x2: X.Y; ->x2 : X.Y, Symbol(x2, Decl(namespaces1.ts, 8, 3)) ->X : any, Symbol(X, Decl(namespaces1.ts, 0, 0)) ->Y : X.Y, Symbol(X.Y, Decl(namespaces1.ts, 0, 10), Decl(namespaces1.ts, 3, 5)) +>x2 : X.Y +>X : any +>Y : X.Y diff --git a/tests/baselines/reference/namespaces2.symbols b/tests/baselines/reference/namespaces2.symbols new file mode 100644 index 0000000000000..a02d9e1c1ccb1 --- /dev/null +++ b/tests/baselines/reference/namespaces2.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/namespaces2.ts === +module A { +>A : Symbol(A, Decl(namespaces2.ts, 0, 0)) + + export module B { +>B : Symbol(B, Decl(namespaces2.ts, 0, 10)) + + export class C { } +>C : Symbol(C, Decl(namespaces2.ts, 1, 21)) + } +} + +var c: A.B.C = new A.B.C(); +>c : Symbol(c, Decl(namespaces2.ts, 6, 3)) +>A : Symbol(A, Decl(namespaces2.ts, 0, 0)) +>B : Symbol(A.B, Decl(namespaces2.ts, 0, 10)) +>C : Symbol(A.B.C, Decl(namespaces2.ts, 1, 21)) +>A.B.C : Symbol(A.B.C, Decl(namespaces2.ts, 1, 21)) +>A.B : Symbol(A.B, Decl(namespaces2.ts, 0, 10)) +>A : Symbol(A, Decl(namespaces2.ts, 0, 0)) +>B : Symbol(A.B, Decl(namespaces2.ts, 0, 10)) +>C : Symbol(A.B.C, Decl(namespaces2.ts, 1, 21)) + diff --git a/tests/baselines/reference/namespaces2.types b/tests/baselines/reference/namespaces2.types index b1aff5f20935f..cc175a93d5422 100644 --- a/tests/baselines/reference/namespaces2.types +++ b/tests/baselines/reference/namespaces2.types @@ -1,24 +1,24 @@ === tests/cases/compiler/namespaces2.ts === module A { ->A : typeof A, Symbol(A, Decl(namespaces2.ts, 0, 0)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(namespaces2.ts, 0, 10)) +>B : typeof B export class C { } ->C : C, Symbol(C, Decl(namespaces2.ts, 1, 21)) +>C : C } } var c: A.B.C = new A.B.C(); ->c : A.B.C, Symbol(c, Decl(namespaces2.ts, 6, 3)) ->A : any, Symbol(A, Decl(namespaces2.ts, 0, 0)) ->B : any, Symbol(A.B, Decl(namespaces2.ts, 0, 10)) ->C : A.B.C, Symbol(A.B.C, Decl(namespaces2.ts, 1, 21)) +>c : A.B.C +>A : any +>B : any +>C : A.B.C >new A.B.C() : A.B.C ->A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(namespaces2.ts, 1, 21)) ->A.B : typeof A.B, Symbol(A.B, Decl(namespaces2.ts, 0, 10)) ->A : typeof A, Symbol(A, Decl(namespaces2.ts, 0, 0)) ->B : typeof A.B, Symbol(A.B, Decl(namespaces2.ts, 0, 10)) ->C : typeof A.B.C, Symbol(A.B.C, Decl(namespaces2.ts, 1, 21)) +>A.B.C : typeof A.B.C +>A.B : typeof A.B +>A : typeof A +>B : typeof A.B +>C : typeof A.B.C diff --git a/tests/baselines/reference/negateOperatorWithAnyOtherType.symbols b/tests/baselines/reference/negateOperatorWithAnyOtherType.symbols new file mode 100644 index 0000000000000..891fc363dbdcb --- /dev/null +++ b/tests/baselines/reference/negateOperatorWithAnyOtherType.symbols @@ -0,0 +1,156 @@ +=== tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithAnyOtherType.ts === +// - operator on any type + +var ANY: any; +>ANY : Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) + +var ANY1; +>ANY1 : Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) + +var ANY2: any[] = ["", ""]; +>ANY2 : Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) + +var obj: () => {} +>obj : Symbol(obj, Decl(negateOperatorWithAnyOtherType.ts, 5, 3)) + +var obj1 = { x: "", y: () => { }}; +>obj1 : Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) +>x : Symbol(x, Decl(negateOperatorWithAnyOtherType.ts, 6, 12)) +>y : Symbol(y, Decl(negateOperatorWithAnyOtherType.ts, 6, 19)) + +function foo(): any { +>foo : Symbol(foo, Decl(negateOperatorWithAnyOtherType.ts, 6, 34)) + + var a; +>a : Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 9, 7)) + + return a; +>a : Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 9, 7)) +} +class A { +>A : Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) + + public a: any; +>a : Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) + + static foo() { +>foo : Symbol(A.foo, Decl(negateOperatorWithAnyOtherType.ts, 13, 18)) + + var a; +>a : Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 15, 11)) + + return a; +>a : Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 15, 11)) + } +} +module M { +>M : Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) + + export var n: any; +>n : Symbol(n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) +} +var objA = new A(); +>objA : Symbol(objA, Decl(negateOperatorWithAnyOtherType.ts, 22, 3)) +>A : Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) + +// any type var +var ResultIsNumber1 = -ANY1; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(negateOperatorWithAnyOtherType.ts, 25, 3)) +>ANY1 : Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) + +var ResultIsNumber2 = -ANY2; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(negateOperatorWithAnyOtherType.ts, 26, 3)) +>ANY2 : Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) + +var ResultIsNumber3 = -A; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(negateOperatorWithAnyOtherType.ts, 27, 3)) +>A : Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) + +var ResultIsNumber4 = -M; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(negateOperatorWithAnyOtherType.ts, 28, 3)) +>M : Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) + +var ResultIsNumber5 = -obj; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(negateOperatorWithAnyOtherType.ts, 29, 3)) +>obj : Symbol(obj, Decl(negateOperatorWithAnyOtherType.ts, 5, 3)) + +var ResultIsNumber6 = -obj1; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(negateOperatorWithAnyOtherType.ts, 30, 3)) +>obj1 : Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) + +// any type literal +var ResultIsNumber7 = -undefined; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(negateOperatorWithAnyOtherType.ts, 33, 3)) +>undefined : Symbol(undefined) + +var ResultIsNumber = -null; +>ResultIsNumber : Symbol(ResultIsNumber, Decl(negateOperatorWithAnyOtherType.ts, 34, 3)) + +// any type expressions +var ResultIsNumber8 = -ANY2[0]; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(negateOperatorWithAnyOtherType.ts, 37, 3)) +>ANY2 : Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) + +var ResultIsNumber9 = -obj1.x; +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(negateOperatorWithAnyOtherType.ts, 38, 3)) +>obj1.x : Symbol(x, Decl(negateOperatorWithAnyOtherType.ts, 6, 12)) +>obj1 : Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) +>x : Symbol(x, Decl(negateOperatorWithAnyOtherType.ts, 6, 12)) + +var ResultIsNumber10 = -obj1.y; +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(negateOperatorWithAnyOtherType.ts, 39, 3)) +>obj1.y : Symbol(y, Decl(negateOperatorWithAnyOtherType.ts, 6, 19)) +>obj1 : Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) +>y : Symbol(y, Decl(negateOperatorWithAnyOtherType.ts, 6, 19)) + +var ResultIsNumber11 = -objA.a; +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(negateOperatorWithAnyOtherType.ts, 40, 3)) +>objA.a : Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithAnyOtherType.ts, 22, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) + +var ResultIsNumber12 = -M.n; +>ResultIsNumber12 : Symbol(ResultIsNumber12, Decl(negateOperatorWithAnyOtherType.ts, 41, 3)) +>M.n : Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) +>M : Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) + +var ResultIsNumber13 = -foo(); +>ResultIsNumber13 : Symbol(ResultIsNumber13, Decl(negateOperatorWithAnyOtherType.ts, 42, 3)) +>foo : Symbol(foo, Decl(negateOperatorWithAnyOtherType.ts, 6, 34)) + +var ResultIsNumber14 = -A.foo(); +>ResultIsNumber14 : Symbol(ResultIsNumber14, Decl(negateOperatorWithAnyOtherType.ts, 43, 3)) +>A.foo : Symbol(A.foo, Decl(negateOperatorWithAnyOtherType.ts, 13, 18)) +>A : Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) +>foo : Symbol(A.foo, Decl(negateOperatorWithAnyOtherType.ts, 13, 18)) + +var ResultIsNumber15 = -(ANY - ANY1); +>ResultIsNumber15 : Symbol(ResultIsNumber15, Decl(negateOperatorWithAnyOtherType.ts, 44, 3)) +>ANY : Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) +>ANY1 : Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) + +// miss assignment operators +-ANY; +>ANY : Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) + +-ANY1; +>ANY1 : Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) + +-ANY2[0]; +>ANY2 : Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) + +-ANY, ANY1; +>ANY : Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) +>ANY1 : Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) + +-objA.a; +>objA.a : Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithAnyOtherType.ts, 22, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) + +-M.n; +>M.n : Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) +>M : Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) + diff --git a/tests/baselines/reference/negateOperatorWithAnyOtherType.types b/tests/baselines/reference/negateOperatorWithAnyOtherType.types index 47c8164aeb3e1..f864c9d166ce4 100644 --- a/tests/baselines/reference/negateOperatorWithAnyOtherType.types +++ b/tests/baselines/reference/negateOperatorWithAnyOtherType.types @@ -2,194 +2,194 @@ // - operator on any type var ANY: any; ->ANY : any, Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any var ANY1; ->ANY1 : any, Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ANY2: any[] = ["", ""]; ->ANY2 : any[], Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >["", ""] : string[] >"" : string >"" : string var obj: () => {} ->obj : () => {}, Symbol(obj, Decl(negateOperatorWithAnyOtherType.ts, 5, 3)) +>obj : () => {} var obj1 = { x: "", y: () => { }}; ->obj1 : { x: string; y: () => void; }, Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) +>obj1 : { x: string; y: () => void; } >{ x: "", y: () => { }} : { x: string; y: () => void; } ->x : string, Symbol(x, Decl(negateOperatorWithAnyOtherType.ts, 6, 12)) +>x : string >"" : string ->y : () => void, Symbol(y, Decl(negateOperatorWithAnyOtherType.ts, 6, 19)) +>y : () => void >() => { } : () => void function foo(): any { ->foo : () => any, Symbol(foo, Decl(negateOperatorWithAnyOtherType.ts, 6, 34)) +>foo : () => any var a; ->a : any, Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 9, 7)) +>a : any return a; ->a : any, Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 9, 7)) +>a : any } class A { ->A : A, Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) +>A : A public a: any; ->a : any, Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) +>a : any static foo() { ->foo : () => any, Symbol(A.foo, Decl(negateOperatorWithAnyOtherType.ts, 13, 18)) +>foo : () => any var a; ->a : any, Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 15, 11)) +>a : any return a; ->a : any, Symbol(a, Decl(negateOperatorWithAnyOtherType.ts, 15, 11)) +>a : any } } module M { ->M : typeof M, Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) +>M : typeof M export var n: any; ->n : any, Symbol(n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) +>n : any } var objA = new A(); ->objA : A, Symbol(objA, Decl(negateOperatorWithAnyOtherType.ts, 22, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) +>A : typeof A // any type var var ResultIsNumber1 = -ANY1; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(negateOperatorWithAnyOtherType.ts, 25, 3)) +>ResultIsNumber1 : number >-ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any var ResultIsNumber2 = -ANY2; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(negateOperatorWithAnyOtherType.ts, 26, 3)) +>ResultIsNumber2 : number >-ANY2 : number ->ANY2 : any[], Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] var ResultIsNumber3 = -A; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(negateOperatorWithAnyOtherType.ts, 27, 3)) +>ResultIsNumber3 : number >-A : number ->A : typeof A, Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) +>A : typeof A var ResultIsNumber4 = -M; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(negateOperatorWithAnyOtherType.ts, 28, 3)) +>ResultIsNumber4 : number >-M : number ->M : typeof M, Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) +>M : typeof M var ResultIsNumber5 = -obj; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(negateOperatorWithAnyOtherType.ts, 29, 3)) +>ResultIsNumber5 : number >-obj : number ->obj : () => {}, Symbol(obj, Decl(negateOperatorWithAnyOtherType.ts, 5, 3)) +>obj : () => {} var ResultIsNumber6 = -obj1; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(negateOperatorWithAnyOtherType.ts, 30, 3)) +>ResultIsNumber6 : number >-obj1 : number ->obj1 : { x: string; y: () => void; }, Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) +>obj1 : { x: string; y: () => void; } // any type literal var ResultIsNumber7 = -undefined; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(negateOperatorWithAnyOtherType.ts, 33, 3)) +>ResultIsNumber7 : number >-undefined : number ->undefined : undefined, Symbol(undefined) +>undefined : undefined var ResultIsNumber = -null; ->ResultIsNumber : number, Symbol(ResultIsNumber, Decl(negateOperatorWithAnyOtherType.ts, 34, 3)) +>ResultIsNumber : number >-null : number >null : null // any type expressions var ResultIsNumber8 = -ANY2[0]; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(negateOperatorWithAnyOtherType.ts, 37, 3)) +>ResultIsNumber8 : number >-ANY2[0] : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number var ResultIsNumber9 = -obj1.x; ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(negateOperatorWithAnyOtherType.ts, 38, 3)) +>ResultIsNumber9 : number >-obj1.x : number ->obj1.x : string, Symbol(x, Decl(negateOperatorWithAnyOtherType.ts, 6, 12)) ->obj1 : { x: string; y: () => void; }, Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) ->x : string, Symbol(x, Decl(negateOperatorWithAnyOtherType.ts, 6, 12)) +>obj1.x : string +>obj1 : { x: string; y: () => void; } +>x : string var ResultIsNumber10 = -obj1.y; ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(negateOperatorWithAnyOtherType.ts, 39, 3)) +>ResultIsNumber10 : number >-obj1.y : number ->obj1.y : () => void, Symbol(y, Decl(negateOperatorWithAnyOtherType.ts, 6, 19)) ->obj1 : { x: string; y: () => void; }, Symbol(obj1, Decl(negateOperatorWithAnyOtherType.ts, 6, 3)) ->y : () => void, Symbol(y, Decl(negateOperatorWithAnyOtherType.ts, 6, 19)) +>obj1.y : () => void +>obj1 : { x: string; y: () => void; } +>y : () => void var ResultIsNumber11 = -objA.a; ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(negateOperatorWithAnyOtherType.ts, 40, 3)) +>ResultIsNumber11 : number >-objA.a : number ->objA.a : any, Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithAnyOtherType.ts, 22, 3)) ->a : any, Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) +>objA.a : any +>objA : A +>a : any var ResultIsNumber12 = -M.n; ->ResultIsNumber12 : number, Symbol(ResultIsNumber12, Decl(negateOperatorWithAnyOtherType.ts, 41, 3)) +>ResultIsNumber12 : number >-M.n : number ->M.n : any, Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) ->n : any, Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) +>M.n : any +>M : typeof M +>n : any var ResultIsNumber13 = -foo(); ->ResultIsNumber13 : number, Symbol(ResultIsNumber13, Decl(negateOperatorWithAnyOtherType.ts, 42, 3)) +>ResultIsNumber13 : number >-foo() : number >foo() : any ->foo : () => any, Symbol(foo, Decl(negateOperatorWithAnyOtherType.ts, 6, 34)) +>foo : () => any var ResultIsNumber14 = -A.foo(); ->ResultIsNumber14 : number, Symbol(ResultIsNumber14, Decl(negateOperatorWithAnyOtherType.ts, 43, 3)) +>ResultIsNumber14 : number >-A.foo() : number >A.foo() : any ->A.foo : () => any, Symbol(A.foo, Decl(negateOperatorWithAnyOtherType.ts, 13, 18)) ->A : typeof A, Symbol(A, Decl(negateOperatorWithAnyOtherType.ts, 11, 1)) ->foo : () => any, Symbol(A.foo, Decl(negateOperatorWithAnyOtherType.ts, 13, 18)) +>A.foo : () => any +>A : typeof A +>foo : () => any var ResultIsNumber15 = -(ANY - ANY1); ->ResultIsNumber15 : number, Symbol(ResultIsNumber15, Decl(negateOperatorWithAnyOtherType.ts, 44, 3)) +>ResultIsNumber15 : number >-(ANY - ANY1) : number >(ANY - ANY1) : number >ANY - ANY1 : number ->ANY : any, Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) ->ANY1 : any, Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) +>ANY : any +>ANY1 : any // miss assignment operators -ANY; >-ANY : number ->ANY : any, Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) +>ANY : any -ANY1; >-ANY1 : number ->ANY1 : any, Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) +>ANY1 : any -ANY2[0]; >-ANY2[0] : number >ANY2[0] : any ->ANY2 : any[], Symbol(ANY2, Decl(negateOperatorWithAnyOtherType.ts, 4, 3)) +>ANY2 : any[] >0 : number -ANY, ANY1; >-ANY, ANY1 : any >-ANY : number ->ANY : any, Symbol(ANY, Decl(negateOperatorWithAnyOtherType.ts, 2, 3)) ->ANY1 : any, Symbol(ANY1, Decl(negateOperatorWithAnyOtherType.ts, 3, 3)) +>ANY : any +>ANY1 : any -objA.a; >-objA.a : number ->objA.a : any, Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithAnyOtherType.ts, 22, 3)) ->a : any, Symbol(A.a, Decl(negateOperatorWithAnyOtherType.ts, 12, 9)) +>objA.a : any +>objA : A +>a : any -M.n; >-M.n : number ->M.n : any, Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithAnyOtherType.ts, 18, 1)) ->n : any, Symbol(M.n, Decl(negateOperatorWithAnyOtherType.ts, 20, 14)) +>M.n : any +>M : typeof M +>n : any diff --git a/tests/baselines/reference/negateOperatorWithBooleanType.symbols b/tests/baselines/reference/negateOperatorWithBooleanType.symbols new file mode 100644 index 0000000000000..55b35026b979c --- /dev/null +++ b/tests/baselines/reference/negateOperatorWithBooleanType.symbols @@ -0,0 +1,84 @@ +=== tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithBooleanType.ts === +// - operator on boolean type +var BOOLEAN: boolean; +>BOOLEAN : Symbol(BOOLEAN, Decl(negateOperatorWithBooleanType.ts, 1, 3)) + +function foo(): boolean { return true; } +>foo : Symbol(foo, Decl(negateOperatorWithBooleanType.ts, 1, 21)) + +class A { +>A : Symbol(A, Decl(negateOperatorWithBooleanType.ts, 3, 40)) + + public a: boolean; +>a : Symbol(a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) + + static foo() { return false; } +>foo : Symbol(A.foo, Decl(negateOperatorWithBooleanType.ts, 6, 22)) +} +module M { +>M : Symbol(M, Decl(negateOperatorWithBooleanType.ts, 8, 1)) + + export var n: boolean; +>n : Symbol(n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(negateOperatorWithBooleanType.ts, 13, 3)) +>A : Symbol(A, Decl(negateOperatorWithBooleanType.ts, 3, 40)) + +// boolean type var +var ResultIsNumber1 = -BOOLEAN; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(negateOperatorWithBooleanType.ts, 16, 3)) +>BOOLEAN : Symbol(BOOLEAN, Decl(negateOperatorWithBooleanType.ts, 1, 3)) + +// boolean type literal +var ResultIsNumber2 = -true; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(negateOperatorWithBooleanType.ts, 19, 3)) + +var ResultIsNumber3 = -{ x: true, y: false }; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(negateOperatorWithBooleanType.ts, 20, 3)) +>x : Symbol(x, Decl(negateOperatorWithBooleanType.ts, 20, 24)) +>y : Symbol(y, Decl(negateOperatorWithBooleanType.ts, 20, 33)) + +// boolean type expressions +var ResultIsNumber4 = -objA.a; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(negateOperatorWithBooleanType.ts, 23, 3)) +>objA.a : Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) + +var ResultIsNumber5 = -M.n; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(negateOperatorWithBooleanType.ts, 24, 3)) +>M.n : Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(negateOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) + +var ResultIsNumber6 = -foo(); +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(negateOperatorWithBooleanType.ts, 25, 3)) +>foo : Symbol(foo, Decl(negateOperatorWithBooleanType.ts, 1, 21)) + +var ResultIsNumber7 = -A.foo(); +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(negateOperatorWithBooleanType.ts, 26, 3)) +>A.foo : Symbol(A.foo, Decl(negateOperatorWithBooleanType.ts, 6, 22)) +>A : Symbol(A, Decl(negateOperatorWithBooleanType.ts, 3, 40)) +>foo : Symbol(A.foo, Decl(negateOperatorWithBooleanType.ts, 6, 22)) + +// miss assignment operators +-true; +-BOOLEAN; +>BOOLEAN : Symbol(BOOLEAN, Decl(negateOperatorWithBooleanType.ts, 1, 3)) + +-foo(); +>foo : Symbol(foo, Decl(negateOperatorWithBooleanType.ts, 1, 21)) + +-true, false; +-objA.a; +>objA.a : Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithBooleanType.ts, 13, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) + +-M.n; +>M.n : Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) +>M : Symbol(M, Decl(negateOperatorWithBooleanType.ts, 8, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) + diff --git a/tests/baselines/reference/negateOperatorWithBooleanType.types b/tests/baselines/reference/negateOperatorWithBooleanType.types index 530a3b382ccde..89f5afc1c2b72 100644 --- a/tests/baselines/reference/negateOperatorWithBooleanType.types +++ b/tests/baselines/reference/negateOperatorWithBooleanType.types @@ -1,83 +1,83 @@ === tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithBooleanType.ts === // - operator on boolean type var BOOLEAN: boolean; ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(negateOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean function foo(): boolean { return true; } ->foo : () => boolean, Symbol(foo, Decl(negateOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean >true : boolean class A { ->A : A, Symbol(A, Decl(negateOperatorWithBooleanType.ts, 3, 40)) +>A : A public a: boolean; ->a : boolean, Symbol(a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) +>a : boolean static foo() { return false; } ->foo : () => boolean, Symbol(A.foo, Decl(negateOperatorWithBooleanType.ts, 6, 22)) +>foo : () => boolean >false : boolean } module M { ->M : typeof M, Symbol(M, Decl(negateOperatorWithBooleanType.ts, 8, 1)) +>M : typeof M export var n: boolean; ->n : boolean, Symbol(n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) +>n : boolean } var objA = new A(); ->objA : A, Symbol(objA, Decl(negateOperatorWithBooleanType.ts, 13, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(negateOperatorWithBooleanType.ts, 3, 40)) +>A : typeof A // boolean type var var ResultIsNumber1 = -BOOLEAN; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(negateOperatorWithBooleanType.ts, 16, 3)) +>ResultIsNumber1 : number >-BOOLEAN : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(negateOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean // boolean type literal var ResultIsNumber2 = -true; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(negateOperatorWithBooleanType.ts, 19, 3)) +>ResultIsNumber2 : number >-true : number >true : boolean var ResultIsNumber3 = -{ x: true, y: false }; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(negateOperatorWithBooleanType.ts, 20, 3)) +>ResultIsNumber3 : number >-{ x: true, y: false } : number >{ x: true, y: false } : { x: boolean; y: boolean; } ->x : boolean, Symbol(x, Decl(negateOperatorWithBooleanType.ts, 20, 24)) +>x : boolean >true : boolean ->y : boolean, Symbol(y, Decl(negateOperatorWithBooleanType.ts, 20, 33)) +>y : boolean >false : boolean // boolean type expressions var ResultIsNumber4 = -objA.a; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(negateOperatorWithBooleanType.ts, 23, 3)) +>ResultIsNumber4 : number >-objA.a : number ->objA.a : boolean, Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean var ResultIsNumber5 = -M.n; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(negateOperatorWithBooleanType.ts, 24, 3)) +>ResultIsNumber5 : number >-M.n : number ->M.n : boolean, Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean var ResultIsNumber6 = -foo(); ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(negateOperatorWithBooleanType.ts, 25, 3)) +>ResultIsNumber6 : number >-foo() : number >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(negateOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean var ResultIsNumber7 = -A.foo(); ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(negateOperatorWithBooleanType.ts, 26, 3)) +>ResultIsNumber7 : number >-A.foo() : number >A.foo() : boolean ->A.foo : () => boolean, Symbol(A.foo, Decl(negateOperatorWithBooleanType.ts, 6, 22)) ->A : typeof A, Symbol(A, Decl(negateOperatorWithBooleanType.ts, 3, 40)) ->foo : () => boolean, Symbol(A.foo, Decl(negateOperatorWithBooleanType.ts, 6, 22)) +>A.foo : () => boolean +>A : typeof A +>foo : () => boolean // miss assignment operators -true; @@ -86,12 +86,12 @@ var ResultIsNumber7 = -A.foo(); -BOOLEAN; >-BOOLEAN : number ->BOOLEAN : boolean, Symbol(BOOLEAN, Decl(negateOperatorWithBooleanType.ts, 1, 3)) +>BOOLEAN : boolean -foo(); >-foo() : number >foo() : boolean ->foo : () => boolean, Symbol(foo, Decl(negateOperatorWithBooleanType.ts, 1, 21)) +>foo : () => boolean -true, false; >-true, false : boolean @@ -101,13 +101,13 @@ var ResultIsNumber7 = -A.foo(); -objA.a; >-objA.a : number ->objA.a : boolean, Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithBooleanType.ts, 13, 3)) ->a : boolean, Symbol(A.a, Decl(negateOperatorWithBooleanType.ts, 5, 9)) +>objA.a : boolean +>objA : A +>a : boolean -M.n; >-M.n : number ->M.n : boolean, Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithBooleanType.ts, 8, 1)) ->n : boolean, Symbol(M.n, Decl(negateOperatorWithBooleanType.ts, 10, 14)) +>M.n : boolean +>M : typeof M +>n : boolean diff --git a/tests/baselines/reference/negateOperatorWithEnumType.symbols b/tests/baselines/reference/negateOperatorWithEnumType.symbols new file mode 100644 index 0000000000000..9d97cda0466ba --- /dev/null +++ b/tests/baselines/reference/negateOperatorWithEnumType.symbols @@ -0,0 +1,45 @@ +=== tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithEnumType.ts === +// - operator on enum type + +enum ENUM { }; +>ENUM : Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) + +enum ENUM1 { A, B, "" }; +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>A : Symbol(ENUM1.A, Decl(negateOperatorWithEnumType.ts, 3, 12)) +>B : Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) + +// enum type var +var ResultIsNumber1 = -ENUM; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(negateOperatorWithEnumType.ts, 6, 3)) +>ENUM : Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) + +// expressions +var ResultIsNumber2 = -ENUM1["B"]; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(negateOperatorWithEnumType.ts, 9, 3)) +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>"B" : Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) + +var ResultIsNumber3 = -(ENUM1.B + ENUM1[""]); +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(negateOperatorWithEnumType.ts, 10, 3)) +>ENUM1.B : Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>B : Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>"" : Symbol(ENUM1."", Decl(negateOperatorWithEnumType.ts, 3, 18)) + +// miss assignment operators +-ENUM; +>ENUM : Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) + +-ENUM1; +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) + +-ENUM1["B"]; +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>"B" : Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) + +-ENUM, ENUM1; +>ENUM : Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) +>ENUM1 : Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) + diff --git a/tests/baselines/reference/negateOperatorWithEnumType.types b/tests/baselines/reference/negateOperatorWithEnumType.types index d2f9225c98356..2f39a581ef849 100644 --- a/tests/baselines/reference/negateOperatorWithEnumType.types +++ b/tests/baselines/reference/negateOperatorWithEnumType.types @@ -2,57 +2,57 @@ // - operator on enum type enum ENUM { }; ->ENUM : ENUM, Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) +>ENUM : ENUM enum ENUM1 { A, B, "" }; ->ENUM1 : ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) ->A : ENUM1, Symbol(ENUM1.A, Decl(negateOperatorWithEnumType.ts, 3, 12)) ->B : ENUM1, Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : ENUM1 +>A : ENUM1 +>B : ENUM1 // enum type var var ResultIsNumber1 = -ENUM; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(negateOperatorWithEnumType.ts, 6, 3)) +>ResultIsNumber1 : number >-ENUM : number ->ENUM : typeof ENUM, Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM // expressions var ResultIsNumber2 = -ENUM1["B"]; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(negateOperatorWithEnumType.ts, 9, 3)) +>ResultIsNumber2 : number >-ENUM1["B"] : number >ENUM1["B"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) ->"B" : string, Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : typeof ENUM1 +>"B" : string var ResultIsNumber3 = -(ENUM1.B + ENUM1[""]); ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(negateOperatorWithEnumType.ts, 10, 3)) +>ResultIsNumber3 : number >-(ENUM1.B + ENUM1[""]) : number >(ENUM1.B + ENUM1[""]) : number >ENUM1.B + ENUM1[""] : number ->ENUM1.B : ENUM1, Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) ->B : ENUM1, Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) +>ENUM1.B : ENUM1 +>ENUM1 : typeof ENUM1 +>B : ENUM1 >ENUM1[""] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) ->"" : string, Symbol(ENUM1."", Decl(negateOperatorWithEnumType.ts, 3, 18)) +>ENUM1 : typeof ENUM1 +>"" : string // miss assignment operators -ENUM; >-ENUM : number ->ENUM : typeof ENUM, Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) +>ENUM : typeof ENUM -ENUM1; >-ENUM1 : number ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>ENUM1 : typeof ENUM1 -ENUM1["B"]; >-ENUM1["B"] : number >ENUM1["B"] : ENUM1 ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) ->"B" : string, Symbol(ENUM1.B, Decl(negateOperatorWithEnumType.ts, 3, 15)) +>ENUM1 : typeof ENUM1 +>"B" : string -ENUM, ENUM1; >-ENUM, ENUM1 : typeof ENUM1 >-ENUM : number ->ENUM : typeof ENUM, Symbol(ENUM, Decl(negateOperatorWithEnumType.ts, 0, 0)) ->ENUM1 : typeof ENUM1, Symbol(ENUM1, Decl(negateOperatorWithEnumType.ts, 2, 14)) +>ENUM : typeof ENUM +>ENUM1 : typeof ENUM1 diff --git a/tests/baselines/reference/negateOperatorWithNumberType.symbols b/tests/baselines/reference/negateOperatorWithNumberType.symbols new file mode 100644 index 0000000000000..1f75d922b09fe --- /dev/null +++ b/tests/baselines/reference/negateOperatorWithNumberType.symbols @@ -0,0 +1,117 @@ +=== tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithNumberType.ts === +// - operator on number type +var NUMBER: number; +>NUMBER : Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) + +var NUMBER1: number[] = [1, 2]; +>NUMBER1 : Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) + +function foo(): number { return 1; } +>foo : Symbol(foo, Decl(negateOperatorWithNumberType.ts, 2, 31)) + +class A { +>A : Symbol(A, Decl(negateOperatorWithNumberType.ts, 4, 36)) + + public a: number; +>a : Symbol(a, Decl(negateOperatorWithNumberType.ts, 6, 9)) + + static foo() { return 1; } +>foo : Symbol(A.foo, Decl(negateOperatorWithNumberType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) + + export var n: number; +>n : Symbol(n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) +>A : Symbol(A, Decl(negateOperatorWithNumberType.ts, 4, 36)) + +// number type var +var ResultIsNumber1 = -NUMBER; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(negateOperatorWithNumberType.ts, 17, 3)) +>NUMBER : Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) + +var ResultIsNumber2 = -NUMBER1; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(negateOperatorWithNumberType.ts, 18, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) + +// number type literal +var ResultIsNumber3 = -1; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(negateOperatorWithNumberType.ts, 21, 3)) + +var ResultIsNumber4 = -{ x: 1, y: 2}; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(negateOperatorWithNumberType.ts, 22, 3)) +>x : Symbol(x, Decl(negateOperatorWithNumberType.ts, 22, 24)) +>y : Symbol(y, Decl(negateOperatorWithNumberType.ts, 22, 30)) + +var ResultIsNumber5 = -{ x: 1, y: (n: number) => { return n; } }; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(negateOperatorWithNumberType.ts, 23, 3)) +>x : Symbol(x, Decl(negateOperatorWithNumberType.ts, 23, 24)) +>y : Symbol(y, Decl(negateOperatorWithNumberType.ts, 23, 30)) +>n : Symbol(n, Decl(negateOperatorWithNumberType.ts, 23, 35)) +>n : Symbol(n, Decl(negateOperatorWithNumberType.ts, 23, 35)) + +// number type expressions +var ResultIsNumber6 = -objA.a; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(negateOperatorWithNumberType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) + +var ResultIsNumber7 = -M.n; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(negateOperatorWithNumberType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) + +var ResultIsNumber8 = -NUMBER1[0]; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(negateOperatorWithNumberType.ts, 28, 3)) +>NUMBER1 : Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) + +var ResultIsNumber9 = -foo(); +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(negateOperatorWithNumberType.ts, 29, 3)) +>foo : Symbol(foo, Decl(negateOperatorWithNumberType.ts, 2, 31)) + +var ResultIsNumber10 = -A.foo(); +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(negateOperatorWithNumberType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(negateOperatorWithNumberType.ts, 7, 21)) +>A : Symbol(A, Decl(negateOperatorWithNumberType.ts, 4, 36)) +>foo : Symbol(A.foo, Decl(negateOperatorWithNumberType.ts, 7, 21)) + +var ResultIsNumber11 = -(NUMBER - NUMBER); +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(negateOperatorWithNumberType.ts, 31, 3)) +>NUMBER : Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) +>NUMBER : Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) + +// miss assignment operators +-1; +-NUMBER; +>NUMBER : Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) + +-NUMBER1; +>NUMBER1 : Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) + +-foo(); +>foo : Symbol(foo, Decl(negateOperatorWithNumberType.ts, 2, 31)) + +-objA.a; +>objA.a : Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) + +-M.n; +>M.n : Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) + +-objA.a, M.n; +>objA.a : Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>M : Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) + diff --git a/tests/baselines/reference/negateOperatorWithNumberType.types b/tests/baselines/reference/negateOperatorWithNumberType.types index 52c4609fbfb49..e53a4e544445b 100644 --- a/tests/baselines/reference/negateOperatorWithNumberType.types +++ b/tests/baselines/reference/negateOperatorWithNumberType.types @@ -1,120 +1,120 @@ === tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithNumberType.ts === // - operator on number type var NUMBER: number; ->NUMBER : number, Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var NUMBER1: number[] = [1, 2]; ->NUMBER1 : number[], Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >[1, 2] : number[] >1 : number >2 : number function foo(): number { return 1; } ->foo : () => number, Symbol(foo, Decl(negateOperatorWithNumberType.ts, 2, 31)) +>foo : () => number >1 : number class A { ->A : A, Symbol(A, Decl(negateOperatorWithNumberType.ts, 4, 36)) +>A : A public a: number; ->a : number, Symbol(a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>a : number static foo() { return 1; } ->foo : () => number, Symbol(A.foo, Decl(negateOperatorWithNumberType.ts, 7, 21)) +>foo : () => number >1 : number } module M { ->M : typeof M, Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) +>M : typeof M export var n: number; ->n : number, Symbol(n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>n : number } var objA = new A(); ->objA : A, Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(negateOperatorWithNumberType.ts, 4, 36)) +>A : typeof A // number type var var ResultIsNumber1 = -NUMBER; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(negateOperatorWithNumberType.ts, 17, 3)) +>ResultIsNumber1 : number >-NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number var ResultIsNumber2 = -NUMBER1; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(negateOperatorWithNumberType.ts, 18, 3)) +>ResultIsNumber2 : number >-NUMBER1 : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] // number type literal var ResultIsNumber3 = -1; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(negateOperatorWithNumberType.ts, 21, 3)) +>ResultIsNumber3 : number >-1 : number >1 : number var ResultIsNumber4 = -{ x: 1, y: 2}; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(negateOperatorWithNumberType.ts, 22, 3)) +>ResultIsNumber4 : number >-{ x: 1, y: 2} : number >{ x: 1, y: 2} : { x: number; y: number; } ->x : number, Symbol(x, Decl(negateOperatorWithNumberType.ts, 22, 24)) +>x : number >1 : number ->y : number, Symbol(y, Decl(negateOperatorWithNumberType.ts, 22, 30)) +>y : number >2 : number var ResultIsNumber5 = -{ x: 1, y: (n: number) => { return n; } }; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(negateOperatorWithNumberType.ts, 23, 3)) +>ResultIsNumber5 : number >-{ x: 1, y: (n: number) => { return n; } } : number >{ x: 1, y: (n: number) => { return n; } } : { x: number; y: (n: number) => number; } ->x : number, Symbol(x, Decl(negateOperatorWithNumberType.ts, 23, 24)) +>x : number >1 : number ->y : (n: number) => number, Symbol(y, Decl(negateOperatorWithNumberType.ts, 23, 30)) +>y : (n: number) => number >(n: number) => { return n; } : (n: number) => number ->n : number, Symbol(n, Decl(negateOperatorWithNumberType.ts, 23, 35)) ->n : number, Symbol(n, Decl(negateOperatorWithNumberType.ts, 23, 35)) +>n : number +>n : number // number type expressions var ResultIsNumber6 = -objA.a; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(negateOperatorWithNumberType.ts, 26, 3)) +>ResultIsNumber6 : number >-objA.a : number ->objA.a : number, Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number var ResultIsNumber7 = -M.n; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(negateOperatorWithNumberType.ts, 27, 3)) +>ResultIsNumber7 : number >-M.n : number ->M.n : number, Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number var ResultIsNumber8 = -NUMBER1[0]; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(negateOperatorWithNumberType.ts, 28, 3)) +>ResultIsNumber8 : number >-NUMBER1[0] : number >NUMBER1[0] : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] >0 : number var ResultIsNumber9 = -foo(); ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(negateOperatorWithNumberType.ts, 29, 3)) +>ResultIsNumber9 : number >-foo() : number >foo() : number ->foo : () => number, Symbol(foo, Decl(negateOperatorWithNumberType.ts, 2, 31)) +>foo : () => number var ResultIsNumber10 = -A.foo(); ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(negateOperatorWithNumberType.ts, 30, 3)) +>ResultIsNumber10 : number >-A.foo() : number >A.foo() : number ->A.foo : () => number, Symbol(A.foo, Decl(negateOperatorWithNumberType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(negateOperatorWithNumberType.ts, 4, 36)) ->foo : () => number, Symbol(A.foo, Decl(negateOperatorWithNumberType.ts, 7, 21)) +>A.foo : () => number +>A : typeof A +>foo : () => number var ResultIsNumber11 = -(NUMBER - NUMBER); ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(negateOperatorWithNumberType.ts, 31, 3)) +>ResultIsNumber11 : number >-(NUMBER - NUMBER) : number >(NUMBER - NUMBER) : number >NUMBER - NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) ->NUMBER : number, Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number +>NUMBER : number // miss assignment operators -1; @@ -123,36 +123,36 @@ var ResultIsNumber11 = -(NUMBER - NUMBER); -NUMBER; >-NUMBER : number ->NUMBER : number, Symbol(NUMBER, Decl(negateOperatorWithNumberType.ts, 1, 3)) +>NUMBER : number -NUMBER1; >-NUMBER1 : number ->NUMBER1 : number[], Symbol(NUMBER1, Decl(negateOperatorWithNumberType.ts, 2, 3)) +>NUMBER1 : number[] -foo(); >-foo() : number >foo() : number ->foo : () => number, Symbol(foo, Decl(negateOperatorWithNumberType.ts, 2, 31)) +>foo : () => number -objA.a; >-objA.a : number ->objA.a : number, Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) +>objA.a : number +>objA : A +>a : number -M.n; >-M.n : number ->M.n : number, Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>M.n : number +>M : typeof M +>n : number -objA.a, M.n; >-objA.a, M.n : number >-objA.a : number ->objA.a : number, Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithNumberType.ts, 14, 3)) ->a : number, Symbol(A.a, Decl(negateOperatorWithNumberType.ts, 6, 9)) ->M.n : number, Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithNumberType.ts, 9, 1)) ->n : number, Symbol(M.n, Decl(negateOperatorWithNumberType.ts, 11, 14)) +>objA.a : number +>objA : A +>a : number +>M.n : number +>M : typeof M +>n : number diff --git a/tests/baselines/reference/negateOperatorWithStringType.symbols b/tests/baselines/reference/negateOperatorWithStringType.symbols new file mode 100644 index 0000000000000..00a90bdf743a6 --- /dev/null +++ b/tests/baselines/reference/negateOperatorWithStringType.symbols @@ -0,0 +1,113 @@ +=== tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithStringType.ts === +// - operator on string type +var STRING: string; +>STRING : Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) + +var STRING1: string[] = ["", "abc"]; +>STRING1 : Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) + +function foo(): string { return "abc"; } +>foo : Symbol(foo, Decl(negateOperatorWithStringType.ts, 2, 36)) + +class A { +>A : Symbol(A, Decl(negateOperatorWithStringType.ts, 4, 40)) + + public a: string; +>a : Symbol(a, Decl(negateOperatorWithStringType.ts, 6, 9)) + + static foo() { return ""; } +>foo : Symbol(A.foo, Decl(negateOperatorWithStringType.ts, 7, 21)) +} +module M { +>M : Symbol(M, Decl(negateOperatorWithStringType.ts, 9, 1)) + + export var n: string; +>n : Symbol(n, Decl(negateOperatorWithStringType.ts, 11, 14)) +} + +var objA = new A(); +>objA : Symbol(objA, Decl(negateOperatorWithStringType.ts, 14, 3)) +>A : Symbol(A, Decl(negateOperatorWithStringType.ts, 4, 40)) + +// string type var +var ResultIsNumber1 = -STRING; +>ResultIsNumber1 : Symbol(ResultIsNumber1, Decl(negateOperatorWithStringType.ts, 17, 3)) +>STRING : Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) + +var ResultIsNumber2 = -STRING1; +>ResultIsNumber2 : Symbol(ResultIsNumber2, Decl(negateOperatorWithStringType.ts, 18, 3)) +>STRING1 : Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) + +// string type literal +var ResultIsNumber3 = -""; +>ResultIsNumber3 : Symbol(ResultIsNumber3, Decl(negateOperatorWithStringType.ts, 21, 3)) + +var ResultIsNumber4 = -{ x: "", y: "" }; +>ResultIsNumber4 : Symbol(ResultIsNumber4, Decl(negateOperatorWithStringType.ts, 22, 3)) +>x : Symbol(x, Decl(negateOperatorWithStringType.ts, 22, 24)) +>y : Symbol(y, Decl(negateOperatorWithStringType.ts, 22, 31)) + +var ResultIsNumber5 = -{ x: "", y: (s: string) => { return s; } }; +>ResultIsNumber5 : Symbol(ResultIsNumber5, Decl(negateOperatorWithStringType.ts, 23, 3)) +>x : Symbol(x, Decl(negateOperatorWithStringType.ts, 23, 24)) +>y : Symbol(y, Decl(negateOperatorWithStringType.ts, 23, 31)) +>s : Symbol(s, Decl(negateOperatorWithStringType.ts, 23, 36)) +>s : Symbol(s, Decl(negateOperatorWithStringType.ts, 23, 36)) + +// string type expressions +var ResultIsNumber6 = -objA.a; +>ResultIsNumber6 : Symbol(ResultIsNumber6, Decl(negateOperatorWithStringType.ts, 26, 3)) +>objA.a : Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) + +var ResultIsNumber7 = -M.n; +>ResultIsNumber7 : Symbol(ResultIsNumber7, Decl(negateOperatorWithStringType.ts, 27, 3)) +>M.n : Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(negateOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) + +var ResultIsNumber8 = -STRING1[0]; +>ResultIsNumber8 : Symbol(ResultIsNumber8, Decl(negateOperatorWithStringType.ts, 28, 3)) +>STRING1 : Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) + +var ResultIsNumber9 = -foo(); +>ResultIsNumber9 : Symbol(ResultIsNumber9, Decl(negateOperatorWithStringType.ts, 29, 3)) +>foo : Symbol(foo, Decl(negateOperatorWithStringType.ts, 2, 36)) + +var ResultIsNumber10 = -A.foo(); +>ResultIsNumber10 : Symbol(ResultIsNumber10, Decl(negateOperatorWithStringType.ts, 30, 3)) +>A.foo : Symbol(A.foo, Decl(negateOperatorWithStringType.ts, 7, 21)) +>A : Symbol(A, Decl(negateOperatorWithStringType.ts, 4, 40)) +>foo : Symbol(A.foo, Decl(negateOperatorWithStringType.ts, 7, 21)) + +var ResultIsNumber11 = -(STRING + STRING); +>ResultIsNumber11 : Symbol(ResultIsNumber11, Decl(negateOperatorWithStringType.ts, 31, 3)) +>STRING : Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) +>STRING : Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) + +var ResultIsNumber12 = -STRING.charAt(0); +>ResultIsNumber12 : Symbol(ResultIsNumber12, Decl(negateOperatorWithStringType.ts, 32, 3)) +>STRING.charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING : Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) +>charAt : Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) + +// miss assignment operators +-""; +-STRING; +>STRING : Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) + +-STRING1; +>STRING1 : Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) + +-foo(); +>foo : Symbol(foo, Decl(negateOperatorWithStringType.ts, 2, 36)) + +-objA.a,M.n; +>objA.a : Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) +>objA : Symbol(objA, Decl(negateOperatorWithStringType.ts, 14, 3)) +>a : Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) +>M.n : Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) +>M : Symbol(M, Decl(negateOperatorWithStringType.ts, 9, 1)) +>n : Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) + diff --git a/tests/baselines/reference/negateOperatorWithStringType.types b/tests/baselines/reference/negateOperatorWithStringType.types index 0ec9d2d61a17e..6ef570557fe5b 100644 --- a/tests/baselines/reference/negateOperatorWithStringType.types +++ b/tests/baselines/reference/negateOperatorWithStringType.types @@ -1,128 +1,128 @@ === tests/cases/conformance/expressions/unaryOperators/negateOperator/negateOperatorWithStringType.ts === // - operator on string type var STRING: string; ->STRING : string, Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) +>STRING : string var STRING1: string[] = ["", "abc"]; ->STRING1 : string[], Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >["", "abc"] : string[] >"" : string >"abc" : string function foo(): string { return "abc"; } ->foo : () => string, Symbol(foo, Decl(negateOperatorWithStringType.ts, 2, 36)) +>foo : () => string >"abc" : string class A { ->A : A, Symbol(A, Decl(negateOperatorWithStringType.ts, 4, 40)) +>A : A public a: string; ->a : string, Symbol(a, Decl(negateOperatorWithStringType.ts, 6, 9)) +>a : string static foo() { return ""; } ->foo : () => string, Symbol(A.foo, Decl(negateOperatorWithStringType.ts, 7, 21)) +>foo : () => string >"" : string } module M { ->M : typeof M, Symbol(M, Decl(negateOperatorWithStringType.ts, 9, 1)) +>M : typeof M export var n: string; ->n : string, Symbol(n, Decl(negateOperatorWithStringType.ts, 11, 14)) +>n : string } var objA = new A(); ->objA : A, Symbol(objA, Decl(negateOperatorWithStringType.ts, 14, 3)) +>objA : A >new A() : A ->A : typeof A, Symbol(A, Decl(negateOperatorWithStringType.ts, 4, 40)) +>A : typeof A // string type var var ResultIsNumber1 = -STRING; ->ResultIsNumber1 : number, Symbol(ResultIsNumber1, Decl(negateOperatorWithStringType.ts, 17, 3)) +>ResultIsNumber1 : number >-STRING : number ->STRING : string, Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) +>STRING : string var ResultIsNumber2 = -STRING1; ->ResultIsNumber2 : number, Symbol(ResultIsNumber2, Decl(negateOperatorWithStringType.ts, 18, 3)) +>ResultIsNumber2 : number >-STRING1 : number ->STRING1 : string[], Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] // string type literal var ResultIsNumber3 = -""; ->ResultIsNumber3 : number, Symbol(ResultIsNumber3, Decl(negateOperatorWithStringType.ts, 21, 3)) +>ResultIsNumber3 : number >-"" : number >"" : string var ResultIsNumber4 = -{ x: "", y: "" }; ->ResultIsNumber4 : number, Symbol(ResultIsNumber4, Decl(negateOperatorWithStringType.ts, 22, 3)) +>ResultIsNumber4 : number >-{ x: "", y: "" } : number >{ x: "", y: "" } : { x: string; y: string; } ->x : string, Symbol(x, Decl(negateOperatorWithStringType.ts, 22, 24)) +>x : string >"" : string ->y : string, Symbol(y, Decl(negateOperatorWithStringType.ts, 22, 31)) +>y : string >"" : string var ResultIsNumber5 = -{ x: "", y: (s: string) => { return s; } }; ->ResultIsNumber5 : number, Symbol(ResultIsNumber5, Decl(negateOperatorWithStringType.ts, 23, 3)) +>ResultIsNumber5 : number >-{ x: "", y: (s: string) => { return s; } } : number >{ x: "", y: (s: string) => { return s; } } : { x: string; y: (s: string) => string; } ->x : string, Symbol(x, Decl(negateOperatorWithStringType.ts, 23, 24)) +>x : string >"" : string ->y : (s: string) => string, Symbol(y, Decl(negateOperatorWithStringType.ts, 23, 31)) +>y : (s: string) => string >(s: string) => { return s; } : (s: string) => string ->s : string, Symbol(s, Decl(negateOperatorWithStringType.ts, 23, 36)) ->s : string, Symbol(s, Decl(negateOperatorWithStringType.ts, 23, 36)) +>s : string +>s : string // string type expressions var ResultIsNumber6 = -objA.a; ->ResultIsNumber6 : number, Symbol(ResultIsNumber6, Decl(negateOperatorWithStringType.ts, 26, 3)) +>ResultIsNumber6 : number >-objA.a : number ->objA.a : string, Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) +>objA.a : string +>objA : A +>a : string var ResultIsNumber7 = -M.n; ->ResultIsNumber7 : number, Symbol(ResultIsNumber7, Decl(negateOperatorWithStringType.ts, 27, 3)) +>ResultIsNumber7 : number >-M.n : number ->M.n : string, Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) +>M.n : string +>M : typeof M +>n : string var ResultIsNumber8 = -STRING1[0]; ->ResultIsNumber8 : number, Symbol(ResultIsNumber8, Decl(negateOperatorWithStringType.ts, 28, 3)) +>ResultIsNumber8 : number >-STRING1[0] : number >STRING1[0] : string ->STRING1 : string[], Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] >0 : number var ResultIsNumber9 = -foo(); ->ResultIsNumber9 : number, Symbol(ResultIsNumber9, Decl(negateOperatorWithStringType.ts, 29, 3)) +>ResultIsNumber9 : number >-foo() : number >foo() : string ->foo : () => string, Symbol(foo, Decl(negateOperatorWithStringType.ts, 2, 36)) +>foo : () => string var ResultIsNumber10 = -A.foo(); ->ResultIsNumber10 : number, Symbol(ResultIsNumber10, Decl(negateOperatorWithStringType.ts, 30, 3)) +>ResultIsNumber10 : number >-A.foo() : number >A.foo() : string ->A.foo : () => string, Symbol(A.foo, Decl(negateOperatorWithStringType.ts, 7, 21)) ->A : typeof A, Symbol(A, Decl(negateOperatorWithStringType.ts, 4, 40)) ->foo : () => string, Symbol(A.foo, Decl(negateOperatorWithStringType.ts, 7, 21)) +>A.foo : () => string +>A : typeof A +>foo : () => string var ResultIsNumber11 = -(STRING + STRING); ->ResultIsNumber11 : number, Symbol(ResultIsNumber11, Decl(negateOperatorWithStringType.ts, 31, 3)) +>ResultIsNumber11 : number >-(STRING + STRING) : number >(STRING + STRING) : string >STRING + STRING : string ->STRING : string, Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) ->STRING : string, Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) +>STRING : string +>STRING : string var ResultIsNumber12 = -STRING.charAt(0); ->ResultIsNumber12 : number, Symbol(ResultIsNumber12, Decl(negateOperatorWithStringType.ts, 32, 3)) +>ResultIsNumber12 : number >-STRING.charAt(0) : number >STRING.charAt(0) : string ->STRING.charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) ->STRING : string, Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) ->charAt : (pos: number) => string, Symbol(String.charAt, Decl(lib.d.ts, 279, 23)) +>STRING.charAt : (pos: number) => string +>STRING : string +>charAt : (pos: number) => string >0 : number // miss assignment operators @@ -132,24 +132,24 @@ var ResultIsNumber12 = -STRING.charAt(0); -STRING; >-STRING : number ->STRING : string, Symbol(STRING, Decl(negateOperatorWithStringType.ts, 1, 3)) +>STRING : string -STRING1; >-STRING1 : number ->STRING1 : string[], Symbol(STRING1, Decl(negateOperatorWithStringType.ts, 2, 3)) +>STRING1 : string[] -foo(); >-foo() : number >foo() : string ->foo : () => string, Symbol(foo, Decl(negateOperatorWithStringType.ts, 2, 36)) +>foo : () => string -objA.a,M.n; >-objA.a,M.n : string >-objA.a : number ->objA.a : string, Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) ->objA : A, Symbol(objA, Decl(negateOperatorWithStringType.ts, 14, 3)) ->a : string, Symbol(A.a, Decl(negateOperatorWithStringType.ts, 6, 9)) ->M.n : string, Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) ->M : typeof M, Symbol(M, Decl(negateOperatorWithStringType.ts, 9, 1)) ->n : string, Symbol(M.n, Decl(negateOperatorWithStringType.ts, 11, 14)) +>objA.a : string +>objA : A +>a : string +>M.n : string +>M : typeof M +>n : string diff --git a/tests/baselines/reference/negativeZero.symbols b/tests/baselines/reference/negativeZero.symbols new file mode 100644 index 0000000000000..cdd6880a86f2b --- /dev/null +++ b/tests/baselines/reference/negativeZero.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/negativeZero.ts === +var x = -0 +>x : Symbol(x, Decl(negativeZero.ts, 0, 3)) + diff --git a/tests/baselines/reference/negativeZero.types b/tests/baselines/reference/negativeZero.types index 3999f99d8930d..3468e22fdb2bb 100644 --- a/tests/baselines/reference/negativeZero.types +++ b/tests/baselines/reference/negativeZero.types @@ -1,6 +1,6 @@ === tests/cases/compiler/negativeZero.ts === var x = -0 ->x : number, Symbol(x, Decl(negativeZero.ts, 0, 3)) +>x : number >-0 : number >0 : number diff --git a/tests/baselines/reference/nestedGenerics.symbols b/tests/baselines/reference/nestedGenerics.symbols new file mode 100644 index 0000000000000..24b3e1eb89d13 --- /dev/null +++ b/tests/baselines/reference/nestedGenerics.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/nestedGenerics.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(nestedGenerics.ts, 0, 0)) +>T : Symbol(T, Decl(nestedGenerics.ts, 0, 14)) + + t: T; +>t : Symbol(t, Decl(nestedGenerics.ts, 0, 18)) +>T : Symbol(T, Decl(nestedGenerics.ts, 0, 14)) +} + +var f: Foo>; +>f : Symbol(f, Decl(nestedGenerics.ts, 4, 3)) +>Foo : Symbol(Foo, Decl(nestedGenerics.ts, 0, 0)) +>Foo : Symbol(Foo, Decl(nestedGenerics.ts, 0, 0)) + diff --git a/tests/baselines/reference/nestedGenerics.types b/tests/baselines/reference/nestedGenerics.types index c0860a6f92daf..24d7fea3baaed 100644 --- a/tests/baselines/reference/nestedGenerics.types +++ b/tests/baselines/reference/nestedGenerics.types @@ -1,15 +1,15 @@ === tests/cases/compiler/nestedGenerics.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(nestedGenerics.ts, 0, 0)) ->T : T, Symbol(T, Decl(nestedGenerics.ts, 0, 14)) +>Foo : Foo +>T : T t: T; ->t : T, Symbol(t, Decl(nestedGenerics.ts, 0, 18)) ->T : T, Symbol(T, Decl(nestedGenerics.ts, 0, 14)) +>t : T +>T : T } var f: Foo>; ->f : Foo>, Symbol(f, Decl(nestedGenerics.ts, 4, 3)) ->Foo : Foo, Symbol(Foo, Decl(nestedGenerics.ts, 0, 0)) ->Foo : Foo, Symbol(Foo, Decl(nestedGenerics.ts, 0, 0)) +>f : Foo> +>Foo : Foo +>Foo : Foo diff --git a/tests/baselines/reference/nestedIfStatement.symbols b/tests/baselines/reference/nestedIfStatement.symbols new file mode 100644 index 0000000000000..4dddcd75925a4 --- /dev/null +++ b/tests/baselines/reference/nestedIfStatement.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/nestedIfStatement.ts === +if (0) { +No type information for this code.} else if (1) { +No type information for this code.} else if (2) { +No type information for this code.} else if (3) { +No type information for this code.} else { +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nestedIndexer.symbols b/tests/baselines/reference/nestedIndexer.symbols new file mode 100644 index 0000000000000..cbe729277e023 --- /dev/null +++ b/tests/baselines/reference/nestedIndexer.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/nestedIndexer.ts === +function then(x) { +>then : Symbol(then, Decl(nestedIndexer.ts, 0, 0)) +>x : Symbol(x, Decl(nestedIndexer.ts, 0, 14)) + +var match: { [index: number]: string; } +>match : Symbol(match, Decl(nestedIndexer.ts, 2, 3)) +>index : Symbol(index, Decl(nestedIndexer.ts, 2, 14)) + +} + diff --git a/tests/baselines/reference/nestedIndexer.types b/tests/baselines/reference/nestedIndexer.types index 1b1d65df8a2df..ade8dbbcb66ad 100644 --- a/tests/baselines/reference/nestedIndexer.types +++ b/tests/baselines/reference/nestedIndexer.types @@ -1,11 +1,11 @@ === tests/cases/compiler/nestedIndexer.ts === function then(x) { ->then : (x: any) => void, Symbol(then, Decl(nestedIndexer.ts, 0, 0)) ->x : any, Symbol(x, Decl(nestedIndexer.ts, 0, 14)) +>then : (x: any) => void +>x : any var match: { [index: number]: string; } ->match : { [index: number]: string; }, Symbol(match, Decl(nestedIndexer.ts, 2, 3)) ->index : number, Symbol(index, Decl(nestedIndexer.ts, 2, 14)) +>match : { [index: number]: string; } +>index : number } diff --git a/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.symbols b/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.symbols new file mode 100644 index 0000000000000..28206f8dec2db --- /dev/null +++ b/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/nestedInfinitelyExpandedRecursiveTypes.ts === +interface F { +>F : Symbol(F, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 0)) +>T : Symbol(T, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 12)) + + t: G T>>; +>t : Symbol(t, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 16)) +>G : Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) +>F : Symbol(F, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 0)) +>T : Symbol(T, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 12)) +} +interface G { +>G : Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) +>U : Symbol(U, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 3, 12)) + + t: G U>>; +>t : Symbol(t, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 3, 16)) +>G : Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) +>G : Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) +>U : Symbol(U, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 3, 12)) +} + +var f: F; +>f : Symbol(f, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 7, 3)) +>F : Symbol(F, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 0)) + +var g: G; +>g : Symbol(g, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 8, 3)) +>G : Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) + +f = g; +>f : Symbol(f, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 7, 3)) +>g : Symbol(g, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 8, 3)) + +g = f; +>g : Symbol(g, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 8, 3)) +>f : Symbol(f, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 7, 3)) + diff --git a/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.types b/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.types index c657649850305..4a252d299610c 100644 --- a/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.types +++ b/tests/baselines/reference/nestedInfinitelyExpandedRecursiveTypes.types @@ -1,40 +1,40 @@ === tests/cases/compiler/nestedInfinitelyExpandedRecursiveTypes.ts === interface F { ->F : F, Symbol(F, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 0)) ->T : T, Symbol(T, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 12)) +>F : F +>T : T t: G T>>; ->t : G T>>, Symbol(t, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 16)) ->G : G, Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) ->F : F, Symbol(F, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 0)) ->T : T, Symbol(T, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 12)) +>t : G T>> +>G : G +>F : F +>T : T } interface G { ->G : G, Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) ->U : U, Symbol(U, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 3, 12)) +>G : G +>U : U t: G U>>; ->t : G U>>, Symbol(t, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 3, 16)) ->G : G, Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) ->G : G, Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) ->U : U, Symbol(U, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 3, 12)) +>t : G U>> +>G : G +>G : G +>U : U } var f: F; ->f : F, Symbol(f, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 7, 3)) ->F : F, Symbol(F, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 0, 0)) +>f : F +>F : F var g: G; ->g : G, Symbol(g, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 8, 3)) ->G : G, Symbol(G, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 2, 1)) +>g : G +>G : G f = g; >f = g : G ->f : F, Symbol(f, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 7, 3)) ->g : G, Symbol(g, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 8, 3)) +>f : F +>g : G g = f; >g = f : F ->g : G, Symbol(g, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 8, 3)) ->f : F, Symbol(f, Decl(nestedInfinitelyExpandedRecursiveTypes.ts, 7, 3)) +>g : G +>f : F diff --git a/tests/baselines/reference/nestedModulePrivateAccess.symbols b/tests/baselines/reference/nestedModulePrivateAccess.symbols new file mode 100644 index 0000000000000..23ae0b080e897 --- /dev/null +++ b/tests/baselines/reference/nestedModulePrivateAccess.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/nestedModulePrivateAccess.ts === +module a{ +>a : Symbol(a, Decl(nestedModulePrivateAccess.ts, 0, 0)) + + var x:number; +>x : Symbol(x, Decl(nestedModulePrivateAccess.ts, 1, 10)) + + module b{ +>b : Symbol(b, Decl(nestedModulePrivateAccess.ts, 1, 20)) + + var y = x; // should not be an error +>y : Symbol(y, Decl(nestedModulePrivateAccess.ts, 3, 18)) +>x : Symbol(x, Decl(nestedModulePrivateAccess.ts, 1, 10)) + } +} diff --git a/tests/baselines/reference/nestedModulePrivateAccess.types b/tests/baselines/reference/nestedModulePrivateAccess.types index 3081bd6092f1f..7aae7449dcf95 100644 --- a/tests/baselines/reference/nestedModulePrivateAccess.types +++ b/tests/baselines/reference/nestedModulePrivateAccess.types @@ -1,15 +1,15 @@ === tests/cases/compiler/nestedModulePrivateAccess.ts === module a{ ->a : typeof a, Symbol(a, Decl(nestedModulePrivateAccess.ts, 0, 0)) +>a : typeof a var x:number; ->x : number, Symbol(x, Decl(nestedModulePrivateAccess.ts, 1, 10)) +>x : number module b{ ->b : typeof b, Symbol(b, Decl(nestedModulePrivateAccess.ts, 1, 20)) +>b : typeof b var y = x; // should not be an error ->y : number, Symbol(y, Decl(nestedModulePrivateAccess.ts, 3, 18)) ->x : number, Symbol(x, Decl(nestedModulePrivateAccess.ts, 1, 10)) +>y : number +>x : number } } diff --git a/tests/baselines/reference/nestedModules.symbols b/tests/baselines/reference/nestedModules.symbols new file mode 100644 index 0000000000000..7ff4efd30f6de --- /dev/null +++ b/tests/baselines/reference/nestedModules.symbols @@ -0,0 +1,82 @@ +=== tests/cases/conformance/internalModules/moduleDeclarations/nestedModules.ts === +module A.B.C { +>A : Symbol(A, Decl(nestedModules.ts, 0, 0), Decl(nestedModules.ts, 5, 1)) +>B : Symbol(B, Decl(nestedModules.ts, 0, 9), Decl(nestedModules.ts, 7, 10)) +>C : Symbol(C, Decl(nestedModules.ts, 0, 11)) + + export interface Point { +>Point : Symbol(Point, Decl(nestedModules.ts, 0, 14)) + + x: number; +>x : Symbol(x, Decl(nestedModules.ts, 1, 28)) + + y: number; +>y : Symbol(y, Decl(nestedModules.ts, 2, 18)) + } +} + +module A { +>A : Symbol(A, Decl(nestedModules.ts, 0, 0), Decl(nestedModules.ts, 5, 1)) + + export module B { +>B : Symbol(B, Decl(nestedModules.ts, 0, 9), Decl(nestedModules.ts, 7, 10)) + + var Point: C.Point = { x: 0, y: 0 }; // bug 832088: could not find module 'C' +>Point : Symbol(Point, Decl(nestedModules.ts, 9, 11)) +>C : Symbol(C, Decl(nestedModules.ts, 0, 11)) +>Point : Symbol(C.Point, Decl(nestedModules.ts, 0, 14)) +>x : Symbol(x, Decl(nestedModules.ts, 9, 30)) +>y : Symbol(y, Decl(nestedModules.ts, 9, 36)) + } +} + +module M2.X { +>M2 : Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) +>X : Symbol(X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) + + export interface Point { +>Point : Symbol(Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) + + x: number; y: number; +>x : Symbol(x, Decl(nestedModules.ts, 14, 28)) +>y : Symbol(y, Decl(nestedModules.ts, 15, 18)) + } +} + +module M2 { +>M2 : Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) + + export module X { +>X : Symbol(X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) + + export var Point: number; +>Point : Symbol(Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) + } +} + +var m = M2.X; +>m : Symbol(m, Decl(nestedModules.ts, 25, 3)) +>M2.X : Symbol(M2.X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) +>M2 : Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) +>X : Symbol(M2.X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) + +var point: number; +>point : Symbol(point, Decl(nestedModules.ts, 26, 3), Decl(nestedModules.ts, 27, 3)) + +var point = m.Point; +>point : Symbol(point, Decl(nestedModules.ts, 26, 3), Decl(nestedModules.ts, 27, 3)) +>m.Point : Symbol(M2.X.Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) +>m : Symbol(m, Decl(nestedModules.ts, 25, 3)) +>Point : Symbol(M2.X.Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) + +var p: { x: number; y: number; } +>p : Symbol(p, Decl(nestedModules.ts, 29, 3), Decl(nestedModules.ts, 30, 3)) +>x : Symbol(x, Decl(nestedModules.ts, 29, 8)) +>y : Symbol(y, Decl(nestedModules.ts, 29, 19)) + +var p: M2.X.Point; +>p : Symbol(p, Decl(nestedModules.ts, 29, 3), Decl(nestedModules.ts, 30, 3)) +>M2 : Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) +>X : Symbol(M2.X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) +>Point : Symbol(M2.X.Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) + diff --git a/tests/baselines/reference/nestedModules.types b/tests/baselines/reference/nestedModules.types index 6fec7aa3d5acf..eee3ee3968a0a 100644 --- a/tests/baselines/reference/nestedModules.types +++ b/tests/baselines/reference/nestedModules.types @@ -1,85 +1,85 @@ === tests/cases/conformance/internalModules/moduleDeclarations/nestedModules.ts === module A.B.C { ->A : typeof A, Symbol(A, Decl(nestedModules.ts, 0, 0), Decl(nestedModules.ts, 5, 1)) ->B : typeof B, Symbol(B, Decl(nestedModules.ts, 0, 9), Decl(nestedModules.ts, 7, 10)) ->C : any, Symbol(C, Decl(nestedModules.ts, 0, 11)) +>A : typeof A +>B : typeof B +>C : any export interface Point { ->Point : Point, Symbol(Point, Decl(nestedModules.ts, 0, 14)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(nestedModules.ts, 1, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(nestedModules.ts, 2, 18)) +>y : number } } module A { ->A : typeof A, Symbol(A, Decl(nestedModules.ts, 0, 0), Decl(nestedModules.ts, 5, 1)) +>A : typeof A export module B { ->B : typeof B, Symbol(B, Decl(nestedModules.ts, 0, 9), Decl(nestedModules.ts, 7, 10)) +>B : typeof B var Point: C.Point = { x: 0, y: 0 }; // bug 832088: could not find module 'C' ->Point : C.Point, Symbol(Point, Decl(nestedModules.ts, 9, 11)) ->C : any, Symbol(C, Decl(nestedModules.ts, 0, 11)) ->Point : C.Point, Symbol(C.Point, Decl(nestedModules.ts, 0, 14)) +>Point : C.Point +>C : any +>Point : C.Point >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(nestedModules.ts, 9, 30)) +>x : number >0 : number ->y : number, Symbol(y, Decl(nestedModules.ts, 9, 36)) +>y : number >0 : number } } module M2.X { ->M2 : typeof M2, Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) ->X : typeof X, Symbol(X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) +>M2 : typeof M2 +>X : typeof X export interface Point { ->Point : Point, Symbol(Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) +>Point : Point x: number; y: number; ->x : number, Symbol(x, Decl(nestedModules.ts, 14, 28)) ->y : number, Symbol(y, Decl(nestedModules.ts, 15, 18)) +>x : number +>y : number } } module M2 { ->M2 : typeof M2, Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) +>M2 : typeof M2 export module X { ->X : typeof X, Symbol(X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) +>X : typeof X export var Point: number; ->Point : number, Symbol(Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) +>Point : number } } var m = M2.X; ->m : typeof M2.X, Symbol(m, Decl(nestedModules.ts, 25, 3)) ->M2.X : typeof M2.X, Symbol(M2.X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) ->M2 : typeof M2, Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) ->X : typeof M2.X, Symbol(M2.X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) +>m : typeof M2.X +>M2.X : typeof M2.X +>M2 : typeof M2 +>X : typeof M2.X var point: number; ->point : number, Symbol(point, Decl(nestedModules.ts, 26, 3), Decl(nestedModules.ts, 27, 3)) +>point : number var point = m.Point; ->point : number, Symbol(point, Decl(nestedModules.ts, 26, 3), Decl(nestedModules.ts, 27, 3)) ->m.Point : number, Symbol(M2.X.Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) ->m : typeof M2.X, Symbol(m, Decl(nestedModules.ts, 25, 3)) ->Point : number, Symbol(M2.X.Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) +>point : number +>m.Point : number +>m : typeof M2.X +>Point : number var p: { x: number; y: number; } ->p : { x: number; y: number; }, Symbol(p, Decl(nestedModules.ts, 29, 3), Decl(nestedModules.ts, 30, 3)) ->x : number, Symbol(x, Decl(nestedModules.ts, 29, 8)) ->y : number, Symbol(y, Decl(nestedModules.ts, 29, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p: M2.X.Point; ->p : { x: number; y: number; }, Symbol(p, Decl(nestedModules.ts, 29, 3), Decl(nestedModules.ts, 30, 3)) ->M2 : any, Symbol(M2, Decl(nestedModules.ts, 11, 1), Decl(nestedModules.ts, 17, 1)) ->X : any, Symbol(M2.X, Decl(nestedModules.ts, 13, 10), Decl(nestedModules.ts, 19, 11)) ->Point : M2.X.Point, Symbol(M2.X.Point, Decl(nestedModules.ts, 13, 13), Decl(nestedModules.ts, 21, 18)) +>p : { x: number; y: number; } +>M2 : any +>X : any +>Point : M2.X.Point diff --git a/tests/baselines/reference/nestedRecursiveLambda.symbols b/tests/baselines/reference/nestedRecursiveLambda.symbols new file mode 100644 index 0000000000000..b91c1d84ebbee --- /dev/null +++ b/tests/baselines/reference/nestedRecursiveLambda.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/nestedRecursiveLambda.ts === +function f(a:any) { +>f : Symbol(f, Decl(nestedRecursiveLambda.ts, 0, 0)) +>a : Symbol(a, Decl(nestedRecursiveLambda.ts, 0, 11)) + +void (r =>(r => r)); +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 1, 6)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 1, 11)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 1, 11)) +} +f((r =>(r => r))); +>f : Symbol(f, Decl(nestedRecursiveLambda.ts, 0, 0)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 3, 3)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 3, 8)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 3, 8)) + +void(r =>(r => r)); +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 4, 5)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 4, 10)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 4, 10)) + +[(r =>(r => r))] +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 5, 2)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 5, 7)) +>r : Symbol(r, Decl(nestedRecursiveLambda.ts, 5, 7)) + diff --git a/tests/baselines/reference/nestedRecursiveLambda.types b/tests/baselines/reference/nestedRecursiveLambda.types index 013821b33be99..864daea3e1f84 100644 --- a/tests/baselines/reference/nestedRecursiveLambda.types +++ b/tests/baselines/reference/nestedRecursiveLambda.types @@ -1,46 +1,46 @@ === tests/cases/compiler/nestedRecursiveLambda.ts === function f(a:any) { ->f : (a: any) => void, Symbol(f, Decl(nestedRecursiveLambda.ts, 0, 0)) ->a : any, Symbol(a, Decl(nestedRecursiveLambda.ts, 0, 11)) +>f : (a: any) => void +>a : any void (r =>(r => r)); >void (r =>(r => r)) : undefined >(r =>(r => r)) : (r: any) => (r: any) => any >r =>(r => r) : (r: any) => (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 1, 6)) +>r : any >(r => r) : (r: any) => any >r => r : (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 1, 11)) ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 1, 11)) +>r : any +>r : any } f((r =>(r => r))); >f((r =>(r => r))) : void ->f : (a: any) => void, Symbol(f, Decl(nestedRecursiveLambda.ts, 0, 0)) +>f : (a: any) => void >(r =>(r => r)) : (r: any) => (r: any) => any >r =>(r => r) : (r: any) => (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 3, 3)) +>r : any >(r => r) : (r: any) => any >r => r : (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 3, 8)) ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 3, 8)) +>r : any +>r : any void(r =>(r => r)); >void(r =>(r => r)) : undefined >(r =>(r => r)) : (r: any) => (r: any) => any >r =>(r => r) : (r: any) => (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 4, 5)) +>r : any >(r => r) : (r: any) => any >r => r : (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 4, 10)) ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 4, 10)) +>r : any +>r : any [(r =>(r => r))] >[(r =>(r => r))] : ((r: any) => (r: any) => any)[] >(r =>(r => r)) : (r: any) => (r: any) => any >r =>(r => r) : (r: any) => (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 5, 2)) +>r : any >(r => r) : (r: any) => any >r => r : (r: any) => any ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 5, 7)) ->r : any, Symbol(r, Decl(nestedRecursiveLambda.ts, 5, 7)) +>r : any +>r : any diff --git a/tests/baselines/reference/nestedSelf.symbols b/tests/baselines/reference/nestedSelf.symbols new file mode 100644 index 0000000000000..08f41f155d670 --- /dev/null +++ b/tests/baselines/reference/nestedSelf.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/nestedSelf.ts === +module M { +>M : Symbol(M, Decl(nestedSelf.ts, 0, 0)) + + export class C { +>C : Symbol(C, Decl(nestedSelf.ts, 0, 10)) + + public n = 42; +>n : Symbol(n, Decl(nestedSelf.ts, 1, 17)) + + public foo() { [1,2,3].map((x) => { return this.n * x; })} +>foo : Symbol(foo, Decl(nestedSelf.ts, 2, 17)) +>[1,2,3].map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>x : Symbol(x, Decl(nestedSelf.ts, 3, 31)) +>this.n : Symbol(n, Decl(nestedSelf.ts, 1, 17)) +>this : Symbol(C, Decl(nestedSelf.ts, 0, 10)) +>n : Symbol(n, Decl(nestedSelf.ts, 1, 17)) +>x : Symbol(x, Decl(nestedSelf.ts, 3, 31)) + } +} + + diff --git a/tests/baselines/reference/nestedSelf.types b/tests/baselines/reference/nestedSelf.types index ac36ef6ce276c..2c8f3f41dd610 100644 --- a/tests/baselines/reference/nestedSelf.types +++ b/tests/baselines/reference/nestedSelf.types @@ -1,30 +1,30 @@ === tests/cases/compiler/nestedSelf.ts === module M { ->M : typeof M, Symbol(M, Decl(nestedSelf.ts, 0, 0)) +>M : typeof M export class C { ->C : C, Symbol(C, Decl(nestedSelf.ts, 0, 10)) +>C : C public n = 42; ->n : number, Symbol(n, Decl(nestedSelf.ts, 1, 17)) +>n : number >42 : number public foo() { [1,2,3].map((x) => { return this.n * x; })} ->foo : () => void, Symbol(foo, Decl(nestedSelf.ts, 2, 17)) +>foo : () => void >[1,2,3].map((x) => { return this.n * x; }) : number[] ->[1,2,3].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>[1,2,3].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] >[1,2,3] : number[] >1 : number >2 : number >3 : number ->map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[], Symbol(Array.map, Decl(lib.d.ts, 1115, 92)) +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] >(x) => { return this.n * x; } : (x: number) => number ->x : number, Symbol(x, Decl(nestedSelf.ts, 3, 31)) +>x : number >this.n * x : number ->this.n : number, Symbol(n, Decl(nestedSelf.ts, 1, 17)) ->this : C, Symbol(C, Decl(nestedSelf.ts, 0, 10)) ->n : number, Symbol(n, Decl(nestedSelf.ts, 1, 17)) ->x : number, Symbol(x, Decl(nestedSelf.ts, 3, 31)) +>this.n : number +>this : C +>n : number +>x : number } } diff --git a/tests/baselines/reference/newArrays.symbols b/tests/baselines/reference/newArrays.symbols new file mode 100644 index 0000000000000..fd30b2fe25ea0 --- /dev/null +++ b/tests/baselines/reference/newArrays.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/newArrays.ts === +module M { +>M : Symbol(M, Decl(newArrays.ts, 0, 0)) + + class Foo {} +>Foo : Symbol(Foo, Decl(newArrays.ts, 0, 10)) + + class Gar { +>Gar : Symbol(Gar, Decl(newArrays.ts, 1, 13)) + + public fa: Foo[]; +>fa : Symbol(fa, Decl(newArrays.ts, 2, 12)) +>Foo : Symbol(Foo, Decl(newArrays.ts, 0, 10)) + + public x = 10; +>x : Symbol(x, Decl(newArrays.ts, 3, 19)) + + public y = 10; +>y : Symbol(y, Decl(newArrays.ts, 4, 16)) + + public m () { +>m : Symbol(m, Decl(newArrays.ts, 5, 16)) + + this.fa = new Array(this.x * this.y); +>this.fa : Symbol(fa, Decl(newArrays.ts, 2, 12)) +>this : Symbol(Gar, Decl(newArrays.ts, 1, 13)) +>fa : Symbol(fa, Decl(newArrays.ts, 2, 12)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>Foo : Symbol(Foo, Decl(newArrays.ts, 0, 10)) +>this.x : Symbol(x, Decl(newArrays.ts, 3, 19)) +>this : Symbol(Gar, Decl(newArrays.ts, 1, 13)) +>x : Symbol(x, Decl(newArrays.ts, 3, 19)) +>this.y : Symbol(y, Decl(newArrays.ts, 4, 16)) +>this : Symbol(Gar, Decl(newArrays.ts, 1, 13)) +>y : Symbol(y, Decl(newArrays.ts, 4, 16)) + } + } +} diff --git a/tests/baselines/reference/newArrays.types b/tests/baselines/reference/newArrays.types index b35d44dc18a18..4600f5efaf86f 100644 --- a/tests/baselines/reference/newArrays.types +++ b/tests/baselines/reference/newArrays.types @@ -1,43 +1,43 @@ === tests/cases/compiler/newArrays.ts === module M { ->M : typeof M, Symbol(M, Decl(newArrays.ts, 0, 0)) +>M : typeof M class Foo {} ->Foo : Foo, Symbol(Foo, Decl(newArrays.ts, 0, 10)) +>Foo : Foo class Gar { ->Gar : Gar, Symbol(Gar, Decl(newArrays.ts, 1, 13)) +>Gar : Gar public fa: Foo[]; ->fa : Foo[], Symbol(fa, Decl(newArrays.ts, 2, 12)) ->Foo : Foo, Symbol(Foo, Decl(newArrays.ts, 0, 10)) +>fa : Foo[] +>Foo : Foo public x = 10; ->x : number, Symbol(x, Decl(newArrays.ts, 3, 19)) +>x : number >10 : number public y = 10; ->y : number, Symbol(y, Decl(newArrays.ts, 4, 16)) +>y : number >10 : number public m () { ->m : () => void, Symbol(m, Decl(newArrays.ts, 5, 16)) +>m : () => void this.fa = new Array(this.x * this.y); >this.fa = new Array(this.x * this.y) : Foo[] ->this.fa : Foo[], Symbol(fa, Decl(newArrays.ts, 2, 12)) ->this : Gar, Symbol(Gar, Decl(newArrays.ts, 1, 13)) ->fa : Foo[], Symbol(fa, Decl(newArrays.ts, 2, 12)) +>this.fa : Foo[] +>this : Gar +>fa : Foo[] >new Array(this.x * this.y) : Foo[] ->Array : ArrayConstructor, Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->Foo : Foo, Symbol(Foo, Decl(newArrays.ts, 0, 10)) +>Array : ArrayConstructor +>Foo : Foo >this.x * this.y : number ->this.x : number, Symbol(x, Decl(newArrays.ts, 3, 19)) ->this : Gar, Symbol(Gar, Decl(newArrays.ts, 1, 13)) ->x : number, Symbol(x, Decl(newArrays.ts, 3, 19)) ->this.y : number, Symbol(y, Decl(newArrays.ts, 4, 16)) ->this : Gar, Symbol(Gar, Decl(newArrays.ts, 1, 13)) ->y : number, Symbol(y, Decl(newArrays.ts, 4, 16)) +>this.x : number +>this : Gar +>x : number +>this.y : number +>this : Gar +>y : number } } } diff --git a/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.symbols b/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.symbols new file mode 100644 index 0000000000000..4c22ec94c853f --- /dev/null +++ b/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts === +interface I { +>I : Symbol(I, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) + + new (u: U): U; +>U : Symbol(U, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 9)) +>T : Symbol(T, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) +>u : Symbol(u, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 22)) +>U : Symbol(U, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 9)) +>U : Symbol(U, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 9)) +} +var i: I; +>i : Symbol(i, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) +>I : Symbol(I, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) + +var y = new i(""); // y should be string +>y : Symbol(y, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>i : Symbol(i, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) + diff --git a/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.types b/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.types index 59bf47cfa730f..e07fa21fafec9 100644 --- a/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.types +++ b/tests/baselines/reference/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.types @@ -1,22 +1,22 @@ === tests/cases/compiler/newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts === interface I { ->I : I, Symbol(I, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) +>I : I +>T : T new (u: U): U; ->U : U, Symbol(U, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 9)) ->T : T, Symbol(T, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 12)) ->u : U, Symbol(u, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 22)) ->U : U, Symbol(U, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 9)) ->U : U, Symbol(U, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 1, 9)) +>U : U +>T : T +>u : U +>U : U +>U : U } var i: I; ->i : I, Symbol(i, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) ->I : I, Symbol(I, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 0, 0)) +>i : I +>I : I var y = new i(""); // y should be string ->y : string, Symbol(y, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 4, 3)) +>y : string >new i("") : string ->i : I, Symbol(i, Decl(newExpressionWithTypeParameterConstrainedToOuterTypeParameter.ts, 3, 3)) +>i : I >"" : string diff --git a/tests/baselines/reference/newOperatorConformance.symbols b/tests/baselines/reference/newOperatorConformance.symbols new file mode 100644 index 0000000000000..8467e1741fced --- /dev/null +++ b/tests/baselines/reference/newOperatorConformance.symbols @@ -0,0 +1,135 @@ +=== tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts === + +class C0 { +>C0 : Symbol(C0, Decl(newOperatorConformance.ts, 0, 0)) + +} +class C1 { +>C1 : Symbol(C1, Decl(newOperatorConformance.ts, 3, 1)) + + constructor(n: number, s: string) { } +>n : Symbol(n, Decl(newOperatorConformance.ts, 5, 16)) +>s : Symbol(s, Decl(newOperatorConformance.ts, 5, 26)) +} + +class T { +>T : Symbol(T, Decl(newOperatorConformance.ts, 6, 1)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 8, 8)) + + constructor(n?: T) { } +>n : Symbol(n, Decl(newOperatorConformance.ts, 9, 16)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 8, 8)) +} + +var anyCtor: { +>anyCtor : Symbol(anyCtor, Decl(newOperatorConformance.ts, 12, 3)) + + new (): any; +}; + +var anyCtor1: { +>anyCtor1 : Symbol(anyCtor1, Decl(newOperatorConformance.ts, 16, 3)) + + new (n): any; +>n : Symbol(n, Decl(newOperatorConformance.ts, 17, 9)) + +}; + +interface nestedCtor { +>nestedCtor : Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) + + new (): nestedCtor; +>nestedCtor : Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) +} +var nestedCtor: nestedCtor; +>nestedCtor : Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) +>nestedCtor : Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) + +// Construct expression with no parentheses for construct signature with 0 parameters +var a = new C0; +>a : Symbol(a, Decl(newOperatorConformance.ts, 26, 3), Decl(newOperatorConformance.ts, 27, 3)) +>C0 : Symbol(C0, Decl(newOperatorConformance.ts, 0, 0)) + +var a: C0; +>a : Symbol(a, Decl(newOperatorConformance.ts, 26, 3), Decl(newOperatorConformance.ts, 27, 3)) +>C0 : Symbol(C0, Decl(newOperatorConformance.ts, 0, 0)) + + +// Generic construct expression with no parentheses +var c1 = new T; +>c1 : Symbol(c1, Decl(newOperatorConformance.ts, 31, 3), Decl(newOperatorConformance.ts, 32, 3)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 6, 1)) + +var c1: T<{}>; +>c1 : Symbol(c1, Decl(newOperatorConformance.ts, 31, 3), Decl(newOperatorConformance.ts, 32, 3)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 6, 1)) + +// Construct expression where constructor is of type 'any' with no parentheses +var d = new anyCtor; +>d : Symbol(d, Decl(newOperatorConformance.ts, 35, 3), Decl(newOperatorConformance.ts, 36, 3), Decl(newOperatorConformance.ts, 39, 3)) +>anyCtor : Symbol(anyCtor, Decl(newOperatorConformance.ts, 12, 3)) + +var d: any; +>d : Symbol(d, Decl(newOperatorConformance.ts, 35, 3), Decl(newOperatorConformance.ts, 36, 3), Decl(newOperatorConformance.ts, 39, 3)) + +// Construct expression where constructor is of type 'any' with > 1 arg +var d = new anyCtor1(undefined); +>d : Symbol(d, Decl(newOperatorConformance.ts, 35, 3), Decl(newOperatorConformance.ts, 36, 3), Decl(newOperatorConformance.ts, 39, 3)) +>anyCtor1 : Symbol(anyCtor1, Decl(newOperatorConformance.ts, 16, 3)) +>undefined : Symbol(undefined) + +// Construct expression of type where apparent type has a construct signature with 0 arguments +function newFn1(s: T) { +>newFn1 : Symbol(newFn1, Decl(newOperatorConformance.ts, 39, 32)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 42, 16)) +>s : Symbol(s, Decl(newOperatorConformance.ts, 42, 46)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 42, 16)) + + var p = new s; +>p : Symbol(p, Decl(newOperatorConformance.ts, 43, 7), Decl(newOperatorConformance.ts, 44, 7)) +>s : Symbol(s, Decl(newOperatorConformance.ts, 42, 46)) + + var p: number; +>p : Symbol(p, Decl(newOperatorConformance.ts, 43, 7), Decl(newOperatorConformance.ts, 44, 7)) +} + +// Construct expression of type where apparent type has a construct signature with 1 arguments +function newFn2(s: T) { +>newFn2 : Symbol(newFn2, Decl(newOperatorConformance.ts, 45, 1)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 48, 16)) +>s : Symbol(s, Decl(newOperatorConformance.ts, 48, 33)) +>s : Symbol(s, Decl(newOperatorConformance.ts, 48, 54)) +>T : Symbol(T, Decl(newOperatorConformance.ts, 48, 16)) + + var p = new s(32); +>p : Symbol(p, Decl(newOperatorConformance.ts, 49, 7), Decl(newOperatorConformance.ts, 50, 7)) +>s : Symbol(s, Decl(newOperatorConformance.ts, 48, 54)) + + var p: string; +>p : Symbol(p, Decl(newOperatorConformance.ts, 49, 7), Decl(newOperatorConformance.ts, 50, 7)) +} + +// Construct expression of void returning function +function fnVoid(): void { } +>fnVoid : Symbol(fnVoid, Decl(newOperatorConformance.ts, 51, 1)) + +var t = new fnVoid(); +>t : Symbol(t, Decl(newOperatorConformance.ts, 55, 3), Decl(newOperatorConformance.ts, 56, 3)) +>fnVoid : Symbol(fnVoid, Decl(newOperatorConformance.ts, 51, 1)) + +var t: any; +>t : Symbol(t, Decl(newOperatorConformance.ts, 55, 3), Decl(newOperatorConformance.ts, 56, 3)) + +// Chained new expressions +var nested = new (new (new nestedCtor())())(); +>nested : Symbol(nested, Decl(newOperatorConformance.ts, 59, 3)) +>nestedCtor : Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) + +var n = new nested(); +>n : Symbol(n, Decl(newOperatorConformance.ts, 60, 3), Decl(newOperatorConformance.ts, 61, 3)) +>nested : Symbol(nested, Decl(newOperatorConformance.ts, 59, 3)) + +var n = new nested(); +>n : Symbol(n, Decl(newOperatorConformance.ts, 60, 3), Decl(newOperatorConformance.ts, 61, 3)) +>nested : Symbol(nested, Decl(newOperatorConformance.ts, 59, 3)) + diff --git a/tests/baselines/reference/newOperatorConformance.types b/tests/baselines/reference/newOperatorConformance.types index c43e7da9a5722..912c0a5c81ad8 100644 --- a/tests/baselines/reference/newOperatorConformance.types +++ b/tests/baselines/reference/newOperatorConformance.types @@ -1,150 +1,150 @@ === tests/cases/conformance/expressions/newOperator/newOperatorConformance.ts === class C0 { ->C0 : C0, Symbol(C0, Decl(newOperatorConformance.ts, 0, 0)) +>C0 : C0 } class C1 { ->C1 : C1, Symbol(C1, Decl(newOperatorConformance.ts, 3, 1)) +>C1 : C1 constructor(n: number, s: string) { } ->n : number, Symbol(n, Decl(newOperatorConformance.ts, 5, 16)) ->s : string, Symbol(s, Decl(newOperatorConformance.ts, 5, 26)) +>n : number +>s : string } class T { ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 6, 1)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 8, 8)) +>T : T +>T : T constructor(n?: T) { } ->n : T, Symbol(n, Decl(newOperatorConformance.ts, 9, 16)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 8, 8)) +>n : T +>T : T } var anyCtor: { ->anyCtor : new () => any, Symbol(anyCtor, Decl(newOperatorConformance.ts, 12, 3)) +>anyCtor : new () => any new (): any; }; var anyCtor1: { ->anyCtor1 : new (n: any) => any, Symbol(anyCtor1, Decl(newOperatorConformance.ts, 16, 3)) +>anyCtor1 : new (n: any) => any new (n): any; ->n : any, Symbol(n, Decl(newOperatorConformance.ts, 17, 9)) +>n : any }; interface nestedCtor { ->nestedCtor : nestedCtor, Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) +>nestedCtor : nestedCtor new (): nestedCtor; ->nestedCtor : nestedCtor, Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) +>nestedCtor : nestedCtor } var nestedCtor: nestedCtor; ->nestedCtor : nestedCtor, Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) ->nestedCtor : nestedCtor, Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) +>nestedCtor : nestedCtor +>nestedCtor : nestedCtor // Construct expression with no parentheses for construct signature with 0 parameters var a = new C0; ->a : C0, Symbol(a, Decl(newOperatorConformance.ts, 26, 3), Decl(newOperatorConformance.ts, 27, 3)) +>a : C0 >new C0 : C0 ->C0 : typeof C0, Symbol(C0, Decl(newOperatorConformance.ts, 0, 0)) +>C0 : typeof C0 var a: C0; ->a : C0, Symbol(a, Decl(newOperatorConformance.ts, 26, 3), Decl(newOperatorConformance.ts, 27, 3)) ->C0 : C0, Symbol(C0, Decl(newOperatorConformance.ts, 0, 0)) +>a : C0 +>C0 : C0 // Generic construct expression with no parentheses var c1 = new T; ->c1 : T<{}>, Symbol(c1, Decl(newOperatorConformance.ts, 31, 3), Decl(newOperatorConformance.ts, 32, 3)) +>c1 : T<{}> >new T : T<{}> ->T : typeof T, Symbol(T, Decl(newOperatorConformance.ts, 6, 1)) +>T : typeof T var c1: T<{}>; ->c1 : T<{}>, Symbol(c1, Decl(newOperatorConformance.ts, 31, 3), Decl(newOperatorConformance.ts, 32, 3)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 6, 1)) +>c1 : T<{}> +>T : T // Construct expression where constructor is of type 'any' with no parentheses var d = new anyCtor; ->d : any, Symbol(d, Decl(newOperatorConformance.ts, 35, 3), Decl(newOperatorConformance.ts, 36, 3), Decl(newOperatorConformance.ts, 39, 3)) +>d : any >new anyCtor : any ->anyCtor : new () => any, Symbol(anyCtor, Decl(newOperatorConformance.ts, 12, 3)) +>anyCtor : new () => any var d: any; ->d : any, Symbol(d, Decl(newOperatorConformance.ts, 35, 3), Decl(newOperatorConformance.ts, 36, 3), Decl(newOperatorConformance.ts, 39, 3)) +>d : any // Construct expression where constructor is of type 'any' with > 1 arg var d = new anyCtor1(undefined); ->d : any, Symbol(d, Decl(newOperatorConformance.ts, 35, 3), Decl(newOperatorConformance.ts, 36, 3), Decl(newOperatorConformance.ts, 39, 3)) +>d : any >new anyCtor1(undefined) : any ->anyCtor1 : new (n: any) => any, Symbol(anyCtor1, Decl(newOperatorConformance.ts, 16, 3)) ->undefined : undefined, Symbol(undefined) +>anyCtor1 : new (n: any) => any +>undefined : undefined // Construct expression of type where apparent type has a construct signature with 0 arguments function newFn1(s: T) { ->newFn1 : number>(s: T) => void, Symbol(newFn1, Decl(newOperatorConformance.ts, 39, 32)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 42, 16)) ->s : T, Symbol(s, Decl(newOperatorConformance.ts, 42, 46)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 42, 16)) +>newFn1 : number>(s: T) => void +>T : T +>s : T +>T : T var p = new s; ->p : number, Symbol(p, Decl(newOperatorConformance.ts, 43, 7), Decl(newOperatorConformance.ts, 44, 7)) +>p : number >new s : number ->s : T, Symbol(s, Decl(newOperatorConformance.ts, 42, 46)) +>s : T var p: number; ->p : number, Symbol(p, Decl(newOperatorConformance.ts, 43, 7), Decl(newOperatorConformance.ts, 44, 7)) +>p : number } // Construct expression of type where apparent type has a construct signature with 1 arguments function newFn2(s: T) { ->newFn2 : string>(s: T) => void, Symbol(newFn2, Decl(newOperatorConformance.ts, 45, 1)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 48, 16)) ->s : number, Symbol(s, Decl(newOperatorConformance.ts, 48, 33)) ->s : T, Symbol(s, Decl(newOperatorConformance.ts, 48, 54)) ->T : T, Symbol(T, Decl(newOperatorConformance.ts, 48, 16)) +>newFn2 : string>(s: T) => void +>T : T +>s : number +>s : T +>T : T var p = new s(32); ->p : string, Symbol(p, Decl(newOperatorConformance.ts, 49, 7), Decl(newOperatorConformance.ts, 50, 7)) +>p : string >new s(32) : string ->s : T, Symbol(s, Decl(newOperatorConformance.ts, 48, 54)) +>s : T >32 : number var p: string; ->p : string, Symbol(p, Decl(newOperatorConformance.ts, 49, 7), Decl(newOperatorConformance.ts, 50, 7)) +>p : string } // Construct expression of void returning function function fnVoid(): void { } ->fnVoid : () => void, Symbol(fnVoid, Decl(newOperatorConformance.ts, 51, 1)) +>fnVoid : () => void var t = new fnVoid(); ->t : any, Symbol(t, Decl(newOperatorConformance.ts, 55, 3), Decl(newOperatorConformance.ts, 56, 3)) +>t : any >new fnVoid() : any ->fnVoid : () => void, Symbol(fnVoid, Decl(newOperatorConformance.ts, 51, 1)) +>fnVoid : () => void var t: any; ->t : any, Symbol(t, Decl(newOperatorConformance.ts, 55, 3), Decl(newOperatorConformance.ts, 56, 3)) +>t : any // Chained new expressions var nested = new (new (new nestedCtor())())(); ->nested : nestedCtor, Symbol(nested, Decl(newOperatorConformance.ts, 59, 3)) +>nested : nestedCtor >new (new (new nestedCtor())())() : nestedCtor >(new (new nestedCtor())()) : nestedCtor >new (new nestedCtor())() : nestedCtor >(new nestedCtor()) : nestedCtor >new nestedCtor() : nestedCtor ->nestedCtor : nestedCtor, Symbol(nestedCtor, Decl(newOperatorConformance.ts, 18, 2), Decl(newOperatorConformance.ts, 23, 3)) +>nestedCtor : nestedCtor var n = new nested(); ->n : nestedCtor, Symbol(n, Decl(newOperatorConformance.ts, 60, 3), Decl(newOperatorConformance.ts, 61, 3)) +>n : nestedCtor >new nested() : nestedCtor ->nested : nestedCtor, Symbol(nested, Decl(newOperatorConformance.ts, 59, 3)) +>nested : nestedCtor var n = new nested(); ->n : nestedCtor, Symbol(n, Decl(newOperatorConformance.ts, 60, 3), Decl(newOperatorConformance.ts, 61, 3)) +>n : nestedCtor >new nested() : nestedCtor ->nested : nestedCtor, Symbol(nested, Decl(newOperatorConformance.ts, 59, 3)) +>nested : nestedCtor diff --git a/tests/baselines/reference/noCatchBlock.symbols b/tests/baselines/reference/noCatchBlock.symbols new file mode 100644 index 0000000000000..cf7689660a328 --- /dev/null +++ b/tests/baselines/reference/noCatchBlock.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/noCatchBlock.ts === + +No type information for this code.try { +No type information for this code. // ... +No type information for this code.} finally { +No type information for this code. // N.B. No 'catch' block +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.symbols b/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.symbols new file mode 100644 index 0000000000000..e288a42fae0f6 --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndClassInGlobal.ts === +class _this { +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndClassInGlobal.ts, 0, 0)) +} +var f = () => _this; +>f : Symbol(f, Decl(noCollisionThisExpressionAndClassInGlobal.ts, 2, 3)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndClassInGlobal.ts, 0, 0)) + diff --git a/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.types b/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.types index 986316aed6e79..44e7155854c9a 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndClassInGlobal.types @@ -1,9 +1,9 @@ === tests/cases/compiler/noCollisionThisExpressionAndClassInGlobal.ts === class _this { ->_this : _this, Symbol(_this, Decl(noCollisionThisExpressionAndClassInGlobal.ts, 0, 0)) +>_this : _this } var f = () => _this; ->f : () => typeof _this, Symbol(f, Decl(noCollisionThisExpressionAndClassInGlobal.ts, 2, 3)) +>f : () => typeof _this >() => _this : () => typeof _this ->_this : typeof _this, Symbol(_this, Decl(noCollisionThisExpressionAndClassInGlobal.ts, 0, 0)) +>_this : typeof _this diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.symbols b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.symbols new file mode 100644 index 0000000000000..298e6f9acc16d --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndLocalVarInConstructor.ts === +class class1 { +>class1 : Symbol(class1, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 0, 0)) + + constructor() { + var x2 = { +>x2 : Symbol(x2, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 2, 11)) + + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 2, 18)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 3, 22)) + + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 4, 19)) + + return callback(_this); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 3, 22)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 4, 19)) + } + } + } +} + +class class2 { +>class2 : Symbol(class2, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 9, 1)) + + constructor() { + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 13, 11)) + + var x2 = { +>x2 : Symbol(x2, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 14, 11)) + + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 14, 18)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 15, 22)) + + return callback(_this); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 15, 22)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 13, 11)) + } + } + } +} diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.types b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.types index 27532899bb424..8c3cc633c10d6 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInConstructor.types @@ -1,53 +1,53 @@ === tests/cases/compiler/noCollisionThisExpressionAndLocalVarInConstructor.ts === class class1 { ->class1 : class1, Symbol(class1, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 0, 0)) +>class1 : class1 constructor() { var x2 = { ->x2 : { doStuff: (callback: any) => () => any; }, Symbol(x2, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 2, 11)) +>x2 : { doStuff: (callback: any) => () => any; } >{ doStuff: (callback) => () => { var _this = 2; return callback(_this); } } : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 2, 18)) +>doStuff : (callback: any) => () => any >(callback) => () => { var _this = 2; return callback(_this); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 3, 22)) +>callback : any >() => { var _this = 2; return callback(_this); } : () => any var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 4, 19)) +>_this : number >2 : number return callback(_this); >callback(_this) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 3, 22)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 4, 19)) +>callback : any +>_this : number } } } } class class2 { ->class2 : class2, Symbol(class2, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 9, 1)) +>class2 : class2 constructor() { var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 13, 11)) +>_this : number >2 : number var x2 = { ->x2 : { doStuff: (callback: any) => () => any; }, Symbol(x2, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 14, 11)) +>x2 : { doStuff: (callback: any) => () => any; } >{ doStuff: (callback) => () => { return callback(_this); } } : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 14, 18)) +>doStuff : (callback: any) => () => any >(callback) => () => { return callback(_this); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 15, 22)) +>callback : any >() => { return callback(_this); } : () => any return callback(_this); >callback(_this) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 15, 22)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInConstructor.ts, 13, 11)) +>callback : any +>_this : number } } } diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.symbols b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.symbols new file mode 100644 index 0000000000000..09c99810fea75 --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndLocalVarInFunction.ts === +var console: { +>console : Symbol(console, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 3)) + + log(val: any); +>log : Symbol(log, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 14)) +>val : Symbol(val, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 1, 8)) +} +function x() { +>x : Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 2, 1)) + + var _this = 5; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 4, 7)) + + x => { console.log(_this); }; +>x : Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 4, 18)) +>console.log : Symbol(log, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 14)) +>console : Symbol(console, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 3)) +>log : Symbol(log, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 14)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 4, 7)) +} diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.types b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.types index e5d2f96a1a8e8..3edf54a594f31 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInFunction.types @@ -1,24 +1,24 @@ === tests/cases/compiler/noCollisionThisExpressionAndLocalVarInFunction.ts === var console: { ->console : { log(val: any): any; }, Symbol(console, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 3)) +>console : { log(val: any): any; } log(val: any); ->log : (val: any) => any, Symbol(log, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 14)) ->val : any, Symbol(val, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 1, 8)) +>log : (val: any) => any +>val : any } function x() { ->x : () => void, Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 2, 1)) +>x : () => void var _this = 5; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 4, 7)) +>_this : number >5 : number x => { console.log(_this); }; >x => { console.log(_this); } : (x: any) => void ->x : any, Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 4, 18)) +>x : any >console.log(_this) : any ->console.log : (val: any) => any, Symbol(log, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 14)) ->console : { log(val: any): any; }, Symbol(console, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 3)) ->log : (val: any) => any, Symbol(log, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 0, 14)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInFunction.ts, 4, 7)) +>console.log : (val: any) => any +>console : { log(val: any): any; } +>log : (val: any) => any +>_this : number } diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.symbols b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.symbols new file mode 100644 index 0000000000000..45115b278ad28 --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndLocalVarInLambda.ts === +declare function alert(message?: any): void; +>alert : Symbol(alert, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 0)) +>message : Symbol(message, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 23)) + +var x = { +>x : Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 3)) + + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 9)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 2, 14)) + + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 3, 11)) + + return callback(_this); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 2, 14)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 3, 11)) + } +} +alert(x.doStuff(x => alert(x))); +>alert : Symbol(alert, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 0)) +>x.doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 9)) +>x : Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 3)) +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 9)) +>x : Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 7, 16)) +>alert : Symbol(alert, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 0)) +>x : Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 7, 16)) + diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.types b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.types index 94d6f8c370e95..83732f9c350e7 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInLambda.types @@ -1,38 +1,38 @@ === tests/cases/compiler/noCollisionThisExpressionAndLocalVarInLambda.ts === declare function alert(message?: any): void; ->alert : (message?: any) => void, Symbol(alert, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 0)) ->message : any, Symbol(message, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 23)) +>alert : (message?: any) => void +>message : any var x = { ->x : { doStuff: (callback: any) => () => any; }, Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 3)) +>x : { doStuff: (callback: any) => () => any; } >{ doStuff: (callback) => () => { var _this = 2; return callback(_this); }} : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 9)) +>doStuff : (callback: any) => () => any >(callback) => () => { var _this = 2; return callback(_this); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 2, 14)) +>callback : any >() => { var _this = 2; return callback(_this); } : () => any var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 3, 11)) +>_this : number >2 : number return callback(_this); >callback(_this) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 2, 14)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 3, 11)) +>callback : any +>_this : number } } alert(x.doStuff(x => alert(x))); >alert(x.doStuff(x => alert(x))) : void ->alert : (message?: any) => void, Symbol(alert, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 0)) +>alert : (message?: any) => void >x.doStuff(x => alert(x)) : () => any ->x.doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 9)) ->x : { doStuff: (callback: any) => () => any; }, Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 3)) ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 1, 9)) +>x.doStuff : (callback: any) => () => any +>x : { doStuff: (callback: any) => () => any; } +>doStuff : (callback: any) => () => any >x => alert(x) : (x: any) => void ->x : any, Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 7, 16)) +>x : any >alert(x) : void ->alert : (message?: any) => void, Symbol(alert, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 0, 0)) ->x : any, Symbol(x, Decl(noCollisionThisExpressionAndLocalVarInLambda.ts, 7, 16)) +>alert : (message?: any) => void +>x : any diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.symbols b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.symbols new file mode 100644 index 0000000000000..72e0d20a9b2de --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndLocalVarInMethod.ts === +var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 0, 3)) + +class a { +>a : Symbol(a, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 0, 14)) + + method1() { +>method1 : Symbol(method1, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 1, 9)) + + return { + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 3, 16)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 4, 22)) + + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 5, 19)) + + return callback(_this); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 4, 22)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 5, 19)) + } + } + } + method2() { +>method2 : Symbol(method2, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 9, 5)) + + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 11, 11)) + + return { + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 12, 16)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 13, 22)) + + return callback(_this); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 13, 22)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 11, 11)) + } + } + } +} diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.types b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.types index aa47698e11285..49d0e3ed93ac6 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInMethod.types @@ -1,54 +1,54 @@ === tests/cases/compiler/noCollisionThisExpressionAndLocalVarInMethod.ts === var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 0, 3)) +>_this : number >2 : number class a { ->a : a, Symbol(a, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 0, 14)) +>a : a method1() { ->method1 : () => { doStuff: (callback: any) => () => any; }, Symbol(method1, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 1, 9)) +>method1 : () => { doStuff: (callback: any) => () => any; } return { >{ doStuff: (callback) => () => { var _this = 2; return callback(_this); } } : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 3, 16)) +>doStuff : (callback: any) => () => any >(callback) => () => { var _this = 2; return callback(_this); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 4, 22)) +>callback : any >() => { var _this = 2; return callback(_this); } : () => any var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 5, 19)) +>_this : number >2 : number return callback(_this); >callback(_this) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 4, 22)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 5, 19)) +>callback : any +>_this : number } } } method2() { ->method2 : () => { doStuff: (callback: any) => () => any; }, Symbol(method2, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 9, 5)) +>method2 : () => { doStuff: (callback: any) => () => any; } var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 11, 11)) +>_this : number >2 : number return { >{ doStuff: (callback) => () => { return callback(_this); } } : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 12, 16)) +>doStuff : (callback: any) => () => any >(callback) => () => { return callback(_this); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 13, 22)) +>callback : any >() => { return callback(_this); } : () => any return callback(_this); >callback(_this) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 13, 22)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInMethod.ts, 11, 11)) +>callback : any +>_this : number } } } diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.symbols b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.symbols new file mode 100644 index 0000000000000..0dc4cf1d84eb5 --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.symbols @@ -0,0 +1,40 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndLocalVarInProperty.ts === +class class1 { +>class1 : Symbol(class1, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 0, 0)) + + public prop1 = { +>prop1 : Symbol(prop1, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 0, 14)) + + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 1, 20)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 2, 18)) + + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 3, 15)) + + return callback(_this); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 2, 18)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 3, 15)) + } + } +} + +class class2 { +>class2 : Symbol(class2, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 7, 1)) + + constructor() { + var _this = 2; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 11, 11)) + } + public prop1 = { +>prop1 : Symbol(prop1, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 12, 5)) + + doStuff: (callback) => () => { +>doStuff : Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 13, 20)) +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 14, 18)) + + return callback(10); +>callback : Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 14, 18)) + } + } +} diff --git a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.types b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.types index 11646cbb0a2a4..8918ccc825c03 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndLocalVarInProperty.types @@ -1,50 +1,50 @@ === tests/cases/compiler/noCollisionThisExpressionAndLocalVarInProperty.ts === class class1 { ->class1 : class1, Symbol(class1, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 0, 0)) +>class1 : class1 public prop1 = { ->prop1 : { doStuff: (callback: any) => () => any; }, Symbol(prop1, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 0, 14)) +>prop1 : { doStuff: (callback: any) => () => any; } >{ doStuff: (callback) => () => { var _this = 2; return callback(_this); } } : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 1, 20)) +>doStuff : (callback: any) => () => any >(callback) => () => { var _this = 2; return callback(_this); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 2, 18)) +>callback : any >() => { var _this = 2; return callback(_this); } : () => any var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 3, 15)) +>_this : number >2 : number return callback(_this); >callback(_this) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 2, 18)) ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 3, 15)) +>callback : any +>_this : number } } } class class2 { ->class2 : class2, Symbol(class2, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 7, 1)) +>class2 : class2 constructor() { var _this = 2; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 11, 11)) +>_this : number >2 : number } public prop1 = { ->prop1 : { doStuff: (callback: any) => () => any; }, Symbol(prop1, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 12, 5)) +>prop1 : { doStuff: (callback: any) => () => any; } >{ doStuff: (callback) => () => { return callback(10); } } : { doStuff: (callback: any) => () => any; } doStuff: (callback) => () => { ->doStuff : (callback: any) => () => any, Symbol(doStuff, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 13, 20)) +>doStuff : (callback: any) => () => any >(callback) => () => { return callback(10); } : (callback: any) => () => any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 14, 18)) +>callback : any >() => { return callback(10); } : () => any return callback(10); >callback(10) : any ->callback : any, Symbol(callback, Decl(noCollisionThisExpressionAndLocalVarInProperty.ts, 14, 18)) +>callback : any >10 : number } } diff --git a/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.symbols b/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.symbols new file mode 100644 index 0000000000000..c3746cbcb8f41 --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.symbols @@ -0,0 +1,8 @@ +=== tests/cases/compiler/noCollisionThisExpressionAndVarInGlobal.ts === +var _this = 1; +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndVarInGlobal.ts, 0, 3)) + +var f = () => _this; +>f : Symbol(f, Decl(noCollisionThisExpressionAndVarInGlobal.ts, 1, 3)) +>_this : Symbol(_this, Decl(noCollisionThisExpressionAndVarInGlobal.ts, 0, 3)) + diff --git a/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.types b/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.types index fc6dbf63a0e1f..c5943ef5c14e2 100644 --- a/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.types +++ b/tests/baselines/reference/noCollisionThisExpressionAndVarInGlobal.types @@ -1,10 +1,10 @@ === tests/cases/compiler/noCollisionThisExpressionAndVarInGlobal.ts === var _this = 1; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndVarInGlobal.ts, 0, 3)) +>_this : number >1 : number var f = () => _this; ->f : () => number, Symbol(f, Decl(noCollisionThisExpressionAndVarInGlobal.ts, 1, 3)) +>f : () => number >() => _this : () => number ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionAndVarInGlobal.ts, 0, 3)) +>_this : number diff --git a/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.symbols b/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.symbols new file mode 100644 index 0000000000000..b2f2adbbbb609 --- /dev/null +++ b/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/noCollisionThisExpressionInFunctionAndVarInGlobal.ts === +var console: { +>console : Symbol(console, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 3)) + + log(val: any); +>log : Symbol(log, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 14)) +>val : Symbol(val, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 1, 8)) +} +var _this = 5; +>_this : Symbol(_this, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 3, 3)) + +function x() { +>x : Symbol(x, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 3, 14)) + + x => { console.log(this); }; +>x : Symbol(x, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 4, 14)) +>console.log : Symbol(log, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 14)) +>console : Symbol(console, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 3)) +>log : Symbol(log, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 14)) +} diff --git a/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.types b/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.types index d76bef05f13c7..ba65e03ba5992 100644 --- a/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.types +++ b/tests/baselines/reference/noCollisionThisExpressionInFunctionAndVarInGlobal.types @@ -1,24 +1,24 @@ === tests/cases/compiler/noCollisionThisExpressionInFunctionAndVarInGlobal.ts === var console: { ->console : { log(val: any): any; }, Symbol(console, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 3)) +>console : { log(val: any): any; } log(val: any); ->log : (val: any) => any, Symbol(log, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 14)) ->val : any, Symbol(val, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 1, 8)) +>log : (val: any) => any +>val : any } var _this = 5; ->_this : number, Symbol(_this, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 3, 3)) +>_this : number >5 : number function x() { ->x : () => void, Symbol(x, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 3, 14)) +>x : () => void x => { console.log(this); }; >x => { console.log(this); } : (x: any) => void ->x : any, Symbol(x, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 4, 14)) +>x : any >console.log(this) : any ->console.log : (val: any) => any, Symbol(log, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 14)) ->console : { log(val: any): any; }, Symbol(console, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 3)) ->log : (val: any) => any, Symbol(log, Decl(noCollisionThisExpressionInFunctionAndVarInGlobal.ts, 0, 14)) +>console.log : (val: any) => any +>console : { log(val: any): any; } +>log : (val: any) => any >this : any } diff --git a/tests/baselines/reference/noConstraintInReturnType1.symbols b/tests/baselines/reference/noConstraintInReturnType1.symbols new file mode 100644 index 0000000000000..86d9283ca37f7 --- /dev/null +++ b/tests/baselines/reference/noConstraintInReturnType1.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/noConstraintInReturnType1.ts === +class List { +>List : Symbol(List, Decl(noConstraintInReturnType1.ts, 0, 0)) +>T : Symbol(T, Decl(noConstraintInReturnType1.ts, 0, 11)) + + static empty(): List { return null; } +>empty : Symbol(List.empty, Decl(noConstraintInReturnType1.ts, 0, 26)) +>T : Symbol(T, Decl(noConstraintInReturnType1.ts, 1, 17)) +>List : Symbol(List, Decl(noConstraintInReturnType1.ts, 0, 0)) +>T : Symbol(T, Decl(noConstraintInReturnType1.ts, 1, 17)) +} + diff --git a/tests/baselines/reference/noConstraintInReturnType1.types b/tests/baselines/reference/noConstraintInReturnType1.types index 991f3ca6404f8..a4c754371eb33 100644 --- a/tests/baselines/reference/noConstraintInReturnType1.types +++ b/tests/baselines/reference/noConstraintInReturnType1.types @@ -1,13 +1,13 @@ === tests/cases/compiler/noConstraintInReturnType1.ts === class List { ->List : List, Symbol(List, Decl(noConstraintInReturnType1.ts, 0, 0)) ->T : T, Symbol(T, Decl(noConstraintInReturnType1.ts, 0, 11)) +>List : List +>T : T static empty(): List { return null; } ->empty : () => List, Symbol(List.empty, Decl(noConstraintInReturnType1.ts, 0, 26)) ->T : T, Symbol(T, Decl(noConstraintInReturnType1.ts, 1, 17)) ->List : List, Symbol(List, Decl(noConstraintInReturnType1.ts, 0, 0)) ->T : T, Symbol(T, Decl(noConstraintInReturnType1.ts, 1, 17)) +>empty : () => List +>T : T +>List : List +>T : T >null : null } diff --git a/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.symbols b/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.symbols new file mode 100644 index 0000000000000..1673c50f69fb8 --- /dev/null +++ b/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/app.ts === +/// +var x = new Something(); +>x : Symbol(x, Decl(app.ts, 1, 3)) +>Something : Symbol(Something, Decl(test.d.ts, 0, 0)) + +=== tests/cases/compiler/test.d.ts === +declare class Something +>Something : Symbol(Something, Decl(test.d.ts, 0, 0)) +{ + private static someStaticVar; +>someStaticVar : Symbol(Something.someStaticVar, Decl(test.d.ts, 1, 1)) + + private someVar; +>someVar : Symbol(someVar, Decl(test.d.ts, 2, 33)) +} + diff --git a/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.types b/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.types index 164f095708e9a..071d8a1aa881b 100644 --- a/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.types +++ b/tests/baselines/reference/noImplicitAnyAndPrivateMembersWithoutTypeAnnotations.types @@ -1,18 +1,18 @@ === tests/cases/compiler/app.ts === /// var x = new Something(); ->x : Something, Symbol(x, Decl(app.ts, 1, 3)) +>x : Something >new Something() : Something ->Something : typeof Something, Symbol(Something, Decl(test.d.ts, 0, 0)) +>Something : typeof Something === tests/cases/compiler/test.d.ts === declare class Something ->Something : Something, Symbol(Something, Decl(test.d.ts, 0, 0)) +>Something : Something { private static someStaticVar; ->someStaticVar : any, Symbol(Something.someStaticVar, Decl(test.d.ts, 1, 1)) +>someStaticVar : any private someVar; ->someVar : any, Symbol(someVar, Decl(test.d.ts, 2, 33)) +>someVar : any } diff --git a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.symbols b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.symbols new file mode 100644 index 0000000000000..8e9a331a2058f --- /dev/null +++ b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/noImplicitAnyFunctionExpressionAssignment.ts === + +var x: (a: any) => void = function (x: T) { +>x : Symbol(x, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 3)) +>a : Symbol(a, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 8)) +>T : Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 36)) +>x : Symbol(x, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 39)) +>T : Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 36)) + + return null; +}; + +var x2: (a: any) => void = function f(x: T) { +>x2 : Symbol(x2, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 3)) +>a : Symbol(a, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 9)) +>f : Symbol(f, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 26)) +>T : Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 38)) +>x : Symbol(x, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 41)) +>T : Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 38)) + + return null; +}; diff --git a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types index f35c78ac229ab..9d8e216b6565d 100644 --- a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types +++ b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types @@ -1,12 +1,12 @@ === tests/cases/compiler/noImplicitAnyFunctionExpressionAssignment.ts === var x: (a: any) => void = function (x: T) { ->x : (a: any) => void, Symbol(x, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 3)) ->a : any, Symbol(a, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 8)) +>x : (a: any) => void +>a : any >function (x: T) { return null;} : (x: T) => any ->T : T, Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 36)) ->x : T, Symbol(x, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 39)) ->T : T, Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 1, 36)) +>T : T +>x : T +>T : T return null; >null : null @@ -14,13 +14,13 @@ var x: (a: any) => void = function (x: T) { }; var x2: (a: any) => void = function f(x: T) { ->x2 : (a: any) => void, Symbol(x2, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 3)) ->a : any, Symbol(a, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 9)) +>x2 : (a: any) => void +>a : any >function f(x: T) { return null;} : (x: T) => any ->f : (x: T) => any, Symbol(f, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 26)) ->T : T, Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 38)) ->x : T, Symbol(x, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 41)) ->T : T, Symbol(T, Decl(noImplicitAnyFunctionExpressionAssignment.ts, 5, 38)) +>f : (x: T) => any +>T : T +>x : T +>T : T return null; >null : null diff --git a/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.symbols b/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.symbols new file mode 100644 index 0000000000000..4bddb6a1f71b0 --- /dev/null +++ b/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/noImplicitAnyInContextuallyTypesFunctionParamter.ts === + +var regexMatchList = ['', '']; +>regexMatchList : Symbol(regexMatchList, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 1, 3)) + +regexMatchList.forEach(match => ''.replace(match, '')); +>regexMatchList.forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>regexMatchList : Symbol(regexMatchList, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 1, 3)) +>forEach : Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>match : Symbol(match, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 2, 23)) +>''.replace : Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) +>replace : Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) +>match : Symbol(match, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 2, 23)) + diff --git a/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.types b/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.types index 9f4cc7ccd1147..81fd614cb0e28 100644 --- a/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.types +++ b/tests/baselines/reference/noImplicitAnyInContextuallyTypesFunctionParamter.types @@ -1,22 +1,22 @@ === tests/cases/compiler/noImplicitAnyInContextuallyTypesFunctionParamter.ts === var regexMatchList = ['', '']; ->regexMatchList : string[], Symbol(regexMatchList, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 1, 3)) +>regexMatchList : string[] >['', ''] : string[] >'' : string >'' : string regexMatchList.forEach(match => ''.replace(match, '')); >regexMatchList.forEach(match => ''.replace(match, '')) : void ->regexMatchList.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) ->regexMatchList : string[], Symbol(regexMatchList, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 1, 3)) ->forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void, Symbol(Array.forEach, Decl(lib.d.ts, 1108, 95)) +>regexMatchList.forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void +>regexMatchList : string[] +>forEach : (callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any) => void >match => ''.replace(match, '') : (match: string) => string ->match : string, Symbol(match, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 2, 23)) +>match : string >''.replace(match, '') : string ->''.replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; }, Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) +>''.replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; } >'' : string ->replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; }, Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) ->match : string, Symbol(match, Decl(noImplicitAnyInContextuallyTypesFunctionParamter.ts, 2, 23)) +>replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; } +>match : string >'' : string diff --git a/tests/baselines/reference/noImplicitAnyIndexingSuppressed.symbols b/tests/baselines/reference/noImplicitAnyIndexingSuppressed.symbols new file mode 100644 index 0000000000000..7c8f57795b40e --- /dev/null +++ b/tests/baselines/reference/noImplicitAnyIndexingSuppressed.symbols @@ -0,0 +1,101 @@ +=== tests/cases/compiler/noImplicitAnyIndexingSuppressed.ts === + +enum MyEmusEnum { +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) + + emu +>emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +} + +// Should be okay; should be a string. +var strRepresentation1 = MyEmusEnum[0] +>strRepresentation1 : Symbol(strRepresentation1, Decl(noImplicitAnyIndexingSuppressed.ts, 6, 3)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) + +// Should be okay; should be a string. +var strRepresentation2 = MyEmusEnum[MyEmusEnum.emu] +>strRepresentation2 : Symbol(strRepresentation2, Decl(noImplicitAnyIndexingSuppressed.ts, 9, 3)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>MyEmusEnum.emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) + +// Should be okay, as we suppress implicit 'any' property access checks +var strRepresentation3 = MyEmusEnum["monehh"]; +>strRepresentation3 : Symbol(strRepresentation3, Decl(noImplicitAnyIndexingSuppressed.ts, 12, 3)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) + +// Should be okay; should be a MyEmusEnum +var strRepresentation4 = MyEmusEnum["emu"]; +>strRepresentation4 : Symbol(strRepresentation4, Decl(noImplicitAnyIndexingSuppressed.ts, 15, 3)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>"emu" : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) + + +// Should be okay, as we suppress implicit 'any' property access checks +var x = {}["hi"]; +>x : Symbol(x, Decl(noImplicitAnyIndexingSuppressed.ts, 19, 3)) + +// Should be okay, as we suppress implicit 'any' property access checks +var y = {}[10]; +>y : Symbol(y, Decl(noImplicitAnyIndexingSuppressed.ts, 22, 3)) + +var hi: any = "hi"; +>hi : Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) + +var emptyObj = {}; +>emptyObj : Symbol(emptyObj, Decl(noImplicitAnyIndexingSuppressed.ts, 26, 3)) + +// Should be okay, as we suppress implicit 'any' property access checks +var z1 = emptyObj[hi]; +>z1 : Symbol(z1, Decl(noImplicitAnyIndexingSuppressed.ts, 29, 3)) +>emptyObj : Symbol(emptyObj, Decl(noImplicitAnyIndexingSuppressed.ts, 26, 3)) +>hi : Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) + +var z2 = (emptyObj)[hi]; +>z2 : Symbol(z2, Decl(noImplicitAnyIndexingSuppressed.ts, 30, 3)) +>emptyObj : Symbol(emptyObj, Decl(noImplicitAnyIndexingSuppressed.ts, 26, 3)) +>hi : Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) + +interface MyMap { +>MyMap : Symbol(MyMap, Decl(noImplicitAnyIndexingSuppressed.ts, 30, 29)) +>T : Symbol(T, Decl(noImplicitAnyIndexingSuppressed.ts, 32, 16)) + + [key: string]: T; +>key : Symbol(key, Decl(noImplicitAnyIndexingSuppressed.ts, 33, 5)) +>T : Symbol(T, Decl(noImplicitAnyIndexingSuppressed.ts, 32, 16)) +} + +var m: MyMap = { +>m : Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) +>MyMap : Symbol(MyMap, Decl(noImplicitAnyIndexingSuppressed.ts, 30, 29)) + + "0": 0, + "1": 1, + "2": 2, + "Okay that's enough for today.": NaN +>NaN : Symbol(NaN, Decl(lib.d.ts, 21, 11)) + +}; + +var mResult1 = m[MyEmusEnum.emu]; +>mResult1 : Symbol(mResult1, Decl(noImplicitAnyIndexingSuppressed.ts, 43, 3)) +>m : Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) +>MyEmusEnum.emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) + +var mResult2 = m[MyEmusEnum[MyEmusEnum.emu]]; +>mResult2 : Symbol(mResult2, Decl(noImplicitAnyIndexingSuppressed.ts, 44, 3)) +>m : Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>MyEmusEnum.emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>MyEmusEnum : Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>emu : Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) + +var mResult3 = m[hi]; +>mResult3 : Symbol(mResult3, Decl(noImplicitAnyIndexingSuppressed.ts, 45, 3)) +>m : Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) +>hi : Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) + + diff --git a/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types b/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types index b8dc5f47ad0a5..b7b21bf8f9258 100644 --- a/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types +++ b/tests/baselines/reference/noImplicitAnyIndexingSuppressed.types @@ -1,92 +1,92 @@ === tests/cases/compiler/noImplicitAnyIndexingSuppressed.ts === enum MyEmusEnum { ->MyEmusEnum : MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>MyEmusEnum : MyEmusEnum emu ->emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>emu : MyEmusEnum } // Should be okay; should be a string. var strRepresentation1 = MyEmusEnum[0] ->strRepresentation1 : string, Symbol(strRepresentation1, Decl(noImplicitAnyIndexingSuppressed.ts, 6, 3)) +>strRepresentation1 : string >MyEmusEnum[0] : string ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>MyEmusEnum : typeof MyEmusEnum >0 : number // Should be okay; should be a string. var strRepresentation2 = MyEmusEnum[MyEmusEnum.emu] ->strRepresentation2 : string, Symbol(strRepresentation2, Decl(noImplicitAnyIndexingSuppressed.ts, 9, 3)) +>strRepresentation2 : string >MyEmusEnum[MyEmusEnum.emu] : string ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) ->MyEmusEnum.emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) ->emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>MyEmusEnum : typeof MyEmusEnum +>MyEmusEnum.emu : MyEmusEnum +>MyEmusEnum : typeof MyEmusEnum +>emu : MyEmusEnum // Should be okay, as we suppress implicit 'any' property access checks var strRepresentation3 = MyEmusEnum["monehh"]; ->strRepresentation3 : any, Symbol(strRepresentation3, Decl(noImplicitAnyIndexingSuppressed.ts, 12, 3)) +>strRepresentation3 : any >MyEmusEnum["monehh"] : any ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) +>MyEmusEnum : typeof MyEmusEnum >"monehh" : string // Should be okay; should be a MyEmusEnum var strRepresentation4 = MyEmusEnum["emu"]; ->strRepresentation4 : MyEmusEnum, Symbol(strRepresentation4, Decl(noImplicitAnyIndexingSuppressed.ts, 15, 3)) +>strRepresentation4 : MyEmusEnum >MyEmusEnum["emu"] : MyEmusEnum ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) ->"emu" : string, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>MyEmusEnum : typeof MyEmusEnum +>"emu" : string // Should be okay, as we suppress implicit 'any' property access checks var x = {}["hi"]; ->x : any, Symbol(x, Decl(noImplicitAnyIndexingSuppressed.ts, 19, 3)) +>x : any >{}["hi"] : any >{} : {} >"hi" : string // Should be okay, as we suppress implicit 'any' property access checks var y = {}[10]; ->y : any, Symbol(y, Decl(noImplicitAnyIndexingSuppressed.ts, 22, 3)) +>y : any >{}[10] : any >{} : {} >10 : number var hi: any = "hi"; ->hi : any, Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) +>hi : any >"hi" : string var emptyObj = {}; ->emptyObj : {}, Symbol(emptyObj, Decl(noImplicitAnyIndexingSuppressed.ts, 26, 3)) +>emptyObj : {} >{} : {} // Should be okay, as we suppress implicit 'any' property access checks var z1 = emptyObj[hi]; ->z1 : any, Symbol(z1, Decl(noImplicitAnyIndexingSuppressed.ts, 29, 3)) +>z1 : any >emptyObj[hi] : any ->emptyObj : {}, Symbol(emptyObj, Decl(noImplicitAnyIndexingSuppressed.ts, 26, 3)) ->hi : any, Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) +>emptyObj : {} +>hi : any var z2 = (emptyObj)[hi]; ->z2 : any, Symbol(z2, Decl(noImplicitAnyIndexingSuppressed.ts, 30, 3)) +>z2 : any >(emptyObj)[hi] : any >(emptyObj) : any >emptyObj : any ->emptyObj : {}, Symbol(emptyObj, Decl(noImplicitAnyIndexingSuppressed.ts, 26, 3)) ->hi : any, Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) +>emptyObj : {} +>hi : any interface MyMap { ->MyMap : MyMap, Symbol(MyMap, Decl(noImplicitAnyIndexingSuppressed.ts, 30, 29)) ->T : T, Symbol(T, Decl(noImplicitAnyIndexingSuppressed.ts, 32, 16)) +>MyMap : MyMap +>T : T [key: string]: T; ->key : string, Symbol(key, Decl(noImplicitAnyIndexingSuppressed.ts, 33, 5)) ->T : T, Symbol(T, Decl(noImplicitAnyIndexingSuppressed.ts, 32, 16)) +>key : string +>T : T } var m: MyMap = { ->m : MyMap, Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) ->MyMap : MyMap, Symbol(MyMap, Decl(noImplicitAnyIndexingSuppressed.ts, 30, 29)) +>m : MyMap +>MyMap : MyMap >{ "0": 0, "1": 1, "2": 2, "Okay that's enough for today.": NaN} : { [x: string]: number; "0": number; "1": number; "2": number; "Okay that's enough for today.": number; } "0": 0, @@ -99,32 +99,32 @@ var m: MyMap = { >2 : number "Okay that's enough for today.": NaN ->NaN : number, Symbol(NaN, Decl(lib.d.ts, 21, 11)) +>NaN : number }; var mResult1 = m[MyEmusEnum.emu]; ->mResult1 : number, Symbol(mResult1, Decl(noImplicitAnyIndexingSuppressed.ts, 43, 3)) +>mResult1 : number >m[MyEmusEnum.emu] : number ->m : MyMap, Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) ->MyEmusEnum.emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) ->emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>m : MyMap +>MyEmusEnum.emu : MyEmusEnum +>MyEmusEnum : typeof MyEmusEnum +>emu : MyEmusEnum var mResult2 = m[MyEmusEnum[MyEmusEnum.emu]]; ->mResult2 : number, Symbol(mResult2, Decl(noImplicitAnyIndexingSuppressed.ts, 44, 3)) +>mResult2 : number >m[MyEmusEnum[MyEmusEnum.emu]] : number ->m : MyMap, Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) +>m : MyMap >MyEmusEnum[MyEmusEnum.emu] : string ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) ->MyEmusEnum.emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) ->MyEmusEnum : typeof MyEmusEnum, Symbol(MyEmusEnum, Decl(noImplicitAnyIndexingSuppressed.ts, 0, 0)) ->emu : MyEmusEnum, Symbol(MyEmusEnum.emu, Decl(noImplicitAnyIndexingSuppressed.ts, 1, 17)) +>MyEmusEnum : typeof MyEmusEnum +>MyEmusEnum.emu : MyEmusEnum +>MyEmusEnum : typeof MyEmusEnum +>emu : MyEmusEnum var mResult3 = m[hi]; ->mResult3 : number, Symbol(mResult3, Decl(noImplicitAnyIndexingSuppressed.ts, 45, 3)) +>mResult3 : number >m[hi] : number ->m : MyMap, Symbol(m, Decl(noImplicitAnyIndexingSuppressed.ts, 36, 3)) ->hi : any, Symbol(hi, Decl(noImplicitAnyIndexingSuppressed.ts, 24, 3)) +>m : MyMap +>hi : any diff --git a/tests/baselines/reference/noSelfOnVars.symbols b/tests/baselines/reference/noSelfOnVars.symbols new file mode 100644 index 0000000000000..dd01736436a92 --- /dev/null +++ b/tests/baselines/reference/noSelfOnVars.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/noSelfOnVars.ts === +function foo() { +>foo : Symbol(foo, Decl(noSelfOnVars.ts, 0, 0)) + + function bar() { } +>bar : Symbol(bar, Decl(noSelfOnVars.ts, 0, 16)) + + var x = bar; +>x : Symbol(x, Decl(noSelfOnVars.ts, 2, 7)) +>bar : Symbol(bar, Decl(noSelfOnVars.ts, 0, 16)) +} + + + diff --git a/tests/baselines/reference/noSelfOnVars.types b/tests/baselines/reference/noSelfOnVars.types index fd945ff212816..8a059d8bc6059 100644 --- a/tests/baselines/reference/noSelfOnVars.types +++ b/tests/baselines/reference/noSelfOnVars.types @@ -1,13 +1,13 @@ === tests/cases/compiler/noSelfOnVars.ts === function foo() { ->foo : () => void, Symbol(foo, Decl(noSelfOnVars.ts, 0, 0)) +>foo : () => void function bar() { } ->bar : () => void, Symbol(bar, Decl(noSelfOnVars.ts, 0, 16)) +>bar : () => void var x = bar; ->x : () => void, Symbol(x, Decl(noSelfOnVars.ts, 2, 7)) ->bar : () => void, Symbol(bar, Decl(noSelfOnVars.ts, 0, 16)) +>x : () => void +>bar : () => void } diff --git a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.symbols b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.symbols new file mode 100644 index 0000000000000..f25acc772a6a6 --- /dev/null +++ b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.symbols @@ -0,0 +1,61 @@ +=== tests/cases/conformance/types/typeRelationships/recursiveTypes/nominalSubtypeCheckOfTypeParameter.ts === +interface Tuple { +>Tuple : Symbol(Tuple, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 16)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 18)) + + first: T +>first : Symbol(first, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 23)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 16)) + + second: S +>second : Symbol(second, Decl(nominalSubtypeCheckOfTypeParameter.ts, 1, 12)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 18)) +} + +interface Sequence { +>Sequence : Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 19)) + + hasNext(): boolean +>hasNext : Symbol(hasNext, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 23)) + + pop(): T +>pop : Symbol(pop, Decl(nominalSubtypeCheckOfTypeParameter.ts, 6, 22)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 19)) + + zip(seq: Sequence): Sequence> +>zip : Symbol(zip, Decl(nominalSubtypeCheckOfTypeParameter.ts, 7, 14)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 10)) +>seq : Symbol(seq, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 13)) +>Sequence : Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 10)) +>Sequence : Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) +>Tuple : Symbol(Tuple, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 19)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 10)) +} + +// error, despite the fact that the code explicitly says List extends Sequence, the current rules for infinitely expanding type references +// perform nominal subtyping checks that allow variance for type arguments, but not nominal subtyping for the generic type itself +interface List extends Sequence { +>List : Symbol(List, Decl(nominalSubtypeCheckOfTypeParameter.ts, 9, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 15)) +>Sequence : Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 15)) + + getLength(): number +>getLength : Symbol(getLength, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 39)) + + zip(seq: Sequence): List> +>zip : Symbol(zip, Decl(nominalSubtypeCheckOfTypeParameter.ts, 14, 23)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 10)) +>seq : Symbol(seq, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 13)) +>Sequence : Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 10)) +>List : Symbol(List, Decl(nominalSubtypeCheckOfTypeParameter.ts, 9, 1)) +>Tuple : Symbol(Tuple, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 15)) +>S : Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 10)) +} + diff --git a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types index 6f92dc28a9acb..79b2ac77d78d2 100644 --- a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types +++ b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types @@ -1,61 +1,61 @@ === tests/cases/conformance/types/typeRelationships/recursiveTypes/nominalSubtypeCheckOfTypeParameter.ts === interface Tuple { ->Tuple : Tuple, Symbol(Tuple, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 16)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 18)) +>Tuple : Tuple +>T : T +>S : S first: T ->first : T, Symbol(first, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 23)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 16)) +>first : T +>T : T second: S ->second : S, Symbol(second, Decl(nominalSubtypeCheckOfTypeParameter.ts, 1, 12)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 18)) +>second : S +>S : S } interface Sequence { ->Sequence : Sequence, Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 19)) +>Sequence : Sequence +>T : T hasNext(): boolean ->hasNext : () => boolean, Symbol(hasNext, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 23)) +>hasNext : () => boolean pop(): T ->pop : () => T, Symbol(pop, Decl(nominalSubtypeCheckOfTypeParameter.ts, 6, 22)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 19)) +>pop : () => T +>T : T zip(seq: Sequence): Sequence> ->zip : (seq: Sequence) => Sequence>, Symbol(zip, Decl(nominalSubtypeCheckOfTypeParameter.ts, 7, 14)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 10)) ->seq : Sequence, Symbol(seq, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 13)) ->Sequence : Sequence, Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 10)) ->Sequence : Sequence, Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) ->Tuple : Tuple, Symbol(Tuple, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 5, 19)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 8, 10)) +>zip : (seq: Sequence) => Sequence> +>S : S +>seq : Sequence +>Sequence : Sequence +>S : S +>Sequence : Sequence +>Tuple : Tuple +>T : T +>S : S } // error, despite the fact that the code explicitly says List extends Sequence, the current rules for infinitely expanding type references // perform nominal subtyping checks that allow variance for type arguments, but not nominal subtyping for the generic type itself interface List extends Sequence { ->List : List, Symbol(List, Decl(nominalSubtypeCheckOfTypeParameter.ts, 9, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 15)) ->Sequence : Sequence, Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 15)) +>List : List +>T : T +>Sequence : Sequence +>T : T getLength(): number ->getLength : () => number, Symbol(getLength, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 39)) +>getLength : () => number zip(seq: Sequence): List> ->zip : (seq: Sequence) => List>, Symbol(zip, Decl(nominalSubtypeCheckOfTypeParameter.ts, 14, 23)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 10)) ->seq : Sequence, Symbol(seq, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 13)) ->Sequence : Sequence, Symbol(Sequence, Decl(nominalSubtypeCheckOfTypeParameter.ts, 3, 1)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 10)) ->List : List, Symbol(List, Decl(nominalSubtypeCheckOfTypeParameter.ts, 9, 1)) ->Tuple : Tuple, Symbol(Tuple, Decl(nominalSubtypeCheckOfTypeParameter.ts, 0, 0)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter.ts, 13, 15)) ->S : S, Symbol(S, Decl(nominalSubtypeCheckOfTypeParameter.ts, 15, 10)) +>zip : (seq: Sequence) => List> +>S : S +>seq : Sequence +>Sequence : Sequence +>S : S +>List : List +>Tuple : Tuple +>T : T +>S : S } diff --git a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.symbols b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.symbols new file mode 100644 index 0000000000000..3249c465a986a --- /dev/null +++ b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.symbols @@ -0,0 +1,55 @@ +=== tests/cases/conformance/types/typeRelationships/recursiveTypes/nominalSubtypeCheckOfTypeParameter2.ts === +interface B { +>B : Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 12)) + + bar: T; +>bar : Symbol(bar, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 16)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 12)) +} + +// ok +interface A extends B { +>A : Symbol(A, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 2, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 12)) +>B : Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 12)) + + foo: T; +>foo : Symbol(foo, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 29)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 12)) +} + +// ok +interface A2 extends B> { +>A2 : Symbol(A2, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 7, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 10, 13)) +>B : Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) +>B : Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) + + baz: T; +>baz : Symbol(baz, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 10, 38)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 10, 13)) +} + +interface C { +>C : Symbol(C, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 12, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 14, 12)) + + bam: T; +>bam : Symbol(bam, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 14, 16)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 14, 12)) +} + +// ok +interface A3 extends B> { +>A3 : Symbol(A3, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 16, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 13)) +>B : Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) +>C : Symbol(C, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 12, 1)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 13)) + + bing: T; +>bing : Symbol(bing, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 33)) +>T : Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 13)) +} diff --git a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.types b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.types index 76a667a2066c1..31549cd59c9f9 100644 --- a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.types +++ b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter2.types @@ -1,55 +1,55 @@ === tests/cases/conformance/types/typeRelationships/recursiveTypes/nominalSubtypeCheckOfTypeParameter2.ts === interface B { ->B : B, Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 12)) +>B : B +>T : T bar: T; ->bar : T, Symbol(bar, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 16)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 12)) +>bar : T +>T : T } // ok interface A extends B { ->A : A, Symbol(A, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 2, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 12)) ->B : B, Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 12)) +>A : A +>T : T +>B : B +>T : T foo: T; ->foo : T, Symbol(foo, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 29)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 5, 12)) +>foo : T +>T : T } // ok interface A2 extends B> { ->A2 : A2, Symbol(A2, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 7, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 10, 13)) ->B : B, Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) ->B : B, Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) +>A2 : A2 +>T : T +>B : B +>B : B baz: T; ->baz : T, Symbol(baz, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 10, 38)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 10, 13)) +>baz : T +>T : T } interface C { ->C : C, Symbol(C, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 12, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 14, 12)) +>C : C +>T : T bam: T; ->bam : T, Symbol(bam, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 14, 16)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 14, 12)) +>bam : T +>T : T } // ok interface A3 extends B> { ->A3 : A3, Symbol(A3, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 16, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 13)) ->B : B, Symbol(B, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 0, 0)) ->C : C, Symbol(C, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 12, 1)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 13)) +>A3 : A3 +>T : T +>B : B +>C : C +>T : T bing: T; ->bing : T, Symbol(bing, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 33)) ->T : T, Symbol(T, Decl(nominalSubtypeCheckOfTypeParameter2.ts, 19, 13)) +>bing : T +>T : T } diff --git a/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.symbols b/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.symbols new file mode 100644 index 0000000000000..f3ff334931c22 --- /dev/null +++ b/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/nonConflictingRecursiveBaseTypeMembers.ts === +interface A { +>A : Symbol(A, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 0)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 12)) + + x: C +>x : Symbol(x, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 16)) +>C : Symbol(C, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 6, 1)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 12)) +} + +interface B { +>B : Symbol(B, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 2, 1)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 4, 12)) + + x: C +>x : Symbol(x, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 4, 16)) +>C : Symbol(C, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 6, 1)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 4, 12)) +} + +interface C extends A, B { } // Should not be an error +>C : Symbol(C, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 6, 1)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 8, 12)) +>A : Symbol(A, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 0)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 8, 12)) +>B : Symbol(B, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 2, 1)) +>T : Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 8, 12)) + diff --git a/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.types b/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.types index f968543d5828f..aa01b5087643a 100644 --- a/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.types +++ b/tests/baselines/reference/nonConflictingRecursiveBaseTypeMembers.types @@ -1,29 +1,29 @@ === tests/cases/compiler/nonConflictingRecursiveBaseTypeMembers.ts === interface A { ->A : A, Symbol(A, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 0)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 12)) +>A : A +>T : T x: C ->x : C, Symbol(x, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 16)) ->C : C, Symbol(C, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 6, 1)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 12)) +>x : C +>C : C +>T : T } interface B { ->B : B, Symbol(B, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 2, 1)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 4, 12)) +>B : B +>T : T x: C ->x : C, Symbol(x, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 4, 16)) ->C : C, Symbol(C, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 6, 1)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 4, 12)) +>x : C +>C : C +>T : T } interface C extends A, B { } // Should not be an error ->C : C, Symbol(C, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 6, 1)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 8, 12)) ->A : A, Symbol(A, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 0, 0)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 8, 12)) ->B : B, Symbol(B, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 2, 1)) ->T : T, Symbol(T, Decl(nonConflictingRecursiveBaseTypeMembers.ts, 8, 12)) +>C : C +>T : T +>A : A +>T : T +>B : B +>T : T diff --git a/tests/baselines/reference/nonContextuallyTypedLogicalOr.symbols b/tests/baselines/reference/nonContextuallyTypedLogicalOr.symbols new file mode 100644 index 0000000000000..738f4fed91689 --- /dev/null +++ b/tests/baselines/reference/nonContextuallyTypedLogicalOr.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/nonContextuallyTypedLogicalOr.ts === +interface Contextual { +>Contextual : Symbol(Contextual, Decl(nonContextuallyTypedLogicalOr.ts, 0, 0)) + + dummy; +>dummy : Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 0, 22)) + + p?: number; +>p : Symbol(p, Decl(nonContextuallyTypedLogicalOr.ts, 1, 10)) +} + +interface Ellement { +>Ellement : Symbol(Ellement, Decl(nonContextuallyTypedLogicalOr.ts, 3, 1)) + + dummy; +>dummy : Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 5, 20)) + + p: any; +>p : Symbol(p, Decl(nonContextuallyTypedLogicalOr.ts, 6, 10)) +} + +var c: Contextual; +>c : Symbol(c, Decl(nonContextuallyTypedLogicalOr.ts, 10, 3)) +>Contextual : Symbol(Contextual, Decl(nonContextuallyTypedLogicalOr.ts, 0, 0)) + +var e: Ellement; +>e : Symbol(e, Decl(nonContextuallyTypedLogicalOr.ts, 11, 3)) +>Ellement : Symbol(Ellement, Decl(nonContextuallyTypedLogicalOr.ts, 3, 1)) + +(c || e).dummy; +>(c || e).dummy : Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 0, 22), Decl(nonContextuallyTypedLogicalOr.ts, 5, 20)) +>c : Symbol(c, Decl(nonContextuallyTypedLogicalOr.ts, 10, 3)) +>e : Symbol(e, Decl(nonContextuallyTypedLogicalOr.ts, 11, 3)) +>dummy : Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 0, 22), Decl(nonContextuallyTypedLogicalOr.ts, 5, 20)) + diff --git a/tests/baselines/reference/nonContextuallyTypedLogicalOr.types b/tests/baselines/reference/nonContextuallyTypedLogicalOr.types index 578556ec21763..aeb9d1409c6e6 100644 --- a/tests/baselines/reference/nonContextuallyTypedLogicalOr.types +++ b/tests/baselines/reference/nonContextuallyTypedLogicalOr.types @@ -1,37 +1,37 @@ === tests/cases/compiler/nonContextuallyTypedLogicalOr.ts === interface Contextual { ->Contextual : Contextual, Symbol(Contextual, Decl(nonContextuallyTypedLogicalOr.ts, 0, 0)) +>Contextual : Contextual dummy; ->dummy : any, Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 0, 22)) +>dummy : any p?: number; ->p : number, Symbol(p, Decl(nonContextuallyTypedLogicalOr.ts, 1, 10)) +>p : number } interface Ellement { ->Ellement : Ellement, Symbol(Ellement, Decl(nonContextuallyTypedLogicalOr.ts, 3, 1)) +>Ellement : Ellement dummy; ->dummy : any, Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 5, 20)) +>dummy : any p: any; ->p : any, Symbol(p, Decl(nonContextuallyTypedLogicalOr.ts, 6, 10)) +>p : any } var c: Contextual; ->c : Contextual, Symbol(c, Decl(nonContextuallyTypedLogicalOr.ts, 10, 3)) ->Contextual : Contextual, Symbol(Contextual, Decl(nonContextuallyTypedLogicalOr.ts, 0, 0)) +>c : Contextual +>Contextual : Contextual var e: Ellement; ->e : Ellement, Symbol(e, Decl(nonContextuallyTypedLogicalOr.ts, 11, 3)) ->Ellement : Ellement, Symbol(Ellement, Decl(nonContextuallyTypedLogicalOr.ts, 3, 1)) +>e : Ellement +>Ellement : Ellement (c || e).dummy; ->(c || e).dummy : any, Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 0, 22), Decl(nonContextuallyTypedLogicalOr.ts, 5, 20)) +>(c || e).dummy : any >(c || e) : Contextual | Ellement >c || e : Contextual | Ellement ->c : Contextual, Symbol(c, Decl(nonContextuallyTypedLogicalOr.ts, 10, 3)) ->e : Ellement, Symbol(e, Decl(nonContextuallyTypedLogicalOr.ts, 11, 3)) ->dummy : any, Symbol(dummy, Decl(nonContextuallyTypedLogicalOr.ts, 0, 22), Decl(nonContextuallyTypedLogicalOr.ts, 5, 20)) +>c : Contextual +>e : Ellement +>dummy : any diff --git a/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.symbols b/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.symbols new file mode 100644 index 0000000000000..47daa69239ab9 --- /dev/null +++ b/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/nonGenericClassExtendingGenericClassWithAny.ts === +class Foo { +>Foo : Symbol(Foo, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 0)) +>T : Symbol(T, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 10)) + + t: T; +>t : Symbol(t, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 14)) +>T : Symbol(T, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 10)) +} + +class Bar extends Foo { } // Valid +>Bar : Symbol(Bar, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 2, 1)) +>Foo : Symbol(Foo, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 0)) + diff --git a/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.types b/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.types index 6f7c6340038be..177becac64391 100644 --- a/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.types +++ b/tests/baselines/reference/nonGenericClassExtendingGenericClassWithAny.types @@ -1,14 +1,14 @@ === tests/cases/compiler/nonGenericClassExtendingGenericClassWithAny.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 0)) ->T : T, Symbol(T, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 10)) +>Foo : Foo +>T : T t: T; ->t : T, Symbol(t, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 14)) ->T : T, Symbol(T, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 10)) +>t : T +>T : T } class Bar extends Foo { } // Valid ->Bar : Bar, Symbol(Bar, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 2, 1)) ->Foo : Foo, Symbol(Foo, Decl(nonGenericClassExtendingGenericClassWithAny.ts, 0, 0)) +>Bar : Bar +>Foo : Foo diff --git a/tests/baselines/reference/nonInstantiatedModule.symbols b/tests/baselines/reference/nonInstantiatedModule.symbols new file mode 100644 index 0000000000000..0d67b0318f8e4 --- /dev/null +++ b/tests/baselines/reference/nonInstantiatedModule.symbols @@ -0,0 +1,111 @@ +=== tests/cases/conformance/internalModules/moduleDeclarations/nonInstantiatedModule.ts === +module M { +>M : Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) + + export interface Point { x: number; y: number } +>Point : Symbol(Point, Decl(nonInstantiatedModule.ts, 0, 10)) +>x : Symbol(x, Decl(nonInstantiatedModule.ts, 1, 28)) +>y : Symbol(y, Decl(nonInstantiatedModule.ts, 1, 39)) + + export var a = 1; +>a : Symbol(a, Decl(nonInstantiatedModule.ts, 2, 14)) +} + +// primary expression +var m : typeof M; +>m : Symbol(m, Decl(nonInstantiatedModule.ts, 6, 3), Decl(nonInstantiatedModule.ts, 7, 3)) +>M : Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) + +var m = M; +>m : Symbol(m, Decl(nonInstantiatedModule.ts, 6, 3), Decl(nonInstantiatedModule.ts, 7, 3)) +>M : Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) + +var a1: number; +>a1 : Symbol(a1, Decl(nonInstantiatedModule.ts, 9, 3), Decl(nonInstantiatedModule.ts, 10, 3)) + +var a1 = M.a; +>a1 : Symbol(a1, Decl(nonInstantiatedModule.ts, 9, 3), Decl(nonInstantiatedModule.ts, 10, 3)) +>M.a : Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) +>M : Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) +>a : Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) + +var a2: number; +>a2 : Symbol(a2, Decl(nonInstantiatedModule.ts, 12, 3), Decl(nonInstantiatedModule.ts, 13, 3)) + +var a2 = m.a; +>a2 : Symbol(a2, Decl(nonInstantiatedModule.ts, 12, 3), Decl(nonInstantiatedModule.ts, 13, 3)) +>m.a : Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) +>m : Symbol(m, Decl(nonInstantiatedModule.ts, 6, 3), Decl(nonInstantiatedModule.ts, 7, 3)) +>a : Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) + +module M2 { +>M2 : Symbol(M2, Decl(nonInstantiatedModule.ts, 13, 13)) + + export module Point { +>Point : Symbol(Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) + + export function Origin(): Point { +>Origin : Symbol(Origin, Decl(nonInstantiatedModule.ts, 16, 25)) +>Point : Symbol(Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) + + return { x: 0, y: 0 }; +>x : Symbol(x, Decl(nonInstantiatedModule.ts, 18, 20)) +>y : Symbol(y, Decl(nonInstantiatedModule.ts, 18, 26)) + } + } + + export interface Point { +>Point : Symbol(Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) + + x: number; +>x : Symbol(x, Decl(nonInstantiatedModule.ts, 22, 28)) + + y: number; +>y : Symbol(y, Decl(nonInstantiatedModule.ts, 23, 18)) + } +} + +var p: { x: number; y: number; }; +>p : Symbol(p, Decl(nonInstantiatedModule.ts, 28, 3), Decl(nonInstantiatedModule.ts, 29, 3)) +>x : Symbol(x, Decl(nonInstantiatedModule.ts, 28, 8)) +>y : Symbol(y, Decl(nonInstantiatedModule.ts, 28, 19)) + +var p: M2.Point; +>p : Symbol(p, Decl(nonInstantiatedModule.ts, 28, 3), Decl(nonInstantiatedModule.ts, 29, 3)) +>M2 : Symbol(M2, Decl(nonInstantiatedModule.ts, 13, 13)) +>Point : Symbol(M2.Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) + +var p2: { Origin() : { x: number; y: number; } }; +>p2 : Symbol(p2, Decl(nonInstantiatedModule.ts, 31, 3), Decl(nonInstantiatedModule.ts, 32, 3)) +>Origin : Symbol(Origin, Decl(nonInstantiatedModule.ts, 31, 9)) +>x : Symbol(x, Decl(nonInstantiatedModule.ts, 31, 22)) +>y : Symbol(y, Decl(nonInstantiatedModule.ts, 31, 33)) + +var p2: typeof M2.Point; +>p2 : Symbol(p2, Decl(nonInstantiatedModule.ts, 31, 3), Decl(nonInstantiatedModule.ts, 32, 3)) +>M2.Point : Symbol(M2.Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) +>M2 : Symbol(M2, Decl(nonInstantiatedModule.ts, 13, 13)) +>Point : Symbol(M2.Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) + +module M3 { +>M3 : Symbol(M3, Decl(nonInstantiatedModule.ts, 32, 24)) + + export module Utils { +>Utils : Symbol(Utils, Decl(nonInstantiatedModule.ts, 34, 11), Decl(nonInstantiatedModule.ts, 39, 5)) + + export interface Point { +>Point : Symbol(Point, Decl(nonInstantiatedModule.ts, 35, 25)) + + x: number; y: number; +>x : Symbol(x, Decl(nonInstantiatedModule.ts, 36, 32)) +>y : Symbol(y, Decl(nonInstantiatedModule.ts, 37, 22)) + } + } + + export class Utils { +>Utils : Symbol(Utils, Decl(nonInstantiatedModule.ts, 34, 11), Decl(nonInstantiatedModule.ts, 39, 5)) + + name: string; +>name : Symbol(name, Decl(nonInstantiatedModule.ts, 41, 24)) + } +} diff --git a/tests/baselines/reference/nonInstantiatedModule.types b/tests/baselines/reference/nonInstantiatedModule.types index f1f1a703c6e9c..c1aac2824dca2 100644 --- a/tests/baselines/reference/nonInstantiatedModule.types +++ b/tests/baselines/reference/nonInstantiatedModule.types @@ -1,115 +1,115 @@ === tests/cases/conformance/internalModules/moduleDeclarations/nonInstantiatedModule.ts === module M { ->M : typeof M, Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) +>M : typeof M export interface Point { x: number; y: number } ->Point : Point, Symbol(Point, Decl(nonInstantiatedModule.ts, 0, 10)) ->x : number, Symbol(x, Decl(nonInstantiatedModule.ts, 1, 28)) ->y : number, Symbol(y, Decl(nonInstantiatedModule.ts, 1, 39)) +>Point : Point +>x : number +>y : number export var a = 1; ->a : number, Symbol(a, Decl(nonInstantiatedModule.ts, 2, 14)) +>a : number >1 : number } // primary expression var m : typeof M; ->m : typeof M, Symbol(m, Decl(nonInstantiatedModule.ts, 6, 3), Decl(nonInstantiatedModule.ts, 7, 3)) ->M : typeof M, Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) +>m : typeof M +>M : typeof M var m = M; ->m : typeof M, Symbol(m, Decl(nonInstantiatedModule.ts, 6, 3), Decl(nonInstantiatedModule.ts, 7, 3)) ->M : typeof M, Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) +>m : typeof M +>M : typeof M var a1: number; ->a1 : number, Symbol(a1, Decl(nonInstantiatedModule.ts, 9, 3), Decl(nonInstantiatedModule.ts, 10, 3)) +>a1 : number var a1 = M.a; ->a1 : number, Symbol(a1, Decl(nonInstantiatedModule.ts, 9, 3), Decl(nonInstantiatedModule.ts, 10, 3)) ->M.a : number, Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) ->M : typeof M, Symbol(M, Decl(nonInstantiatedModule.ts, 0, 0)) ->a : number, Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) +>a1 : number +>M.a : number +>M : typeof M +>a : number var a2: number; ->a2 : number, Symbol(a2, Decl(nonInstantiatedModule.ts, 12, 3), Decl(nonInstantiatedModule.ts, 13, 3)) +>a2 : number var a2 = m.a; ->a2 : number, Symbol(a2, Decl(nonInstantiatedModule.ts, 12, 3), Decl(nonInstantiatedModule.ts, 13, 3)) ->m.a : number, Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) ->m : typeof M, Symbol(m, Decl(nonInstantiatedModule.ts, 6, 3), Decl(nonInstantiatedModule.ts, 7, 3)) ->a : number, Symbol(M.a, Decl(nonInstantiatedModule.ts, 2, 14)) +>a2 : number +>m.a : number +>m : typeof M +>a : number module M2 { ->M2 : typeof M2, Symbol(M2, Decl(nonInstantiatedModule.ts, 13, 13)) +>M2 : typeof M2 export module Point { ->Point : typeof Point, Symbol(Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) +>Point : typeof Point export function Origin(): Point { ->Origin : () => Point, Symbol(Origin, Decl(nonInstantiatedModule.ts, 16, 25)) ->Point : Point, Symbol(Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) +>Origin : () => Point +>Point : Point return { x: 0, y: 0 }; >{ x: 0, y: 0 } : { x: number; y: number; } ->x : number, Symbol(x, Decl(nonInstantiatedModule.ts, 18, 20)) +>x : number >0 : number ->y : number, Symbol(y, Decl(nonInstantiatedModule.ts, 18, 26)) +>y : number >0 : number } } export interface Point { ->Point : Point, Symbol(Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) +>Point : Point x: number; ->x : number, Symbol(x, Decl(nonInstantiatedModule.ts, 22, 28)) +>x : number y: number; ->y : number, Symbol(y, Decl(nonInstantiatedModule.ts, 23, 18)) +>y : number } } var p: { x: number; y: number; }; ->p : { x: number; y: number; }, Symbol(p, Decl(nonInstantiatedModule.ts, 28, 3), Decl(nonInstantiatedModule.ts, 29, 3)) ->x : number, Symbol(x, Decl(nonInstantiatedModule.ts, 28, 8)) ->y : number, Symbol(y, Decl(nonInstantiatedModule.ts, 28, 19)) +>p : { x: number; y: number; } +>x : number +>y : number var p: M2.Point; ->p : { x: number; y: number; }, Symbol(p, Decl(nonInstantiatedModule.ts, 28, 3), Decl(nonInstantiatedModule.ts, 29, 3)) ->M2 : any, Symbol(M2, Decl(nonInstantiatedModule.ts, 13, 13)) ->Point : M2.Point, Symbol(M2.Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) +>p : { x: number; y: number; } +>M2 : any +>Point : M2.Point var p2: { Origin() : { x: number; y: number; } }; ->p2 : { Origin(): { x: number; y: number; }; }, Symbol(p2, Decl(nonInstantiatedModule.ts, 31, 3), Decl(nonInstantiatedModule.ts, 32, 3)) ->Origin : () => { x: number; y: number; }, Symbol(Origin, Decl(nonInstantiatedModule.ts, 31, 9)) ->x : number, Symbol(x, Decl(nonInstantiatedModule.ts, 31, 22)) ->y : number, Symbol(y, Decl(nonInstantiatedModule.ts, 31, 33)) +>p2 : { Origin(): { x: number; y: number; }; } +>Origin : () => { x: number; y: number; } +>x : number +>y : number var p2: typeof M2.Point; ->p2 : { Origin(): { x: number; y: number; }; }, Symbol(p2, Decl(nonInstantiatedModule.ts, 31, 3), Decl(nonInstantiatedModule.ts, 32, 3)) ->M2.Point : typeof M2.Point, Symbol(M2.Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) ->M2 : typeof M2, Symbol(M2, Decl(nonInstantiatedModule.ts, 13, 13)) ->Point : typeof M2.Point, Symbol(M2.Point, Decl(nonInstantiatedModule.ts, 15, 11), Decl(nonInstantiatedModule.ts, 20, 5)) +>p2 : { Origin(): { x: number; y: number; }; } +>M2.Point : typeof M2.Point +>M2 : typeof M2 +>Point : typeof M2.Point module M3 { ->M3 : typeof M3, Symbol(M3, Decl(nonInstantiatedModule.ts, 32, 24)) +>M3 : typeof M3 export module Utils { ->Utils : typeof Utils, Symbol(Utils, Decl(nonInstantiatedModule.ts, 34, 11), Decl(nonInstantiatedModule.ts, 39, 5)) +>Utils : typeof Utils export interface Point { ->Point : Point, Symbol(Point, Decl(nonInstantiatedModule.ts, 35, 25)) +>Point : Point x: number; y: number; ->x : number, Symbol(x, Decl(nonInstantiatedModule.ts, 36, 32)) ->y : number, Symbol(y, Decl(nonInstantiatedModule.ts, 37, 22)) +>x : number +>y : number } } export class Utils { ->Utils : Utils, Symbol(Utils, Decl(nonInstantiatedModule.ts, 34, 11), Decl(nonInstantiatedModule.ts, 39, 5)) +>Utils : Utils name: string; ->name : string, Symbol(name, Decl(nonInstantiatedModule.ts, 41, 24)) +>name : string } } diff --git a/tests/baselines/reference/null.symbols b/tests/baselines/reference/null.symbols new file mode 100644 index 0000000000000..148cd1586b275 --- /dev/null +++ b/tests/baselines/reference/null.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/null.ts === +var x=null; +>x : Symbol(x, Decl(null.ts, 0, 3)) + +var y=3+x; +>y : Symbol(y, Decl(null.ts, 1, 3)) +>x : Symbol(x, Decl(null.ts, 0, 3)) + +var z=3+null; +>z : Symbol(z, Decl(null.ts, 2, 3)) + +class C { +>C : Symbol(C, Decl(null.ts, 2, 13)) +} +function f() { +>f : Symbol(f, Decl(null.ts, 4, 1)) + + return null; + return new C(); +>C : Symbol(C, Decl(null.ts, 2, 13)) +} +function g() { +>g : Symbol(g, Decl(null.ts, 8, 1)) + + return null; + return 3; +} +interface I { +>I : Symbol(I, Decl(null.ts, 12, 1)) + + x:any; +>x : Symbol(x, Decl(null.ts, 13, 13)) + + y:number; +>y : Symbol(y, Decl(null.ts, 14, 10)) +} +var w:I={x:null,y:3}; +>w : Symbol(w, Decl(null.ts, 17, 3)) +>I : Symbol(I, Decl(null.ts, 12, 1)) +>x : Symbol(x, Decl(null.ts, 17, 9)) +>y : Symbol(y, Decl(null.ts, 17, 16)) + + + diff --git a/tests/baselines/reference/null.types b/tests/baselines/reference/null.types index 76ce7be714852..7df551b1bde23 100644 --- a/tests/baselines/reference/null.types +++ b/tests/baselines/reference/null.types @@ -1,35 +1,35 @@ === tests/cases/compiler/null.ts === var x=null; ->x : any, Symbol(x, Decl(null.ts, 0, 3)) +>x : any >null : null var y=3+x; ->y : any, Symbol(y, Decl(null.ts, 1, 3)) +>y : any >3+x : any >3 : number ->x : any, Symbol(x, Decl(null.ts, 0, 3)) +>x : any var z=3+null; ->z : number, Symbol(z, Decl(null.ts, 2, 3)) +>z : number >3+null : number >3 : number >null : null class C { ->C : C, Symbol(C, Decl(null.ts, 2, 13)) +>C : C } function f() { ->f : () => C, Symbol(f, Decl(null.ts, 4, 1)) +>f : () => C return null; >null : null return new C(); >new C() : C ->C : typeof C, Symbol(C, Decl(null.ts, 2, 13)) +>C : typeof C } function g() { ->g : () => number, Symbol(g, Decl(null.ts, 8, 1)) +>g : () => number return null; >null : null @@ -38,21 +38,21 @@ function g() { >3 : number } interface I { ->I : I, Symbol(I, Decl(null.ts, 12, 1)) +>I : I x:any; ->x : any, Symbol(x, Decl(null.ts, 13, 13)) +>x : any y:number; ->y : number, Symbol(y, Decl(null.ts, 14, 10)) +>y : number } var w:I={x:null,y:3}; ->w : I, Symbol(w, Decl(null.ts, 17, 3)) ->I : I, Symbol(I, Decl(null.ts, 12, 1)) +>w : I +>I : I >{x:null,y:3} : { x: null; y: number; } ->x : null, Symbol(x, Decl(null.ts, 17, 9)) +>x : null >null : null ->y : number, Symbol(y, Decl(null.ts, 17, 16)) +>y : number >3 : number diff --git a/tests/baselines/reference/nullAssignableToEveryType.symbols b/tests/baselines/reference/nullAssignableToEveryType.symbols new file mode 100644 index 0000000000000..7179a02c0bc0c --- /dev/null +++ b/tests/baselines/reference/nullAssignableToEveryType.symbols @@ -0,0 +1,125 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts === +class C { +>C : Symbol(C, Decl(nullAssignableToEveryType.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(nullAssignableToEveryType.ts, 0, 9)) +} +var ac: C; +>ac : Symbol(ac, Decl(nullAssignableToEveryType.ts, 3, 3)) +>C : Symbol(C, Decl(nullAssignableToEveryType.ts, 0, 0)) + +interface I { +>I : Symbol(I, Decl(nullAssignableToEveryType.ts, 3, 10)) + + foo: string; +>foo : Symbol(foo, Decl(nullAssignableToEveryType.ts, 4, 13)) +} +var ai: I; +>ai : Symbol(ai, Decl(nullAssignableToEveryType.ts, 7, 3)) +>I : Symbol(I, Decl(nullAssignableToEveryType.ts, 3, 10)) + +enum E { A } +>E : Symbol(E, Decl(nullAssignableToEveryType.ts, 7, 10)) +>A : Symbol(E.A, Decl(nullAssignableToEveryType.ts, 9, 8)) + +var ae: E; +>ae : Symbol(ae, Decl(nullAssignableToEveryType.ts, 10, 3)) +>E : Symbol(E, Decl(nullAssignableToEveryType.ts, 7, 10)) + +var b: number = null; +>b : Symbol(b, Decl(nullAssignableToEveryType.ts, 12, 3)) + +var c: string = null; +>c : Symbol(c, Decl(nullAssignableToEveryType.ts, 13, 3)) + +var d: boolean = null; +>d : Symbol(d, Decl(nullAssignableToEveryType.ts, 14, 3)) + +var e: Date = null; +>e : Symbol(e, Decl(nullAssignableToEveryType.ts, 15, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var f: any = null; +>f : Symbol(f, Decl(nullAssignableToEveryType.ts, 16, 3)) + +var g: void = null; +>g : Symbol(g, Decl(nullAssignableToEveryType.ts, 17, 3)) + +var h: Object = null; +>h : Symbol(h, Decl(nullAssignableToEveryType.ts, 18, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var i: {} = null; +>i : Symbol(i, Decl(nullAssignableToEveryType.ts, 19, 3)) + +var j: () => {} = null; +>j : Symbol(j, Decl(nullAssignableToEveryType.ts, 20, 3)) + +var k: Function = null; +>k : Symbol(k, Decl(nullAssignableToEveryType.ts, 21, 3)) +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) + +var l: (x: number) => string = null; +>l : Symbol(l, Decl(nullAssignableToEveryType.ts, 22, 3)) +>x : Symbol(x, Decl(nullAssignableToEveryType.ts, 22, 8)) + +ac = null; +>ac : Symbol(ac, Decl(nullAssignableToEveryType.ts, 3, 3)) + +ai = null; +>ai : Symbol(ai, Decl(nullAssignableToEveryType.ts, 7, 3)) + +ae = null; +>ae : Symbol(ae, Decl(nullAssignableToEveryType.ts, 10, 3)) + +var m: number[] = null; +>m : Symbol(m, Decl(nullAssignableToEveryType.ts, 26, 3)) + +var n: { foo: string } = null; +>n : Symbol(n, Decl(nullAssignableToEveryType.ts, 27, 3)) +>foo : Symbol(foo, Decl(nullAssignableToEveryType.ts, 27, 8)) + +var o: (x: T) => T = null; +>o : Symbol(o, Decl(nullAssignableToEveryType.ts, 28, 3)) +>T : Symbol(T, Decl(nullAssignableToEveryType.ts, 28, 8)) +>x : Symbol(x, Decl(nullAssignableToEveryType.ts, 28, 11)) +>T : Symbol(T, Decl(nullAssignableToEveryType.ts, 28, 8)) +>T : Symbol(T, Decl(nullAssignableToEveryType.ts, 28, 8)) + +var p: Number = null; +>p : Symbol(p, Decl(nullAssignableToEveryType.ts, 29, 3)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +var q: String = null; +>q : Symbol(q, Decl(nullAssignableToEveryType.ts, 30, 3)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo(x: T, y: U, z: V) { +>foo : Symbol(foo, Decl(nullAssignableToEveryType.ts, 30, 21)) +>T : Symbol(T, Decl(nullAssignableToEveryType.ts, 32, 13)) +>U : Symbol(U, Decl(nullAssignableToEveryType.ts, 32, 15)) +>V : Symbol(V, Decl(nullAssignableToEveryType.ts, 32, 18)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(nullAssignableToEveryType.ts, 32, 35)) +>T : Symbol(T, Decl(nullAssignableToEveryType.ts, 32, 13)) +>y : Symbol(y, Decl(nullAssignableToEveryType.ts, 32, 40)) +>U : Symbol(U, Decl(nullAssignableToEveryType.ts, 32, 15)) +>z : Symbol(z, Decl(nullAssignableToEveryType.ts, 32, 46)) +>V : Symbol(V, Decl(nullAssignableToEveryType.ts, 32, 18)) + + x = null; +>x : Symbol(x, Decl(nullAssignableToEveryType.ts, 32, 35)) + + y = null; +>y : Symbol(y, Decl(nullAssignableToEveryType.ts, 32, 40)) + + z = null; +>z : Symbol(z, Decl(nullAssignableToEveryType.ts, 32, 46)) +} + +//function foo(x: T, y: U, z: V) { +// x = null; +// y = null; +// z = null; +//} diff --git a/tests/baselines/reference/nullAssignableToEveryType.types b/tests/baselines/reference/nullAssignableToEveryType.types index 5f8c27ff88594..5120a48b896fe 100644 --- a/tests/baselines/reference/nullAssignableToEveryType.types +++ b/tests/baselines/reference/nullAssignableToEveryType.types @@ -1,148 +1,148 @@ === tests/cases/conformance/types/typeRelationships/assignmentCompatibility/nullAssignableToEveryType.ts === class C { ->C : C, Symbol(C, Decl(nullAssignableToEveryType.ts, 0, 0)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(nullAssignableToEveryType.ts, 0, 9)) +>foo : string } var ac: C; ->ac : C, Symbol(ac, Decl(nullAssignableToEveryType.ts, 3, 3)) ->C : C, Symbol(C, Decl(nullAssignableToEveryType.ts, 0, 0)) +>ac : C +>C : C interface I { ->I : I, Symbol(I, Decl(nullAssignableToEveryType.ts, 3, 10)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(nullAssignableToEveryType.ts, 4, 13)) +>foo : string } var ai: I; ->ai : I, Symbol(ai, Decl(nullAssignableToEveryType.ts, 7, 3)) ->I : I, Symbol(I, Decl(nullAssignableToEveryType.ts, 3, 10)) +>ai : I +>I : I enum E { A } ->E : E, Symbol(E, Decl(nullAssignableToEveryType.ts, 7, 10)) ->A : E, Symbol(E.A, Decl(nullAssignableToEveryType.ts, 9, 8)) +>E : E +>A : E var ae: E; ->ae : E, Symbol(ae, Decl(nullAssignableToEveryType.ts, 10, 3)) ->E : E, Symbol(E, Decl(nullAssignableToEveryType.ts, 7, 10)) +>ae : E +>E : E var b: number = null; ->b : number, Symbol(b, Decl(nullAssignableToEveryType.ts, 12, 3)) +>b : number >null : null var c: string = null; ->c : string, Symbol(c, Decl(nullAssignableToEveryType.ts, 13, 3)) +>c : string >null : null var d: boolean = null; ->d : boolean, Symbol(d, Decl(nullAssignableToEveryType.ts, 14, 3)) +>d : boolean >null : null var e: Date = null; ->e : Date, Symbol(e, Decl(nullAssignableToEveryType.ts, 15, 3)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>e : Date +>Date : Date >null : null var f: any = null; ->f : any, Symbol(f, Decl(nullAssignableToEveryType.ts, 16, 3)) +>f : any >null : null var g: void = null; ->g : void, Symbol(g, Decl(nullAssignableToEveryType.ts, 17, 3)) +>g : void >null : null var h: Object = null; ->h : Object, Symbol(h, Decl(nullAssignableToEveryType.ts, 18, 3)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>h : Object +>Object : Object >null : null var i: {} = null; ->i : {}, Symbol(i, Decl(nullAssignableToEveryType.ts, 19, 3)) +>i : {} >null : null var j: () => {} = null; ->j : () => {}, Symbol(j, Decl(nullAssignableToEveryType.ts, 20, 3)) +>j : () => {} >null : null var k: Function = null; ->k : Function, Symbol(k, Decl(nullAssignableToEveryType.ts, 21, 3)) ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) +>k : Function +>Function : Function >null : null var l: (x: number) => string = null; ->l : (x: number) => string, Symbol(l, Decl(nullAssignableToEveryType.ts, 22, 3)) ->x : number, Symbol(x, Decl(nullAssignableToEveryType.ts, 22, 8)) +>l : (x: number) => string +>x : number >null : null ac = null; >ac = null : null ->ac : C, Symbol(ac, Decl(nullAssignableToEveryType.ts, 3, 3)) +>ac : C >null : null ai = null; >ai = null : null ->ai : I, Symbol(ai, Decl(nullAssignableToEveryType.ts, 7, 3)) +>ai : I >null : null ae = null; >ae = null : null ->ae : E, Symbol(ae, Decl(nullAssignableToEveryType.ts, 10, 3)) +>ae : E >null : null var m: number[] = null; ->m : number[], Symbol(m, Decl(nullAssignableToEveryType.ts, 26, 3)) +>m : number[] >null : null var n: { foo: string } = null; ->n : { foo: string; }, Symbol(n, Decl(nullAssignableToEveryType.ts, 27, 3)) ->foo : string, Symbol(foo, Decl(nullAssignableToEveryType.ts, 27, 8)) +>n : { foo: string; } +>foo : string >null : null var o: (x: T) => T = null; ->o : (x: T) => T, Symbol(o, Decl(nullAssignableToEveryType.ts, 28, 3)) ->T : T, Symbol(T, Decl(nullAssignableToEveryType.ts, 28, 8)) ->x : T, Symbol(x, Decl(nullAssignableToEveryType.ts, 28, 11)) ->T : T, Symbol(T, Decl(nullAssignableToEveryType.ts, 28, 8)) ->T : T, Symbol(T, Decl(nullAssignableToEveryType.ts, 28, 8)) +>o : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null var p: Number = null; ->p : Number, Symbol(p, Decl(nullAssignableToEveryType.ts, 29, 3)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>p : Number +>Number : Number >null : null var q: String = null; ->q : String, Symbol(q, Decl(nullAssignableToEveryType.ts, 30, 3)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>q : String +>String : String >null : null function foo(x: T, y: U, z: V) { ->foo : (x: T, y: U, z: V) => void, Symbol(foo, Decl(nullAssignableToEveryType.ts, 30, 21)) ->T : T, Symbol(T, Decl(nullAssignableToEveryType.ts, 32, 13)) ->U : U, Symbol(U, Decl(nullAssignableToEveryType.ts, 32, 15)) ->V : V, Symbol(V, Decl(nullAssignableToEveryType.ts, 32, 18)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(nullAssignableToEveryType.ts, 32, 35)) ->T : T, Symbol(T, Decl(nullAssignableToEveryType.ts, 32, 13)) ->y : U, Symbol(y, Decl(nullAssignableToEveryType.ts, 32, 40)) ->U : U, Symbol(U, Decl(nullAssignableToEveryType.ts, 32, 15)) ->z : V, Symbol(z, Decl(nullAssignableToEveryType.ts, 32, 46)) ->V : V, Symbol(V, Decl(nullAssignableToEveryType.ts, 32, 18)) +>foo : (x: T, y: U, z: V) => void +>T : T +>U : U +>V : V +>Date : Date +>x : T +>T : T +>y : U +>U : U +>z : V +>V : V x = null; >x = null : null ->x : T, Symbol(x, Decl(nullAssignableToEveryType.ts, 32, 35)) +>x : T >null : null y = null; >y = null : null ->y : U, Symbol(y, Decl(nullAssignableToEveryType.ts, 32, 40)) +>y : U >null : null z = null; >z = null : null ->z : V, Symbol(z, Decl(nullAssignableToEveryType.ts, 32, 46)) +>z : V >null : null } diff --git a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.symbols b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.symbols new file mode 100644 index 0000000000000..7f81995c9be07 --- /dev/null +++ b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.symbols @@ -0,0 +1,247 @@ +=== tests/cases/conformance/types/typeRelationships/subtypesAndSuperTypes/nullIsSubtypeOfEverythingButUndefined.ts === +// null is a subtype of any other types except undefined + +var r0 = true ? null : null; +>r0 : Symbol(r0, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 2, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 3, 3)) + +var r0 = true ? null : null; +>r0 : Symbol(r0, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 2, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 3, 3)) + +var u: typeof undefined; +>u : Symbol(u, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 5, 3)) +>undefined : Symbol(undefined) + +var r0b = true ? u : null; +>r0b : Symbol(r0b, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 6, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 7, 3)) +>u : Symbol(u, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 5, 3)) + +var r0b = true ? null : u; +>r0b : Symbol(r0b, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 6, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 7, 3)) +>u : Symbol(u, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 5, 3)) + +var r1 = true ? 1 : null; +>r1 : Symbol(r1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 9, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 10, 3)) + +var r1 = true ? null : 1; +>r1 : Symbol(r1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 9, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 10, 3)) + +var r2 = true ? '' : null; +>r2 : Symbol(r2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 12, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 13, 3)) + +var r2 = true ? null : ''; +>r2 : Symbol(r2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 12, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 13, 3)) + +var r3 = true ? true : null; +>r3 : Symbol(r3, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 15, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 16, 3)) + +var r3 = true ? null : true; +>r3 : Symbol(r3, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 15, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 16, 3)) + +var r4 = true ? new Date() : null; +>r4 : Symbol(r4, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 18, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 19, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r4 = true ? null : new Date(); +>r4 : Symbol(r4, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 18, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 19, 3)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var r5 = true ? /1/ : null; +>r5 : Symbol(r5, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 21, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 22, 3)) + +var r5 = true ? null : /1/; +>r5 : Symbol(r5, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 21, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 22, 3)) + +var r6 = true ? { foo: 1 } : null; +>r6 : Symbol(r6, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 24, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 25, 3)) +>foo : Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 24, 17)) + +var r6 = true ? null : { foo: 1 }; +>r6 : Symbol(r6, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 24, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 25, 3)) +>foo : Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 25, 24)) + +var r7 = true ? () => { } : null; +>r7 : Symbol(r7, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 27, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 28, 3)) + +var r7 = true ? null : () => { }; +>r7 : Symbol(r7, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 27, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 28, 3)) + +var r8 = true ? (x: T) => { return x } : null; +>r8 : Symbol(r8, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 3)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 17)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 20)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 17)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 20)) + +var r8b = true ? null : (x: T) => { return x }; // type parameters not identical across declarations +>r8b : Symbol(r8b, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 3)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 25)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 28)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 25)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 28)) + +interface I1 { foo: number; } +>I1 : Symbol(I1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 50)) +>foo : Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 33, 14)) + +var i1: I1; +>i1 : Symbol(i1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 34, 3)) +>I1 : Symbol(I1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 50)) + +var r9 = true ? i1 : null; +>r9 : Symbol(r9, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 35, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 3)) +>i1 : Symbol(i1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 34, 3)) + +var r9 = true ? null : i1; +>r9 : Symbol(r9, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 35, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 3)) +>i1 : Symbol(i1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 34, 3)) + +class C1 { foo: number; } +>C1 : Symbol(C1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 26)) +>foo : Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 38, 10)) + +var c1: C1; +>c1 : Symbol(c1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 39, 3)) +>C1 : Symbol(C1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 26)) + +var r10 = true ? c1 : null; +>r10 : Symbol(r10, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 40, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 3)) +>c1 : Symbol(c1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 39, 3)) + +var r10 = true ? null : c1; +>r10 : Symbol(r10, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 40, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 3)) +>c1 : Symbol(c1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 39, 3)) + +class C2 { foo: T; } +>C2 : Symbol(C2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 27)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 43, 9)) +>foo : Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 43, 13)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 43, 9)) + +var c2: C2; +>c2 : Symbol(c2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 44, 3)) +>C2 : Symbol(C2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 27)) + +var r12 = true ? c2 : null; +>r12 : Symbol(r12, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 45, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 3)) +>c2 : Symbol(c2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 44, 3)) + +var r12 = true ? null : c2; +>r12 : Symbol(r12, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 45, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 3)) +>c2 : Symbol(c2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 44, 3)) + +enum E { A } +>E : Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) +>A : Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) + +var r13 = true ? E : null; +>r13 : Symbol(r13, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 49, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 50, 3)) +>E : Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) + +var r13 = true ? null : E; +>r13 : Symbol(r13, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 49, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 50, 3)) +>E : Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) + +var r14 = true ? E.A : null; +>r14 : Symbol(r14, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 52, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 3)) +>E.A : Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) +>E : Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) +>A : Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) + +var r14 = true ? null : E.A; +>r14 : Symbol(r14, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 52, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 3)) +>E.A : Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) +>E : Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) +>A : Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) + +function f() { } +>f : Symbol(f, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 28), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 55, 16)) + +module f { +>f : Symbol(f, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 28), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 55, 16)) + + export var bar = 1; +>bar : Symbol(bar, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 57, 14)) +} +var af: typeof f; +>af : Symbol(af, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 59, 3)) +>f : Symbol(f, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 28), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 55, 16)) + +var r15 = true ? af : null; +>r15 : Symbol(r15, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 60, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 3)) +>af : Symbol(af, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 59, 3)) + +var r15 = true ? null : af; +>r15 : Symbol(r15, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 60, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 3)) +>af : Symbol(af, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 59, 3)) + +class c { baz: string } +>c : Symbol(c, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 27), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 23)) +>baz : Symbol(baz, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 9)) + +module c { +>c : Symbol(c, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 27), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 23)) + + export var bar = 1; +>bar : Symbol(bar, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 65, 14)) +} +var ac: typeof c; +>ac : Symbol(ac, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 67, 3)) +>c : Symbol(c, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 27), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 23)) + +var r16 = true ? ac : null; +>r16 : Symbol(r16, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 68, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 69, 3)) +>ac : Symbol(ac, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 67, 3)) + +var r16 = true ? null : ac; +>r16 : Symbol(r16, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 68, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 69, 3)) +>ac : Symbol(ac, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 67, 3)) + +function f17(x: T) { +>f17 : Symbol(f17, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 69, 27)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 13)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 16)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 13)) + + var r17 = true ? x : null; +>r17 : Symbol(r17, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 72, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 73, 7)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 16)) + + var r17 = true ? null : x; +>r17 : Symbol(r17, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 72, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 73, 7)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 16)) +} + +function f18(x: U) { +>f18 : Symbol(f18, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 74, 1)) +>T : Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 13)) +>U : Symbol(U, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 15)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 19)) +>U : Symbol(U, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 15)) + + var r18 = true ? x : null; +>r18 : Symbol(r18, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 77, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 78, 7)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 19)) + + var r18 = true ? null : x; +>r18 : Symbol(r18, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 77, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 78, 7)) +>x : Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 19)) +} +//function f18(x: U) { +// var r18 = true ? x : null; +// var r18 = true ? null : x; +//} + +var r19 = true ? new Object() : null; +>r19 : Symbol(r19, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 85, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 86, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var r19 = true ? null : new Object(); +>r19 : Symbol(r19, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 85, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 86, 3)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + +var r20 = true ? {} : null; +>r20 : Symbol(r20, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 88, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 89, 3)) + +var r20 = true ? null : {}; +>r20 : Symbol(r20, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 88, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 89, 3)) + diff --git a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types index 992c05f473d42..42243076e9f1b 100644 --- a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types +++ b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types @@ -2,365 +2,365 @@ // null is a subtype of any other types except undefined var r0 = true ? null : null; ->r0 : any, Symbol(r0, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 2, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 3, 3)) +>r0 : any >true ? null : null : null >true : boolean >null : null >null : null var r0 = true ? null : null; ->r0 : any, Symbol(r0, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 2, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 3, 3)) +>r0 : any >true ? null : null : null >true : boolean >null : null >null : null var u: typeof undefined; ->u : any, Symbol(u, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 5, 3)) ->undefined : undefined, Symbol(undefined) +>u : any +>undefined : undefined var r0b = true ? u : null; ->r0b : any, Symbol(r0b, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 6, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 7, 3)) +>r0b : any >true ? u : null : any >true : boolean ->u : any, Symbol(u, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 5, 3)) +>u : any >null : null var r0b = true ? null : u; ->r0b : any, Symbol(r0b, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 6, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 7, 3)) +>r0b : any >true ? null : u : any >true : boolean >null : null ->u : any, Symbol(u, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 5, 3)) +>u : any var r1 = true ? 1 : null; ->r1 : number, Symbol(r1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 9, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 10, 3)) +>r1 : number >true ? 1 : null : number >true : boolean >1 : number >null : null var r1 = true ? null : 1; ->r1 : number, Symbol(r1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 9, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 10, 3)) +>r1 : number >true ? null : 1 : number >true : boolean >null : null >1 : number var r2 = true ? '' : null; ->r2 : string, Symbol(r2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 12, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 13, 3)) +>r2 : string >true ? '' : null : string >true : boolean >'' : string >null : null var r2 = true ? null : ''; ->r2 : string, Symbol(r2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 12, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 13, 3)) +>r2 : string >true ? null : '' : string >true : boolean >null : null >'' : string var r3 = true ? true : null; ->r3 : boolean, Symbol(r3, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 15, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 16, 3)) +>r3 : boolean >true ? true : null : boolean >true : boolean >true : boolean >null : null var r3 = true ? null : true; ->r3 : boolean, Symbol(r3, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 15, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 16, 3)) +>r3 : boolean >true ? null : true : boolean >true : boolean >null : null >true : boolean var r4 = true ? new Date() : null; ->r4 : Date, Symbol(r4, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 18, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 19, 3)) +>r4 : Date >true ? new Date() : null : Date >true : boolean >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor >null : null var r4 = true ? null : new Date(); ->r4 : Date, Symbol(r4, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 18, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 19, 3)) +>r4 : Date >true ? null : new Date() : Date >true : boolean >null : null >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor var r5 = true ? /1/ : null; ->r5 : RegExp, Symbol(r5, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 21, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 22, 3)) +>r5 : RegExp >true ? /1/ : null : RegExp >true : boolean >/1/ : RegExp >null : null var r5 = true ? null : /1/; ->r5 : RegExp, Symbol(r5, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 21, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 22, 3)) +>r5 : RegExp >true ? null : /1/ : RegExp >true : boolean >null : null >/1/ : RegExp var r6 = true ? { foo: 1 } : null; ->r6 : { foo: number; }, Symbol(r6, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 24, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 25, 3)) +>r6 : { foo: number; } >true ? { foo: 1 } : null : { foo: number; } >true : boolean >{ foo: 1 } : { foo: number; } ->foo : number, Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 24, 17)) +>foo : number >1 : number >null : null var r6 = true ? null : { foo: 1 }; ->r6 : { foo: number; }, Symbol(r6, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 24, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 25, 3)) +>r6 : { foo: number; } >true ? null : { foo: 1 } : { foo: number; } >true : boolean >null : null >{ foo: 1 } : { foo: number; } ->foo : number, Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 25, 24)) +>foo : number >1 : number var r7 = true ? () => { } : null; ->r7 : () => void, Symbol(r7, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 27, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 28, 3)) +>r7 : () => void >true ? () => { } : null : () => void >true : boolean >() => { } : () => void >null : null var r7 = true ? null : () => { }; ->r7 : () => void, Symbol(r7, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 27, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 28, 3)) +>r7 : () => void >true ? null : () => { } : () => void >true : boolean >null : null >() => { } : () => void var r8 = true ? (x: T) => { return x } : null; ->r8 : (x: T) => T, Symbol(r8, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 3)) +>r8 : (x: T) => T >true ? (x: T) => { return x } : null : (x: T) => T >true : boolean >(x: T) => { return x } : (x: T) => T ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 17)) ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 20)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 17)) ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 30, 20)) +>T : T +>x : T +>T : T +>x : T >null : null var r8b = true ? null : (x: T) => { return x }; // type parameters not identical across declarations ->r8b : (x: T) => T, Symbol(r8b, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 3)) +>r8b : (x: T) => T >true ? null : (x: T) => { return x } : (x: T) => T >true : boolean >null : null >(x: T) => { return x } : (x: T) => T ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 25)) ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 28)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 25)) ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 28)) +>T : T +>x : T +>T : T +>x : T interface I1 { foo: number; } ->I1 : I1, Symbol(I1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 50)) ->foo : number, Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 33, 14)) +>I1 : I1 +>foo : number var i1: I1; ->i1 : I1, Symbol(i1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 34, 3)) ->I1 : I1, Symbol(I1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 31, 50)) +>i1 : I1 +>I1 : I1 var r9 = true ? i1 : null; ->r9 : I1, Symbol(r9, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 35, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 3)) +>r9 : I1 >true ? i1 : null : I1 >true : boolean ->i1 : I1, Symbol(i1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 34, 3)) +>i1 : I1 >null : null var r9 = true ? null : i1; ->r9 : I1, Symbol(r9, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 35, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 3)) +>r9 : I1 >true ? null : i1 : I1 >true : boolean >null : null ->i1 : I1, Symbol(i1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 34, 3)) +>i1 : I1 class C1 { foo: number; } ->C1 : C1, Symbol(C1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 26)) ->foo : number, Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 38, 10)) +>C1 : C1 +>foo : number var c1: C1; ->c1 : C1, Symbol(c1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 39, 3)) ->C1 : C1, Symbol(C1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 36, 26)) +>c1 : C1 +>C1 : C1 var r10 = true ? c1 : null; ->r10 : C1, Symbol(r10, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 40, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 3)) +>r10 : C1 >true ? c1 : null : C1 >true : boolean ->c1 : C1, Symbol(c1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 39, 3)) +>c1 : C1 >null : null var r10 = true ? null : c1; ->r10 : C1, Symbol(r10, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 40, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 3)) +>r10 : C1 >true ? null : c1 : C1 >true : boolean >null : null ->c1 : C1, Symbol(c1, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 39, 3)) +>c1 : C1 class C2 { foo: T; } ->C2 : C2, Symbol(C2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 27)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 43, 9)) ->foo : T, Symbol(foo, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 43, 13)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 43, 9)) +>C2 : C2 +>T : T +>foo : T +>T : T var c2: C2; ->c2 : C2, Symbol(c2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 44, 3)) ->C2 : C2, Symbol(C2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 41, 27)) +>c2 : C2 +>C2 : C2 var r12 = true ? c2 : null; ->r12 : C2, Symbol(r12, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 45, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 3)) +>r12 : C2 >true ? c2 : null : C2 >true : boolean ->c2 : C2, Symbol(c2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 44, 3)) +>c2 : C2 >null : null var r12 = true ? null : c2; ->r12 : C2, Symbol(r12, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 45, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 3)) +>r12 : C2 >true ? null : c2 : C2 >true : boolean >null : null ->c2 : C2, Symbol(c2, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 44, 3)) +>c2 : C2 enum E { A } ->E : E, Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) ->A : E, Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) +>E : E +>A : E var r13 = true ? E : null; ->r13 : typeof E, Symbol(r13, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 49, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 50, 3)) +>r13 : typeof E >true ? E : null : typeof E >true : boolean ->E : typeof E, Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) +>E : typeof E >null : null var r13 = true ? null : E; ->r13 : typeof E, Symbol(r13, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 49, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 50, 3)) +>r13 : typeof E >true ? null : E : typeof E >true : boolean >null : null ->E : typeof E, Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) +>E : typeof E var r14 = true ? E.A : null; ->r14 : E, Symbol(r14, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 52, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 3)) +>r14 : E >true ? E.A : null : E >true : boolean ->E.A : E, Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) ->E : typeof E, Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) ->A : E, Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) +>E.A : E +>E : typeof E +>A : E >null : null var r14 = true ? null : E.A; ->r14 : E, Symbol(r14, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 52, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 3)) +>r14 : E >true ? null : E.A : E >true : boolean >null : null ->E.A : E, Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) ->E : typeof E, Symbol(E, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 46, 27)) ->A : E, Symbol(E.A, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 48, 8)) +>E.A : E +>E : typeof E +>A : E function f() { } ->f : typeof f, Symbol(f, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 28), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 55, 16)) +>f : typeof f module f { ->f : typeof f, Symbol(f, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 28), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 55, 16)) +>f : typeof f export var bar = 1; ->bar : number, Symbol(bar, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 57, 14)) +>bar : number >1 : number } var af: typeof f; ->af : typeof f, Symbol(af, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 59, 3)) ->f : typeof f, Symbol(f, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 53, 28), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 55, 16)) +>af : typeof f +>f : typeof f var r15 = true ? af : null; ->r15 : typeof f, Symbol(r15, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 60, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 3)) +>r15 : typeof f >true ? af : null : typeof f >true : boolean ->af : typeof f, Symbol(af, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 59, 3)) +>af : typeof f >null : null var r15 = true ? null : af; ->r15 : typeof f, Symbol(r15, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 60, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 3)) +>r15 : typeof f >true ? null : af : typeof f >true : boolean >null : null ->af : typeof f, Symbol(af, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 59, 3)) +>af : typeof f class c { baz: string } ->c : c, Symbol(c, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 27), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 23)) ->baz : string, Symbol(baz, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 9)) +>c : c +>baz : string module c { ->c : typeof c, Symbol(c, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 27), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 23)) +>c : typeof c export var bar = 1; ->bar : number, Symbol(bar, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 65, 14)) +>bar : number >1 : number } var ac: typeof c; ->ac : typeof c, Symbol(ac, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 67, 3)) ->c : typeof c, Symbol(c, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 61, 27), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 63, 23)) +>ac : typeof c +>c : typeof c var r16 = true ? ac : null; ->r16 : typeof c, Symbol(r16, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 68, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 69, 3)) +>r16 : typeof c >true ? ac : null : typeof c >true : boolean ->ac : typeof c, Symbol(ac, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 67, 3)) +>ac : typeof c >null : null var r16 = true ? null : ac; ->r16 : typeof c, Symbol(r16, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 68, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 69, 3)) +>r16 : typeof c >true ? null : ac : typeof c >true : boolean >null : null ->ac : typeof c, Symbol(ac, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 67, 3)) +>ac : typeof c function f17(x: T) { ->f17 : (x: T) => void, Symbol(f17, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 69, 27)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 13)) ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 16)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 13)) +>f17 : (x: T) => void +>T : T +>x : T +>T : T var r17 = true ? x : null; ->r17 : T, Symbol(r17, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 72, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 73, 7)) +>r17 : T >true ? x : null : T >true : boolean ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 16)) +>x : T >null : null var r17 = true ? null : x; ->r17 : T, Symbol(r17, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 72, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 73, 7)) +>r17 : T >true ? null : x : T >true : boolean >null : null ->x : T, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 71, 16)) +>x : T } function f18(x: U) { ->f18 : (x: U) => void, Symbol(f18, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 74, 1)) ->T : T, Symbol(T, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 13)) ->U : U, Symbol(U, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 15)) ->x : U, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 19)) ->U : U, Symbol(U, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 15)) +>f18 : (x: U) => void +>T : T +>U : U +>x : U +>U : U var r18 = true ? x : null; ->r18 : U, Symbol(r18, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 77, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 78, 7)) +>r18 : U >true ? x : null : U >true : boolean ->x : U, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 19)) +>x : U >null : null var r18 = true ? null : x; ->r18 : U, Symbol(r18, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 77, 7), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 78, 7)) +>r18 : U >true ? null : x : U >true : boolean >null : null ->x : U, Symbol(x, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 76, 19)) +>x : U } //function f18(x: U) { // var r18 = true ? x : null; @@ -368,30 +368,30 @@ function f18(x: U) { //} var r19 = true ? new Object() : null; ->r19 : Object, Symbol(r19, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 85, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 86, 3)) +>r19 : Object >true ? new Object() : null : Object >true : boolean >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor >null : null var r19 = true ? null : new Object(); ->r19 : Object, Symbol(r19, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 85, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 86, 3)) +>r19 : Object >true ? null : new Object() : Object >true : boolean >null : null >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor var r20 = true ? {} : null; ->r20 : {}, Symbol(r20, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 88, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 89, 3)) +>r20 : {} >true ? {} : null : {} >true : boolean >{} : {} >null : null var r20 = true ? null : {}; ->r20 : {}, Symbol(r20, Decl(nullIsSubtypeOfEverythingButUndefined.ts, 88, 3), Decl(nullIsSubtypeOfEverythingButUndefined.ts, 89, 3)) +>r20 : {} >true ? null : {} : {} >true : boolean >null : null diff --git a/tests/baselines/reference/numberAsInLHS.symbols b/tests/baselines/reference/numberAsInLHS.symbols new file mode 100644 index 0000000000000..4e9f68545cde9 --- /dev/null +++ b/tests/baselines/reference/numberAsInLHS.symbols @@ -0,0 +1,3 @@ +=== tests/cases/compiler/numberAsInLHS.ts === +3 in [0, 1] +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/numberAssignableToEnum.symbols b/tests/baselines/reference/numberAssignableToEnum.symbols new file mode 100644 index 0000000000000..294ccccb9a251 --- /dev/null +++ b/tests/baselines/reference/numberAssignableToEnum.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/numberAssignableToEnum.ts === +enum E { A } +>E : Symbol(E, Decl(numberAssignableToEnum.ts, 0, 0)) +>A : Symbol(E.A, Decl(numberAssignableToEnum.ts, 0, 8)) + +var n: number; +>n : Symbol(n, Decl(numberAssignableToEnum.ts, 1, 3)) + +var e: E; +>e : Symbol(e, Decl(numberAssignableToEnum.ts, 2, 3)) +>E : Symbol(E, Decl(numberAssignableToEnum.ts, 0, 0)) + +e = n; +>e : Symbol(e, Decl(numberAssignableToEnum.ts, 2, 3)) +>n : Symbol(n, Decl(numberAssignableToEnum.ts, 1, 3)) + +n = e; +>n : Symbol(n, Decl(numberAssignableToEnum.ts, 1, 3)) +>e : Symbol(e, Decl(numberAssignableToEnum.ts, 2, 3)) + diff --git a/tests/baselines/reference/numberAssignableToEnum.types b/tests/baselines/reference/numberAssignableToEnum.types index 152e45aec8a50..b7b75b5dc5c4e 100644 --- a/tests/baselines/reference/numberAssignableToEnum.types +++ b/tests/baselines/reference/numberAssignableToEnum.types @@ -1,22 +1,22 @@ === tests/cases/conformance/types/typeRelationships/assignmentCompatibility/numberAssignableToEnum.ts === enum E { A } ->E : E, Symbol(E, Decl(numberAssignableToEnum.ts, 0, 0)) ->A : E, Symbol(E.A, Decl(numberAssignableToEnum.ts, 0, 8)) +>E : E +>A : E var n: number; ->n : number, Symbol(n, Decl(numberAssignableToEnum.ts, 1, 3)) +>n : number var e: E; ->e : E, Symbol(e, Decl(numberAssignableToEnum.ts, 2, 3)) ->E : E, Symbol(E, Decl(numberAssignableToEnum.ts, 0, 0)) +>e : E +>E : E e = n; >e = n : number ->e : E, Symbol(e, Decl(numberAssignableToEnum.ts, 2, 3)) ->n : number, Symbol(n, Decl(numberAssignableToEnum.ts, 1, 3)) +>e : E +>n : number n = e; >n = e : E ->n : number, Symbol(n, Decl(numberAssignableToEnum.ts, 1, 3)) ->e : E, Symbol(e, Decl(numberAssignableToEnum.ts, 2, 3)) +>n : number +>e : E diff --git a/tests/baselines/reference/numberOnLeftSideOfInExpression.symbols b/tests/baselines/reference/numberOnLeftSideOfInExpression.symbols new file mode 100644 index 0000000000000..8f3e997acd81a --- /dev/null +++ b/tests/baselines/reference/numberOnLeftSideOfInExpression.symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/numberOnLeftSideOfInExpression.ts === +var left: number; +>left : Symbol(left, Decl(numberOnLeftSideOfInExpression.ts, 0, 3)) + +var right: any; +>right : Symbol(right, Decl(numberOnLeftSideOfInExpression.ts, 1, 3)) + +left in right; +>left : Symbol(left, Decl(numberOnLeftSideOfInExpression.ts, 0, 3)) +>right : Symbol(right, Decl(numberOnLeftSideOfInExpression.ts, 1, 3)) + diff --git a/tests/baselines/reference/numberOnLeftSideOfInExpression.types b/tests/baselines/reference/numberOnLeftSideOfInExpression.types index 38ec93da2eaff..0b15c0aefee89 100644 --- a/tests/baselines/reference/numberOnLeftSideOfInExpression.types +++ b/tests/baselines/reference/numberOnLeftSideOfInExpression.types @@ -1,12 +1,12 @@ === tests/cases/compiler/numberOnLeftSideOfInExpression.ts === var left: number; ->left : number, Symbol(left, Decl(numberOnLeftSideOfInExpression.ts, 0, 3)) +>left : number var right: any; ->right : any, Symbol(right, Decl(numberOnLeftSideOfInExpression.ts, 1, 3)) +>right : any left in right; >left in right : boolean ->left : number, Symbol(left, Decl(numberOnLeftSideOfInExpression.ts, 0, 3)) ->right : any, Symbol(right, Decl(numberOnLeftSideOfInExpression.ts, 1, 3)) +>left : number +>right : any diff --git a/tests/baselines/reference/numberPropertyAccess.symbols b/tests/baselines/reference/numberPropertyAccess.symbols new file mode 100644 index 0000000000000..fdfd4c404de7c --- /dev/null +++ b/tests/baselines/reference/numberPropertyAccess.symbols @@ -0,0 +1,26 @@ +=== tests/cases/conformance/types/primitives/number/numberPropertyAccess.ts === +var x = 1; +>x : Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) + +var a = x.toExponential(); +>a : Symbol(a, Decl(numberPropertyAccess.ts, 1, 3)) +>x.toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>x : Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) +>toExponential : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) + +var b = x.hasOwnProperty('toFixed'); +>b : Symbol(b, Decl(numberPropertyAccess.ts, 2, 3)) +>x.hasOwnProperty : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>x : Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) +>hasOwnProperty : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) + +var c = x['toExponential'](); +>c : Symbol(c, Decl(numberPropertyAccess.ts, 4, 3)) +>x : Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) +>'toExponential' : Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) + +var d = x['hasOwnProperty']('toFixed'); +>d : Symbol(d, Decl(numberPropertyAccess.ts, 5, 3)) +>x : Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) +>'hasOwnProperty' : Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) + diff --git a/tests/baselines/reference/numberPropertyAccess.types b/tests/baselines/reference/numberPropertyAccess.types index fba40d89fa5d2..b7f5479ed7974 100644 --- a/tests/baselines/reference/numberPropertyAccess.types +++ b/tests/baselines/reference/numberPropertyAccess.types @@ -1,35 +1,35 @@ === tests/cases/conformance/types/primitives/number/numberPropertyAccess.ts === var x = 1; ->x : number, Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) +>x : number >1 : number var a = x.toExponential(); ->a : string, Symbol(a, Decl(numberPropertyAccess.ts, 1, 3)) +>a : string >x.toExponential() : string ->x.toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) ->x : number, Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) ->toExponential : (fractionDigits?: number) => string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>x.toExponential : (fractionDigits?: number) => string +>x : number +>toExponential : (fractionDigits?: number) => string var b = x.hasOwnProperty('toFixed'); ->b : boolean, Symbol(b, Decl(numberPropertyAccess.ts, 2, 3)) +>b : boolean >x.hasOwnProperty('toFixed') : boolean ->x.hasOwnProperty : (v: string) => boolean, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) ->x : number, Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) ->hasOwnProperty : (v: string) => boolean, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>x.hasOwnProperty : (v: string) => boolean +>x : number +>hasOwnProperty : (v: string) => boolean >'toFixed' : string var c = x['toExponential'](); ->c : string, Symbol(c, Decl(numberPropertyAccess.ts, 4, 3)) +>c : string >x['toExponential']() : string >x['toExponential'] : (fractionDigits?: number) => string ->x : number, Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) ->'toExponential' : string, Symbol(Number.toExponential, Decl(lib.d.ts, 469, 45)) +>x : number +>'toExponential' : string var d = x['hasOwnProperty']('toFixed'); ->d : boolean, Symbol(d, Decl(numberPropertyAccess.ts, 5, 3)) +>d : boolean >x['hasOwnProperty']('toFixed') : boolean >x['hasOwnProperty'] : (v: string) => boolean ->x : number, Symbol(x, Decl(numberPropertyAccess.ts, 0, 3)) ->'hasOwnProperty' : string, Symbol(Object.hasOwnProperty, Decl(lib.d.ts, 105, 22)) +>x : number +>'hasOwnProperty' : string >'toFixed' : string diff --git a/tests/baselines/reference/numericIndexerConstraint3.symbols b/tests/baselines/reference/numericIndexerConstraint3.symbols new file mode 100644 index 0000000000000..bdf58cb1372ae --- /dev/null +++ b/tests/baselines/reference/numericIndexerConstraint3.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/numericIndexerConstraint3.ts === +class A { +>A : Symbol(A, Decl(numericIndexerConstraint3.ts, 0, 0)) + + foo: number; +>foo : Symbol(foo, Decl(numericIndexerConstraint3.ts, 0, 9)) +} + +class B extends A { +>B : Symbol(B, Decl(numericIndexerConstraint3.ts, 2, 1)) +>A : Symbol(A, Decl(numericIndexerConstraint3.ts, 0, 0)) + + bar: string; +>bar : Symbol(bar, Decl(numericIndexerConstraint3.ts, 4, 19)) +} + +class C { +>C : Symbol(C, Decl(numericIndexerConstraint3.ts, 6, 1)) + + 0: B; +>B : Symbol(B, Decl(numericIndexerConstraint3.ts, 2, 1)) + + [x: number]: A; +>x : Symbol(x, Decl(numericIndexerConstraint3.ts, 10, 5)) +>A : Symbol(A, Decl(numericIndexerConstraint3.ts, 0, 0)) +} diff --git a/tests/baselines/reference/numericIndexerConstraint3.types b/tests/baselines/reference/numericIndexerConstraint3.types index c29f7dd3b7c09..2e249c89b8c84 100644 --- a/tests/baselines/reference/numericIndexerConstraint3.types +++ b/tests/baselines/reference/numericIndexerConstraint3.types @@ -1,26 +1,26 @@ === tests/cases/compiler/numericIndexerConstraint3.ts === class A { ->A : A, Symbol(A, Decl(numericIndexerConstraint3.ts, 0, 0)) +>A : A foo: number; ->foo : number, Symbol(foo, Decl(numericIndexerConstraint3.ts, 0, 9)) +>foo : number } class B extends A { ->B : B, Symbol(B, Decl(numericIndexerConstraint3.ts, 2, 1)) ->A : A, Symbol(A, Decl(numericIndexerConstraint3.ts, 0, 0)) +>B : B +>A : A bar: string; ->bar : string, Symbol(bar, Decl(numericIndexerConstraint3.ts, 4, 19)) +>bar : string } class C { ->C : C, Symbol(C, Decl(numericIndexerConstraint3.ts, 6, 1)) +>C : C 0: B; ->B : B, Symbol(B, Decl(numericIndexerConstraint3.ts, 2, 1)) +>B : B [x: number]: A; ->x : number, Symbol(x, Decl(numericIndexerConstraint3.ts, 10, 5)) ->A : A, Symbol(A, Decl(numericIndexerConstraint3.ts, 0, 0)) +>x : number +>A : A } diff --git a/tests/baselines/reference/numericIndexerConstraint4.symbols b/tests/baselines/reference/numericIndexerConstraint4.symbols new file mode 100644 index 0000000000000..63d976ea1b1aa --- /dev/null +++ b/tests/baselines/reference/numericIndexerConstraint4.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/numericIndexerConstraint4.ts === +class A { +>A : Symbol(A, Decl(numericIndexerConstraint4.ts, 0, 0)) + + foo: number; +>foo : Symbol(foo, Decl(numericIndexerConstraint4.ts, 0, 9)) +} + +class B extends A { +>B : Symbol(B, Decl(numericIndexerConstraint4.ts, 2, 1)) +>A : Symbol(A, Decl(numericIndexerConstraint4.ts, 0, 0)) + + bar: string; +>bar : Symbol(bar, Decl(numericIndexerConstraint4.ts, 4, 19)) +} + +var x: { +>x : Symbol(x, Decl(numericIndexerConstraint4.ts, 8, 3)) + + [idx: number]: A; +>idx : Symbol(idx, Decl(numericIndexerConstraint4.ts, 9, 5)) +>A : Symbol(A, Decl(numericIndexerConstraint4.ts, 0, 0)) + +} = { data: new B() } +>data : Symbol(data, Decl(numericIndexerConstraint4.ts, 10, 5)) +>B : Symbol(B, Decl(numericIndexerConstraint4.ts, 2, 1)) + diff --git a/tests/baselines/reference/numericIndexerConstraint4.types b/tests/baselines/reference/numericIndexerConstraint4.types index 8be43ded37ba6..97e72b5088d93 100644 --- a/tests/baselines/reference/numericIndexerConstraint4.types +++ b/tests/baselines/reference/numericIndexerConstraint4.types @@ -1,29 +1,29 @@ === tests/cases/compiler/numericIndexerConstraint4.ts === class A { ->A : A, Symbol(A, Decl(numericIndexerConstraint4.ts, 0, 0)) +>A : A foo: number; ->foo : number, Symbol(foo, Decl(numericIndexerConstraint4.ts, 0, 9)) +>foo : number } class B extends A { ->B : B, Symbol(B, Decl(numericIndexerConstraint4.ts, 2, 1)) ->A : A, Symbol(A, Decl(numericIndexerConstraint4.ts, 0, 0)) +>B : B +>A : A bar: string; ->bar : string, Symbol(bar, Decl(numericIndexerConstraint4.ts, 4, 19)) +>bar : string } var x: { ->x : { [idx: number]: A; }, Symbol(x, Decl(numericIndexerConstraint4.ts, 8, 3)) +>x : { [idx: number]: A; } [idx: number]: A; ->idx : number, Symbol(idx, Decl(numericIndexerConstraint4.ts, 9, 5)) ->A : A, Symbol(A, Decl(numericIndexerConstraint4.ts, 0, 0)) +>idx : number +>A : A } = { data: new B() } >{ data: new B() } : { [x: number]: undefined; data: B; } ->data : B, Symbol(data, Decl(numericIndexerConstraint4.ts, 10, 5)) +>data : B >new B() : B ->B : typeof B, Symbol(B, Decl(numericIndexerConstraint4.ts, 2, 1)) +>B : typeof B diff --git a/tests/baselines/reference/numericIndexingResults.symbols b/tests/baselines/reference/numericIndexingResults.symbols new file mode 100644 index 0000000000000..16a6e9386da45 --- /dev/null +++ b/tests/baselines/reference/numericIndexingResults.symbols @@ -0,0 +1,183 @@ +=== tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts === +class C { +>C : Symbol(C, Decl(numericIndexingResults.ts, 0, 0)) + + [x: number]: string; +>x : Symbol(x, Decl(numericIndexingResults.ts, 1, 5)) + + 1 = ''; + "2" = '' +} + +var c: C; +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>C : Symbol(C, Decl(numericIndexingResults.ts, 0, 0)) + +var r1 = c['1']; +>r1 : Symbol(r1, Decl(numericIndexingResults.ts, 7, 3), Decl(numericIndexingResults.ts, 21, 3), Decl(numericIndexingResults.ts, 34, 3)) +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>'1' : Symbol(C.1, Decl(numericIndexingResults.ts, 1, 24)) + +var r2 = c['2']; +>r2 : Symbol(r2, Decl(numericIndexingResults.ts, 8, 3), Decl(numericIndexingResults.ts, 22, 3), Decl(numericIndexingResults.ts, 35, 3)) +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>'2' : Symbol(C."2", Decl(numericIndexingResults.ts, 2, 11)) + +var r3 = c['3']; +>r3 : Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) + +var r4 = c[1]; +>r4 : Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>1 : Symbol(C.1, Decl(numericIndexingResults.ts, 1, 24)) + +var r5 = c[2]; +>r5 : Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>2 : Symbol(C."2", Decl(numericIndexingResults.ts, 2, 11)) + +var r6 = c[3]; +>r6 : Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>c : Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) + +interface I { +>I : Symbol(I, Decl(numericIndexingResults.ts, 12, 14)) + + [x: number]: string; +>x : Symbol(x, Decl(numericIndexingResults.ts, 15, 5)) + + 1: string; + "2": string; +} + +var i: I +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>I : Symbol(I, Decl(numericIndexingResults.ts, 12, 14)) + +var r1 = i['1']; +>r1 : Symbol(r1, Decl(numericIndexingResults.ts, 7, 3), Decl(numericIndexingResults.ts, 21, 3), Decl(numericIndexingResults.ts, 34, 3)) +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>'1' : Symbol(I.1, Decl(numericIndexingResults.ts, 15, 24)) + +var r2 = i['2']; +>r2 : Symbol(r2, Decl(numericIndexingResults.ts, 8, 3), Decl(numericIndexingResults.ts, 22, 3), Decl(numericIndexingResults.ts, 35, 3)) +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>'2' : Symbol(I."2", Decl(numericIndexingResults.ts, 16, 14)) + +var r3 = i['3']; +>r3 : Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) + +var r4 = i[1]; +>r4 : Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>1 : Symbol(I.1, Decl(numericIndexingResults.ts, 15, 24)) + +var r5 = i[2]; +>r5 : Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>2 : Symbol(I."2", Decl(numericIndexingResults.ts, 16, 14)) + +var r6 = i[3]; +>r6 : Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>i : Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) + +var a: { +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) + + [x: number]: string; +>x : Symbol(x, Decl(numericIndexingResults.ts, 29, 5)) + + 1: string; + "2": string; +} + +var r1 = a['1']; +>r1 : Symbol(r1, Decl(numericIndexingResults.ts, 7, 3), Decl(numericIndexingResults.ts, 21, 3), Decl(numericIndexingResults.ts, 34, 3)) +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>'1' : Symbol(1, Decl(numericIndexingResults.ts, 29, 24)) + +var r2 = a['2']; +>r2 : Symbol(r2, Decl(numericIndexingResults.ts, 8, 3), Decl(numericIndexingResults.ts, 22, 3), Decl(numericIndexingResults.ts, 35, 3)) +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>'2' : Symbol("2", Decl(numericIndexingResults.ts, 30, 14)) + +var r3 = a['3']; +>r3 : Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) + +var r4 = a[1]; +>r4 : Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>1 : Symbol(1, Decl(numericIndexingResults.ts, 29, 24)) + +var r5 = a[2]; +>r5 : Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>2 : Symbol("2", Decl(numericIndexingResults.ts, 30, 14)) + +var r6 = a[3]; +>r6 : Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>a : Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) + +var b: { [x: number]: string } = { 1: '', "2": '' } +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>x : Symbol(x, Decl(numericIndexingResults.ts, 41, 10)) + +var r1a = b['1']; +>r1a : Symbol(r1a, Decl(numericIndexingResults.ts, 42, 3)) +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) + +var r2a = b['2']; +>r2a : Symbol(r2a, Decl(numericIndexingResults.ts, 43, 3)) +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) + +var r3 = b['3']; +>r3 : Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) + +var r4 = b[1]; +>r4 : Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) + +var r5 = b[2]; +>r5 : Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) + +var r6 = b[3]; +>r6 : Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>b : Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) + +var b2: { [x: number]: string; 1: string; "2": string; } = { 1: '', "2": '' } +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>x : Symbol(x, Decl(numericIndexingResults.ts, 49, 11)) + +var r1b = b2['1']; +>r1b : Symbol(r1b, Decl(numericIndexingResults.ts, 50, 3)) +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>'1' : Symbol(1, Decl(numericIndexingResults.ts, 49, 30)) + +var r2b = b2['2']; +>r2b : Symbol(r2b, Decl(numericIndexingResults.ts, 51, 3)) +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>'2' : Symbol("2", Decl(numericIndexingResults.ts, 49, 41)) + +var r3 = b2['3']; +>r3 : Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) + +var r4 = b2[1]; +>r4 : Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>1 : Symbol(1, Decl(numericIndexingResults.ts, 49, 30)) + +var r5 = b2[2]; +>r5 : Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>2 : Symbol("2", Decl(numericIndexingResults.ts, 49, 41)) + +var r6 = b2[3]; +>r6 : Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>b2 : Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) + diff --git a/tests/baselines/reference/numericIndexingResults.types b/tests/baselines/reference/numericIndexingResults.types index 10a097b78d93f..560bbdc74a8e7 100644 --- a/tests/baselines/reference/numericIndexingResults.types +++ b/tests/baselines/reference/numericIndexingResults.types @@ -1,9 +1,9 @@ === tests/cases/conformance/types/objectTypeLiteral/indexSignatures/numericIndexingResults.ts === class C { ->C : C, Symbol(C, Decl(numericIndexingResults.ts, 0, 0)) +>C : C [x: number]: string; ->x : number, Symbol(x, Decl(numericIndexingResults.ts, 1, 5)) +>x : number 1 = ''; >'' : string @@ -13,224 +13,224 @@ class C { } var c: C; ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) ->C : C, Symbol(C, Decl(numericIndexingResults.ts, 0, 0)) +>c : C +>C : C var r1 = c['1']; ->r1 : string, Symbol(r1, Decl(numericIndexingResults.ts, 7, 3), Decl(numericIndexingResults.ts, 21, 3), Decl(numericIndexingResults.ts, 34, 3)) +>r1 : string >c['1'] : string ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) ->'1' : string, Symbol(C.1, Decl(numericIndexingResults.ts, 1, 24)) +>c : C +>'1' : string var r2 = c['2']; ->r2 : string, Symbol(r2, Decl(numericIndexingResults.ts, 8, 3), Decl(numericIndexingResults.ts, 22, 3), Decl(numericIndexingResults.ts, 35, 3)) +>r2 : string >c['2'] : string ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) ->'2' : string, Symbol(C."2", Decl(numericIndexingResults.ts, 2, 11)) +>c : C +>'2' : string var r3 = c['3']; ->r3 : any, Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>r3 : any >c['3'] : any ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>c : C >'3' : string var r4 = c[1]; ->r4 : string, Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>r4 : string >c[1] : string ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) ->1 : number, Symbol(C.1, Decl(numericIndexingResults.ts, 1, 24)) +>c : C +>1 : number var r5 = c[2]; ->r5 : string, Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>r5 : string >c[2] : string ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) ->2 : number, Symbol(C."2", Decl(numericIndexingResults.ts, 2, 11)) +>c : C +>2 : number var r6 = c[3]; ->r6 : string, Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>r6 : string >c[3] : string ->c : C, Symbol(c, Decl(numericIndexingResults.ts, 6, 3)) +>c : C >3 : number interface I { ->I : I, Symbol(I, Decl(numericIndexingResults.ts, 12, 14)) +>I : I [x: number]: string; ->x : number, Symbol(x, Decl(numericIndexingResults.ts, 15, 5)) +>x : number 1: string; "2": string; } var i: I ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) ->I : I, Symbol(I, Decl(numericIndexingResults.ts, 12, 14)) +>i : I +>I : I var r1 = i['1']; ->r1 : string, Symbol(r1, Decl(numericIndexingResults.ts, 7, 3), Decl(numericIndexingResults.ts, 21, 3), Decl(numericIndexingResults.ts, 34, 3)) +>r1 : string >i['1'] : string ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) ->'1' : string, Symbol(I.1, Decl(numericIndexingResults.ts, 15, 24)) +>i : I +>'1' : string var r2 = i['2']; ->r2 : string, Symbol(r2, Decl(numericIndexingResults.ts, 8, 3), Decl(numericIndexingResults.ts, 22, 3), Decl(numericIndexingResults.ts, 35, 3)) +>r2 : string >i['2'] : string ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) ->'2' : string, Symbol(I."2", Decl(numericIndexingResults.ts, 16, 14)) +>i : I +>'2' : string var r3 = i['3']; ->r3 : any, Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>r3 : any >i['3'] : any ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>i : I >'3' : string var r4 = i[1]; ->r4 : string, Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>r4 : string >i[1] : string ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) ->1 : number, Symbol(I.1, Decl(numericIndexingResults.ts, 15, 24)) +>i : I +>1 : number var r5 = i[2]; ->r5 : string, Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>r5 : string >i[2] : string ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) ->2 : number, Symbol(I."2", Decl(numericIndexingResults.ts, 16, 14)) +>i : I +>2 : number var r6 = i[3]; ->r6 : string, Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>r6 : string >i[3] : string ->i : I, Symbol(i, Decl(numericIndexingResults.ts, 20, 3)) +>i : I >3 : number var a: { ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>a : { [x: number]: string; 1: string; "2": string; } [x: number]: string; ->x : number, Symbol(x, Decl(numericIndexingResults.ts, 29, 5)) +>x : number 1: string; "2": string; } var r1 = a['1']; ->r1 : string, Symbol(r1, Decl(numericIndexingResults.ts, 7, 3), Decl(numericIndexingResults.ts, 21, 3), Decl(numericIndexingResults.ts, 34, 3)) +>r1 : string >a['1'] : string ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) ->'1' : string, Symbol(1, Decl(numericIndexingResults.ts, 29, 24)) +>a : { [x: number]: string; 1: string; "2": string; } +>'1' : string var r2 = a['2']; ->r2 : string, Symbol(r2, Decl(numericIndexingResults.ts, 8, 3), Decl(numericIndexingResults.ts, 22, 3), Decl(numericIndexingResults.ts, 35, 3)) +>r2 : string >a['2'] : string ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) ->'2' : string, Symbol("2", Decl(numericIndexingResults.ts, 30, 14)) +>a : { [x: number]: string; 1: string; "2": string; } +>'2' : string var r3 = a['3']; ->r3 : any, Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>r3 : any >a['3'] : any ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>a : { [x: number]: string; 1: string; "2": string; } >'3' : string var r4 = a[1]; ->r4 : string, Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>r4 : string >a[1] : string ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) ->1 : number, Symbol(1, Decl(numericIndexingResults.ts, 29, 24)) +>a : { [x: number]: string; 1: string; "2": string; } +>1 : number var r5 = a[2]; ->r5 : string, Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>r5 : string >a[2] : string ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) ->2 : number, Symbol("2", Decl(numericIndexingResults.ts, 30, 14)) +>a : { [x: number]: string; 1: string; "2": string; } +>2 : number var r6 = a[3]; ->r6 : string, Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>r6 : string >a[3] : string ->a : { [x: number]: string; 1: string; "2": string; }, Symbol(a, Decl(numericIndexingResults.ts, 28, 3)) +>a : { [x: number]: string; 1: string; "2": string; } >3 : number var b: { [x: number]: string } = { 1: '', "2": '' } ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) ->x : number, Symbol(x, Decl(numericIndexingResults.ts, 41, 10)) +>b : { [x: number]: string; } +>x : number >{ 1: '', "2": '' } : { [x: number]: string; 1: string; "2": string; } >'' : string >'' : string var r1a = b['1']; ->r1a : any, Symbol(r1a, Decl(numericIndexingResults.ts, 42, 3)) +>r1a : any >b['1'] : any ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>b : { [x: number]: string; } >'1' : string var r2a = b['2']; ->r2a : any, Symbol(r2a, Decl(numericIndexingResults.ts, 43, 3)) +>r2a : any >b['2'] : any ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>b : { [x: number]: string; } >'2' : string var r3 = b['3']; ->r3 : any, Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>r3 : any >b['3'] : any ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>b : { [x: number]: string; } >'3' : string var r4 = b[1]; ->r4 : string, Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>r4 : string >b[1] : string ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>b : { [x: number]: string; } >1 : number var r5 = b[2]; ->r5 : string, Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>r5 : string >b[2] : string ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>b : { [x: number]: string; } >2 : number var r6 = b[3]; ->r6 : string, Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>r6 : string >b[3] : string ->b : { [x: number]: string; }, Symbol(b, Decl(numericIndexingResults.ts, 41, 3)) +>b : { [x: number]: string; } >3 : number var b2: { [x: number]: string; 1: string; "2": string; } = { 1: '', "2": '' } ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) ->x : number, Symbol(x, Decl(numericIndexingResults.ts, 49, 11)) +>b2 : { [x: number]: string; 1: string; "2": string; } +>x : number >{ 1: '', "2": '' } : { [x: number]: string; 1: string; "2": string; } >'' : string >'' : string var r1b = b2['1']; ->r1b : string, Symbol(r1b, Decl(numericIndexingResults.ts, 50, 3)) +>r1b : string >b2['1'] : string ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) ->'1' : string, Symbol(1, Decl(numericIndexingResults.ts, 49, 30)) +>b2 : { [x: number]: string; 1: string; "2": string; } +>'1' : string var r2b = b2['2']; ->r2b : string, Symbol(r2b, Decl(numericIndexingResults.ts, 51, 3)) +>r2b : string >b2['2'] : string ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) ->'2' : string, Symbol("2", Decl(numericIndexingResults.ts, 49, 41)) +>b2 : { [x: number]: string; 1: string; "2": string; } +>'2' : string var r3 = b2['3']; ->r3 : any, Symbol(r3, Decl(numericIndexingResults.ts, 9, 3), Decl(numericIndexingResults.ts, 23, 3), Decl(numericIndexingResults.ts, 36, 3), Decl(numericIndexingResults.ts, 44, 3), Decl(numericIndexingResults.ts, 52, 3)) +>r3 : any >b2['3'] : any ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>b2 : { [x: number]: string; 1: string; "2": string; } >'3' : string var r4 = b2[1]; ->r4 : string, Symbol(r4, Decl(numericIndexingResults.ts, 10, 3), Decl(numericIndexingResults.ts, 24, 3), Decl(numericIndexingResults.ts, 37, 3), Decl(numericIndexingResults.ts, 45, 3), Decl(numericIndexingResults.ts, 53, 3)) +>r4 : string >b2[1] : string ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) ->1 : number, Symbol(1, Decl(numericIndexingResults.ts, 49, 30)) +>b2 : { [x: number]: string; 1: string; "2": string; } +>1 : number var r5 = b2[2]; ->r5 : string, Symbol(r5, Decl(numericIndexingResults.ts, 11, 3), Decl(numericIndexingResults.ts, 25, 3), Decl(numericIndexingResults.ts, 38, 3), Decl(numericIndexingResults.ts, 46, 3), Decl(numericIndexingResults.ts, 54, 3)) +>r5 : string >b2[2] : string ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) ->2 : number, Symbol("2", Decl(numericIndexingResults.ts, 49, 41)) +>b2 : { [x: number]: string; 1: string; "2": string; } +>2 : number var r6 = b2[3]; ->r6 : string, Symbol(r6, Decl(numericIndexingResults.ts, 12, 3), Decl(numericIndexingResults.ts, 26, 3), Decl(numericIndexingResults.ts, 39, 3), Decl(numericIndexingResults.ts, 47, 3), Decl(numericIndexingResults.ts, 55, 3)) +>r6 : string >b2[3] : string ->b2 : { [x: number]: string; 1: string; "2": string; }, Symbol(b2, Decl(numericIndexingResults.ts, 49, 3)) +>b2 : { [x: number]: string; 1: string; "2": string; } >3 : number diff --git a/tests/baselines/reference/numericMethodName1.symbols b/tests/baselines/reference/numericMethodName1.symbols new file mode 100644 index 0000000000000..a2ecd29e8e715 --- /dev/null +++ b/tests/baselines/reference/numericMethodName1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/numericMethodName1.ts === +class C { +>C : Symbol(C, Decl(numericMethodName1.ts, 0, 0)) + + 1 = 2; +} + diff --git a/tests/baselines/reference/numericMethodName1.types b/tests/baselines/reference/numericMethodName1.types index 3e37179c4a550..e6e631fc70511 100644 --- a/tests/baselines/reference/numericMethodName1.types +++ b/tests/baselines/reference/numericMethodName1.types @@ -1,6 +1,6 @@ === tests/cases/compiler/numericMethodName1.ts === class C { ->C : C, Symbol(C, Decl(numericMethodName1.ts, 0, 0)) +>C : C 1 = 2; >2 : number diff --git a/tests/baselines/reference/objectIndexer.symbols b/tests/baselines/reference/objectIndexer.symbols new file mode 100644 index 0000000000000..33885a40e2771 --- /dev/null +++ b/tests/baselines/reference/objectIndexer.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/objectIndexer.ts === +export interface Callback { +>Callback : Symbol(Callback, Decl(objectIndexer.ts, 0, 0)) + + (value: any): void; +>value : Symbol(value, Decl(objectIndexer.ts, 1, 5)) +} + +interface IMap { +>IMap : Symbol(IMap, Decl(objectIndexer.ts, 2, 1)) + + [s: string]: Callback; +>s : Symbol(s, Decl(objectIndexer.ts, 5, 5)) +>Callback : Symbol(Callback, Decl(objectIndexer.ts, 0, 0)) +} + +class Emitter { +>Emitter : Symbol(Emitter, Decl(objectIndexer.ts, 6, 1)) + + private listeners: IMap; +>listeners : Symbol(listeners, Decl(objectIndexer.ts, 8, 15)) +>IMap : Symbol(IMap, Decl(objectIndexer.ts, 2, 1)) + + constructor () { + this.listeners = {}; +>this.listeners : Symbol(listeners, Decl(objectIndexer.ts, 8, 15)) +>this : Symbol(Emitter, Decl(objectIndexer.ts, 6, 1)) +>listeners : Symbol(listeners, Decl(objectIndexer.ts, 8, 15)) + } +} + diff --git a/tests/baselines/reference/objectIndexer.types b/tests/baselines/reference/objectIndexer.types index 6a0bf0709c8c3..7b42ea51b5612 100644 --- a/tests/baselines/reference/objectIndexer.types +++ b/tests/baselines/reference/objectIndexer.types @@ -1,32 +1,32 @@ === tests/cases/compiler/objectIndexer.ts === export interface Callback { ->Callback : Callback, Symbol(Callback, Decl(objectIndexer.ts, 0, 0)) +>Callback : Callback (value: any): void; ->value : any, Symbol(value, Decl(objectIndexer.ts, 1, 5)) +>value : any } interface IMap { ->IMap : IMap, Symbol(IMap, Decl(objectIndexer.ts, 2, 1)) +>IMap : IMap [s: string]: Callback; ->s : string, Symbol(s, Decl(objectIndexer.ts, 5, 5)) ->Callback : Callback, Symbol(Callback, Decl(objectIndexer.ts, 0, 0)) +>s : string +>Callback : Callback } class Emitter { ->Emitter : Emitter, Symbol(Emitter, Decl(objectIndexer.ts, 6, 1)) +>Emitter : Emitter private listeners: IMap; ->listeners : IMap, Symbol(listeners, Decl(objectIndexer.ts, 8, 15)) ->IMap : IMap, Symbol(IMap, Decl(objectIndexer.ts, 2, 1)) +>listeners : IMap +>IMap : IMap constructor () { this.listeners = {}; >this.listeners = {} : { [x: string]: undefined; } ->this.listeners : IMap, Symbol(listeners, Decl(objectIndexer.ts, 8, 15)) ->this : Emitter, Symbol(Emitter, Decl(objectIndexer.ts, 6, 1)) ->listeners : IMap, Symbol(listeners, Decl(objectIndexer.ts, 8, 15)) +>this.listeners : IMap +>this : Emitter +>listeners : IMap >{} : { [x: string]: undefined; } } } diff --git a/tests/baselines/reference/objectLitGetterSetter.symbols b/tests/baselines/reference/objectLitGetterSetter.symbols new file mode 100644 index 0000000000000..512e459c8c060 --- /dev/null +++ b/tests/baselines/reference/objectLitGetterSetter.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/objectLitGetterSetter.ts === + var obj = {}; +>obj : Symbol(obj, Decl(objectLitGetterSetter.ts, 0, 15)) + + Object.defineProperty(obj, "accProperty", ({ +>Object.defineProperty : Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>defineProperty : Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) +>obj : Symbol(obj, Decl(objectLitGetterSetter.ts, 0, 15)) +>PropertyDescriptor : Symbol(PropertyDescriptor, Decl(lib.d.ts, 79, 66)) + + get: function () { +>get : Symbol(get, Decl(objectLitGetterSetter.ts, 1, 76)) + + eval("public = 1;"); +>eval : Symbol(eval, Decl(lib.d.ts, 22, 29)) + + return 11; + }, + set: function (v) { +>set : Symbol(set, Decl(objectLitGetterSetter.ts, 5, 18)) +>v : Symbol(v, Decl(objectLitGetterSetter.ts, 6, 31)) + } + })) + diff --git a/tests/baselines/reference/objectLitGetterSetter.types b/tests/baselines/reference/objectLitGetterSetter.types index c5061fa4c94ed..4f7865374e2d2 100644 --- a/tests/baselines/reference/objectLitGetterSetter.types +++ b/tests/baselines/reference/objectLitGetterSetter.types @@ -1,27 +1,27 @@ === tests/cases/compiler/objectLitGetterSetter.ts === var obj = {}; ->obj : {}, Symbol(obj, Decl(objectLitGetterSetter.ts, 0, 15)) +>obj : {} >{} : {} Object.defineProperty(obj, "accProperty", ({ >Object.defineProperty(obj, "accProperty", ({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } })) : any ->Object.defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any, Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) ->defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any, Symbol(ObjectConstructor.defineProperty, Decl(lib.d.ts, 160, 60)) ->obj : {}, Symbol(obj, Decl(objectLitGetterSetter.ts, 0, 15)) +>Object.defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any +>Object : ObjectConstructor +>defineProperty : (o: any, p: string, attributes: PropertyDescriptor) => any +>obj : {} >"accProperty" : string >({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : PropertyDescriptor ->PropertyDescriptor : PropertyDescriptor, Symbol(PropertyDescriptor, Decl(lib.d.ts, 79, 66)) +>PropertyDescriptor : PropertyDescriptor >({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } }) : { get: () => number; set: (v: any) => void; } >{ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } } : { get: () => number; set: (v: any) => void; } get: function () { ->get : () => number, Symbol(get, Decl(objectLitGetterSetter.ts, 1, 76)) +>get : () => number >function () { eval("public = 1;"); return 11; } : () => number eval("public = 1;"); >eval("public = 1;") : any ->eval : (x: string) => any, Symbol(eval, Decl(lib.d.ts, 22, 29)) +>eval : (x: string) => any >"public = 1;" : string return 11; @@ -29,9 +29,9 @@ }, set: function (v) { ->set : (v: any) => void, Symbol(set, Decl(objectLitGetterSetter.ts, 5, 18)) +>set : (v: any) => void >function (v) { } : (v: any) => void ->v : any, Symbol(v, Decl(objectLitGetterSetter.ts, 6, 31)) +>v : any } })) diff --git a/tests/baselines/reference/objectLiteral1.symbols b/tests/baselines/reference/objectLiteral1.symbols new file mode 100644 index 0000000000000..76acb6623bc8b --- /dev/null +++ b/tests/baselines/reference/objectLiteral1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/objectLiteral1.ts === +var v30 = {a:1, b:2}; +>v30 : Symbol(v30, Decl(objectLiteral1.ts, 0, 3)) +>a : Symbol(a, Decl(objectLiteral1.ts, 0, 11)) +>b : Symbol(b, Decl(objectLiteral1.ts, 0, 15)) + diff --git a/tests/baselines/reference/objectLiteral1.types b/tests/baselines/reference/objectLiteral1.types index 407c6e1af4af7..491b4ce365b7d 100644 --- a/tests/baselines/reference/objectLiteral1.types +++ b/tests/baselines/reference/objectLiteral1.types @@ -1,9 +1,9 @@ === tests/cases/compiler/objectLiteral1.ts === var v30 = {a:1, b:2}; ->v30 : { a: number; b: number; }, Symbol(v30, Decl(objectLiteral1.ts, 0, 3)) +>v30 : { a: number; b: number; } >{a:1, b:2} : { a: number; b: number; } ->a : number, Symbol(a, Decl(objectLiteral1.ts, 0, 11)) +>a : number >1 : number ->b : number, Symbol(b, Decl(objectLiteral1.ts, 0, 15)) +>b : number >2 : number diff --git a/tests/baselines/reference/objectLiteral2.symbols b/tests/baselines/reference/objectLiteral2.symbols new file mode 100644 index 0000000000000..6e953fa2c1223 --- /dev/null +++ b/tests/baselines/reference/objectLiteral2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/objectLiteral2.ts === +var v30 = {a:1, b:2}, v31; +>v30 : Symbol(v30, Decl(objectLiteral2.ts, 0, 3)) +>a : Symbol(a, Decl(objectLiteral2.ts, 0, 11)) +>b : Symbol(b, Decl(objectLiteral2.ts, 0, 15)) +>v31 : Symbol(v31, Decl(objectLiteral2.ts, 0, 21)) + diff --git a/tests/baselines/reference/objectLiteral2.types b/tests/baselines/reference/objectLiteral2.types index a45c9d5049911..387bd0ba90f43 100644 --- a/tests/baselines/reference/objectLiteral2.types +++ b/tests/baselines/reference/objectLiteral2.types @@ -1,10 +1,10 @@ === tests/cases/compiler/objectLiteral2.ts === var v30 = {a:1, b:2}, v31; ->v30 : { a: number; b: number; }, Symbol(v30, Decl(objectLiteral2.ts, 0, 3)) +>v30 : { a: number; b: number; } >{a:1, b:2} : { a: number; b: number; } ->a : number, Symbol(a, Decl(objectLiteral2.ts, 0, 11)) +>a : number >1 : number ->b : number, Symbol(b, Decl(objectLiteral2.ts, 0, 15)) +>b : number >2 : number ->v31 : any, Symbol(v31, Decl(objectLiteral2.ts, 0, 21)) +>v31 : any diff --git a/tests/baselines/reference/objectLiteralArraySpecialization.symbols b/tests/baselines/reference/objectLiteralArraySpecialization.symbols new file mode 100644 index 0000000000000..4cc1188dcc451 --- /dev/null +++ b/tests/baselines/reference/objectLiteralArraySpecialization.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/objectLiteralArraySpecialization.ts === +declare function create(initialValues?: T[]): MyArrayWrapper; +>create : Symbol(create, Decl(objectLiteralArraySpecialization.ts, 0, 0)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 0, 24)) +>initialValues : Symbol(initialValues, Decl(objectLiteralArraySpecialization.ts, 0, 27)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 0, 24)) +>MyArrayWrapper : Symbol(MyArrayWrapper, Decl(objectLiteralArraySpecialization.ts, 0, 67)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 0, 24)) + +interface MyArrayWrapper { +>MyArrayWrapper : Symbol(MyArrayWrapper, Decl(objectLiteralArraySpecialization.ts, 0, 67)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) + + constructor(initialItems?: T[]); +>constructor : Symbol(constructor, Decl(objectLiteralArraySpecialization.ts, 1, 29)) +>initialItems : Symbol(initialItems, Decl(objectLiteralArraySpecialization.ts, 2, 13)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) + + doSomething(predicate: (x: T, y: T) => boolean): void; +>doSomething : Symbol(doSomething, Decl(objectLiteralArraySpecialization.ts, 2, 33)) +>predicate : Symbol(predicate, Decl(objectLiteralArraySpecialization.ts, 3, 13)) +>x : Symbol(x, Decl(objectLiteralArraySpecialization.ts, 3, 25)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) +>y : Symbol(y, Decl(objectLiteralArraySpecialization.ts, 3, 30)) +>T : Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) +} +var thing = create([ { name: "bob", id: 24 }, { name: "doug", id: 32 } ]); // should not error +>thing : Symbol(thing, Decl(objectLiteralArraySpecialization.ts, 5, 3)) +>create : Symbol(create, Decl(objectLiteralArraySpecialization.ts, 0, 0)) +>name : Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 22)) +>id : Symbol(id, Decl(objectLiteralArraySpecialization.ts, 5, 35)) +>name : Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 47)) +>id : Symbol(id, Decl(objectLiteralArraySpecialization.ts, 5, 61)) + +thing.doSomething((x, y) => x.name === "bob"); // should not error +>thing.doSomething : Symbol(MyArrayWrapper.doSomething, Decl(objectLiteralArraySpecialization.ts, 2, 33)) +>thing : Symbol(thing, Decl(objectLiteralArraySpecialization.ts, 5, 3)) +>doSomething : Symbol(MyArrayWrapper.doSomething, Decl(objectLiteralArraySpecialization.ts, 2, 33)) +>x : Symbol(x, Decl(objectLiteralArraySpecialization.ts, 6, 19)) +>y : Symbol(y, Decl(objectLiteralArraySpecialization.ts, 6, 21)) +>x.name : Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 22)) +>x : Symbol(x, Decl(objectLiteralArraySpecialization.ts, 6, 19)) +>name : Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 22)) + diff --git a/tests/baselines/reference/objectLiteralArraySpecialization.types b/tests/baselines/reference/objectLiteralArraySpecialization.types index abe42c7c96ab1..b32eaa0441e18 100644 --- a/tests/baselines/reference/objectLiteralArraySpecialization.types +++ b/tests/baselines/reference/objectLiteralArraySpecialization.types @@ -1,56 +1,56 @@ === tests/cases/compiler/objectLiteralArraySpecialization.ts === declare function create(initialValues?: T[]): MyArrayWrapper; ->create : (initialValues?: T[]) => MyArrayWrapper, Symbol(create, Decl(objectLiteralArraySpecialization.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 0, 24)) ->initialValues : T[], Symbol(initialValues, Decl(objectLiteralArraySpecialization.ts, 0, 27)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 0, 24)) ->MyArrayWrapper : MyArrayWrapper, Symbol(MyArrayWrapper, Decl(objectLiteralArraySpecialization.ts, 0, 67)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 0, 24)) +>create : (initialValues?: T[]) => MyArrayWrapper +>T : T +>initialValues : T[] +>T : T +>MyArrayWrapper : MyArrayWrapper +>T : T interface MyArrayWrapper { ->MyArrayWrapper : MyArrayWrapper, Symbol(MyArrayWrapper, Decl(objectLiteralArraySpecialization.ts, 0, 67)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) +>MyArrayWrapper : MyArrayWrapper +>T : T constructor(initialItems?: T[]); ->constructor : (initialItems?: T[]) => any, Symbol(constructor, Decl(objectLiteralArraySpecialization.ts, 1, 29)) ->initialItems : T[], Symbol(initialItems, Decl(objectLiteralArraySpecialization.ts, 2, 13)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) +>constructor : (initialItems?: T[]) => any +>initialItems : T[] +>T : T doSomething(predicate: (x: T, y: T) => boolean): void; ->doSomething : (predicate: (x: T, y: T) => boolean) => void, Symbol(doSomething, Decl(objectLiteralArraySpecialization.ts, 2, 33)) ->predicate : (x: T, y: T) => boolean, Symbol(predicate, Decl(objectLiteralArraySpecialization.ts, 3, 13)) ->x : T, Symbol(x, Decl(objectLiteralArraySpecialization.ts, 3, 25)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) ->y : T, Symbol(y, Decl(objectLiteralArraySpecialization.ts, 3, 30)) ->T : T, Symbol(T, Decl(objectLiteralArraySpecialization.ts, 1, 25)) +>doSomething : (predicate: (x: T, y: T) => boolean) => void +>predicate : (x: T, y: T) => boolean +>x : T +>T : T +>y : T +>T : T } var thing = create([ { name: "bob", id: 24 }, { name: "doug", id: 32 } ]); // should not error ->thing : MyArrayWrapper<{ name: string; id: number; }>, Symbol(thing, Decl(objectLiteralArraySpecialization.ts, 5, 3)) +>thing : MyArrayWrapper<{ name: string; id: number; }> >create([ { name: "bob", id: 24 }, { name: "doug", id: 32 } ]) : MyArrayWrapper<{ name: string; id: number; }> ->create : (initialValues?: T[]) => MyArrayWrapper, Symbol(create, Decl(objectLiteralArraySpecialization.ts, 0, 0)) +>create : (initialValues?: T[]) => MyArrayWrapper >[ { name: "bob", id: 24 }, { name: "doug", id: 32 } ] : { name: string; id: number; }[] >{ name: "bob", id: 24 } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 22)) +>name : string >"bob" : string ->id : number, Symbol(id, Decl(objectLiteralArraySpecialization.ts, 5, 35)) +>id : number >24 : number >{ name: "doug", id: 32 } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 47)) +>name : string >"doug" : string ->id : number, Symbol(id, Decl(objectLiteralArraySpecialization.ts, 5, 61)) +>id : number >32 : number thing.doSomething((x, y) => x.name === "bob"); // should not error >thing.doSomething((x, y) => x.name === "bob") : void ->thing.doSomething : (predicate: (x: { name: string; id: number; }, y: { name: string; id: number; }) => boolean) => void, Symbol(MyArrayWrapper.doSomething, Decl(objectLiteralArraySpecialization.ts, 2, 33)) ->thing : MyArrayWrapper<{ name: string; id: number; }>, Symbol(thing, Decl(objectLiteralArraySpecialization.ts, 5, 3)) ->doSomething : (predicate: (x: { name: string; id: number; }, y: { name: string; id: number; }) => boolean) => void, Symbol(MyArrayWrapper.doSomething, Decl(objectLiteralArraySpecialization.ts, 2, 33)) +>thing.doSomething : (predicate: (x: { name: string; id: number; }, y: { name: string; id: number; }) => boolean) => void +>thing : MyArrayWrapper<{ name: string; id: number; }> +>doSomething : (predicate: (x: { name: string; id: number; }, y: { name: string; id: number; }) => boolean) => void >(x, y) => x.name === "bob" : (x: { name: string; id: number; }, y: { name: string; id: number; }) => boolean ->x : { name: string; id: number; }, Symbol(x, Decl(objectLiteralArraySpecialization.ts, 6, 19)) ->y : { name: string; id: number; }, Symbol(y, Decl(objectLiteralArraySpecialization.ts, 6, 21)) +>x : { name: string; id: number; } +>y : { name: string; id: number; } >x.name === "bob" : boolean ->x.name : string, Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 22)) ->x : { name: string; id: number; }, Symbol(x, Decl(objectLiteralArraySpecialization.ts, 6, 19)) ->name : string, Symbol(name, Decl(objectLiteralArraySpecialization.ts, 5, 22)) +>x.name : string +>x : { name: string; id: number; } +>name : string >"bob" : string diff --git a/tests/baselines/reference/objectLiteralContextualTyping.symbols b/tests/baselines/reference/objectLiteralContextualTyping.symbols new file mode 100644 index 0000000000000..6e8f2e5f333ae --- /dev/null +++ b/tests/baselines/reference/objectLiteralContextualTyping.symbols @@ -0,0 +1,71 @@ +=== tests/cases/conformance/expressions/contextualTyping/objectLiteralContextualTyping.ts === +// Tests related to #1774 + +interface Item { +>Item : Symbol(Item, Decl(objectLiteralContextualTyping.ts, 0, 0)) + + name: string; +>name : Symbol(name, Decl(objectLiteralContextualTyping.ts, 2, 16)) + + description?: string; +>description : Symbol(description, Decl(objectLiteralContextualTyping.ts, 3, 17)) +} + +declare function foo(item: Item): string; +>foo : Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>item : Symbol(item, Decl(objectLiteralContextualTyping.ts, 7, 21)) +>Item : Symbol(Item, Decl(objectLiteralContextualTyping.ts, 0, 0)) + +declare function foo(item: any): number; +>foo : Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>item : Symbol(item, Decl(objectLiteralContextualTyping.ts, 8, 21)) + +var x = foo({ name: "Sprocket" }); +>x : Symbol(x, Decl(objectLiteralContextualTyping.ts, 10, 3), Decl(objectLiteralContextualTyping.ts, 11, 3)) +>foo : Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>name : Symbol(name, Decl(objectLiteralContextualTyping.ts, 10, 13)) + +var x: string; +>x : Symbol(x, Decl(objectLiteralContextualTyping.ts, 10, 3), Decl(objectLiteralContextualTyping.ts, 11, 3)) + +var y = foo({ name: "Sprocket", description: "Bumpy wheel" }); +>y : Symbol(y, Decl(objectLiteralContextualTyping.ts, 13, 3), Decl(objectLiteralContextualTyping.ts, 14, 3)) +>foo : Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>name : Symbol(name, Decl(objectLiteralContextualTyping.ts, 13, 13)) +>description : Symbol(description, Decl(objectLiteralContextualTyping.ts, 13, 31)) + +var y: string; +>y : Symbol(y, Decl(objectLiteralContextualTyping.ts, 13, 3), Decl(objectLiteralContextualTyping.ts, 14, 3)) + +var z = foo({ name: "Sprocket", description: false }); +>z : Symbol(z, Decl(objectLiteralContextualTyping.ts, 16, 3), Decl(objectLiteralContextualTyping.ts, 17, 3)) +>foo : Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>name : Symbol(name, Decl(objectLiteralContextualTyping.ts, 16, 13)) +>description : Symbol(description, Decl(objectLiteralContextualTyping.ts, 16, 31)) + +var z: number; +>z : Symbol(z, Decl(objectLiteralContextualTyping.ts, 16, 3), Decl(objectLiteralContextualTyping.ts, 17, 3)) + +var w = foo({ a: 10 }); +>w : Symbol(w, Decl(objectLiteralContextualTyping.ts, 19, 3), Decl(objectLiteralContextualTyping.ts, 20, 3)) +>foo : Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>a : Symbol(a, Decl(objectLiteralContextualTyping.ts, 19, 13)) + +var w: number; +>w : Symbol(w, Decl(objectLiteralContextualTyping.ts, 19, 3), Decl(objectLiteralContextualTyping.ts, 20, 3)) + +declare function bar(param: { x?: T }): T; +>bar : Symbol(bar, Decl(objectLiteralContextualTyping.ts, 20, 14)) +>T : Symbol(T, Decl(objectLiteralContextualTyping.ts, 22, 21)) +>param : Symbol(param, Decl(objectLiteralContextualTyping.ts, 22, 24)) +>x : Symbol(x, Decl(objectLiteralContextualTyping.ts, 22, 32)) +>T : Symbol(T, Decl(objectLiteralContextualTyping.ts, 22, 21)) +>T : Symbol(T, Decl(objectLiteralContextualTyping.ts, 22, 21)) + +var b = bar({}); +>b : Symbol(b, Decl(objectLiteralContextualTyping.ts, 24, 3), Decl(objectLiteralContextualTyping.ts, 25, 3)) +>bar : Symbol(bar, Decl(objectLiteralContextualTyping.ts, 20, 14)) + +var b: {}; +>b : Symbol(b, Decl(objectLiteralContextualTyping.ts, 24, 3), Decl(objectLiteralContextualTyping.ts, 25, 3)) + diff --git a/tests/baselines/reference/objectLiteralContextualTyping.types b/tests/baselines/reference/objectLiteralContextualTyping.types index 7b81f4e6672af..7668b01d32c17 100644 --- a/tests/baselines/reference/objectLiteralContextualTyping.types +++ b/tests/baselines/reference/objectLiteralContextualTyping.types @@ -2,86 +2,86 @@ // Tests related to #1774 interface Item { ->Item : Item, Symbol(Item, Decl(objectLiteralContextualTyping.ts, 0, 0)) +>Item : Item name: string; ->name : string, Symbol(name, Decl(objectLiteralContextualTyping.ts, 2, 16)) +>name : string description?: string; ->description : string, Symbol(description, Decl(objectLiteralContextualTyping.ts, 3, 17)) +>description : string } declare function foo(item: Item): string; ->foo : { (item: Item): string; (item: any): number; }, Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) ->item : Item, Symbol(item, Decl(objectLiteralContextualTyping.ts, 7, 21)) ->Item : Item, Symbol(Item, Decl(objectLiteralContextualTyping.ts, 0, 0)) +>foo : { (item: Item): string; (item: any): number; } +>item : Item +>Item : Item declare function foo(item: any): number; ->foo : { (item: Item): string; (item: any): number; }, Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) ->item : any, Symbol(item, Decl(objectLiteralContextualTyping.ts, 8, 21)) +>foo : { (item: Item): string; (item: any): number; } +>item : any var x = foo({ name: "Sprocket" }); ->x : string, Symbol(x, Decl(objectLiteralContextualTyping.ts, 10, 3), Decl(objectLiteralContextualTyping.ts, 11, 3)) +>x : string >foo({ name: "Sprocket" }) : string ->foo : { (item: Item): string; (item: any): number; }, Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>foo : { (item: Item): string; (item: any): number; } >{ name: "Sprocket" } : { name: string; } ->name : string, Symbol(name, Decl(objectLiteralContextualTyping.ts, 10, 13)) +>name : string >"Sprocket" : string var x: string; ->x : string, Symbol(x, Decl(objectLiteralContextualTyping.ts, 10, 3), Decl(objectLiteralContextualTyping.ts, 11, 3)) +>x : string var y = foo({ name: "Sprocket", description: "Bumpy wheel" }); ->y : string, Symbol(y, Decl(objectLiteralContextualTyping.ts, 13, 3), Decl(objectLiteralContextualTyping.ts, 14, 3)) +>y : string >foo({ name: "Sprocket", description: "Bumpy wheel" }) : string ->foo : { (item: Item): string; (item: any): number; }, Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>foo : { (item: Item): string; (item: any): number; } >{ name: "Sprocket", description: "Bumpy wheel" } : { name: string; description: string; } ->name : string, Symbol(name, Decl(objectLiteralContextualTyping.ts, 13, 13)) +>name : string >"Sprocket" : string ->description : string, Symbol(description, Decl(objectLiteralContextualTyping.ts, 13, 31)) +>description : string >"Bumpy wheel" : string var y: string; ->y : string, Symbol(y, Decl(objectLiteralContextualTyping.ts, 13, 3), Decl(objectLiteralContextualTyping.ts, 14, 3)) +>y : string var z = foo({ name: "Sprocket", description: false }); ->z : number, Symbol(z, Decl(objectLiteralContextualTyping.ts, 16, 3), Decl(objectLiteralContextualTyping.ts, 17, 3)) +>z : number >foo({ name: "Sprocket", description: false }) : number ->foo : { (item: Item): string; (item: any): number; }, Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>foo : { (item: Item): string; (item: any): number; } >{ name: "Sprocket", description: false } : { name: string; description: boolean; } ->name : string, Symbol(name, Decl(objectLiteralContextualTyping.ts, 16, 13)) +>name : string >"Sprocket" : string ->description : boolean, Symbol(description, Decl(objectLiteralContextualTyping.ts, 16, 31)) +>description : boolean >false : boolean var z: number; ->z : number, Symbol(z, Decl(objectLiteralContextualTyping.ts, 16, 3), Decl(objectLiteralContextualTyping.ts, 17, 3)) +>z : number var w = foo({ a: 10 }); ->w : number, Symbol(w, Decl(objectLiteralContextualTyping.ts, 19, 3), Decl(objectLiteralContextualTyping.ts, 20, 3)) +>w : number >foo({ a: 10 }) : number ->foo : { (item: Item): string; (item: any): number; }, Symbol(foo, Decl(objectLiteralContextualTyping.ts, 5, 1), Decl(objectLiteralContextualTyping.ts, 7, 41)) +>foo : { (item: Item): string; (item: any): number; } >{ a: 10 } : { a: number; } ->a : number, Symbol(a, Decl(objectLiteralContextualTyping.ts, 19, 13)) +>a : number >10 : number var w: number; ->w : number, Symbol(w, Decl(objectLiteralContextualTyping.ts, 19, 3), Decl(objectLiteralContextualTyping.ts, 20, 3)) +>w : number declare function bar(param: { x?: T }): T; ->bar : (param: { x?: T; }) => T, Symbol(bar, Decl(objectLiteralContextualTyping.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectLiteralContextualTyping.ts, 22, 21)) ->param : { x?: T; }, Symbol(param, Decl(objectLiteralContextualTyping.ts, 22, 24)) ->x : T, Symbol(x, Decl(objectLiteralContextualTyping.ts, 22, 32)) ->T : T, Symbol(T, Decl(objectLiteralContextualTyping.ts, 22, 21)) ->T : T, Symbol(T, Decl(objectLiteralContextualTyping.ts, 22, 21)) +>bar : (param: { x?: T; }) => T +>T : T +>param : { x?: T; } +>x : T +>T : T +>T : T var b = bar({}); ->b : {}, Symbol(b, Decl(objectLiteralContextualTyping.ts, 24, 3), Decl(objectLiteralContextualTyping.ts, 25, 3)) +>b : {} >bar({}) : {} ->bar : (param: { x?: T; }) => T, Symbol(bar, Decl(objectLiteralContextualTyping.ts, 20, 14)) +>bar : (param: { x?: T; }) => T >{} : {} var b: {}; ->b : {}, Symbol(b, Decl(objectLiteralContextualTyping.ts, 24, 3), Decl(objectLiteralContextualTyping.ts, 25, 3)) +>b : {} diff --git a/tests/baselines/reference/objectLiteralDeclarationGeneration1.symbols b/tests/baselines/reference/objectLiteralDeclarationGeneration1.symbols new file mode 100644 index 0000000000000..fb03260183c10 --- /dev/null +++ b/tests/baselines/reference/objectLiteralDeclarationGeneration1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/objectLiteralDeclarationGeneration1.ts === +class y{ } +>y : Symbol(y, Decl(objectLiteralDeclarationGeneration1.ts, 0, 0)) +>T : Symbol(T, Decl(objectLiteralDeclarationGeneration1.ts, 0, 8)) + diff --git a/tests/baselines/reference/objectLiteralDeclarationGeneration1.types b/tests/baselines/reference/objectLiteralDeclarationGeneration1.types index 4011f2c736ef2..a7406d72ab4b6 100644 --- a/tests/baselines/reference/objectLiteralDeclarationGeneration1.types +++ b/tests/baselines/reference/objectLiteralDeclarationGeneration1.types @@ -1,5 +1,5 @@ === tests/cases/compiler/objectLiteralDeclarationGeneration1.ts === class y{ } ->y : y, Symbol(y, Decl(objectLiteralDeclarationGeneration1.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectLiteralDeclarationGeneration1.ts, 0, 8)) +>y : y +>T : T diff --git a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.symbols b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.symbols new file mode 100644 index 0000000000000..2a5545f22642d --- /dev/null +++ b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts === +interface I { +>I : Symbol(I, Decl(objectLiteralIndexerNoImplicitAny.ts, 0, 0)) + + [s: string]: any; +>s : Symbol(s, Decl(objectLiteralIndexerNoImplicitAny.ts, 1, 5)) +} + +var x: I = { +>x : Symbol(x, Decl(objectLiteralIndexerNoImplicitAny.ts, 4, 3)) +>I : Symbol(I, Decl(objectLiteralIndexerNoImplicitAny.ts, 0, 0)) + + p: null +>p : Symbol(p, Decl(objectLiteralIndexerNoImplicitAny.ts, 4, 12)) +} diff --git a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types index 7115b32349047..a49f76d02e91e 100644 --- a/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types +++ b/tests/baselines/reference/objectLiteralIndexerNoImplicitAny.types @@ -1,17 +1,17 @@ === tests/cases/compiler/objectLiteralIndexerNoImplicitAny.ts === interface I { ->I : I, Symbol(I, Decl(objectLiteralIndexerNoImplicitAny.ts, 0, 0)) +>I : I [s: string]: any; ->s : string, Symbol(s, Decl(objectLiteralIndexerNoImplicitAny.ts, 1, 5)) +>s : string } var x: I = { ->x : I, Symbol(x, Decl(objectLiteralIndexerNoImplicitAny.ts, 4, 3)) ->I : I, Symbol(I, Decl(objectLiteralIndexerNoImplicitAny.ts, 0, 0)) +>x : I +>I : I >{ p: null} : { [x: string]: null; p: null; } p: null ->p : null, Symbol(p, Decl(objectLiteralIndexerNoImplicitAny.ts, 4, 12)) +>p : null >null : null } diff --git a/tests/baselines/reference/objectLiteralIndexers.symbols b/tests/baselines/reference/objectLiteralIndexers.symbols new file mode 100644 index 0000000000000..424e95be0faa1 --- /dev/null +++ b/tests/baselines/reference/objectLiteralIndexers.symbols @@ -0,0 +1,49 @@ +=== tests/cases/compiler/objectLiteralIndexers.ts === +interface A { +>A : Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) + + x: number; +>x : Symbol(x, Decl(objectLiteralIndexers.ts, 0, 13)) +} + +interface B extends A { +>B : Symbol(B, Decl(objectLiteralIndexers.ts, 2, 1)) +>A : Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) + + y: string; +>y : Symbol(y, Decl(objectLiteralIndexers.ts, 4, 23)) +} + +var a: A; +>a : Symbol(a, Decl(objectLiteralIndexers.ts, 8, 3)) +>A : Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) + +var b: B; +>b : Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) +>B : Symbol(B, Decl(objectLiteralIndexers.ts, 2, 1)) + +var c: any; +>c : Symbol(c, Decl(objectLiteralIndexers.ts, 10, 3)) + +var o1: { [s: string]: A;[n: number]: B; } = { x: a, 0: b }; // string indexer is A, number indexer is B +>o1 : Symbol(o1, Decl(objectLiteralIndexers.ts, 12, 3)) +>s : Symbol(s, Decl(objectLiteralIndexers.ts, 12, 11)) +>A : Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) +>n : Symbol(n, Decl(objectLiteralIndexers.ts, 12, 26)) +>B : Symbol(B, Decl(objectLiteralIndexers.ts, 2, 1)) +>x : Symbol(x, Decl(objectLiteralIndexers.ts, 12, 46)) +>a : Symbol(a, Decl(objectLiteralIndexers.ts, 8, 3)) +>b : Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) + +o1 = { x: b, 0: c }; // both indexers are any +>o1 : Symbol(o1, Decl(objectLiteralIndexers.ts, 12, 3)) +>x : Symbol(x, Decl(objectLiteralIndexers.ts, 13, 6)) +>b : Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) +>c : Symbol(c, Decl(objectLiteralIndexers.ts, 10, 3)) + +o1 = { x: c, 0: b }; // string indexer is any, number indexer is B +>o1 : Symbol(o1, Decl(objectLiteralIndexers.ts, 12, 3)) +>x : Symbol(x, Decl(objectLiteralIndexers.ts, 14, 6)) +>c : Symbol(c, Decl(objectLiteralIndexers.ts, 10, 3)) +>b : Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) + diff --git a/tests/baselines/reference/objectLiteralIndexers.types b/tests/baselines/reference/objectLiteralIndexers.types index fb8afab29bb3d..d5add00ebafb6 100644 --- a/tests/baselines/reference/objectLiteralIndexers.types +++ b/tests/baselines/reference/objectLiteralIndexers.types @@ -1,54 +1,54 @@ === tests/cases/compiler/objectLiteralIndexers.ts === interface A { ->A : A, Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) +>A : A x: number; ->x : number, Symbol(x, Decl(objectLiteralIndexers.ts, 0, 13)) +>x : number } interface B extends A { ->B : B, Symbol(B, Decl(objectLiteralIndexers.ts, 2, 1)) ->A : A, Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) +>B : B +>A : A y: string; ->y : string, Symbol(y, Decl(objectLiteralIndexers.ts, 4, 23)) +>y : string } var a: A; ->a : A, Symbol(a, Decl(objectLiteralIndexers.ts, 8, 3)) ->A : A, Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) +>a : A +>A : A var b: B; ->b : B, Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) ->B : B, Symbol(B, Decl(objectLiteralIndexers.ts, 2, 1)) +>b : B +>B : B var c: any; ->c : any, Symbol(c, Decl(objectLiteralIndexers.ts, 10, 3)) +>c : any var o1: { [s: string]: A;[n: number]: B; } = { x: a, 0: b }; // string indexer is A, number indexer is B ->o1 : { [s: string]: A; [n: number]: B; }, Symbol(o1, Decl(objectLiteralIndexers.ts, 12, 3)) ->s : string, Symbol(s, Decl(objectLiteralIndexers.ts, 12, 11)) ->A : A, Symbol(A, Decl(objectLiteralIndexers.ts, 0, 0)) ->n : number, Symbol(n, Decl(objectLiteralIndexers.ts, 12, 26)) ->B : B, Symbol(B, Decl(objectLiteralIndexers.ts, 2, 1)) +>o1 : { [s: string]: A; [n: number]: B; } +>s : string +>A : A +>n : number +>B : B >{ x: a, 0: b } : { [x: string]: A; [x: number]: B; 0: B; x: A; } ->x : A, Symbol(x, Decl(objectLiteralIndexers.ts, 12, 46)) ->a : A, Symbol(a, Decl(objectLiteralIndexers.ts, 8, 3)) ->b : B, Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) +>x : A +>a : A +>b : B o1 = { x: b, 0: c }; // both indexers are any >o1 = { x: b, 0: c } : { [x: string]: any; [x: number]: any; 0: any; x: B; } ->o1 : { [s: string]: A; [n: number]: B; }, Symbol(o1, Decl(objectLiteralIndexers.ts, 12, 3)) +>o1 : { [s: string]: A; [n: number]: B; } >{ x: b, 0: c } : { [x: string]: any; [x: number]: any; 0: any; x: B; } ->x : B, Symbol(x, Decl(objectLiteralIndexers.ts, 13, 6)) ->b : B, Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) ->c : any, Symbol(c, Decl(objectLiteralIndexers.ts, 10, 3)) +>x : B +>b : B +>c : any o1 = { x: c, 0: b }; // string indexer is any, number indexer is B >o1 = { x: c, 0: b } : { [x: string]: any; [x: number]: B; 0: B; x: any; } ->o1 : { [s: string]: A; [n: number]: B; }, Symbol(o1, Decl(objectLiteralIndexers.ts, 12, 3)) +>o1 : { [s: string]: A; [n: number]: B; } >{ x: c, 0: b } : { [x: string]: any; [x: number]: B; 0: B; x: any; } ->x : any, Symbol(x, Decl(objectLiteralIndexers.ts, 14, 6)) ->c : any, Symbol(c, Decl(objectLiteralIndexers.ts, 10, 3)) ->b : B, Symbol(b, Decl(objectLiteralIndexers.ts, 9, 3)) +>x : any +>c : any +>b : B diff --git a/tests/baselines/reference/objectLiteralShorthandProperties.symbols b/tests/baselines/reference/objectLiteralShorthandProperties.symbols new file mode 100644 index 0000000000000..e75b1d70a1162 --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandProperties.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandProperties.ts === +var a, b, c; +>a : Symbol(a, Decl(objectLiteralShorthandProperties.ts, 0, 3)) +>b : Symbol(b, Decl(objectLiteralShorthandProperties.ts, 0, 6)) +>c : Symbol(c, Decl(objectLiteralShorthandProperties.ts, 0, 9)) + +var x1 = { +>x1 : Symbol(x1, Decl(objectLiteralShorthandProperties.ts, 2, 3)) + + a +>a : Symbol(a, Decl(objectLiteralShorthandProperties.ts, 2, 10)) + +}; + +var x2 = { +>x2 : Symbol(x2, Decl(objectLiteralShorthandProperties.ts, 6, 3)) + + a, +>a : Symbol(a, Decl(objectLiteralShorthandProperties.ts, 6, 10)) +} + +var x3 = { +>x3 : Symbol(x3, Decl(objectLiteralShorthandProperties.ts, 10, 3)) + + a: 0, +>a : Symbol(a, Decl(objectLiteralShorthandProperties.ts, 10, 10)) + + b, +>b : Symbol(b, Decl(objectLiteralShorthandProperties.ts, 11, 9)) + + c, +>c : Symbol(c, Decl(objectLiteralShorthandProperties.ts, 12, 6)) + + d() { }, +>d : Symbol(d, Decl(objectLiteralShorthandProperties.ts, 13, 6)) + + x3, +>x3 : Symbol(x3, Decl(objectLiteralShorthandProperties.ts, 14, 12)) + + parent: x3 +>parent : Symbol(parent, Decl(objectLiteralShorthandProperties.ts, 15, 7)) +>x3 : Symbol(x3, Decl(objectLiteralShorthandProperties.ts, 10, 3)) + +}; + + diff --git a/tests/baselines/reference/objectLiteralShorthandProperties.types b/tests/baselines/reference/objectLiteralShorthandProperties.types index 5a2772e0290d8..9d537173d49a3 100644 --- a/tests/baselines/reference/objectLiteralShorthandProperties.types +++ b/tests/baselines/reference/objectLiteralShorthandProperties.types @@ -1,49 +1,49 @@ === tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandProperties.ts === var a, b, c; ->a : any, Symbol(a, Decl(objectLiteralShorthandProperties.ts, 0, 3)) ->b : any, Symbol(b, Decl(objectLiteralShorthandProperties.ts, 0, 6)) ->c : any, Symbol(c, Decl(objectLiteralShorthandProperties.ts, 0, 9)) +>a : any +>b : any +>c : any var x1 = { ->x1 : { a: any; }, Symbol(x1, Decl(objectLiteralShorthandProperties.ts, 2, 3)) +>x1 : { a: any; } >{ a} : { a: any; } a ->a : any, Symbol(a, Decl(objectLiteralShorthandProperties.ts, 2, 10)) +>a : any }; var x2 = { ->x2 : { a: any; }, Symbol(x2, Decl(objectLiteralShorthandProperties.ts, 6, 3)) +>x2 : { a: any; } >{ a,} : { a: any; } a, ->a : any, Symbol(a, Decl(objectLiteralShorthandProperties.ts, 6, 10)) +>a : any } var x3 = { ->x3 : any, Symbol(x3, Decl(objectLiteralShorthandProperties.ts, 10, 3)) +>x3 : any >{ a: 0, b, c, d() { }, x3, parent: x3} : { a: number; b: any; c: any; d(): void; x3: any; parent: any; } a: 0, ->a : number, Symbol(a, Decl(objectLiteralShorthandProperties.ts, 10, 10)) +>a : number >0 : number b, ->b : any, Symbol(b, Decl(objectLiteralShorthandProperties.ts, 11, 9)) +>b : any c, ->c : any, Symbol(c, Decl(objectLiteralShorthandProperties.ts, 12, 6)) +>c : any d() { }, ->d : () => void, Symbol(d, Decl(objectLiteralShorthandProperties.ts, 13, 6)) +>d : () => void x3, ->x3 : any, Symbol(x3, Decl(objectLiteralShorthandProperties.ts, 14, 12)) +>x3 : any parent: x3 ->parent : any, Symbol(parent, Decl(objectLiteralShorthandProperties.ts, 15, 7)) ->x3 : any, Symbol(x3, Decl(objectLiteralShorthandProperties.ts, 10, 3)) +>parent : any +>x3 : any }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.symbols b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.symbols new file mode 100644 index 0000000000000..6afb48aac498b --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.symbols @@ -0,0 +1,60 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignment.ts === +var id: number = 10000; +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 0, 3)) + +var name: string = "my name"; +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 1, 3)) + +var person: { name: string; id: number } = { name, id }; +>person : Symbol(person, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 13)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 27)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 44)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 50)) + +function foo( obj:{ name: string }): void { }; +>foo : Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 56)) +>obj : Symbol(obj, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 13)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 19)) + +function bar(name: string, id: number) { return { name, id }; } +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 13)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 26)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 49)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 55)) + +function bar1(name: string, id: number) { return { name }; } +>bar1 : Symbol(bar1, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 63)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 14)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 27)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 50)) + +function baz(name: string, id: number): { name: string; id: number } { return { name, id }; } +>baz : Symbol(baz, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 60)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 13)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 26)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 41)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 55)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 79)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 85)) + +foo(person); +>foo : Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 56)) +>person : Symbol(person, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 3)) + +var person1 = bar("Hello", 5); +>person1 : Symbol(person1, Decl(objectLiteralShorthandPropertiesAssignment.ts, 10, 3)) +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) + +var person2: { name: string } = bar("Hello", 5); +>person2 : Symbol(person2, Decl(objectLiteralShorthandPropertiesAssignment.ts, 11, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 11, 14)) +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) + +var person3: { name: string; id:number } = bar("Hello", 5); +>person3 : Symbol(person3, Decl(objectLiteralShorthandPropertiesAssignment.ts, 12, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 12, 14)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 12, 28)) +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) + diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types index 33515248668bf..869a67fb22f1e 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.types @@ -1,76 +1,76 @@ === tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignment.ts === var id: number = 10000; ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 0, 3)) +>id : number >10000 : number var name: string = "my name"; ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 1, 3)) +>name : string >"my name" : string var person: { name: string; id: number } = { name, id }; ->person : { name: string; id: number; }, Symbol(person, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 3)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 13)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 27)) +>person : { name: string; id: number; } +>name : string +>id : number >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 44)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 50)) +>name : string +>id : number function foo( obj:{ name: string }): void { }; ->foo : (obj: { name: string; }) => void, Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 56)) ->obj : { name: string; }, Symbol(obj, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 13)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 19)) +>foo : (obj: { name: string; }) => void +>obj : { name: string; } +>name : string function bar(name: string, id: number) { return { name, id }; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 13)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 26)) +>bar : (name: string, id: number) => { name: string; id: number; } +>name : string +>id : number >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 49)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 55)) +>name : string +>id : number function bar1(name: string, id: number) { return { name }; } ->bar1 : (name: string, id: number) => { name: string; }, Symbol(bar1, Decl(objectLiteralShorthandPropertiesAssignment.ts, 5, 63)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 14)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 27)) +>bar1 : (name: string, id: number) => { name: string; } +>name : string +>id : number >{ name } : { name: string; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 50)) +>name : string function baz(name: string, id: number): { name: string; id: number } { return { name, id }; } ->baz : (name: string, id: number) => { name: string; id: number; }, Symbol(baz, Decl(objectLiteralShorthandPropertiesAssignment.ts, 6, 60)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 13)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 26)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 41)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 55)) +>baz : (name: string, id: number) => { name: string; id: number; } +>name : string +>id : number +>name : string +>id : number >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 79)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 7, 85)) +>name : string +>id : number foo(person); >foo(person) : void ->foo : (obj: { name: string; }) => void, Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 56)) ->person : { name: string; id: number; }, Symbol(person, Decl(objectLiteralShorthandPropertiesAssignment.ts, 3, 3)) +>foo : (obj: { name: string; }) => void +>person : { name: string; id: number; } var person1 = bar("Hello", 5); ->person1 : { name: string; id: number; }, Symbol(person1, Decl(objectLiteralShorthandPropertiesAssignment.ts, 10, 3)) +>person1 : { name: string; id: number; } >bar("Hello", 5) : { name: string; id: number; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) +>bar : (name: string, id: number) => { name: string; id: number; } >"Hello" : string >5 : number var person2: { name: string } = bar("Hello", 5); ->person2 : { name: string; }, Symbol(person2, Decl(objectLiteralShorthandPropertiesAssignment.ts, 11, 3)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 11, 14)) +>person2 : { name: string; } +>name : string >bar("Hello", 5) : { name: string; id: number; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) +>bar : (name: string, id: number) => { name: string; id: number; } >"Hello" : string >5 : number var person3: { name: string; id:number } = bar("Hello", 5); ->person3 : { name: string; id: number; }, Symbol(person3, Decl(objectLiteralShorthandPropertiesAssignment.ts, 12, 3)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignment.ts, 12, 14)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignment.ts, 12, 28)) +>person3 : { name: string; id: number; } +>name : string +>id : number >bar("Hello", 5) : { name: string; id: number; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignment.ts, 4, 46)) +>bar : (name: string, id: number) => { name: string; id: number; } >"Hello" : string >5 : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.symbols b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.symbols new file mode 100644 index 0000000000000..e444d177a798e --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.symbols @@ -0,0 +1,60 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentES6.ts === +var id: number = 10000; +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 0, 3)) + +var name: string = "my name"; +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 1, 3)) + +var person: { name: string; id: number } = { name, id }; +>person : Symbol(person, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 13)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 27)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 44)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 50)) + +function foo(obj: { name: string }): void { }; +>foo : Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 56)) +>obj : Symbol(obj, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 13)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 19)) + +function bar(name: string, id: number) { return { name, id }; } +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 13)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 26)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 49)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 55)) + +function bar1(name: string, id: number) { return { name }; } +>bar1 : Symbol(bar1, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 63)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 14)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 27)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 50)) + +function baz(name: string, id: number): { name: string; id: number } { return { name, id }; } +>baz : Symbol(baz, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 60)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 13)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 26)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 41)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 55)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 79)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 85)) + +foo(person); +>foo : Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 56)) +>person : Symbol(person, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 3)) + +var person1 = bar("Hello", 5); +>person1 : Symbol(person1, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 10, 3)) +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) + +var person2: { name: string } = bar("Hello", 5); +>person2 : Symbol(person2, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 11, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 11, 14)) +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) + +var person3: { name: string; id: number } = bar("Hello", 5); +>person3 : Symbol(person3, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 12, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 12, 14)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 12, 28)) +>bar : Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) + diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types index 7701d9761f882..710fc43033925 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.types @@ -1,76 +1,76 @@ === tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesAssignmentES6.ts === var id: number = 10000; ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 0, 3)) +>id : number >10000 : number var name: string = "my name"; ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 1, 3)) +>name : string >"my name" : string var person: { name: string; id: number } = { name, id }; ->person : { name: string; id: number; }, Symbol(person, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 3)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 13)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 27)) +>person : { name: string; id: number; } +>name : string +>id : number >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 44)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 50)) +>name : string +>id : number function foo(obj: { name: string }): void { }; ->foo : (obj: { name: string; }) => void, Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 56)) ->obj : { name: string; }, Symbol(obj, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 13)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 19)) +>foo : (obj: { name: string; }) => void +>obj : { name: string; } +>name : string function bar(name: string, id: number) { return { name, id }; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 13)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 26)) +>bar : (name: string, id: number) => { name: string; id: number; } +>name : string +>id : number >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 49)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 55)) +>name : string +>id : number function bar1(name: string, id: number) { return { name }; } ->bar1 : (name: string, id: number) => { name: string; }, Symbol(bar1, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 5, 63)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 14)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 27)) +>bar1 : (name: string, id: number) => { name: string; } +>name : string +>id : number >{ name } : { name: string; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 50)) +>name : string function baz(name: string, id: number): { name: string; id: number } { return { name, id }; } ->baz : (name: string, id: number) => { name: string; id: number; }, Symbol(baz, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 6, 60)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 13)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 26)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 41)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 55)) +>baz : (name: string, id: number) => { name: string; id: number; } +>name : string +>id : number +>name : string +>id : number >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 79)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 7, 85)) +>name : string +>id : number foo(person); >foo(person) : void ->foo : (obj: { name: string; }) => void, Symbol(foo, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 56)) ->person : { name: string; id: number; }, Symbol(person, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 3, 3)) +>foo : (obj: { name: string; }) => void +>person : { name: string; id: number; } var person1 = bar("Hello", 5); ->person1 : { name: string; id: number; }, Symbol(person1, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 10, 3)) +>person1 : { name: string; id: number; } >bar("Hello", 5) : { name: string; id: number; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) +>bar : (name: string, id: number) => { name: string; id: number; } >"Hello" : string >5 : number var person2: { name: string } = bar("Hello", 5); ->person2 : { name: string; }, Symbol(person2, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 11, 3)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 11, 14)) +>person2 : { name: string; } +>name : string >bar("Hello", 5) : { name: string; id: number; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) +>bar : (name: string, id: number) => { name: string; id: number; } >"Hello" : string >5 : number var person3: { name: string; id: number } = bar("Hello", 5); ->person3 : { name: string; id: number; }, Symbol(person3, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 12, 3)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 12, 14)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 12, 28)) +>person3 : { name: string; id: number; } +>name : string +>id : number >bar("Hello", 5) : { name: string; id: number; } ->bar : (name: string, id: number) => { name: string; id: number; }, Symbol(bar, Decl(objectLiteralShorthandPropertiesAssignmentES6.ts, 4, 46)) +>bar : (name: string, id: number) => { name: string; id: number; } >"Hello" : string >5 : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesES6.symbols b/tests/baselines/reference/objectLiteralShorthandPropertiesES6.symbols new file mode 100644 index 0000000000000..2f9b50168c118 --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesES6.symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesES6.ts === +var a, b, c; +>a : Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 0, 3)) +>b : Symbol(b, Decl(objectLiteralShorthandPropertiesES6.ts, 0, 6)) +>c : Symbol(c, Decl(objectLiteralShorthandPropertiesES6.ts, 0, 9)) + +var x1 = { +>x1 : Symbol(x1, Decl(objectLiteralShorthandPropertiesES6.ts, 2, 3)) + + a +>a : Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 2, 10)) + +}; + +var x2 = { +>x2 : Symbol(x2, Decl(objectLiteralShorthandPropertiesES6.ts, 6, 3)) + + a, +>a : Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 6, 10)) +} + +var x3 = { +>x3 : Symbol(x3, Decl(objectLiteralShorthandPropertiesES6.ts, 10, 3)) + + a: 0, +>a : Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 10, 10)) + + b, +>b : Symbol(b, Decl(objectLiteralShorthandPropertiesES6.ts, 11, 9)) + + c, +>c : Symbol(c, Decl(objectLiteralShorthandPropertiesES6.ts, 12, 6)) + + d() { }, +>d : Symbol(d, Decl(objectLiteralShorthandPropertiesES6.ts, 13, 6)) + + x3, +>x3 : Symbol(x3, Decl(objectLiteralShorthandPropertiesES6.ts, 14, 12)) + + parent: x3 +>parent : Symbol(parent, Decl(objectLiteralShorthandPropertiesES6.ts, 15, 7)) +>x3 : Symbol(x3, Decl(objectLiteralShorthandPropertiesES6.ts, 10, 3)) + +}; + + diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesES6.types b/tests/baselines/reference/objectLiteralShorthandPropertiesES6.types index 7f98eaf130852..5c36262f6954f 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesES6.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesES6.types @@ -1,49 +1,49 @@ === tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesES6.ts === var a, b, c; ->a : any, Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 0, 3)) ->b : any, Symbol(b, Decl(objectLiteralShorthandPropertiesES6.ts, 0, 6)) ->c : any, Symbol(c, Decl(objectLiteralShorthandPropertiesES6.ts, 0, 9)) +>a : any +>b : any +>c : any var x1 = { ->x1 : { a: any; }, Symbol(x1, Decl(objectLiteralShorthandPropertiesES6.ts, 2, 3)) +>x1 : { a: any; } >{ a} : { a: any; } a ->a : any, Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 2, 10)) +>a : any }; var x2 = { ->x2 : { a: any; }, Symbol(x2, Decl(objectLiteralShorthandPropertiesES6.ts, 6, 3)) +>x2 : { a: any; } >{ a,} : { a: any; } a, ->a : any, Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 6, 10)) +>a : any } var x3 = { ->x3 : any, Symbol(x3, Decl(objectLiteralShorthandPropertiesES6.ts, 10, 3)) +>x3 : any >{ a: 0, b, c, d() { }, x3, parent: x3} : { a: number; b: any; c: any; d(): void; x3: any; parent: any; } a: 0, ->a : number, Symbol(a, Decl(objectLiteralShorthandPropertiesES6.ts, 10, 10)) +>a : number >0 : number b, ->b : any, Symbol(b, Decl(objectLiteralShorthandPropertiesES6.ts, 11, 9)) +>b : any c, ->c : any, Symbol(c, Decl(objectLiteralShorthandPropertiesES6.ts, 12, 6)) +>c : any d() { }, ->d : () => void, Symbol(d, Decl(objectLiteralShorthandPropertiesES6.ts, 13, 6)) +>d : () => void x3, ->x3 : any, Symbol(x3, Decl(objectLiteralShorthandPropertiesES6.ts, 14, 12)) +>x3 : any parent: x3 ->parent : any, Symbol(parent, Decl(objectLiteralShorthandPropertiesES6.ts, 15, 7)) ->x3 : any, Symbol(x3, Decl(objectLiteralShorthandPropertiesES6.ts, 10, 3)) +>parent : any +>x3 : any }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.symbols b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.symbols new file mode 100644 index 0000000000000..ba8b0eeb6a92a --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesFunctionArgument.ts === +var id: number = 10000; +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 0, 3)) + +var name: string = "my name"; +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 1, 3)) + +var person = { name, id }; +>person : Symbol(person, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 14)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 20)) + +function foo(p: { name: string; id: number }) { } +>foo : Symbol(foo, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 26)) +>p : Symbol(p, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 5, 13)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 5, 17)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 5, 31)) + +foo(person); +>foo : Symbol(foo, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 26)) +>person : Symbol(person, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 3)) + + +var obj = { name: name, id: id }; +>obj : Symbol(obj, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 9, 3)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 9, 11)) +>name : Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 1, 3)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 9, 23)) +>id : Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 0, 3)) + diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types index 459addc5aede6..083d411812857 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.types @@ -1,35 +1,35 @@ === tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesFunctionArgument.ts === var id: number = 10000; ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 0, 3)) +>id : number >10000 : number var name: string = "my name"; ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 1, 3)) +>name : string >"my name" : string var person = { name, id }; ->person : { name: string; id: number; }, Symbol(person, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 3)) +>person : { name: string; id: number; } >{ name, id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 14)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 20)) +>name : string +>id : number function foo(p: { name: string; id: number }) { } ->foo : (p: { name: string; id: number; }) => void, Symbol(foo, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 26)) ->p : { name: string; id: number; }, Symbol(p, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 5, 13)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 5, 17)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 5, 31)) +>foo : (p: { name: string; id: number; }) => void +>p : { name: string; id: number; } +>name : string +>id : number foo(person); >foo(person) : void ->foo : (p: { name: string; id: number; }) => void, Symbol(foo, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 26)) ->person : { name: string; id: number; }, Symbol(person, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 3, 3)) +>foo : (p: { name: string; id: number; }) => void +>person : { name: string; id: number; } var obj = { name: name, id: id }; ->obj : { name: string; id: number; }, Symbol(obj, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 9, 3)) +>obj : { name: string; id: number; } >{ name: name, id: id } : { name: string; id: number; } ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 9, 11)) ->name : string, Symbol(name, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 1, 3)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 9, 23)) ->id : number, Symbol(id, Decl(objectLiteralShorthandPropertiesFunctionArgument.ts, 0, 3)) +>name : string +>name : string +>id : number +>id : number diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.symbols b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.symbols new file mode 100644 index 0000000000000..681036e2aef82 --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesWithModule.ts === +// module export + +module m { +>m : Symbol(m, Decl(objectLiteralShorthandPropertiesWithModule.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModule.ts, 4, 1)) + + export var x; +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 3, 14)) +} + +module m { +>m : Symbol(m, Decl(objectLiteralShorthandPropertiesWithModule.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModule.ts, 4, 1)) + + var z = x; +>z : Symbol(z, Decl(objectLiteralShorthandPropertiesWithModule.ts, 7, 7)) +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 3, 14)) + + var y = { +>y : Symbol(y, Decl(objectLiteralShorthandPropertiesWithModule.ts, 8, 7)) + + a: x, +>a : Symbol(a, Decl(objectLiteralShorthandPropertiesWithModule.ts, 8, 13)) +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 3, 14)) + + x +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 9, 13)) + + }; +} + diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.types b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.types index 9c18248705534..77e139a3426f3 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModule.types @@ -2,29 +2,29 @@ // module export module m { ->m : typeof m, Symbol(m, Decl(objectLiteralShorthandPropertiesWithModule.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModule.ts, 4, 1)) +>m : typeof m export var x; ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 3, 14)) +>x : any } module m { ->m : typeof m, Symbol(m, Decl(objectLiteralShorthandPropertiesWithModule.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModule.ts, 4, 1)) +>m : typeof m var z = x; ->z : any, Symbol(z, Decl(objectLiteralShorthandPropertiesWithModule.ts, 7, 7)) ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 3, 14)) +>z : any +>x : any var y = { ->y : { a: any; x: any; }, Symbol(y, Decl(objectLiteralShorthandPropertiesWithModule.ts, 8, 7)) +>y : { a: any; x: any; } >{ a: x, x } : { a: any; x: any; } a: x, ->a : any, Symbol(a, Decl(objectLiteralShorthandPropertiesWithModule.ts, 8, 13)) ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 3, 14)) +>a : any +>x : any x ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModule.ts, 9, 13)) +>x : any }; } diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.symbols b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.symbols new file mode 100644 index 0000000000000..bcb69cc9a976c --- /dev/null +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesWithModuleES6.ts === + +module m { +>m : Symbol(m, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 3, 1)) + + export var x; +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 2, 14)) +} + +module m { +>m : Symbol(m, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 3, 1)) + + var z = x; +>z : Symbol(z, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 6, 7)) +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 2, 14)) + + var y = { +>y : Symbol(y, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 7, 7)) + + a: x, +>a : Symbol(a, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 7, 13)) +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 2, 14)) + + x +>x : Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 8, 13)) + + }; +} + diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.types b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.types index 00d6f5f1f3e81..1030010d6c640 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.types +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesWithModuleES6.types @@ -1,29 +1,29 @@ === tests/cases/conformance/es6/shorthandPropertyAssignment/objectLiteralShorthandPropertiesWithModuleES6.ts === module m { ->m : typeof m, Symbol(m, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 3, 1)) +>m : typeof m export var x; ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 2, 14)) +>x : any } module m { ->m : typeof m, Symbol(m, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 0, 0), Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 3, 1)) +>m : typeof m var z = x; ->z : any, Symbol(z, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 6, 7)) ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 2, 14)) +>z : any +>x : any var y = { ->y : { a: any; x: any; }, Symbol(y, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 7, 7)) +>y : { a: any; x: any; } >{ a: x, x } : { a: any; x: any; } a: x, ->a : any, Symbol(a, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 7, 13)) ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 2, 14)) +>a : any +>x : any x ->x : any, Symbol(x, Decl(objectLiteralShorthandPropertiesWithModuleES6.ts, 8, 13)) +>x : any }; } diff --git a/tests/baselines/reference/objectLiteralWidened.symbols b/tests/baselines/reference/objectLiteralWidened.symbols new file mode 100644 index 0000000000000..0bf077cd9d8a1 --- /dev/null +++ b/tests/baselines/reference/objectLiteralWidened.symbols @@ -0,0 +1,31 @@ +=== tests/cases/conformance/types/typeRelationships/widenedTypes/objectLiteralWidened.ts === +// object literal properties are widened to any + +var x = { +>x : Symbol(x, Decl(objectLiteralWidened.ts, 2, 3)) + + foo: null, +>foo : Symbol(foo, Decl(objectLiteralWidened.ts, 2, 9)) + + bar: undefined +>bar : Symbol(bar, Decl(objectLiteralWidened.ts, 3, 14)) +>undefined : Symbol(undefined) +} + +var y = { +>y : Symbol(y, Decl(objectLiteralWidened.ts, 7, 3)) + + foo: null, +>foo : Symbol(foo, Decl(objectLiteralWidened.ts, 7, 9)) + + bar: { +>bar : Symbol(bar, Decl(objectLiteralWidened.ts, 8, 14)) + + baz: null, +>baz : Symbol(baz, Decl(objectLiteralWidened.ts, 9, 10)) + + boo: undefined +>boo : Symbol(boo, Decl(objectLiteralWidened.ts, 10, 18)) +>undefined : Symbol(undefined) + } +} diff --git a/tests/baselines/reference/objectLiteralWidened.types b/tests/baselines/reference/objectLiteralWidened.types index 6ef0a2b460cd3..9f47e47795d56 100644 --- a/tests/baselines/reference/objectLiteralWidened.types +++ b/tests/baselines/reference/objectLiteralWidened.types @@ -2,36 +2,36 @@ // object literal properties are widened to any var x = { ->x : { foo: any; bar: any; }, Symbol(x, Decl(objectLiteralWidened.ts, 2, 3)) +>x : { foo: any; bar: any; } >{ foo: null, bar: undefined} : { foo: null; bar: undefined; } foo: null, ->foo : null, Symbol(foo, Decl(objectLiteralWidened.ts, 2, 9)) +>foo : null >null : null bar: undefined ->bar : undefined, Symbol(bar, Decl(objectLiteralWidened.ts, 3, 14)) ->undefined : undefined, Symbol(undefined) +>bar : undefined +>undefined : undefined } var y = { ->y : { foo: any; bar: { baz: any; boo: any; }; }, Symbol(y, Decl(objectLiteralWidened.ts, 7, 3)) +>y : { foo: any; bar: { baz: any; boo: any; }; } >{ foo: null, bar: { baz: null, boo: undefined }} : { foo: null; bar: { baz: null; boo: undefined; }; } foo: null, ->foo : null, Symbol(foo, Decl(objectLiteralWidened.ts, 7, 9)) +>foo : null >null : null bar: { ->bar : { baz: null; boo: undefined; }, Symbol(bar, Decl(objectLiteralWidened.ts, 8, 14)) +>bar : { baz: null; boo: undefined; } >{ baz: null, boo: undefined } : { baz: null; boo: undefined; } baz: null, ->baz : null, Symbol(baz, Decl(objectLiteralWidened.ts, 9, 10)) +>baz : null >null : null boo: undefined ->boo : undefined, Symbol(boo, Decl(objectLiteralWidened.ts, 10, 18)) ->undefined : undefined, Symbol(undefined) +>boo : undefined +>undefined : undefined } } diff --git a/tests/baselines/reference/objectMembersOnTypes.symbols b/tests/baselines/reference/objectMembersOnTypes.symbols new file mode 100644 index 0000000000000..12cc909dcd9bc --- /dev/null +++ b/tests/baselines/reference/objectMembersOnTypes.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/objectMembersOnTypes.ts === +interface I {} +>I : Symbol(I, Decl(objectMembersOnTypes.ts, 0, 0)) + +class AAA implements I { } +>AAA : Symbol(AAA, Decl(objectMembersOnTypes.ts, 0, 14)) +>I : Symbol(I, Decl(objectMembersOnTypes.ts, 0, 0)) + +var x: number; +>x : Symbol(x, Decl(objectMembersOnTypes.ts, 2, 3)) + +x.toString(); +>x.toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x : Symbol(x, Decl(objectMembersOnTypes.ts, 2, 3)) +>toString : Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) + +var i: I; +>i : Symbol(i, Decl(objectMembersOnTypes.ts, 4, 3)) +>I : Symbol(I, Decl(objectMembersOnTypes.ts, 0, 0)) + +i.toString(); // used to be an error +>i.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>i : Symbol(i, Decl(objectMembersOnTypes.ts, 4, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var c: AAA; +>c : Symbol(c, Decl(objectMembersOnTypes.ts, 6, 3)) +>AAA : Symbol(AAA, Decl(objectMembersOnTypes.ts, 0, 14)) + +c.toString(); // used to be an error +>c.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c : Symbol(c, Decl(objectMembersOnTypes.ts, 6, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + diff --git a/tests/baselines/reference/objectMembersOnTypes.types b/tests/baselines/reference/objectMembersOnTypes.types index 20cd37396b807..f634f0bce06dd 100644 --- a/tests/baselines/reference/objectMembersOnTypes.types +++ b/tests/baselines/reference/objectMembersOnTypes.types @@ -1,37 +1,37 @@ === tests/cases/compiler/objectMembersOnTypes.ts === interface I {} ->I : I, Symbol(I, Decl(objectMembersOnTypes.ts, 0, 0)) +>I : I class AAA implements I { } ->AAA : AAA, Symbol(AAA, Decl(objectMembersOnTypes.ts, 0, 14)) ->I : I, Symbol(I, Decl(objectMembersOnTypes.ts, 0, 0)) +>AAA : AAA +>I : I var x: number; ->x : number, Symbol(x, Decl(objectMembersOnTypes.ts, 2, 3)) +>x : number x.toString(); >x.toString() : string ->x.toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) ->x : number, Symbol(x, Decl(objectMembersOnTypes.ts, 2, 3)) ->toString : (radix?: number) => string, Symbol(Number.toString, Decl(lib.d.ts, 458, 18)) +>x.toString : (radix?: number) => string +>x : number +>toString : (radix?: number) => string var i: I; ->i : I, Symbol(i, Decl(objectMembersOnTypes.ts, 4, 3)) ->I : I, Symbol(I, Decl(objectMembersOnTypes.ts, 0, 0)) +>i : I +>I : I i.toString(); // used to be an error >i.toString() : string ->i.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->i : I, Symbol(i, Decl(objectMembersOnTypes.ts, 4, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>i.toString : () => string +>i : I +>toString : () => string var c: AAA; ->c : AAA, Symbol(c, Decl(objectMembersOnTypes.ts, 6, 3)) ->AAA : AAA, Symbol(AAA, Decl(objectMembersOnTypes.ts, 0, 14)) +>c : AAA +>AAA : AAA c.toString(); // used to be an error >c.toString() : string ->c.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->c : AAA, Symbol(c, Decl(objectMembersOnTypes.ts, 6, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c.toString : () => string +>c : AAA +>toString : () => string diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObject.symbols b/tests/baselines/reference/objectTypeHidingMembersOfObject.symbols new file mode 100644 index 0000000000000..5c88d538fdbea --- /dev/null +++ b/tests/baselines/reference/objectTypeHidingMembersOfObject.symbols @@ -0,0 +1,63 @@ +=== tests/cases/conformance/types/members/objectTypeHidingMembersOfObject.ts === +// all of these valueOf calls should return the type shown in the overriding signatures here + +class C { +>C : Symbol(C, Decl(objectTypeHidingMembersOfObject.ts, 0, 0)) + + valueOf() { } +>valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 2, 9)) +} + +var c: C; +>c : Symbol(c, Decl(objectTypeHidingMembersOfObject.ts, 6, 3)) +>C : Symbol(C, Decl(objectTypeHidingMembersOfObject.ts, 0, 0)) + +var r1: void = c.valueOf(); +>r1 : Symbol(r1, Decl(objectTypeHidingMembersOfObject.ts, 7, 3)) +>c.valueOf : Symbol(C.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 2, 9)) +>c : Symbol(c, Decl(objectTypeHidingMembersOfObject.ts, 6, 3)) +>valueOf : Symbol(C.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 2, 9)) + +interface I { +>I : Symbol(I, Decl(objectTypeHidingMembersOfObject.ts, 7, 27)) + + valueOf(): void; +>valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 9, 13)) +} + +var i: I; +>i : Symbol(i, Decl(objectTypeHidingMembersOfObject.ts, 13, 3)) +>I : Symbol(I, Decl(objectTypeHidingMembersOfObject.ts, 7, 27)) + +var r2: void = i.valueOf(); +>r2 : Symbol(r2, Decl(objectTypeHidingMembersOfObject.ts, 14, 3)) +>i.valueOf : Symbol(I.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 9, 13)) +>i : Symbol(i, Decl(objectTypeHidingMembersOfObject.ts, 13, 3)) +>valueOf : Symbol(I.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 9, 13)) + +var a = { +>a : Symbol(a, Decl(objectTypeHidingMembersOfObject.ts, 16, 3)) + + valueOf: () => { } +>valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 16, 9)) +} + +var r3: void = a.valueOf(); +>r3 : Symbol(r3, Decl(objectTypeHidingMembersOfObject.ts, 20, 3)) +>a.valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 16, 9)) +>a : Symbol(a, Decl(objectTypeHidingMembersOfObject.ts, 16, 3)) +>valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 16, 9)) + +var b: { +>b : Symbol(b, Decl(objectTypeHidingMembersOfObject.ts, 22, 3)) + + valueOf(): void; +>valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 22, 8)) +} + +var r4: void = b.valueOf(); +>r4 : Symbol(r4, Decl(objectTypeHidingMembersOfObject.ts, 26, 3)) +>b.valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 22, 8)) +>b : Symbol(b, Decl(objectTypeHidingMembersOfObject.ts, 22, 3)) +>valueOf : Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 22, 8)) + diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObject.types b/tests/baselines/reference/objectTypeHidingMembersOfObject.types index 171efe3bbf205..5bbd3a555ee5d 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObject.types +++ b/tests/baselines/reference/objectTypeHidingMembersOfObject.types @@ -2,68 +2,68 @@ // all of these valueOf calls should return the type shown in the overriding signatures here class C { ->C : C, Symbol(C, Decl(objectTypeHidingMembersOfObject.ts, 0, 0)) +>C : C valueOf() { } ->valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 2, 9)) +>valueOf : () => void } var c: C; ->c : C, Symbol(c, Decl(objectTypeHidingMembersOfObject.ts, 6, 3)) ->C : C, Symbol(C, Decl(objectTypeHidingMembersOfObject.ts, 0, 0)) +>c : C +>C : C var r1: void = c.valueOf(); ->r1 : void, Symbol(r1, Decl(objectTypeHidingMembersOfObject.ts, 7, 3)) +>r1 : void >c.valueOf() : void ->c.valueOf : () => void, Symbol(C.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 2, 9)) ->c : C, Symbol(c, Decl(objectTypeHidingMembersOfObject.ts, 6, 3)) ->valueOf : () => void, Symbol(C.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 2, 9)) +>c.valueOf : () => void +>c : C +>valueOf : () => void interface I { ->I : I, Symbol(I, Decl(objectTypeHidingMembersOfObject.ts, 7, 27)) +>I : I valueOf(): void; ->valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 9, 13)) +>valueOf : () => void } var i: I; ->i : I, Symbol(i, Decl(objectTypeHidingMembersOfObject.ts, 13, 3)) ->I : I, Symbol(I, Decl(objectTypeHidingMembersOfObject.ts, 7, 27)) +>i : I +>I : I var r2: void = i.valueOf(); ->r2 : void, Symbol(r2, Decl(objectTypeHidingMembersOfObject.ts, 14, 3)) +>r2 : void >i.valueOf() : void ->i.valueOf : () => void, Symbol(I.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 9, 13)) ->i : I, Symbol(i, Decl(objectTypeHidingMembersOfObject.ts, 13, 3)) ->valueOf : () => void, Symbol(I.valueOf, Decl(objectTypeHidingMembersOfObject.ts, 9, 13)) +>i.valueOf : () => void +>i : I +>valueOf : () => void var a = { ->a : { valueOf: () => void; }, Symbol(a, Decl(objectTypeHidingMembersOfObject.ts, 16, 3)) +>a : { valueOf: () => void; } >{ valueOf: () => { }} : { valueOf: () => void; } valueOf: () => { } ->valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 16, 9)) +>valueOf : () => void >() => { } : () => void } var r3: void = a.valueOf(); ->r3 : void, Symbol(r3, Decl(objectTypeHidingMembersOfObject.ts, 20, 3)) +>r3 : void >a.valueOf() : void ->a.valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 16, 9)) ->a : { valueOf: () => void; }, Symbol(a, Decl(objectTypeHidingMembersOfObject.ts, 16, 3)) ->valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 16, 9)) +>a.valueOf : () => void +>a : { valueOf: () => void; } +>valueOf : () => void var b: { ->b : { valueOf(): void; }, Symbol(b, Decl(objectTypeHidingMembersOfObject.ts, 22, 3)) +>b : { valueOf(): void; } valueOf(): void; ->valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 22, 8)) +>valueOf : () => void } var r4: void = b.valueOf(); ->r4 : void, Symbol(r4, Decl(objectTypeHidingMembersOfObject.ts, 26, 3)) +>r4 : void >b.valueOf() : void ->b.valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 22, 8)) ->b : { valueOf(): void; }, Symbol(b, Decl(objectTypeHidingMembersOfObject.ts, 22, 3)) ->valueOf : () => void, Symbol(valueOf, Decl(objectTypeHidingMembersOfObject.ts, 22, 8)) +>b.valueOf : () => void +>b : { valueOf(): void; } +>valueOf : () => void diff --git a/tests/baselines/reference/objectTypeLiteralSyntax.symbols b/tests/baselines/reference/objectTypeLiteralSyntax.symbols new file mode 100644 index 0000000000000..da49cb22fd002 --- /dev/null +++ b/tests/baselines/reference/objectTypeLiteralSyntax.symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/types/objectTypeLiteral/objectTypeLiteralSyntax.ts === +var x: { +>x : Symbol(x, Decl(objectTypeLiteralSyntax.ts, 0, 3)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypeLiteralSyntax.ts, 0, 8)) + + bar: string; +>bar : Symbol(bar, Decl(objectTypeLiteralSyntax.ts, 1, 16)) +} + +var y: { +>y : Symbol(y, Decl(objectTypeLiteralSyntax.ts, 5, 3)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypeLiteralSyntax.ts, 5, 8)) + + bar: string +>bar : Symbol(bar, Decl(objectTypeLiteralSyntax.ts, 6, 16)) +} diff --git a/tests/baselines/reference/objectTypeLiteralSyntax.types b/tests/baselines/reference/objectTypeLiteralSyntax.types index 6f70e2f1e7b7e..43f01ea19a93e 100644 --- a/tests/baselines/reference/objectTypeLiteralSyntax.types +++ b/tests/baselines/reference/objectTypeLiteralSyntax.types @@ -1,20 +1,20 @@ === tests/cases/conformance/types/objectTypeLiteral/objectTypeLiteralSyntax.ts === var x: { ->x : { foo: string; bar: string; }, Symbol(x, Decl(objectTypeLiteralSyntax.ts, 0, 3)) +>x : { foo: string; bar: string; } foo: string; ->foo : string, Symbol(foo, Decl(objectTypeLiteralSyntax.ts, 0, 8)) +>foo : string bar: string; ->bar : string, Symbol(bar, Decl(objectTypeLiteralSyntax.ts, 1, 16)) +>bar : string } var y: { ->y : { foo: string; bar: string; }, Symbol(y, Decl(objectTypeLiteralSyntax.ts, 5, 3)) +>y : { foo: string; bar: string; } foo: string; ->foo : string, Symbol(foo, Decl(objectTypeLiteralSyntax.ts, 5, 8)) +>foo : string bar: string ->bar : string, Symbol(bar, Decl(objectTypeLiteralSyntax.ts, 6, 16)) +>bar : string } diff --git a/tests/baselines/reference/objectTypePropertyAccess.symbols b/tests/baselines/reference/objectTypePropertyAccess.symbols new file mode 100644 index 0000000000000..519bf58926096 --- /dev/null +++ b/tests/baselines/reference/objectTypePropertyAccess.symbols @@ -0,0 +1,96 @@ +=== tests/cases/conformance/types/members/objectTypePropertyAccess.ts === +// Index notation should resolve to the type of a declared property with that same name +class C { +>C : Symbol(C, Decl(objectTypePropertyAccess.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypePropertyAccess.ts, 1, 9)) +} + +var c: C; +>c : Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) +>C : Symbol(C, Decl(objectTypePropertyAccess.ts, 0, 0)) + +var r1 = c.toString(); +>r1 : Symbol(r1, Decl(objectTypePropertyAccess.ts, 6, 3)) +>c.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c : Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r2 = c['toString'](); +>r2 : Symbol(r2, Decl(objectTypePropertyAccess.ts, 7, 3)) +>c : Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) +>'toString' : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r3 = c.foo; +>r3 : Symbol(r3, Decl(objectTypePropertyAccess.ts, 8, 3)) +>c.foo : Symbol(C.foo, Decl(objectTypePropertyAccess.ts, 1, 9)) +>c : Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) +>foo : Symbol(C.foo, Decl(objectTypePropertyAccess.ts, 1, 9)) + +var r4 = c['foo']; +>r4 : Symbol(r4, Decl(objectTypePropertyAccess.ts, 9, 3), Decl(objectTypePropertyAccess.ts, 15, 3)) +>c : Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) +>'foo' : Symbol(C.foo, Decl(objectTypePropertyAccess.ts, 1, 9)) + +interface I { +>I : Symbol(I, Decl(objectTypePropertyAccess.ts, 9, 18)) + + bar: string; +>bar : Symbol(bar, Decl(objectTypePropertyAccess.ts, 11, 13)) +} +var i: I; +>i : Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) +>I : Symbol(I, Decl(objectTypePropertyAccess.ts, 9, 18)) + +var r4 = i.toString(); +>r4 : Symbol(r4, Decl(objectTypePropertyAccess.ts, 9, 3), Decl(objectTypePropertyAccess.ts, 15, 3)) +>i.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>i : Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r5 = i['toString'](); +>r5 : Symbol(r5, Decl(objectTypePropertyAccess.ts, 16, 3)) +>i : Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) +>'toString' : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r6 = i.bar; +>r6 : Symbol(r6, Decl(objectTypePropertyAccess.ts, 17, 3)) +>i.bar : Symbol(I.bar, Decl(objectTypePropertyAccess.ts, 11, 13)) +>i : Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) +>bar : Symbol(I.bar, Decl(objectTypePropertyAccess.ts, 11, 13)) + +var r7 = i['bar']; +>r7 : Symbol(r7, Decl(objectTypePropertyAccess.ts, 18, 3)) +>i : Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) +>'bar' : Symbol(I.bar, Decl(objectTypePropertyAccess.ts, 11, 13)) + +var a = { +>a : Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) + + foo: '' +>foo : Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) +} + +var r8 = a.toString(); +>r8 : Symbol(r8, Decl(objectTypePropertyAccess.ts, 24, 3)) +>a.toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>a : Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) +>toString : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r9 = a['toString'](); +>r9 : Symbol(r9, Decl(objectTypePropertyAccess.ts, 25, 3)) +>a : Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) +>'toString' : Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) + +var r10 = a.foo; +>r10 : Symbol(r10, Decl(objectTypePropertyAccess.ts, 26, 3)) +>a.foo : Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) +>a : Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) +>foo : Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) + +var r11 = a['foo']; +>r11 : Symbol(r11, Decl(objectTypePropertyAccess.ts, 27, 3)) +>a : Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) +>'foo' : Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) + diff --git a/tests/baselines/reference/objectTypePropertyAccess.types b/tests/baselines/reference/objectTypePropertyAccess.types index d9d971a66d6f6..5fc03bd86ed5e 100644 --- a/tests/baselines/reference/objectTypePropertyAccess.types +++ b/tests/baselines/reference/objectTypePropertyAccess.types @@ -1,110 +1,110 @@ === tests/cases/conformance/types/members/objectTypePropertyAccess.ts === // Index notation should resolve to the type of a declared property with that same name class C { ->C : C, Symbol(C, Decl(objectTypePropertyAccess.ts, 0, 0)) +>C : C foo: string; ->foo : string, Symbol(foo, Decl(objectTypePropertyAccess.ts, 1, 9)) +>foo : string } var c: C; ->c : C, Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) ->C : C, Symbol(C, Decl(objectTypePropertyAccess.ts, 0, 0)) +>c : C +>C : C var r1 = c.toString(); ->r1 : string, Symbol(r1, Decl(objectTypePropertyAccess.ts, 6, 3)) +>r1 : string >c.toString() : string ->c.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->c : C, Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c.toString : () => string +>c : C +>toString : () => string var r2 = c['toString'](); ->r2 : string, Symbol(r2, Decl(objectTypePropertyAccess.ts, 7, 3)) +>r2 : string >c['toString']() : string >c['toString'] : () => string ->c : C, Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) ->'toString' : string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>c : C +>'toString' : string var r3 = c.foo; ->r3 : string, Symbol(r3, Decl(objectTypePropertyAccess.ts, 8, 3)) ->c.foo : string, Symbol(C.foo, Decl(objectTypePropertyAccess.ts, 1, 9)) ->c : C, Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) ->foo : string, Symbol(C.foo, Decl(objectTypePropertyAccess.ts, 1, 9)) +>r3 : string +>c.foo : string +>c : C +>foo : string var r4 = c['foo']; ->r4 : string, Symbol(r4, Decl(objectTypePropertyAccess.ts, 9, 3), Decl(objectTypePropertyAccess.ts, 15, 3)) +>r4 : string >c['foo'] : string ->c : C, Symbol(c, Decl(objectTypePropertyAccess.ts, 5, 3)) ->'foo' : string, Symbol(C.foo, Decl(objectTypePropertyAccess.ts, 1, 9)) +>c : C +>'foo' : string interface I { ->I : I, Symbol(I, Decl(objectTypePropertyAccess.ts, 9, 18)) +>I : I bar: string; ->bar : string, Symbol(bar, Decl(objectTypePropertyAccess.ts, 11, 13)) +>bar : string } var i: I; ->i : I, Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) ->I : I, Symbol(I, Decl(objectTypePropertyAccess.ts, 9, 18)) +>i : I +>I : I var r4 = i.toString(); ->r4 : string, Symbol(r4, Decl(objectTypePropertyAccess.ts, 9, 3), Decl(objectTypePropertyAccess.ts, 15, 3)) +>r4 : string >i.toString() : string ->i.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->i : I, Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>i.toString : () => string +>i : I +>toString : () => string var r5 = i['toString'](); ->r5 : string, Symbol(r5, Decl(objectTypePropertyAccess.ts, 16, 3)) +>r5 : string >i['toString']() : string >i['toString'] : () => string ->i : I, Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) ->'toString' : string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>i : I +>'toString' : string var r6 = i.bar; ->r6 : string, Symbol(r6, Decl(objectTypePropertyAccess.ts, 17, 3)) ->i.bar : string, Symbol(I.bar, Decl(objectTypePropertyAccess.ts, 11, 13)) ->i : I, Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) ->bar : string, Symbol(I.bar, Decl(objectTypePropertyAccess.ts, 11, 13)) +>r6 : string +>i.bar : string +>i : I +>bar : string var r7 = i['bar']; ->r7 : string, Symbol(r7, Decl(objectTypePropertyAccess.ts, 18, 3)) +>r7 : string >i['bar'] : string ->i : I, Symbol(i, Decl(objectTypePropertyAccess.ts, 14, 3)) ->'bar' : string, Symbol(I.bar, Decl(objectTypePropertyAccess.ts, 11, 13)) +>i : I +>'bar' : string var a = { ->a : { foo: string; }, Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) +>a : { foo: string; } >{ foo: ''} : { foo: string; } foo: '' ->foo : string, Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) +>foo : string >'' : string } var r8 = a.toString(); ->r8 : string, Symbol(r8, Decl(objectTypePropertyAccess.ts, 24, 3)) +>r8 : string >a.toString() : string ->a.toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) ->a : { foo: string; }, Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) ->toString : () => string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>a.toString : () => string +>a : { foo: string; } +>toString : () => string var r9 = a['toString'](); ->r9 : string, Symbol(r9, Decl(objectTypePropertyAccess.ts, 25, 3)) +>r9 : string >a['toString']() : string >a['toString'] : () => string ->a : { foo: string; }, Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) ->'toString' : string, Symbol(Object.toString, Decl(lib.d.ts, 96, 26)) +>a : { foo: string; } +>'toString' : string var r10 = a.foo; ->r10 : string, Symbol(r10, Decl(objectTypePropertyAccess.ts, 26, 3)) ->a.foo : string, Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) ->a : { foo: string; }, Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) ->foo : string, Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) +>r10 : string +>a.foo : string +>a : { foo: string; } +>foo : string var r11 = a['foo']; ->r11 : string, Symbol(r11, Decl(objectTypePropertyAccess.ts, 27, 3)) +>r11 : string >a['foo'] : string ->a : { foo: string; }, Symbol(a, Decl(objectTypePropertyAccess.ts, 20, 3)) ->'foo' : string, Symbol(foo, Decl(objectTypePropertyAccess.ts, 20, 9)) +>a : { foo: string; } +>'foo' : string diff --git a/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.symbols b/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.symbols new file mode 100644 index 0000000000000..36127117f433f --- /dev/null +++ b/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.symbols @@ -0,0 +1,44 @@ +=== tests/cases/conformance/types/members/objectTypeWithCallSignatureAppearsToBeFunctionType.ts === +// objects with call signatures should be permitted where function types are expected +// no errors expected below + +interface I { +>I : Symbol(I, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 0, 0)) + + (): void; +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 7, 3)) +>I : Symbol(I, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 0, 0)) + +var r2: void = i(); +>r2 : Symbol(r2, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 8, 3)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 7, 3)) + +var r2b: (x: any, y?: any) => any = i.apply; +>r2b : Symbol(r2b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 9, 3)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 9, 10)) +>y : Symbol(y, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 9, 17)) +>i.apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 7, 3)) +>apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) + +var b: { +>b : Symbol(b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 11, 3)) + + (): void; +} + +var r4: void = b(); +>r4 : Symbol(r4, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 15, 3)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 11, 3)) + +var rb4: (x: any, y?: any) => any = b.apply; +>rb4 : Symbol(rb4, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 16, 3)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 16, 10)) +>y : Symbol(y, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 16, 17)) +>b.apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 11, 3)) +>apply : Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) + diff --git a/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types b/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types index fc60fd724c422..74d8ef57d67bc 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types +++ b/tests/baselines/reference/objectTypeWithCallSignatureAppearsToBeFunctionType.types @@ -3,44 +3,44 @@ // no errors expected below interface I { ->I : I, Symbol(I, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 0, 0)) +>I : I (): void; } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 7, 3)) ->I : I, Symbol(I, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 0, 0)) +>i : I +>I : I var r2: void = i(); ->r2 : void, Symbol(r2, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 8, 3)) +>r2 : void >i() : void ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 7, 3)) +>i : I var r2b: (x: any, y?: any) => any = i.apply; ->r2b : (x: any, y?: any) => any, Symbol(r2b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 9, 3)) ->x : any, Symbol(x, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 9, 10)) ->y : any, Symbol(y, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 9, 17)) ->i.apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 7, 3)) ->apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>r2b : (x: any, y?: any) => any +>x : any +>y : any +>i.apply : (thisArg: any, argArray?: any) => any +>i : I +>apply : (thisArg: any, argArray?: any) => any var b: { ->b : () => void, Symbol(b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 11, 3)) +>b : () => void (): void; } var r4: void = b(); ->r4 : void, Symbol(r4, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 15, 3)) +>r4 : void >b() : void ->b : () => void, Symbol(b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 11, 3)) +>b : () => void var rb4: (x: any, y?: any) => any = b.apply; ->rb4 : (x: any, y?: any) => any, Symbol(rb4, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 16, 3)) ->x : any, Symbol(x, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 16, 10)) ->y : any, Symbol(y, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 16, 17)) ->b.apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) ->b : () => void, Symbol(b, Decl(objectTypeWithCallSignatureAppearsToBeFunctionType.ts, 11, 3)) ->apply : (thisArg: any, argArray?: any) => any, Symbol(Function.apply, Decl(lib.d.ts, 228, 20)) +>rb4 : (x: any, y?: any) => any +>x : any +>y : any +>b.apply : (thisArg: any, argArray?: any) => any +>b : () => void +>apply : (thisArg: any, argArray?: any) => any diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.symbols b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.symbols new file mode 100644 index 0000000000000..de1f2abc5aa02 --- /dev/null +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.symbols @@ -0,0 +1,113 @@ +=== tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts === +// object types with call signatures can override members of Function +// no errors expected below + +interface Function { +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 0, 0)) + + data: number; +>data : Symbol(data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) + + [x: string]: Object; +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 5, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +interface I { +>I : Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 6, 1)) + + (): void; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 9, 13)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 10)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 11, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 11, 25)) +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>I : Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 6, 1)) + +var r1: (a: any, b?: any) => void = i.apply; +>r1 : Symbol(r1, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 15, 3)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 15, 9)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 15, 16)) +>i.apply : Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 9, 13)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>apply : Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 9, 13)) + +var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; +>r1b : Symbol(r1b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 16, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 16, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 16, 26)) +>i.call : Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 33)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>call : Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 33)) + +var r1c = i.arguments; +>r1c : Symbol(r1c, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 17, 3)) +>i.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + +var r1d = i.data; +>r1d : Symbol(r1d, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>i.data : Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>data : Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) + +var r1e = i['hm']; // should be Object +>r1e : Symbol(r1e, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 19, 3)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) + +var x: { +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) + + (): void; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 22, 13)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 10)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 24, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 24, 25)) +} + +var r2: (a: any, b?: any) => void = x.apply; +>r2 : Symbol(r2, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 27, 3)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 27, 9)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 27, 16)) +>x.apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 22, 13)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) +>apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 22, 13)) + +var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; +>r2b : Symbol(r2b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 28, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 28, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 28, 26)) +>x.call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 33)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) +>call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 33)) + +var r2c = x.arguments; +>r2c : Symbol(r2c, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 29, 3)) +>x.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + +var r2d = x.data; +>r2d : Symbol(r2d, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 30, 3)) +>x.data : Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) +>data : Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) + +var r2e = x['hm']; // should be Object +>r2e : Symbol(r2e, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 31, 3)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) + diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types index fbe826c1ae203..93caca61bfa9b 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfExtendedFunction.types @@ -3,115 +3,115 @@ // no errors expected below interface Function { ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 0, 0)) +>Function : Function data: number; ->data : number, Symbol(data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) +>data : number [x: string]: Object; ->x : string, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 5, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object } interface I { ->I : I, Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 6, 1)) +>I : I (): void; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 9, 13)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 10)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 11, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 11, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) ->I : I, Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 6, 1)) +>i : I +>I : I var r1: (a: any, b?: any) => void = i.apply; ->r1 : (a: any, b?: any) => void, Symbol(r1, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 15, 3)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 15, 9)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 15, 16)) ->i.apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 9, 13)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) ->apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 9, 13)) +>r1 : (a: any, b?: any) => void +>a : any +>b : any +>i.apply : (a: any, b?: any) => void +>i : I +>apply : (a: any, b?: any) => void var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; ->r1b : (thisArg: number, ...argArray: number[]) => void, Symbol(r1b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 16, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 16, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 16, 26)) ->i.call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 33)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 10, 33)) +>r1b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>i.call : (thisArg: number, ...argArray: number[]) => any +>i : I +>call : (thisArg: number, ...argArray: number[]) => any var r1c = i.arguments; ->r1c : any, Symbol(r1c, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 17, 3)) ->i.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r1c : any +>i.arguments : any +>i : I +>arguments : any var r1d = i.data; ->r1d : number, Symbol(r1d, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) ->i.data : number, Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) ->data : number, Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) +>r1d : number +>i.data : number +>i : I +>data : number var r1e = i['hm']; // should be Object ->r1e : any, Symbol(r1e, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 19, 3)) +>r1e : any >i['hm'] : any ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>i : I >'hm' : string var x: { ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } (): void; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 22, 13)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 10)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 24, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 24, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var r2: (a: any, b?: any) => void = x.apply; ->r2 : (a: any, b?: any) => void, Symbol(r2, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 27, 3)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 27, 9)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 27, 16)) ->x.apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 22, 13)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 22, 13)) +>r2 : (a: any, b?: any) => void +>a : any +>b : any +>x.apply : (a: any, b?: any) => void +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>apply : (a: any, b?: any) => void var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; ->r2b : (thisArg: number, ...argArray: number[]) => void, Symbol(r2b, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 28, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 28, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 28, 26)) ->x.call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 33)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 23, 33)) +>r2b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>x.call : (thisArg: number, ...argArray: number[]) => any +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>call : (thisArg: number, ...argArray: number[]) => any var r2c = x.arguments; ->r2c : any, Symbol(r2c, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 29, 3)) ->x.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r2c : any +>x.arguments : any +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>arguments : any var r2d = x.data; ->r2d : number, Symbol(r2d, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 30, 3)) ->x.data : number, Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) ->data : number, Symbol(Function.data, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 3, 20)) +>r2d : number +>x.data : number +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>data : number var r2e = x['hm']; // should be Object ->r2e : any, Symbol(r2e, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 31, 3)) +>r2e : any >x['hm'] : any ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfExtendedFunction.ts, 21, 3)) +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } >'hm' : string diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.symbols b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.symbols new file mode 100644 index 0000000000000..0ddebe0e68c78 --- /dev/null +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.symbols @@ -0,0 +1,82 @@ +=== tests/cases/conformance/types/members/objectTypeWithCallSignatureHidingMembersOfFunction.ts === +// object types with call signatures can override members of Function +// no errors expected below + +interface I { +>I : Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 0, 0)) + + (): void; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 4, 13)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 10)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 6, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 6, 25)) +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) +>I : Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 0, 0)) + +var r1: (a: any, b?: any) => void = i.apply; +>r1 : Symbol(r1, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 10, 3)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 10, 9)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 10, 16)) +>i.apply : Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 4, 13)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) +>apply : Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 4, 13)) + +var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; +>r1b : Symbol(r1b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 11, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 11, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 11, 26)) +>i.call : Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 33)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) +>call : Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 33)) + +var r1c = i.arguments; +>r1c : Symbol(r1c, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 12, 3)) +>i.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>i : Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + +var x: { +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) + + (): void; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 15, 13)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 10)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 17, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 17, 25)) +} + +var r2: (a: any, b?: any) => void = x.apply; +>r2 : Symbol(r2, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 20, 3)) +>a : Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 20, 9)) +>b : Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 20, 16)) +>x.apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 15, 13)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) +>apply : Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 15, 13)) + +var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; +>r2b : Symbol(r2b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 21, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 21, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 21, 26)) +>x.call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 33)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) +>call : Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 33)) + +var r2c = x.arguments; +>r2c : Symbol(r2c, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 22, 3)) +>x.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>x : Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + diff --git a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types index 78a26bd402fcc..8f2f3d4a2b74d 100644 --- a/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types +++ b/tests/baselines/reference/objectTypeWithCallSignatureHidingMembersOfFunction.types @@ -3,80 +3,80 @@ // no errors expected below interface I { ->I : I, Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 0, 0)) +>I : I (): void; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 4, 13)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 10)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 6, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 6, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) ->I : I, Symbol(I, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 0, 0)) +>i : I +>I : I var r1: (a: any, b?: any) => void = i.apply; ->r1 : (a: any, b?: any) => void, Symbol(r1, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 10, 3)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 10, 9)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 10, 16)) ->i.apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 4, 13)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) ->apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 4, 13)) +>r1 : (a: any, b?: any) => void +>a : any +>b : any +>i.apply : (a: any, b?: any) => void +>i : I +>apply : (a: any, b?: any) => void var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; ->r1b : (thisArg: number, ...argArray: number[]) => void, Symbol(r1b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 11, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 11, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 11, 26)) ->i.call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 33)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 5, 33)) +>r1b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>i.call : (thisArg: number, ...argArray: number[]) => any +>i : I +>call : (thisArg: number, ...argArray: number[]) => any var r1c = i.arguments; ->r1c : any, Symbol(r1c, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 12, 3)) ->i.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->i : I, Symbol(i, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 9, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r1c : any +>i.arguments : any +>i : I +>arguments : any var x: { ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } (): void; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 15, 13)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 10)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 17, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 17, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var r2: (a: any, b?: any) => void = x.apply; ->r2 : (a: any, b?: any) => void, Symbol(r2, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 20, 3)) ->a : any, Symbol(a, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 20, 9)) ->b : any, Symbol(b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 20, 16)) ->x.apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 15, 13)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 15, 13)) +>r2 : (a: any, b?: any) => void +>a : any +>b : any +>x.apply : (a: any, b?: any) => void +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>apply : (a: any, b?: any) => void var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; ->r2b : (thisArg: number, ...argArray: number[]) => void, Symbol(r2b, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 21, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 21, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 21, 26)) ->x.call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 33)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 16, 33)) +>r2b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>x.call : (thisArg: number, ...argArray: number[]) => any +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>call : (thisArg: number, ...argArray: number[]) => any var r2c = x.arguments; ->r2c : any, Symbol(r2c, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 22, 3)) ->x.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithCallSignatureHidingMembersOfFunction.ts, 14, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r2c : any +>x.arguments : any +>x : { (): void; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>arguments : any diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.symbols b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.symbols new file mode 100644 index 0000000000000..57479c548ee3a --- /dev/null +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.symbols @@ -0,0 +1,110 @@ +=== tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts === +interface Function { +>Function : Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 0)) + + data: number; +>data : Symbol(data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) + + [x: string]: Object; +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 2, 5)) +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +} + +interface I { +>I : Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 3, 1)) + + new(): number; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 6, 18)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 10)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 8, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 8, 25)) +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) +>I : Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 3, 1)) + +var r1: (a: any, b?: any) => void = i.apply; +>r1 : Symbol(r1, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 12, 3)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 12, 9)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 12, 16)) +>i.apply : Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 6, 18)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) +>apply : Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 6, 18)) + +var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; +>r1b : Symbol(r1b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 13, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 13, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 13, 26)) +>i.call : Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 33)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) +>call : Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 33)) + +var r1c = i.arguments; +>r1c : Symbol(r1c, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) +>i.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + +var r1d = i.data; +>r1d : Symbol(r1d, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 15, 3)) +>i.data : Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) +>data : Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) + +var r1e = i['hm']; // should be Object +>r1e : Symbol(r1e, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 16, 3)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) + +var x: { +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) + + new(): number; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 19, 18)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 10)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 21, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 21, 25)) +} + +var r2: (a: any, b?: any) => void = x.apply; +>r2 : Symbol(r2, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 24, 3)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 24, 9)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 24, 16)) +>x.apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 19, 18)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 19, 18)) + +var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; +>r2b : Symbol(r2b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 25, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 25, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 25, 26)) +>x.call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 33)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 33)) + +var r2c = x.arguments; +>r2c : Symbol(r2c, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 26, 3)) +>x.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + +var r2d = x.data; +>r2d : Symbol(r2d, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 27, 3)) +>x.data : Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>data : Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) + +var r2e = x['hm']; // should be Object +>r2e : Symbol(r2e, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 28, 3)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) + diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types index 5dfb15f97b023..427b700fb592b 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.types @@ -1,114 +1,114 @@ === tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts === interface Function { ->Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11), Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 0)) +>Function : Function data: number; ->data : number, Symbol(data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) +>data : number [x: string]: Object; ->x : string, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 2, 5)) ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>x : string +>Object : Object } interface I { ->I : I, Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 3, 1)) +>I : I new(): number; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 6, 18)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 10)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 8, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 8, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) ->I : I, Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 3, 1)) +>i : I +>I : I var r1: (a: any, b?: any) => void = i.apply; ->r1 : (a: any, b?: any) => void, Symbol(r1, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 12, 3)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 12, 9)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 12, 16)) ->i.apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 6, 18)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) ->apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 6, 18)) +>r1 : (a: any, b?: any) => void +>a : any +>b : any +>i.apply : (a: any, b?: any) => void +>i : I +>apply : (a: any, b?: any) => void var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; ->r1b : (thisArg: number, ...argArray: number[]) => void, Symbol(r1b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 13, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 13, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 13, 26)) ->i.call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 33)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 7, 33)) +>r1b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>i.call : (thisArg: number, ...argArray: number[]) => any +>i : I +>call : (thisArg: number, ...argArray: number[]) => any var r1c = i.arguments; ->r1c : any, Symbol(r1c, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 14, 3)) ->i.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r1c : any +>i.arguments : any +>i : I +>arguments : any var r1d = i.data; ->r1d : number, Symbol(r1d, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 15, 3)) ->i.data : number, Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) ->data : number, Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) +>r1d : number +>i.data : number +>i : I +>data : number var r1e = i['hm']; // should be Object ->r1e : any, Symbol(r1e, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 16, 3)) +>r1e : any >i['hm'] : any ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 11, 3)) +>i : I >'hm' : string var x: { ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } new(): number; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 19, 18)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 10)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 21, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 21, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var r2: (a: any, b?: any) => void = x.apply; ->r2 : (a: any, b?: any) => void, Symbol(r2, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 24, 3)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 24, 9)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 24, 16)) ->x.apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 19, 18)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 19, 18)) +>r2 : (a: any, b?: any) => void +>a : any +>b : any +>x.apply : (a: any, b?: any) => void +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>apply : (a: any, b?: any) => void var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; ->r2b : (thisArg: number, ...argArray: number[]) => void, Symbol(r2b, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 25, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 25, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 25, 26)) ->x.call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 33)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 20, 33)) +>r2b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>x.call : (thisArg: number, ...argArray: number[]) => any +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>call : (thisArg: number, ...argArray: number[]) => any var r2c = x.arguments; ->r2c : any, Symbol(r2c, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 26, 3)) ->x.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r2c : any +>x.arguments : any +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>arguments : any var r2d = x.data; ->r2d : number, Symbol(r2d, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 27, 3)) ->x.data : number, Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) ->data : number, Symbol(Function.data, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 0, 20)) +>r2d : number +>x.data : number +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>data : number var r2e = x['hm']; // should be Object ->r2e : any, Symbol(r2e, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 28, 3)) +>r2e : any >x['hm'] : any ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfExtendedFunction.ts, 18, 3)) +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } >'hm' : string diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.symbols b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.symbols new file mode 100644 index 0000000000000..8478fd1d37c57 --- /dev/null +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.symbols @@ -0,0 +1,79 @@ +=== tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunction.ts === +interface I { +>I : Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 0, 0)) + + new(): number; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 1, 18)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 10)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 3, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 3, 25)) +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) +>I : Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 0, 0)) + +var r1: (a: any, b?: any) => void = i.apply; +>r1 : Symbol(r1, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 7, 3)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 7, 9)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 7, 16)) +>i.apply : Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 1, 18)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) +>apply : Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 1, 18)) + +var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; +>r1b : Symbol(r1b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 8, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 8, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 8, 26)) +>i.call : Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 33)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) +>call : Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 33)) + +var r1c = i.arguments; +>r1c : Symbol(r1c, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 9, 3)) +>i.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>i : Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + +var x: { +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) + + new(): number; + apply(a: any, b?: any): void; +>apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 12, 18)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 10)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 17)) + + call(thisArg: number, ...argArray: number[]): any; +>call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 33)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 14, 9)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 14, 25)) +} + +var r2: (a: any, b?: any) => void = x.apply; +>r2 : Symbol(r2, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 17, 3)) +>a : Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 17, 9)) +>b : Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 17, 16)) +>x.apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 12, 18)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) +>apply : Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 12, 18)) + +var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; +>r2b : Symbol(r2b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 18, 3)) +>thisArg : Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 18, 10)) +>argArray : Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 18, 26)) +>x.call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 33)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) +>call : Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 33)) + +var r2c = x.arguments; +>r2c : Symbol(r2c, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 19, 3)) +>x.arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>x : Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) +>arguments : Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) + diff --git a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types index 63b84ed982694..d8d8a96823cd8 100644 --- a/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types +++ b/tests/baselines/reference/objectTypeWithConstructSignatureHidingMembersOfFunction.types @@ -1,79 +1,79 @@ === tests/cases/conformance/types/members/objectTypeWithConstructSignatureHidingMembersOfFunction.ts === interface I { ->I : I, Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 0, 0)) +>I : I new(): number; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 1, 18)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 10)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 3, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 3, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) ->I : I, Symbol(I, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 0, 0)) +>i : I +>I : I var r1: (a: any, b?: any) => void = i.apply; ->r1 : (a: any, b?: any) => void, Symbol(r1, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 7, 3)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 7, 9)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 7, 16)) ->i.apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 1, 18)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) ->apply : (a: any, b?: any) => void, Symbol(I.apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 1, 18)) +>r1 : (a: any, b?: any) => void +>a : any +>b : any +>i.apply : (a: any, b?: any) => void +>i : I +>apply : (a: any, b?: any) => void var r1b: (thisArg: number, ...argArray: number[]) => void = i.call; ->r1b : (thisArg: number, ...argArray: number[]) => void, Symbol(r1b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 8, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 8, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 8, 26)) ->i.call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 33)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(I.call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 2, 33)) +>r1b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>i.call : (thisArg: number, ...argArray: number[]) => any +>i : I +>call : (thisArg: number, ...argArray: number[]) => any var r1c = i.arguments; ->r1c : any, Symbol(r1c, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 9, 3)) ->i.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->i : I, Symbol(i, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 6, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r1c : any +>i.arguments : any +>i : I +>arguments : any var x: { ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } new(): number; apply(a: any, b?: any): void; ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 12, 18)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 10)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 17)) +>apply : (a: any, b?: any) => void +>a : any +>b : any call(thisArg: number, ...argArray: number[]): any; ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 33)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 14, 9)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 14, 25)) +>call : (thisArg: number, ...argArray: number[]) => any +>thisArg : number +>argArray : number[] } var r2: (a: any, b?: any) => void = x.apply; ->r2 : (a: any, b?: any) => void, Symbol(r2, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 17, 3)) ->a : any, Symbol(a, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 17, 9)) ->b : any, Symbol(b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 17, 16)) ->x.apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 12, 18)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) ->apply : (a: any, b?: any) => void, Symbol(apply, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 12, 18)) +>r2 : (a: any, b?: any) => void +>a : any +>b : any +>x.apply : (a: any, b?: any) => void +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>apply : (a: any, b?: any) => void var r2b: (thisArg: number, ...argArray: number[]) => void = x.call; ->r2b : (thisArg: number, ...argArray: number[]) => void, Symbol(r2b, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 18, 3)) ->thisArg : number, Symbol(thisArg, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 18, 10)) ->argArray : number[], Symbol(argArray, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 18, 26)) ->x.call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 33)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) ->call : (thisArg: number, ...argArray: number[]) => any, Symbol(call, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 13, 33)) +>r2b : (thisArg: number, ...argArray: number[]) => void +>thisArg : number +>argArray : number[] +>x.call : (thisArg: number, ...argArray: number[]) => any +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>call : (thisArg: number, ...argArray: number[]) => any var r2c = x.arguments; ->r2c : any, Symbol(r2c, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 19, 3)) ->x.arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) ->x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; }, Symbol(x, Decl(objectTypeWithConstructSignatureHidingMembersOfFunction.ts, 11, 3)) ->arguments : any, Symbol(Function.arguments, Decl(lib.d.ts, 252, 19)) +>r2c : any +>x.arguments : any +>x : { new (): number; apply(a: any, b?: any): void; call(thisArg: number, ...argArray: number[]): any; } +>arguments : any diff --git a/tests/baselines/reference/objectTypeWithNumericProperty.symbols b/tests/baselines/reference/objectTypeWithNumericProperty.symbols new file mode 100644 index 0000000000000..20e54fe1c646c --- /dev/null +++ b/tests/baselines/reference/objectTypeWithNumericProperty.symbols @@ -0,0 +1,119 @@ +=== tests/cases/conformance/types/members/objectTypeWithNumericProperty.ts === +// no errors here + +class C { +>C : Symbol(C, Decl(objectTypeWithNumericProperty.ts, 0, 0)) + + 1: number; + 1.1: string; +} + +var c: C; +>c : Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) +>C : Symbol(C, Decl(objectTypeWithNumericProperty.ts, 0, 0)) + +var r1 = c[1]; +>r1 : Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>c : Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) +>1 : Symbol(C.1, Decl(objectTypeWithNumericProperty.ts, 2, 9)) + +var r2 = c[1.1]; +>r2 : Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>c : Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) +>1.1 : Symbol(C.1.1, Decl(objectTypeWithNumericProperty.ts, 3, 14)) + +var r3 = c['1']; +>r3 : Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>c : Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) +>'1' : Symbol(C.1, Decl(objectTypeWithNumericProperty.ts, 2, 9)) + +var r4 = c['1.1']; +>r4 : Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>c : Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) +>'1.1' : Symbol(C.1.1, Decl(objectTypeWithNumericProperty.ts, 3, 14)) + +interface I { +>I : Symbol(I, Decl(objectTypeWithNumericProperty.ts, 11, 18)) + + 1: number; + 1.1: string; +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) +>I : Symbol(I, Decl(objectTypeWithNumericProperty.ts, 11, 18)) + +var r1 = i[1]; +>r1 : Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>i : Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) +>1 : Symbol(I.1, Decl(objectTypeWithNumericProperty.ts, 13, 13)) + +var r2 = i[1.1]; +>r2 : Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>i : Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) +>1.1 : Symbol(I.1.1, Decl(objectTypeWithNumericProperty.ts, 14, 14)) + +var r3 = i['1']; +>r3 : Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>i : Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) +>'1' : Symbol(I.1, Decl(objectTypeWithNumericProperty.ts, 13, 13)) + +var r4 = i['1.1']; +>r4 : Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>i : Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) +>'1.1' : Symbol(I.1.1, Decl(objectTypeWithNumericProperty.ts, 14, 14)) + +var a: { +>a : Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) + + 1: number; + 1.1: string; +} + +var r1 = a[1]; +>r1 : Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>a : Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) +>1 : Symbol(1, Decl(objectTypeWithNumericProperty.ts, 24, 8)) + +var r2 = a[1.1]; +>r2 : Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>a : Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) +>1.1 : Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 25, 14)) + +var r3 = a['1']; +>r3 : Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>a : Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) +>'1' : Symbol(1, Decl(objectTypeWithNumericProperty.ts, 24, 8)) + +var r4 = a['1.1']; +>r4 : Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>a : Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) +>'1.1' : Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 25, 14)) + +var b = { +>b : Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) + + 1: 1, + 1.1: "" +} + +var r1 = b[1]; +>r1 : Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>b : Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) +>1 : Symbol(1, Decl(objectTypeWithNumericProperty.ts, 34, 9)) + +var r2 = b[1.1]; +>r2 : Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>b : Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) +>1.1 : Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 35, 9)) + +var r3 = b['1']; +>r3 : Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>b : Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) +>'1' : Symbol(1, Decl(objectTypeWithNumericProperty.ts, 34, 9)) + +var r4 = b['1.1']; +>r4 : Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>b : Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) +>'1.1' : Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 35, 9)) + diff --git a/tests/baselines/reference/objectTypeWithNumericProperty.types b/tests/baselines/reference/objectTypeWithNumericProperty.types index 742a6f18eaef9..32efd3398fb28 100644 --- a/tests/baselines/reference/objectTypeWithNumericProperty.types +++ b/tests/baselines/reference/objectTypeWithNumericProperty.types @@ -2,108 +2,108 @@ // no errors here class C { ->C : C, Symbol(C, Decl(objectTypeWithNumericProperty.ts, 0, 0)) +>C : C 1: number; 1.1: string; } var c: C; ->c : C, Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) ->C : C, Symbol(C, Decl(objectTypeWithNumericProperty.ts, 0, 0)) +>c : C +>C : C var r1 = c[1]; ->r1 : number, Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>r1 : number >c[1] : number ->c : C, Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) ->1 : number, Symbol(C.1, Decl(objectTypeWithNumericProperty.ts, 2, 9)) +>c : C +>1 : number var r2 = c[1.1]; ->r2 : string, Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>r2 : string >c[1.1] : string ->c : C, Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) ->1.1 : number, Symbol(C.1.1, Decl(objectTypeWithNumericProperty.ts, 3, 14)) +>c : C +>1.1 : number var r3 = c['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>r3 : number >c['1'] : number ->c : C, Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) ->'1' : string, Symbol(C.1, Decl(objectTypeWithNumericProperty.ts, 2, 9)) +>c : C +>'1' : string var r4 = c['1.1']; ->r4 : string, Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>r4 : string >c['1.1'] : string ->c : C, Symbol(c, Decl(objectTypeWithNumericProperty.ts, 7, 3)) ->'1.1' : string, Symbol(C.1.1, Decl(objectTypeWithNumericProperty.ts, 3, 14)) +>c : C +>'1.1' : string interface I { ->I : I, Symbol(I, Decl(objectTypeWithNumericProperty.ts, 11, 18)) +>I : I 1: number; 1.1: string; } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) ->I : I, Symbol(I, Decl(objectTypeWithNumericProperty.ts, 11, 18)) +>i : I +>I : I var r1 = i[1]; ->r1 : number, Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>r1 : number >i[1] : number ->i : I, Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) ->1 : number, Symbol(I.1, Decl(objectTypeWithNumericProperty.ts, 13, 13)) +>i : I +>1 : number var r2 = i[1.1]; ->r2 : string, Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>r2 : string >i[1.1] : string ->i : I, Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) ->1.1 : number, Symbol(I.1.1, Decl(objectTypeWithNumericProperty.ts, 14, 14)) +>i : I +>1.1 : number var r3 = i['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>r3 : number >i['1'] : number ->i : I, Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) ->'1' : string, Symbol(I.1, Decl(objectTypeWithNumericProperty.ts, 13, 13)) +>i : I +>'1' : string var r4 = i['1.1']; ->r4 : string, Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>r4 : string >i['1.1'] : string ->i : I, Symbol(i, Decl(objectTypeWithNumericProperty.ts, 18, 3)) ->'1.1' : string, Symbol(I.1.1, Decl(objectTypeWithNumericProperty.ts, 14, 14)) +>i : I +>'1.1' : string var a: { ->a : { 1: number; 1.1: string; }, Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) +>a : { 1: number; 1.1: string; } 1: number; 1.1: string; } var r1 = a[1]; ->r1 : number, Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>r1 : number >a[1] : number ->a : { 1: number; 1.1: string; }, Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) ->1 : number, Symbol(1, Decl(objectTypeWithNumericProperty.ts, 24, 8)) +>a : { 1: number; 1.1: string; } +>1 : number var r2 = a[1.1]; ->r2 : string, Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>r2 : string >a[1.1] : string ->a : { 1: number; 1.1: string; }, Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) ->1.1 : number, Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 25, 14)) +>a : { 1: number; 1.1: string; } +>1.1 : number var r3 = a['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>r3 : number >a['1'] : number ->a : { 1: number; 1.1: string; }, Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) ->'1' : string, Symbol(1, Decl(objectTypeWithNumericProperty.ts, 24, 8)) +>a : { 1: number; 1.1: string; } +>'1' : string var r4 = a['1.1']; ->r4 : string, Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>r4 : string >a['1.1'] : string ->a : { 1: number; 1.1: string; }, Symbol(a, Decl(objectTypeWithNumericProperty.ts, 24, 3)) ->'1.1' : string, Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 25, 14)) +>a : { 1: number; 1.1: string; } +>'1.1' : string var b = { ->b : { 1: number; 1.1: string; }, Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) +>b : { 1: number; 1.1: string; } >{ 1: 1, 1.1: ""} : { 1: number; 1.1: string; } 1: 1, @@ -114,26 +114,26 @@ var b = { } var r1 = b[1]; ->r1 : number, Symbol(r1, Decl(objectTypeWithNumericProperty.ts, 8, 3), Decl(objectTypeWithNumericProperty.ts, 19, 3), Decl(objectTypeWithNumericProperty.ts, 29, 3), Decl(objectTypeWithNumericProperty.ts, 39, 3)) +>r1 : number >b[1] : number ->b : { 1: number; 1.1: string; }, Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) ->1 : number, Symbol(1, Decl(objectTypeWithNumericProperty.ts, 34, 9)) +>b : { 1: number; 1.1: string; } +>1 : number var r2 = b[1.1]; ->r2 : string, Symbol(r2, Decl(objectTypeWithNumericProperty.ts, 9, 3), Decl(objectTypeWithNumericProperty.ts, 20, 3), Decl(objectTypeWithNumericProperty.ts, 30, 3), Decl(objectTypeWithNumericProperty.ts, 40, 3)) +>r2 : string >b[1.1] : string ->b : { 1: number; 1.1: string; }, Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) ->1.1 : number, Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 35, 9)) +>b : { 1: number; 1.1: string; } +>1.1 : number var r3 = b['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithNumericProperty.ts, 10, 3), Decl(objectTypeWithNumericProperty.ts, 21, 3), Decl(objectTypeWithNumericProperty.ts, 31, 3), Decl(objectTypeWithNumericProperty.ts, 41, 3)) +>r3 : number >b['1'] : number ->b : { 1: number; 1.1: string; }, Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) ->'1' : string, Symbol(1, Decl(objectTypeWithNumericProperty.ts, 34, 9)) +>b : { 1: number; 1.1: string; } +>'1' : string var r4 = b['1.1']; ->r4 : string, Symbol(r4, Decl(objectTypeWithNumericProperty.ts, 11, 3), Decl(objectTypeWithNumericProperty.ts, 22, 3), Decl(objectTypeWithNumericProperty.ts, 32, 3), Decl(objectTypeWithNumericProperty.ts, 42, 3)) +>r4 : string >b['1.1'] : string ->b : { 1: number; 1.1: string; }, Symbol(b, Decl(objectTypeWithNumericProperty.ts, 34, 3)) ->'1.1' : string, Symbol(1.1, Decl(objectTypeWithNumericProperty.ts, 35, 9)) +>b : { 1: number; 1.1: string; } +>'1.1' : string diff --git a/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.symbols b/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.symbols new file mode 100644 index 0000000000000..c95105a86269a --- /dev/null +++ b/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.symbols @@ -0,0 +1,421 @@ +=== tests/cases/conformance/types/members/objectTypeWithStringNamedNumericProperty.ts === + +// string named numeric properties are legal and distinct when indexed by string values +// indexed numerically the value is converted to a number +// no errors expected below + +class C { +>C : Symbol(C, Decl(objectTypeWithStringNamedNumericProperty.ts, 0, 0)) + + "0.1": void; + ".1": Object; +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + "1": number; + "1.": string; + "1..": boolean; + "1.0": Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + "-1.0": RegExp; +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + + "-1": Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var c: C; +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>C : Symbol(C, Decl(objectTypeWithStringNamedNumericProperty.ts, 0, 0)) + +var r1 = c['0.1']; +>r1 : Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>'0.1' : Symbol(C."0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 5, 9)) + +var r2 = c['.1']; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>'.1' : Symbol(C.".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 6, 16)) + +var r3 = c['1']; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>'1' : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r3 = c[1]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r4 = c['1.']; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>'1.' : Symbol(C."1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 8, 16)) + +var r3 = c[1.]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1. : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r5 = c['1..']; +>r5 : Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>'1..' : Symbol(C."1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 9, 17)) + +var r6 = c['1.0']; +>r6 : Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>'1.0' : Symbol(C."1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 10, 19)) + +var r3 = c[1.0]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1.0 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +// BUG 823822 +var r7 = i[-1]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r7 = i[-1.0]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r8 = i["-1.0"]; +>r8 : Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1.0" : Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) + +var r9 = i["-1"]; +>r9 : Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1" : Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) + +var r10 = i[0x1] +>r10 : Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>0x1 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r11 = i[-0x1] +>r11 : Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r12 = i[01] +>r12 : Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>01 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r13 = i[-01] +>r13 : Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +interface I { +>I : Symbol(I, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 16)) + + "0.1": void; + ".1": Object; +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + "1": number; + "1.": string; + "1..": boolean; + "1.0": Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + "-1.0": RegExp; +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + + "-1": Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>I : Symbol(I, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 16)) + +var r1 = i['0.1']; +>r1 : Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>'0.1' : Symbol(I."0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 36, 13)) + +var r2 = i['.1']; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>'.1' : Symbol(I.".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 37, 16)) + +var r3 = i['1']; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>'1' : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r3 = c[1]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r4 = i['1.']; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>'1.' : Symbol(I."1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 39, 16)) + +var r3 = c[1.]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1. : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r5 = i['1..']; +>r5 : Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>'1..' : Symbol(I."1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 40, 17)) + +var r6 = i['1.0']; +>r6 : Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>'1.0' : Symbol(I."1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 41, 19)) + +var r3 = c[1.0]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1.0 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +// BUG 823822 +var r7 = i[-1]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r7 = i[-1.0]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r8 = i["-1.0"]; +>r8 : Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1.0" : Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) + +var r9 = i["-1"]; +>r9 : Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1" : Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) + +var r10 = i[0x1] +>r10 : Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>0x1 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r11 = i[-0x1] +>r11 : Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r12 = i[01] +>r12 : Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>01 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r13 = i[-01] +>r13 : Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var a: { +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) + + "0.1": void; + ".1": Object; +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + "1": number; + "1.": string; + "1..": boolean; + "1.0": Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + "-1.0": RegExp; +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + + "-1": Date; +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var r1 = a['0.1']; +>r1 : Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>'0.1' : Symbol("0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 8)) + +var r2 = a['.1']; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>'.1' : Symbol(".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 68, 16)) + +var r3 = a['1']; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>'1' : Symbol("1", Decl(objectTypeWithStringNamedNumericProperty.ts, 69, 17)) + +var r3 = c[1]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r4 = a['1.']; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>'1.' : Symbol("1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 70, 16)) + +var r3 = c[1.]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1. : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r5 = a['1..']; +>r5 : Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>'1..' : Symbol("1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 71, 17)) + +var r6 = a['1.0']; +>r6 : Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>'1.0' : Symbol("1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 72, 19)) + +var r3 = c[1.0]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1.0 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +// BUG 823822 +var r7 = i[-1]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r7 = i[-1.0]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r8 = i["-1.0"]; +>r8 : Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1.0" : Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) + +var r9 = i["-1"]; +>r9 : Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1" : Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) + +var r10 = i[0x1] +>r10 : Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>0x1 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r11 = i[-0x1] +>r11 : Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r12 = i[01] +>r12 : Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>01 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r13 = i[-01] +>r13 : Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var b = { +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) + + "0.1": null, + ".1": new Object(), +>Object : Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) + + "1": 1, + "1.": "", + "1..": true, + "1.0": new Date(), +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + "-1.0": /123/, + "-1": Date +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +}; + +var r1 = b['0.1']; +>r1 : Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>'0.1' : Symbol("0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 9)) + +var r2 = b['.1']; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>'.1' : Symbol(".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 98, 22)) + +var r3 = b['1']; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>'1' : Symbol("1", Decl(objectTypeWithStringNamedNumericProperty.ts, 99, 23)) + +var r3 = c[1]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r4 = b['1.']; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>'1.' : Symbol("1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 100, 11)) + +var r3 = c[1.]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1. : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +var r5 = b['1..']; +>r5 : Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>'1..' : Symbol("1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 101, 13)) + +var r6 = b['1.0']; +>r6 : Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>'1.0' : Symbol("1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 102, 16)) + +var r3 = c[1.0]; // same as indexing by 1 when done numerically +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) +>1.0 : Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) + +// BUG 823822 +var r7 = i[-1]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r7 = i[-1.0]; +>r7 : Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r8 = i["-1.0"]; +>r8 : Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1.0" : Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) + +var r9 = i["-1"]; +>r9 : Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>"-1" : Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) + +var r10 = i[0x1] +>r10 : Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>0x1 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r11 = i[-0x1] +>r11 : Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + +var r12 = i[01] +>r12 : Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>01 : Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) + +var r13 = i[-01] +>r13 : Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) + diff --git a/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types b/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types index fa384c3a12c2c..490f3101751a4 100644 --- a/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types +++ b/tests/baselines/reference/objectTypeWithStringNamedNumericProperty.types @@ -5,396 +5,396 @@ // no errors expected below class C { ->C : C, Symbol(C, Decl(objectTypeWithStringNamedNumericProperty.ts, 0, 0)) +>C : C "0.1": void; ".1": Object; ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : Object "1": number; "1.": string; "1..": boolean; "1.0": Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date "-1.0": RegExp; ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>RegExp : RegExp "-1": Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date } var c: C; ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->C : C, Symbol(C, Decl(objectTypeWithStringNamedNumericProperty.ts, 0, 0)) +>c : C +>C : C var r1 = c['0.1']; ->r1 : void, Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>r1 : void >c['0.1'] : void ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->'0.1' : string, Symbol(C."0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 5, 9)) +>c : C +>'0.1' : string var r2 = c['.1']; ->r2 : Object, Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>r2 : Object >c['.1'] : Object ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->'.1' : string, Symbol(C.".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 6, 16)) +>c : C +>'.1' : string var r3 = c['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c['1'] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->'1' : string, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>'1' : string var r3 = c[1]; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1 : number var r4 = c['1.']; ->r4 : string, Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>r4 : string >c['1.'] : string ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->'1.' : string, Symbol(C."1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 8, 16)) +>c : C +>'1.' : string var r3 = c[1.]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1. : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1. : number var r5 = c['1..']; ->r5 : boolean, Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>r5 : boolean >c['1..'] : boolean ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->'1..' : string, Symbol(C."1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 9, 17)) +>c : C +>'1..' : string var r6 = c['1.0']; ->r6 : Date, Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>r6 : Date >c['1.0'] : Date ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->'1.0' : string, Symbol(C."1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 10, 19)) +>c : C +>'1.0' : string var r3 = c[1.0]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.0] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1.0 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1.0 : number // BUG 823822 var r7 = i[-1]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1 : number >1 : number var r7 = i[-1.0]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1.0] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1.0 : number >1.0 : number var r8 = i["-1.0"]; ->r8 : RegExp, Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>r8 : RegExp >i["-1.0"] : RegExp ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1.0" : string, Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) +>i : I +>"-1.0" : string var r9 = i["-1"]; ->r9 : Date, Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>r9 : Date >i["-1"] : Date ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1" : string, Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) +>i : I +>"-1" : string var r10 = i[0x1] ->r10 : number, Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>r10 : number >i[0x1] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->0x1 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>0x1 : number var r11 = i[-0x1] ->r11 : any, Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>r11 : any >i[-0x1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-0x1 : number >0x1 : number var r12 = i[01] ->r12 : number, Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>r12 : number >i[01] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->01 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>01 : number var r13 = i[-01] ->r13 : any, Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>r13 : any >i[-01] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-01 : number >01 : number interface I { ->I : I, Symbol(I, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 16)) +>I : I "0.1": void; ".1": Object; ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : Object "1": number; "1.": string; "1..": boolean; "1.0": Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date "-1.0": RegExp; ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>RegExp : RegExp "-1": Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->I : I, Symbol(I, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 16)) +>i : I +>I : I var r1 = i['0.1']; ->r1 : void, Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>r1 : void >i['0.1'] : void ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->'0.1' : string, Symbol(I."0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 36, 13)) +>i : I +>'0.1' : string var r2 = i['.1']; ->r2 : Object, Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>r2 : Object >i['.1'] : Object ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->'.1' : string, Symbol(I.".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 37, 16)) +>i : I +>'.1' : string var r3 = i['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >i['1'] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->'1' : string, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>'1' : string var r3 = c[1]; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1 : number var r4 = i['1.']; ->r4 : string, Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>r4 : string >i['1.'] : string ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->'1.' : string, Symbol(I."1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 39, 16)) +>i : I +>'1.' : string var r3 = c[1.]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1. : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1. : number var r5 = i['1..']; ->r5 : boolean, Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>r5 : boolean >i['1..'] : boolean ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->'1..' : string, Symbol(I."1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 40, 17)) +>i : I +>'1..' : string var r6 = i['1.0']; ->r6 : Date, Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>r6 : Date >i['1.0'] : Date ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->'1.0' : string, Symbol(I."1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 41, 19)) +>i : I +>'1.0' : string var r3 = c[1.0]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.0] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1.0 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1.0 : number // BUG 823822 var r7 = i[-1]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1 : number >1 : number var r7 = i[-1.0]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1.0] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1.0 : number >1.0 : number var r8 = i["-1.0"]; ->r8 : RegExp, Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>r8 : RegExp >i["-1.0"] : RegExp ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1.0" : string, Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) +>i : I +>"-1.0" : string var r9 = i["-1"]; ->r9 : Date, Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>r9 : Date >i["-1"] : Date ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1" : string, Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) +>i : I +>"-1" : string var r10 = i[0x1] ->r10 : number, Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>r10 : number >i[0x1] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->0x1 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>0x1 : number var r11 = i[-0x1] ->r11 : any, Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>r11 : any >i[-0x1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-0x1 : number >0x1 : number var r12 = i[01] ->r12 : number, Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>r12 : number >i[01] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->01 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>01 : number var r13 = i[-01] ->r13 : any, Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>r13 : any >i[-01] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-01 : number >01 : number var a: { ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } "0.1": void; ".1": Object; ->Object : Object, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : Object "1": number; "1.": string; "1..": boolean; "1.0": Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date "-1.0": RegExp; ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>RegExp : RegExp "-1": Date; ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : Date } var r1 = a['0.1']; ->r1 : void, Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>r1 : void >a['0.1'] : void ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) ->'0.1' : string, Symbol("0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 8)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } +>'0.1' : string var r2 = a['.1']; ->r2 : Object, Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>r2 : Object >a['.1'] : Object ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) ->'.1' : string, Symbol(".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 68, 16)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } +>'.1' : string var r3 = a['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >a['1'] : number ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) ->'1' : string, Symbol("1", Decl(objectTypeWithStringNamedNumericProperty.ts, 69, 17)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } +>'1' : string var r3 = c[1]; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1 : number var r4 = a['1.']; ->r4 : string, Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>r4 : string >a['1.'] : string ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) ->'1.' : string, Symbol("1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 70, 16)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } +>'1.' : string var r3 = c[1.]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1. : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1. : number var r5 = a['1..']; ->r5 : boolean, Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>r5 : boolean >a['1..'] : boolean ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) ->'1..' : string, Symbol("1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 71, 17)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } +>'1..' : string var r6 = a['1.0']; ->r6 : Date, Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>r6 : Date >a['1.0'] : Date ->a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; }, Symbol(a, Decl(objectTypeWithStringNamedNumericProperty.ts, 67, 3)) ->'1.0' : string, Symbol("1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 72, 19)) +>a : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": Date; } +>'1.0' : string var r3 = c[1.0]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.0] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1.0 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1.0 : number // BUG 823822 var r7 = i[-1]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1 : number >1 : number var r7 = i[-1.0]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1.0] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1.0 : number >1.0 : number var r8 = i["-1.0"]; ->r8 : RegExp, Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>r8 : RegExp >i["-1.0"] : RegExp ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1.0" : string, Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) +>i : I +>"-1.0" : string var r9 = i["-1"]; ->r9 : Date, Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>r9 : Date >i["-1"] : Date ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1" : string, Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) +>i : I +>"-1" : string var r10 = i[0x1] ->r10 : number, Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>r10 : number >i[0x1] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->0x1 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>0x1 : number var r11 = i[-0x1] ->r11 : any, Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>r11 : any >i[-0x1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-0x1 : number >0x1 : number var r12 = i[01] ->r12 : number, Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>r12 : number >i[01] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->01 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>01 : number var r13 = i[-01] ->r13 : any, Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>r13 : any >i[-01] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-01 : number >01 : number var b = { ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } >{ "0.1": null, ".1": new Object(), "1": 1, "1.": "", "1..": true, "1.0": new Date(), "-1.0": /123/, "-1": Date} : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } "0.1": null, @@ -403,7 +403,7 @@ var b = { ".1": new Object(), >new Object() : Object ->Object : ObjectConstructor, Symbol(Object, Decl(lib.d.ts, 92, 1), Decl(lib.d.ts, 223, 11)) +>Object : ObjectConstructor "1": 1, >1 : number @@ -416,120 +416,120 @@ var b = { "1.0": new Date(), >new Date() : Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor "-1.0": /123/, >/123/ : RegExp "-1": Date ->Date : DateConstructor, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>Date : DateConstructor }; var r1 = b['0.1']; ->r1 : void, Symbol(r1, Decl(objectTypeWithStringNamedNumericProperty.ts, 17, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 48, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 78, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 108, 3)) +>r1 : void >b['0.1'] : void ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) ->'0.1' : string, Symbol("0.1", Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 9)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>'0.1' : string var r2 = b['.1']; ->r2 : Object, Symbol(r2, Decl(objectTypeWithStringNamedNumericProperty.ts, 18, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 49, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 79, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 109, 3)) +>r2 : Object >b['.1'] : Object ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) ->'.1' : string, Symbol(".1", Decl(objectTypeWithStringNamedNumericProperty.ts, 98, 22)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>'.1' : string var r3 = b['1']; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >b['1'] : number ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) ->'1' : string, Symbol("1", Decl(objectTypeWithStringNamedNumericProperty.ts, 99, 23)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>'1' : string var r3 = c[1]; ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1 : number var r4 = b['1.']; ->r4 : string, Symbol(r4, Decl(objectTypeWithStringNamedNumericProperty.ts, 21, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 52, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 82, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 112, 3)) +>r4 : string >b['1.'] : string ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) ->'1.' : string, Symbol("1.", Decl(objectTypeWithStringNamedNumericProperty.ts, 100, 11)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>'1.' : string var r3 = c[1.]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1. : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1. : number var r5 = b['1..']; ->r5 : boolean, Symbol(r5, Decl(objectTypeWithStringNamedNumericProperty.ts, 23, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 54, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 84, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 114, 3)) +>r5 : boolean >b['1..'] : boolean ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) ->'1..' : string, Symbol("1..", Decl(objectTypeWithStringNamedNumericProperty.ts, 101, 13)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>'1..' : string var r6 = b['1.0']; ->r6 : Date, Symbol(r6, Decl(objectTypeWithStringNamedNumericProperty.ts, 24, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 55, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 85, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 115, 3)) +>r6 : Date >b['1.0'] : Date ->b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; }, Symbol(b, Decl(objectTypeWithStringNamedNumericProperty.ts, 97, 3)) ->'1.0' : string, Symbol("1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 102, 16)) +>b : { "1": number; "0.1": void; ".1": Object; "1.": string; "1..": boolean; "1.0": Date; "-1.0": RegExp; "-1": DateConstructor; } +>'1.0' : string var r3 = c[1.0]; // same as indexing by 1 when done numerically ->r3 : number, Symbol(r3, Decl(objectTypeWithStringNamedNumericProperty.ts, 19, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 20, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 22, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 25, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 50, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 51, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 53, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 56, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 80, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 81, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 83, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 86, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 110, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 111, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 113, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 116, 3)) +>r3 : number >c[1.0] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedNumericProperty.ts, 16, 3)) ->1.0 : number, Symbol(C."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 7, 17)) +>c : C +>1.0 : number // BUG 823822 var r7 = i[-1]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1 : number >1 : number var r7 = i[-1.0]; ->r7 : any, Symbol(r7, Decl(objectTypeWithStringNamedNumericProperty.ts, 27, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 28, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 58, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 59, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 88, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 89, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 118, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 119, 3)) +>r7 : any >i[-1.0] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-1.0 : number >1.0 : number var r8 = i["-1.0"]; ->r8 : RegExp, Symbol(r8, Decl(objectTypeWithStringNamedNumericProperty.ts, 29, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 60, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 90, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 120, 3)) +>r8 : RegExp >i["-1.0"] : RegExp ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1.0" : string, Symbol(I."-1.0", Decl(objectTypeWithStringNamedNumericProperty.ts, 42, 16)) +>i : I +>"-1.0" : string var r9 = i["-1"]; ->r9 : Date, Symbol(r9, Decl(objectTypeWithStringNamedNumericProperty.ts, 30, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 61, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 91, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 121, 3)) +>r9 : Date >i["-1"] : Date ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->"-1" : string, Symbol(I."-1", Decl(objectTypeWithStringNamedNumericProperty.ts, 43, 19)) +>i : I +>"-1" : string var r10 = i[0x1] ->r10 : number, Symbol(r10, Decl(objectTypeWithStringNamedNumericProperty.ts, 31, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 62, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 92, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 122, 3)) +>r10 : number >i[0x1] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->0x1 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>0x1 : number var r11 = i[-0x1] ->r11 : any, Symbol(r11, Decl(objectTypeWithStringNamedNumericProperty.ts, 32, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 63, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 93, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 123, 3)) +>r11 : any >i[-0x1] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-0x1 : number >0x1 : number var r12 = i[01] ->r12 : number, Symbol(r12, Decl(objectTypeWithStringNamedNumericProperty.ts, 33, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 64, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 94, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 124, 3)) +>r12 : number >i[01] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) ->01 : number, Symbol(I."1", Decl(objectTypeWithStringNamedNumericProperty.ts, 38, 17)) +>i : I +>01 : number var r13 = i[-01] ->r13 : any, Symbol(r13, Decl(objectTypeWithStringNamedNumericProperty.ts, 34, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 65, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 95, 3), Decl(objectTypeWithStringNamedNumericProperty.ts, 125, 3)) +>r13 : any >i[-01] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedNumericProperty.ts, 47, 3)) +>i : I >-01 : number >01 : number diff --git a/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.symbols b/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.symbols new file mode 100644 index 0000000000000..aa76e7e92c8ac --- /dev/null +++ b/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.symbols @@ -0,0 +1,124 @@ +=== tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts === +class C { +>C : Symbol(C, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 0, 0)) + + " ": number; + "a b": string; + "~!@#$%^&*()_+{}|:'<>?\/.,`": number; + "a\a": number; + static "a ": number +} + +var c: C; +>c : Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) +>C : Symbol(C, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 0, 0)) + +var r = c[" "]; +>r : Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) +>" " : Symbol(C." ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 0, 9)) + +var r2 = c[" "]; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) + +var r3 = c["a b"]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) +>"a b" : Symbol(C."a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 1, 18)) + +// BUG 817263 +var r4 = c["~!@#$%^&*()_+{}|:'<>?\/.,`"]; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>c : Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : Symbol(C."~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 2, 20)) + +interface I { +>I : Symbol(I, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 41)) + + " ": number; + "a b": string; + "~!@#$%^&*()_+{}|:'<>?\/.,`": number; +} + +var i: I; +>i : Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) +>I : Symbol(I, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 41)) + +var r = i[" "]; +>r : Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) +>" " : Symbol(I." ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 15, 13)) + +var r2 = i[" "]; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) + +var r3 = i["a b"]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) +>"a b" : Symbol(I."a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 16, 18)) + +// BUG 817263 +var r4 = i["~!@#$%^&*()_+{}|:'<>?\/.,`"]; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>i : Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : Symbol(I."~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 17, 20)) + + +var a: { +>a : Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) + + " ": number; + "a b": string; + "~!@#$%^&*()_+{}|:'<>?\/.,`": number; +} + +var r = a[" "]; +>r : Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) +>" " : Symbol(" ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 8)) + +var r2 = a[" "]; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) + +var r3 = a["a b"]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) +>"a b" : Symbol("a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 30, 18)) + +// BUG 817263 +var r4 = a["~!@#$%^&*()_+{}|:'<>?\/.,`"]; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>a : Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : Symbol("~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 31, 20)) + +var b = { +>b : Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) + + " ": 1, + "a b": "", + "~!@#$%^&*()_+{}|:'<>?\/.,`": 1, +} + +var r = b[" "]; +>r : Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) +>" " : Symbol(" ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 9)) + +var r2 = b[" "]; +>r2 : Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) + +var r3 = b["a b"]; +>r3 : Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) +>"a b" : Symbol("a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 42, 13)) + +// BUG 817263 +var r4 = b["~!@#$%^&*()_+{}|:'<>?\/.,`"]; +>r4 : Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>b : Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : Symbol("~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 43, 16)) + diff --git a/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.types b/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.types index 698014b334ca9..b676d284e7000 100644 --- a/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.types +++ b/tests/baselines/reference/objectTypeWithStringNamedPropertyOfIllegalCharacters.types @@ -1,6 +1,6 @@ === tests/cases/conformance/types/members/objectTypeWithStringNamedPropertyOfIllegalCharacters.ts === class C { ->C : C, Symbol(C, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 0, 0)) +>C : C " ": number; "a b": string; @@ -10,36 +10,36 @@ class C { } var c: C; ->c : C, Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) ->C : C, Symbol(C, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 0, 0)) +>c : C +>C : C var r = c[" "]; ->r : number, Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>r : number >c[" "] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) ->" " : string, Symbol(C." ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 0, 9)) +>c : C +>" " : string var r2 = c[" "]; ->r2 : any, Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>r2 : any >c[" "] : any ->c : C, Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) +>c : C >" " : string var r3 = c["a b"]; ->r3 : string, Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>r3 : string >c["a b"] : string ->c : C, Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) ->"a b" : string, Symbol(C."a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 1, 18)) +>c : C +>"a b" : string // BUG 817263 var r4 = c["~!@#$%^&*()_+{}|:'<>?\/.,`"]; ->r4 : number, Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>r4 : number >c["~!@#$%^&*()_+{}|:'<>?\/.,`"] : number ->c : C, Symbol(c, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 8, 3)) ->"~!@#$%^&*()_+{}|:'<>?\/.,`" : string, Symbol(C."~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 2, 20)) +>c : C +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : string interface I { ->I : I, Symbol(I, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 41)) +>I : I " ": number; "a b": string; @@ -47,37 +47,37 @@ interface I { } var i: I; ->i : I, Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) ->I : I, Symbol(I, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 41)) +>i : I +>I : I var r = i[" "]; ->r : number, Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>r : number >i[" "] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) ->" " : string, Symbol(I." ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 15, 13)) +>i : I +>" " : string var r2 = i[" "]; ->r2 : any, Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>r2 : any >i[" "] : any ->i : I, Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) +>i : I >" " : string var r3 = i["a b"]; ->r3 : string, Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>r3 : string >i["a b"] : string ->i : I, Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) ->"a b" : string, Symbol(I."a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 16, 18)) +>i : I +>"a b" : string // BUG 817263 var r4 = i["~!@#$%^&*()_+{}|:'<>?\/.,`"]; ->r4 : number, Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>r4 : number >i["~!@#$%^&*()_+{}|:'<>?\/.,`"] : number ->i : I, Symbol(i, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 21, 3)) ->"~!@#$%^&*()_+{}|:'<>?\/.,`" : string, Symbol(I."~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 17, 20)) +>i : I +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : string var a: { ->a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) +>a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } " ": number; "a b": string; @@ -85,32 +85,32 @@ var a: { } var r = a[" "]; ->r : number, Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>r : number >a[" "] : number ->a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) ->" " : string, Symbol(" ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 8)) +>a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } +>" " : string var r2 = a[" "]; ->r2 : any, Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>r2 : any >a[" "] : any ->a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) +>a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } >" " : string var r3 = a["a b"]; ->r3 : string, Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>r3 : string >a["a b"] : string ->a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) ->"a b" : string, Symbol("a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 30, 18)) +>a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } +>"a b" : string // BUG 817263 var r4 = a["~!@#$%^&*()_+{}|:'<>?\/.,`"]; ->r4 : number, Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>r4 : number >a["~!@#$%^&*()_+{}|:'<>?\/.,`"] : number ->a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(a, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 29, 3)) ->"~!@#$%^&*()_+{}|:'<>?\/.,`" : string, Symbol("~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 31, 20)) +>a : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : string var b = { ->b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) +>b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } >{ " ": 1, "a b": "", "~!@#$%^&*()_+{}|:'<>?\/.,`": 1,} : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } " ": 1, @@ -124,27 +124,27 @@ var b = { } var r = b[" "]; ->r : number, Symbol(r, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 9, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 22, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 35, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 47, 3)) +>r : number >b[" "] : number ->b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) ->" " : string, Symbol(" ", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 9)) +>b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } +>" " : string var r2 = b[" "]; ->r2 : any, Symbol(r2, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 10, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 23, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 36, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 48, 3)) +>r2 : any >b[" "] : any ->b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) +>b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } >" " : string var r3 = b["a b"]; ->r3 : string, Symbol(r3, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 11, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 24, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 37, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 49, 3)) +>r3 : string >b["a b"] : string ->b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) ->"a b" : string, Symbol("a b", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 42, 13)) +>b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } +>"a b" : string // BUG 817263 var r4 = b["~!@#$%^&*()_+{}|:'<>?\/.,`"]; ->r4 : number, Symbol(r4, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 13, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 26, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 39, 3), Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 51, 3)) +>r4 : number >b["~!@#$%^&*()_+{}|:'<>?\/.,`"] : number ->b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; }, Symbol(b, Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 41, 3)) ->"~!@#$%^&*()_+{}|:'<>?\/.,`" : string, Symbol("~!@#$%^&*()_+{}|:'<>?\/.,`", Decl(objectTypeWithStringNamedPropertyOfIllegalCharacters.ts, 43, 16)) +>b : { " ": number; "a b": string; "~!@#$%^&*()_+{}|:'<>?\/.,`": number; } +>"~!@#$%^&*()_+{}|:'<>?\/.,`" : string diff --git a/tests/baselines/reference/objectTypesIdentity.symbols b/tests/baselines/reference/objectTypesIdentity.symbols new file mode 100644 index 0000000000000..a39b47acf5564 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentity.symbols @@ -0,0 +1,279 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentity.ts, 2, 9)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentity.ts, 6, 9)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentity.ts, 10, 8)) + + foo: T; +>foo : Symbol(foo, Decl(objectTypesIdentity.ts, 10, 12)) +>T : Symbol(T, Decl(objectTypesIdentity.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentity.ts, 14, 13)) +} + +var a: { foo: string; } +>a : Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentity.ts, 18, 8)) + +var b = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentity.ts, 19, 9)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentity.ts, 19, 20), Decl(objectTypesIdentity.ts, 21, 20), Decl(objectTypesIdentity.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 21, 14)) +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentity.ts, 19, 20), Decl(objectTypesIdentity.ts, 21, 20), Decl(objectTypesIdentity.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 22, 14)) +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentity.ts, 19, 20), Decl(objectTypesIdentity.ts, 21, 20), Decl(objectTypesIdentity.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 23, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentity.ts, 23, 25), Decl(objectTypesIdentity.ts, 25, 21), Decl(objectTypesIdentity.ts, 26, 21)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 25, 15)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentity.ts, 23, 25), Decl(objectTypesIdentity.ts, 25, 21), Decl(objectTypesIdentity.ts, 26, 21)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 26, 15)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentity.ts, 23, 25), Decl(objectTypesIdentity.ts, 25, 21), Decl(objectTypesIdentity.ts, 26, 21)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 27, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentity.ts, 27, 26), Decl(objectTypesIdentity.ts, 29, 29), Decl(objectTypesIdentity.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 29, 15)) +>C : Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentity.ts, 27, 26), Decl(objectTypesIdentity.ts, 29, 29), Decl(objectTypesIdentity.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 30, 15)) +>C : Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentity.ts, 27, 26), Decl(objectTypesIdentity.ts, 29, 29), Decl(objectTypesIdentity.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 31, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentity.ts, 31, 26), Decl(objectTypesIdentity.ts, 33, 20), Decl(objectTypesIdentity.ts, 34, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 33, 14)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentity.ts, 31, 26), Decl(objectTypesIdentity.ts, 33, 20), Decl(objectTypesIdentity.ts, 34, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 34, 14)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentity.ts, 31, 26), Decl(objectTypesIdentity.ts, 33, 20), Decl(objectTypesIdentity.ts, 34, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 35, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentity.ts, 35, 25), Decl(objectTypesIdentity.ts, 37, 27), Decl(objectTypesIdentity.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 37, 14)) +>a : Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentity.ts, 35, 25), Decl(objectTypesIdentity.ts, 37, 27), Decl(objectTypesIdentity.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 38, 14)) +>a : Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentity.ts, 35, 25), Decl(objectTypesIdentity.ts, 37, 27), Decl(objectTypesIdentity.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 39, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentity.ts, 39, 25), Decl(objectTypesIdentity.ts, 41, 27), Decl(objectTypesIdentity.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 41, 14)) +>b : Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentity.ts, 39, 25), Decl(objectTypesIdentity.ts, 41, 27), Decl(objectTypesIdentity.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 42, 14)) +>b : Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentity.ts, 39, 25), Decl(objectTypesIdentity.ts, 41, 27), Decl(objectTypesIdentity.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 43, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentity.ts, 43, 25), Decl(objectTypesIdentity.ts, 45, 20), Decl(objectTypesIdentity.ts, 46, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 45, 14)) +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentity.ts, 43, 25), Decl(objectTypesIdentity.ts, 45, 20), Decl(objectTypesIdentity.ts, 46, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 46, 14)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentity.ts, 43, 25), Decl(objectTypesIdentity.ts, 45, 20), Decl(objectTypesIdentity.ts, 46, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 47, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentity.ts, 47, 25), Decl(objectTypesIdentity.ts, 49, 21), Decl(objectTypesIdentity.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 49, 15)) +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentity.ts, 47, 25), Decl(objectTypesIdentity.ts, 49, 21), Decl(objectTypesIdentity.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 50, 15)) +>C : Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentity.ts, 47, 25), Decl(objectTypesIdentity.ts, 49, 21), Decl(objectTypesIdentity.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 51, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentity.ts, 51, 26), Decl(objectTypesIdentity.ts, 53, 20), Decl(objectTypesIdentity.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 53, 14)) +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + +function foo6(x: I); // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentity.ts, 51, 26), Decl(objectTypesIdentity.ts, 53, 20), Decl(objectTypesIdentity.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 54, 14)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentity.ts, 51, 26), Decl(objectTypesIdentity.ts, 53, 20), Decl(objectTypesIdentity.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 55, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentity.ts, 55, 25), Decl(objectTypesIdentity.ts, 57, 20), Decl(objectTypesIdentity.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentity.ts, 55, 25), Decl(objectTypesIdentity.ts, 57, 20), Decl(objectTypesIdentity.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 58, 14)) +>a : Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentity.ts, 55, 25), Decl(objectTypesIdentity.ts, 57, 20), Decl(objectTypesIdentity.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 59, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentity.ts, 59, 25), Decl(objectTypesIdentity.ts, 61, 20), Decl(objectTypesIdentity.ts, 62, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 61, 14)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentity.ts, 59, 25), Decl(objectTypesIdentity.ts, 61, 20), Decl(objectTypesIdentity.ts, 62, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 62, 14)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentity.ts, 59, 25), Decl(objectTypesIdentity.ts, 61, 20), Decl(objectTypesIdentity.ts, 62, 20)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 63, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentity.ts, 63, 25), Decl(objectTypesIdentity.ts, 65, 20), Decl(objectTypesIdentity.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentity.ts, 63, 25), Decl(objectTypesIdentity.ts, 65, 20), Decl(objectTypesIdentity.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 66, 14)) +>C : Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentity.ts, 63, 25), Decl(objectTypesIdentity.ts, 65, 20), Decl(objectTypesIdentity.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 67, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentity.ts, 67, 25), Decl(objectTypesIdentity.ts, 69, 21), Decl(objectTypesIdentity.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 69, 15)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentity.ts, 67, 25), Decl(objectTypesIdentity.ts, 69, 21), Decl(objectTypesIdentity.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 70, 15)) +>a : Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentity.ts, 67, 25), Decl(objectTypesIdentity.ts, 69, 21), Decl(objectTypesIdentity.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 71, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentity.ts, 71, 26), Decl(objectTypesIdentity.ts, 73, 21), Decl(objectTypesIdentity.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentity.ts, 71, 26), Decl(objectTypesIdentity.ts, 73, 21), Decl(objectTypesIdentity.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 74, 15)) +>b : Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentity.ts, 71, 26), Decl(objectTypesIdentity.ts, 73, 21), Decl(objectTypesIdentity.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 75, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentity.ts, 75, 26), Decl(objectTypesIdentity.ts, 77, 21), Decl(objectTypesIdentity.ts, 78, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 77, 15)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentity.ts, 75, 26), Decl(objectTypesIdentity.ts, 77, 21), Decl(objectTypesIdentity.ts, 78, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 78, 15)) +>C : Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentity.ts, 75, 26), Decl(objectTypesIdentity.ts, 77, 21), Decl(objectTypesIdentity.ts, 78, 29)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 79, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentity.ts, 79, 26), Decl(objectTypesIdentity.ts, 81, 21), Decl(objectTypesIdentity.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentity.ts, 79, 26), Decl(objectTypesIdentity.ts, 81, 21), Decl(objectTypesIdentity.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 82, 15)) +>a : Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentity.ts, 79, 26), Decl(objectTypesIdentity.ts, 81, 21), Decl(objectTypesIdentity.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 83, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentity.ts, 83, 26), Decl(objectTypesIdentity.ts, 85, 21), Decl(objectTypesIdentity.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 85, 15)) +>I : Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentity.ts, 83, 26), Decl(objectTypesIdentity.ts, 85, 21), Decl(objectTypesIdentity.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 86, 15)) +>b : Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentity.ts, 83, 26), Decl(objectTypesIdentity.ts, 85, 21), Decl(objectTypesIdentity.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentity.ts, 87, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentity.types b/tests/baselines/reference/objectTypesIdentity.types index 10bb1ea708026..3491682954ae7 100644 --- a/tests/baselines/reference/objectTypesIdentity.types +++ b/tests/baselines/reference/objectTypesIdentity.types @@ -2,280 +2,280 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentity.ts, 2, 9)) +>foo : string } class B { ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>B : B foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentity.ts, 6, 9)) +>foo : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentity.ts, 10, 8)) +>C : C +>T : T foo: T; ->foo : T, Symbol(foo, Decl(objectTypesIdentity.ts, 10, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentity.ts, 10, 8)) +>foo : T +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentity.ts, 14, 13)) +>foo : string } var a: { foo: string; } ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) ->foo : string, Symbol(foo, Decl(objectTypesIdentity.ts, 18, 8)) +>a : { foo: string; } +>foo : string var b = { foo: '' }; ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) +>b : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentity.ts, 19, 9)) +>foo : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentity.ts, 19, 20), Decl(objectTypesIdentity.ts, 21, 20), Decl(objectTypesIdentity.ts, 22, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentity.ts, 21, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentity.ts, 19, 20), Decl(objectTypesIdentity.ts, 21, 20), Decl(objectTypesIdentity.ts, 22, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentity.ts, 22, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentity.ts, 19, 20), Decl(objectTypesIdentity.ts, 21, 20), Decl(objectTypesIdentity.ts, 22, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 23, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentity.ts, 23, 25), Decl(objectTypesIdentity.ts, 25, 21), Decl(objectTypesIdentity.ts, 26, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 25, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentity.ts, 23, 25), Decl(objectTypesIdentity.ts, 25, 21), Decl(objectTypesIdentity.ts, 26, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 26, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentity.ts, 23, 25), Decl(objectTypesIdentity.ts, 25, 21), Decl(objectTypesIdentity.ts, 26, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 27, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentity.ts, 27, 26), Decl(objectTypesIdentity.ts, 29, 29), Decl(objectTypesIdentity.ts, 30, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentity.ts, 29, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentity.ts, 27, 26), Decl(objectTypesIdentity.ts, 29, 29), Decl(objectTypesIdentity.ts, 30, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentity.ts, 30, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentity.ts, 27, 26), Decl(objectTypesIdentity.ts, 29, 29), Decl(objectTypesIdentity.ts, 30, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 31, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentity.ts, 31, 26), Decl(objectTypesIdentity.ts, 33, 20), Decl(objectTypesIdentity.ts, 34, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 33, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentity.ts, 31, 26), Decl(objectTypesIdentity.ts, 33, 20), Decl(objectTypesIdentity.ts, 34, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 34, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentity.ts, 31, 26), Decl(objectTypesIdentity.ts, 33, 20), Decl(objectTypesIdentity.ts, 34, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 35, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentity.ts, 35, 25), Decl(objectTypesIdentity.ts, 37, 27), Decl(objectTypesIdentity.ts, 38, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 37, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentity.ts, 35, 25), Decl(objectTypesIdentity.ts, 37, 27), Decl(objectTypesIdentity.ts, 38, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 38, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo3(x: any) { } ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentity.ts, 35, 25), Decl(objectTypesIdentity.ts, 37, 27), Decl(objectTypesIdentity.ts, 38, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 39, 14)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentity.ts, 39, 25), Decl(objectTypesIdentity.ts, 41, 27), Decl(objectTypesIdentity.ts, 42, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 41, 14)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentity.ts, 39, 25), Decl(objectTypesIdentity.ts, 41, 27), Decl(objectTypesIdentity.ts, 42, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 42, 14)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo4(x: any) { } ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentity.ts, 39, 25), Decl(objectTypesIdentity.ts, 41, 27), Decl(objectTypesIdentity.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 43, 14)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentity.ts, 43, 25), Decl(objectTypesIdentity.ts, 45, 20), Decl(objectTypesIdentity.ts, 46, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentity.ts, 45, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentity.ts, 43, 25), Decl(objectTypesIdentity.ts, 45, 20), Decl(objectTypesIdentity.ts, 46, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 46, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentity.ts, 43, 25), Decl(objectTypesIdentity.ts, 45, 20), Decl(objectTypesIdentity.ts, 46, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 47, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentity.ts, 47, 25), Decl(objectTypesIdentity.ts, 49, 21), Decl(objectTypesIdentity.ts, 50, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentity.ts, 49, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentity.ts, 47, 25), Decl(objectTypesIdentity.ts, 49, 21), Decl(objectTypesIdentity.ts, 50, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentity.ts, 50, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentity.ts, 47, 25), Decl(objectTypesIdentity.ts, 49, 21), Decl(objectTypesIdentity.ts, 50, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 51, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentity.ts, 51, 26), Decl(objectTypesIdentity.ts, 53, 20), Decl(objectTypesIdentity.ts, 54, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentity.ts, 53, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentity.ts, 51, 26), Decl(objectTypesIdentity.ts, 53, 20), Decl(objectTypesIdentity.ts, 54, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 54, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentity.ts, 51, 26), Decl(objectTypesIdentity.ts, 53, 20), Decl(objectTypesIdentity.ts, 54, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 55, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentity.ts, 55, 25), Decl(objectTypesIdentity.ts, 57, 20), Decl(objectTypesIdentity.ts, 58, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentity.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentity.ts, 55, 25), Decl(objectTypesIdentity.ts, 57, 20), Decl(objectTypesIdentity.ts, 58, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 58, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentity.ts, 55, 25), Decl(objectTypesIdentity.ts, 57, 20), Decl(objectTypesIdentity.ts, 58, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 59, 14)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentity.ts, 59, 25), Decl(objectTypesIdentity.ts, 61, 20), Decl(objectTypesIdentity.ts, 62, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 61, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentity.ts, 59, 25), Decl(objectTypesIdentity.ts, 61, 20), Decl(objectTypesIdentity.ts, 62, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 62, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentity.ts, 59, 25), Decl(objectTypesIdentity.ts, 61, 20), Decl(objectTypesIdentity.ts, 62, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 63, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentity.ts, 63, 25), Decl(objectTypesIdentity.ts, 65, 20), Decl(objectTypesIdentity.ts, 66, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentity.ts, 63, 25), Decl(objectTypesIdentity.ts, 65, 20), Decl(objectTypesIdentity.ts, 66, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentity.ts, 66, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentity.ts, 63, 25), Decl(objectTypesIdentity.ts, 65, 20), Decl(objectTypesIdentity.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 67, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentity.ts, 67, 25), Decl(objectTypesIdentity.ts, 69, 21), Decl(objectTypesIdentity.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 69, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentity.ts, 67, 25), Decl(objectTypesIdentity.ts, 69, 21), Decl(objectTypesIdentity.ts, 70, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 70, 15)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentity.ts, 67, 25), Decl(objectTypesIdentity.ts, 69, 21), Decl(objectTypesIdentity.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 71, 15)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentity.ts, 71, 26), Decl(objectTypesIdentity.ts, 73, 21), Decl(objectTypesIdentity.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentity.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentity.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentity.ts, 71, 26), Decl(objectTypesIdentity.ts, 73, 21), Decl(objectTypesIdentity.ts, 74, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 74, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentity.ts, 71, 26), Decl(objectTypesIdentity.ts, 73, 21), Decl(objectTypesIdentity.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 75, 15)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentity.ts, 75, 26), Decl(objectTypesIdentity.ts, 77, 21), Decl(objectTypesIdentity.ts, 78, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 77, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentity.ts, 75, 26), Decl(objectTypesIdentity.ts, 77, 21), Decl(objectTypesIdentity.ts, 78, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentity.ts, 78, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentity.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentity.ts, 75, 26), Decl(objectTypesIdentity.ts, 77, 21), Decl(objectTypesIdentity.ts, 78, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 79, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentity.ts, 79, 26), Decl(objectTypesIdentity.ts, 81, 21), Decl(objectTypesIdentity.ts, 82, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentity.ts, 79, 26), Decl(objectTypesIdentity.ts, 81, 21), Decl(objectTypesIdentity.ts, 82, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 82, 15)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentity.ts, 18, 3)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentity.ts, 79, 26), Decl(objectTypesIdentity.ts, 81, 21), Decl(objectTypesIdentity.ts, 82, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 83, 15)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentity.ts, 83, 26), Decl(objectTypesIdentity.ts, 85, 21), Decl(objectTypesIdentity.ts, 86, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentity.ts, 85, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentity.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentity.ts, 83, 26), Decl(objectTypesIdentity.ts, 85, 21), Decl(objectTypesIdentity.ts, 86, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentity.ts, 86, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentity.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentity.ts, 83, 26), Decl(objectTypesIdentity.ts, 85, 21), Decl(objectTypesIdentity.ts, 86, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity.ts, 87, 15)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentity2.symbols b/tests/baselines/reference/objectTypesIdentity2.symbols new file mode 100644 index 0000000000000..e78def5ca0031 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentity2.symbols @@ -0,0 +1,204 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentity2.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) + + foo: number; +>foo : Symbol(foo, Decl(objectTypesIdentity2.ts, 2, 9)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) + + foo: boolean; +>foo : Symbol(foo, Decl(objectTypesIdentity2.ts, 6, 9)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentity2.ts, 10, 8)) + + foo: T; +>foo : Symbol(foo, Decl(objectTypesIdentity2.ts, 10, 12)) +>T : Symbol(T, Decl(objectTypesIdentity2.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) + + foo: Date; +>foo : Symbol(foo, Decl(objectTypesIdentity2.ts, 14, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +var a: { foo: RegExp; } +>a : Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentity2.ts, 18, 8)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +enum E { A } +>E : Symbol(E, Decl(objectTypesIdentity2.ts, 18, 23)) +>A : Symbol(E.A, Decl(objectTypesIdentity2.ts, 19, 8)) + +var b = { foo: E.A }; +>b : Symbol(b, Decl(objectTypesIdentity2.ts, 20, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentity2.ts, 20, 9)) +>E.A : Symbol(E.A, Decl(objectTypesIdentity2.ts, 19, 8)) +>E : Symbol(E, Decl(objectTypesIdentity2.ts, 18, 23)) +>A : Symbol(E.A, Decl(objectTypesIdentity2.ts, 19, 8)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentity2.ts, 20, 21), Decl(objectTypesIdentity2.ts, 22, 20), Decl(objectTypesIdentity2.ts, 23, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 22, 14)) +>A : Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentity2.ts, 20, 21), Decl(objectTypesIdentity2.ts, 22, 20), Decl(objectTypesIdentity2.ts, 23, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 23, 14)) +>B : Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentity2.ts, 20, 21), Decl(objectTypesIdentity2.ts, 22, 20), Decl(objectTypesIdentity2.ts, 23, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 24, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentity2.ts, 24, 25), Decl(objectTypesIdentity2.ts, 26, 21), Decl(objectTypesIdentity2.ts, 27, 29)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 26, 15)) +>A : Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentity2.ts, 24, 25), Decl(objectTypesIdentity2.ts, 26, 21), Decl(objectTypesIdentity2.ts, 27, 29)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentity2.ts, 24, 25), Decl(objectTypesIdentity2.ts, 26, 21), Decl(objectTypesIdentity2.ts, 27, 29)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 28, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentity2.ts, 28, 26), Decl(objectTypesIdentity2.ts, 30, 20), Decl(objectTypesIdentity2.ts, 31, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 30, 14)) +>A : Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentity2.ts, 28, 26), Decl(objectTypesIdentity2.ts, 30, 20), Decl(objectTypesIdentity2.ts, 31, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentity2.ts, 28, 26), Decl(objectTypesIdentity2.ts, 30, 20), Decl(objectTypesIdentity2.ts, 31, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 32, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentity2.ts, 32, 25), Decl(objectTypesIdentity2.ts, 34, 20), Decl(objectTypesIdentity2.ts, 35, 27)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 34, 14)) +>A : Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentity2.ts, 32, 25), Decl(objectTypesIdentity2.ts, 34, 20), Decl(objectTypesIdentity2.ts, 35, 27)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentity2.ts, 32, 25), Decl(objectTypesIdentity2.ts, 34, 20), Decl(objectTypesIdentity2.ts, 35, 27)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 36, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentity2.ts, 36, 25), Decl(objectTypesIdentity2.ts, 38, 20), Decl(objectTypesIdentity2.ts, 39, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 38, 14)) +>B : Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentity2.ts, 36, 25), Decl(objectTypesIdentity2.ts, 38, 20), Decl(objectTypesIdentity2.ts, 39, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentity2.ts, 36, 25), Decl(objectTypesIdentity2.ts, 38, 20), Decl(objectTypesIdentity2.ts, 39, 20)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 40, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentity2.ts, 40, 25), Decl(objectTypesIdentity2.ts, 42, 20), Decl(objectTypesIdentity2.ts, 43, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 42, 14)) +>B : Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentity2.ts, 40, 25), Decl(objectTypesIdentity2.ts, 42, 20), Decl(objectTypesIdentity2.ts, 43, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 43, 14)) +>C : Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentity2.ts, 40, 25), Decl(objectTypesIdentity2.ts, 42, 20), Decl(objectTypesIdentity2.ts, 43, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 44, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentity2.ts, 44, 25), Decl(objectTypesIdentity2.ts, 46, 21), Decl(objectTypesIdentity2.ts, 47, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 46, 15)) +>B : Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentity2.ts, 44, 25), Decl(objectTypesIdentity2.ts, 46, 21), Decl(objectTypesIdentity2.ts, 47, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 47, 15)) +>a : Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentity2.ts, 44, 25), Decl(objectTypesIdentity2.ts, 46, 21), Decl(objectTypesIdentity2.ts, 47, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 48, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentity2.ts, 48, 26), Decl(objectTypesIdentity2.ts, 50, 21), Decl(objectTypesIdentity2.ts, 51, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 50, 15)) +>B : Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentity2.ts, 48, 26), Decl(objectTypesIdentity2.ts, 50, 21), Decl(objectTypesIdentity2.ts, 51, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 51, 15)) +>b : Symbol(b, Decl(objectTypesIdentity2.ts, 20, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentity2.ts, 48, 26), Decl(objectTypesIdentity2.ts, 50, 21), Decl(objectTypesIdentity2.ts, 51, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 52, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentity2.ts, 52, 26), Decl(objectTypesIdentity2.ts, 54, 21), Decl(objectTypesIdentity2.ts, 55, 29)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 54, 15)) +>I : Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentity2.ts, 52, 26), Decl(objectTypesIdentity2.ts, 54, 21), Decl(objectTypesIdentity2.ts, 55, 29)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 55, 15)) +>C : Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentity2.ts, 52, 26), Decl(objectTypesIdentity2.ts, 54, 21), Decl(objectTypesIdentity2.ts, 55, 29)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 56, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentity2.ts, 56, 26), Decl(objectTypesIdentity2.ts, 58, 21), Decl(objectTypesIdentity2.ts, 59, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 58, 15)) +>I : Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentity2.ts, 56, 26), Decl(objectTypesIdentity2.ts, 58, 21), Decl(objectTypesIdentity2.ts, 59, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 59, 15)) +>a : Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentity2.ts, 56, 26), Decl(objectTypesIdentity2.ts, 58, 21), Decl(objectTypesIdentity2.ts, 59, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 60, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentity2.ts, 60, 26), Decl(objectTypesIdentity2.ts, 62, 21), Decl(objectTypesIdentity2.ts, 63, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 62, 15)) +>I : Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentity2.ts, 60, 26), Decl(objectTypesIdentity2.ts, 62, 21), Decl(objectTypesIdentity2.ts, 63, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 63, 15)) +>b : Symbol(b, Decl(objectTypesIdentity2.ts, 20, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentity2.ts, 60, 26), Decl(objectTypesIdentity2.ts, 62, 21), Decl(objectTypesIdentity2.ts, 63, 28)) +>x : Symbol(x, Decl(objectTypesIdentity2.ts, 64, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentity2.types b/tests/baselines/reference/objectTypesIdentity2.types index f51b59cb98fe8..1969d55bd11f2 100644 --- a/tests/baselines/reference/objectTypesIdentity2.types +++ b/tests/baselines/reference/objectTypesIdentity2.types @@ -2,204 +2,204 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) +>A : A foo: number; ->foo : number, Symbol(foo, Decl(objectTypesIdentity2.ts, 2, 9)) +>foo : number } class B { ->B : B, Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) +>B : B foo: boolean; ->foo : boolean, Symbol(foo, Decl(objectTypesIdentity2.ts, 6, 9)) +>foo : boolean } class C { ->C : C, Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentity2.ts, 10, 8)) +>C : C +>T : T foo: T; ->foo : T, Symbol(foo, Decl(objectTypesIdentity2.ts, 10, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentity2.ts, 10, 8)) +>foo : T +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) +>I : I foo: Date; ->foo : Date, Symbol(foo, Decl(objectTypesIdentity2.ts, 14, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo : Date +>Date : Date } var a: { foo: RegExp; } ->a : { foo: RegExp; }, Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) ->foo : RegExp, Symbol(foo, Decl(objectTypesIdentity2.ts, 18, 8)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>a : { foo: RegExp; } +>foo : RegExp +>RegExp : RegExp enum E { A } ->E : E, Symbol(E, Decl(objectTypesIdentity2.ts, 18, 23)) ->A : E, Symbol(E.A, Decl(objectTypesIdentity2.ts, 19, 8)) +>E : E +>A : E var b = { foo: E.A }; ->b : { foo: E; }, Symbol(b, Decl(objectTypesIdentity2.ts, 20, 3)) +>b : { foo: E; } >{ foo: E.A } : { foo: E; } ->foo : E, Symbol(foo, Decl(objectTypesIdentity2.ts, 20, 9)) ->E.A : E, Symbol(E.A, Decl(objectTypesIdentity2.ts, 19, 8)) ->E : typeof E, Symbol(E, Decl(objectTypesIdentity2.ts, 18, 23)) ->A : E, Symbol(E.A, Decl(objectTypesIdentity2.ts, 19, 8)) +>foo : E +>E.A : E +>E : typeof E +>A : E function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentity2.ts, 20, 21), Decl(objectTypesIdentity2.ts, 22, 20), Decl(objectTypesIdentity2.ts, 23, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentity2.ts, 22, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentity2.ts, 20, 21), Decl(objectTypesIdentity2.ts, 22, 20), Decl(objectTypesIdentity2.ts, 23, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentity2.ts, 23, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentity2.ts, 20, 21), Decl(objectTypesIdentity2.ts, 22, 20), Decl(objectTypesIdentity2.ts, 23, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 24, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentity2.ts, 24, 25), Decl(objectTypesIdentity2.ts, 26, 21), Decl(objectTypesIdentity2.ts, 27, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentity2.ts, 26, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentity2.ts, 24, 25), Decl(objectTypesIdentity2.ts, 26, 21), Decl(objectTypesIdentity2.ts, 27, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentity2.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentity2.ts, 24, 25), Decl(objectTypesIdentity2.ts, 26, 21), Decl(objectTypesIdentity2.ts, 27, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 28, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentity2.ts, 28, 26), Decl(objectTypesIdentity2.ts, 30, 20), Decl(objectTypesIdentity2.ts, 31, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentity2.ts, 30, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentity2.ts, 28, 26), Decl(objectTypesIdentity2.ts, 30, 20), Decl(objectTypesIdentity2.ts, 31, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentity2.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentity2.ts, 28, 26), Decl(objectTypesIdentity2.ts, 30, 20), Decl(objectTypesIdentity2.ts, 31, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 32, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo: RegExp; }): any; }, Symbol(foo7, Decl(objectTypesIdentity2.ts, 32, 25), Decl(objectTypesIdentity2.ts, 34, 20), Decl(objectTypesIdentity2.ts, 35, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentity2.ts, 34, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentity2.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo: RegExp; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo: RegExp; }): any; }, Symbol(foo7, Decl(objectTypesIdentity2.ts, 32, 25), Decl(objectTypesIdentity2.ts, 34, 20), Decl(objectTypesIdentity2.ts, 35, 27)) ->x : { foo: RegExp; }, Symbol(x, Decl(objectTypesIdentity2.ts, 35, 14)) ->a : { foo: RegExp; }, Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) +>foo7 : { (x: A): any; (x: { foo: RegExp; }): any; } +>x : { foo: RegExp; } +>a : { foo: RegExp; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo: RegExp; }): any; }, Symbol(foo7, Decl(objectTypesIdentity2.ts, 32, 25), Decl(objectTypesIdentity2.ts, 34, 20), Decl(objectTypesIdentity2.ts, 35, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 36, 14)) +>foo7 : { (x: A): any; (x: { foo: RegExp; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentity2.ts, 36, 25), Decl(objectTypesIdentity2.ts, 38, 20), Decl(objectTypesIdentity2.ts, 39, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentity2.ts, 38, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentity2.ts, 36, 25), Decl(objectTypesIdentity2.ts, 38, 20), Decl(objectTypesIdentity2.ts, 39, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentity2.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentity2.ts, 36, 25), Decl(objectTypesIdentity2.ts, 38, 20), Decl(objectTypesIdentity2.ts, 39, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 40, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentity2.ts, 40, 25), Decl(objectTypesIdentity2.ts, 42, 20), Decl(objectTypesIdentity2.ts, 43, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentity2.ts, 42, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentity2.ts, 40, 25), Decl(objectTypesIdentity2.ts, 42, 20), Decl(objectTypesIdentity2.ts, 43, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentity2.ts, 43, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentity2.ts, 40, 25), Decl(objectTypesIdentity2.ts, 42, 20), Decl(objectTypesIdentity2.ts, 43, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 44, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo: RegExp; }): any; }, Symbol(foo10, Decl(objectTypesIdentity2.ts, 44, 25), Decl(objectTypesIdentity2.ts, 46, 21), Decl(objectTypesIdentity2.ts, 47, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentity2.ts, 46, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo: RegExp; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo: RegExp; }): any; }, Symbol(foo10, Decl(objectTypesIdentity2.ts, 44, 25), Decl(objectTypesIdentity2.ts, 46, 21), Decl(objectTypesIdentity2.ts, 47, 28)) ->x : { foo: RegExp; }, Symbol(x, Decl(objectTypesIdentity2.ts, 47, 15)) ->a : { foo: RegExp; }, Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) +>foo10 : { (x: B): any; (x: { foo: RegExp; }): any; } +>x : { foo: RegExp; } +>a : { foo: RegExp; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo: RegExp; }): any; }, Symbol(foo10, Decl(objectTypesIdentity2.ts, 44, 25), Decl(objectTypesIdentity2.ts, 46, 21), Decl(objectTypesIdentity2.ts, 47, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 48, 15)) +>foo10 : { (x: B): any; (x: { foo: RegExp; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo: E; }): any; }, Symbol(foo11, Decl(objectTypesIdentity2.ts, 48, 26), Decl(objectTypesIdentity2.ts, 50, 21), Decl(objectTypesIdentity2.ts, 51, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentity2.ts, 50, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentity2.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo: E; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo: E; }): any; }, Symbol(foo11, Decl(objectTypesIdentity2.ts, 48, 26), Decl(objectTypesIdentity2.ts, 50, 21), Decl(objectTypesIdentity2.ts, 51, 28)) ->x : { foo: E; }, Symbol(x, Decl(objectTypesIdentity2.ts, 51, 15)) ->b : { foo: E; }, Symbol(b, Decl(objectTypesIdentity2.ts, 20, 3)) +>foo11 : { (x: B): any; (x: { foo: E; }): any; } +>x : { foo: E; } +>b : { foo: E; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo: E; }): any; }, Symbol(foo11, Decl(objectTypesIdentity2.ts, 48, 26), Decl(objectTypesIdentity2.ts, 50, 21), Decl(objectTypesIdentity2.ts, 51, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 52, 15)) +>foo11 : { (x: B): any; (x: { foo: E; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentity2.ts, 52, 26), Decl(objectTypesIdentity2.ts, 54, 21), Decl(objectTypesIdentity2.ts, 55, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentity2.ts, 54, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentity2.ts, 52, 26), Decl(objectTypesIdentity2.ts, 54, 21), Decl(objectTypesIdentity2.ts, 55, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentity2.ts, 55, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentity2.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentity2.ts, 52, 26), Decl(objectTypesIdentity2.ts, 54, 21), Decl(objectTypesIdentity2.ts, 55, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 56, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo: RegExp; }): any; }, Symbol(foo13, Decl(objectTypesIdentity2.ts, 56, 26), Decl(objectTypesIdentity2.ts, 58, 21), Decl(objectTypesIdentity2.ts, 59, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentity2.ts, 58, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo: RegExp; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo: RegExp; }): any; }, Symbol(foo13, Decl(objectTypesIdentity2.ts, 56, 26), Decl(objectTypesIdentity2.ts, 58, 21), Decl(objectTypesIdentity2.ts, 59, 28)) ->x : { foo: RegExp; }, Symbol(x, Decl(objectTypesIdentity2.ts, 59, 15)) ->a : { foo: RegExp; }, Symbol(a, Decl(objectTypesIdentity2.ts, 18, 3)) +>foo13 : { (x: I): any; (x: { foo: RegExp; }): any; } +>x : { foo: RegExp; } +>a : { foo: RegExp; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo: RegExp; }): any; }, Symbol(foo13, Decl(objectTypesIdentity2.ts, 56, 26), Decl(objectTypesIdentity2.ts, 58, 21), Decl(objectTypesIdentity2.ts, 59, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 60, 15)) +>foo13 : { (x: I): any; (x: { foo: RegExp; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo: E; }): any; }, Symbol(foo14, Decl(objectTypesIdentity2.ts, 60, 26), Decl(objectTypesIdentity2.ts, 62, 21), Decl(objectTypesIdentity2.ts, 63, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentity2.ts, 62, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentity2.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo: E; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo: E; }): any; }, Symbol(foo14, Decl(objectTypesIdentity2.ts, 60, 26), Decl(objectTypesIdentity2.ts, 62, 21), Decl(objectTypesIdentity2.ts, 63, 28)) ->x : { foo: E; }, Symbol(x, Decl(objectTypesIdentity2.ts, 63, 15)) ->b : { foo: E; }, Symbol(b, Decl(objectTypesIdentity2.ts, 20, 3)) +>foo14 : { (x: I): any; (x: { foo: E; }): any; } +>x : { foo: E; } +>b : { foo: E; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo: E; }): any; }, Symbol(foo14, Decl(objectTypesIdentity2.ts, 60, 26), Decl(objectTypesIdentity2.ts, 62, 21), Decl(objectTypesIdentity2.ts, 63, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentity2.ts, 64, 15)) +>foo14 : { (x: I): any; (x: { foo: E; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.symbols b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.symbols new file mode 100644 index 0000000000000..e1131a019c01f --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.symbols @@ -0,0 +1,325 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + + foo(x: string): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 2, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + + foo(x: string): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 6, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 7, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 8)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 11, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 14, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 15, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignatures.ts, 16, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 13)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 19, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 13)) +} + +var a: { foo(x: string): string } +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 13)) + +var b = { foo(x: string) { return ''; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 14)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + +function foo6(x: I); // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignatures.ts, 16, 1)) + +function foo12b(x: C); // error +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignatures.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types index 7c3b36091c2bf..545e2376bb34b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.types @@ -2,329 +2,329 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>A : A foo(x: string): string { return null; } ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 2, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 3, 8)) +>foo : (x: string) => string +>x : string >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>B : B foo(x: string): string { return null; } ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 6, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 7, 8)) +>foo : (x: string) => string +>x : string >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 8)) +>C : C +>T : T foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 11, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 10, 8)) +>foo : (x: T) => T +>x : T +>T : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>I : I foo(x: string): string; ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 14, 13)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 15, 8)) +>foo : (x: string) => string +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignatures.ts, 16, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 13)) +>I2 : I2 +>T : T foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 17)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 19, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures.ts, 18, 13)) +>foo : (x: T) => T +>x : T +>T : T +>T : T } var a: { foo(x: string): string } ->a : { foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 8)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 13)) +>a : { foo(x: string): string; } +>foo : (x: string) => string +>x : string var b = { foo(x: string) { return ''; } }; ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) +>b : { foo(x: string): string; } >{ foo(x: string) { return ''; } } : { foo(x: string): string; } ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 14)) +>foo : (x: string) => string +>x : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 30, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 30, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 30, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures.ts, 34, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 38, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 42, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 41, 14)) ->a : { foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) +>foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>a : { foo(x: string): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 42, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 42, 14)) ->a : { foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) +>foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>a : { foo(x: string): string; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 14)) +>foo3 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 46, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 45, 14)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) +>foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 46, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 46, 14)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) +>foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 14)) +>foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 50, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 50, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 50, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 54, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 54, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 54, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 58, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 58, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 58, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 62, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 62, 14)) ->a : { foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>a : { foo(x: string): string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: string): string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 66, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 66, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 66, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 70, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 74, 28)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 74, 15)) ->a : { foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>a : { foo(x: string): string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 78, 28)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 78, 15)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 82, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 82, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 82, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures.ts, 86, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignatures.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // error ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures.ts, 86, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures.ts, 86, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 90, 28)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 90, 15)) ->a : { foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>a : { foo(x: string): string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 94, 28)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 94, 15)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures.ts, 98, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignatures.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures.ts, 98, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures.ts, 98, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.symbols b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.symbols new file mode 100644 index 0000000000000..85c138a8c34b2 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.symbols @@ -0,0 +1,327 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignatures2.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + + foo(x: string): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 2, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + + foo(x: number): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 6, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 7, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 8)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 11, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + + foo(x: boolean): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 14, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 15, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignatures2.ts, 16, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 13)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 19, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 13)) +} + +var a: { foo(x: Date): string } +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var b = { foo(x: RegExp) { return ''; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 14)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignatures2.ts, 16, 1)) + +function foo12b(x: C); // error +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignatures2.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types index a4451c3923dbf..378c5c4fa0cc8 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.types @@ -2,331 +2,331 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>A : A foo(x: string): string { return null; } ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 2, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 3, 8)) +>foo : (x: string) => string +>x : string >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>B : B foo(x: number): string { return null; } ->foo : (x: number) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 6, 9)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 7, 8)) +>foo : (x: number) => string +>x : number >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 8)) +>C : C +>T : T foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 11, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 10, 8)) +>foo : (x: T) => T +>x : T +>T : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>I : I foo(x: boolean): string; ->foo : (x: boolean) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 14, 13)) ->x : boolean, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 15, 8)) +>foo : (x: boolean) => string +>x : boolean } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignatures2.ts, 16, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 13)) +>I2 : I2 +>T : T foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 17)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 19, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignatures2.ts, 18, 13)) +>foo : (x: T) => T +>x : T +>T : T +>T : T } var a: { foo(x: Date): string } ->a : { foo(x: Date): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) ->foo : (x: Date) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 8)) ->x : Date, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : { foo(x: Date): string; } +>foo : (x: Date) => string +>x : Date +>Date : Date var b = { foo(x: RegExp) { return ''; } }; ->b : { foo(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) +>b : { foo(x: RegExp): string; } >{ foo(x: RegExp) { return ''; } } : { foo(x: RegExp): string; } ->foo : (x: RegExp) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 9)) ->x : RegExp, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 14)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>foo : (x: RegExp) => string +>x : RegExp +>RegExp : RegExp >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 42), Decl(objectTypesIdentityWithCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 29, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 30, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 33, 29), Decl(objectTypesIdentityWithCallSignatures2.ts, 34, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 37, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 38, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 27)) ->x : { foo(x: Date): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 14)) ->a : { foo(x: Date): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) +>foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; } +>x : { foo(x: Date): string; } +>a : { foo(x: Date): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 27)) ->x : { foo(x: Date): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 14)) ->a : { foo(x: Date): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) +>foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; } +>x : { foo(x: Date): string; } +>a : { foo(x: Date): string; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 14)) +>foo3 : { (x: { foo(x: Date): string; }): any; (x: { foo(x: Date): string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 27)) ->x : { foo(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 14)) ->b : { foo(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) +>foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; } +>x : { foo(x: RegExp): string; } +>b : { foo(x: RegExp): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 27)) ->x : { foo(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 14)) ->b : { foo(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) +>foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; } +>x : { foo(x: RegExp): string; } +>b : { foo(x: RegExp): string; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 14)) +>foo4 : { (x: { foo(x: RegExp): string; }): any; (x: { foo(x: RegExp): string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 50, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 54, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 58, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignatures2.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 27)) ->x : { foo(x: Date): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 14)) ->a : { foo(x: Date): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; } +>x : { foo(x: Date): string; } +>a : { foo(x: Date): string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: Date): string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 65, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 66, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 69, 20), Decl(objectTypesIdentityWithCallSignatures2.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 28)) ->x : { foo(x: Date): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 15)) ->a : { foo(x: Date): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; } +>x : { foo(x: Date): string; } +>a : { foo(x: Date): string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithCallSignatures2.ts, 73, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: Date): string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignatures2.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 28)) ->x : { foo(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 15)) ->b : { foo(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; } +>x : { foo(x: RegExp): string; } +>b : { foo(x: RegExp): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 77, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: RegExp): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 81, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 82, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignatures2.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // error ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 85, 31), Decl(objectTypesIdentityWithCallSignatures2.ts, 86, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 28)) ->x : { foo(x: Date): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 15)) ->a : { foo(x: Date): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignatures2.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; } +>x : { foo(x: Date): string; } +>a : { foo(x: Date): string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithCallSignatures2.ts, 89, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: Date): string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignatures2.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 28)) ->x : { foo(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 15)) ->b : { foo(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignatures2.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; } +>x : { foo(x: RegExp): string; } +>b : { foo(x: RegExp): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 93, 21), Decl(objectTypesIdentityWithCallSignatures2.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: RegExp): string; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignatures2.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignatures2.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithCallSignatures2.ts, 97, 30), Decl(objectTypesIdentityWithCallSignatures2.ts, 98, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignatures2.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.symbols b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.symbols new file mode 100644 index 0000000000000..9341ba35c42f5 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.symbols @@ -0,0 +1,329 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + + foo(x: string): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 2, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + + foo(x: string, y: string): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 6, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 7, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 7, 18)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) + + foo(x: T, y: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 11, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 11, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 14, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 15, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 16, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 13)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 19, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 13)) +} + +var a: { foo(x: string, y: string): string } +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 23)) + +var b = { foo(x: string) { return ''; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 14)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 42), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 42), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 42), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo6(x: I); // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 31), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 16, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 31), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 31), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 30), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 30), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 30), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types index f3f582f795f7e..62426cb033338 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.types @@ -2,333 +2,333 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>A : A foo(x: string): string { return null; } ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 2, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 3, 8)) +>foo : (x: string) => string +>x : string >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>B : B foo(x: string, y: string): string { return null; } ->foo : (x: string, y: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 6, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 7, 8)) ->y : string, Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 7, 18)) +>foo : (x: string, y: string) => string +>x : string +>y : string >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) +>C : C +>T : T foo(x: T, y: T): T { return null; } ->foo : (x: T, y: T) => T, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 11, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 11, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 10, 8)) +>foo : (x: T, y: T) => T +>x : T +>T : T +>y : T +>T : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>I : I foo(x: string): string; ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 14, 13)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 15, 8)) +>foo : (x: string) => string +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 16, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 13)) +>I2 : I2 +>T : T foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 17)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 19, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 18, 13)) +>foo : (x: T) => T +>x : T +>T : T +>T : T } var a: { foo(x: string, y: string): string } ->a : { foo(x: string, y: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) ->foo : (x: string, y: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 8)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 13)) ->y : string, Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 23)) +>a : { foo(x: string, y: string): string; } +>foo : (x: string, y: string) => string +>x : string +>y : string var b = { foo(x: string) { return ''; } }; ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) +>b : { foo(x: string): string; } >{ foo(x: string) { return ''; } } : { foo(x: string): string; } ->foo : (x: string) => string, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 14)) +>foo : (x: string) => string +>x : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 42), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 42), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 42), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 25, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 27, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 29, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 30, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 31, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 33, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 34, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 35, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 37, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 38, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 27)) ->x : { foo(x: string, y: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 14)) ->a : { foo(x: string, y: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) +>foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; } +>x : { foo(x: string, y: string): string; } +>a : { foo(x: string, y: string): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 27)) ->x : { foo(x: string, y: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 14)) ->a : { foo(x: string, y: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) +>foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; } +>x : { foo(x: string, y: string): string; } +>a : { foo(x: string, y: string): string; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 41, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 14)) +>foo3 : { (x: { foo(x: string, y: string): string; }): any; (x: { foo(x: string, y: string): string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 14)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) +>foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 27)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 14)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) +>foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 45, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 14)) +>foo4 : { (x: { foo(x: string): string; }): any; (x: { foo(x: string): string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 49, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 50, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 51, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 54, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 57, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 58, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 27)) ->x : { foo(x: string, y: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 14)) ->a : { foo(x: string, y: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; } +>x : { foo(x: string, y: string): string; } +>a : { foo(x: string, y: string): string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 61, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: string, y: string): string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 66, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 69, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 28)) ->x : { foo(x: string, y: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 15)) ->a : { foo(x: string, y: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; } +>x : { foo(x: string, y: string): string; } +>a : { foo(x: string, y: string): string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 71, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 73, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: string, y: string): string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 28)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 15)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 75, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 77, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: string): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 79, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 81, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 82, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 31), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 31), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 83, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 85, 31), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 86, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 28)) ->x : { foo(x: string, y: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 15)) ->a : { foo(x: string, y: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; } +>x : { foo(x: string, y: string): string; } +>a : { foo(x: string, y: string): string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 87, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: string, y: string): string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 28)) ->x : { foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 15)) ->b : { foo(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : { foo(x: string): string; } +>b : { foo(x: string): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: string): string; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 30), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 30), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 97, 30), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 98, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.symbols b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.symbols new file mode 100644 index 0000000000000..6f37ae8eef94a --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.symbols @@ -0,0 +1,137 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts === +// object types are identical structurally + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) + + (x: string): string; +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 3, 5)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 6, 13)) + + (x: T): T; +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 7, 5)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 6, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 6, 13)) +} + +var a: { (x: string, y: string): string } +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 10)) +>y : Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 20)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 41), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 41), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 41), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 14)) + +function foo4(x: I2); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 14)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo4(x: I2); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 14)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 14)) + +function foo5(x: I2); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 14)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo5(x: I2); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 14)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 14)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) + +function foo14(x: I2); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 15)) + +function foo14b(x: typeof a); +>foo14b : Symbol(foo14b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 31)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 16)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) + +function foo14b(x: I2); // ok +>foo14b : Symbol(foo14b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 31)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo14b(x: any) { } +>foo14b : Symbol(foo14b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 31)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 16)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) + +function foo15(x: I2); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 42, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types index 5eadb6a3ff743..b72d0a799e4f1 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.types @@ -2,136 +2,136 @@ // object types are identical structurally interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) +>I : I (x: string): string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 3, 5)) +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 6, 13)) +>I2 : I2 +>T : T (x: T): T; ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 7, 5)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 6, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 6, 13)) +>x : T +>T : T +>T : T } var a: { (x: string, y: string): string } ->a : (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 10)) ->y : string, Symbol(y, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 20)) +>a : (x: string, y: string) => string +>x : string +>y : string function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 41), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 41), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 41), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 12, 20), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 13, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 27)) ->x : (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 14)) ->a : (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) +>foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; } +>x : (x: string, y: string) => string +>a : (x: string, y: string) => string function foo3(x: typeof a); // error ->foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 27)) ->x : (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 14)) ->a : (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) +>foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; } +>x : (x: string, y: string) => string +>a : (x: string, y: string) => string function foo3(x: any) { } ->foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 14, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 17, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 14)) +>foo3 : { (x: (x: string, y: string) => string): any; (x: (x: string, y: string) => string): any; } +>x : any function foo4(x: I2); ->foo4 : { (x: I2): any; (x: I2): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 14)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo4 : { (x: I2): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo4(x: I2); // error ->foo4 : { (x: I2): any; (x: I2): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 14)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo4 : { (x: I2): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo4(x: any) { } ->foo4 : { (x: I2): any; (x: I2): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 18, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 20, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 21, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 14)) +>foo4 : { (x: I2): any; (x: I2): any; } +>x : any function foo5(x: I2); ->foo5 : { (x: I2): any; (x: I2): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 14)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo5 : { (x: I2): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo5(x: I2); // ok ->foo5 : { (x: I2): any; (x: I2): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 14)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo5 : { (x: I2): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo5(x: any) { } ->foo5 : { (x: I2): any; (x: I2): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 22, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 24, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 25, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 14)) +>foo5 : { (x: I2): any; (x: I2): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) +>foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 28)) ->x : (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 15)) ->a : (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) +>foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; } +>x : (x: string, y: string) => string +>a : (x: string, y: string) => string function foo13(x: any) { } ->foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 26, 25), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 28, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 29, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 15)) +>foo13 : { (x: I): any; (x: (x: string, y: string) => string): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: I2): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 30)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) +>foo14 : { (x: I): any; (x: I2): any; } +>x : I +>I : I function foo14(x: I2); // error ->foo14 : { (x: I): any; (x: I2): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo14 : { (x: I): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo14(x: any) { } ->foo14 : { (x: I): any; (x: I2): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 30, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 32, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 33, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 15)) +>foo14 : { (x: I): any; (x: I2): any; } +>x : any function foo14b(x: typeof a); ->foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; }, Symbol(foo14b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 31)) ->x : (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 16)) ->a : (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 10, 3)) +>foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; } +>x : (x: string, y: string) => string +>a : (x: string, y: string) => string function foo14b(x: I2); // ok ->foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; }, Symbol(foo14b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 31)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo14b(x: any) { } ->foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; }, Symbol(foo14b, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 34, 26), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 36, 29), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 37, 31)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 16)) +>foo14b : { (x: (x: string, y: string) => string): any; (x: I2): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: I2): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 30)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 0, 0)) +>foo15 : { (x: I): any; (x: I2): any; } +>x : I +>I : I function foo15(x: I2); // ok ->foo15 : { (x: I): any; (x: I2): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 4, 1)) +>foo15 : { (x: I): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo15(x: any) { } ->foo15 : { (x: I): any; (x: I2): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 38, 27), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 40, 21), Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 41, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesDifferingParamCounts2.ts, 42, 15)) +>foo15 : { (x: I): any; (x: I2): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.symbols b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.symbols new file mode 100644 index 0000000000000..6575c6787fd0f --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.symbols @@ -0,0 +1,376 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithCallSignaturesWithOverloads.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + + foo(x: number): number; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 2, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 8)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 2, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 8)) + + foo(x: any): any { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 2, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 5, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + + foo(x: number): number; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 8, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 8)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 8, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 8)) + + foo(x: any): any { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 8, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 11, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 8)) + + foo(x: number): number; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 8)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 8)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 8)) + + foo(x: any): any { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 18, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + + foo(x: number): number; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 21, 13), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 22, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 22, 8)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 21, 13), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 22, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 23, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 24, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 13)) + + foo(x: number): number; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 17), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 8)) + + foo(x: string): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 17), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 8)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 17), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 29, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 13)) +} + +var a: { +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) + + foo(x: number): number +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 8), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 33, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 33, 8)) + + foo(x: string): string +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 8), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 33, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 34, 8)) +} + +var b = { +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) + + foo(x: any) { return ''; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 38, 8)) + +}; + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 39, 2), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 39, 2), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 39, 2), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 29), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 29), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 29), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + +function foo6(x: I); // BUG 831930 +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) + +function foo7(x: typeof a); // BUG 831930 +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo8(x: I); // BUG 831930 +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo10(x: typeof a); // BUG 831930 +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 31), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 24, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 31), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 31), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 30), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 24, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 30), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 30), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 115, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types index b7ecd94223328..edaad51b32ea7 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.types @@ -2,381 +2,381 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>A : A foo(x: number): number; ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 2, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 27)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : number foo(x: string): string; ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 2, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 27)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : string foo(x: any): any { return null; } ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 2, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 3, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 4, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 5, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : any >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>B : B foo(x: number): number; ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 8, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 27)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : number foo(x: string): string; ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 8, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 27)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : string foo(x: any): any { return null; } ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 8, 9), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 9, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 10, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 11, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : any >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 8)) +>C : C +>T : T foo(x: number): number; ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 8)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : number foo(x: string): string; ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 8)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : string foo(x: T): T; ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 8)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : T +>T : T +>T : T foo(x: any): any { return null; } ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 14, 12), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 15, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 16, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 17, 17)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 18, 8)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : any >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>I : I foo(x: number): number; ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 21, 13), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 22, 27)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 22, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : number foo(x: string): string; ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 21, 13), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 22, 27)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 23, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 24, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 13)) +>I2 : I2 +>T : T foo(x: number): number; ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 17), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 27)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 8)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : number foo(x: string): string; ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 17), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 27)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 8)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : string foo(x: T): T; ->foo : { (x: number): number; (x: string): string; (x: T): T; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 17), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 27, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 28, 27)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 29, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 26, 13)) +>foo : { (x: number): number; (x: string): string; (x: T): T; } +>x : T +>T : T +>T : T } var a: { ->a : { foo(x: number): number; foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) +>a : { foo(x: number): number; foo(x: string): string; } foo(x: number): number ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 8), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 33, 26)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 33, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : number foo(x: string): string ->foo : { (x: number): number; (x: string): string; }, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 8), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 33, 26)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 34, 8)) +>foo : { (x: number): number; (x: string): string; } +>x : string } var b = { ->b : { foo(x: any): any; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) +>b : { foo(x: any): any; } >{ foo(x: any) { return ''; }} : { foo(x: any): any; } foo(x: any) { return ''; } ->foo : (x: any) => any, Symbol(foo, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 9)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 38, 8)) +>foo : (x: any) => any +>x : any >'' : any >'' : string }; function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 39, 2), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 39, 2), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 39, 2), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 41, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 42, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 43, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 45, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 46, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 29), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 29), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 47, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 49, 29), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 50, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 51, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 53, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 54, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 27)) ->x : { foo(x: number): number; foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 14)) ->a : { foo(x: number): number; foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) +>foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : { foo(x: number): number; foo(x: string): string; } +>a : { foo(x: number): number; foo(x: string): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 27)) ->x : { foo(x: number): number; foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 14)) ->a : { foo(x: number): number; foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) +>foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : { foo(x: number): number; foo(x: string): string; } +>a : { foo(x: number): number; foo(x: string): string; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 55, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 57, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 58, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 14)) +>foo3 : { (x: { foo(x: number): number; foo(x: string): string; }): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 27)) ->x : { foo(x: any): any; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 14)) ->b : { foo(x: any): any; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) +>foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; } +>x : { foo(x: any): any; } +>b : { foo(x: any): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 27)) ->x : { foo(x: any): any; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 14)) ->b : { foo(x: any): any; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) +>foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; } +>x : { foo(x: any): any; } +>b : { foo(x: any): any; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 59, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 61, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 14)) +>foo4 : { (x: { foo(x: any): any; }): any; (x: { foo(x: any): any; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 63, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 65, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 66, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 67, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 69, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 70, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // BUG 831930 ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 71, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 73, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 74, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // BUG 831930 ->foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 27)) ->x : { foo(x: number): number; foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 14)) ->a : { foo(x: number): number; foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) +>foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : { foo(x: number): number; foo(x: string): string; } +>a : { foo(x: number): number; foo(x: string): string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 75, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 77, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 78, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 14)) +>foo7 : { (x: A): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // BUG 831930 ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 79, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 81, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 82, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 83, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 85, 20), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 86, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // BUG 831930 ->foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 28)) ->x : { foo(x: number): number; foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 15)) ->a : { foo(x: number): number; foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) +>foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : { foo(x: number): number; foo(x: string): string; } +>a : { foo(x: number): number; foo(x: string): string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 87, 25), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 89, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 15)) +>foo10 : { (x: B): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 6, 1)) +>foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 28)) ->x : { foo(x: any): any; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 15)) ->b : { foo(x: any): any; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) +>foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; } +>x : { foo(x: any): any; } +>b : { foo(x: any): any; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 91, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 93, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 15)) +>foo11 : { (x: B): any; (x: { foo(x: any): any; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 95, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 97, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 98, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 31), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 24, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 31), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 99, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 101, 31), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 102, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 28)) ->x : { foo(x: number): number; foo(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 15)) ->a : { foo(x: number): number; foo(x: string): string; }, Symbol(a, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 32, 3)) +>foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : { foo(x: number): number; foo(x: string): string; } +>a : { foo(x: number): number; foo(x: string): string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 103, 27), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 105, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 106, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 15)) +>foo13 : { (x: I): any; (x: { foo(x: number): number; foo(x: string): string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 19, 1)) +>foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 28)) ->x : { foo(x: any): any; }, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 15)) ->b : { foo(x: any): any; }, Symbol(b, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 37, 3)) +>foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; } +>x : { foo(x: any): any; } +>b : { foo(x: any): any; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 107, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 109, 21), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 110, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 15)) +>foo14 : { (x: I): any; (x: { foo(x: any): any; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 30), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 24, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 30), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 12, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 111, 26), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 113, 30), Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 114, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithCallSignaturesWithOverloads.ts, 115, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.symbols b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.symbols new file mode 100644 index 0000000000000..4441100b7ac0a --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.symbols @@ -0,0 +1,271 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + + constructor(x: string) { } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 3, 16)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + + constructor(x: string) { } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 7, 16)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 10, 8)) + + constructor(x: T) { } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 11, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + + new(x: string); +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 15, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures.ts, 16, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 18, 13)) + + new(x: T): T; +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 19, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 18, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 18, 13)) +} + +var a: { new(x: string) } +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 13)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 29), Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 29), Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 29), Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 31), Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures.ts, 16, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 31), Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 31), Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 30), Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 30), Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 30), Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 86, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types index 379e059a0bb18..a29f213bddebe 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.types @@ -2,270 +2,270 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>A : A constructor(x: string) { } ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 3, 16)) +>x : string } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>B : B constructor(x: string) { } ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 7, 16)) +>x : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 10, 8)) +>C : C +>T : T constructor(x: T) { } ->x : T, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 11, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 10, 8)) +>x : T +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>I : I new(x: string); ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 15, 8)) +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures.ts, 16, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 18, 13)) +>I2 : I2 +>T : T new(x: T): T; ->x : T, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 19, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 18, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures.ts, 18, 13)) +>x : T +>T : T +>T : T } var a: { new(x: string) } ->a : new (x: string) => any, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 13)) +>a : new (x: string) => any +>x : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 24, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 25, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures.ts, 26, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 28, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 29, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 29), Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 29), Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures.ts, 30, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 32, 29), Decl(objectTypesIdentityWithConstructSignatures.ts, 33, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures.ts, 34, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 36, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 37, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 27)) ->x : new (x: string) => any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 14)) ->a : new (x: string) => any, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) +>foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; } +>x : new (x: string) => any +>a : new (x: string) => any function foo3(x: typeof a); // error ->foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 27)) ->x : new (x: string) => any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 14)) ->a : new (x: string) => any, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) +>foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; } +>x : new (x: string) => any +>a : new (x: string) => any function foo3(x: any) { } ->foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures.ts, 38, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 40, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 41, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 14)) +>foo3 : { (x: new (x: string) => any): any; (x: new (x: string) => any): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithConstructSignatures.ts, 42, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 44, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 45, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithConstructSignatures.ts, 46, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 48, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 49, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithConstructSignatures.ts, 50, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 52, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 53, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: new (x: string) => any): any; }, Symbol(foo7, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithConstructSignatures.ts, 0, 0)) +>foo7 : { (x: A): any; (x: new (x: string) => any): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: new (x: string) => any): any; }, Symbol(foo7, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 27)) ->x : new (x: string) => any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 14)) ->a : new (x: string) => any, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) +>foo7 : { (x: A): any; (x: new (x: string) => any): any; } +>x : new (x: string) => any +>a : new (x: string) => any function foo7(x: any) { } ->foo7 : { (x: A): any; (x: new (x: string) => any): any; }, Symbol(foo7, Decl(objectTypesIdentityWithConstructSignatures.ts, 54, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 56, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 57, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 14)) +>foo7 : { (x: A): any; (x: new (x: string) => any): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures.ts, 58, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 60, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 61, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures.ts, 62, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 64, 20), Decl(objectTypesIdentityWithConstructSignatures.ts, 65, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: string) => any): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures.ts, 4, 1)) +>foo10 : { (x: B): any; (x: new (x: string) => any): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: string) => any): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 28)) ->x : new (x: string) => any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 15)) ->a : new (x: string) => any, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) +>foo10 : { (x: B): any; (x: new (x: string) => any): any; } +>x : new (x: string) => any +>a : new (x: string) => any function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: string) => any): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures.ts, 66, 25), Decl(objectTypesIdentityWithConstructSignatures.ts, 68, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 69, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 15)) +>foo10 : { (x: B): any; (x: new (x: string) => any): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures.ts, 70, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 72, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 73, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 31), Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 31), Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures.ts, 74, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 76, 31), Decl(objectTypesIdentityWithConstructSignatures.ts, 77, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: string) => any): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures.ts, 12, 1)) +>foo13 : { (x: I): any; (x: new (x: string) => any): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: new (x: string) => any): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 28)) ->x : new (x: string) => any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 15)) ->a : new (x: string) => any, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures.ts, 22, 3)) +>foo13 : { (x: I): any; (x: new (x: string) => any): any; } +>x : new (x: string) => any +>a : new (x: string) => any function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: string) => any): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures.ts, 78, 27), Decl(objectTypesIdentityWithConstructSignatures.ts, 80, 21), Decl(objectTypesIdentityWithConstructSignatures.ts, 81, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 15)) +>foo13 : { (x: I): any; (x: new (x: string) => any): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 30), Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 30), Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures.ts, 82, 26), Decl(objectTypesIdentityWithConstructSignatures.ts, 84, 30), Decl(objectTypesIdentityWithConstructSignatures.ts, 85, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures.ts, 86, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.symbols b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.symbols new file mode 100644 index 0000000000000..0d37d7fc97bc6 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.symbols @@ -0,0 +1,243 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignatures2.ts === +// object types are identical structurally + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + + constructor(x: number) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 3, 16)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 6, 8)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 7, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 6, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + + new(x: boolean): string; +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 11, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 12, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 14, 13)) + + new(x: T): T; +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 15, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 14, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 14, 13)) +} + +var a: { new(x: Date): string } +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +var b = { new(x: RegExp) { return ''; } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 14)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + +function foo9(x: C); // error, types are structurally equal +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 12, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 12, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 75, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types index 24c6913ace3ad..2e5e7231721ea 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.types @@ -2,246 +2,246 @@ // object types are identical structurally class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>B : B constructor(x: number) { return null; } ->x : number, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 3, 16)) +>x : number >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 6, 8)) +>C : C +>T : T constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 7, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 6, 8)) +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>I : I new(x: boolean): string; ->x : boolean, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 11, 8)) +>x : boolean } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 12, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 14, 13)) +>I2 : I2 +>T : T new(x: T): T; ->x : T, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 15, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 14, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignatures2.ts, 14, 13)) +>x : T +>T : T +>T : T } var a: { new(x: Date): string } ->a : new (x: Date) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) ->x : Date, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>a : new (x: Date) => string +>x : Date +>Date : Date var b = { new(x: RegExp) { return ''; } }; // not a construct signature, function called new ->b : { new(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) +>b : { new(x: RegExp): string; } >{ new(x: RegExp) { return ''; } } : { new(x: RegExp): string; } ->new : (x: RegExp) => string, Symbol(new, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 9)) ->x : RegExp, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 14)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>new : (x: RegExp) => string +>x : RegExp +>RegExp : RegExp >'' : string function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignatures2.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 22, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignatures2.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignatures2.ts, 26, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 30, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 27)) ->x : new (x: Date) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 14)) ->a : new (x: Date) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) +>foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; } +>x : new (x: Date) => string +>a : new (x: Date) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 27)) ->x : new (x: Date) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 14)) ->a : new (x: Date) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) +>foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; } +>x : new (x: Date) => string +>a : new (x: Date) => string function foo3(x: any) { } ->foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignatures2.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 34, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 14)) +>foo3 : { (x: new (x: Date) => string): any; (x: new (x: Date) => string): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 27)) ->x : { new(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 14)) ->b : { new(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) +>foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; } +>x : { new(x: RegExp): string; } +>b : { new(x: RegExp): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 27)) ->x : { new(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 14)) ->b : { new(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) +>foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; } +>x : { new(x: RegExp): string; } +>b : { new(x: RegExp): string; } function foo4(x: any) { } ->foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithConstructSignatures2.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 38, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 14)) +>foo4 : { (x: { new(x: RegExp): string; }): any; (x: { new(x: RegExp): string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 42, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error, types are structurally equal ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignatures2.ts, 46, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: Date) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: Date) => string): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: Date) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 28)) ->x : new (x: Date) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 15)) ->a : new (x: Date) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) +>foo10 : { (x: B): any; (x: new (x: Date) => string): any; } +>x : new (x: Date) => string +>a : new (x: Date) => string function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: Date) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignatures2.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 15)) +>foo10 : { (x: B): any; (x: new (x: Date) => string): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignatures2.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 28)) ->x : { new(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 15)) ->b : { new(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) +>foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; } +>x : { new(x: RegExp): string; } +>b : { new(x: RegExp): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithConstructSignatures2.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 54, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 15)) +>foo11 : { (x: B): any; (x: { new(x: RegExp): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 58, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 12, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignatures2.ts, 62, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: Date) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>foo13 : { (x: I): any; (x: new (x: Date) => string): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: Date) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 28)) ->x : new (x: Date) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 15)) ->a : new (x: Date) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignatures2.ts, 18, 3)) +>foo13 : { (x: I): any; (x: new (x: Date) => string): any; } +>x : new (x: Date) => string +>a : new (x: Date) => string function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: Date) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignatures2.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignatures2.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 15)) +>foo13 : { (x: I): any; (x: new (x: Date) => string): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignatures2.ts, 8, 1)) +>foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 28)) ->x : { new(x: RegExp): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 15)) ->b : { new(x: RegExp): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignatures2.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; } +>x : { new(x: RegExp): string; } +>b : { new(x: RegExp): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithConstructSignatures2.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignatures2.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 15)) +>foo14 : { (x: I): any; (x: { new(x: RegExp): string; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignatures2.ts, 12, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignatures2.ts, 4, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignatures2.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignatures2.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignatures2.ts, 74, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignatures2.ts, 75, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.symbols b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.symbols new file mode 100644 index 0000000000000..0563fe7a2fcb5 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.symbols @@ -0,0 +1,245 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts === +// object types are identical structurally + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + + constructor(x: string, y: string) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 3, 16)) +>y : Symbol(y, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 3, 26)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 6, 8)) + + constructor(x: T, y: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 7, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 6, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 7, 21)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 6, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + + new(x: string): string; +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 11, 8)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 12, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 14, 13)) + + new(x: T): T; +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 15, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 14, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 14, 13)) +} + +var a: { new(x: string, y: string): string } +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 23)) + +var b = { new(x: string) { return ''; } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 9)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo9(x: C); // error, types are structurally equal +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 12, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 75, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types index 437cf185961ec..b7f5995395912 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.types @@ -2,248 +2,248 @@ // object types are identical structurally class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>B : B constructor(x: string, y: string) { return null; } ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 3, 16)) ->y : string, Symbol(y, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 3, 26)) +>x : string +>y : string >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 6, 8)) +>C : C +>T : T constructor(x: T, y: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 7, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 6, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 7, 21)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 6, 8)) +>x : T +>T : T +>y : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>I : I new(x: string): string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 11, 8)) +>x : string } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 12, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 14, 13)) +>I2 : I2 +>T : T new(x: T): T; ->x : T, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 15, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 14, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 14, 13)) +>x : T +>T : T +>T : T } var a: { new(x: string, y: string): string } ->a : new (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 13)) ->y : string, Symbol(y, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 23)) +>a : new (x: string, y: string) => string +>x : string +>y : string var b = { new(x: string) { return ''; } }; // not a construct signature, function called new ->b : { new(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) +>b : { new(x: string): string; } >{ new(x: string) { return ''; } } : { new(x: string): string; } ->new : (x: string) => string, Symbol(new, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 9)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 14)) +>new : (x: string) => string +>x : string >'' : string function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 42), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 21, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 22, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 23, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 25, 29), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 26, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 27, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 29, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 30, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 27)) ->x : new (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 14)) ->a : new (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) +>foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; } +>x : new (x: string, y: string) => string +>a : new (x: string, y: string) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 27)) ->x : new (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 14)) ->a : new (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) +>foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; } +>x : new (x: string, y: string) => string +>a : new (x: string, y: string) => string function foo3(x: any) { } ->foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 31, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 33, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 34, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 14)) +>foo3 : { (x: new (x: string, y: string) => string): any; (x: new (x: string, y: string) => string): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 27)) ->x : { new(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 14)) ->b : { new(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) +>foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; } +>x : { new(x: string): string; } +>b : { new(x: string): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 27)) ->x : { new(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 14)) ->b : { new(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) +>foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; } +>x : { new(x: string): string; } +>b : { new(x: string): string; } function foo4(x: any) { } ->foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 35, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 37, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 38, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 14)) +>foo4 : { (x: { new(x: string): string; }): any; (x: { new(x: string): string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 39, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 41, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 42, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error, types are structurally equal ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 43, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 45, 20), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 46, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 28)) ->x : new (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 15)) ->a : new (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) +>foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; } +>x : new (x: string, y: string) => string +>a : new (x: string, y: string) => string function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 47, 25), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 49, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 15)) +>foo10 : { (x: B): any; (x: new (x: string, y: string) => string): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: string): string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 28)) ->x : { new(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 15)) ->b : { new(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) +>foo11 : { (x: B): any; (x: { new(x: string): string; }): any; } +>x : { new(x: string): string; } +>b : { new(x: string): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: string): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 51, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 53, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 54, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 15)) +>foo11 : { (x: B): any; (x: { new(x: string): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 55, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 57, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 58, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 12, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 59, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 61, 31), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 62, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 28)) ->x : new (x: string, y: string) => string, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 15)) ->a : new (x: string, y: string) => string, Symbol(a, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 18, 3)) +>foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; } +>x : new (x: string, y: string) => string +>a : new (x: string, y: string) => string function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 63, 27), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 65, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 15)) +>foo13 : { (x: I): any; (x: new (x: string, y: string) => string): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 8, 1)) +>foo14 : { (x: I): any; (x: { new(x: string): string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 28)) ->x : { new(x: string): string; }, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 15)) ->b : { new(x: string): string; }, Symbol(b, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { new(x: string): string; }): any; } +>x : { new(x: string): string; } +>b : { new(x: string): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: string): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 67, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 69, 21), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 15)) +>foo14 : { (x: I): any; (x: { new(x: string): string; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 12, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 4, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 71, 26), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 73, 30), Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 74, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithConstructSignaturesDifferingParamCounts.ts, 75, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.symbols new file mode 100644 index 0000000000000..8fdebdcccbe8d --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.symbols @@ -0,0 +1,340 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 2, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 8)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 7, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 8)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 11, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 12)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 15, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 12)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 16, 1)) + + foo(x: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 18, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 8)) +} + +var a: { foo(x: T): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 13)) + +var b = { foo(x: T) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 17)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 17)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 16, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types index f704c8916cc5e..d871c3c4cb579 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types @@ -2,343 +2,343 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>A : A foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 2, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 3, 8)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 8)) +>B : B +>T : T foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 7, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 6, 8)) +>foo : (x: T) => T +>x : T +>T : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 8)) +>C : C +>T : T foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 11, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 10, 8)) +>foo : (x: T) => T +>x : T +>T : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 12)) +>I : I +>T : T foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 15, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 14, 12)) +>foo : (x: T) => T +>x : T +>T : T +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 16, 1)) +>I2 : I2 foo(x: T): T; ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 18, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 19, 8)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T } var a: { foo(x: T): T } ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 13)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 13)) +>a : { foo(x: T): T; } +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T var b = { foo(x: T) { return x; } }; ->b : { foo(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) +>b : { foo(x: T): T; } >{ foo(x: T) { return x; } } : { foo(x: T): T; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 17)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 17)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>x : T function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 30, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 34, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 38, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 14)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 14)) ->b : { foo(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) +>foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>b : { foo(x: T): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 14)) ->b : { foo(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) +>foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>b : { foo(x: T): T; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 14)) +>foo4 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 54, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 58, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 15)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 15)) ->b : { foo(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>b : { foo(x: T): T; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 82, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 86, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 15)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 15)) ->b : { foo(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>b : { foo(x: T): T; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures.ts, 98, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.symbols new file mode 100644 index 0000000000000..2ca97948a9986 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.symbols @@ -0,0 +1,361 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignatures2.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + + foo(x: T, y: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 2, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 10)) + + foo(x: T, y: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 7, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 7, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 10)) + + foo(x: T, y: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 11, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 11, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 14)) + + foo(x: T, y: U): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 19)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 15, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 15, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 16, 1)) + + foo(x: T, y: U): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 18, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 8)) +} + +var a: { foo(x: T, y: U): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 19)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 24)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 15)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 13)) + +var b = { foo(x: T, y: U) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 20)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 25)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 20)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 48), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 48), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 48), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) + +function foo7(x: typeof a); // no error, bug? +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 16, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types index 81cf96fbcc963..c7ca543aead0a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types @@ -2,364 +2,364 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>A : A foo(x: T, y: U): T { return null; } ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 2, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 3, 8)) +>foo : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 10)) +>B : B +>T : T +>U : U foo(x: T, y: U): T { return null; } ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 7, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 7, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 6, 8)) +>foo : (x: T, y: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 10)) +>C : C +>T : T +>U : U foo(x: T, y: U): T { return null; } ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 11, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 11, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 10, 8)) +>foo : (x: T, y: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 14)) +>I : I +>T : T +>U : U foo(x: T, y: U): T; ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 19)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 15, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 12)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 15, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 14, 12)) +>foo : (x: T, y: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 16, 1)) +>I2 : I2 foo(x: T, y: U): T; ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 18, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 19, 8)) +>foo : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T } var a: { foo(x: T, y: U): T } ->a : { foo(x: T, y: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 19)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 13)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 24)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 15)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 13)) +>a : { foo(x: T, y: U): T; } +>foo : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T var b = { foo(x: T, y: U) { return x; } }; ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) +>b : { foo(x: T, y: U): T; } >{ foo(x: T, y: U) { return x; } } : { foo(x: T, y: U): T; } ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 20)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 14)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 25)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 20)) +>foo : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>x : T function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 48), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 48), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 48), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 30, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 33, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 34, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 37, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 38, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 14)) ->a : { foo(x: T, y: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) +>foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>a : { foo(x: T, y: U): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 14)) ->a : { foo(x: T, y: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) +>foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>a : { foo(x: T, y: U): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 14)) +>foo3 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 14)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 14)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 14)) +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 50, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 37)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 54, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 58, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 14)) ->a : { foo(x: T, y: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>a : { foo(x: T, y: U): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 66, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 70, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 28)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 15)) ->a : { foo(x: T, y: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>a : { foo(x: T, y: U): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 73, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 28)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 15)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 77, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 37)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 81, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 82, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 38)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 38)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 86, 38)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 28)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 15)) ->a : { foo(x: T, y: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>a : { foo(x: T, y: U): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 89, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 28)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 15)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 93, 37), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 37)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 98, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignatures2.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.symbols new file mode 100644 index 0000000000000..3b681c55c13ee --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.symbols @@ -0,0 +1,363 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + + foo(x: T): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 4, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 5, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 5, 24)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 5, 8)) +} + +class B> { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 8, 8)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + + foo(x: T): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 8, 34)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 9, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 8, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 12, 8)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + + foo(x: T): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 12, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 12, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 16, 12)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + + foo(x: T): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 16, 31)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 16, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 18, 1)) + + foo(x: T): string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 20, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 21, 8)) +>Boolean : Symbol(Boolean, Decl(lib.d.ts, 443, 38), Decl(lib.d.ts, 456, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 21, 27)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 21, 8)) +} + +var a: { foo>(x: T): string } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 13)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 38)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 13)) + +var b = { foo(x: T) { return ''; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 14)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 32)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 14)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 14)) + +function foo1b(x: B>); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo1b(x: B>); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 35)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + +function foo5(x: B>); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 35)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 35)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 14)) + +function foo8(x: B>); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 14)) + +function foo9(x: B>); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 14)) + +function foo10(x: B>); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 15)) + +function foo11(x: B>); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 18, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 18, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 101, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types index f15dec66a2900..90ed7fd094537 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types @@ -4,365 +4,365 @@ // optional or rest) and types, and identical return types. class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>A : A foo(x: T): string { return null; } ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 4, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 5, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 5, 24)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 5, 8)) +>foo : (x: T) => string +>T : T +>Date : Date +>x : T +>T : T >null : null } class B> { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 8, 8)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>B : B +>T : T +>Array : T[] foo(x: T): string { return null; } ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 8, 34)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 9, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 8, 8)) +>foo : (x: T) => string +>x : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 12, 8)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>C : C +>T : T +>String : String foo(x: T): string { return null; } ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 12, 27)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 12, 8)) +>foo : (x: T) => string +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 16, 12)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>I : I +>T : T +>Number : Number foo(x: T): string; ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 16, 31)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 16, 12)) +>foo : (x: T) => string +>x : T +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 18, 1)) +>I2 : I2 foo(x: T): string; ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 21, 8)) ->Boolean : Boolean, Symbol(Boolean, Decl(lib.d.ts, 443, 38), Decl(lib.d.ts, 456, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 21, 27)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 21, 8)) +>foo : (x: T) => string +>T : T +>Boolean : Boolean +>x : T +>T : T } var a: { foo>(x: T): string } ->a : { foo(x: T): string; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 13)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 38)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 13)) +>a : { foo(x: T): string; } +>foo : (x: T) => string +>T : T +>Array : T[] +>x : T +>T : T var b = { foo(x: T) { return ''; } }; ->b : { foo(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) +>b : { foo(x: T): string; } >{ foo(x: T) { return ''; } } : { foo(x: T): string; } ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 14)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 32)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 14)) +>foo : (x: T) => string +>T : T +>RegExp : RegExp +>x : T +>T : T >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B>); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Array : T[] function foo1b(x: B>); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Array : T[] function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 31, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 32, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>String : String function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>String : String function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 36, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 40, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 27)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 14)) ->a : { foo(x: T): string; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) +>foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>a : { foo(x: T): string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 27)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 14)) ->a : { foo(x: T): string; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) +>foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>a : { foo(x: T): string; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 14)) +>foo3 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 27)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 14)) ->b : { foo(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) +>foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>b : { foo(x: T): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 27)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 14)) ->b : { foo(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) +>foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>b : { foo(x: T): string; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 14)) +>foo4 : { (x: { foo(x: T): string; }): any; (x: { foo(x: T): string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 35)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B>); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 35)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B +>Array : T[] function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 52, 35)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C +>String : String function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 56, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 60, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 27)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 14)) ->a : { foo(x: T): string; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>a : { foo(x: T): string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 64, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T): string; }): any; } +>x : any function foo8(x: B>); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B +>Array : T[] function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 67, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B>); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B +>Array : T[] function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C +>String : String function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 71, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B>); ->foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>x : B +>B : B +>Array : T[] function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 28)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 15)) ->a : { foo(x: T): string; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>a : { foo(x: T): string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 75, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>x : any function foo11(x: B>); ->foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 6, 1)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>x : B +>B : B +>Array : T[] function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 28)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 15)) ->b : { foo(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>b : { foo(x: T): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 79, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I +>Number : Number function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C +>String : String function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 84, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 18, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>String : String function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 88, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>x : I +>I : I +>Number : Number function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 28)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 15)) ->a : { foo(x: T): string; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>a : { foo(x: T): string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 92, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 14, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>x : I +>I : I +>Number : Number function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 28)) ->x : { foo(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 15)) ->b : { foo(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>x : { foo(x: T): string; } +>b : { foo(x: T): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 96, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T): string; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 18, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 10, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>String : String function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 100, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.ts, 101, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.symbols new file mode 100644 index 0000000000000..a9210b20f3274 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.symbols @@ -0,0 +1,338 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + + foo(x: T): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 4, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 5, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 5, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 5, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 8, 8)) + + foo(x: T): number { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 8, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 9, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 8, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 12, 8)) + + foo(x: T): boolean { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 12, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 12, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 16, 12)) + + foo(x: T): Date; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 16, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 16, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 18, 1)) + + foo(x: T): RegExp; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 20, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 21, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 21, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 21, 8)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +} + +var a: { foo(x: T): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 13)) + +var b = { foo(x: T) { return null; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 17)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 14)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 42), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 42), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 42), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 18, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 18, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 101, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types index ec73372f0cf9b..ef6799b6ab951 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types @@ -4,340 +4,340 @@ // optional or rest) and types, and identical return types. class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>A : A foo(x: T): string { return null; } ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 4, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 5, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 5, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 5, 8)) +>foo : (x: T) => string +>T : T +>x : T +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 8, 8)) +>B : B +>T : T foo(x: T): number { return null; } ->foo : (x: T) => number, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 8, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 9, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 8, 8)) +>foo : (x: T) => number +>x : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 12, 8)) +>C : C +>T : T foo(x: T): boolean { return null; } ->foo : (x: T) => boolean, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 12, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 12, 8)) +>foo : (x: T) => boolean +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 16, 12)) +>I : I +>T : T foo(x: T): Date; ->foo : (x: T) => Date, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 16, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 16, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo : (x: T) => Date +>x : T +>T : T +>Date : Date } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 18, 1)) +>I2 : I2 foo(x: T): RegExp; ->foo : (x: T) => RegExp, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 21, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 21, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 21, 8)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>foo : (x: T) => RegExp +>T : T +>x : T +>T : T +>RegExp : RegExp } var a: { foo(x: T): T } ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 13)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 13)) +>a : { foo(x: T): T; } +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T var b = { foo(x: T) { return null; } }; ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) +>b : { foo(x: T): any; } >{ foo(x: T) { return null; } } : { foo(x: T): any; } ->foo : (x: T) => any, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 17)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 14)) +>foo : (x: T) => any +>T : T +>x : T +>T : T >null : null function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 42), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 42), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 42), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 32, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 36, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 40, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 14)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 27)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 14)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) +>foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 27)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 14)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) +>foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 14)) +>foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 56, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 60, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 64, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 15)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 6, 1)) +>foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 28)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 15)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 84, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 18, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 88, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 15)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 92, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 14, 1)) +>foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 28)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 15)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 96, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 18, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 10, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 100, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.ts, 101, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.symbols new file mode 100644 index 0000000000000..e1c4e12037056 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.symbols @@ -0,0 +1,366 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + + foo(x: T): string { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 4, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 5, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 5, 24)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 5, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 8, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + foo(x: T): number { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 8, 25)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 9, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 8, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 12, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + foo(x: T): boolean { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 12, 25)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 12, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 16, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + foo(x: T): Date; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 16, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 16, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 18, 1)) + + foo(x: T): RegExp; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 20, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 21, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 21, 24)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 21, 8)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +} + +var a: { foo(x: T): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 29)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 13)) + +var b = { foo(x: T) { return null; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 14)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 30)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 14)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 18, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 18, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 101, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types index fc2f0ab089257..c964cc46cadb6 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types @@ -4,368 +4,368 @@ // optional or rest) and types, and identical return types. class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>A : A foo(x: T): string { return null; } ->foo : (x: T) => string, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 4, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 5, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 5, 24)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 5, 8)) +>foo : (x: T) => string +>T : T +>Date : Date +>x : T +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 8, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>B : B +>T : T +>Date : Date foo(x: T): number { return null; } ->foo : (x: T) => number, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 8, 25)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 9, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 8, 8)) +>foo : (x: T) => number +>x : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 12, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>C : C +>T : T +>Date : Date foo(x: T): boolean { return null; } ->foo : (x: T) => boolean, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 12, 25)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 12, 8)) +>foo : (x: T) => boolean +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 16, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>I : I +>T : T +>Date : Date foo(x: T): Date; ->foo : (x: T) => Date, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 16, 29)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 16, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo : (x: T) => Date +>x : T +>T : T +>Date : Date } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 18, 1)) +>I2 : I2 foo(x: T): RegExp; ->foo : (x: T) => RegExp, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 21, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 21, 24)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 21, 8)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>foo : (x: T) => RegExp +>T : T +>Date : Date +>x : T +>T : T +>RegExp : RegExp } var a: { foo(x: T): T } ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 29)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 13)) +>a : { foo(x: T): T; } +>foo : (x: T) => T +>T : T +>Date : Date +>x : T +>T : T +>T : T var b = { foo(x: T) { return null; } }; ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) +>b : { foo(x: T): any; } >{ foo(x: T) { return null; } } : { foo(x: T): any; } ->foo : (x: T) => any, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 14)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 30)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 14)) +>foo : (x: T) => any +>T : T +>Date : Date +>x : T +>T : T >null : null function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 55), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 27)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Date : Date function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 27)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Date : Date function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 31, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 32, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 39, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 40, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 14)) +>foo3 : { (x: { foo(x: T): T; }): any; (x: { foo(x: T): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 27)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 14)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) +>foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 27)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 14)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) +>foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 14)) +>foo4 : { (x: { foo(x: T): any; }): any; (x: { foo(x: T): any; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 26)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B +>Date : Date function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 52, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 56, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 26)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 60, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 27)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 14)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 64, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B +>Date : Date function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 67, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 68, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B +>Date : Date function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 26)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 71, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 72, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : B +>B : B +>Date : Date function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 15)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 75, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>x : B +>B : B +>Date : Date function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 28)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 15)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 79, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T): any; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 27)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I +>Date : Date function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 83, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 84, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 28)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 18, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 88, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : I +>I : I +>Date : Date function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 28)) ->x : { foo(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 15)) ->a : { foo(x: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : { foo(x: T): T; } +>a : { foo(x: T): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 91, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 92, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 14, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>x : I +>I : I +>Date : Date function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 28)) ->x : { foo(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 15)) ->b : { foo(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>x : { foo(x: T): any; } +>b : { foo(x: T): any; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 95, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 96, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T): any; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 27)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 18, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 100, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.ts, 101, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.symbols new file mode 100644 index 0000000000000..9b801aa2c6ffd --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.symbols @@ -0,0 +1,372 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 2, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 10)) + + foo(x: U): U { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 7, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 8)) +>W : Symbol(W, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 10)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 13)) + + foo(x: V): V { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 18)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 11, 8)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 8)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 12)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 14)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 17)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 20)) + + foo(x: X): X; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 25)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 15, 8)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 12)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 16, 1)) + + foo(x: Y): Y; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 18, 14)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 8)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 10)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 13)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 20)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 8)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 8)) +} + +var a: { foo(x: Z): Z } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 8)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 13)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 18)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 21)) +>D : Symbol(D, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 24)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 28)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 13)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 13)) + +var b = { foo(x: A) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 9)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 19)) +>D : Symbol(D, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 22)) +>E : Symbol(E, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 25)) +>F : Symbol(F, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 32)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 32)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 54), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 54), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 54), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 46), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 46), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 46), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo7(x: typeof a); // no error, bug? +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 55)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo9(x: C>); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 55)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 55)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 15)) + +function foo12(x: I, number, Date, string>); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 62), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 54)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: C, number, Date>); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 62), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 54)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 62), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 54)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 47)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 16, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 47)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 47)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 49), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 49), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 49), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 67)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 16, 1)) + +function foo15(x: C, B>); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 67)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 67)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types index e7df8ef6f782f..afc2e9ae6cee0 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types @@ -2,375 +2,375 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>A : A foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 2, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 3, 8)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 8)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 10)) +>B : B +>U : U +>V : V foo(x: U): U { return null; } ->foo : (x: U) => U, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 15)) ->x : U, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 7, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +>foo : (x: U) => U +>x : U +>U : U +>U : U >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 8)) ->W : W, Symbol(W, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 10)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 13)) +>C : C +>V : V +>W : W +>X : X foo(x: V): V { return null; } ->foo : (x: V) => V, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 18)) ->x : V, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 11, 8)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 8)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 10, 8)) +>foo : (x: V) => V +>x : V +>V : V +>V : V >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 12)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 14)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 17)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 20)) +>I : I +>X : X +>Y : Y +>Z : Z +>A : A foo(x: X): X; ->foo : (x: X) => X, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 25)) ->x : X, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 15, 8)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 12)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 14, 12)) +>foo : (x: X) => X +>x : X +>X : X +>X : X } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 16, 1)) +>I2 : I2 foo(x: Y): Y; ->foo : (x: Y) => Y, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 18, 14)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 8)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 10)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 13)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 16)) ->x : Y, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 20)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 8)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 19, 8)) +>foo : (x: Y) => Y +>Y : Y +>Z : Z +>A : A +>B : B +>x : Y +>Y : Y +>Y : Y } var a: { foo(x: Z): Z } ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) ->foo : (x: Z) => Z, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 8)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 13)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 18)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 21)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 24)) ->x : Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 28)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 13)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 13)) +>a : { foo(x: Z): Z; } +>foo : (x: Z) => Z +>Z : Z +>A : A +>B : B +>C : C +>D : D +>x : Z +>Z : Z +>Z : Z var b = { foo(x: A) { return x; } }; ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) +>b : { foo(x: A): A; } >{ foo(x: A) { return x; } } : { foo(x: A): A; } ->foo : (x: A) => A, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 9)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 19)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 22)) ->E : E, Symbol(E, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 25)) ->F : F, Symbol(F, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 32)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 14)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 32)) +>foo : (x: A) => A +>A : A +>B : B +>C : C +>D : D +>E : E +>F : F +>x : A +>A : A +>x : A function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 54), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 54), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 54), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 29, 37), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 30, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 46), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 46)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 46), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 46)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 33, 46), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 34, 46)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 53)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 53)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 37, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 38, 53)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 27)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 14)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 27)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 14)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 14)) +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 27)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 14)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) +>foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 27)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 14)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) +>foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 14)) +>foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 50, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 46)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 46)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 54, 46)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 51)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 51)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 58, 51)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>x : A +>A : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 27)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 14)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 51)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 51)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 65, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 66, 51)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C>): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 55)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C>): any; } +>x : B +>B : B function foo9(x: C>); // error ->foo9 : { (x: B): any; (x: C>): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 55)) ->x : C>, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C>): any; } +>x : C> +>C : C +>B : B function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C>): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 69, 36), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 70, 55)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C>): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 28)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 15)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 73, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 28)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 15)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 77, 38), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>x : any function foo12(x: I, number, Date, string>); ->foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 62), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 54)) ->x : I, number, Date, string>, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; } +>x : I, number, Date, string> +>I : I +>B : B +>Date : Date function foo12(x: C, number, Date>); // error ->foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 62), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 54)) ->x : C, number, Date>, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; } +>x : C, number, Date> +>C : C +>B : B +>Date : Date function foo12(x: any) { } ->foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 81, 62), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 82, 54)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 15)) +>foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 47)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 47)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 86, 47)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 49), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>x : I +>I : I +>Date : Date +>RegExp : RegExp +>Date : Date function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 49), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 28)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 15)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 89, 49), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 12, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>x : I +>I : I +>Date : Date +>RegExp : RegExp function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 28)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 15)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 93, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C, B>): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 67)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C, B>): any; } +>x : I2 +>I2 : I2 function foo15(x: C, B>); // ok ->foo15 : { (x: I2): any; (x: C, B>): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 67)) ->x : C, B>, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo15 : { (x: I2): any; (x: C, B>): any; } +>x : C, B> +>C : C +>B : B +>B : B function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C, B>): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 98, 67)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C, B>): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.symbols new file mode 100644 index 0000000000000..7e9f1a97f69d0 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.symbols @@ -0,0 +1,142 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts === +// object types are identical structurally + + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 12)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 14)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 17)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 20)) + + (x: X): X; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 4, 5)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 12)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) + + (x: Y): Y; +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 5)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 7)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 10)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 17)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 5)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 5)) +} + +var a: { (x: Z): Z } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 10)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 12)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 18)) +>D : Symbol(D, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 25)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 10)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 10)) + +function foo1(x: I); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) + +function foo1(x: I); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 14)) + +function foo2(x: I2); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 14)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) + +function foo2(x: I2); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 14)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 14)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo14(x: I2); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 15)) + +function foo14b(x: typeof a); +>foo14b : Symbol(foo14b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 16)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) + +function foo14b(x: I2); // ok +>foo14b : Symbol(foo14b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) + +function foo14b(x: any) { } +>foo14b : Symbol(foo14b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 16)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo15(x: I2); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 39, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types index 1cd1008d8fb1e..8cc0042cc9e21 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types @@ -3,140 +3,140 @@ interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 12)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 14)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 17)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 20)) +>I : I +>X : X +>Y : Y +>Z : Z +>A : A (x: X): X; ->x : X, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 4, 5)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 12)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 3, 12)) +>x : X +>X : X +>X : X } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) +>I2 : I2 (x: Y): Y; ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 5)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 7)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 10)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 13)) ->x : Y, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 17)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 5)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 8, 5)) +>Y : Y +>Z : Z +>A : A +>B : B +>x : Y +>Y : Y +>Y : Y } var a: { (x: Z): Z } ->a : (x: Z) => Z, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 10)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 12)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 18)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 21)) ->x : Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 25)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 10)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 10)) +>a : (x: Z) => Z +>Z : Z +>A : A +>B : B +>C : C +>D : D +>x : Z +>Z : Z +>Z : Z function foo1(x: I); ->foo1 : { (x: I): any; (x: I): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 53)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) +>foo1 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo1(x: I); // error ->foo1 : { (x: I): any; (x: I): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 53)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) +>foo1 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo1(x: any) { } ->foo1 : { (x: I): any; (x: I): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 35), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 13, 53), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 14, 53)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 14)) +>foo1 : { (x: I): any; (x: I): any; } +>x : any function foo2(x: I2); ->foo2 : { (x: I2): any; (x: I2): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 21)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 14)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) +>foo2 : { (x: I2): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo2(x: I2); // error ->foo2 : { (x: I2): any; (x: I2): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 21)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 14)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) +>foo2 : { (x: I2): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo2(x: any) { } ->foo2 : { (x: I2): any; (x: I2): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 15, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 17, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 18, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 14)) +>foo2 : { (x: I2): any; (x: I2): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 27)) ->x : (x: Z) => Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 14)) ->a : (x: Z) => Z, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) +>foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; } +>x : (x: Z) => Z +>a : (x: Z) => Z function foo3(x: typeof a); // error ->foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 27)) ->x : (x: Z) => Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 14)) ->a : (x: Z) => Z, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) +>foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; } +>x : (x: Z) => Z +>a : (x: Z) => Z function foo3(x: any) { } ->foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 19, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 21, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 22, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 14)) +>foo3 : { (x: (x: Z) => Z): any; (x: (x: Z) => Z): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: (x: Z) => Z): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo13 : { (x: I): any; (x: (x: Z) => Z): any; } +>x : I +>I : I +>Date : Date function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: (x: Z) => Z): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 28)) ->x : (x: Z) => Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 15)) ->a : (x: Z) => Z, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) +>foo13 : { (x: I): any; (x: (x: Z) => Z): any; } +>x : (x: Z) => Z +>a : (x: Z) => Z function foo13(x: any) { } ->foo13 : { (x: I): any; (x: (x: Z) => Z): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 23, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 25, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 26, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 15)) +>foo13 : { (x: I): any; (x: (x: Z) => Z): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: I2): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo14 : { (x: I): any; (x: I2): any; } +>x : I +>I : I +>Date : Date function foo14(x: I2); // error ->foo14 : { (x: I): any; (x: I2): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 22)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) +>foo14 : { (x: I): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo14(x: any) { } ->foo14 : { (x: I): any; (x: I2): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 27, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 29, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 30, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 15)) +>foo14 : { (x: I): any; (x: I2): any; } +>x : any function foo14b(x: typeof a); ->foo14b : { (x: (x: Z) => Z): any; (x: I2): any; }, Symbol(foo14b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 23)) ->x : (x: Z) => Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 16)) ->a : (x: Z) => Z, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 11, 3)) +>foo14b : { (x: (x: Z) => Z): any; (x: I2): any; } +>x : (x: Z) => Z +>a : (x: Z) => Z function foo14b(x: I2); // ok ->foo14b : { (x: (x: Z) => Z): any; (x: I2): any; }, Symbol(foo14b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 23)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) +>foo14b : { (x: (x: Z) => Z): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo14b(x: any) { } ->foo14b : { (x: (x: Z) => Z): any; (x: I2): any; }, Symbol(foo14b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 34, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 16)) +>foo14b : { (x: (x: Z) => Z): any; (x: I2): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: I2): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo15 : { (x: I): any; (x: I2): any; } +>x : I +>I : I +>Date : Date function foo15(x: I2); // ok ->foo15 : { (x: I): any; (x: I2): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 22)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 5, 1)) +>foo15 : { (x: I): any; (x: I2): any; } +>x : I2 +>I2 : I2 function foo15(x: any) { } ->foo15 : { (x: I): any; (x: I2): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 35, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 37, 52), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 38, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.ts, 39, 15)) +>foo15 : { (x: I): any; (x: I2): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.symbols new file mode 100644 index 0000000000000..94e6aaf01391a --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.symbols @@ -0,0 +1,340 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + + foo(x: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 2, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 8)) + + foo(x: U): U { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 7, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 8)) + + foo(x: V): V { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 11, 8)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 8)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 12)) + + foo(x: X): X; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 15, 8)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 12)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 16, 1)) + + foo(x: Y): Y; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 18, 14)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 11)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 8)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 8)) +} + +var a: { foo(x: Z): Z } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 8)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 16)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 13)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 13)) + +var b = { foo(x: A) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 9)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 17)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 17)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 16, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 16, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 99, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types index 58d505107a989..52acb56dfaf3e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types @@ -2,343 +2,343 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>A : A foo(x: T): T { return null; } ->foo : (x: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 2, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 3, 8)) +>foo : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 8)) +>B : B +>U : U foo(x: U): U { return null; } ->foo : (x: U) => U, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 12)) ->x : U, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 7, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 6, 8)) +>foo : (x: U) => U +>x : U +>U : U +>U : U >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 8)) +>C : C +>V : V foo(x: V): V { return null; } ->foo : (x: V) => V, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 12)) ->x : V, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 11, 8)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 8)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 10, 8)) +>foo : (x: V) => V +>x : V +>V : V +>V : V >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 12)) +>I : I +>X : X foo(x: X): X; ->foo : (x: X) => X, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 16)) ->x : X, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 15, 8)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 12)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 14, 12)) +>foo : (x: X) => X +>x : X +>X : X +>X : X } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 16, 1)) +>I2 : I2 foo(x: Y): Y; ->foo : (x: Y) => Y, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 18, 14)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 8)) ->x : Y, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 11)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 8)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 19, 8)) +>foo : (x: Y) => Y +>Y : Y +>x : Y +>Y : Y +>Y : Y } var a: { foo(x: Z): Z } ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) ->foo : (x: Z) => Z, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 8)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 13)) ->x : Z, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 16)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 13)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 13)) +>a : { foo(x: Z): Z; } +>foo : (x: Z) => Z +>Z : Z +>x : Z +>Z : Z +>Z : Z var b = { foo(x: A) { return x; } }; ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) +>b : { foo(x: A): A; } >{ foo(x: A) { return x; } } : { foo(x: A): A; } ->foo : (x: A) => A, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 9)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 14)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 17)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 14)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 17)) +>foo : (x: A) => A +>A : A +>x : A +>A : A +>x : A function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 39), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 25, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 26, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 27, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 29, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 30, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 31, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 33, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 34, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 35, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 37, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 38, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 27)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 14)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 27)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 14)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 41, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 14)) +>foo3 : { (x: { foo(x: Z): Z; }): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 27)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 14)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) +>foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 27)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 14)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) +>foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 45, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 14)) +>foo4 : { (x: { foo(x: A): A; }): any; (x: { foo(x: A): A; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 49, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 51, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 53, 21), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 54, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 57, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 58, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 27)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 14)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) +>foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 59, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 61, 20), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 62, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 14)) +>foo7 : { (x: A): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 63, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 65, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 67, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 69, 28), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 28)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 15)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) +>foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 71, 25), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 73, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 15)) +>foo10 : { (x: B): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 28)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 15)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) +>foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 75, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 77, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 78, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 15)) +>foo11 : { (x: B): any; (x: { foo(x: A): A; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 79, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 81, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 82, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 16, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 83, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 85, 23), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 86, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 28)) ->x : { foo(x: Z): Z; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 15)) ->a : { foo(x: Z): Z; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 22, 3)) +>foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>x : { foo(x: Z): Z; } +>a : { foo(x: Z): Z; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 87, 27), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 89, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 15)) +>foo13 : { (x: I): any; (x: { foo(x: Z): Z; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 28)) ->x : { foo(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 15)) ->b : { foo(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 23, 3)) +>foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>x : { foo(x: A): A; } +>b : { foo(x: A): A; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 91, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 93, 29), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 94, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 15)) +>foo14 : { (x: I): any; (x: { foo(x: A): A; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 16, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 95, 26), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 97, 22), Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 98, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.ts, 99, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.symbols new file mode 100644 index 0000000000000..0bb008d82be28 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.symbols @@ -0,0 +1,356 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + + foo(x: T, y?: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 4, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) + + foo(x: T, y?: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 9, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 9, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) + + foo(x: T, y?: T): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 12)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 13, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) + + foo(x: T, y?: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 17, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 18, 1)) + + foo(x: T, y?: T): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 20, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) +} + +var a: { foo(x: T, y?: T): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 21)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) + +var b = { foo(x: T, y?: T) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 17)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 22)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 17)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 46), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 46), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 46), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) + +function foo7(x: typeof a); // no error, bug? +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 18, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 18, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 101, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types index 69a5d903ccbc6..da6144b57e222 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types @@ -4,357 +4,357 @@ // optional or rest) and types, and identical return types. class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>A : A foo(x: T, y?: T): T { return null; } ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 4, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 5, 8)) +>foo : (x: T, y?: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) +>B : B +>T : T foo(x: T, y?: T): T { return null; } ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 9, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 9, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 8, 8)) +>foo : (x: T, y?: T) => T +>x : T +>T : T +>y : T +>T : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) +>C : C +>T : T foo(x: T, y?: T): T { return null; } ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 12)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 13, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 12, 8)) +>foo : (x: T, y?: T) => T +>x : T +>T : T +>y : T +>T : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) +>I : I +>T : T foo(x: T, y?: T): T; ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 17, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 16, 12)) +>foo : (x: T, y?: T) => T +>x : T +>T : T +>y : T +>T : T +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 18, 1)) +>I2 : I2 foo(x: T, y?: T): T; ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 21, 8)) +>foo : (x: T, y?: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T } var a: { foo(x: T, y?: T): T } ->a : { foo(x: T, y?: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 21)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 13)) +>a : { foo(x: T, y?: T): T; } +>foo : (x: T, y?: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>T : T var b = { foo(x: T, y?: T) { return x; } }; ->b : { foo(x: T, y?: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) +>b : { foo(x: T, y?: T): T; } >{ foo(x: T, y?: T) { return x; } } : { foo(x: T, y?: T): T; } ->foo : (x: T, y?: T) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 17)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 14)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 22)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 17)) +>foo : (x: T, y?: T) => T +>T : T +>x : T +>T : T +>y : T +>T : T +>x : T function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 46), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 46), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 46), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 31, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 32, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 35, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 36, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 39, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 40, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 27)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 14)) ->a : { foo(x: T, y?: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) +>foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>a : { foo(x: T, y?: T): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 27)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 14)) ->a : { foo(x: T, y?: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) +>foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>a : { foo(x: T, y?: T): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 14)) +>foo3 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 27)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 14)) ->b : { foo(x: T, y?: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) +>foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>b : { foo(x: T, y?: T): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 27)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 14)) ->b : { foo(x: T, y?: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) +>foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>b : { foo(x: T, y?: T): T; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 14)) +>foo4 : { (x: { foo(x: T, y?: T): T; }): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 56, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 60, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 27)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 14)) ->a : { foo(x: T, y?: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>a : { foo(x: T, y?: T): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 64, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 67, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 71, 28), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 28)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 15)) ->a : { foo(x: T, y?: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>a : { foo(x: T, y?: T): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 75, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 6, 1)) +>foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 28)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 15)) ->b : { foo(x: T, y?: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>b : { foo(x: T, y?: T): T; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 79, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 83, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 84, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 18, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 88, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 28)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 15)) ->a : { foo(x: T, y?: T): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>a : { foo(x: T, y?: T): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 91, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 92, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 14, 1)) +>foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 28)) ->x : { foo(x: T, y?: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 15)) ->b : { foo(x: T, y?: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : { foo(x: T, y?: T): T; } +>b : { foo(x: T, y?: T): T; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 95, 29), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 96, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T, y?: T): T; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 18, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 10, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 100, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams.ts, 101, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.symbols new file mode 100644 index 0000000000000..8878d73f5766c --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.symbols @@ -0,0 +1,363 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + + foo(x: T, y?: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 4, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 10)) + + foo(x: T, y?: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 9, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 9, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 10)) + + foo(x: T, y?: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 13, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 14)) + + foo(x: T, y?: U): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 19)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 17, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 18, 1)) + + foo(x: T, y?: U): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 20, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 8)) +} + +var a: { foo(x: T, y?: U): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 19)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 24)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 15)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 13)) + +var b = { foo(x: T, y?: U) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 20)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 25)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 20)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 49), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 49), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 49), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) + +function foo7(x: typeof a); // no error, bug? +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 18, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 18, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 101, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types index 1b69c4401eb8e..09478fc5d3573 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types @@ -4,364 +4,364 @@ // optional or rest) and types, and identical return types. class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>A : A foo(x: T, y?: U): T { return null; } ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 4, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 5, 8)) +>foo : (x: T, y?: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 10)) +>B : B +>T : T +>U : U foo(x: T, y?: U): T { return null; } ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 9, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 9, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 8, 8)) +>foo : (x: T, y?: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 10)) +>C : C +>T : T +>U : U foo(x: T, y?: U): T { return null; } ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 13, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 12, 8)) +>foo : (x: T, y?: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 14)) +>I : I +>T : T +>U : U foo(x: T, y?: U): T; ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 19)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 12)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 17, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 16, 12)) +>foo : (x: T, y?: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 18, 1)) +>I2 : I2 foo(x: T, y?: U): T; ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 21, 8)) +>foo : (x: T, y?: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T } var a: { foo(x: T, y?: U): T } ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 19)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 13)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 24)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 15)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 13)) +>a : { foo(x: T, y?: U): T; } +>foo : (x: T, y?: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T var b = { foo(x: T, y?: U) { return x; } }; ->b : { foo(x: T, y?: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) +>b : { foo(x: T, y?: U): T; } >{ foo(x: T, y?: U) { return x; } } : { foo(x: T, y?: U): T; } ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 20)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 14)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 25)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 20)) +>foo : (x: T, y?: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>x : T function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 49), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 49), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 49), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 32, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 36, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 40, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 14)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 14)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 14)) +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 14)) ->b : { foo(x: T, y?: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) +>foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>b : { foo(x: T, y?: U): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 14)) ->b : { foo(x: T, y?: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) +>foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>b : { foo(x: T, y?: U): T; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 14)) +>foo4 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 52, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 37)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 56, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 60, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 14)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 64, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 68, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 72, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 28)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 15)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 6, 1)) +>foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 28)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 15)) ->b : { foo(x: T, y?: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>b : { foo(x: T, y?: U): T; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 37)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 84, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 38)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 18, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 38)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 88, 38)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 28)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 15)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 92, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 14, 1)) +>foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 28)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 15)) ->b : { foo(x: T, y?: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>b : { foo(x: T, y?: U): T; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 96, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 37)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 18, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 10, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 100, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams2.ts, 101, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.symbols new file mode 100644 index 0000000000000..b1cfab012bf90 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.symbols @@ -0,0 +1,363 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + + foo(x: T, y?: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 4, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 8)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 10)) + + foo(x: T, y: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 9, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 9, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 10)) + + foo(x: T, y?: U): T { return null; } +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 13, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 14)) + + foo(x: T, y?: U): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 19)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 17, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 17, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 18, 1)) + + foo(x: T, y: U): T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 20, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 10)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 8)) +} + +var a: { foo(x: T, y?: U): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 19)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 24)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 15)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 13)) + +var b = { foo(x: T, y: U) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 20)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 25)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 20)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 48), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 48), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 48), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) + +function foo7(x: typeof a); // no error, bug? +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 18, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 18, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 101, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types index 3271fe389eb34..d0356784ed64d 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types @@ -4,364 +4,364 @@ // optional or rest) and types, and identical return types. class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>A : A foo(x: T, y?: U): T { return null; } ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 4, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 5, 8)) +>foo : (x: T, y?: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 10)) +>B : B +>T : T +>U : U foo(x: T, y: U): T { return null; } ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 9, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 9, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 8, 8)) +>foo : (x: T, y: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 10)) +>C : C +>T : T +>U : U foo(x: T, y?: U): T { return null; } ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 13, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 12, 8)) +>foo : (x: T, y?: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 14)) +>I : I +>T : T +>U : U foo(x: T, y?: U): T; ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 19)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 17, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 12)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 17, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 16, 12)) +>foo : (x: T, y?: U) => T +>x : T +>T : T +>y : U +>U : U +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 18, 1)) +>I2 : I2 foo(x: T, y: U): T; ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 20, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 10)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 21, 8)) +>foo : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T } var a: { foo(x: T, y?: U): T } ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) ->foo : (x: T, y?: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 19)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 13)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 24)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 15)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 13)) +>a : { foo(x: T, y?: U): T; } +>foo : (x: T, y?: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>T : T var b = { foo(x: T, y: U) { return x; } }; ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) +>b : { foo(x: T, y: U): T; } >{ foo(x: T, y: U) { return x; } } : { foo(x: T, y: U): T; } ->foo : (x: T, y: U) => T, Symbol(foo, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 20)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 14)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 25)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 20)) +>foo : (x: T, y: U) => T +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>x : T function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 48), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 48), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 48), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 27, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 29, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 31, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 32, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 33, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 35, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 36, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 37, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 39, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 40, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 14)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 14)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo3(x: any) { } ->foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 43, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 14)) +>foo3 : { (x: { foo(x: T, y?: U): T; }): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 14)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 27)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 14)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo4(x: any) { } ->foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 47, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 14)) +>foo4 : { (x: { foo(x: T, y: U): T; }): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 51, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 52, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 37)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 53, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 55, 21), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 56, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 36)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 59, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 60, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : A +>A : A function foo7(x: typeof a); // no error, bug? ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 27)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 14)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 61, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 63, 20), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 64, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 14)) +>foo7 : { (x: A): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 65, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 67, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 68, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 69, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 71, 36), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 72, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 28)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 15)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 73, 25), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 75, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 15)) +>foo10 : { (x: B): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 6, 1)) +>foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 28)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 15)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 77, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 79, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 15)) +>foo11 : { (x: B): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 37)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 81, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 83, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 84, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 38)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 18, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 38)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 85, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 87, 23), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 88, 38)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 28)) ->x : { foo(x: T, y?: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 15)) ->a : { foo(x: T, y?: U): T; }, Symbol(a, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : { foo(x: T, y?: U): T; } +>a : { foo(x: T, y?: U): T; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 89, 27), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 91, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 92, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 15)) +>foo13 : { (x: I): any; (x: { foo(x: T, y?: U): T; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 14, 1)) +>foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 28)) ->x : { foo(x: T, y: U): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 15)) ->b : { foo(x: T, y: U): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : { foo(x: T, y: U): T; } +>b : { foo(x: T, y: U): T; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 93, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 95, 37), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 96, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 15)) +>foo14 : { (x: I): any; (x: { foo(x: T, y: U): T; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 37)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 18, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 10, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 97, 26), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 99, 22), Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 100, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericCallSignaturesOptionalParams3.ts, 101, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.symbols new file mode 100644 index 0000000000000..6f53dcf17b2d1 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.symbols @@ -0,0 +1,259 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class B> { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 4, 8)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 4, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 8, 8)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 9, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 8, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 12, 12)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + + new(x: T): string; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 12, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 14, 1)) + + new(x: T): string; +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 17, 8)) +>Boolean : Symbol(Boolean, Decl(lib.d.ts, 443, 38), Decl(lib.d.ts, 456, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 17, 27)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 17, 8)) +} + +var a: { new>(x: T): string } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 13)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 38)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 13)) + +var b = { new(x: T) { return ''; } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 14)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 32)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 14)) + +function foo1b(x: B>); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo1b(x: B>); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 14)) + +function foo8(x: B>); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 14)) + +function foo9(x: B>); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo9(x: C); // error, types are structurally equal +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 14)) + +function foo10(x: B>); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 15)) + +function foo11(x: B>); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 14, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 73, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types index 1db4b6ee32d23..ef3ec91f479c5 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types @@ -4,260 +4,260 @@ // optional or rest) and types, and identical return types. class B> { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 4, 8)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>B : B +>T : T +>Array : T[] constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 4, 8)) +>x : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 8, 8)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>C : C +>T : T +>String : String constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 9, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 8, 8)) +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 12, 12)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>I : I +>T : T +>Number : Number new(x: T): string; ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 12, 12)) +>x : T +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 14, 1)) +>I2 : I2 new(x: T): string; ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 17, 8)) ->Boolean : Boolean, Symbol(Boolean, Decl(lib.d.ts, 443, 38), Decl(lib.d.ts, 456, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 17, 27)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 17, 8)) +>T : T +>Boolean : Boolean +>x : T +>T : T } var a: { new>(x: T): string } ->a : new (x: T) => string, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 13)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 38)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 13)) +>a : new (x: T) => string +>T : T +>Array : T[] +>x : T +>T : T var b = { new(x: T) { return ''; } }; // not a construct signature, function called new ->b : { new(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) +>b : { new(x: T): string; } >{ new(x: T) { return ''; } } : { new(x: T): string; } ->new : (x: T) => string, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 14)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 32)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 14)) +>new : (x: T) => string +>T : T +>RegExp : RegExp +>x : T +>T : T >'' : string function foo1b(x: B>); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Array : T[] function foo1b(x: B>); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Array : T[] function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 23, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 24, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>String : String function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>String : String function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 28, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 32, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 27)) ->x : new (x: T) => string, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 14)) ->a : new (x: T) => string, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) +>foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; } +>x : new (x: T) => string +>a : new (x: T) => string function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 27)) ->x : new (x: T) => string, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 14)) ->a : new (x: T) => string, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) +>foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; } +>x : new (x: T) => string +>a : new (x: T) => string function foo3(x: any) { } ->foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 14)) +>foo3 : { (x: new (x: T) => string): any; (x: new (x: T) => string): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 27)) ->x : { new(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 14)) ->b : { new(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) +>foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; } +>x : { new(x: T): string; } +>b : { new(x: T): string; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 27)) ->x : { new(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 14)) ->b : { new(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) +>foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; } +>x : { new(x: T): string; } +>b : { new(x: T): string; } function foo4(x: any) { } ->foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 40, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 14)) +>foo4 : { (x: { new(x: T): string; }): any; (x: { new(x: T): string; }): any; } +>x : any function foo8(x: B>); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B +>Array : T[] function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I +>Number : Number function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 44, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B>); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B +>Array : T[] function foo9(x: C); // error, types are structurally equal ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C +>String : String function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 47, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 48, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B>); ->foo10 : { (x: B): any; (x: new (x: T) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo10 : { (x: B): any; (x: new (x: T) => string): any; } +>x : B +>B : B +>Array : T[] function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 28)) ->x : new (x: T) => string, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 15)) ->a : new (x: T) => string, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) +>foo10 : { (x: B): any; (x: new (x: T) => string): any; } +>x : new (x: T) => string +>a : new (x: T) => string function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: T) => string): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 51, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 15)) +>foo10 : { (x: B): any; (x: new (x: T) => string): any; } +>x : any function foo11(x: B>); ->foo11 : { (x: B): any; (x: { new(x: T): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 0, 0)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>foo11 : { (x: B): any; (x: { new(x: T): string; }): any; } +>x : B +>B : B +>Array : T[] function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 28)) ->x : { new(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 15)) ->b : { new(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) +>foo11 : { (x: B): any; (x: { new(x: T): string; }): any; } +>x : { new(x: T): string; } +>b : { new(x: T): string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: T): string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 55, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 56, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 15)) +>foo11 : { (x: B): any; (x: { new(x: T): string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I +>Number : Number function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C +>String : String function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 60, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 14, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 6, 1)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>String : String function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 64, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: T) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo13 : { (x: I): any; (x: new (x: T) => string): any; } +>x : I +>I : I +>Number : Number function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 28)) ->x : new (x: T) => string, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 15)) ->a : new (x: T) => string, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 20, 3)) +>foo13 : { (x: I): any; (x: new (x: T) => string): any; } +>x : new (x: T) => string +>a : new (x: T) => string function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: T) => string): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 15)) +>foo13 : { (x: I): any; (x: new (x: T) => string): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: T): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 10, 1)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>foo14 : { (x: I): any; (x: { new(x: T): string; }): any; } +>x : I +>I : I +>Number : Number function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 28)) ->x : { new(x: T): string; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 15)) ->b : { new(x: T): string; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 21, 3)) +>foo14 : { (x: I): any; (x: { new(x: T): string; }): any; } +>x : { new(x: T): string; } +>b : { new(x: T): string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: T): string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.ts, 73, 15)) +>foo14 : { (x: I): any; (x: { new(x: T): string; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.symbols new file mode 100644 index 0000000000000..703ee5d3cc498 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.symbols @@ -0,0 +1,268 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 4, 8)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 4, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 8, 8)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 9, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 8, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 12, 12)) + + new(x: T): Date; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 12, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 14, 1)) + + new(x: T): RegExp; +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 17, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 17, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 17, 8)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +} + +var a: { new(x: T): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 13)) + +var b = { new(x: T): T { return null; } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 17)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 45), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 45), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 45), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 14)) + +function foo5(x: typeof a): number; +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 35)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) + +function foo5(x: typeof b): string; // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 35)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) + +function foo5(x: any): any { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 35)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo9(x: C); // error since types are structurally equal +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 14, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 81, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types index 93324129ed2c9..657c38aae9a1d 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types @@ -4,269 +4,269 @@ // optional or rest) and types, and identical return types. class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 4, 8)) +>B : B +>T : T constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 4, 8)) +>x : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 8, 8)) +>C : C +>T : T constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 9, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 8, 8)) +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 12, 12)) +>I : I +>T : T new(x: T): Date; ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 12, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : T +>T : T +>Date : Date } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 14, 1)) +>I2 : I2 new(x: T): RegExp; ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 17, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 17, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 17, 8)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>T : T +>x : T +>T : T +>RegExp : RegExp } var a: { new(x: T): T } ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 13)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 13)) +>a : new (x: T) => T +>T : T +>x : T +>T : T +>T : T var b = { new(x: T): T { return null; } }; // not a construct signature, function called new ->b : { new(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>b : { new(x: T): T; } >{ new(x: T): T { return null; } } : { new(x: T): T; } ->new : (x: T) => T, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 17)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 14)) +>new : (x: T) => T +>T : T +>x : T +>T : T +>T : T >null : null function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 45), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 45), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 45), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 24, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 28, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 32, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 27)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 14)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) +>foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 27)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 14)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) +>foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo3(x: any) { } ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 14)) +>foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 27)) ->x : { new(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 14)) ->b : { new(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; } +>x : { new(x: T): T; } +>b : { new(x: T): T; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 27)) ->x : { new(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 14)) ->b : { new(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; } +>x : { new(x: T): T; } +>b : { new(x: T): T; } function foo4(x: any) { } ->foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 40, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 14)) +>foo4 : { (x: { new(x: T): T; }): any; (x: { new(x: T): T; }): any; } +>x : any function foo5(x: typeof a): number; ->foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 35)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 14)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) +>foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; } +>x : new (x: T) => T +>a : new (x: T) => T function foo5(x: typeof b): string; // ok ->foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 35)) ->x : { new(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 14)) ->b : { new(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; } +>x : { new(x: T): T; } +>b : { new(x: T): T; } function foo5(x: any): any { } ->foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; }, Symbol(foo5, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 43, 35), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 44, 35)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 14)) +>foo5 : { (x: new (x: T) => T): number; (x: { new(x: T): T; }): string; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 48, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error since types are structurally equal ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 51, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: T) => T): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T) => T): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 28)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 15)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) +>foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: T) => T): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 53, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 56, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 15)) +>foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: T): T; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 28)) ->x : { new(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 15)) ->b : { new(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>foo11 : { (x: B): any; (x: { new(x: T): T; }): any; } +>x : { new(x: T): T; } +>b : { new(x: T): T; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: T): T; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 60, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 15)) +>foo11 : { (x: B): any; (x: { new(x: T): T; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 63, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 64, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 14, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 65, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 67, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 68, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: T) => T): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T) => T): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 28)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 15)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 20, 3)) +>foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: T) => T): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 69, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 15)) +>foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 10, 1)) +>foo14 : { (x: I): any; (x: { new(x: T): T; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 28)) ->x : { new(x: T): T; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 15)) ->b : { new(x: T): T; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 21, 3)) +>foo14 : { (x: I): any; (x: { new(x: T): T; }): any; } +>x : { new(x: T): T; } +>b : { new(x: T): T; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: T): T; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 75, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 76, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 15)) +>foo14 : { (x: I): any; (x: { new(x: T): T; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 29)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 14, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 6, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 77, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 79, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 80, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.ts, 81, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.symbols new file mode 100644 index 0000000000000..faa0995c2ddd9 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.symbols @@ -0,0 +1,277 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 4, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 4, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 8, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + constructor(x: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 9, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 8, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 12, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + + new(x: T): Date; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 12, 12)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 14, 1)) + + new(x: T): RegExp; +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 17, 8)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 17, 24)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 17, 8)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +} + +var a: { new(x: T): T } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 13)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 29)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 13)) + +var b = { new(x: T) { return null; } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 14)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 30)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo9(x: C); // error since types are structurally equal +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 14, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 15)) + +function foo15(x: I2); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 15)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 14, 1)) + +function foo15(x: C); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 77, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types index 967cfa6b61f38..181acc2ce91cb 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types @@ -4,278 +4,278 @@ // optional or rest) and types, and identical return types. class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 4, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>B : B +>T : T +>Date : Date constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 4, 8)) +>x : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 8, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>C : C +>T : T +>Date : Date constructor(x: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 9, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 8, 8)) +>x : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 12, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>I : I +>T : T +>Date : Date new(x: T): Date; ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 12, 12)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>x : T +>T : T +>Date : Date } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 14, 1)) +>I2 : I2 new(x: T): RegExp; ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 17, 8)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 17, 24)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 17, 8)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>T : T +>Date : Date +>x : T +>T : T +>RegExp : RegExp } var a: { new(x: T): T } ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 13)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 29)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 13)) +>a : new (x: T) => T +>T : T +>Date : Date +>x : T +>T : T +>T : T var b = { new(x: T) { return null; } }; // not a construct signature, function called new ->b : { new(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) +>b : { new(x: T): any; } >{ new(x: T) { return null; } } : { new(x: T): any; } ->new : (x: T) => any, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 14)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 30)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 14)) +>new : (x: T) => any +>T : T +>Date : Date +>x : T +>T : T >null : null function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 27)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Date : Date function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 27)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B +>Date : Date function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 55), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 23, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 24, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 27, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 28, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 31, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 32, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 27)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 14)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) +>foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 27)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 14)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) +>foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo3(x: any) { } ->foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 14)) +>foo3 : { (x: new (x: T) => T): any; (x: new (x: T) => T): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 27)) ->x : { new(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 14)) ->b : { new(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) +>foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; } +>x : { new(x: T): any; } +>b : { new(x: T): any; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 27)) ->x : { new(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 14)) ->b : { new(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) +>foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; } +>x : { new(x: T): any; } +>b : { new(x: T): any; } function foo4(x: any) { } ->foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 40, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 14)) +>foo4 : { (x: { new(x: T): any; }): any; (x: { new(x: T): any; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B +>Date : Date function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 26)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 43, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 44, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B +>Date : Date function foo9(x: C); // error since types are structurally equal ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 26)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 47, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 48, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: T) => T): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>x : B +>B : B +>Date : Date function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: T) => T): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 28)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 15)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) +>foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: T) => T): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 51, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 15)) +>foo10 : { (x: B): any; (x: new (x: T) => T): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo11 : { (x: B): any; (x: { new(x: T): any; }): any; } +>x : B +>B : B +>Date : Date function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 28)) ->x : { new(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 15)) ->b : { new(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) +>foo11 : { (x: B): any; (x: { new(x: T): any; }): any; } +>x : { new(x: T): any; } +>b : { new(x: T): any; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: T): any; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 55, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 56, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 15)) +>foo11 : { (x: B): any; (x: { new(x: T): any; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 27)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I +>Date : Date function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 59, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 60, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 28)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 14, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 64, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: T) => T): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>x : I +>I : I +>Date : Date function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: T) => T): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 28)) ->x : new (x: T) => T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 15)) ->a : new (x: T) => T, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 20, 3)) +>foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>x : new (x: T) => T +>a : new (x: T) => T function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: T) => T): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 67, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 15)) +>foo13 : { (x: I): any; (x: new (x: T) => T): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 10, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo14 : { (x: I): any; (x: { new(x: T): any; }): any; } +>x : I +>I : I +>Date : Date function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 28)) ->x : { new(x: T): any; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 15)) ->b : { new(x: T): any; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 21, 3)) +>foo14 : { (x: I): any; (x: { new(x: T): any; }): any; } +>x : { new(x: T): any; } +>b : { new(x: T): any; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: T): any; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 71, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 15)) +>foo14 : { (x: I): any; (x: { new(x: T): any; }): any; } +>x : any function foo15(x: I2); ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 27)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 15)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 14, 1)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo15(x: C); // ok ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 27)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 6, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : C +>C : C +>Date : Date function foo15(x: any) { } ->foo15 : { (x: I2): any; (x: C): any; }, Symbol(foo15, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 73, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 75, 22), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 76, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.ts, 77, 15)) +>foo15 : { (x: I2): any; (x: C): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.symbols new file mode 100644 index 0000000000000..d7797a833c92f --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.symbols @@ -0,0 +1,275 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts === +// object types are identical structurally + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 2, 8)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 2, 10)) + + constructor(x: U) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 3, 16)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 2, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +>W : Symbol(W, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 10)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 13)) + + constructor(x: V) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 7, 16)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 12)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 14)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 17)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 20)) + + new(x: X): B; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 11, 8)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 12)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 12)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 14)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 12, 1)) + + new (x: Y): C; +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 9)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 11)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 17)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 21)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 9)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 9)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 11)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 14)) +} + +var a: { new (x: Z): C; } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 19)) +>CC : Symbol(CC, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 22)) +>D : Symbol(D, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 30)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 19)) + +var b = { new(x: A) { return x; } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 9)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 19)) +>D : Symbol(D, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 22)) +>E : Symbol(E, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 25)) +>F : Symbol(F, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 32)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 32)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 54), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 54), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 54), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 46), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 46), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 46), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 46)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 53), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 53), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 53), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 53)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo8(x: I); // BUG 832086 +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 51)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 55)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo9(x: C>); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 55)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 55)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 15)) + +function foo12(x: I, number, Date, string>); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 62), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 54)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: C, number, Date>); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 62), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 54)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 62), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 54)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 47)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 12, 1)) + +function foo12b(x: C); // BUG 832086 +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 47)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 47)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 52), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 52), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 52), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 71, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types index e23f6c86c5cf3..b8e7c15c9b551 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types @@ -2,277 +2,277 @@ // object types are identical structurally class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 2, 8)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 2, 10)) +>B : B +>U : U +>V : V constructor(x: U) { return null; } ->x : U, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 3, 16)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 2, 8)) +>x : U +>U : U >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 8)) ->W : W, Symbol(W, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 10)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 13)) +>C : C +>V : V +>W : W +>X : X constructor(x: V) { return null; } ->x : V, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 7, 16)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 6, 8)) +>x : V +>V : V >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 12)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 14)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 17)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 20)) +>I : I +>X : X +>Y : Y +>Z : Z +>A : A new(x: X): B; ->x : X, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 11, 8)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 12)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 12)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 10, 14)) +>x : X +>X : X +>B : B +>X : X +>Y : Y } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>I2 : I2 new (x: Y): C; ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 9)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 11)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 17)) ->x : Y, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 21)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 9)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 9)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 11)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 15, 14)) +>Y : Y +>Z : Z +>A : A +>B : B +>x : Y +>Y : Y +>C : C +>Y : Y +>Z : Z +>A : A } var a: { new (x: Z): C; } ->a : new (x: Z) => C, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 19)) ->CC : CC, Symbol(CC, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 22)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 26)) ->x : Z, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 30)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 19)) +>a : new (x: Z) => C +>Z : Z +>A : A +>B : B +>CC : CC +>D : D +>x : Z +>Z : Z +>C : C +>Z : Z +>A : A +>B : B var b = { new(x: A) { return x; } }; ->b : { new(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) +>b : { new(x: A): A; } >{ new(x: A) { return x; } } : { new(x: A): A; } ->new : (x: A) => A, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 9)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 19)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 22)) ->E : E, Symbol(E, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 25)) ->F : F, Symbol(F, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 28)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 32)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 14)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 32)) +>new : (x: A) => A +>A : A +>B : B +>C : C +>D : D +>E : E +>F : F +>x : A +>A : A +>x : A function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 54), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 54), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 54), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 21, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 22, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 46), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 46)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 46), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 46)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 25, 46), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 26, 46)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 53), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 53)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 53), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 53)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 29, 53), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 30, 53)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 27)) ->x : new (x: Z) => C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 14)) ->a : new (x: Z) => C, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) +>foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; } +>x : new (x: Z) => C +>a : new (x: Z) => C function foo3(x: typeof a); // error ->foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 27)) ->x : new (x: Z) => C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 14)) ->a : new (x: Z) => C, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) +>foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; } +>x : new (x: Z) => C +>a : new (x: Z) => C function foo3(x: any) { } ->foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 34, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 14)) +>foo3 : { (x: new (x: Z) => C): any; (x: new (x: Z) => C): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 27)) ->x : { new(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 14)) ->b : { new(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) +>foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; } +>x : { new(x: A): A; } +>b : { new(x: A): A; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 27)) ->x : { new(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 14)) ->b : { new(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) +>foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; } +>x : { new(x: A): A; } +>b : { new(x: A): A; } function foo4(x: any) { } ->foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 38, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 14)) +>foo4 : { (x: { new(x: A): A; }): any; (x: { new(x: A): A; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 51)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // BUG 832086 ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 51)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I +>Date : Date function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 41, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 42, 51)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C>): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 55)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C>): any; } +>x : B +>B : B function foo9(x: C>); // error ->foo9 : { (x: B): any; (x: C>): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 55)) ->x : C>, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C>): any; } +>x : C> +>C : C +>B : B function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C>): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 45, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 46, 55)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 14)) +>foo9 : { (x: B): any; (x: C>): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: Z) => C): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: Z) => C): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: new (x: Z) => C): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 28)) ->x : new (x: Z) => C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 15)) ->a : new (x: Z) => C, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) +>foo10 : { (x: B): any; (x: new (x: Z) => C): any; } +>x : new (x: Z) => C +>a : new (x: Z) => C function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: Z) => C): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 49, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 15)) +>foo10 : { (x: B): any; (x: new (x: Z) => C): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: A): A; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 28)) ->x : { new(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 15)) ->b : { new(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) +>foo11 : { (x: B): any; (x: { new(x: A): A; }): any; } +>x : { new(x: A): A; } +>b : { new(x: A): A; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: A): A; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 53, 38), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 54, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 15)) +>foo11 : { (x: B): any; (x: { new(x: A): A; }): any; } +>x : any function foo12(x: I, number, Date, string>); ->foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 62), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 54)) ->x : I, number, Date, string>, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; } +>x : I, number, Date, string> +>I : I +>B : B +>Date : Date function foo12(x: C, number, Date>); // ok ->foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 62), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 54)) ->x : C, number, Date>, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 0, 0)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; } +>x : C, number, Date> +>C : C +>B : B +>Date : Date function foo12(x: any) { } ->foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 57, 62), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 58, 54)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 15)) +>foo12 : { (x: I, number, Date, string>): any; (x: C, number, Date>): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 47)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 12, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // BUG 832086 ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 47)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 4, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 62, 47)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: Z) => C): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>foo13 : { (x: I): any; (x: new (x: Z) => C): any; } +>x : I +>I : I +>Date : Date +>RegExp : RegExp +>Date : Date function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: new (x: Z) => C): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 28)) ->x : new (x: Z) => C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 15)) ->a : new (x: Z) => C, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 18, 3)) +>foo13 : { (x: I): any; (x: new (x: Z) => C): any; } +>x : new (x: Z) => C +>a : new (x: Z) => C function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: Z) => C): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 65, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 15)) +>foo13 : { (x: I): any; (x: new (x: Z) => C): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 52), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 8, 1)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>foo14 : { (x: I): any; (x: { new(x: A): A; }): any; } +>x : I +>I : I +>Date : Date +>RegExp : RegExp function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 52), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 28)) ->x : { new(x: A): A; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 15)) ->b : { new(x: A): A; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { new(x: A): A; }): any; } +>x : { new(x: A): A; } +>b : { new(x: A): A; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: A): A; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 69, 52), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.ts, 71, 15)) +>foo14 : { (x: I): any; (x: { new(x: A): A; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.symbols new file mode 100644 index 0000000000000..6e31b7fcc41a4 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.symbols @@ -0,0 +1,243 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts === +// object types are identical structurally + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 2, 8)) + + constructor(x: U) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 3, 16)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 2, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 6, 8)) + + constructor(x: V) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 7, 16)) +>V : Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 6, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 10, 12)) + + new(x: X): B; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 11, 8)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 10, 12)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>X : Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 10, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 12, 1)) + + new(x: Y): C; +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 11)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 8)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>Y : Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 8)) +} + +var a: { new(x: Z): B } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 16)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 13)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>Z : Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 13)) + +var b = { new(x: A) { return new C(x); } }; +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 9)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 17)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 17)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo8(x: I); // BUG 832086 +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo10(x: typeof a); // BUG 832086 +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 12, 1)) + +function foo12b(x: C); // BUG 832086 +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo13(x: typeof a); // BUG 832086 +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 71, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types index d3235ae6f9688..db188b1b35887 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types @@ -2,246 +2,246 @@ // object types are identical structurally class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 2, 8)) +>B : B +>U : U constructor(x: U) { return null; } ->x : U, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 3, 16)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 2, 8)) +>x : U +>U : U >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 6, 8)) +>C : C +>V : V constructor(x: V) { return null; } ->x : V, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 7, 16)) ->V : V, Symbol(V, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 6, 8)) +>x : V +>V : V >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 10, 12)) +>I : I +>X : X new(x: X): B; ->x : X, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 11, 8)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 10, 12)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) ->X : X, Symbol(X, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 10, 12)) +>x : X +>X : X +>B : B +>X : X } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>I2 : I2 new(x: Y): C; ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 8)) ->x : Y, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 11)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 8)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) ->Y : Y, Symbol(Y, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 15, 8)) +>Y : Y +>x : Y +>Y : Y +>C : C +>Y : Y } var a: { new(x: Z): B } ->a : new (x: Z) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 13)) ->x : Z, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 16)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 13)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) ->Z : Z, Symbol(Z, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 13)) +>a : new (x: Z) => B +>Z : Z +>x : Z +>Z : Z +>B : B +>Z : Z var b = { new(x: A) { return new C(x); } }; ->b : { new(x: A): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) +>b : { new(x: A): C; } >{ new(x: A) { return new C(x); } } : { new(x: A): C; } ->new : (x: A) => C, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 9)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 14)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 17)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 14)) +>new : (x: A) => C +>A : A +>x : A +>A : A >new C(x) : C ->C : typeof C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 14)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 17)) +>C : typeof C +>A : A +>x : A function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 49), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 21, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 22, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 23, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 25, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 26, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 27, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 29, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 30, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 27)) ->x : new (x: Z) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 14)) ->a : new (x: Z) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) +>foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; } +>x : new (x: Z) => B +>a : new (x: Z) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 27)) ->x : new (x: Z) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 14)) ->a : new (x: Z) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) +>foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; } +>x : new (x: Z) => B +>a : new (x: Z) => B function foo3(x: any) { } ->foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 31, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 33, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 34, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 14)) +>foo3 : { (x: new (x: Z) => B): any; (x: new (x: Z) => B): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 27)) ->x : { new(x: A): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 14)) ->b : { new(x: A): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) +>foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; } +>x : { new(x: A): C; } +>b : { new(x: A): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 27)) ->x : { new(x: A): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 14)) ->b : { new(x: A): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) +>foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; } +>x : { new(x: A): C; } +>b : { new(x: A): C; } function foo4(x: any) { } ->foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 35, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 37, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 38, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 14)) +>foo4 : { (x: { new(x: A): C; }): any; (x: { new(x: A): C; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // BUG 832086 ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 39, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 41, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 42, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 43, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 45, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 46, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: Z) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: Z) => B): any; } +>x : B +>B : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: Z) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 28)) ->x : new (x: Z) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 15)) ->a : new (x: Z) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) +>foo10 : { (x: B): any; (x: new (x: Z) => B): any; } +>x : new (x: Z) => B +>a : new (x: Z) => B function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: Z) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 47, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 49, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 15)) +>foo10 : { (x: B): any; (x: new (x: Z) => B): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: A): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: A): C; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: A): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 28)) ->x : { new(x: A): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 15)) ->b : { new(x: A): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) +>foo11 : { (x: B): any; (x: { new(x: A): C; }): any; } +>x : { new(x: A): C; } +>b : { new(x: A): C; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: A): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 51, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 53, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 54, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 15)) +>foo11 : { (x: B): any; (x: { new(x: A): C; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 55, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 57, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 58, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 12, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // BUG 832086 ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 4, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 59, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 61, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 62, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: Z) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo13 : { (x: I): any; (x: new (x: Z) => B): any; } +>x : I +>I : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: Z) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 28)) ->x : new (x: Z) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 15)) ->a : new (x: Z) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 18, 3)) +>foo13 : { (x: I): any; (x: new (x: Z) => B): any; } +>x : new (x: Z) => B +>a : new (x: Z) => B function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: Z) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 63, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 65, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 15)) +>foo13 : { (x: I): any; (x: new (x: Z) => B): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: A): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 8, 1)) +>foo14 : { (x: I): any; (x: { new(x: A): C; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: A): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 28)) ->x : { new(x: A): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 15)) ->b : { new(x: A): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { new(x: A): C; }): any; } +>x : { new(x: A): C; } +>b : { new(x: A): C; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: A): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 67, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 69, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.ts, 71, 15)) +>foo14 : { (x: I): any; (x: { new(x: A): C; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.symbols new file mode 100644 index 0000000000000..c42a6ae4341dd --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.symbols @@ -0,0 +1,258 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 4, 8)) + + constructor(x: T, y?: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 4, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 5, 21)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 4, 8)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 8, 8)) + + constructor(x: T, y?: T) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 9, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 8, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 9, 21)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 8, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) + + new(x: T, y?: T): B; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 13, 13)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 14, 1)) + + new(x: T, y?: T): C; +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 11)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) +} + +var a: { new(x: T, y?: T): B } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 21)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) + +var b = { new(x: T, y?: T) { return new C(x, y); } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 17)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 22)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 17)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 22)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 59), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 59), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 59), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 14)) + +function foo8(x: B): string; +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) + +function foo8(x: I): number; // BUG 832086 +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) + +function foo8(x: any): any { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) + +function foo9(x: C); // error, differ only by return type +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) + +function foo10(x: typeof a); // BUG 832086 +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 14, 1)) + +function foo12b(x: C); // BUG 832086 +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) + +function foo13(x: typeof a); // BUG 832086 +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 73, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types index 6528d13809095..027fe3b0043a1 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types @@ -4,259 +4,259 @@ // optional or rest) and types, and identical return types. class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 4, 8)) +>B : B +>T : T constructor(x: T, y?: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 4, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 5, 21)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 4, 8)) +>x : T +>T : T +>y : T +>T : T >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 8, 8)) +>C : C +>T : T constructor(x: T, y?: T) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 9, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 8, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 9, 21)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 8, 8)) +>x : T +>T : T +>y : T +>T : T >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) +>I : I +>T : T new(x: T, y?: T): B; ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 13, 13)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 12, 12)) +>x : T +>T : T +>y : T +>T : T +>B : B +>T : T } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 14, 1)) +>I2 : I2 new(x: T, y?: T): C; ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 11)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 17, 8)) +>T : T +>x : T +>T : T +>y : T +>T : T +>C : C +>T : T } var a: { new(x: T, y?: T): B } ->a : new (x: T, y?: T) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 21)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 13)) +>a : new (x: T, y?: T) => B +>T : T +>x : T +>T : T +>y : T +>T : T +>B : B +>T : T var b = { new(x: T, y?: T) { return new C(x, y); } }; // not a construct signature, function called new ->b : { new(x: T, y?: T): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) +>b : { new(x: T, y?: T): C; } >{ new(x: T, y?: T) { return new C(x, y); } } : { new(x: T, y?: T): C; } ->new : (x: T, y?: T) => C, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 17)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 22)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) +>new : (x: T, y?: T) => C +>T : T +>x : T +>T : T +>y : T +>T : T >new C(x, y) : C ->C : typeof C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 14)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 17)) ->y : T, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 22)) +>C : typeof C +>T : T +>x : T +>y : T function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 59), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 59), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 29)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 59), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 23, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 24, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 27, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 28, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 31, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 32, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 27)) ->x : new (x: T, y?: T) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 14)) ->a : new (x: T, y?: T) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) +>foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; } +>x : new (x: T, y?: T) => B +>a : new (x: T, y?: T) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 27)) ->x : new (x: T, y?: T) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 14)) ->a : new (x: T, y?: T) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) +>foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; } +>x : new (x: T, y?: T) => B +>a : new (x: T, y?: T) => B function foo3(x: any) { } ->foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 14)) +>foo3 : { (x: new (x: T, y?: T) => B): any; (x: new (x: T, y?: T) => B): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 27)) ->x : { new(x: T, y?: T): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 14)) ->b : { new(x: T, y?: T): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) +>foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; } +>x : { new(x: T, y?: T): C; } +>b : { new(x: T, y?: T): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 27)) ->x : { new(x: T, y?: T): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 14)) ->b : { new(x: T, y?: T): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) +>foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; } +>x : { new(x: T, y?: T): C; } +>b : { new(x: T, y?: T): C; } function foo4(x: any) { } ->foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 40, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 14)) +>foo4 : { (x: { new(x: T, y?: T): C; }): any; (x: { new(x: T, y?: T): C; }): any; } +>x : any function foo8(x: B): string; ->foo8 : { (x: B): string; (x: I): number; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>foo8 : { (x: B): string; (x: I): number; } +>x : B +>B : B function foo8(x: I): number; // BUG 832086 ->foo8 : { (x: B): string; (x: I): number; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>foo8 : { (x: B): string; (x: I): number; } +>x : I +>I : I function foo8(x: any): any { } ->foo8 : { (x: B): string; (x: I): number; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 44, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 14)) +>foo8 : { (x: B): string; (x: I): number; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error, differ only by return type ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 45, 30), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 47, 28), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 48, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; } +>x : B +>B : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 28)) ->x : new (x: T, y?: T) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 15)) ->a : new (x: T, y?: T) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) +>foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; } +>x : new (x: T, y?: T) => B +>a : new (x: T, y?: T) => B function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 51, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 15)) +>foo10 : { (x: B): any; (x: new (x: T, y?: T) => B): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 28)) ->x : { new(x: T, y?: T): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 15)) ->b : { new(x: T, y?: T): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) +>foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; } +>x : { new(x: T, y?: T): C; } +>b : { new(x: T, y?: T): C; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 55, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 56, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 15)) +>foo11 : { (x: B): any; (x: { new(x: T, y?: T): C; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 59, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 60, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 30)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 14, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // BUG 832086 ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 6, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 64, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; } +>x : I +>I : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 28)) ->x : new (x: T, y?: T) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 15)) ->a : new (x: T, y?: T) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 20, 3)) +>foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; } +>x : new (x: T, y?: T) => B +>a : new (x: T, y?: T) => B function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 67, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 15)) +>foo13 : { (x: I): any; (x: new (x: T, y?: T) => B): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 10, 1)) +>foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 28)) ->x : { new(x: T, y?: T): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 15)) ->b : { new(x: T, y?: T): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 21, 3)) +>foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; } +>x : { new(x: T, y?: T): C; } +>b : { new(x: T, y?: T): C; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 71, 29), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams.ts, 73, 15)) +>foo14 : { (x: I): any; (x: { new(x: T, y?: T): C; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.symbols new file mode 100644 index 0000000000000..44bc153cd8f93 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.symbols @@ -0,0 +1,268 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 10)) + + constructor(x: T, y?: U) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 5, 21)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 10)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 10)) + + constructor(x: T, y?: U) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 9, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 9, 21)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 10)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 14)) + + new (x: T, y?: U): B; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 13, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 13, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 14)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 14, 1)) + + new (x: T, y?: U): C; +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 9)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 11)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 15)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 9)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 20)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 11)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 9)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 11)) +} + +var a: { new(x: T, y?: U): B } +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 15)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 19)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 13)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 24)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 15)) + +var b = { new(x: T, y?: U) { return new C(x, y); } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 20)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 25)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 20)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 25)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 65), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 65), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 65), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) + +function foo8(x: I); // BUG 832086 +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) + +function foo10(x: typeof a); // BUG 832086 +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) + +function foo12(x: C); // BUG 832086 +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 14, 1)) + +function foo12b(x: C); // ok +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) + +function foo13(x: typeof a); // BUG 832086 +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 73, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types index d8516e66aaab5..9a415f6cbf474 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types @@ -4,269 +4,269 @@ // optional or rest) and types, and identical return types. class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 10)) +>B : B +>T : T +>U : U constructor(x: T, y?: U) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 5, 21)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 4, 10)) +>x : T +>T : T +>y : U +>U : U >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 10)) +>C : C +>T : T +>U : U constructor(x: T, y?: U) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 9, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 9, 21)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 8, 10)) +>x : T +>T : T +>y : U +>U : U >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 14)) +>I : I +>T : T +>U : U new (x: T, y?: U): B; ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 13, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 12)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 13, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 12, 14)) +>x : T +>T : T +>y : U +>U : U +>B : B +>T : T +>U : U } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 14, 1)) +>I2 : I2 new (x: T, y?: U): C; ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 9)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 11)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 15)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 9)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 20)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 11)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 9)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 17, 11)) +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>C : C +>T : T +>U : U } var a: { new(x: T, y?: U): B } ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 15)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 19)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 13)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 24)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 15)) +>a : new (x: T, y?: U) => B +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>B : B +>T : T +>U : U var b = { new(x: T, y?: U) { return new C(x, y); } }; // not a construct signature, function called new ->b : { new(x: T, y?: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) +>b : { new(x: T, y?: U): C; } >{ new(x: T, y?: U) { return new C(x, y); } } : { new(x: T, y?: U): C; } ->new : (x: T, y?: U) => C, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 20)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 14)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 25)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 16)) +>new : (x: T, y?: U) => C +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U >new C(x, y) : C ->C : typeof C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 20)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 25)) +>C : typeof C +>T : T +>U : U +>x : T +>y : U function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 65), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 65), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 65), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 24, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 28, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 32, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 27)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 14)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 27)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 14)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo3(x: any) { } ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 14)) +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 27)) ->x : { new(x: T, y?: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 14)) ->b : { new(x: T, y?: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) +>foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; } +>x : { new(x: T, y?: U): C; } +>b : { new(x: T, y?: U): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 27)) ->x : { new(x: T, y?: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 14)) ->b : { new(x: T, y?: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) +>foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; } +>x : { new(x: T, y?: U): C; } +>b : { new(x: T, y?: U): C; } function foo4(x: any) { } ->foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 40, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 14)) +>foo4 : { (x: { new(x: T, y?: U): C; }): any; (x: { new(x: T, y?: U): C; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // BUG 832086 ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 44, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 48, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>x : B +>B : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 28)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 15)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) +>foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 15)) +>foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 28)) ->x : { new(x: T, y?: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 15)) ->b : { new(x: T, y?: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) +>foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; } +>x : { new(x: T, y?: U): C; } +>b : { new(x: T, y?: U): C; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 56, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 15)) +>foo11 : { (x: B): any; (x: { new(x: T, y?: U): C; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 37)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // BUG 832086 ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 60, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 38)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 14, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // ok ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 38)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 6, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 64, 38)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>x : I +>I : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 28)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 15)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 20, 3)) +>foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 15)) +>foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 10, 1)) +>foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 28)) ->x : { new(x: T, y?: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 15)) ->b : { new(x: T, y?: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 21, 3)) +>foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; } +>x : { new(x: T, y?: U): C; } +>b : { new(x: T, y?: U): C; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.ts, 73, 15)) +>foo14 : { (x: I): any; (x: { new(x: T, y?: U): C; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.symbols b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.symbols new file mode 100644 index 0000000000000..3eb24d1b40092 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.symbols @@ -0,0 +1,268 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts === +// Two call or construct signatures are considered identical when they have the same number of type parameters and, considering those +// parameters pairwise identical, have identical type parameter constraints, identical number of parameters with identical kind(required, +// optional or rest) and types, and identical return types. + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 10)) + + constructor(x: T, y: U) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 5, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 5, 21)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 10)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 10)) + + constructor(x: T, y?: U) { return null; } +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 9, 16)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 9, 21)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 10)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 14)) + + new(x: T, y?: U): B; +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 13, 8)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 12)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 13, 13)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 12)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 14)) +} + +interface I2 { +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 14, 1)) + + new(x: T, y: U): C; +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 10)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 14)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 8)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 19)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 10)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 8)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 10)) +} + +var a: { new (x: T, y?: U): B }; +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 20)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 25)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 16)) + +var b = { new(x: T, y: U) { return new C(x, y); } }; // not a construct signature, function called new +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) +>new : Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 9)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 20)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 14)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 25)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 14)) +>U : Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 16)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 20)) +>y : Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 25)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 64), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 64), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 64), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) + +function foo8(x: I); // BUG 832086 +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) + +function foo9(x: C); // error, differ only by return type +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) + +function foo10(x: typeof a); // BUG 832086 +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 37)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 15)) + +function foo12b(x: I2); +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 16)) +>I2 : Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 14, 1)) + +function foo12b(x: C); // BUG 832086 +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 16)) +>C : Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) + +function foo12b(x: any) { } +>foo12b : Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 38)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 16)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) + +function foo13(x: typeof a); // BUG 832086 +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 73, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types index a0b4ae9caca16..c73d45260f917 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types @@ -4,269 +4,269 @@ // optional or rest) and types, and identical return types. class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 10)) +>B : B +>T : T +>U : U constructor(x: T, y: U) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 5, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 5, 21)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 4, 10)) +>x : T +>T : T +>y : U +>U : U >null : null } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 10)) +>C : C +>T : T +>U : U constructor(x: T, y?: U) { return null; } ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 9, 16)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 9, 21)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 8, 10)) +>x : T +>T : T +>y : U +>U : U >null : null } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 14)) +>I : I +>T : T +>U : U new(x: T, y?: U): B; ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 13, 8)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 12)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 13, 13)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 12)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 12, 14)) +>x : T +>T : T +>y : U +>U : U +>B : B +>T : T +>U : U } interface I2 { ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 14, 1)) +>I2 : I2 new(x: T, y: U): C; ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 10)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 14)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 8)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 19)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 10)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 8)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 17, 10)) +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>C : C +>T : T +>U : U } var a: { new (x: T, y?: U): B }; ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 20)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 14)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 25)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 16)) +>a : new (x: T, y?: U) => B +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U +>B : B +>T : T +>U : U var b = { new(x: T, y: U) { return new C(x, y); } }; // not a construct signature, function called new ->b : { new(x: T, y: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) +>b : { new(x: T, y: U): C; } >{ new(x: T, y: U) { return new C(x, y); } } : { new(x: T, y: U): C; } ->new : (x: T, y: U) => C, Symbol(new, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 9)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 20)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 14)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 25)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 16)) +>new : (x: T, y: U) => C +>T : T +>U : U +>x : T +>T : T +>y : U +>U : U >new C(x, y) : C ->C : typeof C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 14)) ->U : U, Symbol(U, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 16)) ->x : T, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 20)) ->y : U, Symbol(y, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 25)) +>C : typeof C +>T : T +>U : U +>x : T +>y : U function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 64), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 64), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 37)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 64), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 23, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 24, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 25, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 27, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 28, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 29, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 31, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 32, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 27)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 14)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo3(x: typeof a); // error ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 27)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 14)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo3(x: any) { } ->foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo3, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 33, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 35, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 36, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 14)) +>foo3 : { (x: new (x: T, y?: U) => B): any; (x: new (x: T, y?: U) => B): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 27)) ->x : { new(x: T, y: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 14)) ->b : { new(x: T, y: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) +>foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; } +>x : { new(x: T, y: U): C; } +>b : { new(x: T, y: U): C; } function foo4(x: typeof b); // error ->foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 27)) ->x : { new(x: T, y: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 14)) ->b : { new(x: T, y: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) +>foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; } +>x : { new(x: T, y: U): C; } +>b : { new(x: T, y: U): C; } function foo4(x: any) { } ->foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 37, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 39, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 40, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 14)) +>foo4 : { (x: { new(x: T, y: U): C; }): any; (x: { new(x: T, y: U): C; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // BUG 832086 ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 36)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 41, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 43, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 44, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 36)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error, differ only by return type ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 45, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 47, 36), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 48, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>x : B +>B : B function foo10(x: typeof a); // BUG 832086 ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 28)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 15)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) +>foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo10(x: any) { } ->foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo10, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 49, 25), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 51, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 52, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 15)) +>foo10 : { (x: B): any; (x: new (x: T, y?: U) => B): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 0, 0)) +>foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 28)) ->x : { new(x: T, y: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 15)) ->b : { new(x: T, y: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) +>foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; } +>x : { new(x: T, y: U): C; } +>b : { new(x: T, y: U): C; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 53, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 55, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 56, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 15)) +>foo11 : { (x: B): any; (x: { new(x: T, y: U): C; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 37)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 37)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 57, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 59, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 60, 37)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo12b(x: I2); ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 38)) ->x : I2, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 16)) ->I2 : I2, Symbol(I2, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 14, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : I2 +>I2 : I2 function foo12b(x: C); // BUG 832086 ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 38)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 16)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 6, 1)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : C +>C : C function foo12b(x: any) { } ->foo12b : { (x: I2): any; (x: C): any; }, Symbol(foo12b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 61, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 63, 23), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 64, 38)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 16)) +>foo12b : { (x: I2): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>x : I +>I : I function foo13(x: typeof a); // BUG 832086 ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 28)) ->x : new (x: T, y?: U) => B, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 15)) ->a : new (x: T, y?: U) => B, Symbol(a, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 20, 3)) +>foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>x : new (x: T, y?: U) => B +>a : new (x: T, y?: U) => B function foo13(x: any) { } ->foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; }, Symbol(foo13, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 65, 27), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 67, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 68, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 15)) +>foo13 : { (x: I): any; (x: new (x: T, y?: U) => B): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 10, 1)) +>foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 28)) ->x : { new(x: T, y: U): C; }, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 15)) ->b : { new(x: T, y: U): C; }, Symbol(b, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 21, 3)) +>foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; } +>x : { new(x: T, y: U): C; } +>b : { new(x: T, y: U): C; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 69, 26), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 71, 37), Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 72, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.ts, 73, 15)) +>foo14 : { (x: I): any; (x: { new(x: T, y: U): C; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.symbols b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.symbols new file mode 100644 index 0000000000000..4a2eb1ab2a1e0 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.symbols @@ -0,0 +1,377 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers1.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + + [x: number]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 3, 5)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + + [x: number]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 7, 5)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithNumericIndexers1.ts, 10, 8)) + + [x: number]: T; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 11, 5)) +>T : Symbol(T, Decl(objectTypesIdentityWithNumericIndexers1.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + + [x: number]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 15, 5)) +} + +class PA extends A { +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +} + +class PB extends B { +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +} + +var a: { +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) + + [x: number]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 25, 5)) +} +var b: { [x: number]: string; } = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 10)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 35)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 15)) + +function foo5c(x: A); +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo5c(x: PA); // error +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) + +function foo5c(x: any) { } +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 15)) + +function foo5d(x: A); +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo5d(x: PB); // error +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) + +function foo5d(x: any) { } +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo6(x: I); // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 15)) + +function foo11b(x: B); +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo11b(x: PA); // error +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 16)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) + +function foo11b(x: any) { } +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 16)) + +function foo11c(x: B); +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) + +function foo11c(x: PB); // error +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 16)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) + +function foo11c(x: any) { } +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 16)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 15)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo15(x: PA); // error +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 15)) + +function foo16(x: I); +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) + +function foo16(x: PB); // error +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) + +function foo16(x: any) { } +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 119, 15)) + + diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types index 141015a1bc33e..2284d06ffbd0f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.types @@ -2,378 +2,378 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>A : A [x: number]: string; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 3, 5)) +>x : number } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>B : B [x: number]: string; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 7, 5)) +>x : number } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithNumericIndexers1.ts, 10, 8)) +>C : C +>T : T [x: number]: T; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 11, 5)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithNumericIndexers1.ts, 10, 8)) +>x : number +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>I : I [x: number]: string; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 15, 5)) +>x : number } class PA extends A { ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>PA : PA +>A : A } class PB extends B { ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>PB : PB +>B : B } var a: { ->a : { [x: number]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) +>a : { [x: number]: string; } [x: number]: string; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 25, 5)) +>x : number } var b: { [x: number]: string; } = { foo: '' }; ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 10)) +>b : { [x: number]: string; } +>x : number >{ foo: '' } : { [x: number]: undefined; foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 35)) +>foo : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers1.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 30, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 34, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers1.ts, 38, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers1.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 42, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 14)) ->a : { [x: number]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) +>foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>a : { [x: number]: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 14)) ->a : { [x: number]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) +>foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>a : { [x: number]: string; } function foo3(x: any) { } ->foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers1.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 14)) +>foo3 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 14)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) +>foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 14)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) +>foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo4(x: any) { } ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers1.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 50, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 14)) +>foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers1.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 54, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 58, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo5c(x: A); ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : A +>A : A function foo5c(x: PA); // error ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : PA +>PA : PA function foo5c(x: any) { } ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 62, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 15)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : any function foo5d(x: A); ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : A +>A : A function foo5d(x: PB); // error ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : PB +>PB : PB function foo5d(x: any) { } ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers1.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 66, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 15)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers1.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 70, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { [x: number]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers1.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { [x: number]: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: number]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 14)) ->a : { [x: number]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>a : { [x: number]: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { [x: number]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers1.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 74, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 14)) +>foo7 : { (x: A): any; (x: { [x: number]: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers1.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 78, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers1.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers1.ts, 82, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 28)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 15)) ->a : { [x: number]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>a : { [x: number]: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers1.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers1.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 86, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 15)) +>foo10 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 28)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 15)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) +>foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers1.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 15)) +>foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : any function foo11b(x: B); ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : B +>B : B function foo11b(x: PA); // error ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 23)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 16)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : PA +>PA : PA function foo11b(x: any) { } ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 94, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 16)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : any function foo11c(x: B); ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers1.ts, 4, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : B +>B : B function foo11c(x: PB); // error ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 23)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 16)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : PB +>PB : PB function foo11c(x: any) { } ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers1.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers1.ts, 98, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 16)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers1.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers1.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers1.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 102, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 28)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 15)) ->a : { [x: number]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers1.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>a : { [x: number]: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers1.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 106, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 15)) +>foo13 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 28)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 15)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers1.ts, 27, 3)) +>foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers1.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 110, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 15)) +>foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : I +>I : I function foo15(x: PA); // error ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers1.ts, 16, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : PA +>PA : PA function foo15(x: any) { } ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers1.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 114, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 15)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : any function foo16(x: I); ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers1.ts, 12, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : I +>I : I function foo16(x: PB); // error ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers1.ts, 19, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : PB +>PB : PB function foo16(x: any) { } ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers1.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers1.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers1.ts, 118, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers1.ts, 119, 15)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.symbols b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.symbols new file mode 100644 index 0000000000000..375fff858fb43 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.symbols @@ -0,0 +1,395 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers2.ts === +// object types are identical structurally + +class Base { foo: string; } +>Base : Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +>bar : Symbol(bar, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 28)) + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + + [x: number]: Base; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 6, 5)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + + [x: number]: Derived; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 10, 5)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithNumericIndexers2.ts, 13, 8)) + + [x: number]: T; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 14, 5)) +>T : Symbol(T, Decl(objectTypesIdentityWithNumericIndexers2.ts, 13, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + + [x: number]: Derived; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 18, 5)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +} + +class PA extends A { +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +} + +class PB extends B { +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +} + +var a: { +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) + + [x: number]: Base; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 28, 5)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +} +var b: { [x: number]: Derived; } = { foo: null }; +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 10)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 36)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 15)) + +function foo5c(x: A); +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo5c(x: PA); // error +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) + +function foo5c(x: any) { } +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 15)) + +function foo5d(x: A); +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo5d(x: PB); // ok +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) + +function foo5d(x: any) { } +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 15)) + +function foo11b(x: B); +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo11b(x: PA); // ok +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 16)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) + +function foo11b(x: any) { } +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 16)) + +function foo11c(x: B); +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) + +function foo11c(x: PB); // error +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 16)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) + +function foo11c(x: any) { } +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 16)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 15)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo15(x: PA); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 15)) + +function foo16(x: I); +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) + +function foo16(x: PB); // error +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) + +function foo16(x: any) { } +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 122, 15)) + + diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types index 7b9414679275a..1a580297b1b3e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.types @@ -2,397 +2,397 @@ // object types are identical structurally class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>A : A [x: number]: Base; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 6, 5)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +>x : number +>Base : Base } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>B : B [x: number]: Derived; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 10, 5)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>x : number +>Derived : Derived } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithNumericIndexers2.ts, 13, 8)) +>C : C +>T : T [x: number]: T; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 14, 5)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithNumericIndexers2.ts, 13, 8)) +>x : number +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>I : I [x: number]: Derived; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 18, 5)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>x : number +>Derived : Derived } class PA extends A { ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>PA : PA +>A : A } class PB extends B { ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>PB : PB +>B : B } var a: { ->a : { [x: number]: Base; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) +>a : { [x: number]: Base; } [x: number]: Base; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 28, 5)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +>x : number +>Base : Base } var b: { [x: number]: Derived; } = { foo: null }; ->b : { [x: number]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 10)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>b : { [x: number]: Derived; } +>x : number +>Derived : Derived >{ foo: null } : { [x: number]: undefined; foo: Derived; } ->foo : Derived, Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 36)) +>foo : Derived >null : Derived ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>Derived : Derived >null : null function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithNumericIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 33, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 37, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithNumericIndexers2.ts, 41, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 45, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 27)) ->x : { [x: number]: Base; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 14)) ->a : { [x: number]: Base; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) +>foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; } +>x : { [x: number]: Base; } +>a : { [x: number]: Base; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 27)) ->x : { [x: number]: Base; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 14)) ->a : { [x: number]: Base; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) +>foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; } +>x : { [x: number]: Base; } +>a : { [x: number]: Base; } function foo3(x: any) { } ->foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 49, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 14)) +>foo3 : { (x: { [x: number]: Base; }): any; (x: { [x: number]: Base; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 27)) ->x : { [x: number]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 14)) ->b : { [x: number]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) +>foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; } +>x : { [x: number]: Derived; } +>b : { [x: number]: Derived; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 27)) ->x : { [x: number]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 14)) ->b : { [x: number]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) +>foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; } +>x : { [x: number]: Derived; } +>b : { [x: number]: Derived; } function foo4(x: any) { } ->foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 53, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 14)) +>foo4 : { (x: { [x: number]: Derived; }): any; (x: { [x: number]: Derived; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 57, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 30)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C +>Derived : Derived function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 61, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo5c(x: A); ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : A +>A : A function foo5c(x: PA); // error ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : PA +>PA : PA function foo5c(x: any) { } ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 65, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 15)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : any function foo5d(x: A); ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : A +>A : A function foo5d(x: PB); // ok ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : PB +>PB : PB function foo5d(x: any) { } ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 69, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 15)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 73, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers2.ts, 3, 43)) +>foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 27)) ->x : { [x: number]: Base; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 14)) ->a : { [x: number]: Base; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) +>foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; } +>x : { [x: number]: Base; } +>a : { [x: number]: Base; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 77, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 14)) +>foo7 : { (x: A): any; (x: { [x: number]: Base; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 81, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 26)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithNumericIndexers2.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C +>Base : Base function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithNumericIndexers2.ts, 85, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 28)) ->x : { [x: number]: Base; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 15)) ->a : { [x: number]: Base; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) +>foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; } +>x : { [x: number]: Base; } +>a : { [x: number]: Base; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithNumericIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 89, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 15)) +>foo10 : { (x: B): any; (x: { [x: number]: Base; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 28)) ->x : { [x: number]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 15)) ->b : { [x: number]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) +>foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; } +>x : { [x: number]: Derived; } +>b : { [x: number]: Derived; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 93, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 15)) +>foo11 : { (x: B): any; (x: { [x: number]: Derived; }): any; } +>x : any function foo11b(x: B); ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : B +>B : B function foo11b(x: PA); // ok ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 23)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 16)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : PA +>PA : PA function foo11b(x: any) { } ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 97, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 16)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : any function foo11c(x: B); ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers2.ts, 7, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : B +>B : B function foo11c(x: PB); // error ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 23)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 16)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : PB +>PB : PB function foo11c(x: any) { } ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithNumericIndexers2.ts, 101, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 16)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 30)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers2.ts, 11, 1)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithNumericIndexers2.ts, 2, 27)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C +>Derived : Derived function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithNumericIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 105, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 28)) ->x : { [x: number]: Base; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 15)) ->a : { [x: number]: Base; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers2.ts, 27, 3)) +>foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; } +>x : { [x: number]: Base; } +>a : { [x: number]: Base; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 109, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 15)) +>foo13 : { (x: I): any; (x: { [x: number]: Base; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 28)) ->x : { [x: number]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 15)) ->b : { [x: number]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers2.ts, 30, 3)) +>foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; } +>x : { [x: number]: Derived; } +>b : { [x: number]: Derived; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 113, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 15)) +>foo14 : { (x: I): any; (x: { [x: number]: Derived; }): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : I +>I : I function foo15(x: PA); // ok ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers2.ts, 19, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : PA +>PA : PA function foo15(x: any) { } ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 117, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 15)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : any function foo16(x: I); ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers2.ts, 15, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : I +>I : I function foo16(x: PB); // error ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers2.ts, 22, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : PB +>PB : PB function foo16(x: any) { } ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithNumericIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithNumericIndexers2.ts, 121, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers2.ts, 122, 15)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.symbols b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.symbols new file mode 100644 index 0000000000000..c0bc1b5cf6050 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.symbols @@ -0,0 +1,377 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithNumericIndexers3.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + + [x: number]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 3, 5)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 7, 5)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithNumericIndexers3.ts, 10, 8)) + + [x: number]: T; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 11, 5)) +>T : Symbol(T, Decl(objectTypesIdentityWithNumericIndexers3.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 15, 5)) +} + +class PA extends A { +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +} + +class PB extends B { +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +} + +var a: { +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 25, 5)) +} +var b: { [x: number]: string; } = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 10)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 35)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 15)) + +function foo5c(x: A); +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo5c(x: PA); // error +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) + +function foo5c(x: any) { } +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 15)) + +function foo5d(x: A); +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo5d(x: PB); // ok +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) + +function foo5d(x: any) { } +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo11(x: typeof b); // ok +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 15)) + +function foo11b(x: B); +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo11b(x: PA); // ok +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 16)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) + +function foo11b(x: any) { } +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 16)) + +function foo11c(x: B); +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) + +function foo11c(x: PB); // error +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 16)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) + +function foo11c(x: any) { } +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 16)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 15)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo15(x: PA); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 15)) + +function foo16(x: I); +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) + +function foo16(x: PB); // error +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) + +function foo16(x: any) { } +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 119, 15)) + + diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types index eb0df6a97d857..ae384bbb4db36 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.types @@ -2,378 +2,378 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>A : A [x: number]: string; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 3, 5)) +>x : number } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>B : B [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 7, 5)) +>x : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithNumericIndexers3.ts, 10, 8)) +>C : C +>T : T [x: number]: T; ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 11, 5)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithNumericIndexers3.ts, 10, 8)) +>x : number +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>I : I [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 15, 5)) +>x : string } class PA extends A { ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>PA : PA +>A : A } class PB extends B { ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>PB : PB +>B : B } var a: { ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) +>a : { [x: string]: string; } [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 25, 5)) +>x : string } var b: { [x: number]: string; } = { foo: '' }; ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) ->x : number, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 10)) +>b : { [x: number]: string; } +>x : number >{ foo: '' } : { [x: number]: undefined; foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 35)) +>foo : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 46), Decl(objectTypesIdentityWithNumericIndexers3.ts, 29, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 30, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 31, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 33, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 34, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 35, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 37, 29), Decl(objectTypesIdentityWithNumericIndexers3.ts, 38, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithNumericIndexers3.ts, 39, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 41, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 42, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 14)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) +>foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 14)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) +>foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo3(x: any) { } ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithNumericIndexers3.ts, 43, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 45, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 14)) +>foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 14)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) +>foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 27)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 14)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) +>foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo4(x: any) { } ->foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithNumericIndexers3.ts, 47, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 49, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 50, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 14)) +>foo4 : { (x: { [x: number]: string; }): any; (x: { [x: number]: string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithNumericIndexers3.ts, 51, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 53, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 54, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 55, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 57, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 58, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo5c(x: A); ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : A +>A : A function foo5c(x: PA); // error ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : PA +>PA : PA function foo5c(x: any) { } ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 59, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 61, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 62, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 15)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : any function foo5d(x: A); ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : A +>A : A function foo5d(x: PB); // ok ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : PB +>PB : PB function foo5d(x: any) { } ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithNumericIndexers3.ts, 63, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 65, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 66, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 15)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithNumericIndexers3.ts, 67, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 69, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 70, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithNumericIndexers3.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 14)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithNumericIndexers3.ts, 71, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 73, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 74, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 14)) +>foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithNumericIndexers3.ts, 75, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 77, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 78, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithNumericIndexers3.ts, 79, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 81, 20), Decl(objectTypesIdentityWithNumericIndexers3.ts, 82, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 28)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 15)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithNumericIndexers3.ts, 83, 25), Decl(objectTypesIdentityWithNumericIndexers3.ts, 85, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 86, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 15)) +>foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // ok ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 28)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 15)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) +>foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { [x: number]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithNumericIndexers3.ts, 87, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 89, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 15)) +>foo11 : { (x: B): any; (x: { [x: number]: string; }): any; } +>x : any function foo11b(x: B); ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : B +>B : B function foo11b(x: PA); // ok ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 23)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 16)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : PA +>PA : PA function foo11b(x: any) { } ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 91, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 93, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 94, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 16)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : any function foo11c(x: B); ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithNumericIndexers3.ts, 4, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : B +>B : B function foo11c(x: PB); // error ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 23)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 16)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : PB +>PB : PB function foo11c(x: any) { } ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithNumericIndexers3.ts, 95, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 97, 22), Decl(objectTypesIdentityWithNumericIndexers3.ts, 98, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 16)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithNumericIndexers3.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithNumericIndexers3.ts, 99, 27), Decl(objectTypesIdentityWithNumericIndexers3.ts, 101, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 102, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 28)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 15)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithNumericIndexers3.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithNumericIndexers3.ts, 103, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 105, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 106, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 15)) +>foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 28)) ->x : { [x: number]: string; }, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 15)) ->b : { [x: number]: string; }, Symbol(b, Decl(objectTypesIdentityWithNumericIndexers3.ts, 27, 3)) +>foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : { [x: number]: string; } +>b : { [x: number]: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { [x: number]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithNumericIndexers3.ts, 107, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 109, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 110, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 15)) +>foo14 : { (x: I): any; (x: { [x: number]: string; }): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : I +>I : I function foo15(x: PA); // ok ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithNumericIndexers3.ts, 16, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : PA +>PA : PA function foo15(x: any) { } ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithNumericIndexers3.ts, 111, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 113, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 114, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 15)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : any function foo16(x: I); ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithNumericIndexers3.ts, 12, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : I +>I : I function foo16(x: PB); // error ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithNumericIndexers3.ts, 19, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : PB +>PB : PB function foo16(x: any) { } ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithNumericIndexers3.ts, 115, 26), Decl(objectTypesIdentityWithNumericIndexers3.ts, 117, 21), Decl(objectTypesIdentityWithNumericIndexers3.ts, 118, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithNumericIndexers3.ts, 119, 15)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithOptionality.symbols b/tests/baselines/reference/objectTypesIdentityWithOptionality.symbols new file mode 100644 index 0000000000000..595295418f592 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithOptionality.symbols @@ -0,0 +1,167 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithOptionality.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithOptionality.ts, 0, 0)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 2, 9)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithOptionality.ts, 4, 1)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 6, 9)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithOptionality.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithOptionality.ts, 10, 8)) + + foo: T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 10, 12)) +>T : Symbol(T, Decl(objectTypesIdentityWithOptionality.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + + foo?: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 14, 13)) +} + +var a: { foo?: string; } +>a : Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 18, 8)) + +var b = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentityWithOptionality.ts, 19, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 19, 9)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithOptionality.ts, 19, 20), Decl(objectTypesIdentityWithOptionality.ts, 21, 20), Decl(objectTypesIdentityWithOptionality.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 21, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithOptionality.ts, 19, 20), Decl(objectTypesIdentityWithOptionality.ts, 21, 20), Decl(objectTypesIdentityWithOptionality.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 22, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithOptionality.ts, 19, 20), Decl(objectTypesIdentityWithOptionality.ts, 21, 20), Decl(objectTypesIdentityWithOptionality.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 23, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithOptionality.ts, 23, 25), Decl(objectTypesIdentityWithOptionality.ts, 25, 27), Decl(objectTypesIdentityWithOptionality.ts, 26, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 25, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithOptionality.ts, 23, 25), Decl(objectTypesIdentityWithOptionality.ts, 25, 27), Decl(objectTypesIdentityWithOptionality.ts, 26, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 26, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithOptionality.ts, 23, 25), Decl(objectTypesIdentityWithOptionality.ts, 25, 27), Decl(objectTypesIdentityWithOptionality.ts, 26, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 27, 14)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithOptionality.ts, 27, 25), Decl(objectTypesIdentityWithOptionality.ts, 29, 20), Decl(objectTypesIdentityWithOptionality.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 29, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithOptionality.ts, 0, 0)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithOptionality.ts, 27, 25), Decl(objectTypesIdentityWithOptionality.ts, 29, 20), Decl(objectTypesIdentityWithOptionality.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 30, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithOptionality.ts, 27, 25), Decl(objectTypesIdentityWithOptionality.ts, 29, 20), Decl(objectTypesIdentityWithOptionality.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 31, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithOptionality.ts, 31, 25), Decl(objectTypesIdentityWithOptionality.ts, 33, 20), Decl(objectTypesIdentityWithOptionality.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 33, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithOptionality.ts, 0, 0)) + +function foo7(x: typeof a); // ok +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithOptionality.ts, 31, 25), Decl(objectTypesIdentityWithOptionality.ts, 33, 20), Decl(objectTypesIdentityWithOptionality.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 34, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithOptionality.ts, 31, 25), Decl(objectTypesIdentityWithOptionality.ts, 33, 20), Decl(objectTypesIdentityWithOptionality.ts, 34, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 35, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithOptionality.ts, 35, 25), Decl(objectTypesIdentityWithOptionality.ts, 37, 20), Decl(objectTypesIdentityWithOptionality.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 37, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithOptionality.ts, 4, 1)) + +function foo8(x: I); // ok +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithOptionality.ts, 35, 25), Decl(objectTypesIdentityWithOptionality.ts, 37, 20), Decl(objectTypesIdentityWithOptionality.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 38, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithOptionality.ts, 35, 25), Decl(objectTypesIdentityWithOptionality.ts, 37, 20), Decl(objectTypesIdentityWithOptionality.ts, 38, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 39, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithOptionality.ts, 39, 25), Decl(objectTypesIdentityWithOptionality.ts, 41, 21), Decl(objectTypesIdentityWithOptionality.ts, 42, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 41, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithOptionality.ts, 4, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithOptionality.ts, 39, 25), Decl(objectTypesIdentityWithOptionality.ts, 41, 21), Decl(objectTypesIdentityWithOptionality.ts, 42, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 42, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithOptionality.ts, 39, 25), Decl(objectTypesIdentityWithOptionality.ts, 41, 21), Decl(objectTypesIdentityWithOptionality.ts, 42, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 43, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithOptionality.ts, 43, 26), Decl(objectTypesIdentityWithOptionality.ts, 45, 21), Decl(objectTypesIdentityWithOptionality.ts, 46, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 45, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo12(x: C); // ok +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithOptionality.ts, 43, 26), Decl(objectTypesIdentityWithOptionality.ts, 45, 21), Decl(objectTypesIdentityWithOptionality.ts, 46, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 46, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithOptionality.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithOptionality.ts, 43, 26), Decl(objectTypesIdentityWithOptionality.ts, 45, 21), Decl(objectTypesIdentityWithOptionality.ts, 46, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 47, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithOptionality.ts, 47, 26), Decl(objectTypesIdentityWithOptionality.ts, 49, 21), Decl(objectTypesIdentityWithOptionality.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 49, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithOptionality.ts, 47, 26), Decl(objectTypesIdentityWithOptionality.ts, 49, 21), Decl(objectTypesIdentityWithOptionality.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 50, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithOptionality.ts, 47, 26), Decl(objectTypesIdentityWithOptionality.ts, 49, 21), Decl(objectTypesIdentityWithOptionality.ts, 50, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 51, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithOptionality.ts, 51, 26), Decl(objectTypesIdentityWithOptionality.ts, 53, 21), Decl(objectTypesIdentityWithOptionality.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 53, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) + +function foo14(x: typeof b); // ok +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithOptionality.ts, 51, 26), Decl(objectTypesIdentityWithOptionality.ts, 53, 21), Decl(objectTypesIdentityWithOptionality.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 54, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithOptionality.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithOptionality.ts, 51, 26), Decl(objectTypesIdentityWithOptionality.ts, 53, 21), Decl(objectTypesIdentityWithOptionality.ts, 54, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 55, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithOptionality.types b/tests/baselines/reference/objectTypesIdentityWithOptionality.types index d43a842b930cb..bab319f359857 100644 --- a/tests/baselines/reference/objectTypesIdentityWithOptionality.types +++ b/tests/baselines/reference/objectTypesIdentityWithOptionality.types @@ -2,168 +2,168 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithOptionality.ts, 0, 0)) +>A : A foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 2, 9)) +>foo : string } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithOptionality.ts, 4, 1)) +>B : B foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 6, 9)) +>foo : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithOptionality.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithOptionality.ts, 10, 8)) +>C : C +>T : T foo: T; ->foo : T, Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 10, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithOptionality.ts, 10, 8)) +>foo : T +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>I : I foo?: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 14, 13)) +>foo : string } var a: { foo?: string; } ->a : { foo?: string; }, Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 18, 8)) +>a : { foo?: string; } +>foo : string var b = { foo: '' }; ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithOptionality.ts, 19, 3)) +>b : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithOptionality.ts, 19, 9)) +>foo : string >'' : string function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithOptionality.ts, 19, 20), Decl(objectTypesIdentityWithOptionality.ts, 21, 20), Decl(objectTypesIdentityWithOptionality.ts, 22, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 21, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithOptionality.ts, 19, 20), Decl(objectTypesIdentityWithOptionality.ts, 21, 20), Decl(objectTypesIdentityWithOptionality.ts, 22, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 22, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithOptionality.ts, 19, 20), Decl(objectTypesIdentityWithOptionality.ts, 21, 20), Decl(objectTypesIdentityWithOptionality.ts, 22, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 23, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithOptionality.ts, 23, 25), Decl(objectTypesIdentityWithOptionality.ts, 25, 27), Decl(objectTypesIdentityWithOptionality.ts, 26, 27)) ->x : { foo?: string; }, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 25, 14)) ->a : { foo?: string; }, Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) +>foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; } +>x : { foo?: string; } +>a : { foo?: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithOptionality.ts, 23, 25), Decl(objectTypesIdentityWithOptionality.ts, 25, 27), Decl(objectTypesIdentityWithOptionality.ts, 26, 27)) ->x : { foo?: string; }, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 26, 14)) ->a : { foo?: string; }, Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) +>foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; } +>x : { foo?: string; } +>a : { foo?: string; } function foo3(x: any) { } ->foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithOptionality.ts, 23, 25), Decl(objectTypesIdentityWithOptionality.ts, 25, 27), Decl(objectTypesIdentityWithOptionality.ts, 26, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 27, 14)) +>foo3 : { (x: { foo?: string; }): any; (x: { foo?: string; }): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithOptionality.ts, 27, 25), Decl(objectTypesIdentityWithOptionality.ts, 29, 20), Decl(objectTypesIdentityWithOptionality.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 29, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithOptionality.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithOptionality.ts, 27, 25), Decl(objectTypesIdentityWithOptionality.ts, 29, 20), Decl(objectTypesIdentityWithOptionality.ts, 30, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 30, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithOptionality.ts, 27, 25), Decl(objectTypesIdentityWithOptionality.ts, 29, 20), Decl(objectTypesIdentityWithOptionality.ts, 30, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 31, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo?: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithOptionality.ts, 31, 25), Decl(objectTypesIdentityWithOptionality.ts, 33, 20), Decl(objectTypesIdentityWithOptionality.ts, 34, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 33, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithOptionality.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo?: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // ok ->foo7 : { (x: A): any; (x: { foo?: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithOptionality.ts, 31, 25), Decl(objectTypesIdentityWithOptionality.ts, 33, 20), Decl(objectTypesIdentityWithOptionality.ts, 34, 27)) ->x : { foo?: string; }, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 34, 14)) ->a : { foo?: string; }, Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) +>foo7 : { (x: A): any; (x: { foo?: string; }): any; } +>x : { foo?: string; } +>a : { foo?: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo?: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithOptionality.ts, 31, 25), Decl(objectTypesIdentityWithOptionality.ts, 33, 20), Decl(objectTypesIdentityWithOptionality.ts, 34, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 35, 14)) +>foo7 : { (x: A): any; (x: { foo?: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithOptionality.ts, 35, 25), Decl(objectTypesIdentityWithOptionality.ts, 37, 20), Decl(objectTypesIdentityWithOptionality.ts, 38, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 37, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithOptionality.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // ok ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithOptionality.ts, 35, 25), Decl(objectTypesIdentityWithOptionality.ts, 37, 20), Decl(objectTypesIdentityWithOptionality.ts, 38, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 38, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithOptionality.ts, 35, 25), Decl(objectTypesIdentityWithOptionality.ts, 37, 20), Decl(objectTypesIdentityWithOptionality.ts, 38, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 39, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo?: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithOptionality.ts, 39, 25), Decl(objectTypesIdentityWithOptionality.ts, 41, 21), Decl(objectTypesIdentityWithOptionality.ts, 42, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 41, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithOptionality.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo?: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { foo?: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithOptionality.ts, 39, 25), Decl(objectTypesIdentityWithOptionality.ts, 41, 21), Decl(objectTypesIdentityWithOptionality.ts, 42, 28)) ->x : { foo?: string; }, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 42, 15)) ->a : { foo?: string; }, Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) +>foo10 : { (x: B): any; (x: { foo?: string; }): any; } +>x : { foo?: string; } +>a : { foo?: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo?: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithOptionality.ts, 39, 25), Decl(objectTypesIdentityWithOptionality.ts, 41, 21), Decl(objectTypesIdentityWithOptionality.ts, 42, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 43, 15)) +>foo10 : { (x: B): any; (x: { foo?: string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithOptionality.ts, 43, 26), Decl(objectTypesIdentityWithOptionality.ts, 45, 21), Decl(objectTypesIdentityWithOptionality.ts, 46, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 45, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // ok ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithOptionality.ts, 43, 26), Decl(objectTypesIdentityWithOptionality.ts, 45, 21), Decl(objectTypesIdentityWithOptionality.ts, 46, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 46, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithOptionality.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithOptionality.ts, 43, 26), Decl(objectTypesIdentityWithOptionality.ts, 45, 21), Decl(objectTypesIdentityWithOptionality.ts, 46, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 47, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo?: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithOptionality.ts, 47, 26), Decl(objectTypesIdentityWithOptionality.ts, 49, 21), Decl(objectTypesIdentityWithOptionality.ts, 50, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 49, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo?: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo?: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithOptionality.ts, 47, 26), Decl(objectTypesIdentityWithOptionality.ts, 49, 21), Decl(objectTypesIdentityWithOptionality.ts, 50, 28)) ->x : { foo?: string; }, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 50, 15)) ->a : { foo?: string; }, Symbol(a, Decl(objectTypesIdentityWithOptionality.ts, 18, 3)) +>foo13 : { (x: I): any; (x: { foo?: string; }): any; } +>x : { foo?: string; } +>a : { foo?: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo?: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithOptionality.ts, 47, 26), Decl(objectTypesIdentityWithOptionality.ts, 49, 21), Decl(objectTypesIdentityWithOptionality.ts, 50, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 51, 15)) +>foo13 : { (x: I): any; (x: { foo?: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithOptionality.ts, 51, 26), Decl(objectTypesIdentityWithOptionality.ts, 53, 21), Decl(objectTypesIdentityWithOptionality.ts, 54, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 53, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithOptionality.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // ok ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithOptionality.ts, 51, 26), Decl(objectTypesIdentityWithOptionality.ts, 53, 21), Decl(objectTypesIdentityWithOptionality.ts, 54, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 54, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithOptionality.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithOptionality.ts, 51, 26), Decl(objectTypesIdentityWithOptionality.ts, 53, 21), Decl(objectTypesIdentityWithOptionality.ts, 54, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithOptionality.ts, 55, 15)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates.symbols b/tests/baselines/reference/objectTypesIdentityWithPrivates.symbols new file mode 100644 index 0000000000000..d7680f7fb91d1 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates.symbols @@ -0,0 +1,374 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + + private foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 2, 9)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + + private foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 6, 9)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithPrivates.ts, 10, 8)) + + private foo: T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 10, 12)) +>T : Symbol(T, Decl(objectTypesIdentityWithPrivates.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 14, 13)) +} + +class PA extends A { +>PA : Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +} + +class PB extends B { +>PB : Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +} + +var a: { foo: string; } +>a : Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 24, 8)) + +var b = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 25, 9)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPrivates.ts, 25, 20), Decl(objectTypesIdentityWithPrivates.ts, 27, 20), Decl(objectTypesIdentityWithPrivates.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 27, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPrivates.ts, 25, 20), Decl(objectTypesIdentityWithPrivates.ts, 27, 20), Decl(objectTypesIdentityWithPrivates.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 28, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPrivates.ts, 25, 20), Decl(objectTypesIdentityWithPrivates.ts, 27, 20), Decl(objectTypesIdentityWithPrivates.ts, 28, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 29, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithPrivates.ts, 29, 25), Decl(objectTypesIdentityWithPrivates.ts, 31, 21), Decl(objectTypesIdentityWithPrivates.ts, 32, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 31, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithPrivates.ts, 29, 25), Decl(objectTypesIdentityWithPrivates.ts, 31, 21), Decl(objectTypesIdentityWithPrivates.ts, 32, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 32, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithPrivates.ts, 29, 25), Decl(objectTypesIdentityWithPrivates.ts, 31, 21), Decl(objectTypesIdentityWithPrivates.ts, 32, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 33, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithPrivates.ts, 33, 26), Decl(objectTypesIdentityWithPrivates.ts, 35, 29), Decl(objectTypesIdentityWithPrivates.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 35, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithPrivates.ts, 33, 26), Decl(objectTypesIdentityWithPrivates.ts, 35, 29), Decl(objectTypesIdentityWithPrivates.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 36, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithPrivates.ts, 33, 26), Decl(objectTypesIdentityWithPrivates.ts, 35, 29), Decl(objectTypesIdentityWithPrivates.ts, 36, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 37, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPrivates.ts, 37, 26), Decl(objectTypesIdentityWithPrivates.ts, 39, 20), Decl(objectTypesIdentityWithPrivates.ts, 40, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 39, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPrivates.ts, 37, 26), Decl(objectTypesIdentityWithPrivates.ts, 39, 20), Decl(objectTypesIdentityWithPrivates.ts, 40, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 40, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPrivates.ts, 37, 26), Decl(objectTypesIdentityWithPrivates.ts, 39, 20), Decl(objectTypesIdentityWithPrivates.ts, 40, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 41, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPrivates.ts, 41, 25), Decl(objectTypesIdentityWithPrivates.ts, 43, 27), Decl(objectTypesIdentityWithPrivates.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 43, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPrivates.ts, 41, 25), Decl(objectTypesIdentityWithPrivates.ts, 43, 27), Decl(objectTypesIdentityWithPrivates.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 44, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPrivates.ts, 41, 25), Decl(objectTypesIdentityWithPrivates.ts, 43, 27), Decl(objectTypesIdentityWithPrivates.ts, 44, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 45, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates.ts, 45, 25), Decl(objectTypesIdentityWithPrivates.ts, 47, 27), Decl(objectTypesIdentityWithPrivates.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 47, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates.ts, 45, 25), Decl(objectTypesIdentityWithPrivates.ts, 47, 27), Decl(objectTypesIdentityWithPrivates.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 48, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates.ts, 45, 25), Decl(objectTypesIdentityWithPrivates.ts, 47, 27), Decl(objectTypesIdentityWithPrivates.ts, 48, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 49, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPrivates.ts, 49, 25), Decl(objectTypesIdentityWithPrivates.ts, 51, 20), Decl(objectTypesIdentityWithPrivates.ts, 52, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 51, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo5(x: B); // no error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPrivates.ts, 49, 25), Decl(objectTypesIdentityWithPrivates.ts, 51, 20), Decl(objectTypesIdentityWithPrivates.ts, 52, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 52, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPrivates.ts, 49, 25), Decl(objectTypesIdentityWithPrivates.ts, 51, 20), Decl(objectTypesIdentityWithPrivates.ts, 52, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 53, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithPrivates.ts, 53, 25), Decl(objectTypesIdentityWithPrivates.ts, 55, 21), Decl(objectTypesIdentityWithPrivates.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 55, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo5b(x: C); // no error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithPrivates.ts, 53, 25), Decl(objectTypesIdentityWithPrivates.ts, 55, 21), Decl(objectTypesIdentityWithPrivates.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 56, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithPrivates.ts, 53, 25), Decl(objectTypesIdentityWithPrivates.ts, 55, 21), Decl(objectTypesIdentityWithPrivates.ts, 56, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 57, 15)) + +function foo5c(x: A); +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithPrivates.ts, 57, 26), Decl(objectTypesIdentityWithPrivates.ts, 59, 21), Decl(objectTypesIdentityWithPrivates.ts, 60, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 59, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo5c(x: PA); // error +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithPrivates.ts, 57, 26), Decl(objectTypesIdentityWithPrivates.ts, 59, 21), Decl(objectTypesIdentityWithPrivates.ts, 60, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 60, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) + +function foo5c(x: any) { } +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithPrivates.ts, 57, 26), Decl(objectTypesIdentityWithPrivates.ts, 59, 21), Decl(objectTypesIdentityWithPrivates.ts, 60, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 61, 15)) + +function foo5d(x: A); +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithPrivates.ts, 61, 26), Decl(objectTypesIdentityWithPrivates.ts, 63, 21), Decl(objectTypesIdentityWithPrivates.ts, 64, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 63, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo5d(x: PB); // no error +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithPrivates.ts, 61, 26), Decl(objectTypesIdentityWithPrivates.ts, 63, 21), Decl(objectTypesIdentityWithPrivates.ts, 64, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 64, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) + +function foo5d(x: any) { } +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithPrivates.ts, 61, 26), Decl(objectTypesIdentityWithPrivates.ts, 63, 21), Decl(objectTypesIdentityWithPrivates.ts, 64, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 65, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPrivates.ts, 65, 26), Decl(objectTypesIdentityWithPrivates.ts, 67, 20), Decl(objectTypesIdentityWithPrivates.ts, 68, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 67, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo6(x: I); // no error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPrivates.ts, 65, 26), Decl(objectTypesIdentityWithPrivates.ts, 67, 20), Decl(objectTypesIdentityWithPrivates.ts, 68, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 68, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPrivates.ts, 65, 26), Decl(objectTypesIdentityWithPrivates.ts, 67, 20), Decl(objectTypesIdentityWithPrivates.ts, 68, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 69, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithPrivates.ts, 69, 25), Decl(objectTypesIdentityWithPrivates.ts, 71, 20), Decl(objectTypesIdentityWithPrivates.ts, 72, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 71, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) + +function foo7(x: typeof a); // no error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithPrivates.ts, 69, 25), Decl(objectTypesIdentityWithPrivates.ts, 71, 20), Decl(objectTypesIdentityWithPrivates.ts, 72, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 72, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithPrivates.ts, 69, 25), Decl(objectTypesIdentityWithPrivates.ts, 71, 20), Decl(objectTypesIdentityWithPrivates.ts, 72, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 73, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithPrivates.ts, 73, 25), Decl(objectTypesIdentityWithPrivates.ts, 75, 20), Decl(objectTypesIdentityWithPrivates.ts, 76, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 75, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo8(x: I); // no error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithPrivates.ts, 73, 25), Decl(objectTypesIdentityWithPrivates.ts, 75, 20), Decl(objectTypesIdentityWithPrivates.ts, 76, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 76, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithPrivates.ts, 73, 25), Decl(objectTypesIdentityWithPrivates.ts, 75, 20), Decl(objectTypesIdentityWithPrivates.ts, 76, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 77, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithPrivates.ts, 77, 25), Decl(objectTypesIdentityWithPrivates.ts, 79, 20), Decl(objectTypesIdentityWithPrivates.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 79, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo9(x: C); // no error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithPrivates.ts, 77, 25), Decl(objectTypesIdentityWithPrivates.ts, 79, 20), Decl(objectTypesIdentityWithPrivates.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 80, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithPrivates.ts, 77, 25), Decl(objectTypesIdentityWithPrivates.ts, 79, 20), Decl(objectTypesIdentityWithPrivates.ts, 80, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 81, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithPrivates.ts, 81, 25), Decl(objectTypesIdentityWithPrivates.ts, 83, 21), Decl(objectTypesIdentityWithPrivates.ts, 84, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 83, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo10(x: typeof a); // no error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithPrivates.ts, 81, 25), Decl(objectTypesIdentityWithPrivates.ts, 83, 21), Decl(objectTypesIdentityWithPrivates.ts, 84, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 84, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithPrivates.ts, 81, 25), Decl(objectTypesIdentityWithPrivates.ts, 83, 21), Decl(objectTypesIdentityWithPrivates.ts, 84, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 85, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithPrivates.ts, 85, 26), Decl(objectTypesIdentityWithPrivates.ts, 87, 21), Decl(objectTypesIdentityWithPrivates.ts, 88, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 87, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo11(x: typeof b); // no error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithPrivates.ts, 85, 26), Decl(objectTypesIdentityWithPrivates.ts, 87, 21), Decl(objectTypesIdentityWithPrivates.ts, 88, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 88, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithPrivates.ts, 85, 26), Decl(objectTypesIdentityWithPrivates.ts, 87, 21), Decl(objectTypesIdentityWithPrivates.ts, 88, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 89, 15)) + +function foo11b(x: B); +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithPrivates.ts, 89, 26), Decl(objectTypesIdentityWithPrivates.ts, 91, 22), Decl(objectTypesIdentityWithPrivates.ts, 92, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 91, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo11b(x: PA); // no error +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithPrivates.ts, 89, 26), Decl(objectTypesIdentityWithPrivates.ts, 91, 22), Decl(objectTypesIdentityWithPrivates.ts, 92, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 92, 16)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) + +function foo11b(x: any) { } +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithPrivates.ts, 89, 26), Decl(objectTypesIdentityWithPrivates.ts, 91, 22), Decl(objectTypesIdentityWithPrivates.ts, 92, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 93, 16)) + +function foo11c(x: B); +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithPrivates.ts, 93, 27), Decl(objectTypesIdentityWithPrivates.ts, 95, 22), Decl(objectTypesIdentityWithPrivates.ts, 96, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 95, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) + +function foo11c(x: PB); // error +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithPrivates.ts, 93, 27), Decl(objectTypesIdentityWithPrivates.ts, 95, 22), Decl(objectTypesIdentityWithPrivates.ts, 96, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 96, 16)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) + +function foo11c(x: any) { } +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithPrivates.ts, 93, 27), Decl(objectTypesIdentityWithPrivates.ts, 95, 22), Decl(objectTypesIdentityWithPrivates.ts, 96, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 97, 16)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithPrivates.ts, 97, 27), Decl(objectTypesIdentityWithPrivates.ts, 99, 21), Decl(objectTypesIdentityWithPrivates.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 99, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo12(x: C); // no error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithPrivates.ts, 97, 27), Decl(objectTypesIdentityWithPrivates.ts, 99, 21), Decl(objectTypesIdentityWithPrivates.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 100, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithPrivates.ts, 97, 27), Decl(objectTypesIdentityWithPrivates.ts, 99, 21), Decl(objectTypesIdentityWithPrivates.ts, 100, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 101, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithPrivates.ts, 101, 26), Decl(objectTypesIdentityWithPrivates.ts, 103, 21), Decl(objectTypesIdentityWithPrivates.ts, 104, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 103, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithPrivates.ts, 101, 26), Decl(objectTypesIdentityWithPrivates.ts, 103, 21), Decl(objectTypesIdentityWithPrivates.ts, 104, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 104, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithPrivates.ts, 101, 26), Decl(objectTypesIdentityWithPrivates.ts, 103, 21), Decl(objectTypesIdentityWithPrivates.ts, 104, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 105, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithPrivates.ts, 105, 26), Decl(objectTypesIdentityWithPrivates.ts, 107, 21), Decl(objectTypesIdentityWithPrivates.ts, 108, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 107, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithPrivates.ts, 105, 26), Decl(objectTypesIdentityWithPrivates.ts, 107, 21), Decl(objectTypesIdentityWithPrivates.ts, 108, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 108, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithPrivates.ts, 105, 26), Decl(objectTypesIdentityWithPrivates.ts, 107, 21), Decl(objectTypesIdentityWithPrivates.ts, 108, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 109, 15)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithPrivates.ts, 109, 26), Decl(objectTypesIdentityWithPrivates.ts, 111, 21), Decl(objectTypesIdentityWithPrivates.ts, 112, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 111, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo15(x: PA); // no error +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithPrivates.ts, 109, 26), Decl(objectTypesIdentityWithPrivates.ts, 111, 21), Decl(objectTypesIdentityWithPrivates.ts, 112, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 112, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithPrivates.ts, 109, 26), Decl(objectTypesIdentityWithPrivates.ts, 111, 21), Decl(objectTypesIdentityWithPrivates.ts, 112, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 113, 15)) + +function foo16(x: I); +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithPrivates.ts, 113, 26), Decl(objectTypesIdentityWithPrivates.ts, 115, 21), Decl(objectTypesIdentityWithPrivates.ts, 116, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 115, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) + +function foo16(x: PB); // no error +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithPrivates.ts, 113, 26), Decl(objectTypesIdentityWithPrivates.ts, 115, 21), Decl(objectTypesIdentityWithPrivates.ts, 116, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 116, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) + +function foo16(x: any) { } +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithPrivates.ts, 113, 26), Decl(objectTypesIdentityWithPrivates.ts, 115, 21), Decl(objectTypesIdentityWithPrivates.ts, 116, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 117, 15)) + + diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates.types b/tests/baselines/reference/objectTypesIdentityWithPrivates.types index d86bbbb2393a5..c828f45ac5ab2 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPrivates.types +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates.types @@ -2,375 +2,375 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>A : A private foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 2, 9)) +>foo : string } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>B : B private foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 6, 9)) +>foo : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPrivates.ts, 10, 8)) +>C : C +>T : T private foo: T; ->foo : T, Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 10, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPrivates.ts, 10, 8)) +>foo : T +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 14, 13)) +>foo : string } class PA extends A { ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>PA : PA +>A : A } class PB extends B { ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>PB : PB +>B : B } var a: { foo: string; } ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 24, 8)) +>a : { foo: string; } +>foo : string var b = { foo: '' }; ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) +>b : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPrivates.ts, 25, 9)) +>foo : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPrivates.ts, 25, 20), Decl(objectTypesIdentityWithPrivates.ts, 27, 20), Decl(objectTypesIdentityWithPrivates.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 27, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPrivates.ts, 25, 20), Decl(objectTypesIdentityWithPrivates.ts, 27, 20), Decl(objectTypesIdentityWithPrivates.ts, 28, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 28, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPrivates.ts, 25, 20), Decl(objectTypesIdentityWithPrivates.ts, 27, 20), Decl(objectTypesIdentityWithPrivates.ts, 28, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 29, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithPrivates.ts, 29, 25), Decl(objectTypesIdentityWithPrivates.ts, 31, 21), Decl(objectTypesIdentityWithPrivates.ts, 32, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 31, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithPrivates.ts, 29, 25), Decl(objectTypesIdentityWithPrivates.ts, 31, 21), Decl(objectTypesIdentityWithPrivates.ts, 32, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 32, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithPrivates.ts, 29, 25), Decl(objectTypesIdentityWithPrivates.ts, 31, 21), Decl(objectTypesIdentityWithPrivates.ts, 32, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 33, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithPrivates.ts, 33, 26), Decl(objectTypesIdentityWithPrivates.ts, 35, 29), Decl(objectTypesIdentityWithPrivates.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 35, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithPrivates.ts, 33, 26), Decl(objectTypesIdentityWithPrivates.ts, 35, 29), Decl(objectTypesIdentityWithPrivates.ts, 36, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 36, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithPrivates.ts, 33, 26), Decl(objectTypesIdentityWithPrivates.ts, 35, 29), Decl(objectTypesIdentityWithPrivates.ts, 36, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 37, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPrivates.ts, 37, 26), Decl(objectTypesIdentityWithPrivates.ts, 39, 20), Decl(objectTypesIdentityWithPrivates.ts, 40, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 39, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPrivates.ts, 37, 26), Decl(objectTypesIdentityWithPrivates.ts, 39, 20), Decl(objectTypesIdentityWithPrivates.ts, 40, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 40, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPrivates.ts, 37, 26), Decl(objectTypesIdentityWithPrivates.ts, 39, 20), Decl(objectTypesIdentityWithPrivates.ts, 40, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 41, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPrivates.ts, 41, 25), Decl(objectTypesIdentityWithPrivates.ts, 43, 27), Decl(objectTypesIdentityWithPrivates.ts, 44, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 43, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPrivates.ts, 41, 25), Decl(objectTypesIdentityWithPrivates.ts, 43, 27), Decl(objectTypesIdentityWithPrivates.ts, 44, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 44, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo3(x: any) { } ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPrivates.ts, 41, 25), Decl(objectTypesIdentityWithPrivates.ts, 43, 27), Decl(objectTypesIdentityWithPrivates.ts, 44, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 45, 14)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates.ts, 45, 25), Decl(objectTypesIdentityWithPrivates.ts, 47, 27), Decl(objectTypesIdentityWithPrivates.ts, 48, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 47, 14)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates.ts, 45, 25), Decl(objectTypesIdentityWithPrivates.ts, 47, 27), Decl(objectTypesIdentityWithPrivates.ts, 48, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 48, 14)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo4(x: any) { } ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates.ts, 45, 25), Decl(objectTypesIdentityWithPrivates.ts, 47, 27), Decl(objectTypesIdentityWithPrivates.ts, 48, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 49, 14)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithPrivates.ts, 49, 25), Decl(objectTypesIdentityWithPrivates.ts, 51, 20), Decl(objectTypesIdentityWithPrivates.ts, 52, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 51, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // no error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithPrivates.ts, 49, 25), Decl(objectTypesIdentityWithPrivates.ts, 51, 20), Decl(objectTypesIdentityWithPrivates.ts, 52, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 52, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithPrivates.ts, 49, 25), Decl(objectTypesIdentityWithPrivates.ts, 51, 20), Decl(objectTypesIdentityWithPrivates.ts, 52, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 53, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithPrivates.ts, 53, 25), Decl(objectTypesIdentityWithPrivates.ts, 55, 21), Decl(objectTypesIdentityWithPrivates.ts, 56, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 55, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // no error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithPrivates.ts, 53, 25), Decl(objectTypesIdentityWithPrivates.ts, 55, 21), Decl(objectTypesIdentityWithPrivates.ts, 56, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 56, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithPrivates.ts, 53, 25), Decl(objectTypesIdentityWithPrivates.ts, 55, 21), Decl(objectTypesIdentityWithPrivates.ts, 56, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 57, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo5c(x: A); ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithPrivates.ts, 57, 26), Decl(objectTypesIdentityWithPrivates.ts, 59, 21), Decl(objectTypesIdentityWithPrivates.ts, 60, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 59, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : A +>A : A function foo5c(x: PA); // error ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithPrivates.ts, 57, 26), Decl(objectTypesIdentityWithPrivates.ts, 59, 21), Decl(objectTypesIdentityWithPrivates.ts, 60, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 60, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : PA +>PA : PA function foo5c(x: any) { } ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithPrivates.ts, 57, 26), Decl(objectTypesIdentityWithPrivates.ts, 59, 21), Decl(objectTypesIdentityWithPrivates.ts, 60, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 61, 15)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : any function foo5d(x: A); ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithPrivates.ts, 61, 26), Decl(objectTypesIdentityWithPrivates.ts, 63, 21), Decl(objectTypesIdentityWithPrivates.ts, 64, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 63, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : A +>A : A function foo5d(x: PB); // no error ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithPrivates.ts, 61, 26), Decl(objectTypesIdentityWithPrivates.ts, 63, 21), Decl(objectTypesIdentityWithPrivates.ts, 64, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 64, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : PB +>PB : PB function foo5d(x: any) { } ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithPrivates.ts, 61, 26), Decl(objectTypesIdentityWithPrivates.ts, 63, 21), Decl(objectTypesIdentityWithPrivates.ts, 64, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 65, 15)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithPrivates.ts, 65, 26), Decl(objectTypesIdentityWithPrivates.ts, 67, 20), Decl(objectTypesIdentityWithPrivates.ts, 68, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 67, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // no error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithPrivates.ts, 65, 26), Decl(objectTypesIdentityWithPrivates.ts, 67, 20), Decl(objectTypesIdentityWithPrivates.ts, 68, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 68, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithPrivates.ts, 65, 26), Decl(objectTypesIdentityWithPrivates.ts, 67, 20), Decl(objectTypesIdentityWithPrivates.ts, 68, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 69, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithPrivates.ts, 69, 25), Decl(objectTypesIdentityWithPrivates.ts, 71, 20), Decl(objectTypesIdentityWithPrivates.ts, 72, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 71, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPrivates.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // no error ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithPrivates.ts, 69, 25), Decl(objectTypesIdentityWithPrivates.ts, 71, 20), Decl(objectTypesIdentityWithPrivates.ts, 72, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 72, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithPrivates.ts, 69, 25), Decl(objectTypesIdentityWithPrivates.ts, 71, 20), Decl(objectTypesIdentityWithPrivates.ts, 72, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 73, 14)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithPrivates.ts, 73, 25), Decl(objectTypesIdentityWithPrivates.ts, 75, 20), Decl(objectTypesIdentityWithPrivates.ts, 76, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 75, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // no error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithPrivates.ts, 73, 25), Decl(objectTypesIdentityWithPrivates.ts, 75, 20), Decl(objectTypesIdentityWithPrivates.ts, 76, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 76, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithPrivates.ts, 73, 25), Decl(objectTypesIdentityWithPrivates.ts, 75, 20), Decl(objectTypesIdentityWithPrivates.ts, 76, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 77, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithPrivates.ts, 77, 25), Decl(objectTypesIdentityWithPrivates.ts, 79, 20), Decl(objectTypesIdentityWithPrivates.ts, 80, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 79, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // no error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithPrivates.ts, 77, 25), Decl(objectTypesIdentityWithPrivates.ts, 79, 20), Decl(objectTypesIdentityWithPrivates.ts, 80, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 80, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithPrivates.ts, 77, 25), Decl(objectTypesIdentityWithPrivates.ts, 79, 20), Decl(objectTypesIdentityWithPrivates.ts, 80, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 81, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithPrivates.ts, 81, 25), Decl(objectTypesIdentityWithPrivates.ts, 83, 21), Decl(objectTypesIdentityWithPrivates.ts, 84, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 83, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // no error ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithPrivates.ts, 81, 25), Decl(objectTypesIdentityWithPrivates.ts, 83, 21), Decl(objectTypesIdentityWithPrivates.ts, 84, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 84, 15)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithPrivates.ts, 81, 25), Decl(objectTypesIdentityWithPrivates.ts, 83, 21), Decl(objectTypesIdentityWithPrivates.ts, 84, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 85, 15)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithPrivates.ts, 85, 26), Decl(objectTypesIdentityWithPrivates.ts, 87, 21), Decl(objectTypesIdentityWithPrivates.ts, 88, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 87, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // no error ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithPrivates.ts, 85, 26), Decl(objectTypesIdentityWithPrivates.ts, 87, 21), Decl(objectTypesIdentityWithPrivates.ts, 88, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 88, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithPrivates.ts, 85, 26), Decl(objectTypesIdentityWithPrivates.ts, 87, 21), Decl(objectTypesIdentityWithPrivates.ts, 88, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 89, 15)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : any function foo11b(x: B); ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithPrivates.ts, 89, 26), Decl(objectTypesIdentityWithPrivates.ts, 91, 22), Decl(objectTypesIdentityWithPrivates.ts, 92, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 91, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : B +>B : B function foo11b(x: PA); // no error ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithPrivates.ts, 89, 26), Decl(objectTypesIdentityWithPrivates.ts, 91, 22), Decl(objectTypesIdentityWithPrivates.ts, 92, 23)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 92, 16)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : PA +>PA : PA function foo11b(x: any) { } ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithPrivates.ts, 89, 26), Decl(objectTypesIdentityWithPrivates.ts, 91, 22), Decl(objectTypesIdentityWithPrivates.ts, 92, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 93, 16)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : any function foo11c(x: B); ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithPrivates.ts, 93, 27), Decl(objectTypesIdentityWithPrivates.ts, 95, 22), Decl(objectTypesIdentityWithPrivates.ts, 96, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 95, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPrivates.ts, 4, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : B +>B : B function foo11c(x: PB); // error ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithPrivates.ts, 93, 27), Decl(objectTypesIdentityWithPrivates.ts, 95, 22), Decl(objectTypesIdentityWithPrivates.ts, 96, 23)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 96, 16)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : PB +>PB : PB function foo11c(x: any) { } ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithPrivates.ts, 93, 27), Decl(objectTypesIdentityWithPrivates.ts, 95, 22), Decl(objectTypesIdentityWithPrivates.ts, 96, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 97, 16)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithPrivates.ts, 97, 27), Decl(objectTypesIdentityWithPrivates.ts, 99, 21), Decl(objectTypesIdentityWithPrivates.ts, 100, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 99, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // no error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithPrivates.ts, 97, 27), Decl(objectTypesIdentityWithPrivates.ts, 99, 21), Decl(objectTypesIdentityWithPrivates.ts, 100, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 100, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithPrivates.ts, 97, 27), Decl(objectTypesIdentityWithPrivates.ts, 99, 21), Decl(objectTypesIdentityWithPrivates.ts, 100, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 101, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithPrivates.ts, 101, 26), Decl(objectTypesIdentityWithPrivates.ts, 103, 21), Decl(objectTypesIdentityWithPrivates.ts, 104, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 103, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithPrivates.ts, 101, 26), Decl(objectTypesIdentityWithPrivates.ts, 103, 21), Decl(objectTypesIdentityWithPrivates.ts, 104, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 104, 15)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPrivates.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithPrivates.ts, 101, 26), Decl(objectTypesIdentityWithPrivates.ts, 103, 21), Decl(objectTypesIdentityWithPrivates.ts, 104, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 105, 15)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithPrivates.ts, 105, 26), Decl(objectTypesIdentityWithPrivates.ts, 107, 21), Decl(objectTypesIdentityWithPrivates.ts, 108, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 107, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithPrivates.ts, 105, 26), Decl(objectTypesIdentityWithPrivates.ts, 107, 21), Decl(objectTypesIdentityWithPrivates.ts, 108, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 108, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPrivates.ts, 25, 3)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithPrivates.ts, 105, 26), Decl(objectTypesIdentityWithPrivates.ts, 107, 21), Decl(objectTypesIdentityWithPrivates.ts, 108, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 109, 15)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithPrivates.ts, 109, 26), Decl(objectTypesIdentityWithPrivates.ts, 111, 21), Decl(objectTypesIdentityWithPrivates.ts, 112, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 111, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : I +>I : I function foo15(x: PA); // no error ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithPrivates.ts, 109, 26), Decl(objectTypesIdentityWithPrivates.ts, 111, 21), Decl(objectTypesIdentityWithPrivates.ts, 112, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 112, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithPrivates.ts, 16, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : PA +>PA : PA function foo15(x: any) { } ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithPrivates.ts, 109, 26), Decl(objectTypesIdentityWithPrivates.ts, 111, 21), Decl(objectTypesIdentityWithPrivates.ts, 112, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 113, 15)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : any function foo16(x: I); ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithPrivates.ts, 113, 26), Decl(objectTypesIdentityWithPrivates.ts, 115, 21), Decl(objectTypesIdentityWithPrivates.ts, 116, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 115, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPrivates.ts, 12, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : I +>I : I function foo16(x: PB); // no error ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithPrivates.ts, 113, 26), Decl(objectTypesIdentityWithPrivates.ts, 115, 21), Decl(objectTypesIdentityWithPrivates.ts, 116, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 116, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithPrivates.ts, 19, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : PB +>PB : PB function foo16(x: any) { } ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithPrivates.ts, 113, 26), Decl(objectTypesIdentityWithPrivates.ts, 115, 21), Decl(objectTypesIdentityWithPrivates.ts, 116, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates.ts, 117, 15)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates2.symbols b/tests/baselines/reference/objectTypesIdentityWithPrivates2.symbols new file mode 100644 index 0000000000000..1a33946229ed8 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates2.symbols @@ -0,0 +1,115 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPrivates2.ts === +// object types are identical structurally + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 2, 8)) + + private foo: T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPrivates2.ts, 2, 12)) +>T : Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 2, 8)) +} + +class D extends C { +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 6, 8)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>T : Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 6, 8)) +} + +function foo1(x: C); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPrivates2.ts, 7, 1), Decl(objectTypesIdentityWithPrivates2.ts, 9, 28), Decl(objectTypesIdentityWithPrivates2.ts, 10, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 9, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +function foo1(x: C); // ok +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPrivates2.ts, 7, 1), Decl(objectTypesIdentityWithPrivates2.ts, 9, 28), Decl(objectTypesIdentityWithPrivates2.ts, 10, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 10, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPrivates2.ts, 7, 1), Decl(objectTypesIdentityWithPrivates2.ts, 9, 28), Decl(objectTypesIdentityWithPrivates2.ts, 10, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 11, 14)) + +function foo2(x: D); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPrivates2.ts, 11, 25), Decl(objectTypesIdentityWithPrivates2.ts, 13, 28), Decl(objectTypesIdentityWithPrivates2.ts, 14, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 13, 14)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo2(x: D); // ok +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPrivates2.ts, 11, 25), Decl(objectTypesIdentityWithPrivates2.ts, 13, 28), Decl(objectTypesIdentityWithPrivates2.ts, 14, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 14, 14)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPrivates2.ts, 11, 25), Decl(objectTypesIdentityWithPrivates2.ts, 13, 28), Decl(objectTypesIdentityWithPrivates2.ts, 14, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 15, 14)) + +function foo3(x: C); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPrivates2.ts, 15, 25), Decl(objectTypesIdentityWithPrivates2.ts, 17, 28), Decl(objectTypesIdentityWithPrivates2.ts, 18, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 17, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +function foo3(x: D); // ok +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPrivates2.ts, 15, 25), Decl(objectTypesIdentityWithPrivates2.ts, 17, 28), Decl(objectTypesIdentityWithPrivates2.ts, 18, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 18, 14)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPrivates2.ts, 15, 25), Decl(objectTypesIdentityWithPrivates2.ts, 17, 28), Decl(objectTypesIdentityWithPrivates2.ts, 18, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 19, 14)) + +function foo4(x: C): number; +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 21, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +function foo4(x: D): string; // BUG 831926 +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 22, 14)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo4(x: any): any { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 23, 14)) + +var r = foo4(new C()); +>r : Symbol(r, Decl(objectTypesIdentityWithPrivates2.ts, 25, 3), Decl(objectTypesIdentityWithPrivates2.ts, 26, 3)) +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +var r = foo4(new D()); +>r : Symbol(r, Decl(objectTypesIdentityWithPrivates2.ts, 25, 3), Decl(objectTypesIdentityWithPrivates2.ts, 26, 3)) +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo5(x: C): number; +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPrivates2.ts, 26, 30), Decl(objectTypesIdentityWithPrivates2.ts, 28, 36), Decl(objectTypesIdentityWithPrivates2.ts, 29, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 28, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +function foo5(x: C): string; // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPrivates2.ts, 26, 30), Decl(objectTypesIdentityWithPrivates2.ts, 28, 36), Decl(objectTypesIdentityWithPrivates2.ts, 29, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 29, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) + +function foo5(x: any): any { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPrivates2.ts, 26, 30), Decl(objectTypesIdentityWithPrivates2.ts, 28, 36), Decl(objectTypesIdentityWithPrivates2.ts, 29, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 30, 14)) + +function foo6(x: D): number; +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPrivates2.ts, 30, 30), Decl(objectTypesIdentityWithPrivates2.ts, 32, 36), Decl(objectTypesIdentityWithPrivates2.ts, 33, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 32, 14)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo6(x: D): string; // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPrivates2.ts, 30, 30), Decl(objectTypesIdentityWithPrivates2.ts, 32, 36), Decl(objectTypesIdentityWithPrivates2.ts, 33, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 33, 14)) +>D : Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) + +function foo6(x: any): any { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPrivates2.ts, 30, 30), Decl(objectTypesIdentityWithPrivates2.ts, 32, 36), Decl(objectTypesIdentityWithPrivates2.ts, 33, 36)) +>x : Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 34, 14)) + + + diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates2.types b/tests/baselines/reference/objectTypesIdentityWithPrivates2.types index 46e27e47b289f..a29edc751624a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPrivates2.types +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates2.types @@ -2,118 +2,118 @@ // object types are identical structurally class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 2, 8)) +>C : C +>T : T private foo: T; ->foo : T, Symbol(foo, Decl(objectTypesIdentityWithPrivates2.ts, 2, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 2, 8)) +>foo : T +>T : T } class D extends C { ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 6, 8)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPrivates2.ts, 6, 8)) +>D : D +>T : T +>C : C +>T : T } function foo1(x: C); ->foo1 : { (x: C): any; (x: C): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPrivates2.ts, 7, 1), Decl(objectTypesIdentityWithPrivates2.ts, 9, 28), Decl(objectTypesIdentityWithPrivates2.ts, 10, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 9, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>foo1 : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1(x: C); // ok ->foo1 : { (x: C): any; (x: C): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPrivates2.ts, 7, 1), Decl(objectTypesIdentityWithPrivates2.ts, 9, 28), Decl(objectTypesIdentityWithPrivates2.ts, 10, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 10, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>foo1 : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1(x: any) { } ->foo1 : { (x: C): any; (x: C): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPrivates2.ts, 7, 1), Decl(objectTypesIdentityWithPrivates2.ts, 9, 28), Decl(objectTypesIdentityWithPrivates2.ts, 10, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 11, 14)) +>foo1 : { (x: C): any; (x: C): any; } +>x : any function foo2(x: D); ->foo2 : { (x: D): any; (x: D): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPrivates2.ts, 11, 25), Decl(objectTypesIdentityWithPrivates2.ts, 13, 28), Decl(objectTypesIdentityWithPrivates2.ts, 14, 28)) ->x : D, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 13, 14)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>foo2 : { (x: D): any; (x: D): any; } +>x : D +>D : D function foo2(x: D); // ok ->foo2 : { (x: D): any; (x: D): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPrivates2.ts, 11, 25), Decl(objectTypesIdentityWithPrivates2.ts, 13, 28), Decl(objectTypesIdentityWithPrivates2.ts, 14, 28)) ->x : D, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 14, 14)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>foo2 : { (x: D): any; (x: D): any; } +>x : D +>D : D function foo2(x: any) { } ->foo2 : { (x: D): any; (x: D): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPrivates2.ts, 11, 25), Decl(objectTypesIdentityWithPrivates2.ts, 13, 28), Decl(objectTypesIdentityWithPrivates2.ts, 14, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 15, 14)) +>foo2 : { (x: D): any; (x: D): any; } +>x : any function foo3(x: C); ->foo3 : { (x: C): any; (x: D): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPrivates2.ts, 15, 25), Decl(objectTypesIdentityWithPrivates2.ts, 17, 28), Decl(objectTypesIdentityWithPrivates2.ts, 18, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 17, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>foo3 : { (x: C): any; (x: D): any; } +>x : C +>C : C function foo3(x: D); // ok ->foo3 : { (x: C): any; (x: D): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPrivates2.ts, 15, 25), Decl(objectTypesIdentityWithPrivates2.ts, 17, 28), Decl(objectTypesIdentityWithPrivates2.ts, 18, 28)) ->x : D, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 18, 14)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>foo3 : { (x: C): any; (x: D): any; } +>x : D +>D : D function foo3(x: any) { } ->foo3 : { (x: C): any; (x: D): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPrivates2.ts, 15, 25), Decl(objectTypesIdentityWithPrivates2.ts, 17, 28), Decl(objectTypesIdentityWithPrivates2.ts, 18, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 19, 14)) +>foo3 : { (x: C): any; (x: D): any; } +>x : any function foo4(x: C): number; ->foo4 : { (x: C): number; (x: D): string; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 21, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>foo4 : { (x: C): number; (x: D): string; } +>x : C +>C : C function foo4(x: D): string; // BUG 831926 ->foo4 : { (x: C): number; (x: D): string; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) ->x : D, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 22, 14)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>foo4 : { (x: C): number; (x: D): string; } +>x : D +>D : D function foo4(x: any): any { } ->foo4 : { (x: C): number; (x: D): string; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 23, 14)) +>foo4 : { (x: C): number; (x: D): string; } +>x : any var r = foo4(new C()); ->r : number, Symbol(r, Decl(objectTypesIdentityWithPrivates2.ts, 25, 3), Decl(objectTypesIdentityWithPrivates2.ts, 26, 3)) +>r : number >foo4(new C()) : number ->foo4 : { (x: C): number; (x: D): string; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>foo4 : { (x: C): number; (x: D): string; } >new C() : C ->C : typeof C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>C : typeof C var r = foo4(new D()); ->r : number, Symbol(r, Decl(objectTypesIdentityWithPrivates2.ts, 25, 3), Decl(objectTypesIdentityWithPrivates2.ts, 26, 3)) +>r : number >foo4(new D()) : number ->foo4 : { (x: C): number; (x: D): string; }, Symbol(foo4, Decl(objectTypesIdentityWithPrivates2.ts, 19, 25), Decl(objectTypesIdentityWithPrivates2.ts, 21, 36), Decl(objectTypesIdentityWithPrivates2.ts, 22, 36)) +>foo4 : { (x: C): number; (x: D): string; } >new D() : D ->D : typeof D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>D : typeof D function foo5(x: C): number; ->foo5 : { (x: C): number; (x: C): string; }, Symbol(foo5, Decl(objectTypesIdentityWithPrivates2.ts, 26, 30), Decl(objectTypesIdentityWithPrivates2.ts, 28, 36), Decl(objectTypesIdentityWithPrivates2.ts, 29, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 28, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>foo5 : { (x: C): number; (x: C): string; } +>x : C +>C : C function foo5(x: C): string; // error ->foo5 : { (x: C): number; (x: C): string; }, Symbol(foo5, Decl(objectTypesIdentityWithPrivates2.ts, 26, 30), Decl(objectTypesIdentityWithPrivates2.ts, 28, 36), Decl(objectTypesIdentityWithPrivates2.ts, 29, 36)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 29, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPrivates2.ts, 0, 0)) +>foo5 : { (x: C): number; (x: C): string; } +>x : C +>C : C function foo5(x: any): any { } ->foo5 : { (x: C): number; (x: C): string; }, Symbol(foo5, Decl(objectTypesIdentityWithPrivates2.ts, 26, 30), Decl(objectTypesIdentityWithPrivates2.ts, 28, 36), Decl(objectTypesIdentityWithPrivates2.ts, 29, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 30, 14)) +>foo5 : { (x: C): number; (x: C): string; } +>x : any function foo6(x: D): number; ->foo6 : { (x: D): number; (x: D): string; }, Symbol(foo6, Decl(objectTypesIdentityWithPrivates2.ts, 30, 30), Decl(objectTypesIdentityWithPrivates2.ts, 32, 36), Decl(objectTypesIdentityWithPrivates2.ts, 33, 36)) ->x : D, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 32, 14)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>foo6 : { (x: D): number; (x: D): string; } +>x : D +>D : D function foo6(x: D): string; // error ->foo6 : { (x: D): number; (x: D): string; }, Symbol(foo6, Decl(objectTypesIdentityWithPrivates2.ts, 30, 30), Decl(objectTypesIdentityWithPrivates2.ts, 32, 36), Decl(objectTypesIdentityWithPrivates2.ts, 33, 36)) ->x : D, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 33, 14)) ->D : D, Symbol(D, Decl(objectTypesIdentityWithPrivates2.ts, 4, 1)) +>foo6 : { (x: D): number; (x: D): string; } +>x : D +>D : D function foo6(x: any): any { } ->foo6 : { (x: D): number; (x: D): string; }, Symbol(foo6, Decl(objectTypesIdentityWithPrivates2.ts, 30, 30), Decl(objectTypesIdentityWithPrivates2.ts, 32, 36), Decl(objectTypesIdentityWithPrivates2.ts, 33, 36)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPrivates2.ts, 34, 14)) +>foo6 : { (x: D): number; (x: D): string; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithPublics.symbols b/tests/baselines/reference/objectTypesIdentityWithPublics.symbols new file mode 100644 index 0000000000000..ebfb52e3d2e4a --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithPublics.symbols @@ -0,0 +1,279 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithPublics.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + + public foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 2, 9)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + + public foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 6, 9)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithPublics.ts, 10, 8)) + + public foo: T; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 10, 12)) +>T : Symbol(T, Decl(objectTypesIdentityWithPublics.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + + foo: string; +>foo : Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 14, 13)) +} + +var a: { foo: string; } +>a : Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 18, 8)) + +var b = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 19, 9)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPublics.ts, 19, 20), Decl(objectTypesIdentityWithPublics.ts, 21, 20), Decl(objectTypesIdentityWithPublics.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 21, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPublics.ts, 19, 20), Decl(objectTypesIdentityWithPublics.ts, 21, 20), Decl(objectTypesIdentityWithPublics.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 22, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithPublics.ts, 19, 20), Decl(objectTypesIdentityWithPublics.ts, 21, 20), Decl(objectTypesIdentityWithPublics.ts, 22, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 23, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithPublics.ts, 23, 25), Decl(objectTypesIdentityWithPublics.ts, 25, 21), Decl(objectTypesIdentityWithPublics.ts, 26, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 25, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithPublics.ts, 23, 25), Decl(objectTypesIdentityWithPublics.ts, 25, 21), Decl(objectTypesIdentityWithPublics.ts, 26, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 26, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithPublics.ts, 23, 25), Decl(objectTypesIdentityWithPublics.ts, 25, 21), Decl(objectTypesIdentityWithPublics.ts, 26, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 27, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithPublics.ts, 27, 26), Decl(objectTypesIdentityWithPublics.ts, 29, 29), Decl(objectTypesIdentityWithPublics.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 29, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithPublics.ts, 27, 26), Decl(objectTypesIdentityWithPublics.ts, 29, 29), Decl(objectTypesIdentityWithPublics.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 30, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithPublics.ts, 27, 26), Decl(objectTypesIdentityWithPublics.ts, 29, 29), Decl(objectTypesIdentityWithPublics.ts, 30, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 31, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPublics.ts, 31, 26), Decl(objectTypesIdentityWithPublics.ts, 33, 20), Decl(objectTypesIdentityWithPublics.ts, 34, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 33, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPublics.ts, 31, 26), Decl(objectTypesIdentityWithPublics.ts, 33, 20), Decl(objectTypesIdentityWithPublics.ts, 34, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 34, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithPublics.ts, 31, 26), Decl(objectTypesIdentityWithPublics.ts, 33, 20), Decl(objectTypesIdentityWithPublics.ts, 34, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 35, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPublics.ts, 35, 25), Decl(objectTypesIdentityWithPublics.ts, 37, 27), Decl(objectTypesIdentityWithPublics.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 37, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPublics.ts, 35, 25), Decl(objectTypesIdentityWithPublics.ts, 37, 27), Decl(objectTypesIdentityWithPublics.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 38, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithPublics.ts, 35, 25), Decl(objectTypesIdentityWithPublics.ts, 37, 27), Decl(objectTypesIdentityWithPublics.ts, 38, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 39, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPublics.ts, 39, 25), Decl(objectTypesIdentityWithPublics.ts, 41, 27), Decl(objectTypesIdentityWithPublics.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 41, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPublics.ts, 39, 25), Decl(objectTypesIdentityWithPublics.ts, 41, 27), Decl(objectTypesIdentityWithPublics.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 42, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithPublics.ts, 39, 25), Decl(objectTypesIdentityWithPublics.ts, 41, 27), Decl(objectTypesIdentityWithPublics.ts, 42, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 43, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPublics.ts, 43, 25), Decl(objectTypesIdentityWithPublics.ts, 45, 20), Decl(objectTypesIdentityWithPublics.ts, 46, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 45, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPublics.ts, 43, 25), Decl(objectTypesIdentityWithPublics.ts, 45, 20), Decl(objectTypesIdentityWithPublics.ts, 46, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 46, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithPublics.ts, 43, 25), Decl(objectTypesIdentityWithPublics.ts, 45, 20), Decl(objectTypesIdentityWithPublics.ts, 46, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 47, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithPublics.ts, 47, 25), Decl(objectTypesIdentityWithPublics.ts, 49, 21), Decl(objectTypesIdentityWithPublics.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 49, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithPublics.ts, 47, 25), Decl(objectTypesIdentityWithPublics.ts, 49, 21), Decl(objectTypesIdentityWithPublics.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 50, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithPublics.ts, 47, 25), Decl(objectTypesIdentityWithPublics.ts, 49, 21), Decl(objectTypesIdentityWithPublics.ts, 50, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 51, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPublics.ts, 51, 26), Decl(objectTypesIdentityWithPublics.ts, 53, 20), Decl(objectTypesIdentityWithPublics.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 53, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + +function foo6(x: I); // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPublics.ts, 51, 26), Decl(objectTypesIdentityWithPublics.ts, 53, 20), Decl(objectTypesIdentityWithPublics.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 54, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithPublics.ts, 51, 26), Decl(objectTypesIdentityWithPublics.ts, 53, 20), Decl(objectTypesIdentityWithPublics.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 55, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithPublics.ts, 55, 25), Decl(objectTypesIdentityWithPublics.ts, 57, 20), Decl(objectTypesIdentityWithPublics.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 57, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithPublics.ts, 55, 25), Decl(objectTypesIdentityWithPublics.ts, 57, 20), Decl(objectTypesIdentityWithPublics.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 58, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithPublics.ts, 55, 25), Decl(objectTypesIdentityWithPublics.ts, 57, 20), Decl(objectTypesIdentityWithPublics.ts, 58, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 59, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithPublics.ts, 59, 25), Decl(objectTypesIdentityWithPublics.ts, 61, 20), Decl(objectTypesIdentityWithPublics.ts, 62, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 61, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithPublics.ts, 59, 25), Decl(objectTypesIdentityWithPublics.ts, 61, 20), Decl(objectTypesIdentityWithPublics.ts, 62, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 62, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithPublics.ts, 59, 25), Decl(objectTypesIdentityWithPublics.ts, 61, 20), Decl(objectTypesIdentityWithPublics.ts, 62, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 63, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithPublics.ts, 63, 25), Decl(objectTypesIdentityWithPublics.ts, 65, 20), Decl(objectTypesIdentityWithPublics.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 65, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithPublics.ts, 63, 25), Decl(objectTypesIdentityWithPublics.ts, 65, 20), Decl(objectTypesIdentityWithPublics.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 66, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithPublics.ts, 63, 25), Decl(objectTypesIdentityWithPublics.ts, 65, 20), Decl(objectTypesIdentityWithPublics.ts, 66, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 67, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithPublics.ts, 67, 25), Decl(objectTypesIdentityWithPublics.ts, 69, 21), Decl(objectTypesIdentityWithPublics.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 69, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithPublics.ts, 67, 25), Decl(objectTypesIdentityWithPublics.ts, 69, 21), Decl(objectTypesIdentityWithPublics.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 70, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithPublics.ts, 67, 25), Decl(objectTypesIdentityWithPublics.ts, 69, 21), Decl(objectTypesIdentityWithPublics.ts, 70, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 71, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithPublics.ts, 71, 26), Decl(objectTypesIdentityWithPublics.ts, 73, 21), Decl(objectTypesIdentityWithPublics.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 73, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithPublics.ts, 71, 26), Decl(objectTypesIdentityWithPublics.ts, 73, 21), Decl(objectTypesIdentityWithPublics.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 74, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithPublics.ts, 71, 26), Decl(objectTypesIdentityWithPublics.ts, 73, 21), Decl(objectTypesIdentityWithPublics.ts, 74, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 75, 15)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithPublics.ts, 75, 26), Decl(objectTypesIdentityWithPublics.ts, 77, 21), Decl(objectTypesIdentityWithPublics.ts, 78, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 77, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithPublics.ts, 75, 26), Decl(objectTypesIdentityWithPublics.ts, 77, 21), Decl(objectTypesIdentityWithPublics.ts, 78, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 78, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithPublics.ts, 75, 26), Decl(objectTypesIdentityWithPublics.ts, 77, 21), Decl(objectTypesIdentityWithPublics.ts, 78, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 79, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithPublics.ts, 79, 26), Decl(objectTypesIdentityWithPublics.ts, 81, 21), Decl(objectTypesIdentityWithPublics.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 81, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithPublics.ts, 79, 26), Decl(objectTypesIdentityWithPublics.ts, 81, 21), Decl(objectTypesIdentityWithPublics.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 82, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithPublics.ts, 79, 26), Decl(objectTypesIdentityWithPublics.ts, 81, 21), Decl(objectTypesIdentityWithPublics.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 83, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithPublics.ts, 83, 26), Decl(objectTypesIdentityWithPublics.ts, 85, 21), Decl(objectTypesIdentityWithPublics.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 85, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithPublics.ts, 83, 26), Decl(objectTypesIdentityWithPublics.ts, 85, 21), Decl(objectTypesIdentityWithPublics.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 86, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithPublics.ts, 83, 26), Decl(objectTypesIdentityWithPublics.ts, 85, 21), Decl(objectTypesIdentityWithPublics.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 87, 15)) + diff --git a/tests/baselines/reference/objectTypesIdentityWithPublics.types b/tests/baselines/reference/objectTypesIdentityWithPublics.types index eb5be3bda45bb..daae624a7d146 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPublics.types +++ b/tests/baselines/reference/objectTypesIdentityWithPublics.types @@ -2,280 +2,280 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>A : A public foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 2, 9)) +>foo : string } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>B : B public foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 6, 9)) +>foo : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPublics.ts, 10, 8)) +>C : C +>T : T public foo: T; ->foo : T, Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 10, 12)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithPublics.ts, 10, 8)) +>foo : T +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>I : I foo: string; ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 14, 13)) +>foo : string } var a: { foo: string; } ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 18, 8)) +>a : { foo: string; } +>foo : string var b = { foo: '' }; ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) +>b : { foo: string; } >{ foo: '' } : { foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithPublics.ts, 19, 9)) +>foo : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPublics.ts, 19, 20), Decl(objectTypesIdentityWithPublics.ts, 21, 20), Decl(objectTypesIdentityWithPublics.ts, 22, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 21, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPublics.ts, 19, 20), Decl(objectTypesIdentityWithPublics.ts, 21, 20), Decl(objectTypesIdentityWithPublics.ts, 22, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 22, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithPublics.ts, 19, 20), Decl(objectTypesIdentityWithPublics.ts, 21, 20), Decl(objectTypesIdentityWithPublics.ts, 22, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 23, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithPublics.ts, 23, 25), Decl(objectTypesIdentityWithPublics.ts, 25, 21), Decl(objectTypesIdentityWithPublics.ts, 26, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 25, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithPublics.ts, 23, 25), Decl(objectTypesIdentityWithPublics.ts, 25, 21), Decl(objectTypesIdentityWithPublics.ts, 26, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 26, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithPublics.ts, 23, 25), Decl(objectTypesIdentityWithPublics.ts, 25, 21), Decl(objectTypesIdentityWithPublics.ts, 26, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 27, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithPublics.ts, 27, 26), Decl(objectTypesIdentityWithPublics.ts, 29, 29), Decl(objectTypesIdentityWithPublics.ts, 30, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 29, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithPublics.ts, 27, 26), Decl(objectTypesIdentityWithPublics.ts, 29, 29), Decl(objectTypesIdentityWithPublics.ts, 30, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 30, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithPublics.ts, 27, 26), Decl(objectTypesIdentityWithPublics.ts, 29, 29), Decl(objectTypesIdentityWithPublics.ts, 30, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 31, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPublics.ts, 31, 26), Decl(objectTypesIdentityWithPublics.ts, 33, 20), Decl(objectTypesIdentityWithPublics.ts, 34, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 33, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPublics.ts, 31, 26), Decl(objectTypesIdentityWithPublics.ts, 33, 20), Decl(objectTypesIdentityWithPublics.ts, 34, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 34, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithPublics.ts, 31, 26), Decl(objectTypesIdentityWithPublics.ts, 33, 20), Decl(objectTypesIdentityWithPublics.ts, 34, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 35, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPublics.ts, 35, 25), Decl(objectTypesIdentityWithPublics.ts, 37, 27), Decl(objectTypesIdentityWithPublics.ts, 38, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 37, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPublics.ts, 35, 25), Decl(objectTypesIdentityWithPublics.ts, 37, 27), Decl(objectTypesIdentityWithPublics.ts, 38, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 38, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo3(x: any) { } ->foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithPublics.ts, 35, 25), Decl(objectTypesIdentityWithPublics.ts, 37, 27), Decl(objectTypesIdentityWithPublics.ts, 38, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 39, 14)) +>foo3 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithPublics.ts, 39, 25), Decl(objectTypesIdentityWithPublics.ts, 41, 27), Decl(objectTypesIdentityWithPublics.ts, 42, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 41, 14)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithPublics.ts, 39, 25), Decl(objectTypesIdentityWithPublics.ts, 41, 27), Decl(objectTypesIdentityWithPublics.ts, 42, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 42, 14)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo4(x: any) { } ->foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithPublics.ts, 39, 25), Decl(objectTypesIdentityWithPublics.ts, 41, 27), Decl(objectTypesIdentityWithPublics.ts, 42, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 43, 14)) +>foo4 : { (x: { foo: string; }): any; (x: { foo: string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithPublics.ts, 43, 25), Decl(objectTypesIdentityWithPublics.ts, 45, 20), Decl(objectTypesIdentityWithPublics.ts, 46, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 45, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithPublics.ts, 43, 25), Decl(objectTypesIdentityWithPublics.ts, 45, 20), Decl(objectTypesIdentityWithPublics.ts, 46, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 46, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithPublics.ts, 43, 25), Decl(objectTypesIdentityWithPublics.ts, 45, 20), Decl(objectTypesIdentityWithPublics.ts, 46, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 47, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithPublics.ts, 47, 25), Decl(objectTypesIdentityWithPublics.ts, 49, 21), Decl(objectTypesIdentityWithPublics.ts, 50, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 49, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithPublics.ts, 47, 25), Decl(objectTypesIdentityWithPublics.ts, 49, 21), Decl(objectTypesIdentityWithPublics.ts, 50, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 50, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithPublics.ts, 47, 25), Decl(objectTypesIdentityWithPublics.ts, 49, 21), Decl(objectTypesIdentityWithPublics.ts, 50, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 51, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithPublics.ts, 51, 26), Decl(objectTypesIdentityWithPublics.ts, 53, 20), Decl(objectTypesIdentityWithPublics.ts, 54, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 53, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithPublics.ts, 51, 26), Decl(objectTypesIdentityWithPublics.ts, 53, 20), Decl(objectTypesIdentityWithPublics.ts, 54, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 54, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithPublics.ts, 51, 26), Decl(objectTypesIdentityWithPublics.ts, 53, 20), Decl(objectTypesIdentityWithPublics.ts, 54, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 55, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithPublics.ts, 55, 25), Decl(objectTypesIdentityWithPublics.ts, 57, 20), Decl(objectTypesIdentityWithPublics.ts, 58, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 57, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithPublics.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithPublics.ts, 55, 25), Decl(objectTypesIdentityWithPublics.ts, 57, 20), Decl(objectTypesIdentityWithPublics.ts, 58, 27)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 58, 14)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { foo: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithPublics.ts, 55, 25), Decl(objectTypesIdentityWithPublics.ts, 57, 20), Decl(objectTypesIdentityWithPublics.ts, 58, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 59, 14)) +>foo7 : { (x: A): any; (x: { foo: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithPublics.ts, 59, 25), Decl(objectTypesIdentityWithPublics.ts, 61, 20), Decl(objectTypesIdentityWithPublics.ts, 62, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 61, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithPublics.ts, 59, 25), Decl(objectTypesIdentityWithPublics.ts, 61, 20), Decl(objectTypesIdentityWithPublics.ts, 62, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 62, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithPublics.ts, 59, 25), Decl(objectTypesIdentityWithPublics.ts, 61, 20), Decl(objectTypesIdentityWithPublics.ts, 62, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 63, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithPublics.ts, 63, 25), Decl(objectTypesIdentityWithPublics.ts, 65, 20), Decl(objectTypesIdentityWithPublics.ts, 66, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 65, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithPublics.ts, 63, 25), Decl(objectTypesIdentityWithPublics.ts, 65, 20), Decl(objectTypesIdentityWithPublics.ts, 66, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 66, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithPublics.ts, 63, 25), Decl(objectTypesIdentityWithPublics.ts, 65, 20), Decl(objectTypesIdentityWithPublics.ts, 66, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 67, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithPublics.ts, 67, 25), Decl(objectTypesIdentityWithPublics.ts, 69, 21), Decl(objectTypesIdentityWithPublics.ts, 70, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 69, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithPublics.ts, 67, 25), Decl(objectTypesIdentityWithPublics.ts, 69, 21), Decl(objectTypesIdentityWithPublics.ts, 70, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 70, 15)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithPublics.ts, 67, 25), Decl(objectTypesIdentityWithPublics.ts, 69, 21), Decl(objectTypesIdentityWithPublics.ts, 70, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 71, 15)) +>foo10 : { (x: B): any; (x: { foo: string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithPublics.ts, 71, 26), Decl(objectTypesIdentityWithPublics.ts, 73, 21), Decl(objectTypesIdentityWithPublics.ts, 74, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 73, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithPublics.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithPublics.ts, 71, 26), Decl(objectTypesIdentityWithPublics.ts, 73, 21), Decl(objectTypesIdentityWithPublics.ts, 74, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 74, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { foo: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithPublics.ts, 71, 26), Decl(objectTypesIdentityWithPublics.ts, 73, 21), Decl(objectTypesIdentityWithPublics.ts, 74, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 75, 15)) +>foo11 : { (x: B): any; (x: { foo: string; }): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithPublics.ts, 75, 26), Decl(objectTypesIdentityWithPublics.ts, 77, 21), Decl(objectTypesIdentityWithPublics.ts, 78, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 77, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithPublics.ts, 75, 26), Decl(objectTypesIdentityWithPublics.ts, 77, 21), Decl(objectTypesIdentityWithPublics.ts, 78, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 78, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithPublics.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithPublics.ts, 75, 26), Decl(objectTypesIdentityWithPublics.ts, 77, 21), Decl(objectTypesIdentityWithPublics.ts, 78, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 79, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithPublics.ts, 79, 26), Decl(objectTypesIdentityWithPublics.ts, 81, 21), Decl(objectTypesIdentityWithPublics.ts, 82, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 81, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithPublics.ts, 79, 26), Decl(objectTypesIdentityWithPublics.ts, 81, 21), Decl(objectTypesIdentityWithPublics.ts, 82, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 82, 15)) ->a : { foo: string; }, Symbol(a, Decl(objectTypesIdentityWithPublics.ts, 18, 3)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>a : { foo: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithPublics.ts, 79, 26), Decl(objectTypesIdentityWithPublics.ts, 81, 21), Decl(objectTypesIdentityWithPublics.ts, 82, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 83, 15)) +>foo13 : { (x: I): any; (x: { foo: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithPublics.ts, 83, 26), Decl(objectTypesIdentityWithPublics.ts, 85, 21), Decl(objectTypesIdentityWithPublics.ts, 86, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 85, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithPublics.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithPublics.ts, 83, 26), Decl(objectTypesIdentityWithPublics.ts, 85, 21), Decl(objectTypesIdentityWithPublics.ts, 86, 28)) ->x : { foo: string; }, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 86, 15)) ->b : { foo: string; }, Symbol(b, Decl(objectTypesIdentityWithPublics.ts, 19, 3)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : { foo: string; } +>b : { foo: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { foo: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithPublics.ts, 83, 26), Decl(objectTypesIdentityWithPublics.ts, 85, 21), Decl(objectTypesIdentityWithPublics.ts, 86, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithPublics.ts, 87, 15)) +>foo14 : { (x: I): any; (x: { foo: string; }): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.symbols b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.symbols new file mode 100644 index 0000000000000..5a51f1bb0a6e4 --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.symbols @@ -0,0 +1,377 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers.ts === +// object types are identical structurally + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 3, 5)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 7, 5)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithStringIndexers.ts, 10, 8)) + + [x: string]: T; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 11, 5)) +>T : Symbol(T, Decl(objectTypesIdentityWithStringIndexers.ts, 10, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 15, 5)) +} + +class PA extends A { +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +} + +class PB extends B { +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +} + +var a: { +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) + + [x: string]: string; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 25, 5)) +} +var b: { [x: string]: string; } = { foo: '' }; +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 10)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 35)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 46), Decl(objectTypesIdentityWithStringIndexers.ts, 29, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 29, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 46), Decl(objectTypesIdentityWithStringIndexers.ts, 29, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 30, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 46), Decl(objectTypesIdentityWithStringIndexers.ts, 29, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 30, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 33, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 33, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 33, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 34, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 33, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 34, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 37, 29), Decl(objectTypesIdentityWithStringIndexers.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 37, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 37, 29), Decl(objectTypesIdentityWithStringIndexers.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 38, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 37, 29), Decl(objectTypesIdentityWithStringIndexers.ts, 38, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 41, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 41, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 41, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 42, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 41, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 42, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 45, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 45, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 45, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 46, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 45, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 46, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 49, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 49, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 49, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 50, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 49, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 50, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 53, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 53, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo5(x: B); // error +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 53, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 54, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 53, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 54, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 57, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 57, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo5b(x: C); // error +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 57, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 58, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 57, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 58, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 15)) + +function foo5c(x: A); +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 61, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 61, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo5c(x: PA); // error +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 61, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 62, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) + +function foo5c(x: any) { } +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 61, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 62, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 15)) + +function foo5d(x: A); +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 65, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 65, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo5d(x: PB); // error +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 65, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 66, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) + +function foo5d(x: any) { } +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 65, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 66, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 69, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 69, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo6(x: I); // error +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 69, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 70, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 69, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 70, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 73, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 73, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 73, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 74, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 73, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 74, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 77, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 77, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 77, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 78, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 77, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 78, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 81, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 81, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo9(x: C); // error +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 81, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 82, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 81, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 82, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 85, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 85, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo10(x: typeof a); // error +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 85, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 86, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 85, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 86, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 89, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 89, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 89, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 90, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 89, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 90, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 15)) + +function foo11b(x: B); +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 93, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 93, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo11b(x: PA); // error +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 93, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 94, 16)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) + +function foo11b(x: any) { } +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 93, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 94, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 16)) + +function foo11c(x: B); +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 97, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 97, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) + +function foo11c(x: PB); // error +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 97, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 98, 16)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) + +function foo11c(x: any) { } +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 97, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 98, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 16)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 101, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 101, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 101, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 102, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 101, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 102, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 105, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 105, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo13(x: typeof a); // error +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 105, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 106, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 105, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 106, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 109, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 109, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 109, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 110, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 109, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 110, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 15)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 113, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 113, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo15(x: PA); // error +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 113, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 114, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 113, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 114, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 15)) + +function foo16(x: I); +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 117, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 117, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) + +function foo16(x: PB); // error +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 117, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 118, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) + +function foo16(x: any) { } +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 117, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 118, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 119, 15)) + + diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types index ea58f2ff2d834..a7eeb67250477 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.types @@ -2,378 +2,378 @@ // object types are identical structurally class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>A : A [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 3, 5)) +>x : string } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>B : B [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 7, 5)) +>x : string } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithStringIndexers.ts, 10, 8)) +>C : C +>T : T [x: string]: T; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 11, 5)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithStringIndexers.ts, 10, 8)) +>x : string +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>I : I [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 15, 5)) +>x : string } class PA extends A { ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>PA : PA +>A : A } class PB extends B { ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>PB : PB +>B : B } var a: { ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) +>a : { [x: string]: string; } [x: string]: string; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 25, 5)) +>x : string } var b: { [x: string]: string; } = { foo: '' }; ->b : { [x: string]: string; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 10)) +>b : { [x: string]: string; } +>x : string >{ foo: '' } : { [x: string]: string; foo: string; } ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 35)) +>foo : string >'' : string function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 46), Decl(objectTypesIdentityWithStringIndexers.ts, 29, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 29, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 46), Decl(objectTypesIdentityWithStringIndexers.ts, 29, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 30, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 30, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 46), Decl(objectTypesIdentityWithStringIndexers.ts, 29, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 30, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 33, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 34, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 33, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 33, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 34, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 34, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers.ts, 31, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 33, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 34, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 37, 29), Decl(objectTypesIdentityWithStringIndexers.ts, 38, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 37, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 37, 29), Decl(objectTypesIdentityWithStringIndexers.ts, 38, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 38, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers.ts, 35, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 37, 29), Decl(objectTypesIdentityWithStringIndexers.ts, 38, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 41, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 41, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 41, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 42, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 42, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers.ts, 39, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 41, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 42, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 45, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 46, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 45, 14)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) +>foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 45, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 46, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 46, 14)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) +>foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo3(x: any) { } ->foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers.ts, 43, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 45, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 46, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 14)) +>foo3 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 49, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 50, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 49, 14)) ->b : { [x: string]: string; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) +>foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>b : { [x: string]: string; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 49, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 50, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 50, 14)) ->b : { [x: string]: string; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) +>foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>b : { [x: string]: string; } function foo4(x: any) { } ->foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers.ts, 47, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 49, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 50, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 14)) +>foo4 : { (x: { [x: string]: string; }): any; (x: { [x: string]: string; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 53, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 54, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 53, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // error ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 53, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 54, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 54, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers.ts, 51, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 53, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 54, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 57, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 58, 29)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 57, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // error ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 57, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 58, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 58, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers.ts, 55, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 57, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 58, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo5c(x: A); ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 61, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 62, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 61, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : A +>A : A function foo5c(x: PA); // error ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 61, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 62, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 62, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : PA +>PA : PA function foo5c(x: any) { } ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers.ts, 59, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 61, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 62, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 15)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : any function foo5d(x: A); ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 65, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 66, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 65, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : A +>A : A function foo5d(x: PB); // error ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 65, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 66, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 66, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : PB +>PB : PB function foo5d(x: any) { } ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers.ts, 63, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 65, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 66, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 15)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 69, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 70, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 69, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // error ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 69, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 70, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 70, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers.ts, 67, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 69, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 70, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 73, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 74, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 73, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers.ts, 0, 0)) +>foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 73, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 74, 27)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 74, 14)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) +>foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { [x: string]: string; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers.ts, 71, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 73, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 74, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 14)) +>foo7 : { (x: A): any; (x: { [x: string]: string; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 77, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 78, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 77, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 77, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 78, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 78, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers.ts, 75, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 77, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 78, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 81, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 82, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 81, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // error ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 81, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 82, 28)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 82, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers.ts, 79, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 81, 20), Decl(objectTypesIdentityWithStringIndexers.ts, 82, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 85, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 86, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 85, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : B +>B : B function foo10(x: typeof a); // error ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 85, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 86, 28)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 86, 15)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) +>foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers.ts, 83, 25), Decl(objectTypesIdentityWithStringIndexers.ts, 85, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 86, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 15)) +>foo10 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 89, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 90, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 89, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo11 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 89, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 90, 28)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 90, 15)) ->b : { [x: string]: string; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) +>foo11 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>b : { [x: string]: string; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { [x: string]: string; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers.ts, 87, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 89, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 90, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 15)) +>foo11 : { (x: B): any; (x: { [x: string]: string; }): any; } +>x : any function foo11b(x: B); ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 93, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 94, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 93, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : B +>B : B function foo11b(x: PA); // error ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 93, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 94, 23)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 94, 16)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : PA +>PA : PA function foo11b(x: any) { } ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers.ts, 91, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 93, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 94, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 16)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : any function foo11c(x: B); ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 97, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 98, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 97, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers.ts, 4, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : B +>B : B function foo11c(x: PB); // error ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 97, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 98, 23)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 98, 16)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : PB +>PB : PB function foo11c(x: any) { } ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers.ts, 95, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 97, 22), Decl(objectTypesIdentityWithStringIndexers.ts, 98, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 16)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 101, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 102, 29)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 101, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 101, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 102, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 102, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers.ts, 8, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers.ts, 99, 27), Decl(objectTypesIdentityWithStringIndexers.ts, 101, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 102, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 105, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 106, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 105, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : I +>I : I function foo13(x: typeof a); // error ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 105, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 106, 28)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 106, 15)) ->a : { [x: string]: string; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers.ts, 24, 3)) +>foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>a : { [x: string]: string; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers.ts, 103, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 105, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 106, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 15)) +>foo13 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 109, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 110, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 109, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo14 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 109, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 110, 28)) ->x : { [x: string]: string; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 110, 15)) ->b : { [x: string]: string; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers.ts, 27, 3)) +>foo14 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : { [x: string]: string; } +>b : { [x: string]: string; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { [x: string]: string; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers.ts, 107, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 109, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 110, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 15)) +>foo14 : { (x: I): any; (x: { [x: string]: string; }): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 113, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 114, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 113, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : I +>I : I function foo15(x: PA); // error ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 113, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 114, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 114, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers.ts, 16, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : PA +>PA : PA function foo15(x: any) { } ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers.ts, 111, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 113, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 114, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 15)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : any function foo16(x: I); ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 117, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 118, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 117, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers.ts, 12, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : I +>I : I function foo16(x: PB); // error ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 117, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 118, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 118, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers.ts, 19, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : PB +>PB : PB function foo16(x: any) { } ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers.ts, 115, 26), Decl(objectTypesIdentityWithStringIndexers.ts, 117, 21), Decl(objectTypesIdentityWithStringIndexers.ts, 118, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers.ts, 119, 15)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : any diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.symbols b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.symbols new file mode 100644 index 0000000000000..2df0bf01b1d7e --- /dev/null +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.symbols @@ -0,0 +1,395 @@ +=== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithStringIndexers2.ts === +// object types are identical structurally + +class Base { foo: string; } +>Base : Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 12)) + +class Derived extends Base { bar: string; } +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +>bar : Symbol(bar, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 28)) + +class A { +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + + [x: string]: Base; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 6, 5)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +} + +class B { +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + + [x: string]: Derived; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 10, 5)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +} + +class C { +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) +>T : Symbol(T, Decl(objectTypesIdentityWithStringIndexers2.ts, 13, 8)) + + [x: string]: T; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 14, 5)) +>T : Symbol(T, Decl(objectTypesIdentityWithStringIndexers2.ts, 13, 8)) +} + +interface I { +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + + [x: string]: Derived; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 18, 5)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +} + +class PA extends A { +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +} + +class PB extends B { +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +} + +var a: { +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) + + [x: string]: Base; +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 28, 5)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +} +var b: { [x: string]: Derived; } = { foo: null }; +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 10)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>foo : Symbol(foo, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 36)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) + +function foo1(x: A); +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo1(x: A); // error +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo1(x: any) { } +>foo1 : Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 14)) + +function foo1b(x: B); +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo1b(x: B); // error +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo1b(x: any) { } +>foo1b : Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 21)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 15)) + +function foo1c(x: C); +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) + +function foo1c(x: C); // error +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) + +function foo1c(x: any) { } +>foo1c : Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 29)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 15)) + +function foo2(x: I); +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo2(x: I); // error +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo2(x: any) { } +>foo2 : Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 14)) + +function foo3(x: typeof a); +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) + +function foo3(x: typeof a); // error +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) + +function foo3(x: any) { } +>foo3 : Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 14)) + +function foo4(x: typeof b); +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) + +function foo4(x: typeof b); // error +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 14)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) + +function foo4(x: any) { } +>foo4 : Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 14)) + +function foo5(x: A); +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo5(x: B); // ok +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo5(x: any) { } +>foo5 : Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 14)) + +function foo5b(x: A); +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo5b(x: C); // ok +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) + +function foo5b(x: any) { } +>foo5b : Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 15)) + +function foo5c(x: A); +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo5c(x: PA); // error +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) + +function foo5c(x: any) { } +>foo5c : Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 15)) + +function foo5d(x: A); +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 15)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo5d(x: PB); // ok +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) + +function foo5d(x: any) { } +>foo5d : Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 15)) + +function foo6(x: A); +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo6(x: I); // ok +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo6(x: any) { } +>foo6 : Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 14)) + +function foo7(x: A); +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 14)) +>A : Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) + +function foo7(x: typeof a); // error +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 14)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) + +function foo7(x: any) { } +>foo7 : Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 27)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 14)) + +function foo8(x: B); +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo8(x: I); // error +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 14)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo8(x: any) { } +>foo8 : Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 20)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 14)) + +function foo9(x: B); +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 14)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo9(x: C); // ok +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 14)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) +>Base : Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) + +function foo9(x: any) { } +>foo9 : Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 26)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 14)) + +function foo10(x: B); +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo10(x: typeof a); // ok +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) + +function foo10(x: any) { } +>foo10 : Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 15)) + +function foo11(x: B); +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 15)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo11(x: typeof b); // error +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) + +function foo11(x: any) { } +>foo11 : Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 15)) + +function foo11b(x: B); +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo11b(x: PA); // ok +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 16)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) + +function foo11b(x: any) { } +>foo11b : Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 16)) + +function foo11c(x: B); +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 16)) +>B : Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) + +function foo11c(x: PB); // error +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 16)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) + +function foo11c(x: any) { } +>foo11c : Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 23)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 16)) + +function foo12(x: I); +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo12(x: C); // error +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 15)) +>C : Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) +>Derived : Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) + +function foo12(x: any) { } +>foo12 : Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 30)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 15)) + +function foo13(x: I); +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo13(x: typeof a); // ok +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 15)) +>a : Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) + +function foo13(x: any) { } +>foo13 : Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 15)) + +function foo14(x: I); +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo14(x: typeof b); // error +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 15)) +>b : Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) + +function foo14(x: any) { } +>foo14 : Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 28)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 15)) + +function foo15(x: I); +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo15(x: PA); // ok +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 15)) +>PA : Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) + +function foo15(x: any) { } +>foo15 : Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 15)) + +function foo16(x: I); +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 15)) +>I : Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) + +function foo16(x: PB); // error +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 15)) +>PB : Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) + +function foo16(x: any) { } +>foo16 : Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 22)) +>x : Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 122, 15)) + + diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types index 32ff47b75bc61..d13942521170d 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.types @@ -2,397 +2,397 @@ // object types are identical structurally class Base { foo: string; } ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 12)) +>Base : Base +>foo : string class Derived extends Base { bar: string; } ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) ->bar : string, Symbol(bar, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 28)) +>Derived : Derived +>Base : Base +>bar : string class A { ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>A : A [x: string]: Base; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 6, 5)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +>x : string +>Base : Base } class B { ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>B : B [x: string]: Derived; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 10, 5)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>x : string +>Derived : Derived } class C { ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithStringIndexers2.ts, 13, 8)) +>C : C +>T : T [x: string]: T; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 14, 5)) ->T : T, Symbol(T, Decl(objectTypesIdentityWithStringIndexers2.ts, 13, 8)) +>x : string +>T : T } interface I { ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>I : I [x: string]: Derived; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 18, 5)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>x : string +>Derived : Derived } class PA extends A { ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>PA : PA +>A : A } class PB extends B { ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>PB : PB +>B : B } var a: { ->a : { [x: string]: Base; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) +>a : { [x: string]: Base; } [x: string]: Base; ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 28, 5)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +>x : string +>Base : Base } var b: { [x: string]: Derived; } = { foo: null }; ->b : { [x: string]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) ->x : string, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 10)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>b : { [x: string]: Derived; } +>x : string +>Derived : Derived >{ foo: null } : { [x: string]: Derived; foo: Derived; } ->foo : Derived, Symbol(foo, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 36)) +>foo : Derived >null : Derived ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>Derived : Derived >null : null function foo1(x: A); ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: A); // error ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo1 : { (x: A): any; (x: A): any; } +>x : A +>A : A function foo1(x: any) { } ->foo1 : { (x: A): any; (x: A): any; }, Symbol(foo1, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 58), Decl(objectTypesIdentityWithStringIndexers2.ts, 32, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 33, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 14)) +>foo1 : { (x: A): any; (x: A): any; } +>x : any function foo1b(x: B); ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: B); // error ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 21)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo1b : { (x: B): any; (x: B): any; } +>x : B +>B : B function foo1b(x: any) { } ->foo1b : { (x: B): any; (x: B): any; }, Symbol(foo1b, Decl(objectTypesIdentityWithStringIndexers2.ts, 34, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 36, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 37, 21)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 15)) +>foo1b : { (x: B): any; (x: B): any; } +>x : any function foo1c(x: C); ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: C); // error ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 29)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) +>foo1c : { (x: C): any; (x: C): any; } +>x : C +>C : C function foo1c(x: any) { } ->foo1c : { (x: C): any; (x: C): any; }, Symbol(foo1c, Decl(objectTypesIdentityWithStringIndexers2.ts, 38, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 40, 29), Decl(objectTypesIdentityWithStringIndexers2.ts, 41, 29)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 15)) +>foo1c : { (x: C): any; (x: C): any; } +>x : any function foo2(x: I); ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: I); // error ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo2 : { (x: I): any; (x: I): any; } +>x : I +>I : I function foo2(x: any) { } ->foo2 : { (x: I): any; (x: I): any; }, Symbol(foo2, Decl(objectTypesIdentityWithStringIndexers2.ts, 42, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 44, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 45, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 14)) +>foo2 : { (x: I): any; (x: I): any; } +>x : any function foo3(x: typeof a); ->foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 27)) ->x : { [x: string]: Base; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 14)) ->a : { [x: string]: Base; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) +>foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; } +>x : { [x: string]: Base; } +>a : { [x: string]: Base; } function foo3(x: typeof a); // error ->foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 27)) ->x : { [x: string]: Base; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 14)) ->a : { [x: string]: Base; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) +>foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; } +>x : { [x: string]: Base; } +>a : { [x: string]: Base; } function foo3(x: any) { } ->foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; }, Symbol(foo3, Decl(objectTypesIdentityWithStringIndexers2.ts, 46, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 48, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 49, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 14)) +>foo3 : { (x: { [x: string]: Base; }): any; (x: { [x: string]: Base; }): any; } +>x : any function foo4(x: typeof b); ->foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 27)) ->x : { [x: string]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 14)) ->b : { [x: string]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) +>foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; } +>x : { [x: string]: Derived; } +>b : { [x: string]: Derived; } function foo4(x: typeof b); // error ->foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 27)) ->x : { [x: string]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 14)) ->b : { [x: string]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) +>foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; } +>x : { [x: string]: Derived; } +>b : { [x: string]: Derived; } function foo4(x: any) { } ->foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo4, Decl(objectTypesIdentityWithStringIndexers2.ts, 50, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 52, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 53, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 14)) +>foo4 : { (x: { [x: string]: Derived; }): any; (x: { [x: string]: Derived; }): any; } +>x : any function foo5(x: A); ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo5 : { (x: A): any; (x: B): any; } +>x : A +>A : A function foo5(x: B); // ok ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo5 : { (x: A): any; (x: B): any; } +>x : B +>B : B function foo5(x: any) { } ->foo5 : { (x: A): any; (x: B): any; }, Symbol(foo5, Decl(objectTypesIdentityWithStringIndexers2.ts, 54, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 56, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 57, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 14)) +>foo5 : { (x: A): any; (x: B): any; } +>x : any function foo5b(x: A); ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 30)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo5b : { (x: A): any; (x: C): any; } +>x : A +>A : A function foo5b(x: C); // ok ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>foo5b : { (x: A): any; (x: C): any; } +>x : C +>C : C +>Derived : Derived function foo5b(x: any) { } ->foo5b : { (x: A): any; (x: C): any; }, Symbol(foo5b, Decl(objectTypesIdentityWithStringIndexers2.ts, 58, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 60, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 61, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 15)) +>foo5b : { (x: A): any; (x: C): any; } +>x : any function foo5c(x: A); ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : A +>A : A function foo5c(x: PA); // error ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : PA +>PA : PA function foo5c(x: any) { } ->foo5c : { (x: A): any; (x: PA): any; }, Symbol(foo5c, Decl(objectTypesIdentityWithStringIndexers2.ts, 62, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 64, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 65, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 15)) +>foo5c : { (x: A): any; (x: PA): any; } +>x : any function foo5d(x: A); ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 22)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 15)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : A +>A : A function foo5d(x: PB); // ok ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : PB +>PB : PB function foo5d(x: any) { } ->foo5d : { (x: A): any; (x: PB): any; }, Symbol(foo5d, Decl(objectTypesIdentityWithStringIndexers2.ts, 66, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 68, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 69, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 15)) +>foo5d : { (x: A): any; (x: PB): any; } +>x : any function foo6(x: A); ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 20)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo6 : { (x: A): any; (x: I): any; } +>x : A +>A : A function foo6(x: I); // ok ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo6 : { (x: A): any; (x: I): any; } +>x : I +>I : I function foo6(x: any) { } ->foo6 : { (x: A): any; (x: I): any; }, Symbol(foo6, Decl(objectTypesIdentityWithStringIndexers2.ts, 70, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 72, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 73, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 14)) +>foo6 : { (x: A): any; (x: I): any; } +>x : any function foo7(x: A); ->foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 27)) ->x : A, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 14)) ->A : A, Symbol(A, Decl(objectTypesIdentityWithStringIndexers2.ts, 3, 43)) +>foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; } +>x : A +>A : A function foo7(x: typeof a); // error ->foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 27)) ->x : { [x: string]: Base; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 14)) ->a : { [x: string]: Base; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) +>foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; } +>x : { [x: string]: Base; } +>a : { [x: string]: Base; } function foo7(x: any) { } ->foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; }, Symbol(foo7, Decl(objectTypesIdentityWithStringIndexers2.ts, 74, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 76, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 77, 27)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 14)) +>foo7 : { (x: A): any; (x: { [x: string]: Base; }): any; } +>x : any function foo8(x: B); ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 20)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : B +>B : B function foo8(x: I); // error ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 20)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 14)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo8 : { (x: B): any; (x: I): any; } +>x : I +>I : I function foo8(x: any) { } ->foo8 : { (x: B): any; (x: I): any; }, Symbol(foo8, Decl(objectTypesIdentityWithStringIndexers2.ts, 78, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 80, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 81, 20)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 14)) +>foo8 : { (x: B): any; (x: I): any; } +>x : any function foo9(x: B); ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 26)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 14)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo9 : { (x: B): any; (x: C): any; } +>x : B +>B : B function foo9(x: C); // ok ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 26)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 14)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) ->Base : Base, Symbol(Base, Decl(objectTypesIdentityWithStringIndexers2.ts, 0, 0)) +>foo9 : { (x: B): any; (x: C): any; } +>x : C +>C : C +>Base : Base function foo9(x: any) { } ->foo9 : { (x: B): any; (x: C): any; }, Symbol(foo9, Decl(objectTypesIdentityWithStringIndexers2.ts, 82, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 84, 20), Decl(objectTypesIdentityWithStringIndexers2.ts, 85, 26)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 14)) +>foo9 : { (x: B): any; (x: C): any; } +>x : any function foo10(x: B); ->foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; } +>x : B +>B : B function foo10(x: typeof a); // ok ->foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 28)) ->x : { [x: string]: Base; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 15)) ->a : { [x: string]: Base; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) +>foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; } +>x : { [x: string]: Base; } +>a : { [x: string]: Base; } function foo10(x: any) { } ->foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; }, Symbol(foo10, Decl(objectTypesIdentityWithStringIndexers2.ts, 86, 25), Decl(objectTypesIdentityWithStringIndexers2.ts, 88, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 89, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 15)) +>foo10 : { (x: B): any; (x: { [x: string]: Base; }): any; } +>x : any function foo11(x: B); ->foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 28)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 15)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; } +>x : B +>B : B function foo11(x: typeof b); // error ->foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 28)) ->x : { [x: string]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 15)) ->b : { [x: string]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) +>foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; } +>x : { [x: string]: Derived; } +>b : { [x: string]: Derived; } function foo11(x: any) { } ->foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo11, Decl(objectTypesIdentityWithStringIndexers2.ts, 90, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 92, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 93, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 15)) +>foo11 : { (x: B): any; (x: { [x: string]: Derived; }): any; } +>x : any function foo11b(x: B); ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : B +>B : B function foo11b(x: PA); // ok ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 23)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 16)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : PA +>PA : PA function foo11b(x: any) { } ->foo11b : { (x: B): any; (x: PA): any; }, Symbol(foo11b, Decl(objectTypesIdentityWithStringIndexers2.ts, 94, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 96, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 97, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 16)) +>foo11b : { (x: B): any; (x: PA): any; } +>x : any function foo11c(x: B); ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 23)) ->x : B, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 16)) ->B : B, Symbol(B, Decl(objectTypesIdentityWithStringIndexers2.ts, 7, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : B +>B : B function foo11c(x: PB); // error ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 23)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 16)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : PB +>PB : PB function foo11c(x: any) { } ->foo11c : { (x: B): any; (x: PB): any; }, Symbol(foo11c, Decl(objectTypesIdentityWithStringIndexers2.ts, 98, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 100, 22), Decl(objectTypesIdentityWithStringIndexers2.ts, 101, 23)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 16)) +>foo11c : { (x: B): any; (x: PB): any; } +>x : any function foo12(x: I); ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 30)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo12 : { (x: I): any; (x: C): any; } +>x : I +>I : I function foo12(x: C); // error ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 30)) ->x : C, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 15)) ->C : C, Symbol(C, Decl(objectTypesIdentityWithStringIndexers2.ts, 11, 1)) ->Derived : Derived, Symbol(Derived, Decl(objectTypesIdentityWithStringIndexers2.ts, 2, 27)) +>foo12 : { (x: I): any; (x: C): any; } +>x : C +>C : C +>Derived : Derived function foo12(x: any) { } ->foo12 : { (x: I): any; (x: C): any; }, Symbol(foo12, Decl(objectTypesIdentityWithStringIndexers2.ts, 102, 27), Decl(objectTypesIdentityWithStringIndexers2.ts, 104, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 105, 30)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 15)) +>foo12 : { (x: I): any; (x: C): any; } +>x : any function foo13(x: I); ->foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; } +>x : I +>I : I function foo13(x: typeof a); // ok ->foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 28)) ->x : { [x: string]: Base; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 15)) ->a : { [x: string]: Base; }, Symbol(a, Decl(objectTypesIdentityWithStringIndexers2.ts, 27, 3)) +>foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; } +>x : { [x: string]: Base; } +>a : { [x: string]: Base; } function foo13(x: any) { } ->foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; }, Symbol(foo13, Decl(objectTypesIdentityWithStringIndexers2.ts, 106, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 108, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 109, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 15)) +>foo13 : { (x: I): any; (x: { [x: string]: Base; }): any; } +>x : any function foo14(x: I); ->foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 28)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; } +>x : I +>I : I function foo14(x: typeof b); // error ->foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 28)) ->x : { [x: string]: Derived; }, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 15)) ->b : { [x: string]: Derived; }, Symbol(b, Decl(objectTypesIdentityWithStringIndexers2.ts, 30, 3)) +>foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; } +>x : { [x: string]: Derived; } +>b : { [x: string]: Derived; } function foo14(x: any) { } ->foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; }, Symbol(foo14, Decl(objectTypesIdentityWithStringIndexers2.ts, 110, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 112, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 113, 28)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 15)) +>foo14 : { (x: I): any; (x: { [x: string]: Derived; }): any; } +>x : any function foo15(x: I); ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : I +>I : I function foo15(x: PA); // ok ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 22)) ->x : PA, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 15)) ->PA : PA, Symbol(PA, Decl(objectTypesIdentityWithStringIndexers2.ts, 19, 1)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : PA +>PA : PA function foo15(x: any) { } ->foo15 : { (x: I): any; (x: PA): any; }, Symbol(foo15, Decl(objectTypesIdentityWithStringIndexers2.ts, 114, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 116, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 117, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 15)) +>foo15 : { (x: I): any; (x: PA): any; } +>x : any function foo16(x: I); ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 22)) ->x : I, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 15)) ->I : I, Symbol(I, Decl(objectTypesIdentityWithStringIndexers2.ts, 15, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : I +>I : I function foo16(x: PB); // error ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 22)) ->x : PB, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 15)) ->PB : PB, Symbol(PB, Decl(objectTypesIdentityWithStringIndexers2.ts, 22, 1)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : PB +>PB : PB function foo16(x: any) { } ->foo16 : { (x: I): any; (x: PB): any; }, Symbol(foo16, Decl(objectTypesIdentityWithStringIndexers2.ts, 118, 26), Decl(objectTypesIdentityWithStringIndexers2.ts, 120, 21), Decl(objectTypesIdentityWithStringIndexers2.ts, 121, 22)) ->x : any, Symbol(x, Decl(objectTypesIdentityWithStringIndexers2.ts, 122, 15)) +>foo16 : { (x: I): any; (x: PB): any; } +>x : any diff --git a/tests/baselines/reference/octalIntegerLiteral.symbols b/tests/baselines/reference/octalIntegerLiteral.symbols new file mode 100644 index 0000000000000..6a4839839aab3 --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteral.symbols @@ -0,0 +1,116 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts === +var oct1 = 0o45436; +>oct1 : Symbol(oct1, Decl(octalIntegerLiteral.ts, 0, 3)) + +var oct2 = 0O45436; +>oct2 : Symbol(oct2, Decl(octalIntegerLiteral.ts, 1, 3)) + +var oct3 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; +>oct3 : Symbol(oct3, Decl(octalIntegerLiteral.ts, 2, 3)) + +var oct4 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; +>oct4 : Symbol(oct4, Decl(octalIntegerLiteral.ts, 3, 3)) + +var obj1 = { +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) + + 0o45436: "Hello", + a: 0o45436, +>a : Symbol(a, Decl(octalIntegerLiteral.ts, 6, 21)) + + b: oct1, +>b : Symbol(b, Decl(octalIntegerLiteral.ts, 7, 15)) +>oct1 : Symbol(oct1, Decl(octalIntegerLiteral.ts, 0, 3)) + + oct1, +>oct1 : Symbol(oct1, Decl(octalIntegerLiteral.ts, 8, 12)) + + 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: true +} + +var obj2 = { +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) + + 0O45436: "hi", + a: 0O45436, +>a : Symbol(a, Decl(octalIntegerLiteral.ts, 14, 18)) + + b: oct2, +>b : Symbol(b, Decl(octalIntegerLiteral.ts, 15, 15)) +>oct2 : Symbol(oct2, Decl(octalIntegerLiteral.ts, 1, 3)) + + oct2, +>oct2 : Symbol(oct2, Decl(octalIntegerLiteral.ts, 16, 12)) + + 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: false, +} + +obj1[0o45436]; // string +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>0o45436 : Symbol(0o45436, Decl(octalIntegerLiteral.ts, 5, 12)) + +obj1["0o45436"]; // any +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) + +obj1["19230"]; // string +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>"19230" : Symbol(0o45436, Decl(octalIntegerLiteral.ts, 5, 12)) + +obj1[19230]; // string +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>19230 : Symbol(0o45436, Decl(octalIntegerLiteral.ts, 5, 12)) + +obj1["a"]; // number +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>"a" : Symbol(a, Decl(octalIntegerLiteral.ts, 6, 21)) + +obj1["b"]; // number +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>"b" : Symbol(b, Decl(octalIntegerLiteral.ts, 7, 15)) + +obj1["oct1"]; // number +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>"oct1" : Symbol(oct1, Decl(octalIntegerLiteral.ts, 8, 12)) + +obj1["Infinity"]; // boolean +>obj1 : Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>"Infinity" : Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteral.ts, 9, 9)) + +obj2[0O45436]; // string +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>0O45436 : Symbol(0O45436, Decl(octalIntegerLiteral.ts, 13, 12)) + +obj2["0O45436"]; // any +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) + +obj2["19230"]; // string +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>"19230" : Symbol(0O45436, Decl(octalIntegerLiteral.ts, 13, 12)) + +obj2[19230]; // string +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>19230 : Symbol(0O45436, Decl(octalIntegerLiteral.ts, 13, 12)) + +obj2["a"]; // number +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>"a" : Symbol(a, Decl(octalIntegerLiteral.ts, 14, 18)) + +obj2["b"]; // number +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>"b" : Symbol(b, Decl(octalIntegerLiteral.ts, 15, 15)) + +obj2["oct2"]; // number +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>"oct2" : Symbol(oct2, Decl(octalIntegerLiteral.ts, 16, 12)) + +obj2[5.462437423415177e+244]; // boolean +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>5.462437423415177e+244 : Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteral.ts, 17, 9)) + +obj2["5.462437423415177e+244"]; // boolean +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>"5.462437423415177e+244" : Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteral.ts, 17, 9)) + +obj2["Infinity"]; // any +>obj2 : Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) + diff --git a/tests/baselines/reference/octalIntegerLiteral.types b/tests/baselines/reference/octalIntegerLiteral.types index 0a56d6234208e..8352e5fac0c3e 100644 --- a/tests/baselines/reference/octalIntegerLiteral.types +++ b/tests/baselines/reference/octalIntegerLiteral.types @@ -1,59 +1,59 @@ === tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteral.ts === var oct1 = 0o45436; ->oct1 : number, Symbol(oct1, Decl(octalIntegerLiteral.ts, 0, 3)) +>oct1 : number >0o45436 : number var oct2 = 0O45436; ->oct2 : number, Symbol(oct2, Decl(octalIntegerLiteral.ts, 1, 3)) +>oct2 : number >0O45436 : number var oct3 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; ->oct3 : number, Symbol(oct3, Decl(octalIntegerLiteral.ts, 2, 3)) +>oct3 : number >0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 : number var oct4 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; ->oct4 : number, Symbol(oct4, Decl(octalIntegerLiteral.ts, 3, 3)) +>oct4 : number >0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 : number var obj1 = { ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >{ 0o45436: "Hello", a: 0o45436, b: oct1, oct1, 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: true} : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } 0o45436: "Hello", >"Hello" : string a: 0o45436, ->a : number, Symbol(a, Decl(octalIntegerLiteral.ts, 6, 21)) +>a : number >0o45436 : number b: oct1, ->b : number, Symbol(b, Decl(octalIntegerLiteral.ts, 7, 15)) ->oct1 : number, Symbol(oct1, Decl(octalIntegerLiteral.ts, 0, 3)) +>b : number +>oct1 : number oct1, ->oct1 : number, Symbol(oct1, Decl(octalIntegerLiteral.ts, 8, 12)) +>oct1 : number 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: true >true : boolean } var obj2 = { ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >{ 0O45436: "hi", a: 0O45436, b: oct2, oct2, 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: false,} : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } 0O45436: "hi", >"hi" : string a: 0O45436, ->a : number, Symbol(a, Decl(octalIntegerLiteral.ts, 14, 18)) +>a : number >0O45436 : number b: oct2, ->b : number, Symbol(b, Decl(octalIntegerLiteral.ts, 15, 15)) ->oct2 : number, Symbol(oct2, Decl(octalIntegerLiteral.ts, 1, 3)) +>b : number +>oct2 : number oct2, ->oct2 : number, Symbol(oct2, Decl(octalIntegerLiteral.ts, 16, 12)) +>oct2 : number 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: false, >false : boolean @@ -61,91 +61,91 @@ var obj2 = { obj1[0o45436]; // string >obj1[0o45436] : string ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->0o45436 : number, Symbol(0o45436, Decl(octalIntegerLiteral.ts, 5, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>0o45436 : number obj1["0o45436"]; // any >obj1["0o45436"] : any ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >"0o45436" : string obj1["19230"]; // string >obj1["19230"] : string ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->"19230" : string, Symbol(0o45436, Decl(octalIntegerLiteral.ts, 5, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"19230" : string obj1[19230]; // string >obj1[19230] : string ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->19230 : number, Symbol(0o45436, Decl(octalIntegerLiteral.ts, 5, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>19230 : number obj1["a"]; // number >obj1["a"] : number ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->"a" : string, Symbol(a, Decl(octalIntegerLiteral.ts, 6, 21)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"a" : string obj1["b"]; // number >obj1["b"] : number ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->"b" : string, Symbol(b, Decl(octalIntegerLiteral.ts, 7, 15)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"b" : string obj1["oct1"]; // number >obj1["oct1"] : number ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->"oct1" : string, Symbol(oct1, Decl(octalIntegerLiteral.ts, 8, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"oct1" : string obj1["Infinity"]; // boolean >obj1["Infinity"] : boolean ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteral.ts, 5, 3)) ->"Infinity" : string, Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteral.ts, 9, 9)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"Infinity" : string obj2[0O45436]; // string >obj2[0O45436] : string ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->0O45436 : number, Symbol(0O45436, Decl(octalIntegerLiteral.ts, 13, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>0O45436 : number obj2["0O45436"]; // any >obj2["0O45436"] : any ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >"0O45436" : string obj2["19230"]; // string >obj2["19230"] : string ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->"19230" : string, Symbol(0O45436, Decl(octalIntegerLiteral.ts, 13, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"19230" : string obj2[19230]; // string >obj2[19230] : string ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->19230 : number, Symbol(0O45436, Decl(octalIntegerLiteral.ts, 13, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>19230 : number obj2["a"]; // number >obj2["a"] : number ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->"a" : string, Symbol(a, Decl(octalIntegerLiteral.ts, 14, 18)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"a" : string obj2["b"]; // number >obj2["b"] : number ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->"b" : string, Symbol(b, Decl(octalIntegerLiteral.ts, 15, 15)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"b" : string obj2["oct2"]; // number >obj2["oct2"] : number ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->"oct2" : string, Symbol(oct2, Decl(octalIntegerLiteral.ts, 16, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"oct2" : string obj2[5.462437423415177e+244]; // boolean >obj2[5.462437423415177e+244] : boolean ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->5.462437423415177e+244 : number, Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteral.ts, 17, 9)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>5.462437423415177e+244 : number obj2["5.462437423415177e+244"]; // boolean >obj2["5.462437423415177e+244"] : boolean ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) ->"5.462437423415177e+244" : string, Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteral.ts, 17, 9)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"5.462437423415177e+244" : string obj2["Infinity"]; // any >obj2["Infinity"] : any ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteral.ts, 13, 3)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >"Infinity" : string diff --git a/tests/baselines/reference/octalIntegerLiteralES6.symbols b/tests/baselines/reference/octalIntegerLiteralES6.symbols new file mode 100644 index 0000000000000..ff3f54936cd79 --- /dev/null +++ b/tests/baselines/reference/octalIntegerLiteralES6.symbols @@ -0,0 +1,116 @@ +=== tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts === +var oct1 = 0o45436; +>oct1 : Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 0, 3)) + +var oct2 = 0O45436; +>oct2 : Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 1, 3)) + +var oct3 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; +>oct3 : Symbol(oct3, Decl(octalIntegerLiteralES6.ts, 2, 3)) + +var oct4 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; +>oct4 : Symbol(oct4, Decl(octalIntegerLiteralES6.ts, 3, 3)) + +var obj1 = { +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) + + 0o45436: "Hello", + a: 0o45436, +>a : Symbol(a, Decl(octalIntegerLiteralES6.ts, 6, 21)) + + b: oct1, +>b : Symbol(b, Decl(octalIntegerLiteralES6.ts, 7, 15)) +>oct1 : Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 0, 3)) + + oct1, +>oct1 : Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 8, 12)) + + 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: true +} + +var obj2 = { +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) + + 0O45436: "hi", + a: 0O45436, +>a : Symbol(a, Decl(octalIntegerLiteralES6.ts, 14, 18)) + + b: oct2, +>b : Symbol(b, Decl(octalIntegerLiteralES6.ts, 15, 15)) +>oct2 : Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 1, 3)) + + oct2, +>oct2 : Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 16, 12)) + + 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: false, +} + +obj1[0o45436]; // string +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>0o45436 : Symbol(0o45436, Decl(octalIntegerLiteralES6.ts, 5, 12)) + +obj1["0o45436"]; // any +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) + +obj1["19230"]; // string +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>"19230" : Symbol(0o45436, Decl(octalIntegerLiteralES6.ts, 5, 12)) + +obj1[19230]; // string +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>19230 : Symbol(0o45436, Decl(octalIntegerLiteralES6.ts, 5, 12)) + +obj1["a"]; // number +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>"a" : Symbol(a, Decl(octalIntegerLiteralES6.ts, 6, 21)) + +obj1["b"]; // number +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>"b" : Symbol(b, Decl(octalIntegerLiteralES6.ts, 7, 15)) + +obj1["oct1"]; // number +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>"oct1" : Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 8, 12)) + +obj1["Infinity"]; // boolean +>obj1 : Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>"Infinity" : Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteralES6.ts, 9, 9)) + +obj2[0O45436]; // string +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>0O45436 : Symbol(0O45436, Decl(octalIntegerLiteralES6.ts, 13, 12)) + +obj2["0O45436"]; // any +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) + +obj2["19230"]; // string +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>"19230" : Symbol(0O45436, Decl(octalIntegerLiteralES6.ts, 13, 12)) + +obj2[19230]; // string +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>19230 : Symbol(0O45436, Decl(octalIntegerLiteralES6.ts, 13, 12)) + +obj2["a"]; // number +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>"a" : Symbol(a, Decl(octalIntegerLiteralES6.ts, 14, 18)) + +obj2["b"]; // number +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>"b" : Symbol(b, Decl(octalIntegerLiteralES6.ts, 15, 15)) + +obj2["oct2"]; // number +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>"oct2" : Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 16, 12)) + +obj2[5.462437423415177e+244]; // boolean +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>5.462437423415177e+244 : Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteralES6.ts, 17, 9)) + +obj2["5.462437423415177e+244"]; // boolean +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>"5.462437423415177e+244" : Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteralES6.ts, 17, 9)) + +obj2["Infinity"]; // any +>obj2 : Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) + diff --git a/tests/baselines/reference/octalIntegerLiteralES6.types b/tests/baselines/reference/octalIntegerLiteralES6.types index faf77f9c6bedc..7ef32b4928933 100644 --- a/tests/baselines/reference/octalIntegerLiteralES6.types +++ b/tests/baselines/reference/octalIntegerLiteralES6.types @@ -1,59 +1,59 @@ === tests/cases/conformance/es6/binaryAndOctalIntegerLiteral/octalIntegerLiteralES6.ts === var oct1 = 0o45436; ->oct1 : number, Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 0, 3)) +>oct1 : number >0o45436 : number var oct2 = 0O45436; ->oct2 : number, Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 1, 3)) +>oct2 : number >0O45436 : number var oct3 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; ->oct3 : number, Symbol(oct3, Decl(octalIntegerLiteralES6.ts, 2, 3)) +>oct3 : number >0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 : number var oct4 = 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777; ->oct4 : number, Symbol(oct4, Decl(octalIntegerLiteralES6.ts, 3, 3)) +>oct4 : number >0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 : number var obj1 = { ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >{ 0o45436: "Hello", a: 0o45436, b: oct1, oct1, 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: true} : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } 0o45436: "Hello", >"Hello" : string a: 0o45436, ->a : number, Symbol(a, Decl(octalIntegerLiteralES6.ts, 6, 21)) +>a : number >0o45436 : number b: oct1, ->b : number, Symbol(b, Decl(octalIntegerLiteralES6.ts, 7, 15)) ->oct1 : number, Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 0, 3)) +>b : number +>oct1 : number oct1, ->oct1 : number, Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 8, 12)) +>oct1 : number 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: true >true : boolean } var obj2 = { ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >{ 0O45436: "hi", a: 0O45436, b: oct2, oct2, 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: false,} : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } 0O45436: "hi", >"hi" : string a: 0O45436, ->a : number, Symbol(a, Decl(octalIntegerLiteralES6.ts, 14, 18)) +>a : number >0O45436 : number b: oct2, ->b : number, Symbol(b, Decl(octalIntegerLiteralES6.ts, 15, 15)) ->oct2 : number, Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 1, 3)) +>b : number +>oct2 : number oct2, ->oct2 : number, Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 16, 12)) +>oct2 : number 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: false, >false : boolean @@ -61,91 +61,91 @@ var obj2 = { obj1[0o45436]; // string >obj1[0o45436] : string ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->0o45436 : number, Symbol(0o45436, Decl(octalIntegerLiteralES6.ts, 5, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>0o45436 : number obj1["0o45436"]; // any >obj1["0o45436"] : any ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >"0o45436" : string obj1["19230"]; // string >obj1["19230"] : string ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->"19230" : string, Symbol(0o45436, Decl(octalIntegerLiteralES6.ts, 5, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"19230" : string obj1[19230]; // string >obj1[19230] : string ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->19230 : number, Symbol(0o45436, Decl(octalIntegerLiteralES6.ts, 5, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>19230 : number obj1["a"]; // number >obj1["a"] : number ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->"a" : string, Symbol(a, Decl(octalIntegerLiteralES6.ts, 6, 21)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"a" : string obj1["b"]; // number >obj1["b"] : number ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->"b" : string, Symbol(b, Decl(octalIntegerLiteralES6.ts, 7, 15)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"b" : string obj1["oct1"]; // number >obj1["oct1"] : number ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->"oct1" : string, Symbol(oct1, Decl(octalIntegerLiteralES6.ts, 8, 12)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"oct1" : string obj1["Infinity"]; // boolean >obj1["Infinity"] : boolean ->obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj1, Decl(octalIntegerLiteralES6.ts, 5, 3)) ->"Infinity" : string, Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteralES6.ts, 9, 9)) +>obj1 : { 0o45436: string; a: number; b: number; oct1: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"Infinity" : string obj2[0O45436]; // string >obj2[0O45436] : string ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->0O45436 : number, Symbol(0O45436, Decl(octalIntegerLiteralES6.ts, 13, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>0O45436 : number obj2["0O45436"]; // any >obj2["0O45436"] : any ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >"0O45436" : string obj2["19230"]; // string >obj2["19230"] : string ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->"19230" : string, Symbol(0O45436, Decl(octalIntegerLiteralES6.ts, 13, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"19230" : string obj2[19230]; // string >obj2[19230] : string ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->19230 : number, Symbol(0O45436, Decl(octalIntegerLiteralES6.ts, 13, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>19230 : number obj2["a"]; // number >obj2["a"] : number ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->"a" : string, Symbol(a, Decl(octalIntegerLiteralES6.ts, 14, 18)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"a" : string obj2["b"]; // number >obj2["b"] : number ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->"b" : string, Symbol(b, Decl(octalIntegerLiteralES6.ts, 15, 15)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"b" : string obj2["oct2"]; // number >obj2["oct2"] : number ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->"oct2" : string, Symbol(oct2, Decl(octalIntegerLiteralES6.ts, 16, 12)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"oct2" : string obj2[5.462437423415177e+244]; // boolean >obj2[5.462437423415177e+244] : boolean ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->5.462437423415177e+244 : number, Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteralES6.ts, 17, 9)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>5.462437423415177e+244 : number obj2["5.462437423415177e+244"]; // boolean >obj2["5.462437423415177e+244"] : boolean ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) ->"5.462437423415177e+244" : string, Symbol(0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777, Decl(octalIntegerLiteralES6.ts, 17, 9)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } +>"5.462437423415177e+244" : string obj2["Infinity"]; // any >obj2["Infinity"] : any ->obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; }, Symbol(obj2, Decl(octalIntegerLiteralES6.ts, 13, 3)) +>obj2 : { 0O45436: string; a: number; b: number; oct2: number; 0o7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777: boolean; } >"Infinity" : string diff --git a/tests/baselines/reference/optionalAccessorsInInterface1.symbols b/tests/baselines/reference/optionalAccessorsInInterface1.symbols new file mode 100644 index 0000000000000..6c9c8ab142951 --- /dev/null +++ b/tests/baselines/reference/optionalAccessorsInInterface1.symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/optionalAccessorsInInterface1.ts === +interface MyPropertyDescriptor { +>MyPropertyDescriptor : Symbol(MyPropertyDescriptor, Decl(optionalAccessorsInInterface1.ts, 0, 0)) + + get? (): any; +>get : Symbol(get, Decl(optionalAccessorsInInterface1.ts, 0, 32)) + + set? (v: any): void; +>set : Symbol(set, Decl(optionalAccessorsInInterface1.ts, 1, 17)) +>v : Symbol(v, Decl(optionalAccessorsInInterface1.ts, 2, 10)) +} + +declare function defineMyProperty(o: any, p: string, attributes: MyPropertyDescriptor): any; +>defineMyProperty : Symbol(defineMyProperty, Decl(optionalAccessorsInInterface1.ts, 3, 1)) +>o : Symbol(o, Decl(optionalAccessorsInInterface1.ts, 5, 34)) +>p : Symbol(p, Decl(optionalAccessorsInInterface1.ts, 5, 41)) +>attributes : Symbol(attributes, Decl(optionalAccessorsInInterface1.ts, 5, 52)) +>MyPropertyDescriptor : Symbol(MyPropertyDescriptor, Decl(optionalAccessorsInInterface1.ts, 0, 0)) + +defineMyProperty({}, "name", { get: function () { return 5; } }); +>defineMyProperty : Symbol(defineMyProperty, Decl(optionalAccessorsInInterface1.ts, 3, 1)) +>get : Symbol(get, Decl(optionalAccessorsInInterface1.ts, 6, 30)) + +interface MyPropertyDescriptor2 { +>MyPropertyDescriptor2 : Symbol(MyPropertyDescriptor2, Decl(optionalAccessorsInInterface1.ts, 6, 65)) + + get?: () => any; +>get : Symbol(get, Decl(optionalAccessorsInInterface1.ts, 8, 33)) + + set?: (v: any) => void; +>set : Symbol(set, Decl(optionalAccessorsInInterface1.ts, 9, 20)) +>v : Symbol(v, Decl(optionalAccessorsInInterface1.ts, 10, 11)) +} + +declare function defineMyProperty2(o: any, p: string, attributes: MyPropertyDescriptor2): any; +>defineMyProperty2 : Symbol(defineMyProperty2, Decl(optionalAccessorsInInterface1.ts, 11, 1)) +>o : Symbol(o, Decl(optionalAccessorsInInterface1.ts, 13, 35)) +>p : Symbol(p, Decl(optionalAccessorsInInterface1.ts, 13, 42)) +>attributes : Symbol(attributes, Decl(optionalAccessorsInInterface1.ts, 13, 53)) +>MyPropertyDescriptor2 : Symbol(MyPropertyDescriptor2, Decl(optionalAccessorsInInterface1.ts, 6, 65)) + +defineMyProperty2({}, "name", { get: function () { return 5; } }); +>defineMyProperty2 : Symbol(defineMyProperty2, Decl(optionalAccessorsInInterface1.ts, 11, 1)) +>get : Symbol(get, Decl(optionalAccessorsInInterface1.ts, 14, 31)) + diff --git a/tests/baselines/reference/optionalAccessorsInInterface1.types b/tests/baselines/reference/optionalAccessorsInInterface1.types index c2190324a0ab4..d030849e55433 100644 --- a/tests/baselines/reference/optionalAccessorsInInterface1.types +++ b/tests/baselines/reference/optionalAccessorsInInterface1.types @@ -1,57 +1,57 @@ === tests/cases/compiler/optionalAccessorsInInterface1.ts === interface MyPropertyDescriptor { ->MyPropertyDescriptor : MyPropertyDescriptor, Symbol(MyPropertyDescriptor, Decl(optionalAccessorsInInterface1.ts, 0, 0)) +>MyPropertyDescriptor : MyPropertyDescriptor get? (): any; ->get : () => any, Symbol(get, Decl(optionalAccessorsInInterface1.ts, 0, 32)) +>get : () => any set? (v: any): void; ->set : (v: any) => void, Symbol(set, Decl(optionalAccessorsInInterface1.ts, 1, 17)) ->v : any, Symbol(v, Decl(optionalAccessorsInInterface1.ts, 2, 10)) +>set : (v: any) => void +>v : any } declare function defineMyProperty(o: any, p: string, attributes: MyPropertyDescriptor): any; ->defineMyProperty : (o: any, p: string, attributes: MyPropertyDescriptor) => any, Symbol(defineMyProperty, Decl(optionalAccessorsInInterface1.ts, 3, 1)) ->o : any, Symbol(o, Decl(optionalAccessorsInInterface1.ts, 5, 34)) ->p : string, Symbol(p, Decl(optionalAccessorsInInterface1.ts, 5, 41)) ->attributes : MyPropertyDescriptor, Symbol(attributes, Decl(optionalAccessorsInInterface1.ts, 5, 52)) ->MyPropertyDescriptor : MyPropertyDescriptor, Symbol(MyPropertyDescriptor, Decl(optionalAccessorsInInterface1.ts, 0, 0)) +>defineMyProperty : (o: any, p: string, attributes: MyPropertyDescriptor) => any +>o : any +>p : string +>attributes : MyPropertyDescriptor +>MyPropertyDescriptor : MyPropertyDescriptor defineMyProperty({}, "name", { get: function () { return 5; } }); >defineMyProperty({}, "name", { get: function () { return 5; } }) : any ->defineMyProperty : (o: any, p: string, attributes: MyPropertyDescriptor) => any, Symbol(defineMyProperty, Decl(optionalAccessorsInInterface1.ts, 3, 1)) +>defineMyProperty : (o: any, p: string, attributes: MyPropertyDescriptor) => any >{} : {} >"name" : string >{ get: function () { return 5; } } : { get: () => number; } ->get : () => number, Symbol(get, Decl(optionalAccessorsInInterface1.ts, 6, 30)) +>get : () => number >function () { return 5; } : () => number >5 : number interface MyPropertyDescriptor2 { ->MyPropertyDescriptor2 : MyPropertyDescriptor2, Symbol(MyPropertyDescriptor2, Decl(optionalAccessorsInInterface1.ts, 6, 65)) +>MyPropertyDescriptor2 : MyPropertyDescriptor2 get?: () => any; ->get : () => any, Symbol(get, Decl(optionalAccessorsInInterface1.ts, 8, 33)) +>get : () => any set?: (v: any) => void; ->set : (v: any) => void, Symbol(set, Decl(optionalAccessorsInInterface1.ts, 9, 20)) ->v : any, Symbol(v, Decl(optionalAccessorsInInterface1.ts, 10, 11)) +>set : (v: any) => void +>v : any } declare function defineMyProperty2(o: any, p: string, attributes: MyPropertyDescriptor2): any; ->defineMyProperty2 : (o: any, p: string, attributes: MyPropertyDescriptor2) => any, Symbol(defineMyProperty2, Decl(optionalAccessorsInInterface1.ts, 11, 1)) ->o : any, Symbol(o, Decl(optionalAccessorsInInterface1.ts, 13, 35)) ->p : string, Symbol(p, Decl(optionalAccessorsInInterface1.ts, 13, 42)) ->attributes : MyPropertyDescriptor2, Symbol(attributes, Decl(optionalAccessorsInInterface1.ts, 13, 53)) ->MyPropertyDescriptor2 : MyPropertyDescriptor2, Symbol(MyPropertyDescriptor2, Decl(optionalAccessorsInInterface1.ts, 6, 65)) +>defineMyProperty2 : (o: any, p: string, attributes: MyPropertyDescriptor2) => any +>o : any +>p : string +>attributes : MyPropertyDescriptor2 +>MyPropertyDescriptor2 : MyPropertyDescriptor2 defineMyProperty2({}, "name", { get: function () { return 5; } }); >defineMyProperty2({}, "name", { get: function () { return 5; } }) : any ->defineMyProperty2 : (o: any, p: string, attributes: MyPropertyDescriptor2) => any, Symbol(defineMyProperty2, Decl(optionalAccessorsInInterface1.ts, 11, 1)) +>defineMyProperty2 : (o: any, p: string, attributes: MyPropertyDescriptor2) => any >{} : {} >"name" : string >{ get: function () { return 5; } } : { get: () => number; } ->get : () => number, Symbol(get, Decl(optionalAccessorsInInterface1.ts, 14, 31)) +>get : () => number >function () { return 5; } : () => number >5 : number diff --git a/tests/baselines/reference/optionalConstructorArgInSuper.symbols b/tests/baselines/reference/optionalConstructorArgInSuper.symbols new file mode 100644 index 0000000000000..a912d8f62e3ce --- /dev/null +++ b/tests/baselines/reference/optionalConstructorArgInSuper.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/optionalConstructorArgInSuper.ts === +class Base { +>Base : Symbol(Base, Decl(optionalConstructorArgInSuper.ts, 0, 0)) + + constructor(opt?) { } +>opt : Symbol(opt, Decl(optionalConstructorArgInSuper.ts, 1, 16)) + + foo(other?) { } +>foo : Symbol(foo, Decl(optionalConstructorArgInSuper.ts, 1, 25)) +>other : Symbol(other, Decl(optionalConstructorArgInSuper.ts, 2, 8)) +} +class Derived extends Base { +>Derived : Symbol(Derived, Decl(optionalConstructorArgInSuper.ts, 3, 1)) +>Base : Symbol(Base, Decl(optionalConstructorArgInSuper.ts, 0, 0)) +} +var d = new Derived(); // bug caused an error here, couldn't select overload +>d : Symbol(d, Decl(optionalConstructorArgInSuper.ts, 6, 3)) +>Derived : Symbol(Derived, Decl(optionalConstructorArgInSuper.ts, 3, 1)) + +var d2: Derived; +>d2 : Symbol(d2, Decl(optionalConstructorArgInSuper.ts, 7, 3)) +>Derived : Symbol(Derived, Decl(optionalConstructorArgInSuper.ts, 3, 1)) + +d2.foo(); +>d2.foo : Symbol(Base.foo, Decl(optionalConstructorArgInSuper.ts, 1, 25)) +>d2 : Symbol(d2, Decl(optionalConstructorArgInSuper.ts, 7, 3)) +>foo : Symbol(Base.foo, Decl(optionalConstructorArgInSuper.ts, 1, 25)) + diff --git a/tests/baselines/reference/optionalConstructorArgInSuper.types b/tests/baselines/reference/optionalConstructorArgInSuper.types index 580299ba2854b..26d4fcb9abb74 100644 --- a/tests/baselines/reference/optionalConstructorArgInSuper.types +++ b/tests/baselines/reference/optionalConstructorArgInSuper.types @@ -1,30 +1,30 @@ === tests/cases/compiler/optionalConstructorArgInSuper.ts === class Base { ->Base : Base, Symbol(Base, Decl(optionalConstructorArgInSuper.ts, 0, 0)) +>Base : Base constructor(opt?) { } ->opt : any, Symbol(opt, Decl(optionalConstructorArgInSuper.ts, 1, 16)) +>opt : any foo(other?) { } ->foo : (other?: any) => void, Symbol(foo, Decl(optionalConstructorArgInSuper.ts, 1, 25)) ->other : any, Symbol(other, Decl(optionalConstructorArgInSuper.ts, 2, 8)) +>foo : (other?: any) => void +>other : any } class Derived extends Base { ->Derived : Derived, Symbol(Derived, Decl(optionalConstructorArgInSuper.ts, 3, 1)) ->Base : Base, Symbol(Base, Decl(optionalConstructorArgInSuper.ts, 0, 0)) +>Derived : Derived +>Base : Base } var d = new Derived(); // bug caused an error here, couldn't select overload ->d : Derived, Symbol(d, Decl(optionalConstructorArgInSuper.ts, 6, 3)) +>d : Derived >new Derived() : Derived ->Derived : typeof Derived, Symbol(Derived, Decl(optionalConstructorArgInSuper.ts, 3, 1)) +>Derived : typeof Derived var d2: Derived; ->d2 : Derived, Symbol(d2, Decl(optionalConstructorArgInSuper.ts, 7, 3)) ->Derived : Derived, Symbol(Derived, Decl(optionalConstructorArgInSuper.ts, 3, 1)) +>d2 : Derived +>Derived : Derived d2.foo(); >d2.foo() : void ->d2.foo : (other?: any) => void, Symbol(Base.foo, Decl(optionalConstructorArgInSuper.ts, 1, 25)) ->d2 : Derived, Symbol(d2, Decl(optionalConstructorArgInSuper.ts, 7, 3)) ->foo : (other?: any) => void, Symbol(Base.foo, Decl(optionalConstructorArgInSuper.ts, 1, 25)) +>d2.foo : (other?: any) => void +>d2 : Derived +>foo : (other?: any) => void diff --git a/tests/baselines/reference/optionalParamInOverride.symbols b/tests/baselines/reference/optionalParamInOverride.symbols new file mode 100644 index 0000000000000..b15802b729480 --- /dev/null +++ b/tests/baselines/reference/optionalParamInOverride.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/optionalParamInOverride.ts === +class Z { +>Z : Symbol(Z, Decl(optionalParamInOverride.ts, 0, 0)) + + public func(): void { } +>func : Symbol(func, Decl(optionalParamInOverride.ts, 0, 9)) +} +class Y extends Z { +>Y : Symbol(Y, Decl(optionalParamInOverride.ts, 2, 1)) +>Z : Symbol(Z, Decl(optionalParamInOverride.ts, 0, 0)) + + public func(value?: any): void { } +>func : Symbol(func, Decl(optionalParamInOverride.ts, 3, 19)) +>value : Symbol(value, Decl(optionalParamInOverride.ts, 4, 16)) +} + diff --git a/tests/baselines/reference/optionalParamInOverride.types b/tests/baselines/reference/optionalParamInOverride.types index baa0d6def9818..f4530dace61a3 100644 --- a/tests/baselines/reference/optionalParamInOverride.types +++ b/tests/baselines/reference/optionalParamInOverride.types @@ -1,16 +1,16 @@ === tests/cases/compiler/optionalParamInOverride.ts === class Z { ->Z : Z, Symbol(Z, Decl(optionalParamInOverride.ts, 0, 0)) +>Z : Z public func(): void { } ->func : () => void, Symbol(func, Decl(optionalParamInOverride.ts, 0, 9)) +>func : () => void } class Y extends Z { ->Y : Y, Symbol(Y, Decl(optionalParamInOverride.ts, 2, 1)) ->Z : Z, Symbol(Z, Decl(optionalParamInOverride.ts, 0, 0)) +>Y : Y +>Z : Z public func(value?: any): void { } ->func : (value?: any) => void, Symbol(func, Decl(optionalParamInOverride.ts, 3, 19)) ->value : any, Symbol(value, Decl(optionalParamInOverride.ts, 4, 16)) +>func : (value?: any) => void +>value : any } diff --git a/tests/baselines/reference/optionalParamReferencingOtherParams1.symbols b/tests/baselines/reference/optionalParamReferencingOtherParams1.symbols new file mode 100644 index 0000000000000..d6bb09556426a --- /dev/null +++ b/tests/baselines/reference/optionalParamReferencingOtherParams1.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/optionalParamReferencingOtherParams1.ts === +function strange(x: number, y = x * 1, z = x + y) { +>strange : Symbol(strange, Decl(optionalParamReferencingOtherParams1.ts, 0, 0)) +>x : Symbol(x, Decl(optionalParamReferencingOtherParams1.ts, 0, 17)) +>y : Symbol(y, Decl(optionalParamReferencingOtherParams1.ts, 0, 27)) +>x : Symbol(x, Decl(optionalParamReferencingOtherParams1.ts, 0, 17)) +>z : Symbol(z, Decl(optionalParamReferencingOtherParams1.ts, 0, 38)) +>x : Symbol(x, Decl(optionalParamReferencingOtherParams1.ts, 0, 17)) +>y : Symbol(y, Decl(optionalParamReferencingOtherParams1.ts, 0, 27)) + + return z; +>z : Symbol(z, Decl(optionalParamReferencingOtherParams1.ts, 0, 38)) +} diff --git a/tests/baselines/reference/optionalParamReferencingOtherParams1.types b/tests/baselines/reference/optionalParamReferencingOtherParams1.types index 4e14e0699990a..5a8963b8b33a6 100644 --- a/tests/baselines/reference/optionalParamReferencingOtherParams1.types +++ b/tests/baselines/reference/optionalParamReferencingOtherParams1.types @@ -1,16 +1,16 @@ === tests/cases/compiler/optionalParamReferencingOtherParams1.ts === function strange(x: number, y = x * 1, z = x + y) { ->strange : (x: number, y?: number, z?: number) => number, Symbol(strange, Decl(optionalParamReferencingOtherParams1.ts, 0, 0)) ->x : number, Symbol(x, Decl(optionalParamReferencingOtherParams1.ts, 0, 17)) ->y : number, Symbol(y, Decl(optionalParamReferencingOtherParams1.ts, 0, 27)) +>strange : (x: number, y?: number, z?: number) => number +>x : number +>y : number >x * 1 : number ->x : number, Symbol(x, Decl(optionalParamReferencingOtherParams1.ts, 0, 17)) +>x : number >1 : number ->z : number, Symbol(z, Decl(optionalParamReferencingOtherParams1.ts, 0, 38)) +>z : number >x + y : number ->x : number, Symbol(x, Decl(optionalParamReferencingOtherParams1.ts, 0, 17)) ->y : number, Symbol(y, Decl(optionalParamReferencingOtherParams1.ts, 0, 27)) +>x : number +>y : number return z; ->z : number, Symbol(z, Decl(optionalParamReferencingOtherParams1.ts, 0, 38)) +>z : number } diff --git a/tests/baselines/reference/out-flag.symbols b/tests/baselines/reference/out-flag.symbols new file mode 100644 index 0000000000000..8f7e559b8fae5 --- /dev/null +++ b/tests/baselines/reference/out-flag.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/out-flag.ts === +//// @out: bin\ + +// my class comments +class MyClass +>MyClass : Symbol(MyClass, Decl(out-flag.ts, 0, 0)) +{ + // my function comments + public Count(): number +>Count : Symbol(Count, Decl(out-flag.ts, 4, 1)) + { + return 42; + } + + public SetCount(value: number) +>SetCount : Symbol(SetCount, Decl(out-flag.ts, 9, 5)) +>value : Symbol(value, Decl(out-flag.ts, 11, 20)) + { + // + } +} diff --git a/tests/baselines/reference/out-flag.types b/tests/baselines/reference/out-flag.types index 5de55c7eee10c..b182e4e53d9bf 100644 --- a/tests/baselines/reference/out-flag.types +++ b/tests/baselines/reference/out-flag.types @@ -3,19 +3,19 @@ // my class comments class MyClass ->MyClass : MyClass, Symbol(MyClass, Decl(out-flag.ts, 0, 0)) +>MyClass : MyClass { // my function comments public Count(): number ->Count : () => number, Symbol(Count, Decl(out-flag.ts, 4, 1)) +>Count : () => number { return 42; >42 : number } public SetCount(value: number) ->SetCount : (value: number) => void, Symbol(SetCount, Decl(out-flag.ts, 9, 5)) ->value : number, Symbol(value, Decl(out-flag.ts, 11, 20)) +>SetCount : (value: number) => void +>value : number { // } diff --git a/tests/baselines/reference/overload2.symbols b/tests/baselines/reference/overload2.symbols new file mode 100644 index 0000000000000..1352ddb2a86f4 --- /dev/null +++ b/tests/baselines/reference/overload2.symbols @@ -0,0 +1,42 @@ +=== tests/cases/compiler/overload2.ts === +enum A { } +>A : Symbol(A, Decl(overload2.ts, 0, 0)) + +enum B { } +>B : Symbol(B, Decl(overload2.ts, 0, 10)) + +function foo(a: A); +>foo : Symbol(foo, Decl(overload2.ts, 1, 10), Decl(overload2.ts, 3, 19), Decl(overload2.ts, 4, 19)) +>a : Symbol(a, Decl(overload2.ts, 3, 13)) +>A : Symbol(A, Decl(overload2.ts, 0, 0)) + +function foo(b: B); +>foo : Symbol(foo, Decl(overload2.ts, 1, 10), Decl(overload2.ts, 3, 19), Decl(overload2.ts, 4, 19)) +>b : Symbol(b, Decl(overload2.ts, 4, 13)) +>B : Symbol(B, Decl(overload2.ts, 0, 10)) + +// should be ok +function foo(x: number) { +>foo : Symbol(foo, Decl(overload2.ts, 1, 10), Decl(overload2.ts, 3, 19), Decl(overload2.ts, 4, 19)) +>x : Symbol(x, Decl(overload2.ts, 6, 13)) +} + +class C { } +>C : Symbol(C, Decl(overload2.ts, 7, 1)) + +function foo1(a: A); +>foo1 : Symbol(foo1, Decl(overload2.ts, 9, 11), Decl(overload2.ts, 10, 20), Decl(overload2.ts, 11, 20)) +>a : Symbol(a, Decl(overload2.ts, 10, 14)) +>A : Symbol(A, Decl(overload2.ts, 0, 0)) + +function foo1(c: C); +>foo1 : Symbol(foo1, Decl(overload2.ts, 9, 11), Decl(overload2.ts, 10, 20), Decl(overload2.ts, 11, 20)) +>c : Symbol(c, Decl(overload2.ts, 11, 14)) +>C : Symbol(C, Decl(overload2.ts, 7, 1)) + +// should be ok +function foo1(x: number) { +>foo1 : Symbol(foo1, Decl(overload2.ts, 9, 11), Decl(overload2.ts, 10, 20), Decl(overload2.ts, 11, 20)) +>x : Symbol(x, Decl(overload2.ts, 13, 14)) +} + diff --git a/tests/baselines/reference/overload2.types b/tests/baselines/reference/overload2.types index b6faf198eba58..05a9533b2d202 100644 --- a/tests/baselines/reference/overload2.types +++ b/tests/baselines/reference/overload2.types @@ -1,42 +1,42 @@ === tests/cases/compiler/overload2.ts === enum A { } ->A : A, Symbol(A, Decl(overload2.ts, 0, 0)) +>A : A enum B { } ->B : B, Symbol(B, Decl(overload2.ts, 0, 10)) +>B : B function foo(a: A); ->foo : { (a: A): any; (b: B): any; }, Symbol(foo, Decl(overload2.ts, 1, 10), Decl(overload2.ts, 3, 19), Decl(overload2.ts, 4, 19)) ->a : A, Symbol(a, Decl(overload2.ts, 3, 13)) ->A : A, Symbol(A, Decl(overload2.ts, 0, 0)) +>foo : { (a: A): any; (b: B): any; } +>a : A +>A : A function foo(b: B); ->foo : { (a: A): any; (b: B): any; }, Symbol(foo, Decl(overload2.ts, 1, 10), Decl(overload2.ts, 3, 19), Decl(overload2.ts, 4, 19)) ->b : B, Symbol(b, Decl(overload2.ts, 4, 13)) ->B : B, Symbol(B, Decl(overload2.ts, 0, 10)) +>foo : { (a: A): any; (b: B): any; } +>b : B +>B : B // should be ok function foo(x: number) { ->foo : { (a: A): any; (b: B): any; }, Symbol(foo, Decl(overload2.ts, 1, 10), Decl(overload2.ts, 3, 19), Decl(overload2.ts, 4, 19)) ->x : number, Symbol(x, Decl(overload2.ts, 6, 13)) +>foo : { (a: A): any; (b: B): any; } +>x : number } class C { } ->C : C, Symbol(C, Decl(overload2.ts, 7, 1)) +>C : C function foo1(a: A); ->foo1 : { (a: A): any; (c: C): any; }, Symbol(foo1, Decl(overload2.ts, 9, 11), Decl(overload2.ts, 10, 20), Decl(overload2.ts, 11, 20)) ->a : A, Symbol(a, Decl(overload2.ts, 10, 14)) ->A : A, Symbol(A, Decl(overload2.ts, 0, 0)) +>foo1 : { (a: A): any; (c: C): any; } +>a : A +>A : A function foo1(c: C); ->foo1 : { (a: A): any; (c: C): any; }, Symbol(foo1, Decl(overload2.ts, 9, 11), Decl(overload2.ts, 10, 20), Decl(overload2.ts, 11, 20)) ->c : C, Symbol(c, Decl(overload2.ts, 11, 14)) ->C : C, Symbol(C, Decl(overload2.ts, 7, 1)) +>foo1 : { (a: A): any; (c: C): any; } +>c : C +>C : C // should be ok function foo1(x: number) { ->foo1 : { (a: A): any; (c: C): any; }, Symbol(foo1, Decl(overload2.ts, 9, 11), Decl(overload2.ts, 10, 20), Decl(overload2.ts, 11, 20)) ->x : number, Symbol(x, Decl(overload2.ts, 13, 14)) +>foo1 : { (a: A): any; (c: C): any; } +>x : number } diff --git a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.symbols b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.symbols new file mode 100644 index 0000000000000..65f64fa891552 --- /dev/null +++ b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.symbols @@ -0,0 +1,115 @@ +=== tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries.ts === +interface Opt1 { +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) + + p?: any; +>p : Symbol(p, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 16)) +} +interface Opt2 { +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) + + q?: any; +>q : Symbol(q, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 3, 16)) +} +interface Opt3 { +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) + + r?: any; +>r : Symbol(r, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 6, 16)) +} +interface Opt4 { +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) + + s?: any; +>s : Symbol(s, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 9, 16)) +} +interface A { +>A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) + + a(o: Opt1): Opt1; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 6)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) + + a(o: Opt2): Opt2; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 14, 6)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) + + (o: Opt1): Opt1; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 15, 5)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) + + (o: Opt2): Opt2; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 16, 5)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) + + new (o: Opt1): Opt1; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 17, 9)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) + + new (o: Opt2): Opt2; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 18, 9)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +} +interface A { +>A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) + + a(o: Opt3): Opt3; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 6)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) + + a(o: Opt4): Opt4; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 22, 6)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) + + (o: Opt3): Opt3; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 23, 5)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) + + (o: Opt4): Opt4; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 24, 5)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) + + new (o: Opt3): Opt3; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 25, 9)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) + + new (o: Opt4): Opt4; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 26, 9)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +} + +var a: A; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) +>A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) + +// These should all be Opt3 +var a1 = a.a({}); +>a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) +>a.a : Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) +>a : Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) + +var a1 = a({}); +>a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) + +var a1 = new a({}); +>a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) + diff --git a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types index bafe70e1731d4..311cf971b6188 100644 --- a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types +++ b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries.types @@ -1,121 +1,121 @@ === tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries.ts === interface Opt1 { ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>Opt1 : Opt1 p?: any; ->p : any, Symbol(p, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 16)) +>p : any } interface Opt2 { ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>Opt2 : Opt2 q?: any; ->q : any, Symbol(q, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 3, 16)) +>q : any } interface Opt3 { ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>Opt3 : Opt3 r?: any; ->r : any, Symbol(r, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 6, 16)) +>r : any } interface Opt4 { ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>Opt4 : Opt4 s?: any; ->s : any, Symbol(s, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 9, 16)) +>s : any } interface A { ->A : A, Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) +>A : A a(o: Opt1): Opt1; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) ->o : Opt1, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 6)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt1 +>Opt1 : Opt1 +>Opt1 : Opt1 a(o: Opt2): Opt2; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) ->o : Opt2, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 14, 6)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt2 +>Opt2 : Opt2 +>Opt2 : Opt2 (o: Opt1): Opt1; ->o : Opt1, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 15, 5)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>o : Opt1 +>Opt1 : Opt1 +>Opt1 : Opt1 (o: Opt2): Opt2; ->o : Opt2, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 16, 5)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>o : Opt2 +>Opt2 : Opt2 +>Opt2 : Opt2 new (o: Opt1): Opt1; ->o : Opt1, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 17, 9)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) +>o : Opt1 +>Opt1 : Opt1 +>Opt1 : Opt1 new (o: Opt2): Opt2; ->o : Opt2, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 18, 9)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) +>o : Opt2 +>Opt2 : Opt2 +>Opt2 : Opt2 } interface A { ->A : A, Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) +>A : A a(o: Opt3): Opt3; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) ->o : Opt3, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 6)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt3 +>Opt3 : Opt3 +>Opt3 : Opt3 a(o: Opt4): Opt4; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) ->o : Opt4, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 22, 6)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt4 +>Opt4 : Opt4 +>Opt4 : Opt4 (o: Opt3): Opt3; ->o : Opt3, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 23, 5)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>o : Opt3 +>Opt3 : Opt3 +>Opt3 : Opt3 (o: Opt4): Opt4; ->o : Opt4, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 24, 5)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>o : Opt4 +>Opt4 : Opt4 +>Opt4 : Opt4 new (o: Opt3): Opt3; ->o : Opt3, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 25, 9)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) +>o : Opt3 +>Opt3 : Opt3 +>Opt3 : Opt3 new (o: Opt4): Opt4; ->o : Opt4, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 26, 9)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) +>o : Opt4 +>Opt4 : Opt4 +>Opt4 : Opt4 } var a: A; ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) ->A : A, Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) +>a : A +>A : A // These should all be Opt3 var a1 = a.a({}); ->a1 : Opt3, Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) +>a1 : Opt3 >a.a({}) : Opt3 ->a.a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) +>a.a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>a : A +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } >{} : {} var a1 = a({}); ->a1 : Opt3, Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) +>a1 : Opt3 >a({}) : Opt3 ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) +>a : A >{} : {} var a1 = new a({}); ->a1 : Opt3, Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) +>a1 : Opt3 >new a({}) : Opt3 ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) +>a : A >{} : {} diff --git a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.symbols b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.symbols new file mode 100644 index 0000000000000..534475bcc30ed --- /dev/null +++ b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.symbols @@ -0,0 +1,118 @@ +=== tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries_file0.ts === +interface Opt1 { +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) + + p?: any; +>p : Symbol(p, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 16)) +} +interface Opt2 { +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) + + q?: any; +>q : Symbol(q, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 3, 16)) +} +interface Opt3 { +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) + + r?: any; +>r : Symbol(r, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 6, 16)) +} +interface Opt4 { +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) + + s?: any; +>s : Symbol(s, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 9, 16)) +} + +interface A { +>A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 0)) + + a(o: Opt1): Opt1; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 6)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) + + a(o: Opt2): Opt2; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 15, 6)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) + + (o: Opt1): Opt1; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 16, 5)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) + + (o: Opt2): Opt2; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 17, 5)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) + + new (o: Opt1): Opt1; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 18, 9)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) + + new (o: Opt2): Opt2; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 19, 9)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +} + +=== tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries_file1.ts === +interface A { +>A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 0)) + + a(o: Opt3): Opt3; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 6)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) + + a(o: Opt4): Opt4; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 2, 6)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) + + (o: Opt3): Opt3; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 3, 5)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) + + (o: Opt4): Opt4; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 4, 5)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) + + new (o: Opt3): Opt3; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 5, 9)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) + + new (o: Opt4): Opt4; +>o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 6, 9)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +} + +var a: A; +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) +>A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 0)) + +// These should all be Opt3 +var a1 = a.a({}); +>a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 11, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 12, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 13, 3)) +>a.a : Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) +>a : Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) + +var a1 = a({}); +>a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 11, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 12, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 13, 3)) +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) + +var a1 = new a({}); +>a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 11, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 12, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 13, 3)) +>a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) + diff --git a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types index 6ec3486d03b34..e67ff2f8de6a4 100644 --- a/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types +++ b/tests/baselines/reference/overloadBindingAcrossDeclarationBoundaries2.types @@ -1,124 +1,124 @@ === tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries_file0.ts === interface Opt1 { ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>Opt1 : Opt1 p?: any; ->p : any, Symbol(p, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 16)) +>p : any } interface Opt2 { ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>Opt2 : Opt2 q?: any; ->q : any, Symbol(q, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 3, 16)) +>q : any } interface Opt3 { ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>Opt3 : Opt3 r?: any; ->r : any, Symbol(r, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 6, 16)) +>r : any } interface Opt4 { ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>Opt4 : Opt4 s?: any; ->s : any, Symbol(s, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 9, 16)) +>s : any } interface A { ->A : A, Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 0)) +>A : A a(o: Opt1): Opt1; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) ->o : Opt1, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 6)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt1 +>Opt1 : Opt1 +>Opt1 : Opt1 a(o: Opt2): Opt2; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) ->o : Opt2, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 15, 6)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt2 +>Opt2 : Opt2 +>Opt2 : Opt2 (o: Opt1): Opt1; ->o : Opt1, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 16, 5)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>o : Opt1 +>Opt1 : Opt1 +>Opt1 : Opt1 (o: Opt2): Opt2; ->o : Opt2, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 17, 5)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>o : Opt2 +>Opt2 : Opt2 +>Opt2 : Opt2 new (o: Opt1): Opt1; ->o : Opt1, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 18, 9)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) ->Opt1 : Opt1, Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 0, 0)) +>o : Opt1 +>Opt1 : Opt1 +>Opt1 : Opt1 new (o: Opt2): Opt2; ->o : Opt2, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 19, 9)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) ->Opt2 : Opt2, Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 2, 1)) +>o : Opt2 +>Opt2 : Opt2 +>Opt2 : Opt2 } === tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries_file1.ts === interface A { ->A : A, Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 0)) +>A : A a(o: Opt3): Opt3; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) ->o : Opt3, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 6)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt3 +>Opt3 : Opt3 +>Opt3 : Opt3 a(o: Opt4): Opt4; ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) ->o : Opt4, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 2, 6)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>o : Opt4 +>Opt4 : Opt4 +>Opt4 : Opt4 (o: Opt3): Opt3; ->o : Opt3, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 3, 5)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>o : Opt3 +>Opt3 : Opt3 +>Opt3 : Opt3 (o: Opt4): Opt4; ->o : Opt4, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 4, 5)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>o : Opt4 +>Opt4 : Opt4 +>Opt4 : Opt4 new (o: Opt3): Opt3; ->o : Opt3, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 5, 9)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) ->Opt3 : Opt3, Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 5, 1)) +>o : Opt3 +>Opt3 : Opt3 +>Opt3 : Opt3 new (o: Opt4): Opt4; ->o : Opt4, Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 6, 9)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) ->Opt4 : Opt4, Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 8, 1)) +>o : Opt4 +>Opt4 : Opt4 +>Opt4 : Opt4 } var a: A; ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) ->A : A, Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 0)) +>a : A +>A : A // These should all be Opt3 var a1 = a.a({}); ->a1 : Opt3, Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 11, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 12, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 13, 3)) +>a1 : Opt3 >a.a({}) : Opt3 ->a.a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) ->a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; }, Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 13, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file0.ts, 14, 21), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 0, 13), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 1, 21)) +>a.a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } +>a : A +>a : { (o: Opt1): Opt1; (o: Opt2): Opt2; (o: Opt3): Opt3; (o: Opt4): Opt4; } >{} : {} var a1 = a({}); ->a1 : Opt3, Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 11, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 12, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 13, 3)) +>a1 : Opt3 >a({}) : Opt3 ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) +>a : A >{} : {} var a1 = new a({}); ->a1 : Opt3, Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 11, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 12, 3), Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 13, 3)) +>a1 : Opt3 >new a({}) : Opt3 ->a : A, Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries_file1.ts, 9, 3)) +>a : A >{} : {} diff --git a/tests/baselines/reference/overloadCallTest.symbols b/tests/baselines/reference/overloadCallTest.symbols new file mode 100644 index 0000000000000..ae051e798555f --- /dev/null +++ b/tests/baselines/reference/overloadCallTest.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/overloadCallTest.ts === +class foo { +>foo : Symbol(foo, Decl(overloadCallTest.ts, 0, 0)) + + constructor() { + function bar(): string; +>bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) + + function bar(s:string); +>bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) +>s : Symbol(s, Decl(overloadCallTest.ts, 3, 21)) + + function bar(foo?: string) { return "foo" }; +>bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) +>foo : Symbol(foo, Decl(overloadCallTest.ts, 4, 21)) + + var test = bar("test"); +>test : Symbol(test, Decl(overloadCallTest.ts, 6, 11)) +>bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) + + var goo = bar(); +>goo : Symbol(goo, Decl(overloadCallTest.ts, 7, 11)) +>bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) + + goo = bar("test"); +>goo : Symbol(goo, Decl(overloadCallTest.ts, 7, 11)) +>bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) + } + +} + + diff --git a/tests/baselines/reference/overloadCallTest.types b/tests/baselines/reference/overloadCallTest.types index 0a58a3c4fb35f..bd71931197560 100644 --- a/tests/baselines/reference/overloadCallTest.types +++ b/tests/baselines/reference/overloadCallTest.types @@ -1,36 +1,36 @@ === tests/cases/compiler/overloadCallTest.ts === class foo { ->foo : foo, Symbol(foo, Decl(overloadCallTest.ts, 0, 0)) +>foo : foo constructor() { function bar(): string; ->bar : { (): string; (s: string): any; }, Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) +>bar : { (): string; (s: string): any; } function bar(s:string); ->bar : { (): string; (s: string): any; }, Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) ->s : string, Symbol(s, Decl(overloadCallTest.ts, 3, 21)) +>bar : { (): string; (s: string): any; } +>s : string function bar(foo?: string) { return "foo" }; ->bar : { (): string; (s: string): any; }, Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) ->foo : string, Symbol(foo, Decl(overloadCallTest.ts, 4, 21)) +>bar : { (): string; (s: string): any; } +>foo : string >"foo" : string var test = bar("test"); ->test : any, Symbol(test, Decl(overloadCallTest.ts, 6, 11)) +>test : any >bar("test") : any ->bar : { (): string; (s: string): any; }, Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) +>bar : { (): string; (s: string): any; } >"test" : string var goo = bar(); ->goo : string, Symbol(goo, Decl(overloadCallTest.ts, 7, 11)) +>goo : string >bar() : string ->bar : { (): string; (s: string): any; }, Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) +>bar : { (): string; (s: string): any; } goo = bar("test"); >goo = bar("test") : any ->goo : string, Symbol(goo, Decl(overloadCallTest.ts, 7, 11)) +>goo : string >bar("test") : any ->bar : { (): string; (s: string): any; }, Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) +>bar : { (): string; (s: string): any; } >"test" : string } diff --git a/tests/baselines/reference/overloadCrash.symbols b/tests/baselines/reference/overloadCrash.symbols new file mode 100644 index 0000000000000..791411540b333 --- /dev/null +++ b/tests/baselines/reference/overloadCrash.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/overloadCrash.ts === +interface I1 {a:number; b:number;}; +>I1 : Symbol(I1, Decl(overloadCrash.ts, 0, 0)) +>a : Symbol(a, Decl(overloadCrash.ts, 0, 14)) +>b : Symbol(b, Decl(overloadCrash.ts, 0, 23)) + +interface I2 {c:number; d:number;}; +>I2 : Symbol(I2, Decl(overloadCrash.ts, 0, 35)) +>c : Symbol(c, Decl(overloadCrash.ts, 1, 14)) +>d : Symbol(d, Decl(overloadCrash.ts, 1, 23)) + +interface I3 {a:number; b:number; c:number; d:number;}; +>I3 : Symbol(I3, Decl(overloadCrash.ts, 1, 35)) +>a : Symbol(a, Decl(overloadCrash.ts, 2, 14)) +>b : Symbol(b, Decl(overloadCrash.ts, 2, 23)) +>c : Symbol(c, Decl(overloadCrash.ts, 2, 33)) +>d : Symbol(d, Decl(overloadCrash.ts, 2, 43)) + +declare function foo(...n:I1[]); +>foo : Symbol(foo, Decl(overloadCrash.ts, 2, 55), Decl(overloadCrash.ts, 4, 32)) +>n : Symbol(n, Decl(overloadCrash.ts, 4, 21)) +>I1 : Symbol(I1, Decl(overloadCrash.ts, 0, 0)) + +declare function foo(n1:I2, n3:I2); +>foo : Symbol(foo, Decl(overloadCrash.ts, 2, 55), Decl(overloadCrash.ts, 4, 32)) +>n1 : Symbol(n1, Decl(overloadCrash.ts, 5, 21)) +>I2 : Symbol(I2, Decl(overloadCrash.ts, 0, 35)) +>n3 : Symbol(n3, Decl(overloadCrash.ts, 5, 27)) +>I2 : Symbol(I2, Decl(overloadCrash.ts, 0, 35)) + +var i3:I3; +>i3 : Symbol(i3, Decl(overloadCrash.ts, 7, 3)) +>I3 : Symbol(I3, Decl(overloadCrash.ts, 1, 35)) + +foo(i3, i3); // should not crash the compiler :) +>foo : Symbol(foo, Decl(overloadCrash.ts, 2, 55), Decl(overloadCrash.ts, 4, 32)) +>i3 : Symbol(i3, Decl(overloadCrash.ts, 7, 3)) +>i3 : Symbol(i3, Decl(overloadCrash.ts, 7, 3)) + diff --git a/tests/baselines/reference/overloadCrash.types b/tests/baselines/reference/overloadCrash.types index cef14e3b45365..88c2b8c79c0a8 100644 --- a/tests/baselines/reference/overloadCrash.types +++ b/tests/baselines/reference/overloadCrash.types @@ -1,40 +1,40 @@ === tests/cases/compiler/overloadCrash.ts === interface I1 {a:number; b:number;}; ->I1 : I1, Symbol(I1, Decl(overloadCrash.ts, 0, 0)) ->a : number, Symbol(a, Decl(overloadCrash.ts, 0, 14)) ->b : number, Symbol(b, Decl(overloadCrash.ts, 0, 23)) +>I1 : I1 +>a : number +>b : number interface I2 {c:number; d:number;}; ->I2 : I2, Symbol(I2, Decl(overloadCrash.ts, 0, 35)) ->c : number, Symbol(c, Decl(overloadCrash.ts, 1, 14)) ->d : number, Symbol(d, Decl(overloadCrash.ts, 1, 23)) +>I2 : I2 +>c : number +>d : number interface I3 {a:number; b:number; c:number; d:number;}; ->I3 : I3, Symbol(I3, Decl(overloadCrash.ts, 1, 35)) ->a : number, Symbol(a, Decl(overloadCrash.ts, 2, 14)) ->b : number, Symbol(b, Decl(overloadCrash.ts, 2, 23)) ->c : number, Symbol(c, Decl(overloadCrash.ts, 2, 33)) ->d : number, Symbol(d, Decl(overloadCrash.ts, 2, 43)) +>I3 : I3 +>a : number +>b : number +>c : number +>d : number declare function foo(...n:I1[]); ->foo : { (...n: I1[]): any; (n1: I2, n3: I2): any; }, Symbol(foo, Decl(overloadCrash.ts, 2, 55), Decl(overloadCrash.ts, 4, 32)) ->n : I1[], Symbol(n, Decl(overloadCrash.ts, 4, 21)) ->I1 : I1, Symbol(I1, Decl(overloadCrash.ts, 0, 0)) +>foo : { (...n: I1[]): any; (n1: I2, n3: I2): any; } +>n : I1[] +>I1 : I1 declare function foo(n1:I2, n3:I2); ->foo : { (...n: I1[]): any; (n1: I2, n3: I2): any; }, Symbol(foo, Decl(overloadCrash.ts, 2, 55), Decl(overloadCrash.ts, 4, 32)) ->n1 : I2, Symbol(n1, Decl(overloadCrash.ts, 5, 21)) ->I2 : I2, Symbol(I2, Decl(overloadCrash.ts, 0, 35)) ->n3 : I2, Symbol(n3, Decl(overloadCrash.ts, 5, 27)) ->I2 : I2, Symbol(I2, Decl(overloadCrash.ts, 0, 35)) +>foo : { (...n: I1[]): any; (n1: I2, n3: I2): any; } +>n1 : I2 +>I2 : I2 +>n3 : I2 +>I2 : I2 var i3:I3; ->i3 : I3, Symbol(i3, Decl(overloadCrash.ts, 7, 3)) ->I3 : I3, Symbol(I3, Decl(overloadCrash.ts, 1, 35)) +>i3 : I3 +>I3 : I3 foo(i3, i3); // should not crash the compiler :) >foo(i3, i3) : any ->foo : { (...n: I1[]): any; (n1: I2, n3: I2): any; }, Symbol(foo, Decl(overloadCrash.ts, 2, 55), Decl(overloadCrash.ts, 4, 32)) ->i3 : I3, Symbol(i3, Decl(overloadCrash.ts, 7, 3)) ->i3 : I3, Symbol(i3, Decl(overloadCrash.ts, 7, 3)) +>foo : { (...n: I1[]): any; (n1: I2, n3: I2): any; } +>i3 : I3 +>i3 : I3 diff --git a/tests/baselines/reference/overloadEquivalenceWithStatics.symbols b/tests/baselines/reference/overloadEquivalenceWithStatics.symbols new file mode 100644 index 0000000000000..dc2e5a717a657 --- /dev/null +++ b/tests/baselines/reference/overloadEquivalenceWithStatics.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/overloadEquivalenceWithStatics.ts === +class A1 { +>A1 : Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) +>T : Symbol(T, Decl(overloadEquivalenceWithStatics.ts, 0, 9)) + +static B(v: A1): A1; // 1 +>B : Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) +>v : Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 1, 12)) +>A1 : Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) +>A1 : Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) + +static B(v: S): A1; // 2 : Error Duplicate signature +>B : Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) +>v : Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 2, 12)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) +>A1 : Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) + +static B(v: any): A1 { +>B : Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 3, 9)) +>v : Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 3, 12)) +>A1 : Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) +>S : Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 3, 9)) + +return null; +} +} + diff --git a/tests/baselines/reference/overloadEquivalenceWithStatics.types b/tests/baselines/reference/overloadEquivalenceWithStatics.types index 478f19690eb92..1f59b64572a9b 100644 --- a/tests/baselines/reference/overloadEquivalenceWithStatics.types +++ b/tests/baselines/reference/overloadEquivalenceWithStatics.types @@ -1,31 +1,31 @@ === tests/cases/compiler/overloadEquivalenceWithStatics.ts === class A1 { ->A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) ->T : T, Symbol(T, Decl(overloadEquivalenceWithStatics.ts, 0, 9)) +>A1 : A1 +>T : T static B(v: A1): A1; // 1 ->B : { (v: A1): A1; (v: S): A1; }, Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) ->v : A1, Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 1, 12)) ->A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) ->A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 1, 9)) +>B : { (v: A1): A1; (v: S): A1; } +>S : S +>v : A1 +>A1 : A1 +>S : S +>A1 : A1 +>S : S static B(v: S): A1; // 2 : Error Duplicate signature ->B : { (v: A1): A1; (v: S): A1; }, Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) ->v : S, Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 2, 12)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) ->A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 2, 9)) +>B : { (v: A1): A1; (v: S): A1; } +>S : S +>v : S +>S : S +>A1 : A1 +>S : S static B(v: any): A1 { ->B : { (v: A1): A1; (v: S): A1; }, Symbol(A1.B, Decl(overloadEquivalenceWithStatics.ts, 0, 13), Decl(overloadEquivalenceWithStatics.ts, 1, 29), Decl(overloadEquivalenceWithStatics.ts, 2, 25)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 3, 9)) ->v : any, Symbol(v, Decl(overloadEquivalenceWithStatics.ts, 3, 12)) ->A1 : A1, Symbol(A1, Decl(overloadEquivalenceWithStatics.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadEquivalenceWithStatics.ts, 3, 9)) +>B : { (v: A1): A1; (v: S): A1; } +>S : S +>v : any +>A1 : A1 +>S : S return null; >null : null diff --git a/tests/baselines/reference/overloadGenericFunctionWithRestArgs.symbols b/tests/baselines/reference/overloadGenericFunctionWithRestArgs.symbols new file mode 100644 index 0000000000000..52ee82e5d3c6a --- /dev/null +++ b/tests/baselines/reference/overloadGenericFunctionWithRestArgs.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/overloadGenericFunctionWithRestArgs.ts === +class B{ +>B : Symbol(B, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 0)) +>V : Symbol(V, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 8)) + + private id: V; +>id : Symbol(id, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 11)) +>V : Symbol(V, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 8)) +} +class A{ +>A : Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) +>U : Symbol(U, Decl(overloadGenericFunctionWithRestArgs.ts, 3, 8)) + + GetEnumerator: () => B; +>GetEnumerator : Symbol(GetEnumerator, Decl(overloadGenericFunctionWithRestArgs.ts, 3, 11)) +>B : Symbol(B, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 0)) +>U : Symbol(U, Decl(overloadGenericFunctionWithRestArgs.ts, 3, 8)) +} +function Choice(...v_args: T[]): A; +>Choice : Symbol(Choice, Decl(overloadGenericFunctionWithRestArgs.ts, 5, 1), Decl(overloadGenericFunctionWithRestArgs.ts, 6, 41)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 16)) +>v_args : Symbol(v_args, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 19)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 16)) +>A : Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 16)) + +function Choice(...v_args: T[]): A { +>Choice : Symbol(Choice, Decl(overloadGenericFunctionWithRestArgs.ts, 5, 1), Decl(overloadGenericFunctionWithRestArgs.ts, 6, 41)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) +>v_args : Symbol(v_args, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 19)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) +>A : Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) + + return new A(); +>A : Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) +>T : Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) +} diff --git a/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types b/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types index c4d5297984ec1..17ecdeac50321 100644 --- a/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types +++ b/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types @@ -1,39 +1,39 @@ === tests/cases/compiler/overloadGenericFunctionWithRestArgs.ts === class B{ ->B : B, Symbol(B, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 0)) ->V : V, Symbol(V, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 8)) +>B : B +>V : V private id: V; ->id : V, Symbol(id, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 11)) ->V : V, Symbol(V, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 8)) +>id : V +>V : V } class A{ ->A : A, Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) ->U : U, Symbol(U, Decl(overloadGenericFunctionWithRestArgs.ts, 3, 8)) +>A : A +>U : U GetEnumerator: () => B; ->GetEnumerator : () => B, Symbol(GetEnumerator, Decl(overloadGenericFunctionWithRestArgs.ts, 3, 11)) ->B : B, Symbol(B, Decl(overloadGenericFunctionWithRestArgs.ts, 0, 0)) ->U : U, Symbol(U, Decl(overloadGenericFunctionWithRestArgs.ts, 3, 8)) +>GetEnumerator : () => B +>B : B +>U : U } function Choice(...v_args: T[]): A; ->Choice : (...v_args: T[]) => A, Symbol(Choice, Decl(overloadGenericFunctionWithRestArgs.ts, 5, 1), Decl(overloadGenericFunctionWithRestArgs.ts, 6, 41)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 16)) ->v_args : T[], Symbol(v_args, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 19)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 16)) ->A : A, Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 6, 16)) +>Choice : (...v_args: T[]) => A +>T : T +>v_args : T[] +>T : T +>A : A +>T : T function Choice(...v_args: T[]): A { ->Choice : (...v_args: T[]) => A, Symbol(Choice, Decl(overloadGenericFunctionWithRestArgs.ts, 5, 1), Decl(overloadGenericFunctionWithRestArgs.ts, 6, 41)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) ->v_args : T[], Symbol(v_args, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 19)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) ->A : A, Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) +>Choice : (...v_args: T[]) => A +>T : T +>v_args : T[] +>T : T +>A : A +>T : T return new A(); >new A() : A ->A : typeof A, Symbol(A, Decl(overloadGenericFunctionWithRestArgs.ts, 2, 1)) ->T : T, Symbol(T, Decl(overloadGenericFunctionWithRestArgs.ts, 7, 16)) +>A : typeof A +>T : T } diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks1.symbols b/tests/baselines/reference/overloadOnConstConstraintChecks1.symbols new file mode 100644 index 0000000000000..2eedf3254a27f --- /dev/null +++ b/tests/baselines/reference/overloadOnConstConstraintChecks1.symbols @@ -0,0 +1,78 @@ +=== tests/cases/compiler/overloadOnConstConstraintChecks1.ts === +class Base { foo() { } } +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks1.ts, 0, 12)) + +class Derived1 extends Base { bar() { } } +>Derived1 : Symbol(Derived1, Decl(overloadOnConstConstraintChecks1.ts, 0, 24)) +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>bar : Symbol(bar, Decl(overloadOnConstConstraintChecks1.ts, 1, 29)) + +class Derived2 extends Base { baz() { } } +>Derived2 : Symbol(Derived2, Decl(overloadOnConstConstraintChecks1.ts, 1, 41)) +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>baz : Symbol(baz, Decl(overloadOnConstConstraintChecks1.ts, 2, 29)) + +class Derived3 extends Base { biz() { } } +>Derived3 : Symbol(Derived3, Decl(overloadOnConstConstraintChecks1.ts, 2, 41)) +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>biz : Symbol(biz, Decl(overloadOnConstConstraintChecks1.ts, 3, 29)) + +interface MyDoc { // Document +>MyDoc : Symbol(MyDoc, Decl(overloadOnConstConstraintChecks1.ts, 3, 41)) + + createElement(tagName: string): Base; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 6, 18)) +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) + + createElement(tagName: 'canvas'): Derived1; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 7, 18)) +>Derived1 : Symbol(Derived1, Decl(overloadOnConstConstraintChecks1.ts, 0, 24)) + + createElement(tagName: 'div'): Derived2; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 8, 18)) +>Derived2 : Symbol(Derived2, Decl(overloadOnConstConstraintChecks1.ts, 1, 41)) + + createElement(tagName: 'span'): Derived3; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 9, 18)) +>Derived3 : Symbol(Derived3, Decl(overloadOnConstConstraintChecks1.ts, 2, 41)) + + // + 100 more +} + +class D implements MyDoc { +>D : Symbol(D, Decl(overloadOnConstConstraintChecks1.ts, 11, 1)) +>MyDoc : Symbol(MyDoc, Decl(overloadOnConstConstraintChecks1.ts, 3, 41)) + + createElement(tagName:string): Base; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 14, 18)) +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) + + createElement(tagName: 'canvas'): Derived1; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 15, 18)) +>Derived1 : Symbol(Derived1, Decl(overloadOnConstConstraintChecks1.ts, 0, 24)) + + createElement(tagName: 'div'): Derived2; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 16, 18)) +>Derived2 : Symbol(Derived2, Decl(overloadOnConstConstraintChecks1.ts, 1, 41)) + + createElement(tagName: 'span'): Derived3; +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 17, 18)) +>Derived3 : Symbol(Derived3, Decl(overloadOnConstConstraintChecks1.ts, 2, 41)) + + createElement(tagName:any): Base { +>createElement : Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) +>tagName : Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 18, 18)) +>Base : Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) + + return null; + } +} diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks1.types b/tests/baselines/reference/overloadOnConstConstraintChecks1.types index 1360780e77a69..cc561eb6e21c6 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks1.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks1.types @@ -1,77 +1,77 @@ === tests/cases/compiler/overloadOnConstConstraintChecks1.ts === class Base { foo() { } } ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) ->foo : () => void, Symbol(foo, Decl(overloadOnConstConstraintChecks1.ts, 0, 12)) +>Base : Base +>foo : () => void class Derived1 extends Base { bar() { } } ->Derived1 : Derived1, Symbol(Derived1, Decl(overloadOnConstConstraintChecks1.ts, 0, 24)) ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) ->bar : () => void, Symbol(bar, Decl(overloadOnConstConstraintChecks1.ts, 1, 29)) +>Derived1 : Derived1 +>Base : Base +>bar : () => void class Derived2 extends Base { baz() { } } ->Derived2 : Derived2, Symbol(Derived2, Decl(overloadOnConstConstraintChecks1.ts, 1, 41)) ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) ->baz : () => void, Symbol(baz, Decl(overloadOnConstConstraintChecks1.ts, 2, 29)) +>Derived2 : Derived2 +>Base : Base +>baz : () => void class Derived3 extends Base { biz() { } } ->Derived3 : Derived3, Symbol(Derived3, Decl(overloadOnConstConstraintChecks1.ts, 2, 41)) ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) ->biz : () => void, Symbol(biz, Decl(overloadOnConstConstraintChecks1.ts, 3, 29)) +>Derived3 : Derived3 +>Base : Base +>biz : () => void interface MyDoc { // Document ->MyDoc : MyDoc, Symbol(MyDoc, Decl(overloadOnConstConstraintChecks1.ts, 3, 41)) +>MyDoc : MyDoc createElement(tagName: string): Base; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) ->tagName : string, Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 6, 18)) ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : string +>Base : Base createElement(tagName: 'canvas'): Derived1; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) ->tagName : 'canvas', Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 7, 18)) ->Derived1 : Derived1, Symbol(Derived1, Decl(overloadOnConstConstraintChecks1.ts, 0, 24)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : 'canvas' +>Derived1 : Derived1 createElement(tagName: 'div'): Derived2; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) ->tagName : 'div', Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 8, 18)) ->Derived2 : Derived2, Symbol(Derived2, Decl(overloadOnConstConstraintChecks1.ts, 1, 41)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : 'div' +>Derived2 : Derived2 createElement(tagName: 'span'): Derived3; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 5, 17), Decl(overloadOnConstConstraintChecks1.ts, 6, 41), Decl(overloadOnConstConstraintChecks1.ts, 7, 47), Decl(overloadOnConstConstraintChecks1.ts, 8, 44)) ->tagName : 'span', Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 9, 18)) ->Derived3 : Derived3, Symbol(Derived3, Decl(overloadOnConstConstraintChecks1.ts, 2, 41)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : 'span' +>Derived3 : Derived3 // + 100 more } class D implements MyDoc { ->D : D, Symbol(D, Decl(overloadOnConstConstraintChecks1.ts, 11, 1)) ->MyDoc : MyDoc, Symbol(MyDoc, Decl(overloadOnConstConstraintChecks1.ts, 3, 41)) +>D : D +>MyDoc : MyDoc createElement(tagName:string): Base; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) ->tagName : string, Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 14, 18)) ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : string +>Base : Base createElement(tagName: 'canvas'): Derived1; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) ->tagName : 'canvas', Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 15, 18)) ->Derived1 : Derived1, Symbol(Derived1, Decl(overloadOnConstConstraintChecks1.ts, 0, 24)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : 'canvas' +>Derived1 : Derived1 createElement(tagName: 'div'): Derived2; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) ->tagName : 'div', Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 16, 18)) ->Derived2 : Derived2, Symbol(Derived2, Decl(overloadOnConstConstraintChecks1.ts, 1, 41)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : 'div' +>Derived2 : Derived2 createElement(tagName: 'span'): Derived3; ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) ->tagName : 'span', Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 17, 18)) ->Derived3 : Derived3, Symbol(Derived3, Decl(overloadOnConstConstraintChecks1.ts, 2, 41)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : 'span' +>Derived3 : Derived3 createElement(tagName:any): Base { ->createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; }, Symbol(createElement, Decl(overloadOnConstConstraintChecks1.ts, 13, 26), Decl(overloadOnConstConstraintChecks1.ts, 14, 40), Decl(overloadOnConstConstraintChecks1.ts, 15, 47), Decl(overloadOnConstConstraintChecks1.ts, 16, 44), Decl(overloadOnConstConstraintChecks1.ts, 17, 45)) ->tagName : any, Symbol(tagName, Decl(overloadOnConstConstraintChecks1.ts, 18, 18)) ->Base : Base, Symbol(Base, Decl(overloadOnConstConstraintChecks1.ts, 0, 0)) +>createElement : { (tagName: string): Base; (tagName: 'canvas'): Derived1; (tagName: 'div'): Derived2; (tagName: 'span'): Derived3; } +>tagName : any +>Base : Base return null; >null : null diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks2.symbols b/tests/baselines/reference/overloadOnConstConstraintChecks2.symbols new file mode 100644 index 0000000000000..0c5bd49b4f309 --- /dev/null +++ b/tests/baselines/reference/overloadOnConstConstraintChecks2.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/overloadOnConstConstraintChecks2.ts === +class A {} +>A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) + +class B extends A {} +>B : Symbol(B, Decl(overloadOnConstConstraintChecks2.ts, 0, 10)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) + +class C extends A { +>C : Symbol(C, Decl(overloadOnConstConstraintChecks2.ts, 1, 20)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) + + public foo() { } +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 2, 19)) +} +function foo(name: 'hi'): B; +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 5, 13)) +>B : Symbol(B, Decl(overloadOnConstConstraintChecks2.ts, 0, 10)) + +function foo(name: 'bye'): C; +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 6, 13)) +>C : Symbol(C, Decl(overloadOnConstConstraintChecks2.ts, 1, 20)) + +function foo(name: string): A; +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 7, 13)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) + +function foo(name: any): A { +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 8, 13)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) + + return null; +} diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks2.types b/tests/baselines/reference/overloadOnConstConstraintChecks2.types index aeb86fd7f343e..36fa89dec4a5a 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks2.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks2.types @@ -1,37 +1,37 @@ === tests/cases/compiler/overloadOnConstConstraintChecks2.ts === class A {} ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) +>A : A class B extends A {} ->B : B, Symbol(B, Decl(overloadOnConstConstraintChecks2.ts, 0, 10)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) +>B : B +>A : A class C extends A { ->C : C, Symbol(C, Decl(overloadOnConstConstraintChecks2.ts, 1, 20)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) +>C : C +>A : A public foo() { } ->foo : () => void, Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 2, 19)) +>foo : () => void } function foo(name: 'hi'): B; ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) ->name : 'hi', Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 5, 13)) ->B : B, Symbol(B, Decl(overloadOnConstConstraintChecks2.ts, 0, 10)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : 'hi' +>B : B function foo(name: 'bye'): C; ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) ->name : 'bye', Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 6, 13)) ->C : C, Symbol(C, Decl(overloadOnConstConstraintChecks2.ts, 1, 20)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : 'bye' +>C : C function foo(name: string): A; ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) ->name : string, Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 7, 13)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : string +>A : A function foo(name: any): A { ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks2.ts, 4, 1), Decl(overloadOnConstConstraintChecks2.ts, 5, 28), Decl(overloadOnConstConstraintChecks2.ts, 6, 29), Decl(overloadOnConstConstraintChecks2.ts, 7, 30)) ->name : any, Symbol(name, Decl(overloadOnConstConstraintChecks2.ts, 8, 13)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks2.ts, 0, 0)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : any +>A : A return null; >null : null diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks3.symbols b/tests/baselines/reference/overloadOnConstConstraintChecks3.symbols new file mode 100644 index 0000000000000..5748fd441a5c7 --- /dev/null +++ b/tests/baselines/reference/overloadOnConstConstraintChecks3.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/overloadOnConstConstraintChecks3.ts === +class A { private x = 1} +>A : Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) +>x : Symbol(x, Decl(overloadOnConstConstraintChecks3.ts, 0, 9)) + +class B extends A {} +>B : Symbol(B, Decl(overloadOnConstConstraintChecks3.ts, 0, 24)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) + +class C extends A { +>C : Symbol(C, Decl(overloadOnConstConstraintChecks3.ts, 1, 20)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) + + public foo() { } +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 2, 19)) +} +function foo(name: 'hi'): B; +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 5, 13)) +>B : Symbol(B, Decl(overloadOnConstConstraintChecks3.ts, 0, 24)) + +function foo(name: 'bye'): C; +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 6, 13)) +>C : Symbol(C, Decl(overloadOnConstConstraintChecks3.ts, 1, 20)) + +function foo(name: string): A; +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 7, 13)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) + +function foo(name: any): A { +>foo : Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) +>name : Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 8, 13)) +>A : Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) + + return null; +} + diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks3.types b/tests/baselines/reference/overloadOnConstConstraintChecks3.types index 8acbcf2c66fed..94a03bb768070 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks3.types +++ b/tests/baselines/reference/overloadOnConstConstraintChecks3.types @@ -1,39 +1,39 @@ === tests/cases/compiler/overloadOnConstConstraintChecks3.ts === class A { private x = 1} ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) ->x : number, Symbol(x, Decl(overloadOnConstConstraintChecks3.ts, 0, 9)) +>A : A +>x : number >1 : number class B extends A {} ->B : B, Symbol(B, Decl(overloadOnConstConstraintChecks3.ts, 0, 24)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) +>B : B +>A : A class C extends A { ->C : C, Symbol(C, Decl(overloadOnConstConstraintChecks3.ts, 1, 20)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) +>C : C +>A : A public foo() { } ->foo : () => void, Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 2, 19)) +>foo : () => void } function foo(name: 'hi'): B; ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) ->name : 'hi', Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 5, 13)) ->B : B, Symbol(B, Decl(overloadOnConstConstraintChecks3.ts, 0, 24)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : 'hi' +>B : B function foo(name: 'bye'): C; ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) ->name : 'bye', Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 6, 13)) ->C : C, Symbol(C, Decl(overloadOnConstConstraintChecks3.ts, 1, 20)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : 'bye' +>C : C function foo(name: string): A; ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) ->name : string, Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 7, 13)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : string +>A : A function foo(name: any): A { ->foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; }, Symbol(foo, Decl(overloadOnConstConstraintChecks3.ts, 4, 1), Decl(overloadOnConstConstraintChecks3.ts, 5, 28), Decl(overloadOnConstConstraintChecks3.ts, 6, 29), Decl(overloadOnConstConstraintChecks3.ts, 7, 30)) ->name : any, Symbol(name, Decl(overloadOnConstConstraintChecks3.ts, 8, 13)) ->A : A, Symbol(A, Decl(overloadOnConstConstraintChecks3.ts, 0, 0)) +>foo : { (name: 'hi'): B; (name: 'bye'): C; (name: string): A; } +>name : any +>A : A return null; >null : null diff --git a/tests/baselines/reference/overloadOnConstInheritance1.symbols b/tests/baselines/reference/overloadOnConstInheritance1.symbols new file mode 100644 index 0000000000000..c5cc9b52abc0f --- /dev/null +++ b/tests/baselines/reference/overloadOnConstInheritance1.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/overloadOnConstInheritance1.ts === +interface Base { +>Base : Symbol(Base, Decl(overloadOnConstInheritance1.ts, 0, 0)) + + addEventListener(x: string): any; +>addEventListener : Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 0, 16), Decl(overloadOnConstInheritance1.ts, 1, 37)) +>x : Symbol(x, Decl(overloadOnConstInheritance1.ts, 1, 21)) + + addEventListener(x: 'foo'): string; +>addEventListener : Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 0, 16), Decl(overloadOnConstInheritance1.ts, 1, 37)) +>x : Symbol(x, Decl(overloadOnConstInheritance1.ts, 2, 21)) +} +interface Deriver extends Base { +>Deriver : Symbol(Deriver, Decl(overloadOnConstInheritance1.ts, 3, 1)) +>Base : Symbol(Base, Decl(overloadOnConstInheritance1.ts, 0, 0)) + + addEventListener(x: string): any; +>addEventListener : Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 4, 32), Decl(overloadOnConstInheritance1.ts, 5, 37)) +>x : Symbol(x, Decl(overloadOnConstInheritance1.ts, 5, 21)) + + addEventListener(x: 'bar'): string; +>addEventListener : Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 4, 32), Decl(overloadOnConstInheritance1.ts, 5, 37)) +>x : Symbol(x, Decl(overloadOnConstInheritance1.ts, 6, 21)) +} + diff --git a/tests/baselines/reference/overloadOnConstInheritance1.types b/tests/baselines/reference/overloadOnConstInheritance1.types index d6a6576c066a6..96f8df3dffdf9 100644 --- a/tests/baselines/reference/overloadOnConstInheritance1.types +++ b/tests/baselines/reference/overloadOnConstInheritance1.types @@ -1,25 +1,25 @@ === tests/cases/compiler/overloadOnConstInheritance1.ts === interface Base { ->Base : Base, Symbol(Base, Decl(overloadOnConstInheritance1.ts, 0, 0)) +>Base : Base addEventListener(x: string): any; ->addEventListener : { (x: string): any; (x: 'foo'): string; }, Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 0, 16), Decl(overloadOnConstInheritance1.ts, 1, 37)) ->x : string, Symbol(x, Decl(overloadOnConstInheritance1.ts, 1, 21)) +>addEventListener : { (x: string): any; (x: 'foo'): string; } +>x : string addEventListener(x: 'foo'): string; ->addEventListener : { (x: string): any; (x: 'foo'): string; }, Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 0, 16), Decl(overloadOnConstInheritance1.ts, 1, 37)) ->x : 'foo', Symbol(x, Decl(overloadOnConstInheritance1.ts, 2, 21)) +>addEventListener : { (x: string): any; (x: 'foo'): string; } +>x : 'foo' } interface Deriver extends Base { ->Deriver : Deriver, Symbol(Deriver, Decl(overloadOnConstInheritance1.ts, 3, 1)) ->Base : Base, Symbol(Base, Decl(overloadOnConstInheritance1.ts, 0, 0)) +>Deriver : Deriver +>Base : Base addEventListener(x: string): any; ->addEventListener : { (x: string): any; (x: 'bar'): string; }, Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 4, 32), Decl(overloadOnConstInheritance1.ts, 5, 37)) ->x : string, Symbol(x, Decl(overloadOnConstInheritance1.ts, 5, 21)) +>addEventListener : { (x: string): any; (x: 'bar'): string; } +>x : string addEventListener(x: 'bar'): string; ->addEventListener : { (x: string): any; (x: 'bar'): string; }, Symbol(addEventListener, Decl(overloadOnConstInheritance1.ts, 4, 32), Decl(overloadOnConstInheritance1.ts, 5, 37)) ->x : 'bar', Symbol(x, Decl(overloadOnConstInheritance1.ts, 6, 21)) +>addEventListener : { (x: string): any; (x: 'bar'): string; } +>x : 'bar' } diff --git a/tests/baselines/reference/overloadOnGenericArity.symbols b/tests/baselines/reference/overloadOnGenericArity.symbols new file mode 100644 index 0000000000000..28f3c74fd2b54 --- /dev/null +++ b/tests/baselines/reference/overloadOnGenericArity.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/overloadOnGenericArity.ts === +interface Test { +>Test : Symbol(Test, Decl(overloadOnGenericArity.ts, 0, 0)) + + then(p: string): string; +>then : Symbol(then, Decl(overloadOnGenericArity.ts, 0, 16), Decl(overloadOnGenericArity.ts, 1, 31)) +>U : Symbol(U, Decl(overloadOnGenericArity.ts, 1, 9)) +>p : Symbol(p, Decl(overloadOnGenericArity.ts, 1, 12)) + + then(p: string): Date; // Error: Overloads cannot differ only by return type +>then : Symbol(then, Decl(overloadOnGenericArity.ts, 0, 16), Decl(overloadOnGenericArity.ts, 1, 31)) +>p : Symbol(p, Decl(overloadOnGenericArity.ts, 2, 9)) +>Date : Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +} + + diff --git a/tests/baselines/reference/overloadOnGenericArity.types b/tests/baselines/reference/overloadOnGenericArity.types index 0d93fc913b068..53c9e922fb9a1 100644 --- a/tests/baselines/reference/overloadOnGenericArity.types +++ b/tests/baselines/reference/overloadOnGenericArity.types @@ -1,16 +1,16 @@ === tests/cases/compiler/overloadOnGenericArity.ts === interface Test { ->Test : Test, Symbol(Test, Decl(overloadOnGenericArity.ts, 0, 0)) +>Test : Test then(p: string): string; ->then : { (p: string): string; (p: string): Date; }, Symbol(then, Decl(overloadOnGenericArity.ts, 0, 16), Decl(overloadOnGenericArity.ts, 1, 31)) ->U : U, Symbol(U, Decl(overloadOnGenericArity.ts, 1, 9)) ->p : string, Symbol(p, Decl(overloadOnGenericArity.ts, 1, 12)) +>then : { (p: string): string; (p: string): Date; } +>U : U +>p : string then(p: string): Date; // Error: Overloads cannot differ only by return type ->then : { (p: string): string; (p: string): Date; }, Symbol(then, Decl(overloadOnGenericArity.ts, 0, 16), Decl(overloadOnGenericArity.ts, 1, 31)) ->p : string, Symbol(p, Decl(overloadOnGenericArity.ts, 2, 9)) ->Date : Date, Symbol(Date, Decl(lib.d.ts, 633, 23), Decl(lib.d.ts, 815, 11)) +>then : { (p: string): string; (p: string): Date; } +>p : string +>Date : Date } diff --git a/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.symbols b/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.symbols new file mode 100644 index 0000000000000..8c4b74f89a2dd --- /dev/null +++ b/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/overloadOnGenericClassAndNonGenericClass.ts === +class A { a; } +>A : Symbol(A, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 0)) +>a : Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 9)) + +class B { b; } +>B : Symbol(B, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 14)) +>b : Symbol(b, Decl(overloadOnGenericClassAndNonGenericClass.ts, 1, 9)) + +class C { c; } +>C : Symbol(C, Decl(overloadOnGenericClassAndNonGenericClass.ts, 1, 14)) +>c : Symbol(c, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 9)) + +class X { x: T; } +>X : Symbol(X, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 14)) +>T : Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 8)) +>x : Symbol(x, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 12)) +>T : Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 8)) + +class X1 { x: string; } +>X1 : Symbol(X1, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 20)) +>x : Symbol(x, Decl(overloadOnGenericClassAndNonGenericClass.ts, 4, 10)) + +class X2 { x: string; } +>X2 : Symbol(X2, Decl(overloadOnGenericClassAndNonGenericClass.ts, 4, 23)) +>x : Symbol(x, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 10)) + +function f(a: X1): A; +>f : Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) +>a : Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 11)) +>X1 : Symbol(X1, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 20)) +>A : Symbol(A, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 0)) + +function f(a: X): B; +>f : Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) +>T : Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 11)) +>a : Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 14)) +>X : Symbol(X, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 14)) +>T : Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 11)) +>B : Symbol(B, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 14)) + +function f(a): any { +>f : Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) +>a : Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 8, 11)) +} + +var xs: X; +>xs : Symbol(xs, Decl(overloadOnGenericClassAndNonGenericClass.ts, 11, 3)) +>X : Symbol(X, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 14)) + +var t3 = f(xs); +>t3 : Symbol(t3, Decl(overloadOnGenericClassAndNonGenericClass.ts, 13, 3), Decl(overloadOnGenericClassAndNonGenericClass.ts, 14, 3)) +>f : Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) +>xs : Symbol(xs, Decl(overloadOnGenericClassAndNonGenericClass.ts, 11, 3)) + +var t3: A; // should not error +>t3 : Symbol(t3, Decl(overloadOnGenericClassAndNonGenericClass.ts, 13, 3), Decl(overloadOnGenericClassAndNonGenericClass.ts, 14, 3)) +>A : Symbol(A, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 0)) + diff --git a/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types b/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types index a6c2d8cd759e4..c0d0533a5336a 100644 --- a/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types +++ b/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types @@ -1,60 +1,60 @@ === tests/cases/compiler/overloadOnGenericClassAndNonGenericClass.ts === class A { a; } ->A : A, Symbol(A, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 0)) ->a : any, Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 9)) +>A : A +>a : any class B { b; } ->B : B, Symbol(B, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 14)) ->b : any, Symbol(b, Decl(overloadOnGenericClassAndNonGenericClass.ts, 1, 9)) +>B : B +>b : any class C { c; } ->C : C, Symbol(C, Decl(overloadOnGenericClassAndNonGenericClass.ts, 1, 14)) ->c : any, Symbol(c, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 9)) +>C : C +>c : any class X { x: T; } ->X : X, Symbol(X, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 14)) ->T : T, Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 8)) ->x : T, Symbol(x, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 12)) ->T : T, Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 8)) +>X : X +>T : T +>x : T +>T : T class X1 { x: string; } ->X1 : X1, Symbol(X1, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 20)) ->x : string, Symbol(x, Decl(overloadOnGenericClassAndNonGenericClass.ts, 4, 10)) +>X1 : X1 +>x : string class X2 { x: string; } ->X2 : X2, Symbol(X2, Decl(overloadOnGenericClassAndNonGenericClass.ts, 4, 23)) ->x : string, Symbol(x, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 10)) +>X2 : X2 +>x : string function f(a: X1): A; ->f : { (a: X1): A; (a: X): B; }, Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) ->a : X1, Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 11)) ->X1 : X1, Symbol(X1, Decl(overloadOnGenericClassAndNonGenericClass.ts, 3, 20)) ->A : A, Symbol(A, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 0)) +>f : { (a: X1): A; (a: X): B; } +>a : X1 +>X1 : X1 +>A : A function f(a: X): B; ->f : { (a: X1): A; (a: X): B; }, Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) ->T : T, Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 11)) ->a : X, Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 14)) ->X : X, Symbol(X, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 14)) ->T : T, Symbol(T, Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 11)) ->B : B, Symbol(B, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 14)) +>f : { (a: X1): A; (a: X): B; } +>T : T +>a : X +>X : X +>T : T +>B : B function f(a): any { ->f : { (a: X1): A; (a: X): B; }, Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) ->a : any, Symbol(a, Decl(overloadOnGenericClassAndNonGenericClass.ts, 8, 11)) +>f : { (a: X1): A; (a: X): B; } +>a : any } var xs: X; ->xs : X, Symbol(xs, Decl(overloadOnGenericClassAndNonGenericClass.ts, 11, 3)) ->X : X, Symbol(X, Decl(overloadOnGenericClassAndNonGenericClass.ts, 2, 14)) +>xs : X +>X : X var t3 = f(xs); ->t3 : A, Symbol(t3, Decl(overloadOnGenericClassAndNonGenericClass.ts, 13, 3), Decl(overloadOnGenericClassAndNonGenericClass.ts, 14, 3)) +>t3 : A >f(xs) : A ->f : { (a: X1): A; (a: X): B; }, Symbol(f, Decl(overloadOnGenericClassAndNonGenericClass.ts, 5, 23), Decl(overloadOnGenericClassAndNonGenericClass.ts, 6, 21), Decl(overloadOnGenericClassAndNonGenericClass.ts, 7, 26)) ->xs : X, Symbol(xs, Decl(overloadOnGenericClassAndNonGenericClass.ts, 11, 3)) +>f : { (a: X1): A; (a: X): B; } +>xs : X var t3: A; // should not error ->t3 : A, Symbol(t3, Decl(overloadOnGenericClassAndNonGenericClass.ts, 13, 3), Decl(overloadOnGenericClassAndNonGenericClass.ts, 14, 3)) ->A : A, Symbol(A, Decl(overloadOnGenericClassAndNonGenericClass.ts, 0, 0)) +>t3 : A +>A : A diff --git a/tests/baselines/reference/overloadResolutionOverNonCTLambdas.symbols b/tests/baselines/reference/overloadResolutionOverNonCTLambdas.symbols new file mode 100644 index 0000000000000..815f977d60508 --- /dev/null +++ b/tests/baselines/reference/overloadResolutionOverNonCTLambdas.symbols @@ -0,0 +1,63 @@ +=== tests/cases/compiler/overloadResolutionOverNonCTLambdas.ts === +module Bugs { +>Bugs : Symbol(Bugs, Decl(overloadResolutionOverNonCTLambdas.ts, 0, 0)) + + class A { +>A : Symbol(A, Decl(overloadResolutionOverNonCTLambdas.ts, 0, 13)) + } + + // replace(searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; + function bug2(message:string, ...args:any[]):string { +>bug2 : Symbol(bug2, Decl(overloadResolutionOverNonCTLambdas.ts, 2, 3)) +>message : Symbol(message, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 16)) +>args : Symbol(args, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 31)) + + var result= message.replace(/\{(\d+)\}/g, function(match, ...rest) { +>result : Symbol(result, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 7)) +>message.replace : Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) +>message : Symbol(message, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 16)) +>replace : Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) +>match : Symbol(match, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 55)) +>rest : Symbol(rest, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 61)) + + var index= rest[0]; +>index : Symbol(index, Decl(overloadResolutionOverNonCTLambdas.ts, 7, 9)) +>rest : Symbol(rest, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 61)) + + return typeof args[index] !== 'undefined' +>args : Symbol(args, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 31)) +>index : Symbol(index, Decl(overloadResolutionOverNonCTLambdas.ts, 7, 9)) + + ? args[index] +>args : Symbol(args, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 31)) +>index : Symbol(index, Decl(overloadResolutionOverNonCTLambdas.ts, 7, 9)) + + : match; +>match : Symbol(match, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 55)) + + }); + return result; +>result : Symbol(result, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 7)) + } +} + +function bug3(f:(x:string)=>string) { return f("s") } +>bug3 : Symbol(bug3, Decl(overloadResolutionOverNonCTLambdas.ts, 14, 1)) +>f : Symbol(f, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 14)) +>x : Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 17)) +>f : Symbol(f, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 14)) + +function fprime(x:string):string { return x; } +>fprime : Symbol(fprime, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 53)) +>x : Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 18, 16)) +>x : Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 18, 16)) + +bug3(fprime); +>bug3 : Symbol(bug3, Decl(overloadResolutionOverNonCTLambdas.ts, 14, 1)) +>fprime : Symbol(fprime, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 53)) + +bug3(function(x:string):string { return x; }); +>bug3 : Symbol(bug3, Decl(overloadResolutionOverNonCTLambdas.ts, 14, 1)) +>x : Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 22, 14)) +>x : Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 22, 14)) + diff --git a/tests/baselines/reference/overloadResolutionOverNonCTLambdas.types b/tests/baselines/reference/overloadResolutionOverNonCTLambdas.types index 8d3c14d4229be..f62bb4e83738f 100644 --- a/tests/baselines/reference/overloadResolutionOverNonCTLambdas.types +++ b/tests/baselines/reference/overloadResolutionOverNonCTLambdas.types @@ -1,32 +1,32 @@ === tests/cases/compiler/overloadResolutionOverNonCTLambdas.ts === module Bugs { ->Bugs : typeof Bugs, Symbol(Bugs, Decl(overloadResolutionOverNonCTLambdas.ts, 0, 0)) +>Bugs : typeof Bugs class A { ->A : A, Symbol(A, Decl(overloadResolutionOverNonCTLambdas.ts, 0, 13)) +>A : A } // replace(searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; function bug2(message:string, ...args:any[]):string { ->bug2 : (message: string, ...args: any[]) => string, Symbol(bug2, Decl(overloadResolutionOverNonCTLambdas.ts, 2, 3)) ->message : string, Symbol(message, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 16)) ->args : any[], Symbol(args, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 31)) +>bug2 : (message: string, ...args: any[]) => string +>message : string +>args : any[] var result= message.replace(/\{(\d+)\}/g, function(match, ...rest) { ->result : string, Symbol(result, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 7)) +>result : string >message.replace(/\{(\d+)\}/g, function(match, ...rest) { var index= rest[0]; return typeof args[index] !== 'undefined' ? args[index] : match; }) : string ->message.replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; }, Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) ->message : string, Symbol(message, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 16)) ->replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; }, Symbol(String.replace, Decl(lib.d.ts, 329, 44), Decl(lib.d.ts, 336, 63), Decl(lib.d.ts, 343, 102), Decl(lib.d.ts, 350, 63)) +>message.replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; } +>message : string +>replace : { (searchValue: string, replaceValue: string): string; (searchValue: string, replaceValue: (substring: string, ...args: any[]) => string): string; (searchValue: RegExp, replaceValue: string): string; (searchValue: RegExp, replaceValue: (substring: string, ...args: any[]) => string): string; } >/\{(\d+)\}/g : RegExp >function(match, ...rest) { var index= rest[0]; return typeof args[index] !== 'undefined' ? args[index] : match; } : (match: string, ...rest: any[]) => any ->match : string, Symbol(match, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 55)) ->rest : any[], Symbol(rest, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 61)) +>match : string +>rest : any[] var index= rest[0]; ->index : any, Symbol(index, Decl(overloadResolutionOverNonCTLambdas.ts, 7, 9)) +>index : any >rest[0] : any ->rest : any[], Symbol(rest, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 61)) +>rest : any[] >0 : number return typeof args[index] !== 'undefined' @@ -34,46 +34,46 @@ module Bugs { >typeof args[index] !== 'undefined' : boolean >typeof args[index] : string >args[index] : any ->args : any[], Symbol(args, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 31)) ->index : any, Symbol(index, Decl(overloadResolutionOverNonCTLambdas.ts, 7, 9)) +>args : any[] +>index : any >'undefined' : string ? args[index] >args[index] : any ->args : any[], Symbol(args, Decl(overloadResolutionOverNonCTLambdas.ts, 5, 31)) ->index : any, Symbol(index, Decl(overloadResolutionOverNonCTLambdas.ts, 7, 9)) +>args : any[] +>index : any : match; ->match : string, Symbol(match, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 55)) +>match : string }); return result; ->result : string, Symbol(result, Decl(overloadResolutionOverNonCTLambdas.ts, 6, 7)) +>result : string } } function bug3(f:(x:string)=>string) { return f("s") } ->bug3 : (f: (x: string) => string) => string, Symbol(bug3, Decl(overloadResolutionOverNonCTLambdas.ts, 14, 1)) ->f : (x: string) => string, Symbol(f, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 14)) ->x : string, Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 17)) +>bug3 : (f: (x: string) => string) => string +>f : (x: string) => string +>x : string >f("s") : string ->f : (x: string) => string, Symbol(f, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 14)) +>f : (x: string) => string >"s" : string function fprime(x:string):string { return x; } ->fprime : (x: string) => string, Symbol(fprime, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 53)) ->x : string, Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 18, 16)) ->x : string, Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 18, 16)) +>fprime : (x: string) => string +>x : string +>x : string bug3(fprime); >bug3(fprime) : string ->bug3 : (f: (x: string) => string) => string, Symbol(bug3, Decl(overloadResolutionOverNonCTLambdas.ts, 14, 1)) ->fprime : (x: string) => string, Symbol(fprime, Decl(overloadResolutionOverNonCTLambdas.ts, 16, 53)) +>bug3 : (f: (x: string) => string) => string +>fprime : (x: string) => string bug3(function(x:string):string { return x; }); >bug3(function(x:string):string { return x; }) : string ->bug3 : (f: (x: string) => string) => string, Symbol(bug3, Decl(overloadResolutionOverNonCTLambdas.ts, 14, 1)) +>bug3 : (f: (x: string) => string) => string >function(x:string):string { return x; } : (x: string) => string ->x : string, Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 22, 14)) ->x : string, Symbol(x, Decl(overloadResolutionOverNonCTLambdas.ts, 22, 14)) +>x : string +>x : string diff --git a/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.symbols b/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.symbols new file mode 100644 index 0000000000000..850f188a58b47 --- /dev/null +++ b/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.symbols @@ -0,0 +1,60 @@ +=== tests/cases/compiler/overloadResolutionOverNonCTObjectLit.ts === +module Bugs { +>Bugs : Symbol(Bugs, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 0)) + + export interface IToken { +>IToken : Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) + + startIndex:number; +>startIndex : Symbol(startIndex, Decl(overloadResolutionOverNonCTObjectLit.ts, 1, 41)) + + type:string; +>type : Symbol(type, Decl(overloadResolutionOverNonCTObjectLit.ts, 2, 50)) + + bracket:number; +>bracket : Symbol(bracket, Decl(overloadResolutionOverNonCTObjectLit.ts, 3, 44)) + } + + export interface IState { +>IState : Symbol(IState, Decl(overloadResolutionOverNonCTObjectLit.ts, 5, 17)) + } + + export interface IStateToken extends IToken { +>IStateToken : Symbol(IStateToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 8, 17)) +>IToken : Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) + + state: IState; +>state : Symbol(state, Decl(overloadResolutionOverNonCTObjectLit.ts, 10, 61)) +>IState : Symbol(IState, Decl(overloadResolutionOverNonCTObjectLit.ts, 5, 17)) + + length: number; +>length : Symbol(length, Decl(overloadResolutionOverNonCTObjectLit.ts, 11, 46)) + } + + function bug3() { +>bug3 : Symbol(bug3, Decl(overloadResolutionOverNonCTObjectLit.ts, 13, 17)) + + var tokens:IToken[]= []; +>tokens : Symbol(tokens, Decl(overloadResolutionOverNonCTObjectLit.ts, 16, 35)) +>IToken : Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) + + tokens.push({ startIndex: 1, type: '', bracket: 3 }); +>tokens.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>tokens : Symbol(tokens, Decl(overloadResolutionOverNonCTObjectLit.ts, 16, 35)) +>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>startIndex : Symbol(startIndex, Decl(overloadResolutionOverNonCTObjectLit.ts, 17, 45)) +>type : Symbol(type, Decl(overloadResolutionOverNonCTObjectLit.ts, 17, 60)) +>bracket : Symbol(bracket, Decl(overloadResolutionOverNonCTObjectLit.ts, 17, 70)) + + tokens.push(({ startIndex: 1, type: '', bracket: 3, state: null, length: 10 })); +>tokens.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>tokens : Symbol(tokens, Decl(overloadResolutionOverNonCTObjectLit.ts, 16, 35)) +>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>IToken : Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) +>startIndex : Symbol(startIndex, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 54)) +>type : Symbol(type, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 69)) +>bracket : Symbol(bracket, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 79)) +>state : Symbol(state, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 91)) +>length : Symbol(length, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 104)) + } +} diff --git a/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types b/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types index cb9aa39307efc..e6ff0cda468dc 100644 --- a/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types +++ b/tests/baselines/reference/overloadResolutionOverNonCTObjectLit.types @@ -1,75 +1,75 @@ === tests/cases/compiler/overloadResolutionOverNonCTObjectLit.ts === module Bugs { ->Bugs : typeof Bugs, Symbol(Bugs, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 0)) +>Bugs : typeof Bugs export interface IToken { ->IToken : IToken, Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) +>IToken : IToken startIndex:number; ->startIndex : number, Symbol(startIndex, Decl(overloadResolutionOverNonCTObjectLit.ts, 1, 41)) +>startIndex : number type:string; ->type : string, Symbol(type, Decl(overloadResolutionOverNonCTObjectLit.ts, 2, 50)) +>type : string bracket:number; ->bracket : number, Symbol(bracket, Decl(overloadResolutionOverNonCTObjectLit.ts, 3, 44)) +>bracket : number } export interface IState { ->IState : IState, Symbol(IState, Decl(overloadResolutionOverNonCTObjectLit.ts, 5, 17)) +>IState : IState } export interface IStateToken extends IToken { ->IStateToken : IStateToken, Symbol(IStateToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 8, 17)) ->IToken : IToken, Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) +>IStateToken : IStateToken +>IToken : IToken state: IState; ->state : IState, Symbol(state, Decl(overloadResolutionOverNonCTObjectLit.ts, 10, 61)) ->IState : IState, Symbol(IState, Decl(overloadResolutionOverNonCTObjectLit.ts, 5, 17)) +>state : IState +>IState : IState length: number; ->length : number, Symbol(length, Decl(overloadResolutionOverNonCTObjectLit.ts, 11, 46)) +>length : number } function bug3() { ->bug3 : () => void, Symbol(bug3, Decl(overloadResolutionOverNonCTObjectLit.ts, 13, 17)) +>bug3 : () => void var tokens:IToken[]= []; ->tokens : IToken[], Symbol(tokens, Decl(overloadResolutionOverNonCTObjectLit.ts, 16, 35)) ->IToken : IToken, Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) +>tokens : IToken[] +>IToken : IToken >[] : undefined[] tokens.push({ startIndex: 1, type: '', bracket: 3 }); >tokens.push({ startIndex: 1, type: '', bracket: 3 }) : number ->tokens.push : (...items: IToken[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->tokens : IToken[], Symbol(tokens, Decl(overloadResolutionOverNonCTObjectLit.ts, 16, 35)) ->push : (...items: IToken[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>tokens.push : (...items: IToken[]) => number +>tokens : IToken[] +>push : (...items: IToken[]) => number >{ startIndex: 1, type: '', bracket: 3 } : { startIndex: number; type: string; bracket: number; } ->startIndex : number, Symbol(startIndex, Decl(overloadResolutionOverNonCTObjectLit.ts, 17, 45)) +>startIndex : number >1 : number ->type : string, Symbol(type, Decl(overloadResolutionOverNonCTObjectLit.ts, 17, 60)) +>type : string >'' : string ->bracket : number, Symbol(bracket, Decl(overloadResolutionOverNonCTObjectLit.ts, 17, 70)) +>bracket : number >3 : number tokens.push(({ startIndex: 1, type: '', bracket: 3, state: null, length: 10 })); >tokens.push(({ startIndex: 1, type: '', bracket: 3, state: null, length: 10 })) : number ->tokens.push : (...items: IToken[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) ->tokens : IToken[], Symbol(tokens, Decl(overloadResolutionOverNonCTObjectLit.ts, 16, 35)) ->push : (...items: IToken[]) => number, Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>tokens.push : (...items: IToken[]) => number +>tokens : IToken[] +>push : (...items: IToken[]) => number >({ startIndex: 1, type: '', bracket: 3, state: null, length: 10 }) : IToken ->IToken : IToken, Symbol(IToken, Decl(overloadResolutionOverNonCTObjectLit.ts, 0, 13)) +>IToken : IToken >({ startIndex: 1, type: '', bracket: 3, state: null, length: 10 }) : { startIndex: number; type: string; bracket: number; state: null; length: number; } >{ startIndex: 1, type: '', bracket: 3, state: null, length: 10 } : { startIndex: number; type: string; bracket: number; state: null; length: number; } ->startIndex : number, Symbol(startIndex, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 54)) +>startIndex : number >1 : number ->type : string, Symbol(type, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 69)) +>type : string >'' : string ->bracket : number, Symbol(bracket, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 79)) +>bracket : number >3 : number ->state : null, Symbol(state, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 91)) +>state : null >null : null ->length : number, Symbol(length, Decl(overloadResolutionOverNonCTObjectLit.ts, 18, 104)) +>length : number >10 : number } } diff --git a/tests/baselines/reference/overloadResolutionWithAny.symbols b/tests/baselines/reference/overloadResolutionWithAny.symbols new file mode 100644 index 0000000000000..af998b6b376a8 --- /dev/null +++ b/tests/baselines/reference/overloadResolutionWithAny.symbols @@ -0,0 +1,62 @@ +=== tests/cases/compiler/overloadResolutionWithAny.ts === +var func: { +>func : Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) + + (s: string): number; +>s : Symbol(s, Decl(overloadResolutionWithAny.ts, 1, 5)) + + (s: any): string; +>s : Symbol(s, Decl(overloadResolutionWithAny.ts, 2, 5)) + +}; + +func(""); // number +>func : Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) + +func(3); // string +>func : Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) + +var x: any; +>x : Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) + +func(x); // string +>func : Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) +>x : Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) + +var func2: { +>func2 : Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) + + (s: string, t: string): number; +>s : Symbol(s, Decl(overloadResolutionWithAny.ts, 11, 5)) +>t : Symbol(t, Decl(overloadResolutionWithAny.ts, 11, 15)) + + (s: any, t: string): boolean; +>s : Symbol(s, Decl(overloadResolutionWithAny.ts, 12, 5)) +>t : Symbol(t, Decl(overloadResolutionWithAny.ts, 12, 12)) + + (s: string, t: any): RegExp; +>s : Symbol(s, Decl(overloadResolutionWithAny.ts, 13, 5)) +>t : Symbol(t, Decl(overloadResolutionWithAny.ts, 13, 15)) +>RegExp : Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) + + (s: any, t: any): string; +>s : Symbol(s, Decl(overloadResolutionWithAny.ts, 14, 5)) +>t : Symbol(t, Decl(overloadResolutionWithAny.ts, 14, 12)) +} + +func2(x, x); // string +>func2 : Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) +>x : Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) +>x : Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) + +func2("", ""); // number +>func2 : Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) + +func2(x, ""); // boolean +>func2 : Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) +>x : Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) + +func2("", x); // RegExp +>func2 : Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) +>x : Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) + diff --git a/tests/baselines/reference/overloadResolutionWithAny.types b/tests/baselines/reference/overloadResolutionWithAny.types index ad8e62abae822..e66368d355441 100644 --- a/tests/baselines/reference/overloadResolutionWithAny.types +++ b/tests/baselines/reference/overloadResolutionWithAny.types @@ -1,75 +1,75 @@ === tests/cases/compiler/overloadResolutionWithAny.ts === var func: { ->func : { (s: string): number; (s: any): string; }, Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) +>func : { (s: string): number; (s: any): string; } (s: string): number; ->s : string, Symbol(s, Decl(overloadResolutionWithAny.ts, 1, 5)) +>s : string (s: any): string; ->s : any, Symbol(s, Decl(overloadResolutionWithAny.ts, 2, 5)) +>s : any }; func(""); // number >func("") : number ->func : { (s: string): number; (s: any): string; }, Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) +>func : { (s: string): number; (s: any): string; } >"" : string func(3); // string >func(3) : string ->func : { (s: string): number; (s: any): string; }, Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) +>func : { (s: string): number; (s: any): string; } >3 : number var x: any; ->x : any, Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) +>x : any func(x); // string >func(x) : string ->func : { (s: string): number; (s: any): string; }, Symbol(func, Decl(overloadResolutionWithAny.ts, 0, 3)) ->x : any, Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) +>func : { (s: string): number; (s: any): string; } +>x : any var func2: { ->func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; }, Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) +>func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; } (s: string, t: string): number; ->s : string, Symbol(s, Decl(overloadResolutionWithAny.ts, 11, 5)) ->t : string, Symbol(t, Decl(overloadResolutionWithAny.ts, 11, 15)) +>s : string +>t : string (s: any, t: string): boolean; ->s : any, Symbol(s, Decl(overloadResolutionWithAny.ts, 12, 5)) ->t : string, Symbol(t, Decl(overloadResolutionWithAny.ts, 12, 12)) +>s : any +>t : string (s: string, t: any): RegExp; ->s : string, Symbol(s, Decl(overloadResolutionWithAny.ts, 13, 5)) ->t : any, Symbol(t, Decl(overloadResolutionWithAny.ts, 13, 15)) ->RegExp : RegExp, Symbol(RegExp, Decl(lib.d.ts, 825, 1), Decl(lib.d.ts, 876, 11)) +>s : string +>t : any +>RegExp : RegExp (s: any, t: any): string; ->s : any, Symbol(s, Decl(overloadResolutionWithAny.ts, 14, 5)) ->t : any, Symbol(t, Decl(overloadResolutionWithAny.ts, 14, 12)) +>s : any +>t : any } func2(x, x); // string >func2(x, x) : string ->func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; }, Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) ->x : any, Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) ->x : any, Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) +>func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; } +>x : any +>x : any func2("", ""); // number >func2("", "") : number ->func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; }, Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) +>func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; } >"" : string >"" : string func2(x, ""); // boolean >func2(x, "") : boolean ->func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; }, Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) ->x : any, Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) +>func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; } +>x : any >"" : string func2("", x); // RegExp >func2("", x) : RegExp ->func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; }, Symbol(func2, Decl(overloadResolutionWithAny.ts, 10, 3)) +>func2 : { (s: string, t: string): number; (s: any, t: string): boolean; (s: string, t: any): RegExp; (s: any, t: any): string; } >"" : string ->x : any, Symbol(x, Decl(overloadResolutionWithAny.ts, 7, 3)) +>x : any diff --git a/tests/baselines/reference/overloadRet.symbols b/tests/baselines/reference/overloadRet.symbols new file mode 100644 index 0000000000000..0c645b7c4b89a --- /dev/null +++ b/tests/baselines/reference/overloadRet.symbols @@ -0,0 +1,38 @@ +=== tests/cases/compiler/overloadRet.ts === +interface I { +>I : Symbol(I, Decl(overloadRet.ts, 0, 0)) + + f(s:string):number; +>f : Symbol(f, Decl(overloadRet.ts, 0, 13), Decl(overloadRet.ts, 1, 23)) +>s : Symbol(s, Decl(overloadRet.ts, 1, 6)) + + f(n:number):string; +>f : Symbol(f, Decl(overloadRet.ts, 0, 13), Decl(overloadRet.ts, 1, 23)) +>n : Symbol(n, Decl(overloadRet.ts, 2, 6)) + + g(n:number):any; +>g : Symbol(g, Decl(overloadRet.ts, 2, 23), Decl(overloadRet.ts, 3, 20)) +>n : Symbol(n, Decl(overloadRet.ts, 3, 6)) + + g(n:number,m:number):string; +>g : Symbol(g, Decl(overloadRet.ts, 2, 23), Decl(overloadRet.ts, 3, 20)) +>n : Symbol(n, Decl(overloadRet.ts, 4, 6)) +>m : Symbol(m, Decl(overloadRet.ts, 4, 15)) + + h(n:number):I; +>h : Symbol(h, Decl(overloadRet.ts, 4, 32), Decl(overloadRet.ts, 5, 18)) +>n : Symbol(n, Decl(overloadRet.ts, 5, 6)) +>I : Symbol(I, Decl(overloadRet.ts, 0, 0)) + + h(b:boolean):number; +>h : Symbol(h, Decl(overloadRet.ts, 4, 32), Decl(overloadRet.ts, 5, 18)) +>b : Symbol(b, Decl(overloadRet.ts, 6, 6)) + + i(b:boolean):number; +>i : Symbol(i, Decl(overloadRet.ts, 6, 24), Decl(overloadRet.ts, 7, 24)) +>b : Symbol(b, Decl(overloadRet.ts, 7, 6)) + + i(b:boolean):any; +>i : Symbol(i, Decl(overloadRet.ts, 6, 24), Decl(overloadRet.ts, 7, 24)) +>b : Symbol(b, Decl(overloadRet.ts, 8, 6)) +} diff --git a/tests/baselines/reference/overloadRet.types b/tests/baselines/reference/overloadRet.types index 31f29bb03d2a9..b4eb8538dbc26 100644 --- a/tests/baselines/reference/overloadRet.types +++ b/tests/baselines/reference/overloadRet.types @@ -1,38 +1,38 @@ === tests/cases/compiler/overloadRet.ts === interface I { ->I : I, Symbol(I, Decl(overloadRet.ts, 0, 0)) +>I : I f(s:string):number; ->f : { (s: string): number; (n: number): string; }, Symbol(f, Decl(overloadRet.ts, 0, 13), Decl(overloadRet.ts, 1, 23)) ->s : string, Symbol(s, Decl(overloadRet.ts, 1, 6)) +>f : { (s: string): number; (n: number): string; } +>s : string f(n:number):string; ->f : { (s: string): number; (n: number): string; }, Symbol(f, Decl(overloadRet.ts, 0, 13), Decl(overloadRet.ts, 1, 23)) ->n : number, Symbol(n, Decl(overloadRet.ts, 2, 6)) +>f : { (s: string): number; (n: number): string; } +>n : number g(n:number):any; ->g : { (n: number): any; (n: number, m: number): string; }, Symbol(g, Decl(overloadRet.ts, 2, 23), Decl(overloadRet.ts, 3, 20)) ->n : number, Symbol(n, Decl(overloadRet.ts, 3, 6)) +>g : { (n: number): any; (n: number, m: number): string; } +>n : number g(n:number,m:number):string; ->g : { (n: number): any; (n: number, m: number): string; }, Symbol(g, Decl(overloadRet.ts, 2, 23), Decl(overloadRet.ts, 3, 20)) ->n : number, Symbol(n, Decl(overloadRet.ts, 4, 6)) ->m : number, Symbol(m, Decl(overloadRet.ts, 4, 15)) +>g : { (n: number): any; (n: number, m: number): string; } +>n : number +>m : number h(n:number):I; ->h : { (n: number): I; (b: boolean): number; }, Symbol(h, Decl(overloadRet.ts, 4, 32), Decl(overloadRet.ts, 5, 18)) ->n : number, Symbol(n, Decl(overloadRet.ts, 5, 6)) ->I : I, Symbol(I, Decl(overloadRet.ts, 0, 0)) +>h : { (n: number): I; (b: boolean): number; } +>n : number +>I : I h(b:boolean):number; ->h : { (n: number): I; (b: boolean): number; }, Symbol(h, Decl(overloadRet.ts, 4, 32), Decl(overloadRet.ts, 5, 18)) ->b : boolean, Symbol(b, Decl(overloadRet.ts, 6, 6)) +>h : { (n: number): I; (b: boolean): number; } +>b : boolean i(b:boolean):number; ->i : { (b: boolean): number; (b: boolean): any; }, Symbol(i, Decl(overloadRet.ts, 6, 24), Decl(overloadRet.ts, 7, 24)) ->b : boolean, Symbol(b, Decl(overloadRet.ts, 7, 6)) +>i : { (b: boolean): number; (b: boolean): any; } +>b : boolean i(b:boolean):any; ->i : { (b: boolean): number; (b: boolean): any; }, Symbol(i, Decl(overloadRet.ts, 6, 24), Decl(overloadRet.ts, 7, 24)) ->b : boolean, Symbol(b, Decl(overloadRet.ts, 8, 6)) +>i : { (b: boolean): number; (b: boolean): any; } +>b : boolean } diff --git a/tests/baselines/reference/overloadReturnTypes.symbols b/tests/baselines/reference/overloadReturnTypes.symbols new file mode 100644 index 0000000000000..b76efb4a0d694 --- /dev/null +++ b/tests/baselines/reference/overloadReturnTypes.symbols @@ -0,0 +1,58 @@ +=== tests/cases/compiler/overloadReturnTypes.ts === +class Accessor {} +>Accessor : Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) + +function attr(name: string): string; +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) +>name : Symbol(name, Decl(overloadReturnTypes.ts, 2, 14)) + +function attr(name: string, value: string): Accessor; +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) +>name : Symbol(name, Decl(overloadReturnTypes.ts, 3, 14)) +>value : Symbol(value, Decl(overloadReturnTypes.ts, 3, 27)) +>Accessor : Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) + +function attr(map: any): Accessor; +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) +>map : Symbol(map, Decl(overloadReturnTypes.ts, 4, 14)) +>Accessor : Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) + +function attr(nameOrMap: any, value?: string): any { +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) +>nameOrMap : Symbol(nameOrMap, Decl(overloadReturnTypes.ts, 5, 14)) +>value : Symbol(value, Decl(overloadReturnTypes.ts, 5, 29)) + + if (nameOrMap && typeof nameOrMap === "object") { +>nameOrMap : Symbol(nameOrMap, Decl(overloadReturnTypes.ts, 5, 14)) +>nameOrMap : Symbol(nameOrMap, Decl(overloadReturnTypes.ts, 5, 14)) + + // handle map case + return new Accessor; +>Accessor : Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) + } + else { + // handle string case + return "s"; + } +} + + +interface IFace { +>IFace : Symbol(IFace, Decl(overloadReturnTypes.ts, 14, 1)) + + attr(name:string):string; +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 17, 17), Decl(overloadReturnTypes.ts, 18, 26), Decl(overloadReturnTypes.ts, 19, 45)) +>name : Symbol(name, Decl(overloadReturnTypes.ts, 18, 6)) + + attr(name: string, value: string): Accessor; +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 17, 17), Decl(overloadReturnTypes.ts, 18, 26), Decl(overloadReturnTypes.ts, 19, 45)) +>name : Symbol(name, Decl(overloadReturnTypes.ts, 19, 6)) +>value : Symbol(value, Decl(overloadReturnTypes.ts, 19, 19)) +>Accessor : Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) + + attr(map: any): Accessor; +>attr : Symbol(attr, Decl(overloadReturnTypes.ts, 17, 17), Decl(overloadReturnTypes.ts, 18, 26), Decl(overloadReturnTypes.ts, 19, 45)) +>map : Symbol(map, Decl(overloadReturnTypes.ts, 20, 6)) +>Accessor : Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/overloadReturnTypes.types b/tests/baselines/reference/overloadReturnTypes.types index d70bd930d406a..3de1aec1196c6 100644 --- a/tests/baselines/reference/overloadReturnTypes.types +++ b/tests/baselines/reference/overloadReturnTypes.types @@ -1,39 +1,39 @@ === tests/cases/compiler/overloadReturnTypes.ts === class Accessor {} ->Accessor : Accessor, Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +>Accessor : Accessor function attr(name: string): string; ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) ->name : string, Symbol(name, Decl(overloadReturnTypes.ts, 2, 14)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>name : string function attr(name: string, value: string): Accessor; ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) ->name : string, Symbol(name, Decl(overloadReturnTypes.ts, 3, 14)) ->value : string, Symbol(value, Decl(overloadReturnTypes.ts, 3, 27)) ->Accessor : Accessor, Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>name : string +>value : string +>Accessor : Accessor function attr(map: any): Accessor; ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) ->map : any, Symbol(map, Decl(overloadReturnTypes.ts, 4, 14)) ->Accessor : Accessor, Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>map : any +>Accessor : Accessor function attr(nameOrMap: any, value?: string): any { ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 0, 17), Decl(overloadReturnTypes.ts, 2, 36), Decl(overloadReturnTypes.ts, 3, 53), Decl(overloadReturnTypes.ts, 4, 34)) ->nameOrMap : any, Symbol(nameOrMap, Decl(overloadReturnTypes.ts, 5, 14)) ->value : string, Symbol(value, Decl(overloadReturnTypes.ts, 5, 29)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>nameOrMap : any +>value : string if (nameOrMap && typeof nameOrMap === "object") { >nameOrMap && typeof nameOrMap === "object" : boolean ->nameOrMap : any, Symbol(nameOrMap, Decl(overloadReturnTypes.ts, 5, 14)) +>nameOrMap : any >typeof nameOrMap === "object" : boolean >typeof nameOrMap : string ->nameOrMap : any, Symbol(nameOrMap, Decl(overloadReturnTypes.ts, 5, 14)) +>nameOrMap : any >"object" : string // handle map case return new Accessor; >new Accessor : Accessor ->Accessor : typeof Accessor, Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +>Accessor : typeof Accessor } else { // handle string case @@ -44,21 +44,21 @@ function attr(nameOrMap: any, value?: string): any { interface IFace { ->IFace : IFace, Symbol(IFace, Decl(overloadReturnTypes.ts, 14, 1)) +>IFace : IFace attr(name:string):string; ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 17, 17), Decl(overloadReturnTypes.ts, 18, 26), Decl(overloadReturnTypes.ts, 19, 45)) ->name : string, Symbol(name, Decl(overloadReturnTypes.ts, 18, 6)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>name : string attr(name: string, value: string): Accessor; ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 17, 17), Decl(overloadReturnTypes.ts, 18, 26), Decl(overloadReturnTypes.ts, 19, 45)) ->name : string, Symbol(name, Decl(overloadReturnTypes.ts, 19, 6)) ->value : string, Symbol(value, Decl(overloadReturnTypes.ts, 19, 19)) ->Accessor : Accessor, Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>name : string +>value : string +>Accessor : Accessor attr(map: any): Accessor; ->attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; }, Symbol(attr, Decl(overloadReturnTypes.ts, 17, 17), Decl(overloadReturnTypes.ts, 18, 26), Decl(overloadReturnTypes.ts, 19, 45)) ->map : any, Symbol(map, Decl(overloadReturnTypes.ts, 20, 6)) ->Accessor : Accessor, Symbol(Accessor, Decl(overloadReturnTypes.ts, 0, 0)) +>attr : { (name: string): string; (name: string, value: string): Accessor; (map: any): Accessor; } +>map : any +>Accessor : Accessor } diff --git a/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.symbols b/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.symbols new file mode 100644 index 0000000000000..0ae3e488fac6f --- /dev/null +++ b/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/overloadWithCallbacksWithDifferingOptionalityOnArgs.ts === +function x2(callback: (x?: number) => number); +>x2 : Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) +>callback : Symbol(callback, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 12)) +>x : Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 23)) + +function x2(callback: (x: string) => number); +>x2 : Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) +>callback : Symbol(callback, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 12)) +>x : Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 23)) + +function x2(callback: (x: any) => number) { } +>x2 : Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) +>callback : Symbol(callback, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 2, 12)) +>x : Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 2, 23)) + +x2(() => 1); +>x2 : Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) + +x2((x) => 1 ); +>x2 : Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) +>x : Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 4, 4)) + diff --git a/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.types b/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.types index 4d44e78f6c7b8..b9ea7d982701a 100644 --- a/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.types +++ b/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.types @@ -1,29 +1,29 @@ === tests/cases/compiler/overloadWithCallbacksWithDifferingOptionalityOnArgs.ts === function x2(callback: (x?: number) => number); ->x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; }, Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) ->callback : (x?: number) => number, Symbol(callback, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 12)) ->x : number, Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 23)) +>x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; } +>callback : (x?: number) => number +>x : number function x2(callback: (x: string) => number); ->x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; }, Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) ->callback : (x: string) => number, Symbol(callback, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 12)) ->x : string, Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 23)) +>x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; } +>callback : (x: string) => number +>x : string function x2(callback: (x: any) => number) { } ->x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; }, Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) ->callback : (x: any) => number, Symbol(callback, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 2, 12)) ->x : any, Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 2, 23)) +>x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; } +>callback : (x: any) => number +>x : any x2(() => 1); >x2(() => 1) : any ->x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; }, Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) +>x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; } >() => 1 : () => number >1 : number x2((x) => 1 ); >x2((x) => 1 ) : any ->x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; }, Symbol(x2, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 0), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 0, 46), Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 1, 45)) +>x2 : { (callback: (x?: number) => number): any; (callback: (x: string) => number): any; } >(x) => 1 : (x: number) => number ->x : number, Symbol(x, Decl(overloadWithCallbacksWithDifferingOptionalityOnArgs.ts, 4, 4)) +>x : number >1 : number diff --git a/tests/baselines/reference/overloadedStaticMethodSpecialization.symbols b/tests/baselines/reference/overloadedStaticMethodSpecialization.symbols new file mode 100644 index 0000000000000..eddadc8ab037d --- /dev/null +++ b/tests/baselines/reference/overloadedStaticMethodSpecialization.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/overloadedStaticMethodSpecialization.ts === +class A { +>A : Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) +>T : Symbol(T, Decl(overloadedStaticMethodSpecialization.ts, 0, 8)) + + static B(v: A): A; +>B : Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) +>v : Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 1, 16)) +>A : Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) +>A : Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) + + static B(v: S): A; +>B : Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) +>v : Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 2, 16)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) +>A : Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) + + static B(v: any): A { +>B : Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 3, 13)) +>v : Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 3, 16)) +>A : Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) +>S : Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 3, 13)) + + return null; + } +} + diff --git a/tests/baselines/reference/overloadedStaticMethodSpecialization.types b/tests/baselines/reference/overloadedStaticMethodSpecialization.types index 32ac111ae7f53..aac8f645687b0 100644 --- a/tests/baselines/reference/overloadedStaticMethodSpecialization.types +++ b/tests/baselines/reference/overloadedStaticMethodSpecialization.types @@ -1,31 +1,31 @@ === tests/cases/compiler/overloadedStaticMethodSpecialization.ts === class A { ->A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) ->T : T, Symbol(T, Decl(overloadedStaticMethodSpecialization.ts, 0, 8)) +>A : A +>T : T static B(v: A): A; ->B : { (v: A): A; (v: S): A; }, Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) ->v : A, Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 1, 16)) ->A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) ->A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 1, 13)) +>B : { (v: A): A; (v: S): A; } +>S : S +>v : A +>A : A +>S : S +>A : A +>S : S static B(v: S): A; ->B : { (v: A): A; (v: S): A; }, Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) ->v : S, Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 2, 16)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) ->A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 2, 13)) +>B : { (v: A): A; (v: S): A; } +>S : S +>v : S +>S : S +>A : A +>S : S static B(v: any): A { ->B : { (v: A): A; (v: S): A; }, Symbol(A.B, Decl(overloadedStaticMethodSpecialization.ts, 0, 12), Decl(overloadedStaticMethodSpecialization.ts, 1, 31), Decl(overloadedStaticMethodSpecialization.ts, 2, 28)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 3, 13)) ->v : any, Symbol(v, Decl(overloadedStaticMethodSpecialization.ts, 3, 16)) ->A : A, Symbol(A, Decl(overloadedStaticMethodSpecialization.ts, 0, 0)) ->S : S, Symbol(S, Decl(overloadedStaticMethodSpecialization.ts, 3, 13)) +>B : { (v: A): A; (v: S): A; } +>S : S +>v : any +>A : A +>S : S return null; >null : null diff --git a/tests/baselines/reference/overloadsAndTypeArgumentArity.symbols b/tests/baselines/reference/overloadsAndTypeArgumentArity.symbols new file mode 100644 index 0000000000000..76e9ae7d70148 --- /dev/null +++ b/tests/baselines/reference/overloadsAndTypeArgumentArity.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/overloadsAndTypeArgumentArity.ts === +declare function Callbacks(flags?: string): void; +>Callbacks : Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) +>flags : Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 0, 27)) + +declare function Callbacks(flags?: string): void; +>Callbacks : Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) +>T : Symbol(T, Decl(overloadsAndTypeArgumentArity.ts, 1, 27)) +>flags : Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 1, 30)) + +declare function Callbacks(flags?: string): void; +>Callbacks : Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) +>T1 : Symbol(T1, Decl(overloadsAndTypeArgumentArity.ts, 2, 27)) +>T2 : Symbol(T2, Decl(overloadsAndTypeArgumentArity.ts, 2, 30)) +>flags : Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 2, 35)) + +declare function Callbacks(flags?: string): void; +>Callbacks : Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) +>T1 : Symbol(T1, Decl(overloadsAndTypeArgumentArity.ts, 3, 27)) +>T2 : Symbol(T2, Decl(overloadsAndTypeArgumentArity.ts, 3, 30)) +>T3 : Symbol(T3, Decl(overloadsAndTypeArgumentArity.ts, 3, 34)) +>flags : Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 3, 39)) + +Callbacks('s'); // no error +>Callbacks : Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) + +new Callbacks('s'); // no error +>Callbacks : Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) + diff --git a/tests/baselines/reference/overloadsAndTypeArgumentArity.types b/tests/baselines/reference/overloadsAndTypeArgumentArity.types index 4ac9d5476e5e7..b69f394e83d17 100644 --- a/tests/baselines/reference/overloadsAndTypeArgumentArity.types +++ b/tests/baselines/reference/overloadsAndTypeArgumentArity.types @@ -1,33 +1,33 @@ === tests/cases/compiler/overloadsAndTypeArgumentArity.ts === declare function Callbacks(flags?: string): void; ->Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; }, Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) ->flags : string, Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 0, 27)) +>Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; } +>flags : string declare function Callbacks(flags?: string): void; ->Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; }, Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) ->T : T, Symbol(T, Decl(overloadsAndTypeArgumentArity.ts, 1, 27)) ->flags : string, Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 1, 30)) +>Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; } +>T : T +>flags : string declare function Callbacks(flags?: string): void; ->Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; }, Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) ->T1 : T1, Symbol(T1, Decl(overloadsAndTypeArgumentArity.ts, 2, 27)) ->T2 : T2, Symbol(T2, Decl(overloadsAndTypeArgumentArity.ts, 2, 30)) ->flags : string, Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 2, 35)) +>Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; } +>T1 : T1 +>T2 : T2 +>flags : string declare function Callbacks(flags?: string): void; ->Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; }, Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) ->T1 : T1, Symbol(T1, Decl(overloadsAndTypeArgumentArity.ts, 3, 27)) ->T2 : T2, Symbol(T2, Decl(overloadsAndTypeArgumentArity.ts, 3, 30)) ->T3 : T3, Symbol(T3, Decl(overloadsAndTypeArgumentArity.ts, 3, 34)) ->flags : string, Symbol(flags, Decl(overloadsAndTypeArgumentArity.ts, 3, 39)) +>Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; } +>T1 : T1 +>T2 : T2 +>T3 : T3 +>flags : string Callbacks('s'); // no error >Callbacks('s') : void ->Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; }, Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) +>Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; } >'s' : string new Callbacks('s'); // no error >new Callbacks('s') : any ->Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; }, Symbol(Callbacks, Decl(overloadsAndTypeArgumentArity.ts, 0, 0), Decl(overloadsAndTypeArgumentArity.ts, 0, 49), Decl(overloadsAndTypeArgumentArity.ts, 1, 52), Decl(overloadsAndTypeArgumentArity.ts, 2, 57)) +>Callbacks : { (flags?: string): void; (flags?: string): void; (flags?: string): void; (flags?: string): void; } >'s' : string diff --git a/tests/baselines/reference/overloadsWithConstraints.symbols b/tests/baselines/reference/overloadsWithConstraints.symbols new file mode 100644 index 0000000000000..68b675093bfc6 --- /dev/null +++ b/tests/baselines/reference/overloadsWithConstraints.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/overloadsWithConstraints.ts === +declare function f(x: T): T; +>f : Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) +>T : Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) +>Number : Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) +>x : Symbol(x, Decl(overloadsWithConstraints.ts, 0, 37)) +>T : Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) +>T : Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) + +declare function f(x: T): T +>f : Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) +>T : Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) +>String : Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) +>x : Symbol(x, Decl(overloadsWithConstraints.ts, 1, 37)) +>T : Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) +>T : Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) + +var v = f(""); +>v : Symbol(v, Decl(overloadsWithConstraints.ts, 3, 3)) +>f : Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) + diff --git a/tests/baselines/reference/overloadsWithConstraints.types b/tests/baselines/reference/overloadsWithConstraints.types index 1e97d61bce08d..b045904ece5bb 100644 --- a/tests/baselines/reference/overloadsWithConstraints.types +++ b/tests/baselines/reference/overloadsWithConstraints.types @@ -1,23 +1,23 @@ === tests/cases/compiler/overloadsWithConstraints.ts === declare function f(x: T): T; ->f : { (x: T): T; (x: T): T; }, Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) ->T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) ->Number : Number, Symbol(Number, Decl(lib.d.ts, 456, 40), Decl(lib.d.ts, 518, 11)) ->x : T, Symbol(x, Decl(overloadsWithConstraints.ts, 0, 37)) ->T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) ->T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 0, 19)) +>f : { (x: T): T; (x: T): T; } +>T : T +>Number : Number +>x : T +>T : T +>T : T declare function f(x: T): T ->f : { (x: T): T; (x: T): T; }, Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) ->T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) ->String : String, Symbol(String, Decl(lib.d.ts, 275, 1), Decl(lib.d.ts, 443, 11)) ->x : T, Symbol(x, Decl(overloadsWithConstraints.ts, 1, 37)) ->T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) ->T : T, Symbol(T, Decl(overloadsWithConstraints.ts, 1, 19)) +>f : { (x: T): T; (x: T): T; } +>T : T +>String : String +>x : T +>T : T +>T : T var v = f(""); ->v : string, Symbol(v, Decl(overloadsWithConstraints.ts, 3, 3)) +>v : string >f("") : string ->f : { (x: T): T; (x: T): T; }, Symbol(f, Decl(overloadsWithConstraints.ts, 0, 0), Decl(overloadsWithConstraints.ts, 0, 46)) +>f : { (x: T): T; (x: T): T; } >"" : string diff --git a/tests/baselines/reference/parameterPropertyInitializerInInitializers.symbols b/tests/baselines/reference/parameterPropertyInitializerInInitializers.symbols new file mode 100644 index 0000000000000..c05adb9e8cace --- /dev/null +++ b/tests/baselines/reference/parameterPropertyInitializerInInitializers.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/parameterPropertyInitializerInInitializers.ts === +class Foo { +>Foo : Symbol(Foo, Decl(parameterPropertyInitializerInInitializers.ts, 0, 0)) + + constructor(public x: number, public y: number = x) { } +>x : Symbol(x, Decl(parameterPropertyInitializerInInitializers.ts, 1, 16)) +>y : Symbol(y, Decl(parameterPropertyInitializerInInitializers.ts, 1, 33)) +>x : Symbol(x, Decl(parameterPropertyInitializerInInitializers.ts, 1, 16)) +} diff --git a/tests/baselines/reference/parameterPropertyInitializerInInitializers.types b/tests/baselines/reference/parameterPropertyInitializerInInitializers.types index f61947366ffb2..c15ace849afd4 100644 --- a/tests/baselines/reference/parameterPropertyInitializerInInitializers.types +++ b/tests/baselines/reference/parameterPropertyInitializerInInitializers.types @@ -1,9 +1,9 @@ === tests/cases/compiler/parameterPropertyInitializerInInitializers.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(parameterPropertyInitializerInInitializers.ts, 0, 0)) +>Foo : Foo constructor(public x: number, public y: number = x) { } ->x : number, Symbol(x, Decl(parameterPropertyInitializerInInitializers.ts, 1, 16)) ->y : number, Symbol(y, Decl(parameterPropertyInitializerInInitializers.ts, 1, 33)) ->x : number, Symbol(x, Decl(parameterPropertyInitializerInInitializers.ts, 1, 16)) +>x : number +>y : number +>x : number } diff --git a/tests/baselines/reference/parameterPropertyReferencingOtherParameter.symbols b/tests/baselines/reference/parameterPropertyReferencingOtherParameter.symbols new file mode 100644 index 0000000000000..fb6d289f24166 --- /dev/null +++ b/tests/baselines/reference/parameterPropertyReferencingOtherParameter.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/parameterPropertyReferencingOtherParameter.ts === +class Foo { +>Foo : Symbol(Foo, Decl(parameterPropertyReferencingOtherParameter.ts, 0, 0)) + + constructor(public x: number, public y: number = x) { } +>x : Symbol(x, Decl(parameterPropertyReferencingOtherParameter.ts, 1, 16)) +>y : Symbol(y, Decl(parameterPropertyReferencingOtherParameter.ts, 1, 33)) +>x : Symbol(x, Decl(parameterPropertyReferencingOtherParameter.ts, 1, 16)) +} + diff --git a/tests/baselines/reference/parameterPropertyReferencingOtherParameter.types b/tests/baselines/reference/parameterPropertyReferencingOtherParameter.types index 462aa617afcec..0cf31b8e3f8e7 100644 --- a/tests/baselines/reference/parameterPropertyReferencingOtherParameter.types +++ b/tests/baselines/reference/parameterPropertyReferencingOtherParameter.types @@ -1,10 +1,10 @@ === tests/cases/compiler/parameterPropertyReferencingOtherParameter.ts === class Foo { ->Foo : Foo, Symbol(Foo, Decl(parameterPropertyReferencingOtherParameter.ts, 0, 0)) +>Foo : Foo constructor(public x: number, public y: number = x) { } ->x : number, Symbol(x, Decl(parameterPropertyReferencingOtherParameter.ts, 1, 16)) ->y : number, Symbol(y, Decl(parameterPropertyReferencingOtherParameter.ts, 1, 33)) ->x : number, Symbol(x, Decl(parameterPropertyReferencingOtherParameter.ts, 1, 16)) +>x : number +>y : number +>x : number } diff --git a/tests/baselines/reference/parameterReferencesOtherParameter1.symbols b/tests/baselines/reference/parameterReferencesOtherParameter1.symbols new file mode 100644 index 0000000000000..7e7eec1a3cbb4 --- /dev/null +++ b/tests/baselines/reference/parameterReferencesOtherParameter1.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/parameterReferencesOtherParameter1.ts === +class Model { +>Model : Symbol(Model, Decl(parameterReferencesOtherParameter1.ts, 0, 0)) + + public name: string; +>name : Symbol(name, Decl(parameterReferencesOtherParameter1.ts, 0, 13)) +} + +class UI { +>UI : Symbol(UI, Decl(parameterReferencesOtherParameter1.ts, 2, 1)) + + constructor(model: Model, foo:string = model.name) +>model : Symbol(model, Decl(parameterReferencesOtherParameter1.ts, 5, 16)) +>Model : Symbol(Model, Decl(parameterReferencesOtherParameter1.ts, 0, 0)) +>foo : Symbol(foo, Decl(parameterReferencesOtherParameter1.ts, 5, 29)) +>model.name : Symbol(Model.name, Decl(parameterReferencesOtherParameter1.ts, 0, 13)) +>model : Symbol(model, Decl(parameterReferencesOtherParameter1.ts, 5, 16)) +>name : Symbol(Model.name, Decl(parameterReferencesOtherParameter1.ts, 0, 13)) + { + } +} diff --git a/tests/baselines/reference/parameterReferencesOtherParameter1.types b/tests/baselines/reference/parameterReferencesOtherParameter1.types index a05d7bd03e923..bab9ef891898a 100644 --- a/tests/baselines/reference/parameterReferencesOtherParameter1.types +++ b/tests/baselines/reference/parameterReferencesOtherParameter1.types @@ -1,21 +1,21 @@ === tests/cases/compiler/parameterReferencesOtherParameter1.ts === class Model { ->Model : Model, Symbol(Model, Decl(parameterReferencesOtherParameter1.ts, 0, 0)) +>Model : Model public name: string; ->name : string, Symbol(name, Decl(parameterReferencesOtherParameter1.ts, 0, 13)) +>name : string } class UI { ->UI : UI, Symbol(UI, Decl(parameterReferencesOtherParameter1.ts, 2, 1)) +>UI : UI constructor(model: Model, foo:string = model.name) ->model : Model, Symbol(model, Decl(parameterReferencesOtherParameter1.ts, 5, 16)) ->Model : Model, Symbol(Model, Decl(parameterReferencesOtherParameter1.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(parameterReferencesOtherParameter1.ts, 5, 29)) ->model.name : string, Symbol(Model.name, Decl(parameterReferencesOtherParameter1.ts, 0, 13)) ->model : Model, Symbol(model, Decl(parameterReferencesOtherParameter1.ts, 5, 16)) ->name : string, Symbol(Model.name, Decl(parameterReferencesOtherParameter1.ts, 0, 13)) +>model : Model +>Model : Model +>foo : string +>model.name : string +>model : Model +>name : string { } } diff --git a/tests/baselines/reference/parameterReferencesOtherParameter2.symbols b/tests/baselines/reference/parameterReferencesOtherParameter2.symbols new file mode 100644 index 0000000000000..2d63c7a333404 --- /dev/null +++ b/tests/baselines/reference/parameterReferencesOtherParameter2.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/parameterReferencesOtherParameter2.ts === +class Model { +>Model : Symbol(Model, Decl(parameterReferencesOtherParameter2.ts, 0, 0)) + + public name: string; +>name : Symbol(name, Decl(parameterReferencesOtherParameter2.ts, 0, 13)) +} + +class UI { +>UI : Symbol(UI, Decl(parameterReferencesOtherParameter2.ts, 2, 1)) + + constructor(model: Model, foo = model.name) +>model : Symbol(model, Decl(parameterReferencesOtherParameter2.ts, 5, 16)) +>Model : Symbol(Model, Decl(parameterReferencesOtherParameter2.ts, 0, 0)) +>foo : Symbol(foo, Decl(parameterReferencesOtherParameter2.ts, 5, 29)) +>model.name : Symbol(Model.name, Decl(parameterReferencesOtherParameter2.ts, 0, 13)) +>model : Symbol(model, Decl(parameterReferencesOtherParameter2.ts, 5, 16)) +>name : Symbol(Model.name, Decl(parameterReferencesOtherParameter2.ts, 0, 13)) + { + } +} diff --git a/tests/baselines/reference/parameterReferencesOtherParameter2.types b/tests/baselines/reference/parameterReferencesOtherParameter2.types index 51c9221a990b2..3aac2cfd34576 100644 --- a/tests/baselines/reference/parameterReferencesOtherParameter2.types +++ b/tests/baselines/reference/parameterReferencesOtherParameter2.types @@ -1,21 +1,21 @@ === tests/cases/compiler/parameterReferencesOtherParameter2.ts === class Model { ->Model : Model, Symbol(Model, Decl(parameterReferencesOtherParameter2.ts, 0, 0)) +>Model : Model public name: string; ->name : string, Symbol(name, Decl(parameterReferencesOtherParameter2.ts, 0, 13)) +>name : string } class UI { ->UI : UI, Symbol(UI, Decl(parameterReferencesOtherParameter2.ts, 2, 1)) +>UI : UI constructor(model: Model, foo = model.name) ->model : Model, Symbol(model, Decl(parameterReferencesOtherParameter2.ts, 5, 16)) ->Model : Model, Symbol(Model, Decl(parameterReferencesOtherParameter2.ts, 0, 0)) ->foo : string, Symbol(foo, Decl(parameterReferencesOtherParameter2.ts, 5, 29)) ->model.name : string, Symbol(Model.name, Decl(parameterReferencesOtherParameter2.ts, 0, 13)) ->model : Model, Symbol(model, Decl(parameterReferencesOtherParameter2.ts, 5, 16)) ->name : string, Symbol(Model.name, Decl(parameterReferencesOtherParameter2.ts, 0, 13)) +>model : Model +>Model : Model +>foo : string +>model.name : string +>model : Model +>name : string { } } diff --git a/tests/baselines/reference/parametersWithNoAnnotationAreAny.symbols b/tests/baselines/reference/parametersWithNoAnnotationAreAny.symbols new file mode 100644 index 0000000000000..9771d7f05ca8a --- /dev/null +++ b/tests/baselines/reference/parametersWithNoAnnotationAreAny.symbols @@ -0,0 +1,81 @@ +=== tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts === +function foo(x) { return x; } +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 0, 0)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 0, 13)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 0, 13)) + +var f = function foo(x) { return x; } +>f : Symbol(f, Decl(parametersWithNoAnnotationAreAny.ts, 1, 3)) +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 1, 7)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 1, 21)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 1, 21)) + +var f2 = (x) => x; +>f2 : Symbol(f2, Decl(parametersWithNoAnnotationAreAny.ts, 2, 3)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 2, 10)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 2, 10)) + +var f3 = (x) => x; +>f3 : Symbol(f3, Decl(parametersWithNoAnnotationAreAny.ts, 3, 3)) +>T : Symbol(T, Decl(parametersWithNoAnnotationAreAny.ts, 3, 10)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 3, 13)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 3, 13)) + +class C { +>C : Symbol(C, Decl(parametersWithNoAnnotationAreAny.ts, 3, 21)) + + foo(x) { +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 5, 9)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 6, 8)) + + return x; +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 6, 8)) + } +} + +interface I { +>I : Symbol(I, Decl(parametersWithNoAnnotationAreAny.ts, 9, 1)) + + foo(x); +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 11, 13)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 12, 8)) + + foo2(x, y); +>foo2 : Symbol(foo2, Decl(parametersWithNoAnnotationAreAny.ts, 12, 11)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 13, 9)) +>y : Symbol(y, Decl(parametersWithNoAnnotationAreAny.ts, 13, 11)) +} + +var a: { +>a : Symbol(a, Decl(parametersWithNoAnnotationAreAny.ts, 16, 3)) + + foo(x); +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 16, 8)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 17, 8)) +} + +var b = { +>b : Symbol(b, Decl(parametersWithNoAnnotationAreAny.ts, 20, 3)) + + foo(x) { +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 20, 9)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 21, 8)) + + return x; +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 21, 8)) + + }, + a: function foo(x) { +>a : Symbol(a, Decl(parametersWithNoAnnotationAreAny.ts, 23, 6)) +>foo : Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 24, 6)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 24, 20)) + + return x; +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 24, 20)) + + }, + b: (x) => x +>b : Symbol(b, Decl(parametersWithNoAnnotationAreAny.ts, 26, 6)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 27, 8)) +>x : Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 27, 8)) +} diff --git a/tests/baselines/reference/parametersWithNoAnnotationAreAny.types b/tests/baselines/reference/parametersWithNoAnnotationAreAny.types index c6816842da449..0424a169331e6 100644 --- a/tests/baselines/reference/parametersWithNoAnnotationAreAny.types +++ b/tests/baselines/reference/parametersWithNoAnnotationAreAny.types @@ -1,87 +1,87 @@ === tests/cases/conformance/types/objectTypeLiteral/callSignatures/parametersWithNoAnnotationAreAny.ts === function foo(x) { return x; } ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 0, 0)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 0, 13)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 0, 13)) +>foo : (x: any) => any +>x : any +>x : any var f = function foo(x) { return x; } ->f : (x: any) => any, Symbol(f, Decl(parametersWithNoAnnotationAreAny.ts, 1, 3)) +>f : (x: any) => any >function foo(x) { return x; } : (x: any) => any ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 1, 7)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 1, 21)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 1, 21)) +>foo : (x: any) => any +>x : any +>x : any var f2 = (x) => x; ->f2 : (x: any) => any, Symbol(f2, Decl(parametersWithNoAnnotationAreAny.ts, 2, 3)) +>f2 : (x: any) => any >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 2, 10)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 2, 10)) +>x : any +>x : any var f3 = (x) => x; ->f3 : (x: any) => any, Symbol(f3, Decl(parametersWithNoAnnotationAreAny.ts, 3, 3)) +>f3 : (x: any) => any >(x) => x : (x: any) => any ->T : T, Symbol(T, Decl(parametersWithNoAnnotationAreAny.ts, 3, 10)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 3, 13)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 3, 13)) +>T : T +>x : any +>x : any class C { ->C : C, Symbol(C, Decl(parametersWithNoAnnotationAreAny.ts, 3, 21)) +>C : C foo(x) { ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 5, 9)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 6, 8)) +>foo : (x: any) => any +>x : any return x; ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 6, 8)) +>x : any } } interface I { ->I : I, Symbol(I, Decl(parametersWithNoAnnotationAreAny.ts, 9, 1)) +>I : I foo(x); ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 11, 13)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 12, 8)) +>foo : (x: any) => any +>x : any foo2(x, y); ->foo2 : (x: any, y: any) => any, Symbol(foo2, Decl(parametersWithNoAnnotationAreAny.ts, 12, 11)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 13, 9)) ->y : any, Symbol(y, Decl(parametersWithNoAnnotationAreAny.ts, 13, 11)) +>foo2 : (x: any, y: any) => any +>x : any +>y : any } var a: { ->a : { foo(x: any): any; }, Symbol(a, Decl(parametersWithNoAnnotationAreAny.ts, 16, 3)) +>a : { foo(x: any): any; } foo(x); ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 16, 8)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 17, 8)) +>foo : (x: any) => any +>x : any } var b = { ->b : { foo(x: any): any; a: (x: any) => any; b: (x: any) => any; }, Symbol(b, Decl(parametersWithNoAnnotationAreAny.ts, 20, 3)) +>b : { foo(x: any): any; a: (x: any) => any; b: (x: any) => any; } >{ foo(x) { return x; }, a: function foo(x) { return x; }, b: (x) => x} : { foo(x: any): any; a: (x: any) => any; b: (x: any) => any; } foo(x) { ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 20, 9)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 21, 8)) +>foo : (x: any) => any +>x : any return x; ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 21, 8)) +>x : any }, a: function foo(x) { ->a : (x: any) => any, Symbol(a, Decl(parametersWithNoAnnotationAreAny.ts, 23, 6)) +>a : (x: any) => any >function foo(x) { return x; } : (x: any) => any ->foo : (x: any) => any, Symbol(foo, Decl(parametersWithNoAnnotationAreAny.ts, 24, 6)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 24, 20)) +>foo : (x: any) => any +>x : any return x; ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 24, 20)) +>x : any }, b: (x) => x ->b : (x: any) => any, Symbol(b, Decl(parametersWithNoAnnotationAreAny.ts, 26, 6)) +>b : (x: any) => any >(x) => x : (x: any) => any ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 27, 8)) ->x : any, Symbol(x, Decl(parametersWithNoAnnotationAreAny.ts, 27, 8)) +>x : any +>x : any } diff --git a/tests/baselines/reference/parenthesizedContexualTyping1.symbols b/tests/baselines/reference/parenthesizedContexualTyping1.symbols new file mode 100644 index 0000000000000..698e26734addf --- /dev/null +++ b/tests/baselines/reference/parenthesizedContexualTyping1.symbols @@ -0,0 +1,192 @@ +=== tests/cases/conformance/expressions/contextualTyping/parenthesizedContexualTyping1.ts === + +function fun(g: (x: T) => T, x: T): T; +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) +>g : Symbol(g, Decl(parenthesizedContexualTyping1.ts, 1, 16)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 1, 20)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 1, 31)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) + +function fun(g: (x: T) => T, h: (y: T) => T, x: T): T; +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>g : Symbol(g, Decl(parenthesizedContexualTyping1.ts, 2, 16)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 2, 20)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>h : Symbol(h, Decl(parenthesizedContexualTyping1.ts, 2, 31)) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 2, 36)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 2, 47)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) + +function fun(g: (x: T) => T, x: T): T { +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) +>g : Symbol(g, Decl(parenthesizedContexualTyping1.ts, 3, 16)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 3, 20)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 3, 31)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) + + return g(x); +>g : Symbol(g, Decl(parenthesizedContexualTyping1.ts, 3, 16)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 3, 31)) +} + +var a = fun(x => x, 10); +>a : Symbol(a, Decl(parenthesizedContexualTyping1.ts, 7, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 7, 12)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 7, 12)) + +var b = fun((x => x), 10); +>b : Symbol(b, Decl(parenthesizedContexualTyping1.ts, 8, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 8, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 8, 13)) + +var c = fun(((x => x)), 10); +>c : Symbol(c, Decl(parenthesizedContexualTyping1.ts, 9, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 9, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 9, 14)) + +var d = fun((((x => x))), 10); +>d : Symbol(d, Decl(parenthesizedContexualTyping1.ts, 10, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 10, 15)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 10, 15)) + +var e = fun(x => x, x => x, 10); +>e : Symbol(e, Decl(parenthesizedContexualTyping1.ts, 12, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 12)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 12)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 19)) + +var f = fun((x => x), (x => x), 10); +>f : Symbol(f, Decl(parenthesizedContexualTyping1.ts, 13, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 23)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 23)) + +var g = fun(((x => x)), ((x => x)), 10); +>g : Symbol(g, Decl(parenthesizedContexualTyping1.ts, 14, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 26)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 26)) + +var h = fun((((x => x))), ((x => x)), 10); +>h : Symbol(h, Decl(parenthesizedContexualTyping1.ts, 15, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 15)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 15)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 28)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 28)) + +// Ternaries in parens +var i = fun((Math.random() < 0.5 ? x => x : x => undefined), 10); +>i : Symbol(i, Decl(parenthesizedContexualTyping1.ts, 18, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 18, 34)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 18, 34)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 18, 43)) +>undefined : Symbol(undefined) + +var j = fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), 10); +>j : Symbol(j, Decl(parenthesizedContexualTyping1.ts, 19, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 19, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 19, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 19, 47)) +>undefined : Symbol(undefined) + +var k = fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), x => x, 10); +>k : Symbol(k, Decl(parenthesizedContexualTyping1.ts, 20, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 47)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 64)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 64)) + +var l = fun(((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))), ((x => x)), 10); +>l : Symbol(l, Decl(parenthesizedContexualTyping1.ts, 21, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 51)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 73)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 73)) + +var lambda1: (x: number) => number = x => x; +>lambda1 : Symbol(lambda1, Decl(parenthesizedContexualTyping1.ts, 23, 3)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 23, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 23, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 23, 36)) + +var lambda2: (x: number) => number = (x => x); +>lambda2 : Symbol(lambda2, Decl(parenthesizedContexualTyping1.ts, 24, 3)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 24, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 24, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 24, 38)) + +type ObjType = { x: (p: number) => string; y: (p: string) => number }; +>ObjType : Symbol(ObjType, Decl(parenthesizedContexualTyping1.ts, 24, 46)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 26, 16)) +>p : Symbol(p, Decl(parenthesizedContexualTyping1.ts, 26, 21)) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 26, 42)) +>p : Symbol(p, Decl(parenthesizedContexualTyping1.ts, 26, 47)) + +var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; +>obj1 : Symbol(obj1, Decl(parenthesizedContexualTyping1.ts, 27, 3)) +>ObjType : Symbol(ObjType, Decl(parenthesizedContexualTyping1.ts, 24, 46)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 27, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 27, 24)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 27, 24)) +>undefined : Symbol(undefined) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 27, 45)) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 27, 48)) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 27, 48)) +>undefined : Symbol(undefined) + +var obj2: ObjType = ({ x: x => (x, undefined), y: y => (y, undefined) }); +>obj2 : Symbol(obj2, Decl(parenthesizedContexualTyping1.ts, 28, 3)) +>ObjType : Symbol(ObjType, Decl(parenthesizedContexualTyping1.ts, 24, 46)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 28, 22)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 28, 25)) +>x : Symbol(x, Decl(parenthesizedContexualTyping1.ts, 28, 25)) +>undefined : Symbol(undefined) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 28, 46)) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 28, 49)) +>y : Symbol(y, Decl(parenthesizedContexualTyping1.ts, 28, 49)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/parenthesizedContexualTyping1.types b/tests/baselines/reference/parenthesizedContexualTyping1.types index 92aa02fac8a3e..b7307eaf3e7cf 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping1.types +++ b/tests/baselines/reference/parenthesizedContexualTyping1.types @@ -1,305 +1,305 @@ === tests/cases/conformance/expressions/contextualTyping/parenthesizedContexualTyping1.ts === function fun(g: (x: T) => T, x: T): T; ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping1.ts, 1, 16)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 1, 20)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 1, 31)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 1, 13)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } +>T : T +>g : (x: T) => T +>x : T +>T : T +>T : T +>x : T +>T : T +>T : T function fun(g: (x: T) => T, h: (y: T) => T, x: T): T; ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping1.ts, 2, 16)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 2, 20)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) ->h : (y: T) => T, Symbol(h, Decl(parenthesizedContexualTyping1.ts, 2, 31)) ->y : T, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 2, 36)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 2, 47)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 2, 13)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } +>T : T +>g : (x: T) => T +>x : T +>T : T +>T : T +>h : (y: T) => T +>y : T +>T : T +>T : T +>x : T +>T : T +>T : T function fun(g: (x: T) => T, x: T): T { ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping1.ts, 3, 16)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 3, 20)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 3, 31)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping1.ts, 3, 13)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } +>T : T +>g : (x: T) => T +>x : T +>T : T +>T : T +>x : T +>T : T +>T : T return g(x); >g(x) : T ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping1.ts, 3, 16)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 3, 31)) +>g : (x: T) => T +>x : T } var a = fun(x => x, 10); ->a : number, Symbol(a, Decl(parenthesizedContexualTyping1.ts, 7, 3)) +>a : number >fun(x => x, 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 7, 12)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 7, 12)) +>x : number +>x : number >10 : number var b = fun((x => x), 10); ->b : number, Symbol(b, Decl(parenthesizedContexualTyping1.ts, 8, 3)) +>b : number >fun((x => x), 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 8, 13)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 8, 13)) +>x : number +>x : number >10 : number var c = fun(((x => x)), 10); ->c : number, Symbol(c, Decl(parenthesizedContexualTyping1.ts, 9, 3)) +>c : number >fun(((x => x)), 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 9, 14)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 9, 14)) +>x : number +>x : number >10 : number var d = fun((((x => x))), 10); ->d : number, Symbol(d, Decl(parenthesizedContexualTyping1.ts, 10, 3)) +>d : number >fun((((x => x))), 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(((x => x))) : (x: number) => number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 10, 15)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 10, 15)) +>x : number +>x : number >10 : number var e = fun(x => x, x => x, 10); ->e : number, Symbol(e, Decl(parenthesizedContexualTyping1.ts, 12, 3)) +>e : number >fun(x => x, x => x, 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 12)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 12)) +>x : number +>x : number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 19)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 12, 19)) +>x : number +>x : number >10 : number var f = fun((x => x), (x => x), 10); ->f : number, Symbol(f, Decl(parenthesizedContexualTyping1.ts, 13, 3)) +>f : number >fun((x => x), (x => x), 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 13)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 13)) +>x : number +>x : number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 23)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 13, 23)) +>x : number +>x : number >10 : number var g = fun(((x => x)), ((x => x)), 10); ->g : number, Symbol(g, Decl(parenthesizedContexualTyping1.ts, 14, 3)) +>g : number >fun(((x => x)), ((x => x)), 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 14)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 14)) +>x : number +>x : number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 26)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 14, 26)) +>x : number +>x : number >10 : number var h = fun((((x => x))), ((x => x)), 10); ->h : number, Symbol(h, Decl(parenthesizedContexualTyping1.ts, 15, 3)) +>h : number >fun((((x => x))), ((x => x)), 10) : number ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(((x => x))) : (x: number) => number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 15)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 15)) +>x : number +>x : number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 28)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 15, 28)) +>x : number +>x : number >10 : number // Ternaries in parens var i = fun((Math.random() < 0.5 ? x => x : x => undefined), 10); ->i : any, Symbol(i, Decl(parenthesizedContexualTyping1.ts, 18, 3)) +>i : any >fun((Math.random() < 0.5 ? x => x : x => undefined), 10) : any ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(Math.random() < 0.5 ? x => x : x => undefined) : (x: number) => any >Math.random() < 0.5 ? x => x : x => undefined : (x: number) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 18, 34)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 18, 34)) +>x : number +>x : number >x => undefined : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 18, 43)) ->undefined : undefined, Symbol(undefined) +>x : number +>undefined : undefined >10 : number var j = fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), 10); ->j : any, Symbol(j, Decl(parenthesizedContexualTyping1.ts, 19, 3)) +>j : any >fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), 10) : any ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(Math.random() < 0.5 ? (x => x) : (x => undefined)) : (x: number) => any >Math.random() < 0.5 ? (x => x) : (x => undefined) : (x: number) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 19, 36)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 19, 36)) +>x : number +>x : number >(x => undefined) : (x: number) => any >x => undefined : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 19, 47)) ->undefined : undefined, Symbol(undefined) +>x : number +>undefined : undefined >10 : number var k = fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), x => x, 10); ->k : any, Symbol(k, Decl(parenthesizedContexualTyping1.ts, 20, 3)) +>k : any >fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), x => x, 10) : any ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >(Math.random() < 0.5 ? (x => x) : (x => undefined)) : (x: number) => any >Math.random() < 0.5 ? (x => x) : (x => undefined) : (x: number) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 36)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 36)) +>x : number +>x : number >(x => undefined) : (x: number) => any >x => undefined : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 47)) ->undefined : undefined, Symbol(undefined) +>x : number +>undefined : undefined >x => x : (x: any) => any ->x : any, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 64)) ->x : any, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 20, 64)) +>x : any +>x : any >10 : number var l = fun(((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))), ((x => x)), 10); ->l : any, Symbol(l, Decl(parenthesizedContexualTyping1.ts, 21, 3)) +>l : any >fun(((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))), ((x => x)), 10) : any ->fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping1.ts, 0, 0), Decl(parenthesizedContexualTyping1.ts, 1, 41), Decl(parenthesizedContexualTyping1.ts, 2, 57)) +>fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } >((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))) : (x: number) => any >(Math.random() < 0.5 ? ((x => x)) : ((x => undefined))) : (x: number) => any >Math.random() < 0.5 ? ((x => x)) : ((x => undefined)) : (x: number) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 38)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 38)) +>x : number +>x : number >((x => undefined)) : (x: number) => any >(x => undefined) : (x: number) => any >x => undefined : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 51)) ->undefined : undefined, Symbol(undefined) +>x : number +>undefined : undefined >((x => x)) : (x: any) => any >(x => x) : (x: any) => any >x => x : (x: any) => any ->x : any, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 73)) ->x : any, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 21, 73)) +>x : any +>x : any >10 : number var lambda1: (x: number) => number = x => x; ->lambda1 : (x: number) => number, Symbol(lambda1, Decl(parenthesizedContexualTyping1.ts, 23, 3)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 23, 14)) +>lambda1 : (x: number) => number +>x : number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 23, 36)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 23, 36)) +>x : number +>x : number var lambda2: (x: number) => number = (x => x); ->lambda2 : (x: number) => number, Symbol(lambda2, Decl(parenthesizedContexualTyping1.ts, 24, 3)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 24, 14)) +>lambda2 : (x: number) => number +>x : number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 24, 38)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 24, 38)) +>x : number +>x : number type ObjType = { x: (p: number) => string; y: (p: string) => number }; ->ObjType : { x: (p: number) => string; y: (p: string) => number; }, Symbol(ObjType, Decl(parenthesizedContexualTyping1.ts, 24, 46)) ->x : (p: number) => string, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 26, 16)) ->p : number, Symbol(p, Decl(parenthesizedContexualTyping1.ts, 26, 21)) ->y : (p: string) => number, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 26, 42)) ->p : string, Symbol(p, Decl(parenthesizedContexualTyping1.ts, 26, 47)) +>ObjType : { x: (p: number) => string; y: (p: string) => number; } +>x : (p: number) => string +>p : number +>y : (p: string) => number +>p : string var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; ->obj1 : { x: (p: number) => string; y: (p: string) => number; }, Symbol(obj1, Decl(parenthesizedContexualTyping1.ts, 27, 3)) ->ObjType : { x: (p: number) => string; y: (p: string) => number; }, Symbol(ObjType, Decl(parenthesizedContexualTyping1.ts, 24, 46)) +>obj1 : { x: (p: number) => string; y: (p: string) => number; } +>ObjType : { x: (p: number) => string; y: (p: string) => number; } >{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } ->x : (x: number) => any, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 27, 21)) +>x : (x: number) => any >x => (x, undefined) : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 27, 24)) +>x : number >(x, undefined) : undefined >x, undefined : undefined ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 27, 24)) ->undefined : undefined, Symbol(undefined) ->y : (y: string) => any, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 27, 45)) +>x : number +>undefined : undefined +>y : (y: string) => any >y => (y, undefined) : (y: string) => any ->y : string, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 27, 48)) +>y : string >(y, undefined) : undefined >y, undefined : undefined ->y : string, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 27, 48)) ->undefined : undefined, Symbol(undefined) +>y : string +>undefined : undefined var obj2: ObjType = ({ x: x => (x, undefined), y: y => (y, undefined) }); ->obj2 : { x: (p: number) => string; y: (p: string) => number; }, Symbol(obj2, Decl(parenthesizedContexualTyping1.ts, 28, 3)) ->ObjType : { x: (p: number) => string; y: (p: string) => number; }, Symbol(ObjType, Decl(parenthesizedContexualTyping1.ts, 24, 46)) +>obj2 : { x: (p: number) => string; y: (p: string) => number; } +>ObjType : { x: (p: number) => string; y: (p: string) => number; } >({ x: x => (x, undefined), y: y => (y, undefined) }) : { x: (x: number) => any; y: (y: string) => any; } >{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } ->x : (x: number) => any, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 28, 22)) +>x : (x: number) => any >x => (x, undefined) : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 28, 25)) +>x : number >(x, undefined) : undefined >x, undefined : undefined ->x : number, Symbol(x, Decl(parenthesizedContexualTyping1.ts, 28, 25)) ->undefined : undefined, Symbol(undefined) ->y : (y: string) => any, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 28, 46)) +>x : number +>undefined : undefined +>y : (y: string) => any >y => (y, undefined) : (y: string) => any ->y : string, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 28, 49)) +>y : string >(y, undefined) : undefined >y, undefined : undefined ->y : string, Symbol(y, Decl(parenthesizedContexualTyping1.ts, 28, 49)) ->undefined : undefined, Symbol(undefined) +>y : string +>undefined : undefined diff --git a/tests/baselines/reference/parenthesizedContexualTyping2.symbols b/tests/baselines/reference/parenthesizedContexualTyping2.symbols new file mode 100644 index 0000000000000..f7616f07710d5 --- /dev/null +++ b/tests/baselines/reference/parenthesizedContexualTyping2.symbols @@ -0,0 +1,234 @@ +=== tests/cases/conformance/expressions/contextualTyping/parenthesizedContexualTyping2.ts === +// These tests ensure that in cases where it may *appear* that a value has a type, +// they actually are properly being contextually typed. The way we test this is +// that we invoke contextually typed arguments with type arguments. +// Since 'any' cannot be invoked with type arguments, we should get errors +// back if contextual typing is not taking effect. + +type FuncType = (x: (p: T) => T) => typeof x; +>FuncType : Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 6, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 6, 21)) +>p : Symbol(p, Decl(parenthesizedContexualTyping2.ts, 6, 24)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 6, 21)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 6, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 6, 17)) + +function fun(f: FuncType, x: T): T; +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 8, 13)) +>f : Symbol(f, Decl(parenthesizedContexualTyping2.ts, 8, 16)) +>FuncType : Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 8, 28)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 8, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 8, 13)) + +function fun(f: FuncType, g: FuncType, x: T): T; +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 9, 13)) +>f : Symbol(f, Decl(parenthesizedContexualTyping2.ts, 9, 16)) +>FuncType : Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>g : Symbol(g, Decl(parenthesizedContexualTyping2.ts, 9, 28)) +>FuncType : Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 9, 41)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 9, 13)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 9, 13)) + +function fun(...rest: any[]): T { +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 10, 13)) +>rest : Symbol(rest, Decl(parenthesizedContexualTyping2.ts, 10, 16)) +>T : Symbol(T, Decl(parenthesizedContexualTyping2.ts, 10, 13)) + + return undefined; +>undefined : Symbol(undefined) +} + +var a = fun(x => { x(undefined); return x; }, 10); +>a : Symbol(a, Decl(parenthesizedContexualTyping2.ts, 14, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 14, 12)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 14, 12)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 14, 12)) + +var b = fun((x => { x(undefined); return x; }), 10); +>b : Symbol(b, Decl(parenthesizedContexualTyping2.ts, 15, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 15, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 15, 13)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 15, 13)) + +var c = fun(((x => { x(undefined); return x; })), 10); +>c : Symbol(c, Decl(parenthesizedContexualTyping2.ts, 16, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 16, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 16, 14)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 16, 14)) + +var d = fun((((x => { x(undefined); return x; }))), 10); +>d : Symbol(d, Decl(parenthesizedContexualTyping2.ts, 17, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 17, 15)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 17, 15)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 17, 15)) + +var e = fun(x => { x(undefined); return x; }, x => { x(undefined); return x; }, 10); +>e : Symbol(e, Decl(parenthesizedContexualTyping2.ts, 19, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 12)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 12)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 12)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 53)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 53)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 53)) + +var f = fun((x => { x(undefined); return x; }),(x => { x(undefined); return x; }), 10); +>f : Symbol(f, Decl(parenthesizedContexualTyping2.ts, 20, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 13)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 13)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 56)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 56)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 56)) + +var g = fun(((x => { x(undefined); return x; })),((x => { x(undefined); return x; })), 10); +>g : Symbol(g, Decl(parenthesizedContexualTyping2.ts, 21, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 14)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 14)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 59)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 59)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 59)) + +var h = fun((((x => { x(undefined); return x; }))),((x => { x(undefined); return x; })), 10); +>h : Symbol(h, Decl(parenthesizedContexualTyping2.ts, 22, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 15)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 15)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 15)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 61)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 61)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 61)) + +// Ternaries in parens +var i = fun((Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined), 10); +>i : Symbol(i, Decl(parenthesizedContexualTyping2.ts, 25, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 34)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 34)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 34)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 77)) +>undefined : Symbol(undefined) + +var j = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), 10); +>j : Symbol(j, Decl(parenthesizedContexualTyping2.ts, 26, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 36)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 81)) +>undefined : Symbol(undefined) + +var k = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), x => { x(undefined); return x; }, 10); +>k : Symbol(k, Decl(parenthesizedContexualTyping2.ts, 27, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 36)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 36)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 81)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 98)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 98)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 98)) + +var l = fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)))),((x => { x(undefined); return x; })), 10); +>l : Symbol(l, Decl(parenthesizedContexualTyping2.ts, 28, 3)) +>fun : Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>Math.random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math : Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) +>random : Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 38)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 38)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 85)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 106)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 106)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 106)) + +var lambda1: FuncType = x => { x(undefined); return x; }; +>lambda1 : Symbol(lambda1, Decl(parenthesizedContexualTyping2.ts, 30, 3)) +>FuncType : Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 30, 23)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 30, 23)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 30, 23)) + +var lambda2: FuncType = (x => { x(undefined); return x; }); +>lambda2 : Symbol(lambda2, Decl(parenthesizedContexualTyping2.ts, 31, 3)) +>FuncType : Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 31, 25)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 31, 25)) +>undefined : Symbol(undefined) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 31, 25)) + +type ObjType = { x: (p: number) => string; y: (p: string) => number }; +>ObjType : Symbol(ObjType, Decl(parenthesizedContexualTyping2.ts, 31, 67)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 33, 16)) +>p : Symbol(p, Decl(parenthesizedContexualTyping2.ts, 33, 21)) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 33, 42)) +>p : Symbol(p, Decl(parenthesizedContexualTyping2.ts, 33, 47)) + +var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; +>obj1 : Symbol(obj1, Decl(parenthesizedContexualTyping2.ts, 34, 3)) +>ObjType : Symbol(ObjType, Decl(parenthesizedContexualTyping2.ts, 31, 67)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 34, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 34, 24)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 34, 24)) +>undefined : Symbol(undefined) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 34, 45)) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 34, 48)) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 34, 48)) +>undefined : Symbol(undefined) + +var obj2: ObjType = ({ x: x => (x, undefined), y: y => (y, undefined) }); +>obj2 : Symbol(obj2, Decl(parenthesizedContexualTyping2.ts, 35, 3)) +>ObjType : Symbol(ObjType, Decl(parenthesizedContexualTyping2.ts, 31, 67)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 35, 22)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 35, 25)) +>x : Symbol(x, Decl(parenthesizedContexualTyping2.ts, 35, 25)) +>undefined : Symbol(undefined) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 35, 46)) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 35, 49)) +>y : Symbol(y, Decl(parenthesizedContexualTyping2.ts, 35, 49)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/parenthesizedContexualTyping2.types b/tests/baselines/reference/parenthesizedContexualTyping2.types index 3b4976c9c4554..a055f2f1bbd6f 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping2.types +++ b/tests/baselines/reference/parenthesizedContexualTyping2.types @@ -6,361 +6,361 @@ // back if contextual typing is not taking effect. type FuncType = (x: (p: T) => T) => typeof x; ->FuncType : (x: (p: T) => T) => (p: T) => T, Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 6, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 6, 21)) ->p : T, Symbol(p, Decl(parenthesizedContexualTyping2.ts, 6, 24)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 6, 21)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 6, 21)) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 6, 17)) +>FuncType : (x: (p: T) => T) => (p: T) => T +>x : (p: T) => T +>T : T +>p : T +>T : T +>T : T +>x : (p: T) => T function fun(f: FuncType, x: T): T; ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 8, 13)) ->f : (x: (p: T) => T) => (p: T) => T, Symbol(f, Decl(parenthesizedContexualTyping2.ts, 8, 16)) ->FuncType : (x: (p: T) => T) => (p: T) => T, Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 8, 28)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 8, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 8, 13)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } +>T : T +>f : (x: (p: T) => T) => (p: T) => T +>FuncType : (x: (p: T) => T) => (p: T) => T +>x : T +>T : T +>T : T function fun(f: FuncType, g: FuncType, x: T): T; ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 9, 13)) ->f : (x: (p: T) => T) => (p: T) => T, Symbol(f, Decl(parenthesizedContexualTyping2.ts, 9, 16)) ->FuncType : (x: (p: T) => T) => (p: T) => T, Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) ->g : (x: (p: T) => T) => (p: T) => T, Symbol(g, Decl(parenthesizedContexualTyping2.ts, 9, 28)) ->FuncType : (x: (p: T) => T) => (p: T) => T, Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 9, 41)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 9, 13)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 9, 13)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } +>T : T +>f : (x: (p: T) => T) => (p: T) => T +>FuncType : (x: (p: T) => T) => (p: T) => T +>g : (x: (p: T) => T) => (p: T) => T +>FuncType : (x: (p: T) => T) => (p: T) => T +>x : T +>T : T +>T : T function fun(...rest: any[]): T { ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 10, 13)) ->rest : any[], Symbol(rest, Decl(parenthesizedContexualTyping2.ts, 10, 16)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping2.ts, 10, 13)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } +>T : T +>rest : any[] +>T : T return undefined; ->undefined : undefined, Symbol(undefined) +>undefined : undefined } var a = fun(x => { x(undefined); return x; }, 10); ->a : number, Symbol(a, Decl(parenthesizedContexualTyping2.ts, 14, 3)) +>a : number >fun(x => { x(undefined); return x; }, 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 14, 12)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 14, 12)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 14, 12)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var b = fun((x => { x(undefined); return x; }), 10); ->b : number, Symbol(b, Decl(parenthesizedContexualTyping2.ts, 15, 3)) +>b : number >fun((x => { x(undefined); return x; }), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 15, 13)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 15, 13)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 15, 13)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var c = fun(((x => { x(undefined); return x; })), 10); ->c : number, Symbol(c, Decl(parenthesizedContexualTyping2.ts, 16, 3)) +>c : number >fun(((x => { x(undefined); return x; })), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 16, 14)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 16, 14)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 16, 14)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var d = fun((((x => { x(undefined); return x; }))), 10); ->d : number, Symbol(d, Decl(parenthesizedContexualTyping2.ts, 17, 3)) +>d : number >fun((((x => { x(undefined); return x; }))), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(((x => { x(undefined); return x; }))) : (x: (p: T) => T) => (p: T) => T >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 17, 15)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 17, 15)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 17, 15)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var e = fun(x => { x(undefined); return x; }, x => { x(undefined); return x; }, 10); ->e : number, Symbol(e, Decl(parenthesizedContexualTyping2.ts, 19, 3)) +>e : number >fun(x => { x(undefined); return x; }, x => { x(undefined); return x; }, 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 12)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 12)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 12)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 53)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 53)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 19, 53)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var f = fun((x => { x(undefined); return x; }),(x => { x(undefined); return x; }), 10); ->f : number, Symbol(f, Decl(parenthesizedContexualTyping2.ts, 20, 3)) +>f : number >fun((x => { x(undefined); return x; }),(x => { x(undefined); return x; }), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 13)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 13)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 13)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 56)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 56)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 20, 56)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var g = fun(((x => { x(undefined); return x; })),((x => { x(undefined); return x; })), 10); ->g : number, Symbol(g, Decl(parenthesizedContexualTyping2.ts, 21, 3)) +>g : number >fun(((x => { x(undefined); return x; })),((x => { x(undefined); return x; })), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 14)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 14)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 14)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 59)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 59)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 21, 59)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var h = fun((((x => { x(undefined); return x; }))),((x => { x(undefined); return x; })), 10); ->h : number, Symbol(h, Decl(parenthesizedContexualTyping2.ts, 22, 3)) +>h : number >fun((((x => { x(undefined); return x; }))),((x => { x(undefined); return x; })), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(((x => { x(undefined); return x; }))) : (x: (p: T) => T) => (p: T) => T >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 15)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 15)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 15)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 61)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 61)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 22, 61)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number // Ternaries in parens var i = fun((Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined), 10); ->i : number, Symbol(i, Decl(parenthesizedContexualTyping2.ts, 25, 3)) +>i : number >fun((Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined) : (x: (p: T) => T) => any >Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined : (x: (p: T) => T) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 34)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 34)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 34)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >x => undefined : (x: (p: T) => T) => any ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 25, 77)) ->undefined : undefined, Symbol(undefined) +>x : (p: T) => T +>undefined : undefined >10 : number var j = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), 10); ->j : number, Symbol(j, Decl(parenthesizedContexualTyping2.ts, 26, 3)) +>j : number >fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)) : (x: (p: T) => T) => any >Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined) : (x: (p: T) => T) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 36)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 36)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 36)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >(x => undefined) : (x: (p: T) => T) => any >x => undefined : (x: (p: T) => T) => any ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 26, 81)) ->undefined : undefined, Symbol(undefined) +>x : (p: T) => T +>undefined : undefined >10 : number var k = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), x => { x(undefined); return x; }, 10); ->k : number, Symbol(k, Decl(parenthesizedContexualTyping2.ts, 27, 3)) +>k : number >fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), x => { x(undefined); return x; }, 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >(Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)) : (x: (p: T) => T) => any >Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined) : (x: (p: T) => T) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 36)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 36)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 36)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >(x => undefined) : (x: (p: T) => T) => any >x => undefined : (x: (p: T) => T) => any ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 81)) ->undefined : undefined, Symbol(undefined) +>x : (p: T) => T +>undefined : undefined >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 98)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 98)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 27, 98)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var l = fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)))),((x => { x(undefined); return x; })), 10); ->l : number, Symbol(l, Decl(parenthesizedContexualTyping2.ts, 28, 3)) +>l : number >fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)))),((x => { x(undefined); return x; })), 10) : number ->fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; }, Symbol(fun, Decl(parenthesizedContexualTyping2.ts, 6, 48), Decl(parenthesizedContexualTyping2.ts, 8, 38), Decl(parenthesizedContexualTyping2.ts, 9, 51)) +>fun : { (f: (x: (p: T) => T) => (p: T) => T, x: T): T; (f: (x: (p: T) => T) => (p: T) => T, g: (x: (p: T) => T) => (p: T) => T, x: T): T; } >((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)))) : (x: (p: T) => T) => any >(Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined))) : (x: (p: T) => T) => any >Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)) : (x: (p: T) => T) => any >Math.random() < 0.5 : boolean >Math.random() : number ->Math.random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) ->Math : Math, Symbol(Math, Decl(lib.d.ts, 522, 1), Decl(lib.d.ts, 633, 11)) ->random : () => number, Symbol(Math.random, Decl(lib.d.ts, 608, 38)) +>Math.random : () => number +>Math : Math +>random : () => number >0.5 : number >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 38)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 38)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 38)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >((x => undefined)) : (x: (p: T) => T) => any >(x => undefined) : (x: (p: T) => T) => any >x => undefined : (x: (p: T) => T) => any ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 85)) ->undefined : undefined, Symbol(undefined) +>x : (p: T) => T +>undefined : undefined >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 106)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 106)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 28, 106)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T >10 : number var lambda1: FuncType = x => { x(undefined); return x; }; ->lambda1 : (x: (p: T) => T) => (p: T) => T, Symbol(lambda1, Decl(parenthesizedContexualTyping2.ts, 30, 3)) ->FuncType : (x: (p: T) => T) => (p: T) => T, Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>lambda1 : (x: (p: T) => T) => (p: T) => T +>FuncType : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 30, 23)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 30, 23)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 30, 23)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T var lambda2: FuncType = (x => { x(undefined); return x; }); ->lambda2 : (x: (p: T) => T) => (p: T) => T, Symbol(lambda2, Decl(parenthesizedContexualTyping2.ts, 31, 3)) ->FuncType : (x: (p: T) => T) => (p: T) => T, Symbol(FuncType, Decl(parenthesizedContexualTyping2.ts, 0, 0)) +>lambda2 : (x: (p: T) => T) => (p: T) => T +>FuncType : (x: (p: T) => T) => (p: T) => T >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 31, 25)) +>x : (p: T) => T >x(undefined) : number ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 31, 25)) ->undefined : undefined, Symbol(undefined) ->x : (p: T) => T, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 31, 25)) +>x : (p: T) => T +>undefined : undefined +>x : (p: T) => T type ObjType = { x: (p: number) => string; y: (p: string) => number }; ->ObjType : { x: (p: number) => string; y: (p: string) => number; }, Symbol(ObjType, Decl(parenthesizedContexualTyping2.ts, 31, 67)) ->x : (p: number) => string, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 33, 16)) ->p : number, Symbol(p, Decl(parenthesizedContexualTyping2.ts, 33, 21)) ->y : (p: string) => number, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 33, 42)) ->p : string, Symbol(p, Decl(parenthesizedContexualTyping2.ts, 33, 47)) +>ObjType : { x: (p: number) => string; y: (p: string) => number; } +>x : (p: number) => string +>p : number +>y : (p: string) => number +>p : string var obj1: ObjType = { x: x => (x, undefined), y: y => (y, undefined) }; ->obj1 : { x: (p: number) => string; y: (p: string) => number; }, Symbol(obj1, Decl(parenthesizedContexualTyping2.ts, 34, 3)) ->ObjType : { x: (p: number) => string; y: (p: string) => number; }, Symbol(ObjType, Decl(parenthesizedContexualTyping2.ts, 31, 67)) +>obj1 : { x: (p: number) => string; y: (p: string) => number; } +>ObjType : { x: (p: number) => string; y: (p: string) => number; } >{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } ->x : (x: number) => any, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 34, 21)) +>x : (x: number) => any >x => (x, undefined) : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 34, 24)) +>x : number >(x, undefined) : undefined >x, undefined : undefined ->x : number, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 34, 24)) ->undefined : undefined, Symbol(undefined) ->y : (y: string) => any, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 34, 45)) +>x : number +>undefined : undefined +>y : (y: string) => any >y => (y, undefined) : (y: string) => any ->y : string, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 34, 48)) +>y : string >(y, undefined) : undefined >y, undefined : undefined ->y : string, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 34, 48)) ->undefined : undefined, Symbol(undefined) +>y : string +>undefined : undefined var obj2: ObjType = ({ x: x => (x, undefined), y: y => (y, undefined) }); ->obj2 : { x: (p: number) => string; y: (p: string) => number; }, Symbol(obj2, Decl(parenthesizedContexualTyping2.ts, 35, 3)) ->ObjType : { x: (p: number) => string; y: (p: string) => number; }, Symbol(ObjType, Decl(parenthesizedContexualTyping2.ts, 31, 67)) +>obj2 : { x: (p: number) => string; y: (p: string) => number; } +>ObjType : { x: (p: number) => string; y: (p: string) => number; } >({ x: x => (x, undefined), y: y => (y, undefined) }) : { x: (x: number) => any; y: (y: string) => any; } >{ x: x => (x, undefined), y: y => (y, undefined) } : { x: (x: number) => any; y: (y: string) => any; } ->x : (x: number) => any, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 35, 22)) +>x : (x: number) => any >x => (x, undefined) : (x: number) => any ->x : number, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 35, 25)) +>x : number >(x, undefined) : undefined >x, undefined : undefined ->x : number, Symbol(x, Decl(parenthesizedContexualTyping2.ts, 35, 25)) ->undefined : undefined, Symbol(undefined) ->y : (y: string) => any, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 35, 46)) +>x : number +>undefined : undefined +>y : (y: string) => any >y => (y, undefined) : (y: string) => any ->y : string, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 35, 49)) +>y : string >(y, undefined) : undefined >y, undefined : undefined ->y : string, Symbol(y, Decl(parenthesizedContexualTyping2.ts, 35, 49)) ->undefined : undefined, Symbol(undefined) +>y : string +>undefined : undefined diff --git a/tests/baselines/reference/parenthesizedContexualTyping3.symbols b/tests/baselines/reference/parenthesizedContexualTyping3.symbols new file mode 100644 index 0000000000000..b0d696e2d210b --- /dev/null +++ b/tests/baselines/reference/parenthesizedContexualTyping3.symbols @@ -0,0 +1,114 @@ +=== tests/cases/conformance/expressions/contextualTyping/parenthesizedContexualTyping3.ts === + +// Contextual typing for parenthesized substitution expressions in tagged templates. + +/** + * tempFun - Can't have fun for too long. + */ +function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) +>tempStrs : Symbol(tempStrs, Decl(parenthesizedContexualTyping3.ts, 6, 20)) +>TemplateStringsArray : Symbol(TemplateStringsArray, Decl(lib.d.ts, 518, 38)) +>g : Symbol(g, Decl(parenthesizedContexualTyping3.ts, 6, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 6, 56)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 6, 67)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) + +function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>tempStrs : Symbol(tempStrs, Decl(parenthesizedContexualTyping3.ts, 7, 20)) +>TemplateStringsArray : Symbol(TemplateStringsArray, Decl(lib.d.ts, 518, 38)) +>g : Symbol(g, Decl(parenthesizedContexualTyping3.ts, 7, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 7, 56)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>h : Symbol(h, Decl(parenthesizedContexualTyping3.ts, 7, 67)) +>y : Symbol(y, Decl(parenthesizedContexualTyping3.ts, 7, 72)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 7, 83)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) + +function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T { +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) +>tempStrs : Symbol(tempStrs, Decl(parenthesizedContexualTyping3.ts, 8, 20)) +>TemplateStringsArray : Symbol(TemplateStringsArray, Decl(lib.d.ts, 518, 38)) +>g : Symbol(g, Decl(parenthesizedContexualTyping3.ts, 8, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 8, 56)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 8, 67)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) +>T : Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) + + return g(x); +>g : Symbol(g, Decl(parenthesizedContexualTyping3.ts, 8, 51)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 8, 67)) +} + +var a = tempFun `${ x => x } ${ 10 }` +>a : Symbol(a, Decl(parenthesizedContexualTyping3.ts, 12, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 12, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 12, 19)) + +var b = tempFun `${ (x => x) } ${ 10 }` +>b : Symbol(b, Decl(parenthesizedContexualTyping3.ts, 13, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 13, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 13, 21)) + +var c = tempFun `${ ((x => x)) } ${ 10 }` +>c : Symbol(c, Decl(parenthesizedContexualTyping3.ts, 14, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 14, 22)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 14, 22)) + +var d = tempFun `${ x => x } ${ x => x } ${ 10 }` +>d : Symbol(d, Decl(parenthesizedContexualTyping3.ts, 15, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 31)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 31)) + +var e = tempFun `${ x => x } ${ (x => x) } ${ 10 }` +>e : Symbol(e, Decl(parenthesizedContexualTyping3.ts, 16, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 33)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 33)) + +var f = tempFun `${ x => x } ${ ((x => x)) } ${ 10 }` +>f : Symbol(f, Decl(parenthesizedContexualTyping3.ts, 17, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 19)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 34)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 34)) + +var g = tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }` +>g : Symbol(g, Decl(parenthesizedContexualTyping3.ts, 18, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 37)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 37)) + +var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` +>h : Symbol(h, Decl(parenthesizedContexualTyping3.ts, 19, 3)) +>tempFun : Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 21)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 37)) +>x : Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 37)) +>undefined : Symbol(undefined) + diff --git a/tests/baselines/reference/parenthesizedContexualTyping3.types b/tests/baselines/reference/parenthesizedContexualTyping3.types index 0bc60b57e3882..5d424e5a7b0d1 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping3.types +++ b/tests/baselines/reference/parenthesizedContexualTyping3.types @@ -6,160 +6,160 @@ * tempFun - Can't have fun for too long. */ function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) ->tempStrs : TemplateStringsArray, Symbol(tempStrs, Decl(parenthesizedContexualTyping3.ts, 6, 20)) ->TemplateStringsArray : TemplateStringsArray, Symbol(TemplateStringsArray, Decl(lib.d.ts, 518, 38)) ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping3.ts, 6, 51)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 6, 56)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 6, 67)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 6, 17)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } +>T : T +>tempStrs : TemplateStringsArray +>TemplateStringsArray : TemplateStringsArray +>g : (x: T) => T +>x : T +>T : T +>T : T +>x : T +>T : T +>T : T function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) ->tempStrs : TemplateStringsArray, Symbol(tempStrs, Decl(parenthesizedContexualTyping3.ts, 7, 20)) ->TemplateStringsArray : TemplateStringsArray, Symbol(TemplateStringsArray, Decl(lib.d.ts, 518, 38)) ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping3.ts, 7, 51)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 7, 56)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) ->h : (y: T) => T, Symbol(h, Decl(parenthesizedContexualTyping3.ts, 7, 67)) ->y : T, Symbol(y, Decl(parenthesizedContexualTyping3.ts, 7, 72)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 7, 83)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 7, 17)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } +>T : T +>tempStrs : TemplateStringsArray +>TemplateStringsArray : TemplateStringsArray +>g : (x: T) => T +>x : T +>T : T +>T : T +>h : (y: T) => T +>y : T +>T : T +>T : T +>x : T +>T : T +>T : T function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T { ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) ->tempStrs : TemplateStringsArray, Symbol(tempStrs, Decl(parenthesizedContexualTyping3.ts, 8, 20)) ->TemplateStringsArray : TemplateStringsArray, Symbol(TemplateStringsArray, Decl(lib.d.ts, 518, 38)) ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping3.ts, 8, 51)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 8, 56)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 8, 67)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) ->T : T, Symbol(T, Decl(parenthesizedContexualTyping3.ts, 8, 17)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } +>T : T +>tempStrs : TemplateStringsArray +>TemplateStringsArray : TemplateStringsArray +>g : (x: T) => T +>x : T +>T : T +>T : T +>x : T +>T : T +>T : T return g(x); >g(x) : T ->g : (x: T) => T, Symbol(g, Decl(parenthesizedContexualTyping3.ts, 8, 51)) ->x : T, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 8, 67)) +>g : (x: T) => T +>x : T } var a = tempFun `${ x => x } ${ 10 }` ->a : number, Symbol(a, Decl(parenthesizedContexualTyping3.ts, 12, 3)) +>a : number >tempFun `${ x => x } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ x => x } ${ 10 }` : string >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 12, 19)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 12, 19)) +>x : number +>x : number >10 : number var b = tempFun `${ (x => x) } ${ 10 }` ->b : number, Symbol(b, Decl(parenthesizedContexualTyping3.ts, 13, 3)) +>b : number >tempFun `${ (x => x) } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ (x => x) } ${ 10 }` : string >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 13, 21)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 13, 21)) +>x : number +>x : number >10 : number var c = tempFun `${ ((x => x)) } ${ 10 }` ->c : number, Symbol(c, Decl(parenthesizedContexualTyping3.ts, 14, 3)) +>c : number >tempFun `${ ((x => x)) } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ ((x => x)) } ${ 10 }` : string >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 14, 22)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 14, 22)) +>x : number +>x : number >10 : number var d = tempFun `${ x => x } ${ x => x } ${ 10 }` ->d : number, Symbol(d, Decl(parenthesizedContexualTyping3.ts, 15, 3)) +>d : number >tempFun `${ x => x } ${ x => x } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ x => x } ${ x => x } ${ 10 }` : string >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 19)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 19)) +>x : number +>x : number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 31)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 15, 31)) +>x : number +>x : number >10 : number var e = tempFun `${ x => x } ${ (x => x) } ${ 10 }` ->e : number, Symbol(e, Decl(parenthesizedContexualTyping3.ts, 16, 3)) +>e : number >tempFun `${ x => x } ${ (x => x) } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ x => x } ${ (x => x) } ${ 10 }` : string >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 19)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 19)) +>x : number +>x : number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 33)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 16, 33)) +>x : number +>x : number >10 : number var f = tempFun `${ x => x } ${ ((x => x)) } ${ 10 }` ->f : number, Symbol(f, Decl(parenthesizedContexualTyping3.ts, 17, 3)) +>f : number >tempFun `${ x => x } ${ ((x => x)) } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ x => x } ${ ((x => x)) } ${ 10 }` : string >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 19)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 19)) +>x : number +>x : number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 34)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 17, 34)) +>x : number +>x : number >10 : number var g = tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }` ->g : number, Symbol(g, Decl(parenthesizedContexualTyping3.ts, 18, 3)) +>g : number >tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }` : number ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ (x => x) } ${ (((x => x))) } ${ 10 }` : string >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 21)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 21)) +>x : number +>x : number >(((x => x))) : (x: number) => number >((x => x)) : (x: number) => number >(x => x) : (x: number) => number >x => x : (x: number) => number ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 37)) ->x : number, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 18, 37)) +>x : number +>x : number >10 : number var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` ->h : any, Symbol(h, Decl(parenthesizedContexualTyping3.ts, 19, 3)) +>h : any >tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` : any ->tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; }, Symbol(tempFun, Decl(parenthesizedContexualTyping3.ts, 0, 0), Decl(parenthesizedContexualTyping3.ts, 6, 77), Decl(parenthesizedContexualTyping3.ts, 7, 93)) +>tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } >`${ (x => x) } ${ (((x => x))) } ${ undefined }` : string >(x => x) : (x: any) => any >x => x : (x: any) => any ->x : any, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 21)) ->x : any, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 21)) +>x : any +>x : any >(((x => x))) : (x: any) => any >((x => x)) : (x: any) => any >(x => x) : (x: any) => any >x => x : (x: any) => any ->x : any, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 37)) ->x : any, Symbol(x, Decl(parenthesizedContexualTyping3.ts, 19, 37)) ->undefined : undefined, Symbol(undefined) +>x : any +>x : any +>undefined : undefined diff --git a/tests/baselines/reference/parenthesizedTypes.symbols b/tests/baselines/reference/parenthesizedTypes.symbols new file mode 100644 index 0000000000000..ec0ec4e4c6f63 --- /dev/null +++ b/tests/baselines/reference/parenthesizedTypes.symbols @@ -0,0 +1,84 @@ +=== tests/cases/conformance/types/specifyingTypes/typeLiterals/parenthesizedTypes.ts === +var a: string; +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + +var a: (string); +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + +var a: ((string) | string | (((string)))); +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + +var a: ((((((((((((((((((((((((((((((((((((((((string)))))))))))))))))))))))))))))))))))))))); +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + +var b: (x: string) => string; +>b : Symbol(b, Decl(parenthesizedTypes.ts, 5, 3), Decl(parenthesizedTypes.ts, 6, 3)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 5, 8)) + +var b: ((x: (string)) => (string)); +>b : Symbol(b, Decl(parenthesizedTypes.ts, 5, 3), Decl(parenthesizedTypes.ts, 6, 3)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 6, 9)) + +var c: string[] | number[]; +>c : Symbol(c, Decl(parenthesizedTypes.ts, 8, 3), Decl(parenthesizedTypes.ts, 9, 3), Decl(parenthesizedTypes.ts, 10, 3)) + +var c: (string)[] | (number)[]; +>c : Symbol(c, Decl(parenthesizedTypes.ts, 8, 3), Decl(parenthesizedTypes.ts, 9, 3), Decl(parenthesizedTypes.ts, 10, 3)) + +var c: ((string)[]) | ((number)[]); +>c : Symbol(c, Decl(parenthesizedTypes.ts, 8, 3), Decl(parenthesizedTypes.ts, 9, 3), Decl(parenthesizedTypes.ts, 10, 3)) + +var d: (((x: string) => string) | ((x: number) => number))[]; +>d : Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 12, 10)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 12, 36)) + +var d: ({ (x: string): string } | { (x: number): number })[]; +>d : Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 13, 11)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 13, 37)) + +var d: Array<((x: string) => string) | ((x: number) => number)>; +>d : Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 14, 15)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 14, 41)) + +var d: Array<{ (x: string): string } | { (x: number): number }>; +>d : Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 15, 16)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 15, 42)) + +var d: (Array<{ (x: string): string } | { (x: number): number }>); +>d : Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) +>Array : Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 16, 17)) +>x : Symbol(x, Decl(parenthesizedTypes.ts, 16, 43)) + +var e: typeof a[]; +>e : Symbol(e, Decl(parenthesizedTypes.ts, 18, 3), Decl(parenthesizedTypes.ts, 19, 3)) +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + +var e: (typeof a)[]; +>e : Symbol(e, Decl(parenthesizedTypes.ts, 18, 3), Decl(parenthesizedTypes.ts, 19, 3)) +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + +var f: (string) => string; +>f : Symbol(f, Decl(parenthesizedTypes.ts, 21, 3), Decl(parenthesizedTypes.ts, 22, 3)) +>string : Symbol(string, Decl(parenthesizedTypes.ts, 21, 8)) + +var f: (string: any) => string; +>f : Symbol(f, Decl(parenthesizedTypes.ts, 21, 3), Decl(parenthesizedTypes.ts, 22, 3)) +>string : Symbol(string, Decl(parenthesizedTypes.ts, 22, 8)) + +var g: [string, string]; +>g : Symbol(g, Decl(parenthesizedTypes.ts, 24, 3), Decl(parenthesizedTypes.ts, 25, 3), Decl(parenthesizedTypes.ts, 26, 3)) + +var g: [(string), string]; +>g : Symbol(g, Decl(parenthesizedTypes.ts, 24, 3), Decl(parenthesizedTypes.ts, 25, 3), Decl(parenthesizedTypes.ts, 26, 3)) + +var g: [(string), (((typeof a)))]; +>g : Symbol(g, Decl(parenthesizedTypes.ts, 24, 3), Decl(parenthesizedTypes.ts, 25, 3), Decl(parenthesizedTypes.ts, 26, 3)) +>a : Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) + diff --git a/tests/baselines/reference/parenthesizedTypes.types b/tests/baselines/reference/parenthesizedTypes.types index ca03d64bacebd..4b7129b37827b 100644 --- a/tests/baselines/reference/parenthesizedTypes.types +++ b/tests/baselines/reference/parenthesizedTypes.types @@ -1,84 +1,84 @@ === tests/cases/conformance/types/specifyingTypes/typeLiterals/parenthesizedTypes.ts === var a: string; ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>a : string var a: (string); ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>a : string var a: ((string) | string | (((string)))); ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>a : string var a: ((((((((((((((((((((((((((((((((((((((((string)))))))))))))))))))))))))))))))))))))))); ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>a : string var b: (x: string) => string; ->b : (x: string) => string, Symbol(b, Decl(parenthesizedTypes.ts, 5, 3), Decl(parenthesizedTypes.ts, 6, 3)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 5, 8)) +>b : (x: string) => string +>x : string var b: ((x: (string)) => (string)); ->b : (x: string) => string, Symbol(b, Decl(parenthesizedTypes.ts, 5, 3), Decl(parenthesizedTypes.ts, 6, 3)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 6, 9)) +>b : (x: string) => string +>x : string var c: string[] | number[]; ->c : string[] | number[], Symbol(c, Decl(parenthesizedTypes.ts, 8, 3), Decl(parenthesizedTypes.ts, 9, 3), Decl(parenthesizedTypes.ts, 10, 3)) +>c : string[] | number[] var c: (string)[] | (number)[]; ->c : string[] | number[], Symbol(c, Decl(parenthesizedTypes.ts, 8, 3), Decl(parenthesizedTypes.ts, 9, 3), Decl(parenthesizedTypes.ts, 10, 3)) +>c : string[] | number[] var c: ((string)[]) | ((number)[]); ->c : string[] | number[], Symbol(c, Decl(parenthesizedTypes.ts, 8, 3), Decl(parenthesizedTypes.ts, 9, 3), Decl(parenthesizedTypes.ts, 10, 3)) +>c : string[] | number[] var d: (((x: string) => string) | ((x: number) => number))[]; ->d : (((x: string) => string) | ((x: number) => number))[], Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 12, 10)) ->x : number, Symbol(x, Decl(parenthesizedTypes.ts, 12, 36)) +>d : (((x: string) => string) | ((x: number) => number))[] +>x : string +>x : number var d: ({ (x: string): string } | { (x: number): number })[]; ->d : (((x: string) => string) | ((x: number) => number))[], Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 13, 11)) ->x : number, Symbol(x, Decl(parenthesizedTypes.ts, 13, 37)) +>d : (((x: string) => string) | ((x: number) => number))[] +>x : string +>x : number var d: Array<((x: string) => string) | ((x: number) => number)>; ->d : (((x: string) => string) | ((x: number) => number))[], Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 14, 15)) ->x : number, Symbol(x, Decl(parenthesizedTypes.ts, 14, 41)) +>d : (((x: string) => string) | ((x: number) => number))[] +>Array : T[] +>x : string +>x : number var d: Array<{ (x: string): string } | { (x: number): number }>; ->d : (((x: string) => string) | ((x: number) => number))[], Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 15, 16)) ->x : number, Symbol(x, Decl(parenthesizedTypes.ts, 15, 42)) +>d : (((x: string) => string) | ((x: number) => number))[] +>Array : T[] +>x : string +>x : number var d: (Array<{ (x: string): string } | { (x: number): number }>); ->d : (((x: string) => string) | ((x: number) => number))[], Symbol(d, Decl(parenthesizedTypes.ts, 12, 3), Decl(parenthesizedTypes.ts, 13, 3), Decl(parenthesizedTypes.ts, 14, 3), Decl(parenthesizedTypes.ts, 15, 3), Decl(parenthesizedTypes.ts, 16, 3)) ->Array : T[], Symbol(Array, Decl(lib.d.ts, 1000, 23), Decl(lib.d.ts, 1171, 11)) ->x : string, Symbol(x, Decl(parenthesizedTypes.ts, 16, 17)) ->x : number, Symbol(x, Decl(parenthesizedTypes.ts, 16, 43)) +>d : (((x: string) => string) | ((x: number) => number))[] +>Array : T[] +>x : string +>x : number var e: typeof a[]; ->e : string[], Symbol(e, Decl(parenthesizedTypes.ts, 18, 3), Decl(parenthesizedTypes.ts, 19, 3)) ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>e : string[] +>a : string var e: (typeof a)[]; ->e : string[], Symbol(e, Decl(parenthesizedTypes.ts, 18, 3), Decl(parenthesizedTypes.ts, 19, 3)) ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>e : string[] +>a : string var f: (string) => string; ->f : (string: any) => string, Symbol(f, Decl(parenthesizedTypes.ts, 21, 3), Decl(parenthesizedTypes.ts, 22, 3)) ->string : any, Symbol(string, Decl(parenthesizedTypes.ts, 21, 8)) +>f : (string: any) => string +>string : any var f: (string: any) => string; ->f : (string: any) => string, Symbol(f, Decl(parenthesizedTypes.ts, 21, 3), Decl(parenthesizedTypes.ts, 22, 3)) ->string : any, Symbol(string, Decl(parenthesizedTypes.ts, 22, 8)) +>f : (string: any) => string +>string : any var g: [string, string]; ->g : [string, string], Symbol(g, Decl(parenthesizedTypes.ts, 24, 3), Decl(parenthesizedTypes.ts, 25, 3), Decl(parenthesizedTypes.ts, 26, 3)) +>g : [string, string] var g: [(string), string]; ->g : [string, string], Symbol(g, Decl(parenthesizedTypes.ts, 24, 3), Decl(parenthesizedTypes.ts, 25, 3), Decl(parenthesizedTypes.ts, 26, 3)) +>g : [string, string] var g: [(string), (((typeof a)))]; ->g : [string, string], Symbol(g, Decl(parenthesizedTypes.ts, 24, 3), Decl(parenthesizedTypes.ts, 25, 3), Decl(parenthesizedTypes.ts, 26, 3)) ->a : string, Symbol(a, Decl(parenthesizedTypes.ts, 0, 3), Decl(parenthesizedTypes.ts, 1, 3), Decl(parenthesizedTypes.ts, 2, 3), Decl(parenthesizedTypes.ts, 3, 3)) +>g : [string, string] +>a : string diff --git a/tests/baselines/reference/parseShortform.symbols b/tests/baselines/reference/parseShortform.symbols new file mode 100644 index 0000000000000..31310e7bbb7ea --- /dev/null +++ b/tests/baselines/reference/parseShortform.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/parseShortform.ts === +interface I { +>I : Symbol(I, Decl(parseShortform.ts, 0, 0)) + + w: { +>w : Symbol(w, Decl(parseShortform.ts, 0, 13)) + + z: I; +>z : Symbol(z, Decl(parseShortform.ts, 1, 8)) +>I : Symbol(I, Decl(parseShortform.ts, 0, 0)) + + (): boolean; + [s: string]: { x: any; y: any; }; +>s : Symbol(s, Decl(parseShortform.ts, 4, 9)) +>x : Symbol(x, Decl(parseShortform.ts, 4, 22)) +>y : Symbol(y, Decl(parseShortform.ts, 4, 30)) + + [n: number]: { x: any; y: any; }; +>n : Symbol(n, Decl(parseShortform.ts, 5, 9)) +>x : Symbol(x, Decl(parseShortform.ts, 5, 22)) +>y : Symbol(y, Decl(parseShortform.ts, 5, 30)) + + }; + x: boolean; +>x : Symbol(x, Decl(parseShortform.ts, 6, 6)) + + y: (s: string) => boolean; +>y : Symbol(y, Decl(parseShortform.ts, 7, 15)) +>s : Symbol(s, Decl(parseShortform.ts, 8, 8)) + + z: I; +>z : Symbol(z, Decl(parseShortform.ts, 8, 30)) +>I : Symbol(I, Decl(parseShortform.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parseShortform.types b/tests/baselines/reference/parseShortform.types index 65349f35954cd..e9e3f68b559e6 100644 --- a/tests/baselines/reference/parseShortform.types +++ b/tests/baselines/reference/parseShortform.types @@ -1,34 +1,34 @@ === tests/cases/compiler/parseShortform.ts === interface I { ->I : I, Symbol(I, Decl(parseShortform.ts, 0, 0)) +>I : I w: { ->w : { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; }, Symbol(w, Decl(parseShortform.ts, 0, 13)) +>w : { (): boolean; [s: string]: { x: any; y: any; }; [n: number]: { x: any; y: any; }; z: I; } z: I; ->z : I, Symbol(z, Decl(parseShortform.ts, 1, 8)) ->I : I, Symbol(I, Decl(parseShortform.ts, 0, 0)) +>z : I +>I : I (): boolean; [s: string]: { x: any; y: any; }; ->s : string, Symbol(s, Decl(parseShortform.ts, 4, 9)) ->x : any, Symbol(x, Decl(parseShortform.ts, 4, 22)) ->y : any, Symbol(y, Decl(parseShortform.ts, 4, 30)) +>s : string +>x : any +>y : any [n: number]: { x: any; y: any; }; ->n : number, Symbol(n, Decl(parseShortform.ts, 5, 9)) ->x : any, Symbol(x, Decl(parseShortform.ts, 5, 22)) ->y : any, Symbol(y, Decl(parseShortform.ts, 5, 30)) +>n : number +>x : any +>y : any }; x: boolean; ->x : boolean, Symbol(x, Decl(parseShortform.ts, 6, 6)) +>x : boolean y: (s: string) => boolean; ->y : (s: string) => boolean, Symbol(y, Decl(parseShortform.ts, 7, 15)) ->s : string, Symbol(s, Decl(parseShortform.ts, 8, 8)) +>y : (s: string) => boolean +>s : string z: I; ->z : I, Symbol(z, Decl(parseShortform.ts, 8, 30)) ->I : I, Symbol(I, Decl(parseShortform.ts, 0, 0)) +>z : I +>I : I } diff --git a/tests/baselines/reference/parser509677.symbols b/tests/baselines/reference/parser509677.symbols new file mode 100644 index 0000000000000..6d5f81e5c42c7 --- /dev/null +++ b/tests/baselines/reference/parser509677.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509677.ts === +var n: { y: string }; +>n : Symbol(n, Decl(parser509677.ts, 0, 3)) +>y : Symbol(y, Decl(parser509677.ts, 0, 8)) + diff --git a/tests/baselines/reference/parser509677.types b/tests/baselines/reference/parser509677.types index b2449a7a8b47a..2e5c8244923c6 100644 --- a/tests/baselines/reference/parser509677.types +++ b/tests/baselines/reference/parser509677.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509677.ts === var n: { y: string }; ->n : { y: string; }, Symbol(n, Decl(parser509677.ts, 0, 3)) ->y : string, Symbol(y, Decl(parser509677.ts, 0, 8)) +>n : { y: string; } +>y : string diff --git a/tests/baselines/reference/parser537152.symbols b/tests/baselines/reference/parser537152.symbols new file mode 100644 index 0000000000000..5aaaadc652af0 --- /dev/null +++ b/tests/baselines/reference/parser537152.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser537152.ts === +var t; +>t : Symbol(t, Decl(parser537152.ts, 0, 3)) + +var y = t.e1; +>y : Symbol(y, Decl(parser537152.ts, 1, 3)) +>t : Symbol(t, Decl(parser537152.ts, 0, 3)) + diff --git a/tests/baselines/reference/parser537152.types b/tests/baselines/reference/parser537152.types index 450ca62036722..5c07bd6ae2de5 100644 --- a/tests/baselines/reference/parser537152.types +++ b/tests/baselines/reference/parser537152.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser537152.ts === var t; ->t : any, Symbol(t, Decl(parser537152.ts, 0, 3)) +>t : any var y = t.e1; ->y : any, Symbol(y, Decl(parser537152.ts, 1, 3)) +>y : any >t.e1 : any ->t : any, Symbol(t, Decl(parser537152.ts, 0, 3)) +>t : any >e1 : any diff --git a/tests/baselines/reference/parser579071.symbols b/tests/baselines/reference/parser579071.symbols new file mode 100644 index 0000000000000..5c14f161641a1 --- /dev/null +++ b/tests/baselines/reference/parser579071.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser579071.ts === +var x = /fo(o/; +>x : Symbol(x, Decl(parser579071.ts, 0, 3)) + diff --git a/tests/baselines/reference/parser579071.types b/tests/baselines/reference/parser579071.types index dc6951e4b62fb..bfdece6f7879e 100644 --- a/tests/baselines/reference/parser579071.types +++ b/tests/baselines/reference/parser579071.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser579071.ts === var x = /fo(o/; ->x : RegExp, Symbol(x, Decl(parser579071.ts, 0, 3)) +>x : RegExp >/fo(o/ : RegExp diff --git a/tests/baselines/reference/parser596700.symbols b/tests/baselines/reference/parser596700.symbols new file mode 100644 index 0000000000000..3109d5e4bedcb --- /dev/null +++ b/tests/baselines/reference/parser596700.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser596700.ts === +var regex2 = /[a-z/]$/i; +>regex2 : Symbol(regex2, Decl(parser596700.ts, 0, 3)) + diff --git a/tests/baselines/reference/parser596700.types b/tests/baselines/reference/parser596700.types index d178aaa8600f1..b14e28be71684 100644 --- a/tests/baselines/reference/parser596700.types +++ b/tests/baselines/reference/parser596700.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser596700.ts === var regex2 = /[a-z/]$/i; ->regex2 : RegExp, Symbol(regex2, Decl(parser596700.ts, 0, 3)) +>regex2 : RegExp >/[a-z/]$/i : RegExp diff --git a/tests/baselines/reference/parser630933.symbols b/tests/baselines/reference/parser630933.symbols new file mode 100644 index 0000000000000..70a069c358194 --- /dev/null +++ b/tests/baselines/reference/parser630933.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser630933.ts === +var a = "Hello"; +>a : Symbol(a, Decl(parser630933.ts, 0, 3)) + +var b = a.match(/\/ver=([^/]+)/); +>b : Symbol(b, Decl(parser630933.ts, 1, 3)) +>a.match : Symbol(String.match, Decl(lib.d.ts, 317, 40), Decl(lib.d.ts, 323, 44)) +>a : Symbol(a, Decl(parser630933.ts, 0, 3)) +>match : Symbol(String.match, Decl(lib.d.ts, 317, 40), Decl(lib.d.ts, 323, 44)) + diff --git a/tests/baselines/reference/parser630933.types b/tests/baselines/reference/parser630933.types index 6138e3a33d259..3f991f58d3076 100644 --- a/tests/baselines/reference/parser630933.types +++ b/tests/baselines/reference/parser630933.types @@ -1,13 +1,13 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser630933.ts === var a = "Hello"; ->a : string, Symbol(a, Decl(parser630933.ts, 0, 3)) +>a : string >"Hello" : string var b = a.match(/\/ver=([^/]+)/); ->b : RegExpMatchArray, Symbol(b, Decl(parser630933.ts, 1, 3)) +>b : RegExpMatchArray >a.match(/\/ver=([^/]+)/) : RegExpMatchArray ->a.match : { (regexp: string): RegExpMatchArray; (regexp: RegExp): RegExpMatchArray; }, Symbol(String.match, Decl(lib.d.ts, 317, 40), Decl(lib.d.ts, 323, 44)) ->a : string, Symbol(a, Decl(parser630933.ts, 0, 3)) ->match : { (regexp: string): RegExpMatchArray; (regexp: RegExp): RegExpMatchArray; }, Symbol(String.match, Decl(lib.d.ts, 317, 40), Decl(lib.d.ts, 323, 44)) +>a.match : { (regexp: string): RegExpMatchArray; (regexp: RegExp): RegExpMatchArray; } +>a : string +>match : { (regexp: string): RegExpMatchArray; (regexp: RegExp): RegExpMatchArray; } >/\/ver=([^/]+)/ : RegExp diff --git a/tests/baselines/reference/parser643728.symbols b/tests/baselines/reference/parser643728.symbols new file mode 100644 index 0000000000000..705e4b1ba9def --- /dev/null +++ b/tests/baselines/reference/parser643728.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser643728.ts === +interface C { +>C : Symbol(C, Decl(parser643728.ts, 0, 0)) + + foo; +>foo : Symbol(foo, Decl(parser643728.ts, 0, 13)) + + new; +>new : Symbol(new, Decl(parser643728.ts, 1, 8)) +} + diff --git a/tests/baselines/reference/parser643728.types b/tests/baselines/reference/parser643728.types index b60a82371c168..55c5377b6f761 100644 --- a/tests/baselines/reference/parser643728.types +++ b/tests/baselines/reference/parser643728.types @@ -1,11 +1,11 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser643728.ts === interface C { ->C : C, Symbol(C, Decl(parser643728.ts, 0, 0)) +>C : C foo; ->foo : any, Symbol(foo, Decl(parser643728.ts, 0, 13)) +>foo : any new; ->new : any, Symbol(new, Decl(parser643728.ts, 1, 8)) +>new : any } diff --git a/tests/baselines/reference/parser645086_3.symbols b/tests/baselines/reference/parser645086_3.symbols new file mode 100644 index 0000000000000..dfde84a9714a7 --- /dev/null +++ b/tests/baselines/reference/parser645086_3.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser645086_3.ts === +var v = /[\]/]/ +>v : Symbol(v, Decl(parser645086_3.ts, 0, 3)) + diff --git a/tests/baselines/reference/parser645086_3.types b/tests/baselines/reference/parser645086_3.types index 046bbec9b1d7d..8cf6c0e73a5b7 100644 --- a/tests/baselines/reference/parser645086_3.types +++ b/tests/baselines/reference/parser645086_3.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser645086_3.ts === var v = /[\]/]/ ->v : RegExp, Symbol(v, Decl(parser645086_3.ts, 0, 3)) +>v : RegExp >/[\]/]/ : RegExp diff --git a/tests/baselines/reference/parser645086_4.symbols b/tests/baselines/reference/parser645086_4.symbols new file mode 100644 index 0000000000000..3df8459dc3817 --- /dev/null +++ b/tests/baselines/reference/parser645086_4.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser645086_4.ts === +var v = /[^\]/]/ +>v : Symbol(v, Decl(parser645086_4.ts, 0, 3)) + diff --git a/tests/baselines/reference/parser645086_4.types b/tests/baselines/reference/parser645086_4.types index 3dca748b75a1c..a7c00b04fce4e 100644 --- a/tests/baselines/reference/parser645086_4.types +++ b/tests/baselines/reference/parser645086_4.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser645086_4.ts === var v = /[^\]/]/ ->v : RegExp, Symbol(v, Decl(parser645086_4.ts, 0, 3)) +>v : RegExp >/[^\]/]/ : RegExp diff --git a/tests/baselines/reference/parser645484.symbols b/tests/baselines/reference/parser645484.symbols new file mode 100644 index 0000000000000..6c8b71d547e40 --- /dev/null +++ b/tests/baselines/reference/parser645484.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser645484.ts === +var c : { +>c : Symbol(c, Decl(parser645484.ts, 0, 3)) + + new?(): any; +>new : Symbol(new, Decl(parser645484.ts, 0, 9)) +} diff --git a/tests/baselines/reference/parser645484.types b/tests/baselines/reference/parser645484.types index 6434fe7afd99f..60ab6719e3c91 100644 --- a/tests/baselines/reference/parser645484.types +++ b/tests/baselines/reference/parser645484.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/RegressionTests/parser645484.ts === var c : { ->c : { new?(): any; }, Symbol(c, Decl(parser645484.ts, 0, 3)) +>c : { new?(): any; } new?(): any; ->new : () => any, Symbol(new, Decl(parser645484.ts, 0, 9)) +>new : () => any } diff --git a/tests/baselines/reference/parser768531.symbols b/tests/baselines/reference/parser768531.symbols new file mode 100644 index 0000000000000..2da2298c8e207 --- /dev/null +++ b/tests/baselines/reference/parser768531.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/Fuzz/parser768531.ts === +{a: 3} +No type information for this code./x/ +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic11.symbols b/tests/baselines/reference/parserAccessibilityAfterStatic11.symbols new file mode 100644 index 0000000000000..602c5a01f3714 --- /dev/null +++ b/tests/baselines/reference/parserAccessibilityAfterStatic11.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts === +class Outer +>Outer : Symbol(Outer, Decl(parserAccessibilityAfterStatic11.ts, 0, 0)) +{ +static public() {} +>public : Symbol(Outer.public, Decl(parserAccessibilityAfterStatic11.ts, 1, 1)) +} + diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic11.types b/tests/baselines/reference/parserAccessibilityAfterStatic11.types index c48c0fbf42207..c3b3699bb272a 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic11.types +++ b/tests/baselines/reference/parserAccessibilityAfterStatic11.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic11.ts === class Outer ->Outer : Outer, Symbol(Outer, Decl(parserAccessibilityAfterStatic11.ts, 0, 0)) +>Outer : Outer { static public() {} ->public : () => void, Symbol(Outer.public, Decl(parserAccessibilityAfterStatic11.ts, 1, 1)) +>public : () => void } diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic14.symbols b/tests/baselines/reference/parserAccessibilityAfterStatic14.symbols new file mode 100644 index 0000000000000..4a20a527ef1da --- /dev/null +++ b/tests/baselines/reference/parserAccessibilityAfterStatic14.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts === +class Outer +>Outer : Symbol(Outer, Decl(parserAccessibilityAfterStatic14.ts, 0, 0)) +{ +static public() {} +>public : Symbol(Outer.public, Decl(parserAccessibilityAfterStatic14.ts, 1, 1)) +>T : Symbol(T, Decl(parserAccessibilityAfterStatic14.ts, 2, 14)) +} + diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic14.types b/tests/baselines/reference/parserAccessibilityAfterStatic14.types index 886189c6d4e0a..6b4cff3e17f7a 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic14.types +++ b/tests/baselines/reference/parserAccessibilityAfterStatic14.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic14.ts === class Outer ->Outer : Outer, Symbol(Outer, Decl(parserAccessibilityAfterStatic14.ts, 0, 0)) +>Outer : Outer { static public() {} ->public : () => void, Symbol(Outer.public, Decl(parserAccessibilityAfterStatic14.ts, 1, 1)) ->T : T, Symbol(T, Decl(parserAccessibilityAfterStatic14.ts, 2, 14)) +>public : () => void +>T : T } diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic2.symbols b/tests/baselines/reference/parserAccessibilityAfterStatic2.symbols new file mode 100644 index 0000000000000..9611c7b4955be --- /dev/null +++ b/tests/baselines/reference/parserAccessibilityAfterStatic2.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts === +class Outer +>Outer : Symbol(Outer, Decl(parserAccessibilityAfterStatic2.ts, 0, 0)) +{ +static public; +>public : Symbol(Outer.public, Decl(parserAccessibilityAfterStatic2.ts, 1, 1)) +} + diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic2.types b/tests/baselines/reference/parserAccessibilityAfterStatic2.types index 29e9dc417b819..d22f2fe787618 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic2.types +++ b/tests/baselines/reference/parserAccessibilityAfterStatic2.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic2.ts === class Outer ->Outer : Outer, Symbol(Outer, Decl(parserAccessibilityAfterStatic2.ts, 0, 0)) +>Outer : Outer { static public; ->public : any, Symbol(Outer.public, Decl(parserAccessibilityAfterStatic2.ts, 1, 1)) +>public : any } diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic3.symbols b/tests/baselines/reference/parserAccessibilityAfterStatic3.symbols new file mode 100644 index 0000000000000..9c2027b065fd9 --- /dev/null +++ b/tests/baselines/reference/parserAccessibilityAfterStatic3.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts === +class Outer +>Outer : Symbol(Outer, Decl(parserAccessibilityAfterStatic3.ts, 0, 0)) +{ +static public = 1; +>public : Symbol(Outer.public, Decl(parserAccessibilityAfterStatic3.ts, 1, 1)) +} + diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic3.types b/tests/baselines/reference/parserAccessibilityAfterStatic3.types index bf702819d97a6..c85c50773921f 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic3.types +++ b/tests/baselines/reference/parserAccessibilityAfterStatic3.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic3.ts === class Outer ->Outer : Outer, Symbol(Outer, Decl(parserAccessibilityAfterStatic3.ts, 0, 0)) +>Outer : Outer { static public = 1; ->public : number, Symbol(Outer.public, Decl(parserAccessibilityAfterStatic3.ts, 1, 1)) +>public : number >1 : number } diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic4.symbols b/tests/baselines/reference/parserAccessibilityAfterStatic4.symbols new file mode 100644 index 0000000000000..fe872ea3fe36c --- /dev/null +++ b/tests/baselines/reference/parserAccessibilityAfterStatic4.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts === +class Outer +>Outer : Symbol(Outer, Decl(parserAccessibilityAfterStatic4.ts, 0, 0)) +{ +static public: number; +>public : Symbol(Outer.public, Decl(parserAccessibilityAfterStatic4.ts, 1, 1)) +} + diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic4.types b/tests/baselines/reference/parserAccessibilityAfterStatic4.types index 7dce98e2bab36..2e987cb0946b5 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic4.types +++ b/tests/baselines/reference/parserAccessibilityAfterStatic4.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic4.ts === class Outer ->Outer : Outer, Symbol(Outer, Decl(parserAccessibilityAfterStatic4.ts, 0, 0)) +>Outer : Outer { static public: number; ->public : number, Symbol(Outer.public, Decl(parserAccessibilityAfterStatic4.ts, 1, 1)) +>public : number } diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic5.symbols b/tests/baselines/reference/parserAccessibilityAfterStatic5.symbols new file mode 100644 index 0000000000000..d1d0fd0da9a3d --- /dev/null +++ b/tests/baselines/reference/parserAccessibilityAfterStatic5.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts === +class Outer +>Outer : Symbol(Outer, Decl(parserAccessibilityAfterStatic5.ts, 0, 0)) +{ +static public +>public : Symbol(Outer.public, Decl(parserAccessibilityAfterStatic5.ts, 1, 1)) +} + diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic5.types b/tests/baselines/reference/parserAccessibilityAfterStatic5.types index b1ebc61b22544..34cc33ce34c1e 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic5.types +++ b/tests/baselines/reference/parserAccessibilityAfterStatic5.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic5.ts === class Outer ->Outer : Outer, Symbol(Outer, Decl(parserAccessibilityAfterStatic5.ts, 0, 0)) +>Outer : Outer { static public ->public : any, Symbol(Outer.public, Decl(parserAccessibilityAfterStatic5.ts, 1, 1)) +>public : any } diff --git a/tests/baselines/reference/parserAccessors2.symbols b/tests/baselines/reference/parserAccessors2.symbols new file mode 100644 index 0000000000000..d43716956108f --- /dev/null +++ b/tests/baselines/reference/parserAccessors2.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/Accessors/parserAccessors2.ts === +class C { +>C : Symbol(C, Decl(parserAccessors2.ts, 0, 0)) + + set Foo(a) { } +>Foo : Symbol(Foo, Decl(parserAccessors2.ts, 0, 9)) +>a : Symbol(a, Decl(parserAccessors2.ts, 1, 12)) +} diff --git a/tests/baselines/reference/parserAccessors2.types b/tests/baselines/reference/parserAccessors2.types index 333e8832d8194..9a0d9b0fdaa9e 100644 --- a/tests/baselines/reference/parserAccessors2.types +++ b/tests/baselines/reference/parserAccessors2.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/Accessors/parserAccessors2.ts === class C { ->C : C, Symbol(C, Decl(parserAccessors2.ts, 0, 0)) +>C : C set Foo(a) { } ->Foo : any, Symbol(Foo, Decl(parserAccessors2.ts, 0, 9)) ->a : any, Symbol(a, Decl(parserAccessors2.ts, 1, 12)) +>Foo : any +>a : any } diff --git a/tests/baselines/reference/parserAccessors4.symbols b/tests/baselines/reference/parserAccessors4.symbols new file mode 100644 index 0000000000000..e5dc9f1ecc3a9 --- /dev/null +++ b/tests/baselines/reference/parserAccessors4.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/Accessors/parserAccessors4.ts === +var v = { set Foo(a) { } }; +>v : Symbol(v, Decl(parserAccessors4.ts, 0, 3)) +>Foo : Symbol(Foo, Decl(parserAccessors4.ts, 0, 9)) +>a : Symbol(a, Decl(parserAccessors4.ts, 0, 18)) + diff --git a/tests/baselines/reference/parserAccessors4.types b/tests/baselines/reference/parserAccessors4.types index 6f57a3a400c24..d2db232d796b1 100644 --- a/tests/baselines/reference/parserAccessors4.types +++ b/tests/baselines/reference/parserAccessors4.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/Accessors/parserAccessors4.ts === var v = { set Foo(a) { } }; ->v : { Foo: any; }, Symbol(v, Decl(parserAccessors4.ts, 0, 3)) +>v : { Foo: any; } >{ set Foo(a) { } } : { Foo: any; } ->Foo : any, Symbol(Foo, Decl(parserAccessors4.ts, 0, 9)) ->a : any, Symbol(a, Decl(parserAccessors4.ts, 0, 18)) +>Foo : any +>a : any diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.symbols b/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.symbols new file mode 100644 index 0000000000000..d5e039e33080a --- /dev/null +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.ts === +function f1() { +>f1 : Symbol(f1, Decl(parserAmbiguityWithBinaryOperator1.ts, 0, 0)) + + var a, b, c; +>a : Symbol(a, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 7)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 10)) +>c : Symbol(c, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 13)) + + if (a < b || b > (c + 1)) { } +>a : Symbol(a, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 7)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 10)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 10)) +>c : Symbol(c, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 13)) +} diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.types b/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.types index f5abbc06f08c9..bdeb5ab7bbc4d 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.types +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.types @@ -1,21 +1,21 @@ === tests/cases/conformance/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator1.ts === function f1() { ->f1 : () => void, Symbol(f1, Decl(parserAmbiguityWithBinaryOperator1.ts, 0, 0)) +>f1 : () => void var a, b, c; ->a : any, Symbol(a, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 7)) ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 10)) ->c : any, Symbol(c, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 13)) +>a : any +>b : any +>c : any if (a < b || b > (c + 1)) { } >a < b || b > (c + 1) : boolean >a < b : boolean ->a : any, Symbol(a, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 7)) ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 10)) +>a : any +>b : any >b > (c + 1) : boolean ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 10)) +>b : any >(c + 1) : any >c + 1 : any ->c : any, Symbol(c, Decl(parserAmbiguityWithBinaryOperator1.ts, 1, 13)) +>c : any >1 : number } diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.symbols b/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.symbols new file mode 100644 index 0000000000000..4f5c7030dd3ca --- /dev/null +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.ts === +function f() { +>f : Symbol(f, Decl(parserAmbiguityWithBinaryOperator2.ts, 0, 0)) + + var a, b, c; +>a : Symbol(a, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 7)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 10)) +>c : Symbol(c, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 13)) + + if (a < b && b > (c + 1)) { } +>a : Symbol(a, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 7)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 10)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 10)) +>c : Symbol(c, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 13)) +} diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.types b/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.types index 0b96fe5d14052..79eb212163e9a 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.types +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.types @@ -1,21 +1,21 @@ === tests/cases/conformance/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator2.ts === function f() { ->f : () => void, Symbol(f, Decl(parserAmbiguityWithBinaryOperator2.ts, 0, 0)) +>f : () => void var a, b, c; ->a : any, Symbol(a, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 7)) ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 10)) ->c : any, Symbol(c, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 13)) +>a : any +>b : any +>c : any if (a < b && b > (c + 1)) { } >a < b && b > (c + 1) : boolean >a < b : boolean ->a : any, Symbol(a, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 7)) ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 10)) +>a : any +>b : any >b > (c + 1) : boolean ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 10)) +>b : any >(c + 1) : any >c + 1 : any ->c : any, Symbol(c, Decl(parserAmbiguityWithBinaryOperator2.ts, 1, 13)) +>c : any >1 : number } diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.symbols b/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.symbols new file mode 100644 index 0000000000000..0304a217b7005 --- /dev/null +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.ts === +function f() { +>f : Symbol(f, Decl(parserAmbiguityWithBinaryOperator3.ts, 0, 0)) + + var a, b, c; +>a : Symbol(a, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 7)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 10)) +>c : Symbol(c, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 13)) + + if (a < b && b < (c + 1)) { } +>a : Symbol(a, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 7)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 10)) +>b : Symbol(b, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 10)) +>c : Symbol(c, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 13)) +} + diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.types b/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.types index 0771572c40bdd..aba5f4872d874 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.types +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.types @@ -1,22 +1,22 @@ === tests/cases/conformance/parser/ecmascript5/Generics/parserAmbiguityWithBinaryOperator3.ts === function f() { ->f : () => void, Symbol(f, Decl(parserAmbiguityWithBinaryOperator3.ts, 0, 0)) +>f : () => void var a, b, c; ->a : any, Symbol(a, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 7)) ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 10)) ->c : any, Symbol(c, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 13)) +>a : any +>b : any +>c : any if (a < b && b < (c + 1)) { } >a < b && b < (c + 1) : boolean >a < b : boolean ->a : any, Symbol(a, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 7)) ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 10)) +>a : any +>b : any >b < (c + 1) : boolean ->b : any, Symbol(b, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 10)) +>b : any >(c + 1) : any >c + 1 : any ->c : any, Symbol(c, Decl(parserAmbiguityWithBinaryOperator3.ts, 1, 13)) +>c : any >1 : number } diff --git a/tests/baselines/reference/parserArrayLiteralExpression1.symbols b/tests/baselines/reference/parserArrayLiteralExpression1.symbols new file mode 100644 index 0000000000000..f34a932be8039 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression1.ts === +var v = []; +>v : Symbol(v, Decl(parserArrayLiteralExpression1.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression1.types b/tests/baselines/reference/parserArrayLiteralExpression1.types index 03e097d01fc1c..d31f5ee3bfbb0 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression1.types +++ b/tests/baselines/reference/parserArrayLiteralExpression1.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression1.ts === var v = []; ->v : any[], Symbol(v, Decl(parserArrayLiteralExpression1.ts, 0, 3)) +>v : any[] >[] : undefined[] diff --git a/tests/baselines/reference/parserArrayLiteralExpression10.symbols b/tests/baselines/reference/parserArrayLiteralExpression10.symbols new file mode 100644 index 0000000000000..1e29ca350fc32 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression10.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression10.ts === +var v = [1,1,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression10.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression10.types b/tests/baselines/reference/parserArrayLiteralExpression10.types index 7555b2073e9d8..370e9fb6c9d86 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression10.types +++ b/tests/baselines/reference/parserArrayLiteralExpression10.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression10.ts === var v = [1,1,]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression10.ts, 0, 3)) +>v : number[] >[1,1,] : number[] >1 : number >1 : number diff --git a/tests/baselines/reference/parserArrayLiteralExpression11.symbols b/tests/baselines/reference/parserArrayLiteralExpression11.symbols new file mode 100644 index 0000000000000..eaa65c96295a3 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression11.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression11.ts === +var v = [1,,1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression11.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression11.types b/tests/baselines/reference/parserArrayLiteralExpression11.types index f4dd5e3ee453b..aba6e30a2915f 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression11.types +++ b/tests/baselines/reference/parserArrayLiteralExpression11.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression11.ts === var v = [1,,1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression11.ts, 0, 3)) +>v : number[] >[1,,1] : number[] >1 : number > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression12.symbols b/tests/baselines/reference/parserArrayLiteralExpression12.symbols new file mode 100644 index 0000000000000..76521e7d99e4a --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression12.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression12.ts === +var v = [1,,,1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression12.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression12.types b/tests/baselines/reference/parserArrayLiteralExpression12.types index 992f6cd41ef83..7d9e4c3897647 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression12.types +++ b/tests/baselines/reference/parserArrayLiteralExpression12.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression12.ts === var v = [1,,,1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression12.ts, 0, 3)) +>v : number[] >[1,,,1] : number[] >1 : number > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression13.symbols b/tests/baselines/reference/parserArrayLiteralExpression13.symbols new file mode 100644 index 0000000000000..4adf81f06810c --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression13.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression13.ts === +var v = [1,,1,,1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression13.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression13.types b/tests/baselines/reference/parserArrayLiteralExpression13.types index 312882ff7a6a2..62fb9aea5f7fa 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression13.types +++ b/tests/baselines/reference/parserArrayLiteralExpression13.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression13.ts === var v = [1,,1,,1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression13.ts, 0, 3)) +>v : number[] >[1,,1,,1] : number[] >1 : number > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression14.symbols b/tests/baselines/reference/parserArrayLiteralExpression14.symbols new file mode 100644 index 0000000000000..bf9a421613927 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression14.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression14.ts === +var v = [,,1,1,,1,,1,1,,1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression14.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression14.types b/tests/baselines/reference/parserArrayLiteralExpression14.types index 3584229d7b776..9d3a029aed2ab 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression14.types +++ b/tests/baselines/reference/parserArrayLiteralExpression14.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression14.ts === var v = [,,1,1,,1,,1,1,,1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression14.ts, 0, 3)) +>v : number[] >[,,1,1,,1,,1,1,,1] : number[] > : undefined > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression15.symbols b/tests/baselines/reference/parserArrayLiteralExpression15.symbols new file mode 100644 index 0000000000000..db99c902e0606 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression15.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression15.ts === +var v = [,,1,1,,1,,1,1,,1,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression15.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression15.types b/tests/baselines/reference/parserArrayLiteralExpression15.types index bd00aa2bd8752..75afab3731cf0 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression15.types +++ b/tests/baselines/reference/parserArrayLiteralExpression15.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression15.ts === var v = [,,1,1,,1,,1,1,,1,]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression15.ts, 0, 3)) +>v : number[] >[,,1,1,,1,,1,1,,1,] : number[] > : undefined > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression2.symbols b/tests/baselines/reference/parserArrayLiteralExpression2.symbols new file mode 100644 index 0000000000000..bdd45124e649f --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression2.ts === +var v = [,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression2.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression2.types b/tests/baselines/reference/parserArrayLiteralExpression2.types index e45626a0e58eb..b810175ea13c4 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression2.types +++ b/tests/baselines/reference/parserArrayLiteralExpression2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression2.ts === var v = [,]; ->v : any[], Symbol(v, Decl(parserArrayLiteralExpression2.ts, 0, 3)) +>v : any[] >[,] : undefined[] > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression3.symbols b/tests/baselines/reference/parserArrayLiteralExpression3.symbols new file mode 100644 index 0000000000000..57c394451689d --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression3.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression3.ts === +var v = [,,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression3.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression3.types b/tests/baselines/reference/parserArrayLiteralExpression3.types index 4669d02fa3e16..68e05498e1382 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression3.types +++ b/tests/baselines/reference/parserArrayLiteralExpression3.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression3.ts === var v = [,,]; ->v : any[], Symbol(v, Decl(parserArrayLiteralExpression3.ts, 0, 3)) +>v : any[] >[,,] : undefined[] > : undefined > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression4.symbols b/tests/baselines/reference/parserArrayLiteralExpression4.symbols new file mode 100644 index 0000000000000..501ca155892ed --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression4.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression4.ts === +var v = [,,,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression4.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression4.types b/tests/baselines/reference/parserArrayLiteralExpression4.types index a452b86cf1978..69f805ed5e2d4 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression4.types +++ b/tests/baselines/reference/parserArrayLiteralExpression4.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression4.ts === var v = [,,,]; ->v : any[], Symbol(v, Decl(parserArrayLiteralExpression4.ts, 0, 3)) +>v : any[] >[,,,] : undefined[] > : undefined > : undefined diff --git a/tests/baselines/reference/parserArrayLiteralExpression5.symbols b/tests/baselines/reference/parserArrayLiteralExpression5.symbols new file mode 100644 index 0000000000000..e01df8123eac6 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression5.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression5.ts === +var v = [1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression5.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression5.types b/tests/baselines/reference/parserArrayLiteralExpression5.types index c83b7069e6157..48fdaa024fcc9 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression5.types +++ b/tests/baselines/reference/parserArrayLiteralExpression5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression5.ts === var v = [1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression5.ts, 0, 3)) +>v : number[] >[1] : number[] >1 : number diff --git a/tests/baselines/reference/parserArrayLiteralExpression6.symbols b/tests/baselines/reference/parserArrayLiteralExpression6.symbols new file mode 100644 index 0000000000000..07ab9430d94e8 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression6.ts === +var v = [,1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression6.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression6.types b/tests/baselines/reference/parserArrayLiteralExpression6.types index 5adb277429dfc..66df1cda219d1 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression6.types +++ b/tests/baselines/reference/parserArrayLiteralExpression6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression6.ts === var v = [,1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression6.ts, 0, 3)) +>v : number[] >[,1] : number[] > : undefined >1 : number diff --git a/tests/baselines/reference/parserArrayLiteralExpression7.symbols b/tests/baselines/reference/parserArrayLiteralExpression7.symbols new file mode 100644 index 0000000000000..e8baf75f1f99a --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression7.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression7.ts === +var v = [1,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression7.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression7.types b/tests/baselines/reference/parserArrayLiteralExpression7.types index d79c0bcb25ba2..65225500eb209 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression7.types +++ b/tests/baselines/reference/parserArrayLiteralExpression7.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression7.ts === var v = [1,]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression7.ts, 0, 3)) +>v : number[] >[1,] : number[] >1 : number diff --git a/tests/baselines/reference/parserArrayLiteralExpression8.symbols b/tests/baselines/reference/parserArrayLiteralExpression8.symbols new file mode 100644 index 0000000000000..a389e4381e7e9 --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression8.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression8.ts === +var v = [,1,]; +>v : Symbol(v, Decl(parserArrayLiteralExpression8.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression8.types b/tests/baselines/reference/parserArrayLiteralExpression8.types index c6058352d6af6..e14c99f3b57e6 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression8.types +++ b/tests/baselines/reference/parserArrayLiteralExpression8.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression8.ts === var v = [,1,]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression8.ts, 0, 3)) +>v : number[] >[,1,] : number[] > : undefined >1 : number diff --git a/tests/baselines/reference/parserArrayLiteralExpression9.symbols b/tests/baselines/reference/parserArrayLiteralExpression9.symbols new file mode 100644 index 0000000000000..c5f4d38258a6f --- /dev/null +++ b/tests/baselines/reference/parserArrayLiteralExpression9.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression9.ts === +var v = [1,1]; +>v : Symbol(v, Decl(parserArrayLiteralExpression9.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserArrayLiteralExpression9.types b/tests/baselines/reference/parserArrayLiteralExpression9.types index ed4777a4ef05d..96bb1595326a2 100644 --- a/tests/baselines/reference/parserArrayLiteralExpression9.types +++ b/tests/baselines/reference/parserArrayLiteralExpression9.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ArrayLiteralExpressions/parserArrayLiteralExpression9.ts === var v = [1,1]; ->v : number[], Symbol(v, Decl(parserArrayLiteralExpression9.ts, 0, 3)) +>v : number[] >[1,1] : number[] >1 : number >1 : number diff --git a/tests/baselines/reference/parserClassDeclaration16.symbols b/tests/baselines/reference/parserClassDeclaration16.symbols new file mode 100644 index 0000000000000..770793b8ff980 --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration16.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts === +class C { +>C : Symbol(C, Decl(parserClassDeclaration16.ts, 0, 0)) + + foo(); +>foo : Symbol(foo, Decl(parserClassDeclaration16.ts, 0, 9), Decl(parserClassDeclaration16.ts, 1, 9)) + + foo() { } +>foo : Symbol(foo, Decl(parserClassDeclaration16.ts, 0, 9), Decl(parserClassDeclaration16.ts, 1, 9)) +} diff --git a/tests/baselines/reference/parserClassDeclaration16.types b/tests/baselines/reference/parserClassDeclaration16.types index a87c52a6c4250..646e3db8789a7 100644 --- a/tests/baselines/reference/parserClassDeclaration16.types +++ b/tests/baselines/reference/parserClassDeclaration16.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration16.ts === class C { ->C : C, Symbol(C, Decl(parserClassDeclaration16.ts, 0, 0)) +>C : C foo(); ->foo : () => any, Symbol(foo, Decl(parserClassDeclaration16.ts, 0, 9), Decl(parserClassDeclaration16.ts, 1, 9)) +>foo : () => any foo() { } ->foo : () => any, Symbol(foo, Decl(parserClassDeclaration16.ts, 0, 9), Decl(parserClassDeclaration16.ts, 1, 9)) +>foo : () => any } diff --git a/tests/baselines/reference/parserClassDeclaration17.symbols b/tests/baselines/reference/parserClassDeclaration17.symbols new file mode 100644 index 0000000000000..7d230821d8a58 --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration17.symbols @@ -0,0 +1,17 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts === +declare class Enumerator { +>Enumerator : Symbol(Enumerator, Decl(parserClassDeclaration17.ts, 0, 0)) + + public atEnd(): boolean; +>atEnd : Symbol(atEnd, Decl(parserClassDeclaration17.ts, 0, 26)) + + public moveNext(); +>moveNext : Symbol(moveNext, Decl(parserClassDeclaration17.ts, 1, 28)) + + public item(): any; +>item : Symbol(item, Decl(parserClassDeclaration17.ts, 2, 22)) + + constructor (o: any); +>o : Symbol(o, Decl(parserClassDeclaration17.ts, 4, 17)) +} + diff --git a/tests/baselines/reference/parserClassDeclaration17.types b/tests/baselines/reference/parserClassDeclaration17.types index cfcc0f151db95..665d4b8cb60b4 100644 --- a/tests/baselines/reference/parserClassDeclaration17.types +++ b/tests/baselines/reference/parserClassDeclaration17.types @@ -1,17 +1,17 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration17.ts === declare class Enumerator { ->Enumerator : Enumerator, Symbol(Enumerator, Decl(parserClassDeclaration17.ts, 0, 0)) +>Enumerator : Enumerator public atEnd(): boolean; ->atEnd : () => boolean, Symbol(atEnd, Decl(parserClassDeclaration17.ts, 0, 26)) +>atEnd : () => boolean public moveNext(); ->moveNext : () => any, Symbol(moveNext, Decl(parserClassDeclaration17.ts, 1, 28)) +>moveNext : () => any public item(): any; ->item : () => any, Symbol(item, Decl(parserClassDeclaration17.ts, 2, 22)) +>item : () => any constructor (o: any); ->o : any, Symbol(o, Decl(parserClassDeclaration17.ts, 4, 17)) +>o : any } diff --git a/tests/baselines/reference/parserClassDeclaration19.symbols b/tests/baselines/reference/parserClassDeclaration19.symbols new file mode 100644 index 0000000000000..e9ac1a666c7de --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration19.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts === +class C { +>C : Symbol(C, Decl(parserClassDeclaration19.ts, 0, 0)) + + foo(); +>foo : Symbol(foo, Decl(parserClassDeclaration19.ts, 0, 9), Decl(parserClassDeclaration19.ts, 1, 10)) + + "foo"() { } +} diff --git a/tests/baselines/reference/parserClassDeclaration19.types b/tests/baselines/reference/parserClassDeclaration19.types index 284aa74ef6bcc..1f6a25bbdc8c4 100644 --- a/tests/baselines/reference/parserClassDeclaration19.types +++ b/tests/baselines/reference/parserClassDeclaration19.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration19.ts === class C { ->C : C, Symbol(C, Decl(parserClassDeclaration19.ts, 0, 0)) +>C : C foo(); ->foo : () => any, Symbol(foo, Decl(parserClassDeclaration19.ts, 0, 9), Decl(parserClassDeclaration19.ts, 1, 10)) +>foo : () => any "foo"() { } } diff --git a/tests/baselines/reference/parserClassDeclaration20.symbols b/tests/baselines/reference/parserClassDeclaration20.symbols new file mode 100644 index 0000000000000..52e83a3f10c4d --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration20.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts === +class C { +>C : Symbol(C, Decl(parserClassDeclaration20.ts, 0, 0)) + + 0(); + "0"() { } +} diff --git a/tests/baselines/reference/parserClassDeclaration20.types b/tests/baselines/reference/parserClassDeclaration20.types index ba79c467e1a69..e8014bf3af5a8 100644 --- a/tests/baselines/reference/parserClassDeclaration20.types +++ b/tests/baselines/reference/parserClassDeclaration20.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration20.ts === class C { ->C : C, Symbol(C, Decl(parserClassDeclaration20.ts, 0, 0)) +>C : C 0(); "0"() { } diff --git a/tests/baselines/reference/parserClassDeclaration23.symbols b/tests/baselines/reference/parserClassDeclaration23.symbols new file mode 100644 index 0000000000000..17611f0ba1d61 --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration23.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts === +class C\u0032 { +>C\u0032 : Symbol(C\u0032, Decl(parserClassDeclaration23.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parserClassDeclaration23.types b/tests/baselines/reference/parserClassDeclaration23.types index f5b998d036cc9..71f293f5894b0 100644 --- a/tests/baselines/reference/parserClassDeclaration23.types +++ b/tests/baselines/reference/parserClassDeclaration23.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration23.ts === class C\u0032 { ->C\u0032 : C\u0032, Symbol(C\u0032, Decl(parserClassDeclaration23.ts, 0, 0)) +>C\u0032 : C\u0032 } diff --git a/tests/baselines/reference/parserClassDeclaration26.symbols b/tests/baselines/reference/parserClassDeclaration26.symbols new file mode 100644 index 0000000000000..09b9cbfd3a448 --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration26.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts === +class C { +>C : Symbol(C, Decl(parserClassDeclaration26.ts, 0, 0)) + + var +>var : Symbol(var, Decl(parserClassDeclaration26.ts, 0, 9)) + + public +>public : Symbol(public, Decl(parserClassDeclaration26.ts, 1, 6)) +} diff --git a/tests/baselines/reference/parserClassDeclaration26.types b/tests/baselines/reference/parserClassDeclaration26.types index 84f2e6c64621c..567872e245e21 100644 --- a/tests/baselines/reference/parserClassDeclaration26.types +++ b/tests/baselines/reference/parserClassDeclaration26.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration26.ts === class C { ->C : C, Symbol(C, Decl(parserClassDeclaration26.ts, 0, 0)) +>C : C var ->var : any, Symbol(var, Decl(parserClassDeclaration26.ts, 0, 9)) +>var : any public ->public : any, Symbol(public, Decl(parserClassDeclaration26.ts, 1, 6)) +>public : any } diff --git a/tests/baselines/reference/parserClassDeclaration7.d.symbols b/tests/baselines/reference/parserClassDeclaration7.d.symbols new file mode 100644 index 0000000000000..33661b0074329 --- /dev/null +++ b/tests/baselines/reference/parserClassDeclaration7.d.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration7.d.ts === +declare class C { +>C : Symbol(C, Decl(parserClassDeclaration7.d.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parserClassDeclaration7.d.types b/tests/baselines/reference/parserClassDeclaration7.d.types index 914b97b4e3c05..968f16d296afd 100644 --- a/tests/baselines/reference/parserClassDeclaration7.d.types +++ b/tests/baselines/reference/parserClassDeclaration7.d.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclaration7.d.ts === declare class C { ->C : C, Symbol(C, Decl(parserClassDeclaration7.d.ts, 0, 0)) +>C : C } diff --git a/tests/baselines/reference/parserClassDeclarationIndexSignature1.symbols b/tests/baselines/reference/parserClassDeclarationIndexSignature1.symbols new file mode 100644 index 0000000000000..bfa75f56ab559 --- /dev/null +++ b/tests/baselines/reference/parserClassDeclarationIndexSignature1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts === +class C { +>C : Symbol(C, Decl(parserClassDeclarationIndexSignature1.ts, 0, 0)) + + [index:number]:number +>index : Symbol(index, Decl(parserClassDeclarationIndexSignature1.ts, 1, 5)) +} diff --git a/tests/baselines/reference/parserClassDeclarationIndexSignature1.types b/tests/baselines/reference/parserClassDeclarationIndexSignature1.types index 745ba2eee1a4d..f4d2adeedcd5e 100644 --- a/tests/baselines/reference/parserClassDeclarationIndexSignature1.types +++ b/tests/baselines/reference/parserClassDeclarationIndexSignature1.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/ClassDeclarations/parserClassDeclarationIndexSignature1.ts === class C { ->C : C, Symbol(C, Decl(parserClassDeclarationIndexSignature1.ts, 0, 0)) +>C : C [index:number]:number ->index : number, Symbol(index, Decl(parserClassDeclarationIndexSignature1.ts, 1, 5)) +>index : number } diff --git a/tests/baselines/reference/parserCommaInTypeMemberList1.symbols b/tests/baselines/reference/parserCommaInTypeMemberList1.symbols new file mode 100644 index 0000000000000..cbfeb6630e889 --- /dev/null +++ b/tests/baselines/reference/parserCommaInTypeMemberList1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList1.ts === +var v: { workItem: any, width: string }; +>v : Symbol(v, Decl(parserCommaInTypeMemberList1.ts, 0, 3)) +>workItem : Symbol(workItem, Decl(parserCommaInTypeMemberList1.ts, 0, 8)) +>width : Symbol(width, Decl(parserCommaInTypeMemberList1.ts, 0, 23)) + diff --git a/tests/baselines/reference/parserCommaInTypeMemberList1.types b/tests/baselines/reference/parserCommaInTypeMemberList1.types index bc15813b5b959..177372c3e2772 100644 --- a/tests/baselines/reference/parserCommaInTypeMemberList1.types +++ b/tests/baselines/reference/parserCommaInTypeMemberList1.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserCommaInTypeMemberList1.ts === var v: { workItem: any, width: string }; ->v : { workItem: any; width: string; }, Symbol(v, Decl(parserCommaInTypeMemberList1.ts, 0, 3)) ->workItem : any, Symbol(workItem, Decl(parserCommaInTypeMemberList1.ts, 0, 8)) ->width : string, Symbol(width, Decl(parserCommaInTypeMemberList1.ts, 0, 23)) +>v : { workItem: any; width: string; } +>workItem : any +>width : string diff --git a/tests/baselines/reference/parserConstructorDeclaration1.symbols b/tests/baselines/reference/parserConstructorDeclaration1.symbols new file mode 100644 index 0000000000000..de3fee278a987 --- /dev/null +++ b/tests/baselines/reference/parserConstructorDeclaration1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts === +class C { +>C : Symbol(C, Decl(parserConstructorDeclaration1.ts, 0, 0)) + + public constructor() { } +} diff --git a/tests/baselines/reference/parserConstructorDeclaration1.types b/tests/baselines/reference/parserConstructorDeclaration1.types index 26a51e86ec933..cc0d6f7a5c58d 100644 --- a/tests/baselines/reference/parserConstructorDeclaration1.types +++ b/tests/baselines/reference/parserConstructorDeclaration1.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ConstructorDeclarations/parserConstructorDeclaration1.ts === class C { ->C : C, Symbol(C, Decl(parserConstructorDeclaration1.ts, 0, 0)) +>C : C public constructor() { } } diff --git a/tests/baselines/reference/parserDebuggerStatement1.symbols b/tests/baselines/reference/parserDebuggerStatement1.symbols new file mode 100644 index 0000000000000..bfc1785f927de --- /dev/null +++ b/tests/baselines/reference/parserDebuggerStatement1.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/parser/ecmascript5/parserDebuggerStatement1.ts === +debugger +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserDebuggerStatement2.symbols b/tests/baselines/reference/parserDebuggerStatement2.symbols new file mode 100644 index 0000000000000..9916218897c1e --- /dev/null +++ b/tests/baselines/reference/parserDebuggerStatement2.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/parser/ecmascript5/parserDebuggerStatement2.ts === +debugger; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserDoStatement2.symbols b/tests/baselines/reference/parserDoStatement2.symbols new file mode 100644 index 0000000000000..62790b4910340 --- /dev/null +++ b/tests/baselines/reference/parserDoStatement2.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/parser/ecmascript5/Statements/parserDoStatement2.ts === +do{;}while(false)false +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserES5ForOfStatement17.symbols b/tests/baselines/reference/parserES5ForOfStatement17.symbols new file mode 100644 index 0000000000000..bf38276ebd783 --- /dev/null +++ b/tests/baselines/reference/parserES5ForOfStatement17.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement17.ts === +for (var of; ;) { } +>of : Symbol(of, Decl(parserES5ForOfStatement17.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserES5ForOfStatement17.types b/tests/baselines/reference/parserES5ForOfStatement17.types index d069fbb771074..5dd0f6e9b93a7 100644 --- a/tests/baselines/reference/parserES5ForOfStatement17.types +++ b/tests/baselines/reference/parserES5ForOfStatement17.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement17.ts === for (var of; ;) { } ->of : any, Symbol(of, Decl(parserES5ForOfStatement17.ts, 0, 8)) +>of : any diff --git a/tests/baselines/reference/parserES5ForOfStatement18.symbols b/tests/baselines/reference/parserES5ForOfStatement18.symbols new file mode 100644 index 0000000000000..830c1010a27e0 --- /dev/null +++ b/tests/baselines/reference/parserES5ForOfStatement18.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement18.ts === +for (var of of of) { } +>of : Symbol(of, Decl(parserES5ForOfStatement18.ts, 0, 8)) +>of : Symbol(of, Decl(parserES5ForOfStatement18.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserES5ForOfStatement18.types b/tests/baselines/reference/parserES5ForOfStatement18.types index 81f26be8d22c0..f9544e39a31d1 100644 --- a/tests/baselines/reference/parserES5ForOfStatement18.types +++ b/tests/baselines/reference/parserES5ForOfStatement18.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement18.ts === for (var of of of) { } ->of : any, Symbol(of, Decl(parserES5ForOfStatement18.ts, 0, 8)) ->of : any, Symbol(of, Decl(parserES5ForOfStatement18.ts, 0, 8)) +>of : any +>of : any diff --git a/tests/baselines/reference/parserES5ForOfStatement19.symbols b/tests/baselines/reference/parserES5ForOfStatement19.symbols new file mode 100644 index 0000000000000..93ba77e3db94c --- /dev/null +++ b/tests/baselines/reference/parserES5ForOfStatement19.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement19.ts === +for (var of in of) { } +>of : Symbol(of, Decl(parserES5ForOfStatement19.ts, 0, 8)) +>of : Symbol(of, Decl(parserES5ForOfStatement19.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserES5ForOfStatement19.types b/tests/baselines/reference/parserES5ForOfStatement19.types index 1ac5ef5ec7f6e..13abc7ae757b4 100644 --- a/tests/baselines/reference/parserES5ForOfStatement19.types +++ b/tests/baselines/reference/parserES5ForOfStatement19.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/Statements/parserES5ForOfStatement19.ts === for (var of in of) { } ->of : any, Symbol(of, Decl(parserES5ForOfStatement19.ts, 0, 8)) ->of : any, Symbol(of, Decl(parserES5ForOfStatement19.ts, 0, 8)) +>of : any +>of : any diff --git a/tests/baselines/reference/parserEmptyFile1.symbols b/tests/baselines/reference/parserEmptyFile1.symbols new file mode 100644 index 0000000000000..d48ac0a484110 --- /dev/null +++ b/tests/baselines/reference/parserEmptyFile1.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/parser/ecmascript5/parserEmptyFile1.ts === + +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserEmptyStatement1.symbols b/tests/baselines/reference/parserEmptyStatement1.symbols new file mode 100644 index 0000000000000..f9d6ed3564525 --- /dev/null +++ b/tests/baselines/reference/parserEmptyStatement1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/parserEmptyStatement1.ts === +; ; +var a = 1; +>a : Symbol(a, Decl(parserEmptyStatement1.ts, 1, 3)) + +; + diff --git a/tests/baselines/reference/parserEmptyStatement1.types b/tests/baselines/reference/parserEmptyStatement1.types index 047bd7f80690f..a581dd6e87174 100644 --- a/tests/baselines/reference/parserEmptyStatement1.types +++ b/tests/baselines/reference/parserEmptyStatement1.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/parserEmptyStatement1.ts === ; ; var a = 1; ->a : number, Symbol(a, Decl(parserEmptyStatement1.ts, 1, 3)) +>a : number >1 : number ; diff --git a/tests/baselines/reference/parserEnum6.symbols b/tests/baselines/reference/parserEnum6.symbols new file mode 100644 index 0000000000000..baee1886f249b --- /dev/null +++ b/tests/baselines/reference/parserEnum6.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum6.ts === +enum E { +>E : Symbol(E, Decl(parserEnum6.ts, 0, 0)) + + "A", "B", "C" +} diff --git a/tests/baselines/reference/parserEnum6.types b/tests/baselines/reference/parserEnum6.types index d328d35624dab..9b9e2a4909aa3 100644 --- a/tests/baselines/reference/parserEnum6.types +++ b/tests/baselines/reference/parserEnum6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum6.ts === enum E { ->E : E, Symbol(E, Decl(parserEnum6.ts, 0, 0)) +>E : E "A", "B", "C" } diff --git a/tests/baselines/reference/parserEnumDeclaration1.symbols b/tests/baselines/reference/parserEnumDeclaration1.symbols new file mode 100644 index 0000000000000..e3041443712f8 --- /dev/null +++ b/tests/baselines/reference/parserEnumDeclaration1.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration1.ts === +enum E { +>E : Symbol(E, Decl(parserEnumDeclaration1.ts, 0, 0)) + + Foo = 1, +>Foo : Symbol(E.Foo, Decl(parserEnumDeclaration1.ts, 0, 8)) + + Bar +>Bar : Symbol(E.Bar, Decl(parserEnumDeclaration1.ts, 1, 10)) +} diff --git a/tests/baselines/reference/parserEnumDeclaration1.types b/tests/baselines/reference/parserEnumDeclaration1.types index a8309cebc64a2..de99855b310f6 100644 --- a/tests/baselines/reference/parserEnumDeclaration1.types +++ b/tests/baselines/reference/parserEnumDeclaration1.types @@ -1,11 +1,11 @@ === tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration1.ts === enum E { ->E : E, Symbol(E, Decl(parserEnumDeclaration1.ts, 0, 0)) +>E : E Foo = 1, ->Foo : E, Symbol(E.Foo, Decl(parserEnumDeclaration1.ts, 0, 8)) +>Foo : E >1 : number Bar ->Bar : E, Symbol(E.Bar, Decl(parserEnumDeclaration1.ts, 1, 10)) +>Bar : E } diff --git a/tests/baselines/reference/parserEnumDeclaration2.d.symbols b/tests/baselines/reference/parserEnumDeclaration2.d.symbols new file mode 100644 index 0000000000000..0b222a59c7a23 --- /dev/null +++ b/tests/baselines/reference/parserEnumDeclaration2.d.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration2.d.ts === +declare enum E { +>E : Symbol(E, Decl(parserEnumDeclaration2.d.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parserEnumDeclaration2.d.types b/tests/baselines/reference/parserEnumDeclaration2.d.types index b66f935e12ffd..782c530e5057f 100644 --- a/tests/baselines/reference/parserEnumDeclaration2.d.types +++ b/tests/baselines/reference/parserEnumDeclaration2.d.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration2.d.ts === declare enum E { ->E : E, Symbol(E, Decl(parserEnumDeclaration2.d.ts, 0, 0)) +>E : E } diff --git a/tests/baselines/reference/parserEnumDeclaration3.symbols b/tests/baselines/reference/parserEnumDeclaration3.symbols new file mode 100644 index 0000000000000..f0380b4503065 --- /dev/null +++ b/tests/baselines/reference/parserEnumDeclaration3.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration3.ts === +declare enum E { +>E : Symbol(E, Decl(parserEnumDeclaration3.ts, 0, 0)) + + A = 1 +>A : Symbol(E.A, Decl(parserEnumDeclaration3.ts, 0, 16)) +} diff --git a/tests/baselines/reference/parserEnumDeclaration3.types b/tests/baselines/reference/parserEnumDeclaration3.types index 3736ac4ffbb7f..b427a795eb6fc 100644 --- a/tests/baselines/reference/parserEnumDeclaration3.types +++ b/tests/baselines/reference/parserEnumDeclaration3.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration3.ts === declare enum E { ->E : E, Symbol(E, Decl(parserEnumDeclaration3.ts, 0, 0)) +>E : E A = 1 ->A : E, Symbol(E.A, Decl(parserEnumDeclaration3.ts, 0, 16)) +>A : E >1 : number } diff --git a/tests/baselines/reference/parserEnumDeclaration5.symbols b/tests/baselines/reference/parserEnumDeclaration5.symbols new file mode 100644 index 0000000000000..584f21e5e7224 --- /dev/null +++ b/tests/baselines/reference/parserEnumDeclaration5.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration5.ts === +enum E { +>E : Symbol(E, Decl(parserEnumDeclaration5.ts, 0, 0)) + + A = 1, +>A : Symbol(E.A, Decl(parserEnumDeclaration5.ts, 0, 8)) + + B, +>B : Symbol(E.B, Decl(parserEnumDeclaration5.ts, 1, 10)) + + C = 2, +>C : Symbol(E.C, Decl(parserEnumDeclaration5.ts, 2, 6)) + + D +>D : Symbol(E.D, Decl(parserEnumDeclaration5.ts, 3, 10)) +} diff --git a/tests/baselines/reference/parserEnumDeclaration5.types b/tests/baselines/reference/parserEnumDeclaration5.types index ff25d5ab77ac1..bbb596b7b0f88 100644 --- a/tests/baselines/reference/parserEnumDeclaration5.types +++ b/tests/baselines/reference/parserEnumDeclaration5.types @@ -1,18 +1,18 @@ === tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnumDeclaration5.ts === enum E { ->E : E, Symbol(E, Decl(parserEnumDeclaration5.ts, 0, 0)) +>E : E A = 1, ->A : E, Symbol(E.A, Decl(parserEnumDeclaration5.ts, 0, 8)) +>A : E >1 : number B, ->B : E, Symbol(E.B, Decl(parserEnumDeclaration5.ts, 1, 10)) +>B : E C = 2, ->C : E, Symbol(E.C, Decl(parserEnumDeclaration5.ts, 2, 6)) +>C : E >2 : number D ->D : E, Symbol(E.D, Decl(parserEnumDeclaration5.ts, 3, 10)) +>D : E } diff --git a/tests/baselines/reference/parserExportAsFunctionIdentifier.symbols b/tests/baselines/reference/parserExportAsFunctionIdentifier.symbols new file mode 100644 index 0000000000000..6d81e8fdae311 --- /dev/null +++ b/tests/baselines/reference/parserExportAsFunctionIdentifier.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/parser/ecmascript5/parserExportAsFunctionIdentifier.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(parserExportAsFunctionIdentifier.ts, 0, 0)) + + export(): string; +>export : Symbol(export, Decl(parserExportAsFunctionIdentifier.ts, 0, 15)) +} + +var f: Foo; +>f : Symbol(f, Decl(parserExportAsFunctionIdentifier.ts, 4, 3)) +>Foo : Symbol(Foo, Decl(parserExportAsFunctionIdentifier.ts, 0, 0)) + +var x = f.export(); +>x : Symbol(x, Decl(parserExportAsFunctionIdentifier.ts, 5, 3)) +>f.export : Symbol(Foo.export, Decl(parserExportAsFunctionIdentifier.ts, 0, 15)) +>f : Symbol(f, Decl(parserExportAsFunctionIdentifier.ts, 4, 3)) +>export : Symbol(Foo.export, Decl(parserExportAsFunctionIdentifier.ts, 0, 15)) + diff --git a/tests/baselines/reference/parserExportAsFunctionIdentifier.types b/tests/baselines/reference/parserExportAsFunctionIdentifier.types index acf035eac9e2e..6e8fb29287f52 100644 --- a/tests/baselines/reference/parserExportAsFunctionIdentifier.types +++ b/tests/baselines/reference/parserExportAsFunctionIdentifier.types @@ -1,19 +1,19 @@ === tests/cases/conformance/parser/ecmascript5/parserExportAsFunctionIdentifier.ts === interface Foo { ->Foo : Foo, Symbol(Foo, Decl(parserExportAsFunctionIdentifier.ts, 0, 0)) +>Foo : Foo export(): string; ->export : () => string, Symbol(export, Decl(parserExportAsFunctionIdentifier.ts, 0, 15)) +>export : () => string } var f: Foo; ->f : Foo, Symbol(f, Decl(parserExportAsFunctionIdentifier.ts, 4, 3)) ->Foo : Foo, Symbol(Foo, Decl(parserExportAsFunctionIdentifier.ts, 0, 0)) +>f : Foo +>Foo : Foo var x = f.export(); ->x : string, Symbol(x, Decl(parserExportAsFunctionIdentifier.ts, 5, 3)) +>x : string >f.export() : string ->f.export : () => string, Symbol(Foo.export, Decl(parserExportAsFunctionIdentifier.ts, 0, 15)) ->f : Foo, Symbol(f, Decl(parserExportAsFunctionIdentifier.ts, 4, 3)) ->export : () => string, Symbol(Foo.export, Decl(parserExportAsFunctionIdentifier.ts, 0, 15)) +>f.export : () => string +>f : Foo +>export : () => string diff --git a/tests/baselines/reference/parserForOfStatement17.symbols b/tests/baselines/reference/parserForOfStatement17.symbols new file mode 100644 index 0000000000000..d78fe45e237a0 --- /dev/null +++ b/tests/baselines/reference/parserForOfStatement17.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement17.ts === +for (var of; ;) { } +>of : Symbol(of, Decl(parserForOfStatement17.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserForOfStatement17.types b/tests/baselines/reference/parserForOfStatement17.types index 48e4100f90f3a..64e15462dd663 100644 --- a/tests/baselines/reference/parserForOfStatement17.types +++ b/tests/baselines/reference/parserForOfStatement17.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement17.ts === for (var of; ;) { } ->of : any, Symbol(of, Decl(parserForOfStatement17.ts, 0, 8)) +>of : any diff --git a/tests/baselines/reference/parserForOfStatement18.symbols b/tests/baselines/reference/parserForOfStatement18.symbols new file mode 100644 index 0000000000000..db66154621985 --- /dev/null +++ b/tests/baselines/reference/parserForOfStatement18.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement18.ts === +for (var of of of) { } +>of : Symbol(of, Decl(parserForOfStatement18.ts, 0, 8)) +>of : Symbol(of, Decl(parserForOfStatement18.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserForOfStatement18.types b/tests/baselines/reference/parserForOfStatement18.types index dc0be55fb5002..8e3b52ac87743 100644 --- a/tests/baselines/reference/parserForOfStatement18.types +++ b/tests/baselines/reference/parserForOfStatement18.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement18.ts === for (var of of of) { } ->of : any, Symbol(of, Decl(parserForOfStatement18.ts, 0, 8)) ->of : any, Symbol(of, Decl(parserForOfStatement18.ts, 0, 8)) +>of : any +>of : any diff --git a/tests/baselines/reference/parserForOfStatement19.symbols b/tests/baselines/reference/parserForOfStatement19.symbols new file mode 100644 index 0000000000000..1e123349e13c6 --- /dev/null +++ b/tests/baselines/reference/parserForOfStatement19.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement19.ts === +for (var of in of) { } +>of : Symbol(of, Decl(parserForOfStatement19.ts, 0, 8)) +>of : Symbol(of, Decl(parserForOfStatement19.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserForOfStatement19.types b/tests/baselines/reference/parserForOfStatement19.types index 51a5e954a4b30..6fcc5e8f79216 100644 --- a/tests/baselines/reference/parserForOfStatement19.types +++ b/tests/baselines/reference/parserForOfStatement19.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript6/Iterators/parserForOfStatement19.ts === for (var of in of) { } ->of : any, Symbol(of, Decl(parserForOfStatement19.ts, 0, 8)) ->of : any, Symbol(of, Decl(parserForOfStatement19.ts, 0, 8)) +>of : any +>of : any diff --git a/tests/baselines/reference/parserFunctionDeclaration1.d.symbols b/tests/baselines/reference/parserFunctionDeclaration1.d.symbols new file mode 100644 index 0000000000000..eaaa03c6bc09d --- /dev/null +++ b/tests/baselines/reference/parserFunctionDeclaration1.d.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration1.d.ts === +declare function F(); +>F : Symbol(F, Decl(parserFunctionDeclaration1.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/parserFunctionDeclaration1.d.types b/tests/baselines/reference/parserFunctionDeclaration1.d.types index 7269f7bfb3696..cb62ab01c9026 100644 --- a/tests/baselines/reference/parserFunctionDeclaration1.d.types +++ b/tests/baselines/reference/parserFunctionDeclaration1.d.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration1.d.ts === declare function F(); ->F : () => any, Symbol(F, Decl(parserFunctionDeclaration1.d.ts, 0, 0)) +>F : () => any diff --git a/tests/baselines/reference/parserFunctionDeclaration5.symbols b/tests/baselines/reference/parserFunctionDeclaration5.symbols new file mode 100644 index 0000000000000..9606dc35897f8 --- /dev/null +++ b/tests/baselines/reference/parserFunctionDeclaration5.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.ts === +function foo(); +>foo : Symbol(foo, Decl(parserFunctionDeclaration5.ts, 0, 0), Decl(parserFunctionDeclaration5.ts, 0, 15)) + +function foo() { } +>foo : Symbol(foo, Decl(parserFunctionDeclaration5.ts, 0, 0), Decl(parserFunctionDeclaration5.ts, 0, 15)) + diff --git a/tests/baselines/reference/parserFunctionDeclaration5.types b/tests/baselines/reference/parserFunctionDeclaration5.types index 4ba1ea352270e..a3cf71336ea51 100644 --- a/tests/baselines/reference/parserFunctionDeclaration5.types +++ b/tests/baselines/reference/parserFunctionDeclaration5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration5.ts === function foo(); ->foo : () => any, Symbol(foo, Decl(parserFunctionDeclaration5.ts, 0, 0), Decl(parserFunctionDeclaration5.ts, 0, 15)) +>foo : () => any function foo() { } ->foo : () => any, Symbol(foo, Decl(parserFunctionDeclaration5.ts, 0, 0), Decl(parserFunctionDeclaration5.ts, 0, 15)) +>foo : () => any diff --git a/tests/baselines/reference/parserFunctionDeclaration8.symbols b/tests/baselines/reference/parserFunctionDeclaration8.symbols new file mode 100644 index 0000000000000..feccbdc7c4fec --- /dev/null +++ b/tests/baselines/reference/parserFunctionDeclaration8.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration8.ts === +declare module M { +>M : Symbol(M, Decl(parserFunctionDeclaration8.ts, 0, 0)) + + function foo(); +>foo : Symbol(foo, Decl(parserFunctionDeclaration8.ts, 0, 18)) +} diff --git a/tests/baselines/reference/parserFunctionDeclaration8.types b/tests/baselines/reference/parserFunctionDeclaration8.types index baab2debc42cb..ebb8ff8d40932 100644 --- a/tests/baselines/reference/parserFunctionDeclaration8.types +++ b/tests/baselines/reference/parserFunctionDeclaration8.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/FunctionDeclarations/parserFunctionDeclaration8.ts === declare module M { ->M : typeof M, Symbol(M, Decl(parserFunctionDeclaration8.ts, 0, 0)) +>M : typeof M function foo(); ->foo : () => any, Symbol(foo, Decl(parserFunctionDeclaration8.ts, 0, 18)) +>foo : () => any } diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment1.symbols b/tests/baselines/reference/parserFunctionPropertyAssignment1.symbols new file mode 100644 index 0000000000000..01b555c5e8583 --- /dev/null +++ b/tests/baselines/reference/parserFunctionPropertyAssignment1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment1.ts === +var v = { foo() { } }; +>v : Symbol(v, Decl(parserFunctionPropertyAssignment1.ts, 0, 3)) +>foo : Symbol(foo, Decl(parserFunctionPropertyAssignment1.ts, 0, 9)) + diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment1.types b/tests/baselines/reference/parserFunctionPropertyAssignment1.types index 62bbd8a5c0c4b..1b552cdfefd01 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment1.types +++ b/tests/baselines/reference/parserFunctionPropertyAssignment1.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment1.ts === var v = { foo() { } }; ->v : { foo(): void; }, Symbol(v, Decl(parserFunctionPropertyAssignment1.ts, 0, 3)) +>v : { foo(): void; } >{ foo() { } } : { foo(): void; } ->foo : () => void, Symbol(foo, Decl(parserFunctionPropertyAssignment1.ts, 0, 9)) +>foo : () => void diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment2.symbols b/tests/baselines/reference/parserFunctionPropertyAssignment2.symbols new file mode 100644 index 0000000000000..3cd2d8ab32557 --- /dev/null +++ b/tests/baselines/reference/parserFunctionPropertyAssignment2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment2.ts === +var v = { 0() { } }; +>v : Symbol(v, Decl(parserFunctionPropertyAssignment2.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment2.types b/tests/baselines/reference/parserFunctionPropertyAssignment2.types index 3317dce91f494..747b66978af00 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment2.types +++ b/tests/baselines/reference/parserFunctionPropertyAssignment2.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment2.ts === var v = { 0() { } }; ->v : { 0(): void; }, Symbol(v, Decl(parserFunctionPropertyAssignment2.ts, 0, 3)) +>v : { 0(): void; } >{ 0() { } } : { 0(): void; } diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment3.symbols b/tests/baselines/reference/parserFunctionPropertyAssignment3.symbols new file mode 100644 index 0000000000000..9b3135c5ed029 --- /dev/null +++ b/tests/baselines/reference/parserFunctionPropertyAssignment3.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment3.ts === +var v = { "foo"() { } }; +>v : Symbol(v, Decl(parserFunctionPropertyAssignment3.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment3.types b/tests/baselines/reference/parserFunctionPropertyAssignment3.types index b420f308b0a90..9fb2bb45feff9 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment3.types +++ b/tests/baselines/reference/parserFunctionPropertyAssignment3.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment3.ts === var v = { "foo"() { } }; ->v : { "foo"(): void; }, Symbol(v, Decl(parserFunctionPropertyAssignment3.ts, 0, 3)) +>v : { "foo"(): void; } >{ "foo"() { } } : { "foo"(): void; } diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment4.symbols b/tests/baselines/reference/parserFunctionPropertyAssignment4.symbols new file mode 100644 index 0000000000000..2cb8b652e33a8 --- /dev/null +++ b/tests/baselines/reference/parserFunctionPropertyAssignment4.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment4.ts === +var v = { 0() { } }; +>v : Symbol(v, Decl(parserFunctionPropertyAssignment4.ts, 0, 3)) +>T : Symbol(T, Decl(parserFunctionPropertyAssignment4.ts, 0, 12)) + diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment4.types b/tests/baselines/reference/parserFunctionPropertyAssignment4.types index 4d4a33e32453a..6ab031518d4fd 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment4.types +++ b/tests/baselines/reference/parserFunctionPropertyAssignment4.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertyAssignments/parserFunctionPropertyAssignment4.ts === var v = { 0() { } }; ->v : { 0(): void; }, Symbol(v, Decl(parserFunctionPropertyAssignment4.ts, 0, 3)) +>v : { 0(): void; } >{ 0() { } } : { 0(): void; } ->T : T, Symbol(T, Decl(parserFunctionPropertyAssignment4.ts, 0, 12)) +>T : T diff --git a/tests/baselines/reference/parserGenericClass1.symbols b/tests/baselines/reference/parserGenericClass1.symbols new file mode 100644 index 0000000000000..68d5f0a20a8d2 --- /dev/null +++ b/tests/baselines/reference/parserGenericClass1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts === +class C { +>C : Symbol(C, Decl(parserGenericClass1.ts, 0, 0)) +>T : Symbol(T, Decl(parserGenericClass1.ts, 0, 8)) +} diff --git a/tests/baselines/reference/parserGenericClass1.types b/tests/baselines/reference/parserGenericClass1.types index 6c2749a65e798..546da49f9ab8d 100644 --- a/tests/baselines/reference/parserGenericClass1.types +++ b/tests/baselines/reference/parserGenericClass1.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass1.ts === class C { ->C : C, Symbol(C, Decl(parserGenericClass1.ts, 0, 0)) ->T : T, Symbol(T, Decl(parserGenericClass1.ts, 0, 8)) +>C : C +>T : T } diff --git a/tests/baselines/reference/parserGenericClass2.symbols b/tests/baselines/reference/parserGenericClass2.symbols new file mode 100644 index 0000000000000..386724947010b --- /dev/null +++ b/tests/baselines/reference/parserGenericClass2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts === +class C { +>C : Symbol(C, Decl(parserGenericClass2.ts, 0, 0)) +>K : Symbol(K, Decl(parserGenericClass2.ts, 0, 8)) +>V : Symbol(V, Decl(parserGenericClass2.ts, 0, 10)) +} diff --git a/tests/baselines/reference/parserGenericClass2.types b/tests/baselines/reference/parserGenericClass2.types index f0218fa15a4de..b577eef39f394 100644 --- a/tests/baselines/reference/parserGenericClass2.types +++ b/tests/baselines/reference/parserGenericClass2.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/Generics/parserGenericClass2.ts === class C { ->C : C, Symbol(C, Decl(parserGenericClass2.ts, 0, 0)) ->K : K, Symbol(K, Decl(parserGenericClass2.ts, 0, 8)) ->V : V, Symbol(V, Decl(parserGenericClass2.ts, 0, 10)) +>C : C +>K : K +>V : V } diff --git a/tests/baselines/reference/parserGenericConstraint1.symbols b/tests/baselines/reference/parserGenericConstraint1.symbols new file mode 100644 index 0000000000000..ec6edf2125715 --- /dev/null +++ b/tests/baselines/reference/parserGenericConstraint1.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts === +class C { +>C : Symbol(C, Decl(parserGenericConstraint1.ts, 0, 0)) +>T : Symbol(T, Decl(parserGenericConstraint1.ts, 0, 8)) +} diff --git a/tests/baselines/reference/parserGenericConstraint1.types b/tests/baselines/reference/parserGenericConstraint1.types index 393b64b10a825..2b03617861cba 100644 --- a/tests/baselines/reference/parserGenericConstraint1.types +++ b/tests/baselines/reference/parserGenericConstraint1.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/Generics/parserGenericConstraint1.ts === class C { ->C : C, Symbol(C, Decl(parserGenericConstraint1.ts, 0, 0)) ->T : T, Symbol(T, Decl(parserGenericConstraint1.ts, 0, 8)) +>C : C +>T : T } diff --git a/tests/baselines/reference/parserGreaterThanTokenAmbiguity1.symbols b/tests/baselines/reference/parserGreaterThanTokenAmbiguity1.symbols new file mode 100644 index 0000000000000..62100969e99f3 --- /dev/null +++ b/tests/baselines/reference/parserGreaterThanTokenAmbiguity1.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity1.ts === +1 >> 2; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserGreaterThanTokenAmbiguity10.symbols b/tests/baselines/reference/parserGreaterThanTokenAmbiguity10.symbols new file mode 100644 index 0000000000000..daf18ee868dc3 --- /dev/null +++ b/tests/baselines/reference/parserGreaterThanTokenAmbiguity10.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity10.ts === +1 +No type information for this code.// before +No type information for this code.>>> // after +No type information for this code.2; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserGreaterThanTokenAmbiguity5.symbols b/tests/baselines/reference/parserGreaterThanTokenAmbiguity5.symbols new file mode 100644 index 0000000000000..f0ca1bc80c9e7 --- /dev/null +++ b/tests/baselines/reference/parserGreaterThanTokenAmbiguity5.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity5.ts === +1 +No type information for this code.// before +No type information for this code.>> // after +No type information for this code.2; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserGreaterThanTokenAmbiguity6.symbols b/tests/baselines/reference/parserGreaterThanTokenAmbiguity6.symbols new file mode 100644 index 0000000000000..4ea0d39b9653d --- /dev/null +++ b/tests/baselines/reference/parserGreaterThanTokenAmbiguity6.symbols @@ -0,0 +1,3 @@ +=== tests/cases/conformance/parser/ecmascript5/Generics/parserGreaterThanTokenAmbiguity6.ts === +1 >>> 2; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserIndexMemberDeclaration1.symbols b/tests/baselines/reference/parserIndexMemberDeclaration1.symbols new file mode 100644 index 0000000000000..d942f90f17fd8 --- /dev/null +++ b/tests/baselines/reference/parserIndexMemberDeclaration1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts === +class C { +>C : Symbol(C, Decl(parserIndexMemberDeclaration1.ts, 0, 0)) + + [a: string]: number +>a : Symbol(a, Decl(parserIndexMemberDeclaration1.ts, 1, 4)) +} diff --git a/tests/baselines/reference/parserIndexMemberDeclaration1.types b/tests/baselines/reference/parserIndexMemberDeclaration1.types index 9a55d630a7f37..83bcfe7967844 100644 --- a/tests/baselines/reference/parserIndexMemberDeclaration1.types +++ b/tests/baselines/reference/parserIndexMemberDeclaration1.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration1.ts === class C { ->C : C, Symbol(C, Decl(parserIndexMemberDeclaration1.ts, 0, 0)) +>C : C [a: string]: number ->a : string, Symbol(a, Decl(parserIndexMemberDeclaration1.ts, 1, 4)) +>a : string } diff --git a/tests/baselines/reference/parserIndexMemberDeclaration2.symbols b/tests/baselines/reference/parserIndexMemberDeclaration2.symbols new file mode 100644 index 0000000000000..1b42a8f8160ad --- /dev/null +++ b/tests/baselines/reference/parserIndexMemberDeclaration2.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts === +class C { +>C : Symbol(C, Decl(parserIndexMemberDeclaration2.ts, 0, 0)) + + [a: string]: number +>a : Symbol(a, Decl(parserIndexMemberDeclaration2.ts, 1, 4)) + + public v: number +>v : Symbol(v, Decl(parserIndexMemberDeclaration2.ts, 1, 22)) +} diff --git a/tests/baselines/reference/parserIndexMemberDeclaration2.types b/tests/baselines/reference/parserIndexMemberDeclaration2.types index 47b3ec2561bdc..00ef9a5488060 100644 --- a/tests/baselines/reference/parserIndexMemberDeclaration2.types +++ b/tests/baselines/reference/parserIndexMemberDeclaration2.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration2.ts === class C { ->C : C, Symbol(C, Decl(parserIndexMemberDeclaration2.ts, 0, 0)) +>C : C [a: string]: number ->a : string, Symbol(a, Decl(parserIndexMemberDeclaration2.ts, 1, 4)) +>a : string public v: number ->v : number, Symbol(v, Decl(parserIndexMemberDeclaration2.ts, 1, 22)) +>v : number } diff --git a/tests/baselines/reference/parserIndexMemberDeclaration3.symbols b/tests/baselines/reference/parserIndexMemberDeclaration3.symbols new file mode 100644 index 0000000000000..6961a37f4974e --- /dev/null +++ b/tests/baselines/reference/parserIndexMemberDeclaration3.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts === +class C { +>C : Symbol(C, Decl(parserIndexMemberDeclaration3.ts, 0, 0)) + + [a: string]: number; +>a : Symbol(a, Decl(parserIndexMemberDeclaration3.ts, 1, 4)) + + public v: number +>v : Symbol(v, Decl(parserIndexMemberDeclaration3.ts, 1, 23)) +} diff --git a/tests/baselines/reference/parserIndexMemberDeclaration3.types b/tests/baselines/reference/parserIndexMemberDeclaration3.types index 453a7c01c475b..15a7d63ab8ad4 100644 --- a/tests/baselines/reference/parserIndexMemberDeclaration3.types +++ b/tests/baselines/reference/parserIndexMemberDeclaration3.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration3.ts === class C { ->C : C, Symbol(C, Decl(parserIndexMemberDeclaration3.ts, 0, 0)) +>C : C [a: string]: number; ->a : string, Symbol(a, Decl(parserIndexMemberDeclaration3.ts, 1, 4)) +>a : string public v: number ->v : number, Symbol(v, Decl(parserIndexMemberDeclaration3.ts, 1, 23)) +>v : number } diff --git a/tests/baselines/reference/parserIndexMemberDeclaration4.symbols b/tests/baselines/reference/parserIndexMemberDeclaration4.symbols new file mode 100644 index 0000000000000..29b101d05d8c5 --- /dev/null +++ b/tests/baselines/reference/parserIndexMemberDeclaration4.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts === +class C { +>C : Symbol(C, Decl(parserIndexMemberDeclaration4.ts, 0, 0)) + + [a: string]: number; public v: number +>a : Symbol(a, Decl(parserIndexMemberDeclaration4.ts, 1, 4)) +>v : Symbol(v, Decl(parserIndexMemberDeclaration4.ts, 1, 23)) +} diff --git a/tests/baselines/reference/parserIndexMemberDeclaration4.types b/tests/baselines/reference/parserIndexMemberDeclaration4.types index 5e6fcc10e4648..a8d8880261dc6 100644 --- a/tests/baselines/reference/parserIndexMemberDeclaration4.types +++ b/tests/baselines/reference/parserIndexMemberDeclaration4.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/IndexMemberDeclarations/parserIndexMemberDeclaration4.ts === class C { ->C : C, Symbol(C, Decl(parserIndexMemberDeclaration4.ts, 0, 0)) +>C : C [a: string]: number; public v: number ->a : string, Symbol(a, Decl(parserIndexMemberDeclaration4.ts, 1, 4)) ->v : number, Symbol(v, Decl(parserIndexMemberDeclaration4.ts, 1, 23)) +>a : string +>v : number } diff --git a/tests/baselines/reference/parserInterfaceKeywordInEnum.symbols b/tests/baselines/reference/parserInterfaceKeywordInEnum.symbols new file mode 100644 index 0000000000000..159d21a96b75f --- /dev/null +++ b/tests/baselines/reference/parserInterfaceKeywordInEnum.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserInterfaceKeywordInEnum.ts === +enum Bar { +>Bar : Symbol(Bar, Decl(parserInterfaceKeywordInEnum.ts, 0, 0)) + + interface, +>interface : Symbol(Bar.interface, Decl(parserInterfaceKeywordInEnum.ts, 0, 10)) +} + diff --git a/tests/baselines/reference/parserInterfaceKeywordInEnum.types b/tests/baselines/reference/parserInterfaceKeywordInEnum.types index 4ae9784872db2..aa71126883df7 100644 --- a/tests/baselines/reference/parserInterfaceKeywordInEnum.types +++ b/tests/baselines/reference/parserInterfaceKeywordInEnum.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserInterfaceKeywordInEnum.ts === enum Bar { ->Bar : Bar, Symbol(Bar, Decl(parserInterfaceKeywordInEnum.ts, 0, 0)) +>Bar : Bar interface, ->interface : Bar, Symbol(Bar.interface, Decl(parserInterfaceKeywordInEnum.ts, 0, 10)) +>interface : Bar } diff --git a/tests/baselines/reference/parserInterfaceKeywordInEnum1.symbols b/tests/baselines/reference/parserInterfaceKeywordInEnum1.symbols new file mode 100644 index 0000000000000..2bbb8b87ea180 --- /dev/null +++ b/tests/baselines/reference/parserInterfaceKeywordInEnum1.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserInterfaceKeywordInEnum1.ts === +"use strict"; + +enum Bar { +>Bar : Symbol(Bar, Decl(parserInterfaceKeywordInEnum1.ts, 0, 13)) + + interface, +>interface : Symbol(Bar.interface, Decl(parserInterfaceKeywordInEnum1.ts, 2, 10)) +} + diff --git a/tests/baselines/reference/parserInterfaceKeywordInEnum1.types b/tests/baselines/reference/parserInterfaceKeywordInEnum1.types index f2e55e021258c..f6b613f3f6085 100644 --- a/tests/baselines/reference/parserInterfaceKeywordInEnum1.types +++ b/tests/baselines/reference/parserInterfaceKeywordInEnum1.types @@ -3,9 +3,9 @@ >"use strict" : string enum Bar { ->Bar : Bar, Symbol(Bar, Decl(parserInterfaceKeywordInEnum1.ts, 0, 13)) +>Bar : Bar interface, ->interface : Bar, Symbol(Bar.interface, Decl(parserInterfaceKeywordInEnum1.ts, 2, 10)) +>interface : Bar } diff --git a/tests/baselines/reference/parserKeywordsAsIdentifierName1.symbols b/tests/baselines/reference/parserKeywordsAsIdentifierName1.symbols new file mode 100644 index 0000000000000..67420930affce --- /dev/null +++ b/tests/baselines/reference/parserKeywordsAsIdentifierName1.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/parser/ecmascript5/parserKeywordsAsIdentifierName1.ts === +var big = { +>big : Symbol(big, Decl(parserKeywordsAsIdentifierName1.ts, 0, 3)) + + break : 0, +>break : Symbol(break, Decl(parserKeywordsAsIdentifierName1.ts, 0, 11)) + + super : 0, +>super : Symbol(super, Decl(parserKeywordsAsIdentifierName1.ts, 1, 13)) + + const : 0 +>const : Symbol(const, Decl(parserKeywordsAsIdentifierName1.ts, 2, 13)) +} + diff --git a/tests/baselines/reference/parserKeywordsAsIdentifierName1.types b/tests/baselines/reference/parserKeywordsAsIdentifierName1.types index 08a91badb9807..bc586e8a4bb3b 100644 --- a/tests/baselines/reference/parserKeywordsAsIdentifierName1.types +++ b/tests/baselines/reference/parserKeywordsAsIdentifierName1.types @@ -1,18 +1,18 @@ === tests/cases/conformance/parser/ecmascript5/parserKeywordsAsIdentifierName1.ts === var big = { ->big : { break: number; super: number; const: number; }, Symbol(big, Decl(parserKeywordsAsIdentifierName1.ts, 0, 3)) +>big : { break: number; super: number; const: number; } >{ break : 0, super : 0, const : 0} : { break: number; super: number; const: number; } break : 0, ->break : number, Symbol(break, Decl(parserKeywordsAsIdentifierName1.ts, 0, 11)) +>break : number >0 : number super : 0, ->super : number, Symbol(super, Decl(parserKeywordsAsIdentifierName1.ts, 1, 13)) +>super : number >0 : number const : 0 ->const : number, Symbol(const, Decl(parserKeywordsAsIdentifierName1.ts, 2, 13)) +>const : number >0 : number } diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration4.symbols b/tests/baselines/reference/parserMemberAccessorDeclaration4.symbols new file mode 100644 index 0000000000000..2750f28943e4e --- /dev/null +++ b/tests/baselines/reference/parserMemberAccessorDeclaration4.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration4.ts === +class C { +>C : Symbol(C, Decl(parserMemberAccessorDeclaration4.ts, 0, 0)) + + set a(i) { } +>a : Symbol(a, Decl(parserMemberAccessorDeclaration4.ts, 0, 9)) +>i : Symbol(i, Decl(parserMemberAccessorDeclaration4.ts, 1, 8)) +} diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration4.types b/tests/baselines/reference/parserMemberAccessorDeclaration4.types index b26fb6bdb8ffb..de4bc245d2e74 100644 --- a/tests/baselines/reference/parserMemberAccessorDeclaration4.types +++ b/tests/baselines/reference/parserMemberAccessorDeclaration4.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration4.ts === class C { ->C : C, Symbol(C, Decl(parserMemberAccessorDeclaration4.ts, 0, 0)) +>C : C set a(i) { } ->a : any, Symbol(a, Decl(parserMemberAccessorDeclaration4.ts, 0, 9)) ->i : any, Symbol(i, Decl(parserMemberAccessorDeclaration4.ts, 1, 8)) +>a : any +>i : any } diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration5.symbols b/tests/baselines/reference/parserMemberAccessorDeclaration5.symbols new file mode 100644 index 0000000000000..ac343ff02b10c --- /dev/null +++ b/tests/baselines/reference/parserMemberAccessorDeclaration5.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration5.ts === +class C { +>C : Symbol(C, Decl(parserMemberAccessorDeclaration5.ts, 0, 0)) + + set "a"(i) { } +>i : Symbol(i, Decl(parserMemberAccessorDeclaration5.ts, 1, 10)) +} diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration5.types b/tests/baselines/reference/parserMemberAccessorDeclaration5.types index d55bce8a30057..d22ee2d775a81 100644 --- a/tests/baselines/reference/parserMemberAccessorDeclaration5.types +++ b/tests/baselines/reference/parserMemberAccessorDeclaration5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration5.ts === class C { ->C : C, Symbol(C, Decl(parserMemberAccessorDeclaration5.ts, 0, 0)) +>C : C set "a"(i) { } ->i : any, Symbol(i, Decl(parserMemberAccessorDeclaration5.ts, 1, 10)) +>i : any } diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration6.symbols b/tests/baselines/reference/parserMemberAccessorDeclaration6.symbols new file mode 100644 index 0000000000000..a4b4558e892dd --- /dev/null +++ b/tests/baselines/reference/parserMemberAccessorDeclaration6.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration6.ts === +class C { +>C : Symbol(C, Decl(parserMemberAccessorDeclaration6.ts, 0, 0)) + + set 0(i) { } +>i : Symbol(i, Decl(parserMemberAccessorDeclaration6.ts, 1, 8)) +} diff --git a/tests/baselines/reference/parserMemberAccessorDeclaration6.types b/tests/baselines/reference/parserMemberAccessorDeclaration6.types index a954f3c9e0fcb..a06b6ddfa0c0a 100644 --- a/tests/baselines/reference/parserMemberAccessorDeclaration6.types +++ b/tests/baselines/reference/parserMemberAccessorDeclaration6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MemberAccessorDeclarations/parserMemberAccessorDeclaration6.ts === class C { ->C : C, Symbol(C, Decl(parserMemberAccessorDeclaration6.ts, 0, 0)) +>C : C set 0(i) { } ->i : any, Symbol(i, Decl(parserMemberAccessorDeclaration6.ts, 1, 8)) +>i : any } diff --git a/tests/baselines/reference/parserMethodSignature1.symbols b/tests/baselines/reference/parserMethodSignature1.symbols new file mode 100644 index 0000000000000..2c12a156ef03b --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature1.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature1.ts, 0, 0)) + + A(); +>A : Symbol(A, Decl(parserMethodSignature1.ts, 0, 13)) +} diff --git a/tests/baselines/reference/parserMethodSignature1.types b/tests/baselines/reference/parserMethodSignature1.types index 7b96083e62d61..fe016067294c8 100644 --- a/tests/baselines/reference/parserMethodSignature1.types +++ b/tests/baselines/reference/parserMethodSignature1.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature1.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature1.ts, 0, 0)) +>I : I A(); ->A : () => any, Symbol(A, Decl(parserMethodSignature1.ts, 0, 13)) +>A : () => any } diff --git a/tests/baselines/reference/parserMethodSignature10.symbols b/tests/baselines/reference/parserMethodSignature10.symbols new file mode 100644 index 0000000000000..4cefa6c759e47 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature10.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature10.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature10.ts, 0, 0)) + + 1?(); +} diff --git a/tests/baselines/reference/parserMethodSignature10.types b/tests/baselines/reference/parserMethodSignature10.types index 14bedb2872f0b..34b3bfcbd331b 100644 --- a/tests/baselines/reference/parserMethodSignature10.types +++ b/tests/baselines/reference/parserMethodSignature10.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature10.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature10.ts, 0, 0)) +>I : I 1?(); } diff --git a/tests/baselines/reference/parserMethodSignature11.symbols b/tests/baselines/reference/parserMethodSignature11.symbols new file mode 100644 index 0000000000000..3217eb47aec9f --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature11.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature11.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature11.ts, 0, 0)) + + 2(); +>T : Symbol(T, Decl(parserMethodSignature11.ts, 1, 4)) +} diff --git a/tests/baselines/reference/parserMethodSignature11.types b/tests/baselines/reference/parserMethodSignature11.types index 5e5bcb52d1691..f47eda1e9cde6 100644 --- a/tests/baselines/reference/parserMethodSignature11.types +++ b/tests/baselines/reference/parserMethodSignature11.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature11.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature11.ts, 0, 0)) +>I : I 2(); ->T : T, Symbol(T, Decl(parserMethodSignature11.ts, 1, 4)) +>T : T } diff --git a/tests/baselines/reference/parserMethodSignature12.symbols b/tests/baselines/reference/parserMethodSignature12.symbols new file mode 100644 index 0000000000000..364a89eb970b6 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature12.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature12.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature12.ts, 0, 0)) + + 3?(); +>T : Symbol(T, Decl(parserMethodSignature12.ts, 1, 5)) +} diff --git a/tests/baselines/reference/parserMethodSignature12.types b/tests/baselines/reference/parserMethodSignature12.types index e565898837b93..b5b38fadb4b6a 100644 --- a/tests/baselines/reference/parserMethodSignature12.types +++ b/tests/baselines/reference/parserMethodSignature12.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature12.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature12.ts, 0, 0)) +>I : I 3?(); ->T : T, Symbol(T, Decl(parserMethodSignature12.ts, 1, 5)) +>T : T } diff --git a/tests/baselines/reference/parserMethodSignature2.symbols b/tests/baselines/reference/parserMethodSignature2.symbols new file mode 100644 index 0000000000000..ba86c20293e98 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature2.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature2.ts, 0, 0)) + + B?(); +>B : Symbol(B, Decl(parserMethodSignature2.ts, 0, 13)) +} diff --git a/tests/baselines/reference/parserMethodSignature2.types b/tests/baselines/reference/parserMethodSignature2.types index fcd0ae90f8146..380c66c6a87c5 100644 --- a/tests/baselines/reference/parserMethodSignature2.types +++ b/tests/baselines/reference/parserMethodSignature2.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature2.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature2.ts, 0, 0)) +>I : I B?(); ->B : () => any, Symbol(B, Decl(parserMethodSignature2.ts, 0, 13)) +>B : () => any } diff --git a/tests/baselines/reference/parserMethodSignature3.symbols b/tests/baselines/reference/parserMethodSignature3.symbols new file mode 100644 index 0000000000000..ce4c0f05561db --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature3.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature3.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature3.ts, 0, 0)) + + C(); +>C : Symbol(C, Decl(parserMethodSignature3.ts, 0, 13)) +>T : Symbol(T, Decl(parserMethodSignature3.ts, 1, 4)) +} diff --git a/tests/baselines/reference/parserMethodSignature3.types b/tests/baselines/reference/parserMethodSignature3.types index d4d49b2a05d96..c08081993fdb6 100644 --- a/tests/baselines/reference/parserMethodSignature3.types +++ b/tests/baselines/reference/parserMethodSignature3.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature3.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature3.ts, 0, 0)) +>I : I C(); ->C : () => any, Symbol(C, Decl(parserMethodSignature3.ts, 0, 13)) ->T : T, Symbol(T, Decl(parserMethodSignature3.ts, 1, 4)) +>C : () => any +>T : T } diff --git a/tests/baselines/reference/parserMethodSignature4.symbols b/tests/baselines/reference/parserMethodSignature4.symbols new file mode 100644 index 0000000000000..d1612bf2f4f67 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature4.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature4.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature4.ts, 0, 0)) + + D?(); +>D : Symbol(D, Decl(parserMethodSignature4.ts, 0, 13)) +>T : Symbol(T, Decl(parserMethodSignature4.ts, 1, 5)) +} diff --git a/tests/baselines/reference/parserMethodSignature4.types b/tests/baselines/reference/parserMethodSignature4.types index eedba56a14d2d..e569b8e36a5ac 100644 --- a/tests/baselines/reference/parserMethodSignature4.types +++ b/tests/baselines/reference/parserMethodSignature4.types @@ -1,8 +1,8 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature4.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature4.ts, 0, 0)) +>I : I D?(); ->D : () => any, Symbol(D, Decl(parserMethodSignature4.ts, 0, 13)) ->T : T, Symbol(T, Decl(parserMethodSignature4.ts, 1, 5)) +>D : () => any +>T : T } diff --git a/tests/baselines/reference/parserMethodSignature5.symbols b/tests/baselines/reference/parserMethodSignature5.symbols new file mode 100644 index 0000000000000..8cf748ab50c15 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature5.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature5.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature5.ts, 0, 0)) + + "E"(); +} diff --git a/tests/baselines/reference/parserMethodSignature5.types b/tests/baselines/reference/parserMethodSignature5.types index a45773f0681ca..86053a7c1f800 100644 --- a/tests/baselines/reference/parserMethodSignature5.types +++ b/tests/baselines/reference/parserMethodSignature5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature5.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature5.ts, 0, 0)) +>I : I "E"(); } diff --git a/tests/baselines/reference/parserMethodSignature6.symbols b/tests/baselines/reference/parserMethodSignature6.symbols new file mode 100644 index 0000000000000..b15a3d9a4e201 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature6.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature6.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature6.ts, 0, 0)) + + "F"?(); +} diff --git a/tests/baselines/reference/parserMethodSignature6.types b/tests/baselines/reference/parserMethodSignature6.types index fd88d251f1e42..184cdc1148ae3 100644 --- a/tests/baselines/reference/parserMethodSignature6.types +++ b/tests/baselines/reference/parserMethodSignature6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature6.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature6.ts, 0, 0)) +>I : I "F"?(); } diff --git a/tests/baselines/reference/parserMethodSignature7.symbols b/tests/baselines/reference/parserMethodSignature7.symbols new file mode 100644 index 0000000000000..3b275fa20cb7d --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature7.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature7.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature7.ts, 0, 0)) + + "G"(); +>T : Symbol(T, Decl(parserMethodSignature7.ts, 1, 6)) +} diff --git a/tests/baselines/reference/parserMethodSignature7.types b/tests/baselines/reference/parserMethodSignature7.types index dc14d7502e5e8..58a029c0a4a8d 100644 --- a/tests/baselines/reference/parserMethodSignature7.types +++ b/tests/baselines/reference/parserMethodSignature7.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature7.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature7.ts, 0, 0)) +>I : I "G"(); ->T : T, Symbol(T, Decl(parserMethodSignature7.ts, 1, 6)) +>T : T } diff --git a/tests/baselines/reference/parserMethodSignature8.symbols b/tests/baselines/reference/parserMethodSignature8.symbols new file mode 100644 index 0000000000000..9fe0a7d64e8dd --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature8.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature8.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature8.ts, 0, 0)) + + "H"?(); +>T : Symbol(T, Decl(parserMethodSignature8.ts, 1, 7)) +} diff --git a/tests/baselines/reference/parserMethodSignature8.types b/tests/baselines/reference/parserMethodSignature8.types index a585fc9539b31..7480e3d92a278 100644 --- a/tests/baselines/reference/parserMethodSignature8.types +++ b/tests/baselines/reference/parserMethodSignature8.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature8.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature8.ts, 0, 0)) +>I : I "H"?(); ->T : T, Symbol(T, Decl(parserMethodSignature8.ts, 1, 7)) +>T : T } diff --git a/tests/baselines/reference/parserMethodSignature9.symbols b/tests/baselines/reference/parserMethodSignature9.symbols new file mode 100644 index 0000000000000..2fb7aa56d3b06 --- /dev/null +++ b/tests/baselines/reference/parserMethodSignature9.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature9.ts === +interface I { +>I : Symbol(I, Decl(parserMethodSignature9.ts, 0, 0)) + + 0(); +} diff --git a/tests/baselines/reference/parserMethodSignature9.types b/tests/baselines/reference/parserMethodSignature9.types index 13b2e85813379..ac2f85d002d0e 100644 --- a/tests/baselines/reference/parserMethodSignature9.types +++ b/tests/baselines/reference/parserMethodSignature9.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/MethodSignatures/parserMethodSignature9.ts === interface I { ->I : I, Symbol(I, Decl(parserMethodSignature9.ts, 0, 0)) +>I : I 0(); } diff --git a/tests/baselines/reference/parserModifierOnPropertySignature2.symbols b/tests/baselines/reference/parserModifierOnPropertySignature2.symbols new file mode 100644 index 0000000000000..ac17a3810bfc2 --- /dev/null +++ b/tests/baselines/reference/parserModifierOnPropertySignature2.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserModifierOnPropertySignature2.ts === +interface Foo{ +>Foo : Symbol(Foo, Decl(parserModifierOnPropertySignature2.ts, 0, 0)) + + public +>public : Symbol(public, Decl(parserModifierOnPropertySignature2.ts, 0, 14)) + + biz; +>biz : Symbol(biz, Decl(parserModifierOnPropertySignature2.ts, 1, 10)) +} + diff --git a/tests/baselines/reference/parserModifierOnPropertySignature2.types b/tests/baselines/reference/parserModifierOnPropertySignature2.types index 58fae659e5c95..adf8b411565e6 100644 --- a/tests/baselines/reference/parserModifierOnPropertySignature2.types +++ b/tests/baselines/reference/parserModifierOnPropertySignature2.types @@ -1,11 +1,11 @@ === tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserModifierOnPropertySignature2.ts === interface Foo{ ->Foo : Foo, Symbol(Foo, Decl(parserModifierOnPropertySignature2.ts, 0, 0)) +>Foo : Foo public ->public : any, Symbol(public, Decl(parserModifierOnPropertySignature2.ts, 0, 14)) +>public : any biz; ->biz : any, Symbol(biz, Decl(parserModifierOnPropertySignature2.ts, 1, 10)) +>biz : any } diff --git a/tests/baselines/reference/parserModuleDeclaration11.symbols b/tests/baselines/reference/parserModuleDeclaration11.symbols new file mode 100644 index 0000000000000..370bd4f8f2beb --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration11.symbols @@ -0,0 +1,21 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration11.ts === +declare module string { +>string : Symbol(string, Decl(parserModuleDeclaration11.ts, 0, 0)) + + interface X { } +>X : Symbol(X, Decl(parserModuleDeclaration11.ts, 0, 23)) + + export function foo(s: string); +>foo : Symbol(foo, Decl(parserModuleDeclaration11.ts, 1, 19)) +>s : Symbol(s, Decl(parserModuleDeclaration11.ts, 2, 24)) +} +string.foo("abc"); +>string.foo : Symbol(string.foo, Decl(parserModuleDeclaration11.ts, 1, 19)) +>string : Symbol(string, Decl(parserModuleDeclaration11.ts, 0, 0)) +>foo : Symbol(string.foo, Decl(parserModuleDeclaration11.ts, 1, 19)) + +var x: string.X; +>x : Symbol(x, Decl(parserModuleDeclaration11.ts, 5, 3)) +>string : Symbol(string, Decl(parserModuleDeclaration11.ts, 0, 0)) +>X : Symbol(string.X, Decl(parserModuleDeclaration11.ts, 0, 23)) + diff --git a/tests/baselines/reference/parserModuleDeclaration11.types b/tests/baselines/reference/parserModuleDeclaration11.types index 69a50486069aa..98075a505f796 100644 --- a/tests/baselines/reference/parserModuleDeclaration11.types +++ b/tests/baselines/reference/parserModuleDeclaration11.types @@ -1,23 +1,23 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration11.ts === declare module string { ->string : typeof string, Symbol(string, Decl(parserModuleDeclaration11.ts, 0, 0)) +>string : typeof string interface X { } ->X : X, Symbol(X, Decl(parserModuleDeclaration11.ts, 0, 23)) +>X : X export function foo(s: string); ->foo : (s: string) => any, Symbol(foo, Decl(parserModuleDeclaration11.ts, 1, 19)) ->s : string, Symbol(s, Decl(parserModuleDeclaration11.ts, 2, 24)) +>foo : (s: string) => any +>s : string } string.foo("abc"); >string.foo("abc") : any ->string.foo : (s: string) => any, Symbol(string.foo, Decl(parserModuleDeclaration11.ts, 1, 19)) ->string : typeof string, Symbol(string, Decl(parserModuleDeclaration11.ts, 0, 0)) ->foo : (s: string) => any, Symbol(string.foo, Decl(parserModuleDeclaration11.ts, 1, 19)) +>string.foo : (s: string) => any +>string : typeof string +>foo : (s: string) => any >"abc" : string var x: string.X; ->x : string.X, Symbol(x, Decl(parserModuleDeclaration11.ts, 5, 3)) ->string : any, Symbol(string, Decl(parserModuleDeclaration11.ts, 0, 0)) ->X : string.X, Symbol(string.X, Decl(parserModuleDeclaration11.ts, 0, 23)) +>x : string.X +>string : any +>X : string.X diff --git a/tests/baselines/reference/parserModuleDeclaration12.symbols b/tests/baselines/reference/parserModuleDeclaration12.symbols new file mode 100644 index 0000000000000..7b4944c7442f0 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration12.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration12.ts === +module A.string { +>A : Symbol(A, Decl(parserModuleDeclaration12.ts, 0, 0)) +>string : Symbol(string, Decl(parserModuleDeclaration12.ts, 0, 9)) +} diff --git a/tests/baselines/reference/parserModuleDeclaration12.types b/tests/baselines/reference/parserModuleDeclaration12.types index f1d6af6c0d100..469cfe867fdf5 100644 --- a/tests/baselines/reference/parserModuleDeclaration12.types +++ b/tests/baselines/reference/parserModuleDeclaration12.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration12.ts === module A.string { ->A : any, Symbol(A, Decl(parserModuleDeclaration12.ts, 0, 0)) ->string : any, Symbol(string, Decl(parserModuleDeclaration12.ts, 0, 9)) +>A : any +>string : any } diff --git a/tests/baselines/reference/parserModuleDeclaration2.symbols b/tests/baselines/reference/parserModuleDeclaration2.symbols new file mode 100644 index 0000000000000..340cee697f126 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration2.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration2.ts === +declare module "Foo" { +No type information for this code.} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserModuleDeclaration3.d.symbols b/tests/baselines/reference/parserModuleDeclaration3.d.symbols new file mode 100644 index 0000000000000..2994f85cc68ff --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration3.d.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration3.d.ts === +declare module M { +>M : Symbol(M, Decl(parserModuleDeclaration3.d.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parserModuleDeclaration3.d.types b/tests/baselines/reference/parserModuleDeclaration3.d.types index 6211189be1a68..21c6650a03358 100644 --- a/tests/baselines/reference/parserModuleDeclaration3.d.types +++ b/tests/baselines/reference/parserModuleDeclaration3.d.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration3.d.ts === declare module M { ->M : any, Symbol(M, Decl(parserModuleDeclaration3.d.ts, 0, 0)) +>M : any } diff --git a/tests/baselines/reference/parserModuleDeclaration4.symbols b/tests/baselines/reference/parserModuleDeclaration4.symbols new file mode 100644 index 0000000000000..2ec1d639e72e2 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration4.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration4.ts === +module M { +>M : Symbol(M, Decl(parserModuleDeclaration4.ts, 0, 0)) + + declare module M1 { +>M1 : Symbol(M1, Decl(parserModuleDeclaration4.ts, 0, 10)) + + module M2 { +>M2 : Symbol(M2, Decl(parserModuleDeclaration4.ts, 1, 21)) + } + } +} diff --git a/tests/baselines/reference/parserModuleDeclaration4.types b/tests/baselines/reference/parserModuleDeclaration4.types index 1300566314685..29f29a87fe7ab 100644 --- a/tests/baselines/reference/parserModuleDeclaration4.types +++ b/tests/baselines/reference/parserModuleDeclaration4.types @@ -1,12 +1,12 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration4.ts === module M { ->M : any, Symbol(M, Decl(parserModuleDeclaration4.ts, 0, 0)) +>M : any declare module M1 { ->M1 : any, Symbol(M1, Decl(parserModuleDeclaration4.ts, 0, 10)) +>M1 : any module M2 { ->M2 : any, Symbol(M2, Decl(parserModuleDeclaration4.ts, 1, 21)) +>M2 : any } } } diff --git a/tests/baselines/reference/parserModuleDeclaration6.symbols b/tests/baselines/reference/parserModuleDeclaration6.symbols new file mode 100644 index 0000000000000..4c155afe59445 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration6.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration6.ts === +module number { +>number : Symbol(number, Decl(parserModuleDeclaration6.ts, 0, 0)) +} diff --git a/tests/baselines/reference/parserModuleDeclaration6.types b/tests/baselines/reference/parserModuleDeclaration6.types index 235ca33a3c051..2ac05ec485ec8 100644 --- a/tests/baselines/reference/parserModuleDeclaration6.types +++ b/tests/baselines/reference/parserModuleDeclaration6.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration6.ts === module number { ->number : any, Symbol(number, Decl(parserModuleDeclaration6.ts, 0, 0)) +>number : any } diff --git a/tests/baselines/reference/parserModuleDeclaration7.symbols b/tests/baselines/reference/parserModuleDeclaration7.symbols new file mode 100644 index 0000000000000..4f3648b044a89 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration7.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration7.ts === +module number.a { +>number : Symbol(number, Decl(parserModuleDeclaration7.ts, 0, 0)) +>a : Symbol(a, Decl(parserModuleDeclaration7.ts, 0, 14)) +} diff --git a/tests/baselines/reference/parserModuleDeclaration7.types b/tests/baselines/reference/parserModuleDeclaration7.types index 8fc1b457a67ed..38cf3f896235f 100644 --- a/tests/baselines/reference/parserModuleDeclaration7.types +++ b/tests/baselines/reference/parserModuleDeclaration7.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration7.ts === module number.a { ->number : any, Symbol(number, Decl(parserModuleDeclaration7.ts, 0, 0)) ->a : any, Symbol(a, Decl(parserModuleDeclaration7.ts, 0, 14)) +>number : any +>a : any } diff --git a/tests/baselines/reference/parserModuleDeclaration8.symbols b/tests/baselines/reference/parserModuleDeclaration8.symbols new file mode 100644 index 0000000000000..b4bd45b288978 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration8.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration8.ts === +module a.number { +>a : Symbol(a, Decl(parserModuleDeclaration8.ts, 0, 0)) +>number : Symbol(number, Decl(parserModuleDeclaration8.ts, 0, 9)) +} diff --git a/tests/baselines/reference/parserModuleDeclaration8.types b/tests/baselines/reference/parserModuleDeclaration8.types index 2256c340283f1..1c9a0e26650fe 100644 --- a/tests/baselines/reference/parserModuleDeclaration8.types +++ b/tests/baselines/reference/parserModuleDeclaration8.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration8.ts === module a.number { ->a : any, Symbol(a, Decl(parserModuleDeclaration8.ts, 0, 0)) ->number : any, Symbol(number, Decl(parserModuleDeclaration8.ts, 0, 9)) +>a : any +>number : any } diff --git a/tests/baselines/reference/parserModuleDeclaration9.symbols b/tests/baselines/reference/parserModuleDeclaration9.symbols new file mode 100644 index 0000000000000..b092aab41efe1 --- /dev/null +++ b/tests/baselines/reference/parserModuleDeclaration9.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration9.ts === +module a.number.b { +>a : Symbol(a, Decl(parserModuleDeclaration9.ts, 0, 0)) +>number : Symbol(number, Decl(parserModuleDeclaration9.ts, 0, 9)) +>b : Symbol(b, Decl(parserModuleDeclaration9.ts, 0, 16)) +} diff --git a/tests/baselines/reference/parserModuleDeclaration9.types b/tests/baselines/reference/parserModuleDeclaration9.types index 87b11ad1f9f02..28a272b435097 100644 --- a/tests/baselines/reference/parserModuleDeclaration9.types +++ b/tests/baselines/reference/parserModuleDeclaration9.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/ModuleDeclarations/parserModuleDeclaration9.ts === module a.number.b { ->a : any, Symbol(a, Decl(parserModuleDeclaration9.ts, 0, 0)) ->number : any, Symbol(number, Decl(parserModuleDeclaration9.ts, 0, 9)) ->b : any, Symbol(b, Decl(parserModuleDeclaration9.ts, 0, 16)) +>a : any +>number : any +>b : any } diff --git a/tests/baselines/reference/parserObjectLiterals1.symbols b/tests/baselines/reference/parserObjectLiterals1.symbols new file mode 100644 index 0000000000000..602c2dd5a3acd --- /dev/null +++ b/tests/baselines/reference/parserObjectLiterals1.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/ObjectLiterals/parserObjectLiterals1.ts === +var v = { a: 1, b: 2 }; +>v : Symbol(v, Decl(parserObjectLiterals1.ts, 0, 3)) +>a : Symbol(a, Decl(parserObjectLiterals1.ts, 0, 9)) +>b : Symbol(b, Decl(parserObjectLiterals1.ts, 0, 15)) + diff --git a/tests/baselines/reference/parserObjectLiterals1.types b/tests/baselines/reference/parserObjectLiterals1.types index 8e7ac355094e0..b6bca18e36066 100644 --- a/tests/baselines/reference/parserObjectLiterals1.types +++ b/tests/baselines/reference/parserObjectLiterals1.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript5/ObjectLiterals/parserObjectLiterals1.ts === var v = { a: 1, b: 2 }; ->v : { a: number; b: number; }, Symbol(v, Decl(parserObjectLiterals1.ts, 0, 3)) +>v : { a: number; b: number; } >{ a: 1, b: 2 } : { a: number; b: number; } ->a : number, Symbol(a, Decl(parserObjectLiterals1.ts, 0, 9)) +>a : number >1 : number ->b : number, Symbol(b, Decl(parserObjectLiterals1.ts, 0, 15)) +>b : number >2 : number diff --git a/tests/baselines/reference/parserObjectType1.symbols b/tests/baselines/reference/parserObjectType1.symbols new file mode 100644 index 0000000000000..702cfbe4d8782 --- /dev/null +++ b/tests/baselines/reference/parserObjectType1.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType1.ts === +var v: {}; +>v : Symbol(v, Decl(parserObjectType1.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserObjectType1.types b/tests/baselines/reference/parserObjectType1.types index 1a13803898088..4f333a41c4d68 100644 --- a/tests/baselines/reference/parserObjectType1.types +++ b/tests/baselines/reference/parserObjectType1.types @@ -1,4 +1,4 @@ === tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType1.ts === var v: {}; ->v : {}, Symbol(v, Decl(parserObjectType1.ts, 0, 3)) +>v : {} diff --git a/tests/baselines/reference/parserObjectType2.symbols b/tests/baselines/reference/parserObjectType2.symbols new file mode 100644 index 0000000000000..4372841816645 --- /dev/null +++ b/tests/baselines/reference/parserObjectType2.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType2.ts === +var v: { x: number }; +>v : Symbol(v, Decl(parserObjectType2.ts, 0, 3)) +>x : Symbol(x, Decl(parserObjectType2.ts, 0, 8)) + diff --git a/tests/baselines/reference/parserObjectType2.types b/tests/baselines/reference/parserObjectType2.types index cbb0070bbc6c9..cdc055a166045 100644 --- a/tests/baselines/reference/parserObjectType2.types +++ b/tests/baselines/reference/parserObjectType2.types @@ -1,5 +1,5 @@ === tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType2.ts === var v: { x: number }; ->v : { x: number; }, Symbol(v, Decl(parserObjectType2.ts, 0, 3)) ->x : number, Symbol(x, Decl(parserObjectType2.ts, 0, 8)) +>v : { x: number; } +>x : number diff --git a/tests/baselines/reference/parserObjectType3.symbols b/tests/baselines/reference/parserObjectType3.symbols new file mode 100644 index 0000000000000..bb4b25d2a690a --- /dev/null +++ b/tests/baselines/reference/parserObjectType3.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType3.ts === +var v: { +>v : Symbol(v, Decl(parserObjectType3.ts, 0, 3)) + + x; +>x : Symbol(x, Decl(parserObjectType3.ts, 0, 8)) + + y +>y : Symbol(y, Decl(parserObjectType3.ts, 1, 4)) + +}; diff --git a/tests/baselines/reference/parserObjectType3.types b/tests/baselines/reference/parserObjectType3.types index beae1c5016fce..2cc6e50e807c6 100644 --- a/tests/baselines/reference/parserObjectType3.types +++ b/tests/baselines/reference/parserObjectType3.types @@ -1,11 +1,11 @@ === tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType3.ts === var v: { ->v : { x: any; y: any; }, Symbol(v, Decl(parserObjectType3.ts, 0, 3)) +>v : { x: any; y: any; } x; ->x : any, Symbol(x, Decl(parserObjectType3.ts, 0, 8)) +>x : any y ->y : any, Symbol(y, Decl(parserObjectType3.ts, 1, 4)) +>y : any }; diff --git a/tests/baselines/reference/parserObjectType4.symbols b/tests/baselines/reference/parserObjectType4.symbols new file mode 100644 index 0000000000000..f73e22de77c26 --- /dev/null +++ b/tests/baselines/reference/parserObjectType4.symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType4.ts === +var v: { +>v : Symbol(v, Decl(parserObjectType4.ts, 0, 3)) + + x +>x : Symbol(x, Decl(parserObjectType4.ts, 0, 8)) + + y +>y : Symbol(y, Decl(parserObjectType4.ts, 1, 3)) + +}; diff --git a/tests/baselines/reference/parserObjectType4.types b/tests/baselines/reference/parserObjectType4.types index ae984e4d9e302..bbed75a7478ed 100644 --- a/tests/baselines/reference/parserObjectType4.types +++ b/tests/baselines/reference/parserObjectType4.types @@ -1,11 +1,11 @@ === tests/cases/conformance/parser/ecmascript5/ObjectTypes/parserObjectType4.ts === var v: { ->v : { x: any; y: any; }, Symbol(v, Decl(parserObjectType4.ts, 0, 3)) +>v : { x: any; y: any; } x ->x : any, Symbol(x, Decl(parserObjectType4.ts, 0, 8)) +>x : any y ->y : any, Symbol(y, Decl(parserObjectType4.ts, 1, 3)) +>y : any }; diff --git a/tests/baselines/reference/parserOptionalTypeMembers1.symbols b/tests/baselines/reference/parserOptionalTypeMembers1.symbols new file mode 100644 index 0000000000000..ce12a4ec19b44 --- /dev/null +++ b/tests/baselines/reference/parserOptionalTypeMembers1.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/parser/ecmascript5/parserOptionalTypeMembers1.ts === +interface PropertyDescriptor2 { +>PropertyDescriptor2 : Symbol(PropertyDescriptor2, Decl(parserOptionalTypeMembers1.ts, 0, 0)) + + configurable?: boolean; +>configurable : Symbol(configurable, Decl(parserOptionalTypeMembers1.ts, 0, 31)) + + enumerable?: boolean; +>enumerable : Symbol(enumerable, Decl(parserOptionalTypeMembers1.ts, 1, 27)) + + value?: any; +>value : Symbol(value, Decl(parserOptionalTypeMembers1.ts, 2, 25)) + + writable?: boolean; +>writable : Symbol(writable, Decl(parserOptionalTypeMembers1.ts, 3, 16)) + + get?(): any; +>get : Symbol(get, Decl(parserOptionalTypeMembers1.ts, 4, 23)) + + set?(v: any): void; +>set : Symbol(set, Decl(parserOptionalTypeMembers1.ts, 5, 16)) +>v : Symbol(v, Decl(parserOptionalTypeMembers1.ts, 6, 9)) +} diff --git a/tests/baselines/reference/parserOptionalTypeMembers1.types b/tests/baselines/reference/parserOptionalTypeMembers1.types index d9e1c251b4dc9..7ede18a1d9246 100644 --- a/tests/baselines/reference/parserOptionalTypeMembers1.types +++ b/tests/baselines/reference/parserOptionalTypeMembers1.types @@ -1,23 +1,23 @@ === tests/cases/conformance/parser/ecmascript5/parserOptionalTypeMembers1.ts === interface PropertyDescriptor2 { ->PropertyDescriptor2 : PropertyDescriptor2, Symbol(PropertyDescriptor2, Decl(parserOptionalTypeMembers1.ts, 0, 0)) +>PropertyDescriptor2 : PropertyDescriptor2 configurable?: boolean; ->configurable : boolean, Symbol(configurable, Decl(parserOptionalTypeMembers1.ts, 0, 31)) +>configurable : boolean enumerable?: boolean; ->enumerable : boolean, Symbol(enumerable, Decl(parserOptionalTypeMembers1.ts, 1, 27)) +>enumerable : boolean value?: any; ->value : any, Symbol(value, Decl(parserOptionalTypeMembers1.ts, 2, 25)) +>value : any writable?: boolean; ->writable : boolean, Symbol(writable, Decl(parserOptionalTypeMembers1.ts, 3, 16)) +>writable : boolean get?(): any; ->get : () => any, Symbol(get, Decl(parserOptionalTypeMembers1.ts, 4, 23)) +>get : () => any set?(v: any): void; ->set : (v: any) => void, Symbol(set, Decl(parserOptionalTypeMembers1.ts, 5, 16)) ->v : any, Symbol(v, Decl(parserOptionalTypeMembers1.ts, 6, 9)) +>set : (v: any) => void +>v : any } diff --git a/tests/baselines/reference/parserPropertySignature1.symbols b/tests/baselines/reference/parserPropertySignature1.symbols new file mode 100644 index 0000000000000..6b8a26c4164c6 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature1.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature1.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature1.ts, 0, 0)) + + A; +>A : Symbol(A, Decl(parserPropertySignature1.ts, 0, 13)) +} diff --git a/tests/baselines/reference/parserPropertySignature1.types b/tests/baselines/reference/parserPropertySignature1.types index f74548da5c2d2..43a754c77517b 100644 --- a/tests/baselines/reference/parserPropertySignature1.types +++ b/tests/baselines/reference/parserPropertySignature1.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature1.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature1.ts, 0, 0)) +>I : I A; ->A : any, Symbol(A, Decl(parserPropertySignature1.ts, 0, 13)) +>A : any } diff --git a/tests/baselines/reference/parserPropertySignature10.symbols b/tests/baselines/reference/parserPropertySignature10.symbols new file mode 100644 index 0000000000000..a6a755a0891bd --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature10.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature10.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature10.ts, 0, 0)) + + 1?; +} diff --git a/tests/baselines/reference/parserPropertySignature10.types b/tests/baselines/reference/parserPropertySignature10.types index 89512ec5cf65c..06d1e78f0f155 100644 --- a/tests/baselines/reference/parserPropertySignature10.types +++ b/tests/baselines/reference/parserPropertySignature10.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature10.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature10.ts, 0, 0)) +>I : I 1?; } diff --git a/tests/baselines/reference/parserPropertySignature11.symbols b/tests/baselines/reference/parserPropertySignature11.symbols new file mode 100644 index 0000000000000..960f16bf52623 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature11.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature11.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature11.ts, 0, 0)) + + 2:any; +} diff --git a/tests/baselines/reference/parserPropertySignature11.types b/tests/baselines/reference/parserPropertySignature11.types index 4cc42740dd326..55776f4f820e3 100644 --- a/tests/baselines/reference/parserPropertySignature11.types +++ b/tests/baselines/reference/parserPropertySignature11.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature11.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature11.ts, 0, 0)) +>I : I 2:any; } diff --git a/tests/baselines/reference/parserPropertySignature12.symbols b/tests/baselines/reference/parserPropertySignature12.symbols new file mode 100644 index 0000000000000..a6f0eb5faf861 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature12.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature12.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature12.ts, 0, 0)) + + 3?:any; +} diff --git a/tests/baselines/reference/parserPropertySignature12.types b/tests/baselines/reference/parserPropertySignature12.types index 7beb96610b8a1..1c37dcaa4605a 100644 --- a/tests/baselines/reference/parserPropertySignature12.types +++ b/tests/baselines/reference/parserPropertySignature12.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature12.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature12.ts, 0, 0)) +>I : I 3?:any; } diff --git a/tests/baselines/reference/parserPropertySignature2.symbols b/tests/baselines/reference/parserPropertySignature2.symbols new file mode 100644 index 0000000000000..334c0655908dd --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature2.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature2.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature2.ts, 0, 0)) + + B?; +>B : Symbol(B, Decl(parserPropertySignature2.ts, 0, 13)) +} diff --git a/tests/baselines/reference/parserPropertySignature2.types b/tests/baselines/reference/parserPropertySignature2.types index d30f1316c18c7..fe67046e23807 100644 --- a/tests/baselines/reference/parserPropertySignature2.types +++ b/tests/baselines/reference/parserPropertySignature2.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature2.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature2.ts, 0, 0)) +>I : I B?; ->B : any, Symbol(B, Decl(parserPropertySignature2.ts, 0, 13)) +>B : any } diff --git a/tests/baselines/reference/parserPropertySignature3.symbols b/tests/baselines/reference/parserPropertySignature3.symbols new file mode 100644 index 0000000000000..c2b70b58be8b4 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature3.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature3.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature3.ts, 0, 0)) + + C:any; +>C : Symbol(C, Decl(parserPropertySignature3.ts, 0, 13)) +} diff --git a/tests/baselines/reference/parserPropertySignature3.types b/tests/baselines/reference/parserPropertySignature3.types index 2fb7ffdd67061..04c3d21b0a111 100644 --- a/tests/baselines/reference/parserPropertySignature3.types +++ b/tests/baselines/reference/parserPropertySignature3.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature3.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature3.ts, 0, 0)) +>I : I C:any; ->C : any, Symbol(C, Decl(parserPropertySignature3.ts, 0, 13)) +>C : any } diff --git a/tests/baselines/reference/parserPropertySignature4.symbols b/tests/baselines/reference/parserPropertySignature4.symbols new file mode 100644 index 0000000000000..cd61b14d34ca1 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature4.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature4.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature4.ts, 0, 0)) + + D?:any; +>D : Symbol(D, Decl(parserPropertySignature4.ts, 0, 13)) +} diff --git a/tests/baselines/reference/parserPropertySignature4.types b/tests/baselines/reference/parserPropertySignature4.types index 0b003597b3d21..c1dda0e533dc7 100644 --- a/tests/baselines/reference/parserPropertySignature4.types +++ b/tests/baselines/reference/parserPropertySignature4.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature4.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature4.ts, 0, 0)) +>I : I D?:any; ->D : any, Symbol(D, Decl(parserPropertySignature4.ts, 0, 13)) +>D : any } diff --git a/tests/baselines/reference/parserPropertySignature5.symbols b/tests/baselines/reference/parserPropertySignature5.symbols new file mode 100644 index 0000000000000..fa56ec758715c --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature5.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature5.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature5.ts, 0, 0)) + + "E"; +} diff --git a/tests/baselines/reference/parserPropertySignature5.types b/tests/baselines/reference/parserPropertySignature5.types index 8616f127dd3a7..c85c814fc70e9 100644 --- a/tests/baselines/reference/parserPropertySignature5.types +++ b/tests/baselines/reference/parserPropertySignature5.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature5.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature5.ts, 0, 0)) +>I : I "E"; } diff --git a/tests/baselines/reference/parserPropertySignature6.symbols b/tests/baselines/reference/parserPropertySignature6.symbols new file mode 100644 index 0000000000000..1f3831e5610f9 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature6.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature6.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature6.ts, 0, 0)) + + "F"?; +} diff --git a/tests/baselines/reference/parserPropertySignature6.types b/tests/baselines/reference/parserPropertySignature6.types index 9f6a4fc0c7ef2..94ca4e313dfe9 100644 --- a/tests/baselines/reference/parserPropertySignature6.types +++ b/tests/baselines/reference/parserPropertySignature6.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature6.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature6.ts, 0, 0)) +>I : I "F"?; } diff --git a/tests/baselines/reference/parserPropertySignature7.symbols b/tests/baselines/reference/parserPropertySignature7.symbols new file mode 100644 index 0000000000000..840b302d6acf8 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature7.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature7.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature7.ts, 0, 0)) + + "G":any; +} diff --git a/tests/baselines/reference/parserPropertySignature7.types b/tests/baselines/reference/parserPropertySignature7.types index 986b7e50a2343..0f78332d75603 100644 --- a/tests/baselines/reference/parserPropertySignature7.types +++ b/tests/baselines/reference/parserPropertySignature7.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature7.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature7.ts, 0, 0)) +>I : I "G":any; } diff --git a/tests/baselines/reference/parserPropertySignature8.symbols b/tests/baselines/reference/parserPropertySignature8.symbols new file mode 100644 index 0000000000000..e124b4c770c55 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature8.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature8.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature8.ts, 0, 0)) + + "H"?:any; +} diff --git a/tests/baselines/reference/parserPropertySignature8.types b/tests/baselines/reference/parserPropertySignature8.types index b6973111850f0..79594cec56a1b 100644 --- a/tests/baselines/reference/parserPropertySignature8.types +++ b/tests/baselines/reference/parserPropertySignature8.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature8.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature8.ts, 0, 0)) +>I : I "H"?:any; } diff --git a/tests/baselines/reference/parserPropertySignature9.symbols b/tests/baselines/reference/parserPropertySignature9.symbols new file mode 100644 index 0000000000000..3664160fad4b1 --- /dev/null +++ b/tests/baselines/reference/parserPropertySignature9.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature9.ts === +interface I { +>I : Symbol(I, Decl(parserPropertySignature9.ts, 0, 0)) + + 0; +} diff --git a/tests/baselines/reference/parserPropertySignature9.types b/tests/baselines/reference/parserPropertySignature9.types index 4a2728b5dcdc9..b7dbff8cbeea9 100644 --- a/tests/baselines/reference/parserPropertySignature9.types +++ b/tests/baselines/reference/parserPropertySignature9.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/PropertySignatures/parserPropertySignature9.ts === interface I { ->I : I, Symbol(I, Decl(parserPropertySignature9.ts, 0, 0)) +>I : I 0; } diff --git a/tests/baselines/reference/parserReturnStatement3.symbols b/tests/baselines/reference/parserReturnStatement3.symbols new file mode 100644 index 0000000000000..6783ea1ac5cb1 --- /dev/null +++ b/tests/baselines/reference/parserReturnStatement3.symbols @@ -0,0 +1,6 @@ +=== tests/cases/conformance/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement3.ts === +function f() { +>f : Symbol(f, Decl(parserReturnStatement3.ts, 0, 0)) + + return; +} diff --git a/tests/baselines/reference/parserReturnStatement3.types b/tests/baselines/reference/parserReturnStatement3.types index 0486efdc2c29f..6484050efee1f 100644 --- a/tests/baselines/reference/parserReturnStatement3.types +++ b/tests/baselines/reference/parserReturnStatement3.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/Statements/ReturnStatements/parserReturnStatement3.ts === function f() { ->f : () => void, Symbol(f, Decl(parserReturnStatement3.ts, 0, 0)) +>f : () => void return; } diff --git a/tests/baselines/reference/parserS7.6.1.1_A1.10.symbols b/tests/baselines/reference/parserS7.6.1.1_A1.10.symbols new file mode 100644 index 0000000000000..28441e36fe60e --- /dev/null +++ b/tests/baselines/reference/parserS7.6.1.1_A1.10.symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/parser/ecmascript5/parserS7.6.1.1_A1.10.ts === +// Copyright 2009 the Sputnik authors. All rights reserved. +No type information for this code.// This code is governed by the BSD license found in the LICENSE file. +No type information for this code. +No type information for this code./** +No type information for this code. * The "for" token can not be used as identifier +No type information for this code. * +No type information for this code. * @path ch07/7.6/7.6.1/7.6.1.1/S7.6.1.1_A1.10.js +No type information for this code. * @description Checking if execution of "for=1" fails +No type information for this code. * @negative +No type information for this code. */ +No type information for this code. +No type information for this code.//for = 1; +No type information for this code. +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserSbp_7.9_A9_T3.symbols b/tests/baselines/reference/parserSbp_7.9_A9_T3.symbols new file mode 100644 index 0000000000000..0d6df58ed39f3 --- /dev/null +++ b/tests/baselines/reference/parserSbp_7.9_A9_T3.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/parser/ecmascript5/parserSbp_7.9_A9_T3.ts === +// Copyright 2009 the Sputnik authors. All rights reserved. +No type information for this code.// This code is governed by the BSD license found in the LICENSE file. +No type information for this code. +No type information for this code./** +No type information for this code. * Check Do-While Statement for automatic semicolon insertion +No type information for this code. * +No type information for this code. * @path bestPractice/Sbp_7.9_A9_T3.js +No type information for this code. * @description Execute do { \n ; \n }while(false) true +No type information for this code. */ +No type information for this code. +No type information for this code.//CHECK#1 +No type information for this code.do { +No type information for this code. ; +No type information for this code.} while (false) true +No type information for this code. +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserStrictMode16.symbols b/tests/baselines/reference/parserStrictMode16.symbols new file mode 100644 index 0000000000000..655201fbea2bf --- /dev/null +++ b/tests/baselines/reference/parserStrictMode16.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/StrictMode/parserStrictMode16.ts === +"use strict"; +No type information for this code.delete this; +No type information for this code.delete 1; +No type information for this code.delete null; +No type information for this code.delete "a"; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserSymbolProperty1.symbols b/tests/baselines/reference/parserSymbolProperty1.symbols new file mode 100644 index 0000000000000..4d7a9b669e485 --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty1.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty1.ts === +interface I { +>I : Symbol(I, Decl(parserSymbolProperty1.ts, 0, 0)) + + [Symbol.iterator]: string; +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +} diff --git a/tests/baselines/reference/parserSymbolProperty1.types b/tests/baselines/reference/parserSymbolProperty1.types index 9e465e2214077..6c0cd75cf59a7 100644 --- a/tests/baselines/reference/parserSymbolProperty1.types +++ b/tests/baselines/reference/parserSymbolProperty1.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty1.ts === interface I { ->I : I, Symbol(I, Decl(parserSymbolProperty1.ts, 0, 0)) +>I : I [Symbol.iterator]: string; ->Symbol.iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->iterator : symbol, Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty2.symbols b/tests/baselines/reference/parserSymbolProperty2.symbols new file mode 100644 index 0000000000000..ff110a6fe03d9 --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty2.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty2.ts === +interface I { +>I : Symbol(I, Decl(parserSymbolProperty2.ts, 0, 0)) + + [Symbol.unscopables](): string; +>Symbol.unscopables : Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>unscopables : Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) +} diff --git a/tests/baselines/reference/parserSymbolProperty2.types b/tests/baselines/reference/parserSymbolProperty2.types index 4fc60a22a4ce4..bcf14b83a2ae2 100644 --- a/tests/baselines/reference/parserSymbolProperty2.types +++ b/tests/baselines/reference/parserSymbolProperty2.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty2.ts === interface I { ->I : I, Symbol(I, Decl(parserSymbolProperty2.ts, 0, 0)) +>I : I [Symbol.unscopables](): string; ->Symbol.unscopables : symbol, Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->unscopables : symbol, Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) +>Symbol.unscopables : symbol +>Symbol : SymbolConstructor +>unscopables : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty3.symbols b/tests/baselines/reference/parserSymbolProperty3.symbols new file mode 100644 index 0000000000000..b75a737af0a58 --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty3.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty3.ts === +declare class C { +>C : Symbol(C, Decl(parserSymbolProperty3.ts, 0, 0)) + + [Symbol.unscopables](): string; +>Symbol.unscopables : Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>unscopables : Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) +} diff --git a/tests/baselines/reference/parserSymbolProperty3.types b/tests/baselines/reference/parserSymbolProperty3.types index bc69dfb142fe3..977375d7393f9 100644 --- a/tests/baselines/reference/parserSymbolProperty3.types +++ b/tests/baselines/reference/parserSymbolProperty3.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty3.ts === declare class C { ->C : C, Symbol(C, Decl(parserSymbolProperty3.ts, 0, 0)) +>C : C [Symbol.unscopables](): string; ->Symbol.unscopables : symbol, Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->unscopables : symbol, Symbol(SymbolConstructor.unscopables, Decl(lib.d.ts, 1254, 24)) +>Symbol.unscopables : symbol +>Symbol : SymbolConstructor +>unscopables : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty4.symbols b/tests/baselines/reference/parserSymbolProperty4.symbols new file mode 100644 index 0000000000000..122a46180d24c --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty4.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty4.ts === +declare class C { +>C : Symbol(C, Decl(parserSymbolProperty4.ts, 0, 0)) + + [Symbol.toPrimitive]: string; +>Symbol.toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +} diff --git a/tests/baselines/reference/parserSymbolProperty4.types b/tests/baselines/reference/parserSymbolProperty4.types index e7c539c32393e..dbf65454826e5 100644 --- a/tests/baselines/reference/parserSymbolProperty4.types +++ b/tests/baselines/reference/parserSymbolProperty4.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty4.ts === declare class C { ->C : C, Symbol(C, Decl(parserSymbolProperty4.ts, 0, 0)) +>C : C [Symbol.toPrimitive]: string; ->Symbol.toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol.toPrimitive : symbol +>Symbol : SymbolConstructor +>toPrimitive : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty5.symbols b/tests/baselines/reference/parserSymbolProperty5.symbols new file mode 100644 index 0000000000000..f6049c352e945 --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty5.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty5.ts === +class C { +>C : Symbol(C, Decl(parserSymbolProperty5.ts, 0, 0)) + + [Symbol.toPrimitive]: string; +>Symbol.toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +} diff --git a/tests/baselines/reference/parserSymbolProperty5.types b/tests/baselines/reference/parserSymbolProperty5.types index d5a6ac6640b5b..c854aa6a26d14 100644 --- a/tests/baselines/reference/parserSymbolProperty5.types +++ b/tests/baselines/reference/parserSymbolProperty5.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty5.ts === class C { ->C : C, Symbol(C, Decl(parserSymbolProperty5.ts, 0, 0)) +>C : C [Symbol.toPrimitive]: string; ->Symbol.toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol.toPrimitive : symbol +>Symbol : SymbolConstructor +>toPrimitive : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty6.symbols b/tests/baselines/reference/parserSymbolProperty6.symbols new file mode 100644 index 0000000000000..6f8a8d820beae --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty6.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty6.ts === +class C { +>C : Symbol(C, Decl(parserSymbolProperty6.ts, 0, 0)) + + [Symbol.toStringTag]: string = ""; +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) +} diff --git a/tests/baselines/reference/parserSymbolProperty6.types b/tests/baselines/reference/parserSymbolProperty6.types index 11cf42f3068e4..a802765cb4f30 100644 --- a/tests/baselines/reference/parserSymbolProperty6.types +++ b/tests/baselines/reference/parserSymbolProperty6.types @@ -1,10 +1,10 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty6.ts === class C { ->C : C, Symbol(C, Decl(parserSymbolProperty6.ts, 0, 0)) +>C : C [Symbol.toStringTag]: string = ""; ->Symbol.toStringTag : symbol, Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->toStringTag : symbol, Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) +>Symbol.toStringTag : symbol +>Symbol : SymbolConstructor +>toStringTag : symbol >"" : string } diff --git a/tests/baselines/reference/parserSymbolProperty7.symbols b/tests/baselines/reference/parserSymbolProperty7.symbols new file mode 100644 index 0000000000000..abcffb9a1fdb4 --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty7.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty7.ts === +class C { +>C : Symbol(C, Decl(parserSymbolProperty7.ts, 0, 0)) + + [Symbol.toStringTag](): void { } +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) +} diff --git a/tests/baselines/reference/parserSymbolProperty7.types b/tests/baselines/reference/parserSymbolProperty7.types index d4453253d2ac7..f8dc2523692f0 100644 --- a/tests/baselines/reference/parserSymbolProperty7.types +++ b/tests/baselines/reference/parserSymbolProperty7.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty7.ts === class C { ->C : C, Symbol(C, Decl(parserSymbolProperty7.ts, 0, 0)) +>C : C [Symbol.toStringTag](): void { } ->Symbol.toStringTag : symbol, Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->toStringTag : symbol, Symbol(SymbolConstructor.toStringTag, Decl(lib.d.ts, 1248, 24)) +>Symbol.toStringTag : symbol +>Symbol : SymbolConstructor +>toStringTag : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty8.symbols b/tests/baselines/reference/parserSymbolProperty8.symbols new file mode 100644 index 0000000000000..4b2adf9c7507f --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty8.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty8.ts === +var x: { +>x : Symbol(x, Decl(parserSymbolProperty8.ts, 0, 3)) + + [Symbol.toPrimitive](): string +>Symbol.toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +} diff --git a/tests/baselines/reference/parserSymbolProperty8.types b/tests/baselines/reference/parserSymbolProperty8.types index 30975752ebc62..06387c9c231e0 100644 --- a/tests/baselines/reference/parserSymbolProperty8.types +++ b/tests/baselines/reference/parserSymbolProperty8.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty8.ts === var x: { ->x : { [Symbol.toPrimitive](): string; }, Symbol(x, Decl(parserSymbolProperty8.ts, 0, 3)) +>x : { [Symbol.toPrimitive](): string; } [Symbol.toPrimitive](): string ->Symbol.toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol.toPrimitive : symbol +>Symbol : SymbolConstructor +>toPrimitive : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty9.symbols b/tests/baselines/reference/parserSymbolProperty9.symbols new file mode 100644 index 0000000000000..cca16d768e615 --- /dev/null +++ b/tests/baselines/reference/parserSymbolProperty9.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty9.ts === +var x: { +>x : Symbol(x, Decl(parserSymbolProperty9.ts, 0, 3)) + + [Symbol.toPrimitive]: string +>Symbol.toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) +>toPrimitive : Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +} diff --git a/tests/baselines/reference/parserSymbolProperty9.types b/tests/baselines/reference/parserSymbolProperty9.types index 994ef4638579f..40fbde2acff65 100644 --- a/tests/baselines/reference/parserSymbolProperty9.types +++ b/tests/baselines/reference/parserSymbolProperty9.types @@ -1,9 +1,9 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty9.ts === var x: { ->x : { [Symbol.toPrimitive]: string; }, Symbol(x, Decl(parserSymbolProperty9.ts, 0, 3)) +>x : { [Symbol.toPrimitive]: string; } [Symbol.toPrimitive]: string ->Symbol.toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) ->Symbol : SymbolConstructor, Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1262, 11)) ->toPrimitive : symbol, Symbol(SymbolConstructor.toPrimitive, Decl(lib.d.ts, 1242, 21)) +>Symbol.toPrimitive : symbol +>Symbol : SymbolConstructor +>toPrimitive : symbol } diff --git a/tests/baselines/reference/parserSyntaxWalker.generated.symbols b/tests/baselines/reference/parserSyntaxWalker.generated.symbols new file mode 100644 index 0000000000000..dde34e067469d --- /dev/null +++ b/tests/baselines/reference/parserSyntaxWalker.generated.symbols @@ -0,0 +1,281 @@ +=== tests/cases/conformance/parser/ecmascript5/parserSyntaxWalker.generated.ts === +//declare module "fs" { +No type information for this code.// export class File { +No type information for this code.// constructor(filename: string); +No type information for this code.// public ReadAllText(): string; +No type information for this code.// } +No type information for this code.// export interface IFile { +No type information for this code.// [index: number]: string; +No type information for this code.// } +No type information for this code.//} +No type information for this code. +No type information for this code.//import fs = module("fs"); +No type information for this code. +No type information for this code. +No type information for this code.//module TypeScriptAllInOne { +No type information for this code.// export class Program { +No type information for this code.// static Main(...args: string[]) { +No type information for this code.// try { +No type information for this code.// var bfs = new BasicFeatures(); +No type information for this code.// var retValue: number = 0; +No type information for this code. +No type information for this code.// retValue = bfs.VARIABLES(); +No type information for this code.// if (retValue != 0) { +No type information for this code. +No type information for this code.// return 1; +No type information for this code.// } +No type information for this code. +No type information for this code.// retValue = bfs.STATEMENTS(4); +No type information for this code.// if (retValue != 0) { +No type information for this code. +No type information for this code.// return 1; +No type information for this code.// } +No type information for this code. +No type information for this code. +No type information for this code.// retValue = bfs.TYPES(); +No type information for this code.// if (retValue != 0) { +No type information for this code. +No type information for this code.// return 1; +No type information for this code.// } +No type information for this code. +No type information for this code.// retValue = bfs.OPERATOR(); +No type information for this code.// if (retValue != 0) { +No type information for this code. +No type information for this code.// return 1; +No type information for this code.// } +No type information for this code.// } +No type information for this code.// catch (e) { +No type information for this code.// console.log(e); +No type information for this code.// } +No type information for this code.// finally { +No type information for this code. +No type information for this code.// } +No type information for this code. +No type information for this code.// console.log('Done'); +No type information for this code. +No type information for this code.// return 0; +No type information for this code. +No type information for this code.// } +No type information for this code.// } +No type information for this code. +No type information for this code.// class BasicFeatures { +No type information for this code.// /// +No type information for this code.// /// Test various of variables. Including nullable,key world as variable,special format +No type information for this code.// /// +No type information for this code.// /// +No type information for this code.// public VARIABLES(): number { +No type information for this code.// var local = Number.MAX_VALUE; +No type information for this code.// var min = Number.MIN_VALUE; +No type information for this code.// var inf = Number.NEGATIVE_INFINITY; +No type information for this code.// var nan = Number.NaN; +No type information for this code.// var undef = undefined; +No type information for this code. +No type information for this code.// var п = local; +No type information for this code.// var м = local; +No type information for this code. +No type information for this code.// var local5 = null; +No type information for this code.// var local6 = local5 instanceof fs.File; +No type information for this code. +No type information for this code.// var hex = 0xBADC0DE, Hex = 0XDEADBEEF; +No type information for this code.// var float = 6.02e23, float2 = 6.02E-23 +No type information for this code.// var char = 'c', \u0066 = '\u0066', hexchar = '\x42'; +No type information for this code.// var quoted = '"', quoted2 = "'"; +No type information for this code.// var reg = /\w*/; +No type information for this code.// var objLit = { "var": number = 42, equals: function (x) { return x["var"] === 42; }, toString: () => 'objLit{42}' }; +No type information for this code.// var weekday = Weekdays.Monday; +No type information for this code. +No type information for this code.// var con = char + f + hexchar + float.toString() + float2.toString() + reg.toString() + objLit + weekday; +No type information for this code. +No type information for this code.// // +No type information for this code.// var any = 0; +No type information for this code.// var boolean = 0; +No type information for this code.// var declare = 0; +No type information for this code.// var constructor = 0; +No type information for this code.// var get = 0; +No type information for this code.// var implements = 0; +No type information for this code.// var interface = 0; +No type information for this code.// var let = 0; +No type information for this code.// var module = 0; +No type information for this code.// var number = 0; +No type information for this code.// var package = 0; +No type information for this code.// var private = 0; +No type information for this code.// var protected = 0; +No type information for this code.// var public = 0; +No type information for this code.// var set = 0; +No type information for this code.// var static = 0; +No type information for this code.// var string = 0; +No type information for this code.// var yield = 0; +No type information for this code. +No type information for this code.// var sum3 = any + boolean + declare + constructor + get + implements + interface + let + module + number + package + private + protected + public + set + static + string + yield; +No type information for this code. +No type information for this code.// return 0; +No type information for this code.// } +No type information for this code. +No type information for this code.// /// +No type information for this code.// /// Test different statements. Including if-else,swith,foreach,(un)checked,lock,using,try-catch-finally +No type information for this code.// /// +No type information for this code.// /// +No type information for this code.// /// +No type information for this code.// STATEMENTS(i: number): number { +No type information for this code.// var retVal = 0; +No type information for this code.// if (i == 1) +No type information for this code.// retVal = 1; +No type information for this code.// else +No type information for this code.// retVal = 0; +No type information for this code.// switch (i) { +No type information for this code.// case 2: +No type information for this code.// retVal = 1; +No type information for this code.// break; +No type information for this code.// case 3: +No type information for this code.// retVal = 1; +No type information for this code.// break; +No type information for this code.// default: +No type information for this code.// break; +No type information for this code.// } +No type information for this code. +No type information for this code.// for (var x in { x: 0, y: 1 }) { +No type information for this code.// } +No type information for this code. +No type information for this code.// try { +No type information for this code.// throw null; +No type information for this code.// } +No type information for this code.// catch (Exception) { +No type information for this code.// } +No type information for this code.// finally { +No type information for this code.// try { } +No type information for this code.// catch (Exception) { } +No type information for this code.// } +No type information for this code. +No type information for this code.// return retVal; +No type information for this code.// } +No type information for this code. +No type information for this code.// /// +No type information for this code.// /// Test types in ts language. Including class,struct,interface,delegate,anonymous type +No type information for this code.// /// +No type information for this code.// /// +No type information for this code.// public TYPES(): number { +No type information for this code.// var retVal = 0; +No type information for this code.// var c = new CLASS(); +No type information for this code.// var xx: IF = c; +No type information for this code.// retVal += c.Property; +No type information for this code.// retVal += c.Member(); +No type information for this code.// retVal += xx ^= Foo() ? 0 : 1; +No type information for this code. +No type information for this code.// //anonymous type +No type information for this code.// var anony = { a: new CLASS() }; +No type information for this code. +No type information for this code.// retVal += anony.a.d(); +No type information for this code. +No type information for this code.// return retVal; +No type information for this code.// } +No type information for this code. +No type information for this code. +No type information for this code.// ///// +No type information for this code.// ///// Test different operators +No type information for this code.// ///// +No type information for this code.// ///// +No type information for this code.// public OPERATOR(): number { +No type information for this code.// var a: number[] = [1, 2, 3, 4, implements , ];/*[] bug*/ // YES [] +No type information for this code.// var i = a[1];/*[]*/ +No type information for this code.// i = i + i - i * i / i % i & i | i ^ i;/*+ - * / % & | ^*/ +No type information for this code.// var b = true && false || true ^ false;/*& | ^*/ +No type information for this code.// b = !b;/*!*/ +No type information for this code.// i = ~i;/*~i*/ +No type information for this code.// b = i < (i - continue ) && (i + 1) > i;/*< && >*/ +No type information for this code.// var f = true ? 1 : 0;/*? :*/ // YES : +No type information for this code.// i++;/*++*/ +No type information for this code.// i--;/*--*/ +No type information for this code.// b = true && false || true;/*&& ||*/ +No type information for this code.// i = i << 5;/*<<*/ +No type information for this code.// i = i >> 5;/*>>*/ +No type information for this code.// var j = i; +No type information for this code.// b = i == j && i != j && i <= j && i >= j;/*= == && != <= >=*/ +No type information for this code.// i += 5.0;/*+=*/ +No type information for this code.// i -= i;/*-=*/ +No type information for this code.// i *= i;/**=*/ +No type information for this code.// if (i == 0) +No type information for this code.// i++; +No type information for this code.// i /= i;/*/=*/ +No type information for this code.// i %= i;/*%=*/ +No type information for this code.// i &= i;/*&=*/ +No type information for this code.// i |= i;/*|=*/ +No type information for this code.// i ^= i;/*^=*/ +No type information for this code.// i <<= i;/*<<=*/ +No type information for this code.// i >>= i;/*>>=*/ +No type information for this code. +No type information for this code.// if (i == 0 && !b && f == 1) +No type information for this code.// return 0; +No type information for this code.// else return 1; +No type information for this code.// } +No type information for this code. +No type information for this code.// } +No type information for this code. +No type information for this code.// interface IF { +No type information for this code.// Foo